@axzydev/axzy_ui_system 1.5.0 → 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/dist/index.css +1 -1
- package/dist/layered.css +1 -1
- package/package.json +1 -1
- package/src/dev.css +0 -16
- package/src/sandbox/i18n.ts +10 -0
- package/src/sandbox/ui.tsx +98 -1
- package/src/showcases/DataShowcases.tsx +15 -15
- package/src/showcases/FormShowcases.tsx +5 -5
- package/src/showcases/LayoutPrimitivesShowcases.tsx +2 -2
- package/src/showcases/PageShowcases.tsx +10 -10
- package/src/showcases/ShowcaseLayout.tsx +145 -162
- package/src/showcases/StructureShowcases.tsx +59 -20
package/package.json
CHANGED
package/src/dev.css
CHANGED
|
@@ -116,19 +116,3 @@ html {
|
|
|
116
116
|
animation: none;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
|
|
120
|
-
/* ──────────────────────────────────────────────
|
|
121
|
-
PANEL DE PROPIEDADES A ANCHO COMPLETO (dev.css)
|
|
122
|
-
Cuando la vitrina ocupa las 12 columnas, las filas `justify-between` de los
|
|
123
|
-
controles dejaban la etiqueta a un lado y el control a 800px del otro. Aquí
|
|
124
|
-
el control se agrupa junto a su etiqueta.
|
|
125
|
-
────────────────────────────────────────────── */
|
|
126
|
-
.it-panel-ancho .justify-between {
|
|
127
|
-
justify-content: flex-start;
|
|
128
|
-
gap: 0.75rem;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/* Las notas del panel no se estiran a 100+ caracteres por línea. */
|
|
132
|
-
.it-panel-ancho p {
|
|
133
|
-
max-width: 72ch;
|
|
134
|
-
}
|
package/src/sandbox/i18n.ts
CHANGED
|
@@ -72,6 +72,11 @@ export const sandboxMessages: ITMessagesByLocale = {
|
|
|
72
72
|
"showcase.layout.docs": "Documentación",
|
|
73
73
|
"showcase.layout.eyebrow": "Vitrina de componentes",
|
|
74
74
|
"showcase.layout.gallery": "Variaciones y estados (Galería)",
|
|
75
|
+
"showcase.layout.galleryTitle": "Variaciones y estados",
|
|
76
|
+
"showcase.layout.viewCode": "Código",
|
|
77
|
+
"showcase.layout.hideCode": "Ocultar",
|
|
78
|
+
"showcase.layout.controls": "Controles",
|
|
79
|
+
"showcase.layout.api": "API del componente",
|
|
75
80
|
"showcase.layout.jsxCode": "Código JSX",
|
|
76
81
|
"showcase.layout.notes": "Notas",
|
|
77
82
|
"showcase.layout.overview": "Descripción general",
|
|
@@ -1013,6 +1018,11 @@ export const sandboxMessages: ITMessagesByLocale = {
|
|
|
1013
1018
|
"showcase.layout.docs": "Docs",
|
|
1014
1019
|
"showcase.layout.eyebrow": "Component showcase",
|
|
1015
1020
|
"showcase.layout.gallery": "Variations & States (Gallery)",
|
|
1021
|
+
"showcase.layout.galleryTitle": "Variations & states",
|
|
1022
|
+
"showcase.layout.viewCode": "Code",
|
|
1023
|
+
"showcase.layout.hideCode": "Hide",
|
|
1024
|
+
"showcase.layout.controls": "Controls",
|
|
1025
|
+
"showcase.layout.api": "Component API",
|
|
1016
1026
|
"showcase.layout.jsxCode": "JSX Code",
|
|
1017
1027
|
"showcase.layout.notes": "Notes",
|
|
1018
1028
|
"showcase.layout.overview": "Overview",
|
package/src/sandbox/ui.tsx
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { useState, type ReactNode } from "react";
|
|
16
|
-
import { FaCheck, FaCopy } from "react-icons/fa";
|
|
16
|
+
import { FaCheck, FaCode, FaCopy } from "react-icons/fa";
|
|
17
17
|
import { useITTranslation } from "@/i18n";
|
|
18
18
|
|
|
19
19
|
/** Eyebrow mono apagado: encabezados de sección y etiquetas de metadato. */
|
|
@@ -367,6 +367,7 @@ export const BloqueCodigo = ({
|
|
|
367
367
|
/>
|
|
368
368
|
</div>
|
|
369
369
|
<pre
|
|
370
|
+
tabIndex={0}
|
|
370
371
|
className={`overflow-x-auto whitespace-pre-wrap p-4 font-mono text-xs leading-relaxed text-slate-200 ${
|
|
371
372
|
compact ? "max-h-[420px] overflow-y-auto" : ""
|
|
372
373
|
}`}
|
|
@@ -375,3 +376,99 @@ export const BloqueCodigo = ({
|
|
|
375
376
|
</pre>
|
|
376
377
|
</div>
|
|
377
378
|
);
|
|
379
|
+
|
|
380
|
+
/** Props de `EjemploContenedor`. */
|
|
381
|
+
export interface EjemploContenedorProps {
|
|
382
|
+
/** Número del ejemplo (`01`, `02`…). Opcional. */
|
|
383
|
+
numero?: string;
|
|
384
|
+
/** Título del ejemplo (mono, mayúsculas). */
|
|
385
|
+
titulo: string;
|
|
386
|
+
/** El demo. */
|
|
387
|
+
children: ReactNode;
|
|
388
|
+
/** Código fuente del ejemplo: si se pasa, aparece el botón «Código». */
|
|
389
|
+
codigo?: string;
|
|
390
|
+
/** Nota al pie, bajo el demo. */
|
|
391
|
+
nota?: string;
|
|
392
|
+
/** Superficie del demo sin padding (layouts completos). */
|
|
393
|
+
sangrado?: boolean;
|
|
394
|
+
/** Clases extra de la superficie del demo. */
|
|
395
|
+
className?: string;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Contenedor de un ejemplo del sandbox: cabecera con número, título y la acción
|
|
400
|
+
* de ver el código (siempre visible), superficie del demo y nota opcional. El
|
|
401
|
+
* código se despliega **dentro** del mismo contenedor, no en una pestaña aparte.
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* ```tsx
|
|
405
|
+
* <EjemploContenedor numero="01" titulo="Con icono" codigo={code}>
|
|
406
|
+
* <ITButton icon={<FaSave />}>Guardar</ITButton>
|
|
407
|
+
* </EjemploContenedor>
|
|
408
|
+
* ```
|
|
409
|
+
*/
|
|
410
|
+
export const EjemploContenedor = ({
|
|
411
|
+
numero,
|
|
412
|
+
titulo,
|
|
413
|
+
children,
|
|
414
|
+
codigo,
|
|
415
|
+
nota,
|
|
416
|
+
sangrado = false,
|
|
417
|
+
className = "",
|
|
418
|
+
}: EjemploContenedorProps) => {
|
|
419
|
+
const { t } = useITTranslation();
|
|
420
|
+
const [verCodigo, setVerCodigo] = useState(false);
|
|
421
|
+
|
|
422
|
+
return (
|
|
423
|
+
<section className={`overflow-hidden rounded-[10px] border ${FILETE}`}>
|
|
424
|
+
<header
|
|
425
|
+
className={`flex flex-wrap items-center gap-x-3 gap-y-2 border-b bg-slate-50/70 px-4 py-2.5 dark:bg-slate-950/40 ${FILETE}`}
|
|
426
|
+
>
|
|
427
|
+
{numero && (
|
|
428
|
+
<span className="font-mono text-[10px] tabular-nums text-slate-400 dark:text-slate-500">
|
|
429
|
+
{numero}
|
|
430
|
+
</span>
|
|
431
|
+
)}
|
|
432
|
+
<h2 className="min-w-0 flex-1 truncate font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:text-slate-200">
|
|
433
|
+
{titulo}
|
|
434
|
+
</h2>
|
|
435
|
+
|
|
436
|
+
{codigo && (
|
|
437
|
+
<button
|
|
438
|
+
type="button"
|
|
439
|
+
onClick={() => setVerCodigo(!verCodigo)}
|
|
440
|
+
aria-expanded={verCodigo}
|
|
441
|
+
className={`inline-flex items-center gap-1.5 rounded-[8px] border px-2.5 py-1 font-mono text-[10px] uppercase tracking-[0.12em] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/60 ${
|
|
442
|
+
verCodigo
|
|
443
|
+
? "border-primary-700 text-primary-700 dark:border-primary-500 dark:text-primary-500"
|
|
444
|
+
: "border-slate-200 text-slate-500 hover:text-slate-900 dark:border-slate-700 dark:text-slate-400 dark:hover:text-white"
|
|
445
|
+
}`}
|
|
446
|
+
>
|
|
447
|
+
<FaCode size={10} />
|
|
448
|
+
{verCodigo ? t("showcase.layout.hideCode") : t("showcase.layout.viewCode")}
|
|
449
|
+
</button>
|
|
450
|
+
)}
|
|
451
|
+
</header>
|
|
452
|
+
|
|
453
|
+
<div
|
|
454
|
+
className={`bg-white dark:bg-slate-950 ${sangrado ? "" : "p-5 sm:p-6"} ${className}`}
|
|
455
|
+
>
|
|
456
|
+
{children}
|
|
457
|
+
</div>
|
|
458
|
+
|
|
459
|
+
{nota && (
|
|
460
|
+
<p
|
|
461
|
+
className={`border-t px-4 py-2.5 font-mono text-[11px] leading-relaxed text-slate-500 dark:text-slate-400 ${FILETE}`}
|
|
462
|
+
>
|
|
463
|
+
{nota}
|
|
464
|
+
</p>
|
|
465
|
+
)}
|
|
466
|
+
|
|
467
|
+
{codigo && verCodigo && (
|
|
468
|
+
<div className={`border-t p-3 ${FILETE}`}>
|
|
469
|
+
<BloqueCodigo code={codigo} compact />
|
|
470
|
+
</div>
|
|
471
|
+
)}
|
|
472
|
+
</section>
|
|
473
|
+
);
|
|
474
|
+
};
|
|
@@ -418,7 +418,7 @@ export const TableShowcase = () => {
|
|
|
418
418
|
gallery={
|
|
419
419
|
<div className="space-y-6">
|
|
420
420
|
<div>
|
|
421
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
421
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryCustomCardsHover")}</h3>
|
|
422
422
|
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
|
423
423
|
{TABLE_DATA.slice(0, 4).map((row, i) => {
|
|
424
424
|
const initials = (row.name as string).split(" ").map((w: string) => w[0]).join("");
|
|
@@ -455,7 +455,7 @@ export const TableShowcase = () => {
|
|
|
455
455
|
</div>
|
|
456
456
|
|
|
457
457
|
<div>
|
|
458
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
458
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryDefaultCards")}</h3>
|
|
459
459
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
460
460
|
<ITTable
|
|
461
461
|
columns={columns}
|
|
@@ -469,7 +469,7 @@ export const TableShowcase = () => {
|
|
|
469
469
|
</div>
|
|
470
470
|
|
|
471
471
|
<div>
|
|
472
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
472
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryCustomCardsPagination")}</h3>
|
|
473
473
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
474
474
|
<ITTable
|
|
475
475
|
columns={columns}
|
|
@@ -501,7 +501,7 @@ export const TableShowcase = () => {
|
|
|
501
501
|
</div>
|
|
502
502
|
|
|
503
503
|
<div>
|
|
504
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
504
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryCompactFixed")}</h3>
|
|
505
505
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800" style={{ maxWidth: 560 }}>
|
|
506
506
|
<ITTable
|
|
507
507
|
columns={fixedColumns}
|
|
@@ -515,7 +515,7 @@ export const TableShowcase = () => {
|
|
|
515
515
|
</div>
|
|
516
516
|
|
|
517
517
|
<div>
|
|
518
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
518
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryPinnedNameActions")}</h3>
|
|
519
519
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800" style={{ maxWidth: 520 }}>
|
|
520
520
|
<ITTable
|
|
521
521
|
columns={pinnedColumns}
|
|
@@ -532,7 +532,7 @@ export const TableShowcase = () => {
|
|
|
532
532
|
</div>
|
|
533
533
|
|
|
534
534
|
<div>
|
|
535
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
535
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryAutoCards")}</h3>
|
|
536
536
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800" style={{ maxWidth: 420 }}>
|
|
537
537
|
<ITTable
|
|
538
538
|
columns={columns}
|
|
@@ -545,7 +545,7 @@ export const TableShowcase = () => {
|
|
|
545
545
|
</div>
|
|
546
546
|
|
|
547
547
|
<div>
|
|
548
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
548
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryVirtualized")}</h3>
|
|
549
549
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
550
550
|
<ITTable
|
|
551
551
|
columns={virtualColumns}
|
|
@@ -563,7 +563,7 @@ export const TableShowcase = () => {
|
|
|
563
563
|
</div>
|
|
564
564
|
|
|
565
565
|
<div>
|
|
566
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
566
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryColumnFilters")}</h3>
|
|
567
567
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
568
568
|
<ITTable
|
|
569
569
|
columns={filterDemoColumns}
|
|
@@ -579,7 +579,7 @@ export const TableShowcase = () => {
|
|
|
579
579
|
</div>
|
|
580
580
|
|
|
581
581
|
<div>
|
|
582
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
582
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryDesignOverrides")}</h3>
|
|
583
583
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
584
584
|
<ITTable
|
|
585
585
|
columns={columns}
|
|
@@ -609,7 +609,7 @@ export const TableShowcase = () => {
|
|
|
609
609
|
</div>
|
|
610
610
|
|
|
611
611
|
<div>
|
|
612
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
612
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryPerColumnDesign")}</h3>
|
|
613
613
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
614
614
|
<ITTable
|
|
615
615
|
columns={columns.map((col: any) =>
|
|
@@ -1062,7 +1062,7 @@ export const DataTableShowcase = () => {
|
|
|
1062
1062
|
gallery={
|
|
1063
1063
|
<div className="space-y-6">
|
|
1064
1064
|
<div>
|
|
1065
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
1065
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryCustomCardsHover")}</h3>
|
|
1066
1066
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
1067
1067
|
<GalleryDataTable
|
|
1068
1068
|
title={t("showcase.data.teamMembers")}
|
|
@@ -1105,7 +1105,7 @@ export const DataTableShowcase = () => {
|
|
|
1105
1105
|
</div>
|
|
1106
1106
|
|
|
1107
1107
|
<div>
|
|
1108
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
1108
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryDefaultCardsPagination")}</h3>
|
|
1109
1109
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
1110
1110
|
<GalleryDataTable
|
|
1111
1111
|
size="sm"
|
|
@@ -1116,7 +1116,7 @@ export const DataTableShowcase = () => {
|
|
|
1116
1116
|
</div>
|
|
1117
1117
|
|
|
1118
1118
|
<div>
|
|
1119
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
1119
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryDesignOverrides")}</h3>
|
|
1120
1120
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
1121
1121
|
<ITDataTable
|
|
1122
1122
|
columns={userColumns}
|
|
@@ -1140,7 +1140,7 @@ export const DataTableShowcase = () => {
|
|
|
1140
1140
|
</div>
|
|
1141
1141
|
|
|
1142
1142
|
<div>
|
|
1143
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
1143
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryPinnedIdActive")}</h3>
|
|
1144
1144
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800" style={{ maxWidth: 520 }}>
|
|
1145
1145
|
<ITDataTable
|
|
1146
1146
|
columns={pinnedColumns}
|
|
@@ -1158,7 +1158,7 @@ export const DataTableShowcase = () => {
|
|
|
1158
1158
|
</div>
|
|
1159
1159
|
|
|
1160
1160
|
<div>
|
|
1161
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
1161
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.data.galleryServerVirtualization", { page: dtVirtualized ? 200 : 10 })}</h3>
|
|
1162
1162
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
1163
1163
|
<ITDataTable
|
|
1164
1164
|
key={dtVirtualized ? "dt-virt-on" : "dt-virt-off"}
|
|
@@ -33,7 +33,7 @@ const CodeExampleBlock = ({ title, desc, code, children }: { title: string; desc
|
|
|
33
33
|
<div className="px-6 py-4 border-b border-slate-200 dark:border-slate-700">
|
|
34
34
|
<ITFlex justify="between" align="center">
|
|
35
35
|
<div>
|
|
36
|
-
<h3 className="text-
|
|
36
|
+
<h3 className="w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{title}</h3>
|
|
37
37
|
<p className="text-xs text-slate-500 mt-1">{desc}</p>
|
|
38
38
|
</div>
|
|
39
39
|
<ITButton variant="outlined" color="gray" size="sm" onClick={() => setShowCode(!showCode)}>
|
|
@@ -150,7 +150,7 @@ export const ButtonShowcase = () => {
|
|
|
150
150
|
gallery={
|
|
151
151
|
<div className="space-y-6">
|
|
152
152
|
<div>
|
|
153
|
-
<h3 className="text-
|
|
153
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.forms.galleryWithIcon")}</h3>
|
|
154
154
|
<div className="flex flex-wrap gap-3">
|
|
155
155
|
<ITButton label={t("showcase.common.save")} icon={<FaSave />} color="success" />
|
|
156
156
|
<ITButton label={t("showcase.common.edit")} icon={<FaEdit />} color="info" />
|
|
@@ -159,7 +159,7 @@ export const ButtonShowcase = () => {
|
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<div>
|
|
162
|
-
<h3 className="text-
|
|
162
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.forms.galleryVariants")}</h3>
|
|
163
163
|
<div className="flex flex-wrap gap-3">
|
|
164
164
|
<ITButton label="Filled" variant="filled" />
|
|
165
165
|
<ITButton label="Outlined" variant="outlined" />
|
|
@@ -170,7 +170,7 @@ export const ButtonShowcase = () => {
|
|
|
170
170
|
</div>
|
|
171
171
|
</div>
|
|
172
172
|
<div>
|
|
173
|
-
<h3 className="text-
|
|
173
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.forms.gallerySemanticColors")}</h3>
|
|
174
174
|
<div className="flex flex-wrap gap-3">
|
|
175
175
|
<ITButton label="Primary" color="primary" />
|
|
176
176
|
<ITButton label="Secondary" color="secondary" />
|
|
@@ -2006,7 +2006,7 @@ const MaskedDemo = ({
|
|
|
2006
2006
|
const [complete, setComplete] = useState<string | null>(null);
|
|
2007
2007
|
return (
|
|
2008
2008
|
<div>
|
|
2009
|
-
<h3 className="text-
|
|
2009
|
+
<h3 className="mb-2 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{title}</h3>
|
|
2010
2010
|
<ITMaskedInput
|
|
2011
2011
|
name={title.toLowerCase().replace(/\s+/g, "_")}
|
|
2012
2012
|
label={mask}
|
|
@@ -1347,7 +1347,7 @@ export const GridShowcase = () => {
|
|
|
1347
1347
|
|
|
1348
1348
|
return (
|
|
1349
1349
|
<ShowcaseLayout
|
|
1350
|
-
|
|
1350
|
+
demoMinAncho={780}
|
|
1351
1351
|
title={t("showcase.layoutPrimitives.screensTitle")}
|
|
1352
1352
|
description={t("showcase.layoutPrimitives.screensSubtitle")}
|
|
1353
1353
|
code={code}
|
|
@@ -1458,7 +1458,7 @@ export const ScreenFormShowcase = () => {
|
|
|
1458
1458
|
|
|
1459
1459
|
return (
|
|
1460
1460
|
<ShowcaseLayout
|
|
1461
|
-
|
|
1461
|
+
demoMinAncho={780}
|
|
1462
1462
|
title={t("showcase.layoutPrimitives.screensTitle")}
|
|
1463
1463
|
description={t("showcase.layoutPrimitives.screensSubtitle")}
|
|
1464
1464
|
code={formCode}
|
|
@@ -219,7 +219,7 @@ export const PageHeaderShowcase = () => {
|
|
|
219
219
|
<ITStack spacing={6}>
|
|
220
220
|
{/* 1. Team management — full header + search + filter bar + user rows */}
|
|
221
221
|
<div>
|
|
222
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
222
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryTeamManagement")}</h3>
|
|
223
223
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-950">
|
|
224
224
|
<div className="p-5 pb-3">
|
|
225
225
|
<ITPageHeader
|
|
@@ -282,7 +282,7 @@ export const PageHeaderShowcase = () => {
|
|
|
282
282
|
|
|
283
283
|
{/* 2. Detail page — back + breadcrumbs + back button + save/cancel */}
|
|
284
284
|
<div>
|
|
285
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
285
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryDetailEdit")}</h3>
|
|
286
286
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-950">
|
|
287
287
|
<div className="p-5 pb-3">
|
|
288
288
|
<ITPageHeader
|
|
@@ -319,7 +319,7 @@ export const PageHeaderShowcase = () => {
|
|
|
319
319
|
|
|
320
320
|
{/* 3. Dashboard header — icon + title + desc + date range + refresh */}
|
|
321
321
|
<div>
|
|
322
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
322
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryDashboard")}</h3>
|
|
323
323
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-950">
|
|
324
324
|
<div className="p-5">
|
|
325
325
|
<ITPageHeader
|
|
@@ -345,7 +345,7 @@ export const PageHeaderShowcase = () => {
|
|
|
345
345
|
|
|
346
346
|
{/* 4. Settings header — no icon, no breadcrumbs, just title + desc + save */}
|
|
347
347
|
<div>
|
|
348
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
348
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.gallerySettingsPrefs")}</h3>
|
|
349
349
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-950">
|
|
350
350
|
<div className="p-5">
|
|
351
351
|
<ITPageHeader
|
|
@@ -364,7 +364,7 @@ export const PageHeaderShowcase = () => {
|
|
|
364
364
|
|
|
365
365
|
{/* 5. Users list — icon + breadcrumbs + search in actions + add button */}
|
|
366
366
|
<div>
|
|
367
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
367
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryUsersList")}</h3>
|
|
368
368
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-950">
|
|
369
369
|
<div className="p-5">
|
|
370
370
|
<ITPageHeader
|
|
@@ -712,7 +712,7 @@ export const PageShowcase = () => {
|
|
|
712
712
|
<ITStack spacing={6}>
|
|
713
713
|
{/* 1. Users list with ITTable */}
|
|
714
714
|
<div>
|
|
715
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
715
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryUsersTable")}</h3>
|
|
716
716
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
717
717
|
<ITPage
|
|
718
718
|
horizontalPadding={hPaddingValue}
|
|
@@ -740,7 +740,7 @@ export const PageShowcase = () => {
|
|
|
740
740
|
|
|
741
741
|
{/* 2. Product detail */}
|
|
742
742
|
<div>
|
|
743
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
743
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryProductDetail")}</h3>
|
|
744
744
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
745
745
|
<ITPage
|
|
746
746
|
horizontalPadding={hPaddingValue}
|
|
@@ -788,7 +788,7 @@ export const PageShowcase = () => {
|
|
|
788
788
|
|
|
789
789
|
{/* 3. Edit profile form */}
|
|
790
790
|
<div>
|
|
791
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
791
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryEditProfile")}</h3>
|
|
792
792
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
793
793
|
<ITPage
|
|
794
794
|
horizontalPadding={hPaddingValue}
|
|
@@ -839,7 +839,7 @@ export const PageShowcase = () => {
|
|
|
839
839
|
|
|
840
840
|
{/* 4. Orders with table */}
|
|
841
841
|
<div>
|
|
842
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
842
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.galleryOrdersTable")}</h3>
|
|
843
843
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
844
844
|
<ITPage
|
|
845
845
|
horizontalPadding={hPaddingValue}
|
|
@@ -892,7 +892,7 @@ export const PageShowcase = () => {
|
|
|
892
892
|
|
|
893
893
|
{/* 5. Settings with tabs */}
|
|
894
894
|
<div>
|
|
895
|
-
<h3 className="mb-3 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-500 dark:text-slate-
|
|
895
|
+
<h3 className="mb-3 w-fit border-l-2 border-primary-700 pl-2.5 font-mono text-[11px] font-medium uppercase tracking-[0.14em] text-slate-700 dark:border-primary-500 dark:text-slate-200">{t("showcase.pages.gallerySettings")}</h3>
|
|
896
896
|
<div className="overflow-hidden rounded-[10px] border border-slate-200 dark:border-slate-800">
|
|
897
897
|
<ITPage
|
|
898
898
|
horizontalPadding={hPaddingValue}
|