lsoft-ui 0.0.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 +82 -0
- package/dist/components/Accordion/CustomAccordionGroup.d.ts +10 -0
- package/dist/components/Accordion/CustomAccordionGroup.js +20 -0
- package/dist/components/Accordion/CustomAccordionItem.d.ts +12 -0
- package/dist/components/Accordion/CustomAccordionItem.js +5 -0
- package/dist/components/CustomAlertDialog.d.ts +8 -0
- package/dist/components/CustomAlertDialog.js +18 -0
- package/dist/components/CustomAutoComplete.d.ts +35 -0
- package/dist/components/CustomAutoComplete.js +141 -0
- package/dist/components/CustomBadge.d.ts +9 -0
- package/dist/components/CustomBadge.js +25 -0
- package/dist/components/CustomButton.d.ts +16 -0
- package/dist/components/CustomButton.js +18 -0
- package/dist/components/CustomCard.d.ts +11 -0
- package/dist/components/CustomCard.js +20 -0
- package/dist/components/CustomCheckBox.d.ts +12 -0
- package/dist/components/CustomCheckBox.js +26 -0
- package/dist/components/CustomCheckboxGroup.d.ts +21 -0
- package/dist/components/CustomCheckboxGroup.js +28 -0
- package/dist/components/CustomDrawer.d.ts +11 -0
- package/dist/components/CustomDrawer.js +36 -0
- package/dist/components/CustomIconButton.d.ts +7 -0
- package/dist/components/CustomIconButton.js +19 -0
- package/dist/components/CustomInput.d.ts +19 -0
- package/dist/components/CustomInput.js +32 -0
- package/dist/components/CustomInputNumber.d.ts +17 -0
- package/dist/components/CustomInputNumber.js +23 -0
- package/dist/components/CustomList.d.ts +22 -0
- package/dist/components/CustomList.js +27 -0
- package/dist/components/CustomLoadingCenterPage.d.ts +6 -0
- package/dist/components/CustomLoadingCenterPage.js +5 -0
- package/dist/components/CustomModal.d.ts +19 -0
- package/dist/components/CustomModal.js +83 -0
- package/dist/components/CustomModalNfe.d.ts +34 -0
- package/dist/components/CustomModalNfe.js +86 -0
- package/dist/components/CustomMultSelect.d.ts +28 -0
- package/dist/components/CustomMultSelect.js +51 -0
- package/dist/components/CustomMultipleInputs.d.ts +36 -0
- package/dist/components/CustomMultipleInputs.js +91 -0
- package/dist/components/CustomPopover.d.ts +21 -0
- package/dist/components/CustomPopover.js +19 -0
- package/dist/components/CustomRadioGroup.d.ts +32 -0
- package/dist/components/CustomRadioGroup.js +37 -0
- package/dist/components/CustomSelect.d.ts +20 -0
- package/dist/components/CustomSelect.js +25 -0
- package/dist/components/CustomSkeleton.d.ts +9 -0
- package/dist/components/CustomSkeleton.js +17 -0
- package/dist/components/CustomSwitch.d.ts +20 -0
- package/dist/components/CustomSwitch.js +15 -0
- package/dist/components/CustomTable.d.ts +51 -0
- package/dist/components/CustomTable.js +307 -0
- package/dist/components/CustomTabs.d.ts +27 -0
- package/dist/components/CustomTabs.js +100 -0
- package/dist/components/CustomTextarea.d.ts +14 -0
- package/dist/components/CustomTextarea.js +35 -0
- package/dist/components/CustomToast.d.ts +10 -0
- package/dist/components/CustomToast.js +6 -0
- package/dist/components/DatePicker/CustomDatePicker.d.ts +24 -0
- package/dist/components/DatePicker/CustomDatePicker.js +628 -0
- package/dist/components/Pagination/CustomPagination.d.ts +50 -0
- package/dist/components/Pagination/CustomPagination.js +159 -0
- package/dist/components/ThemeToggle.d.ts +1 -0
- package/dist/components/ThemeToggle.js +30 -0
- package/dist/components/index.d.ts +30 -0
- package/dist/components/index.js +30 -0
- package/dist/contexts/ThemeContext.d.ts +18 -0
- package/dist/contexts/ThemeContext.js +34 -0
- package/dist/examples/CodeViewer.d.ts +8 -0
- package/dist/examples/CodeViewer.js +7 -0
- package/dist/examples/FormikExample.d.ts +2 -0
- package/dist/examples/FormikExample.js +199 -0
- package/dist/examples/NumberInputExample.d.ts +2 -0
- package/dist/examples/NumberInputExample.js +198 -0
- package/dist/examples/ReactHookFormExample.d.ts +2 -0
- package/dist/examples/ReactHookFormExample.js +217 -0
- package/dist/examples/SimpleFormExample.d.ts +2 -0
- package/dist/examples/SimpleFormExample.js +216 -0
- package/dist/examples/TabsExample.d.ts +2 -0
- package/dist/examples/TabsExample.js +182 -0
- package/dist/examples/index.d.ts +6 -0
- package/dist/examples/index.js +6 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +32 -0
- package/dist/providers/LsCKFrontProvider.d.ts +6 -0
- package/dist/providers/LsCKFrontProvider.js +7 -0
- package/dist/stories/Londrisoft/Components/Accordion/CustomAccordionGroup.stories.d.ts +13 -0
- package/dist/stories/Londrisoft/Components/Accordion/CustomAccordionGroup.stories.js +787 -0
- package/dist/stories/Londrisoft/Components/Accordion/CustomAccordionItem.stories.d.ts +13 -0
- package/dist/stories/Londrisoft/Components/Accordion/CustomAccordionItem.stories.js +759 -0
- package/dist/stories/Londrisoft/Components/Checkbox/CustomCheckBox.stories.d.ts +15 -0
- package/dist/stories/Londrisoft/Components/Checkbox/CustomCheckBox.stories.js +770 -0
- package/dist/stories/Londrisoft/Components/Checkbox/CustomCheckboxGroup.stories.d.ts +33 -0
- package/dist/stories/Londrisoft/Components/Checkbox/CustomCheckboxGroup.stories.js +2152 -0
- package/dist/stories/Londrisoft/Components/CustomAlertDialog.stories.d.ts +24 -0
- package/dist/stories/Londrisoft/Components/CustomAlertDialog.stories.js +462 -0
- package/dist/stories/Londrisoft/Components/CustomAutoComplete.stories.d.ts +41 -0
- package/dist/stories/Londrisoft/Components/CustomAutoComplete.stories.js +1135 -0
- package/dist/stories/Londrisoft/Components/CustomBadge.stories.d.ts +21 -0
- package/dist/stories/Londrisoft/Components/CustomBadge.stories.js +546 -0
- package/dist/stories/Londrisoft/Components/CustomButton.stories.d.ts +17 -0
- package/dist/stories/Londrisoft/Components/CustomButton.stories.js +1099 -0
- package/dist/stories/Londrisoft/Components/CustomCard.stories.d.ts +17 -0
- package/dist/stories/Londrisoft/Components/CustomCard.stories.js +687 -0
- package/dist/stories/Londrisoft/Components/CustomDrawer.stories.d.ts +24 -0
- package/dist/stories/Londrisoft/Components/CustomDrawer.stories.js +521 -0
- package/dist/stories/Londrisoft/Components/CustomIconButton.stories.d.ts +14 -0
- package/dist/stories/Londrisoft/Components/CustomIconButton.stories.js +1024 -0
- package/dist/stories/Londrisoft/Components/CustomInput.stories.d.ts +15 -0
- package/dist/stories/Londrisoft/Components/CustomInput.stories.js +1094 -0
- package/dist/stories/Londrisoft/Components/CustomInputNumber.stories.d.ts +11 -0
- package/dist/stories/Londrisoft/Components/CustomInputNumber.stories.js +676 -0
- package/dist/stories/Londrisoft/Components/CustomList.stories.d.ts +18 -0
- package/dist/stories/Londrisoft/Components/CustomList.stories.js +1353 -0
- package/dist/stories/Londrisoft/Components/CustomLoadingCenterPage.stories.d.ts +17 -0
- package/dist/stories/Londrisoft/Components/CustomLoadingCenterPage.stories.js +304 -0
- package/dist/stories/Londrisoft/Components/CustomModal.stories.d.ts +19 -0
- package/dist/stories/Londrisoft/Components/CustomModal.stories.js +631 -0
- package/dist/stories/Londrisoft/Components/CustomModalNfe.stories.d.ts +19 -0
- package/dist/stories/Londrisoft/Components/CustomModalNfe.stories.js +589 -0
- package/dist/stories/Londrisoft/Components/CustomMultSelect.stories.d.ts +15 -0
- package/dist/stories/Londrisoft/Components/CustomMultSelect.stories.js +447 -0
- package/dist/stories/Londrisoft/Components/CustomMultipleInputs.stories.d.ts +15 -0
- package/dist/stories/Londrisoft/Components/CustomMultipleInputs.stories.js +1068 -0
- package/dist/stories/Londrisoft/Components/CustomPopover.stories.d.ts +10 -0
- package/dist/stories/Londrisoft/Components/CustomPopover.stories.js +208 -0
- package/dist/stories/Londrisoft/Components/CustomSelect.stories.d.ts +27 -0
- package/dist/stories/Londrisoft/Components/CustomSelect.stories.js +1086 -0
- package/dist/stories/Londrisoft/Components/CustomSkeleton.stories.d.ts +25 -0
- package/dist/stories/Londrisoft/Components/CustomSkeleton.stories.js +534 -0
- package/dist/stories/Londrisoft/Components/CustomSwitch.stories.d.ts +15 -0
- package/dist/stories/Londrisoft/Components/CustomSwitch.stories.js +422 -0
- package/dist/stories/Londrisoft/Components/CustomTable.stories.d.ts +43 -0
- package/dist/stories/Londrisoft/Components/CustomTable.stories.js +2121 -0
- package/dist/stories/Londrisoft/Components/CustomTabs.stories.d.ts +19 -0
- package/dist/stories/Londrisoft/Components/CustomTabs.stories.js +866 -0
- package/dist/stories/Londrisoft/Components/CustomTextarea.stories.d.ts +21 -0
- package/dist/stories/Londrisoft/Components/CustomTextarea.stories.js +408 -0
- package/dist/stories/Londrisoft/Components/CustomToast.stories.d.ts +21 -0
- package/dist/stories/Londrisoft/Components/CustomToast.stories.js +1041 -0
- package/dist/stories/Londrisoft/Components/DatePicker/CustomDatePicker.stories.d.ts +17 -0
- package/dist/stories/Londrisoft/Components/DatePicker/CustomDatePicker.stories.js +653 -0
- package/dist/stories/Londrisoft/Components/Pagination/CustomPagination.stories.d.ts +17 -0
- package/dist/stories/Londrisoft/Components/Pagination/CustomPagination.stories.js +429 -0
- package/dist/stories/Londrisoft/Components/Radio/CustomRadioGroup.stories.d.ts +22 -0
- package/dist/stories/Londrisoft/Components/Radio/CustomRadioGroup.stories.js +766 -0
- package/dist/stories/Londrisoft/Examples/IntegrationExamples.stories.d.ts +16 -0
- package/dist/stories/Londrisoft/Examples/IntegrationExamples.stories.js +514 -0
- package/dist/stories/Londrisoft/Theme/ThemeShowcase.stories.d.ts +5 -0
- package/dist/stories/Londrisoft/Theme/ThemeShowcase.stories.js +112 -0
- package/dist/stories/options.d.ts +13 -0
- package/dist/stories/options.js +124 -0
- package/dist/theme/bime.d.ts +92 -0
- package/dist/theme/bime.js +352 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.js +8 -0
- package/dist/theme/waipe.d.ts +102 -0
- package/dist/theme/waipe.js +362 -0
- package/package.json +53 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { CustomBadge } from "../../../components/CustomBadge";
|
|
3
|
+
declare const meta: Meta<typeof CustomBadge>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof CustomBadge>;
|
|
6
|
+
/** 🎯 Exemplo básico do CustomBadge */
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
/** 🎨 Exemplo com cores do tema */
|
|
9
|
+
export declare const ThemeColors: Story;
|
|
10
|
+
/** 🎨 Exemplo com cores padrão do Chakra */
|
|
11
|
+
export declare const ChakraColors: Story;
|
|
12
|
+
/** 🎨 Exemplo com diferentes variantes */
|
|
13
|
+
export declare const Variants: Story;
|
|
14
|
+
/** 📏 Exemplo com diferentes tamanhos */
|
|
15
|
+
export declare const Sizes: Story;
|
|
16
|
+
/** 🎯 Exemplo com casos de uso práticos */
|
|
17
|
+
export declare const UseCases: Story;
|
|
18
|
+
/** 📏 Exemplo com diferentes paddings */
|
|
19
|
+
export declare const PaddingExamples: Story;
|
|
20
|
+
/** đź”§ Exemplo com todas as propriedades */
|
|
21
|
+
export declare const AllProps: Story;
|
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CustomBadge } from "../../../components/CustomBadge";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: "Londrisoft/Components/Badge",
|
|
5
|
+
component: CustomBadge,
|
|
6
|
+
tags: ["autodocs"],
|
|
7
|
+
args: {
|
|
8
|
+
children: "Badge",
|
|
9
|
+
variant: "solid",
|
|
10
|
+
colorScheme: "alert.success",
|
|
11
|
+
size: "sm",
|
|
12
|
+
},
|
|
13
|
+
argTypes: {
|
|
14
|
+
children: {
|
|
15
|
+
control: "text",
|
|
16
|
+
description: "ConteĂşdo do badge.",
|
|
17
|
+
table: { category: "Content" },
|
|
18
|
+
},
|
|
19
|
+
variant: {
|
|
20
|
+
control: { type: "select", options: ["solid", "subtle", "outline"] },
|
|
21
|
+
description: "Variante visual do badge.",
|
|
22
|
+
table: { category: "Appearance" },
|
|
23
|
+
},
|
|
24
|
+
colorScheme: {
|
|
25
|
+
control: "text",
|
|
26
|
+
description: "Esquema de cor do badge. Aceita cores do tema (ex: 'primary.300') ou cores padrĂŁo do Chakra.",
|
|
27
|
+
table: { category: "Appearance" },
|
|
28
|
+
},
|
|
29
|
+
size: {
|
|
30
|
+
control: { type: "select", options: ["sm", "md", "lg"] },
|
|
31
|
+
description: "Tamanho do badge.",
|
|
32
|
+
table: { category: "Appearance" },
|
|
33
|
+
},
|
|
34
|
+
px: {
|
|
35
|
+
control: "number",
|
|
36
|
+
description: "Padding horizontal interno do badge.",
|
|
37
|
+
table: { category: "Spacing" },
|
|
38
|
+
},
|
|
39
|
+
py: {
|
|
40
|
+
control: "number",
|
|
41
|
+
description: "Padding vertical interno do badge.",
|
|
42
|
+
table: { category: "Spacing" },
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
parameters: {
|
|
46
|
+
docs: {
|
|
47
|
+
description: {
|
|
48
|
+
component: "Badge customizado que estende o Badge do Chakra UI com suporte a cores do tema personalizado. Aceita cores do tema (ex: 'primary.300', 'alert.success') e cores padrĂŁo do Chakra.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
backgrounds: {
|
|
52
|
+
default: "light",
|
|
53
|
+
values: [
|
|
54
|
+
{ name: "light", value: "#ffffff" },
|
|
55
|
+
{ name: "dark", value: "#000000" },
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
a11y: {
|
|
59
|
+
element: "#root",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export default meta;
|
|
64
|
+
/** 🎯 Exemplo básico do CustomBadge */
|
|
65
|
+
export const Default = {
|
|
66
|
+
args: {
|
|
67
|
+
children: "Badge PadrĂŁo",
|
|
68
|
+
colorScheme: "alert.success",
|
|
69
|
+
},
|
|
70
|
+
parameters: {
|
|
71
|
+
docs: {
|
|
72
|
+
source: {
|
|
73
|
+
code: `
|
|
74
|
+
import React from 'react';
|
|
75
|
+
import { CustomBadge } from './CustomBadge';
|
|
76
|
+
|
|
77
|
+
// Badge básico
|
|
78
|
+
const BasicBadge = () => {
|
|
79
|
+
return (
|
|
80
|
+
<CustomBadge colorScheme="alert.success">
|
|
81
|
+
Badge PadrĂŁo
|
|
82
|
+
</CustomBadge>
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// Badge com cores do tema
|
|
87
|
+
const ThemeBadge = () => {
|
|
88
|
+
return (
|
|
89
|
+
<CustomBadge colorScheme="primary.300">
|
|
90
|
+
Cores do Tema
|
|
91
|
+
</CustomBadge>
|
|
92
|
+
);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// Badge com cores padrĂŁo do Chakra
|
|
96
|
+
const ChakraBadge = () => {
|
|
97
|
+
return (
|
|
98
|
+
<CustomBadge colorScheme="green">
|
|
99
|
+
Cores do Chakra
|
|
100
|
+
</CustomBadge>
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
`,
|
|
104
|
+
language: "tsx",
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
/** 🎨 Exemplo com cores do tema */
|
|
110
|
+
export const ThemeColors = {
|
|
111
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83C\uDFA8 Cores do Tema" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o de badges usando as cores definidas no tema." })] }), _jsxs("div", { style: {
|
|
112
|
+
display: "grid",
|
|
113
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
114
|
+
gap: "16px",
|
|
115
|
+
}, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Primary" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "primary.100", children: "Primary 100" }), _jsx(CustomBadge, { colorScheme: "primary.200", children: "Primary 200" }), _jsx(CustomBadge, { colorScheme: "primary.300", children: "Primary 300" }), _jsx(CustomBadge, { colorScheme: "primary.400", children: "Primary 400" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Secondary" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "secondary.50", children: "Secondary 50" }), _jsx(CustomBadge, { colorScheme: "secondary.100", children: "Secondary 100" }), _jsx(CustomBadge, { colorScheme: "secondary.200", children: "Secondary 200" }), _jsx(CustomBadge, { colorScheme: "secondary.300", children: "Secondary 300" }), _jsx(CustomBadge, { colorScheme: "secondary.400", children: "Secondary 400" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Alert" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "alert.success", children: "Success" }), _jsx(CustomBadge, { colorScheme: "alert.error", children: "Error" }), _jsx(CustomBadge, { colorScheme: "alert.warning", children: "Warning" }), _jsx(CustomBadge, { colorScheme: "alert.info", children: "Info" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Background" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "background.brand", children: "Brand" }), _jsx(CustomBadge, { colorScheme: "background.primary", children: "Primary" }), _jsx(CustomBadge, { colorScheme: "background.secondary", children: "Secondary" }), _jsx(CustomBadge, { colorScheme: "background.tertiary", children: "Tertiary" })] })] })] })] })),
|
|
116
|
+
parameters: {
|
|
117
|
+
docs: {
|
|
118
|
+
description: {
|
|
119
|
+
story: `
|
|
120
|
+
## 🎨 Cores do Tema
|
|
121
|
+
|
|
122
|
+
Este exemplo demonstra como usar as cores definidas no tema do projeto.
|
|
123
|
+
|
|
124
|
+
### ✨ **Cores DisponĂveis:**
|
|
125
|
+
|
|
126
|
+
#### **Primary:**
|
|
127
|
+
- \`primary.100\` → Azul claro
|
|
128
|
+
- \`primary.200\` → Azul médio
|
|
129
|
+
- \`primary.300\` → Azul principal
|
|
130
|
+
- \`primary.400\` → Azul escuro
|
|
131
|
+
|
|
132
|
+
#### **Secondary:**
|
|
133
|
+
- \`secondary.50\` → Roxo muito claro
|
|
134
|
+
- \`secondary.100\` → Roxo claro
|
|
135
|
+
- \`secondary.200\` → Roxo médio
|
|
136
|
+
- \`secondary.300\` → Roxo principal
|
|
137
|
+
- \`secondary.400\` → Roxo escuro
|
|
138
|
+
|
|
139
|
+
#### **Alert:**
|
|
140
|
+
- \`alert.success\` → Verde de sucesso
|
|
141
|
+
- \`alert.error\` → Vermelho de erro
|
|
142
|
+
- \`alert.warning\` → Amarelo de aviso
|
|
143
|
+
- \`alert.info\` → Azul de informação
|
|
144
|
+
|
|
145
|
+
#### **Background:**
|
|
146
|
+
- \`background.brand\` → Cor da marca
|
|
147
|
+
- \`background.primary\` → Fundo primário
|
|
148
|
+
- \`background.secondary\` → Fundo secundário
|
|
149
|
+
- \`background.tertiary\` → Fundo terciário
|
|
150
|
+
|
|
151
|
+
### 📝 **Exemplo de Código:**
|
|
152
|
+
|
|
153
|
+
\`\`\`tsx
|
|
154
|
+
import { CustomBadge } from './CustomBadge';
|
|
155
|
+
|
|
156
|
+
// Cores primary
|
|
157
|
+
<CustomBadge colorScheme="primary.300">Primary 300</CustomBadge>
|
|
158
|
+
<CustomBadge colorScheme="primary.400">Primary 400</CustomBadge>
|
|
159
|
+
|
|
160
|
+
// Cores de alerta
|
|
161
|
+
<CustomBadge colorScheme="alert.success">Success</CustomBadge>
|
|
162
|
+
<CustomBadge colorScheme="alert.error">Error</CustomBadge>
|
|
163
|
+
|
|
164
|
+
// Cores de background
|
|
165
|
+
<CustomBadge colorScheme="background.brand">Brand</CustomBadge>
|
|
166
|
+
<CustomBadge colorScheme="background.primary">Primary</CustomBadge>
|
|
167
|
+
\`\`\`
|
|
168
|
+
`,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
/** 🎨 Exemplo com cores padrão do Chakra */
|
|
174
|
+
export const ChakraColors = {
|
|
175
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83C\uDFA8 Cores Padr\u00E3o do Chakra" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o de badges usando as cores padr\u00E3o do Chakra UI." })] }), _jsxs("div", { style: {
|
|
176
|
+
display: "grid",
|
|
177
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
178
|
+
gap: "16px",
|
|
179
|
+
}, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Cores B\u00E1sicas" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "blue", children: "Blue" }), _jsx(CustomBadge, { colorScheme: "green", children: "Green" }), _jsx(CustomBadge, { colorScheme: "red", children: "Red" }), _jsx(CustomBadge, { colorScheme: "yellow", children: "Yellow" }), _jsx(CustomBadge, { colorScheme: "purple", children: "Purple" }), _jsx(CustomBadge, { colorScheme: "pink", children: "Pink" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Cores Neutras" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "gray", children: "Gray" }), _jsx(CustomBadge, { colorScheme: "blackAlpha", children: "Black Alpha" }), _jsx(CustomBadge, { colorScheme: "whiteAlpha", children: "White Alpha" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Status" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "teal", children: "Teal" }), _jsx(CustomBadge, { colorScheme: "cyan", children: "Cyan" }), _jsx(CustomBadge, { colorScheme: "orange", children: "Orange" }), _jsx(CustomBadge, { colorScheme: "messenger", children: "Messenger" })] })] })] })] })),
|
|
180
|
+
parameters: {
|
|
181
|
+
docs: {
|
|
182
|
+
description: {
|
|
183
|
+
story: `
|
|
184
|
+
## 🎨 Cores Padrão do Chakra
|
|
185
|
+
|
|
186
|
+
Este exemplo demonstra como usar as cores padrĂŁo do Chakra UI.
|
|
187
|
+
|
|
188
|
+
### ✨ **Cores DisponĂveis:**
|
|
189
|
+
|
|
190
|
+
#### **Cores Básicas:**
|
|
191
|
+
- \`blue\` → Azul
|
|
192
|
+
- \`green\` → Verde
|
|
193
|
+
- \`red\` → Vermelho
|
|
194
|
+
- \`yellow\` → Amarelo
|
|
195
|
+
- \`purple\` → Roxo
|
|
196
|
+
- \`pink\` → Rosa
|
|
197
|
+
|
|
198
|
+
#### **Cores Neutras:**
|
|
199
|
+
- \`gray\` → Cinza
|
|
200
|
+
- \`blackAlpha\` → Preto transparente
|
|
201
|
+
- \`whiteAlpha\` → Branco transparente
|
|
202
|
+
|
|
203
|
+
#### **Cores de Status:**
|
|
204
|
+
- \`teal\` → Verde-azulado
|
|
205
|
+
- \`cyan\` → Ciano
|
|
206
|
+
- \`orange\` → Laranja
|
|
207
|
+
- \`messenger\` → Azul mensageiro
|
|
208
|
+
|
|
209
|
+
### 📝 **Exemplo de Código:**
|
|
210
|
+
|
|
211
|
+
\`\`\`tsx
|
|
212
|
+
import { CustomBadge } from './CustomBadge';
|
|
213
|
+
|
|
214
|
+
// Cores básicas
|
|
215
|
+
<CustomBadge colorScheme="blue">Blue</CustomBadge>
|
|
216
|
+
<CustomBadge colorScheme="green">Green</CustomBadge>
|
|
217
|
+
<CustomBadge colorScheme="red">Red</CustomBadge>
|
|
218
|
+
|
|
219
|
+
// Cores neutras
|
|
220
|
+
<CustomBadge colorScheme="gray">Gray</CustomBadge>
|
|
221
|
+
<CustomBadge colorScheme="blackAlpha">Black Alpha</CustomBadge>
|
|
222
|
+
|
|
223
|
+
// Cores de status
|
|
224
|
+
<CustomBadge colorScheme="teal">Teal</CustomBadge>
|
|
225
|
+
<CustomBadge colorScheme="orange">Orange</CustomBadge>
|
|
226
|
+
\`\`\`
|
|
227
|
+
`,
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
/** 🎨 Exemplo com diferentes variantes */
|
|
233
|
+
export const Variants = {
|
|
234
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83C\uDFA8 Diferentes Variantes" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o das diferentes variantes visuais do badge." })] }), _jsxs("div", { style: {
|
|
235
|
+
display: "grid",
|
|
236
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(250px, 1fr))",
|
|
237
|
+
gap: "20px",
|
|
238
|
+
}, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Solid" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "solid", colorScheme: "primary.300", children: "Primary" }), _jsx(CustomBadge, { variant: "solid", colorScheme: "alert.success", children: "Success" }), _jsx(CustomBadge, { variant: "solid", colorScheme: "alert.error", children: "Error" }), _jsx(CustomBadge, { variant: "solid", colorScheme: "blue", children: "Blue" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Subtle" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "subtle", colorScheme: "primary.300", children: "Primary" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "alert.success", children: "Success" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "alert.error", children: "Error" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "blue", children: "Blue" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Outline" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "outline", colorScheme: "primary.300", children: "Primary" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "alert.success", children: "Success" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "alert.error", children: "Error" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "blue", children: "Blue" })] })] })] })] })),
|
|
239
|
+
parameters: {
|
|
240
|
+
docs: {
|
|
241
|
+
description: {
|
|
242
|
+
story: `
|
|
243
|
+
## 🎨 Diferentes Variantes
|
|
244
|
+
|
|
245
|
+
Este exemplo demonstra as trĂŞs variantes visuais disponĂveis para o badge.
|
|
246
|
+
|
|
247
|
+
### ✨ **Variantes DisponĂveis:**
|
|
248
|
+
|
|
249
|
+
#### **Solid:**
|
|
250
|
+
- Fundo colorido com texto branco
|
|
251
|
+
- Mais destacado e chamativo
|
|
252
|
+
- Ideal para status importantes
|
|
253
|
+
|
|
254
|
+
#### **Subtle:**
|
|
255
|
+
- Fundo claro com texto colorido
|
|
256
|
+
- Mais sutil e elegante
|
|
257
|
+
- Ideal para informações secundárias
|
|
258
|
+
|
|
259
|
+
#### **Outline:**
|
|
260
|
+
- Borda colorida com fundo transparente
|
|
261
|
+
- Mais minimalista
|
|
262
|
+
- Ideal para ações ou tags
|
|
263
|
+
|
|
264
|
+
### 📝 **Exemplo de Código:**
|
|
265
|
+
|
|
266
|
+
\`\`\`tsx
|
|
267
|
+
import { CustomBadge } from './CustomBadge';
|
|
268
|
+
|
|
269
|
+
// Variante solid
|
|
270
|
+
<CustomBadge variant="solid" colorScheme="primary.300">
|
|
271
|
+
Primary
|
|
272
|
+
</CustomBadge>
|
|
273
|
+
|
|
274
|
+
// Variante subtle
|
|
275
|
+
<CustomBadge variant="subtle" colorScheme="alert.success">
|
|
276
|
+
Success
|
|
277
|
+
</CustomBadge>
|
|
278
|
+
|
|
279
|
+
// Variante outline
|
|
280
|
+
<CustomBadge variant="outline" colorScheme="alert.error">
|
|
281
|
+
Error
|
|
282
|
+
</CustomBadge>
|
|
283
|
+
\`\`\`
|
|
284
|
+
|
|
285
|
+
### 🎯 **Casos de Uso:**
|
|
286
|
+
|
|
287
|
+
- **Solid** → Status crĂticos, destaque importante
|
|
288
|
+
- **Subtle** → Informações secundárias, tags
|
|
289
|
+
- **Outline** → Ações, estados temporários
|
|
290
|
+
`,
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
/** 📏 Exemplo com diferentes tamanhos */
|
|
296
|
+
export const Sizes = {
|
|
297
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83D\uDCCF Diferentes Tamanhos" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o dos diferentes tamanhos dispon\u00EDveis para o badge." })] }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Small (sm)" }), _jsx(CustomBadge, { size: "sm", colorScheme: "primary.300", children: "Badge Pequeno" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Medium (md)" }), _jsx(CustomBadge, { size: "md", colorScheme: "primary.300", children: "Badge M\u00E9dio" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Large (lg)" }), _jsx(CustomBadge, { size: "lg", colorScheme: "primary.300", children: "Badge Grande" })] })] })] })),
|
|
298
|
+
parameters: {
|
|
299
|
+
docs: {
|
|
300
|
+
description: {
|
|
301
|
+
story: `
|
|
302
|
+
## 📏 Diferentes Tamanhos
|
|
303
|
+
|
|
304
|
+
Este exemplo demonstra os trĂŞs tamanhos disponĂveis para o badge.
|
|
305
|
+
|
|
306
|
+
### ✨ **Tamanhos DisponĂveis:**
|
|
307
|
+
|
|
308
|
+
- **Small (sm)** → Tamanho pequeno, ideal para tags
|
|
309
|
+
- **Medium (md)** → Tamanho médio, padrão
|
|
310
|
+
- **Large (lg)** → Tamanho grande, para destaque
|
|
311
|
+
|
|
312
|
+
### 📝 **Exemplo de Código:**
|
|
313
|
+
|
|
314
|
+
\`\`\`tsx
|
|
315
|
+
import { CustomBadge } from './CustomBadge';
|
|
316
|
+
|
|
317
|
+
// Tamanho pequeno
|
|
318
|
+
<CustomBadge size="sm" colorScheme="primary.300">
|
|
319
|
+
Badge Pequeno
|
|
320
|
+
</CustomBadge>
|
|
321
|
+
|
|
322
|
+
// Tamanho médio (padrão)
|
|
323
|
+
<CustomBadge size="md" colorScheme="primary.300">
|
|
324
|
+
Badge Médio
|
|
325
|
+
</CustomBadge>
|
|
326
|
+
|
|
327
|
+
// Tamanho grande
|
|
328
|
+
<CustomBadge size="lg" colorScheme="primary.300">
|
|
329
|
+
Badge Grande
|
|
330
|
+
</CustomBadge>
|
|
331
|
+
\`\`\`
|
|
332
|
+
|
|
333
|
+
### 🎯 **Casos de Uso:**
|
|
334
|
+
|
|
335
|
+
- **Small** → Tags, categorias, status secundários
|
|
336
|
+
- **Medium** → Status principais, informações gerais
|
|
337
|
+
- **Large** → Destaque, alertas importantes
|
|
338
|
+
`,
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
};
|
|
343
|
+
/** 🎯 Exemplo com casos de uso práticos */
|
|
344
|
+
export const UseCases = {
|
|
345
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83C\uDFAF Casos de Uso Pr\u00E1ticos" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o de como usar o badge em diferentes contextos." })] }), _jsxs("div", { style: {
|
|
346
|
+
display: "grid",
|
|
347
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(300px, 1fr))",
|
|
348
|
+
gap: "20px",
|
|
349
|
+
}, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Status de Pedido" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "alert.success", children: "Aprovado" }), _jsx(CustomBadge, { colorScheme: "alert.warning", children: "Pendente" }), _jsx(CustomBadge, { colorScheme: "alert.error", children: "Cancelado" }), _jsx(CustomBadge, { colorScheme: "alert.info", children: "Em Processamento" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Prioridade de Tarefa" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "alert.error", children: "Alta" }), _jsx(CustomBadge, { colorScheme: "alert.warning", children: "M\u00E9dia" }), _jsx(CustomBadge, { colorScheme: "alert.success", children: "Baixa" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Categorias" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "subtle", colorScheme: "primary.300", children: "Frontend" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "secondary.300", children: "Backend" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "blue", children: "Mobile" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "purple", children: "Design" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Tags" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "outline", colorScheme: "primary.300", children: "React" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "secondary.300", children: "TypeScript" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "blue", children: "Chakra UI" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "green", children: "Storybook" })] })] })] })] })),
|
|
350
|
+
parameters: {
|
|
351
|
+
docs: {
|
|
352
|
+
description: {
|
|
353
|
+
story: `
|
|
354
|
+
## 🎯 Casos de Uso Práticos
|
|
355
|
+
|
|
356
|
+
Este exemplo demonstra como usar o badge em diferentes contextos reais.
|
|
357
|
+
|
|
358
|
+
### ✨ **Contextos Demonstrados:**
|
|
359
|
+
|
|
360
|
+
#### **Status de Pedido:**
|
|
361
|
+
- \`alert.success\` → Aprovado
|
|
362
|
+
- \`alert.warning\` → Pendente
|
|
363
|
+
- \`alert.error\` → Cancelado
|
|
364
|
+
- \`alert.info\` → Em Processamento
|
|
365
|
+
|
|
366
|
+
#### **Prioridade de Tarefa:**
|
|
367
|
+
- \`alert.error\` → Alta
|
|
368
|
+
- \`alert.warning\` → Média
|
|
369
|
+
- \`alert.success\` → Baixa
|
|
370
|
+
|
|
371
|
+
#### **Categorias:**
|
|
372
|
+
- \`primary.300\` → Frontend
|
|
373
|
+
- \`secondary.300\` → Backend
|
|
374
|
+
- \`blue\` → Mobile
|
|
375
|
+
- \`purple\` → Design
|
|
376
|
+
|
|
377
|
+
#### **Tags:**
|
|
378
|
+
- \`primary.300\` → React
|
|
379
|
+
- \`secondary.300\` → TypeScript
|
|
380
|
+
- \`blue\` → Chakra UI
|
|
381
|
+
- \`green\` → Storybook
|
|
382
|
+
|
|
383
|
+
### 📝 **Exemplo de Código:**
|
|
384
|
+
|
|
385
|
+
\`\`\`tsx
|
|
386
|
+
import { CustomBadge } from './CustomBadge';
|
|
387
|
+
|
|
388
|
+
// Status de pedido
|
|
389
|
+
<CustomBadge colorScheme="alert.success">Aprovado</CustomBadge>
|
|
390
|
+
<CustomBadge colorScheme="alert.warning">Pendente</CustomBadge>
|
|
391
|
+
|
|
392
|
+
// Prioridade de tarefa
|
|
393
|
+
<CustomBadge colorScheme="alert.error">Alta</CustomBadge>
|
|
394
|
+
<CustomBadge colorScheme="alert.success">Baixa</CustomBadge>
|
|
395
|
+
|
|
396
|
+
// Categorias
|
|
397
|
+
<CustomBadge variant="subtle" colorScheme="primary.300">
|
|
398
|
+
Frontend
|
|
399
|
+
</CustomBadge>
|
|
400
|
+
|
|
401
|
+
// Tags
|
|
402
|
+
<CustomBadge variant="outline" colorScheme="primary.300">
|
|
403
|
+
React
|
|
404
|
+
</CustomBadge>
|
|
405
|
+
\`\`\`
|
|
406
|
+
|
|
407
|
+
### 🎨 **Dicas de Design:**
|
|
408
|
+
|
|
409
|
+
1. **Use cores consistentes** → Mantenha padrões em toda a aplicação
|
|
410
|
+
2. **Combine variantes** → Solid para destaque, subtle para categorias
|
|
411
|
+
3. **Considere acessibilidade** → Contraste adequado entre texto e fundo
|
|
412
|
+
4. **Seja conciso** → Texto curto e direto
|
|
413
|
+
`,
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
/** 📏 Exemplo com diferentes paddings */
|
|
419
|
+
export const PaddingExamples = {
|
|
420
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83D\uDCCF Diferentes Paddings" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o de como ajustar o padding interno do badge." })] }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Padding Padr\u00E3o (px=3, py=1)" }), _jsx(CustomBadge, { colorScheme: "primary.300", children: "Badge com Padding Padr\u00E3o" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Padding Pequeno (px=2, py=0.5)" }), _jsx(CustomBadge, { colorScheme: "primary.300", px: 2, py: 0.5, children: "Badge com Padding Pequeno" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Padding M\u00E9dio (px=4, py=1.5)" }), _jsx(CustomBadge, { colorScheme: "primary.300", px: 4, py: 1.5, children: "Badge com Padding M\u00E9dio" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Padding Grande (px=6, py=2)" }), _jsx(CustomBadge, { colorScheme: "primary.300", px: 6, py: 2, children: "Badge com Padding Grande" })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Padding Extra Grande (px=8, py=3)" }), _jsx(CustomBadge, { colorScheme: "primary.300", px: 8, py: 3, children: "Badge com Padding Extra Grande" })] })] })] })),
|
|
421
|
+
parameters: {
|
|
422
|
+
docs: {
|
|
423
|
+
description: {
|
|
424
|
+
story: `
|
|
425
|
+
## 📏 Diferentes Paddings
|
|
426
|
+
|
|
427
|
+
Este exemplo demonstra como ajustar o padding interno do badge.
|
|
428
|
+
|
|
429
|
+
### ✨ **Propriedades de Padding:**
|
|
430
|
+
|
|
431
|
+
- **px** → Padding horizontal (esquerda e direita)
|
|
432
|
+
- **py** → Padding vertical (cima e baixo)
|
|
433
|
+
|
|
434
|
+
### 📝 **Exemplo de Código:**
|
|
435
|
+
|
|
436
|
+
\`\`\`tsx
|
|
437
|
+
import { CustomBadge } from './CustomBadge';
|
|
438
|
+
|
|
439
|
+
// Padding padrĂŁo
|
|
440
|
+
<CustomBadge colorScheme="primary.300">
|
|
441
|
+
Badge com Padding PadrĂŁo
|
|
442
|
+
</CustomBadge>
|
|
443
|
+
|
|
444
|
+
// Padding pequeno
|
|
445
|
+
<CustomBadge colorScheme="primary.300" px={2} py={0.5}>
|
|
446
|
+
Badge com Padding Pequeno
|
|
447
|
+
</CustomBadge>
|
|
448
|
+
|
|
449
|
+
// Padding médio
|
|
450
|
+
<CustomBadge colorScheme="primary.300" px={4} py={1.5}>
|
|
451
|
+
Badge com Padding Médio
|
|
452
|
+
</CustomBadge>
|
|
453
|
+
|
|
454
|
+
// Padding grande
|
|
455
|
+
<CustomBadge colorScheme="primary.300" px={6} py={2}>
|
|
456
|
+
Badge com Padding Grande
|
|
457
|
+
</CustomBadge>
|
|
458
|
+
|
|
459
|
+
// Padding extra grande
|
|
460
|
+
<CustomBadge colorScheme="primary.300" px={8} py={3}>
|
|
461
|
+
Badge com Padding Extra Grande
|
|
462
|
+
</CustomBadge>
|
|
463
|
+
\`\`\`
|
|
464
|
+
|
|
465
|
+
### 🎯 **Valores Recomendados:**
|
|
466
|
+
|
|
467
|
+
- **Compacto** → \`px={2}, py={0.5}\`
|
|
468
|
+
- **Padrão** → \`px={3}, py={1}\` (valor padrão)
|
|
469
|
+
- **Confortável** → \`px={4}, py={1.5}\`
|
|
470
|
+
- **Espaçoso** → \`px={6}, py={2}\`
|
|
471
|
+
- **Extra espaçoso** → \`px={8}, py={3}\`
|
|
472
|
+
|
|
473
|
+
### đź’ˇ **Dicas:**
|
|
474
|
+
|
|
475
|
+
1. **Use valores proporcionais** → Mantenha px e py em proporção
|
|
476
|
+
2. **Considere o conteúdo** → Texto longo pode precisar de mais px
|
|
477
|
+
3. **Teste visualmente** → Ajuste conforme necessário
|
|
478
|
+
4. **Mantenha consistência** → Use os mesmos valores em badges similares
|
|
479
|
+
`,
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
};
|
|
484
|
+
/** đź”§ Exemplo com todas as propriedades */
|
|
485
|
+
export const AllProps = {
|
|
486
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "20px" }, children: [_jsxs("div", { children: [_jsx("h3", { style: { marginBottom: "10px", color: "#333" }, children: "\uD83D\uDD27 Todas as Propriedades" }), _jsx("p", { style: { fontSize: "14px", color: "#666", marginBottom: "20px" }, children: "Demonstra\u00E7\u00E3o de todas as propriedades dispon\u00EDveis no CustomBadge." })] }), _jsxs("div", { style: {
|
|
487
|
+
display: "grid",
|
|
488
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(300px, 1fr))",
|
|
489
|
+
gap: "20px",
|
|
490
|
+
}, children: [_jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Cores do Tema" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "primary.300", children: "Primary 300" }), _jsx(CustomBadge, { colorScheme: "secondary.200", children: "Secondary 200" }), _jsx(CustomBadge, { colorScheme: "alert.success", children: "Alert Success" }), _jsx(CustomBadge, { colorScheme: "background.brand", children: "Background Brand" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Cores do Chakra" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { colorScheme: "blue", children: "Blue" }), _jsx(CustomBadge, { colorScheme: "green", children: "Green" }), _jsx(CustomBadge, { colorScheme: "red", children: "Red" }), _jsx(CustomBadge, { colorScheme: "purple", children: "Purple" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Variantes" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { variant: "solid", colorScheme: "primary.300", children: "Solid" }), _jsx(CustomBadge, { variant: "subtle", colorScheme: "primary.300", children: "Subtle" }), _jsx(CustomBadge, { variant: "outline", colorScheme: "primary.300", children: "Outline" })] })] }), _jsxs("div", { children: [_jsx("h4", { style: { marginBottom: "8px", color: "#555" }, children: "Tamanhos" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(CustomBadge, { size: "sm", colorScheme: "primary.300", children: "Small" }), _jsx(CustomBadge, { size: "md", colorScheme: "primary.300", children: "Medium" }), _jsx(CustomBadge, { size: "lg", colorScheme: "primary.300", children: "Large" })] })] })] })] })),
|
|
491
|
+
parameters: {
|
|
492
|
+
docs: {
|
|
493
|
+
description: {
|
|
494
|
+
story: `
|
|
495
|
+
## đź”§ Todas as Propriedades
|
|
496
|
+
|
|
497
|
+
Este exemplo demonstra todas as propriedades disponĂveis no CustomBadge.
|
|
498
|
+
|
|
499
|
+
### ✨ **Propriedades Demonstradas:**
|
|
500
|
+
|
|
501
|
+
#### **colorScheme:**
|
|
502
|
+
- **Cores do Tema** → \`primary.300\`, \`secondary.200\`, \`alert.success\`
|
|
503
|
+
- **Cores do Chakra** → \`blue\`, \`green\`, \`red\`, \`purple\`
|
|
504
|
+
|
|
505
|
+
#### **variant:**
|
|
506
|
+
- **solid** → Fundo colorido com texto branco
|
|
507
|
+
- **subtle** → Fundo claro com texto colorido
|
|
508
|
+
- **outline** → Borda colorida com fundo transparente
|
|
509
|
+
|
|
510
|
+
#### **size:**
|
|
511
|
+
- **sm** → Tamanho pequeno
|
|
512
|
+
- **md** → Tamanho médio (padrão)
|
|
513
|
+
- **lg** → Tamanho grande
|
|
514
|
+
|
|
515
|
+
### 📝 **Exemplo de Código:**
|
|
516
|
+
|
|
517
|
+
\`\`\`tsx
|
|
518
|
+
import { CustomBadge } from './CustomBadge';
|
|
519
|
+
|
|
520
|
+
// Cores do tema
|
|
521
|
+
<CustomBadge colorScheme="primary.300">Primary 300</CustomBadge>
|
|
522
|
+
<CustomBadge colorScheme="alert.success">Alert Success</CustomBadge>
|
|
523
|
+
|
|
524
|
+
// Cores do Chakra
|
|
525
|
+
<CustomBadge colorScheme="blue">Blue</CustomBadge>
|
|
526
|
+
<CustomBadge colorScheme="green">Green</CustomBadge>
|
|
527
|
+
|
|
528
|
+
// Variantes
|
|
529
|
+
<CustomBadge variant="solid" colorScheme="primary.300">Solid</CustomBadge>
|
|
530
|
+
<CustomBadge variant="subtle" colorScheme="primary.300">Subtle</CustomBadge>
|
|
531
|
+
<CustomBadge variant="outline" colorScheme="primary.300">Outline</CustomBadge>
|
|
532
|
+
|
|
533
|
+
// Tamanhos
|
|
534
|
+
<CustomBadge size="sm" colorScheme="primary.300">Small</CustomBadge>
|
|
535
|
+
<CustomBadge size="md" colorScheme="primary.300">Medium</CustomBadge>
|
|
536
|
+
<CustomBadge size="lg" colorScheme="primary.300">Large</CustomBadge>
|
|
537
|
+
\`\`\`
|
|
538
|
+
|
|
539
|
+
### 🎯 **Compatibilidade:**
|
|
540
|
+
|
|
541
|
+
O CustomBadge Ă© 100% compatĂvel com o Badge do Chakra UI, mantendo todas as propriedades originais e adicionando suporte a cores do tema.
|
|
542
|
+
`,
|
|
543
|
+
},
|
|
544
|
+
},
|
|
545
|
+
},
|
|
546
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { CustomButtonProps } from "../../../components/CustomButton";
|
|
3
|
+
declare const meta: Meta<CustomButtonProps>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<CustomButtonProps>;
|
|
6
|
+
/** 🎯 Exemplo básico do CustomButton */
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
/** 🎯 Exemplo com diferentes variantes */
|
|
9
|
+
export declare const Variants: Story;
|
|
10
|
+
/** 🎯 Exemplo com Ăcones */
|
|
11
|
+
export declare const WithIcons: Story;
|
|
12
|
+
/** 🎯 Exemplo com estados especiais */
|
|
13
|
+
export declare const States: Story;
|
|
14
|
+
/** 🎯 Exemplo com cenários reais */
|
|
15
|
+
export declare const RealWorldScenarios: Story;
|
|
16
|
+
/** 🔗 Exemplo de integração com outros componentes custom */
|
|
17
|
+
export declare const IntegrationWithCustomComponents: Story;
|