@axzydev/axzy_ui_system 1.2.13 → 1.2.14
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 +43 -0
- package/dist/index.cjs +6490 -6388
- 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 +169 -110
- package/dist/index.d.ts +169 -110
- package/dist/index.js +6516 -6414
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/src/App.tsx +86 -81
- package/src/components/{avatar → atoms/avatar}/avatar.doc.mdx +2 -2
- package/src/components/{avatar → atoms/avatar}/avatar.stories.tsx +1 -2
- package/src/components/{avatar → atoms/avatar}/avatar.tsx +1 -1
- package/src/components/{badget → atoms/badget}/badget.doc.mdx +4 -4
- package/src/components/{badget → atoms/badget}/badget.props.ts +1 -1
- package/src/components/{badget → atoms/badget}/badget.stories.tsx +1 -2
- package/src/components/{badget → atoms/badget}/badget.tsx +3 -3
- package/src/components/{button → atoms/button}/button.doc.mdx +3 -3
- package/src/components/{button → atoms/button}/button.props.ts +3 -3
- package/src/components/{button → atoms/button}/button.stories.tsx +1 -2
- package/src/components/{button → atoms/button}/button.tsx +7 -7
- package/src/components/{checkbox → atoms/checkbox}/checkbox.doc.mdx +2 -2
- package/src/components/{checkbox → atoms/checkbox}/checkbox.stories.tsx +2 -3
- package/src/components/{checkbox → atoms/checkbox}/checkbox.tsx +1 -1
- package/src/components/{divider → atoms/divider}/divider.doc.mdx +2 -2
- package/src/components/{divider → atoms/divider}/divider.stories.tsx +3 -4
- package/src/components/{flex → atoms/flex}/flex.doc.mdx +2 -2
- package/src/components/{flex → atoms/flex}/flex.stories.tsx +1 -2
- package/src/components/{grid → atoms/grid}/grid.doc.mdx +2 -2
- package/src/components/{grid → atoms/grid}/grid.stories.tsx +1 -2
- package/src/components/{image → atoms/image}/image.doc.mdx +2 -2
- package/src/components/{image → atoms/image}/image.stories.tsx +1 -2
- package/src/components/{input → atoms/input}/input.doc.mdx +3 -3
- package/src/components/{input → atoms/input}/input.props.ts +3 -3
- package/src/components/{input → atoms/input}/input.stories.tsx +2 -4
- package/src/components/{input → atoms/input}/input.tsx +5 -14
- package/src/components/{loader → atoms/loader}/loader.doc.mdx +2 -2
- package/src/components/{loader → atoms/loader}/loader.stories.tsx +2 -3
- package/src/components/{loader → atoms/loader}/loader.tsx +1 -1
- package/src/components/{popover → atoms/popover}/popover.doc.mdx +2 -2
- package/src/components/{popover → atoms/popover}/popover.stories.tsx +3 -4
- package/src/components/{progress → atoms/progress}/progress.doc.mdx +2 -2
- package/src/components/{progress → atoms/progress}/progress.stories.tsx +2 -3
- package/src/components/{radio → atoms/radio}/radio.doc.mdx +2 -2
- package/src/components/{radio → atoms/radio}/radio.stories.tsx +1 -3
- package/src/components/{radio → atoms/radio}/radio.tsx +1 -1
- package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.doc.mdx +2 -2
- package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.stories.tsx +1 -2
- package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.tsx +1 -1
- package/src/components/{skeleton → atoms/skeleton}/skeleton.doc.mdx +2 -2
- package/src/components/{skeleton → atoms/skeleton}/skeleton.stories.tsx +2 -3
- package/src/components/{slide → atoms/slide}/slide.doc.mdx +2 -2
- package/src/components/{slide → atoms/slide}/slide.stories.tsx +1 -2
- package/src/components/{slider → atoms/slider}/slider.doc.mdx +2 -2
- package/src/components/{slider → atoms/slider}/slider.stories.tsx +1 -2
- package/src/components/{slider → atoms/slider}/slider.tsx +1 -1
- package/src/components/{stack → atoms/stack}/stack.doc.mdx +2 -2
- package/src/components/{stack → atoms/stack}/stack.stories.tsx +2 -3
- package/src/components/{text → atoms/text}/text.doc.mdx +2 -2
- package/src/components/{text → atoms/text}/text.stories.tsx +1 -2
- package/src/components/{textarea → atoms/textarea}/textarea.doc.mdx +2 -2
- package/src/components/{textarea → atoms/textarea}/textarea.props.ts +0 -2
- package/src/components/{textarea → atoms/textarea}/textarea.stories.tsx +1 -2
- package/src/components/{textarea → atoms/textarea}/textarea.tsx +1 -1
- package/src/components/{tooltip → atoms/tooltip}/tooltip.doc.mdx +2 -2
- package/src/components/{tooltip → atoms/tooltip}/tooltip.stories.tsx +2 -3
- package/src/components/{tooltip → atoms/tooltip}/tooltip.tsx +1 -1
- package/src/components/isolation/isolation.stories.tsx +202 -0
- package/src/components/{alert → molecules/alert}/alert.doc.mdx +2 -2
- package/src/components/{alert → molecules/alert}/alert.stories.tsx +1 -2
- package/src/components/{alert → molecules/alert}/alert.tsx +1 -2
- package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.doc.mdx +2 -2
- package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.stories.tsx +1 -2
- package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.tsx +1 -1
- package/src/components/{calendar → molecules/calendar}/calendar.doc.mdx +2 -2
- package/src/components/{calendar → molecules/calendar}/calendar.stories.tsx +1 -2
- package/src/components/{calendar → molecules/calendar}/calendar.tsx +42 -42
- package/src/components/molecules/calendar/index.ts +2 -0
- package/src/components/{card → molecules/card}/card.doc.mdx +2 -2
- package/src/components/{card → molecules/card}/card.stories.tsx +2 -3
- package/src/components/{card → molecules/card}/card.tsx +4 -4
- package/src/components/{date-picker → molecules/date-picker}/date-picker.doc.mdx +3 -3
- package/src/components/{date-picker → molecules/date-picker}/date-picker.props.ts +1 -1
- package/src/components/{date-picker → molecules/date-picker}/date-picker.stories.tsx +1 -3
- package/src/components/{date-picker → molecules/date-picker}/datePicker.tsx +3 -3
- package/src/components/{empty-state → molecules/empty-state}/empty-state.doc.mdx +3 -3
- package/src/components/{empty-state → molecules/empty-state}/empty-state.stories.tsx +3 -4
- package/src/components/{empty-state → molecules/empty-state}/empty-state.tsx +1 -1
- package/src/components/{form-header → molecules/form-header}/form-header.doc.mdx +2 -2
- package/src/components/{form-header → molecules/form-header}/form-header.stories.tsx +1 -2
- package/src/components/{form-header → molecules/form-header}/form-header.tsx +2 -2
- package/src/components/{pagination → molecules/pagination}/pagination.doc.mdx +2 -2
- package/src/components/{pagination → molecules/pagination}/pagination.stories.tsx +1 -2
- package/src/components/{pagination → molecules/pagination}/pagination.tsx +8 -8
- package/src/components/{search-select → molecules/search-select}/index.ts +1 -1
- package/src/components/{search-select → molecules/search-select}/search-select.doc.mdx +2 -2
- package/src/components/{search-select → molecules/search-select}/search-select.props.ts +3 -0
- package/src/components/{search-select → molecules/search-select}/search-select.stories.tsx +1 -2
- package/src/components/{search-select → molecules/search-select}/search-select.tsx +8 -6
- package/src/components/{select → molecules/select}/select.doc.mdx +2 -2
- package/src/components/{select → molecules/select}/select.stories.tsx +1 -2
- package/src/components/{select → molecules/select}/select.tsx +8 -16
- package/src/components/{stat-card → molecules/stat-card}/stat-card.doc.mdx +2 -2
- package/src/components/{stat-card → molecules/stat-card}/stat-card.stories.tsx +2 -3
- package/src/components/{stat-card → molecules/stat-card}/stat-card.tsx +1 -1
- package/src/components/{stepper → molecules/stepper}/stepper.doc.mdx +2 -2
- package/src/components/{stepper → molecules/stepper}/stepper.stories.tsx +1 -2
- package/src/components/{stepper → molecules/stepper}/stepper.tsx +9 -10
- package/src/components/{table → molecules/table}/table.doc.mdx +2 -2
- package/src/components/{table → molecules/table}/table.stories.tsx +5 -22
- package/src/components/{table → molecules/table}/table.tsx +5 -15
- package/src/components/{tabs → molecules/tabs}/tabs.doc.mdx +2 -2
- package/src/components/{tabs → molecules/tabs}/tabs.stories.tsx +1 -2
- package/src/components/{tabs → molecules/tabs}/tabs.tsx +1 -1
- package/src/components/{time-picker → molecules/time-picker}/timePicker.doc.mdx +3 -3
- package/src/components/{time-picker → molecules/time-picker}/timePicker.props.ts +4 -2
- package/src/components/{time-picker → molecules/time-picker}/timePicker.stories.tsx +3 -4
- package/src/components/{time-picker → molecules/time-picker}/timePicker.tsx +5 -5
- package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.doc.mdx +2 -2
- package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.stories.tsx +2 -3
- package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.tsx +4 -4
- package/src/components/{data-table → organisms/data-table}/ITDataTable.doc.mdx +2 -2
- package/src/components/{data-table → organisms/data-table}/ITDataTable.stories.tsx +3 -4
- package/src/components/{data-table → organisms/data-table}/dataTable.props.ts +1 -1
- package/src/components/{data-table → organisms/data-table}/dataTable.tsx +7 -8
- package/src/components/{dialog → organisms/dialog}/dialog.doc.mdx +2 -2
- package/src/components/{dialog → organisms/dialog}/dialog.stories.tsx +3 -5
- package/src/components/{dialog → organisms/dialog}/dialog.tsx +2 -2
- package/src/components/{drawer → organisms/drawer}/drawer.doc.mdx +2 -2
- package/src/components/{drawer → organisms/drawer}/drawer.stories.tsx +2 -3
- package/src/components/{drawer → organisms/drawer}/drawer.tsx +1 -1
- package/src/components/{dropfile → organisms/dropfile}/dropfile.doc.mdx +3 -3
- package/src/components/{dropfile → organisms/dropfile}/dropfile.props.ts +8 -4
- package/src/components/{dropfile → organisms/dropfile}/dropfile.stories.tsx +2 -5
- package/src/components/{dropfile → organisms/dropfile}/dropfile.tsx +25 -12
- package/src/components/{form-builder → organisms/form-builder}/fieldRenderer.tsx +30 -20
- package/src/components/{form-builder → organisms/form-builder}/formBuilder.context.tsx +3 -2
- package/src/components/{form-builder → organisms/form-builder}/formBuilder.doc.mdx +2 -2
- package/src/components/{form-builder → organisms/form-builder}/formBuilder.stories.tsx +0 -1
- package/src/components/{form-builder → organisms/form-builder}/formBuilder.tsx +4 -5
- package/src/components/{form-builder → organisms/form-builder}/useFormBuilder.ts +4 -4
- package/src/components/{navbar → organisms/navbar}/navbar.doc.mdx +2 -2
- package/src/components/{navbar → organisms/navbar}/navbar.stories.tsx +1 -2
- package/src/components/{navbar → organisms/navbar}/navbar.tsx +1 -1
- package/src/components/{page-header → organisms/page-header}/page-header.doc.mdx +2 -2
- package/src/components/{page-header → organisms/page-header}/page-header.props.ts +1 -1
- package/src/components/{page-header → organisms/page-header}/page-header.stories.tsx +5 -6
- package/src/components/{page-header → organisms/page-header}/page-header.tsx +2 -2
- package/src/components/{searchTable → organisms/searchTable}/components/EditableCell.tsx +4 -5
- package/src/components/{searchTable → organisms/searchTable}/components/PaginationControls.tsx +6 -6
- package/src/components/{searchTable → organisms/searchTable}/components/PaginationInfo.tsx +1 -1
- package/src/components/{searchTable → organisms/searchTable}/components/SearchAndSortBar.tsx +3 -3
- package/src/components/{searchTable → organisms/searchTable}/components/SearchInput.tsx +1 -1
- package/src/components/{searchTable → organisms/searchTable}/components/SortButton.tsx +1 -1
- package/src/components/{searchTable → organisms/searchTable}/components/TableEmptyState.tsx +1 -1
- package/src/components/{searchTable → organisms/searchTable}/components/TableHeaderCell.tsx +1 -1
- package/src/components/{searchTable → organisms/searchTable}/searchTable.doc.mdx +2 -2
- package/src/components/{searchTable → organisms/searchTable}/searchTable.stories.tsx +1 -2
- package/src/components/{searchTable → organisms/searchTable}/searchTable.tsx +1 -2
- package/src/components/{sidebar → organisms/sidebar}/sidebar.doc.mdx +2 -2
- package/src/components/{sidebar → organisms/sidebar}/sidebar.stories.tsx +1 -2
- package/src/components/{sidebar → organisms/sidebar}/sidebar.tsx +45 -43
- package/src/components/{toast → organisms/toast}/toast.doc.mdx +2 -2
- package/src/components/{toast → organisms/toast}/toast.stories.tsx +2 -3
- package/src/components/{toast → organisms/toast}/toast.tsx +1 -2
- package/src/components/{topbar → organisms/topbar}/topbar.doc.mdx +2 -2
- package/src/components/{topbar → organisms/topbar}/topbar.stories.tsx +1 -2
- package/src/components/{topbar → organisms/topbar}/topbar.tsx +25 -25
- package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.doc.mdx +2 -2
- package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.props.ts +0 -1
- package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.stories.tsx +0 -1
- package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.tsx +1 -1
- package/src/components/{layout → templates/layout}/layout.doc.mdx +2 -2
- package/src/components/{layout → templates/layout}/layout.props.ts +2 -2
- package/src/components/{layout → templates/layout}/layout.stories.tsx +1 -2
- package/src/components/{layout → templates/layout}/layout.tsx +2 -2
- package/src/components/{page → templates/page}/page.doc.mdx +2 -2
- package/src/components/{page → templates/page}/page.props.ts +1 -1
- package/src/components/{page → templates/page}/page.stories.tsx +6 -7
- package/src/components/{page → templates/page}/page.tsx +6 -6
- package/src/components/theme-provider/themePresets.ts +154 -0
- package/src/components/theme-provider/themeProvider.doc.mdx +10 -2
- package/src/components/theme-provider/themeProvider.props.ts +6 -0
- package/src/components/theme-provider/themeProvider.stories.tsx +3 -4
- package/src/components/theme-provider/themeProvider.tsx +210 -268
- package/src/hooks/useEditableRow.ts +1 -1
- package/src/index.css +36 -86
- package/src/index.ts +97 -97
- package/src/showcases/DataShowcases.tsx +4 -8
- package/src/showcases/FeedbackShowcases.tsx +6 -6
- package/src/showcases/FormShowcases.tsx +7 -7
- package/src/showcases/GettingStartedShowcase.tsx +8 -9
- package/src/showcases/HomeShowcase.tsx +12 -12
- package/src/showcases/LayoutPrimitivesShowcases.tsx +36 -57
- package/src/showcases/PageShowcases.tsx +41 -53
- package/src/showcases/ShowcaseLayout.tsx +1 -2
- package/src/showcases/SizesShowcase.tsx +85 -0
- package/src/showcases/StructureShowcases.tsx +31 -33
- package/src/theme/theme-context.ts +37 -0
- package/src/theme/theme.ts +71 -64
- package/src/theme/theme.types.ts +41 -0
- package/src/types/badget.types.ts +3 -3
- package/src/types/button.types.ts +3 -3
- package/src/types/sizes.types.ts +2 -1
- package/src/utils/styles.ts +37 -0
- package/src/components/calendar/index.ts +0 -3
- package/src/components/stepper/stepper.css +0 -26
- package/src/components/toast/toast.css +0 -32
- package/src/types/input.types.ts +0 -14
- /package/src/components/{avatar → atoms/avatar}/avatar.props.ts +0 -0
- /package/src/components/{checkbox → atoms/checkbox}/checkbox.props.ts +0 -0
- /package/src/components/{divider → atoms/divider}/divider.props.ts +0 -0
- /package/src/components/{divider → atoms/divider}/divider.tsx +0 -0
- /package/src/components/{flex → atoms/flex}/flex.props.ts +0 -0
- /package/src/components/{flex → atoms/flex}/flex.tsx +0 -0
- /package/src/components/{grid → atoms/grid}/grid.props.ts +0 -0
- /package/src/components/{grid → atoms/grid}/grid.tsx +0 -0
- /package/src/components/{image → atoms/image}/image.props.ts +0 -0
- /package/src/components/{image → atoms/image}/image.tsx +0 -0
- /package/src/components/{loader → atoms/loader}/loader.props.ts +0 -0
- /package/src/components/{popover → atoms/popover}/popover.props.ts +0 -0
- /package/src/components/{popover → atoms/popover}/popover.tsx +0 -0
- /package/src/components/{progress → atoms/progress}/progress.props.ts +0 -0
- /package/src/components/{progress → atoms/progress}/progress.tsx +0 -0
- /package/src/components/{radio → atoms/radio}/radio.props.ts +0 -0
- /package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.props.ts +0 -0
- /package/src/components/{skeleton → atoms/skeleton}/skeleton.props.ts +0 -0
- /package/src/components/{skeleton → atoms/skeleton}/skeleton.tsx +0 -0
- /package/src/components/{slide → atoms/slide}/slide.props.ts +0 -0
- /package/src/components/{slide → atoms/slide}/slide.tsx +0 -0
- /package/src/components/{slider → atoms/slider}/slider.props.ts +0 -0
- /package/src/components/{stack → atoms/stack}/stack.props.ts +0 -0
- /package/src/components/{stack → atoms/stack}/stack.tsx +0 -0
- /package/src/components/{text → atoms/text}/text.props.ts +0 -0
- /package/src/components/{text → atoms/text}/text.tsx +0 -0
- /package/src/components/{tooltip → atoms/tooltip}/tooltip.props.ts +0 -0
- /package/src/components/{alert → molecules/alert}/alert.props.ts +0 -0
- /package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.props.ts +0 -0
- /package/src/components/{calendar → molecules/calendar}/calendar.props.ts +0 -0
- /package/src/components/{card → molecules/card}/card.props.ts +0 -0
- /package/src/components/{empty-state → molecules/empty-state}/empty-state.props.ts +0 -0
- /package/src/components/{form-header → molecules/form-header}/form-header.props.ts +0 -0
- /package/src/components/{pagination → molecules/pagination}/pagination.props.ts +0 -0
- /package/src/components/{select → molecules/select}/select.props.ts +0 -0
- /package/src/components/{stat-card → molecules/stat-card}/stat-card.props.ts +0 -0
- /package/src/components/{stepper → molecules/stepper}/stepper.props.ts +0 -0
- /package/src/components/{table → molecules/table}/table.props.ts +0 -0
- /package/src/components/{tabs → molecules/tabs}/tabs.props.ts +0 -0
- /package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.props.ts +0 -0
- /package/src/components/{dialog → organisms/dialog}/dialog.props.ts +0 -0
- /package/src/components/{drawer → organisms/drawer}/drawer.props.ts +0 -0
- /package/src/components/{form-builder → organisms/form-builder}/formBuilder.props.ts +0 -0
- /package/src/components/{navbar → organisms/navbar}/navbar.props.ts +0 -0
- /package/src/components/{searchTable → organisms/searchTable}/components/TableHeader.tsx +0 -0
- /package/src/components/{searchTable → organisms/searchTable}/components/TableRow.tsx +0 -0
- /package/src/components/{searchTable → organisms/searchTable}/searchTable.props.ts +0 -0
- /package/src/components/{sidebar → organisms/sidebar}/sidebar.props.ts +0 -0
- /package/src/components/{toast → organisms/toast}/toast.props.ts +0 -0
- /package/src/components/{topbar → organisms/topbar}/topbar.props.ts +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import ITAlert from "
|
|
3
|
+
import ITAlert from "@/components/molecules/alert/alert";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof ITAlert> = {
|
|
6
6
|
title: "Components/Feedback/ITAlert",
|
|
7
7
|
component: ITAlert,
|
|
8
|
-
tags: ["autodocs"],
|
|
9
8
|
};
|
|
10
9
|
|
|
11
10
|
export default meta;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITAlertProps, AlertVariant } from "./alert.props";
|
|
3
3
|
import { FaInfoCircle, FaCheckCircle, FaExclamationTriangle, FaTimesCircle, FaTimes } from "react-icons/fa";
|
|
4
|
-
import
|
|
5
|
-
import ITText from "@/components/text/text";
|
|
4
|
+
import ITText from "@/components/atoms/text/text";
|
|
6
5
|
|
|
7
6
|
const config: Record<AlertVariant, { icon: React.ReactNode; classes: string }> = {
|
|
8
7
|
info: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './breadcrumbs.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITBreadcrumbs
|
|
7
7
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITBreadcrumbs from "
|
|
2
|
+
import ITBreadcrumbs from "@/components/molecules/breadcrumbs/breadcrumbs";
|
|
3
3
|
|
|
4
4
|
const meta: Meta<typeof ITBreadcrumbs> = {
|
|
5
5
|
title: "Components/Navigation/ITBreadcrumbs",
|
|
6
6
|
component: ITBreadcrumbs,
|
|
7
|
-
tags: ["autodocs"],
|
|
8
7
|
};
|
|
9
8
|
|
|
10
9
|
export default meta;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITBreadcrumbsProps } from "./breadcrumbs.props";
|
|
3
3
|
import { FaChevronRight } from "react-icons/fa";
|
|
4
|
-
import ITText from "@/components/text/text";
|
|
4
|
+
import ITText from "@/components/atoms/text/text";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Navigation breadcrumb trail with automatic link/button rendering and custom separator.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './calendar.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITCalendar
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import ITCalendar from '
|
|
2
|
+
import ITCalendar from '@/components/molecules/calendar/calendar';
|
|
3
3
|
import { addHours, format, startOfDay, addDays } from 'date-fns';
|
|
4
4
|
|
|
5
5
|
const meta = {
|
|
@@ -8,7 +8,6 @@ const meta = {
|
|
|
8
8
|
parameters: {
|
|
9
9
|
layout: 'padded',
|
|
10
10
|
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
11
|
argTypes: {
|
|
13
12
|
mode: {
|
|
14
13
|
control: 'select',
|
|
@@ -23,7 +23,7 @@ import { clsx, type ClassValue } from 'clsx';
|
|
|
23
23
|
import { twMerge } from 'tailwind-merge';
|
|
24
24
|
import { FaChevronLeft, FaChevronRight } from 'react-icons/fa';
|
|
25
25
|
import { ITCalendarProps, CalendarEvent } from './calendar.props';
|
|
26
|
-
import ITText from "@/components/text/text";
|
|
26
|
+
import ITText from "@/components/atoms/text/text";
|
|
27
27
|
|
|
28
28
|
function cn(...inputs: ClassValue[]) {
|
|
29
29
|
return twMerge(clsx(inputs));
|
|
@@ -258,8 +258,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
258
258
|
<div
|
|
259
259
|
className={cn("flex flex-col h-full rounded-lg shadow-sm overflow-hidden select-none", className)}
|
|
260
260
|
style={{
|
|
261
|
-
backgroundColor: 'var(--calendar-bg, #ffffff)',
|
|
262
|
-
border: '1px solid var(--calendar-border, #e2e8f0)',
|
|
261
|
+
backgroundColor: 'var(--it-calendar-bg, #ffffff)',
|
|
262
|
+
border: '1px solid var(--it-calendar-border, #e2e8f0)',
|
|
263
263
|
...getVariantStyles(),
|
|
264
264
|
}}
|
|
265
265
|
onMouseUp={handleMouseUp}
|
|
@@ -273,19 +273,19 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
273
273
|
<div
|
|
274
274
|
className="flex items-center justify-between px-2 py-2 border-b"
|
|
275
275
|
style={{
|
|
276
|
-
backgroundColor: 'var(--calendar-bg, #ffffff)',
|
|
277
|
-
borderBottomColor: 'var(--calendar-border, #e2e8f0)'
|
|
276
|
+
backgroundColor: 'var(--it-calendar-bg, #ffffff)',
|
|
277
|
+
borderBottomColor: 'var(--it-calendar-border, #e2e8f0)'
|
|
278
278
|
}}
|
|
279
279
|
>
|
|
280
280
|
<ITText
|
|
281
281
|
as="h2"
|
|
282
282
|
className="text-sm font-bold capitalize cursor-pointer transition-colors select-none px-2 py-1 rounded"
|
|
283
283
|
style={{
|
|
284
|
-
color: 'var(--calendar-header-text, #1e293b)',
|
|
284
|
+
color: 'var(--it-calendar-header-text, #1e293b)',
|
|
285
285
|
}}
|
|
286
286
|
onClick={() => setView(view === 'calendar' ? 'years' : 'calendar')}
|
|
287
287
|
onMouseEnter={(e) => {
|
|
288
|
-
e.currentTarget.style.backgroundColor = 'var(--calendar-header-hover, #f1f5f9)';
|
|
288
|
+
e.currentTarget.style.backgroundColor = 'var(--it-calendar-header-hover, #f1f5f9)';
|
|
289
289
|
}}
|
|
290
290
|
onMouseLeave={(e) => {
|
|
291
291
|
e.currentTarget.style.backgroundColor = 'transparent';
|
|
@@ -301,8 +301,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
301
301
|
onClick={handlePrev}
|
|
302
302
|
type="button"
|
|
303
303
|
className="p-1.5 rounded-md transition-colors"
|
|
304
|
-
style={{ color: 'var(--calendar-days-text, #334155)' }}
|
|
305
|
-
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--calendar-header-hover, #f1f5f9)'; }}
|
|
304
|
+
style={{ color: 'var(--it-calendar-days-text, #334155)' }}
|
|
305
|
+
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--it-calendar-header-hover, #f1f5f9)'; }}
|
|
306
306
|
onMouseLeave={(e) => { e.currentTarget.style.backgroundColor = 'transparent'; }}
|
|
307
307
|
>
|
|
308
308
|
<FaChevronLeft size={14} />
|
|
@@ -311,8 +311,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
311
311
|
onClick={handleToday}
|
|
312
312
|
type="button"
|
|
313
313
|
className="text-sm font-medium px-3 py-1.5 rounded-md transition-colors"
|
|
314
|
-
style={{ color: 'var(--calendar-days-text, #334155)' }}
|
|
315
|
-
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--calendar-header-hover, #f1f5f9)'; }}
|
|
314
|
+
style={{ color: 'var(--it-calendar-days-text, #334155)' }}
|
|
315
|
+
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--it-calendar-header-hover, #f1f5f9)'; }}
|
|
316
316
|
onMouseLeave={(e) => { e.currentTarget.style.backgroundColor = 'transparent'; }}
|
|
317
317
|
>
|
|
318
318
|
<ITText as="span">Hoy</ITText>
|
|
@@ -321,8 +321,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
321
321
|
onClick={handleNext}
|
|
322
322
|
type="button"
|
|
323
323
|
className="p-1.5 rounded-md transition-colors"
|
|
324
|
-
style={{ color: 'var(--calendar-days-text, #334155)' }}
|
|
325
|
-
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--calendar-header-hover, #f1f5f9)'; }}
|
|
324
|
+
style={{ color: 'var(--it-calendar-days-text, #334155)' }}
|
|
325
|
+
onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'var(--it-calendar-header-hover, #f1f5f9)'; }}
|
|
326
326
|
onMouseLeave={(e) => { e.currentTarget.style.backgroundColor = 'transparent'; }}
|
|
327
327
|
>
|
|
328
328
|
<FaChevronRight size={14} />
|
|
@@ -333,7 +333,7 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
333
333
|
{/* Content */}
|
|
334
334
|
<div
|
|
335
335
|
className="flex-1 overflow-auto relative"
|
|
336
|
-
style={{ backgroundColor: 'var(--calendar-bg, #ffffff)' }}
|
|
336
|
+
style={{ backgroundColor: 'var(--it-calendar-bg, #ffffff)' }}
|
|
337
337
|
>
|
|
338
338
|
|
|
339
339
|
{view === 'years' ? (
|
|
@@ -345,13 +345,13 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
345
345
|
className={cn(
|
|
346
346
|
"h-10 rounded-md text-sm font-medium transition-colors border border-transparent",
|
|
347
347
|
year === currentDate.getFullYear()
|
|
348
|
-
? "bg-[var(--calendar-selected-bg)] text-[var(--calendar-selected-text)]"
|
|
349
|
-
: "hover:bg-[var(--calendar-today-bg)] hover:text-[var(--calendar-today-text)]"
|
|
348
|
+
? "bg-[var(--it-calendar-selected-bg)] text-[var(--it-calendar-selected-text)]"
|
|
349
|
+
: "hover:bg-[var(--it-calendar-today-bg)] hover:text-[var(--it-calendar-today-text)]"
|
|
350
350
|
)}
|
|
351
351
|
style={{
|
|
352
352
|
color: year === currentDate.getFullYear()
|
|
353
|
-
? 'var(--calendar-selected-text, #ffffff)'
|
|
354
|
-
: 'var(--calendar-days-text, #334155)'
|
|
353
|
+
? 'var(--it-calendar-selected-text, #ffffff)'
|
|
354
|
+
: 'var(--it-calendar-days-text, #334155)'
|
|
355
355
|
}}
|
|
356
356
|
onClick={() => {
|
|
357
357
|
setCurrentDate((d) => {
|
|
@@ -401,17 +401,17 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
401
401
|
)}
|
|
402
402
|
style={{
|
|
403
403
|
backgroundColor: isSelected || isRangeStart || isRangeEnd
|
|
404
|
-
? 'var(--calendar-selected-bg, #2563eb)'
|
|
404
|
+
? 'var(--it-calendar-selected-bg, #2563eb)'
|
|
405
405
|
: isInRange
|
|
406
|
-
? 'var(--calendar-range-bg, #eff6ff)'
|
|
406
|
+
? 'var(--it-calendar-range-bg, #eff6ff)'
|
|
407
407
|
: isToday(day)
|
|
408
|
-
? 'var(--calendar-today-bg, #eff6ff)'
|
|
408
|
+
? 'var(--it-calendar-today-bg, #eff6ff)'
|
|
409
409
|
: 'transparent',
|
|
410
410
|
color: isSelected || isRangeStart || isRangeEnd
|
|
411
|
-
? 'var(--calendar-selected-text, #ffffff)'
|
|
411
|
+
? 'var(--it-calendar-selected-text, #ffffff)'
|
|
412
412
|
: isToday(day)
|
|
413
|
-
? 'var(--calendar-today-text, #2563eb)'
|
|
414
|
-
: 'var(--calendar-days-text, #334155)',
|
|
413
|
+
? 'var(--it-calendar-today-text, #2563eb)'
|
|
414
|
+
: 'var(--it-calendar-days-text, #334155)',
|
|
415
415
|
fontWeight: isSelected || isRangeStart || isRangeEnd || isToday(day) ? '700' : '400',
|
|
416
416
|
}}
|
|
417
417
|
>
|
|
@@ -419,10 +419,10 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
419
419
|
|
|
420
420
|
{/* Connection for range selection to make it look continuous */}
|
|
421
421
|
{selectionMode === 'range' && isRangeStart && endDate && (
|
|
422
|
-
<div className="absolute right-0 top-0 bottom-0 w-2 bg-[var(--calendar-range-bg)] -z-10" />
|
|
422
|
+
<div className="absolute right-0 top-0 bottom-0 w-2 bg-[var(--it-calendar-range-bg)] -z-10" />
|
|
423
423
|
)}
|
|
424
424
|
{selectionMode === 'range' && isRangeEnd && startDate && (
|
|
425
|
-
<div className="absolute left-0 top-0 bottom-0 w-2 bg-[var(--calendar-range-bg)] -z-10" />
|
|
425
|
+
<div className="absolute left-0 top-0 bottom-0 w-2 bg-[var(--it-calendar-range-bg)] -z-10" />
|
|
426
426
|
)}
|
|
427
427
|
</button>
|
|
428
428
|
);
|
|
@@ -436,8 +436,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
436
436
|
<div
|
|
437
437
|
className="flex-none w-16 pt-10 select-none"
|
|
438
438
|
style={{
|
|
439
|
-
backgroundColor: 'var(--calendar-header-hover, #f1f5f9)',
|
|
440
|
-
borderRight: '1px solid var(--calendar-border, #e2e8f0)',
|
|
439
|
+
backgroundColor: 'var(--it-calendar-header-hover, #f1f5f9)',
|
|
440
|
+
borderRight: '1px solid var(--it-calendar-border, #e2e8f0)',
|
|
441
441
|
}}
|
|
442
442
|
>
|
|
443
443
|
{TIME_SLOTS.map((hour) => (
|
|
@@ -457,22 +457,22 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
457
457
|
<div
|
|
458
458
|
key={day.toISOString()}
|
|
459
459
|
className="flex-1 min-w-[120px] relative"
|
|
460
|
-
style={{ borderRight: '1px solid var(--calendar-border, #e2e8f0)' }}
|
|
460
|
+
style={{ borderRight: '1px solid var(--it-calendar-border, #e2e8f0)' }}
|
|
461
461
|
>
|
|
462
462
|
|
|
463
463
|
{/* Day Header */}
|
|
464
464
|
<div
|
|
465
465
|
className="h-10 flex flex-col items-center justify-center sticky top-0 z-10"
|
|
466
466
|
style={{
|
|
467
|
-
backgroundColor: isToday(day) ? 'var(--calendar-today-bg, #eff6ff)' : 'var(--calendar-bg, #ffffff)',
|
|
468
|
-
borderBottom: '1px solid var(--calendar-border, #e2e8f0)',
|
|
467
|
+
backgroundColor: isToday(day) ? 'var(--it-calendar-today-bg, #eff6ff)' : 'var(--it-calendar-bg, #ffffff)',
|
|
468
|
+
borderBottom: '1px solid var(--it-calendar-border, #e2e8f0)',
|
|
469
469
|
}}
|
|
470
470
|
>
|
|
471
471
|
<ITText
|
|
472
472
|
as="span"
|
|
473
473
|
className="text-xs font-semibold uppercase"
|
|
474
474
|
style={{
|
|
475
|
-
color: isToday(day) ? 'var(--calendar-today-text, #2563eb)' : 'var(--calendar-days-text, #334155)',
|
|
475
|
+
color: isToday(day) ? 'var(--it-calendar-today-text, #2563eb)' : 'var(--it-calendar-days-text, #334155)',
|
|
476
476
|
opacity: isToday(day) ? 1 : 0.6,
|
|
477
477
|
}}
|
|
478
478
|
>
|
|
@@ -482,8 +482,8 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
482
482
|
as="span"
|
|
483
483
|
className="text-sm font-bold w-6 h-6 flex items-center justify-center rounded-full mt-0.5"
|
|
484
484
|
style={{
|
|
485
|
-
color: isToday(day) ? 'var(--calendar-selected-text, #ffffff)' : 'var(--calendar-days-text, #334155)',
|
|
486
|
-
backgroundColor: isToday(day) ? 'var(--calendar-selected-bg, #2563eb)' : 'transparent',
|
|
485
|
+
color: isToday(day) ? 'var(--it-calendar-selected-text, #ffffff)' : 'var(--it-calendar-days-text, #334155)',
|
|
486
|
+
backgroundColor: isToday(day) ? 'var(--it-calendar-selected-bg, #2563eb)' : 'transparent',
|
|
487
487
|
}}
|
|
488
488
|
>
|
|
489
489
|
{format(day, 'd')}
|
|
@@ -497,11 +497,11 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
497
497
|
<div
|
|
498
498
|
key={hour}
|
|
499
499
|
className="h-20 relative group"
|
|
500
|
-
style={{ borderBottom: '1px dashed var(--calendar-border, #e2e8f0)' }}
|
|
500
|
+
style={{ borderBottom: '1px dashed var(--it-calendar-border, #e2e8f0)' }}
|
|
501
501
|
>
|
|
502
502
|
{/* Slot 00 */}
|
|
503
503
|
<div
|
|
504
|
-
className="absolute inset-x-0 top-0 h-10 border-b border-transparent hover:border-[var(--calendar-today-bg)] hover:bg-[var(--calendar-today-bg)] transition-colors cursor-pointer z-0"
|
|
504
|
+
className="absolute inset-x-0 top-0 h-10 border-b border-transparent hover:border-[var(--it-calendar-today-bg)] hover:bg-[var(--it-calendar-today-bg)] transition-colors cursor-pointer z-0"
|
|
505
505
|
onMouseDown={(e) => {
|
|
506
506
|
const d = new Date(day); d.setHours(hour, 0, 0, 0);
|
|
507
507
|
handleMouseDown(d, e);
|
|
@@ -513,13 +513,13 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
513
513
|
onClick={() => {
|
|
514
514
|
if (!isDraggingRef.current) {
|
|
515
515
|
const d = new Date(day); d.setHours(hour, 0, 0, 0);
|
|
516
|
-
onSlotClick
|
|
516
|
+
if (onSlotClick) onSlotClick(d);
|
|
517
517
|
}
|
|
518
518
|
}}
|
|
519
519
|
/>
|
|
520
520
|
{/* Slot 30 */}
|
|
521
521
|
<div
|
|
522
|
-
className="absolute inset-x-0 bottom-0 h-10 hover:border-[var(--calendar-today-bg)] hover:bg-[var(--calendar-today-bg)] transition-colors cursor-pointer z-0"
|
|
522
|
+
className="absolute inset-x-0 bottom-0 h-10 hover:border-[var(--it-calendar-today-bg)] hover:bg-[var(--it-calendar-today-bg)] transition-colors cursor-pointer z-0"
|
|
523
523
|
onMouseDown={(e) => {
|
|
524
524
|
const d = new Date(day); d.setHours(hour, 30, 0, 0);
|
|
525
525
|
handleMouseDown(d, e);
|
|
@@ -531,7 +531,7 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
531
531
|
onClick={() => {
|
|
532
532
|
if (!isDraggingRef.current) {
|
|
533
533
|
const d = new Date(day); d.setHours(hour, 30, 0, 0);
|
|
534
|
-
onSlotClick
|
|
534
|
+
if (onSlotClick) onSlotClick(d);
|
|
535
535
|
}
|
|
536
536
|
}}
|
|
537
537
|
/>
|
|
@@ -555,7 +555,7 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
555
555
|
|
|
556
556
|
return (
|
|
557
557
|
<div
|
|
558
|
-
className="absolute left-1 right-1 bg-[var(--calendar-selected-bg)]/30 border border-[var(--calendar-selected-bg)] rounded z-10 pointer-events-none"
|
|
558
|
+
className="absolute left-1 right-1 bg-[var(--it-calendar-selected-bg)]/30 border border-[var(--it-calendar-selected-bg)] rounded z-10 pointer-events-none"
|
|
559
559
|
style={{ top: `${top}px`, height: `${height}px` }}
|
|
560
560
|
/>
|
|
561
561
|
);
|
|
@@ -572,7 +572,7 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
572
572
|
key={event.id}
|
|
573
573
|
className={cn(
|
|
574
574
|
"absolute left-1 right-1 rounded px-2 py-1 text-xs cursor-pointer hover:brightness-95 transition-all shadow-sm overflow-hidden z-20 border-l-4",
|
|
575
|
-
!event.color && "bg-[var(--calendar-today-bg)] text-[var(--calendar-today-text)] border-[var(--calendar-selected-bg)]"
|
|
575
|
+
!event.color && "bg-[var(--it-calendar-today-bg)] text-[var(--it-calendar-today-text)] border-[var(--it-calendar-selected-bg)]"
|
|
576
576
|
)}
|
|
577
577
|
style={{
|
|
578
578
|
top: style.top,
|
|
@@ -583,7 +583,7 @@ export const ITCalendar: React.FC<ITCalendarProps> = ({
|
|
|
583
583
|
}}
|
|
584
584
|
onClick={(e) => {
|
|
585
585
|
e.stopPropagation();
|
|
586
|
-
onEventClick
|
|
586
|
+
if (onEventClick) onEventClick(event);
|
|
587
587
|
}}
|
|
588
588
|
>
|
|
589
589
|
<ITText as="div" className="font-semibold truncate">{event.title}</ITText>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import ITCard from '
|
|
3
|
-
import ITButton from '
|
|
2
|
+
import ITCard from '@/components/molecules/card/card';
|
|
3
|
+
import ITButton from '@/components/atoms/button/button';
|
|
4
4
|
|
|
5
5
|
const meta = {
|
|
6
6
|
title: 'Components/Layout & Navigation/ITCard',
|
|
@@ -8,7 +8,6 @@ const meta = {
|
|
|
8
8
|
parameters: {
|
|
9
9
|
layout: 'centered',
|
|
10
10
|
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
11
|
argTypes: {
|
|
13
12
|
onClick: { action: 'clicked' },
|
|
14
13
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITCardProps } from "./card.props";
|
|
3
3
|
import { useState } from "react";
|
|
4
|
-
import ITText from "@/components/text/text";
|
|
4
|
+
import ITText from "@/components/atoms/text/text";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Versatile card container with optional image, title, body content, and action footer. Supports interactive hover states.
|
|
@@ -32,10 +32,10 @@ export default function ITCard({
|
|
|
32
32
|
const [isHovered, setIsHovered] = useState(false);
|
|
33
33
|
|
|
34
34
|
const containerStyle: React.CSSProperties = {
|
|
35
|
-
backgroundColor: "var(--card-bg, #ffffff)",
|
|
36
|
-
borderColor: "var(--card-border, rgba(15, 23, 42, 0.06))",
|
|
35
|
+
backgroundColor: "var(--it-card-bg, #ffffff)",
|
|
36
|
+
borderColor: "var(--it-card-border, rgba(15, 23, 42, 0.06))",
|
|
37
37
|
borderWidth: "1px",
|
|
38
|
-
borderRadius: "var(--card-radius, var(--radius-2xl))",
|
|
38
|
+
borderRadius: "var(--it-card-radius, var(--radius-2xl))",
|
|
39
39
|
// Soft depth: every card floats a little at rest; interactive cards
|
|
40
40
|
// gain visual weight on hover instead of appearing flat until clicked.
|
|
41
41
|
boxShadow: onClick
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './date-picker.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITDatePicker
|
|
7
7
|
|
|
@@ -17,7 +17,7 @@ A date picker supporting single date and date range selection. Includes built-in
|
|
|
17
17
|
| `onBlur` | `(event) => void` | — | Callback when the input loses focus. |
|
|
18
18
|
| `range` | `boolean` | `false` | Enable date-range selection mode. |
|
|
19
19
|
| `variant` | `ColorsTypes` | `"primary"` | Color variant from design system. |
|
|
20
|
-
| `size` | `SizesTypes` | `"
|
|
20
|
+
| `size` | `SizesTypes` | `"md"` | Size preset: `"sm"`, `"md"`, `"lg"`. |
|
|
21
21
|
| `className` | `string` | — | CSS classes for the wrapper. |
|
|
22
22
|
| `calendarClassName` | `string` | — | CSS classes for the calendar popover. |
|
|
23
23
|
| `disabled` | `boolean` | `false` | Disables the date picker. |
|
|
@@ -22,7 +22,7 @@ export interface ITDatePickerProps {
|
|
|
22
22
|
range?: boolean;
|
|
23
23
|
/** Color variant matching the design system (ColorsTypes). @default "primary" */
|
|
24
24
|
variant?: ColorsTypes;
|
|
25
|
-
/** Size
|
|
25
|
+
/** Size preset: "sm" | "md" | "lg". @default "md" */
|
|
26
26
|
size?: SizesTypes;
|
|
27
27
|
/** Additional CSS classes for the wrapper element. */
|
|
28
28
|
className?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Meta
|
|
1
|
+
import type { Meta } from '@storybook/react';
|
|
2
2
|
import ITDatePicker from './datePicker';
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
|
|
@@ -8,7 +8,6 @@ const meta = {
|
|
|
8
8
|
parameters: {
|
|
9
9
|
layout: 'padded',
|
|
10
10
|
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
11
|
argTypes: {
|
|
13
12
|
value: { control: 'date' },
|
|
14
13
|
minDate: { control: 'date' },
|
|
@@ -21,7 +20,6 @@ const meta = {
|
|
|
21
20
|
} satisfies Meta<typeof ITDatePicker>;
|
|
22
21
|
|
|
23
22
|
export default meta;
|
|
24
|
-
type Story = StoryObj<typeof meta>;
|
|
25
23
|
|
|
26
24
|
// Wrapper for controlled component state
|
|
27
25
|
const DatePickerWrapper = (args: any) => {
|
|
@@ -2,8 +2,8 @@ import clsx from "clsx";
|
|
|
2
2
|
import React, { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { FaCalendarAlt } from "react-icons/fa";
|
|
4
4
|
import { isBefore } from "date-fns";
|
|
5
|
-
import ITCalendar from "
|
|
6
|
-
import ITInput from "
|
|
5
|
+
import ITCalendar from "@/components/molecules/calendar/calendar";
|
|
6
|
+
import ITInput from "@/components/atoms/input/input";
|
|
7
7
|
import { ITDatePickerProps } from "./date-picker.props";
|
|
8
8
|
import { theme } from "@/theme/theme";
|
|
9
9
|
|
|
@@ -43,7 +43,7 @@ export default function ITDatePicker({
|
|
|
43
43
|
onChange,
|
|
44
44
|
onBlur,
|
|
45
45
|
variant = "primary",
|
|
46
|
-
size = "
|
|
46
|
+
size = "md",
|
|
47
47
|
className,
|
|
48
48
|
calendarClassName,
|
|
49
49
|
disabled = false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './empty-state.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITEmptyState
|
|
7
7
|
|
|
@@ -25,7 +25,7 @@ import { ITEmptyState } from '@axzydev/axzy_ui_system';
|
|
|
25
25
|
<ITEmptyState
|
|
26
26
|
title="No results"
|
|
27
27
|
description="No data found for the selected filters."
|
|
28
|
-
action={<ITButton label="Clear filters" variant="outlined" size="
|
|
28
|
+
action={<ITButton label="Clear filters" variant="outlined" size="sm" />}
|
|
29
29
|
/>
|
|
30
30
|
|
|
31
31
|
<ITEmptyState
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITEmptyState from "
|
|
3
|
-
import ITButton from "
|
|
2
|
+
import ITEmptyState from "@/components/molecules/empty-state/empty-state";
|
|
3
|
+
import ITButton from "@/components/atoms/button/button";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof ITEmptyState> = {
|
|
6
6
|
title: "Components/Data Display/ITEmptyState",
|
|
7
7
|
component: ITEmptyState,
|
|
8
|
-
tags: ["autodocs"],
|
|
9
8
|
};
|
|
10
9
|
|
|
11
10
|
export default meta;
|
|
@@ -15,6 +14,6 @@ export const Default: Story = {
|
|
|
15
14
|
args: {
|
|
16
15
|
title: "Sin resultados",
|
|
17
16
|
description: "No se encontraron datos para los filtros seleccionados.",
|
|
18
|
-
action: <ITButton label="Limpiar filtros" variant="outlined" size="
|
|
17
|
+
action: <ITButton label="Limpiar filtros" variant="outlined" size="sm" />,
|
|
19
18
|
},
|
|
20
19
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITEmptyStateProps } from "./empty-state.props";
|
|
3
3
|
import { FaInbox } from "react-icons/fa";
|
|
4
|
-
import ITText from "@/components/text/text";
|
|
4
|
+
import ITText from "@/components/atoms/text/text";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Placeholder display for empty data sets.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './form-header.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITFormHeader
|
|
7
7
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import ITFormHeader from '
|
|
2
|
+
import ITFormHeader from '@/components/molecules/form-header/form-header';
|
|
3
3
|
|
|
4
4
|
const meta = {
|
|
5
5
|
title: 'Components/Feedback/ITFormHeader',
|
|
6
6
|
component: ITFormHeader,
|
|
7
7
|
parameters: { layout: 'centered' },
|
|
8
|
-
tags: ['autodocs'],
|
|
9
8
|
argTypes: {
|
|
10
9
|
title: { control: 'text', description: 'The title displayed in the header' },
|
|
11
10
|
onClose: { control: false, description: 'Optional close button handler' },
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FaTimes } from "react-icons/fa";
|
|
2
2
|
import { ITFormHeaderProps } from "./form-header.props";
|
|
3
|
-
import { useITThemeSafe } from "
|
|
3
|
+
import { useITThemeSafe } from "@/theme/theme-context";
|
|
4
4
|
import { getContrastTextColor } from "@/utils/color.utils";
|
|
5
|
-
import ITText from "@/components/text/text";
|
|
5
|
+
import ITText from "@/components/atoms/text/text";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Colored header bar for modals and forms with an optional close button.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './pagination.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITPagination
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import ITPagination from "
|
|
2
|
+
import ITPagination from "@/components/molecules/pagination/pagination";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof ITPagination> = {
|
|
@@ -8,7 +8,6 @@ const meta: Meta<typeof ITPagination> = {
|
|
|
8
8
|
parameters: {
|
|
9
9
|
layout: "centered",
|
|
10
10
|
},
|
|
11
|
-
tags: ["autodocs"],
|
|
12
11
|
argTypes: {
|
|
13
12
|
currentPage: { control: "number" },
|
|
14
13
|
totalPages: { control: "number" },
|
|
@@ -3,8 +3,8 @@ import clsx from "clsx";
|
|
|
3
3
|
import { FaChevronLeft, FaChevronRight } from "react-icons/fa";
|
|
4
4
|
import { ITPaginationProps } from "./pagination.props";
|
|
5
5
|
import { theme } from "@/theme/theme";
|
|
6
|
-
import ITSelect from "
|
|
7
|
-
import ITText from "@/components/text/text";
|
|
6
|
+
import ITSelect from "@/components/molecules/select/select";
|
|
7
|
+
import ITText from "@/components/atoms/text/text";
|
|
8
8
|
|
|
9
9
|
const DOTS = "...";
|
|
10
10
|
|
|
@@ -44,8 +44,8 @@ const usePagination = ({
|
|
|
44
44
|
Case 2: No left dots to show, but rights dots to be shown
|
|
45
45
|
*/
|
|
46
46
|
if (!shouldShowLeftDots && shouldShowRightDots) {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const leftItemCount = 3 + 2 * siblingCount;
|
|
48
|
+
const leftRange = Array.from({ length: leftItemCount }, (_, i) => i + 1);
|
|
49
49
|
return [...leftRange, DOTS, totalPages];
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -53,8 +53,8 @@ const usePagination = ({
|
|
|
53
53
|
Case 3: No right dots to show, but left dots to be shown
|
|
54
54
|
*/
|
|
55
55
|
if (shouldShowLeftDots && !shouldShowRightDots) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const rightItemCount = 3 + 2 * siblingCount;
|
|
57
|
+
const rightRange = Array.from(
|
|
58
58
|
{ length: rightItemCount },
|
|
59
59
|
(_, i) => totalPages - rightItemCount + i + 1
|
|
60
60
|
);
|
|
@@ -65,7 +65,7 @@ const usePagination = ({
|
|
|
65
65
|
Case 4: Both left and right dots to be shown
|
|
66
66
|
*/
|
|
67
67
|
if (shouldShowLeftDots && shouldShowRightDots) {
|
|
68
|
-
|
|
68
|
+
const middleRange = Array.from(
|
|
69
69
|
{ length: rightSiblingIndex - leftSiblingIndex + 1 },
|
|
70
70
|
(_, i) => leftSiblingIndex + i
|
|
71
71
|
);
|
|
@@ -226,7 +226,7 @@ export default function ITPagination({
|
|
|
226
226
|
value={String(itemsPerPage)}
|
|
227
227
|
onChange={(e) => onItemsPerPageChange(Number(e.target.value))}
|
|
228
228
|
onBlur={() => {}}
|
|
229
|
-
size="
|
|
229
|
+
size="sm"
|
|
230
230
|
className="!w-14 !h-6 !text-xs !py-0 !px-1! !border-none !bg-transparent !ring-0 focus:!ring-0 cursor-pointer font-bold text-secondary-700"
|
|
231
231
|
placeholder=""
|
|
232
232
|
/>
|