@sakura-ui/sakura-ui 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -8
- package/packages/config/package.json +1 -1
- package/packages/config/tsconfig.json +1 -1
- package/packages/config/vite.config.ts +1 -1
- package/packages/core/package.json +2 -2
- package/packages/core/src/components/Button.tsx +27 -24
- package/packages/core/src/components/Card.tsx +2 -2
- package/packages/core/src/components/Code.tsx +2 -2
- package/packages/core/src/components/Heading.tsx +7 -12
- package/packages/core/src/components/Icon.tsx +8 -3
- package/packages/core/src/components/IconButton.tsx +38 -35
- package/packages/core/src/components/InfoCard.tsx +5 -2
- package/packages/core/src/components/Link.tsx +27 -24
- package/packages/core/src/components/List.tsx +4 -4
- package/packages/core/src/components/Pre.tsx +2 -2
- package/packages/core/src/components/Table.tsx +17 -14
- package/packages/core/tsconfig.node.json +1 -1
- package/packages/core/vite.config.ts +1 -1
- package/packages/forms/coverage/clover.xml +60 -60
- package/packages/forms/coverage/coverage-final.json +17 -17
- package/packages/forms/coverage/lcov-report/index.html +23 -23
- package/packages/forms/coverage/lcov-report/src/components/Checkbox.tsx.html +8 -8
- package/packages/forms/coverage/lcov-report/src/components/FieldsetControl.tsx.html +4 -4
- package/packages/forms/coverage/lcov-report/src/components/LabelControl.tsx.html +60 -60
- package/packages/forms/coverage/lcov-report/src/components/Radio.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/Select.tsx.html +37 -31
- package/packages/forms/coverage/lcov-report/src/components/Text.tsx.html +16 -13
- package/packages/forms/coverage/lcov-report/src/components/Textarea.tsx.html +30 -27
- package/packages/forms/coverage/lcov-report/src/components/context.ts.html +5 -2
- package/packages/forms/coverage/lcov-report/src/components/controlled/CheckboxGroup.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/RadioGroup.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/SelectControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextareaControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.html +1 -1
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.ts.html +1 -1
- package/packages/forms/coverage/lcov-report/src/components/index.html +37 -37
- package/packages/forms/coverage/lcov-report/src/components/index.ts.html +9 -9
- package/packages/forms/coverage/lcov-report/src/index.html +5 -5
- package/packages/forms/coverage/lcov-report/src/index.ts.html +9 -9
- package/packages/forms/coverage/lcov-report/src/utils/index.html +1 -1
- package/packages/forms/coverage/lcov-report/src/utils/index.ts.html +2 -2
- package/packages/forms/coverage/lcov.info +91 -83
- package/packages/forms/dist/components/Checkbox.d.ts +2 -2
- package/packages/forms/dist/components/Checkbox.d.ts.map +1 -1
- package/packages/forms/dist/components/Checkbox.js +43 -0
- package/packages/forms/dist/components/Checkbox.js.map +1 -0
- package/packages/forms/dist/components/FieldsetControl.d.ts +2 -2
- package/packages/forms/dist/components/FieldsetControl.d.ts.map +1 -1
- package/packages/forms/dist/components/FieldsetControl.js +20 -0
- package/packages/forms/dist/components/FieldsetControl.js.map +1 -0
- package/packages/forms/dist/components/Input.d.ts +2 -2
- package/packages/forms/dist/components/Input.d.ts.map +1 -1
- package/packages/forms/dist/components/Input.js +27 -0
- package/packages/forms/dist/components/Input.js.map +1 -0
- package/packages/forms/dist/components/LabelControl.d.ts +2 -2
- package/packages/forms/dist/components/LabelControl.d.ts.map +1 -1
- package/packages/forms/dist/components/LabelControl.js +18 -0
- package/packages/forms/dist/components/LabelControl.js.map +1 -0
- package/packages/forms/dist/components/Radio.d.ts +2 -2
- package/packages/forms/dist/components/Radio.d.ts.map +1 -1
- package/packages/forms/dist/components/Radio.js +43 -0
- package/packages/forms/dist/components/Radio.js.map +1 -0
- package/packages/forms/dist/components/Select.d.ts +2 -2
- package/packages/forms/dist/components/Select.d.ts.map +1 -1
- package/packages/forms/dist/components/Select.js +39 -0
- package/packages/forms/dist/components/Select.js.map +1 -0
- package/packages/forms/dist/components/Textarea.d.ts +2 -2
- package/packages/forms/dist/components/Textarea.d.ts.map +1 -1
- package/packages/forms/dist/components/Textarea.js +34 -0
- package/packages/forms/dist/components/Textarea.js.map +1 -0
- package/packages/forms/dist/components/context.js +8 -0
- package/packages/forms/dist/components/context.js.map +1 -0
- package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts +2 -2
- package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts.map +1 -1
- package/packages/forms/dist/components/controlled/CheckboxGroup.js +12 -0
- package/packages/forms/dist/components/controlled/CheckboxGroup.js.map +1 -0
- package/packages/forms/dist/components/controlled/InputItem.js +2 -0
- package/packages/forms/dist/components/controlled/InputItem.js.map +1 -0
- package/packages/forms/dist/components/controlled/RadioGroup.d.ts +2 -2
- package/packages/forms/dist/components/controlled/RadioGroup.d.ts.map +1 -1
- package/packages/forms/dist/components/controlled/RadioGroup.js +12 -0
- package/packages/forms/dist/components/controlled/RadioGroup.js.map +1 -0
- package/packages/forms/dist/components/controlled/SelectControl.d.ts +2 -2
- package/packages/forms/dist/components/controlled/SelectControl.d.ts.map +1 -1
- package/packages/forms/dist/components/controlled/SelectControl.js +10 -0
- package/packages/forms/dist/components/controlled/SelectControl.js.map +1 -0
- package/packages/forms/dist/components/controlled/TextareaControl.d.ts +2 -2
- package/packages/forms/dist/components/controlled/TextareaControl.d.ts.map +1 -1
- package/packages/forms/dist/components/controlled/TextareaControl.js +10 -0
- package/packages/forms/dist/components/controlled/TextareaControl.js.map +1 -0
- package/packages/forms/dist/components/controlled/index.d.ts +0 -1
- package/packages/forms/dist/components/controlled/index.d.ts.map +1 -1
- package/packages/forms/dist/components/controlled/index.js +5 -0
- package/packages/forms/dist/components/controlled/index.js.map +1 -0
- package/packages/forms/dist/components/index.js +8 -0
- package/packages/forms/dist/components/index.js.map +1 -0
- package/packages/forms/dist/index.cjs.js +80 -80
- package/packages/forms/dist/index.cjs.js.map +1 -1
- package/packages/forms/dist/index.d.ts +1 -1
- package/packages/forms/dist/index.d.ts.map +1 -1
- package/packages/forms/dist/index.es.js +501 -504
- package/packages/forms/dist/index.es.js.map +1 -1
- package/packages/forms/dist/index.js +3 -0
- package/packages/forms/dist/index.js.map +1 -0
- package/packages/forms/dist/utils/class.js +2 -0
- package/packages/forms/dist/utils/class.js.map +1 -0
- package/packages/forms/node_modules/.bin/autoprefixer +4 -4
- package/packages/forms/node_modules/.bin/jest +4 -4
- package/packages/forms/node_modules/.bin/npm-run-all +4 -4
- package/packages/forms/node_modules/.bin/run-p +4 -4
- package/packages/forms/node_modules/.bin/run-s +4 -4
- package/packages/forms/node_modules/.bin/tailwind +4 -4
- package/packages/forms/node_modules/.bin/tailwindcss +4 -4
- package/packages/forms/node_modules/.bin/ts-jest +4 -4
- package/packages/forms/node_modules/.bin/ts-node +4 -4
- package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
- package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
- package/packages/forms/node_modules/.bin/ts-node-script +4 -4
- package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
- package/packages/forms/node_modules/.bin/ts-script +4 -4
- package/packages/forms/node_modules/.bin/tsc +4 -4
- package/packages/forms/node_modules/.bin/tsc-alias +4 -4
- package/packages/forms/node_modules/.bin/tsserver +4 -4
- package/packages/forms/node_modules/.bin/vite +4 -4
- package/packages/forms/package.json +2 -2
- package/packages/forms/src/components/Checkbox.tsx +62 -59
- package/packages/forms/src/components/FieldsetControl.tsx +62 -55
- package/packages/forms/src/components/Input.tsx +38 -35
- package/packages/forms/src/components/LabelControl.tsx +56 -52
- package/packages/forms/src/components/Radio.tsx +8 -3
- package/packages/forms/src/components/Select.tsx +57 -56
- package/packages/forms/src/components/Textarea.tsx +58 -54
- package/packages/forms/src/components/controlled/CheckboxGroup.tsx +37 -37
- package/packages/forms/src/components/controlled/RadioGroup.tsx +5 -3
- package/packages/forms/src/components/controlled/SelectControl.tsx +28 -27
- package/packages/forms/src/components/controlled/TextareaControl.tsx +28 -27
- package/packages/forms/src/components/controlled/index.ts +0 -1
- package/packages/forms/src/index.ts +0 -1
- package/packages/forms/tsconfig.node.json +1 -1
- package/packages/forms/vite.config.ts +1 -1
- package/packages/forms/dist/components/controlled/InputControl.d.ts +0 -10
- package/packages/forms/dist/components/controlled/InputControl.d.ts.map +0 -1
- package/packages/forms/node_modules/.bin/browserslist +0 -17
- package/packages/forms/src/components/controlled/InputControl.tsx +0 -39
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sakura-ui/sakura-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": "glassonion1",
|
|
6
6
|
"homepage": "https://github.com/glassonion1/sakura-ui",
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"packages"
|
|
14
14
|
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "pnpm --parallel --filter \"./**\" build"
|
|
17
|
+
},
|
|
15
18
|
"dependencies": {
|
|
16
|
-
"@sakura-ui/
|
|
17
|
-
"@sakura-ui/
|
|
18
|
-
"@sakura-ui/
|
|
19
|
+
"@sakura-ui/config": "workspace:*",
|
|
20
|
+
"@sakura-ui/core": "workspace:*",
|
|
21
|
+
"@sakura-ui/forms": "workspace:*"
|
|
19
22
|
},
|
|
20
23
|
"peerDependencies": {
|
|
21
24
|
"react": "^18.2.0",
|
|
22
25
|
"react-dom": "^18.2.0",
|
|
23
26
|
"tailwindcss": "^3.2.7"
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "pnpm --parallel --filter \"./**\" build"
|
|
27
27
|
}
|
|
28
|
-
}
|
|
28
|
+
}
|
|
@@ -13,7 +13,7 @@ export default defineConfig({
|
|
|
13
13
|
lib: {
|
|
14
14
|
entry: resolve(__dirname, 'src', 'index.ts'),
|
|
15
15
|
formats: ['es', 'cjs'],
|
|
16
|
-
fileName: (ext) => `index.${ext}.js`
|
|
16
|
+
fileName: (ext: string) => `index.${ext}.js`
|
|
17
17
|
},
|
|
18
18
|
rollupOptions: {
|
|
19
19
|
external: [...Object.keys(peerDependencies)]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sakura-ui/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"dev": "vite",
|
|
22
22
|
"build": "run-p build:*",
|
|
23
23
|
"build:scripts": "vite build",
|
|
24
|
-
"build:types": "tsc
|
|
24
|
+
"build:types": "tsc && tsc-alias",
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"keywords": [],
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface ButtonProps extends React.
|
|
4
|
+
export interface ButtonProps extends React.ComponentPropsWithRef<'button'> {
|
|
5
5
|
variant?: 'primary' | 'secondary'
|
|
6
6
|
textAlign?: 'left' | 'right' | 'center'
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export const Button = React.forwardRef<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
export const Button: React.ElementType<ButtonProps> = React.forwardRef<
|
|
10
|
+
HTMLButtonElement,
|
|
11
|
+
ButtonProps
|
|
12
|
+
>((props, ref) => {
|
|
13
|
+
// Make sure that there is no problem even if className is specified on the side that uses the component
|
|
14
|
+
const { className, children, textAlign, variant, ...restProps } = props
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
const align = textAlign ?? 'center'
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
const style = `
|
|
17
19
|
inline-block
|
|
18
20
|
p-4
|
|
19
21
|
text-button
|
|
@@ -31,7 +33,7 @@ export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
|
31
33
|
disabled:cursor-not-allowed
|
|
32
34
|
`
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
const primary = `
|
|
35
37
|
text-white-1000
|
|
36
38
|
bg-sea-600
|
|
37
39
|
hover:enabled:bg-sea-700
|
|
@@ -39,7 +41,7 @@ export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
|
39
41
|
disabled:bg-sumi-500
|
|
40
42
|
disabled:text-white-1000
|
|
41
43
|
`
|
|
42
|
-
|
|
44
|
+
const secondary = `
|
|
43
45
|
text-sea-600
|
|
44
46
|
bg-transparent
|
|
45
47
|
hover:enabled:bg-sea-100
|
|
@@ -47,19 +49,20 @@ export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
|
47
49
|
disabled:text-sumi-500
|
|
48
50
|
`
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<button
|
|
57
|
-
className={cx(style, styles[variant ?? 'primary'], className)}
|
|
58
|
-
{...restProps}
|
|
59
|
-
ref={ref}
|
|
60
|
-
>
|
|
61
|
-
{children}
|
|
62
|
-
</button>
|
|
63
|
-
)
|
|
52
|
+
const styles = {
|
|
53
|
+
primary: primary,
|
|
54
|
+
secondary: secondary
|
|
64
55
|
}
|
|
65
|
-
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<button
|
|
59
|
+
className={cx(style, styles[variant ?? 'primary'], className)}
|
|
60
|
+
{...restProps}
|
|
61
|
+
ref={ref}
|
|
62
|
+
>
|
|
63
|
+
{children}
|
|
64
|
+
</button>
|
|
65
|
+
)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
Button.displayName = 'Button'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface CardProps extends React.
|
|
4
|
+
export interface CardProps extends React.ComponentPropsWithoutRef<'section'> {}
|
|
5
5
|
|
|
6
|
-
export const Card = (props: CardProps) => {
|
|
6
|
+
export const Card: React.ElementType<CardProps> = (props: CardProps) => {
|
|
7
7
|
const { className, children, ...restProps } = props
|
|
8
8
|
|
|
9
9
|
const style = `
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface CodeProps extends React.
|
|
4
|
+
export interface CodeProps extends React.ComponentPropsWithoutRef<'code'> {}
|
|
5
5
|
|
|
6
|
-
export const Code = (props: CodeProps) => {
|
|
6
|
+
export const Code: React.ElementType<CodeProps> = (props: CodeProps) => {
|
|
7
7
|
const { className, children, ...restProps } = props
|
|
8
8
|
|
|
9
9
|
const style = `
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface HeadingProps extends React.
|
|
4
|
+
export interface HeadingProps extends React.ComponentPropsWithoutRef<'h1'> {}
|
|
5
5
|
|
|
6
|
-
export const H1 = (props: HeadingProps) => {
|
|
6
|
+
export const H1: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
7
7
|
const { className, children, ...restProps } = props
|
|
8
8
|
|
|
9
9
|
const style = `
|
|
@@ -20,8 +20,7 @@ export const H1 = (props: HeadingProps) => {
|
|
|
20
20
|
)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export const H2 = (props: HeadingProps) => {
|
|
24
|
-
// コンポーネントを使う側でclassNameを指定しても問題ないようにする
|
|
23
|
+
export const H2: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
25
24
|
const { className, children, ...restProps } = props
|
|
26
25
|
|
|
27
26
|
const style = `
|
|
@@ -38,8 +37,7 @@ export const H2 = (props: HeadingProps) => {
|
|
|
38
37
|
)
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
export const H3 = (props: HeadingProps) => {
|
|
42
|
-
// コンポーネントを使う側でclassNameを指定しても問題ないようにする
|
|
40
|
+
export const H3: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
43
41
|
const { className, children, ...restProps } = props
|
|
44
42
|
|
|
45
43
|
const style = `
|
|
@@ -56,8 +54,7 @@ export const H3 = (props: HeadingProps) => {
|
|
|
56
54
|
)
|
|
57
55
|
}
|
|
58
56
|
|
|
59
|
-
export const H4 = (props: HeadingProps) => {
|
|
60
|
-
// コンポーネントを使う側でclassNameを指定しても問題ないようにする
|
|
57
|
+
export const H4: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
61
58
|
const { className, children, ...restProps } = props
|
|
62
59
|
|
|
63
60
|
const style = `
|
|
@@ -74,8 +71,7 @@ export const H4 = (props: HeadingProps) => {
|
|
|
74
71
|
)
|
|
75
72
|
}
|
|
76
73
|
|
|
77
|
-
export const H5 = (props: HeadingProps) => {
|
|
78
|
-
// コンポーネントを使う側でclassNameを指定しても問題ないようにする
|
|
74
|
+
export const H5: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
79
75
|
const { className, children, ...restProps } = props
|
|
80
76
|
|
|
81
77
|
const style = `
|
|
@@ -92,8 +88,7 @@ export const H5 = (props: HeadingProps) => {
|
|
|
92
88
|
)
|
|
93
89
|
}
|
|
94
90
|
|
|
95
|
-
export const H6 = (props: HeadingProps) => {
|
|
96
|
-
// コンポーネントを使う側でclassNameを指定しても問題ないようにする
|
|
91
|
+
export const H6: React.ElementType<HeadingProps> = (props: HeadingProps) => {
|
|
97
92
|
const { className, children, ...restProps } = props
|
|
98
93
|
|
|
99
94
|
const style = `
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface IconProps extends React.
|
|
4
|
+
export interface IconProps extends React.ComponentPropsWithRef<'span'> {
|
|
5
5
|
icon: string
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export const Icon
|
|
8
|
+
export const Icon: React.ElementType<IconProps> = React.forwardRef<
|
|
9
|
+
HTMLElement,
|
|
10
|
+
IconProps
|
|
11
|
+
>((props, ref) => {
|
|
9
12
|
const { className, icon, ...restProps } = props
|
|
10
13
|
|
|
11
14
|
const style = `
|
|
@@ -24,4 +27,6 @@ export const Icon = React.forwardRef<HTMLElement, IconProps>((props, ref) => {
|
|
|
24
27
|
{icon}
|
|
25
28
|
</span>
|
|
26
29
|
)
|
|
27
|
-
})
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
Icon.displayName = 'Icon'
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface IconButtonProps extends React.
|
|
4
|
+
export interface IconButtonProps extends React.ComponentPropsWithRef<'button'> {
|
|
5
5
|
variant?: 'primary' | 'secondary'
|
|
6
6
|
iconLayout?: 'left' | 'right'
|
|
7
7
|
rounded?: string
|
|
8
8
|
icon: string
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export const IconButton = React.forwardRef<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
export const IconButton: React.ElementType<IconButtonProps> = React.forwardRef<
|
|
12
|
+
HTMLButtonElement,
|
|
13
|
+
IconButtonProps
|
|
14
|
+
>((props, ref) => {
|
|
15
|
+
const {
|
|
16
|
+
className,
|
|
17
|
+
children,
|
|
18
|
+
variant,
|
|
19
|
+
icon,
|
|
20
|
+
iconLayout,
|
|
21
|
+
rounded,
|
|
22
|
+
...restProps
|
|
23
|
+
} = props
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
const layout = iconLayout ?? 'left'
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
const align = 'center'
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
const style = `
|
|
28
30
|
${rounded === 'full' ? 'aspect-square' : ''}
|
|
29
31
|
inline-block
|
|
30
32
|
p-4
|
|
@@ -43,7 +45,7 @@ export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
|
43
45
|
disabled:cursor-not-allowed
|
|
44
46
|
`
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
const primary = `
|
|
47
49
|
text-white-1000
|
|
48
50
|
bg-sea-600
|
|
49
51
|
hover:enabled:bg-sea-700
|
|
@@ -51,19 +53,19 @@ export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
|
51
53
|
disabled:bg-sumi-500
|
|
52
54
|
disabled:text-white-1000
|
|
53
55
|
`
|
|
54
|
-
|
|
56
|
+
const secondary = `
|
|
55
57
|
text-sea-600
|
|
56
58
|
hover:enabled:bg-sea-100
|
|
57
59
|
active:enabled:bg-sea-200
|
|
58
60
|
disabled:text-sumi-500
|
|
59
61
|
`
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const styles = {
|
|
64
|
+
primary: primary,
|
|
65
|
+
secondary: secondary
|
|
66
|
+
}
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
const iconStyle = `
|
|
67
69
|
inline-block
|
|
68
70
|
align-middle
|
|
69
71
|
font-icon
|
|
@@ -74,16 +76,17 @@ export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
|
74
76
|
mb-1
|
|
75
77
|
`
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
return (
|
|
80
|
+
<button
|
|
81
|
+
className={cx(style, styles[variant ?? 'primary'], className)}
|
|
82
|
+
{...restProps}
|
|
83
|
+
ref={ref}
|
|
84
|
+
>
|
|
85
|
+
{layout == 'left' && <span className={cx(iconStyle)}>{icon}</span>}
|
|
86
|
+
{children && <span className="mx-1 inline-block">{children}</span>}
|
|
87
|
+
{layout == 'right' && <span className={cx(iconStyle)}>{icon}</span>}
|
|
88
|
+
</button>
|
|
89
|
+
)
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
IconButton.displayName = 'IconButton'
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface InfoCardProps
|
|
4
|
+
export interface InfoCardProps
|
|
5
|
+
extends React.ComponentPropsWithoutRef<'section'> {
|
|
5
6
|
title?: string
|
|
6
7
|
}
|
|
7
8
|
|
|
8
|
-
export const InfoCard
|
|
9
|
+
export const InfoCard: React.ElementType<InfoCardProps> = (
|
|
10
|
+
props: InfoCardProps
|
|
11
|
+
) => {
|
|
9
12
|
const { className, children, title, ...restProps } = props
|
|
10
13
|
|
|
11
14
|
const style = `
|
|
@@ -28,15 +28,17 @@ const getFileType = (url: string) => {
|
|
|
28
28
|
return null
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
export interface LinkProps extends React.
|
|
31
|
+
export interface LinkProps extends React.ComponentPropsWithRef<'a'> {}
|
|
32
32
|
|
|
33
|
-
export const Link = React.forwardRef<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
export const Link: React.ElementType<LinkProps> = React.forwardRef<
|
|
34
|
+
HTMLAnchorElement,
|
|
35
|
+
LinkProps
|
|
36
|
+
>((props, ref) => {
|
|
37
|
+
const { className, children, ...restProps } = props
|
|
38
|
+
const href = props.href ?? ''
|
|
39
|
+
const fileType = getFileType(href)
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
const style = `
|
|
40
42
|
rounded-sm
|
|
41
43
|
cursor-pointer
|
|
42
44
|
text-sea-600
|
|
@@ -51,26 +53,27 @@ export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
51
53
|
disabled:border-sumi-500
|
|
52
54
|
`
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<a
|
|
57
|
-
className={cx(style, className)}
|
|
58
|
-
href={href}
|
|
59
|
-
target="_blank"
|
|
60
|
-
rel="noopener noreferrer"
|
|
61
|
-
{...restProps}
|
|
62
|
-
ref={ref}
|
|
63
|
-
>
|
|
64
|
-
{children}
|
|
65
|
-
{fileType ? `(${fileType})` : null}
|
|
66
|
-
</a>
|
|
67
|
-
)
|
|
68
|
-
}
|
|
56
|
+
if (href.startsWith('http')) {
|
|
69
57
|
return (
|
|
70
|
-
<a
|
|
58
|
+
<a
|
|
59
|
+
className={cx(style, className)}
|
|
60
|
+
href={href}
|
|
61
|
+
target="_blank"
|
|
62
|
+
rel="noopener noreferrer"
|
|
63
|
+
{...restProps}
|
|
64
|
+
ref={ref}
|
|
65
|
+
>
|
|
71
66
|
{children}
|
|
72
67
|
{fileType ? `(${fileType})` : null}
|
|
73
68
|
</a>
|
|
74
69
|
)
|
|
75
70
|
}
|
|
76
|
-
|
|
71
|
+
return (
|
|
72
|
+
<a className={cx(style, className)} href={href} {...restProps} ref={ref}>
|
|
73
|
+
{children}
|
|
74
|
+
{fileType ? `(${fileType})` : null}
|
|
75
|
+
</a>
|
|
76
|
+
)
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
Link.displayName = 'Link'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface UlProps extends React.
|
|
4
|
+
export interface UlProps extends React.ComponentPropsWithoutRef<'ul'> {}
|
|
5
5
|
|
|
6
|
-
export const Ul = (props: UlProps) => {
|
|
6
|
+
export const Ul: React.ElementType<UlProps> = (props: UlProps) => {
|
|
7
7
|
const { className, children, ...restProps } = props
|
|
8
8
|
|
|
9
9
|
const style = `
|
|
@@ -20,9 +20,9 @@ export const Ul = (props: UlProps) => {
|
|
|
20
20
|
)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export interface OlProps extends React.
|
|
23
|
+
export interface OlProps extends React.ComponentPropsWithoutRef<'ol'> {}
|
|
24
24
|
|
|
25
|
-
export const Ol = (props: OlProps) => {
|
|
25
|
+
export const Ol: React.ElementType<OlProps> = (props: OlProps) => {
|
|
26
26
|
const { className, children, ...restProps } = props
|
|
27
27
|
|
|
28
28
|
const style = `
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface PreProps extends React.
|
|
4
|
+
export interface PreProps extends React.ComponentPropsWithoutRef<'pre'> {}
|
|
5
5
|
|
|
6
|
-
export const Pre = (props: PreProps) => {
|
|
6
|
+
export const Pre: React.ElementType<PreProps> = (props: PreProps) => {
|
|
7
7
|
const { className, children, ...restProps } = props
|
|
8
8
|
|
|
9
9
|
const style = `
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
export interface TableProps extends React.
|
|
4
|
+
export interface TableProps extends React.ComponentPropsWithoutRef<'table'> {}
|
|
5
5
|
|
|
6
6
|
const styleBorder = `
|
|
7
7
|
border
|
|
@@ -9,7 +9,7 @@ const styleBorder = `
|
|
|
9
9
|
border-sumi-900
|
|
10
10
|
`
|
|
11
11
|
|
|
12
|
-
export const Table = (props: TableProps) => {
|
|
12
|
+
export const Table: React.ElementType<TableProps> = (props: TableProps) => {
|
|
13
13
|
const { className, children, ...restProps } = props
|
|
14
14
|
|
|
15
15
|
// If there is no break-all setting, the table will protrude when using a smartphone
|
|
@@ -26,9 +26,12 @@ export const Table = (props: TableProps) => {
|
|
|
26
26
|
)
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface CaptionProps
|
|
29
|
+
export interface CaptionProps
|
|
30
|
+
extends React.ComponentPropsWithoutRef<'caption'> {}
|
|
30
31
|
|
|
31
|
-
export const Caption
|
|
32
|
+
export const Caption: React.ElementType<CaptionProps> = (
|
|
33
|
+
props: CaptionProps
|
|
34
|
+
) => {
|
|
32
35
|
const { className, children, ...restProps } = props
|
|
33
36
|
|
|
34
37
|
const style = `text-left`
|
|
@@ -39,9 +42,9 @@ export const Caption = (props: CaptionProps) => {
|
|
|
39
42
|
)
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
export interface TheadProps extends React.
|
|
45
|
+
export interface TheadProps extends React.ComponentPropsWithoutRef<'thead'> {}
|
|
43
46
|
|
|
44
|
-
export const Thead = (props: TheadProps) => {
|
|
47
|
+
export const Thead: React.ElementType<TheadProps> = (props: TheadProps) => {
|
|
45
48
|
const { className, children, ...restProps } = props
|
|
46
49
|
|
|
47
50
|
return (
|
|
@@ -51,9 +54,9 @@ export const Thead = (props: TheadProps) => {
|
|
|
51
54
|
)
|
|
52
55
|
}
|
|
53
56
|
|
|
54
|
-
export interface TbodyProps extends React.
|
|
57
|
+
export interface TbodyProps extends React.ComponentPropsWithoutRef<'tbody'> {}
|
|
55
58
|
|
|
56
|
-
export const Tbody = (props: TbodyProps) => {
|
|
59
|
+
export const Tbody: React.ElementType<TbodyProps> = (props: TbodyProps) => {
|
|
57
60
|
const { className, children, ...restProps } = props
|
|
58
61
|
|
|
59
62
|
return (
|
|
@@ -63,9 +66,9 @@ export const Tbody = (props: TbodyProps) => {
|
|
|
63
66
|
)
|
|
64
67
|
}
|
|
65
68
|
|
|
66
|
-
export interface ThProps extends React.
|
|
69
|
+
export interface ThProps extends React.ComponentPropsWithoutRef<'th'> {}
|
|
67
70
|
|
|
68
|
-
export const Th = (props: ThProps) => {
|
|
71
|
+
export const Th: React.ElementType<ThProps> = (props: ThProps) => {
|
|
69
72
|
const { className, children, ...restProps } = props
|
|
70
73
|
|
|
71
74
|
const style = `
|
|
@@ -80,9 +83,9 @@ export const Th = (props: ThProps) => {
|
|
|
80
83
|
)
|
|
81
84
|
}
|
|
82
85
|
|
|
83
|
-
export interface TrProps extends React.
|
|
86
|
+
export interface TrProps extends React.ComponentPropsWithoutRef<'tr'> {}
|
|
84
87
|
|
|
85
|
-
export const Tr = (props: TrProps) => {
|
|
88
|
+
export const Tr: React.ElementType<TrProps> = (props: TrProps) => {
|
|
86
89
|
const { className, children, ...restProps } = props
|
|
87
90
|
|
|
88
91
|
const style = ``
|
|
@@ -94,9 +97,9 @@ export const Tr = (props: TrProps) => {
|
|
|
94
97
|
)
|
|
95
98
|
}
|
|
96
99
|
|
|
97
|
-
export interface TdProps extends React.
|
|
100
|
+
export interface TdProps extends React.ComponentPropsWithoutRef<'td'> {}
|
|
98
101
|
|
|
99
|
-
export const Td = (props: TdProps) => {
|
|
102
|
+
export const Td: React.ElementType<TdProps> = (props: TdProps) => {
|
|
100
103
|
const { className, children, ...restProps } = props
|
|
101
104
|
|
|
102
105
|
const style = `
|
|
@@ -15,7 +15,7 @@ export default defineConfig({
|
|
|
15
15
|
lib: {
|
|
16
16
|
entry: resolve(__dirname, 'src', 'index.ts'),
|
|
17
17
|
formats: ['es', 'cjs'],
|
|
18
|
-
fileName: (ext) => `index.${ext}.js`
|
|
18
|
+
fileName: (ext: string) => `index.${ext}.js`
|
|
19
19
|
},
|
|
20
20
|
rollupOptions: {
|
|
21
21
|
external: [...Object.keys(peerDependencies)]
|