@sbkbs/ui 1.0.5 → 2.0.0-beta.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/CHANGELOG.md +57 -0
- package/MIGRATION.md +96 -0
- package/README.md +221 -115
- package/dist/assets/favicon/apple-touch-icon.png +0 -0
- package/dist/assets/favicon/favicon-96x96.png +0 -0
- package/dist/assets/favicon/favicon.ico +0 -0
- package/dist/assets/favicon/favicon.svg +1 -0
- package/dist/assets/favicon/site.webmanifest +21 -0
- package/dist/assets/favicon/web-app-manifest-192x192.png +0 -0
- package/dist/assets/favicon/web-app-manifest-512x512.png +0 -0
- package/dist/base.css +38 -0
- package/dist/components/Accordion/Accordion.d.ts +13 -1
- package/dist/components/Accordion/Accordion.js +100 -52
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +17 -4
- package/dist/components/Alert/Alert.js +64 -20
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +17 -0
- package/dist/components/Avatar/Avatar.js +66 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Badge/Badge.d.ts +11 -2
- package/dist/components/Badge/Badge.js +42 -30
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +5 -2
- package/dist/components/Breadcrumb/Breadcrumb.js +23 -16
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Button/Button.d.ts +10 -8
- package/dist/components/Button/Button.js +73 -114
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.d.ts +33 -3
- package/dist/components/Card/Card.js +91 -30
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +4 -1
- package/dist/components/Checkbox/Checkbox.js +32 -31
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.d.ts +7 -1
- package/dist/components/Chip/Chip.js +19 -9
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/Combobox/Combobox.d.ts +10 -2
- package/dist/components/Combobox/Combobox.js +146 -133
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Divider/Divider.d.ts +7 -1
- package/dist/components/Divider/Divider.js +28 -12
- package/dist/components/Divider/Divider.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +33 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +147 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.d.ts +7 -1
- package/dist/components/EmptyState/EmptyState.js +28 -19
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/Field/Field.d.ts +21 -0
- package/dist/components/Field/Field.js +35 -0
- package/dist/components/Field/Field.js.map +1 -0
- package/dist/components/FileUpload/FileUpload.d.ts +9 -2
- package/dist/components/FileUpload/FileUpload.js +128 -102
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Footer/Footer.d.ts +19 -6
- package/dist/components/Footer/Footer.js +47 -50
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/GlassPanel/GlassPanel.d.ts +18 -0
- package/dist/components/GlassPanel/GlassPanel.js +39 -0
- package/dist/components/GlassPanel/GlassPanel.js.map +1 -0
- package/dist/components/Header/Header.d.ts +27 -10
- package/dist/components/Header/Header.js +98 -98
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Highlight/Highlight.d.ts +13 -0
- package/dist/components/Highlight/Highlight.js +18 -0
- package/dist/components/Highlight/Highlight.js.map +1 -0
- package/dist/components/Icon/Icon.d.ts +21 -0
- package/dist/components/Icon/Icon.js +31 -0
- package/dist/components/Icon/Icon.js.map +1 -0
- package/dist/components/IconButton/IconButton.d.ts +12 -0
- package/dist/components/IconButton/IconButton.js +49 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/Input/Input.d.ts +3 -2
- package/dist/components/Input/Input.js +51 -69
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Layout/Layout.d.ts +2 -0
- package/dist/components/Layout/Layout.js +24 -18
- package/dist/components/Layout/Layout.js.map +1 -1
- package/dist/components/Logo/Logo.d.ts +27 -0
- package/dist/components/Logo/Logo.js +107 -0
- package/dist/components/Logo/Logo.js.map +1 -0
- package/dist/components/MiniCard/MiniCard.d.ts +21 -0
- package/dist/components/MiniCard/MiniCard.js +90 -0
- package/dist/components/MiniCard/MiniCard.js.map +1 -0
- package/dist/components/Modal/Modal.d.ts +16 -3
- package/dist/components/Modal/Modal.js +124 -93
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Navigation/Navigation.d.ts +1 -0
- package/dist/components/Navigation/Navigation.js +14 -14
- package/dist/components/Navigation/Navigation.js.map +1 -1
- package/dist/components/NumberInput/NumberInput.d.ts +5 -2
- package/dist/components/NumberInput/NumberInput.js +98 -128
- package/dist/components/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/PageHeader/PageHeader.d.ts +8 -1
- package/dist/components/PageHeader/PageHeader.js +26 -25
- package/dist/components/PageHeader/PageHeader.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +15 -2
- package/dist/components/Pagination/Pagination.js +68 -34
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Paragraph/Paragraph.d.ts +8 -2
- package/dist/components/Paragraph/Paragraph.js +39 -36
- package/dist/components/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +12 -1
- package/dist/components/Popover/Popover.js +49 -37
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +18 -0
- package/dist/components/ProgressBar/ProgressBar.js +71 -0
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/Radio/Radio.d.ts +2 -1
- package/dist/components/Radio/Radio.js +27 -31
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/SectionHeader/SectionHeader.d.ts +6 -1
- package/dist/components/SectionHeader/SectionHeader.js +14 -12
- package/dist/components/SectionHeader/SectionHeader.js.map +1 -1
- package/dist/components/Select/Select.d.ts +6 -2
- package/dist/components/Select/Select.js +47 -35
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SideNav/SideNav.d.ts +55 -0
- package/dist/components/SideNav/SideNav.js +141 -0
- package/dist/components/SideNav/SideNav.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +12 -1
- package/dist/components/Skeleton/Skeleton.js +33 -18
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +15 -0
- package/dist/components/Spinner/Spinner.js +57 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Stepper/Stepper.d.ts +1 -1
- package/dist/components/Stepper/Stepper.js +68 -55
- package/dist/components/Stepper/Stepper.js.map +1 -1
- package/dist/components/Subtitle/Subtitle.d.ts +9 -3
- package/dist/components/Subtitle/Subtitle.js +29 -35
- package/dist/components/Subtitle/Subtitle.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -1
- package/dist/components/Switch/Switch.js +45 -33
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Table/Table.d.ts +19 -1
- package/dist/components/Table/Table.js +48 -11
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +16 -2
- package/dist/components/Tabs/Tabs.js +80 -44
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tag/Tag.d.ts +8 -1
- package/dist/components/Tag/Tag.js +27 -12
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +3 -1
- package/dist/components/Textarea/Textarea.js +36 -40
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Title/Title.d.ts +9 -3
- package/dist/components/Title/Title.js +42 -42
- package/dist/components/Title/Title.js.map +1 -1
- package/dist/components/Toast/Toast.d.ts +39 -11
- package/dist/components/Toast/Toast.js +130 -76
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +12 -2
- package/dist/components/Tooltip/Tooltip.js +50 -32
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Typography/weight.d.ts +9 -0
- package/dist/components/Typography/weight.js +5 -0
- package/dist/components/Typography/weight.js.map +1 -0
- package/dist/fonts.css +8 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +55 -43
- package/dist/index.js +118 -83
- package/dist/index.js.map +1 -1
- package/dist/reset.css +9 -0
- package/dist/styles.css +1 -0
- package/dist/tailwind.css +153 -0
- package/dist/theme/ThemeProvider.d.ts +21 -3
- package/dist/theme/ThemeProvider.js +57 -18
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/tokens.d.ts +43 -0
- package/dist/theme/tokens.js +39 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/theme.css +296 -261
- package/dist/tokens.css +327 -0
- package/dist/utils/cn.d.ts +2 -2
- package/dist/utils/cn.js +19 -4
- package/dist/utils/cn.js.map +1 -1
- package/dist/utils/styles.d.ts +37 -0
- package/dist/utils/styles.js +35 -0
- package/dist/utils/styles.js.map +1 -0
- package/package.json +140 -114
- package/dist/components/Accordion/Accordion.stories.d.ts +0 -7
- package/dist/components/Alert/Alert.stories.d.ts +0 -8
- package/dist/components/Badge/Badge.stories.d.ts +0 -8
- package/dist/components/Breadcrumb/Breadcrumb.stories.d.ts +0 -8
- package/dist/components/Button/Button.stories.d.ts +0 -7
- package/dist/components/Card/Card.stories.d.ts +0 -8
- package/dist/components/Checkbox/Checkbox.stories.d.ts +0 -7
- package/dist/components/Combobox/Combobox.stories.d.ts +0 -9
- package/dist/components/Feedback/Feedback.stories.d.ts +0 -5
- package/dist/components/FileUpload/FileUpload.stories.d.ts +0 -10
- package/dist/components/Input/Input.stories.d.ts +0 -9
- package/dist/components/Modal/Modal.stories.d.ts +0 -8
- package/dist/components/NumberInput/NumberInput.stories.d.ts +0 -8
- package/dist/components/Pagination/Pagination.stories.d.ts +0 -8
- package/dist/components/Radio/Radio.stories.d.ts +0 -7
- package/dist/components/Select/Select.stories.d.ts +0 -8
- package/dist/components/Stepper/Stepper.stories.d.ts +0 -8
- package/dist/components/Switch/Switch.stories.d.ts +0 -8
- package/dist/components/Tabs/Tabs.stories.d.ts +0 -8
- package/dist/components/Textarea/Textarea.stories.d.ts +0 -7
- package/dist/components/Toast/Toast.stories.d.ts +0 -8
- package/dist/oficios-ui.css +0 -1
- package/dist/oficios-ui.umd.cjs +0 -2
- package/dist/oficios-ui.umd.cjs.map +0 -1
|
@@ -1,86 +1,99 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsx as t, jsxs as n, Fragment as u } from "react/jsx-runtime";
|
|
2
|
+
import { Check as x } from "lucide-react";
|
|
3
|
+
import { cn as r } from "../../utils/cn.js";
|
|
4
|
+
const g = ({
|
|
5
|
+
items: o,
|
|
6
|
+
currentStep: m,
|
|
7
|
+
orientation: f = "horizontal",
|
|
8
|
+
className: p,
|
|
9
|
+
...b
|
|
9
10
|
}) => {
|
|
10
|
-
const
|
|
11
|
-
return /* @__PURE__ */
|
|
11
|
+
const l = o.findIndex((e) => e.id === m), a = f === "horizontal", h = (e) => e < l ? "completed" : e === l ? "active" : "pending", c = (e) => e ? "bg-sbk-primary" : "bg-sbk-line-strong";
|
|
12
|
+
return /* @__PURE__ */ t(
|
|
12
13
|
"div",
|
|
13
14
|
{
|
|
14
15
|
"aria-label": "Progresso",
|
|
15
|
-
className: a
|
|
16
|
+
className: r(a ? "flex items-start" : "flex flex-col", p),
|
|
16
17
|
role: "list",
|
|
17
|
-
...
|
|
18
|
-
children:
|
|
19
|
-
const
|
|
20
|
-
return /* @__PURE__ */
|
|
18
|
+
...b,
|
|
19
|
+
children: o.map((e, i) => {
|
|
20
|
+
const s = h(i), d = i === o.length - 1;
|
|
21
|
+
return /* @__PURE__ */ n(
|
|
21
22
|
"div",
|
|
22
23
|
{
|
|
23
|
-
className:
|
|
24
|
+
className: r("flex", a ? "flex-1 flex-col items-center" : "gap-4"),
|
|
24
25
|
role: "listitem",
|
|
25
26
|
children: [
|
|
26
|
-
/* @__PURE__ */
|
|
27
|
+
/* @__PURE__ */ n(
|
|
27
28
|
"div",
|
|
28
29
|
{
|
|
29
|
-
className:
|
|
30
|
-
|
|
30
|
+
className: r(
|
|
31
|
+
a ? "flex w-full items-center" : "flex flex-col items-center"
|
|
31
32
|
),
|
|
32
33
|
children: [
|
|
33
|
-
/*
|
|
34
|
+
a && /* Conector esquerdo: espaçador no 1º item, linha colorida nos demais */
|
|
35
|
+
(i === 0 ? /* @__PURE__ */ t("div", { className: "flex-1", "aria-hidden": "true" }) : /* @__PURE__ */ t(
|
|
34
36
|
"div",
|
|
35
37
|
{
|
|
36
|
-
"aria-
|
|
37
|
-
className:
|
|
38
|
-
"relative z-10 flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 text-sm font-semibold transition",
|
|
39
|
-
t === "completed" && "border-[var(--md-primary)] bg-[var(--md-primary)] text-[var(--md-on-primary)]",
|
|
40
|
-
t === "active" && "border-[var(--md-primary)] bg-[var(--md-surface)] text-[var(--md-primary)]",
|
|
41
|
-
t === "pending" && "border-[var(--md-outline-variant)] bg-[var(--md-surface)] text-[var(--text-muted)]"
|
|
42
|
-
),
|
|
43
|
-
children: t === "completed" ? /* @__PURE__ */ r(
|
|
44
|
-
"svg",
|
|
45
|
-
{
|
|
46
|
-
className: "h-4 w-4",
|
|
47
|
-
fill: "none",
|
|
48
|
-
stroke: "currentColor",
|
|
49
|
-
strokeWidth: "2.5",
|
|
50
|
-
viewBox: "0 0 24 24",
|
|
51
|
-
children: /* @__PURE__ */ r("path", { d: "M20 6 9 17l-5-5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
52
|
-
}
|
|
53
|
-
) : l + 1
|
|
38
|
+
"aria-hidden": "true",
|
|
39
|
+
className: r("h-0.5 flex-1", c(i <= l))
|
|
54
40
|
}
|
|
55
|
-
),
|
|
56
|
-
|
|
41
|
+
)),
|
|
42
|
+
/* @__PURE__ */ t(
|
|
57
43
|
"div",
|
|
58
44
|
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
45
|
+
"aria-current": s === "active" ? "step" : void 0,
|
|
46
|
+
className: r(
|
|
47
|
+
"relative z-10 flex size-9 shrink-0 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors motion-reduce:transition-none",
|
|
48
|
+
s === "completed" && "border-sbk-primary bg-sbk-primary text-sbk-on-primary",
|
|
49
|
+
s === "active" && "border-sbk-primary bg-sbk-surface text-sbk-primary",
|
|
50
|
+
s === "pending" && "border-sbk-line-strong bg-sbk-surface text-sbk-fg-muted"
|
|
63
51
|
),
|
|
64
|
-
"
|
|
52
|
+
children: s === "completed" ? /* @__PURE__ */ n(u, { children: [
|
|
53
|
+
/* @__PURE__ */ t(x, { "aria-hidden": "true", className: "size-4", strokeWidth: 2.5 }),
|
|
54
|
+
/* @__PURE__ */ t("span", { className: "sr-only", children: "Concluído: " })
|
|
55
|
+
] }) : i + 1
|
|
65
56
|
}
|
|
57
|
+
),
|
|
58
|
+
a ? (
|
|
59
|
+
/* Conector direito: linha colorida se não for último, espaçador se for */
|
|
60
|
+
d ? /* @__PURE__ */ t("div", { className: "flex-1", "aria-hidden": "true" }) : /* @__PURE__ */ t(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
"aria-hidden": "true",
|
|
64
|
+
className: r("h-0.5 flex-1", c(i < l))
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
) : (
|
|
68
|
+
/* Conector vertical (para orientação vertical) */
|
|
69
|
+
!d && /* @__PURE__ */ t(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
"aria-hidden": "true",
|
|
73
|
+
className: r(
|
|
74
|
+
"my-1 ml-[1.0625rem] w-0.5 flex-1",
|
|
75
|
+
c(i < l)
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
)
|
|
66
79
|
)
|
|
67
80
|
]
|
|
68
81
|
}
|
|
69
82
|
),
|
|
70
|
-
/* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ n("div", { className: r("mt-2 text-center", !a && "mt-0 pb-6 text-left"), children: [
|
|
84
|
+
/* @__PURE__ */ t(
|
|
72
85
|
"p",
|
|
73
86
|
{
|
|
74
|
-
className:
|
|
75
|
-
"text-sm font-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
87
|
+
className: r(
|
|
88
|
+
"m-0 text-sm font-semibold leading-tight",
|
|
89
|
+
s === "active" && "text-sbk-fg-heading",
|
|
90
|
+
s === "completed" && "text-sbk-fg",
|
|
91
|
+
s === "pending" && "font-light text-sbk-fg-muted"
|
|
79
92
|
),
|
|
80
93
|
children: e.label
|
|
81
94
|
}
|
|
82
95
|
),
|
|
83
|
-
e.description && /* @__PURE__ */
|
|
96
|
+
e.description && /* @__PURE__ */ t("p", { className: "m-0 mt-0.5 text-xs font-light text-sbk-fg-muted", children: e.description })
|
|
84
97
|
] })
|
|
85
98
|
]
|
|
86
99
|
},
|
|
@@ -90,8 +103,8 @@ const f = ({
|
|
|
90
103
|
}
|
|
91
104
|
);
|
|
92
105
|
};
|
|
93
|
-
|
|
106
|
+
g.displayName = "Stepper";
|
|
94
107
|
export {
|
|
95
|
-
|
|
108
|
+
g as Stepper
|
|
96
109
|
};
|
|
97
110
|
//# sourceMappingURL=Stepper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stepper.js","sources":["../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface StepperItem {\n description?: string;\n id: string;\n label: string;\n}\n\nexport type StepStatus = 'completed' | 'active' | 'pending';\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n currentStep: string;\n items: StepperItem[];\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const Stepper: React.FC<StepperProps> = ({\n items,\n currentStep,\n orientation = 'horizontal',\n className,\n ...props\n}) => {\n const currentIndex = items.findIndex((item) => item.id === currentStep);\n\n const getStatus = (index: number): StepStatus => {\n if (index < currentIndex) return 'completed';\n if (index === currentIndex) return 'active';\n return 'pending';\n };\n\n const
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import type React from 'react';\nimport { Check } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nexport interface StepperItem {\n description?: string;\n id: string;\n label: string;\n}\n\nexport type StepStatus = 'completed' | 'active' | 'pending';\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n currentStep: string;\n items: StepperItem[];\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const Stepper: React.FC<StepperProps> = ({\n items,\n currentStep,\n orientation = 'horizontal',\n className,\n ...props\n}) => {\n const currentIndex = items.findIndex((item) => item.id === currentStep);\n const isHorizontal = orientation === 'horizontal';\n\n const getStatus = (index: number): StepStatus => {\n if (index < currentIndex) return 'completed';\n if (index === currentIndex) return 'active';\n return 'pending';\n };\n\n const connectorColor = (isActive: boolean) =>\n isActive ? 'bg-sbk-primary' : 'bg-sbk-line-strong';\n\n return (\n <div\n aria-label=\"Progresso\"\n className={cn(isHorizontal ? 'flex items-start' : 'flex flex-col', className)}\n role=\"list\"\n {...props}\n >\n {items.map((item, index) => {\n const status = getStatus(index);\n const isLast = index === items.length - 1;\n\n return (\n <div\n key={item.id}\n className={cn('flex', isHorizontal ? 'flex-1 flex-col items-center' : 'gap-4')}\n role=\"listitem\"\n >\n {/* ── Indicador + conectores ─────────────────── */}\n <div\n className={cn(\n isHorizontal ? 'flex w-full items-center' : 'flex flex-col items-center',\n )}\n >\n {isHorizontal &&\n /* Conector esquerdo: espaçador no 1º item, linha colorida nos demais */\n (index === 0 ? (\n <div className=\"flex-1\" aria-hidden=\"true\" />\n ) : (\n <div\n aria-hidden=\"true\"\n className={cn('h-0.5 flex-1', connectorColor(index <= currentIndex))}\n />\n ))}\n\n {/* Círculo */}\n <div\n aria-current={status === 'active' ? 'step' : undefined}\n className={cn(\n 'relative z-10 flex size-9 shrink-0 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors motion-reduce:transition-none',\n status === 'completed' && 'border-sbk-primary bg-sbk-primary text-sbk-on-primary',\n status === 'active' && 'border-sbk-primary bg-sbk-surface text-sbk-primary',\n status === 'pending' && 'border-sbk-line-strong bg-sbk-surface text-sbk-fg-muted',\n )}\n >\n {status === 'completed' ? (\n <>\n <Check aria-hidden=\"true\" className=\"size-4\" strokeWidth={2.5} />\n <span className=\"sr-only\">Concluído: </span>\n </>\n ) : (\n index + 1\n )}\n </div>\n\n {isHorizontal ? (\n /* Conector direito: linha colorida se não for último, espaçador se for */\n isLast ? (\n <div className=\"flex-1\" aria-hidden=\"true\" />\n ) : (\n <div\n aria-hidden=\"true\"\n className={cn('h-0.5 flex-1', connectorColor(index < currentIndex))}\n />\n )\n ) : (\n /* Conector vertical (para orientação vertical) */\n !isLast && (\n <div\n aria-hidden=\"true\"\n className={cn(\n 'my-1 ml-[1.0625rem] w-0.5 flex-1',\n connectorColor(index < currentIndex),\n )}\n />\n )\n )}\n </div>\n\n {/* ── Label + descrição ──────────────────────── */}\n <div className={cn('mt-2 text-center', !isHorizontal && 'mt-0 pb-6 text-left')}>\n <p\n className={cn(\n 'm-0 text-sm font-semibold leading-tight',\n status === 'active' && 'text-sbk-fg-heading',\n status === 'completed' && 'text-sbk-fg',\n status === 'pending' && 'font-light text-sbk-fg-muted',\n )}\n >\n {item.label}\n </p>\n {item.description && (\n <p className=\"m-0 mt-0.5 text-xs font-light text-sbk-fg-muted\">\n {item.description}\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nStepper.displayName = 'Stepper';\n"],"names":["Stepper","items","currentStep","orientation","className","props","currentIndex","item","isHorizontal","getStatus","index","connectorColor","isActive","jsx","cn","status","isLast","jsxs","Fragment","Check"],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
+
import { type TextWeight } from '../Typography/weight';
|
|
2
3
|
export interface SubtitleProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
3
4
|
align?: 'left' | 'center' | 'right';
|
|
4
|
-
as?: 'p' | 'span' | 'div';
|
|
5
|
+
as?: 'p' | 'span' | 'div' | 'h2' | 'h3' | 'h4';
|
|
5
6
|
children: React.ReactNode;
|
|
6
7
|
italic?: boolean;
|
|
8
|
+
/** Cor secundária (Chumbo Leve). */
|
|
7
9
|
muted?: boolean;
|
|
8
10
|
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
9
|
-
|
|
11
|
+
/** Padrão: semibold (brand book: subtítulos em Seminegrito). */
|
|
12
|
+
weight?: TextWeight;
|
|
10
13
|
}
|
|
11
|
-
export declare const Subtitle:
|
|
14
|
+
export declare const Subtitle: {
|
|
15
|
+
({ as: Tag, size, weight, align, muted, italic, children, className, ...props }: SubtitleProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
+
import { cn as r } from "../../utils/cn.js";
|
|
3
|
+
import { weightClass as g } from "../Typography/weight.js";
|
|
4
|
+
const n = { xs: "text-xs", sm: "text-sm", md: "text-base", lg: "text-lg" }, c = { left: "text-left", center: "text-center", right: "text-right" }, b = ({
|
|
3
5
|
as: t = "p",
|
|
4
6
|
size: e = "md",
|
|
5
|
-
weight:
|
|
6
|
-
align:
|
|
7
|
-
muted:
|
|
8
|
-
italic:
|
|
9
|
-
children:
|
|
10
|
-
className:
|
|
11
|
-
...
|
|
12
|
-
}) =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
c[o],
|
|
30
|
-
x[n],
|
|
31
|
-
s ? "italic" : "not-italic",
|
|
32
|
-
a ? "text-[var(--text-muted)] opacity-80" : "",
|
|
33
|
-
r
|
|
34
|
-
].filter(Boolean).join(" ");
|
|
35
|
-
return /* @__PURE__ */ v(m, { className: g, ...l, children: i });
|
|
36
|
-
};
|
|
7
|
+
weight: s = "semibold",
|
|
8
|
+
align: l = "left",
|
|
9
|
+
muted: m = !1,
|
|
10
|
+
italic: i = !1,
|
|
11
|
+
children: x,
|
|
12
|
+
className: o,
|
|
13
|
+
...a
|
|
14
|
+
}) => /* @__PURE__ */ f(
|
|
15
|
+
t,
|
|
16
|
+
{
|
|
17
|
+
className: r(
|
|
18
|
+
"m-0 font-sbk leading-snug",
|
|
19
|
+
n[e],
|
|
20
|
+
g(s),
|
|
21
|
+
c[l],
|
|
22
|
+
m ? "text-sbk-fg-muted" : "text-sbk-fg",
|
|
23
|
+
i && "italic",
|
|
24
|
+
o
|
|
25
|
+
),
|
|
26
|
+
...a,
|
|
27
|
+
children: x
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
b.displayName = "Subtitle";
|
|
37
31
|
export {
|
|
38
|
-
|
|
32
|
+
b as Subtitle
|
|
39
33
|
};
|
|
40
34
|
//# sourceMappingURL=Subtitle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subtitle.js","sources":["../../../src/components/Subtitle/Subtitle.tsx"],"sourcesContent":["import type React from 'react';\n\nexport interface SubtitleProps extends React.HTMLAttributes<HTMLParagraphElement> {\n align?: 'left' | 'center' | 'right';\n as?: 'p' | 'span' | 'div';\n children: React.ReactNode;\n italic?: boolean;\n muted?: boolean;\n size?: 'xs' | 'sm' | 'md' | 'lg';\n weight?: '
|
|
1
|
+
{"version":3,"file":"Subtitle.js","sources":["../../../src/components/Subtitle/Subtitle.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../utils/cn';\nimport { type TextWeight, weightClass } from '../Typography/weight';\n\nexport interface SubtitleProps extends React.HTMLAttributes<HTMLParagraphElement> {\n align?: 'left' | 'center' | 'right';\n as?: 'p' | 'span' | 'div' | 'h2' | 'h3' | 'h4';\n children: React.ReactNode;\n italic?: boolean;\n /** Cor secundária (Chumbo Leve). */\n muted?: boolean;\n size?: 'xs' | 'sm' | 'md' | 'lg';\n /** Padrão: semibold (brand book: subtítulos em Seminegrito). */\n weight?: TextWeight;\n}\n\nconst SIZE_CLASS = { xs: 'text-xs', sm: 'text-sm', md: 'text-base', lg: 'text-lg' } as const;\nconst ALIGN_CLASS = { left: 'text-left', center: 'text-center', right: 'text-right' } as const;\n\nexport const Subtitle = ({\n as: Tag = 'p',\n size = 'md',\n weight = 'semibold',\n align = 'left',\n muted = false,\n italic = false,\n children,\n className,\n ...props\n}: SubtitleProps) => (\n <Tag\n className={cn(\n 'm-0 font-sbk leading-snug',\n SIZE_CLASS[size],\n weightClass(weight),\n ALIGN_CLASS[align],\n muted ? 'text-sbk-fg-muted' : 'text-sbk-fg',\n italic && 'italic',\n className,\n )}\n {...props}\n >\n {children}\n </Tag>\n);\n\nSubtitle.displayName = 'Subtitle';\n"],"names":["SIZE_CLASS","ALIGN_CLASS","Subtitle","Tag","size","weight","align","muted","italic","children","className","props","jsx","cn","weightClass"],"mappings":";;;AAgBA,MAAMA,IAAa,EAAE,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,UAAA,GAClEC,IAAc,EAAE,MAAM,aAAa,QAAQ,eAAe,OAAO,aAAA,GAE1DC,IAAW,CAAC;AAAA,EACvB,IAAIC,IAAM;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,QAAAC,IAAS;AAAA,EACT,OAAAC,IAAQ;AAAA,EACR,OAAAC,IAAQ;AAAA,EACR,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAACT;AAAA,EAAA;AAAA,IACC,WAAWU;AAAA,MACT;AAAA,MACAb,EAAWI,CAAI;AAAA,MACfU,EAAYT,CAAM;AAAA,MAClBJ,EAAYK,CAAK;AAAA,MACjBC,IAAQ,sBAAsB;AAAA,MAC9BC,KAAU;AAAA,MACVE;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEH,UAAAF;AAAA,EAAA;AACH;AAGFP,EAAS,cAAc;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface SwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
|
|
3
3
|
checked?: boolean;
|
|
4
|
-
label?:
|
|
4
|
+
label?: React.ReactNode;
|
|
5
5
|
onCheckedChange?: (checked: boolean) => void;
|
|
6
|
+
size?: 'sm' | 'md';
|
|
6
7
|
}
|
|
7
8
|
export declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,37 +1,49 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { cn as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import { jsxs as b, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import f, { useId as p } from "react";
|
|
3
|
+
import { cn as i } from "../../utils/cn.js";
|
|
4
|
+
import { focusRing as x, transitionColors as w, buttonReset as N } from "../../utils/styles.js";
|
|
5
|
+
const k = { sm: "h-5 w-9", md: "h-6 w-11" }, y = { sm: "size-4", md: "size-5" }, R = { sm: "translate-x-4", md: "translate-x-5" }, g = f.forwardRef(
|
|
6
|
+
({ checked: r = !1, onCheckedChange: t, label: n, size: s = "md", className: l, id: m, disabled: e, ...c }, d) => {
|
|
7
|
+
const u = p(), a = m ?? u;
|
|
8
|
+
return /* @__PURE__ */ b("div", { className: i("inline-flex items-center gap-2", e && "opacity-60", l), children: [
|
|
9
|
+
/* @__PURE__ */ o(
|
|
10
|
+
"button",
|
|
11
|
+
{
|
|
12
|
+
ref: d,
|
|
13
|
+
"aria-checked": r,
|
|
14
|
+
className: i(
|
|
15
|
+
N,
|
|
16
|
+
"relative inline-flex shrink-0 cursor-pointer items-center rounded-full border disabled:cursor-not-allowed",
|
|
17
|
+
k[s],
|
|
18
|
+
w,
|
|
19
|
+
x,
|
|
20
|
+
r ? "border-sbk-primary bg-sbk-primary" : "border-sbk-line-strong bg-sbk-surface-sunken"
|
|
21
|
+
),
|
|
22
|
+
disabled: e,
|
|
23
|
+
id: a,
|
|
24
|
+
onClick: () => t == null ? void 0 : t(!r),
|
|
25
|
+
role: "switch",
|
|
26
|
+
type: "button",
|
|
27
|
+
...c,
|
|
28
|
+
children: /* @__PURE__ */ o(
|
|
29
|
+
"span",
|
|
30
|
+
{
|
|
31
|
+
"aria-hidden": "true",
|
|
32
|
+
className: i(
|
|
33
|
+
"inline-block rounded-full bg-sbk-branco shadow-sbk-sm transition-transform duration-150 motion-reduce:transition-none",
|
|
34
|
+
y[s],
|
|
35
|
+
r ? R[s] : "translate-x-0.5"
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
n && /* @__PURE__ */ o("label", { className: "cursor-pointer text-sm font-light text-sbk-fg", htmlFor: a, children: n })
|
|
42
|
+
] });
|
|
43
|
+
}
|
|
32
44
|
);
|
|
33
|
-
|
|
45
|
+
g.displayName = "Switch";
|
|
34
46
|
export {
|
|
35
|
-
|
|
47
|
+
g as Switch
|
|
36
48
|
};
|
|
37
49
|
//# sourceMappingURL=Switch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface SwitchProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange'\n> {\n checked?: boolean;\n label?:
|
|
1
|
+
{"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport { cn } from '../../utils/cn';\nimport { buttonReset, focusRing, transitionColors } from '../../utils/styles';\n\nexport interface SwitchProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange'\n> {\n checked?: boolean;\n label?: React.ReactNode;\n onCheckedChange?: (checked: boolean) => void;\n size?: 'sm' | 'md';\n}\n\nconst TRACK = { sm: 'h-5 w-9', md: 'h-6 w-11' } as const;\nconst THUMB = { sm: 'size-4', md: 'size-5' } as const;\nconst THUMB_ON = { sm: 'translate-x-4', md: 'translate-x-5' } as const;\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n (\n { checked = false, onCheckedChange, label, size = 'md', className, id, disabled, ...props },\n ref,\n ) => {\n const autoId = useId();\n const switchId = id ?? autoId;\n\n return (\n <div className={cn('inline-flex items-center gap-2', disabled && 'opacity-60', className)}>\n <button\n ref={ref}\n aria-checked={checked}\n className={cn(\n buttonReset,\n 'relative inline-flex shrink-0 cursor-pointer items-center rounded-full border disabled:cursor-not-allowed',\n TRACK[size],\n transitionColors,\n focusRing,\n checked\n ? 'border-sbk-primary bg-sbk-primary'\n : 'border-sbk-line-strong bg-sbk-surface-sunken',\n )}\n disabled={disabled}\n id={switchId}\n onClick={() => onCheckedChange?.(!checked)}\n role=\"switch\"\n type=\"button\"\n {...props}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-block rounded-full bg-sbk-branco shadow-sbk-sm transition-transform duration-150 motion-reduce:transition-none',\n THUMB[size],\n checked ? THUMB_ON[size] : 'translate-x-0.5',\n )}\n />\n </button>\n {label && (\n <label className=\"cursor-pointer text-sm font-light text-sbk-fg\" htmlFor={switchId}>\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = 'Switch';\n"],"names":["TRACK","THUMB","THUMB_ON","Switch","React","checked","onCheckedChange","label","size","className","id","disabled","props","ref","autoId","useId","switchId","jsxs","cn","jsx","buttonReset","transitionColors","focusRing"],"mappings":";;;;AAcA,MAAMA,IAAQ,EAAE,IAAI,WAAW,IAAI,WAAA,GAC7BC,IAAQ,EAAE,IAAI,UAAU,IAAI,SAAA,GAC5BC,IAAW,EAAE,IAAI,iBAAiB,IAAI,gBAAA,GAE/BC,IAASC,EAAM;AAAA,EAC1B,CACE,EAAE,SAAAC,IAAU,IAAO,iBAAAC,GAAiB,OAAAC,GAAO,MAAAC,IAAO,MAAM,WAAAC,GAAW,IAAAC,GAAI,UAAAC,GAAU,GAAGC,EAAA,GACpFC,MACG;AACH,UAAMC,IAASC,EAAA,GACTC,IAAWN,KAAMI;AAEvB,WACE,gBAAAG,EAAC,SAAI,WAAWC,EAAG,kCAAkCP,KAAY,cAAcF,CAAS,GACtF,UAAA;AAAA,MAAA,gBAAAU;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAN;AAAA,UACA,gBAAcR;AAAA,UACd,WAAWa;AAAA,YACTE;AAAA,YACA;AAAA,YACApB,EAAMQ,CAAI;AAAA,YACVa;AAAA,YACAC;AAAA,YACAjB,IACI,sCACA;AAAA,UAAA;AAAA,UAEN,UAAAM;AAAA,UACA,IAAIK;AAAA,UACJ,SAAS,MAAMV,KAAA,gBAAAA,EAAkB,CAACD;AAAA,UAClC,MAAK;AAAA,UACL,MAAK;AAAA,UACJ,GAAGO;AAAA,UAEJ,UAAA,gBAAAO;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,WAAWD;AAAA,gBACT;AAAA,gBACAjB,EAAMO,CAAI;AAAA,gBACVH,IAAUH,EAASM,CAAI,IAAI;AAAA,cAAA;AAAA,YAC7B;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,MAEDD,KACC,gBAAAY,EAAC,SAAA,EAAM,WAAU,iDAAgD,SAASH,GACvE,UAAAT,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,EAEJ;AACF;AAEAJ,EAAO,cAAc;"}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
3
|
+
/** Legenda da tabela (visível ou apenas para leitores de tela com `captionHidden`). */
|
|
4
|
+
caption?: React.ReactNode;
|
|
5
|
+
captionHidden?: boolean;
|
|
6
|
+
/** Linhas mais baixas. */
|
|
7
|
+
dense?: boolean;
|
|
8
|
+
/** Realce de hover nas linhas do corpo. Padrão: true. */
|
|
9
|
+
hoverable?: boolean;
|
|
10
|
+
/** Linhas zebradas. */
|
|
11
|
+
striped?: boolean;
|
|
12
|
+
/** Classe do container com rolagem horizontal. */
|
|
13
|
+
wrapperClassName?: string;
|
|
3
14
|
}
|
|
4
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Tabela estilizada. Use <thead>/<tbody> com <th scope="col"> normalmente;
|
|
17
|
+
* o estilo das células é aplicado pelo componente.
|
|
18
|
+
*/
|
|
19
|
+
export declare const Table: {
|
|
20
|
+
({ caption, captionHidden, dense, hoverable, striped, className, wrapperClassName, children, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
@@ -1,17 +1,54 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cn as
|
|
3
|
-
const
|
|
4
|
-
|
|
1
|
+
import { jsx as s, jsxs as h } from "react/jsx-runtime";
|
|
2
|
+
import { cn as t } from "../../utils/cn.js";
|
|
3
|
+
const f = ({
|
|
4
|
+
caption: e,
|
|
5
|
+
captionHidden: r = !1,
|
|
6
|
+
dense: d = !1,
|
|
7
|
+
hoverable: l = !0,
|
|
8
|
+
striped: b = !1,
|
|
9
|
+
className: o,
|
|
10
|
+
wrapperClassName: a,
|
|
11
|
+
children: n,
|
|
12
|
+
..._
|
|
13
|
+
}) => /* @__PURE__ */ s(
|
|
14
|
+
"div",
|
|
5
15
|
{
|
|
6
|
-
className:
|
|
7
|
-
"
|
|
8
|
-
|
|
16
|
+
className: t(
|
|
17
|
+
"overflow-x-auto rounded-sbk-sm border border-sbk-line bg-sbk-surface",
|
|
18
|
+
a
|
|
9
19
|
),
|
|
10
|
-
|
|
11
|
-
|
|
20
|
+
children: /* @__PURE__ */ h(
|
|
21
|
+
"table",
|
|
22
|
+
{
|
|
23
|
+
className: t(
|
|
24
|
+
"w-full border-collapse text-left text-sm text-sbk-fg",
|
|
25
|
+
"[&_th]:bg-sbk-surface-sunken [&_th]:font-semibold [&_th]:text-sbk-fg-heading [&_th]:text-xs [&_th]:uppercase [&_th]:tracking-wide",
|
|
26
|
+
"[&_td]:font-light [&_td]:border-t [&_td]:border-sbk-line",
|
|
27
|
+
d ? "[&_td]:px-3 [&_td]:py-2 [&_th]:px-3 [&_th]:py-2" : "[&_td]:px-4 [&_td]:py-3 [&_th]:px-4 [&_th]:py-3",
|
|
28
|
+
l && "[&_tbody_tr:hover]:bg-sbk-surface-hover",
|
|
29
|
+
b && "[&_tbody_tr:nth-child(even)]:bg-sbk-surface-sunken",
|
|
30
|
+
o
|
|
31
|
+
),
|
|
32
|
+
..._,
|
|
33
|
+
children: [
|
|
34
|
+
e && /* @__PURE__ */ s(
|
|
35
|
+
"caption",
|
|
36
|
+
{
|
|
37
|
+
className: t(
|
|
38
|
+
"px-4 py-3 text-left text-sm font-semibold text-sbk-fg-heading",
|
|
39
|
+
r && "sr-only"
|
|
40
|
+
),
|
|
41
|
+
children: e
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
n
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
)
|
|
12
48
|
}
|
|
13
|
-
)
|
|
49
|
+
);
|
|
50
|
+
f.displayName = "Table";
|
|
14
51
|
export {
|
|
15
|
-
|
|
52
|
+
f as Table
|
|
16
53
|
};
|
|
17
54
|
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {}\n\
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Legenda da tabela (visível ou apenas para leitores de tela com `captionHidden`). */\n caption?: React.ReactNode;\n captionHidden?: boolean;\n /** Linhas mais baixas. */\n dense?: boolean;\n /** Realce de hover nas linhas do corpo. Padrão: true. */\n hoverable?: boolean;\n /** Linhas zebradas. */\n striped?: boolean;\n /** Classe do container com rolagem horizontal. */\n wrapperClassName?: string;\n}\n\n/**\n * Tabela estilizada. Use <thead>/<tbody> com <th scope=\"col\"> normalmente;\n * o estilo das células é aplicado pelo componente.\n */\nexport const Table = ({\n caption,\n captionHidden = false,\n dense = false,\n hoverable = true,\n striped = false,\n className,\n wrapperClassName,\n children,\n ...props\n}: TableProps) => (\n <div\n className={cn(\n 'overflow-x-auto rounded-sbk-sm border border-sbk-line bg-sbk-surface',\n wrapperClassName,\n )}\n >\n <table\n className={cn(\n 'w-full border-collapse text-left text-sm text-sbk-fg',\n '[&_th]:bg-sbk-surface-sunken [&_th]:font-semibold [&_th]:text-sbk-fg-heading [&_th]:text-xs [&_th]:uppercase [&_th]:tracking-wide',\n '[&_td]:font-light [&_td]:border-t [&_td]:border-sbk-line',\n dense\n ? '[&_td]:px-3 [&_td]:py-2 [&_th]:px-3 [&_th]:py-2'\n : '[&_td]:px-4 [&_td]:py-3 [&_th]:px-4 [&_th]:py-3',\n hoverable && '[&_tbody_tr:hover]:bg-sbk-surface-hover',\n striped && '[&_tbody_tr:nth-child(even)]:bg-sbk-surface-sunken',\n className,\n )}\n {...props}\n >\n {caption && (\n <caption\n className={cn(\n 'px-4 py-3 text-left text-sm font-semibold text-sbk-fg-heading',\n captionHidden && 'sr-only',\n )}\n >\n {caption}\n </caption>\n )}\n {children}\n </table>\n </div>\n);\n\nTable.displayName = 'Table';\n"],"names":["Table","caption","captionHidden","dense","hoverable","striped","className","wrapperClassName","children","props","jsx","cn","jsxs"],"mappings":";;AAqBO,MAAMA,IAAQ,CAAC;AAAA,EACpB,SAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,OAAAC,IAAQ;AAAA,EACR,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGF,UAAA,gBAAAK;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACAR,IACI,oDACA;AAAA,UACJC,KAAa;AAAA,UACbC,KAAW;AAAA,UACXC;AAAA,QAAA;AAAA,QAED,GAAGG;AAAA,QAEH,UAAA;AAAA,UAAAR,KACC,gBAAAS;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWC;AAAA,gBACT;AAAA,gBACAT,KAAiB;AAAA,cAAA;AAAA,cAGlB,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AACF;AAGFR,EAAM,cAAc;"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
export interface TabItem {
|
|
3
3
|
content: React.ReactNode;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
icon?: React.ReactNode;
|
|
4
6
|
id: string;
|
|
5
|
-
label:
|
|
7
|
+
label: React.ReactNode;
|
|
6
8
|
}
|
|
7
9
|
export interface TabsProps {
|
|
10
|
+
/** Rótulo acessível da lista de abas. */
|
|
11
|
+
'aria-label'?: string;
|
|
12
|
+
className?: string;
|
|
8
13
|
defaultTabId?: string;
|
|
9
14
|
items: TabItem[];
|
|
15
|
+
onTabChange?: (id: string) => void;
|
|
16
|
+
/** Aba ativa controlada externamente. */
|
|
17
|
+
tabId?: string;
|
|
18
|
+
/** `pill`: segmentado. `line`: sublinhado. Padrão: pill. */
|
|
19
|
+
variant?: 'pill' | 'line';
|
|
10
20
|
}
|
|
11
|
-
|
|
21
|
+
/** Abas (padrão ARIA tabs com ativação automática): setas, Home e End. */
|
|
22
|
+
export declare const Tabs: {
|
|
23
|
+
({ items, defaultTabId, tabId, onTabChange, variant, className, "aria-label": ariaLabel, }: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
displayName: string;
|
|
25
|
+
};
|