From 9439efa3868d083daf311fa81c1de96f97f19f3c Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Wed, 13 Sep 2023 12:21:36 +0200 Subject: [PATCH] Refactoring: Introduce fantasticon (#3833) --- .fantasticonrc.js | 22 + dev/icons.scss.hbs | 49 + package-lock.json | 1764 +++++++++-------- package.json | 2 + src/assets/font-icons/active-sessions.svg | 1 + src/assets/font-icons/add-one-badge.svg | 1 + src/assets/font-icons/add-user-filled.svg | 1 + src/assets/font-icons/add-user.svg | 1 + src/assets/font-icons/add.svg | 1 + src/assets/font-icons/admin.svg | 1 + src/assets/font-icons/allow-speak.svg | 1 + src/assets/font-icons/animals.svg | 1 + src/assets/font-icons/animations.svg | 1 + src/assets/font-icons/archive-filled.svg | 1 + src/assets/font-icons/archive-from-main.svg | 1 + src/assets/font-icons/archive-to-main.svg | 1 + src/assets/font-icons/archive.svg | 1 + src/assets/font-icons/arrow-down-circle.svg | 1 + src/assets/font-icons/arrow-down.svg | 1 + src/assets/font-icons/arrow-left.svg | 1 + src/assets/font-icons/arrow-right.svg | 1 + src/assets/font-icons/attach.svg | 1 + .../font-icons/avatar-archived-chats.svg | 1 + .../font-icons/avatar-deleted-account.svg | 1 + .../font-icons/avatar-saved-messages.svg | 1 + src/assets/font-icons/bold.svg | 1 + src/assets/font-icons/bot-command.svg | 1 + src/assets/font-icons/bot-commands-filled.svg | 1 + src/assets/font-icons/bots.svg | 1 + src/assets/font-icons/bug.svg | 1 + src/assets/font-icons/calendar-filter.svg | 1 + src/assets/font-icons/calendar.svg | 1 + src/assets/font-icons/camera-add.svg | 1 + src/assets/font-icons/camera.svg | 1 + src/assets/font-icons/car.svg | 1 + src/assets/font-icons/card.svg | 1 + src/assets/font-icons/channel-filled.svg | 1 + src/assets/font-icons/channel.svg | 1 + src/assets/font-icons/channelviews.svg | 1 + src/assets/font-icons/chat-badge.svg | 1 + src/assets/font-icons/chats-badge.svg | 1 + src/assets/font-icons/check.svg | 1 + src/assets/font-icons/close-circle.svg | 1 + src/assets/font-icons/close-topic.svg | 1 + src/assets/font-icons/close.svg | 1 + src/assets/font-icons/cloud-download.svg | 1 + src/assets/font-icons/collapse.svg | 1 + src/assets/font-icons/colorize.svg | 1 + src/assets/font-icons/comments-sticker.svg | 1 + src/assets/font-icons/comments.svg | 1 + src/assets/font-icons/copy-media.svg | 1 + src/assets/font-icons/copy.svg | 1 + src/assets/font-icons/darkmode.svg | 1 + src/assets/font-icons/data.svg | 1 + src/assets/font-icons/delete-filled.svg | 1 + src/assets/font-icons/delete-left.svg | 1 + src/assets/font-icons/delete-user.svg | 1 + src/assets/font-icons/delete.svg | 1 + src/assets/font-icons/document.svg | 1 + src/assets/font-icons/double-badge.svg | 1 + src/assets/font-icons/down.svg | 1 + src/assets/font-icons/download.svg | 1 + src/assets/font-icons/eats.svg | 1 + src/assets/font-icons/edit.svg | 1 + src/assets/font-icons/email.svg | 1 + src/assets/font-icons/enter.svg | 1 + src/assets/font-icons/expand.svg | 1 + src/assets/font-icons/eye-closed-outline.svg | 1 + src/assets/font-icons/eye-closed.svg | 1 + src/assets/font-icons/eye-outline.svg | 1 + src/assets/font-icons/eye.svg | 1 + src/assets/font-icons/favorite-filled.svg | 1 + src/assets/font-icons/favorite.svg | 1 + src/assets/font-icons/file-badge.svg | 1 + src/assets/font-icons/flag.svg | 1 + src/assets/font-icons/folder-badge.svg | 1 + src/assets/font-icons/folder.svg | 1 + src/assets/font-icons/fontsize.svg | 1 + src/assets/font-icons/forums.svg | 1 + src/assets/font-icons/forward.svg | 1 + src/assets/font-icons/fullscreen.svg | 1 + src/assets/font-icons/gifs.svg | 1 + src/assets/font-icons/gift.svg | 1 + src/assets/font-icons/group-filled.svg | 1 + src/assets/font-icons/group.svg | 1 + src/assets/font-icons/grouped-disable.svg | 1 + src/assets/font-icons/grouped.svg | 1 + src/assets/font-icons/hand-stop.svg | 1 + src/assets/font-icons/hashtag.svg | 1 + src/assets/font-icons/heart-outline.svg | 1 + src/assets/font-icons/heart.svg | 1 + src/assets/font-icons/help.svg | 1 + src/assets/font-icons/info-filled.svg | 1 + src/assets/font-icons/info.svg | 1 + src/assets/font-icons/install.svg | 1 + src/assets/font-icons/italic.svg | 1 + src/assets/font-icons/key.svg | 1 + src/assets/font-icons/keyboard.svg | 1 + src/assets/font-icons/lamp.svg | 1 + src/assets/font-icons/language.svg | 1 + src/assets/font-icons/large-pause.svg | 1 + src/assets/font-icons/large-play.svg | 1 + src/assets/font-icons/link-badge.svg | 1 + src/assets/font-icons/link-broken.svg | 1 + src/assets/font-icons/link.svg | 1 + src/assets/font-icons/location.svg | 1 + src/assets/font-icons/lock-badge.svg | 1 + src/assets/font-icons/lock.svg | 1 + src/assets/font-icons/logout.svg | 1 + src/assets/font-icons/loop.svg | 1 + src/assets/font-icons/mention.svg | 1 + src/assets/font-icons/message-failed.svg | 1 + src/assets/font-icons/message-pending.svg | 1 + src/assets/font-icons/message-read.svg | 1 + src/assets/font-icons/message-succeeded.svg | 1 + src/assets/font-icons/message.svg | 1 + src/assets/font-icons/microphone-alt.svg | 1 + src/assets/font-icons/microphone.svg | 1 + src/assets/font-icons/monospace.svg | 1 + src/assets/font-icons/more-circle.svg | 1 + src/assets/font-icons/more.svg | 1 + src/assets/font-icons/mute.svg | 1 + src/assets/font-icons/muted.svg | 1 + src/assets/font-icons/new-chat-filled.svg | 1 + src/assets/font-icons/next.svg | 1 + src/assets/font-icons/noise-suppression.svg | 1 + src/assets/font-icons/non-contacts.svg | 1 + src/assets/font-icons/open-in-new-tab.svg | 1 + src/assets/font-icons/password-off.svg | 1 + src/assets/font-icons/pause.svg | 1 + src/assets/font-icons/permissions.svg | 1 + .../font-icons/phone-discard-outline.svg | 1 + src/assets/font-icons/phone-discard.svg | 1 + src/assets/font-icons/phone.svg | 1 + src/assets/font-icons/photo.svg | 1 + src/assets/font-icons/pin-badge.svg | 1 + src/assets/font-icons/pin-list.svg | 1 + src/assets/font-icons/pin.svg | 1 + src/assets/font-icons/pinned-chat.svg | 1 + src/assets/font-icons/pinned-message.svg | 1 + src/assets/font-icons/pip.svg | 1 + src/assets/font-icons/play-story.svg | 1 + src/assets/font-icons/play.svg | 1 + src/assets/font-icons/poll.svg | 1 + src/assets/font-icons/premium.svg | 1 + src/assets/font-icons/previous.svg | 1 + src/assets/font-icons/readchats.svg | 1 + src/assets/font-icons/recent.svg | 1 + src/assets/font-icons/reload.svg | 1 + src/assets/font-icons/remove.svg | 1 + src/assets/font-icons/reopen-topic.svg | 1 + src/assets/font-icons/replace.svg | 1 + src/assets/font-icons/replies.svg | 1 + src/assets/font-icons/reply-filled.svg | 1 + src/assets/font-icons/reply.svg | 1 + src/assets/font-icons/revote.svg | 1 + src/assets/font-icons/save-story.svg | 1 + src/assets/font-icons/saved-messages.svg | 1 + src/assets/font-icons/schedule.svg | 1 + src/assets/font-icons/search.svg | 1 + src/assets/font-icons/select.svg | 1 + src/assets/font-icons/send-outline.svg | 1 + src/assets/font-icons/send.svg | 1 + src/assets/font-icons/settings-filled.svg | 1 + src/assets/font-icons/settings.svg | 1 + src/assets/font-icons/share-filled.svg | 1 + .../font-icons/share-screen-outlined.svg | 1 + src/assets/font-icons/share-screen-stop.svg | 1 + src/assets/font-icons/share-screen.svg | 1 + src/assets/font-icons/sidebar.svg | 1 + src/assets/font-icons/skip-next.svg | 1 + src/assets/font-icons/skip-previous.svg | 1 + src/assets/font-icons/smallscreen.svg | 1 + src/assets/font-icons/smile.svg | 1 + src/assets/font-icons/sort.svg | 1 + src/assets/font-icons/speaker-muted-story.svg | 1 + src/assets/font-icons/speaker-outline.svg | 1 + src/assets/font-icons/speaker-story.svg | 1 + src/assets/font-icons/speaker.svg | 1 + src/assets/font-icons/spoiler-disable.svg | 1 + src/assets/font-icons/spoiler.svg | 1 + src/assets/font-icons/sport.svg | 1 + src/assets/font-icons/stats.svg | 1 + src/assets/font-icons/stealth-future.svg | 1 + src/assets/font-icons/stealth-past.svg | 1 + src/assets/font-icons/stickers.svg | 1 + src/assets/font-icons/stop-raising-hand.svg | 1 + src/assets/font-icons/stop.svg | 1 + src/assets/font-icons/story-caption.svg | 1 + src/assets/font-icons/story-expired.svg | 1 + src/assets/font-icons/story-priority.svg | 1 + src/assets/font-icons/story-reply.svg | 1 + src/assets/font-icons/strikethrough.svg | 1 + src/assets/font-icons/timer.svg | 1 + src/assets/font-icons/transcribe.svg | 1 + src/assets/font-icons/truck.svg | 1 + src/assets/font-icons/unarchive.svg | 1 + src/assets/font-icons/underlined.svg | 1 + src/assets/font-icons/unlock-badge.svg | 1 + src/assets/font-icons/unlock.svg | 1 + src/assets/font-icons/unmute.svg | 1 + src/assets/font-icons/unpin.svg | 1 + src/assets/font-icons/unread.svg | 1 + src/assets/font-icons/up.svg | 1 + src/assets/font-icons/user-filled.svg | 1 + src/assets/font-icons/user-online.svg | 1 + src/assets/font-icons/user.svg | 1 + src/assets/font-icons/video-outlined.svg | 1 + src/assets/font-icons/video-stop.svg | 1 + src/assets/font-icons/video.svg | 1 + src/assets/font-icons/voice-chat.svg | 1 + src/assets/font-icons/volume-1.svg | 1 + src/assets/font-icons/volume-2.svg | 1 + src/assets/font-icons/volume-3.svg | 1 + src/assets/font-icons/web.svg | 1 + src/assets/font-icons/webapp.svg | 1 + src/assets/font-icons/word-wrap.svg | 1 + src/assets/font-icons/zoom-in.svg | 1 + src/assets/font-icons/zoom-out.svg | 1 + src/assets/fonts/icomoon.woff | Bin 66940 -> 0 bytes src/assets/fonts/icomoon.woff2 | Bin 30872 -> 0 bytes .../calls/phone/PhoneCallButton.tsx | 4 +- src/components/common/Document.tsx | 2 +- src/components/common/File.tsx | 5 +- src/components/common/PickerSelectedItem.tsx | 3 +- src/components/common/PrivateChatInfo.tsx | 5 +- src/components/common/SeenByModal.tsx | 2 +- src/components/left/main/Archive.tsx | 8 +- src/components/left/main/ChatFolders.tsx | 3 +- .../left/settings/SettingsActiveSessions.tsx | 5 +- .../left/settings/helpers/getSessionIcon.ts | 3 +- .../common/PremiumLimitReachedModal.tsx | 19 +- .../premium/common/PremiumLimitsCompare.tsx | 6 +- .../mediaViewer/MediaViewerActions.tsx | 2 +- src/components/middle/HeaderMenuContainer.tsx | 3 +- .../middle/MessageSelectToolbar.tsx | 3 +- src/components/middle/ReactorListModal.tsx | 2 +- src/components/middle/ScrollDownButton.tsx | 4 +- .../middle/message/helpers/copyOptions.ts | 4 +- src/components/payment/Checkout.tsx | 3 +- src/components/right/Profile.tsx | 4 +- .../management/ManageChatRemovedUsers.tsx | 4 +- .../right/management/ManageGroupMembers.tsx | 4 +- .../right/management/ManageInvites.tsx | 4 +- src/components/story/StorySettings.tsx | 3 +- src/components/story/StoryView.tsx | 6 +- src/components/ui/Checkbox.tsx | 4 +- src/components/ui/ListItem.tsx | 12 +- src/components/ui/MenuItem.tsx | 4 +- src/hooks/reducers/useFoldersReducer.ts | 3 +- src/hooks/useChatContextActions.ts | 2 +- src/styles/icons.scss | 1103 ++++++----- src/styles/icons.woff | Bin 0 -> 27116 bytes src/styles/icons.woff2 | Bin 0 -> 22764 bytes src/types/icons/device.ts | 4 + src/types/icons/font.ts | 216 ++ src/types/icons/index.ts | 4 + 257 files changed, 2174 insertions(+), 1341 deletions(-) create mode 100644 .fantasticonrc.js create mode 100644 dev/icons.scss.hbs create mode 100644 src/assets/font-icons/active-sessions.svg create mode 100644 src/assets/font-icons/add-one-badge.svg create mode 100644 src/assets/font-icons/add-user-filled.svg create mode 100644 src/assets/font-icons/add-user.svg create mode 100644 src/assets/font-icons/add.svg create mode 100644 src/assets/font-icons/admin.svg create mode 100644 src/assets/font-icons/allow-speak.svg create mode 100644 src/assets/font-icons/animals.svg create mode 100644 src/assets/font-icons/animations.svg create mode 100644 src/assets/font-icons/archive-filled.svg create mode 100644 src/assets/font-icons/archive-from-main.svg create mode 100644 src/assets/font-icons/archive-to-main.svg create mode 100644 src/assets/font-icons/archive.svg create mode 100644 src/assets/font-icons/arrow-down-circle.svg create mode 100644 src/assets/font-icons/arrow-down.svg create mode 100644 src/assets/font-icons/arrow-left.svg create mode 100644 src/assets/font-icons/arrow-right.svg create mode 100644 src/assets/font-icons/attach.svg create mode 100644 src/assets/font-icons/avatar-archived-chats.svg create mode 100644 src/assets/font-icons/avatar-deleted-account.svg create mode 100644 src/assets/font-icons/avatar-saved-messages.svg create mode 100644 src/assets/font-icons/bold.svg create mode 100644 src/assets/font-icons/bot-command.svg create mode 100644 src/assets/font-icons/bot-commands-filled.svg create mode 100644 src/assets/font-icons/bots.svg create mode 100644 src/assets/font-icons/bug.svg create mode 100644 src/assets/font-icons/calendar-filter.svg create mode 100644 src/assets/font-icons/calendar.svg create mode 100644 src/assets/font-icons/camera-add.svg create mode 100644 src/assets/font-icons/camera.svg create mode 100644 src/assets/font-icons/car.svg create mode 100644 src/assets/font-icons/card.svg create mode 100644 src/assets/font-icons/channel-filled.svg create mode 100644 src/assets/font-icons/channel.svg create mode 100644 src/assets/font-icons/channelviews.svg create mode 100644 src/assets/font-icons/chat-badge.svg create mode 100644 src/assets/font-icons/chats-badge.svg create mode 100644 src/assets/font-icons/check.svg create mode 100644 src/assets/font-icons/close-circle.svg create mode 100644 src/assets/font-icons/close-topic.svg create mode 100644 src/assets/font-icons/close.svg create mode 100644 src/assets/font-icons/cloud-download.svg create mode 100644 src/assets/font-icons/collapse.svg create mode 100644 src/assets/font-icons/colorize.svg create mode 100644 src/assets/font-icons/comments-sticker.svg create mode 100644 src/assets/font-icons/comments.svg create mode 100644 src/assets/font-icons/copy-media.svg create mode 100644 src/assets/font-icons/copy.svg create mode 100644 src/assets/font-icons/darkmode.svg create mode 100644 src/assets/font-icons/data.svg create mode 100644 src/assets/font-icons/delete-filled.svg create mode 100644 src/assets/font-icons/delete-left.svg create mode 100644 src/assets/font-icons/delete-user.svg create mode 100644 src/assets/font-icons/delete.svg create mode 100644 src/assets/font-icons/document.svg create mode 100644 src/assets/font-icons/double-badge.svg create mode 100644 src/assets/font-icons/down.svg create mode 100644 src/assets/font-icons/download.svg create mode 100644 src/assets/font-icons/eats.svg create mode 100644 src/assets/font-icons/edit.svg create mode 100644 src/assets/font-icons/email.svg create mode 100644 src/assets/font-icons/enter.svg create mode 100644 src/assets/font-icons/expand.svg create mode 100644 src/assets/font-icons/eye-closed-outline.svg create mode 100644 src/assets/font-icons/eye-closed.svg create mode 100644 src/assets/font-icons/eye-outline.svg create mode 100644 src/assets/font-icons/eye.svg create mode 100644 src/assets/font-icons/favorite-filled.svg create mode 100644 src/assets/font-icons/favorite.svg create mode 100644 src/assets/font-icons/file-badge.svg create mode 100644 src/assets/font-icons/flag.svg create mode 100644 src/assets/font-icons/folder-badge.svg create mode 100644 src/assets/font-icons/folder.svg create mode 100644 src/assets/font-icons/fontsize.svg create mode 100644 src/assets/font-icons/forums.svg create mode 100644 src/assets/font-icons/forward.svg create mode 100644 src/assets/font-icons/fullscreen.svg create mode 100644 src/assets/font-icons/gifs.svg create mode 100644 src/assets/font-icons/gift.svg create mode 100644 src/assets/font-icons/group-filled.svg create mode 100644 src/assets/font-icons/group.svg create mode 100644 src/assets/font-icons/grouped-disable.svg create mode 100644 src/assets/font-icons/grouped.svg create mode 100644 src/assets/font-icons/hand-stop.svg create mode 100644 src/assets/font-icons/hashtag.svg create mode 100644 src/assets/font-icons/heart-outline.svg create mode 100644 src/assets/font-icons/heart.svg create mode 100644 src/assets/font-icons/help.svg create mode 100644 src/assets/font-icons/info-filled.svg create mode 100644 src/assets/font-icons/info.svg create mode 100644 src/assets/font-icons/install.svg create mode 100644 src/assets/font-icons/italic.svg create mode 100644 src/assets/font-icons/key.svg create mode 100644 src/assets/font-icons/keyboard.svg create mode 100644 src/assets/font-icons/lamp.svg create mode 100644 src/assets/font-icons/language.svg create mode 100644 src/assets/font-icons/large-pause.svg create mode 100644 src/assets/font-icons/large-play.svg create mode 100644 src/assets/font-icons/link-badge.svg create mode 100644 src/assets/font-icons/link-broken.svg create mode 100644 src/assets/font-icons/link.svg create mode 100644 src/assets/font-icons/location.svg create mode 100644 src/assets/font-icons/lock-badge.svg create mode 100644 src/assets/font-icons/lock.svg create mode 100644 src/assets/font-icons/logout.svg create mode 100644 src/assets/font-icons/loop.svg create mode 100644 src/assets/font-icons/mention.svg create mode 100644 src/assets/font-icons/message-failed.svg create mode 100644 src/assets/font-icons/message-pending.svg create mode 100644 src/assets/font-icons/message-read.svg create mode 100644 src/assets/font-icons/message-succeeded.svg create mode 100644 src/assets/font-icons/message.svg create mode 100644 src/assets/font-icons/microphone-alt.svg create mode 100644 src/assets/font-icons/microphone.svg create mode 100644 src/assets/font-icons/monospace.svg create mode 100644 src/assets/font-icons/more-circle.svg create mode 100644 src/assets/font-icons/more.svg create mode 100644 src/assets/font-icons/mute.svg create mode 100644 src/assets/font-icons/muted.svg create mode 100644 src/assets/font-icons/new-chat-filled.svg create mode 100644 src/assets/font-icons/next.svg create mode 100644 src/assets/font-icons/noise-suppression.svg create mode 100644 src/assets/font-icons/non-contacts.svg create mode 100644 src/assets/font-icons/open-in-new-tab.svg create mode 100644 src/assets/font-icons/password-off.svg create mode 100644 src/assets/font-icons/pause.svg create mode 100644 src/assets/font-icons/permissions.svg create mode 100644 src/assets/font-icons/phone-discard-outline.svg create mode 100644 src/assets/font-icons/phone-discard.svg create mode 100644 src/assets/font-icons/phone.svg create mode 100644 src/assets/font-icons/photo.svg create mode 100644 src/assets/font-icons/pin-badge.svg create mode 100644 src/assets/font-icons/pin-list.svg create mode 100644 src/assets/font-icons/pin.svg create mode 100644 src/assets/font-icons/pinned-chat.svg create mode 100644 src/assets/font-icons/pinned-message.svg create mode 100644 src/assets/font-icons/pip.svg create mode 100644 src/assets/font-icons/play-story.svg create mode 100644 src/assets/font-icons/play.svg create mode 100644 src/assets/font-icons/poll.svg create mode 100644 src/assets/font-icons/premium.svg create mode 100644 src/assets/font-icons/previous.svg create mode 100644 src/assets/font-icons/readchats.svg create mode 100644 src/assets/font-icons/recent.svg create mode 100644 src/assets/font-icons/reload.svg create mode 100644 src/assets/font-icons/remove.svg create mode 100644 src/assets/font-icons/reopen-topic.svg create mode 100644 src/assets/font-icons/replace.svg create mode 100644 src/assets/font-icons/replies.svg create mode 100644 src/assets/font-icons/reply-filled.svg create mode 100644 src/assets/font-icons/reply.svg create mode 100644 src/assets/font-icons/revote.svg create mode 100644 src/assets/font-icons/save-story.svg create mode 100644 src/assets/font-icons/saved-messages.svg create mode 100644 src/assets/font-icons/schedule.svg create mode 100644 src/assets/font-icons/search.svg create mode 100644 src/assets/font-icons/select.svg create mode 100644 src/assets/font-icons/send-outline.svg create mode 100644 src/assets/font-icons/send.svg create mode 100644 src/assets/font-icons/settings-filled.svg create mode 100644 src/assets/font-icons/settings.svg create mode 100644 src/assets/font-icons/share-filled.svg create mode 100644 src/assets/font-icons/share-screen-outlined.svg create mode 100644 src/assets/font-icons/share-screen-stop.svg create mode 100644 src/assets/font-icons/share-screen.svg create mode 100644 src/assets/font-icons/sidebar.svg create mode 100644 src/assets/font-icons/skip-next.svg create mode 100644 src/assets/font-icons/skip-previous.svg create mode 100644 src/assets/font-icons/smallscreen.svg create mode 100644 src/assets/font-icons/smile.svg create mode 100644 src/assets/font-icons/sort.svg create mode 100644 src/assets/font-icons/speaker-muted-story.svg create mode 100644 src/assets/font-icons/speaker-outline.svg create mode 100644 src/assets/font-icons/speaker-story.svg create mode 100644 src/assets/font-icons/speaker.svg create mode 100644 src/assets/font-icons/spoiler-disable.svg create mode 100644 src/assets/font-icons/spoiler.svg create mode 100644 src/assets/font-icons/sport.svg create mode 100644 src/assets/font-icons/stats.svg create mode 100644 src/assets/font-icons/stealth-future.svg create mode 100644 src/assets/font-icons/stealth-past.svg create mode 100644 src/assets/font-icons/stickers.svg create mode 100644 src/assets/font-icons/stop-raising-hand.svg create mode 100644 src/assets/font-icons/stop.svg create mode 100644 src/assets/font-icons/story-caption.svg create mode 100644 src/assets/font-icons/story-expired.svg create mode 100644 src/assets/font-icons/story-priority.svg create mode 100644 src/assets/font-icons/story-reply.svg create mode 100644 src/assets/font-icons/strikethrough.svg create mode 100644 src/assets/font-icons/timer.svg create mode 100644 src/assets/font-icons/transcribe.svg create mode 100644 src/assets/font-icons/truck.svg create mode 100644 src/assets/font-icons/unarchive.svg create mode 100644 src/assets/font-icons/underlined.svg create mode 100644 src/assets/font-icons/unlock-badge.svg create mode 100644 src/assets/font-icons/unlock.svg create mode 100644 src/assets/font-icons/unmute.svg create mode 100644 src/assets/font-icons/unpin.svg create mode 100644 src/assets/font-icons/unread.svg create mode 100644 src/assets/font-icons/up.svg create mode 100644 src/assets/font-icons/user-filled.svg create mode 100644 src/assets/font-icons/user-online.svg create mode 100644 src/assets/font-icons/user.svg create mode 100644 src/assets/font-icons/video-outlined.svg create mode 100644 src/assets/font-icons/video-stop.svg create mode 100644 src/assets/font-icons/video.svg create mode 100644 src/assets/font-icons/voice-chat.svg create mode 100644 src/assets/font-icons/volume-1.svg create mode 100644 src/assets/font-icons/volume-2.svg create mode 100644 src/assets/font-icons/volume-3.svg create mode 100644 src/assets/font-icons/web.svg create mode 100644 src/assets/font-icons/webapp.svg create mode 100644 src/assets/font-icons/word-wrap.svg create mode 100644 src/assets/font-icons/zoom-in.svg create mode 100644 src/assets/font-icons/zoom-out.svg delete mode 100644 src/assets/fonts/icomoon.woff delete mode 100644 src/assets/fonts/icomoon.woff2 create mode 100644 src/styles/icons.woff create mode 100644 src/styles/icons.woff2 create mode 100644 src/types/icons/device.ts create mode 100644 src/types/icons/font.ts create mode 100644 src/types/icons/index.ts diff --git a/.fantasticonrc.js b/.fantasticonrc.js new file mode 100644 index 000000000..57334bc0c --- /dev/null +++ b/.fantasticonrc.js @@ -0,0 +1,22 @@ +module.exports = { + inputDir: './src/assets/font-icons', + outputDir: './src/styles', + name: 'icons', + fontTypes: ['woff2', 'woff'], + assetTypes: ['scss', 'ts'], + tag: '', + // Use a custom Handlebars template + templates: { + scss: './dev/icons.scss.hbs' + }, + formatOptions: { + ts: { + types: ['literalId'], + singleQuotes: true, + literalIdName: 'FontIconName', + }, + }, + pathOptions: { + ts: './src/types/icons/font.ts', + }, +}; diff --git a/dev/icons.scss.hbs b/dev/icons.scss.hbs new file mode 100644 index 000000000..61767bffd --- /dev/null +++ b/dev/icons.scss.hbs @@ -0,0 +1,49 @@ +@use "sass:map"; +${{ name }}-font: "{{ name }}"; + +@font-face { + font-family: ${{ name }}-font; + src: {{{ fontSrc }}}; + font-weight: normal; + font-style: normal; + font-display: block; +} + +.icon-char::before { + font-family: Roboto, "Helvetica Neue", sans-serif; + content: attr(data-char); + width: 1.5rem; + text-align: center; + display: block; +} + +{{# if selector }}{{ selector }}::before { +{{ else }}{{ tag }}.{{prefix}} { +{{/ if }} + /* use !important to prevent issues with browser extensions that change fonts */ + /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */ + font-family: "{{ name }}" !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +${{ name }}-map: ( +{{# each codepoints }} + "{{ @key }}": "\\{{ codepoint this }}", +{{/ each }} +); + +{{# each codepoints }} +{{# if ../selector }} {{ ../selector }}.{{ ../prefix }}-{{ @key }}::before { +{{ else }}{{ tag }}.{{ ../prefix }}-{{ @key }}::before { +{{/ if }} content: map.get(${{ ../name }}-map, "{{ @key }}"); +} +{{/ each }} diff --git a/package-lock.json b/package-lock.json index f4f06aa65..73702d428 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "license": "GPL-3.0-or-later", "dependencies": { "@cryptography/aes": "^0.1.1", + "@twbs/fantasticon": "^2.7.1", "async-mutex": "^0.4.0", "big-integer": "github:painor/BigInteger.js", "croppie": "^2.6.5", @@ -973,9 +974,10 @@ } }, "dev/eslint-multitab/node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1931,9 +1933,10 @@ } }, "dev/eslint-multitab/node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } @@ -2047,9 +2050,10 @@ } }, "dev/eslint-multitab/node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } @@ -2452,9 +2456,10 @@ } }, "dev/eslint-multitab/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2851,9 +2856,10 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.0.1", - "dev": true, - "license": "MIT" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", + "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "dev": true }, "node_modules/@ampproject/remapping": { "version": "2.2.0", @@ -4715,9 +4721,9 @@ } }, "node_modules/@babel/register/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -4926,13 +4932,14 @@ } }, "node_modules/@electron/notarize": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-1.2.4.tgz", - "integrity": "sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.1.0.tgz", + "integrity": "sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==", "dev": true, "dependencies": { "debug": "^4.1.1", - "fs-extra": "^9.0.1" + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" }, "engines": { "node": ">= 10.0.0" @@ -4975,9 +4982,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.4.tgz", - "integrity": "sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", "dev": true, "dependencies": { "compare-version": "^0.1.2", @@ -5007,122 +5014,10 @@ "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/@electron/rebuild": { - "version": "3.2.13", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.2.13.tgz", - "integrity": "sha512-DH9Ol4JCnHDYVOD0fKWq+Qqbn/0WU1O6QR0mIpMXEVU4YFM4PlaqNC9K36mGShNBxxGFotZCMDrB1wl/iHM12g==", - "dev": true, - "dependencies": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.0.0", - "node-api-version": "^0.1.4", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" - }, - "bin": { - "electron-rebuild": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/@electron/rebuild/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@electron/rebuild/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@electron/rebuild/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@electron/rebuild/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@electron/rebuild/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@electron/rebuild/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/rebuild/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@electron/universal": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.3.4.tgz", - "integrity": "sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.4.1.tgz", + "integrity": "sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==", "dev": true, "dependencies": { "@electron/asar": "^3.2.1", @@ -5137,28 +5032,6 @@ "node": ">=8.6" } }, - "node_modules/@electron/universal/node_modules/@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/@electron/universal/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -5278,12 +5151,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "node_modules/@glen/jest-raw-loader": { "version": "2.0.0", "dev": true, @@ -5324,6 +5191,74 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -6130,9 +6065,9 @@ "license": "MIT" }, "node_modules/@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", "dev": true, "funding": [ { @@ -6148,7 +6083,7 @@ "cross-spawn": "^7.0.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10" } }, "node_modules/@malept/flatpak-bundler": { @@ -6243,23 +6178,20 @@ } }, "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dependencies": { - "@gar/promisify": "^1.1.3", "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6270,30 +6202,13 @@ "node": ">=10" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/@playwright/test": { @@ -6478,9 +6393,9 @@ } }, "node_modules/@statoscope/helpers/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6831,12 +6746,44 @@ }, "node_modules/@tootallnate/once": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 10" } }, + "node_modules/@twbs/fantasticon": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@twbs/fantasticon/-/fantasticon-2.7.1.tgz", + "integrity": "sha512-fCfmXnmVXs8TNV5qi4UJxJ8qJd/bvMujcpg597CWKm/m84/kEg6BB4g8pvl+fvg1LwhGvhQ0m3O4qnj0Qm9wjA==", + "dependencies": { + "change-case": "^4.1.2", + "commander": "^10.0.1", + "figures": "^3.2.0", + "glob": "^7.2.3", + "handlebars": "^4.7.7", + "picocolors": "^1.0.0", + "slugify": "^1.6.6", + "svg2ttf": "^6.0.3", + "svgicons2svgfont": "^12.0.0", + "ttf2eot": "^3.1.0", + "ttf2woff": "^3.0.0", + "ttf2woff2": "^5.0.0" + }, + "bin": { + "fantasticon": "bin/fantasticon" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@twbs/fantasticon/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, "node_modules/@types/archy": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/archy/-/archy-0.0.32.tgz", @@ -7455,9 +7402,10 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7588,9 +7536,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7746,9 +7694,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7799,9 +7747,10 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7838,9 +7787,10 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8042,6 +7992,14 @@ } } }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", + "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "dev": true, @@ -8072,8 +8030,7 @@ "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/accepts": { "version": "1.3.8", @@ -8134,7 +8091,6 @@ }, "node_modules/agent-base": { "version": "6.0.2", - "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -8144,31 +8100,18 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", "humanize-ms": "^1.2.1" }, "engines": { "node": ">= 8.0.0" } }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", @@ -8299,7 +8242,6 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8335,16 +8277,15 @@ "dev": true }, "node_modules/app-builder-lib": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.5.2.tgz", - "integrity": "sha512-fZbUrFl3FW7yw92KiDpXV3Nd84EW+D7/WU7MEjX2eHDWM45Qx4hYOZpL9PaT9ZzZbaNfNLmt2EOnoqHQXHLdKw==", + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.6.4.tgz", + "integrity": "sha512-m9931WXb83teb32N0rKg+ulbn6+Hl8NV5SUpVDOVz9MWOXfhV6AQtTdftf51zJJvCQnQugGtSqoLvgw6mdF/Rg==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "^1.2.3", - "@electron/osx-sign": "^1.0.4", - "@electron/rebuild": "3.2.13", - "@electron/universal": "1.3.4", + "@electron/notarize": "2.1.0", + "@electron/osx-sign": "1.0.5", + "@electron/universal": "1.4.1", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "7zip-bin": "~5.1.1", @@ -8409,9 +8350,9 @@ } }, "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8426,8 +8367,7 @@ "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "node_modules/arch": { "version": "2.2.0", @@ -8458,7 +8398,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -8474,7 +8413,6 @@ }, "node_modules/argparse": { "version": "2.0.1", - "dev": true, "license": "Python-2.0" }, "node_modules/aria-query": { @@ -8976,7 +8914,6 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/base64-js": { @@ -9019,39 +8956,12 @@ "node": ">=8" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "file-uri-to-path": "1.0.0" } }, "node_modules/bluebird": { @@ -9243,7 +9153,6 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -9358,6 +9267,17 @@ "dev": true, "license": "MIT" }, + "node_modules/bufferstreams": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-3.0.0.tgz", + "integrity": "sha512-Qg0ggJUWJq90vtg4lDsGN9CDWvzBMQxhiEkSOD/sJfYt6BLect3eV1/S6K7SCSKJ34n60rf6U5eUPmQENVE4UA==", + "dependencies": { + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">=8.12.0" + } + }, "node_modules/builder-util": { "version": "24.5.0", "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.5.0.tgz", @@ -9497,93 +9417,95 @@ } }, "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "unique-filename": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, + "node_modules/cacache/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", + "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", - "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", - "dev": true, + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "engines": { "node": ">=12" } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, + "node_modules/cacache/node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/cacheable-lookup": { @@ -9650,7 +9572,6 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "dev": true, "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", @@ -9682,9 +9603,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001469", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", - "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", + "version": "1.0.30001532", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001532.tgz", + "integrity": "sha512-FbDFnNat3nMnrROzqrsg314zhqN5LGQ1kyyMk2opcrwGbVGpHRhgCWtAgD5YJUqNAiQ+dklreil/c3Qf1dfCTw==", "dev": true, "funding": [ { @@ -9694,9 +9615,23 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/chalk": { "version": "2.4.2", "dev": true, @@ -9788,6 +9723,25 @@ "node": ">=8" } }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -9846,7 +9800,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, "engines": { "node": ">=10" } @@ -9892,7 +9845,6 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -9920,18 +9872,6 @@ "node": ">=8" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-truncate": { "version": "3.1.0", "dev": true, @@ -10002,15 +9942,6 @@ "node": ">=8" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "dev": true, @@ -10080,7 +10011,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, "bin": { "color-support": "bin.js" } @@ -10171,7 +10101,6 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, "license": "MIT" }, "node_modules/concurrently": { @@ -10333,9 +10262,9 @@ "dev": true }, "node_modules/conf/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10386,8 +10315,17 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } }, "node_modules/content-disposition": { "version": "0.5.2", @@ -10513,7 +10451,6 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -10567,9 +10504,10 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10648,6 +10586,11 @@ "dev": true, "license": "MIT" }, + "node_modules/cubic2quad": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.2.1.tgz", + "integrity": "sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "dev": true, @@ -10705,7 +10648,6 @@ }, "node_modules/debug": { "version": "4.3.4", - "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -10846,18 +10788,6 @@ "node": ">= 10" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -10901,8 +10831,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "node_modules/depd": { "version": "2.0.0", @@ -10921,15 +10850,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -10975,12 +10895,12 @@ } }, "node_modules/dmg-builder": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.5.2.tgz", - "integrity": "sha512-4qWGO3OM+1ipqvrKvskZRLDEvAPZdZwil6e40Tb8dKogpEhabrzcjpwoRycBy8FAx8R2EBQaFCtIp5rBO/DM8A==", + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.6.4.tgz", + "integrity": "sha512-BNcHRc9CWEuI9qt0E655bUBU/j/3wUCYBVKGu1kVpbN5lcUdEJJJeiO0NHK3dgKmra6LUUZlo+mWqc+OCbi0zw==", "dev": true, "dependencies": { - "app-builder-lib": "24.5.2", + "app-builder-lib": "24.6.4", "builder-util": "24.5.0", "builder-util-runtime": "9.2.1", "fs-extra": "^10.1.0", @@ -11154,7 +11074,6 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "dev": true, "license": "MIT", "dependencies": { "no-case": "^3.0.4", @@ -11198,7 +11117,6 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "dev": true, "license": "MIT" }, "node_modules/ee-first": { @@ -11222,9 +11140,9 @@ } }, "node_modules/electron": { - "version": "22.3.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.2.tgz", - "integrity": "sha512-rcE01ammPJ9RVDF3sCETyeHiDEVxV49Ywn+wXUGiG+jGtOB6erLx5jnBTf2eSVYoTXqoIbigoxGHLq4nLMLLUg==", + "version": "22.3.23", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.23.tgz", + "integrity": "sha512-2p6NsLFPfM2RmgATchjKZKBUP3O6NxQMWOrHt9W5U2GRtfI8qWlicUR1wnh5D1VLt4c1YsjvpF6dct+1JNRubA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -11240,21 +11158,21 @@ } }, "node_modules/electron-builder": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.5.2.tgz", - "integrity": "sha512-rxlUSSqziRMdTSSzti7It4R7wmuttouMhgTiF0HmoTXvaBKlmHPgkQjaI8ZFIZ0Rg+2TFPlPdMu2BwX3+6HJCg==", + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.6.4.tgz", + "integrity": "sha512-uNWQoU7pE7qOaIQ6CJHpBi44RJFVG8OHRBIadUxrsDJVwLLo8Nma3K/EEtx5/UyWAQYdcK4nVPYKoRqBb20hbA==", "dev": true, "dependencies": { - "app-builder-lib": "24.5.2", + "app-builder-lib": "24.6.4", "builder-util": "24.5.0", "builder-util-runtime": "9.2.1", "chalk": "^4.1.2", - "dmg-builder": "24.5.2", + "dmg-builder": "24.6.4", "fs-extra": "^10.1.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "read-config-file": "6.3.2", - "simple-update-notifier": "^1.1.0", + "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" }, "bin": { @@ -11635,9 +11553,9 @@ } }, "node_modules/electron-updater/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11760,7 +11678,6 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, "license": "MIT" }, "node_modules/encodeurl": { @@ -11775,7 +11692,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -11785,7 +11701,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -11830,7 +11745,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, "engines": { "node": ">=6" } @@ -11850,8 +11764,7 @@ "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/error-ex": { "version": "1.3.2", @@ -11976,7 +11889,6 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -12239,9 +12151,10 @@ } }, "node_modules/eslint-import-resolver-webpack/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } @@ -12845,6 +12758,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, "node_modules/express": { "version": "4.18.2", "dev": true, @@ -13122,6 +13040,20 @@ "pend": "~1.2.0" } }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "dev": true, @@ -13133,6 +13065,11 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -13284,6 +13221,32 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "dev": true, @@ -13370,7 +13333,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -13385,7 +13347,6 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, "license": "ISC" }, "node_modules/fsevents": { @@ -13433,7 +13394,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -13451,14 +13411,12 @@ "node_modules/gauge/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -13467,7 +13425,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13579,7 +13536,6 @@ }, "node_modules/glob": { "version": "7.2.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -13631,9 +13587,9 @@ } }, "node_modules/global-agent/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "optional": true, "dependencies": { @@ -13766,7 +13722,6 @@ }, "node_modules/graceful-fs": { "version": "4.2.10", - "dev": true, "license": "ISC" }, "node_modules/grapheme-splitter": { @@ -13794,6 +13749,26 @@ "dev": true, "license": "MIT" }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/hard-rejection": { "version": "2.1.0", "dev": true, @@ -13868,8 +13843,7 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/he": { "version": "1.2.0", @@ -13879,6 +13853,15 @@ "he": "bin/he" } }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/highlight.js": { "version": "11.7.0", "license": "BSD-3-Clause", @@ -14047,8 +14030,7 @@ "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -14090,7 +14072,6 @@ }, "node_modules/http-proxy-agent": { "version": "5.0.0", - "dev": true, "license": "MIT", "dependencies": { "@tootallnate/once": "2", @@ -14162,7 +14143,6 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -14184,7 +14164,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, "dependencies": { "ms": "^2.0.0" } @@ -14446,7 +14425,6 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -14454,21 +14432,13 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", - "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -14477,7 +14447,6 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -14509,8 +14478,7 @@ "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/ipaddr.js": { "version": "2.0.1", @@ -14683,20 +14651,10 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "node_modules/is-map": { "version": "2.0.2", @@ -14879,17 +14837,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakmap": { "version": "2.0.1", "dev": true, @@ -14951,7 +14898,6 @@ }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, "license": "ISC" }, "node_modules/isobject": { @@ -15049,6 +14995,23 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", + "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -16374,9 +16337,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -17292,7 +17255,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/lodash.camelcase": { @@ -17333,85 +17295,6 @@ "dev": true, "license": "MIT" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -17536,7 +17419,6 @@ }, "node_modules/lower-case": { "version": "2.0.2", - "dev": true, "license": "MIT", "dependencies": { "tslib": "^2.0.3" @@ -17567,7 +17449,6 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -17591,41 +17472,46 @@ } }, "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", - "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", - "dev": true, + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "engines": { "node": ">=12" } }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -17777,6 +17663,11 @@ "node": ">= 0.6" } }, + "node_modules/microbuffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/microbuffer/-/microbuffer-1.0.0.tgz", + "integrity": "sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==" + }, "node_modules/micromatch": { "version": "4.0.5", "dev": true, @@ -17870,7 +17761,6 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -17881,7 +17771,6 @@ }, "node_modules/minimist": { "version": "1.2.7", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -17904,7 +17793,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -17916,7 +17804,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -17925,27 +17812,33 @@ } }, "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "dependencies": { - "minipass": "^3.1.6", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -17957,7 +17850,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -17969,7 +17861,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -17981,7 +17872,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -18006,7 +17896,6 @@ }, "node_modules/ms": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/multicast-dns": { @@ -18021,6 +17910,11 @@ "multicast-dns": "cli.js" } }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, "node_modules/nanoid": { "version": "3.3.4", "dev": true, @@ -18044,7 +17938,6 @@ }, "node_modules/negotiator": { "version": "0.6.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -18052,45 +17945,16 @@ }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, "license": "MIT" }, "node_modules/no-case": { "version": "3.0.4", - "dev": true, "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, - "node_modules/node-abi": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz", - "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-addon-api": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", @@ -18098,30 +17962,6 @@ "dev": true, "optional": true }, - "node_modules/node-api-version": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz", - "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - } - }, - "node_modules/node-api-version/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-forge": { "version": "1.3.1", "dev": true, @@ -18131,15 +17971,15 @@ } }, "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "dev": true, + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -18155,10 +17995,9 @@ } }, "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -18185,7 +18024,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, "dependencies": { "abbrev": "^1.0.0" }, @@ -18211,9 +18049,10 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -18267,7 +18106,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -18434,7 +18272,6 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -18491,99 +18328,6 @@ "resolved": "git+ssh://git@github.com/Ajaxy/opus-recorder.git#116830a94120baad5ac60ac060c2ecd032b6107b", "license": "MIT" }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "license": "MIT" @@ -18627,7 +18371,6 @@ }, "node_modules/p-map": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" @@ -18665,7 +18408,6 @@ }, "node_modules/param-case": { "version": "3.0.4", - "dev": true, "license": "MIT", "dependencies": { "dot-case": "^3.0.4", @@ -18721,7 +18463,6 @@ }, "node_modules/pascal-case": { "version": "3.1.2", - "dev": true, "license": "MIT", "dependencies": { "no-case": "^3.0.4", @@ -18732,6 +18473,15 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -18742,7 +18492,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -18755,7 +18504,6 @@ }, "node_modules/path-key": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -18766,6 +18514,37 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "2.2.1", "dev": true, @@ -18787,7 +18566,6 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -18975,16 +18753,26 @@ } }, "node_modules/plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", "dev": true, "dependencies": { + "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" }, "engines": { - "node": ">=6" + "node": ">=10.4.0" + } + }, + "node_modules/plist/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" } }, "node_modules/postcss": { @@ -19051,9 +18839,10 @@ } }, "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -19256,17 +19045,10 @@ "node": ">=0.4.0" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -19279,7 +19061,6 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, "engines": { "node": ">= 4" } @@ -19649,9 +19430,10 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } @@ -19666,7 +19448,6 @@ }, "node_modules/readable-stream": { "version": "3.6.0", - "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -19970,7 +19751,6 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -20071,7 +19851,7 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/sanitize-filename": { @@ -20141,8 +19921,7 @@ "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/saxes": { "version": "6.0.0", @@ -20230,9 +20009,10 @@ } }, "node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -20293,6 +20073,16 @@ "node": ">= 0.6" } }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -20507,8 +20297,7 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -20528,7 +20317,6 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -20539,7 +20327,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -20568,28 +20355,33 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "dev": true, "license": "ISC" }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" } }, "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/sisteransi": { @@ -20632,16 +20424,32 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/sockjs": { "version": "0.3.24", "dev": true, @@ -20656,7 +20464,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -20670,7 +20477,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -20706,7 +20512,6 @@ }, "node_modules/source-map": { "version": "0.6.1", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -20799,15 +20604,22 @@ "dev": true }, "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", "dependencies": { - "minipass": "^3.1.1" + "minipass": "^7.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/stack-utils": { @@ -20848,7 +20660,6 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -20856,7 +20667,6 @@ }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.2.1", - "dev": true, "funding": [ { "type": "github", @@ -20906,7 +20716,6 @@ }, "node_modules/string-width": { "version": "5.1.2", - "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -20920,9 +20729,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -20933,7 +20768,6 @@ }, "node_modules/string-width/node_modules/strip-ansi": { "version": "7.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -20991,7 +20825,6 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -21000,6 +20833,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -21309,10 +21154,104 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/svg-tags": { "version": "1.0.0", "dev": true }, + "node_modules/svg2ttf": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg2ttf/-/svg2ttf-6.0.3.tgz", + "integrity": "sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==", + "dependencies": { + "@xmldom/xmldom": "^0.7.2", + "argparse": "^2.0.1", + "cubic2quad": "^1.2.1", + "lodash": "^4.17.10", + "microbuffer": "^1.0.0", + "svgpath": "^2.1.5" + }, + "bin": { + "svg2ttf": "svg2ttf.js" + } + }, + "node_modules/svgicons2svgfont": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/svgicons2svgfont/-/svgicons2svgfont-12.0.0.tgz", + "integrity": "sha512-fjyDkhiG0M1TPBtZzD12QV3yDcG2fUgiqHPOCYzf7hHE40Hl3GhnE6P1njsJCCByhwM7MiufyDW3L7IOR5dg9w==", + "dependencies": { + "commander": "^9.3.0", + "glob": "^8.0.3", + "sax": "^1.2.4", + "svg-pathdata": "^6.0.3" + }, + "bin": { + "svgicons2svgfont": "bin/svgicons2svgfont.js" + }, + "engines": { + "node": ">=16.15.0" + } + }, + "node_modules/svgicons2svgfont/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/svgicons2svgfont/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/svgicons2svgfont/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/svgicons2svgfont/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/svgpath": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz", + "integrity": "sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==", + "funding": { + "url": "https://github.com/fontello/svg2ttf?sponsor=1" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "dev": true, @@ -21437,7 +21376,6 @@ "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -21454,7 +21392,6 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", - "dev": true, "engines": { "node": ">=8" } @@ -21463,7 +21400,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -21696,9 +21632,10 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -21774,9 +21711,10 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -21815,6 +21753,52 @@ "dev": true, "license": "0BSD" }, + "node_modules/ttf2eot": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-3.1.0.tgz", + "integrity": "sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "ttf2eot": "ttf2eot.js" + } + }, + "node_modules/ttf2woff": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ttf2woff/-/ttf2woff-3.0.0.tgz", + "integrity": "sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==", + "dependencies": { + "argparse": "^2.0.1", + "pako": "^1.0.0" + }, + "bin": { + "ttf2woff": "ttf2woff.js" + } + }, + "node_modules/ttf2woff/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/ttf2woff2": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-5.0.0.tgz", + "integrity": "sha512-FplhShJd3rT8JGa8N04YWQuP7xRvwr9AIq+9/z5O/5ubqNiCADshKl8v51zJDFkhDVcYpdUqUpm7T4M53Z2JoQ==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "bufferstreams": "^3.0.0", + "nan": "^2.14.2", + "node-gyp": "^9.0.0" + }, + "bin": { + "ttf2woff2": "bin/ttf2woff2.js" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -21881,6 +21865,18 @@ "node": ">=12.20" } }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "dev": true, @@ -21932,27 +21928,25 @@ } }, "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dependencies": { - "unique-slug": "^3.0.0" + "unique-slug": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/universalify": { @@ -22042,6 +22036,22 @@ "registry-url": "3.1.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", "dev": true, @@ -22075,7 +22085,6 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/utila": { @@ -22211,15 +22220,6 @@ "minimalistic-assert": "^1.0.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "dev": true, @@ -22555,7 +22555,6 @@ }, "node_modules/which": { "version": "2.0.2", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -22619,7 +22618,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -22627,14 +22625,12 @@ "node_modules/wide-align/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wide-align/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -22643,7 +22639,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -22674,13 +22669,19 @@ "peer": true }, "node_modules/word-wrap": { - "version": "1.2.3", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, "node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -22697,6 +22698,79 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -22755,7 +22829,6 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -22823,7 +22896,6 @@ }, "node_modules/yallist": { "version": "4.0.0", - "dev": true, "license": "ISC" }, "node_modules/yaml": { diff --git a/package.json b/package.json index 88884bb8b..10d2a6455 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "gramjs:tl": "node ./src/lib/gramjs/tl/generateModules.js", "gramjs:lint": "eslint src/lib/gramjs --ext .ts,.tsx,.js", "gramjs:lint:fix": "npm run gramjs:lint -- --fix", + "icons:build": "fantasticon", "test": "cross-env APP_ENV=test jest --verbose --silent --forceExit", "test:playwright": "playwright test", "test:record": "playwright codegen localhost:1235", @@ -66,6 +67,7 @@ "@statoscope/cli": "^5.26.1", "@statoscope/webpack-plugin": "^5.25.1", "@testing-library/jest-dom": "^5.16.5", + "@twbs/fantasticon": "^2.7.1", "@types/croppie": "^2.6.1", "@types/hast": "^2.3.4", "@types/jest": "^29.5.0", diff --git a/src/assets/font-icons/active-sessions.svg b/src/assets/font-icons/active-sessions.svg new file mode 100644 index 000000000..f825b7723 --- /dev/null +++ b/src/assets/font-icons/active-sessions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/add-one-badge.svg b/src/assets/font-icons/add-one-badge.svg new file mode 100644 index 000000000..511d7d382 --- /dev/null +++ b/src/assets/font-icons/add-one-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/add-user-filled.svg b/src/assets/font-icons/add-user-filled.svg new file mode 100644 index 000000000..f86baf77e --- /dev/null +++ b/src/assets/font-icons/add-user-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/add-user.svg b/src/assets/font-icons/add-user.svg new file mode 100644 index 000000000..6dd768495 --- /dev/null +++ b/src/assets/font-icons/add-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/add.svg b/src/assets/font-icons/add.svg new file mode 100644 index 000000000..8f7cb434a --- /dev/null +++ b/src/assets/font-icons/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/admin.svg b/src/assets/font-icons/admin.svg new file mode 100644 index 000000000..5383a3c10 --- /dev/null +++ b/src/assets/font-icons/admin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/allow-speak.svg b/src/assets/font-icons/allow-speak.svg new file mode 100644 index 000000000..81c8ef0b9 --- /dev/null +++ b/src/assets/font-icons/allow-speak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/animals.svg b/src/assets/font-icons/animals.svg new file mode 100644 index 000000000..959c13c2e --- /dev/null +++ b/src/assets/font-icons/animals.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/animations.svg b/src/assets/font-icons/animations.svg new file mode 100644 index 000000000..50fd505fd --- /dev/null +++ b/src/assets/font-icons/animations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/archive-filled.svg b/src/assets/font-icons/archive-filled.svg new file mode 100644 index 000000000..6e2b8c6e7 --- /dev/null +++ b/src/assets/font-icons/archive-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/archive-from-main.svg b/src/assets/font-icons/archive-from-main.svg new file mode 100644 index 000000000..9aa94e8bf --- /dev/null +++ b/src/assets/font-icons/archive-from-main.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/archive-to-main.svg b/src/assets/font-icons/archive-to-main.svg new file mode 100644 index 000000000..059787a47 --- /dev/null +++ b/src/assets/font-icons/archive-to-main.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/archive.svg b/src/assets/font-icons/archive.svg new file mode 100644 index 000000000..1b717322c --- /dev/null +++ b/src/assets/font-icons/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/arrow-down-circle.svg b/src/assets/font-icons/arrow-down-circle.svg new file mode 100644 index 000000000..663c3b01a --- /dev/null +++ b/src/assets/font-icons/arrow-down-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/arrow-down.svg b/src/assets/font-icons/arrow-down.svg new file mode 100644 index 000000000..515175bad --- /dev/null +++ b/src/assets/font-icons/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/arrow-left.svg b/src/assets/font-icons/arrow-left.svg new file mode 100644 index 000000000..6a6d5a1e7 --- /dev/null +++ b/src/assets/font-icons/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/arrow-right.svg b/src/assets/font-icons/arrow-right.svg new file mode 100644 index 000000000..52c049d6e --- /dev/null +++ b/src/assets/font-icons/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/attach.svg b/src/assets/font-icons/attach.svg new file mode 100644 index 000000000..72ad7b436 --- /dev/null +++ b/src/assets/font-icons/attach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/avatar-archived-chats.svg b/src/assets/font-icons/avatar-archived-chats.svg new file mode 100644 index 000000000..5fb70b414 --- /dev/null +++ b/src/assets/font-icons/avatar-archived-chats.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/avatar-deleted-account.svg b/src/assets/font-icons/avatar-deleted-account.svg new file mode 100644 index 000000000..a135a5602 --- /dev/null +++ b/src/assets/font-icons/avatar-deleted-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/avatar-saved-messages.svg b/src/assets/font-icons/avatar-saved-messages.svg new file mode 100644 index 000000000..576d098c7 --- /dev/null +++ b/src/assets/font-icons/avatar-saved-messages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/bold.svg b/src/assets/font-icons/bold.svg new file mode 100644 index 000000000..c69d14c6b --- /dev/null +++ b/src/assets/font-icons/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/bot-command.svg b/src/assets/font-icons/bot-command.svg new file mode 100644 index 000000000..04879c63b --- /dev/null +++ b/src/assets/font-icons/bot-command.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/bot-commands-filled.svg b/src/assets/font-icons/bot-commands-filled.svg new file mode 100644 index 000000000..44b4d14eb --- /dev/null +++ b/src/assets/font-icons/bot-commands-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/bots.svg b/src/assets/font-icons/bots.svg new file mode 100644 index 000000000..be9bc0beb --- /dev/null +++ b/src/assets/font-icons/bots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/bug.svg b/src/assets/font-icons/bug.svg new file mode 100644 index 000000000..048389bcf --- /dev/null +++ b/src/assets/font-icons/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/calendar-filter.svg b/src/assets/font-icons/calendar-filter.svg new file mode 100644 index 000000000..fc914a536 --- /dev/null +++ b/src/assets/font-icons/calendar-filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/calendar.svg b/src/assets/font-icons/calendar.svg new file mode 100644 index 000000000..1bf855f80 --- /dev/null +++ b/src/assets/font-icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/camera-add.svg b/src/assets/font-icons/camera-add.svg new file mode 100644 index 000000000..203b3894f --- /dev/null +++ b/src/assets/font-icons/camera-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/camera.svg b/src/assets/font-icons/camera.svg new file mode 100644 index 000000000..2d7e5c026 --- /dev/null +++ b/src/assets/font-icons/camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/car.svg b/src/assets/font-icons/car.svg new file mode 100644 index 000000000..b7bd8626c --- /dev/null +++ b/src/assets/font-icons/car.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/card.svg b/src/assets/font-icons/card.svg new file mode 100644 index 000000000..f485ec8c5 --- /dev/null +++ b/src/assets/font-icons/card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/channel-filled.svg b/src/assets/font-icons/channel-filled.svg new file mode 100644 index 000000000..7a709e2bd --- /dev/null +++ b/src/assets/font-icons/channel-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/channel.svg b/src/assets/font-icons/channel.svg new file mode 100644 index 000000000..08144569c --- /dev/null +++ b/src/assets/font-icons/channel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/channelviews.svg b/src/assets/font-icons/channelviews.svg new file mode 100644 index 000000000..565036090 --- /dev/null +++ b/src/assets/font-icons/channelviews.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/chat-badge.svg b/src/assets/font-icons/chat-badge.svg new file mode 100644 index 000000000..f40e59b72 --- /dev/null +++ b/src/assets/font-icons/chat-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/chats-badge.svg b/src/assets/font-icons/chats-badge.svg new file mode 100644 index 000000000..23ec1ff87 --- /dev/null +++ b/src/assets/font-icons/chats-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/check.svg b/src/assets/font-icons/check.svg new file mode 100644 index 000000000..226b71e78 --- /dev/null +++ b/src/assets/font-icons/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/close-circle.svg b/src/assets/font-icons/close-circle.svg new file mode 100644 index 000000000..056ec9129 --- /dev/null +++ b/src/assets/font-icons/close-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/close-topic.svg b/src/assets/font-icons/close-topic.svg new file mode 100644 index 000000000..20b4d61c7 --- /dev/null +++ b/src/assets/font-icons/close-topic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/close.svg b/src/assets/font-icons/close.svg new file mode 100644 index 000000000..b4dc10ea7 --- /dev/null +++ b/src/assets/font-icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/cloud-download.svg b/src/assets/font-icons/cloud-download.svg new file mode 100644 index 000000000..1a0046301 --- /dev/null +++ b/src/assets/font-icons/cloud-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/collapse.svg b/src/assets/font-icons/collapse.svg new file mode 100644 index 000000000..94a467cd1 --- /dev/null +++ b/src/assets/font-icons/collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/colorize.svg b/src/assets/font-icons/colorize.svg new file mode 100644 index 000000000..6b179207f --- /dev/null +++ b/src/assets/font-icons/colorize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/comments-sticker.svg b/src/assets/font-icons/comments-sticker.svg new file mode 100644 index 000000000..7c6eb28fa --- /dev/null +++ b/src/assets/font-icons/comments-sticker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/comments.svg b/src/assets/font-icons/comments.svg new file mode 100644 index 000000000..821a399ba --- /dev/null +++ b/src/assets/font-icons/comments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/copy-media.svg b/src/assets/font-icons/copy-media.svg new file mode 100644 index 000000000..eaa52d030 --- /dev/null +++ b/src/assets/font-icons/copy-media.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/copy.svg b/src/assets/font-icons/copy.svg new file mode 100644 index 000000000..dc6fbcbe7 --- /dev/null +++ b/src/assets/font-icons/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/darkmode.svg b/src/assets/font-icons/darkmode.svg new file mode 100644 index 000000000..1e4a423bb --- /dev/null +++ b/src/assets/font-icons/darkmode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/data.svg b/src/assets/font-icons/data.svg new file mode 100644 index 000000000..2fdae1d4d --- /dev/null +++ b/src/assets/font-icons/data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/delete-filled.svg b/src/assets/font-icons/delete-filled.svg new file mode 100644 index 000000000..34985f46c --- /dev/null +++ b/src/assets/font-icons/delete-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/delete-left.svg b/src/assets/font-icons/delete-left.svg new file mode 100644 index 000000000..63e64575b --- /dev/null +++ b/src/assets/font-icons/delete-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/delete-user.svg b/src/assets/font-icons/delete-user.svg new file mode 100644 index 000000000..c0bf5f3d8 --- /dev/null +++ b/src/assets/font-icons/delete-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/delete.svg b/src/assets/font-icons/delete.svg new file mode 100644 index 000000000..3266bd103 --- /dev/null +++ b/src/assets/font-icons/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/document.svg b/src/assets/font-icons/document.svg new file mode 100644 index 000000000..39fe3be39 --- /dev/null +++ b/src/assets/font-icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/double-badge.svg b/src/assets/font-icons/double-badge.svg new file mode 100644 index 000000000..520b66b47 --- /dev/null +++ b/src/assets/font-icons/double-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/down.svg b/src/assets/font-icons/down.svg new file mode 100644 index 000000000..6547288c2 --- /dev/null +++ b/src/assets/font-icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/download.svg b/src/assets/font-icons/download.svg new file mode 100644 index 000000000..7c5946759 --- /dev/null +++ b/src/assets/font-icons/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/eats.svg b/src/assets/font-icons/eats.svg new file mode 100644 index 000000000..cccdbf06e --- /dev/null +++ b/src/assets/font-icons/eats.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/edit.svg b/src/assets/font-icons/edit.svg new file mode 100644 index 000000000..f86b77f1f --- /dev/null +++ b/src/assets/font-icons/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/email.svg b/src/assets/font-icons/email.svg new file mode 100644 index 000000000..71edc4c7a --- /dev/null +++ b/src/assets/font-icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/enter.svg b/src/assets/font-icons/enter.svg new file mode 100644 index 000000000..3e1c43fda --- /dev/null +++ b/src/assets/font-icons/enter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/expand.svg b/src/assets/font-icons/expand.svg new file mode 100644 index 000000000..ac3d66471 --- /dev/null +++ b/src/assets/font-icons/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/eye-closed-outline.svg b/src/assets/font-icons/eye-closed-outline.svg new file mode 100644 index 000000000..240e12ee6 --- /dev/null +++ b/src/assets/font-icons/eye-closed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/eye-closed.svg b/src/assets/font-icons/eye-closed.svg new file mode 100644 index 000000000..270b1b9bf --- /dev/null +++ b/src/assets/font-icons/eye-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/eye-outline.svg b/src/assets/font-icons/eye-outline.svg new file mode 100644 index 000000000..0ebb379d5 --- /dev/null +++ b/src/assets/font-icons/eye-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/eye.svg b/src/assets/font-icons/eye.svg new file mode 100644 index 000000000..dbeddbd96 --- /dev/null +++ b/src/assets/font-icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/favorite-filled.svg b/src/assets/font-icons/favorite-filled.svg new file mode 100644 index 000000000..40690945e --- /dev/null +++ b/src/assets/font-icons/favorite-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/favorite.svg b/src/assets/font-icons/favorite.svg new file mode 100644 index 000000000..17353a82e --- /dev/null +++ b/src/assets/font-icons/favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/file-badge.svg b/src/assets/font-icons/file-badge.svg new file mode 100644 index 000000000..387f1ae4d --- /dev/null +++ b/src/assets/font-icons/file-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/flag.svg b/src/assets/font-icons/flag.svg new file mode 100644 index 000000000..958f776d1 --- /dev/null +++ b/src/assets/font-icons/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/folder-badge.svg b/src/assets/font-icons/folder-badge.svg new file mode 100644 index 000000000..df0d7981f --- /dev/null +++ b/src/assets/font-icons/folder-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/folder.svg b/src/assets/font-icons/folder.svg new file mode 100644 index 000000000..d75026e2c --- /dev/null +++ b/src/assets/font-icons/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/fontsize.svg b/src/assets/font-icons/fontsize.svg new file mode 100644 index 000000000..cfe6e22a4 --- /dev/null +++ b/src/assets/font-icons/fontsize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/forums.svg b/src/assets/font-icons/forums.svg new file mode 100644 index 000000000..57eb022e8 --- /dev/null +++ b/src/assets/font-icons/forums.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/forward.svg b/src/assets/font-icons/forward.svg new file mode 100644 index 000000000..d06dc8f0c --- /dev/null +++ b/src/assets/font-icons/forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/fullscreen.svg b/src/assets/font-icons/fullscreen.svg new file mode 100644 index 000000000..6abb93d7a --- /dev/null +++ b/src/assets/font-icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/gifs.svg b/src/assets/font-icons/gifs.svg new file mode 100644 index 000000000..80575eebf --- /dev/null +++ b/src/assets/font-icons/gifs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/gift.svg b/src/assets/font-icons/gift.svg new file mode 100644 index 000000000..0df7d9740 --- /dev/null +++ b/src/assets/font-icons/gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/group-filled.svg b/src/assets/font-icons/group-filled.svg new file mode 100644 index 000000000..a5e34eca2 --- /dev/null +++ b/src/assets/font-icons/group-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/group.svg b/src/assets/font-icons/group.svg new file mode 100644 index 000000000..49c0853c4 --- /dev/null +++ b/src/assets/font-icons/group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/grouped-disable.svg b/src/assets/font-icons/grouped-disable.svg new file mode 100644 index 000000000..f3267210a --- /dev/null +++ b/src/assets/font-icons/grouped-disable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/grouped.svg b/src/assets/font-icons/grouped.svg new file mode 100644 index 000000000..1fa0b4628 --- /dev/null +++ b/src/assets/font-icons/grouped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/hand-stop.svg b/src/assets/font-icons/hand-stop.svg new file mode 100644 index 000000000..540546b9f --- /dev/null +++ b/src/assets/font-icons/hand-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/hashtag.svg b/src/assets/font-icons/hashtag.svg new file mode 100644 index 000000000..a36000710 --- /dev/null +++ b/src/assets/font-icons/hashtag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/heart-outline.svg b/src/assets/font-icons/heart-outline.svg new file mode 100644 index 000000000..b95f808b1 --- /dev/null +++ b/src/assets/font-icons/heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/heart.svg b/src/assets/font-icons/heart.svg new file mode 100644 index 000000000..10e03ccc9 --- /dev/null +++ b/src/assets/font-icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/help.svg b/src/assets/font-icons/help.svg new file mode 100644 index 000000000..d5242a795 --- /dev/null +++ b/src/assets/font-icons/help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/info-filled.svg b/src/assets/font-icons/info-filled.svg new file mode 100644 index 000000000..c2a1930bd --- /dev/null +++ b/src/assets/font-icons/info-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/info.svg b/src/assets/font-icons/info.svg new file mode 100644 index 000000000..de1cb26b6 --- /dev/null +++ b/src/assets/font-icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/install.svg b/src/assets/font-icons/install.svg new file mode 100644 index 000000000..920af829d --- /dev/null +++ b/src/assets/font-icons/install.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/italic.svg b/src/assets/font-icons/italic.svg new file mode 100644 index 000000000..a68b2fe01 --- /dev/null +++ b/src/assets/font-icons/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/key.svg b/src/assets/font-icons/key.svg new file mode 100644 index 000000000..475899ef3 --- /dev/null +++ b/src/assets/font-icons/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/keyboard.svg b/src/assets/font-icons/keyboard.svg new file mode 100644 index 000000000..2d8a0c95e --- /dev/null +++ b/src/assets/font-icons/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/lamp.svg b/src/assets/font-icons/lamp.svg new file mode 100644 index 000000000..987d23f10 --- /dev/null +++ b/src/assets/font-icons/lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/language.svg b/src/assets/font-icons/language.svg new file mode 100644 index 000000000..4dd2b2dd9 --- /dev/null +++ b/src/assets/font-icons/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/large-pause.svg b/src/assets/font-icons/large-pause.svg new file mode 100644 index 000000000..961e61008 --- /dev/null +++ b/src/assets/font-icons/large-pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/large-play.svg b/src/assets/font-icons/large-play.svg new file mode 100644 index 000000000..3b7c36a11 --- /dev/null +++ b/src/assets/font-icons/large-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/link-badge.svg b/src/assets/font-icons/link-badge.svg new file mode 100644 index 000000000..934209e2e --- /dev/null +++ b/src/assets/font-icons/link-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/link-broken.svg b/src/assets/font-icons/link-broken.svg new file mode 100644 index 000000000..157cf962d --- /dev/null +++ b/src/assets/font-icons/link-broken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/link.svg b/src/assets/font-icons/link.svg new file mode 100644 index 000000000..098d6a357 --- /dev/null +++ b/src/assets/font-icons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/location.svg b/src/assets/font-icons/location.svg new file mode 100644 index 000000000..01a5c7630 --- /dev/null +++ b/src/assets/font-icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/lock-badge.svg b/src/assets/font-icons/lock-badge.svg new file mode 100644 index 000000000..d1d5fccee --- /dev/null +++ b/src/assets/font-icons/lock-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/lock.svg b/src/assets/font-icons/lock.svg new file mode 100644 index 000000000..ba83cc0a5 --- /dev/null +++ b/src/assets/font-icons/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/logout.svg b/src/assets/font-icons/logout.svg new file mode 100644 index 000000000..0bce0fd46 --- /dev/null +++ b/src/assets/font-icons/logout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/loop.svg b/src/assets/font-icons/loop.svg new file mode 100644 index 000000000..315162a56 --- /dev/null +++ b/src/assets/font-icons/loop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/mention.svg b/src/assets/font-icons/mention.svg new file mode 100644 index 000000000..86445e4bf --- /dev/null +++ b/src/assets/font-icons/mention.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/message-failed.svg b/src/assets/font-icons/message-failed.svg new file mode 100644 index 000000000..fc72bbe97 --- /dev/null +++ b/src/assets/font-icons/message-failed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/message-pending.svg b/src/assets/font-icons/message-pending.svg new file mode 100644 index 000000000..b5d64e59e --- /dev/null +++ b/src/assets/font-icons/message-pending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/message-read.svg b/src/assets/font-icons/message-read.svg new file mode 100644 index 000000000..29534018e --- /dev/null +++ b/src/assets/font-icons/message-read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/message-succeeded.svg b/src/assets/font-icons/message-succeeded.svg new file mode 100644 index 000000000..d6a8acced --- /dev/null +++ b/src/assets/font-icons/message-succeeded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/message.svg b/src/assets/font-icons/message.svg new file mode 100644 index 000000000..9d5fb2443 --- /dev/null +++ b/src/assets/font-icons/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/microphone-alt.svg b/src/assets/font-icons/microphone-alt.svg new file mode 100644 index 000000000..38d103b7f --- /dev/null +++ b/src/assets/font-icons/microphone-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/microphone.svg b/src/assets/font-icons/microphone.svg new file mode 100644 index 000000000..fdcf30f0b --- /dev/null +++ b/src/assets/font-icons/microphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/monospace.svg b/src/assets/font-icons/monospace.svg new file mode 100644 index 000000000..259dc0e83 --- /dev/null +++ b/src/assets/font-icons/monospace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/more-circle.svg b/src/assets/font-icons/more-circle.svg new file mode 100644 index 000000000..0ee42d309 --- /dev/null +++ b/src/assets/font-icons/more-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/more.svg b/src/assets/font-icons/more.svg new file mode 100644 index 000000000..67676f099 --- /dev/null +++ b/src/assets/font-icons/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/mute.svg b/src/assets/font-icons/mute.svg new file mode 100644 index 000000000..41d4f2a17 --- /dev/null +++ b/src/assets/font-icons/mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/muted.svg b/src/assets/font-icons/muted.svg new file mode 100644 index 000000000..106b92d8b --- /dev/null +++ b/src/assets/font-icons/muted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/new-chat-filled.svg b/src/assets/font-icons/new-chat-filled.svg new file mode 100644 index 000000000..49079435b --- /dev/null +++ b/src/assets/font-icons/new-chat-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/next.svg b/src/assets/font-icons/next.svg new file mode 100644 index 000000000..06c0e31f9 --- /dev/null +++ b/src/assets/font-icons/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/noise-suppression.svg b/src/assets/font-icons/noise-suppression.svg new file mode 100644 index 000000000..0caf62150 --- /dev/null +++ b/src/assets/font-icons/noise-suppression.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/non-contacts.svg b/src/assets/font-icons/non-contacts.svg new file mode 100644 index 000000000..527801c93 --- /dev/null +++ b/src/assets/font-icons/non-contacts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/open-in-new-tab.svg b/src/assets/font-icons/open-in-new-tab.svg new file mode 100644 index 000000000..5dc05875d --- /dev/null +++ b/src/assets/font-icons/open-in-new-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/password-off.svg b/src/assets/font-icons/password-off.svg new file mode 100644 index 000000000..5c0344afb --- /dev/null +++ b/src/assets/font-icons/password-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pause.svg b/src/assets/font-icons/pause.svg new file mode 100644 index 000000000..4d660af54 --- /dev/null +++ b/src/assets/font-icons/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/permissions.svg b/src/assets/font-icons/permissions.svg new file mode 100644 index 000000000..00eaff0bb --- /dev/null +++ b/src/assets/font-icons/permissions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/phone-discard-outline.svg b/src/assets/font-icons/phone-discard-outline.svg new file mode 100644 index 000000000..1b8718638 --- /dev/null +++ b/src/assets/font-icons/phone-discard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/phone-discard.svg b/src/assets/font-icons/phone-discard.svg new file mode 100644 index 000000000..d755c9106 --- /dev/null +++ b/src/assets/font-icons/phone-discard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/phone.svg b/src/assets/font-icons/phone.svg new file mode 100644 index 000000000..3a841736d --- /dev/null +++ b/src/assets/font-icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/photo.svg b/src/assets/font-icons/photo.svg new file mode 100644 index 000000000..429622072 --- /dev/null +++ b/src/assets/font-icons/photo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pin-badge.svg b/src/assets/font-icons/pin-badge.svg new file mode 100644 index 000000000..7b4d24521 --- /dev/null +++ b/src/assets/font-icons/pin-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pin-list.svg b/src/assets/font-icons/pin-list.svg new file mode 100644 index 000000000..a4b14e29d --- /dev/null +++ b/src/assets/font-icons/pin-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pin.svg b/src/assets/font-icons/pin.svg new file mode 100644 index 000000000..b45159890 --- /dev/null +++ b/src/assets/font-icons/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pinned-chat.svg b/src/assets/font-icons/pinned-chat.svg new file mode 100644 index 000000000..2515f9f79 --- /dev/null +++ b/src/assets/font-icons/pinned-chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pinned-message.svg b/src/assets/font-icons/pinned-message.svg new file mode 100644 index 000000000..9f0fe8778 --- /dev/null +++ b/src/assets/font-icons/pinned-message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/pip.svg b/src/assets/font-icons/pip.svg new file mode 100644 index 000000000..08d327be5 --- /dev/null +++ b/src/assets/font-icons/pip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/play-story.svg b/src/assets/font-icons/play-story.svg new file mode 100644 index 000000000..d3a91b3e5 --- /dev/null +++ b/src/assets/font-icons/play-story.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/play.svg b/src/assets/font-icons/play.svg new file mode 100644 index 000000000..4ffbc6a8e --- /dev/null +++ b/src/assets/font-icons/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/poll.svg b/src/assets/font-icons/poll.svg new file mode 100644 index 000000000..1a2c88898 --- /dev/null +++ b/src/assets/font-icons/poll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/premium.svg b/src/assets/font-icons/premium.svg new file mode 100644 index 000000000..46f6b1296 --- /dev/null +++ b/src/assets/font-icons/premium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/previous.svg b/src/assets/font-icons/previous.svg new file mode 100644 index 000000000..c96661521 --- /dev/null +++ b/src/assets/font-icons/previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/readchats.svg b/src/assets/font-icons/readchats.svg new file mode 100644 index 000000000..13c8458e3 --- /dev/null +++ b/src/assets/font-icons/readchats.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/recent.svg b/src/assets/font-icons/recent.svg new file mode 100644 index 000000000..373732c18 --- /dev/null +++ b/src/assets/font-icons/recent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/reload.svg b/src/assets/font-icons/reload.svg new file mode 100644 index 000000000..99eda590c --- /dev/null +++ b/src/assets/font-icons/reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/remove.svg b/src/assets/font-icons/remove.svg new file mode 100644 index 000000000..3c0e826cd --- /dev/null +++ b/src/assets/font-icons/remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/reopen-topic.svg b/src/assets/font-icons/reopen-topic.svg new file mode 100644 index 000000000..260081ad5 --- /dev/null +++ b/src/assets/font-icons/reopen-topic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/replace.svg b/src/assets/font-icons/replace.svg new file mode 100644 index 000000000..8580ba90b --- /dev/null +++ b/src/assets/font-icons/replace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/replies.svg b/src/assets/font-icons/replies.svg new file mode 100644 index 000000000..0042ceb93 --- /dev/null +++ b/src/assets/font-icons/replies.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/reply-filled.svg b/src/assets/font-icons/reply-filled.svg new file mode 100644 index 000000000..b2a8b45f2 --- /dev/null +++ b/src/assets/font-icons/reply-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/reply.svg b/src/assets/font-icons/reply.svg new file mode 100644 index 000000000..8fbc000c8 --- /dev/null +++ b/src/assets/font-icons/reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/revote.svg b/src/assets/font-icons/revote.svg new file mode 100644 index 000000000..c88cae622 --- /dev/null +++ b/src/assets/font-icons/revote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/save-story.svg b/src/assets/font-icons/save-story.svg new file mode 100644 index 000000000..7093f4169 --- /dev/null +++ b/src/assets/font-icons/save-story.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/saved-messages.svg b/src/assets/font-icons/saved-messages.svg new file mode 100644 index 000000000..e45753396 --- /dev/null +++ b/src/assets/font-icons/saved-messages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/schedule.svg b/src/assets/font-icons/schedule.svg new file mode 100644 index 000000000..62d04998f --- /dev/null +++ b/src/assets/font-icons/schedule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/search.svg b/src/assets/font-icons/search.svg new file mode 100644 index 000000000..45b1dd4a3 --- /dev/null +++ b/src/assets/font-icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/select.svg b/src/assets/font-icons/select.svg new file mode 100644 index 000000000..8f12dae79 --- /dev/null +++ b/src/assets/font-icons/select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/send-outline.svg b/src/assets/font-icons/send-outline.svg new file mode 100644 index 000000000..cd8168910 --- /dev/null +++ b/src/assets/font-icons/send-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/send.svg b/src/assets/font-icons/send.svg new file mode 100644 index 000000000..4a7cca2ab --- /dev/null +++ b/src/assets/font-icons/send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/settings-filled.svg b/src/assets/font-icons/settings-filled.svg new file mode 100644 index 000000000..b9f741b88 --- /dev/null +++ b/src/assets/font-icons/settings-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/settings.svg b/src/assets/font-icons/settings.svg new file mode 100644 index 000000000..e50fbe594 --- /dev/null +++ b/src/assets/font-icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/share-filled.svg b/src/assets/font-icons/share-filled.svg new file mode 100644 index 000000000..090399b76 --- /dev/null +++ b/src/assets/font-icons/share-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/share-screen-outlined.svg b/src/assets/font-icons/share-screen-outlined.svg new file mode 100644 index 000000000..cb480ed2f --- /dev/null +++ b/src/assets/font-icons/share-screen-outlined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/share-screen-stop.svg b/src/assets/font-icons/share-screen-stop.svg new file mode 100644 index 000000000..e080d42bb --- /dev/null +++ b/src/assets/font-icons/share-screen-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/share-screen.svg b/src/assets/font-icons/share-screen.svg new file mode 100644 index 000000000..760abcd1c --- /dev/null +++ b/src/assets/font-icons/share-screen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/sidebar.svg b/src/assets/font-icons/sidebar.svg new file mode 100644 index 000000000..56489bb88 --- /dev/null +++ b/src/assets/font-icons/sidebar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/skip-next.svg b/src/assets/font-icons/skip-next.svg new file mode 100644 index 000000000..f762a4e96 --- /dev/null +++ b/src/assets/font-icons/skip-next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/skip-previous.svg b/src/assets/font-icons/skip-previous.svg new file mode 100644 index 000000000..8018e50c8 --- /dev/null +++ b/src/assets/font-icons/skip-previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/smallscreen.svg b/src/assets/font-icons/smallscreen.svg new file mode 100644 index 000000000..dea74a169 --- /dev/null +++ b/src/assets/font-icons/smallscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/smile.svg b/src/assets/font-icons/smile.svg new file mode 100644 index 000000000..3b827ca23 --- /dev/null +++ b/src/assets/font-icons/smile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/sort.svg b/src/assets/font-icons/sort.svg new file mode 100644 index 000000000..f2128cbf1 --- /dev/null +++ b/src/assets/font-icons/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/speaker-muted-story.svg b/src/assets/font-icons/speaker-muted-story.svg new file mode 100644 index 000000000..0e6c81af9 --- /dev/null +++ b/src/assets/font-icons/speaker-muted-story.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/speaker-outline.svg b/src/assets/font-icons/speaker-outline.svg new file mode 100644 index 000000000..ab374e8aa --- /dev/null +++ b/src/assets/font-icons/speaker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/speaker-story.svg b/src/assets/font-icons/speaker-story.svg new file mode 100644 index 000000000..d8c37108e --- /dev/null +++ b/src/assets/font-icons/speaker-story.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/speaker.svg b/src/assets/font-icons/speaker.svg new file mode 100644 index 000000000..b2821f35d --- /dev/null +++ b/src/assets/font-icons/speaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/spoiler-disable.svg b/src/assets/font-icons/spoiler-disable.svg new file mode 100644 index 000000000..6672dec4f --- /dev/null +++ b/src/assets/font-icons/spoiler-disable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/spoiler.svg b/src/assets/font-icons/spoiler.svg new file mode 100644 index 000000000..ee13336dd --- /dev/null +++ b/src/assets/font-icons/spoiler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/sport.svg b/src/assets/font-icons/sport.svg new file mode 100644 index 000000000..a0a26cb12 --- /dev/null +++ b/src/assets/font-icons/sport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stats.svg b/src/assets/font-icons/stats.svg new file mode 100644 index 000000000..366dd1796 --- /dev/null +++ b/src/assets/font-icons/stats.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stealth-future.svg b/src/assets/font-icons/stealth-future.svg new file mode 100644 index 000000000..7f66ceae4 --- /dev/null +++ b/src/assets/font-icons/stealth-future.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stealth-past.svg b/src/assets/font-icons/stealth-past.svg new file mode 100644 index 000000000..4df90dfb3 --- /dev/null +++ b/src/assets/font-icons/stealth-past.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stickers.svg b/src/assets/font-icons/stickers.svg new file mode 100644 index 000000000..7ab6e031f --- /dev/null +++ b/src/assets/font-icons/stickers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stop-raising-hand.svg b/src/assets/font-icons/stop-raising-hand.svg new file mode 100644 index 000000000..9239fa90f --- /dev/null +++ b/src/assets/font-icons/stop-raising-hand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/stop.svg b/src/assets/font-icons/stop.svg new file mode 100644 index 000000000..31fdb2a9d --- /dev/null +++ b/src/assets/font-icons/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/story-caption.svg b/src/assets/font-icons/story-caption.svg new file mode 100644 index 000000000..759a041c3 --- /dev/null +++ b/src/assets/font-icons/story-caption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/story-expired.svg b/src/assets/font-icons/story-expired.svg new file mode 100644 index 000000000..2971c00a1 --- /dev/null +++ b/src/assets/font-icons/story-expired.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/story-priority.svg b/src/assets/font-icons/story-priority.svg new file mode 100644 index 000000000..158e74e7c --- /dev/null +++ b/src/assets/font-icons/story-priority.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/story-reply.svg b/src/assets/font-icons/story-reply.svg new file mode 100644 index 000000000..73d5ec360 --- /dev/null +++ b/src/assets/font-icons/story-reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/strikethrough.svg b/src/assets/font-icons/strikethrough.svg new file mode 100644 index 000000000..39fed47ce --- /dev/null +++ b/src/assets/font-icons/strikethrough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/timer.svg b/src/assets/font-icons/timer.svg new file mode 100644 index 000000000..67cd8d612 --- /dev/null +++ b/src/assets/font-icons/timer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/transcribe.svg b/src/assets/font-icons/transcribe.svg new file mode 100644 index 000000000..21b05f89c --- /dev/null +++ b/src/assets/font-icons/transcribe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/truck.svg b/src/assets/font-icons/truck.svg new file mode 100644 index 000000000..0b4498cbc --- /dev/null +++ b/src/assets/font-icons/truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unarchive.svg b/src/assets/font-icons/unarchive.svg new file mode 100644 index 000000000..d2af96327 --- /dev/null +++ b/src/assets/font-icons/unarchive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/underlined.svg b/src/assets/font-icons/underlined.svg new file mode 100644 index 000000000..9c27563e3 --- /dev/null +++ b/src/assets/font-icons/underlined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unlock-badge.svg b/src/assets/font-icons/unlock-badge.svg new file mode 100644 index 000000000..ea3180bc9 --- /dev/null +++ b/src/assets/font-icons/unlock-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unlock.svg b/src/assets/font-icons/unlock.svg new file mode 100644 index 000000000..d7055dd00 --- /dev/null +++ b/src/assets/font-icons/unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unmute.svg b/src/assets/font-icons/unmute.svg new file mode 100644 index 000000000..682494619 --- /dev/null +++ b/src/assets/font-icons/unmute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unpin.svg b/src/assets/font-icons/unpin.svg new file mode 100644 index 000000000..83ae79bdb --- /dev/null +++ b/src/assets/font-icons/unpin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/unread.svg b/src/assets/font-icons/unread.svg new file mode 100644 index 000000000..115be6a79 --- /dev/null +++ b/src/assets/font-icons/unread.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/up.svg b/src/assets/font-icons/up.svg new file mode 100644 index 000000000..e736c1108 --- /dev/null +++ b/src/assets/font-icons/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/user-filled.svg b/src/assets/font-icons/user-filled.svg new file mode 100644 index 000000000..bd77caa1e --- /dev/null +++ b/src/assets/font-icons/user-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/user-online.svg b/src/assets/font-icons/user-online.svg new file mode 100644 index 000000000..af3e4abaa --- /dev/null +++ b/src/assets/font-icons/user-online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/user.svg b/src/assets/font-icons/user.svg new file mode 100644 index 000000000..b29812efa --- /dev/null +++ b/src/assets/font-icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/video-outlined.svg b/src/assets/font-icons/video-outlined.svg new file mode 100644 index 000000000..7e9110fa0 --- /dev/null +++ b/src/assets/font-icons/video-outlined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/video-stop.svg b/src/assets/font-icons/video-stop.svg new file mode 100644 index 000000000..9d750f8da --- /dev/null +++ b/src/assets/font-icons/video-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/video.svg b/src/assets/font-icons/video.svg new file mode 100644 index 000000000..9497e8f44 --- /dev/null +++ b/src/assets/font-icons/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/voice-chat.svg b/src/assets/font-icons/voice-chat.svg new file mode 100644 index 000000000..035c197dd --- /dev/null +++ b/src/assets/font-icons/voice-chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/volume-1.svg b/src/assets/font-icons/volume-1.svg new file mode 100644 index 000000000..80411722d --- /dev/null +++ b/src/assets/font-icons/volume-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/volume-2.svg b/src/assets/font-icons/volume-2.svg new file mode 100644 index 000000000..5b6b49c68 --- /dev/null +++ b/src/assets/font-icons/volume-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/volume-3.svg b/src/assets/font-icons/volume-3.svg new file mode 100644 index 000000000..c77efe032 --- /dev/null +++ b/src/assets/font-icons/volume-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/web.svg b/src/assets/font-icons/web.svg new file mode 100644 index 000000000..567049fba --- /dev/null +++ b/src/assets/font-icons/web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/webapp.svg b/src/assets/font-icons/webapp.svg new file mode 100644 index 000000000..e5aa0be43 --- /dev/null +++ b/src/assets/font-icons/webapp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/word-wrap.svg b/src/assets/font-icons/word-wrap.svg new file mode 100644 index 000000000..cfc96eec0 --- /dev/null +++ b/src/assets/font-icons/word-wrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/zoom-in.svg b/src/assets/font-icons/zoom-in.svg new file mode 100644 index 000000000..f04df809d --- /dev/null +++ b/src/assets/font-icons/zoom-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/zoom-out.svg b/src/assets/font-icons/zoom-out.svg new file mode 100644 index 000000000..88ec1d839 --- /dev/null +++ b/src/assets/font-icons/zoom-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/fonts/icomoon.woff b/src/assets/fonts/icomoon.woff deleted file mode 100644 index 51b714884db377b652e77c4bdb1038a156a2af04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66940 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≺ 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 T@;|2j$NyJ8f@RDMOYwgJcuaeh diff --git a/src/components/calls/phone/PhoneCallButton.tsx b/src/components/calls/phone/PhoneCallButton.tsx index d3f66f3a1..e3e66b99d 100644 --- a/src/components/calls/phone/PhoneCallButton.tsx +++ b/src/components/calls/phone/PhoneCallButton.tsx @@ -1,6 +1,8 @@ import type { FC } from '../../../lib/teact/teact'; import React, { memo } from '../../../lib/teact/teact'; +import type { IconName } from '../../../types/icons'; + import buildClassName from '../../../util/buildClassName'; import Button from '../../ui/Button'; @@ -10,7 +12,7 @@ import styles from './PhoneCallButton.module.scss'; type OwnProps = { onClick: VoidFunction; label: string; - icon?: string; + icon?: IconName; iconClassName?: string; customIcon?: React.ReactNode; className?: string; diff --git a/src/components/common/Document.tsx b/src/components/common/Document.tsx index a5aed21e7..f02b8bf89 100644 --- a/src/components/common/Document.tsx +++ b/src/components/common/Document.tsx @@ -156,7 +156,7 @@ const Document: FC = ({ sender={sender} isSelectable={isSelectable} isSelected={isSelected} - actionIcon={withMediaViewer ? (isMessageDocumentVideo(message) ? 'icon-play' : 'icon-eye') : 'icon-download'} + actionIcon={withMediaViewer ? (isMessageDocumentVideo(message) ? 'play' : 'eye') : 'download'} onClick={handleClick} onDateClick={onDateClick ? handleDateClick : undefined} /> diff --git a/src/components/common/File.tsx b/src/components/common/File.tsx index 61c864a1b..0459f6634 100644 --- a/src/components/common/File.tsx +++ b/src/components/common/File.tsx @@ -3,6 +3,7 @@ import React, { } from '../../lib/teact/teact'; import type { FC } from '../../lib/teact/teact'; +import type { IconName } from '../../types/icons'; import { IS_CANVAS_FILTER_SUPPORTED } from '../../util/windowEnvironment'; import buildClassName from '../../util/buildClassName'; @@ -37,7 +38,7 @@ type OwnProps = { isSelectable?: boolean; isSelected?: boolean; transferProgress?: number; - actionIcon?: string; + actionIcon?: IconName; onClick?: () => void; onDateClick?: (e: React.MouseEvent) => void; }; @@ -142,7 +143,7 @@ const File: FC = ({ className={buildClassName( 'action-icon', 'icon', - actionIcon || 'icon-download', + actionIcon ? `icon-${actionIcon}` : 'icon-download', shouldSpinnerRender && 'hidden', )} /> diff --git a/src/components/common/PickerSelectedItem.tsx b/src/components/common/PickerSelectedItem.tsx index f2b24d88d..90200a087 100644 --- a/src/components/common/PickerSelectedItem.tsx +++ b/src/components/common/PickerSelectedItem.tsx @@ -3,6 +3,7 @@ import { withGlobal } from '../../global'; import type { FC, TeactNode } from '../../lib/teact/teact'; import type { ApiChat, ApiUser } from '../../api/types'; +import type { IconName } from '../../types/icons'; import { selectChat, selectUser } from '../../global/selectors'; import { getChatTitle, getUserFirstOrLastName, isUserId } from '../../global/helpers'; @@ -16,7 +17,7 @@ import './PickerSelectedItem.scss'; type OwnProps = { chatOrUserId?: string; - icon?: string; + icon?: IconName; title?: string; isMinimized?: boolean; canClose?: boolean; diff --git a/src/components/common/PrivateChatInfo.tsx b/src/components/common/PrivateChatInfo.tsx index 0ff40c4d7..1a710e56e 100644 --- a/src/components/common/PrivateChatInfo.tsx +++ b/src/components/common/PrivateChatInfo.tsx @@ -7,6 +7,7 @@ import type { } from '../../api/types'; import type { StoryViewerOrigin } from '../../types'; import { MediaViewerOrigin } from '../../types'; +import type { IconName } from '../../types/icons'; import { selectChatMessages, selectUser, selectUserStatus } from '../../global/selectors'; import { getMainUsername, getUserStatus, isUserOnline } from '../../global/helpers'; @@ -28,7 +29,7 @@ type OwnProps = { avatarSize?: 'tiny' | 'small' | 'medium' | 'large' | 'jumbo'; forceShowSelf?: boolean; status?: string; - statusIcon?: string; + statusIcon?: IconName; ripple?: boolean; withDots?: boolean; withMediaViewer?: boolean; @@ -119,7 +120,7 @@ const PrivateChatInfo: FC = ({ ) : ( - {statusIcon && } + {statusIcon && } {renderText(status)} ); diff --git a/src/components/common/SeenByModal.tsx b/src/components/common/SeenByModal.tsx index 9900321fd..f60faa87f 100644 --- a/src/components/common/SeenByModal.tsx +++ b/src/components/common/SeenByModal.tsx @@ -80,7 +80,7 @@ function SeenByModal({ userId={userId} noStatusOrTyping status={formatDateAtTime(lang, renderingSeenByDates![userId] * 1000)} - statusIcon="icon-message-read" + statusIcon="message-read" /> ))} diff --git a/src/components/left/main/Archive.tsx b/src/components/left/main/Archive.tsx index 0748e1871..76cb0b48f 100644 --- a/src/components/left/main/Archive.tsx +++ b/src/components/left/main/Archive.tsx @@ -14,7 +14,7 @@ import { getChatTitle } from '../../../global/helpers'; import useLang from '../../../hooks/useLang'; import { useFolderManagerForOrderedIds, useFolderManagerForUnreadCounters } from '../../../hooks/useFolderManager'; -import ListItem from '../../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../../ui/ListItem'; import Badge from '../../ui/Badge'; import styles from './Archive.module.scss'; @@ -71,7 +71,7 @@ const Archive: FC = ({ handler: () => { updateArchiveSettings({ isMinimized: true }); }, - }; + } satisfies MenuItemContextAction; const actionExpand = archiveSettings.isMinimized && { title: lang('lng_context_archive_expand'), @@ -79,7 +79,7 @@ const Archive: FC = ({ handler: () => { updateArchiveSettings({ isMinimized: false }); }, - }; + } satisfies MenuItemContextAction; const actionHide = { title: lang('lng_context_archive_to_menu'), @@ -87,7 +87,7 @@ const Archive: FC = ({ handler: () => { updateArchiveSettings({ isHidden: true }); }, - }; + } satisfies MenuItemContextAction; return compact([actionMinimize, actionExpand, actionHide]); }, [archiveSettings.isMinimized, lang, updateArchiveSettings]); diff --git a/src/components/left/main/ChatFolders.tsx b/src/components/left/main/ChatFolders.tsx index 84b7d7e00..993c8484e 100644 --- a/src/components/left/main/ChatFolders.tsx +++ b/src/components/left/main/ChatFolders.tsx @@ -9,6 +9,7 @@ import type { LeftColumnContent, SettingsScreens } from '../../../types'; import type { FolderEditDispatch } from '../../../hooks/reducers/useFoldersReducer'; import type { GlobalState } from '../../../global/types'; import type { TabWithProperties } from '../../ui/TabList'; +import type { MenuItemContextAction } from '../../ui/ListItem'; import TabList from '../../ui/TabList'; import { ALL_FOLDER_ID } from '../../../config'; @@ -137,7 +138,7 @@ const ChatFolders: FC = ({ const { id, title } = folder; const isBlocked = id !== ALL_FOLDER_ID && i > maxFolders - 1; const canShareFolder = selectCanShareFolder(getGlobal(), id); - const contextActions = []; + const contextActions: MenuItemContextAction[] = []; if (canShareFolder) { contextActions.push({ diff --git a/src/components/left/settings/SettingsActiveSessions.tsx b/src/components/left/settings/SettingsActiveSessions.tsx index 9df2d29f1..3f3691cd7 100644 --- a/src/components/left/settings/SettingsActiveSessions.tsx +++ b/src/components/left/settings/SettingsActiveSessions.tsx @@ -148,7 +148,7 @@ const SettingsActiveSessions: FC = ({ {lang('AuthSessions.CurrentSession')} - +
{session.deviceModel} @@ -219,7 +219,8 @@ const SettingsActiveSessions: FC = ({ handleTerminateSessionClick(session.hash); }, }]} - icon={`device-${getSessionIcon(session)} icon-device`} + icon={`device-${getSessionIcon(session)}`} + iconClassName="icon-device" onClick={() => { handleOpenSessionModal(session.hash); }} >
diff --git a/src/components/left/settings/helpers/getSessionIcon.ts b/src/components/left/settings/helpers/getSessionIcon.ts index 351c848ac..4a44a4e5d 100644 --- a/src/components/left/settings/helpers/getSessionIcon.ts +++ b/src/components/left/settings/helpers/getSessionIcon.ts @@ -1,6 +1,7 @@ import type { ApiSession } from '../../../../api/types'; +import type { DeviceType } from '../../../../types/icons/device'; -export default function getSessionIcon(session: ApiSession): string { +export default function getSessionIcon(session: ApiSession): DeviceType { const platform = session.platform.toLowerCase(); const device = session.deviceModel.toLowerCase(); const systemVersion = session.systemVersion.toLowerCase(); diff --git a/src/components/main/premium/common/PremiumLimitReachedModal.tsx b/src/components/main/premium/common/PremiumLimitReachedModal.tsx index 4a7349ec6..3649c539a 100644 --- a/src/components/main/premium/common/PremiumLimitReachedModal.tsx +++ b/src/components/main/premium/common/PremiumLimitReachedModal.tsx @@ -3,6 +3,7 @@ import React, { memo, useCallback, useEffect } from '../../../../lib/teact/teact import type { ApiLimitTypeWithModal } from '../../../../global/types'; import type { LangFn } from '../../../../hooks/useLang'; +import type { IconName } from '../../../../types/icons'; import renderText from '../../../common/helpers/renderText'; import buildClassName from '../../../../util/buildClassName'; @@ -52,15 +53,15 @@ const LIMIT_DESCRIPTION_PREMIUM: Record = { chatlistJoined: 'LimitReachedSharedFoldersPremium', }; -const LIMIT_ICON: Record = { - dialogFiltersChats: 'icon-chat-badge', - uploadMaxFileparts: 'icon-file-badge', - dialogFilters: 'icon-folder-badge', - dialogFolderPinned: 'icon-pin-badge', - channelsPublic: 'icon-link-badge', - channels: 'icon-chats-badge', - chatlistInvites: 'icon-link-badge', - chatlistJoined: 'icon-folder-badge', +const LIMIT_ICON: Record = { + dialogFiltersChats: 'chat-badge', + uploadMaxFileparts: 'file-badge', + dialogFilters: 'folder-badge', + dialogFolderPinned: 'pin-badge', + channelsPublic: 'link-badge', + channels: 'chats-badge', + chatlistInvites: 'link-badge', + chatlistJoined: 'folder-badge', }; const LIMIT_VALUE_FORMATTER: Partial string>> = { diff --git a/src/components/main/premium/common/PremiumLimitsCompare.tsx b/src/components/main/premium/common/PremiumLimitsCompare.tsx index 38c1b8074..3eac34dda 100644 --- a/src/components/main/premium/common/PremiumLimitsCompare.tsx +++ b/src/components/main/premium/common/PremiumLimitsCompare.tsx @@ -1,5 +1,7 @@ import React, { memo } from '../../../../lib/teact/teact'; + import type { FC } from '../../../../lib/teact/teact'; +import type { IconName } from '../../../../types/icons'; import buildClassName from '../../../../util/buildClassName'; import useLang from '../../../../hooks/useLang'; @@ -7,7 +9,7 @@ import useLang from '../../../../hooks/useLang'; import styles from './PremiumLimitsCompare.module.scss'; type OwnProps = { - floatingBadgeIcon?: string; + floatingBadgeIcon?: IconName; leftValue?: string; rightValue?: string; className?: string; @@ -27,7 +29,7 @@ const PremiumLimitsCompare: FC = ({
{floatingBadgeIcon && (
- +
{leftValue}
diff --git a/src/components/mediaViewer/MediaViewerActions.tsx b/src/components/mediaViewer/MediaViewerActions.tsx index 5270b2d15..520f80b61 100644 --- a/src/components/mediaViewer/MediaViewerActions.tsx +++ b/src/components/mediaViewer/MediaViewerActions.tsx @@ -211,7 +211,7 @@ const MediaViewerActions: FC = ({ if (!isProtected) { if (isVideo) { menuItems.push({ - icon: isDownloading ? 'cancel' : 'download', + icon: isDownloading ? 'close' : 'download', onClick: handleDownloadClick, children: isDownloading ? `${Math.round(downloadProgress * 100)}% Downloading...` : 'Download', }); diff --git a/src/components/middle/HeaderMenuContainer.tsx b/src/components/middle/HeaderMenuContainer.tsx index 3b81d863b..f73b1ba40 100644 --- a/src/components/middle/HeaderMenuContainer.tsx +++ b/src/components/middle/HeaderMenuContainer.tsx @@ -7,6 +7,7 @@ import { getActions, withGlobal } from '../../global'; import type { ApiBotCommand, ApiChat } from '../../api/types'; import type { IAnchorPosition } from '../../types'; import { MAIN_THREAD_ID } from '../../api/types'; +import type { IconName } from '../../types/icons'; import { REPLIES_USER_ID } from '../../config'; import { disableScrolling, enableScrolling } from '../../util/scrollLock'; @@ -52,7 +53,7 @@ import ReportModal from '../common/ReportModal'; import './HeaderMenuContainer.scss'; -const BOT_BUTTONS: Record = { +const BOT_BUTTONS: Record = { settings: { icon: 'bots', label: 'BotSettings', diff --git a/src/components/middle/MessageSelectToolbar.tsx b/src/components/middle/MessageSelectToolbar.tsx index 81f39358c..f8c5e0520 100644 --- a/src/components/middle/MessageSelectToolbar.tsx +++ b/src/components/middle/MessageSelectToolbar.tsx @@ -3,6 +3,7 @@ import React, { memo, useEffect } from '../../lib/teact/teact'; import { getActions, withGlobal } from '../../global'; import type { MessageListType } from '../../global/types'; +import type { IconName } from '../../types/icons'; import { selectCanDeleteSelectedMessages, @@ -116,7 +117,7 @@ const MessageSelectToolbar: FC = ({ ); const renderButton = ( - icon: string, label: string, onClick: AnyToVoidFunction, destructive?: boolean, + icon: IconName, label: string, onClick: AnyToVoidFunction, destructive?: boolean, ) => { return (
= ({ noStatusOrTyping avatarSize="medium" status={seenByUser ? formatDateAtTime(lang, seenByUser * 1000) : undefined} - statusIcon="icon-message-read" + statusIcon="message-read" /> , ); diff --git a/src/components/middle/ScrollDownButton.tsx b/src/components/middle/ScrollDownButton.tsx index 803f96e33..ed7384085 100644 --- a/src/components/middle/ScrollDownButton.tsx +++ b/src/components/middle/ScrollDownButton.tsx @@ -1,6 +1,8 @@ import type { FC } from '../../lib/teact/teact'; import React, { memo, useRef } from '../../lib/teact/teact'; +import type { IconName } from '../../types/icons'; + import { formatIntegerCompact } from '../../util/textFormat'; import useLang from '../../hooks/useLang'; import useContextMenuHandlers from '../../hooks/useContextMenuHandlers'; @@ -13,7 +15,7 @@ import MenuItem from '../ui/MenuItem'; import styles from './ScrollDownButton.module.scss'; type OwnProps = { - icon: string; + icon: IconName; ariaLabelLang: string; unreadCount?: number; onClick: VoidFunction; diff --git a/src/components/middle/message/helpers/copyOptions.ts b/src/components/middle/message/helpers/copyOptions.ts index c7f0dbb26..105e7c968 100644 --- a/src/components/middle/message/helpers/copyOptions.ts +++ b/src/components/middle/message/helpers/copyOptions.ts @@ -1,6 +1,8 @@ import type { ApiMessage } from '../../../../api/types'; import { ApiMediaFormat } from '../../../../api/types'; +import type { IconName } from '../../../../types/icons'; + import * as mediaLoader from '../../../../util/mediaLoader'; import { getMessageContact, @@ -23,7 +25,7 @@ import { renderMessageText } from '../../../common/helpers/renderMessageText'; type ICopyOptions = { label: string; - icon: string; + icon: IconName; handler: () => void; }[]; diff --git a/src/components/payment/Checkout.tsx b/src/components/payment/Checkout.tsx index dc828c839..e410c84fe 100644 --- a/src/components/payment/Checkout.tsx +++ b/src/components/payment/Checkout.tsx @@ -5,6 +5,7 @@ import type { FC } from '../../lib/teact/teact'; import type { FormEditDispatch } from '../../hooks/reducers/usePaymentReducer'; import type { LangCode, Price } from '../../types'; import type { ApiChat, ApiInvoice, ApiPaymentCredentials } from '../../api/types'; +import type { IconName } from '../../types/icons'; import { PaymentStep } from '../../types'; import { getWebDocumentHash } from '../../global/helpers'; @@ -247,7 +248,7 @@ function renderCheckoutItem({ }: { title : string | undefined; label: string | undefined; - icon?: string; + icon?: IconName; onClick?: NoneToVoidFunction; customIcon?: string; }) { diff --git a/src/components/right/Profile.tsx b/src/components/right/Profile.tsx index 5aeeeae72..e728f0f8e 100644 --- a/src/components/right/Profile.tsx +++ b/src/components/right/Profile.tsx @@ -59,7 +59,7 @@ import Transition from '../ui/Transition'; import InfiniteScroll from '../ui/InfiniteScroll'; import TabList from '../ui/TabList'; import Spinner from '../ui/Spinner'; -import ListItem from '../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../ui/ListItem'; import PrivateChatInfo from '../common/PrivateChatInfo'; import ProfileInfo from '../common/ProfileInfo'; import Document from '../common/Document'; @@ -342,7 +342,7 @@ const Profile: FC = ({ } const canRenderContent = useAsyncRendering([chatId, topicId, resultType, renderingActiveTab], renderingDelay); - function getMemberContextAction(memberId: string) { + function getMemberContextAction(memberId: string): MenuItemContextAction[] | undefined { return memberId === currentUserId || !canDeleteMembers ? undefined : [{ title: lang('lng_context_remove_from_group'), icon: 'stop', diff --git a/src/components/right/management/ManageChatRemovedUsers.tsx b/src/components/right/management/ManageChatRemovedUsers.tsx index b63d31009..3d916d966 100644 --- a/src/components/right/management/ManageChatRemovedUsers.tsx +++ b/src/components/right/management/ManageChatRemovedUsers.tsx @@ -12,7 +12,7 @@ import useHistoryBack from '../../../hooks/useHistoryBack'; import useFlag from '../../../hooks/useFlag'; import PrivateChatInfo from '../../common/PrivateChatInfo'; -import ListItem from '../../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../../ui/ListItem'; import FloatingActionButton from '../../ui/FloatingActionButton'; import RemoveGroupUserModal from './RemoveGroupUserModal'; @@ -62,7 +62,7 @@ const ManageChatRemovedUsers: FC = ({ return lang('UserRemovedBy', getUserFullName(kickedByUser)); }, [lang, usersById]); - const getContextActions = useCallback((member: ApiChatMember) => { + const getContextActions = useCallback((member: ApiChatMember): MenuItemContextAction[] | undefined => { if (!chat) { return undefined; } diff --git a/src/components/right/management/ManageGroupMembers.tsx b/src/components/right/management/ManageGroupMembers.tsx index 629df1f18..9db24aae9 100644 --- a/src/components/right/management/ManageGroupMembers.tsx +++ b/src/components/right/management/ManageGroupMembers.tsx @@ -19,7 +19,7 @@ import useKeyboardListNavigation from '../../../hooks/useKeyboardListNavigation' import PrivateChatInfo from '../../common/PrivateChatInfo'; import NothingFound from '../../common/NothingFound'; -import ListItem from '../../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../../ui/ListItem'; import InputText from '../../ui/InputText'; import InfiniteScroll from '../../ui/InfiniteScroll'; import Loading from '../../ui/Loading'; @@ -165,7 +165,7 @@ const ManageGroupMembers: FC = ({ onBack: onClose, }); - function getMemberContextAction(memberId: string) { + function getMemberContextAction(memberId: string): MenuItemContextAction[] | undefined { return memberId === currentUserId || !canDeleteMembers ? undefined : [{ title: lang('lng_context_remove_from_group'), icon: 'stop', diff --git a/src/components/right/management/ManageInvites.tsx b/src/components/right/management/ManageInvites.tsx index 52294b950..bd3da413d 100644 --- a/src/components/right/management/ManageInvites.tsx +++ b/src/components/right/management/ManageInvites.tsx @@ -20,7 +20,7 @@ import useInterval from '../../../hooks/useInterval'; import useForceUpdate from '../../../hooks/useForceUpdate'; import useFlag from '../../../hooks/useFlag'; -import ListItem from '../../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../../ui/ListItem'; import NothingFound from '../../common/NothingFound'; import Button from '../../ui/Button'; import ConfirmDialog from '../../ui/ConfirmDialog'; @@ -237,7 +237,7 @@ const ManageInvites: FC = ({ }; const prepareContextActions = (invite: ApiExportedInvite) => { - const actions = []; + const actions: MenuItemContextAction[] = []; actions.push({ title: lang('Copy'), icon: 'copy', diff --git a/src/components/story/StorySettings.tsx b/src/components/story/StorySettings.tsx index 03c1a2580..416833f98 100644 --- a/src/components/story/StorySettings.tsx +++ b/src/components/story/StorySettings.tsx @@ -5,6 +5,7 @@ import { getActions, withGlobal } from '../../global'; import type { ApiStory, ApiUser } from '../../api/types'; import type { ApiPrivacySettings, PrivacyVisibility } from '../../types'; +import type { IconName } from '../../types/icons'; import buildClassName from '../../util/buildClassName'; import { selectTabState, selectUserStory } from '../../global/selectors'; @@ -44,7 +45,7 @@ interface PrivacyOption { name: string; value: PrivacyVisibility; color: [string, string]; - icon: string; + icon: IconName; actions?: PrivacyAction; } diff --git a/src/components/story/StoryView.tsx b/src/components/story/StoryView.tsx index 4121c2e63..5af091785 100644 --- a/src/components/story/StoryView.tsx +++ b/src/components/story/StoryView.tsx @@ -12,7 +12,7 @@ import { getUserFullName } from '../../global/helpers'; import useLastCallback from '../../hooks/useLastCallback'; import useLang from '../../hooks/useLang'; -import ListItem from '../ui/ListItem'; +import ListItem, { type MenuItemContextAction } from '../ui/ListItem'; import ReactionStaticEmoji from '../common/ReactionStaticEmoji'; import PrivateChatInfo from '../common/PrivateChatInfo'; @@ -54,7 +54,7 @@ const StoryView = ({ const { isContact } = user || {}; const fullName = getUserFullName(user); - const actions = []; + const actions: MenuItemContextAction[] = []; if (!isUserBlocked) { if (!areStoriesBlocked) { @@ -134,7 +134,7 @@ const StoryView = ({ userId={storyView.userId} noStatusOrTyping status={formatDateAtTime(lang, storyView.date * 1000)} - statusIcon="icon-message-read" + statusIcon="message-read" withStory forceShowSelf /> diff --git a/src/components/ui/Checkbox.tsx b/src/components/ui/Checkbox.tsx index fa85041ff..9e8ea0088 100644 --- a/src/components/ui/Checkbox.tsx +++ b/src/components/ui/Checkbox.tsx @@ -2,6 +2,8 @@ import type { ChangeEvent } from 'react'; import type { FC, TeactNode } from '../../lib/teact/teact'; import React, { memo, useCallback, useRef } from '../../lib/teact/teact'; +import type { IconName } from '../../types/icons'; + import buildClassName from '../../util/buildClassName'; import useLang from '../../hooks/useLang'; import renderText from '../common/helpers/renderText'; @@ -17,7 +19,7 @@ type OwnProps = { label: TeactNode; subLabel?: string; checked: boolean; - rightIcon?: string; + rightIcon?: IconName; disabled?: boolean; tabIndex?: number; round?: boolean; diff --git a/src/components/ui/ListItem.tsx b/src/components/ui/ListItem.tsx index 1cd6c20d5..d75bc035f 100644 --- a/src/components/ui/ListItem.tsx +++ b/src/components/ui/ListItem.tsx @@ -3,6 +3,8 @@ import type { FC, TeactNode } from '../../lib/teact/teact'; import React, { useRef } from '../../lib/teact/teact'; import { requestMeasure } from '../../lib/fasterdom/fasterdom'; +import type { IconName } from '../../types/icons'; + import { IS_TOUCH_ENV, MouseButton } from '../../util/windowEnvironment'; import buildClassName from '../../util/buildClassName'; import renderText from '../common/helpers/renderText'; @@ -24,7 +26,7 @@ import './ListItem.scss'; type MenuItemContextActionItem = { title: string; - icon: string; + icon: IconName; destructive?: boolean; handler?: () => void; }; @@ -41,9 +43,10 @@ export type MenuItemContextAction = interface OwnProps { ref?: RefObject; buttonRef?: RefObject; - icon?: string; + icon?: IconName; + iconClassName?: string; leftElement?: TeactNode; - secondaryIcon?: string; + secondaryIcon?: IconName; rightElement?: TeactNode; buttonClassName?: string; className?: string; @@ -74,6 +77,7 @@ const ListItem: FC = ({ ref, buttonRef, icon, + iconClassName, leftElement, buttonClassName, menuBubbleClassName, @@ -234,7 +238,7 @@ const ListItem: FC = ({ > {leftElement} {icon && ( - + )} {multiline && (
{children}
)} {!multiline && children} diff --git a/src/components/ui/MenuItem.tsx b/src/components/ui/MenuItem.tsx index 059028d5a..3e26a0d49 100644 --- a/src/components/ui/MenuItem.tsx +++ b/src/components/ui/MenuItem.tsx @@ -1,6 +1,8 @@ import type { FC } from '../../lib/teact/teact'; import React from '../../lib/teact/teact'; +import type { IconName } from '../../types/icons'; + import { IS_TEST } from '../../config'; import buildClassName from '../../util/buildClassName'; @@ -11,7 +13,7 @@ import useAppLayout from '../../hooks/useAppLayout'; import './MenuItem.scss'; export type MenuItemProps = { - icon?: string; + icon?: IconName | 'A' | 'K'; isCharIcon?: boolean; customIcon?: React.ReactNode; className?: string; diff --git a/src/hooks/reducers/useFoldersReducer.ts b/src/hooks/reducers/useFoldersReducer.ts index e7d94f1ff..c1924df8b 100644 --- a/src/hooks/reducers/useFoldersReducer.ts +++ b/src/hooks/reducers/useFoldersReducer.ts @@ -1,11 +1,12 @@ import type { StateReducer, Dispatch } from '../useReducer'; import type { ApiChatFolder } from '../../api/types'; +import type { IconName } from '../../types/icons'; import { pick, omit } from '../../util/iteratees'; import useReducer from '../useReducer'; export type FolderChatType = { - icon: string; + icon: IconName; title: string; key: keyof Pick}7>L2I$7gPU}`{&i#&gh??0r%aB<1pr`l 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 literal 0 HcmV?d00001 diff --git a/src/styles/icons.woff2 b/src/styles/icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..94da0a4e704877796073173810e52454a47e2064 GIT binary patch literal 22764 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