@tecsinapse/cortex-core 1.3.0-beta.0 → 1.3.0-beta.10

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.
Files changed (57) hide show
  1. package/dist/cjs/components/badge/badge.js +1 -1
  2. package/dist/cjs/components/button/button.js +3 -3
  3. package/dist/cjs/components/card/card.js +1 -1
  4. package/dist/cjs/components/divider/divider.js +1 -1
  5. package/dist/cjs/components/drawer/drawer.js +1 -1
  6. package/dist/cjs/components/hint/hint.js +1 -1
  7. package/dist/cjs/components/input/input.js +9 -9
  8. package/dist/cjs/components/manager/manager.js +1 -1
  9. package/dist/cjs/components/modal/modal.js +1 -1
  10. package/dist/cjs/components/popover/popover.js +1 -1
  11. package/dist/cjs/components/select/select.js +2 -2
  12. package/dist/cjs/components/snackbar/snackbar.js +1 -1
  13. package/dist/cjs/components/table/table.js +2 -2
  14. package/dist/cjs/components/tag/tag.js +2 -2
  15. package/dist/cjs/components/toggle/toggle.js +2 -2
  16. package/dist/cjs/components/tooltip/tooltip.js +2 -2
  17. package/dist/cjs/index.js +4 -1
  18. package/dist/cjs/provider/DarkThemeContext.js +60 -0
  19. package/dist/cjs/tokens/definitions.js +34 -0
  20. package/dist/cjs/utils/index.js +0 -10
  21. package/dist/esm/components/badge/badge.js +1 -1
  22. package/dist/esm/components/button/button.js +3 -3
  23. package/dist/esm/components/card/card.js +1 -1
  24. package/dist/esm/components/divider/divider.js +1 -1
  25. package/dist/esm/components/drawer/drawer.js +1 -1
  26. package/dist/esm/components/hint/hint.js +1 -1
  27. package/dist/esm/components/input/input.js +9 -9
  28. package/dist/esm/components/manager/manager.js +1 -1
  29. package/dist/esm/components/modal/modal.js +1 -1
  30. package/dist/esm/components/popover/popover.js +1 -1
  31. package/dist/esm/components/select/select.js +2 -2
  32. package/dist/esm/components/snackbar/snackbar.js +1 -1
  33. package/dist/esm/components/table/table.js +2 -2
  34. package/dist/esm/components/tag/tag.js +2 -2
  35. package/dist/esm/components/toggle/toggle.js +2 -2
  36. package/dist/esm/components/tooltip/tooltip.js +2 -2
  37. package/dist/esm/index.js +3 -2
  38. package/dist/esm/provider/DarkThemeContext.js +57 -0
  39. package/dist/esm/tokens/definitions.js +34 -1
  40. package/dist/esm/utils/index.js +1 -10
  41. package/dist/types/components/card/card.d.ts +1 -1
  42. package/dist/types/components/divider/divider.d.ts +1 -1
  43. package/dist/types/components/drawer/drawer.d.ts +2 -2
  44. package/dist/types/components/input/input.d.ts +4 -4
  45. package/dist/types/components/manager/manager.d.ts +2 -2
  46. package/dist/types/components/modal/modal.d.ts +2 -2
  47. package/dist/types/components/popover/popover.d.ts +1 -1
  48. package/dist/types/components/table/table.d.ts +2 -2
  49. package/dist/types/components/toggle/toggle.d.ts +2 -2
  50. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  51. package/dist/types/index.d.ts +1 -0
  52. package/dist/types/preset/index.d.ts +14 -0
  53. package/dist/types/provider/DarkThemeContext.d.ts +14 -0
  54. package/dist/types/provider/index.d.ts +1 -0
  55. package/dist/types/tokens/definitions.d.ts +34 -1
  56. package/dist/types/utils/index.d.ts +0 -1
  57. package/package.json +2 -2
