@axzydev/axzy_ui_system 1.2.15 → 1.3.0
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.cjs +3067 -1409
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.cts +620 -54
- package/dist/index.d.ts +620 -54
- package/dist/index.js +2983 -1320
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/App.tsx +28 -0
- package/src/components/atoms/badget/badget.tsx +2 -4
- package/src/components/atoms/chip/chip.doc.mdx +47 -0
- package/src/components/atoms/chip/chip.props.ts +32 -0
- package/src/components/atoms/chip/chip.stories.tsx +64 -0
- package/src/components/atoms/chip/chip.tsx +112 -0
- package/src/components/atoms/grid/grid.tsx +1 -2
- package/src/components/molecules/accordion/accordion.doc.mdx +47 -0
- package/src/components/molecules/accordion/accordion.props.ts +35 -0
- package/src/components/molecules/accordion/accordion.stories.tsx +68 -0
- package/src/components/molecules/accordion/accordion.tsx +123 -0
- package/src/components/molecules/chip-input/chip-input.doc.mdx +44 -0
- package/src/components/molecules/chip-input/chip-input.props.ts +42 -0
- package/src/components/molecules/chip-input/chip-input.stories.tsx +52 -0
- package/src/components/molecules/chip-input/chip-input.tsx +205 -0
- package/src/components/molecules/date-picker/datePicker.tsx +45 -56
- package/src/components/molecules/dropdown-menu/dropdown-menu.doc.mdx +46 -0
- package/src/components/molecules/dropdown-menu/dropdown-menu.props.ts +41 -0
- package/src/components/molecules/dropdown-menu/dropdown-menu.stories.tsx +41 -0
- package/src/components/molecules/dropdown-menu/dropdown-menu.tsx +219 -0
- package/src/components/molecules/field/field.doc.mdx +43 -0
- package/src/components/molecules/field/field.props.ts +23 -0
- package/src/components/molecules/field/field.stories.tsx +42 -0
- package/src/components/molecules/field/field.tsx +54 -0
- package/src/components/molecules/multi-select/multi-select.doc.mdx +55 -0
- package/src/components/molecules/multi-select/multi-select.props.ts +65 -0
- package/src/components/molecules/multi-select/multi-select.stories.tsx +59 -0
- package/src/components/molecules/multi-select/multi-select.tsx +386 -0
- package/src/components/molecules/search-select/search-select.doc.mdx +5 -0
- package/src/components/molecules/search-select/search-select.props.ts +10 -1
- package/src/components/molecules/search-select/search-select.stories.tsx +18 -0
- package/src/components/molecules/search-select/search-select.tsx +102 -28
- package/src/components/molecules/time-picker/timePicker.tsx +14 -26
- package/src/components/molecules/wysiwyg/wysiwyg.props.ts +51 -0
- package/src/components/molecules/wysiwyg/wysiwyg.stories.tsx +95 -0
- package/src/components/molecules/wysiwyg/wysiwyg.tsx +609 -0
- package/src/components/organisms/data-table/dataTable.tsx +16 -5
- package/src/components/organisms/form-builder/fieldRenderer.tsx +144 -27
- package/src/components/organisms/form-builder/formBuilder.context.tsx +77 -15
- package/src/components/organisms/form-builder/formBuilder.doc.mdx +213 -86
- package/src/components/organisms/form-builder/formBuilder.props.ts +118 -36
- package/src/components/organisms/form-builder/formBuilder.stories.tsx +694 -96
- package/src/components/organisms/form-builder/formBuilder.tsx +152 -69
- package/src/components/organisms/form-builder/useFormBuilder.ts +59 -21
- package/src/hooks/useFloatingPanel.ts +100 -0
- package/src/index.ts +24 -4
- package/src/showcases/DataShowcases.tsx +76 -0
- package/src/showcases/FormShowcases.tsx +396 -10
- package/src/showcases/HomeShowcase.tsx +6 -6
- package/src/showcases/NavigationShowcases.tsx +72 -2
- package/src/showcases/StructureShowcases.tsx +64 -0
- package/src/types/chip.types.ts +13 -0
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
ITDivider,
|
|
31
31
|
ITProgress,
|
|
32
32
|
ITSelect,
|
|
33
|
+
ITAccordion,
|
|
33
34
|
} from "../index";
|
|
34
35
|
import { ShowcaseLayout, CodeViewer } from "./ShowcaseLayout";
|
|
35
36
|
|
|
@@ -1090,3 +1091,66 @@ export const LayoutShowcase = () => {
|
|
|
1090
1091
|
/>
|
|
1091
1092
|
);
|
|
1092
1093
|
};
|
|
1094
|
+
|
|
1095
|
+
// ─────────────────────────────────────────
|
|
1096
|
+
// ITAccordion Showcase
|
|
1097
|
+
// ─────────────────────────────────────────
|
|
1098
|
+
export const AccordionShowcase = () => {
|
|
1099
|
+
const [allowMultiple, setAllowMultiple] = useState(false);
|
|
1100
|
+
|
|
1101
|
+
const items = [
|
|
1102
|
+
{ id: "what", title: "¿Qué es AXZY UI System?", content: "Una librería de componentes React + TypeScript con Tailwind CSS v4." },
|
|
1103
|
+
{ id: "install", title: "¿Cómo lo instalo?", content: "pnpm add @axzydev/axzy_ui_system" },
|
|
1104
|
+
{ id: "theme", title: "¿Puedo personalizar el tema?", content: "Sí, usa ITThemeProvider para definir la paleta y los tokens." },
|
|
1105
|
+
{ id: "disabled", title: "Sección deshabilitada", content: "No se puede abrir.", disabled: true },
|
|
1106
|
+
];
|
|
1107
|
+
|
|
1108
|
+
const code = `<ITAccordion\n allowMultiple={${allowMultiple}}\n defaultOpenIds={['what']}\n items={[\n { id: 'what', title: '¿Qué es AXZY?', content: '...' },\n { id: 'install', title: '¿Cómo lo instalo?', content: '...' },\n ]}\n/>`;
|
|
1109
|
+
|
|
1110
|
+
return (
|
|
1111
|
+
<ShowcaseLayout
|
|
1112
|
+
title="ITAccordion"
|
|
1113
|
+
description="Secciones plegables para FAQs, paneles de configuración y contenido largo. Controlado o no controlado, single o multiple, con animación CSS grid-rows."
|
|
1114
|
+
code={code}
|
|
1115
|
+
demo={
|
|
1116
|
+
<div className="w-full max-w-xl">
|
|
1117
|
+
<ITAccordion items={items} allowMultiple={allowMultiple} defaultOpenIds={["what"]} />
|
|
1118
|
+
</div>
|
|
1119
|
+
}
|
|
1120
|
+
controls={
|
|
1121
|
+
<div className="flex items-center justify-between">
|
|
1122
|
+
<span className="text-sm font-semibold text-gray-700">Permitir múltiples abiertas</span>
|
|
1123
|
+
<ITSlideToggle isOn={allowMultiple} onToggle={setAllowMultiple} size="sm" />
|
|
1124
|
+
</div>
|
|
1125
|
+
}
|
|
1126
|
+
gallery={
|
|
1127
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
|
|
1128
|
+
<div>
|
|
1129
|
+
<p className="mb-3 text-[10px] font-bold uppercase tracking-wider text-slate-400">Bordered</p>
|
|
1130
|
+
<ITAccordion items={items.slice(0, 3)} variant="bordered" defaultOpenIds={["install"]} />
|
|
1131
|
+
</div>
|
|
1132
|
+
<div>
|
|
1133
|
+
<p className="mb-3 text-[10px] font-bold uppercase tracking-wider text-slate-400">Separated (default)</p>
|
|
1134
|
+
<ITAccordion items={items.slice(0, 3)} defaultOpenIds={["theme"]} />
|
|
1135
|
+
</div>
|
|
1136
|
+
</div>
|
|
1137
|
+
}
|
|
1138
|
+
doc={{
|
|
1139
|
+
summary: "Secciones plegables (FAQ, settings) controladas o no controladas.",
|
|
1140
|
+
examples: [
|
|
1141
|
+
"<ITAccordion items={items} defaultOpenIds={['a']} />",
|
|
1142
|
+
"<ITAccordion items={items} allowMultiple variant=\"bordered\" />",
|
|
1143
|
+
],
|
|
1144
|
+
props: [
|
|
1145
|
+
{ name: "items", type: "ITAccordionItem[]", required: true, description: "Secciones { id, title, content, icon?, disabled? }." },
|
|
1146
|
+
{ name: "allowMultiple", type: "boolean", default: "false", description: "Permite varias abiertas." },
|
|
1147
|
+
{ name: "defaultOpenIds", type: "string[]", default: "[]", description: "Abiertas al inicio (no controlado)." },
|
|
1148
|
+
{ name: "openIds", type: "string[]", description: "Abiertas (modo controlado)." },
|
|
1149
|
+
{ name: "onChange", type: "(openIds: string[]) => void", description: "Devuelve las abiertas." },
|
|
1150
|
+
{ name: "variant", type: '"default" | "separated" | "bordered"', default: '"separated"', description: "Estilo visual." },
|
|
1151
|
+
],
|
|
1152
|
+
notes: ["Los headers exponen aria-expanded / aria-controls; el cuerpo es un region etiquetado."],
|
|
1153
|
+
}}
|
|
1154
|
+
/>
|
|
1155
|
+
);
|
|
1156
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Visual styles available for {@link ITChip}. */
|
|
2
|
+
export const chipVariants = {
|
|
3
|
+
soft: "soft",
|
|
4
|
+
filled: "filled",
|
|
5
|
+
outlined: "outlined",
|
|
6
|
+
} as const;
|
|
7
|
+
|
|
8
|
+
/** Padding / font-size scale shared by all chip sizes. */
|
|
9
|
+
export const chipSizes = {
|
|
10
|
+
sm: "text-[11px] px-2 py-0.5 gap-1",
|
|
11
|
+
md: "text-xs px-2.5 py-1 gap-1.5",
|
|
12
|
+
lg: "text-sm px-3 py-1.5 gap-2",
|
|
13
|
+
} as const;
|