@sbkbs/ui 1.0.6 → 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 +12 -6
- 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 -115
- 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 +25 -14
- package/dist/components/Header/Header.js +88 -148
- 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 +12 -6
- 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 +11 -3
- 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 +41 -53
- 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 -263
- 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 -117
- 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
- package/dist/sbk-icon.png +0 -0
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
+
/** Tema efetivamente aplicado. */
|
|
2
3
|
export type Theme = 'light' | 'dark';
|
|
4
|
+
/** Preferência do usuário: `system` segue prefers-color-scheme. */
|
|
5
|
+
export type ThemePreference = Theme | 'system';
|
|
6
|
+
/** `sbk-ia`: produto digital (padrão). `sbk`: institucional (marca-mãe). */
|
|
7
|
+
export type Brand = 'sbk-ia' | 'sbk';
|
|
3
8
|
interface ThemeContextType {
|
|
9
|
+
brand: Brand;
|
|
10
|
+
/** Preferência escolhida (pode ser `system`). */
|
|
11
|
+
preference: ThemePreference;
|
|
12
|
+
setBrand: (brand: Brand) => void;
|
|
13
|
+
setTheme: (preference: ThemePreference) => void;
|
|
14
|
+
/** Tema efetivo (`light` ou `dark`), já resolvido quando a preferência é `system`. */
|
|
4
15
|
theme: Theme;
|
|
5
16
|
toggleTheme: () => void;
|
|
6
17
|
}
|
|
7
18
|
export declare const useTheme: () => ThemeContextType;
|
|
8
|
-
interface ThemeProviderProps {
|
|
19
|
+
export interface ThemeProviderProps {
|
|
9
20
|
children: ReactNode;
|
|
10
|
-
|
|
21
|
+
defaultBrand?: Brand;
|
|
22
|
+
defaultTheme?: ThemePreference;
|
|
23
|
+
/** Chave no localStorage. `null` desativa a persistência. Padrão: "theme". */
|
|
24
|
+
storageKey?: string | null;
|
|
11
25
|
}
|
|
12
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Aplica `data-theme` e `data-brand` no <html>. Os tokens da lib reagem a esses atributos.
|
|
28
|
+
* Para evitar flash no primeiro paint em SSR, defina os atributos no HTML inicial.
|
|
29
|
+
*/
|
|
30
|
+
export declare const ThemeProvider: ({ children, defaultTheme, defaultBrand, storageKey, }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
31
|
export {};
|
|
@@ -1,22 +1,61 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
if (!
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m, useEffect as d, useCallback as y, useMemo as T, useContext as x, createContext as E } from "react";
|
|
3
|
+
const f = E(void 0), A = () => {
|
|
4
|
+
const t = x(f);
|
|
5
|
+
if (!t) throw new Error("useTheme deve ser usado dentro de ThemeProvider");
|
|
6
|
+
return t;
|
|
7
|
+
}, S = (t) => {
|
|
8
|
+
if (!t || typeof window > "u") return null;
|
|
9
|
+
try {
|
|
10
|
+
const o = window.localStorage.getItem(t);
|
|
11
|
+
return o === "light" || o === "dark" || o === "system" ? o : null;
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}, C = () => {
|
|
16
|
+
var t;
|
|
17
|
+
return typeof window < "u" && ((t = window.matchMedia) != null && t.call(window, "(prefers-color-scheme: dark)").matches) ? "dark" : "light";
|
|
18
|
+
}, I = ({
|
|
19
|
+
children: t,
|
|
20
|
+
defaultTheme: o = "light",
|
|
21
|
+
defaultBrand: w = "sbk-ia",
|
|
22
|
+
storageKey: s = "theme"
|
|
23
|
+
}) => {
|
|
24
|
+
const [n, i] = m(
|
|
25
|
+
() => S(s) ?? o
|
|
26
|
+
), [c, g] = m(w), [v, b] = m(C), r = n === "system" ? v : n;
|
|
27
|
+
d(() => {
|
|
28
|
+
var h;
|
|
29
|
+
if (n !== "system" || typeof window > "u" || !window.matchMedia) return;
|
|
30
|
+
const e = window.matchMedia("(prefers-color-scheme: dark)"), a = () => b(e.matches ? "dark" : "light");
|
|
31
|
+
return a(), (h = e.addEventListener) == null || h.call(e, "change", a), () => {
|
|
32
|
+
var l;
|
|
33
|
+
return (l = e.removeEventListener) == null ? void 0 : l.call(e, "change", a);
|
|
34
|
+
};
|
|
35
|
+
}, [n]), d(() => {
|
|
36
|
+
const e = document.documentElement;
|
|
37
|
+
e.setAttribute("data-theme", r), e.style.colorScheme = r;
|
|
38
|
+
}, [r]), d(() => {
|
|
39
|
+
const e = document.documentElement;
|
|
40
|
+
c === "sbk" ? e.setAttribute("data-brand", "sbk") : e.removeAttribute("data-brand");
|
|
41
|
+
}, [c]), d(() => {
|
|
42
|
+
if (s)
|
|
43
|
+
try {
|
|
44
|
+
window.localStorage.setItem(s, n);
|
|
45
|
+
} catch {
|
|
46
|
+
}
|
|
47
|
+
}, [n, s]);
|
|
48
|
+
const u = y(
|
|
49
|
+
() => i(r === "dark" ? "light" : "dark"),
|
|
50
|
+
[r]
|
|
51
|
+
), k = T(
|
|
52
|
+
() => ({ theme: r, preference: n, setTheme: i, toggleTheme: u, brand: c, setBrand: g }),
|
|
53
|
+
[r, n, u, c]
|
|
54
|
+
);
|
|
55
|
+
return /* @__PURE__ */ p(f.Provider, { value: k, children: t });
|
|
17
56
|
};
|
|
18
57
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
58
|
+
I as ThemeProvider,
|
|
59
|
+
A as useTheme
|
|
21
60
|
};
|
|
22
61
|
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\n/** Tema efetivamente aplicado. */\nexport type Theme = 'light' | 'dark';\n/** Preferência do usuário: `system` segue prefers-color-scheme. */\nexport type ThemePreference = Theme | 'system';\n/** `sbk-ia`: produto digital (padrão). `sbk`: institucional (marca-mãe). */\nexport type Brand = 'sbk-ia' | 'sbk';\n\ninterface ThemeContextType {\n brand: Brand;\n /** Preferência escolhida (pode ser `system`). */\n preference: ThemePreference;\n setBrand: (brand: Brand) => void;\n setTheme: (preference: ThemePreference) => void;\n /** Tema efetivo (`light` ou `dark`), já resolvido quando a preferência é `system`. */\n theme: Theme;\n toggleTheme: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = (): ThemeContextType => {\n const context = useContext(ThemeContext);\n if (!context) throw new Error('useTheme deve ser usado dentro de ThemeProvider');\n return context;\n};\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n defaultBrand?: Brand;\n defaultTheme?: ThemePreference;\n /** Chave no localStorage. `null` desativa a persistência. Padrão: \"theme\". */\n storageKey?: string | null;\n}\n\nconst readStorage = (key: string | null): ThemePreference | null => {\n if (!key || typeof window === 'undefined') return null;\n try {\n const value = window.localStorage.getItem(key);\n return value === 'light' || value === 'dark' || value === 'system' ? value : null;\n } catch {\n return null;\n }\n};\n\nconst systemTheme = (): Theme =>\n typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n\n/**\n * Aplica `data-theme` e `data-brand` no <html>. Os tokens da lib reagem a esses atributos.\n * Para evitar flash no primeiro paint em SSR, defina os atributos no HTML inicial.\n */\nexport const ThemeProvider = ({\n children,\n defaultTheme = 'light',\n defaultBrand = 'sbk-ia',\n storageKey = 'theme',\n}: ThemeProviderProps) => {\n const [preference, setPreference] = useState<ThemePreference>(\n () => readStorage(storageKey) ?? defaultTheme,\n );\n const [brand, setBrand] = useState<Brand>(defaultBrand);\n const [system, setSystem] = useState<Theme>(systemTheme);\n const theme: Theme = preference === 'system' ? system : preference;\n\n useEffect(() => {\n if (preference !== 'system' || typeof window === 'undefined' || !window.matchMedia) return;\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n const onChange = () => setSystem(mql.matches ? 'dark' : 'light');\n onChange();\n mql.addEventListener?.('change', onChange);\n return () => mql.removeEventListener?.('change', onChange);\n }, [preference]);\n\n useEffect(() => {\n const root = document.documentElement;\n root.setAttribute('data-theme', theme);\n root.style.colorScheme = theme;\n }, [theme]);\n\n useEffect(() => {\n const root = document.documentElement;\n if (brand === 'sbk') root.setAttribute('data-brand', 'sbk');\n else root.removeAttribute('data-brand');\n }, [brand]);\n\n useEffect(() => {\n if (!storageKey) return;\n try {\n window.localStorage.setItem(storageKey, preference);\n } catch {\n /* armazenamento indisponível (modo privado): ignora */\n }\n }, [preference, storageKey]);\n\n const toggleTheme = useCallback(\n () => setPreference(theme === 'dark' ? 'light' : 'dark'),\n [theme],\n );\n\n const value = useMemo(\n () => ({ theme, preference, setTheme: setPreference, toggleTheme, brand, setBrand }),\n [theme, preference, toggleTheme, brand],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n};\n"],"names":["ThemeContext","createContext","useTheme","context","useContext","readStorage","key","value","systemTheme","_a","ThemeProvider","children","defaultTheme","defaultBrand","storageKey","preference","setPreference","useState","brand","setBrand","system","setSystem","theme","useEffect","mql","onChange","root","toggleTheme","useCallback","useMemo","jsx"],"mappings":";;AA4BA,MAAMA,IAAeC,EAA4C,MAAS,GAE7DC,IAAW,MAAwB;AAC9C,QAAMC,IAAUC,EAAWJ,CAAY;AACvC,MAAI,CAACG,EAAS,OAAM,IAAI,MAAM,iDAAiD;AAC/E,SAAOA;AACT,GAUME,IAAc,CAACC,MAA+C;AAClE,MAAI,CAACA,KAAO,OAAO,SAAW,IAAa,QAAO;AAClD,MAAI;AACF,UAAMC,IAAQ,OAAO,aAAa,QAAQD,CAAG;AAC7C,WAAOC,MAAU,WAAWA,MAAU,UAAUA,MAAU,WAAWA,IAAQ;AAAA,EAC/E,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAEMC,IAAc,MAAA;;AAClB,gBAAO,SAAW,SAAeC,IAAA,OAAO,eAAP,QAAAA,EAAA,aAAoB,gCAAgC,WACjF,SACA;AAAA,GAMOC,IAAgB,CAAC;AAAA,EAC5B,UAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,YAAAC,IAAa;AACf,MAA0B;AACxB,QAAM,CAACC,GAAYC,CAAa,IAAIC;AAAA,IAClC,MAAMZ,EAAYS,CAAU,KAAKF;AAAA,EAAA,GAE7B,CAACM,GAAOC,CAAQ,IAAIF,EAAgBJ,CAAY,GAChD,CAACO,GAAQC,CAAS,IAAIJ,EAAgBT,CAAW,GACjDc,IAAeP,MAAe,WAAWK,IAASL;AAExD,EAAAQ,EAAU,MAAM;;AACd,QAAIR,MAAe,YAAY,OAAO,SAAW,OAAe,CAAC,OAAO,WAAY;AACpF,UAAMS,IAAM,OAAO,WAAW,8BAA8B,GACtDC,IAAW,MAAMJ,EAAUG,EAAI,UAAU,SAAS,OAAO;AAC/D,WAAAC,EAAA,IACAhB,IAAAe,EAAI,qBAAJ,QAAAf,EAAA,KAAAe,GAAuB,UAAUC,IAC1B;;AAAM,cAAAhB,IAAAe,EAAI,wBAAJ,gBAAAf,EAAA,KAAAe,GAA0B,UAAUC;AAAA;AAAA,EACnD,GAAG,CAACV,CAAU,CAAC,GAEfQ,EAAU,MAAM;AACd,UAAMG,IAAO,SAAS;AACtB,IAAAA,EAAK,aAAa,cAAcJ,CAAK,GACrCI,EAAK,MAAM,cAAcJ;AAAA,EAC3B,GAAG,CAACA,CAAK,CAAC,GAEVC,EAAU,MAAM;AACd,UAAMG,IAAO,SAAS;AACtB,IAAIR,MAAU,QAAOQ,EAAK,aAAa,cAAc,KAAK,IACrDA,EAAK,gBAAgB,YAAY;AAAA,EACxC,GAAG,CAACR,CAAK,CAAC,GAEVK,EAAU,MAAM;AACd,QAAKT;AACL,UAAI;AACF,eAAO,aAAa,QAAQA,GAAYC,CAAU;AAAA,MACpD,QAAQ;AAAA,MAER;AAAA,EACF,GAAG,CAACA,GAAYD,CAAU,CAAC;AAE3B,QAAMa,IAAcC;AAAA,IAClB,MAAMZ,EAAcM,MAAU,SAAS,UAAU,MAAM;AAAA,IACvD,CAACA,CAAK;AAAA,EAAA,GAGFf,IAAQsB;AAAA,IACZ,OAAO,EAAE,OAAAP,GAAO,YAAAP,GAAY,UAAUC,GAAe,aAAAW,GAAa,OAAAT,GAAO,UAAAC;IACzE,CAACG,GAAOP,GAAYY,GAAaT,CAAK;AAAA,EAAA;AAGxC,SAAO,gBAAAY,EAAC9B,EAAa,UAAb,EAAsB,OAAAO,GAAe,UAAAI,EAAA,CAAS;AACxD;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokens da marca SBK (Brand Book 2026) para uso em JS/TS:
|
|
3
|
+
* gráficos, canvas, e-mails, geração de PDF ou qualquer lugar sem CSS custom properties.
|
|
4
|
+
* Em componentes React prefira as classes/variáveis CSS, que reagem a tema e marca.
|
|
5
|
+
*/
|
|
6
|
+
export declare const sbkTokens: {
|
|
7
|
+
readonly color: {
|
|
8
|
+
readonly verdeEscuro: "#023631";
|
|
9
|
+
readonly cianoEscuro: "#075056";
|
|
10
|
+
readonly offWhite: "#ECEFF3";
|
|
11
|
+
readonly verdeClaro: "#0A5A52";
|
|
12
|
+
readonly verdeProfundo: "#012824";
|
|
13
|
+
readonly ciano: "#2A7C79";
|
|
14
|
+
readonly cianoProfundo: "#0E4442";
|
|
15
|
+
readonly chumboLeve: "#4A545E";
|
|
16
|
+
readonly preto: "#000000";
|
|
17
|
+
readonly branco: "#FFFFFF";
|
|
18
|
+
};
|
|
19
|
+
/** Proposta pendente de aprovação da marca. */
|
|
20
|
+
readonly state: {
|
|
21
|
+
readonly sucesso: "#1D6B43";
|
|
22
|
+
readonly alerta: "#B45309";
|
|
23
|
+
readonly erro: "#B42318";
|
|
24
|
+
readonly info: "#075056";
|
|
25
|
+
};
|
|
26
|
+
readonly font: {
|
|
27
|
+
readonly family: "\"Plus Jakarta Sans\", Calibri, system-ui, sans-serif";
|
|
28
|
+
readonly weight: {
|
|
29
|
+
readonly heading: 600;
|
|
30
|
+
readonly body: 300;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
readonly radius: {
|
|
34
|
+
readonly xs: 4;
|
|
35
|
+
readonly sm: 8;
|
|
36
|
+
readonly md: 12;
|
|
37
|
+
readonly lg: 16;
|
|
38
|
+
};
|
|
39
|
+
readonly cardLayerOpacity: readonly [0.9, 0.75, 0.6];
|
|
40
|
+
};
|
|
41
|
+
/** Paleta ordenada para séries de gráficos (do mais escuro ao mais claro, dentro do espectro verde/ciano). */
|
|
42
|
+
export declare const sbkChartPalette: readonly ["#023631", "#2A7C79", "#075056", "#0A5A52", "#4A545E", "#0E4442"];
|
|
43
|
+
export type SbkTokens = typeof sbkTokens;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const o = {
|
|
2
|
+
color: {
|
|
3
|
+
verdeEscuro: "#023631",
|
|
4
|
+
cianoEscuro: "#075056",
|
|
5
|
+
offWhite: "#ECEFF3",
|
|
6
|
+
verdeClaro: "#0A5A52",
|
|
7
|
+
verdeProfundo: "#012824",
|
|
8
|
+
ciano: "#2A7C79",
|
|
9
|
+
cianoProfundo: "#0E4442",
|
|
10
|
+
chumboLeve: "#4A545E",
|
|
11
|
+
preto: "#000000",
|
|
12
|
+
branco: "#FFFFFF"
|
|
13
|
+
},
|
|
14
|
+
/** Proposta pendente de aprovação da marca. */
|
|
15
|
+
state: {
|
|
16
|
+
sucesso: "#1D6B43",
|
|
17
|
+
alerta: "#B45309",
|
|
18
|
+
erro: "#B42318",
|
|
19
|
+
info: "#075056"
|
|
20
|
+
},
|
|
21
|
+
font: {
|
|
22
|
+
family: '"Plus Jakarta Sans", Calibri, system-ui, sans-serif',
|
|
23
|
+
weight: { heading: 600, body: 300 }
|
|
24
|
+
},
|
|
25
|
+
radius: { xs: 4, sm: 8, md: 12, lg: 16 },
|
|
26
|
+
cardLayerOpacity: [0.9, 0.75, 0.6]
|
|
27
|
+
}, r = [
|
|
28
|
+
o.color.verdeEscuro,
|
|
29
|
+
o.color.ciano,
|
|
30
|
+
o.color.cianoEscuro,
|
|
31
|
+
o.color.verdeClaro,
|
|
32
|
+
o.color.chumboLeve,
|
|
33
|
+
o.color.cianoProfundo
|
|
34
|
+
];
|
|
35
|
+
export {
|
|
36
|
+
r as sbkChartPalette,
|
|
37
|
+
o as sbkTokens
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sources":["../../src/theme/tokens.ts"],"sourcesContent":["/**\n * Tokens da marca SBK (Brand Book 2026) para uso em JS/TS:\n * gráficos, canvas, e-mails, geração de PDF ou qualquer lugar sem CSS custom properties.\n * Em componentes React prefira as classes/variáveis CSS, que reagem a tema e marca.\n */\nexport const sbkTokens = {\n color: {\n verdeEscuro: '#023631',\n cianoEscuro: '#075056',\n offWhite: '#ECEFF3',\n verdeClaro: '#0A5A52',\n verdeProfundo: '#012824',\n ciano: '#2A7C79',\n cianoProfundo: '#0E4442',\n chumboLeve: '#4A545E',\n preto: '#000000',\n branco: '#FFFFFF',\n },\n /** Proposta pendente de aprovação da marca. */\n state: {\n sucesso: '#1D6B43',\n alerta: '#B45309',\n erro: '#B42318',\n info: '#075056',\n },\n font: {\n family: '\"Plus Jakarta Sans\", Calibri, system-ui, sans-serif',\n weight: { heading: 600, body: 300 },\n },\n radius: { xs: 4, sm: 8, md: 12, lg: 16 },\n cardLayerOpacity: [0.9, 0.75, 0.6],\n} as const;\n\n/** Paleta ordenada para séries de gráficos (do mais escuro ao mais claro, dentro do espectro verde/ciano). */\nexport const sbkChartPalette = [\n sbkTokens.color.verdeEscuro,\n sbkTokens.color.ciano,\n sbkTokens.color.cianoEscuro,\n sbkTokens.color.verdeClaro,\n sbkTokens.color.chumboLeve,\n sbkTokens.color.cianoProfundo,\n] as const;\n\nexport type SbkTokens = typeof sbkTokens;\n"],"names":["sbkTokens","sbkChartPalette"],"mappings":"AAKO,MAAMA,IAAY;AAAA,EACvB,OAAO;AAAA,IACL,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGV,OAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAAA,EAER,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ,EAAE,SAAS,KAAK,MAAM,IAAA;AAAA,EAAI;AAAA,EAEpC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAA;AAAA,EACpC,kBAAkB,CAAC,KAAK,MAAM,GAAG;AACnC,GAGaC,IAAkB;AAAA,EAC7BD,EAAU,MAAM;AAAA,EAChBA,EAAU,MAAM;AAAA,EAChBA,EAAU,MAAM;AAAA,EAChBA,EAAU,MAAM;AAAA,EAChBA,EAAU,MAAM;AAAA,EAChBA,EAAU,MAAM;AAClB;"}
|