@@ -7,7 +7,7 @@ const badgeStyles = tailwindVariants.tv({
7
7
  variants: {
8
8
  intent: {
9
9
  primary: "bg-primary-medium",
10
- secondary: "bg-secondary-medium",
10
+ secondary: "bg-content-low",
11
11
  error: "bg-error-medium",
12
12
  success: "bg-success-medium",
13
13
  warning: "bg-warning-medium",
@@ -7,7 +7,7 @@ const buttonStyles = tailwindVariants.tv({
7
7
  variants: {
8
8
  intent: {
9
9
  primary: "bg-primary-medium disabled:bg-primary-light active:bg-primary-dark enabled:hover:border-primary-dark hover:bg-primary-dark",
10
- secondary: "bg-secondary-medium disabled:bg-secondary-light active:bg-secondary-dark hover:bg-secondary-dark hover:border-secondary-dark ",
10
+ secondary: "bg-content-low disabled:bg-content-minimal active:bg-content-medium hover:bg-content-medium hover:border-content-medium ",
11
11
  success: "bg-success-medium disabled:bg-success-light hover:bg-success-dark hover:border-success-dark",
12
12
  info: " bg-info-medium disabled:bg-info-light hover:bg-info-dark hover:border-info-dark ",
13
13
  warning: " bg-warning-medium disabled:bg-warning-light hover:bg-warning-dark hover:border-warning-dark",
@@ -35,7 +35,7 @@ const buttonStyles = tailwindVariants.tv({
35
35
  {
36
36
  intent: "secondary",
37
37
  variant: "outline",
38
- className: "text-secondary-medium disabled:text-secondary-light border border-secondary-medium disabled:border-secondary-light"
38
+ className: "text-content-low disabled:text-content-minimal border border-content-low disabled:border-content-minimal"
39
39
  },
40
40
  {
41
41
  intent: "success",
@@ -65,7 +65,7 @@ const buttonStyles = tailwindVariants.tv({
65
65
  {
66
66
  intent: "secondary",
67
67
  variant: "text",
68
- className: "text-secondary-medium disabled:text-secondary-light"
68
+ className: "text-content-low disabled:text-content-minimal"
69
69
  },
70
70
  {
71
71
  intent: "success",
@@ -3,7 +3,7 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const card = tailwindVariants.tv({
6
- base: "rounded-mili shadow-default bg-white p-deca"
6
+ base: "rounded-mili shadow-default bg-surface-overlay p-deca"
7
7
  });
8
8
 
9
9
  exports.card = card;
@@ -3,7 +3,7 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const divider = tailwindVariants.tv({
6
- base: "border-solid border-t border-secondary-light w-full"
6
+ base: "border-solid border-t border-content-minimal w-full"
7
7
  });
8
8
 
9
9
  exports.divider = divider;
@@ -3,7 +3,7 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const drawerStyles = tailwindVariants.tv({
6
- base: "bg-white fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll",
6
+ base: "bg-surface-overlay fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll",
7
7
  variants: {
8
8
  position: {
9
9
  left: "left-0 -translate-x-full rounded-r-mili",
@@ -6,7 +6,7 @@ const hintStyles = tailwindVariants.tv({
6
6
  base: "text-label font-bold flex items-center",
7
7
  variants: {
8
8
  intent: {
9
- default: "text-secondary-medium",
9
+ default: "text-content-low",
10
10
  success: "text-success-medium",
11
11
  warning: "text-warning-medium",
12
12
  error: "text-error-medium"
@@ -4,14 +4,14 @@ var clsx = require('clsx');
4
4
  var tailwindVariants = require('tailwind-variants');
5
5
 
6
6
  const inputBaseStyles = tailwindVariants.tv({
7
- base: "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-white focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent",
7
+ base: "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-surface-overlay focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent",
8
8
  variants: {
9
9
  intent: {
10
10
  default: [
11
11
  "input-secondary",
12
- "border-secondary-light",
13
- "focus-within:border-secondary-dark",
14
- "focus-within:outline-secondary-dark"
12
+ "border-content-minimal",
13
+ "focus-within:border-content-medium",
14
+ "focus-within:outline-content-medium"
15
15
  ],
16
16
  success: [
17
17
  "input-success",
@@ -38,13 +38,13 @@ const inputBaseStyles = tailwindVariants.tv({
38
38
  }
39
39
  });
40
40
  const labelBaseStyles = tailwindVariants.tv({
41
- base: "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-secondary-light select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5",
41
+ base: "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-content-minimal select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5",
42
42
  variants: {
43
43
  intent: {
44
44
  default: [
45
- "text-secondary-medium",
46
- "peer-focus:text-secondary-medium",
47
- "peer-placeholder-shown:text-secondary-medium"
45
+ "text-content-low",
46
+ "peer-focus:text-content-low",
47
+ "peer-placeholder-shown:text-content-low"
48
48
  ],
49
49
  success: ["text-success-medium"],
50
50
  warning: ["text-warning-medium"],
@@ -63,7 +63,7 @@ const labelStyle = ({ intent, placeholder, className }) => labelBaseStyles({
63
63
  });
64
64
  const inputBox = (placeholder, label2, className) => clsx.clsx(
65
65
  className,
66
- "peer relative outline-none placeholder:text-base placeholder:text-secondary-medium placeholder-shown:top-0 disabled:placeholder:text-secondary-light disabled:text-secondary-light bg-transparent",
66
+ "peer relative outline-none placeholder:text-base placeholder:text-content-low placeholder-shown:top-0 disabled:placeholder:text-content-minimal disabled:text-content-minimal bg-transparent",
67
67
  {
68
68
  "focus:top-1.5": !placeholder && !!label2,
69
69
  "top-1.5": !!label2
@@ -3,7 +3,7 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const manager = tailwindVariants.tv({
6
- base: "fixed rounded-micro p-deca bg-white shadow-xl flex transition bottom-deca right-deca z-modal",
6
+ base: "fixed rounded-micro p-deca bg-surface-overlay shadow-xl flex transition bottom-deca right-deca z-modal",
7
7
  variants: {
8
8
  open: {
9
9
  true: "scale-100 visible",
@@ -3,7 +3,7 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const modal = tailwindVariants.tv({
6
- base: "fixed rounded-micro p-kilo bg-white shadow-default flex transition inset-0 z-modal",
6
+ base: "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 z-modal text-default",
7
7
  variants: {
8
8
  open: {
9
9
  true: "scale-100 visible",
@@ -6,7 +6,7 @@ const popoverContainer = tailwindVariants.tv({
6
6
  base: "group relative inline-block"
7
7
  });
8
8
  const popoverStyles = tailwindVariants.tv({
9
- base: "border border-gray-200 bg-black text-white p-4 rounded-md shadow-lg z-50"
9
+ base: "border border-gray-200 bg-surface-inverse text-white p-4 rounded-md shadow-lg z-50"
10
10
  });
11
11
  const popover = (props) => popoverStyles(props);
12
12
 
@@ -15,8 +15,8 @@ const option = tailwindVariants.tv({
15
15
  });
16
16
  const selectVariants = tailwindVariants.tv({
17
17
  slots: {
18
- button: "disabled:pointer-events-none disabled:text-secondary-light flex w-full justify-between items-center bg-white relative min-h-[44px] h-auto flex px-centi py-1.5 text-base font-bold items-center border border-secondary-light rounded-mili",
19
- groupedTitle: "font-bold text-secondary-medium mx-centi",
18
+ button: "disabled:pointer-events-none disabled:text-content-minimal flex w-full justify-between items-center bg-surface-overlay relative min-h-[44px] h-auto flex px-centi py-1.5 text-base font-bold items-center border border-content-minimal rounded-mili",
19
+ groupedTitle: "font-bold text-content-low mx-centi",
20
20
  list: "list-none p-0"
21
21
  },
22
22
  variants: {
@@ -7,7 +7,7 @@ const snackbarStyles = tailwindVariants.tv({
7
7
  variants: {
8
8
  intent: {
9
9
  default: "bg-primary-xlight text-primary-medium",
10
- secondary: "bg-secondary-xlight text-secondary-medium",
10
+ secondary: "bg-content-inverse text-content-low",
11
11
  success: "bg-success-xlight text-success-medium",
12
12
  error: "bg-error-xlight text-error-medium",
13
13
  info: "bg-info-xlight text-info-medium",
@@ -18,10 +18,10 @@ const tFoot = tailwindVariants.tv({
18
18
  base: "[&>tr]:rounded-none [&>tr]:shadow-none"
19
19
  });
20
20
  const tRoot = tailwindVariants.tv({
21
- base: "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-white shadow-default"
21
+ base: "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-surface-overlay shadow-default"
22
22
  });
23
23
  const hr = tailwindVariants.tv({
24
- base: "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-secondary-xlight"
24
+ base: "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-surface-base"
25
25
  });
26
26
 
27
27
  exports.hr = hr;
@@ -16,12 +16,12 @@ const tagStyles = myTV({
16
16
  variants: {
17
17
  intent: {
18
18
  primary: "bg-primary-medium text-white",
19
- secondary: "bg-secondary-medium text-white",
19
+ secondary: "bg-content-low text-white",
20
20
  info: "bg-info-medium text-white",
21
21
  success: "bg-success-medium text-white",
22
22
  warning: "bg-warning-medium text-white",
23
23
  error: "bg-error-medium text-white",
24
- white: "bg-white text-secondary-medium"
24
+ white: "bg-surface-overlay text-content-low"
25
25
  }
26
26
  },
27
27
  defaultVariants: {
@@ -3,11 +3,11 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const toggleStyles = tailwindVariants.tv({
6
- base: "peer h-[22px] w-[40px] rounded-full bg-secondary-light after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-white after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none",
6
+ base: "peer h-[22px] w-[40px] rounded-full bg-content-minimal after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-surface-overlay after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none",
7
7
  variants: {
8
8
  intent: {
9
9
  primary: "peer-focus:primary-medium peer-checked:bg-primary-medium",
10
- secondary: "peer-focus:secondary-medium peer-checked:bg-secondary-medium",
10
+ secondary: "peer-focus:secondary-medium peer-checked:bg-content-low",
11
11
  info: "peer-focus:info-medium peer-checked:bg-info-medium",
12
12
  success: "peer-focus:success-medium peer-checked:bg-success-medium",
13
13
  warning: "peer-focus:warning-medium peer-checked:bg-warning-medium",
@@ -6,7 +6,7 @@ const tooltipContainer = tailwindVariants.tv({
6
6
  base: "group relative inline-block"
7
7
  });
8
8
  const arrowTooltipStyles = tailwindVariants.tv({
9
- base: 'after:content-[""] after:absolute after:border-secondary-dark',
9
+ base: 'after:content-[""] after:absolute after:border-content-medium',
10
10
  variants: {
11
11
  position: {
12
12
  top: "after:left-[50%] after:-ml-[5px] after:top-[100%] after:border-x-8 after:border-x-transparent after:border-t-[8px]",
@@ -15,7 +15,7 @@ const arrowTooltipStyles = tailwindVariants.tv({
15
15
  }
16
16
  });
17
17
  const tooltipStyles = tailwindVariants.tv({
18
- base: "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-secondary-dark text-white px-centi py-micro rounded-mili absolute",
18
+ base: "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-content-medium text-white px-centi py-micro rounded-mili absolute",
19
19
  variants: {
20
20
  position: {
21
21
  bottom: [
package/dist/cjs/index.js CHANGED
@@ -22,6 +22,7 @@ var manager = require('./components/manager/manager.js');
22
22
  var index = require('./preset/index.js');
23
23
  var definitions = require('./tokens/definitions.js');
24
24
  var index$1 = require('./utils/index.js');
25
+ var DarkThemeContext = require('./provider/DarkThemeContext.js');
25
26
 
26
27
 
27
28
 
@@ -68,10 +69,12 @@ exports.borderRadius = definitions.borderRadius;
68
69
  exports.borderWidth = definitions.borderWidth;
69
70
  exports.boxShadow = definitions.boxShadow;
70
71
  exports.colors = definitions.colors;
72
+ exports.darkColors = definitions.darkColors;
71
73
  exports.fontFamily = definitions.fontFamily;
72
74
  exports.fontSize = definitions.fontSize;
73
75
  exports.spacing = definitions.spacing;
74
76
  exports.textColor = definitions.textColor;
75
77
  exports.zIndex = definitions.zIndex;
76
- exports.setDarkMode = index$1.setDarkMode;
77
78
  exports.updateThemeColors = index$1.updateThemeColors;
79
+ exports.DarkThemeProvider = DarkThemeContext.DarkThemeProvider;
80
+ exports.useDarkTheme = DarkThemeContext.useDarkTheme;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var definitions = require('../tokens/definitions.js');
6
+
7
+ const DarkThemeContext = react.createContext(null);
8
+ const DarkThemeProvider = ({ children }) => {
9
+ const [theme, setTheme] = react.useState("light");
10
+ react.useEffect(() => {
11
+ const style = document.documentElement.style;
12
+ if (theme === "dark") {
13
+ style.setProperty("--color-body", definitions.darkColors.body);
14
+ style.setProperty("--color-text-default", definitions.darkColors.text.default);
15
+ style.setProperty("--color-surface-base", definitions.darkColors.surface.base);
16
+ style.setProperty("--color-surface-raised", definitions.darkColors.surface.raised);
17
+ style.setProperty("--color-surface-overlay", definitions.darkColors.surface.overlay);
18
+ style.setProperty("--color-surface-inverse", definitions.darkColors.surface.inverse);
19
+ style.setProperty("--color-content-high", definitions.darkColors.content.high);
20
+ style.setProperty("--color-content-medium", definitions.darkColors.content.medium);
21
+ style.setProperty("--color-content-low", definitions.darkColors.content.low);
22
+ style.setProperty("--color-content-minimal", definitions.darkColors.content.minimal);
23
+ style.setProperty("--color-content-inverse", definitions.darkColors.content.inverse);
24
+ } else {
25
+ style.setProperty("--color-body", definitions.colors.miscellaneous.body);
26
+ style.setProperty("--color-text-default", definitions.textColor.default);
27
+ style.setProperty("--color-surface-base", definitions.colors.surface.base);
28
+ style.setProperty("--color-surface-raised", definitions.colors.surface.raised);
29
+ style.setProperty("--color-surface-overlay", definitions.colors.surface.overlay);
30
+ style.setProperty("--color-surface-inverse", definitions.colors.surface.inverse);
31
+ style.setProperty("--color-content-high", definitions.colors.content.high);
32
+ style.setProperty("--color-content-medium", definitions.colors.content.medium);
33
+ style.setProperty("--color-content-low", definitions.colors.content.low);
34
+ style.setProperty("--color-content-minimal", definitions.colors.content.minimal);
35
+ style.setProperty("--color-content-inverse", definitions.colors.content.inverse);
36
+ }
37
+ }, [theme]);
38
+ const toggleTheme = react.useCallback(() => {
39
+ const next = theme === "light" ? "dark" : "light";
40
+ setTheme(next);
41
+ return next;
42
+ }, [theme]);
43
+ const isDark = react.useMemo(() => theme === "dark", [theme]);
44
+ const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
45
+ return /* @__PURE__ */ jsxRuntime.jsx(
46
+ DarkThemeContext.Provider,
47
+ {
48
+ value: { theme, setTheme, toggleTheme, isDark, systemTheme },
49
+ children
50
+ }
51
+ );
52
+ };
53
+ const useDarkTheme = () => {
54
+ const ctx = react.useContext(DarkThemeContext);
55
+ if (!ctx) throw new Error("useTheme must be used inside ThemeProvider");
56
+ return ctx;
57
+ };
58
+
59
+ exports.DarkThemeProvider = DarkThemeProvider;
60
+ exports.useDarkTheme = useDarkTheme;
@@ -1,5 +1,24 @@
1
1
  'use strict';
2
2
 
3
+ const darkColors = {
4
+ body: "#1e1e1e",
5
+ text: {
6
+ default: "#fff"
7
+ },
8
+ surface: {
9
+ base: "#1e1e1e",
10
+ raised: "#252526",
11
+ overlay: "#2d2d30",
12
+ inverse: "#fff"
13
+ },
14
+ content: {
15
+ high: "#f8f7f7",
16
+ medium: "#c2bfbc",
17
+ low: "#85807a",
18
+ minimal: "#5d5955",
19
+ inverse: "#353231"
20
+ }
21
+ };
3
22
  const colors = {
4
23
  primary: {
5
24
  xlight: "var(--color-primary-xlight, #fef9f0)",
@@ -36,6 +55,19 @@ const colors = {
36
55
  dark: "#cc9f00",
37
56
  xdark: "#665000"
38
57
  },
58
+ surface: {
59
+ base: "var(--color-surface-base, #f8f7f7)",
60
+ raised: "var(--color-surface-raised, #fbfbfb)",
61
+ overlay: "var(--color-surface-overlay, #ffffff)",
62
+ inverse: "var(--color-surface-inverse, #000000)"
63
+ },
64
+ content: {
65
+ high: "var(--color-content-high, #353231)",
66
+ medium: "var(--color-content-medium, #5d5955)",
67
+ low: "var(--color-content-low, #85807a)",
68
+ minimal: "var(--color-content-minimal, #c2bfbc)",
69
+ inverse: "var(--color-content-inverse, #ffffff)"
70
+ },
39
71
  error: {
40
72
  xlight: "#fdf3f2",
41
73
  light: "#ee9891",
@@ -153,6 +185,7 @@ const fontFamily = {
153
185
  mono: "Consolas, monaco, monospace"
154
186
  };
155
187
  const textColor = {
188
+ default: "var(--color-text-default, #000)",
156
189
  light: "#fff",
157
190
  medium: "#85807a",
158
191
  dark: "#353231",
@@ -177,6 +210,7 @@ exports.borderRadius = borderRadius;
177
210
  exports.borderWidth = borderWidth;
178
211
  exports.boxShadow = boxShadow;
179
212
  exports.colors = colors;
213
+ exports.darkColors = darkColors;
180
214
  exports.fontFamily = fontFamily;
181
215
  exports.fontSize = fontSize;
182
216
  exports.spacing = spacing;
@@ -10,15 +10,5 @@ const updateThemeColors = (theme) => {
10
10
  });
11
11
  });
12
12
  };
13
- const setDarkMode = () => {
14
- const style = document.documentElement.style;
15
- const isDark = style.getPropertyValue("--color-body") !== "#f8f7f7";
16
- if (!isDark) {
17
- style.setProperty("--color-body", "#1e1e1e");
18
- } else {
19
- style.setProperty("--color-body", "#f8f7f7");
20
- }
21
- };
22
13
 
23
- exports.setDarkMode = setDarkMode;
24
14
  exports.updateThemeColors = updateThemeColors;
@@ -5,7 +5,7 @@ const badgeStyles = tv({
5
5
  variants: {
6
6
  intent: {
7
7
  primary: "bg-primary-medium",
8
- secondary: "bg-secondary-medium",
8
+ secondary: "bg-content-low",
9
9
  error: "bg-error-medium",
10
10
  success: "bg-success-medium",
11
11
  warning: "bg-warning-medium",
@@ -5,7 +5,7 @@ const buttonStyles = tv({
5
5
  variants: {
6
6
  intent: {
7
7
  primary: "bg-primary-medium disabled:bg-primary-light active:bg-primary-dark enabled:hover:border-primary-dark hover:bg-primary-dark",
8
- secondary: "bg-secondary-medium disabled:bg-secondary-light active:bg-secondary-dark hover:bg-secondary-dark hover:border-secondary-dark ",
8
+ secondary: "bg-content-low disabled:bg-content-minimal active:bg-content-medium hover:bg-content-medium hover:border-content-medium ",
9
9
  success: "bg-success-medium disabled:bg-success-light hover:bg-success-dark hover:border-success-dark",
10
10
  info: " bg-info-medium disabled:bg-info-light hover:bg-info-dark hover:border-info-dark ",
11
11
  warning: " bg-warning-medium disabled:bg-warning-light hover:bg-warning-dark hover:border-warning-dark",
@@ -33,7 +33,7 @@ const buttonStyles = tv({
33
33
  {
34
34
  intent: "secondary",
35
35
  variant: "outline",
36
- className: "text-secondary-medium disabled:text-secondary-light border border-secondary-medium disabled:border-secondary-light"
36
+ className: "text-content-low disabled:text-content-minimal border border-content-low disabled:border-content-minimal"
37
37
  },
38
38
  {
39
39
  intent: "success",
@@ -63,7 +63,7 @@ const buttonStyles = tv({
63
63
  {
64
64
  intent: "secondary",
65
65
  variant: "text",
66
- className: "text-secondary-medium disabled:text-secondary-light"
66
+ className: "text-content-low disabled:text-content-minimal"
67
67
  },
68
68
  {
69
69
  intent: "success",
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const card = tv({
4
- base: "rounded-mili shadow-default bg-white p-deca"
4
+ base: "rounded-mili shadow-default bg-surface-overlay p-deca"
5
5
  });
6
6
 
7
7
  export { card };
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const divider = tv({
4
- base: "border-solid border-t border-secondary-light w-full"
4
+ base: "border-solid border-t border-content-minimal w-full"
5
5
  });
6
6
 
7
7
  export { divider };
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const drawerStyles = tv({
4
- base: "bg-white fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll",
4
+ base: "bg-surface-overlay fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll",
5
5
  variants: {
6
6
  position: {
7
7
  left: "left-0 -translate-x-full rounded-r-mili",
@@ -4,7 +4,7 @@ const hintStyles = tv({
4
4
  base: "text-label font-bold flex items-center",
5
5
  variants: {
6
6
  intent: {
7
- default: "text-secondary-medium",
7
+ default: "text-content-low",
8
8
  success: "text-success-medium",
9
9
  warning: "text-warning-medium",
10
10
  error: "text-error-medium"
@@ -2,14 +2,14 @@ import { clsx } from 'clsx';
2
2
  import { tv } from 'tailwind-variants';
3
3
 
4
4
  const inputBaseStyles = tv({
5
- base: "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-white focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent",
5
+ base: "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-surface-overlay focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent",
6
6
  variants: {
7
7
  intent: {
8
8
  default: [
9
9
  "input-secondary",
10
- "border-secondary-light",
11
- "focus-within:border-secondary-dark",
12
- "focus-within:outline-secondary-dark"
10
+ "border-content-minimal",
11
+ "focus-within:border-content-medium",
12
+ "focus-within:outline-content-medium"
13
13
  ],
14
14
  success: [
15
15
  "input-success",
@@ -36,13 +36,13 @@ const inputBaseStyles = tv({
36
36
  }
37
37
  });
38
38
  const labelBaseStyles = tv({
39
- base: "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-secondary-light select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5",
39
+ base: "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-content-minimal select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5",
40
40
  variants: {
41
41
  intent: {
42
42
  default: [
43
- "text-secondary-medium",
44
- "peer-focus:text-secondary-medium",
45
- "peer-placeholder-shown:text-secondary-medium"
43
+ "text-content-low",
44
+ "peer-focus:text-content-low",
45
+ "peer-placeholder-shown:text-content-low"
46
46
  ],
47
47
  success: ["text-success-medium"],
48
48
  warning: ["text-warning-medium"],
@@ -61,7 +61,7 @@ const labelStyle = ({ intent, placeholder, className }) => labelBaseStyles({
61
61
  });
62
62
  const inputBox = (placeholder, label2, className) => clsx(
63
63
  className,
64
- "peer relative outline-none placeholder:text-base placeholder:text-secondary-medium placeholder-shown:top-0 disabled:placeholder:text-secondary-light disabled:text-secondary-light bg-transparent",
64
+ "peer relative outline-none placeholder:text-base placeholder:text-content-low placeholder-shown:top-0 disabled:placeholder:text-content-minimal disabled:text-content-minimal bg-transparent",
65
65
  {
66
66
  "focus:top-1.5": !placeholder && !!label2,
67
67
  "top-1.5": !!label2
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const manager = tv({
4
- base: "fixed rounded-micro p-deca bg-white shadow-xl flex transition bottom-deca right-deca z-modal",
4
+ base: "fixed rounded-micro p-deca bg-surface-overlay shadow-xl flex transition bottom-deca right-deca z-modal",
5
5
  variants: {
6
6
  open: {
7
7
  true: "scale-100 visible",
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const modal = tv({
4
- base: "fixed rounded-micro p-kilo bg-white shadow-default flex transition inset-0 z-modal",
4
+ base: "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 z-modal text-default",
5
5
  variants: {
6
6
  open: {
7
7
  true: "scale-100 visible",
@@ -4,7 +4,7 @@ const popoverContainer = tv({
4
4
  base: "group relative inline-block"
5
5
  });
6
6
  const popoverStyles = tv({
7
- base: "border border-gray-200 bg-black text-white p-4 rounded-md shadow-lg z-50"
7
+ base: "border border-gray-200 bg-surface-inverse text-white p-4 rounded-md shadow-lg z-50"
8
8
  });
9
9
  const popover = (props) => popoverStyles(props);
10
10
 
@@ -13,8 +13,8 @@ const option = tv({
13
13
  });
14
14
  const selectVariants = tv({
15
15
  slots: {
16
- button: "disabled:pointer-events-none disabled:text-secondary-light flex w-full justify-between items-center bg-white relative min-h-[44px] h-auto flex px-centi py-1.5 text-base font-bold items-center border border-secondary-light rounded-mili",
17
- groupedTitle: "font-bold text-secondary-medium mx-centi",
16
+ button: "disabled:pointer-events-none disabled:text-content-minimal flex w-full justify-between items-center bg-surface-overlay relative min-h-[44px] h-auto flex px-centi py-1.5 text-base font-bold items-center border border-content-minimal rounded-mili",
17
+ groupedTitle: "font-bold text-content-low mx-centi",
18
18
  list: "list-none p-0"
19
19
  },
20
20
  variants: {
@@ -5,7 +5,7 @@ const snackbarStyles = tv({
5
5
  variants: {
6
6
  intent: {
7
7
  default: "bg-primary-xlight text-primary-medium",
8
- secondary: "bg-secondary-xlight text-secondary-medium",
8
+ secondary: "bg-content-inverse text-content-low",
9
9
  success: "bg-success-xlight text-success-medium",
10
10
  error: "bg-error-xlight text-error-medium",
11
11
  info: "bg-info-xlight text-info-medium",
@@ -16,10 +16,10 @@ const tFoot = tv({
16
16
  base: "[&>tr]:rounded-none [&>tr]:shadow-none"
17
17
  });
18
18
  const tRoot = tv({
19
- base: "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-white shadow-default"
19
+ base: "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-surface-overlay shadow-default"
20
20
  });
21
21
  const hr = tv({
22
- base: "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-secondary-xlight"
22
+ base: "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-surface-base"
23
23
  });
24
24
 
25
25
  export { hr, tCell, tFoot, tHead, tHeadCell, tRoot, tRow };
@@ -14,12 +14,12 @@ const tagStyles = myTV({
14
14
  variants: {
15
15
  intent: {
16
16
  primary: "bg-primary-medium text-white",
17
- secondary: "bg-secondary-medium text-white",
17
+ secondary: "bg-content-low text-white",
18
18
  info: "bg-info-medium text-white",
19
19
  success: "bg-success-medium text-white",
20
20
  warning: "bg-warning-medium text-white",
21
21
  error: "bg-error-medium text-white",
22
- white: "bg-white text-secondary-medium"
22
+ white: "bg-surface-overlay text-content-low"
23
23
  }
24
24
  },
25
25
  defaultVariants: {
@@ -1,11 +1,11 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const toggleStyles = tv({
4
- base: "peer h-[22px] w-[40px] rounded-full bg-secondary-light after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-white after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none",
4
+ base: "peer h-[22px] w-[40px] rounded-full bg-content-minimal after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-surface-overlay after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none",
5
5
  variants: {
6
6
  intent: {
7
7
  primary: "peer-focus:primary-medium peer-checked:bg-primary-medium",
8
- secondary: "peer-focus:secondary-medium peer-checked:bg-secondary-medium",
8
+ secondary: "peer-focus:secondary-medium peer-checked:bg-content-low",
9
9
  info: "peer-focus:info-medium peer-checked:bg-info-medium",
10
10
  success: "peer-focus:success-medium peer-checked:bg-success-medium",
11
11
  warning: "peer-focus:warning-medium peer-checked:bg-warning-medium",
@@ -4,7 +4,7 @@ const tooltipContainer = tv({
4
4
  base: "group relative inline-block"
5
5
  });
6
6
  const arrowTooltipStyles = tv({
7
- base: 'after:content-[""] after:absolute after:border-secondary-dark',
7
+ base: 'after:content-[""] after:absolute after:border-content-medium',
8
8
  variants: {
9
9
  position: {
10
10
  top: "after:left-[50%] after:-ml-[5px] after:top-[100%] after:border-x-8 after:border-x-transparent after:border-t-[8px]",
@@ -13,7 +13,7 @@ const arrowTooltipStyles = tv({
13
13
  }
14
14
  });
15
15
  const tooltipStyles = tv({
16
- base: "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-secondary-dark text-white px-centi py-micro rounded-mili absolute",
16
+ base: "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-content-medium text-white px-centi py-micro rounded-mili absolute",
17
17
  variants: {
18
18
  position: {
19
19
  bottom: [
package/dist/esm/index.js CHANGED
@@ -18,5 +18,6 @@ export { styleInputElement, styleLabelElement, toggle } from './components/toggl
18
18
  export { tooltip, tooltipContainer } from './components/tooltip/tooltip.js';
19
19
  export { manager } from './components/manager/manager.js';
20
20
  export { default as preset } from './preset/index.js';
21
- export { borderColor, borderRadius, borderWidth, boxShadow, colors, fontFamily, fontSize, spacing, textColor, zIndex } from './tokens/definitions.js';
22
- export { setDarkMode, updateThemeColors } from './utils/index.js';
21
+ export { borderColor, borderRadius, borderWidth, boxShadow, colors, darkColors, fontFamily, fontSize, spacing, textColor, zIndex } from './tokens/definitions.js';
22
+ export { updateThemeColors } from './utils/index.js';
23
+ export { DarkThemeProvider, useDarkTheme } from './provider/DarkThemeContext.js';
@@ -0,0 +1,57 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useState, useEffect, useCallback, useMemo, useContext } from 'react';
3
+ import { darkColors, colors, textColor } from '../tokens/definitions.js';
4
+
5
+ const DarkThemeContext = createContext(null);
6
+ const DarkThemeProvider = ({ children }) => {
7
+ const [theme, setTheme] = useState("light");
8
+ useEffect(() => {
9
+ const style = document.documentElement.style;
10
+ if (theme === "dark") {
11
+ style.setProperty("--color-body", darkColors.body);
12
+ style.setProperty("--color-text-default", darkColors.text.default);
13
+ style.setProperty("--color-surface-base", darkColors.surface.base);
14
+ style.setProperty("--color-surface-raised", darkColors.surface.raised);
15
+ style.setProperty("--color-surface-overlay", darkColors.surface.overlay);
16
+ style.setProperty("--color-surface-inverse", darkColors.surface.inverse);
17
+ style.setProperty("--color-content-high", darkColors.content.high);
18
+ style.setProperty("--color-content-medium", darkColors.content.medium);
19
+ style.setProperty("--color-content-low", darkColors.content.low);
20
+ style.setProperty("--color-content-minimal", darkColors.content.minimal);
21
+ style.setProperty("--color-content-inverse", darkColors.content.inverse);
22
+ } else {
23
+ style.setProperty("--color-body", colors.miscellaneous.body);
24
+ style.setProperty("--color-text-default", textColor.default);
25
+ style.setProperty("--color-surface-base", colors.surface.base);
26
+ style.setProperty("--color-surface-raised", colors.surface.raised);
27
+ style.setProperty("--color-surface-overlay", colors.surface.overlay);
28
+ style.setProperty("--color-surface-inverse", colors.surface.inverse);
29
+ style.setProperty("--color-content-high", colors.content.high);
30
+ style.setProperty("--color-content-medium", colors.content.medium);
31
+ style.setProperty("--color-content-low", colors.content.low);
32
+ style.setProperty("--color-content-minimal", colors.content.minimal);
33
+ style.setProperty("--color-content-inverse", colors.content.inverse);
34
+ }
35
+ }, [theme]);
36
+ const toggleTheme = useCallback(() => {
37
+ const next = theme === "light" ? "dark" : "light";
38
+ setTheme(next);
39
+ return next;
40
+ }, [theme]);
41
+ const isDark = useMemo(() => theme === "dark", [theme]);
42
+ const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
43
+ return /* @__PURE__ */ jsx(
44
+ DarkThemeContext.Provider,
45
+ {
46
+ value: { theme, setTheme, toggleTheme, isDark, systemTheme },
47
+ children
48
+ }
49
+ );
50
+ };
51
+ const useDarkTheme = () => {
52
+ const ctx = useContext(DarkThemeContext);
53
+ if (!ctx) throw new Error("useTheme must be used inside ThemeProvider");
54
+ return ctx;
55
+ };
56
+
57
+ export { DarkThemeProvider, useDarkTheme };
@@ -1,3 +1,22 @@
1
+ const darkColors = {
2
+ body: "#1e1e1e",
3
+ text: {
4
+ default: "#fff"
5
+ },
6
+ surface: {
7
+ base: "#1e1e1e",
8
+ raised: "#252526",
9
+ overlay: "#2d2d30",
10
+ inverse: "#fff"
11
+ },
12
+ content: {
13
+ high: "#f8f7f7",
14
+ medium: "#c2bfbc",
15
+ low: "#85807a",
16
+ minimal: "#5d5955",
17
+ inverse: "#353231"
18
+ }
19
+ };
1
20
  const colors = {
2
21
  primary: {
3
22
  xlight: "var(--color-primary-xlight, #fef9f0)",
@@ -34,6 +53,19 @@ const colors = {
34
53
  dark: "#cc9f00",
35
54
  xdark: "#665000"
36
55
  },
56
+ surface: {
57
+ base: "var(--color-surface-base, #f8f7f7)",
58
+ raised: "var(--color-surface-raised, #fbfbfb)",
59
+ overlay: "var(--color-surface-overlay, #ffffff)",
60
+ inverse: "var(--color-surface-inverse, #000000)"
61
+ },
62
+ content: {
63
+ high: "var(--color-content-high, #353231)",
64
+ medium: "var(--color-content-medium, #5d5955)",
65
+ low: "var(--color-content-low, #85807a)",
66
+ minimal: "var(--color-content-minimal, #c2bfbc)",
67
+ inverse: "var(--color-content-inverse, #ffffff)"
68
+ },
37
69
  error: {
38
70
  xlight: "#fdf3f2",
39
71
  light: "#ee9891",
@@ -151,6 +183,7 @@ const fontFamily = {
151
183
  mono: "Consolas, monaco, monospace"
152
184
  };
153
185
  const textColor = {
186
+ default: "var(--color-text-default, #000)",
154
187
  light: "#fff",
155
188
  medium: "#85807a",
156
189
  dark: "#353231",
@@ -170,4 +203,4 @@ const zIndex = {
170
203
  modal: 1e3
171
204
  };
172
205
 
173
- export { borderColor, borderRadius, borderWidth, boxShadow, colors, fontFamily, fontSize, spacing, textColor, zIndex };
206
+ export { borderColor, borderRadius, borderWidth, boxShadow, colors, darkColors, fontFamily, fontSize, spacing, textColor, zIndex };
@@ -8,14 +8,5 @@ const updateThemeColors = (theme) => {
8
8
  });
9
9
  });
10
10
  };
11
- const setDarkMode = () => {
12
- const style = document.documentElement.style;
13
- const isDark = style.getPropertyValue("--color-body") !== "#f8f7f7";
14
- if (!isDark) {
15
- style.setProperty("--color-body", "#1e1e1e");
16
- } else {
17
- style.setProperty("--color-body", "#f8f7f7");
18
- }
19
- };
20
11
 
21
- export { setDarkMode, updateThemeColors };
12
+ export { updateThemeColors };
@@ -1 +1 @@
1
- export declare const card: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "rounded-mili shadow-default bg-white p-deca", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "rounded-mili shadow-default bg-white p-deca", unknown, unknown, undefined>>;
1
+ export declare const card: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "rounded-mili shadow-default bg-surface-overlay p-deca", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "rounded-mili shadow-default bg-surface-overlay p-deca", unknown, unknown, undefined>>;
@@ -1 +1 @@
1
- export declare const divider: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-solid border-t border-secondary-light w-full", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-solid border-t border-secondary-light w-full", unknown, unknown, undefined>>;
1
+ export declare const divider: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-solid border-t border-content-minimal w-full", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-solid border-t border-content-minimal w-full", unknown, unknown, undefined>>;
@@ -8,7 +8,7 @@ declare const drawerStyles: import("tailwind-variants").TVReturnType<{
8
8
  true: string;
9
9
  false: string;
10
10
  };
11
- }, undefined, "bg-white fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll", {
11
+ }, undefined, "bg-surface-overlay fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll", {
12
12
  position: {
13
13
  left: string;
14
14
  right: string;
@@ -26,7 +26,7 @@ declare const drawerStyles: import("tailwind-variants").TVReturnType<{
26
26
  true: string;
27
27
  false: string;
28
28
  };
29
- }, undefined, "bg-white fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll", unknown, unknown, undefined>>;
29
+ }, undefined, "bg-surface-overlay fixed top-0 h-full p-deca shadow-lg transition-all duration-500 transform overflow-y-scroll", unknown, unknown, undefined>>;
30
30
  export type DrawerVariants = VariantProps<typeof drawerStyles> & ClassProp;
31
31
  export declare const drawer: (props: DrawerVariants) => string;
32
32
  export {};
@@ -6,7 +6,7 @@ export declare const inputBaseStyles: import("tailwind-variants").TVReturnType<{
6
6
  warning: string[];
7
7
  error: string[];
8
8
  };
9
- }, undefined, "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-white focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent", {
9
+ }, undefined, "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-surface-overlay focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent", {
10
10
  intent: {
11
11
  default: string[];
12
12
  success: string[];
@@ -20,7 +20,7 @@ export declare const inputBaseStyles: import("tailwind-variants").TVReturnType<{
20
20
  warning: string[];
21
21
  error: string[];
22
22
  };
23
- }, undefined, "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-white focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent", unknown, unknown, undefined>>;
23
+ }, undefined, "relative min-h-[44px] h-auto flex px-centi py-1.5 bg-surface-overlay focus-within:outline focus-within:outline-1 text-base font-bold items-center border rounded-mili has-[:disabled]:bg-transparent", unknown, unknown, undefined>>;
24
24
  declare const labelBaseStyles: import("tailwind-variants").TVReturnType<{
25
25
  intent: {
26
26
  default: string[];
@@ -28,7 +28,7 @@ declare const labelBaseStyles: import("tailwind-variants").TVReturnType<{
28
28
  warning: string[];
29
29
  error: string[];
30
30
  };
31
- }, undefined, "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-secondary-light select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5", {
31
+ }, undefined, "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-content-minimal select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5", {
32
32
  intent: {
33
33
  default: string[];
34
34
  success: string[];
@@ -42,7 +42,7 @@ declare const labelBaseStyles: import("tailwind-variants").TVReturnType<{
42
42
  warning: string[];
43
43
  error: string[];
44
44
  };
45
- }, undefined, "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-secondary-light select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5", unknown, unknown, undefined>>;
45
+ }, undefined, "absolute duration-300 -translate-y-2 scale-[0.72] top-2.5 z-10 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-0 peer-focus:scale-[0.72] peer-focus:-translate-y-2 peer-focus:top-2.5 font-bold text-base peer-disabled:text-content-minimal select-none w-max peer-autofill:scale-[0.72] peer-autofill:-translate-y-2 peer-autofill:top-2.5", unknown, unknown, undefined>>;
46
46
  export interface LabelVariants extends VariantProps<typeof labelBaseStyles> {
47
47
  className?: string;
48
48
  placeholder?: string;
@@ -3,7 +3,7 @@ export declare const manager: import("tailwind-variants").TVReturnType<{
3
3
  true: string;
4
4
  false: string;
5
5
  };
6
- }, undefined, "fixed rounded-micro p-deca bg-white shadow-xl flex transition bottom-deca right-deca z-modal", {
6
+ }, undefined, "fixed rounded-micro p-deca bg-surface-overlay shadow-xl flex transition bottom-deca right-deca z-modal", {
7
7
  open: {
8
8
  true: string;
9
9
  false: string;
@@ -13,4 +13,4 @@ export declare const manager: import("tailwind-variants").TVReturnType<{
13
13
  true: string;
14
14
  false: string;
15
15
  };
16
- }, undefined, "fixed rounded-micro p-deca bg-white shadow-xl flex transition bottom-deca right-deca z-modal", unknown, unknown, undefined>>;
16
+ }, undefined, "fixed rounded-micro p-deca bg-surface-overlay shadow-xl flex transition bottom-deca right-deca z-modal", unknown, unknown, undefined>>;
@@ -3,7 +3,7 @@ export declare const modal: import("tailwind-variants").TVReturnType<{
3
3
  true: string;
4
4
  false: string;
5
5
  };
6
- }, undefined, "fixed rounded-micro p-kilo bg-white shadow-default flex transition inset-0 z-modal", {
6
+ }, undefined, "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 z-modal text-default", {
7
7
  open: {
8
8
  true: string;
9
9
  false: string;
@@ -13,4 +13,4 @@ export declare const modal: import("tailwind-variants").TVReturnType<{
13
13
  true: string;
14
14
  false: string;
15
15
  };
16
- }, undefined, "fixed rounded-micro p-kilo bg-white shadow-default flex transition inset-0 z-modal", unknown, unknown, undefined>>;
16
+ }, undefined, "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 z-modal text-default", unknown, unknown, undefined>>;
@@ -1,5 +1,5 @@
1
1
  import { ClassProp, VariantProps } from 'tailwind-variants';
2
2
  export declare const popoverContainer: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "group relative inline-block", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "group relative inline-block", unknown, unknown, undefined>>;
3
- export declare const popoverStyles: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border border-gray-200 bg-black text-white p-4 rounded-md shadow-lg z-50", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border border-gray-200 bg-black text-white p-4 rounded-md shadow-lg z-50", unknown, unknown, undefined>>;
3
+ export declare const popoverStyles: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border border-gray-200 bg-surface-inverse text-white p-4 rounded-md shadow-lg z-50", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border border-gray-200 bg-surface-inverse text-white p-4 rounded-md shadow-lg z-50", unknown, unknown, undefined>>;
4
4
  export type popoverVariants = VariantProps<typeof popoverStyles> & ClassProp;
5
5
  export declare const popover: (props: popoverVariants) => string;
@@ -3,5 +3,5 @@ export declare const tRow: import("tailwind-variants").TVReturnType<{} | {} | {}
3
3
  export declare const tHeadCell: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "truncate px-deca py-centi text-start text-sub font-bold text-medium", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "truncate px-deca py-centi text-start text-sub font-bold text-medium", unknown, unknown, undefined>>;
4
4
  export declare const tCell: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "p-deca text-base font-bold text-dark", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "p-deca text-base font-bold text-dark", unknown, unknown, undefined>>;
5
5
  export declare const tFoot: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "[&>tr]:rounded-none [&>tr]:shadow-none", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "[&>tr]:rounded-none [&>tr]:shadow-none", unknown, unknown, undefined>>;
6
- export declare const tRoot: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-white shadow-default", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-white shadow-default", unknown, unknown, undefined>>;
7
- export declare const hr: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-secondary-xlight", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-secondary-xlight", unknown, unknown, undefined>>;
6
+ export declare const tRoot: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-surface-overlay shadow-default", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "min-w-fit border-separate border-spacing-x-[22px] border-spacing-y-mili rounded-mili bg-surface-overlay shadow-default", unknown, unknown, undefined>>;
7
+ export declare const hr: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-surface-base", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "-mx-[24px] -mb-[4px] -mt-[50px] h-[42px] border-0 bg-surface-base", unknown, unknown, undefined>>;
@@ -8,7 +8,7 @@ declare const toggleStyles: import("tailwind-variants").TVReturnType<{
8
8
  warning: string;
9
9
  error: string;
10
10
  };
11
- }, undefined, "peer h-[22px] w-[40px] rounded-full bg-secondary-light after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-white after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none", {
11
+ }, undefined, "peer h-[22px] w-[40px] rounded-full bg-content-minimal after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-surface-overlay after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none", {
12
12
  intent: {
13
13
  primary: string;
14
14
  secondary: string;
@@ -26,7 +26,7 @@ declare const toggleStyles: import("tailwind-variants").TVReturnType<{
26
26
  warning: string;
27
27
  error: string;
28
28
  };
29
- }, undefined, "peer h-[22px] w-[40px] rounded-full bg-secondary-light after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-white after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none", unknown, unknown, undefined>>;
29
+ }, undefined, "peer h-[22px] w-[40px] rounded-full bg-content-minimal after:absolute after:left-micro after:top-[3px] after:h-deca after:w-deca after:rounded-full after:border after:border-white after:bg-surface-overlay after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none", unknown, unknown, undefined>>;
30
30
  export declare const styleLabelElement: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "relative inline-flex cursor-pointer items-center", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "relative inline-flex cursor-pointer items-center", unknown, unknown, undefined>>;
31
31
  export declare const styleInputElement: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "peer sr-only", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "peer sr-only", unknown, unknown, undefined>>;
32
32
  type ToggleVariants = VariantProps<typeof toggleStyles> & ClassProp;
@@ -5,7 +5,7 @@ declare const tooltipStyles: import("tailwind-variants").TVReturnType<{
5
5
  bottom: string[];
6
6
  top: string[];
7
7
  };
8
- }, undefined, "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-secondary-dark text-white px-centi py-micro rounded-mili absolute", {
8
+ }, undefined, "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-content-medium text-white px-centi py-micro rounded-mili absolute", {
9
9
  position: {
10
10
  bottom: string[];
11
11
  top: string[];
@@ -15,7 +15,7 @@ declare const tooltipStyles: import("tailwind-variants").TVReturnType<{
15
15
  bottom: string[];
16
16
  top: string[];
17
17
  };
18
- }, undefined, "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-secondary-dark text-white px-centi py-micro rounded-mili absolute", unknown, unknown, undefined>>;
18
+ }, undefined, "h-8 mt-deca w-max h-fit invisible group-hover:visible opacity-0 group-hover:opacity-100 bg-content-medium text-white px-centi py-micro rounded-mili absolute", unknown, unknown, undefined>>;
19
19
  export type TooltipVariants = VariantProps<typeof tooltipStyles> & ClassProp;
20
20
  export declare const tooltip: (props: TooltipVariants) => string;
21
21
  export {};
@@ -2,3 +2,4 @@ export * from './components';
2
2
  export { default as preset } from './preset';
3
3
  export * from './tokens/definitions';
4
4
  export * from './utils';
5
+ export * from './provider';
@@ -41,6 +41,19 @@ declare const preset: {
41
41
  dark: string;
42
42
  xdark: string;
43
43
  };
44
+ surface: {
45
+ base: string;
46
+ raised: string;
47
+ overlay: string;
48
+ inverse: string;
49
+ };
50
+ content: {
51
+ high: string;
52
+ medium: string;
53
+ low: string;
54
+ minimal: string;
55
+ inverse: string;
56
+ };
44
57
  error: {
45
58
  xlight: string;
46
59
  light: string;
@@ -53,6 +66,7 @@ declare const preset: {
53
66
  };
54
67
  };
55
68
  textColor: {
69
+ default: string;
56
70
  light: string;
57
71
  medium: string;
58
72
  dark: string;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ export type Theme = 'light' | 'dark';
3
+ interface DarkThemeContextValue {
4
+ theme: Theme;
5
+ setTheme: (theme: Theme) => void;
6
+ toggleTheme: () => Theme;
7
+ isDark: boolean;
8
+ systemTheme: 'dark' | 'light';
9
+ }
10
+ export declare const DarkThemeProvider: ({ children }: {
11
+ children: ReactNode;
12
+ }) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const useDarkTheme: () => DarkThemeContextValue;
14
+ export {};
@@ -0,0 +1 @@
1
+ export * from './DarkThemeContext';
@@ -1,3 +1,22 @@
1
+ declare const darkColors: {
2
+ body: string;
3
+ text: {
4
+ default: string;
5
+ };
6
+ surface: {
7
+ base: string;
8
+ raised: string;
9
+ overlay: string;
10
+ inverse: string;
11
+ };
12
+ content: {
13
+ high: string;
14
+ medium: string;
15
+ low: string;
16
+ minimal: string;
17
+ inverse: string;
18
+ };
19
+ };
1
20
  declare const colors: {
2
21
  primary: {
3
22
  xlight: string;
@@ -34,6 +53,19 @@ declare const colors: {
34
53
  dark: string;
35
54
  xdark: string;
36
55
  };
56
+ surface: {
57
+ base: string;
58
+ raised: string;
59
+ overlay: string;
60
+ inverse: string;
61
+ };
62
+ content: {
63
+ high: string;
64
+ medium: string;
65
+ low: string;
66
+ minimal: string;
67
+ inverse: string;
68
+ };
37
69
  error: {
38
70
  xlight: string;
39
71
  light: string;
@@ -97,6 +129,7 @@ declare const fontFamily: {
97
129
  mono: string;
98
130
  };
99
131
  declare const textColor: {
132
+ default: string;
100
133
  light: string;
101
134
  medium: string;
102
135
  dark: string;
@@ -115,4 +148,4 @@ declare const zIndex: {
115
148
  sidebar: number;
116
149
  modal: number;
117
150
  };
118
- export { borderColor, borderRadius, borderWidth, boxShadow, colors, fontFamily, fontSize, spacing, textColor, zIndex, };
151
+ export { borderColor, borderRadius, borderWidth, boxShadow, colors, darkColors, fontFamily, fontSize, spacing, textColor, zIndex, };
@@ -1,3 +1,2 @@
1
1
  import { colors } from '../tokens/definitions';
2
2
  export declare const updateThemeColors: (theme: Partial<typeof colors>) => void;
3
- export declare const setDarkMode: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-core",
3
- "version": "1.3.0-beta.0",
3
+ "version": "1.3.0-beta.10",
4
4
  "license": "MIT",
5
5
  "description": "Core library for tailwindcss based design",
6
6
  "main": "dist/esm/index.js",
@@ -31,5 +31,5 @@
31
31
  "peerDependencies": {
32
32
  "tailwindcss": ">=3.3.0"
33
33
  },
34
- "gitHead": "c267542fbb45c9c598be530f2c2d4211365a816e"
34
+ "gitHead": "67cc6fecd28f1c78c8542c70ffe87982b7b85e6a"
35
35
  }