From a69d74c0221019731430e2373b2b632d5562c5e9 Mon Sep 17 00:00:00 2001 From: devivekw Date: Wed, 7 Apr 2021 22:12:29 +0400 Subject: [PATCH 1/4] feat(c-code): add component and write tests --- packages/c-code/README.md | 11 ++++ packages/c-code/examples/base-code.vue | 3 ++ packages/c-code/examples/with-color.vue | 26 +++++++++ packages/c-code/index.ts | 1 + packages/c-code/package.json | 53 +++++++++++++++++++ packages/c-code/src/code.ts | 49 +++++++++++++++++ packages/c-code/src/index.ts | 1 + .../tests/__snapshots__/c-code.test.ts.snap | 31 +++++++++++ packages/c-code/tests/c-code.test.ts | 28 ++++++++++ packages/c-code/tsconfig.json | 4 ++ packages/core/src/index.ts | 1 + 11 files changed, 208 insertions(+) create mode 100644 packages/c-code/README.md create mode 100644 packages/c-code/examples/base-code.vue create mode 100644 packages/c-code/examples/with-color.vue create mode 100644 packages/c-code/index.ts create mode 100644 packages/c-code/package.json create mode 100644 packages/c-code/src/code.ts create mode 100644 packages/c-code/src/index.ts create mode 100644 packages/c-code/tests/__snapshots__/c-code.test.ts.snap create mode 100644 packages/c-code/tests/c-code.test.ts create mode 100644 packages/c-code/tsconfig.json diff --git a/packages/c-code/README.md b/packages/c-code/README.md new file mode 100644 index 00000000..5276df0a --- /dev/null +++ b/packages/c-code/README.md @@ -0,0 +1,11 @@ +# @chakra-ui/c-code + +Code is a component used to display inline code. It is composed from the Box component with a font family of mono for displaying code + +## Installation + +```sh +yarn add @chakra-ui/c-code +# or +npm i @chakra-ui/c-code +``` \ No newline at end of file diff --git a/packages/c-code/examples/base-code.vue b/packages/c-code/examples/base-code.vue new file mode 100644 index 00000000..c5ec6723 --- /dev/null +++ b/packages/c-code/examples/base-code.vue @@ -0,0 +1,3 @@ + diff --git a/packages/c-code/examples/with-color.vue b/packages/c-code/examples/with-color.vue new file mode 100644 index 00000000..53b03dd5 --- /dev/null +++ b/packages/c-code/examples/with-color.vue @@ -0,0 +1,26 @@ + + + diff --git a/packages/c-code/index.ts b/packages/c-code/index.ts new file mode 100644 index 00000000..6f39cd49 --- /dev/null +++ b/packages/c-code/index.ts @@ -0,0 +1 @@ +export * from './src' diff --git a/packages/c-code/package.json b/packages/c-code/package.json new file mode 100644 index 00000000..906f69ff --- /dev/null +++ b/packages/c-code/package.json @@ -0,0 +1,53 @@ +{ + "name": "@chakra-ui/c-code", + "description": "Chakra UI Vue | Code is a component used to display inline code. It is composed from the Box component with a font family of mono for displaying code", + "version": "0.0.1-alpha.0", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", + "typings": "dist/types/index.d.ts", + "author": "Jonathan Bakebwa ", + "homepage": "https://github.com/chakra-ui/chakra-ui-vue-next#readme", + "license": "MIT", + "files": [ + "dist" + ], + "exports": { + ".": { + "require": "./dist/cjs/index.js", + "default": "./dist/esm/index.js" + } + }, + "publishConfig": { + "access": "public" + }, + "repository": "https://github.com/chakra-ui/chakra-ui-vue-next/tree/master/packages/c-code", + "bugs": { + "url": "https://github.com/chakra-ui/chakra-ui-vue-next/issues" + }, + "sideEffects": false, + "scripts": { + "build": "rimraf ./dist && concurrently yarn:build:*", + "build:esm": "cross-env BABEL_ENV=esm babel src --root-mode upward --extensions .ts,.tsx -d dist/esm --source-maps", + "build:cjs": "cross-env BABEL_ENV=cjs babel src --root-mode upward --extensions .ts,.tsx -d dist/cjs --source-maps", + "build:types": "cross-env tsc --emitDeclarationOnly --declaration --declarationDir dist/types", + "watch": "concurrently yarn:watch:*", + "watch:esm": "cross-env BABEL_ENV=esm babel src --root-mode upward --extensions .ts,.tsx -d dist/esm --source-maps --watch", + "watch:cjs": "cross-env BABEL_ENV=cjs babel src --root-mode upward --extensions .ts,.tsx -d dist/cjs --source-maps --watch", + "watch:types": "cross-env tsc --emitDeclarationOnly --declaration --declarationDir dist/types --watch --incremental" + }, + "dependencies": { + "@chakra-ui/utils": "^1.5.0", + "@chakra-ui/vue-system": "0.1.0-alpha.1" + }, + "devDependencies": { + "vue": ">=3.0.5" + }, + "peerDependencies": { + "@chakra-ui/vue-system": "0.1.0-alpha.1", + "vue": "^3.0.5" + }, + "contributors": [ + "Vivek Wadhwani " + ] +} diff --git a/packages/c-code/src/code.ts b/packages/c-code/src/code.ts new file mode 100644 index 00000000..c953a45b --- /dev/null +++ b/packages/c-code/src/code.ts @@ -0,0 +1,49 @@ +import { h, defineComponent, PropType, computed } from 'vue' +import { + chakra, + DOMElements, + ThemingProps, + useStyleConfig, +} from '@chakra-ui/vue-system' +import { filterUndefined } from '@chakra-ui/utils' + +const CCode = defineComponent({ + props: { + as: { + type: [Object, String] as PropType, + default: 'code', + }, + colorScheme: String as PropType, + styleConfig: String as PropType, + }, + setup(props, { slots, attrs }) { + return () => { + const themingProps = computed(() => + filterUndefined({ + colorScheme: props.colorScheme, + styleConfig: props.styleConfig, + }) + ) + const styles = useStyleConfig('Code', themingProps.value) + + return h( + chakra(props.as), + { + __css: { + display: 'inline-block', + verticalAlign: 'middle', + fontSize: 'sm', + px: '0.2em', + fontFamily: 'mono', + rounded: 'sm', + ...styles.value, + }, + ...attrs, + }, + slots + ) + } + }, +}) + +export default CCode diff --git a/packages/c-code/src/index.ts b/packages/c-code/src/index.ts new file mode 100644 index 00000000..7ab264f5 --- /dev/null +++ b/packages/c-code/src/index.ts @@ -0,0 +1 @@ +export { default as CCode } from './code' diff --git a/packages/c-code/tests/__snapshots__/c-code.test.ts.snap b/packages/c-code/tests/__snapshots__/c-code.test.ts.snap new file mode 100644 index 00000000..6c9bbc25 --- /dev/null +++ b/packages/c-code/tests/__snapshots__/c-code.test.ts.snap @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render properly 1`] = ` + + + hello world + + + hello world, red + + + hello world, green + + + hello world, yellow + + + hello world, teal + + +`; diff --git a/packages/c-code/tests/c-code.test.ts b/packages/c-code/tests/c-code.test.ts new file mode 100644 index 00000000..e5697081 --- /dev/null +++ b/packages/c-code/tests/c-code.test.ts @@ -0,0 +1,28 @@ +import { CCode } from '../src' +import { render, testA11y } from '../../test-utils/src' + +const renderComponent = (props?: any) => { + const base = { + components: { + CCode, + }, + template: ` + hello world + hello world, red + hello world, green + hello world, yellow + hello world, teal + `, + ...props, + } + return render(base) +} + +it('should have no a11y violations', async () => { + await testA11y(renderComponent()) +}) + +it('should render properly', () => { + const { asFragment } = renderComponent() + expect(asFragment()).toMatchSnapshot() +}) diff --git a/packages/c-code/tsconfig.json b/packages/c-code/tsconfig.json new file mode 100644 index 00000000..674e85d9 --- /dev/null +++ b/packages/c-code/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src"] +} \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 4de0efef..881cc4aa 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -87,6 +87,7 @@ export * from '@chakra-ui/c-button' // C export * from '@chakra-ui/c-color-mode' export * from '@chakra-ui/c-close-button' +export * from '@chakra-ui/c-code' // F export * from '@chakra-ui/c-flex' From 102be894eabb0de31c18655da294bf6ee97a7487 Mon Sep 17 00:00:00 2001 From: devivekw Date: Wed, 7 Apr 2021 22:13:24 +0400 Subject: [PATCH 2/4] docs(c-code): add c-code documentation --- docs/.vitepress/config.js | 1 + docs/components/code.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 docs/components/code.md diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index fed6548e..55861c76 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -55,6 +55,7 @@ function getSetupSidebar() { { text: 'Alert', link: '/components/alert' }, { text: 'Badge', link: '/components/badge' }, { text: 'Button', link: '/components/button' }, + { text: 'Code', link: '/components/code' }, { text: 'Icon', link: '/components/icon' }, { text: 'Spinner', link: '/components/spinner' }, { text: 'CSS reset', link: '/components/css-reset' }, diff --git a/docs/components/code.md b/docs/components/code.md new file mode 100644 index 00000000..3ddb3dc8 --- /dev/null +++ b/docs/components/code.md @@ -0,0 +1,33 @@ +# Code + +Code is a component used to display inline code. It is composed from the Box component with a font family of `mono` for displaying code. + +## Import + +```js +import { CCode } from "@chakra-ui/vue-next" +``` + +## Usage +```vue +hello world +``` + +### Code Color + +Pass the `colorScheme` prop to customize the color of the Badge. `colorScheme` can be any **color key** that exists in `theme.colors`. + +TODO: Link to theming page + +```vue +hello world, default +hello world, green +hello world, red +hello world, purple +``` + +## Props + +| Name | Type | Description | Default | +| :---: | :---: | :---: | :---: | +|`colorScheme`|`string`|Color Scheme to be applied|"cyan" | "gray" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "whiteAlpha" | "blackAlpha" | "linkedin" | "facebook" | "messenger" | "whatsapp" | "twitter" | "telegram"`|`"gray"`| \ No newline at end of file From a79204f8a6786fdb6456632350480a14e17ad345 Mon Sep 17 00:00:00 2001 From: codebender828 Date: Thu, 8 Apr 2021 03:49:13 +0800 Subject: [PATCH 3/4] ci: added changeset for code package --- .changeset/khaki-hounds-hunt.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .changeset/khaki-hounds-hunt.md diff --git a/.changeset/khaki-hounds-hunt.md b/.changeset/khaki-hounds-hunt.md new file mode 100644 index 00000000..027087e6 --- /dev/null +++ b/.changeset/khaki-hounds-hunt.md @@ -0,0 +1,29 @@ +--- +'@chakra-ui/c-accordion': patch +'@chakra-ui/c-alert': patch +'@chakra-ui/c-badge': patch +'@chakra-ui/c-button': patch +'@chakra-ui/c-close-button': patch +'@chakra-ui/c-code': patch +'@chakra-ui/c-color-mode': patch +'@chakra-ui/c-flex': patch +'@chakra-ui/c-icon': patch +'@chakra-ui/c-modal': patch +'@chakra-ui/c-popper': patch +'@chakra-ui/c-portal': patch +'@chakra-ui/c-reset': patch +'@chakra-ui/c-spinner': patch +'@chakra-ui/c-theme-provider': patch +'@chakra-ui/c-visually-hidden': patch +'@chakra-ui/vue-next': patch +'@chakra-ui/nuxt-next': patch +'@chakra-ui/vue-system': patch +'@chakra-ui/vue-test-utils': patch +'@chakra-ui/vue-theme': patch +'@chakra-ui/vue-theme-tools': patch +'@chakra-ui/vue-utils': patch +'@chakra-ui/vue-auto-import': patch +'@chakra-ui/vue-docs': patch +--- + +Created code component From 675a8a1c97332b7df6951f98eed7858bc70dc1e7 Mon Sep 17 00:00:00 2001 From: codebender828 Date: Thu, 8 Apr 2021 03:50:24 +0800 Subject: [PATCH 4/4] fix: workspace dependencies --- packages/c-close-button/package.json | 2 +- packages/c-modal/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/c-close-button/package.json b/packages/c-close-button/package.json index eb60551b..b35b07e9 100644 --- a/packages/c-close-button/package.json +++ b/packages/c-close-button/package.json @@ -38,7 +38,7 @@ }, "dependencies": { "@chakra-ui/c-icon": "1.0.0-alpha.1", - "@chakra-ui/styled-system": "1.10.0", + "@chakra-ui/styled-system": "^1.10.0", "@chakra-ui/vue-system": "0.1.0-alpha.1", "@chakra-ui/vue-utils": "0.1.0-alpha.1" }, diff --git a/packages/c-modal/package.json b/packages/c-modal/package.json index b2e86e9e..4186c681 100644 --- a/packages/c-modal/package.json +++ b/packages/c-modal/package.json @@ -37,7 +37,7 @@ "watch:types": "cross-env tsc --emitDeclarationOnly --declaration --declarationDir dist/types --watch --incremental" }, "dependencies": { - "@chakra-ui/styled-system": "1.10.0", + "@chakra-ui/styled-system": "^1.10.0", "@chakra-ui/vue-system": "0.1.0-alpha.1", "@chakra-ui/vue-utils": "0.1.0-alpha.1" },