├── .editorconfig ├── .eslintrc ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── feature-request.yml └── workflows │ └── cd.yml ├── .gitignore ├── .huskyrc.json ├── .lintstagedrc.json ├── .npmignore ├── .stylelintrc ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── README_zh-hans.md ├── docs ├── .gitignore ├── README.md ├── app.vue ├── assets │ ├── FiraCode-VariableFont.ttf │ └── index.css ├── components │ ├── Box.vue │ ├── Demobox.vue │ ├── Development.vue │ ├── ItHeader.vue │ ├── LandingComponentsBlock.vue │ ├── NotificationExample.vue │ ├── Prism.ts │ ├── PropsTable.vue │ ├── Sidebar.vue │ └── SponsorsBar.vue ├── data │ ├── components.ts │ └── symbols.ts ├── locales │ ├── README.md │ ├── en.ts │ ├── index.ts │ ├── zh-hans.ts │ └── zh-hant.ts ├── nuxt.config.ts ├── package.json ├── pages │ ├── Contribute │ │ ├── index.vue │ │ └── locale │ │ │ ├── en.ts │ │ │ └── zh-hans.ts │ ├── Directives.vue │ ├── Introduction │ │ ├── index.vue │ │ └── locale │ │ │ ├── en.ts │ │ │ └── zh-hans.ts │ ├── Start │ │ ├── index.vue │ │ └── locale │ │ │ ├── en.ts │ │ │ └── zh-hans.ts │ ├── Support │ │ ├── index.vue │ │ └── locale │ │ │ ├── en.ts │ │ │ └── zh-hans.ts │ ├── Theming │ │ ├── index.vue │ │ └── locale │ │ │ ├── en.ts │ │ │ └── zh-hans.ts │ ├── Transitions.vue │ ├── components │ │ ├── Alert │ │ │ ├── index.vue │ │ │ └── locale │ │ │ │ ├── en.ts │ │ │ │ └── zh-hans.ts │ │ ├── Avatar.vue │ │ ├── Badge.vue │ │ ├── Breadcrumbs.vue │ │ ├── Button.vue │ │ ├── Checkbox.vue │ │ ├── Collapse.vue │ │ ├── Colorpicker.vue │ │ ├── Datepicker.vue │ │ ├── Divider.vue │ │ ├── Drawer.vue │ │ ├── Dropdown.vue │ │ ├── Input.vue │ │ ├── Loadingbar.vue │ │ ├── Modal.vue │ │ ├── Notification.vue │ │ ├── NumberInput.vue │ │ ├── Popover.vue │ │ ├── Progressbar.vue │ │ ├── Radio.vue │ │ ├── Select │ │ │ ├── SectionDemo │ │ │ │ └── index.vue │ │ │ ├── SectionExamples │ │ │ │ └── index.vue │ │ │ ├── SectionSlots │ │ │ │ └── index.vue │ │ │ ├── constants.ts │ │ │ └── index.vue │ │ ├── Slider.vue │ │ ├── Spinner.vue │ │ ├── Steps.vue │ │ ├── Switch.vue │ │ ├── Tabs.vue │ │ ├── Tag.vue │ │ ├── Textarea.vue │ │ ├── Toggle.vue │ │ └── Tooltip.vue │ └── index.vue ├── plugins │ ├── emitter.client.ts │ ├── equal.client.ts │ ├── ga.ts │ └── i18n.client.ts ├── public │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── finally.png │ ├── github-logo.svg │ ├── husky.jpg │ ├── logo.png │ ├── logo.svg │ ├── twitter-logo.svg │ └── twitter.png ├── tailwind.config.js ├── tsconfig.json ├── types.ts └── types │ └── Events.ts ├── favicon.ico ├── index.html ├── package.json ├── postcss.config.js ├── prettier.config.js ├── scripts └── prepareTheme.ts ├── src ├── App.vue ├── components │ ├── alert │ │ ├── ItAlert.vue │ │ └── index.ts │ ├── avatar-group │ │ ├── ItAvatarGroup.vue │ │ ├── hooks.ts │ │ ├── index.ts │ │ └── types.ts │ ├── avatar │ │ ├── ItAvatar.vue │ │ └── index.ts │ ├── badge │ │ ├── ItBadge.vue │ │ ├── constants.ts │ │ └── index.ts │ ├── button-group │ │ ├── ItButtonGroup.vue │ │ └── index.ts │ ├── button │ │ ├── ItButton.vue │ │ └── index.ts │ ├── checkbox │ │ ├── ItCheckbox.vue │ │ └── index.ts │ ├── collapse-item │ │ └── index.ts │ ├── collapse │ │ ├── ItCollapse.vue │ │ ├── ItCollapseItem.vue │ │ └── index.ts │ ├── colorpicker │ │ ├── ItColorpicker.vue │ │ ├── helpers.ts │ │ ├── hooks.ts │ │ ├── hooks │ │ │ ├── alpha.ts │ │ │ ├── hue.ts │ │ │ └── saturation.ts │ │ ├── index.ts │ │ └── subcomponents │ │ │ ├── Alpha.vue │ │ │ ├── Checkboard.vue │ │ │ ├── Hue.vue │ │ │ └── Saturation.vue │ ├── datepicker │ │ ├── ItDatepicker.vue │ │ └── index.ts │ ├── divider │ │ ├── ItDivider.vue │ │ └── index.ts │ ├── drawer │ │ ├── ItDrawer.vue │ │ └── index.ts │ ├── dropdown │ │ ├── ItDropdown.vue │ │ ├── ItDropdownItem.vue │ │ ├── ItDropdownMenu.vue │ │ └── index.ts │ ├── input │ │ ├── ItInput.vue │ │ └── index.ts │ ├── loadingbar │ │ ├── ItLoadingbar.vue │ │ └── index.ts │ ├── modal │ │ ├── ItModal.vue │ │ └── index.ts │ ├── notification │ │ ├── ItNotification.vue │ │ └── index.ts │ ├── numberinput │ │ ├── ItNumberInput.vue │ │ └── index.ts │ ├── popover │ │ ├── ItPopover.vue │ │ └── index.ts │ ├── progressbar │ │ ├── ItProgressbar.vue │ │ └── index.ts │ ├── radio │ │ ├── ItRadio.vue │ │ └── index.ts │ ├── select │ │ ├── ItSelect.vue │ │ ├── constants.ts │ │ ├── helpers.ts │ │ ├── hooks.ts │ │ ├── index.ts │ │ └── types.ts │ ├── slider │ │ ├── ItSlider.vue │ │ ├── constants.ts │ │ ├── helpers.ts │ │ ├── hooks.ts │ │ ├── index.ts │ │ └── types.ts │ ├── spinner │ │ ├── ItSpinner.vue │ │ └── index.ts │ ├── switch │ │ ├── ItSwitch.vue │ │ └── index.ts │ ├── tab │ │ └── index.ts │ ├── tabs │ │ ├── ItTab.vue │ │ ├── ItTabs.vue │ │ └── index.ts │ ├── tag │ │ ├── ItTag.vue │ │ └── index.ts │ ├── textarea │ │ ├── ItTextarea.vue │ │ └── index.ts │ ├── toggle │ │ ├── ItToggle.vue │ │ └── index.ts │ └── tooltip │ │ ├── ItTooltip.vue │ │ ├── TooltipBody.vue │ │ └── index.ts ├── directives │ ├── clickOutside.ts │ ├── index.ts │ └── tooltip.ts ├── helpers │ ├── clamp.ts │ ├── getChildrenVNodesFromSlot.ts │ ├── getUpperFirstLettersWords.ts │ └── getVariantProps.ts ├── hooks │ ├── index.ts │ ├── tests │ │ └── useVariant.test.ts │ ├── useCheckSlot.ts │ ├── usePopover.ts │ └── useVariants.ts ├── index.css ├── index.ts ├── main.ts ├── models │ └── enums │ │ ├── Colors.ts │ │ ├── Components.ts │ │ ├── Directions.ts │ │ ├── Positions.ts │ │ ├── Sizes.ts │ │ └── index.ts ├── shims-vue.d.ts ├── theme │ ├── dark.ts │ ├── full.ts │ └── light.ts └── types │ ├── components │ └── components.ts │ ├── global.ts │ ├── index.d.ts │ ├── index.ts │ └── variant.ts ├── tailwind.config.js ├── tsconfig.json └── vite.config.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "env": { 4 | "browser": true, 5 | "es2021": true, 6 | "node": true 7 | }, 8 | "prettier/prettier": [ 9 | "error", 10 | { 11 | "endOfLine": "auto" 12 | } 13 | ], 14 | "extends": [ 15 | "plugin:vue/vue3-recommended", 16 | "eslint:recommended", 17 | "@vue/typescript/recommended", 18 | "@vue/prettier", 19 | "@vue/prettier/@typescript-eslint" 20 | ], 21 | "parser": "vue-eslint-parser", 22 | "parserOptions": { 23 | "parser": "@typescript-eslint/parser", 24 | "ecmaVersion": 2021 25 | }, 26 | "rules": { 27 | "vue/no-unused-vars": "error", 28 | "vue/no-v-html": "off", 29 | "arrow-parens": ["error", "always"], 30 | "padded-blocks": ["error", "never"], 31 | "import/prefer-default-export": "off", 32 | "@typescript-eslint/no-var-requires": "off", 33 | "vue/component-definition-name-casing": [1, "kebab-case"] 34 | } 35 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: savinov 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 🐛 2 | description: Report a bug for Equal Library 🧬 3 | title: '[ Bug Report ]
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
You have a new message
20 |{{ $t('sponsoring.title') }}
4 |14 | {{ $t('sponsoring.text') }} 15 |
16 |14 | {{ $t(`contribute.welcome.description`) }} 15 |
16 | 17 |22 | {{ $t(`contribute.contributeWays.description`) }} 23 |
24 | 25 |39 | {{ $t(`contribute.submissionSteps.description`) }} 40 |
41 | 42 |56 | {{ $t(`contribute.codeOfConduct.description`) }} 57 | 63 | {{ $t(`contribute.codeOfConduct.title`) }} 64 | 65 |
66 | 67 |72 | {{ $t(`contribute.contact.description`) }} 73 |
74 | 75 |76 | {{ $t(`contribute.thanks`) }} 77 |
78 |11 | Equal UI has v-tooltip directive to create tooltips with very specific 12 | content and behavior 13 |
14 | 15 |8 | {{ $t('support.intro') }} 9 |
10 | 11 |32 | {{ $t('support.donations_text') }} 33 |
34 | 35 |
36 | {{ $t('support.cardano_wallet') }}
37 |
66 | {{ $t('support.thanks') }} 67 |
68 |
69 | {{ $t('support.contact') }}
70 |
11 | {{ $t('theming.own_theme_copy') }} 12 |
13 |{{ $t('theming.own_theme') }}
52 |20 | Not that I wish to imply you have been sleeping on the job. No one is 21 | more deserving of a rest. And all the effort in the world would have 22 | gone to waste until...well, let's just say your hour has come again. 23 |
24 |26 | Not that I wish to imply you have been sleeping on the job. No one is 27 | more deserving of a rest. And all the effort in the world would have 28 | gone to waste until...well, let's just say your hour has come again. 29 |
30 |32 | Not that I wish to imply you have been sleeping on the job. No one is 33 | more deserving of a rest. And all the effort in the world would have 34 | gone to waste until...well, let's just say your hour has come again. 35 |
36 |{{ title }}
6 |{{ body }}
7 |
8 |
= { 51 | base?: CSSRawClassesList
52 | variants?: Variants
53 | } & P 54 | 55 | export interface Variants
{ 56 | [key: string]: CSSRawClassesList
| undefined
57 | }
58 |
59 | export interface EqualUIConfiguration {
60 | transitions: Record