@axzydev/axzy_ui_system 1.2.12 → 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 +64 -9
- package/dist/index.cjs +6514 -6378
- 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 +189 -106
- package/dist/index.d.ts +189 -106
- package/dist/index.js +6496 -6360
- 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 +17 -2
- package/src/components/{dropfile → organisms/dropfile}/dropfile.props.ts +17 -0
- package/src/components/{dropfile → organisms/dropfile}/dropfile.stories.tsx +23 -5
- package/src/components/{dropfile → organisms/dropfile}/dropfile.tsx +96 -20
- 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,8 +1,8 @@
|
|
|
1
1
|
import { FaUserCircle, FaBars } from "react-icons/fa";
|
|
2
|
-
import useClickOutside from "
|
|
2
|
+
import useClickOutside from "@/hooks/useClickOutside";
|
|
3
3
|
import { useRef, useState } from "react";
|
|
4
4
|
import { ITTopBarProps } from "./topbar.props";
|
|
5
|
-
import ITText from "@/components/text/text";
|
|
5
|
+
import ITText from "@/components/atoms/text/text";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* ITTopBar — sticky top navigation bar with logo, nav items, and user avatar dropdown.
|
|
@@ -60,8 +60,8 @@ export default function ITTopBar({
|
|
|
60
60
|
<header
|
|
61
61
|
className="sticky top-0 z-40 backdrop-blur-md transition-all duration-300"
|
|
62
62
|
style={{
|
|
63
|
-
backgroundColor: "var(--topbar-bg, rgba(255, 255, 255, 0.9))",
|
|
64
|
-
borderBottom: "1px solid var(--topbar-border, rgba(15, 23, 42, 0.06))",
|
|
63
|
+
backgroundColor: "var(--it-topbar-bg, rgba(255, 255, 255, 0.9))",
|
|
64
|
+
borderBottom: "1px solid var(--it-topbar-border, rgba(15, 23, 42, 0.06))",
|
|
65
65
|
boxShadow: "var(--shadow-xs)",
|
|
66
66
|
}}
|
|
67
67
|
>
|
|
@@ -75,9 +75,9 @@ export default function ITTopBar({
|
|
|
75
75
|
<button
|
|
76
76
|
className="lg:hidden p-2.5 rounded-xl transition-colors duration-200"
|
|
77
77
|
style={{
|
|
78
|
-
color: "var(--topbar-icon, #64748b)",
|
|
78
|
+
color: "var(--it-topbar-icon, #64748b)",
|
|
79
79
|
}}
|
|
80
|
-
onMouseEnter={(e) => e.currentTarget.style.backgroundColor = "var(--topbar-user-hover, #f1f5f9)"}
|
|
80
|
+
onMouseEnter={(e) => e.currentTarget.style.backgroundColor = "var(--it-topbar-user-hover, #f1f5f9)"}
|
|
81
81
|
onMouseLeave={(e) => e.currentTarget.style.backgroundColor = "transparent"}
|
|
82
82
|
onClick={onToggleMobileMenu}
|
|
83
83
|
>
|
|
@@ -96,7 +96,7 @@ export default function ITTopBar({
|
|
|
96
96
|
{logoText && (
|
|
97
97
|
<ITText as="span"
|
|
98
98
|
className="text-[1.15rem] font-bold tracking-tight"
|
|
99
|
-
style={{ color: "var(--topbar-text, #0f172a)" }}
|
|
99
|
+
style={{ color: "var(--it-topbar-text, #0f172a)" }}
|
|
100
100
|
>
|
|
101
101
|
{logoText}
|
|
102
102
|
</ITText>
|
|
@@ -105,19 +105,19 @@ export default function ITTopBar({
|
|
|
105
105
|
|
|
106
106
|
{/* Top Navigation Items (Desktop) */}
|
|
107
107
|
{navItems && navItems.length > 0 && (
|
|
108
|
-
<nav className="hidden md:flex ml-8 space-x-1 border-l pl-8" style={{ borderColor: "var(--topbar-border, rgba(15, 23, 42, 0.06))" }}>
|
|
108
|
+
<nav className="hidden md:flex ml-8 space-x-1 border-l pl-8" style={{ borderColor: "var(--it-topbar-border, rgba(15, 23, 42, 0.06))" }}>
|
|
109
109
|
{navItems.map((item) => (
|
|
110
110
|
<button
|
|
111
111
|
key={item.id}
|
|
112
112
|
onClick={() => onNavItemClick?.(item.id)}
|
|
113
113
|
className="px-4 py-2 rounded-lg font-medium text-[0.9rem] transition-all duration-200 ease-[cubic-bezier(0.2,0,0,1)]"
|
|
114
|
-
style={{ color: "var(--topbar-text, #475569)" }}
|
|
114
|
+
style={{ color: "var(--it-topbar-text, #475569)" }}
|
|
115
115
|
onMouseEnter={(e) => {
|
|
116
|
-
e.currentTarget.style.color = "var(--topbar-text, #0f172a)";
|
|
117
|
-
e.currentTarget.style.backgroundColor = "var(--topbar-user-hover, #f1f5f9)";
|
|
116
|
+
e.currentTarget.style.color = "var(--it-topbar-text, #0f172a)";
|
|
117
|
+
e.currentTarget.style.backgroundColor = "var(--it-topbar-user-hover, #f1f5f9)";
|
|
118
118
|
}}
|
|
119
119
|
onMouseLeave={(e) => {
|
|
120
|
-
e.currentTarget.style.color = "var(--topbar-text, #475569)";
|
|
120
|
+
e.currentTarget.style.color = "var(--it-topbar-text, #475569)";
|
|
121
121
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
122
122
|
}}
|
|
123
123
|
>
|
|
@@ -138,10 +138,10 @@ export default function ITTopBar({
|
|
|
138
138
|
type="button"
|
|
139
139
|
className="flex items-center gap-3 rounded-full pl-2 pr-4 py-1.5 transition-all duration-200 ease-[cubic-bezier(0.2,0,0,1)] border border-transparent hover:border-secondary-200"
|
|
140
140
|
style={{
|
|
141
|
-
backgroundColor: isUserMenuOpen ? "var(--topbar-user-hover, #f1f5f9)" : "transparent",
|
|
141
|
+
backgroundColor: isUserMenuOpen ? "var(--it-topbar-user-hover, #f1f5f9)" : "transparent",
|
|
142
142
|
}}
|
|
143
143
|
onMouseEnter={(e) => {
|
|
144
|
-
if (!isUserMenuOpen) e.currentTarget.style.backgroundColor = "var(--topbar-user-hover, #f1f5f9)";
|
|
144
|
+
if (!isUserMenuOpen) e.currentTarget.style.backgroundColor = "var(--it-topbar-user-hover, #f1f5f9)";
|
|
145
145
|
}}
|
|
146
146
|
onMouseLeave={(e) => {
|
|
147
147
|
if (!isUserMenuOpen) e.currentTarget.style.backgroundColor = "transparent";
|
|
@@ -158,7 +158,7 @@ export default function ITTopBar({
|
|
|
158
158
|
/>
|
|
159
159
|
) : (
|
|
160
160
|
<div className="w-9 h-9 rounded-full bg-slate-100 flex items-center justify-center ring-2 ring-white shadow-sm">
|
|
161
|
-
<FaUserCircle className="w-6 h-6" style={{ color: "var(--topbar-icon, #94a3b8)" }} />
|
|
161
|
+
<FaUserCircle className="w-6 h-6" style={{ color: "var(--it-topbar-icon, #94a3b8)" }} />
|
|
162
162
|
</div>
|
|
163
163
|
)}
|
|
164
164
|
{/* Active dot indicator */}
|
|
@@ -169,13 +169,13 @@ export default function ITTopBar({
|
|
|
169
169
|
<div className="hidden sm:flex flex-col text-left py-0.5">
|
|
170
170
|
<ITText as="span"
|
|
171
171
|
className="font-semibold text-[0.85rem] leading-tight"
|
|
172
|
-
style={{ color: "var(--topbar-user-text, #0f172a)" }}
|
|
172
|
+
style={{ color: "var(--it-topbar-user-text, #0f172a)" }}
|
|
173
173
|
>
|
|
174
174
|
{userMenu.userName}
|
|
175
175
|
</ITText>
|
|
176
176
|
<ITText as="span"
|
|
177
177
|
className="text-[0.7rem] font-medium"
|
|
178
|
-
style={{ color: "var(--topbar-user-subtitle, #64748b)" }}
|
|
178
|
+
style={{ color: "var(--it-topbar-user-subtitle, #64748b)" }}
|
|
179
179
|
>
|
|
180
180
|
{userMenu.userEmail}
|
|
181
181
|
</ITText>
|
|
@@ -190,16 +190,16 @@ export default function ITTopBar({
|
|
|
190
190
|
${isUserMenuOpen ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 -translate-y-2 pointer-events-none"}
|
|
191
191
|
`}
|
|
192
192
|
style={{
|
|
193
|
-
backgroundColor: "var(--topbar-user-dropdown-bg, #ffffff)",
|
|
194
|
-
border: "1px solid var(--topbar-user-dropdown-border, #f1f5f9)"
|
|
193
|
+
backgroundColor: "var(--it-topbar-user-dropdown-bg, #ffffff)",
|
|
194
|
+
border: "1px solid var(--it-topbar-user-dropdown-border, #f1f5f9)"
|
|
195
195
|
}}
|
|
196
196
|
>
|
|
197
197
|
{/* Dropdown Header */}
|
|
198
|
-
<div className="px-5 py-4 border-b" style={{ borderColor: "var(--topbar-user-dropdown-border, #f1f5f9)", backgroundColor: "var(--topbar-user-bg, #f8fafc)" }}>
|
|
199
|
-
<ITText as="span" className="block font-bold text-[0.9rem]" style={{ color: "var(--topbar-user-text, #0f172a)" }}>
|
|
198
|
+
<div className="px-5 py-4 border-b" style={{ borderColor: "var(--it-topbar-user-dropdown-border, #f1f5f9)", backgroundColor: "var(--it-topbar-user-bg, #f8fafc)" }}>
|
|
199
|
+
<ITText as="span" className="block font-bold text-[0.9rem]" style={{ color: "var(--it-topbar-user-text, #0f172a)" }}>
|
|
200
200
|
{userMenu.userName}
|
|
201
201
|
</ITText>
|
|
202
|
-
<ITText as="span" className="block text-xs font-medium truncate mt-0.5" style={{ color: "var(--topbar-user-subtitle, #64748b)" }}>
|
|
202
|
+
<ITText as="span" className="block text-xs font-medium truncate mt-0.5" style={{ color: "var(--it-topbar-user-subtitle, #64748b)" }}>
|
|
203
203
|
{userMenu.userEmail}
|
|
204
204
|
</ITText>
|
|
205
205
|
</div>
|
|
@@ -215,14 +215,14 @@ export default function ITTopBar({
|
|
|
215
215
|
<div className="h-px bg-slate-100 my-1 mx-2"></div>
|
|
216
216
|
)}
|
|
217
217
|
<button
|
|
218
|
-
onClick={(
|
|
218
|
+
onClick={() => {
|
|
219
219
|
m.onClick();
|
|
220
220
|
setIsUserMenuOpen(false);
|
|
221
221
|
}}
|
|
222
222
|
className="block w-full text-left px-3 py-2.5 rounded-xl text-[0.875rem] font-medium transition-colors duration-150"
|
|
223
|
-
style={{ color: isDestructive ? 'var(--color-danger-500)' : "var(--topbar-user-text, #334155)" }}
|
|
223
|
+
style={{ color: isDestructive ? 'var(--color-danger-500)' : "var(--it-topbar-user-text, #334155)" }}
|
|
224
224
|
onMouseEnter={(e) => {
|
|
225
|
-
e.currentTarget.style.backgroundColor = isDestructive ? 'var(--color-danger-50)' : "var(--topbar-user-item-hover, #f8fafc)";
|
|
225
|
+
e.currentTarget.style.backgroundColor = isDestructive ? 'var(--color-danger-50)' : "var(--it-topbar-user-item-hover, #f8fafc)";
|
|
226
226
|
}}
|
|
227
227
|
onMouseLeave={(e) => {
|
|
228
228
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './tripleFilter.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITTripleFilter
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITTripleFilterProps } from "./tripleFilter.props";
|
|
3
3
|
import { ColorsTypes } from "@/types/colors.types";
|
|
4
|
-
import ITText from "@/components/text/text";
|
|
4
|
+
import ITText from "@/components/atoms/text/text";
|
|
5
5
|
|
|
6
6
|
const colorMap: Record<ColorsTypes, string> = {
|
|
7
7
|
primary: "text-primary-600",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ITTopBarProps } from "
|
|
2
|
-
import { ITSidebarProps } from "
|
|
1
|
+
import { ITTopBarProps } from "@/components/organisms/topbar/topbar.props";
|
|
2
|
+
import { ITSidebarProps } from "@/components/organisms/sidebar/sidebar.props";
|
|
3
3
|
|
|
4
4
|
export interface ITLayoutProps {
|
|
5
5
|
/** Top bar configuration and props */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import ITLayout from '
|
|
2
|
+
import ITLayout from '@/components/templates/layout/layout';
|
|
3
3
|
import { FaHome, FaUsers, FaChartBar, FaCog, FaShieldAlt } from 'react-icons/fa';
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof ITLayout> = {
|
|
@@ -17,7 +17,6 @@ const meta: Meta<typeof ITLayout> = {
|
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
|
-
tags: ['autodocs'],
|
|
21
20
|
};
|
|
22
21
|
|
|
23
22
|
export default meta;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import clsx from "clsx";
|
|
3
|
-
import ITTopBar from "
|
|
4
|
-
import ITSidebar from "
|
|
3
|
+
import ITTopBar from "@/components/organisms/topbar/topbar";
|
|
4
|
+
import ITSidebar from "@/components/organisms/sidebar/sidebar";
|
|
5
5
|
import { ITLayoutProps } from "./layout.props";
|
|
6
6
|
import { theme } from "@/theme/theme";
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
|
-
import { ITBreadcrumbItem } from "
|
|
2
|
+
import { ITBreadcrumbItem } from "@/components/molecules/breadcrumbs/breadcrumbs.props";
|
|
3
3
|
|
|
4
4
|
/** Props for the ITPage component. */
|
|
5
5
|
export interface ITPageProps {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
-
import ITPage from "
|
|
3
|
-
import ITButton from "
|
|
4
|
-
import ITCard from "
|
|
2
|
+
import ITPage from "@/components/templates/page/page";
|
|
3
|
+
import ITButton from "@/components/atoms/button/button";
|
|
4
|
+
import ITCard from "@/components/molecules/card/card";
|
|
5
5
|
|
|
6
6
|
const meta: Meta<typeof ITPage> = {
|
|
7
7
|
title: "Components/Layout/ITPage",
|
|
8
8
|
component: ITPage,
|
|
9
|
-
tags: ["autodocs"],
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
export default meta;
|
|
@@ -36,8 +35,8 @@ export const WithBreadcrumbsAndActions: Story = {
|
|
|
36
35
|
],
|
|
37
36
|
actions: (
|
|
38
37
|
<>
|
|
39
|
-
<ITButton label="Cancelar" variant="outlined" size="
|
|
40
|
-
<ITButton label="Guardar" size="
|
|
38
|
+
<ITButton label="Cancelar" variant="outlined" size="sm" />
|
|
39
|
+
<ITButton label="Guardar" size="sm" />
|
|
41
40
|
</>
|
|
42
41
|
),
|
|
43
42
|
children: (
|
|
@@ -73,7 +72,7 @@ export const Empty: Story = {
|
|
|
73
72
|
empty: true,
|
|
74
73
|
emptyTitle: "Sin notificaciones",
|
|
75
74
|
emptyDescription: "No tienes notificaciones pendientes.",
|
|
76
|
-
emptyAction: <ITButton label="Recargar" size="
|
|
75
|
+
emptyAction: <ITButton label="Recargar" size="sm" onClick={() => alert("Refresh")} />,
|
|
77
76
|
children: null,
|
|
78
77
|
},
|
|
79
78
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { ITPageProps } from "./page.props";
|
|
3
|
-
import ITPageHeader from "
|
|
4
|
-
import ITSkeleton from "
|
|
5
|
-
import ITEmptyState from "
|
|
6
|
-
import ITButton from "
|
|
7
|
-
import ITStack from "
|
|
3
|
+
import ITPageHeader from "@/components/organisms/page-header/page-header";
|
|
4
|
+
import ITSkeleton from "@/components/atoms/skeleton/skeleton";
|
|
5
|
+
import ITEmptyState from "@/components/molecules/empty-state/empty-state";
|
|
6
|
+
import ITButton from "@/components/atoms/button/button";
|
|
7
|
+
import ITStack from "@/components/atoms/stack/stack";
|
|
8
8
|
|
|
9
9
|
const hasHeader = (props: ITPageProps) =>
|
|
10
10
|
!!(props.title || props.description || props.breadcrumbs || props.actions || props.backAction || props.icon);
|
|
@@ -92,7 +92,7 @@ export default function ITPage(props: ITPageProps) {
|
|
|
92
92
|
<ITButton
|
|
93
93
|
label={errorActionLabel || "Reintentar"}
|
|
94
94
|
onClick={onRetry}
|
|
95
|
-
size="
|
|
95
|
+
size="sm"
|
|
96
96
|
/>
|
|
97
97
|
) : undefined
|
|
98
98
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { ITThemePalette } from "./themeProvider.props";
|
|
2
|
+
|
|
3
|
+
/** Paleta por defecto del sistema (fallback de `ITThemeProvider`). */
|
|
4
|
+
export const DEFAULT_PALETTE: ITThemePalette = {
|
|
5
|
+
primary: "#06b6d4", // Cyan
|
|
6
|
+
secondary: "#6b7280", // Gray
|
|
7
|
+
ternary: "#8b5cf6", // Purple/Violet
|
|
8
|
+
danger: "#ef4444", // Red
|
|
9
|
+
success: "#22c55e", // Green
|
|
10
|
+
info: "#3b82f6", // Blue
|
|
11
|
+
alert: "#f97316", // Orange
|
|
12
|
+
warning: "#eab308", // Yellow
|
|
13
|
+
layout: {
|
|
14
|
+
sidebarBg: "#ffffff", // White (light mode default)
|
|
15
|
+
sidebarText: "#334155", // Slate-700 (dark text for light sidebar)
|
|
16
|
+
navbarBg: "#ffffff", // White
|
|
17
|
+
navbarText: "#1e293b", // Slate-800
|
|
18
|
+
},
|
|
19
|
+
table: {
|
|
20
|
+
headerBg: "#f8fafc", // Slate-50
|
|
21
|
+
headerText: "#334155", // Slate-700
|
|
22
|
+
rowBg: "#ffffff", // White
|
|
23
|
+
rowText: "#1e293b", // Slate-800
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** Presets de colores para el FAB/theme-designer. */
|
|
28
|
+
export const PRESETS: { name: string; colors: ITThemePalette }[] = [
|
|
29
|
+
{
|
|
30
|
+
name: "Midnight Indigo 🌌",
|
|
31
|
+
colors: {
|
|
32
|
+
primary: "#6366f1",
|
|
33
|
+
secondary: "#475569",
|
|
34
|
+
ternary: "#f472b6",
|
|
35
|
+
danger: "#ef4444",
|
|
36
|
+
success: "#34d399",
|
|
37
|
+
info: "#06b6d4",
|
|
38
|
+
alert: "#fb923c",
|
|
39
|
+
warning: "#fbbf24",
|
|
40
|
+
layout: {
|
|
41
|
+
sidebarBg: "#0b1120",
|
|
42
|
+
sidebarText: "#94a3b8",
|
|
43
|
+
navbarBg: "#0f172a",
|
|
44
|
+
navbarText: "#f1f5f9",
|
|
45
|
+
},
|
|
46
|
+
table: {
|
|
47
|
+
headerBg: "#f1f5f9",
|
|
48
|
+
headerText: "#334155",
|
|
49
|
+
rowBg: "#ffffff",
|
|
50
|
+
rowText: "#0f172a",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "Coral Reef 🪸",
|
|
56
|
+
colors: {
|
|
57
|
+
primary: "#f43f5e",
|
|
58
|
+
secondary: "#57534e",
|
|
59
|
+
ternary: "#f97316",
|
|
60
|
+
danger: "#b91c1c",
|
|
61
|
+
success: "#14b8a6",
|
|
62
|
+
info: "#6366f1",
|
|
63
|
+
alert: "#eab308",
|
|
64
|
+
warning: "#fde047",
|
|
65
|
+
layout: {
|
|
66
|
+
sidebarBg: "#0c0808",
|
|
67
|
+
sidebarText: "#fda4af",
|
|
68
|
+
navbarBg: "#1c1212",
|
|
69
|
+
navbarText: "#fff1f2",
|
|
70
|
+
},
|
|
71
|
+
table: {
|
|
72
|
+
headerBg: "#fff1f2",
|
|
73
|
+
headerText: "#881337",
|
|
74
|
+
rowBg: "#ffffff",
|
|
75
|
+
rowText: "#1c1212",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "Oceanic Teal 🌊",
|
|
81
|
+
colors: {
|
|
82
|
+
primary: "#0d9488",
|
|
83
|
+
secondary: "#64748b",
|
|
84
|
+
ternary: "#a78bfa",
|
|
85
|
+
danger: "#e11d48",
|
|
86
|
+
success: "#22c55e",
|
|
87
|
+
info: "#0284c7",
|
|
88
|
+
alert: "#ea580c",
|
|
89
|
+
warning: "#ca8a04",
|
|
90
|
+
layout: {
|
|
91
|
+
sidebarBg: "#042f2e",
|
|
92
|
+
sidebarText: "#5eead4",
|
|
93
|
+
navbarBg: "#062b2a",
|
|
94
|
+
navbarText: "#ccfbf1",
|
|
95
|
+
},
|
|
96
|
+
table: {
|
|
97
|
+
headerBg: "#f0fdfa",
|
|
98
|
+
headerText: "#115e59",
|
|
99
|
+
rowBg: "#ffffff",
|
|
100
|
+
rowText: "#042f2e",
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "Golden Hour ☀️",
|
|
106
|
+
colors: {
|
|
107
|
+
primary: "#d97706",
|
|
108
|
+
secondary: "#78716c",
|
|
109
|
+
ternary: "#db2777",
|
|
110
|
+
danger: "#dc2626",
|
|
111
|
+
success: "#65a30d",
|
|
112
|
+
info: "#2563eb",
|
|
113
|
+
alert: "#f97316",
|
|
114
|
+
warning: "#facc15",
|
|
115
|
+
layout: {
|
|
116
|
+
sidebarBg: "#fefce8",
|
|
117
|
+
sidebarText: "#713f12",
|
|
118
|
+
navbarBg: "#fffbeb",
|
|
119
|
+
navbarText: "#451a03",
|
|
120
|
+
},
|
|
121
|
+
table: {
|
|
122
|
+
headerBg: "#fefce8",
|
|
123
|
+
headerText: "#713f12",
|
|
124
|
+
rowBg: "#ffffff",
|
|
125
|
+
rowText: "#292524",
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "Deep Forest 🌲",
|
|
131
|
+
colors: {
|
|
132
|
+
primary: "#16a34a",
|
|
133
|
+
secondary: "#57534e",
|
|
134
|
+
ternary: "#d946ef",
|
|
135
|
+
danger: "#dc2626",
|
|
136
|
+
success: "#14b8a6",
|
|
137
|
+
info: "#0ea5e9",
|
|
138
|
+
alert: "#f97316",
|
|
139
|
+
warning: "#eab308",
|
|
140
|
+
layout: {
|
|
141
|
+
sidebarBg: "#052e16",
|
|
142
|
+
sidebarText: "#86efac",
|
|
143
|
+
navbarBg: "#0b3b1c",
|
|
144
|
+
navbarText: "#dcfce7",
|
|
145
|
+
},
|
|
146
|
+
table: {
|
|
147
|
+
headerBg: "#f0fdf4",
|
|
148
|
+
headerText: "#166534",
|
|
149
|
+
rowBg: "#ffffff",
|
|
150
|
+
rowText: "#052e16",
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
|
|
2
|
-
import * as
|
|
2
|
+
import * as StoriesData from './themeProvider.stories';
|
|
3
3
|
|
|
4
|
-
<Meta of={
|
|
4
|
+
<Meta of={StoriesData} />
|
|
5
5
|
|
|
6
6
|
# ITThemeProvider
|
|
7
7
|
|
|
@@ -14,6 +14,9 @@ Root theme context that injects CSS custom properties into the entire component
|
|
|
14
14
|
| `theme` | `Partial<ITThemePalette>` | — | Partial palette overrides merged with the default theme. Supports primary, secondary, ternary, danger, success, info, alert, warning, layout, and table colors. |
|
|
15
15
|
| `children` | `React.ReactNode` | — | The subtree that receives the theme context and CSS variables. |
|
|
16
16
|
| `showFab` | `boolean` | `false` | Whether to show the floating action button for opening the theme designer drawer. |
|
|
17
|
+
| `density` | `number` | `1` | Global density/compactness factor: values below `1` shrink base sizes (fonts, paddings, gaps), above `1` grow them. Applies by scaling the root font-size so every `rem`-based token compacts together while the layout stays fluid. Clamped to `0.5`–`1.5`. |
|
|
18
|
+
| `radius` | `number` | — | Global border radius in **px** applied to the whole rounding scale. `2` ⇒ 2px corners (near-square), `8` ⇒ 8px, `0` ⇒ square. No override when omitted (Tailwind defaults). |
|
|
19
|
+
| `shadow` | `number` | `2` | Global shadow strength level: `0` ⇒ none, `1` ⇒ subtle, `2` ⇒ default current look, `3` ⇒ pronounced. No override when omitted (keeps defaults). |
|
|
17
20
|
|
|
18
21
|
### ITThemePalette Shape
|
|
19
22
|
|
|
@@ -57,6 +60,11 @@ import { ITThemeProvider } from '@axzydev/axzy_ui_system';
|
|
|
57
60
|
<ITThemeProvider showFab>
|
|
58
61
|
<App />
|
|
59
62
|
</ITThemeProvider>
|
|
63
|
+
|
|
64
|
+
{/* Cuadrado en todos lados y sombras nivel 2 */}
|
|
65
|
+
<ITThemeProvider radius={2} shadow={2}>
|
|
66
|
+
<App />
|
|
67
|
+
</ITThemeProvider>
|
|
60
68
|
```
|
|
61
69
|
|
|
62
70
|
## Notes
|
|
@@ -46,4 +46,10 @@ export interface ITThemeProviderProps {
|
|
|
46
46
|
children: React.ReactNode;
|
|
47
47
|
/** Whether to render the floating action button (bottom-right) that opens the live theme-designer drawer, letting end users tweak colors and persist their choice. Set to `false` to hide the FAB in production and only theme via the `theme` prop. @default true */
|
|
48
48
|
showFab?: boolean;
|
|
49
|
+
/** Global density/compactness factor. Values below 1 shrink the UI's base sizes, above 1 grow them (e.g. `0.8` = 80%: smaller fonts, paddings, gaps, spacing). Applied by scaling the root font-size so every `rem`-based token in Tailwind components compacts together, keeping the layout fluid (no empty margins, unlike CSS zoom). Clamped to `0.5`–`1.5`. @default 1 */
|
|
50
|
+
density?: number;
|
|
51
|
+
/** Global border radius in pixels applied to the entire rounding scale (`rounded-sm/md/lg/xl/2xl/…`). `radius={2}` ⇒ 2px corners (near-square), `8` ⇒ 8px, `0` ⇒ completely square. Every `rounded-*` utility resolves to a `--radius-*` variable, so this reshapes inputs, buttons, cards, dialogs and tables system-wide with no per-component changes. @default 0 (no override, Tailwind defaults) */
|
|
52
|
+
radius?: number;
|
|
53
|
+
/** Global shadow strength level. `0` ⇒ no shadows, `1` ⇒ subtle, `2` ⇒ default current look, `3` ⇒ pronounced. Shadows are injected as `--shadow-*`/`.shadow-*` overrides so cards, dropdowns and dialogs follow the level. @default 2 (keeps current default when omitted) */
|
|
54
|
+
shadow?: number;
|
|
49
55
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import ITThemeProvider from './themeProvider';
|
|
3
|
-
import ITCard from '
|
|
4
|
-
import ITButton from '
|
|
5
|
-
import ITText from '
|
|
3
|
+
import ITCard from '@/components/molecules/card/card';
|
|
4
|
+
import ITButton from '@/components/atoms/button/button';
|
|
5
|
+
import ITText from '@/components/atoms/text/text';
|
|
6
6
|
|
|
7
7
|
const meta = {
|
|
8
8
|
title: 'Components/System/ITThemeProvider',
|
|
9
9
|
component: ITThemeProvider,
|
|
10
10
|
parameters: { layout: 'centered' },
|
|
11
|
-
tags: ['autodocs'],
|
|
12
11
|
argTypes: {
|
|
13
12
|
theme: { control: false, description: 'Custom theme palette to override defaults' },
|
|
14
13
|
children: { control: false, description: 'App content wrapped by the theme context' },
|