@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
|
@@ -13,14 +13,17 @@ import {
|
|
|
13
13
|
FaTerminal,
|
|
14
14
|
FaWrench,
|
|
15
15
|
} from "react-icons/fa";
|
|
16
|
-
import { ITAccordion,
|
|
16
|
+
import { ITAccordion, ITButton, ITFlex, ITGrid, ITStack, ITText } from "../index";
|
|
17
17
|
import type { ITAccordionItem } from "../index";
|
|
18
|
+
import { BotonAccion } from "@/sandbox/ui";
|
|
19
|
+
import { useITTranslation } from "@/i18n";
|
|
18
20
|
|
|
19
21
|
const GITHUB_URL = "https://github.com/maag070208/AXZY_UI_SYSTEM";
|
|
20
22
|
const ISSUE_URL = `${GITHUB_URL}/issues/new`;
|
|
21
23
|
|
|
22
24
|
/** Clipboard button that flips to a "Copiado" confirmation for 2s. */
|
|
23
25
|
const CopyButton = ({ text }: { text: string }) => {
|
|
26
|
+
const { t } = useITTranslation();
|
|
24
27
|
const [copied, setCopied] = useState(false);
|
|
25
28
|
return (
|
|
26
29
|
<ITButton
|
|
@@ -35,7 +38,7 @@ const CopyButton = ({ text }: { text: string }) => {
|
|
|
35
38
|
>
|
|
36
39
|
<ITFlex align="center" gap={1.5}>
|
|
37
40
|
{copied ? <FaCheck size={10} className="text-emerald-400" /> : <FaClipboardList size={10} />}
|
|
38
|
-
{copied ? "
|
|
41
|
+
{copied ? t("showcase.common.copied") : t("showcase.common.copy")}
|
|
39
42
|
</ITFlex>
|
|
40
43
|
</ITButton>
|
|
41
44
|
);
|
|
@@ -80,7 +83,9 @@ const ErrorBody = ({
|
|
|
80
83
|
fix: ReactNode;
|
|
81
84
|
bad?: string;
|
|
82
85
|
good?: string;
|
|
83
|
-
}) =>
|
|
86
|
+
}) => {
|
|
87
|
+
const { t } = useITTranslation();
|
|
88
|
+
return (
|
|
84
89
|
<ITStack spacing={3} className="pt-1">
|
|
85
90
|
<div className="flex items-start gap-2">
|
|
86
91
|
<FaExclamationTriangle size={12} className="mt-0.5 shrink-0 text-danger-500" />
|
|
@@ -96,18 +101,19 @@ const ErrorBody = ({
|
|
|
96
101
|
</div>
|
|
97
102
|
{bad && (
|
|
98
103
|
<CodeBlock
|
|
99
|
-
filename="
|
|
104
|
+
filename={t("showcase.common.incorrect")}
|
|
100
105
|
code={bad}
|
|
101
106
|
/>
|
|
102
107
|
)}
|
|
103
108
|
{good && (
|
|
104
109
|
<CodeBlock
|
|
105
|
-
filename="
|
|
110
|
+
filename={t("showcase.common.correct")}
|
|
106
111
|
code={good}
|
|
107
112
|
/>
|
|
108
113
|
)}
|
|
109
114
|
</ITStack>
|
|
110
|
-
);
|
|
115
|
+
);
|
|
116
|
+
};
|
|
111
117
|
|
|
112
118
|
const COMMON_ERRORS: ITAccordionItem[] = [
|
|
113
119
|
{
|
|
@@ -254,13 +260,13 @@ const FAQ: ITAccordionItem[] = [
|
|
|
254
260
|
id: "faq-examples",
|
|
255
261
|
title: "¿Dónde están los ejemplos de cada componente?",
|
|
256
262
|
content:
|
|
257
|
-
"En el sandbox: ejecuta `pnpm dev` y navega a `#ui-system`.
|
|
263
|
+
"En el sandbox: ejecuta `pnpm dev` y navega a `#ui-system`. La superficie de ejemplos es el sandbox y la referencia por componente vive en `docs/`.",
|
|
258
264
|
},
|
|
259
265
|
{
|
|
260
266
|
id: "faq-new-component",
|
|
261
267
|
title: "¿Cómo agrego un componente nuevo?",
|
|
262
268
|
content:
|
|
263
|
-
"Crea `src/components/<layer>/<kebab-name>/` con `<name>.tsx
|
|
269
|
+
"Crea `src/components/<layer>/<kebab-name>/` con `<name>.tsx` y `<name>.props.ts`. Documenta cada prop con JSDoc, regístralo en `src/index.ts` y actualiza `docs/<capa>/<nombre>.md` y el showcase correspondiente.",
|
|
264
270
|
},
|
|
265
271
|
{
|
|
266
272
|
id: "faq-changes-not-visible",
|
|
@@ -275,10 +281,10 @@ const FAQ: ITAccordionItem[] = [
|
|
|
275
281
|
"Sí. Importa named exports (`import { ITButton } from \"@axzydev/axzy_ui_system\"`) y el bundler descarta lo que no usas. No hay dependencias de UI de terceros.",
|
|
276
282
|
},
|
|
277
283
|
{
|
|
278
|
-
id: "faq-
|
|
279
|
-
title: "¿
|
|
284
|
+
id: "faq-examples-docs",
|
|
285
|
+
title: "¿Dónde veo la documentación de un componente?",
|
|
280
286
|
content:
|
|
281
|
-
"
|
|
287
|
+
"En `docs/<capa>/<componente>.md` tienes props, defaults, ejemplo y notas. Los ejemplos vivos están en el sandbox (`pnpm dev` → `#ui-system`).",
|
|
282
288
|
},
|
|
283
289
|
{
|
|
284
290
|
id: "faq-browser-support",
|
|
@@ -315,61 +321,47 @@ pnpm check:atomic # valida la dirección de dependencias entre capas`;
|
|
|
315
321
|
* frecuentes, preguntas frecuentes y guía para reportar incidencias.
|
|
316
322
|
*/
|
|
317
323
|
export const HelpShowcase = () => {
|
|
324
|
+
const { t } = useITTranslation();
|
|
318
325
|
return (
|
|
319
326
|
<ITStack spacing={10} className="animate-fadeIn">
|
|
320
|
-
{/* ───
|
|
321
|
-
<
|
|
322
|
-
<
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
icon={<FaBook size={13} />}
|
|
349
|
-
onClick={() => window.open(GITHUB_URL, "_blank", "noopener,noreferrer")}
|
|
350
|
-
>
|
|
351
|
-
Ver repositorio
|
|
352
|
-
</ITButton>
|
|
353
|
-
</ITFlex>
|
|
354
|
-
</ITStack>
|
|
355
|
-
</div>
|
|
356
|
-
</ITCard>
|
|
327
|
+
{/* ─── MASTHEAD ─── */}
|
|
328
|
+
<header className="border-b border-slate-200 pb-8 dark:border-slate-800">
|
|
329
|
+
<p className="font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-400">
|
|
330
|
+
{t("showcase.help.badge")}
|
|
331
|
+
</p>
|
|
332
|
+
<h1 className="mt-2.5 font-display text-[34px] font-bold leading-[1.06] tracking-[-0.015em] text-slate-900 dark:text-white sm:text-[44px]">
|
|
333
|
+
{t("showcase.help.title")}
|
|
334
|
+
</h1>
|
|
335
|
+
<p className="mt-5 max-w-[68ch] text-[15.5px] leading-[1.75] text-slate-600 dark:text-slate-300">
|
|
336
|
+
{t("showcase.help.subtitle")}
|
|
337
|
+
</p>
|
|
338
|
+
<ITFlex gap={3} wrap="wrap" align="center" className="!mt-7">
|
|
339
|
+
<BotonAccion
|
|
340
|
+
variante="filled"
|
|
341
|
+
icono={<FaBug size={12} />}
|
|
342
|
+
onClick={() => window.open(ISSUE_URL, "_blank", "noopener,noreferrer")}
|
|
343
|
+
>
|
|
344
|
+
{t("showcase.help.reportBug")}
|
|
345
|
+
</BotonAccion>
|
|
346
|
+
<BotonAccion
|
|
347
|
+
variante="neutral"
|
|
348
|
+
icono={<FaBook size={12} />}
|
|
349
|
+
onClick={() => window.open(GITHUB_URL, "_blank", "noopener,noreferrer")}
|
|
350
|
+
>
|
|
351
|
+
{t("showcase.help.viewRepo")}
|
|
352
|
+
</BotonAccion>
|
|
353
|
+
</ITFlex>
|
|
354
|
+
</header>
|
|
357
355
|
|
|
358
356
|
{/* ─── DIAGNÓSTICO RÁPIDO ─── */}
|
|
359
357
|
<section>
|
|
360
|
-
<
|
|
361
|
-
<
|
|
362
|
-
<FaTerminal size={13}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
</ITText>
|
|
368
|
-
<ITText as="p" muted className="!text-xs">
|
|
369
|
-
Ejecuta estos comandos antes de reportar cualquier fallo.
|
|
370
|
-
</ITText>
|
|
371
|
-
</ITStack>
|
|
372
|
-
</ITFlex>
|
|
358
|
+
<div className="!mb-5 border-b border-slate-200 pb-4 dark:border-slate-800">
|
|
359
|
+
<h2 className="flex items-center gap-2.5 font-display text-[20px] font-bold tracking-[-0.02em] text-slate-900 dark:text-white">
|
|
360
|
+
<span className="text-primary-700 dark:text-primary-500"><FaTerminal size={13} /></span>
|
|
361
|
+
{t("showcase.help.quickDiagnosis")}
|
|
362
|
+
</h2>
|
|
363
|
+
<p className="mt-1.5 text-[13px] text-slate-500 dark:text-slate-400">{t("showcase.help.quickDiagnosisHint")}</p>
|
|
364
|
+
</div>
|
|
373
365
|
<div className="relative">
|
|
374
366
|
<div className="absolute top-2 right-2 z-10">
|
|
375
367
|
<CopyButton text={DIAGNOSTICS} />
|
|
@@ -380,79 +372,85 @@ export const HelpShowcase = () => {
|
|
|
380
372
|
|
|
381
373
|
{/* ─── ERRORES COMUNES ─── */}
|
|
382
374
|
<section>
|
|
383
|
-
<
|
|
384
|
-
<
|
|
385
|
-
<FaExclamationTriangle size={13}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
</ITText>
|
|
391
|
-
<ITText as="p" muted className="!text-xs">
|
|
392
|
-
Síntoma, causa y arreglo de los tropiezos más habituales del stack.
|
|
393
|
-
</ITText>
|
|
394
|
-
</ITStack>
|
|
395
|
-
</ITFlex>
|
|
375
|
+
<div className="!mb-5 border-b border-slate-200 pb-4 dark:border-slate-800">
|
|
376
|
+
<h2 className="flex items-center gap-2.5 font-display text-[20px] font-bold tracking-[-0.02em] text-slate-900 dark:text-white">
|
|
377
|
+
<span className="text-primary-700 dark:text-primary-500"><FaExclamationTriangle size={13} /></span>
|
|
378
|
+
{t("showcase.help.commonErrors")}
|
|
379
|
+
</h2>
|
|
380
|
+
<p className="mt-1.5 text-[13px] text-slate-500 dark:text-slate-400">{t("showcase.help.commonErrorsHint")}</p>
|
|
381
|
+
</div>
|
|
396
382
|
<ITAccordion items={COMMON_ERRORS} allowMultiple variant="separated" />
|
|
397
383
|
</section>
|
|
398
384
|
|
|
399
385
|
{/* ─── FAQ ─── */}
|
|
400
386
|
<section>
|
|
401
|
-
<
|
|
402
|
-
<
|
|
403
|
-
<FaQuestionCircle size={13}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
</ITText>
|
|
409
|
-
<ITText as="p" muted className="!text-xs">
|
|
410
|
-
Respuestas cortas a las dudas más repetidas.
|
|
411
|
-
</ITText>
|
|
412
|
-
</ITStack>
|
|
413
|
-
</ITFlex>
|
|
387
|
+
<div className="!mb-5 border-b border-slate-200 pb-4 dark:border-slate-800">
|
|
388
|
+
<h2 className="flex items-center gap-2.5 font-display text-[20px] font-bold tracking-[-0.02em] text-slate-900 dark:text-white">
|
|
389
|
+
<span className="text-primary-700 dark:text-primary-500"><FaQuestionCircle size={13} /></span>
|
|
390
|
+
{t("showcase.help.faq")}
|
|
391
|
+
</h2>
|
|
392
|
+
<p className="mt-1.5 text-[13px] text-slate-500 dark:text-slate-400">{t("showcase.help.faqHint")}</p>
|
|
393
|
+
</div>
|
|
414
394
|
<ITAccordion items={FAQ} allowMultiple variant="bordered" />
|
|
415
395
|
</section>
|
|
416
396
|
|
|
417
397
|
{/* ─── CÓMO REPORTAR UN BUG ─── */}
|
|
418
|
-
<
|
|
398
|
+
<section className="border-t border-slate-200 pt-8 dark:border-slate-800">
|
|
419
399
|
<ITStack spacing={6}>
|
|
420
|
-
<
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
400
|
+
<div className="border-b border-slate-200 pb-4 dark:border-slate-800">
|
|
401
|
+
<h2 className="flex items-center gap-2.5 font-display text-[20px] font-bold tracking-[-0.02em] text-slate-900 dark:text-white">
|
|
402
|
+
<span className="text-primary-700 dark:text-primary-500">
|
|
403
|
+
<FaBug size={13} />
|
|
404
|
+
</span>
|
|
405
|
+
{t("showcase.help.howToReport")}
|
|
406
|
+
</h2>
|
|
407
|
+
<p className="mt-1.5 max-w-[70ch] text-[13px] leading-relaxed text-slate-500 dark:text-slate-400">
|
|
408
|
+
{t("showcase.help.reportIntro")}
|
|
409
|
+
</p>
|
|
410
|
+
</div>
|
|
424
411
|
|
|
425
412
|
<ITGrid container spacing={6}>
|
|
426
413
|
<ITGrid item xs={12} md={6}>
|
|
427
414
|
<ITStack spacing={3}>
|
|
428
|
-
<ITText as="h3" className="!text-[11px] !font-
|
|
429
|
-
|
|
415
|
+
<ITText as="h3" className="font-mono !text-[11px] !font-medium uppercase !tracking-[0.14em] text-slate-500 dark:text-slate-400">
|
|
416
|
+
{t("showcase.help.steps")}
|
|
430
417
|
</ITText>
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
<
|
|
434
|
-
{
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
418
|
+
<ol className="border-t border-slate-200 dark:border-slate-800">
|
|
419
|
+
{REPORT_STEPS.map((step, index) => (
|
|
420
|
+
<li
|
|
421
|
+
key={step}
|
|
422
|
+
className="flex items-start gap-3 border-b border-slate-200 py-3 dark:border-slate-800"
|
|
423
|
+
>
|
|
424
|
+
<span className="font-mono text-[11px] tabular-nums text-slate-500 dark:text-slate-400">
|
|
425
|
+
{String(index + 1).padStart(2, "0")}
|
|
426
|
+
</span>
|
|
427
|
+
<ITText as="p" className="!text-[13.5px] !leading-relaxed text-slate-600 dark:text-slate-300">
|
|
428
|
+
{step}
|
|
429
|
+
</ITText>
|
|
430
|
+
</li>
|
|
431
|
+
))}
|
|
432
|
+
</ol>
|
|
441
433
|
</ITStack>
|
|
442
434
|
</ITGrid>
|
|
443
435
|
|
|
444
436
|
<ITGrid item xs={12} md={6}>
|
|
445
|
-
<div
|
|
446
|
-
<ITText as="h3" className="
|
|
447
|
-
|
|
437
|
+
<div>
|
|
438
|
+
<ITText as="h3" className="font-mono !text-[11px] !font-medium uppercase !tracking-[0.14em] text-slate-500 dark:text-slate-400">
|
|
439
|
+
{t("showcase.help.includeInReport")}
|
|
448
440
|
</ITText>
|
|
449
|
-
<ul className="
|
|
441
|
+
<ul className="mt-3 border-t border-slate-200 dark:border-slate-800">
|
|
450
442
|
{REPORT_CHECKLIST.map((item) => (
|
|
451
|
-
<li
|
|
452
|
-
|
|
453
|
-
|
|
443
|
+
<li
|
|
444
|
+
key={item}
|
|
445
|
+
className="flex items-start gap-3 border-b border-slate-200 py-3 dark:border-slate-800"
|
|
446
|
+
>
|
|
447
|
+
<FaCheck
|
|
448
|
+
size={10}
|
|
449
|
+
className="mt-1.5 shrink-0 text-primary-700 dark:text-primary-500"
|
|
450
|
+
/>
|
|
451
|
+
<span className="text-[13.5px] leading-relaxed text-slate-600 dark:text-slate-300">
|
|
452
|
+
{item}
|
|
454
453
|
</span>
|
|
455
|
-
<span className="text-sm text-slate-600 dark:text-slate-300">{item}</span>
|
|
456
454
|
</li>
|
|
457
455
|
))}
|
|
458
456
|
</ul>
|
|
@@ -464,34 +462,34 @@ export const HelpShowcase = () => {
|
|
|
464
462
|
<ITFlex align="center" gap={2}>
|
|
465
463
|
<FaLifeRing size={14} className="text-primary-500" />
|
|
466
464
|
<ITText as="p" className="!text-xs" muted>
|
|
467
|
-
|
|
465
|
+
{t("showcase.help.footerHint")}
|
|
468
466
|
</ITText>
|
|
469
467
|
</ITFlex>
|
|
470
468
|
<ITFlex gap={3} wrap="wrap">
|
|
471
|
-
<
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
icon={<FaBug size={13} />}
|
|
469
|
+
<BotonAccion
|
|
470
|
+
variante="filled"
|
|
471
|
+
icono={<FaBug size={12} />}
|
|
475
472
|
onClick={() => window.open(ISSUE_URL, "_blank", "noopener,noreferrer")}
|
|
476
473
|
>
|
|
477
|
-
|
|
478
|
-
</
|
|
479
|
-
<
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
474
|
+
{t("showcase.help.openIssue")}
|
|
475
|
+
</BotonAccion>
|
|
476
|
+
<BotonAccion
|
|
477
|
+
variante="neutral"
|
|
478
|
+
icono={<FaSyncAlt size={12} />}
|
|
479
|
+
onClick={() =>
|
|
480
|
+
window.open(`${GITHUB_URL}/blob/main/AGENTS.md`, "_blank", "noopener,noreferrer")
|
|
481
|
+
}
|
|
484
482
|
>
|
|
485
|
-
|
|
486
|
-
</
|
|
483
|
+
{t("showcase.help.viewAgents")}
|
|
484
|
+
</BotonAccion>
|
|
487
485
|
</ITFlex>
|
|
488
486
|
</ITFlex>
|
|
489
487
|
|
|
490
488
|
<ITFlex align="center" gap={2} wrap="wrap">
|
|
491
|
-
<FixPill>
|
|
489
|
+
<FixPill>{t("showcase.help.fixPill")}</FixPill>
|
|
492
490
|
</ITFlex>
|
|
493
491
|
</ITStack>
|
|
494
|
-
</
|
|
492
|
+
</section>
|
|
495
493
|
</ITStack>
|
|
496
494
|
);
|
|
497
495
|
};
|