@tecsinapse/cortex-core 2.0.2-beta.2 → 2.1.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.
Files changed (59) hide show
  1. package/dist/cjs/components/badge/badge.js +1 -1
  2. package/dist/cjs/components/button/button.js +4 -4
  3. package/dist/cjs/components/card/card.js +1 -1
  4. package/dist/cjs/components/common/common.js +2 -2
  5. package/dist/cjs/components/divider/divider.js +1 -1
  6. package/dist/cjs/components/drawer/drawer.js +1 -1
  7. package/dist/cjs/components/hint/hint.js +1 -1
  8. package/dist/cjs/components/input/input.js +10 -10
  9. package/dist/cjs/components/manager/manager.js +1 -1
  10. package/dist/cjs/components/modal/modal.js +1 -1
  11. package/dist/cjs/components/popover/popover.js +1 -1
  12. package/dist/cjs/components/select/select.js +2 -2
  13. package/dist/cjs/components/snackbar/snackbar.js +1 -1
  14. package/dist/cjs/components/table/table.js +2 -2
  15. package/dist/cjs/components/tag/tag.js +3 -3
  16. package/dist/cjs/components/toggle/toggle.js +2 -2
  17. package/dist/cjs/components/tooltip/tooltip.js +2 -2
  18. package/dist/cjs/index.js +3 -0
  19. package/dist/cjs/provider/DarkThemeContext.js +22 -0
  20. package/dist/cjs/tokens/definitions.js +17 -3
  21. package/dist/cjs/utils/index.js +0 -7
  22. package/dist/default.css +88 -5
  23. package/dist/esm/components/badge/badge.js +1 -1
  24. package/dist/esm/components/button/button.js +4 -4
  25. package/dist/esm/components/card/card.js +1 -1
  26. package/dist/esm/components/common/common.js +2 -2
  27. package/dist/esm/components/divider/divider.js +1 -1
  28. package/dist/esm/components/drawer/drawer.js +1 -1
  29. package/dist/esm/components/hint/hint.js +1 -1
  30. package/dist/esm/components/input/input.js +10 -10
  31. package/dist/esm/components/manager/manager.js +1 -1
  32. package/dist/esm/components/modal/modal.js +1 -1
  33. package/dist/esm/components/popover/popover.js +1 -1
  34. package/dist/esm/components/select/select.js +2 -2
  35. package/dist/esm/components/snackbar/snackbar.js +1 -1
  36. package/dist/esm/components/table/table.js +2 -2
  37. package/dist/esm/components/tag/tag.js +3 -3
  38. package/dist/esm/components/toggle/toggle.js +2 -2
  39. package/dist/esm/components/tooltip/tooltip.js +2 -2
  40. package/dist/esm/index.js +1 -0
  41. package/dist/esm/provider/DarkThemeContext.js +19 -0
  42. package/dist/esm/tokens/definitions.js +17 -3
  43. package/dist/esm/utils/index.js +0 -7
  44. package/dist/types/components/button/button.d.ts +2 -2
  45. package/dist/types/components/card/card.d.ts +1 -1
  46. package/dist/types/components/divider/divider.d.ts +1 -1
  47. package/dist/types/components/drawer/drawer.d.ts +2 -2
  48. package/dist/types/components/input/input.d.ts +4 -4
  49. package/dist/types/components/manager/manager.d.ts +2 -2
  50. package/dist/types/components/modal/modal.d.ts +2 -2
  51. package/dist/types/components/popover/popover.d.ts +1 -1
  52. package/dist/types/components/table/table.d.ts +2 -2
  53. package/dist/types/components/toggle/toggle.d.ts +2 -2
  54. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  55. package/dist/types/index.d.ts +1 -0
  56. package/dist/types/provider/DarkThemeContext.d.ts +12 -0
  57. package/dist/types/provider/index.d.ts +1 -0
  58. package/dist/types/tokens/definitions.d.ts +14 -0
  59. package/package.json +2 -3
