@byline/ui 6.8.0 → 6.10.0
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/README.md +43 -5
- package/package.json +16 -7
- package/src/components/accordion/accordion.stories.tsx +121 -0
- package/src/components/animation/fade-in-lift.stories.tsx +80 -0
- package/src/components/avatar/avatar.stories.tsx +39 -0
- package/src/components/badge/badge.stories.tsx +41 -0
- package/src/components/button/button-group.stories.tsx +44 -0
- package/src/components/button/button-intents.stories.tsx +97 -0
- package/src/components/button/button-overrides.stories.tsx +59 -0
- package/src/components/button/button-test.stories.tsx +59 -0
- package/src/components/button/button-variants.stories.tsx +57 -0
- package/src/components/button/combo-buttons.stories.tsx +82 -0
- package/src/components/button/control-buttons.stories.tsx +60 -0
- package/src/components/button/copy-button.stories.tsx +50 -0
- package/src/components/button/icon-button.stories.tsx +140 -0
- package/src/components/card/card.stories.tsx +60 -0
- package/src/components/chips/chip.stories.tsx +120 -0
- package/src/components/container/container.stories.tsx +35 -0
- package/src/components/dropdown/dropdown.stories.tsx +108 -0
- package/src/components/hamburger/hamburger.stories.tsx +33 -0
- package/src/components/inputs/autocomplete.stories.tsx +189 -0
- package/src/components/inputs/calendar.stories.tsx +141 -0
- package/src/components/inputs/checkbox-group.stories.tsx +43 -0
- package/src/components/inputs/checkbox.stories.tsx +284 -0
- package/src/components/inputs/input.stories.tsx +189 -0
- package/src/components/inputs/radio-group.stories.tsx +73 -0
- package/src/components/inputs/select.stories.tsx +70 -0
- package/src/components/inputs/text-area.stories.tsx +45 -0
- package/src/components/notifications/alert.stories.tsx +75 -0
- package/src/components/notifications/toast.stories.tsx +40 -0
- package/src/components/pager/pagination.stories.tsx +189 -0
- package/src/components/scroll-area/scroll-area.stories.tsx +33 -0
- package/src/components/shimmer/shimmer.stories.tsx +24 -0
- package/src/components/table/table.stories.tsx +94 -0
- package/src/components/tabs/tabs.stories.tsx +47 -0
- package/src/components/tooltip/tooltip.stories.tsx +56 -0
- package/src/icons/icons.stories.tsx +67 -0
- package/src/icons/index.stories.tsx +24 -0
- package/src/loaders/loaders.stories.tsx +188 -0
- package/src/styles/base/colors.stories.tsx +671 -0
- package/src/styles/theme/theme.stories.tsx +40 -0
- package/src/styles/typography/article.stories.tsx +39 -0
- package/src/styles/typography/code.stories.tsx +73 -0
- package/src/styles/typography/default.stories.tsx +49 -0
- package/src/styles/typography/lists.stories.tsx +48 -0
- package/src/styles/typography/quote.stories.tsx +38 -0
- package/src/widgets/datepicker/datepicker.stories.tsx +42 -0
- package/src/widgets/drawer/drawer.stories.tsx +281 -0
- package/src/widgets/modal/modal.stories.tsx +63 -0
- package/src/widgets/search/search.stories.tsx +18 -0
- package/src/widgets/timeline/timeline.stories.tsx +50 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import type React from 'react'
|
|
2
|
+
|
|
3
|
+
import { LoaderEllipsis } from './ellipses.js'
|
|
4
|
+
import { LoaderRing } from './ring.js'
|
|
5
|
+
import { LoaderSpinner } from './spinner.js'
|
|
6
|
+
|
|
7
|
+
interface LoaderProps {
|
|
8
|
+
loader: React.JSX.Element
|
|
9
|
+
label: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function Loader({ loader, label }: LoaderProps): React.JSX.Element {
|
|
13
|
+
return (
|
|
14
|
+
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '0.5rem' }}>
|
|
15
|
+
{loader}
|
|
16
|
+
<span style={{ fontSize: '0.875rem', color: 'var(--muted)' }}>{label}</span>
|
|
17
|
+
</div>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const LoaderDemo = (): React.JSX.Element => (
|
|
22
|
+
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '1.25rem' }}>
|
|
23
|
+
<Loader loader={<LoaderRing size={48} />} label="Ring" />
|
|
24
|
+
<Loader loader={<LoaderEllipsis size={48} />} label="Ellipsis" />
|
|
25
|
+
<Loader loader={<LoaderSpinner size={48} />} label="Spinner" />
|
|
26
|
+
</div>
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
title: 'Loaders/All',
|
|
31
|
+
component: LoaderDemo,
|
|
32
|
+
argTypes: {},
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const Default = (): React.JSX.Element => {
|
|
36
|
+
return (
|
|
37
|
+
<div style={{ marginBottom: '1.5rem' }}>
|
|
38
|
+
<div style={{ maxWidth: 700 }}>
|
|
39
|
+
<LoaderDemo />
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const sizes: (number | string)[] = [24, 36, 48, 64, 80]
|
|
46
|
+
|
|
47
|
+
export const Sizes = (): React.JSX.Element => {
|
|
48
|
+
return (
|
|
49
|
+
<div style={{ maxWidth: '800px', margin: '1.5rem auto' }}>
|
|
50
|
+
<div style={{ maxWidth: '800px', display: 'flex', flexDirection: 'column', gap: '2.5rem' }}>
|
|
51
|
+
<div>
|
|
52
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Ring</h3>
|
|
53
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
54
|
+
{sizes.map((size) => (
|
|
55
|
+
<Loader
|
|
56
|
+
key={String(size)}
|
|
57
|
+
loader={<LoaderRing size={size} />}
|
|
58
|
+
label={`${size}${typeof size === 'number' ? 'px' : ''}`}
|
|
59
|
+
/>
|
|
60
|
+
))}
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
<div>
|
|
64
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Ellipsis</h3>
|
|
65
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
66
|
+
{sizes.map((size) => (
|
|
67
|
+
<Loader
|
|
68
|
+
key={String(size)}
|
|
69
|
+
loader={<LoaderEllipsis size={size} />}
|
|
70
|
+
label={`${size}${typeof size === 'number' ? 'px' : ''}`}
|
|
71
|
+
/>
|
|
72
|
+
))}
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div>
|
|
76
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Spinner</h3>
|
|
77
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
78
|
+
{sizes.map((size) => (
|
|
79
|
+
<Loader
|
|
80
|
+
key={String(size)}
|
|
81
|
+
loader={<LoaderSpinner size={size} />}
|
|
82
|
+
label={`${size}${typeof size === 'number' ? 'px' : ''}`}
|
|
83
|
+
/>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const colors = [
|
|
93
|
+
{ value: 'var(--theme-500)', label: 'Theme' },
|
|
94
|
+
{ value: '#e53e3e', label: '#e53e3e' },
|
|
95
|
+
{ value: '#38a169', label: '#38a169' },
|
|
96
|
+
{ value: '#3182ce', label: '#3182ce' },
|
|
97
|
+
{ value: '#d69e2e', label: '#d69e2e' },
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
export const Colors = (): React.JSX.Element => {
|
|
101
|
+
return (
|
|
102
|
+
<div style={{ maxWidth: '800px', margin: '1.5rem auto' }}>
|
|
103
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '2.5rem' }}>
|
|
104
|
+
<div>
|
|
105
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Ring</h3>
|
|
106
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
107
|
+
{colors.map(({ value, label }) => (
|
|
108
|
+
<Loader key={label} loader={<LoaderRing size={48} color={value} />} label={label} />
|
|
109
|
+
))}
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<div>
|
|
113
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Ellipsis</h3>
|
|
114
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
115
|
+
{colors.map(({ value, label }) => (
|
|
116
|
+
<Loader
|
|
117
|
+
key={label}
|
|
118
|
+
loader={<LoaderEllipsis size={48} color={value} />}
|
|
119
|
+
label={label}
|
|
120
|
+
/>
|
|
121
|
+
))}
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div>
|
|
125
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>Spinner</h3>
|
|
126
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
127
|
+
{colors.map(({ value, label }) => (
|
|
128
|
+
<Loader
|
|
129
|
+
key={label}
|
|
130
|
+
loader={<LoaderSpinner size={48} color={value} />}
|
|
131
|
+
label={label}
|
|
132
|
+
/>
|
|
133
|
+
))}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const stringSizes: (number | string)[] = ['1.5rem', '2rem', '3rem', '4rem']
|
|
142
|
+
|
|
143
|
+
export const StringSizes = (): React.JSX.Element => {
|
|
144
|
+
return (
|
|
145
|
+
<div style={{ maxWidth: '800px', margin: '1.5rem auto' }}>
|
|
146
|
+
<div style={{ maxWidth: '800px', display: 'flex', flexDirection: 'column', gap: '2.5rem' }}>
|
|
147
|
+
<div>
|
|
148
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>
|
|
149
|
+
Ring (rem units)
|
|
150
|
+
</h3>
|
|
151
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
152
|
+
{stringSizes.map((size) => (
|
|
153
|
+
<Loader key={String(size)} loader={<LoaderRing size={size} />} label={String(size)} />
|
|
154
|
+
))}
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
<div>
|
|
158
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>
|
|
159
|
+
Ellipsis (rem units)
|
|
160
|
+
</h3>
|
|
161
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
162
|
+
{stringSizes.map((size) => (
|
|
163
|
+
<Loader
|
|
164
|
+
key={String(size)}
|
|
165
|
+
loader={<LoaderEllipsis size={size} />}
|
|
166
|
+
label={String(size)}
|
|
167
|
+
/>
|
|
168
|
+
))}
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
<div>
|
|
172
|
+
<h3 style={{ marginBottom: '1rem', fontSize: '1.125rem', fontWeight: 600 }}>
|
|
173
|
+
Spinner (rem units)
|
|
174
|
+
</h3>
|
|
175
|
+
<div style={{ display: 'flex', alignItems: 'flex-end', gap: '2.5rem' }}>
|
|
176
|
+
{stringSizes.map((size) => (
|
|
177
|
+
<Loader
|
|
178
|
+
key={String(size)}
|
|
179
|
+
loader={<LoaderSpinner size={size} />}
|
|
180
|
+
label={String(size)}
|
|
181
|
+
/>
|
|
182
|
+
))}
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
)
|
|
188
|
+
}
|