From c45bce36f985a550d7bfad744099b601cb61e449 Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Wed, 19 Apr 2023 21:38:59 +0200 Subject: [PATCH] refactor(ui): getting ride of naive ui buttons --- components.d.ts | 72 +++++- src/components/FavoriteButton.vue | 14 +- src/components/InputCopyable.vue | 4 +- src/components/NavbarButtons.vue | 49 ++-- src/components/TextareaCopyable.vue | 6 +- src/layouts/base.layout.vue | 65 ++--- src/pages/404.page.vue | 4 +- src/pages/About.vue | 39 +-- .../base64-file-converter.vue | 6 +- .../base64-string-converter.vue | 4 +- .../basic-auth-generator.vue | 2 +- src/tools/bcrypt/bcrypt.vue | 2 +- .../benchmark-builder/benchmark-builder.vue | 28 +- .../benchmark-builder/dynamic-values.vue | 16 +- src/tools/bip39-generator/bip39-generator.vue | 12 +- src/tools/chronometer/chronometer.vue | 6 +- ...docker-run-to-docker-compose-converter.vue | 2 +- src/tools/hmac-generator/hmac-generator.vue | 2 +- src/tools/html-entities/html-entities.vue | 4 +- .../editor/menu-bar-item.vue | 8 +- .../ipv4-range-expander.vue | 10 +- .../ipv4-subnet-calculator.vue | 8 +- .../lorem-ipsum-generator.vue | 2 +- .../mac-address-lookup/mac-address-lookup.vue | 2 +- .../otp-code-generator-and-validator.vue | 6 +- .../token-display.vue | 17 +- .../qr-code-generator/qr-code-generator.vue | 2 +- .../random-port-generator.vue | 4 +- .../roman-numeral-converter.vue | 8 +- .../rsa-key-pair-generator.vue | 2 +- src/tools/slugify-string/slugify-string.vue | 2 +- .../svg-placeholder-generator.vue | 6 +- .../text-to-nato-alphabet.vue | 2 +- .../token-generator/token-generator.tool.vue | 4 +- src/tools/url-encoder/url-encoder.vue | 4 +- src/tools/uuid-generator/uuid-generator.vue | 4 +- src/ui/c-button/c-button.theme.ts | 240 ++++++++++++++++++ src/ui/c-button/c-button.vue | 113 +++++++++ src/ui/c-link/c-link.theme.ts | 39 +++ src/ui/c-link/c-link.vue | 49 ++++ src/ui/theme/theme.models.ts | 13 + src/ui/theme/theme.store.ts | 20 ++ src/ui/theme/themes.ts | 37 +++ vite.config.ts | 3 + 44 files changed, 738 insertions(+), 204 deletions(-) create mode 100644 src/ui/c-button/c-button.theme.ts create mode 100644 src/ui/c-button/c-button.vue create mode 100644 src/ui/c-link/c-link.theme.ts create mode 100644 src/ui/c-link/c-link.vue create mode 100644 src/ui/theme/theme.models.ts create mode 100644 src/ui/theme/theme.store.ts create mode 100644 src/ui/theme/themes.ts diff --git a/components.d.ts b/components.d.ts index caaa50a6..178523dc 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,13 +9,62 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { + '404.page': typeof import('./src/pages/404.page.vue')['default'] + About: typeof import('./src/pages/About.vue')['default'] + App: typeof import('./src/App.vue')['default'] + 'Base.layout': typeof import('./src/layouts/base.layout.vue')['default'] + Base64FileConverter: typeof import('./src/tools/base64-file-converter/base64-file-converter.vue')['default'] + Base64StringConverter: typeof import('./src/tools/base64-string-converter/base64-string-converter.vue')['default'] + BasicAuthGenerator: typeof import('./src/tools/basic-auth-generator/basic-auth-generator.vue')['default'] + Bcrypt: typeof import('./src/tools/bcrypt/bcrypt.vue')['default'] + BenchmarkBuilder: typeof import('./src/tools/benchmark-builder/benchmark-builder.vue')['default'] + Bip39Generator: typeof import('./src/tools/bip39-generator/bip39-generator.vue')['default'] + CaseConverter: typeof import('./src/tools/case-converter/case-converter.vue')['default'] + CButton: typeof import('./src/ui/c-button/c-button.vue')['default'] + ChmodCalculator: typeof import('./src/tools/chmod-calculator/chmod-calculator.vue')['default'] + Chronometer: typeof import('./src/tools/chronometer/chronometer.vue')['default'] + CLink: typeof import('./src/ui/c-link/c-link.vue')['default'] CollapsibleToolMenu: typeof import('./src/components/CollapsibleToolMenu.vue')['default'] + ColorConverter: typeof import('./src/tools/color-converter/color-converter.vue')['default'] ColoredCard: typeof import('./src/components/ColoredCard.vue')['default'] + CopyableIpLike: typeof import('./src/tools/ipv4-subnet-calculator/copyable-ip-like.vue')['default'] + CrontabGenerator: typeof import('./src/tools/crontab-generator/crontab-generator.vue')['default'] + DateTimeConverter: typeof import('./src/tools/date-time-converter/date-time-converter.vue')['default'] + DeviceInformation: typeof import('./src/tools/device-information/device-information.vue')['default'] + DockerRunToDockerComposeConverter: typeof import('./src/tools/docker-run-to-docker-compose-converter/docker-run-to-docker-compose-converter.vue')['default'] + DynamicValues: typeof import('./src/tools/benchmark-builder/dynamic-values.vue')['default'] + Editor: typeof import('./src/tools/html-wysiwyg-editor/editor/editor.vue')['default'] + Encryption: typeof import('./src/tools/encryption/encryption.vue')['default'] + EtaCalculator: typeof import('./src/tools/eta-calculator/eta-calculator.vue')['default'] FavoriteButton: typeof import('./src/components/FavoriteButton.vue')['default'] FormatTransformer: typeof import('./src/components/FormatTransformer.vue')['default'] + GitMemo: typeof import('./src/tools/git-memo/git-memo.md')['default'] + HashText: typeof import('./src/tools/hash-text/hash-text.vue')['default'] + HmacGenerator: typeof import('./src/tools/hmac-generator/hmac-generator.vue')['default'] + 'Home.page': typeof import('./src/pages/Home.page.vue')['default'] + HtmlEntities: typeof import('./src/tools/html-entities/html-entities.vue')['default'] + HtmlWysiwygEditor: typeof import('./src/tools/html-wysiwyg-editor/html-wysiwyg-editor.vue')['default'] + HttpStatusCodes: typeof import('./src/tools/http-status-codes/http-status-codes.vue')['default'] InputCopyable: typeof import('./src/components/InputCopyable.vue')['default'] + IntegerBaseConverter: typeof import('./src/tools/integer-base-converter/integer-base-converter.vue')['default'] + Ipv4AddressConverter: typeof import('./src/tools/ipv4-address-converter/ipv4-address-converter.vue')['default'] + Ipv4RangeExpander: typeof import('./src/tools/ipv4-range-expander/ipv4-range-expander.vue')['default'] + Ipv4SubnetCalculator: typeof import('./src/tools/ipv4-subnet-calculator/ipv4-subnet-calculator.vue')['default'] + Ipv6UlaGenerator: typeof import('./src/tools/ipv6-ula-generator/ipv6-ula-generator.vue')['default'] + JsonMinify: typeof import('./src/tools/json-minify/json-minify.vue')['default'] + JsonToYaml: typeof import('./src/tools/json-to-yaml-converter/json-to-yaml.vue')['default'] + JsonViewer: typeof import('./src/tools/json-viewer/json-viewer.vue')['default'] + JwtParser: typeof import('./src/tools/jwt-parser/jwt-parser.vue')['default'] + KeycodeInfo: typeof import('./src/tools/keycode-info/keycode-info.vue')['default'] + LoremIpsumGenerator: typeof import('./src/tools/lorem-ipsum-generator/lorem-ipsum-generator.vue')['default'] + MacAddressLookup: typeof import('./src/tools/mac-address-lookup/mac-address-lookup.vue')['default'] + MathEvaluator: typeof import('./src/tools/math-evaluator/math-evaluator.vue')['default'] + MenuBar: typeof import('./src/tools/html-wysiwyg-editor/editor/menu-bar.vue')['default'] + MenuBarItem: typeof import('./src/tools/html-wysiwyg-editor/editor/menu-bar-item.vue')['default'] MenuIconItem: typeof import('./src/components/MenuIconItem.vue')['default'] MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] + MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] + MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] NAlert: typeof import('naive-ui')['NAlert'] NAutoComplete: typeof import('naive-ui')['NAutoComplete'] NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] @@ -37,7 +86,6 @@ declare module '@vue/runtime-core' { NH1: typeof import('naive-ui')['NH1'] NH2: typeof import('naive-ui')['NH2'] NH3: typeof import('naive-ui')['NH3'] - NH4: typeof import('naive-ui')['NH4'] NIcon: typeof import('naive-ui')['NIcon'] NImage: typeof import('naive-ui')['NImage'] NInput: typeof import('naive-ui')['NInput'] @@ -50,7 +98,6 @@ declare module '@vue/runtime-core' { NP: typeof import('naive-ui')['NP'] NPageHeader: typeof import('naive-ui')['NPageHeader'] NProgress: typeof import('naive-ui')['NProgress'] - NResult: typeof import('naive-ui')['NResult'] NScrollbar: typeof import('naive-ui')['NScrollbar'] NSelect: typeof import('naive-ui')['NSelect'] NSlider: typeof import('naive-ui')['NSlider'] @@ -63,12 +110,33 @@ declare module '@vue/runtime-core' { NTooltip: typeof import('naive-ui')['NTooltip'] NUpload: typeof import('naive-ui')['NUpload'] NUploadDragger: typeof import('naive-ui')['NUploadDragger'] + OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] + QrCodeGenerator: typeof import('./src/tools/qr-code-generator/qr-code-generator.vue')['default'] + RandomPortGenerator: typeof import('./src/tools/random-port-generator/random-port-generator.vue')['default'] + ResultRow: typeof import('./src/tools/ipv4-range-expander/result-row.vue')['default'] + RomanNumeralConverter: typeof import('./src/tools/roman-numeral-converter/roman-numeral-converter.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + RsaKeyPairGenerator: typeof import('./src/tools/rsa-key-pair-generator/rsa-key-pair-generator.vue')['default'] SearchBar: typeof import('./src/components/SearchBar.vue')['default'] SearchBarItem: typeof import('./src/components/SearchBarItem.vue')['default'] + SlugifyString: typeof import('./src/tools/slugify-string/slugify-string.vue')['default'] SpanCopyable: typeof import('./src/components/SpanCopyable.vue')['default'] + SqlPrettify: typeof import('./src/tools/sql-prettify/sql-prettify.vue')['default'] + SvgPlaceholderGenerator: typeof import('./src/tools/svg-placeholder-generator/svg-placeholder-generator.vue')['default'] + TemperatureConverter: typeof import('./src/tools/temperature-converter/temperature-converter.vue')['default'] TextareaCopyable: typeof import('./src/components/TextareaCopyable.vue')['default'] + TextStatistics: typeof import('./src/tools/text-statistics/text-statistics.vue')['default'] + TextToNatoAlphabet: typeof import('./src/tools/text-to-nato-alphabet/text-to-nato-alphabet.vue')['default'] + TokenDisplay: typeof import('./src/tools/otp-code-generator-and-validator/token-display.vue')['default'] + 'TokenGenerator.tool': typeof import('./src/tools/token-generator/token-generator.tool.vue')['default'] + 'Tool.layout': typeof import('./src/layouts/tool.layout.vue')['default'] ToolCard: typeof import('./src/components/ToolCard.vue')['default'] + UrlEncoder: typeof import('./src/tools/url-encoder/url-encoder.vue')['default'] + UrlParser: typeof import('./src/tools/url-parser/url-parser.vue')['default'] + UserAgentParser: typeof import('./src/tools/user-agent-parser/user-agent-parser.vue')['default'] + UserAgentResultCards: typeof import('./src/tools/user-agent-parser/user-agent-result-cards.vue')['default'] + UuidGenerator: typeof import('./src/tools/uuid-generator/uuid-generator.vue')['default'] + YamlToJson: typeof import('./src/tools/yaml-to-json-converter/yaml-to-json.vue')['default'] } } diff --git a/src/components/FavoriteButton.vue b/src/components/FavoriteButton.vue index 4b7f561f..60b2a2b9 100644 --- a/src/components/FavoriteButton.vue +++ b/src/components/FavoriteButton.vue @@ -1,11 +1,15 @@