@sakura-ui/sakura-ui 0.1.11 → 0.1.13
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 +2 -2
- package/packages/config/src/index.ts +25 -9
- package/packages/config/tsconfig.json +1 -1
- package/packages/config/vite.config.ts +1 -1
- package/packages/core/coverage/clover.xml +258 -0
- package/packages/core/coverage/coverage-final.json +15 -0
- package/packages/core/coverage/lcov-report/base.css +224 -0
- package/packages/core/coverage/lcov-report/block-navigation.js +87 -0
- package/packages/core/coverage/lcov-report/favicon.png +0 -0
- package/packages/core/coverage/lcov-report/index.html +146 -0
- package/packages/core/coverage/lcov-report/prettify.css +1 -0
- package/packages/core/coverage/lcov-report/prettify.js +2 -0
- package/packages/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/packages/core/coverage/lcov-report/sorter.js +196 -0
- package/packages/core/coverage/lcov-report/src/components/Button.tsx.html +301 -0
- package/packages/core/coverage/lcov-report/src/components/Card.tsx.html +397 -0
- package/packages/core/coverage/lcov-report/src/components/Code.tsx.html +142 -0
- package/packages/core/coverage/lcov-report/src/components/Heading.tsx.html +403 -0
- package/packages/core/coverage/lcov-report/src/components/Icon.tsx.html +181 -0
- package/packages/core/coverage/lcov-report/src/components/IconButton.tsx.html +376 -0
- package/packages/core/coverage/lcov-report/src/components/InfoCard.tsx.html +238 -0
- package/packages/core/coverage/lcov-report/src/components/Link.tsx.html +322 -0
- package/packages/core/coverage/lcov-report/src/components/List.tsx.html +202 -0
- package/packages/core/coverage/lcov-report/src/components/Pre.tsx.html +151 -0
- package/packages/core/coverage/lcov-report/src/components/Table.tsx.html +427 -0
- package/packages/core/coverage/lcov-report/src/components/index.html +281 -0
- package/packages/core/coverage/lcov-report/src/components/index.ts.html +124 -0
- package/packages/core/coverage/lcov-report/src/index.html +116 -0
- package/packages/core/coverage/lcov-report/src/index.ts.html +169 -0
- package/packages/core/coverage/lcov-report/src/utils/class.ts.html +88 -0
- package/packages/core/coverage/lcov-report/src/utils/index.html +116 -0
- package/packages/core/coverage/lcov.info +523 -0
- package/packages/core/jest.config.ts +11 -0
- package/packages/core/package.json +6 -2
- package/packages/core/src/components/Button.tsx +60 -53
- package/packages/core/src/components/Card.tsx +89 -8
- 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 +57 -49
- package/packages/core/src/components/InfoCard.tsx +15 -11
- 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/src/components/index.ts +4 -2
- package/packages/core/src/index.ts +3 -0
- package/packages/core/tests/Card.test.tsx +19 -0
- 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/jest.config.ts +0 -3
- package/packages/forms/node_modules/.bin/autoprefixer +4 -4
- package/packages/forms/node_modules/.bin/browserslist +2 -2
- 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/src/components/controlled/InputControl.tsx +0 -39
|
@@ -1,23 +1,104 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { cx } from '../utils/class'
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
interface IdContextType {
|
|
5
|
+
id: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const IdContext = React.createContext<IdContextType>({ id: '' })
|
|
9
|
+
|
|
10
|
+
export interface CardProps extends React.ComponentPropsWithoutRef<'section'> {}
|
|
5
11
|
|
|
6
|
-
export const Card = (props: CardProps) => {
|
|
12
|
+
export const Card: React.ElementType<CardProps> = (props: CardProps) => {
|
|
7
13
|
const { className, children, ...restProps } = props
|
|
8
14
|
|
|
15
|
+
const id = React.useId()
|
|
16
|
+
const ctx: IdContextType = { id: id }
|
|
17
|
+
|
|
9
18
|
const style = `
|
|
10
|
-
bg-sumi-50
|
|
11
19
|
border
|
|
12
20
|
border-solid
|
|
13
21
|
border-sumi-300
|
|
14
|
-
rounded-
|
|
15
|
-
|
|
22
|
+
rounded-2xl
|
|
23
|
+
md:rounded-3xl
|
|
16
24
|
text-sumi-900
|
|
25
|
+
overflow-hidden
|
|
26
|
+
`
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<IdContext.Provider value={ctx}>
|
|
30
|
+
<section
|
|
31
|
+
aria-labelledby={ctx.id}
|
|
32
|
+
className={cx(style, className)}
|
|
33
|
+
{...restProps}
|
|
34
|
+
>
|
|
35
|
+
{children}
|
|
36
|
+
</section>
|
|
37
|
+
</IdContext.Provider>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface CardHeaderProps extends React.ComponentPropsWithoutRef<'h2'> {}
|
|
42
|
+
|
|
43
|
+
export const CardHeader: React.ElementType<CardHeaderProps> = (
|
|
44
|
+
props: CardHeaderProps
|
|
45
|
+
) => {
|
|
46
|
+
const { className, children, ...restProps } = props
|
|
47
|
+
|
|
48
|
+
const ctx = React.useContext(IdContext)
|
|
49
|
+
|
|
50
|
+
const style = `
|
|
51
|
+
py-6
|
|
52
|
+
px-6
|
|
53
|
+
text-lgm
|
|
54
|
+
leading-none
|
|
55
|
+
`
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<h2 id={ctx.id} className={cx(style, className)} {...restProps}>
|
|
59
|
+
{children}
|
|
60
|
+
</h2>
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface CardBodyProps extends React.ComponentPropsWithoutRef<'p'> {}
|
|
65
|
+
|
|
66
|
+
export const CardBody: React.ElementType<CardBodyProps> = (
|
|
67
|
+
props: CardBodyProps
|
|
68
|
+
) => {
|
|
69
|
+
const { className, children, ...restProps } = props
|
|
70
|
+
|
|
71
|
+
const style = `
|
|
72
|
+
px-6
|
|
73
|
+
first:pt-6
|
|
74
|
+
pb-6
|
|
75
|
+
text-base
|
|
76
|
+
`
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<p className={cx(style, className)} {...restProps}>
|
|
80
|
+
{children}
|
|
81
|
+
</p>
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface CardFooterProps
|
|
86
|
+
extends React.ComponentPropsWithoutRef<'div'> {}
|
|
87
|
+
|
|
88
|
+
export const CardFooter: React.ElementType<CardFooterProps> = (
|
|
89
|
+
props: CardFooterProps
|
|
90
|
+
) => {
|
|
91
|
+
const { className, children, ...restProps } = props
|
|
92
|
+
|
|
93
|
+
const style = `
|
|
94
|
+
px-6
|
|
95
|
+
first:pt-6
|
|
96
|
+
pb-6
|
|
17
97
|
`
|
|
98
|
+
|
|
18
99
|
return (
|
|
19
|
-
<
|
|
20
|
-
{
|
|
21
|
-
</
|
|
100
|
+
<div className={cx(style, className)} {...restProps}>
|
|
101
|
+
{children}
|
|
102
|
+
</div>
|
|
22
103
|
)
|
|
23
104
|
}
|
|
@@ -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
|
|
@@ -35,35 +37,40 @@ export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
|
35
37
|
whitespace-nowrap
|
|
36
38
|
border
|
|
37
39
|
border-solid
|
|
38
|
-
border-sea-
|
|
40
|
+
border-sea-800
|
|
41
|
+
active:enabled:border-sea-800-darken
|
|
42
|
+
hover:enabled:border-sea-800-darken
|
|
39
43
|
focus:outline
|
|
40
44
|
focus:outline-2
|
|
41
|
-
focus:outline-wood-
|
|
45
|
+
focus:outline-wood-600
|
|
42
46
|
disabled:border-sumi-500
|
|
43
47
|
disabled:cursor-not-allowed
|
|
44
48
|
`
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
const primary = `
|
|
51
|
+
text-white-1000
|
|
52
|
+
bg-sea-800
|
|
53
|
+
active:enabled:bg-sea-800-darken
|
|
54
|
+
hover:enabled:bg-sea-800-darken
|
|
55
|
+
disabled:bg-sumi-500
|
|
56
|
+
disabled:text-white-1000
|
|
57
|
+
`
|
|
58
|
+
const secondary = `
|
|
59
|
+
text-sea-800
|
|
60
|
+
bg-transparent
|
|
61
|
+
active:enabled:bg-sea-50
|
|
62
|
+
hover:enabled:bg-sea-50
|
|
63
|
+
active:enabled:text-sea-800-darken
|
|
64
|
+
hover:enabled:text-sea-800-darken
|
|
65
|
+
disabled:text-sumi-500
|
|
66
|
+
`
|
|
60
67
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
const styles = {
|
|
69
|
+
primary: primary,
|
|
70
|
+
secondary: secondary
|
|
71
|
+
}
|
|
65
72
|
|
|
66
|
-
|
|
73
|
+
const iconStyle = `
|
|
67
74
|
inline-block
|
|
68
75
|
align-middle
|
|
69
76
|
font-icon
|
|
@@ -74,16 +81,17 @@ export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
|
74
81
|
mb-1
|
|
75
82
|
`
|
|
76
83
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
return (
|
|
85
|
+
<button
|
|
86
|
+
className={cx(style, styles[variant ?? 'primary'], className)}
|
|
87
|
+
{...restProps}
|
|
88
|
+
ref={ref}
|
|
89
|
+
>
|
|
90
|
+
{layout == 'left' && <span className={cx(iconStyle)}>{icon}</span>}
|
|
91
|
+
{children && <span className="mx-1 inline-block">{children}</span>}
|
|
92
|
+
{layout == 'right' && <span className={cx(iconStyle)}>{icon}</span>}
|
|
93
|
+
</button>
|
|
94
|
+
)
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
IconButton.displayName = 'IconButton'
|
|
@@ -1,33 +1,37 @@
|
|
|
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 = `
|
|
12
|
-
bg-sumi-50
|
|
13
|
-
border-sumi-300
|
|
14
15
|
border
|
|
15
16
|
border-solid
|
|
16
|
-
|
|
17
|
+
border-sumi-300
|
|
18
|
+
rounded-2xl
|
|
19
|
+
md:rounded-3xl
|
|
17
20
|
text-sumi-900
|
|
18
21
|
`
|
|
19
22
|
|
|
20
23
|
const topStyle = `
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
mb-1
|
|
24
|
+
pt-6
|
|
25
|
+
px-6
|
|
24
26
|
text-lgm
|
|
25
|
-
|
|
27
|
+
leading-none
|
|
28
|
+
mb-2
|
|
26
29
|
`
|
|
27
30
|
|
|
28
31
|
const bottmStyle = `
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
pb-6
|
|
33
|
+
px-6
|
|
34
|
+
text-base
|
|
31
35
|
`
|
|
32
36
|
|
|
33
37
|
const headingId = React.useId()
|
|
@@ -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 = `
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export { Button } from './Button'
|
|
2
|
-
export { Card } from './Card'
|
|
2
|
+
export { Card, CardHeader, CardBody, CardFooter } from './Card'
|
|
3
3
|
export { Code } from './Code'
|
|
4
4
|
export { H1, H2, H3, H4, H5, H6 } from './Heading'
|
|
5
5
|
export { Icon } from './Icon'
|
|
6
6
|
export { IconButton } from './IconButton'
|
|
7
|
-
export { InfoCard } from './InfoCard'
|
|
8
7
|
export { Link } from './Link'
|
|
9
8
|
export { Ol, Ul } from './List'
|
|
10
9
|
export { Pre } from './Pre'
|
|
11
10
|
export { Table, Caption, Thead, Tbody, Th, Tr, Td } from './Table'
|
|
11
|
+
|
|
12
|
+
/** @deprecated use Card instead */
|
|
13
|
+
export { InfoCard } from './InfoCard'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react'
|
|
2
|
+
import { render, screen } from '@testing-library/react'
|
|
3
|
+
import '@testing-library/jest-dom'
|
|
4
|
+
|
|
5
|
+
import { Card, CardHeader } from '../src'
|
|
6
|
+
|
|
7
|
+
describe('should labeled text from Card', () => {
|
|
8
|
+
test('renders Card', async () => {
|
|
9
|
+
render(
|
|
10
|
+
<Card>
|
|
11
|
+
<CardHeader>Card-Label</CardHeader>
|
|
12
|
+
</Card>
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
const text = screen.getByLabelText(/Card-Label/)
|
|
16
|
+
|
|
17
|
+
expect(text).toBeInTheDocument()
|
|
18
|
+
})
|
|
19
|
+
})
|
|
@@ -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)]
|