@axzydev/axzy_ui_system 1.4.7 → 1.5.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/README.md +2 -11
- package/dist/index.cjs +2174 -1570
- 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 +232 -19
- package/dist/index.d.ts +232 -19
- package/dist/index.js +1838 -1238
- 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.props.ts +10 -2
- package/src/components/molecules/table/table.tsx +163 -114
- 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.props.ts +3 -2
- package/src/components/organisms/data-table/dataTable.tsx +149 -81
- 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 +77 -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 +9 -3
- 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 +1929 -0
- package/src/sandbox/icons.tsx +25 -0
- package/src/sandbox/locale.tsx +72 -0
- package/src/sandbox/ui.tsx +377 -0
- package/src/sandbox/useHashRoute.ts +46 -10
- package/src/showcases/DataShowcases.tsx +201 -80
- package/src/showcases/FeedbackShowcases.tsx +37 -30
- package/src/showcases/FormShowcases.tsx +302 -214
- 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 +270 -216
- package/src/showcases/SizesShowcase.tsx +123 -64
- package/src/showcases/StructureShowcases.tsx +157 -131
- package/src/showcases/portfolioUi.tsx +153 -0
- package/src/showcases/techIcons.ts +3 -0
- package/src/types/table.types.ts +110 -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 -123
- 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 -115
- package/src/components/organisms/data-table/ITDataTable.stories.tsx +0 -353
- package/src/components/organisms/dialog/dialog.doc.mdx +0 -54
- package/src/components/organisms/dialog/dialog.stories.tsx +0 -126
- package/src/components/organisms/drawer/drawer.doc.mdx +0 -59
- package/src/components/organisms/drawer/drawer.stories.tsx +0 -40
- package/src/components/organisms/dropfile/dropfile.doc.mdx +0 -74
- package/src/components/organisms/dropfile/dropfile.stories.tsx +0 -93
- package/src/components/organisms/form-builder/formBuilder.doc.mdx +0 -251
- package/src/components/organisms/form-builder/formBuilder.stories.tsx +0 -914
- package/src/components/organisms/navbar/navbar.doc.mdx +0 -77
- package/src/components/organisms/navbar/navbar.stories.tsx +0 -83
- package/src/components/organisms/page-header/page-header.doc.mdx +0 -54
- package/src/components/organisms/page-header/page-header.stories.tsx +0 -74
- package/src/components/organisms/searchTable/searchTable.doc.mdx +0 -79
- package/src/components/organisms/searchTable/searchTable.stories.tsx +0 -73
- package/src/components/organisms/sidebar/sidebar.doc.mdx +0 -176
- package/src/components/organisms/sidebar/sidebar.stories.tsx +0 -234
- package/src/components/organisms/toast/toast.doc.mdx +0 -50
- package/src/components/organisms/toast/toast.stories.tsx +0 -137
- package/src/components/organisms/topbar/topbar.doc.mdx +0 -72
- package/src/components/organisms/topbar/topbar.stories.tsx +0 -79
- package/src/components/organisms/triple-filter/tripleFilter.doc.mdx +0 -62
- package/src/components/organisms/triple-filter/tripleFilter.stories.tsx +0 -31
- package/src/components/templates/layout/layout.doc.mdx +0 -53
- package/src/components/templates/layout/layout.stories.tsx +0 -113
- package/src/components/templates/page/page.doc.mdx +0 -86
- package/src/components/templates/page/page.stories.tsx +0 -97
- package/src/components/theme-provider/themeProvider.doc.mdx +0 -85
- package/src/components/theme-provider/themeProvider.stories.tsx +0 -58
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './popover.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITPopover
|
|
7
|
-
|
|
8
|
-
Floating content panel triggered by click on a trigger element. Supports four position placements and offers both uncontrolled (click toggle) and controlled (`isOpen`/`onClose`) modes.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `trigger` | `ReactNode` | — | Element that triggers the popover when clicked. |
|
|
15
|
-
| `children` | `ReactNode` | — | Content rendered inside the popover panel. |
|
|
16
|
-
| `position` | `"top" \| "bottom" \| "left" \| "right"` | `"bottom"` | Position of the popover relative to the trigger element. |
|
|
17
|
-
| `isOpen` | `boolean` | — | Controlled open state. When provided, the component acts in controlled mode. |
|
|
18
|
-
| `onClose` | `() => void` | — | Callback fired when the popover is closed in controlled mode. |
|
|
19
|
-
| `className` | `string` | — | Additional CSS classes for the container. |
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
import { ITPopover } from '@axzydev/axzy_ui_system';
|
|
25
|
-
|
|
26
|
-
<ITPopover trigger={<ITButton label="Abrir" />}>
|
|
27
|
-
<button>Editar</button>
|
|
28
|
-
<button>Eliminar</button>
|
|
29
|
-
</ITPopover>
|
|
30
|
-
|
|
31
|
-
<ITPopover
|
|
32
|
-
trigger={<ITButton label="Controlled" />}
|
|
33
|
-
position="top"
|
|
34
|
-
isOpen={open}
|
|
35
|
-
onClose={() => setOpen(false)}
|
|
36
|
-
>
|
|
37
|
-
<p>Contenido controlado</p>
|
|
38
|
-
</ITPopover>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Notes
|
|
42
|
-
|
|
43
|
-
- Default mode is uncontrolled: clicking the trigger toggles the popover open/closed.
|
|
44
|
-
- Controlled mode via `isOpen` and `onClose` allows external state management.
|
|
45
|
-
- Four positions available: `top`, `bottom`, `left`, `right` relative to the trigger element.
|
|
46
|
-
- Popover is dismissed automatically when clicking outside the panel.
|
|
47
|
-
- Ideal for dropdown menus, action lists, and contextual tool panels.
|
|
48
|
-
|
|
49
|
-
## Stories
|
|
50
|
-
|
|
51
|
-
<Primary />
|
|
52
|
-
<Controls />
|
|
53
|
-
<Stories />
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITPopover from "@/components/atoms/popover/popover";
|
|
3
|
-
import ITButton from "@/components/atoms/button/button";
|
|
4
|
-
import ITStack from "@/components/atoms/stack/stack";
|
|
5
|
-
|
|
6
|
-
const meta: Meta<typeof ITPopover> = {
|
|
7
|
-
title: "Components/Overlay/ITPopover",
|
|
8
|
-
component: ITPopover,
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export default meta;
|
|
12
|
-
type Story = StoryObj<typeof ITPopover>;
|
|
13
|
-
|
|
14
|
-
export const Default: Story = {
|
|
15
|
-
render: () => (
|
|
16
|
-
<ITPopover trigger={<ITButton label="Abrir Popover" />}>
|
|
17
|
-
<ITStack spacing={2}>
|
|
18
|
-
<p className="text-sm font-semibold">Opciones</p>
|
|
19
|
-
<button className="text-sm text-left text-slate-600 hover:text-slate-800">Editar</button>
|
|
20
|
-
<button className="text-sm text-left text-slate-600 hover:text-slate-800">Eliminar</button>
|
|
21
|
-
</ITStack>
|
|
22
|
-
</ITPopover>
|
|
23
|
-
),
|
|
24
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './progress.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITProgress
|
|
7
|
-
|
|
8
|
-
Progress indicator with determinate and indeterminate variants. Supports multiple semantic colors and three sizes for indicating completion or loading states.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `value` | `number` | `0` | Current progress value. |
|
|
15
|
-
| `max` | `number` | `100` | Maximum progress value. |
|
|
16
|
-
| `variant` | `"determinate" \| "indeterminate"` | `"determinate"` | Progress variant. `"determinate"` shows a fixed-width fill, `"indeterminate"` shows an animated pulsing bar. |
|
|
17
|
-
| `color` | `"primary" \| "secondary" \| "success" \| "danger" \| "warning" \| "info" \| "purple" \| "error" \| "gray"` | `"primary"` | Semantic color for the progress fill. |
|
|
18
|
-
| `size` | `"sm" \| "md" \| "lg"` | `"md"` | Height and visual scale of the progress bar. |
|
|
19
|
-
| `className` | `string` | — | Additional CSS classes for the container. |
|
|
20
|
-
| `style` | `CSSProperties` | — | Inline styles applied to the container. |
|
|
21
|
-
|
|
22
|
-
## Usage
|
|
23
|
-
|
|
24
|
-
```tsx
|
|
25
|
-
import { ITProgress } from '@axzydev/axzy_ui_system';
|
|
26
|
-
|
|
27
|
-
<ITProgress value={70} />
|
|
28
|
-
|
|
29
|
-
<ITProgress value={45} color="success" size="lg" />
|
|
30
|
-
|
|
31
|
-
<ITProgress variant="indeterminate" />
|
|
32
|
-
|
|
33
|
-
<ITProgress value={90} color="danger" size="sm" />
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Notes
|
|
37
|
-
|
|
38
|
-
- `determinate` mode shows a solid fill proportional to `value / max`.
|
|
39
|
-
- `indeterminate` mode renders a continuous animated bar for loading states where progress is unknown.
|
|
40
|
-
- All nine semantic colors are available for the fill.
|
|
41
|
-
- Sizes `sm`, `md`, and `lg` control bar height and overall scale.
|
|
42
|
-
- Use `style` for custom width or container-level overrides.
|
|
43
|
-
|
|
44
|
-
## Stories
|
|
45
|
-
|
|
46
|
-
<Primary />
|
|
47
|
-
<Controls />
|
|
48
|
-
<Stories />
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import ITProgress from "@/components/atoms/progress/progress";
|
|
4
|
-
import ITButton from "@/components/atoms/button/button";
|
|
5
|
-
|
|
6
|
-
const meta: Meta<typeof ITProgress> = {
|
|
7
|
-
title: "Components/Feedback/ITProgress",
|
|
8
|
-
component: ITProgress,
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export default meta;
|
|
12
|
-
type Story = StoryObj<typeof ITProgress>;
|
|
13
|
-
|
|
14
|
-
export const Determinate: Story = {
|
|
15
|
-
render: () => {
|
|
16
|
-
const [val, setVal] = useState(0);
|
|
17
|
-
return (
|
|
18
|
-
<div className="space-y-3">
|
|
19
|
-
<ITProgress value={val} />
|
|
20
|
-
<ITButton label="+10%" onClick={() => setVal(v => Math.min(v + 10, 100))} />
|
|
21
|
-
</div>
|
|
22
|
-
);
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const Indeterminate: Story = {
|
|
27
|
-
args: { variant: "indeterminate" },
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const Colors: Story = {
|
|
31
|
-
render: () => (
|
|
32
|
-
<div className="space-y-3">
|
|
33
|
-
<ITProgress value={70} color="primary" />
|
|
34
|
-
<ITProgress value={70} color="success" />
|
|
35
|
-
<ITProgress value={70} color="danger" />
|
|
36
|
-
<ITProgress value={70} color="warning" />
|
|
37
|
-
</div>
|
|
38
|
-
),
|
|
39
|
-
};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './radio.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITRadioGroup
|
|
7
|
-
|
|
8
|
-
Radio button group for selecting a single option from a set. Supports horizontal and vertical layouts, disabled state, and an options-array API for declarative rendering.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `name` | `string` | — | Name attribute for the radio input group. Used for form accessibility. |
|
|
15
|
-
| `value` | `string` | — | Currently selected value (controlled). |
|
|
16
|
-
| `onChange` | `(value: string) => void` | — | Callback fired when a radio option is selected. |
|
|
17
|
-
| `options` | `ITRadioOption[]` | — | Array of radio options: `{ value: string, label: ReactNode }`. |
|
|
18
|
-
| `disabled` | `boolean` | `false` | Whether the entire radio group is disabled. |
|
|
19
|
-
| `direction` | `"row" \| "column"` | `"column"` | Layout direction of the radio options. |
|
|
20
|
-
| `className` | `string` | — | Additional CSS classes for the container. |
|
|
21
|
-
|
|
22
|
-
## Usage
|
|
23
|
-
|
|
24
|
-
```tsx
|
|
25
|
-
import { ITRadioGroup } from '@axzydev/axzy_ui_system';
|
|
26
|
-
|
|
27
|
-
<ITRadioGroup
|
|
28
|
-
name="size"
|
|
29
|
-
value={selected}
|
|
30
|
-
onChange={setSelected}
|
|
31
|
-
options={[
|
|
32
|
-
{ value: "sm", label: "Small" },
|
|
33
|
-
{ value: "md", label: "Medium" },
|
|
34
|
-
{ value: "lg", label: "Large" },
|
|
35
|
-
]}
|
|
36
|
-
/>
|
|
37
|
-
|
|
38
|
-
<ITRadioGroup
|
|
39
|
-
name="layout"
|
|
40
|
-
value={selected}
|
|
41
|
-
onChange={setSelected}
|
|
42
|
-
direction="row"
|
|
43
|
-
options={[
|
|
44
|
-
{ value: "option1", label: "Option 1" },
|
|
45
|
-
{ value: "option2", label: "Option 2" },
|
|
46
|
-
]}
|
|
47
|
-
/>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Notes
|
|
51
|
-
|
|
52
|
-
- Fully controlled component: `value` and `onChange` must be provided.
|
|
53
|
-
- `direction="column"` stacks options vertically; `direction="row"` lays them out horizontally.
|
|
54
|
-
- `disabled` disables all radio inputs in the group at once.
|
|
55
|
-
- Label accepts `ReactNode`, allowing rich content like icons or custom markup.
|
|
56
|
-
- Group uses a shared `name` attribute, ensuring mutual exclusivity across options.
|
|
57
|
-
|
|
58
|
-
## Stories
|
|
59
|
-
|
|
60
|
-
<Primary />
|
|
61
|
-
<Controls />
|
|
62
|
-
<Stories />
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import ITRadioGroup from "@/components/atoms/radio/radio";
|
|
4
|
-
|
|
5
|
-
const meta: Meta<typeof ITRadioGroup> = {
|
|
6
|
-
title: "Components/Inputs/ITRadioGroup",
|
|
7
|
-
component: ITRadioGroup,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default meta;
|
|
11
|
-
type Story = StoryObj<typeof ITRadioGroup>;
|
|
12
|
-
|
|
13
|
-
export const Default: Story = {
|
|
14
|
-
render: () => {
|
|
15
|
-
const [val, setVal] = useState("option1");
|
|
16
|
-
return (
|
|
17
|
-
<ITRadioGroup
|
|
18
|
-
name="example"
|
|
19
|
-
value={val}
|
|
20
|
-
onChange={setVal}
|
|
21
|
-
options={[
|
|
22
|
-
{ value: "option1", label: "Opción 1" },
|
|
23
|
-
{ value: "option2", label: "Opción 2" },
|
|
24
|
-
{ value: "option3", label: "Opción 3" },
|
|
25
|
-
]}
|
|
26
|
-
/>
|
|
27
|
-
);
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export const Row: Story = {
|
|
32
|
-
render: () => {
|
|
33
|
-
const [val, setVal] = useState("sm");
|
|
34
|
-
return (
|
|
35
|
-
<ITRadioGroup
|
|
36
|
-
name="size"
|
|
37
|
-
value={val}
|
|
38
|
-
onChange={setVal}
|
|
39
|
-
direction="row"
|
|
40
|
-
options={[
|
|
41
|
-
{ value: "sm", label: "Chico" },
|
|
42
|
-
{ value: "md", label: "Mediano" },
|
|
43
|
-
{ value: "lg", label: "Grande" },
|
|
44
|
-
]}
|
|
45
|
-
/>
|
|
46
|
-
);
|
|
47
|
-
},
|
|
48
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './segmented-control.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITSegmentedControl
|
|
7
|
-
|
|
8
|
-
iOS-style segmented toggle for mutually exclusive options with optional icons. Supports two sizes and a disabled state. Ideal for filter and view switching.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `options` | `ISegmentedOption[]` | — | Array of mutually exclusive options: `{ value: string, label: string, icon?: ReactNode }`. |
|
|
15
|
-
| `value` | `string` | — | Currently selected value (controlled). |
|
|
16
|
-
| `onChange` | `(value: string) => void` | — | Callback fired when the user selects a different option. |
|
|
17
|
-
| `size` | `"sm" \| "md"` | `"md"` | Control size. |
|
|
18
|
-
| `className` | `string` | — | Additional CSS classes on the container. |
|
|
19
|
-
| `disabled` | `boolean` | `false` | Whether the entire control is disabled. |
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
import { ITSegmentedControl } from '@axzydev/axzy_ui_system';
|
|
25
|
-
|
|
26
|
-
<ITSegmentedControl
|
|
27
|
-
options={[
|
|
28
|
-
{ value: "day", label: "Day" },
|
|
29
|
-
{ value: "week", label: "Week" },
|
|
30
|
-
{ value: "month", label: "Month" },
|
|
31
|
-
]}
|
|
32
|
-
value={selected}
|
|
33
|
-
onChange={setSelected}
|
|
34
|
-
/>
|
|
35
|
-
|
|
36
|
-
<ITSegmentedControl
|
|
37
|
-
size="sm"
|
|
38
|
-
options={[
|
|
39
|
-
{ value: "list", label: "List", icon: <FaList /> },
|
|
40
|
-
{ value: "grid", label: "Grid", icon: <FaTh /> },
|
|
41
|
-
]}
|
|
42
|
-
value={view}
|
|
43
|
-
onChange={setView}
|
|
44
|
-
/>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Notes
|
|
48
|
-
|
|
49
|
-
- Only one option can be selected at a time — mutually exclusive by design.
|
|
50
|
-
- Each option may include an optional `icon` rendered alongside the label.
|
|
51
|
-
- Two sizes available: `sm` (compact) and `md` (default).
|
|
52
|
-
- `disabled` applies to all segments simultaneously.
|
|
53
|
-
- Commonly used for view toggling (list/grid), date range selection (day/week/month), and filter switching.
|
|
54
|
-
- Fully controlled component: `value` and `onChange` are required.
|
|
55
|
-
|
|
56
|
-
## Stories
|
|
57
|
-
|
|
58
|
-
<Primary />
|
|
59
|
-
<Controls />
|
|
60
|
-
<Stories />
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { FaList, FaTh } from "react-icons/fa";
|
|
4
|
-
import ITSegmentedControl from "@/components/atoms/segmented-control/segmented-control";
|
|
5
|
-
|
|
6
|
-
const meta: Meta<typeof ITSegmentedControl> = {
|
|
7
|
-
title: "Components/Inputs/ITSegmentedControl",
|
|
8
|
-
component: ITSegmentedControl,
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export default meta;
|
|
12
|
-
type Story = StoryObj<typeof ITSegmentedControl>;
|
|
13
|
-
|
|
14
|
-
export const Default: Story = {
|
|
15
|
-
render: () => {
|
|
16
|
-
const [val, setVal] = useState("day");
|
|
17
|
-
return (
|
|
18
|
-
<ITSegmentedControl
|
|
19
|
-
options={[
|
|
20
|
-
{ value: "day", label: "Día" },
|
|
21
|
-
{ value: "week", label: "Semana" },
|
|
22
|
-
{ value: "month", label: "Mes" },
|
|
23
|
-
]}
|
|
24
|
-
value={val}
|
|
25
|
-
onChange={setVal}
|
|
26
|
-
/>
|
|
27
|
-
);
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export const WithIcons: Story = {
|
|
32
|
-
render: () => {
|
|
33
|
-
const [val, setVal] = useState("list");
|
|
34
|
-
return (
|
|
35
|
-
<ITSegmentedControl
|
|
36
|
-
options={[
|
|
37
|
-
{ value: "list", label: "Lista", icon: <FaList size={10} /> },
|
|
38
|
-
{ value: "grid", label: "Grid", icon: <FaTh size={10} /> },
|
|
39
|
-
]}
|
|
40
|
-
value={val}
|
|
41
|
-
onChange={setVal}
|
|
42
|
-
/>
|
|
43
|
-
);
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export const Small: Story = {
|
|
48
|
-
render: () => {
|
|
49
|
-
const [val, setVal] = useState("sm");
|
|
50
|
-
return (
|
|
51
|
-
<ITSegmentedControl
|
|
52
|
-
size="sm"
|
|
53
|
-
options={[
|
|
54
|
-
{ value: "sm", label: "Chico" },
|
|
55
|
-
{ value: "md", label: "Mediano" },
|
|
56
|
-
]}
|
|
57
|
-
value={val}
|
|
58
|
-
onChange={setVal}
|
|
59
|
-
/>
|
|
60
|
-
);
|
|
61
|
-
},
|
|
62
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './skeleton.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITSkeleton
|
|
7
|
-
|
|
8
|
-
Content placeholder loaders used during data loading to indicate upcoming content.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `variant` | `'text' \| 'circular' \| 'rectangular' \| 'rounded'` | `'text'` | Shape of the skeleton placeholder |
|
|
15
|
-
| `animation` | `'pulse' \| 'wave' \| 'none'` | `'pulse'` | Animation style |
|
|
16
|
-
| `width` | `number \| string` | — | Width of the skeleton |
|
|
17
|
-
| `height` | `number \| string` | — | Height of the skeleton |
|
|
18
|
-
| `count` | `number` | `1` | Number of skeleton items to render |
|
|
19
|
-
|
|
20
|
-
## Usage
|
|
21
|
-
|
|
22
|
-
```tsx
|
|
23
|
-
import { ITSkeleton } from '@axzydev/axzy_ui_system';
|
|
24
|
-
|
|
25
|
-
<ITSkeleton />
|
|
26
|
-
<ITSkeleton variant="circular" width={40} height={40} />
|
|
27
|
-
<ITSkeleton variant="rectangular" width="100%" height={200} animation="wave" />
|
|
28
|
-
<ITSkeleton variant="text" count={3} />
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Notes
|
|
32
|
-
|
|
33
|
-
- Use during data loading to reduce perceived wait time
|
|
34
|
-
- `count` prop repeats the skeleton for placeholder lists or paragraphs
|
|
35
|
-
- `rectangular` variant suits image or card placeholders
|
|
36
|
-
- `circular` variant suits avatar or icon placeholders
|
|
37
|
-
- Set `animation="none"` for static placeholders
|
|
38
|
-
|
|
39
|
-
## Stories
|
|
40
|
-
|
|
41
|
-
<Primary />
|
|
42
|
-
<Controls />
|
|
43
|
-
<Stories />
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITSkeleton from "@/components/atoms/skeleton/skeleton";
|
|
3
|
-
import ITStack from "@/components/atoms/stack/stack";
|
|
4
|
-
|
|
5
|
-
const meta: Meta<typeof ITSkeleton> = {
|
|
6
|
-
title: "Components/Feedback/ITSkeleton",
|
|
7
|
-
component: ITSkeleton,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default meta;
|
|
11
|
-
type Story = StoryObj<typeof ITSkeleton>;
|
|
12
|
-
|
|
13
|
-
export const Text: Story = {
|
|
14
|
-
render: () => (
|
|
15
|
-
<ITStack spacing={2}>
|
|
16
|
-
<ITSkeleton variant="text" width="60%" />
|
|
17
|
-
<ITSkeleton variant="text" />
|
|
18
|
-
<ITSkeleton variant="text" width="80%" />
|
|
19
|
-
</ITStack>
|
|
20
|
-
),
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const Circular: Story = {
|
|
24
|
-
args: { variant: "circular", width: 48, height: 48 },
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const Rectangular: Story = {
|
|
28
|
-
args: { variant: "rectangular", width: "100%", height: 160 },
|
|
29
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as StoriesData from './slide.stories';
|
|
3
|
-
|
|
4
|
-
<Meta of={StoriesData} />
|
|
5
|
-
|
|
6
|
-
# ITSlideToggle
|
|
7
|
-
|
|
8
|
-
iOS-style toggle switch for boolean settings. Supports controlled and uncontrolled modes.
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
| Prop | Type | Default | Description |
|
|
13
|
-
|------|------|---------|-------------|
|
|
14
|
-
| `checked` | `boolean` | — | Controlled checked state |
|
|
15
|
-
| `defaultChecked` | `boolean` | `false` | Uncontrolled default state |
|
|
16
|
-
| `onChange` | `(checked: boolean) => void` | — | Change handler |
|
|
17
|
-
| `label` | `string` | — | Label text |
|
|
18
|
-
| `labelPosition` | `'left' \| 'right'` | `'right'` | Label placement |
|
|
19
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Toggle size |
|
|
20
|
-
| `color` | `'primary' \| 'secondary' \| 'success' \| 'warning' \| 'danger' \| 'info' \| 'neutral'` | `'primary'` | Color theme when checked |
|
|
21
|
-
| `disabled` | `boolean` | `false` | Disables the toggle |
|
|
22
|
-
|
|
23
|
-
## Usage
|
|
24
|
-
|
|
25
|
-
```tsx
|
|
26
|
-
import { ITSlideToggle } from '@axzydev/axzy_ui_system';
|
|
27
|
-
|
|
28
|
-
<ITSlideToggle />
|
|
29
|
-
<ITSlideToggle label="Enable notifications" defaultChecked />
|
|
30
|
-
<ITSlideToggle label="Dark mode" labelPosition="left" size="sm" color="success" />
|
|
31
|
-
<ITSlideToggle disabled label="Locked" />
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Notes
|
|
35
|
-
|
|
36
|
-
- Controlled mode via `checked` + `onChange`
|
|
37
|
-
- Uncontrolled mode via `defaultChecked`
|
|
38
|
-
- Label renders alongside the toggle with configurable position
|
|
39
|
-
- Seven semantic color themes available
|
|
40
|
-
- Three sizes: sm (small), md (medium), lg (large)
|
|
41
|
-
|
|
42
|
-
## Stories
|
|
43
|
-
|
|
44
|
-
<Primary />
|
|
45
|
-
<Controls />
|
|
46
|
-
<Stories />
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITSlideToggle from "@/components/atoms/slide/slide";
|
|
3
|
-
import { useState } from "react";
|
|
4
|
-
|
|
5
|
-
const meta: Meta<typeof ITSlideToggle> = {
|
|
6
|
-
title: "Components/Form Elements/ITSlideToggle",
|
|
7
|
-
component: ITSlideToggle,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: "centered",
|
|
10
|
-
},
|
|
11
|
-
argTypes: {
|
|
12
|
-
activeColor: {
|
|
13
|
-
control: "select",
|
|
14
|
-
options: ["primary", "secondary", "success", "danger", "warning", "info", "purple"],
|
|
15
|
-
},
|
|
16
|
-
size: {
|
|
17
|
-
control: "select",
|
|
18
|
-
options: ["sm", "md", "lg"],
|
|
19
|
-
},
|
|
20
|
-
disabled: {
|
|
21
|
-
control: "boolean",
|
|
22
|
-
},
|
|
23
|
-
isOn: {
|
|
24
|
-
control: "boolean",
|
|
25
|
-
},
|
|
26
|
-
initialState: {
|
|
27
|
-
control: "boolean",
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default meta;
|
|
33
|
-
type Story = StoryObj<typeof ITSlideToggle>;
|
|
34
|
-
|
|
35
|
-
export const Default: Story = {
|
|
36
|
-
args: {
|
|
37
|
-
activeColor: "success",
|
|
38
|
-
size: "md",
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export const CheckedUncontrolled: Story = {
|
|
43
|
-
args: {
|
|
44
|
-
initialState: true,
|
|
45
|
-
activeColor: "primary",
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const ControlledSlideWrapper = (args: any) => {
|
|
50
|
-
const [isOn, setIsOn] = useState(false);
|
|
51
|
-
return (
|
|
52
|
-
<div className="flex flex-col gap-4 items-center">
|
|
53
|
-
<ITSlideToggle {...args} isOn={isOn} onToggle={setIsOn} />
|
|
54
|
-
<span className="text-sm font-medium text-gray-500">
|
|
55
|
-
External State: {isOn ? "ON" : "OFF"}
|
|
56
|
-
</span>
|
|
57
|
-
</div>
|
|
58
|
-
);
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export const Controlled: Story = {
|
|
62
|
-
render: (args) => <ControlledSlideWrapper {...args} />,
|
|
63
|
-
args: {
|
|
64
|
-
activeColor: "info",
|
|
65
|
-
size: "lg",
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export const Sizes: Story = {
|
|
70
|
-
render: (args) => (
|
|
71
|
-
<div className="flex flex-col gap-6 items-center">
|
|
72
|
-
<div className="flex items-center gap-4">
|
|
73
|
-
<span className="w-16 text-sm text-gray-500 font-bold">Small</span>
|
|
74
|
-
<ITSlideToggle {...args} size="sm" initialState={true} />
|
|
75
|
-
</div>
|
|
76
|
-
<div className="flex items-center gap-4">
|
|
77
|
-
<span className="w-16 text-sm text-gray-500 font-bold">Medium</span>
|
|
78
|
-
<ITSlideToggle {...args} size="md" initialState={true} />
|
|
79
|
-
</div>
|
|
80
|
-
<div className="flex items-center gap-4">
|
|
81
|
-
<span className="w-16 text-sm text-gray-500 font-bold">Large</span>
|
|
82
|
-
<ITSlideToggle {...args} size="lg" initialState={true} />
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
),
|
|
86
|
-
args: {
|
|
87
|
-
activeColor: "primary"
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
export const Disabled: Story = {
|
|
92
|
-
render: (args) => (
|
|
93
|
-
<div className="flex gap-8">
|
|
94
|
-
<div className="flex flex-col gap-2 items-center">
|
|
95
|
-
<span className="text-sm text-gray-500">Off</span>
|
|
96
|
-
<ITSlideToggle {...args} initialState={false} />
|
|
97
|
-
</div>
|
|
98
|
-
<div className="flex flex-col gap-2 items-center">
|
|
99
|
-
<span className="text-sm text-gray-500">On</span>
|
|
100
|
-
<ITSlideToggle {...args} initialState={true} />
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
),
|
|
104
|
-
args: {
|
|
105
|
-
disabled: true,
|
|
106
|
-
},
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
export const Colors: Story = {
|
|
110
|
-
render: (args) => (
|
|
111
|
-
<div className="flex flex-col gap-4">
|
|
112
|
-
{(['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'purple'] as const).map((col) => (
|
|
113
|
-
<div key={col} className="flex items-center gap-4">
|
|
114
|
-
<span className="w-24 text-sm text-gray-500 font-bold capitalize">{col}</span>
|
|
115
|
-
<ITSlideToggle {...args} activeColor={col} initialState={true} />
|
|
116
|
-
</div>
|
|
117
|
-
))}
|
|
118
|
-
</div>
|
|
119
|
-
),
|
|
120
|
-
};
|