@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
|
@@ -11,29 +11,31 @@ import {
|
|
|
11
11
|
ITCard
|
|
12
12
|
} from "../index";
|
|
13
13
|
import { ShowcaseLayout } from "./ShowcaseLayout";
|
|
14
|
+
import { useITTranslation } from "@/i18n";
|
|
14
15
|
|
|
15
16
|
// 1. ITTabs Showcase
|
|
16
17
|
export const TabsShowcase = () => {
|
|
18
|
+
const { t } = useITTranslation();
|
|
17
19
|
const [variant, setVariant] = useState<any>("line");
|
|
18
20
|
|
|
19
21
|
const tabItems = [
|
|
20
22
|
{
|
|
21
23
|
id: "tab1",
|
|
22
|
-
label: "
|
|
24
|
+
label: t("showcase.nav.tabGeneral"),
|
|
23
25
|
icon: <FaInfoCircle />,
|
|
24
|
-
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">
|
|
26
|
+
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">{t("showcase.nav.tabsGeneralBody")}</div>
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
29
|
id: "tab2",
|
|
28
|
-
label: "
|
|
30
|
+
label: t("showcase.nav.tabSecurity"),
|
|
29
31
|
icon: <FaSlidersH />,
|
|
30
|
-
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">
|
|
32
|
+
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">{t("showcase.nav.tabsSecurityBody")}</div>
|
|
31
33
|
},
|
|
32
34
|
{
|
|
33
35
|
id: "tab3",
|
|
34
|
-
label: "
|
|
36
|
+
label: t("showcase.nav.tabNotifications"),
|
|
35
37
|
icon: <FaRegBell />,
|
|
36
|
-
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">
|
|
38
|
+
content: <div className="p-4 text-sm text-slate-600 dark:text-slate-300">{t("showcase.nav.tabsNotificationsBody")}</div>
|
|
37
39
|
}
|
|
38
40
|
];
|
|
39
41
|
|
|
@@ -42,7 +44,7 @@ export const TabsShowcase = () => {
|
|
|
42
44
|
return (
|
|
43
45
|
<ShowcaseLayout
|
|
44
46
|
title="ITTabs"
|
|
45
|
-
description="
|
|
47
|
+
description={t("showcase.nav.tabsDesc")}
|
|
46
48
|
code={code}
|
|
47
49
|
demo={
|
|
48
50
|
<div className="w-full bg-white dark:bg-slate-900 border rounded-2xl p-6 shadow-sm min-h-[160px]">
|
|
@@ -53,7 +55,7 @@ export const TabsShowcase = () => {
|
|
|
53
55
|
<>
|
|
54
56
|
<ITSelect
|
|
55
57
|
name="var_ctrl"
|
|
56
|
-
label="
|
|
58
|
+
label={t("showcase.nav.variantAesthetic")}
|
|
57
59
|
value={variant}
|
|
58
60
|
onChange={(e: any) => setVariant(e.target.value)}
|
|
59
61
|
options={[
|
|
@@ -69,13 +71,14 @@ export const TabsShowcase = () => {
|
|
|
69
71
|
|
|
70
72
|
// 2. ITStepper Showcase
|
|
71
73
|
export const StepperShowcase = () => {
|
|
74
|
+
const { t } = useITTranslation();
|
|
72
75
|
const [step, setStep] = useState(0);
|
|
73
76
|
const [useIcons, setUseIcons] = useState(true);
|
|
74
77
|
|
|
75
78
|
const steps = [
|
|
76
|
-
{ label: "
|
|
77
|
-
{ label: "
|
|
78
|
-
{ label: "
|
|
79
|
+
{ label: t("showcase.nav.stepValidate"), content: <div className="p-6">{t("showcase.nav.stepValidateBody")}</div> },
|
|
80
|
+
{ label: t("showcase.nav.stepKyc"), content: <div className="p-6">{t("showcase.nav.stepKycBody")}</div> },
|
|
81
|
+
{ label: t("showcase.nav.stepSign"), content: <div className="p-6">{t("showcase.nav.stepSignBody")}</div> }
|
|
79
82
|
];
|
|
80
83
|
|
|
81
84
|
const code = `<ITStepper\n steps={steps}\n currentStep={${step}}\n useIcons={${useIcons}}\n onStepChange={(idx) => setStep(idx)}\n/>`;
|
|
@@ -83,7 +86,7 @@ export const StepperShowcase = () => {
|
|
|
83
86
|
return (
|
|
84
87
|
<ShowcaseLayout
|
|
85
88
|
title="ITStepper"
|
|
86
|
-
description="
|
|
89
|
+
description={t("showcase.nav.stepperDesc")}
|
|
87
90
|
code={code}
|
|
88
91
|
demo={
|
|
89
92
|
<div className="w-full">
|
|
@@ -92,18 +95,20 @@ export const StepperShowcase = () => {
|
|
|
92
95
|
currentStep={step}
|
|
93
96
|
useIcons={useIcons}
|
|
94
97
|
onStepChange={setStep}
|
|
95
|
-
onFinish={() => alert("
|
|
98
|
+
onFinish={() => alert(t("showcase.nav.stepperFinish"))}
|
|
96
99
|
/>
|
|
97
100
|
</div>
|
|
98
101
|
}
|
|
99
102
|
controls={
|
|
100
103
|
<>
|
|
101
104
|
<div className="flex items-center justify-between pt-2">
|
|
102
|
-
<span className="text-
|
|
103
|
-
<ITSlideToggle isOn={useIcons} onToggle={setUseIcons} size="sm"
|
|
105
|
+
<span className="font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-400">{t("showcase.nav.useIcons")}</span>
|
|
106
|
+
<ITSlideToggle isOn={useIcons} onToggle={setUseIcons} size="sm"
|
|
107
|
+
ariaLabel={t("showcase.nav.useIcons")}
|
|
108
|
+
/>
|
|
104
109
|
</div>
|
|
105
110
|
<div className="flex justify-between items-center pt-2">
|
|
106
|
-
<span className="text-
|
|
111
|
+
<span className="font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-400">{t("showcase.nav.resetStep")}</span>
|
|
107
112
|
<button onClick={() => setStep(0)} className="p-2 bg-slate-100 rounded-lg hover:bg-slate-200 text-slate-800">
|
|
108
113
|
<FaSync size={12} />
|
|
109
114
|
</button>
|
|
@@ -116,6 +121,7 @@ export const StepperShowcase = () => {
|
|
|
116
121
|
|
|
117
122
|
// 3. ITPagination Showcase
|
|
118
123
|
export const PaginationShowcase = () => {
|
|
124
|
+
const { t } = useITTranslation();
|
|
119
125
|
const [page, setPage] = useState(1);
|
|
120
126
|
const [color, setColor] = useState<any>("primary");
|
|
121
127
|
|
|
@@ -124,7 +130,7 @@ export const PaginationShowcase = () => {
|
|
|
124
130
|
return (
|
|
125
131
|
<ShowcaseLayout
|
|
126
132
|
title="ITPagination"
|
|
127
|
-
description="
|
|
133
|
+
description={t("showcase.nav.paginationDesc")}
|
|
128
134
|
code={code}
|
|
129
135
|
demo={
|
|
130
136
|
<div className="flex flex-col items-center gap-3">
|
|
@@ -134,14 +140,14 @@ export const PaginationShowcase = () => {
|
|
|
134
140
|
onPageChange={setPage}
|
|
135
141
|
color={color}
|
|
136
142
|
/>
|
|
137
|
-
<span className="text-xs font-mono text-slate-500">
|
|
143
|
+
<span className="text-xs font-mono text-slate-500">{t("showcase.nav.currentPage", { page })}</span>
|
|
138
144
|
</div>
|
|
139
145
|
}
|
|
140
146
|
controls={
|
|
141
147
|
<>
|
|
142
148
|
<ITSelect
|
|
143
149
|
name="col_ctrl"
|
|
144
|
-
label="
|
|
150
|
+
label={t("showcase.nav.activeColorLabel")}
|
|
145
151
|
value={color}
|
|
146
152
|
onChange={(e: any) => setColor(e.target.value)}
|
|
147
153
|
options={[
|
|
@@ -162,6 +168,7 @@ export const PaginationShowcase = () => {
|
|
|
162
168
|
|
|
163
169
|
// 4. ITTripleFilter Showcase
|
|
164
170
|
export const TripleFilterShowcase = () => {
|
|
171
|
+
const { t } = useITTranslation();
|
|
165
172
|
const [filter, setFilter] = useState("all");
|
|
166
173
|
|
|
167
174
|
const code = `<ITTripleFilter\n value="${filter}"\n onChange={(val) => setFilter(String(val))}\n options={[\n { label: 'Todos', value: 'all' },\n { label: 'Activos', value: 'active' },\n { label: 'Inactivos', value: 'inactive' }\n ]}\n/>`;
|
|
@@ -169,7 +176,7 @@ export const TripleFilterShowcase = () => {
|
|
|
169
176
|
return (
|
|
170
177
|
<ShowcaseLayout
|
|
171
178
|
title="ITTripleFilter"
|
|
172
|
-
description="
|
|
179
|
+
description={t("showcase.nav.tripleFilterDesc")}
|
|
173
180
|
code={code}
|
|
174
181
|
demo={
|
|
175
182
|
<div className="flex flex-col items-center gap-4">
|
|
@@ -177,17 +184,17 @@ export const TripleFilterShowcase = () => {
|
|
|
177
184
|
value={filter}
|
|
178
185
|
onChange={(val) => setFilter(String(val))}
|
|
179
186
|
options={[
|
|
180
|
-
{ label: "
|
|
181
|
-
{ label: "
|
|
182
|
-
{ label: "
|
|
187
|
+
{ label: t("showcase.nav.filterAll"), value: "all" },
|
|
188
|
+
{ label: t("showcase.nav.filterActive"), value: "active" },
|
|
189
|
+
{ label: t("showcase.nav.filterInactive"), value: "inactive" }
|
|
183
190
|
]}
|
|
184
191
|
/>
|
|
185
|
-
<p className="text-xs text-slate-500 font-mono">
|
|
192
|
+
<p className="text-xs text-slate-500 font-mono">{t("showcase.nav.activeFilter", { filter })}</p>
|
|
186
193
|
</div>
|
|
187
194
|
}
|
|
188
195
|
controls={
|
|
189
196
|
<div className="p-2 bg-slate-50 dark:bg-slate-900 rounded-lg text-xs">
|
|
190
|
-
<p className="text-slate-500">
|
|
197
|
+
<p className="text-slate-500">{t("showcase.nav.tripleFilterHint")}</p>
|
|
191
198
|
</div>
|
|
192
199
|
}
|
|
193
200
|
/>
|
|
@@ -196,13 +203,14 @@ export const TripleFilterShowcase = () => {
|
|
|
196
203
|
|
|
197
204
|
// ITDropdownMenu Showcase
|
|
198
205
|
export const DropdownMenuShowcase = () => {
|
|
199
|
-
const
|
|
206
|
+
const { t } = useITTranslation();
|
|
207
|
+
const [lastAction, setLastAction] = useState<string>(t("showcase.nav.none"));
|
|
200
208
|
|
|
201
209
|
const items = [
|
|
202
|
-
{ id: "edit", label: "
|
|
203
|
-
{ id: "copy", label: "
|
|
204
|
-
{ id: "download", label: "
|
|
205
|
-
{ id: "delete", label: "
|
|
210
|
+
{ id: "edit", label: t("showcase.nav.actionEdit"), icon: <FaEdit />, onClick: () => setLastAction(t("showcase.nav.actionEdit")) },
|
|
211
|
+
{ id: "copy", label: t("showcase.nav.actionDuplicate"), icon: <FaCopy />, shortcut: "⌘D", onClick: () => setLastAction(t("showcase.nav.actionDuplicate")) },
|
|
212
|
+
{ id: "download", label: t("showcase.nav.actionDownload"), icon: <FaDownload />, disabled: true },
|
|
213
|
+
{ id: "delete", label: t("showcase.nav.actionDelete"), icon: <FaTrash />, danger: true, divider: true, onClick: () => setLastAction(t("showcase.nav.actionDelete")) },
|
|
206
214
|
];
|
|
207
215
|
|
|
208
216
|
const code = `<ITDropdownMenu\n items={[\n { id: 'edit', label: 'Editar', icon: <FaEdit />, onClick: edit },\n { id: 'delete', label: 'Eliminar', icon: <FaTrash />, danger: true, divider: true, onClick: remove },\n ]}\n/>`;
|
|
@@ -210,15 +218,15 @@ export const DropdownMenuShowcase = () => {
|
|
|
210
218
|
return (
|
|
211
219
|
<ShowcaseLayout
|
|
212
220
|
title="ITDropdownMenu"
|
|
213
|
-
description="
|
|
221
|
+
description={t("showcase.nav.dropdownDesc")}
|
|
214
222
|
code={code}
|
|
215
223
|
demo={
|
|
216
224
|
<div className="w-full max-w-md">
|
|
217
|
-
<ITCard title="
|
|
225
|
+
<ITCard title={t("showcase.nav.rowActions")}>
|
|
218
226
|
<div className="flex items-center justify-between">
|
|
219
227
|
<div>
|
|
220
|
-
<p className="text-
|
|
221
|
-
<p className="text-xs text-slate-500"
|
|
228
|
+
<p className="font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-400">Reporte Q3.pdf</p>
|
|
229
|
+
<p className="text-xs text-slate-500">{t("showcase.nav.lastAction", { action: lastAction })}</p>
|
|
222
230
|
</div>
|
|
223
231
|
<ITDropdownMenu items={items} />
|
|
224
232
|
</div>
|
|
@@ -227,14 +235,14 @@ export const DropdownMenuShowcase = () => {
|
|
|
227
235
|
}
|
|
228
236
|
controls={
|
|
229
237
|
<p className="text-xs text-slate-500">
|
|
230
|
-
|
|
238
|
+
{t("showcase.nav.dropdownKeyboardHint")}
|
|
231
239
|
</p>
|
|
232
240
|
}
|
|
233
241
|
gallery={
|
|
234
242
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
|
|
235
243
|
<div className="w-full max-w-xs">
|
|
236
|
-
<p className="mb-3 text-[10px] font-bold uppercase tracking-wider text-slate-400">
|
|
237
|
-
<ITDropdownMenu items={items} trigger={<span className="text-sm font-semibold px-1">
|
|
244
|
+
<p className="mb-3 text-[10px] font-bold uppercase tracking-wider text-slate-400">{t("showcase.nav.customTrigger")}</p>
|
|
245
|
+
<ITDropdownMenu items={items} trigger={<span className="text-sm font-semibold px-1">{t("showcase.nav.actions")}</span>} triggerLabel={t("showcase.nav.actions")} placement="bottom-start" />
|
|
238
246
|
</div>
|
|
239
247
|
<div className="w-full max-w-xs">
|
|
240
248
|
<p className="mb-3 text-[10px] font-bold uppercase tracking-wider text-slate-400">Placement top-start</p>
|