@axzydev/axzy_ui_system 1.4.8 → 1.5.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/README.md +2 -11
- package/dist/index.cjs +1826 -1351
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +115 -14
- package/dist/index.d.ts +115 -14
- package/dist/index.js +1481 -1010
- package/dist/index.js.map +1 -1
- package/dist/layered.css +1 -1
- package/package.json +3 -16
- package/src/App.tsx +90 -73
- package/src/components/atoms/badget/badget.tsx +23 -5
- package/src/components/atoms/chip/chip.tsx +3 -1
- package/src/components/atoms/image/image.tsx +3 -1
- package/src/components/atoms/input/input.tsx +8 -5
- package/src/components/atoms/loader/loader.tsx +3 -1
- package/src/components/atoms/slide/slide.props.ts +12 -0
- package/src/components/atoms/slide/slide.tsx +3 -0
- package/src/components/molecules/alert/alert.tsx +3 -1
- package/src/components/molecules/breadcrumbs/breadcrumbs.tsx +3 -1
- package/src/components/molecules/calendar/calendar.tsx +9 -6
- package/src/components/molecules/card/card.tsx +5 -2
- package/src/components/molecules/chip-input/chip-input.tsx +9 -7
- package/src/components/molecules/date-picker/datePicker.tsx +9 -9
- package/src/components/molecules/dropdown-menu/dropdown-menu.props.ts +1 -1
- package/src/components/molecules/dropdown-menu/dropdown-menu.tsx +6 -3
- package/src/components/molecules/field/field.tsx +3 -1
- package/src/components/molecules/form-header/form-header.tsx +3 -1
- package/src/components/molecules/line-bar-chart/line-bar-chart.props.ts +2 -2
- package/src/components/molecules/line-bar-chart/line-bar-chart.tsx +20 -15
- package/src/components/molecules/masked-input/masked-input.tsx +3 -1
- package/src/components/molecules/multi-select/multi-select.tsx +12 -9
- package/src/components/molecules/pagination/pagination.tsx +11 -5
- package/src/components/molecules/search-select/search-select.tsx +11 -9
- package/src/components/molecules/select/select.tsx +6 -4
- package/src/components/molecules/stepper/stepper.tsx +6 -4
- package/src/components/molecules/table/table.tsx +30 -28
- package/src/components/molecules/time-picker/timePicker.tsx +8 -6
- package/src/components/molecules/wysiwyg/wysiwyg.tsx +23 -12
- package/src/components/organisms/confirm-dialog/confirm-dialog.props.ts +4 -4
- package/src/components/organisms/confirm-dialog/confirm-dialog.tsx +16 -8
- package/src/components/organisms/data-table/dataTable.tsx +31 -25
- package/src/components/organisms/dialog/dialog.tsx +3 -0
- package/src/components/organisms/drawer/drawer.tsx +3 -0
- package/src/components/organisms/dropfile/dropfile.tsx +19 -17
- package/src/components/organisms/form-builder/fieldRenderer.tsx +4 -2
- package/src/components/organisms/navbar/navbar.tsx +4 -2
- package/src/components/organisms/page-header/page-header.tsx +3 -1
- package/src/components/organisms/searchTable/components/PaginationControls.tsx +8 -6
- package/src/components/organisms/searchTable/components/PaginationInfo.tsx +3 -1
- package/src/components/organisms/searchTable/components/SearchAndSortBar.tsx +7 -5
- package/src/components/organisms/searchTable/components/SearchInput.tsx +4 -2
- package/src/components/organisms/searchTable/components/SortButton.tsx +13 -11
- package/src/components/organisms/searchTable/components/TableEmptyState.tsx +4 -2
- package/src/components/organisms/searchTable/components/TableRow.tsx +6 -4
- package/src/components/organisms/searchTable/searchTable.tsx +4 -2
- package/src/components/organisms/sidebar/sidebar.props.ts +1 -1
- package/src/components/organisms/sidebar/sidebar.tsx +9 -4
- package/src/components/organisms/toast/toast.tsx +3 -1
- package/src/components/organisms/topbar/topbar.tsx +4 -2
- package/src/components/templates/page/page.props.ts +4 -4
- package/src/components/templates/page/page.tsx +6 -4
- package/src/components/theme-provider/themeProvider.tsx +28 -17
- package/src/dev.css +61 -2
- package/src/global.d.ts +10 -0
- package/src/i18n/context.ts +9 -0
- package/src/i18n/index.ts +22 -0
- package/src/i18n/locales/en.ts +163 -0
- package/src/i18n/locales/es.ts +165 -0
- package/src/i18n/provider.tsx +44 -0
- package/src/i18n/translator.ts +82 -0
- package/src/i18n/types.ts +54 -0
- package/src/i18n/useITTranslation.ts +20 -0
- package/src/index.css +0 -1
- package/src/index.ts +7 -1
- package/src/sandbox/LandingShowcase.tsx +224 -580
- package/src/sandbox/NotFoundShowcase.tsx +51 -36
- package/src/sandbox/TopbarSearch.tsx +6 -4
- package/src/sandbox/controls.tsx +180 -0
- package/src/sandbox/i18n.ts +1939 -0
- package/src/sandbox/icons.tsx +25 -0
- package/src/sandbox/locale.tsx +72 -0
- package/src/sandbox/ui.tsx +474 -0
- package/src/sandbox/useHashRoute.ts +46 -10
- package/src/showcases/DataShowcases.tsx +103 -87
- package/src/showcases/FeedbackShowcases.tsx +37 -30
- package/src/showcases/FormShowcases.tsx +303 -215
- package/src/showcases/GettingStartedShowcase.tsx +151 -145
- package/src/showcases/HelpShowcase.tsx +126 -128
- package/src/showcases/HomeShowcase.tsx +678 -482
- package/src/showcases/LayoutPrimitivesShowcases.tsx +129 -114
- package/src/showcases/NavigationShowcases.tsx +45 -37
- package/src/showcases/PageShowcases.tsx +171 -152
- package/src/showcases/ProductoDetalle.tsx +272 -129
- package/src/showcases/ShowcaseLayout.tsx +256 -219
- package/src/showcases/SizesShowcase.tsx +123 -64
- package/src/showcases/StructureShowcases.tsx +203 -138
- package/src/showcases/portfolioUi.tsx +153 -0
- package/src/showcases/techIcons.ts +3 -0
- package/src/utils/table.utils.ts +10 -2
- package/src/components/atoms/avatar/avatar.doc.mdx +0 -48
- package/src/components/atoms/avatar/avatar.stories.tsx +0 -64
- package/src/components/atoms/badget/badget.doc.mdx +0 -46
- package/src/components/atoms/badget/badget.stories.tsx +0 -75
- package/src/components/atoms/button/button.doc.mdx +0 -59
- package/src/components/atoms/button/button.stories.tsx +0 -173
- package/src/components/atoms/checkbox/checkbox.doc.mdx +0 -54
- package/src/components/atoms/checkbox/checkbox.stories.tsx +0 -53
- package/src/components/atoms/chip/chip.doc.mdx +0 -47
- package/src/components/atoms/chip/chip.stories.tsx +0 -64
- package/src/components/atoms/divider/divider.doc.mdx +0 -42
- package/src/components/atoms/divider/divider.stories.tsx +0 -33
- package/src/components/atoms/flex/flex.doc.mdx +0 -59
- package/src/components/atoms/flex/flex.stories.tsx +0 -70
- package/src/components/atoms/grid/grid.doc.mdx +0 -54
- package/src/components/atoms/grid/grid.stories.tsx +0 -71
- package/src/components/atoms/image/image.doc.mdx +0 -44
- package/src/components/atoms/image/image.stories.tsx +0 -48
- package/src/components/atoms/input/input.doc.mdx +0 -70
- package/src/components/atoms/input/input.stories.tsx +0 -113
- package/src/components/atoms/input-number/input-number.doc.mdx +0 -74
- package/src/components/atoms/input-number/input-number.stories.tsx +0 -111
- package/src/components/atoms/loader/loader.doc.mdx +0 -43
- package/src/components/atoms/loader/loader.stories.tsx +0 -104
- package/src/components/atoms/popover/popover.doc.mdx +0 -53
- package/src/components/atoms/popover/popover.stories.tsx +0 -24
- package/src/components/atoms/progress/progress.doc.mdx +0 -48
- package/src/components/atoms/progress/progress.stories.tsx +0 -39
- package/src/components/atoms/radio/radio.doc.mdx +0 -62
- package/src/components/atoms/radio/radio.stories.tsx +0 -48
- package/src/components/atoms/segmented-control/segmented-control.doc.mdx +0 -60
- package/src/components/atoms/segmented-control/segmented-control.stories.tsx +0 -62
- package/src/components/atoms/skeleton/skeleton.doc.mdx +0 -43
- package/src/components/atoms/skeleton/skeleton.stories.tsx +0 -29
- package/src/components/atoms/slide/slide.doc.mdx +0 -46
- package/src/components/atoms/slide/slide.stories.tsx +0 -120
- package/src/components/atoms/slider/slider.doc.mdx +0 -49
- package/src/components/atoms/slider/slider.stories.tsx +0 -29
- package/src/components/atoms/stack/stack.doc.mdx +0 -126
- package/src/components/atoms/stack/stack.stories.tsx +0 -283
- package/src/components/atoms/text/text.doc.mdx +0 -41
- package/src/components/atoms/text/text.stories.tsx +0 -66
- package/src/components/atoms/textarea/textarea.doc.mdx +0 -64
- package/src/components/atoms/textarea/textarea.stories.tsx +0 -26
- package/src/components/atoms/tooltip/tooltip.doc.mdx +0 -47
- package/src/components/atoms/tooltip/tooltip.stories.tsx +0 -19
- package/src/components/isolation/isolation.stories.tsx +0 -202
- package/src/components/molecules/accordion/accordion.doc.mdx +0 -47
- package/src/components/molecules/accordion/accordion.stories.tsx +0 -68
- package/src/components/molecules/alert/alert.doc.mdx +0 -48
- package/src/components/molecules/alert/alert.stories.tsx +0 -40
- package/src/components/molecules/breadcrumbs/breadcrumbs.doc.mdx +0 -57
- package/src/components/molecules/breadcrumbs/breadcrumbs.stories.tsx +0 -20
- package/src/components/molecules/calendar/calendar.doc.mdx +0 -76
- package/src/components/molecules/calendar/calendar.stories.tsx +0 -90
- package/src/components/molecules/card/card.doc.mdx +0 -54
- package/src/components/molecules/card/card.stories.tsx +0 -57
- package/src/components/molecules/chip-input/chip-input.doc.mdx +0 -44
- package/src/components/molecules/chip-input/chip-input.stories.tsx +0 -52
- package/src/components/molecules/date-picker/date-picker.doc.mdx +0 -65
- package/src/components/molecules/date-picker/date-picker.stories.tsx +0 -88
- package/src/components/molecules/dropdown-menu/dropdown-menu.doc.mdx +0 -46
- package/src/components/molecules/dropdown-menu/dropdown-menu.stories.tsx +0 -41
- package/src/components/molecules/empty-state/empty-state.doc.mdx +0 -50
- package/src/components/molecules/empty-state/empty-state.stories.tsx +0 -19
- package/src/components/molecules/field/field.doc.mdx +0 -43
- package/src/components/molecules/field/field.stories.tsx +0 -42
- package/src/components/molecules/form-header/form-header.doc.mdx +0 -38
- package/src/components/molecules/form-header/form-header.stories.tsx +0 -52
- package/src/components/molecules/masked-input/masked-input.doc.mdx +0 -78
- package/src/components/molecules/masked-input/masked-input.stories.tsx +0 -126
- package/src/components/molecules/multi-select/multi-select.doc.mdx +0 -55
- package/src/components/molecules/multi-select/multi-select.stories.tsx +0 -59
- package/src/components/molecules/pagination/pagination.doc.mdx +0 -62
- package/src/components/molecules/pagination/pagination.stories.tsx +0 -110
- package/src/components/molecules/search-select/search-select.doc.mdx +0 -77
- package/src/components/molecules/search-select/search-select.stories.tsx +0 -146
- package/src/components/molecules/select/select.doc.mdx +0 -75
- package/src/components/molecules/select/select.stories.tsx +0 -85
- package/src/components/molecules/stat-card/stat-card.doc.mdx +0 -48
- package/src/components/molecules/stat-card/stat-card.stories.tsx +0 -40
- package/src/components/molecules/stepper/stepper.doc.mdx +0 -54
- package/src/components/molecules/stepper/stepper.stories.tsx +0 -154
- package/src/components/molecules/table/table.doc.mdx +0 -140
- package/src/components/molecules/table/table.stories.tsx +0 -402
- package/src/components/molecules/tabs/tabs.doc.mdx +0 -52
- package/src/components/molecules/tabs/tabs.stories.tsx +0 -31
- package/src/components/molecules/time-picker/timePicker.doc.mdx +0 -68
- package/src/components/molecules/time-picker/timePicker.stories.tsx +0 -130
- package/src/components/molecules/wysiwyg/wysiwyg.stories.tsx +0 -95
- package/src/components/organisms/confirm-dialog/confirm-dialog.doc.mdx +0 -60
- package/src/components/organisms/confirm-dialog/confirm-dialog.stories.tsx +0 -32
- package/src/components/organisms/data-table/ITDataTable.doc.mdx +0 -132
- package/src/components/organisms/data-table/ITDataTable.stories.tsx +0 -353
- package/src/components/organisms/dialog/dialog.doc.mdx +0 -54
- package/src/components/organisms/dialog/dialog.stories.tsx +0 -126
- package/src/components/organisms/drawer/drawer.doc.mdx +0 -59
- package/src/components/organisms/drawer/drawer.stories.tsx +0 -40
- package/src/components/organisms/dropfile/dropfile.doc.mdx +0 -74
- package/src/components/organisms/dropfile/dropfile.stories.tsx +0 -93
- package/src/components/organisms/form-builder/formBuilder.doc.mdx +0 -251
- package/src/components/organisms/form-builder/formBuilder.stories.tsx +0 -914
- package/src/components/organisms/navbar/navbar.doc.mdx +0 -77
- package/src/components/organisms/navbar/navbar.stories.tsx +0 -83
- package/src/components/organisms/page-header/page-header.doc.mdx +0 -54
- package/src/components/organisms/page-header/page-header.stories.tsx +0 -74
- package/src/components/organisms/searchTable/searchTable.doc.mdx +0 -79
- package/src/components/organisms/searchTable/searchTable.stories.tsx +0 -73
- package/src/components/organisms/sidebar/sidebar.doc.mdx +0 -176
- package/src/components/organisms/sidebar/sidebar.stories.tsx +0 -234
- package/src/components/organisms/toast/toast.doc.mdx +0 -50
- package/src/components/organisms/toast/toast.stories.tsx +0 -137
- package/src/components/organisms/topbar/topbar.doc.mdx +0 -72
- package/src/components/organisms/topbar/topbar.stories.tsx +0 -79
- package/src/components/organisms/triple-filter/tripleFilter.doc.mdx +0 -62
- package/src/components/organisms/triple-filter/tripleFilter.stories.tsx +0 -31
- package/src/components/templates/layout/layout.doc.mdx +0 -53
- package/src/components/templates/layout/layout.stories.tsx +0 -113
- package/src/components/templates/page/page.doc.mdx +0 -86
- package/src/components/templates/page/page.stories.tsx +0 -97
- package/src/components/theme-provider/themeProvider.doc.mdx +0 -85
- package/src/components/theme-provider/themeProvider.stories.tsx +0 -58
|
@@ -1,76 +1,47 @@
|
|
|
1
|
-
import { FaNpm, FaReact
|
|
1
|
+
import { FaCube, FaNpm, FaReact } from "react-icons/fa";
|
|
2
2
|
import { SiTailwindcss, SiTypescript, SiVite } from "react-icons/si";
|
|
3
|
-
import { useState } from "react";
|
|
4
|
-
import ITBadget from "../components/atoms/badget/badget";
|
|
5
|
-
import ITButton from "../components/atoms/button/button";
|
|
6
|
-
import ITCard from "../components/molecules/card/card";
|
|
7
3
|
import ITFlex from "../components/atoms/flex/flex";
|
|
8
4
|
import ITGrid from "../components/atoms/grid/grid";
|
|
9
|
-
import
|
|
10
|
-
|
|
5
|
+
import {
|
|
6
|
+
BloqueCodigo,
|
|
7
|
+
BotonCopiar,
|
|
8
|
+
EnlaceMono,
|
|
9
|
+
EYEBROW,
|
|
10
|
+
Etiqueta,
|
|
11
|
+
FILETE,
|
|
12
|
+
SectionHeading,
|
|
13
|
+
} from "@/sandbox/ui";
|
|
14
|
+
import { useITTranslation } from "@/i18n";
|
|
11
15
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
return (
|
|
15
|
-
<ITButton
|
|
16
|
-
variant="text"
|
|
17
|
-
color="gray"
|
|
18
|
-
size="sm"
|
|
19
|
-
onClick={() => { navigator.clipboard.writeText(text); setCopied(true); setTimeout(() => setCopied(false), 2000); }}
|
|
20
|
-
>
|
|
21
|
-
<ITFlex align="center" gap={1.5}>
|
|
22
|
-
{copied ? <FaCheck size={10} className="text-emerald-400" /> : <FaNpm size={10} />}
|
|
23
|
-
{copied ? "Copiado" : "Copiar"}
|
|
24
|
-
</ITFlex>
|
|
25
|
-
</ITButton>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
16
|
+
const INSTALL_CMD = "pnpm add @axzydev/axzy_ui_system";
|
|
17
|
+
const REPO_URL = "https://github.com/maag070208/AXZY_UI_SYSTEM";
|
|
28
18
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
const codeFileColors = [
|
|
45
|
-
"bg-emerald-50 dark:bg-emerald-950/30",
|
|
46
|
-
"bg-blue-50 dark:bg-blue-950/30",
|
|
47
|
-
"bg-cyan-50 dark:bg-cyan-950/30",
|
|
48
|
-
"bg-violet-50 dark:bg-violet-950/30",
|
|
49
|
-
"bg-amber-50 dark:bg-amber-950/30",
|
|
50
|
-
"bg-rose-50 dark:bg-rose-950/30",
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const stepStyles = [
|
|
54
|
-
{ iconBg: "bg-emerald-100 dark:bg-emerald-950/40 text-emerald-600 dark:text-emerald-400" },
|
|
55
|
-
{ iconBg: "bg-blue-100 dark:bg-blue-950/40 text-blue-600 dark:text-blue-400" },
|
|
56
|
-
{ iconBg: "bg-cyan-100 dark:bg-cyan-950/40 text-cyan-600 dark:text-cyan-400" },
|
|
57
|
-
{ iconBg: "bg-violet-100 dark:bg-violet-950/40 text-violet-600 dark:text-violet-400" },
|
|
58
|
-
{ iconBg: "bg-amber-100 dark:bg-amber-950/40 text-amber-600 dark:text-amber-400" },
|
|
59
|
-
{ iconBg: "bg-rose-100 dark:bg-rose-950/40 text-rose-600 dark:text-rose-400" },
|
|
60
|
-
];
|
|
19
|
+
/** Un paso del setup: título, apoyo, archivo y código. */
|
|
20
|
+
interface Paso {
|
|
21
|
+
/** Ícono de la tecnología del paso. */
|
|
22
|
+
icono: React.ReactNode;
|
|
23
|
+
/** Clave i18n del título. */
|
|
24
|
+
titleKey: string;
|
|
25
|
+
/** Clave i18n del apoyo. */
|
|
26
|
+
descKey: string;
|
|
27
|
+
/** Archivo o etiqueta del bloque de código. */
|
|
28
|
+
filename: string;
|
|
29
|
+
/** Código del paso. */
|
|
30
|
+
code: string;
|
|
31
|
+
}
|
|
61
32
|
|
|
62
|
-
const
|
|
33
|
+
const PASOS: Paso[] = [
|
|
63
34
|
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
35
|
+
icono: <FaNpm size={13} />,
|
|
36
|
+
titleKey: "showcase.gettingStarted.step1Title",
|
|
37
|
+
descKey: "showcase.gettingStarted.step1Desc",
|
|
67
38
|
filename: "terminal",
|
|
68
|
-
code: "
|
|
39
|
+
code: "pnpm add @axzydev/axzy_ui_system\npnpm add -D tailwindcss @tailwindcss/vite @vitejs/plugin-react-swc",
|
|
69
40
|
},
|
|
70
41
|
{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
42
|
+
icono: <SiVite size={13} />,
|
|
43
|
+
titleKey: "showcase.gettingStarted.step2Title",
|
|
44
|
+
descKey: "showcase.gettingStarted.step2Desc",
|
|
74
45
|
filename: "vite.config.ts",
|
|
75
46
|
code: `import { defineConfig } from "vite"
|
|
76
47
|
import react from "@vitejs/plugin-react-swc"
|
|
@@ -81,17 +52,17 @@ export default defineConfig({
|
|
|
81
52
|
})`,
|
|
82
53
|
},
|
|
83
54
|
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
55
|
+
icono: <SiTailwindcss size={13} />,
|
|
56
|
+
titleKey: "showcase.gettingStarted.step3Title",
|
|
57
|
+
descKey: "showcase.gettingStarted.step3Desc",
|
|
87
58
|
filename: "src/index.css",
|
|
88
59
|
code: `@import "tailwindcss";
|
|
89
60
|
@variant dark (&:is(.dark &));`,
|
|
90
61
|
},
|
|
91
62
|
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
63
|
+
icono: <FaReact size={13} />,
|
|
64
|
+
titleKey: "showcase.gettingStarted.step4Title",
|
|
65
|
+
descKey: "showcase.gettingStarted.step4Desc",
|
|
95
66
|
filename: "src/main.tsx",
|
|
96
67
|
code: `import { ITThemeProvider } from "@axzydev/axzy_ui_system"
|
|
97
68
|
import "@axzydev/axzy_ui_system/dist/index.css"
|
|
@@ -101,9 +72,9 @@ import "@axzydev/axzy_ui_system/dist/index.css"
|
|
|
101
72
|
</ITThemeProvider>`,
|
|
102
73
|
},
|
|
103
74
|
{
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
75
|
+
icono: <SiTypescript size={13} />,
|
|
76
|
+
titleKey: "showcase.gettingStarted.step5Title",
|
|
77
|
+
descKey: "showcase.gettingStarted.step5Desc",
|
|
107
78
|
filename: "src/vite-env.d.ts",
|
|
108
79
|
code: `/// <reference types="vite/client" />
|
|
109
80
|
|
|
@@ -113,9 +84,9 @@ declare module "*.css" {
|
|
|
113
84
|
}`,
|
|
114
85
|
},
|
|
115
86
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
87
|
+
icono: <FaCube size={13} />,
|
|
88
|
+
titleKey: "showcase.gettingStarted.step6Title",
|
|
89
|
+
descKey: "showcase.gettingStarted.step6Desc",
|
|
119
90
|
filename: "src/App.tsx",
|
|
120
91
|
code: `import { ITButton } from "@axzydev/axzy_ui_system"
|
|
121
92
|
|
|
@@ -125,70 +96,7 @@ export default function App() {
|
|
|
125
96
|
},
|
|
126
97
|
];
|
|
127
98
|
|
|
128
|
-
|
|
129
|
-
return (
|
|
130
|
-
<ITStack spacing={10}>
|
|
131
|
-
{/* ─── HERO ─── */}
|
|
132
|
-
<ITCard className="overflow-hidden border-0 bg-gradient-to-br from-primary-50 via-white to-purple-50 dark:from-primary-950/20 dark:via-slate-900 dark:to-purple-950/20 shadow-sm">
|
|
133
|
-
<div className="relative">
|
|
134
|
-
<div className="absolute -top-40 -right-40 w-[500px] h-[500px] bg-primary-500/10 rounded-full blur-[120px] pointer-events-none" />
|
|
135
|
-
<div className="absolute -bottom-40 -left-40 w-[500px] h-[500px] bg-purple-500/10 rounded-full blur-[120px] pointer-events-none" />
|
|
136
|
-
|
|
137
|
-
<ITStack spacing={5} className="relative z-10">
|
|
138
|
-
<ITStack spacing={2}>
|
|
139
|
-
<ITBadget label="v1.0.0" color="primary" variant="outlined" className="w-fit" />
|
|
140
|
-
<ITText as="h1" className="!text-4xl !font-bold !tracking-tight">
|
|
141
|
-
AXZY UI System
|
|
142
|
-
</ITText>
|
|
143
|
-
<ITText as="p" muted className="!text-base !leading-relaxed max-w-xl">
|
|
144
|
-
Librería de componentes React con Tailwind CSS v4. Diseñada para apps enterprise con experiencia de desarrollo fluida.
|
|
145
|
-
</ITText>
|
|
146
|
-
</ITStack>
|
|
147
|
-
|
|
148
|
-
<ITFlex gap={3} wrap="wrap" align="center">
|
|
149
|
-
<div className="px-4 py-2 rounded-xl bg-gradient-to-r from-primary-50 to-purple-50 dark:from-primary-950/30 dark:to-purple-950/30 border border-primary-200 dark:border-primary-800/50 shadow-sm">
|
|
150
|
-
<ITFlex align="center" gap={2}>
|
|
151
|
-
<FaNpm size={16} className="text-primary-500" />
|
|
152
|
-
<code className="text-sm font-mono text-slate-800 dark:text-slate-200">npm install @axzydev/axzy_ui_system</code>
|
|
153
|
-
<CopyButton text="npm install @axzydev/axzy_ui_system" />
|
|
154
|
-
</ITFlex>
|
|
155
|
-
</div>
|
|
156
|
-
</ITFlex>
|
|
157
|
-
</ITStack>
|
|
158
|
-
</div>
|
|
159
|
-
</ITCard>
|
|
160
|
-
|
|
161
|
-
{/* ─── SETUP STEPS ─── */}
|
|
162
|
-
<ITGrid container spacing={6}>
|
|
163
|
-
{steps.map((step, i) => (
|
|
164
|
-
<ITGrid item xs={12} md={6} key={i}>
|
|
165
|
-
<ITCard className="border-slate-200/60 dark:border-slate-800/60 shadow-sm h-full">
|
|
166
|
-
<ITStack spacing={4}>
|
|
167
|
-
<ITFlex align="center" gap={2.5}>
|
|
168
|
-
<div className={`w-8 h-8 rounded-lg ${stepStyles[i].iconBg} flex items-center justify-center`}>
|
|
169
|
-
{step.icon}
|
|
170
|
-
</div>
|
|
171
|
-
<div>
|
|
172
|
-
<ITText as="p" className="!text-sm !font-semibold">{step.title}</ITText>
|
|
173
|
-
<ITText as="p" className="!text-xs !text-slate-400">{step.desc}</ITText>
|
|
174
|
-
</div>
|
|
175
|
-
</ITFlex>
|
|
176
|
-
<CodeBlock code={step.code} filename={step.filename} color={codeFileColors[i]} />
|
|
177
|
-
</ITStack>
|
|
178
|
-
</ITCard>
|
|
179
|
-
</ITGrid>
|
|
180
|
-
))}
|
|
181
|
-
</ITGrid>
|
|
182
|
-
|
|
183
|
-
{/* ─── THEMING ─── */}
|
|
184
|
-
<ITCard title="Theming" className="border-purple-200/60 dark:border-purple-800/60 shadow-sm">
|
|
185
|
-
<ITStack spacing={4}>
|
|
186
|
-
<ITText as="p" className="!text-sm" muted>
|
|
187
|
-
Personaliza colores en runtime. Solo necesitas los que quieras cambiar.
|
|
188
|
-
</ITText>
|
|
189
|
-
<div className="bg-gradient-to-r from-purple-50 via-fuchsia-50 to-pink-50 dark:from-purple-950/20 dark:via-fuchsia-950/20 dark:to-pink-950/20 rounded-xl p-5 border border-purple-200 dark:border-purple-800/30">
|
|
190
|
-
<CodeBlock
|
|
191
|
-
code={`const myTheme = {
|
|
99
|
+
const TEMA_CODE = `const myTheme = {
|
|
192
100
|
colors: {
|
|
193
101
|
primary: { 50: "#fef2f2", 500: "#ef4444" },
|
|
194
102
|
},
|
|
@@ -196,11 +104,109 @@ export const GettingStartedShowcase = () => {
|
|
|
196
104
|
|
|
197
105
|
<ITThemeProvider theme={myTheme}>
|
|
198
106
|
<App />
|
|
199
|
-
</ITThemeProvider
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
107
|
+
</ITThemeProvider>`;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Puesta en marcha (`#ui-system/general/getting-started`): masthead con el
|
|
111
|
+
* comando de instalación y los seis pasos del setup como filas numeradas con
|
|
112
|
+
* filete (sin tarjetas de colores ni degradados decorativos).
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```tsx
|
|
116
|
+
* <GettingStartedShowcase />
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export const GettingStartedShowcase = () => {
|
|
120
|
+
const { t } = useITTranslation();
|
|
121
|
+
|
|
122
|
+
return (
|
|
123
|
+
<div className="animate-fadeIn pb-4">
|
|
124
|
+
{/* ─── MASTHEAD ─── */}
|
|
125
|
+
<header className={`border-b pb-8 ${FILETE}`}>
|
|
126
|
+
<div className="flex flex-wrap items-center justify-between gap-4">
|
|
127
|
+
<p className={EYEBROW}>{`v${__APP_VERSION__} · Tailwind v4 · TypeScript`}</p>
|
|
128
|
+
<EnlaceMono href={REPO_URL}>Repositorio</EnlaceMono>
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
<h1 className="mt-6 font-display text-[36px] font-bold leading-[1.06] tracking-[-0.015em] text-slate-900 dark:text-white sm:text-[46px]">
|
|
132
|
+
AXZY UI System
|
|
133
|
+
</h1>
|
|
134
|
+
<p className="mt-5 max-w-[64ch] text-[15.5px] leading-[1.75] text-slate-600 dark:text-slate-300">
|
|
135
|
+
{t("showcase.gettingStarted.heroDesc")}
|
|
136
|
+
</p>
|
|
137
|
+
|
|
138
|
+
<div
|
|
139
|
+
className={`mt-7 inline-flex flex-wrap items-center gap-x-3 gap-y-2 rounded-[10px] border px-4 py-2 ${FILETE}`}
|
|
140
|
+
>
|
|
141
|
+
<FaNpm size={15} className="shrink-0 text-primary-700 dark:text-primary-500" />
|
|
142
|
+
<code className="font-mono text-xs text-slate-700 dark:text-slate-200">
|
|
143
|
+
{INSTALL_CMD}
|
|
144
|
+
</code>
|
|
145
|
+
<span className={`border-l pl-3 ${FILETE}`}>
|
|
146
|
+
<BotonCopiar texto={INSTALL_CMD} />
|
|
147
|
+
</span>
|
|
148
|
+
</div>
|
|
149
|
+
</header>
|
|
150
|
+
|
|
151
|
+
{/* ─── PASOS ─── */}
|
|
152
|
+
<section className="pt-12">
|
|
153
|
+
<SectionHeading
|
|
154
|
+
index={0}
|
|
155
|
+
label={t("showcase.landing.quickstartEyebrow")}
|
|
156
|
+
title={t("showcase.gettingStarted.stepsTitle")}
|
|
157
|
+
subtitle={t("showcase.gettingStarted.stepsSubtitle")}
|
|
158
|
+
className="pb-7"
|
|
159
|
+
/>
|
|
160
|
+
|
|
161
|
+
<ol className={`border-t ${FILETE}`}>
|
|
162
|
+
{PASOS.map((paso, indice) => (
|
|
163
|
+
<li
|
|
164
|
+
key={paso.titleKey}
|
|
165
|
+
className={`grid gap-4 border-b py-6 lg:grid-cols-[minmax(0,300px)_minmax(0,1fr)] lg:gap-10 ${FILETE}`}
|
|
166
|
+
>
|
|
167
|
+
<div className="min-w-0">
|
|
168
|
+
<div className="flex items-center gap-3">
|
|
169
|
+
<span className="font-mono text-[11px] tabular-nums text-slate-500 dark:text-slate-400">
|
|
170
|
+
{String(indice + 1).padStart(2, "0")}
|
|
171
|
+
</span>
|
|
172
|
+
<span aria-hidden className="text-primary-700 dark:text-primary-500">{paso.icono}</span>
|
|
173
|
+
<h3 className="font-display text-[16px] font-bold tracking-[-0.02em] text-slate-900 dark:text-white">
|
|
174
|
+
{t(paso.titleKey)}
|
|
175
|
+
</h3>
|
|
176
|
+
</div>
|
|
177
|
+
<p className="mt-2 text-[13.5px] leading-relaxed text-slate-500 dark:text-slate-400">
|
|
178
|
+
{t(paso.descKey)}
|
|
179
|
+
</p>
|
|
180
|
+
</div>
|
|
181
|
+
|
|
182
|
+
<BloqueCodigo code={paso.code} filename={paso.filename} />
|
|
183
|
+
</li>
|
|
184
|
+
))}
|
|
185
|
+
</ol>
|
|
186
|
+
</section>
|
|
187
|
+
|
|
188
|
+
{/* ─── THEMING ─── */}
|
|
189
|
+
<section className="pt-12">
|
|
190
|
+
<div className={`border-t pt-10 ${FILETE}`}>
|
|
191
|
+
<ITGrid container spacing={8}>
|
|
192
|
+
<ITGrid item xs={12} lg={5}>
|
|
193
|
+
<p className={EYEBROW}>{t("showcase.gettingStarted.themingTitle")}</p>
|
|
194
|
+
<p className="mt-3 text-[14px] leading-relaxed text-slate-600 dark:text-slate-300">
|
|
195
|
+
{t("showcase.gettingStarted.themingDesc")}
|
|
196
|
+
</p>
|
|
197
|
+
<ITFlex align="center" gap={2} wrap="wrap" className="!mt-5">
|
|
198
|
+
<Etiqueta>Tailwind v4</Etiqueta>
|
|
199
|
+
<Etiqueta>Runtime</Etiqueta>
|
|
200
|
+
</ITFlex>
|
|
201
|
+
</ITGrid>
|
|
202
|
+
|
|
203
|
+
<ITGrid item xs={12} lg={7}>
|
|
204
|
+
<BloqueCodigo code={TEMA_CODE} filename="theme.ts" />
|
|
205
|
+
</ITGrid>
|
|
206
|
+
</ITGrid>
|
|
207
|
+
</div>
|
|
208
|
+
</section>
|
|
209
|
+
|
|
210
|
+
</div>
|
|
205
211
|
);
|
|
206
212
|
};
|