@companix/uikit 0.0.2 → 0.0.3
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/dist/bundle.es.js +61 -0
- package/dist/bundle.es10.js +87 -0
- package/dist/bundle.es11.js +75 -0
- package/dist/bundle.es12.js +38 -0
- package/dist/bundle.es13.js +33 -0
- package/dist/bundle.es14.js +18 -0
- package/dist/bundle.es15.js +11 -0
- package/dist/bundle.es16.js +35 -0
- package/dist/bundle.es17.js +27 -0
- package/dist/bundle.es18.js +23 -0
- package/dist/bundle.es19.js +24 -0
- package/dist/bundle.es20.js +15 -0
- package/dist/bundle.es21.js +41 -0
- package/dist/bundle.es22.js +18 -0
- package/dist/bundle.es23.js +36 -0
- package/dist/bundle.es24.js +23 -0
- package/dist/bundle.es25.js +42 -0
- package/dist/bundle.es26.js +114 -0
- package/dist/bundle.es27.js +115 -0
- package/dist/bundle.es28.js +38 -0
- package/dist/bundle.es29.js +13 -0
- package/dist/bundle.es3.js +45 -0
- package/dist/bundle.es30.js +27 -0
- package/dist/bundle.es31.js +38 -0
- package/dist/bundle.es35.js +43 -0
- package/dist/bundle.es36.js +442 -0
- package/dist/bundle.es37.js +24 -0
- package/dist/bundle.es38.js +26 -0
- package/dist/bundle.es39.js +83 -0
- package/dist/bundle.es4.js +14 -0
- package/dist/bundle.es40.js +20 -0
- package/dist/bundle.es41.js +16 -0
- package/dist/bundle.es43.js +7 -0
- package/dist/bundle.es44.js +23 -0
- package/dist/bundle.es45.js +16 -0
- package/dist/bundle.es46.js +72 -0
- package/dist/bundle.es47.js +70 -0
- package/dist/bundle.es48.js +34 -0
- package/dist/bundle.es49.js +70 -0
- package/dist/bundle.es5.js +88 -0
- package/dist/bundle.es50.js +33 -0
- package/dist/bundle.es51.js +78 -0
- package/dist/bundle.es52.js +51 -0
- package/dist/bundle.es53.js +45 -0
- package/dist/bundle.es54.js +40 -0
- package/dist/bundle.es55.js +36 -0
- package/dist/bundle.es56.js +9 -0
- package/dist/bundle.es57.js +9 -0
- package/dist/bundle.es58.js +7 -0
- package/dist/bundle.es59.js +9 -0
- package/dist/bundle.es6.js +87 -0
- package/dist/bundle.es60.js +8 -0
- package/dist/bundle.es61.js +19 -0
- package/dist/bundle.es62.js +15 -0
- package/dist/bundle.es63.js +22 -0
- package/dist/bundle.es64.js +45 -0
- package/dist/bundle.es65.js +28 -0
- package/dist/bundle.es66.js +34 -0
- package/dist/bundle.es67.js +6 -0
- package/dist/bundle.es68.js +12 -0
- package/dist/bundle.es69.js +47 -0
- package/dist/bundle.es7.js +80 -0
- package/dist/bundle.es70.js +11 -0
- package/dist/bundle.es71.js +18 -0
- package/dist/bundle.es72.js +32 -0
- package/dist/bundle.es73.js +35 -0
- package/dist/bundle.es74.js +6 -0
- package/dist/bundle.es75.js +7 -0
- package/dist/bundle.es76.js +7 -0
- package/dist/bundle.es77.js +11 -0
- package/dist/bundle.es78.js +17 -0
- package/dist/bundle.es79.js +7 -0
- package/dist/bundle.es8.js +29 -0
- package/dist/bundle.es80.js +17 -0
- package/dist/bundle.es81.js +25 -0
- package/dist/bundle.es9.js +47 -0
- package/dist/types/Button/index.d.ts +20 -0
- package/dist/types/ButtonGroup/index.d.ts +7 -0
- package/dist/types/Checkbox/index.d.ts +10 -0
- package/dist/types/Countdown/index.d.ts +7 -0
- package/dist/types/DateInput/index.d.ts +13 -0
- package/dist/types/DatePicker/Calendar.d.ts +14 -0
- package/dist/types/DatePicker/CalendarHeader.d.ts +10 -0
- package/dist/types/DatePicker/index.d.ts +12 -0
- package/dist/types/Dialog/index.d.ts +12 -0
- package/dist/types/DialogAlert/Alert.d.ts +19 -0
- package/dist/types/DialogAlert/Viewport.d.ts +8 -0
- package/dist/types/DialogAlert/index.d.ts +11 -0
- package/dist/types/Drawer/index.d.ts +13 -0
- package/dist/types/File/index.d.ts +10 -0
- package/dist/types/Form/index.d.ts +17 -0
- package/dist/types/Icon/index.d.ts +7 -0
- package/dist/types/LoadButton/index.d.ts +5 -0
- package/dist/types/NumberInput/index.d.ts +6 -0
- package/dist/types/OptionItem/OptionItem.d.ts +7 -0
- package/dist/types/OptionItem/OptionsList.d.ts +8 -0
- package/dist/types/Popover/index.d.ts +26 -0
- package/dist/types/Radio/index.d.ts +20 -0
- package/dist/types/Scrollable/ImitateScroll.d.ts +10 -0
- package/dist/types/Scrollable/index.d.ts +33 -0
- package/dist/types/Select/SelectInput.d.ts +14 -0
- package/dist/types/Select/index.d.ts +15 -0
- package/dist/types/SelectTags/index.d.ts +15 -0
- package/dist/types/Spinner/index.d.ts +8 -0
- package/dist/types/Stepper/index.d.ts +8 -0
- package/dist/types/Switch/index.d.ts +10 -0
- package/dist/types/Tabs/index.d.ts +13 -0
- package/dist/types/TextArea/index.d.ts +7 -0
- package/dist/types/Toaster/RemoveListener.d.ts +3 -0
- package/dist/types/Toaster/Toast.d.ts +9 -0
- package/dist/types/Toaster/Viewport.d.ts +13 -0
- package/dist/types/Toaster/index.d.ts +15 -0
- package/dist/types/Tooltip/index.d.ts +8 -0
- package/dist/types/__hooks/use-frooze-closing.d.ts +5 -0
- package/dist/types/__hooks/use-loading.d.ts +8 -0
- package/dist/types/__hooks/use-local-storage.d.ts +1 -0
- package/dist/types/__hooks/use-popover-position.d.ts +8 -0
- package/dist/types/__hooks/use-previos.d.ts +2 -0
- package/dist/types/__hooks/use-resize.d.ts +3 -0
- package/dist/types/__hooks/use-scrollbox.d.ts +7 -0
- package/dist/types/__hooks/use-stepper-input.d.ts +13 -0
- package/dist/types/__hooks/use-update.d.ts +1 -0
- package/dist/types/__hooks/useCalendar.d.ts +17 -0
- package/dist/types/__hooks/useCalendarOptions-copy.d.ts +22 -0
- package/dist/types/__hooks/useCalendarOptions.d.ts +31 -0
- package/dist/types/__libs/calendar.d.ts +25 -0
- package/dist/types/__utils/utils.d.ts +25 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/types.d.ts +13 -0
- package/dist/uikit.css +1 -0
- package/package.json +10 -6
- package/.eslintrc +0 -54
- package/declaration.d.ts +0 -4
- package/index.html +0 -12
- package/playground/App.tsx +0 -166
- package/playground/Example.tsx +0 -14
- package/playground/Test.tsx +0 -44
- package/playground/animation-test-1/index.scss +0 -20
- package/playground/animation-test-1/index.tsx +0 -17
- package/playground/animation-test-2/index.scss +0 -62
- package/playground/animation-test-2/index.tsx +0 -32
- package/playground/bootstrap.tsx +0 -19
- package/playground/buttons/index.tsx +0 -132
- package/playground/checkbox/index.tsx +0 -64
- package/playground/date-input/index.tsx +0 -45
- package/playground/date-picker/index.tsx +0 -41
- package/playground/dialog/index.tsx +0 -92
- package/playground/dialog-alert/index.tsx +0 -47
- package/playground/drawer/index.tsx +0 -55
- package/playground/index.css +0 -33
- package/playground/index.scss +0 -270
- package/playground/input/index.tsx +0 -112
- package/playground/number-inputs/index.tsx +0 -50
- package/playground/popovers/index.tsx +0 -70
- package/playground/radio-group/index.tsx +0 -69
- package/playground/select/index.tsx +0 -72
- package/playground/select-tags/index.tsx +0 -36
- package/playground/styles.scss +0 -2
- package/playground/switch/index.tsx +0 -44
- package/playground/tabs/index.tsx +0 -16
- package/playground/test.scss +0 -0
- package/playground/text-area/index.tsx +0 -17
- package/playground/text-input/index.tsx +0 -12
- package/playground/toaster/index.tsx +0 -156
- package/playground/tooltip/index.tsx +0 -26
- package/src/Button/Button.scss +0 -128
- package/src/Button/index.tsx +0 -72
- package/src/ButtonGroup/ButtonGroup.scss +0 -18
- package/src/ButtonGroup/index.tsx +0 -20
- package/src/Checkbox/Checkbox.scss +0 -115
- package/src/Checkbox/index.tsx +0 -46
- package/src/Countdown/index.tsx +0 -54
- package/src/DateInput/DateInput.scss +0 -11
- package/src/DateInput/index.tsx +0 -96
- package/src/DatePicker/Calendar.scss +0 -125
- package/src/DatePicker/Calendar.tsx +0 -157
- package/src/DatePicker/CalendarHeader.tsx +0 -139
- package/src/DatePicker/DatePicker.scss +0 -0
- package/src/DatePicker/index.tsx +0 -177
- package/src/Dialog/Dialog.scss +0 -25
- package/src/Dialog/Popup.scss +0 -55
- package/src/Dialog/index.tsx +0 -31
- package/src/DialogAlert/Alert.scss +0 -52
- package/src/DialogAlert/Alert.tsx +0 -78
- package/src/DialogAlert/Viewport.tsx +0 -52
- package/src/DialogAlert/index.tsx +0 -37
- package/src/Drawer/Drawer.scss +0 -112
- package/src/Drawer/index.tsx +0 -46
- package/src/File/index.tsx +0 -60
- package/src/Form/Form.scss +0 -70
- package/src/Form/Input.scss +0 -24
- package/src/Form/index.tsx +0 -131
- package/src/Icon/icon.scss +0 -18
- package/src/Icon/index.tsx +0 -43
- package/src/LoadButton/index.tsx +0 -17
- package/src/NumberInput/index.tsx +0 -74
- package/src/OptionItem/Option.scss +0 -89
- package/src/OptionItem/OptionItem.tsx +0 -49
- package/src/OptionItem/OptionsList.tsx +0 -26
- package/src/Popover/Popover.scss +0 -80
- package/src/Popover/index.tsx +0 -117
- package/src/Radio/Radio.scss +0 -148
- package/src/Radio/index.tsx +0 -68
- package/src/Scrollable/ImitateScroll.tsx +0 -141
- package/src/Scrollable/Scrollable.scss +0 -50
- package/src/Scrollable/index.tsx +0 -141
- package/src/Select/Select.scss +0 -80
- package/src/Select/SelectInput.tsx +0 -131
- package/src/Select/index.tsx +0 -134
- package/src/SelectTags/SelectTags.scss +0 -66
- package/src/SelectTags/index.tsx +0 -192
- package/src/Spinner/Spinner.scss +0 -14
- package/src/Spinner/index.tsx +0 -19
- package/src/Stepper/StepperInput.scss +0 -35
- package/src/Stepper/index.tsx +0 -76
- package/src/Switch/Switch.scss +0 -102
- package/src/Switch/index.tsx +0 -49
- package/src/Tabs/Tabs.scss +0 -58
- package/src/Tabs/index.tsx +0 -89
- package/src/TextArea/TextArea.scss +0 -34
- package/src/TextArea/index.tsx +0 -51
- package/src/Toaster/RemoveListener.tsx +0 -11
- package/src/Toaster/Toast.tsx +0 -69
- package/src/Toaster/Toaster.scss +0 -151
- package/src/Toaster/Viewport.tsx +0 -117
- package/src/Toaster/index.tsx +0 -52
- package/src/Tooltip/Tooltip.scss +0 -28
- package/src/Tooltip/index.tsx +0 -33
- package/src/__hooks/use-frooze-closing.ts +0 -51
- package/src/__hooks/use-loading.ts +0 -34
- package/src/__hooks/use-local-storage.ts +0 -19
- package/src/__hooks/use-popover-position.ts +0 -24
- package/src/__hooks/use-previos.ts +0 -25
- package/src/__hooks/use-resize.ts +0 -41
- package/src/__hooks/use-scrollbox.ts +0 -45
- package/src/__hooks/use-stepper-input.ts +0 -82
- package/src/__hooks/use-update.ts +0 -19
- package/src/__hooks/useCalendar.ts +0 -104
- package/src/__hooks/useCalendarOptions-copy.ts +0 -87
- package/src/__hooks/useCalendarOptions.ts +0 -68
- package/src/__libs/calendar.ts +0 -175
- package/src/__utils/utils.ts +0 -137
- package/src/css.scss +0 -120
- package/src/index.scss +0 -22
- package/src/index.ts +0 -36
- package/src/mixins.scss +0 -99
- package/src/theme.scss +0 -103
- package/src/types.ts +0 -14
- package/tailwind.config.js +0 -91
- package/themes/classic/animations.scss +0 -179
- package/themes/classic/classic.scss +0 -493
- package/tsconfig.json +0 -27
- package/vite.build.ts +0 -35
- package/vite.config.ts +0 -33
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Icon } from '@/Icon'
|
|
2
|
-
import { Switch, SwitchProps } from '@/Switch'
|
|
3
|
-
import { faCheck, faClose } from '@fortawesome/free-solid-svg-icons'
|
|
4
|
-
import { useState } from 'react'
|
|
5
|
-
|
|
6
|
-
const longtext = `The expanded form makes it easy to schedule meetings: fields to fill out are displayed on the left, and the participants' schedule is shown on the right.`
|
|
7
|
-
|
|
8
|
-
export const SwitchExample = () => {
|
|
9
|
-
return (
|
|
10
|
-
<div className="col-group">
|
|
11
|
-
<div className="flex gap-24">
|
|
12
|
-
<div className="flex flex-col gap-12">
|
|
13
|
-
<SwitchControl label="Accept terms and conditions" />
|
|
14
|
-
<SwitchControl
|
|
15
|
-
label="I want to recieve promote emails"
|
|
16
|
-
checkedIcon={<Icon icon={faCheck} />}
|
|
17
|
-
uncheckedIcon={<Icon icon={faClose} />}
|
|
18
|
-
/>
|
|
19
|
-
</div>
|
|
20
|
-
<div className="flex flex-col gap-12">
|
|
21
|
-
<SwitchControl label="Accept terms and conditions" disabled defaultChecked />
|
|
22
|
-
<SwitchControl label="I want to recieve promote emails" disabled />
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
<div style={{ height: '1px', background: '#eeeeee', margin: '12px 0px' }} />
|
|
26
|
-
<div className="flex flex-col gap-12">
|
|
27
|
-
<SwitchControl label="Accept terms and conditions" defaultChecked />
|
|
28
|
-
<SwitchControl defaultChecked label={'Use the advanced form to create events'} />
|
|
29
|
-
<SwitchControl label={longtext + ' ' + longtext} defaultChecked />
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
interface Props extends Omit<SwitchProps, 'checked' | 'onCheckedChange'> {
|
|
36
|
-
label?: React.ReactNode
|
|
37
|
-
defaultChecked?: boolean
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const SwitchControl = ({ defaultChecked, ...props }: Props) => {
|
|
41
|
-
const [checked, setCheck] = useState(defaultChecked ?? false)
|
|
42
|
-
|
|
43
|
-
return <Switch {...props} checked={checked} onCheckedChange={setCheck} />
|
|
44
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Tabs } from '@/Tabs'
|
|
2
|
-
import { useState } from 'react'
|
|
3
|
-
|
|
4
|
-
export const TabsExample = () => {
|
|
5
|
-
const [value, onChange] = useState<string>('account')
|
|
6
|
-
|
|
7
|
-
return (
|
|
8
|
-
<div>
|
|
9
|
-
<Tabs value={value} onChange={onChange}>
|
|
10
|
-
<Tabs.Tab value="account">Account</Tabs.Tab>
|
|
11
|
-
<Tabs.Tab value="password">Password</Tabs.Tab>
|
|
12
|
-
<Tabs.Tab value="settings">Settings</Tabs.Tab>
|
|
13
|
-
</Tabs>
|
|
14
|
-
</div>
|
|
15
|
-
)
|
|
16
|
-
}
|
package/playground/test.scss
DELETED
|
File without changes
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TextArea } from '@/TextArea'
|
|
2
|
-
|
|
3
|
-
export const TextAreaExample = () => {
|
|
4
|
-
return (
|
|
5
|
-
<div className="col-group">
|
|
6
|
-
<div className="flex items-start gap-10">
|
|
7
|
-
<TextArea grow placeholder="Auto growing" />
|
|
8
|
-
<TextArea grow placeholder="Growing limited" style={{ maxHeight: '240px' }} />
|
|
9
|
-
<TextArea placeholder="Resizable and fill" fill />
|
|
10
|
-
</div>
|
|
11
|
-
<div className="flex items-start gap-10">
|
|
12
|
-
<TextArea grow placeholder="Auto growing" disabled />
|
|
13
|
-
<TextArea grow placeholder="Growing limited" style={{ maxHeight: '240px' }} required />
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
)
|
|
17
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Form } from '@/Form'
|
|
2
|
-
|
|
3
|
-
export const TextInput = () => {
|
|
4
|
-
return (
|
|
5
|
-
<div style={{ width: '200px' }}>
|
|
6
|
-
<div style={{ color: '#ffffff', marginBottom: '10px' }}>TextInput</div>
|
|
7
|
-
<div style={{ marginBottom: '20px' }}>
|
|
8
|
-
<Form />
|
|
9
|
-
</div>
|
|
10
|
-
</div>
|
|
11
|
-
)
|
|
12
|
-
}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { Button } from '@/Button'
|
|
2
|
-
import { ButtonGroup } from '@/ButtonGroup'
|
|
3
|
-
import { Icon } from '@/Icon'
|
|
4
|
-
import { createToaster } from '@/Toaster'
|
|
5
|
-
import { faCircleCheck, faCircleInfo, faTriangleExclamation } from '@fortawesome/free-solid-svg-icons'
|
|
6
|
-
import { useState } from 'react'
|
|
7
|
-
|
|
8
|
-
const Toaster = createToaster({ duration: 2500, align: 'center' })
|
|
9
|
-
|
|
10
|
-
export const ToasterExample = () => {
|
|
11
|
-
const [side, setSide] = useState<'top' | 'bottom'>('top')
|
|
12
|
-
const [align, setAlign] = useState<'center' | 'left' | 'right'>('center')
|
|
13
|
-
|
|
14
|
-
return (
|
|
15
|
-
<div>
|
|
16
|
-
<div className="col-group">
|
|
17
|
-
<div className="row-group">
|
|
18
|
-
<ButtonGroup>
|
|
19
|
-
<Button active={side === 'top'} onClick={() => setSide('top')}>
|
|
20
|
-
top
|
|
21
|
-
</Button>
|
|
22
|
-
<Button active={side === 'bottom'} onClick={() => setSide('bottom')}>
|
|
23
|
-
bottom
|
|
24
|
-
</Button>
|
|
25
|
-
</ButtonGroup>
|
|
26
|
-
<ButtonGroup>
|
|
27
|
-
<Button active={align === 'left'} onClick={() => setAlign('left')}>
|
|
28
|
-
left
|
|
29
|
-
</Button>
|
|
30
|
-
<Button active={align === 'center'} onClick={() => setAlign('center')}>
|
|
31
|
-
center
|
|
32
|
-
</Button>
|
|
33
|
-
<Button active={align === 'right'} onClick={() => setAlign('right')}>
|
|
34
|
-
right
|
|
35
|
-
</Button>
|
|
36
|
-
</ButtonGroup>
|
|
37
|
-
</div>
|
|
38
|
-
<div className="row-group">
|
|
39
|
-
<Button
|
|
40
|
-
appearance="neutral"
|
|
41
|
-
onClick={() => {
|
|
42
|
-
Toaster.send({
|
|
43
|
-
appearance: 'neutral',
|
|
44
|
-
title: 'Event created',
|
|
45
|
-
description: 'Sunday, December 21, 2025 at 2:45 AM'
|
|
46
|
-
})
|
|
47
|
-
}}
|
|
48
|
-
>
|
|
49
|
-
Create event
|
|
50
|
-
</Button>
|
|
51
|
-
<Button
|
|
52
|
-
onClick={() => {
|
|
53
|
-
Toaster.send({
|
|
54
|
-
appearance: 'neutral',
|
|
55
|
-
title: 'The text is copied'
|
|
56
|
-
})
|
|
57
|
-
}}
|
|
58
|
-
>
|
|
59
|
-
Copy text
|
|
60
|
-
</Button>
|
|
61
|
-
<Button
|
|
62
|
-
onClick={() => {
|
|
63
|
-
Toaster.send({
|
|
64
|
-
appearance: 'positive',
|
|
65
|
-
title: 'Move files is completed!',
|
|
66
|
-
description: 'Moved 6 files'
|
|
67
|
-
})
|
|
68
|
-
}}
|
|
69
|
-
>
|
|
70
|
-
Move files
|
|
71
|
-
</Button>
|
|
72
|
-
<Button
|
|
73
|
-
onClick={() =>
|
|
74
|
-
Toaster.send({
|
|
75
|
-
appearance: 'negative',
|
|
76
|
-
title: 'Permission error',
|
|
77
|
-
description:
|
|
78
|
-
'You do not have permissions to perform this action. Please contact your system administrator to request the appropriate access rights.'
|
|
79
|
-
})
|
|
80
|
-
}
|
|
81
|
-
>
|
|
82
|
-
Delete root
|
|
83
|
-
</Button>
|
|
84
|
-
</div>
|
|
85
|
-
<div className="row-group">
|
|
86
|
-
<Button
|
|
87
|
-
appearance="primary"
|
|
88
|
-
onClick={() => {
|
|
89
|
-
Toaster.send({
|
|
90
|
-
appearance: 'primary',
|
|
91
|
-
title: 'Event has been created',
|
|
92
|
-
description: 'Be at the area 10 minutes before the event time',
|
|
93
|
-
icon: <Icon icon={faCircleInfo} />
|
|
94
|
-
})
|
|
95
|
-
}}
|
|
96
|
-
>
|
|
97
|
-
Primary
|
|
98
|
-
</Button>
|
|
99
|
-
<Button
|
|
100
|
-
appearance="neutral"
|
|
101
|
-
onClick={() => {
|
|
102
|
-
Toaster.send({
|
|
103
|
-
appearance: 'neutral',
|
|
104
|
-
title: 'Event has been created',
|
|
105
|
-
description: 'Be at the area 10 minutes before the event time',
|
|
106
|
-
icon: <Icon icon={faCircleInfo} />
|
|
107
|
-
})
|
|
108
|
-
}}
|
|
109
|
-
>
|
|
110
|
-
Neutral
|
|
111
|
-
</Button>
|
|
112
|
-
<Button
|
|
113
|
-
appearance="positive"
|
|
114
|
-
onClick={() => {
|
|
115
|
-
Toaster.send({
|
|
116
|
-
appearance: 'positive',
|
|
117
|
-
title: 'Event has been created',
|
|
118
|
-
description: 'Be at the area 10 minutes before the event time',
|
|
119
|
-
icon: <Icon icon={faCircleCheck} />
|
|
120
|
-
})
|
|
121
|
-
}}
|
|
122
|
-
>
|
|
123
|
-
Positive
|
|
124
|
-
</Button>
|
|
125
|
-
<Button
|
|
126
|
-
appearance="negative"
|
|
127
|
-
onClick={() => {
|
|
128
|
-
Toaster.send({
|
|
129
|
-
appearance: 'negative',
|
|
130
|
-
title: 'Event has been created',
|
|
131
|
-
description: 'Be at the area 10 minutes before the event time',
|
|
132
|
-
icon: <Icon icon={faTriangleExclamation} />
|
|
133
|
-
})
|
|
134
|
-
}}
|
|
135
|
-
>
|
|
136
|
-
Negative
|
|
137
|
-
</Button>
|
|
138
|
-
<Button
|
|
139
|
-
appearance="neutral"
|
|
140
|
-
onClick={() => {
|
|
141
|
-
Toaster.send({
|
|
142
|
-
appearance: 'warning',
|
|
143
|
-
title: 'Event has been created',
|
|
144
|
-
description: 'Be at the area 10 minutes before the event time',
|
|
145
|
-
icon: <Icon icon={faTriangleExclamation} />
|
|
146
|
-
})
|
|
147
|
-
}}
|
|
148
|
-
>
|
|
149
|
-
Warning
|
|
150
|
-
</Button>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
<Toaster.Viewport align={align} side={side} />
|
|
154
|
-
</div>
|
|
155
|
-
)
|
|
156
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Button } from '@/Button'
|
|
2
|
-
import { ButtonGroup } from '@/ButtonGroup'
|
|
3
|
-
import { Tooltip } from '@/Tooltip'
|
|
4
|
-
|
|
5
|
-
export const TooltipExample = () => {
|
|
6
|
-
return (
|
|
7
|
-
<div className="col-group">
|
|
8
|
-
<div className="row-group">
|
|
9
|
-
<Tooltip content={<div>Content Tooltip</div>}>
|
|
10
|
-
<Button>Hover</Button>
|
|
11
|
-
</Tooltip>
|
|
12
|
-
<ButtonGroup>
|
|
13
|
-
<Tooltip content={<div>Each</div>}>
|
|
14
|
-
<Button>Group</Button>
|
|
15
|
-
</Tooltip>
|
|
16
|
-
<Tooltip content={<div>has</div>}>
|
|
17
|
-
<Button>Of</Button>
|
|
18
|
-
</Tooltip>
|
|
19
|
-
<Tooltip content={<div>a tooltip</div>}>
|
|
20
|
-
<Button>Buttons</Button>
|
|
21
|
-
</Tooltip>
|
|
22
|
-
</ButtonGroup>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
)
|
|
26
|
-
}
|
package/src/Button/Button.scss
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
@use '../mixins.scss';
|
|
2
|
-
|
|
3
|
-
// scheme: bth-[appearance]-[mode]-[property]--[state]
|
|
4
|
-
//
|
|
5
|
-
// appearance: primary, neutral, positive, negative
|
|
6
|
-
// mode: default, outline, minimal
|
|
7
|
-
// state: enabled, hovered, pressed, disabled, loading
|
|
8
|
-
// property: text, background, shadow, border
|
|
9
|
-
|
|
10
|
-
@mixin use-mode($appearance, $mode) {
|
|
11
|
-
@include mixins.use-styles(button, $appearance, $mode, enabled);
|
|
12
|
-
|
|
13
|
-
&:hover {
|
|
14
|
-
@include mixins.use-styles(button, $appearance, $mode, hovered);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&[data-active],
|
|
18
|
-
&:active {
|
|
19
|
-
@include mixins.use-styles(button, $appearance, $mode, pressed);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&[data-loading] {
|
|
23
|
-
@include mixins.use-styles(button, $appearance, $mode, loading);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
&[disabled] {
|
|
27
|
-
cursor: not-allowed;
|
|
28
|
-
@include mixins.use-styles(button, $appearance, $mode, disabled);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@mixin use-appearance($appearance) {
|
|
33
|
-
&[data-appearance='#{$appearance}'] {
|
|
34
|
-
&[data-mode='default'] {
|
|
35
|
-
@include use-mode($appearance, default);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
&[data-mode='outline'] {
|
|
39
|
-
@include use-mode($appearance, outline);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&[data-mode='minimal'] {
|
|
43
|
-
@include use-mode($appearance, minimal);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.button {
|
|
49
|
-
overflow: visible;
|
|
50
|
-
box-sizing: border-box;
|
|
51
|
-
-moz-user-focus: ignore;
|
|
52
|
-
-webkit-user-select: none;
|
|
53
|
-
-moz-user-select: none;
|
|
54
|
-
-ms-user-select: none;
|
|
55
|
-
user-select: none;
|
|
56
|
-
text-decoration: none;
|
|
57
|
-
outline: none;
|
|
58
|
-
-webkit-tap-highlight-color: transparent;
|
|
59
|
-
-ms-touch-action: manipulation;
|
|
60
|
-
touch-action: manipulation;
|
|
61
|
-
cursor: pointer;
|
|
62
|
-
display: flex;
|
|
63
|
-
align-items: center;
|
|
64
|
-
|
|
65
|
-
@include mixins.use-styles(button);
|
|
66
|
-
@include mixins.items-spacing(8px);
|
|
67
|
-
|
|
68
|
-
// fill
|
|
69
|
-
|
|
70
|
-
&[data-fill] {
|
|
71
|
-
width: 100%;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// align
|
|
75
|
-
|
|
76
|
-
&[data-align='center'] {
|
|
77
|
-
justify-content: center;
|
|
78
|
-
|
|
79
|
-
& > .button-text {
|
|
80
|
-
text-align: center;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&[data-align='left'] {
|
|
85
|
-
justify-content: left;
|
|
86
|
-
|
|
87
|
-
& > .button-text {
|
|
88
|
-
flex: 1 1 auto;
|
|
89
|
-
text-align: left;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
&[data-align='right'] {
|
|
94
|
-
justify-content: right;
|
|
95
|
-
|
|
96
|
-
& > .button-text {
|
|
97
|
-
flex: 1 1 auto;
|
|
98
|
-
text-align: right;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// sizes
|
|
103
|
-
|
|
104
|
-
&[data-size='sm'] {
|
|
105
|
-
@include mixins.use-styles(button, size, sm);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
&[data-size='md'] {
|
|
109
|
-
@include mixins.use-styles(button, size, md);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
&[data-size='lg'] {
|
|
113
|
-
@include mixins.use-styles(button, size, lg);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// text
|
|
117
|
-
|
|
118
|
-
&-text {
|
|
119
|
-
@include mixins.truncate-text();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// appearance
|
|
123
|
-
|
|
124
|
-
@include use-appearance(primary);
|
|
125
|
-
@include use-appearance(neutral);
|
|
126
|
-
@include use-appearance(negative);
|
|
127
|
-
@include use-appearance(positive);
|
|
128
|
-
}
|
package/src/Button/index.tsx
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames'
|
|
2
|
-
import { Spinner } from '../Spinner'
|
|
3
|
-
import { forwardRef } from 'react'
|
|
4
|
-
import { attr } from '@companix/utils-browser'
|
|
5
|
-
|
|
6
|
-
export type Appearance = 'primary' | 'neutral' | 'positive' | 'negative'
|
|
7
|
-
export type Mode = 'default' | 'outline' | 'minimal'
|
|
8
|
-
export type Size = 'sm' | 'md' | 'lg'
|
|
9
|
-
|
|
10
|
-
export interface InternButtonProps {
|
|
11
|
-
icon?: React.ReactNode
|
|
12
|
-
iconRight?: React.ReactNode
|
|
13
|
-
appearance?: Appearance
|
|
14
|
-
mode?: Mode
|
|
15
|
-
size?: Size
|
|
16
|
-
fill?: boolean
|
|
17
|
-
align?: 'left' | 'center' | 'right'
|
|
18
|
-
loading?: boolean
|
|
19
|
-
active?: boolean
|
|
20
|
-
text?: React.ReactNode
|
|
21
|
-
children?: React.ReactNode
|
|
22
|
-
className?: string
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, InternButtonProps {}
|
|
26
|
-
|
|
27
|
-
export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
|
28
|
-
(
|
|
29
|
-
{
|
|
30
|
-
children,
|
|
31
|
-
fill,
|
|
32
|
-
text,
|
|
33
|
-
active,
|
|
34
|
-
mode = 'default',
|
|
35
|
-
appearance = 'neutral',
|
|
36
|
-
size = 'md',
|
|
37
|
-
align,
|
|
38
|
-
icon,
|
|
39
|
-
loading,
|
|
40
|
-
className,
|
|
41
|
-
iconRight,
|
|
42
|
-
...buttonProps
|
|
43
|
-
},
|
|
44
|
-
ref
|
|
45
|
-
) => {
|
|
46
|
-
return (
|
|
47
|
-
<button
|
|
48
|
-
ref={ref}
|
|
49
|
-
className={classNames('button', className)}
|
|
50
|
-
data-size={size}
|
|
51
|
-
data-loading={attr(loading)}
|
|
52
|
-
data-align={loading ? 'center' : align ?? (icon && iconRight ? 'left' : 'center')}
|
|
53
|
-
data-appearance={appearance}
|
|
54
|
-
data-mode={mode}
|
|
55
|
-
data-fill={attr(fill)}
|
|
56
|
-
data-active={attr(active)}
|
|
57
|
-
{...buttonProps}
|
|
58
|
-
onClick={loading ?? buttonProps.disabled ? undefined : buttonProps.onClick}
|
|
59
|
-
>
|
|
60
|
-
{loading ? (
|
|
61
|
-
<Spinner size={14} width={2} />
|
|
62
|
-
) : (
|
|
63
|
-
<>
|
|
64
|
-
{icon}
|
|
65
|
-
{(children ?? text) && <span className="button-text">{text ?? children}</span>}
|
|
66
|
-
{iconRight}
|
|
67
|
-
</>
|
|
68
|
-
)}
|
|
69
|
-
</button>
|
|
70
|
-
)
|
|
71
|
-
}
|
|
72
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
.button-group {
|
|
2
|
-
display: flex;
|
|
3
|
-
|
|
4
|
-
&[data-fill] {
|
|
5
|
-
width: 100%;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
& > .button:not(:first-child) {
|
|
9
|
-
border-bottom-left-radius: 0;
|
|
10
|
-
border-top-left-radius: 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
& > .button:not(:last-child) {
|
|
14
|
-
border-bottom-right-radius: 0;
|
|
15
|
-
border-top-right-radius: 0;
|
|
16
|
-
margin-right: -1px;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import './ButtonGroup.scss'
|
|
2
|
-
import { forwardRef } from 'react'
|
|
3
|
-
import cn from 'classnames'
|
|
4
|
-
import { attr } from '@companix/utils-browser'
|
|
5
|
-
|
|
6
|
-
interface ButtonGroupProps {
|
|
7
|
-
children: React.ReactNode
|
|
8
|
-
className?: string
|
|
9
|
-
fill?: boolean
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(
|
|
13
|
-
({ children, className, fill }, ref) => {
|
|
14
|
-
return (
|
|
15
|
-
<div ref={ref} className={cn('button-group', className)} data-fill={attr(fill)}>
|
|
16
|
-
{children}
|
|
17
|
-
</div>
|
|
18
|
-
)
|
|
19
|
-
}
|
|
20
|
-
)
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
@use '../mixins.scss';
|
|
2
|
-
|
|
3
|
-
.checkbox {
|
|
4
|
-
display: inline-table;
|
|
5
|
-
user-select: none;
|
|
6
|
-
touch-action: manipulation;
|
|
7
|
-
max-width: max-content;
|
|
8
|
-
|
|
9
|
-
@include mixins.use-styles(checkbox);
|
|
10
|
-
|
|
11
|
-
&:not([data-disabled]):not([data-required]):hover {
|
|
12
|
-
.checkbox-box[data-state='unchecked'] {
|
|
13
|
-
@include mixins.use-styles(checkbox, box, hover);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&:not([data-disabled]):not([data-required]):active {
|
|
18
|
-
.checkbox-box[data-state='unchecked'] {
|
|
19
|
-
@include mixins.use-styles(checkbox, box, active);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
&:not([data-disabled]) {
|
|
24
|
-
.checkbox-box[data-state='checked'] {
|
|
25
|
-
@include mixins.use-styles(checkbox, box, checked);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
&[data-disabled] {
|
|
30
|
-
@include mixins.use-styles(checkbox, disabled);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
&[data-required] {
|
|
34
|
-
@include mixins.use-styles(checkbox, required);
|
|
35
|
-
|
|
36
|
-
.checkbox-box::before {
|
|
37
|
-
content: '';
|
|
38
|
-
position: absolute;
|
|
39
|
-
width: 100%;
|
|
40
|
-
height: 100%;
|
|
41
|
-
left: 0;
|
|
42
|
-
|
|
43
|
-
@include mixins.use-styles(checkbox, required, box);
|
|
44
|
-
|
|
45
|
-
border-radius: mixins.get-var-name(checkbox, box, border-radius);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&[data-size='sm'] {
|
|
50
|
-
@include mixins.use-styles(checkbox, size, sm);
|
|
51
|
-
|
|
52
|
-
.checkbox-box {
|
|
53
|
-
@include mixins.use-size(checkbox, size, sm, box);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
&[data-size='md'] {
|
|
58
|
-
@include mixins.use-styles(checkbox, size, md);
|
|
59
|
-
|
|
60
|
-
.checkbox-box {
|
|
61
|
-
@include mixins.use-size(checkbox, size, md, box);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
&-box {
|
|
66
|
-
cursor: pointer;
|
|
67
|
-
outline: none;
|
|
68
|
-
transition: background-color 0.1s linear;
|
|
69
|
-
display: inline-block;
|
|
70
|
-
position: relative;
|
|
71
|
-
z-index: 0;
|
|
72
|
-
|
|
73
|
-
@include mixins.use-styles(checkbox, box);
|
|
74
|
-
|
|
75
|
-
&[data-disabled] {
|
|
76
|
-
cursor: default;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
&:after {
|
|
80
|
-
visibility: hidden;
|
|
81
|
-
content: '\00A0';
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
&-label {
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
display: table-cell;
|
|
88
|
-
word-break: break-word;
|
|
89
|
-
|
|
90
|
-
&[data-disabled] {
|
|
91
|
-
cursor: default;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@include mixins.use-styles(checkbox, label);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
&-icon {
|
|
98
|
-
display: flex;
|
|
99
|
-
align-items: center;
|
|
100
|
-
justify-content: center;
|
|
101
|
-
z-index: 3;
|
|
102
|
-
position: absolute;
|
|
103
|
-
width: 100%;
|
|
104
|
-
height: 100%;
|
|
105
|
-
top: 0;
|
|
106
|
-
|
|
107
|
-
&[data-state='checked'] {
|
|
108
|
-
@include mixins.use-styles(checkbox, icon, in);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
&[data-state='unchecked'] {
|
|
112
|
-
@include mixins.use-styles(checkbox, icon, out);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
package/src/Checkbox/index.tsx
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import * as CheckboxPrimitive from '@radix-ui/react-checkbox'
|
|
2
|
-
import { Icon } from '../Icon'
|
|
3
|
-
import { faCheck } from '@fortawesome/free-solid-svg-icons'
|
|
4
|
-
import { useId } from 'react'
|
|
5
|
-
import { attr } from '@companix/utils-browser'
|
|
6
|
-
|
|
7
|
-
interface CheckboxProps {
|
|
8
|
-
checked: boolean
|
|
9
|
-
onCheckedChange: (checked: boolean) => void
|
|
10
|
-
size?: 'sm' | 'md'
|
|
11
|
-
label?: React.ReactNode
|
|
12
|
-
disabled?: boolean
|
|
13
|
-
required?: boolean
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const Checkbox = ({ checked, required, disabled, onCheckedChange, size, label }: CheckboxProps) => {
|
|
17
|
-
const id = useId()
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<div
|
|
21
|
-
className="checkbox"
|
|
22
|
-
data-size={size ?? 'md'}
|
|
23
|
-
data-required={attr(required && !checked)}
|
|
24
|
-
data-disabled={attr(disabled)}
|
|
25
|
-
>
|
|
26
|
-
<CheckboxPrimitive.Root
|
|
27
|
-
className="checkbox-box"
|
|
28
|
-
checked={checked}
|
|
29
|
-
onCheckedChange={onCheckedChange}
|
|
30
|
-
disabled={disabled}
|
|
31
|
-
id={id}
|
|
32
|
-
>
|
|
33
|
-
<CheckboxPrimitive.Indicator className="checkbox-icon">
|
|
34
|
-
<Icon icon={faCheck} size="xxxs" />
|
|
35
|
-
</CheckboxPrimitive.Indicator>
|
|
36
|
-
</CheckboxPrimitive.Root>
|
|
37
|
-
{label && (
|
|
38
|
-
<label className="checkbox-label" htmlFor={id} data-disabled={attr(disabled)}>
|
|
39
|
-
{label}
|
|
40
|
-
</label>
|
|
41
|
-
)}
|
|
42
|
-
</div>
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export { Checkbox }
|