@koobiq/react-components 0.0.1-beta.1
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/LICENSE +21 -0
- package/README.md +43 -0
- package/dist/components/Alert/Alert.d.ts +4 -0
- package/dist/components/Alert/Alert.js +78 -0
- package/dist/components/Alert/Alert.module.css.js +41 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.d.ts +2 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.js +19 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.module.css.js +23 -0
- package/dist/components/Alert/components/AlertIcon/index.d.ts +1 -0
- package/dist/components/Alert/components/AlertIcon/types.d.ts +2 -0
- package/dist/components/Alert/components/AlertIcon/utils.d.ts +14 -0
- package/dist/components/Alert/components/AlertIcon/utils.js +23 -0
- package/dist/components/Alert/components/index.d.ts +1 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/intl.json.js +11 -0
- package/dist/components/Alert/types.d.ts +43 -0
- package/dist/components/Alert/types.js +4 -0
- package/dist/components/Backdrop/Backdrop.d.ts +4 -0
- package/dist/components/Backdrop/Backdrop.js +52 -0
- package/dist/components/Backdrop/Backdrop.module.css.js +8 -0
- package/dist/components/Backdrop/index.d.ts +2 -0
- package/dist/components/Backdrop/types.d.ts +16 -0
- package/dist/components/Badge/Badge.d.ts +4 -0
- package/dist/components/Badge/Badge.js +32 -0
- package/dist/components/Badge/Badge.module.css.js +42 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/types.d.ts +20 -0
- package/dist/components/Badge/types.js +22 -0
- package/dist/components/Button/Button.d.ts +4 -0
- package/dist/components/Button/Button.js +66 -0
- package/dist/components/Button/Button.module.css.js +44 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/types.d.ts +47 -0
- package/dist/components/Button/types.js +11 -0
- package/dist/components/Checkbox/Checkbox.d.ts +19 -0
- package/dist/components/Checkbox/Checkbox.js +64 -0
- package/dist/components/Checkbox/Checkbox.module.css.js +41 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/types.d.ts +27 -0
- package/dist/components/Checkbox/types.js +6 -0
- package/dist/components/Container/Container.d.ts +4 -0
- package/dist/components/Container/Container.js +45 -0
- package/dist/components/Container/Container.module.css.js +8 -0
- package/dist/components/Container/index.d.ts +2 -0
- package/dist/components/Container/types.d.ts +32 -0
- package/dist/components/Container/types.js +21 -0
- package/dist/components/Container/utils.d.ts +4 -0
- package/dist/components/Container/utils.js +19 -0
- package/dist/components/Dialog/Dialog.d.ts +2 -0
- package/dist/components/Dialog/Dialog.js +67 -0
- package/dist/components/Dialog/Dialog.module.css.js +23 -0
- package/dist/components/Dialog/DialogContext.d.ts +9 -0
- package/dist/components/Dialog/DialogContext.js +12 -0
- package/dist/components/Dialog/components/DialogCloseButton.d.ts +9 -0
- package/dist/components/Dialog/components/DialogCloseButton.js +30 -0
- package/dist/components/Dialog/components/DialogContent.d.ts +12 -0
- package/dist/components/Dialog/components/DialogContent.js +30 -0
- package/dist/components/Dialog/components/DialogFooter.d.ts +12 -0
- package/dist/components/Dialog/components/DialogFooter.js +12 -0
- package/dist/components/Dialog/components/DialoglHeader.d.ts +12 -0
- package/dist/components/Dialog/components/DialoglHeader.js +21 -0
- package/dist/components/Dialog/components/index.d.ts +4 -0
- package/dist/components/Dialog/index.d.ts +4 -0
- package/dist/components/Dialog/intl.json.js +11 -0
- package/dist/components/Dialog/types.d.ts +26 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.d.ts +10 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.js +19 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.module.css.js +17 -0
- package/dist/components/FieldComponents/FieldAddon/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.d.ts +8 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.js +21 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.module.css.js +8 -0
- package/dist/components/FieldComponents/FieldCaption/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +10 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.js +20 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.module.css.js +11 -0
- package/dist/components/FieldComponents/FieldControl/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldError/FieldError.d.ts +6 -0
- package/dist/components/FieldComponents/FieldError/FieldError.js +21 -0
- package/dist/components/FieldComponents/FieldError/FieldError.module.css.js +8 -0
- package/dist/components/FieldComponents/FieldError/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.d.ts +12 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.js +34 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.module.css.js +20 -0
- package/dist/components/FieldComponents/FieldInput/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +11 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +41 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.module.css.js +14 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.d.ts +8 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.js +7 -0
- package/dist/components/FieldComponents/FieldInputGroup/index.d.ts +2 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.d.ts +9 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.js +24 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.module.css.js +14 -0
- package/dist/components/FieldComponents/FieldLabel/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +10 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.js +18 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.module.css.js +11 -0
- package/dist/components/FieldComponents/FieldNumberControl/index.d.ts +1 -0
- package/dist/components/FieldComponents/index.d.ts +8 -0
- package/dist/components/FormControlLabel/FormControlLabel.d.ts +2 -0
- package/dist/components/FormControlLabel/index.d.ts +2 -0
- package/dist/components/FormControlLabel/types.d.ts +32 -0
- package/dist/components/Grid/Grid.d.ts +4 -0
- package/dist/components/Grid/Grid.js +52 -0
- package/dist/components/Grid/Grid.module.css.js +8 -0
- package/dist/components/Grid/components/GridItem/GridItem.d.ts +4 -0
- package/dist/components/Grid/components/GridItem/GridItem.js +52 -0
- package/dist/components/Grid/components/GridItem/GridItem.module.css.js +8 -0
- package/dist/components/Grid/components/GridItem/index.d.ts +2 -0
- package/dist/components/Grid/components/GridItem/types.d.ts +22 -0
- package/dist/components/Grid/components/index.d.ts +1 -0
- package/dist/components/Grid/index.d.ts +3 -0
- package/dist/components/Grid/types.d.ts +30 -0
- package/dist/components/Grid/types.js +19 -0
- package/dist/components/Grid/utils.d.ts +2 -0
- package/dist/components/Grid/utils.js +8 -0
- package/dist/components/IconButton/IconButton.d.ts +4 -0
- package/dist/components/IconButton/IconButton.js +51 -0
- package/dist/components/IconButton/IconButton.module.css.js +43 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/IconButton/types.d.ts +36 -0
- package/dist/components/IconButton/types.js +13 -0
- package/dist/components/Input/Input.d.ts +22 -0
- package/dist/components/Input/Input.js +70 -0
- package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +10 -0
- package/dist/components/Input/components/FieldAddon/index.d.ts +1 -0
- package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +6 -0
- package/dist/components/Input/components/FieldCaption/index.d.ts +1 -0
- package/dist/components/Input/components/FieldControl/FieldControl.d.ts +9 -0
- package/dist/components/Input/components/FieldControl/index.d.ts +1 -0
- package/dist/components/Input/components/FieldError/FieldError.d.ts +7 -0
- package/dist/components/Input/components/FieldError/index.d.ts +1 -0
- package/dist/components/Input/components/FieldInput/FieldInput.d.ts +9 -0
- package/dist/components/Input/components/FieldInput/index.d.ts +1 -0
- package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +7 -0
- package/dist/components/Input/components/FieldInputGroup/index.d.ts +1 -0
- package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +9 -0
- package/dist/components/Input/components/FieldLabel/index.d.ts +1 -0
- package/dist/components/Input/components/index.d.ts +7 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/types.d.ts +62 -0
- package/dist/components/Input/types.js +4 -0
- package/dist/components/InputNumber/InputNumber.d.ts +22 -0
- package/dist/components/InputNumber/InputNumber.js +72 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.d.ts +1 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.js +37 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.module.css.js +14 -0
- package/dist/components/InputNumber/components/index.d.ts +1 -0
- package/dist/components/InputNumber/index.d.ts +2 -0
- package/dist/components/InputNumber/types.d.ts +62 -0
- package/dist/components/InputNumber/types.js +4 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/Link/Link.js +54 -0
- package/dist/components/Link/Link.module.css.js +32 -0
- package/dist/components/Link/index.d.ts +2 -0
- package/dist/components/Link/types.d.ts +25 -0
- package/dist/components/Modal/Modal.d.ts +2 -0
- package/dist/components/Modal/Modal.js +121 -0
- package/dist/components/Modal/Modal.module.css.js +20 -0
- package/dist/components/Modal/index.d.ts +4 -0
- package/dist/components/Modal/types.d.ts +68 -0
- package/dist/components/Modal/types.js +4 -0
- package/dist/components/Popover/Popover.d.ts +2 -0
- package/dist/components/Popover/Popover.js +147 -0
- package/dist/components/Popover/Popover.module.css.js +17 -0
- package/dist/components/Popover/index.d.ts +4 -0
- package/dist/components/Popover/types.d.ts +97 -0
- package/dist/components/Popover/types.js +19 -0
- package/dist/components/Popover/utils.d.ts +2 -0
- package/dist/components/Popover/utils.js +11 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +2 -0
- package/dist/components/ProgressBar/ProgressBar.js +57 -0
- package/dist/components/ProgressBar/ProgressBar.module.css.js +15 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/types.d.ts +34 -0
- package/dist/components/ProgressBar/types.js +4 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.d.ts +2 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.js +68 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +18 -0
- package/dist/components/ProgressSpinner/index.d.ts +2 -0
- package/dist/components/ProgressSpinner/types.d.ts +41 -0
- package/dist/components/ProgressSpinner/types.js +9 -0
- package/dist/components/ProgressSpinner/utils.d.ts +2 -0
- package/dist/components/ProgressSpinner/utils.js +18 -0
- package/dist/components/Provider/BreakpointsContext.d.ts +5 -0
- package/dist/components/Provider/BreakpointsContext.js +17 -0
- package/dist/components/Provider/BreakpointsProvider.d.ts +10 -0
- package/dist/components/Provider/BreakpointsProvider.js +15 -0
- package/dist/components/Provider/Provider.d.ts +6 -0
- package/dist/components/Provider/Provider.js +29 -0
- package/dist/components/Provider/ProviderContext.d.ts +3 -0
- package/dist/components/Provider/ProviderContext.js +12 -0
- package/dist/components/Provider/index.d.ts +5 -0
- package/dist/components/Provider/types.d.ts +16 -0
- package/dist/components/Provider/utils/index.d.ts +1 -0
- package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -0
- package/dist/components/Provider/utils/useBreakpoints.js +15 -0
- package/dist/components/Provider/utils/useMatchedBreakpoints.d.ts +2 -0
- package/dist/components/RadioGroup/RadioContext.d.ts +6 -0
- package/dist/components/RadioGroup/RadioContext.js +9 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.js +35 -0
- package/dist/components/RadioGroup/components/Radio/Radio.d.ts +12 -0
- package/dist/components/RadioGroup/components/Radio/Radio.js +44 -0
- package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +38 -0
- package/dist/components/RadioGroup/components/Radio/index.d.ts +2 -0
- package/dist/components/RadioGroup/components/Radio/types.d.ts +27 -0
- package/dist/components/RadioGroup/components/Radio/types.js +6 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.d.ts +7 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.js +21 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/index.d.ts +1 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.d.ts +6 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.js +14 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/index.d.ts +1 -0
- package/dist/components/RadioGroup/components/index.d.ts +3 -0
- package/dist/components/RadioGroup/index.d.ts +4 -0
- package/dist/components/RadioGroup/types.d.ts +37 -0
- package/dist/components/RadioGroup/types.js +6 -0
- package/dist/components/SidePanel/SidePanel.d.ts +2 -0
- package/dist/components/SidePanel/SidePanel.js +125 -0
- package/dist/components/SidePanel/SidePanel.module.css.js +26 -0
- package/dist/components/SidePanel/index.d.ts +4 -0
- package/dist/components/SidePanel/types.d.ts +75 -0
- package/dist/components/SidePanel/types.js +6 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.d.ts +2 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.js +37 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +12 -0
- package/dist/components/SkeletonBlock/index.d.ts +2 -0
- package/dist/components/SkeletonBlock/types.d.ts +18 -0
- package/dist/components/SkeletonBlock/utils.d.ts +2 -0
- package/dist/components/SkeletonBlock/utils.js +8 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.d.ts +2 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.js +44 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.module.css.js +14 -0
- package/dist/components/SkeletonTypography/index.d.ts +2 -0
- package/dist/components/SkeletonTypography/types.d.ts +25 -0
- package/dist/components/SkeletonTypography/utils.d.ts +2 -0
- package/dist/components/SkeletonTypography/utils.js +18 -0
- package/dist/components/Textarea/Textarea.d.ts +21 -0
- package/dist/components/Textarea/Textarea.js +51 -0
- package/dist/components/Textarea/Textarea.module.css.js +7 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.d.ts +6 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.js +58 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/index.d.ts +1 -0
- package/dist/components/Textarea/components/index.d.ts +1 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/types.d.ts +67 -0
- package/dist/components/Textarea/types.js +6 -0
- package/dist/components/Textarea/utils/index.d.ts +1 -0
- package/dist/components/Textarea/utils/useTextareaAutosize.d.ts +2 -0
- package/dist/components/Textarea/utils/useTextareaAutosize.js +15 -0
- package/dist/components/Toggle/Toggle.d.ts +16 -0
- package/dist/components/Toggle/Toggle.js +42 -0
- package/dist/components/Toggle/Toggle.module.css.js +38 -0
- package/dist/components/Toggle/index.d.ts +2 -0
- package/dist/components/Toggle/types.d.ts +25 -0
- package/dist/components/Toggle/types.js +6 -0
- package/dist/components/Tooltip/Tooltip.d.ts +20 -0
- package/dist/components/Tooltip/Tooltip.js +119 -0
- package/dist/components/Tooltip/Tooltip.module.css.js +30 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/types.d.ts +81 -0
- package/dist/components/Tooltip/types.js +25 -0
- package/dist/components/Typography/Typography.d.ts +4 -0
- package/dist/components/Typography/Typography.js +46 -0
- package/dist/components/Typography/Typography.module.css.js +23 -0
- package/dist/components/Typography/index.d.ts +2 -0
- package/dist/components/Typography/types.d.ts +31 -0
- package/dist/components/Typography/types.js +84 -0
- package/dist/components/index.d.ts +24 -0
- package/dist/components/layout/flex/flex.d.ts +25 -0
- package/dist/components/layout/flex/flex.js +74 -0
- package/dist/components/layout/flex/flex.module.css.js +92 -0
- package/dist/components/layout/flex/index.d.ts +1 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/spacing/index.d.ts +1 -0
- package/dist/components/layout/spacing/spacing.d.ts +33 -0
- package/dist/components/layout/spacing/spacing.js +44 -0
- package/dist/components/layout/spacing/spacing.module.css.js +365 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +152 -0
- package/dist/style.css +3329 -0
- package/dist/styles/utility.d.ts +71 -0
- package/dist/styles/utility.js +77 -0
- package/dist/styles/utility.module.css.js +76 -0
- package/dist/utils/getResponsiveValue/getResponsiveValue.d.ts +3 -0
- package/dist/utils/getResponsiveValue/getResponsiveValue.js +18 -0
- package/dist/utils/getResponsiveValue/index.d.ts +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +42 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Koobiq
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# @koobiq/react-components
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
Install the component library with the following command:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @koobiq/design-tokens @koobiq/react-components
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Usage
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import '@koobiq/design-tokens/web/css-tokens.css';
|
|
15
|
+
import '@koobiq/design-tokens/web/css-tokens-light.css';
|
|
16
|
+
import '@koobiq/design-tokens/web/css-tokens-dark.css';
|
|
17
|
+
import '@koobiq/react-components/style.css';
|
|
18
|
+
|
|
19
|
+
import { Typography } from '@koobiq/react-components';
|
|
20
|
+
|
|
21
|
+
export default function App() {
|
|
22
|
+
return <Typography>Hello, Koobiq React!</Typography>;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Browser Support
|
|
27
|
+
|
|
28
|
+
[Check compatible browsers](https://browsersl.ist/#q=defaults+and+supports+es6-module%2C%0A++++chrome+%3E+88%2C%0A++++safari+%3E+14%2C%0A++++firefox+%3E+78%2C%0A++++opera+%3E+75%2C%0A++++edge+%3E+88)
|
|
29
|
+
|
|
30
|
+
## Development
|
|
31
|
+
|
|
32
|
+
Follow these steps to start the development mode:
|
|
33
|
+
|
|
34
|
+
- Clone the repository and navigate to the created directory.
|
|
35
|
+
- Run the command `pnpm dev` in the terminal.
|
|
36
|
+
|
|
37
|
+
Documentation will be available at [http://localhost:6006](http://localhost:6006).
|
|
38
|
+
All development is conducted there. For convenience, you can go directly to the page of the component you are working on.
|
|
39
|
+
|
|
40
|
+
### Prerequisites
|
|
41
|
+
|
|
42
|
+
- Node.js v20
|
|
43
|
+
- pnpm v9
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ElementType } from 'react';
|
|
2
|
+
import type { AlertBaseProps } from './index';
|
|
3
|
+
export declare const Alert: import("@koobiq/react-core").PolyForwardComponent<"div", AlertBaseProps, ElementType>;
|
|
4
|
+
export type AlertProps<As extends ElementType = 'div'> = ComponentPropsWithRef<typeof Alert<As>>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { polymorphicForwardRef, mergeProps, clsx, isNotNil } from "@koobiq/react-core";
|
|
4
|
+
import { IconXmark16 } from "@koobiq/react-icons";
|
|
5
|
+
import { useLocalizedStringFormatter } from "@koobiq/react-primitives";
|
|
6
|
+
import s from "./Alert.module.css.js";
|
|
7
|
+
import intlMessages from "./intl.json.js";
|
|
8
|
+
import { AlertIcon } from "./components/AlertIcon/AlertIcon.js";
|
|
9
|
+
import { IconButton } from "../IconButton/IconButton.js";
|
|
10
|
+
const Alert = polymorphicForwardRef(
|
|
11
|
+
({
|
|
12
|
+
status = "info",
|
|
13
|
+
colored = false,
|
|
14
|
+
compact = false,
|
|
15
|
+
as: Tag = "div",
|
|
16
|
+
hideIcon = false,
|
|
17
|
+
slotProps,
|
|
18
|
+
icon,
|
|
19
|
+
onClose,
|
|
20
|
+
action,
|
|
21
|
+
title,
|
|
22
|
+
className,
|
|
23
|
+
children,
|
|
24
|
+
...other
|
|
25
|
+
}, ref) => {
|
|
26
|
+
const stringFormatter = useLocalizedStringFormatter(intlMessages);
|
|
27
|
+
const contentProps = mergeProps(
|
|
28
|
+
{
|
|
29
|
+
className: s.content
|
|
30
|
+
},
|
|
31
|
+
slotProps?.content
|
|
32
|
+
);
|
|
33
|
+
const statusIcon = mergeProps(
|
|
34
|
+
{
|
|
35
|
+
icon,
|
|
36
|
+
status,
|
|
37
|
+
compact
|
|
38
|
+
},
|
|
39
|
+
slotProps?.statusIcon
|
|
40
|
+
);
|
|
41
|
+
const closeIcon = mergeProps(
|
|
42
|
+
{
|
|
43
|
+
"aria-label": stringFormatter.format("close"),
|
|
44
|
+
variant: "fade-contrast",
|
|
45
|
+
onClick: onClose,
|
|
46
|
+
className: s.closeIcon
|
|
47
|
+
},
|
|
48
|
+
slotProps?.closeIcon
|
|
49
|
+
);
|
|
50
|
+
return /* @__PURE__ */ jsxs(
|
|
51
|
+
Tag,
|
|
52
|
+
{
|
|
53
|
+
role: "alert",
|
|
54
|
+
...other,
|
|
55
|
+
ref,
|
|
56
|
+
className: clsx(
|
|
57
|
+
s.base,
|
|
58
|
+
s[status],
|
|
59
|
+
compact && s.compact,
|
|
60
|
+
colored && s.colored,
|
|
61
|
+
className
|
|
62
|
+
),
|
|
63
|
+
children: [
|
|
64
|
+
!hideIcon && /* @__PURE__ */ jsx(AlertIcon, { ...statusIcon }),
|
|
65
|
+
/* @__PURE__ */ jsxs("div", { ...contentProps, children: [
|
|
66
|
+
isNotNil(title) && /* @__PURE__ */ jsx("span", { className: s.title, children: title }),
|
|
67
|
+
isNotNil(children) && /* @__PURE__ */ jsx("span", { className: s.body, children }),
|
|
68
|
+
isNotNil(action) && /* @__PURE__ */ jsx("span", { className: s.action, children: action })
|
|
69
|
+
] }),
|
|
70
|
+
isNotNil(onClose) && typeof onClose === "function" && /* @__PURE__ */ jsx(IconButton, { ...closeIcon, children: closeIcon.children || /* @__PURE__ */ jsx(IconXmark16, {}) })
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
export {
|
|
77
|
+
Alert
|
|
78
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const base = "kbq-alert-bc5d04";
|
|
2
|
+
const content = "kbq-alert-content-26b952";
|
|
3
|
+
const title = "kbq-alert-title-65d4cf";
|
|
4
|
+
const body = "kbq-alert-body-e3014a";
|
|
5
|
+
const action = "kbq-alert-action-56d767";
|
|
6
|
+
const closeIcon = "kbq-alert-closeIcon-f7a8b8";
|
|
7
|
+
const compact = "kbq-alert-compact-ae75df";
|
|
8
|
+
const info = "kbq-alert-info-5d61e4";
|
|
9
|
+
const colored = "kbq-alert-colored-b82b77";
|
|
10
|
+
const warning = "kbq-alert-warning-4392ba";
|
|
11
|
+
const error = "kbq-alert-error-e5580a";
|
|
12
|
+
const success = "kbq-alert-success-1c44d9";
|
|
13
|
+
const s = {
|
|
14
|
+
base,
|
|
15
|
+
content,
|
|
16
|
+
title,
|
|
17
|
+
body,
|
|
18
|
+
action,
|
|
19
|
+
closeIcon,
|
|
20
|
+
compact,
|
|
21
|
+
info,
|
|
22
|
+
colored,
|
|
23
|
+
warning,
|
|
24
|
+
error,
|
|
25
|
+
success
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
action,
|
|
29
|
+
base,
|
|
30
|
+
body,
|
|
31
|
+
closeIcon,
|
|
32
|
+
colored,
|
|
33
|
+
compact,
|
|
34
|
+
content,
|
|
35
|
+
s as default,
|
|
36
|
+
error,
|
|
37
|
+
info,
|
|
38
|
+
success,
|
|
39
|
+
title,
|
|
40
|
+
warning
|
|
41
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import s from "./AlertIcon.module.css.js";
|
|
5
|
+
import { matchStatusToIcon } from "./utils.js";
|
|
6
|
+
const AlertIcon = forwardRef(
|
|
7
|
+
({ status = "info", icon, compact }, ref) => /* @__PURE__ */ jsx(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
className: clsx(s.base, status && s[status], compact && s.compact),
|
|
11
|
+
ref,
|
|
12
|
+
children: icon || matchStatusToIcon[compact ? "compact" : "normal"][status]
|
|
13
|
+
}
|
|
14
|
+
)
|
|
15
|
+
);
|
|
16
|
+
AlertIcon.displayName = "AlertIcon";
|
|
17
|
+
export {
|
|
18
|
+
AlertIcon
|
|
19
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const base = "kbq-alerticon-024057";
|
|
2
|
+
const info = "kbq-alerticon-info-5c9bab";
|
|
3
|
+
const success = "kbq-alerticon-success-7255f9";
|
|
4
|
+
const warning = "kbq-alerticon-warning-a84e1f";
|
|
5
|
+
const error = "kbq-alerticon-error-ba110a";
|
|
6
|
+
const compact = "kbq-alerticon-compact-2a8a72";
|
|
7
|
+
const s = {
|
|
8
|
+
base,
|
|
9
|
+
info,
|
|
10
|
+
success,
|
|
11
|
+
warning,
|
|
12
|
+
error,
|
|
13
|
+
compact
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
base,
|
|
17
|
+
compact,
|
|
18
|
+
s as default,
|
|
19
|
+
error,
|
|
20
|
+
info,
|
|
21
|
+
success,
|
|
22
|
+
warning
|
|
23
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AlertIcon';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const matchStatusToIcon: {
|
|
2
|
+
normal: {
|
|
3
|
+
info: import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
success: import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
error: import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
warning: import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
};
|
|
8
|
+
compact: {
|
|
9
|
+
info: import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
success: import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
error: import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
warning: import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { IconInfoCircle16, IconCheck16, IconExclamationTriangle16, IconCheckCircle16 } from "@koobiq/react-icons";
|
|
3
|
+
const iconProps = {
|
|
4
|
+
focusable: false,
|
|
5
|
+
"aria-hidden": true
|
|
6
|
+
};
|
|
7
|
+
const matchStatusToIcon = {
|
|
8
|
+
normal: {
|
|
9
|
+
info: /* @__PURE__ */ jsx(IconInfoCircle16, { ...iconProps }),
|
|
10
|
+
success: /* @__PURE__ */ jsx(IconCheck16, { ...iconProps }),
|
|
11
|
+
error: /* @__PURE__ */ jsx(IconExclamationTriangle16, { ...iconProps }),
|
|
12
|
+
warning: /* @__PURE__ */ jsx(IconExclamationTriangle16, { ...iconProps })
|
|
13
|
+
},
|
|
14
|
+
compact: {
|
|
15
|
+
info: /* @__PURE__ */ jsx(IconInfoCircle16, { ...iconProps }),
|
|
16
|
+
success: /* @__PURE__ */ jsx(IconCheckCircle16, { ...iconProps }),
|
|
17
|
+
error: /* @__PURE__ */ jsx(IconExclamationTriangle16, { ...iconProps }),
|
|
18
|
+
warning: /* @__PURE__ */ jsx(IconExclamationTriangle16, { ...iconProps })
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
matchStatusToIcon
|
|
23
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AlertIcon';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
import type { IconButtonProps } from '../IconButton';
|
|
3
|
+
export declare const alertPropStatus: readonly ["info", "warning", "error", "success"];
|
|
4
|
+
export type AlertPropStatus = (typeof alertPropStatus)[number];
|
|
5
|
+
export type AlertBaseProps = {
|
|
6
|
+
/**
|
|
7
|
+
* The status of the component.
|
|
8
|
+
* @default info
|
|
9
|
+
* */
|
|
10
|
+
status?: AlertPropStatus;
|
|
11
|
+
/**
|
|
12
|
+
* If `true`, compact mode will be enabled in the alert.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
compact?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* If `true`, background color will be enabled in the alert.
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
colored?: boolean;
|
|
21
|
+
/** Additional CSS-classes. */
|
|
22
|
+
className?: string;
|
|
23
|
+
/**
|
|
24
|
+
* If `true`, the status icon will be hidden in the component.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
hideIcon?: boolean;
|
|
28
|
+
/** Title content. */
|
|
29
|
+
title?: ReactNode;
|
|
30
|
+
/** Message of the alert. */
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
/** Action element, such as a button or link. */
|
|
33
|
+
action?: ReactNode;
|
|
34
|
+
/** Override default icon. */
|
|
35
|
+
icon?: ReactNode;
|
|
36
|
+
/** A callback function called when the user clicks the alert's close button. */
|
|
37
|
+
onClose?: IconButtonProps['onClick'];
|
|
38
|
+
slotProps?: {
|
|
39
|
+
content?: ComponentPropsWithRef<'div'>;
|
|
40
|
+
statusIcon?: ComponentPropsWithRef<'div'>;
|
|
41
|
+
closeIcon?: IconButtonProps;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef, type ElementType } from 'react';
|
|
2
|
+
import type { BackdropBaseProps } from './index';
|
|
3
|
+
export declare const Backdrop: import("@koobiq/react-core").PolyForwardComponent<"div", BackdropBaseProps, ElementType>;
|
|
4
|
+
export type BackdropProps<As extends ElementType = 'div'> = ComponentPropsWithRef<typeof Backdrop<As>>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
|
+
import { polymorphicForwardRef, useDOMRef, clsx } from "@koobiq/react-core";
|
|
5
|
+
import { Transition } from "react-transition-group";
|
|
6
|
+
import s from "./Backdrop.module.css.js";
|
|
7
|
+
const Backdrop = polymorphicForwardRef(
|
|
8
|
+
(props, ref) => {
|
|
9
|
+
const {
|
|
10
|
+
as: Tag = "div",
|
|
11
|
+
duration = 300,
|
|
12
|
+
open: openProp = false,
|
|
13
|
+
style: styleProp,
|
|
14
|
+
zIndex,
|
|
15
|
+
children,
|
|
16
|
+
className,
|
|
17
|
+
...other
|
|
18
|
+
} = props;
|
|
19
|
+
const domRef = useDOMRef(ref);
|
|
20
|
+
const style = {
|
|
21
|
+
"--backdrop-z-index": zIndex,
|
|
22
|
+
"--backdrop-duration": `${duration}ms`,
|
|
23
|
+
...styleProp
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ jsx(
|
|
26
|
+
Transition,
|
|
27
|
+
{
|
|
28
|
+
in: openProp,
|
|
29
|
+
nodeRef: domRef,
|
|
30
|
+
timeout: duration,
|
|
31
|
+
appear: true,
|
|
32
|
+
unmountOnExit: true,
|
|
33
|
+
children: (state) => /* @__PURE__ */ jsx(
|
|
34
|
+
Tag,
|
|
35
|
+
{
|
|
36
|
+
className: clsx(s.base, className),
|
|
37
|
+
"data-transition": state,
|
|
38
|
+
style,
|
|
39
|
+
"aria-hidden": true,
|
|
40
|
+
...other,
|
|
41
|
+
ref: domRef,
|
|
42
|
+
children
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
Backdrop.displayName = "Backdrop";
|
|
50
|
+
export {
|
|
51
|
+
Backdrop
|
|
52
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
export type BackdropBaseProps = {
|
|
3
|
+
/** If `true`, the component is shown. */
|
|
4
|
+
open?: boolean;
|
|
5
|
+
/** Additional CSS-classes. */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** The content of the component. */
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
/** Inline styles. */
|
|
10
|
+
style?: CSSProperties;
|
|
11
|
+
duration?: number;
|
|
12
|
+
/** z-index. */
|
|
13
|
+
zIndex?: CSSProperties['zIndex'];
|
|
14
|
+
/** Unique identifier for testing purposes. */
|
|
15
|
+
'data-testid'?: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ElementType } from 'react';
|
|
2
|
+
import type { BadgeBaseProps } from './index';
|
|
3
|
+
export declare const Badge: import("@koobiq/react-core").PolyForwardComponent<"span", BadgeBaseProps, ElementType>;
|
|
4
|
+
export type BadgeProps<As extends ElementType = 'span'> = ComponentPropsWithRef<typeof Badge<As>>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { polymorphicForwardRef, clsx } from "@koobiq/react-core";
|
|
3
|
+
import s from "./Badge.module.css.js";
|
|
4
|
+
const Badge = polymorphicForwardRef(
|
|
5
|
+
({
|
|
6
|
+
variant = "fade-contrast",
|
|
7
|
+
as: Tag = "span",
|
|
8
|
+
size = "normal",
|
|
9
|
+
className,
|
|
10
|
+
startIcon,
|
|
11
|
+
endIcon,
|
|
12
|
+
label,
|
|
13
|
+
...other
|
|
14
|
+
}, ref) => /* @__PURE__ */ jsxs(
|
|
15
|
+
Tag,
|
|
16
|
+
{
|
|
17
|
+
"data-variant": variant,
|
|
18
|
+
"data-size": size,
|
|
19
|
+
...other,
|
|
20
|
+
ref,
|
|
21
|
+
className: clsx(s.base, s[size], s[variant], className),
|
|
22
|
+
children: [
|
|
23
|
+
startIcon,
|
|
24
|
+
/* @__PURE__ */ jsx("span", { className: s.label, children: label }),
|
|
25
|
+
endIcon
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
);
|
|
30
|
+
export {
|
|
31
|
+
Badge
|
|
32
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const base = "kbq-badge-ef7338";
|
|
2
|
+
const label = "kbq-badge-label-780747";
|
|
3
|
+
const compact = "kbq-badge-compact-4e1018";
|
|
4
|
+
const normal = "kbq-badge-normal-4b4e05";
|
|
5
|
+
const theme = "kbq-badge-theme-ea1b1d";
|
|
6
|
+
const error = "kbq-badge-error-03bdde";
|
|
7
|
+
const warning = "kbq-badge-warning-e86fa3";
|
|
8
|
+
const success = "kbq-badge-success-e7ef93";
|
|
9
|
+
const contrast = "kbq-badge-contrast-3759ce";
|
|
10
|
+
const s = {
|
|
11
|
+
base,
|
|
12
|
+
label,
|
|
13
|
+
compact,
|
|
14
|
+
normal,
|
|
15
|
+
theme,
|
|
16
|
+
"fade-theme": "kbq-badge-fade-theme-3235e5",
|
|
17
|
+
"outline-fade-theme": "kbq-badge-outline-fade-theme-c19181",
|
|
18
|
+
error,
|
|
19
|
+
"fade-error": "kbq-badge-fade-error-6f260a",
|
|
20
|
+
"outline-fade-error": "kbq-badge-outline-fade-error-857d1a",
|
|
21
|
+
warning,
|
|
22
|
+
"fade-warning": "kbq-badge-fade-warning-13f89c",
|
|
23
|
+
"outline-fade-warning": "kbq-badge-outline-fade-warning-bd27c4",
|
|
24
|
+
success,
|
|
25
|
+
"fade-success": "kbq-badge-fade-success-c1c765",
|
|
26
|
+
"outline-fade-success": "kbq-badge-outline-fade-success-bf13bf",
|
|
27
|
+
contrast,
|
|
28
|
+
"fade-contrast": "kbq-badge-fade-contrast-64c817",
|
|
29
|
+
"outline-fade-contrast": "kbq-badge-outline-fade-contrast-8fc813"
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
base,
|
|
33
|
+
compact,
|
|
34
|
+
contrast,
|
|
35
|
+
s as default,
|
|
36
|
+
error,
|
|
37
|
+
label,
|
|
38
|
+
normal,
|
|
39
|
+
success,
|
|
40
|
+
theme,
|
|
41
|
+
warning
|
|
42
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export declare const badgePropSize: readonly ["compact", "normal"];
|
|
3
|
+
export type BadgePropSize = (typeof badgePropSize)[number];
|
|
4
|
+
export declare const badgePropVariant: readonly ["theme", "fade-theme", "outline-fade-theme", "error", "fade-error", "outline-fade-error", "warning", "fade-warning", "outline-fade-warning", "success", "fade-success", "outline-fade-success", "contrast", "fade-contrast", "outline-fade-contrast"];
|
|
5
|
+
export type BadgePropVariant = (typeof badgePropVariant)[number];
|
|
6
|
+
export type BadgeBaseProps = {
|
|
7
|
+
/** The variant to use. */
|
|
8
|
+
variant?: BadgePropVariant;
|
|
9
|
+
/** The size of the component. */
|
|
10
|
+
size?: BadgePropSize;
|
|
11
|
+
/** The label of the component. */
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
/** Icon placed before the children. */
|
|
14
|
+
startIcon?: ReactNode;
|
|
15
|
+
/** Icon placed after the children. */
|
|
16
|
+
endIcon?: ReactNode;
|
|
17
|
+
/** Additional CSS-classes. */
|
|
18
|
+
className?: string;
|
|
19
|
+
children?: never;
|
|
20
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const badgePropSize = ["compact", "normal"];
|
|
2
|
+
const badgePropVariant = [
|
|
3
|
+
"theme",
|
|
4
|
+
"fade-theme",
|
|
5
|
+
"outline-fade-theme",
|
|
6
|
+
"error",
|
|
7
|
+
"fade-error",
|
|
8
|
+
"outline-fade-error",
|
|
9
|
+
"warning",
|
|
10
|
+
"fade-warning",
|
|
11
|
+
"outline-fade-warning",
|
|
12
|
+
"success",
|
|
13
|
+
"fade-success",
|
|
14
|
+
"outline-fade-success",
|
|
15
|
+
"contrast",
|
|
16
|
+
"fade-contrast",
|
|
17
|
+
"outline-fade-contrast"
|
|
18
|
+
];
|
|
19
|
+
export {
|
|
20
|
+
badgePropSize,
|
|
21
|
+
badgePropVariant
|
|
22
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ElementType } from 'react';
|
|
2
|
+
import type { ButtonBaseProps } from './types.js';
|
|
3
|
+
export declare const Button: import("@koobiq/react-core").PolyForwardComponent<"button", ButtonBaseProps, ElementType>;
|
|
4
|
+
export type ButtonProps<As extends ElementType = 'button'> = ComponentPropsWithRef<typeof Button<As>>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { polymorphicForwardRef, clsx } from "@koobiq/react-core";
|
|
4
|
+
import { Button as Button$1 } from "@koobiq/react-primitives";
|
|
5
|
+
import s from "./Button.module.css.js";
|
|
6
|
+
const Button = polymorphicForwardRef(
|
|
7
|
+
({
|
|
8
|
+
as: Tag = "button",
|
|
9
|
+
variant = "contrast-filled",
|
|
10
|
+
onlyIcon = false,
|
|
11
|
+
fullWidth = false,
|
|
12
|
+
progress = false,
|
|
13
|
+
disabled = false,
|
|
14
|
+
children,
|
|
15
|
+
startIcon,
|
|
16
|
+
endIcon,
|
|
17
|
+
className,
|
|
18
|
+
...other
|
|
19
|
+
}, ref) => {
|
|
20
|
+
const iconOnly = (!children || onlyIcon) && (startIcon || endIcon);
|
|
21
|
+
const classNameFn = ({
|
|
22
|
+
hovered,
|
|
23
|
+
disabled: disabled2,
|
|
24
|
+
loading,
|
|
25
|
+
focusVisible,
|
|
26
|
+
pressed
|
|
27
|
+
}) => clsx(
|
|
28
|
+
s.base,
|
|
29
|
+
variant && s[variant],
|
|
30
|
+
hovered && s.hovered,
|
|
31
|
+
pressed && s.pressed,
|
|
32
|
+
onlyIcon && s.onlyIcon,
|
|
33
|
+
disabled2 && s.disabled,
|
|
34
|
+
loading && s.progress,
|
|
35
|
+
fullWidth && s.fullWidth,
|
|
36
|
+
focusVisible && s.focusVisible,
|
|
37
|
+
className
|
|
38
|
+
);
|
|
39
|
+
return /* @__PURE__ */ jsxs(
|
|
40
|
+
Button$1,
|
|
41
|
+
{
|
|
42
|
+
as: Tag,
|
|
43
|
+
loading: progress,
|
|
44
|
+
disabled,
|
|
45
|
+
className: classNameFn,
|
|
46
|
+
...other,
|
|
47
|
+
ref,
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsxs("span", { className: s.content, children: [
|
|
50
|
+
iconOnly,
|
|
51
|
+
!iconOnly && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
startIcon,
|
|
53
|
+
/* @__PURE__ */ jsx("span", { className: s.label, children }),
|
|
54
|
+
endIcon
|
|
55
|
+
] })
|
|
56
|
+
] }),
|
|
57
|
+
progress && /* @__PURE__ */ jsx("div", { className: s.loader })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
Button.displayName = "Button";
|
|
64
|
+
export {
|
|
65
|
+
Button
|
|
66
|
+
};
|