@@ -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",
@@ -3,11 +3,11 @@
3
3
  var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const buttonStyles = tailwindVariants.tv({
6
- base: "text-base h-fit font-bold disabled:text-light enabled:active:scale-95 transform transition hover:text-light text-light cursor-pointer items-center flex justify-center",
6
+ base: "text-base h-fit font-bold disabled:text-white enabled:active:scale-95 transform transition hover:text-white text-white cursor-pointer items-center flex justify-center",
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;
@@ -6,7 +6,7 @@ const overlay = tailwindVariants.tv({
6
6
  base: "fixed",
7
7
  variants: {
8
8
  show: {
9
- true: "z-backdrop bg-black/50 h-full w-full left-0 top-0 transition cursor-pointer",
9
+ true: "z-backdrop bg-surface-inverse/50 h-full w-full left-0 top-0 transition cursor-pointer",
10
10
  false: "invisible"
11
11
  }
12
12
  }
@@ -15,7 +15,7 @@ const pressableSurface = tailwindVariants.tv({
15
15
  base: "rounded-mili flex flex-1 justify-center py-mili font-bold hover:cursor-pointer",
16
16
  variants: {
17
17
  selected: {
18
- true: "border text-black border-secondary-light",
18
+ true: "border text-default border-secondary-light",
19
19
  false: "text-secondary-medium hover:bg-secondary-xlight hover:border"
20
20
  }
21
21
  }
@@ -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 has-[:disabled]:border-secondary-light has-[:disabled]:text-secondary-light",
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 has-[:disabled]:border-content-minimal has-[:disabled]:text-content-minimal",
8
8
  variants: {
9
9
  intent: {
10
10
  default: [
11
- "input-secondary",
12
- "border-secondary-light",
13
- "focus-within:border-secondary-dark",
14
- "focus-within:outline-secondary-dark"
11
+ "input-content",
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 m-auto max-w-fit z-modal",
6
+ base: "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 m-auto max-w-fit z-modal",
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 popoverItem = tailwindVariants.tv({
12
12
  base: "p-deca flex flex-row space-x-mili items-center hover:bg-primary-light hover:cursor-pointer"
@@ -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;
@@ -15,13 +15,13 @@ const tagStyles = myTV({
15
15
  base: "rounded-micro px-micro py-nano w-fit font-bold text-label items-center flex gap-1",
16
16
  variants: {
17
17
  intent: {
18
- primary: "bg-primary-medium text-light",
19
- secondary: "bg-secondary-medium text-white",
18
+ primary: "bg-primary-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
@@ -21,6 +21,7 @@ var tooltip = require('./components/tooltip/tooltip.js');
21
21
  var manager = require('./components/manager/manager.js');
22
22
  var definitions = require('./tokens/definitions.js');
23
23
  var index = require('./utils/index.js');
24
+ var DarkThemeContext = require('./provider/DarkThemeContext.js');
24
25
 
25
26
 
26
27
 
@@ -74,3 +75,5 @@ exports.spacing = definitions.spacing;
74
75
  exports.textColor = definitions.textColor;
75
76
  exports.zIndex = definitions.zIndex;
76
77
  exports.updateThemeColors = index.updateThemeColors;
78
+ exports.DarkThemeProvider = DarkThemeContext.DarkThemeProvider;
79
+ exports.useDarkTheme = DarkThemeContext.useDarkTheme;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+
6
+ const DarkThemeContext = react.createContext(null);
7
+ const DarkThemeProvider = ({ children }) => {
8
+ const [theme, setTheme] = react.useState("light");
9
+ react.useEffect(() => {
10
+ document.documentElement.setAttribute("data-theme", theme);
11
+ }, [theme]);
12
+ const toggleTheme = () => setTheme((t) => t === "light" ? "dark" : "light");
13
+ return /* @__PURE__ */ jsxRuntime.jsx(DarkThemeContext.Provider, { value: { theme, setTheme, toggleTheme }, children });
14
+ };
15
+ const useDarkTheme = () => {
16
+ const ctx = react.useContext(DarkThemeContext);
17
+ if (!ctx) throw new Error("useTheme must be used inside ThemeProvider");
18
+ return ctx;
19
+ };
20
+
21
+ exports.DarkThemeProvider = DarkThemeProvider;
22
+ exports.useDarkTheme = useDarkTheme;
@@ -36,6 +36,18 @@ const colors = {
36
36
  dark: "#cc9f00",
37
37
  xdark: "#665000"
38
38
  },
39
+ surface: {
40
+ base: "var(--color-surface-base, #f8f7f7)",
41
+ raised: "var(--color-surface-raised, #fbfbfb)",
42
+ overlay: "var(--color-surface-overlay, #ffffff)"
43
+ },
44
+ content: {
45
+ high: "var(--color-content-high, #353231)",
46
+ medium: "var(--color-content-medium, #5d5955)",
47
+ low: "var(--color-content-low, #85807a)",
48
+ minimal: "var(--color-content-minimal, #c2bfbc)",
49
+ inverse: "var(--color-content-inverse, #ffffff)"
50
+ },
39
51
  error: {
40
52
  xlight: "#fdf3f2",
41
53
  light: "#ee9891",
@@ -153,9 +165,11 @@ const fontFamily = {
153
165
  mono: "Consolas, monaco, monospace"
154
166
  };
155
167
  const textColor = {
156
- light: "var(--color-text-light, #fff)",
157
- medium: "var(--color-text-medium, #85807a)",
158
- dark: "var(--color-text-dark, #353231)",
168
+ default: "var(--color-default, #000)",
169
+ inverse: "var(--color-inverse, #fff)",
170
+ light: "#fff",
171
+ medium: "#85807a",
172
+ dark: "#353231",
159
173
  orange: "#f89907"
160
174
  };
161
175
  const zIndex = {
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var polished = require('polished');
4
-
5
3
  const updateThemeColors = (theme) => {
6
4
  const root = document.documentElement;
7
5
  Object.entries(theme).forEach(([colorName, colorShades]) => {
@@ -9,11 +7,6 @@ const updateThemeColors = (theme) => {
9
7
  Object.entries(colorShades).forEach(([shade, hexValue]) => {
10
8
  if (!hexValue) return;
11
9
  root.style.setProperty(`--color-${colorName}-${shade}`, hexValue);
12
- if (colorName === "primary" && shade === "medium") {
13
- if (polished.getContrast(hexValue, "#fff") < 4.5) {
14
- root.style.setProperty("--color-text-light", polished.readableColor(hexValue));
15
- }
16
- }
17
10
  });
18
11
  });
19
12
  };
package/dist/default.css CHANGED
@@ -1,5 +1,73 @@
1
1
  @import "tailwindcss";
2
2
 
3
+ :root {
4
+ /* Body */
5
+ --color-body: #f8f7f7;
6
+
7
+ /* Text */
8
+ --color-default: #000;
9
+ --color-inverse: #fff;
10
+
11
+ /* Surface */
12
+ --color-surface-base: #f8f7f7;
13
+ --color-surface-raised: #fbfbfb;
14
+ --color-surface-overlay: #ffffff;
15
+ --color-surface-inverse: #000;
16
+
17
+ /* Content */
18
+ --color-content-high: #353231;
19
+ --color-content-medium: #5d5955;
20
+ --color-content-low: #85807a;
21
+ --color-content-minimal: #c2bfbc;
22
+ --color-content-inverse: #ffffff;
23
+ }
24
+
25
+ @media(prefers-color-scheme: dark) {
26
+ :root:not([data-theme]) {
27
+ /* Body */
28
+ --color-body: #1e1e1e;
29
+
30
+ /* Text */
31
+ --color-default: #fff;
32
+ --color-inverse: #000;
33
+
34
+ /* Surface */
35
+ --color-surface-base: #1e1e1e;
36
+ --color-surface-raised: #252526;
37
+ --color-surface-overlay: #2d2d30;
38
+ --color-surface-inverse: #fff;
39
+
40
+ /* Content */
41
+ --color-content-high: #f8f7f7;
42
+ --color-content-medium: #c2bfbc;
43
+ --color-content-low: #85807a;
44
+ --color-content-minimal: #5d5955;
45
+ --color-content-inverse: #353231;
46
+ }
47
+ }
48
+
49
+ :root[data-theme='dark'] {
50
+ /* Body */
51
+ --color-body: #1e1e1e;
52
+
53
+ /* Text */
54
+ --color-default: #fff;
55
+ --color-inverse: #000;
56
+
57
+ /* Surface */
58
+ --color-surface-base: #1e1e1e;
59
+ --color-surface-raised: #252526;
60
+ --color-surface-overlay: #2d2d30;
61
+ --color-surface-inverse: #fff;
62
+
63
+ /* Content */
64
+ --color-content-high: #f8f7f7;
65
+ --color-content-medium: #c2bfbc;
66
+ --color-content-low: #85807a;
67
+ --color-content-minimal: #5d5955;
68
+ --color-content-inverse: #353231;
69
+ }
70
+
3
71
  @theme {
4
72
  /* Colors - primary */
5
73
  --color-primary-xlight: #fef9f0;
@@ -41,8 +109,21 @@
41
109
  --color-error-dark: #9b2318;
42
110
  --color-error-xdark: #58240e;
43
111
 
112
+ /* Colors - content */
113
+ --color-content-high: var(--color-content-high);
114
+ --color-content-medium: var(--color-content-medium);
115
+ --color-content-low: var(--color-content-low);
116
+ --color-content-minimal: var(--color-content-minimal);
117
+ --color-content-inverse: var(--color-content-inverse);
118
+
119
+ /* Colors - surface */
120
+ --color-surface-base: var(--color-surface-base);
121
+ --color-surface-raised: var(--color-surface-raised);
122
+ --color-surface-overlay: var(--color-surface-overlay);
123
+ --color-surface-inverse: var(--color-surface-inverse);
124
+
44
125
  /* Misc */
45
- --color-body: #f8f7f7;
126
+ --color-body: var(--color-body);
46
127
 
47
128
  /* Spacing */
48
129
  --spacing-nano: 0.125rem;
@@ -128,10 +209,12 @@
128
209
  --color-border-success-light: #99E6C9;
129
210
 
130
211
  /* Text colors */
131
- --color-text-light: #fff;
132
- --color-text-medium: #85807a;
133
- --color-text-dark: #353231;
134
- --color-text-orange: #f89907;
212
+ --color-default: var(--color-default);
213
+ --color-inverse: var(--color-inverse);
214
+ --color-light: #fff;
215
+ --color-medium: #85807a;
216
+ --color-dark: #353231;
217
+ --color-orange: #f89907;
135
218
 
136
219
  /* Z-index */
137
220
  --z-index-default: 0;
@@ -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",
@@ -1,11 +1,11 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
 
3
3
  const buttonStyles = tv({
4
- base: "text-base h-fit font-bold disabled:text-light enabled:active:scale-95 transform transition hover:text-light text-light cursor-pointer items-center flex justify-center",
4
+ base: "text-base h-fit font-bold disabled:text-white enabled:active:scale-95 transform transition hover:text-white text-white cursor-pointer items-center flex justify-center",
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 };
@@ -4,7 +4,7 @@ const overlay = tv({
4
4
  base: "fixed",
5
5
  variants: {
6
6
  show: {
7
- true: "z-backdrop bg-black/50 h-full w-full left-0 top-0 transition cursor-pointer",
7
+ true: "z-backdrop bg-surface-inverse/50 h-full w-full left-0 top-0 transition cursor-pointer",
8
8
  false: "invisible"
9
9
  }
10
10
  }
@@ -13,7 +13,7 @@ const pressableSurface = tv({
13
13
  base: "rounded-mili flex flex-1 justify-center py-mili font-bold hover:cursor-pointer",
14
14
  variants: {
15
15
  selected: {
16
- true: "border text-black border-secondary-light",
16
+ true: "border text-default border-secondary-light",
17
17
  false: "text-secondary-medium hover:bg-secondary-xlight hover:border"
18
18
  }
19
19
  }
@@ -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 has-[:disabled]:border-secondary-light has-[:disabled]:text-secondary-light",
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 has-[:disabled]:border-content-minimal has-[:disabled]:text-content-minimal",
6
6
  variants: {
7
7
  intent: {
8
8
  default: [
9
- "input-secondary",
10
- "border-secondary-light",
11
- "focus-within:border-secondary-dark",
12
- "focus-within:outline-secondary-dark"
9
+ "input-content",
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 m-auto max-w-fit z-modal",
4
+ base: "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 m-auto max-w-fit z-modal",
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 popoverItem = tv({
10
10
  base: "p-deca flex flex-row space-x-mili items-center hover:bg-primary-light hover:cursor-pointer"
@@ -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 };
@@ -13,13 +13,13 @@ const tagStyles = myTV({
13
13
  base: "rounded-micro px-micro py-nano w-fit font-bold text-label items-center flex gap-1",
14
14
  variants: {
15
15
  intent: {
16
- primary: "bg-primary-medium text-light",
17
- secondary: "bg-secondary-medium text-white",
16
+ primary: "bg-primary-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
@@ -19,3 +19,4 @@ export { tooltip, tooltipContainer } from './components/tooltip/tooltip.js';
19
19
  export { manager } from './components/manager/manager.js';
20
20
  export { borderColor, borderRadius, borderWidth, boxShadow, colors, fontFamily, fontSize, spacing, textColor, zIndex } from './tokens/definitions.js';
21
21
  export { updateThemeColors } from './utils/index.js';
22
+ export { DarkThemeProvider, useDarkTheme } from './provider/DarkThemeContext.js';
@@ -0,0 +1,19 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useState, useEffect, useContext } from 'react';
3
+
4
+ const DarkThemeContext = createContext(null);
5
+ const DarkThemeProvider = ({ children }) => {
6
+ const [theme, setTheme] = useState("light");
7
+ useEffect(() => {
8
+ document.documentElement.setAttribute("data-theme", theme);
9
+ }, [theme]);
10
+ const toggleTheme = () => setTheme((t) => t === "light" ? "dark" : "light");
11
+ return /* @__PURE__ */ jsx(DarkThemeContext.Provider, { value: { theme, setTheme, toggleTheme }, children });
12
+ };
13
+ const useDarkTheme = () => {
14
+ const ctx = useContext(DarkThemeContext);
15
+ if (!ctx) throw new Error("useTheme must be used inside ThemeProvider");
16
+ return ctx;
17
+ };
18
+
19
+ export { DarkThemeProvider, useDarkTheme };
@@ -34,6 +34,18 @@ const colors = {
34
34
  dark: "#cc9f00",
35
35
  xdark: "#665000"
36
36
  },
37
+ surface: {
38
+ base: "var(--color-surface-base, #f8f7f7)",
39
+ raised: "var(--color-surface-raised, #fbfbfb)",
40
+ overlay: "var(--color-surface-overlay, #ffffff)"
41
+ },
42
+ content: {
43
+ high: "var(--color-content-high, #353231)",
44
+ medium: "var(--color-content-medium, #5d5955)",
45
+ low: "var(--color-content-low, #85807a)",
46
+ minimal: "var(--color-content-minimal, #c2bfbc)",
47
+ inverse: "var(--color-content-inverse, #ffffff)"
48
+ },
37
49
  error: {
38
50
  xlight: "#fdf3f2",
39
51
  light: "#ee9891",
@@ -151,9 +163,11 @@ const fontFamily = {
151
163
  mono: "Consolas, monaco, monospace"
152
164
  };
153
165
  const textColor = {
154
- light: "var(--color-text-light, #fff)",
155
- medium: "var(--color-text-medium, #85807a)",
156
- dark: "var(--color-text-dark, #353231)",
166
+ default: "var(--color-default, #000)",
167
+ inverse: "var(--color-inverse, #fff)",
168
+ light: "#fff",
169
+ medium: "#85807a",
170
+ dark: "#353231",
157
171
  orange: "#f89907"
158
172
  };
159
173
  const zIndex = {
@@ -1,5 +1,3 @@
1
- import { getContrast, readableColor } from 'polished';
2
-
3
1
  const updateThemeColors = (theme) => {
4
2
  const root = document.documentElement;
5
3
  Object.entries(theme).forEach(([colorName, colorShades]) => {
@@ -7,11 +5,6 @@ const updateThemeColors = (theme) => {
7
5
  Object.entries(colorShades).forEach(([shade, hexValue]) => {
8
6
  if (!hexValue) return;
9
7
  root.style.setProperty(`--color-${colorName}-${shade}`, hexValue);
10
- if (colorName === "primary" && shade === "medium") {
11
- if (getContrast(hexValue, "#fff") < 4.5) {
12
- root.style.setProperty("--color-text-light", readableColor(hexValue));
13
- }
14
- }
15
8
  });
16
9
  });
17
10
  };
@@ -20,7 +20,7 @@ export declare const buttonStyles: import("tailwind-variants").TVReturnType<{
20
20
  circle: string;
21
21
  base: string;
22
22
  };
23
- }, undefined, "text-base h-fit font-bold disabled:text-light enabled:active:scale-95 transform transition hover:text-light text-light cursor-pointer items-center flex justify-center", {
23
+ }, undefined, "text-base h-fit font-bold disabled:text-white enabled:active:scale-95 transform transition hover:text-white text-white cursor-pointer items-center flex justify-center", {
24
24
  intent: {
25
25
  primary: string;
26
26
  secondary: string;
@@ -62,7 +62,7 @@ export declare const buttonStyles: import("tailwind-variants").TVReturnType<{
62
62
  circle: string;
63
63
  base: string;
64
64
  };
65
- }, undefined, "text-base h-fit font-bold disabled:text-light enabled:active:scale-95 transform transition hover:text-light text-light cursor-pointer items-center flex justify-center", unknown, unknown, undefined>>;
65
+ }, undefined, "text-base h-fit font-bold disabled:text-white enabled:active:scale-95 transform transition hover:text-white text-white cursor-pointer items-center flex justify-center", unknown, unknown, undefined>>;
66
66
  export type ButtonVariants = VariantProps<typeof buttonStyles> & {
67
67
  className?: string;
68
68
  };
@@ -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 has-[:disabled]:border-secondary-light has-[:disabled]:text-secondary-light", {
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 has-[:disabled]:border-content-minimal has-[:disabled]:text-content-minimal", {
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 has-[:disabled]:border-secondary-light has-[:disabled]:text-secondary-light", 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 has-[:disabled]:border-content-minimal has-[:disabled]:text-content-minimal", 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 m-auto max-w-fit z-modal", {
6
+ }, undefined, "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 m-auto max-w-fit z-modal", {
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 m-auto max-w-fit z-modal", unknown, unknown, undefined>>;
16
+ }, undefined, "fixed rounded-micro p-kilo bg-surface-overlay shadow-default flex transition inset-0 m-auto max-w-fit z-modal", unknown, unknown, undefined>>;
@@ -1,6 +1,6 @@
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 declare const popoverItem: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "p-deca flex flex-row space-x-mili items-center hover:bg-primary-light hover:cursor-pointer", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "p-deca flex flex-row space-x-mili items-center hover:bg-primary-light hover:cursor-pointer", unknown, unknown, undefined>>;
5
5
  export type popoverVariants = VariantProps<typeof popoverStyles> & ClassProp;
6
6
  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 {};
@@ -1,3 +1,4 @@
1
1
  export * from './components';
2
2
  export * from './tokens/definitions';
3
3
  export * from './utils';
4
+ export * from './provider';
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ type Theme = 'light' | 'dark';
3
+ interface DarkThemeContextValue {
4
+ theme: Theme;
5
+ setTheme: (theme: Theme) => void;
6
+ toggleTheme: () => void;
7
+ }
8
+ export declare const DarkThemeProvider: ({ children }: {
9
+ children: ReactNode;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const useDarkTheme: () => DarkThemeContextValue;
12
+ export {};
@@ -0,0 +1 @@
1
+ export * from './DarkThemeContext';
@@ -34,6 +34,18 @@ declare const colors: {
34
34
  dark: string;
35
35
  xdark: string;
36
36
  };
37
+ surface: {
38
+ base: string;
39
+ raised: string;
40
+ overlay: string;
41
+ };
42
+ content: {
43
+ high: string;
44
+ medium: string;
45
+ low: string;
46
+ minimal: string;
47
+ inverse: string;
48
+ };
37
49
  error: {
38
50
  xlight: string;
39
51
  light: string;
@@ -97,6 +109,8 @@ declare const fontFamily: {
97
109
  mono: string;
98
110
  };
99
111
  declare const textColor: {
112
+ default: string;
113
+ inverse: string;
100
114
  light: string;
101
115
  medium: string;
102
116
  dark: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-core",
3
- "version": "2.0.2-beta.2",
3
+ "version": "2.1.0-beta.0",
4
4
  "license": "MIT",
5
5
  "description": "Core library for tailwindcss based design",
6
6
  "main": "dist/esm/index.js",
@@ -17,7 +17,6 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "clsx": "2.1.1",
20
- "polished": "^4.3.1",
21
20
  "tailwind-variants": "3.1.1"
22
21
  },
23
22
  "devDependencies": {
@@ -35,5 +34,5 @@
35
34
  "peerDependencies": {
36
35
  "tailwindcss": "^4.1.16"
37
36
  },
38
- "gitHead": "206d1de1e16b2cc748feff799ab53fc3306248f3"
37
+ "gitHead": "a28d6b7a49fa7466507b9a5e3d5c8114e9224e83"
39
38
  }