@eqtylab/equality 0.0.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 (94) hide show
  1. package/LICENSE +190 -0
  2. package/dist/alert-dialog.module.module.css.module.css +275 -0
  3. package/dist/alert.module.module.css.module.css +112 -0
  4. package/dist/avatar.module.module.css.module.css +119 -0
  5. package/dist/badge.module.module.css.module.css +141 -0
  6. package/dist/bg-gradient.module.module.css.module.css +7 -0
  7. package/dist/button.module.module.css.module.css +253 -0
  8. package/dist/card-content-header.module.module.css.module.css +27 -0
  9. package/dist/card.module.module.css.module.css +246 -0
  10. package/dist/checkbox.module.module.css.module.css +124 -0
  11. package/dist/code-block.module.module.css.module.css +100 -0
  12. package/dist/command.module.module.css.module.css +210 -0
  13. package/dist/control-status-badge.module.module.css.module.css +49 -0
  14. package/dist/date-range-picker.module.module.css.module.css +147 -0
  15. package/dist/dialog.module.module.css.module.css +300 -0
  16. package/dist/display-field.module.module.css.module.css +250 -0
  17. package/dist/drawer.module.module.css.module.css +202 -0
  18. package/dist/dropdown-menu.module.module.css.module.css +271 -0
  19. package/dist/empty-table-state.module.module.css.module.css +34 -0
  20. package/dist/filter-dropdown.module.module.css.module.css +18 -0
  21. package/dist/form.module.module.css.module.css +35 -0
  22. package/dist/generated/color-vars.css +354 -0
  23. package/dist/generated/dark-tokens.css +105 -0
  24. package/dist/generated/global-dark-tokens.css +105 -0
  25. package/dist/generated/global-light-tokens.css +254 -0
  26. package/dist/generated/light-tokens.css +254 -0
  27. package/dist/generated/tailwind-tokens.css +252 -0
  28. package/dist/global-theme-config.css +15 -0
  29. package/dist/heading.module.module.css.module.css +41 -0
  30. package/dist/icon-button.module.module.css.module.css +196 -0
  31. package/dist/icon.module.module.css.module.css +155 -0
  32. package/dist/index.cjs +3419 -0
  33. package/dist/index.cjs.map +1 -0
  34. package/dist/index.d.cts +819 -0
  35. package/dist/index.d.ts +819 -0
  36. package/dist/index.js +3134 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/info-card.module.module.css.module.css +25 -0
  39. package/dist/input.module.module.css.module.css +231 -0
  40. package/dist/label.module.module.css.module.css +23 -0
  41. package/dist/list-or-grid-view-toggle.module.module.css.module.css +52 -0
  42. package/dist/loading-overlay.module.module.css.module.css +151 -0
  43. package/dist/metric-card.module.module.css.module.css +171 -0
  44. package/dist/motion-collapsible.module.module.css.module.css +4 -0
  45. package/dist/page-not-found.module.module.css.module.css +71 -0
  46. package/dist/pagination.module.module.css.module.css +21 -0
  47. package/dist/panel-label.module.module.css.module.css +17 -0
  48. package/dist/popover.module.module.css.module.css +136 -0
  49. package/dist/progress.module.module.css.module.css +32 -0
  50. package/dist/radial-graph.module.module.css.module.css +223 -0
  51. package/dist/radio-dropdown.module.module.css.module.css +16 -0
  52. package/dist/radio-group.module.module.css.module.css +118 -0
  53. package/dist/resource-badge.module.module.css.module.css +77 -0
  54. package/dist/scripts.cjs +116 -0
  55. package/dist/scripts.cjs.map +1 -0
  56. package/dist/scripts.d.cts +5 -0
  57. package/dist/scripts.d.ts +5 -0
  58. package/dist/scripts.js +114 -0
  59. package/dist/scripts.js.map +1 -0
  60. package/dist/scroll-area.module.module.css.module.css +46 -0
  61. package/dist/search-bar.module.module.css.module.css +9 -0
  62. package/dist/section-heading.module.module.css.module.css +42 -0
  63. package/dist/select.module.module.css.module.css +362 -0
  64. package/dist/separator.module.module.css.module.css +13 -0
  65. package/dist/sheet.module.module.css.module.css +377 -0
  66. package/dist/skeleton.module.module.css.module.css +11 -0
  67. package/dist/sort-button.module.module.css.module.css +42 -0
  68. package/dist/sort-selector.module.module.css.module.css +11 -0
  69. package/dist/spinner.module.module.css.module.css +82 -0
  70. package/dist/switch.module.module.css.module.css +226 -0
  71. package/dist/table-components.module.module.css.module.css +116 -0
  72. package/dist/table.module.module.css.module.css +145 -0
  73. package/dist/tabs-components.module.module.css.module.css +136 -0
  74. package/dist/tabs.module.module.css.module.css +139 -0
  75. package/dist/textarea.module.module.css.module.css +115 -0
  76. package/dist/theme/lib/utils.cjs +125 -0
  77. package/dist/theme/lib/utils.cjs.map +1 -0
  78. package/dist/theme/lib/utils.d.cts +26 -0
  79. package/dist/theme/lib/utils.d.ts +26 -0
  80. package/dist/theme/lib/utils.js +110 -0
  81. package/dist/theme/lib/utils.js.map +1 -0
  82. package/dist/theme-base.css +51 -0
  83. package/dist/theme-components.css +27 -0
  84. package/dist/theme-preflight-global.css +260 -0
  85. package/dist/theme-preflight-scoped.css +261 -0
  86. package/dist/theme-utilities.css +54 -0
  87. package/dist/theme.module.css +15 -0
  88. package/dist/theme.module.module.css.module.css +978 -0
  89. package/dist/toast-components.module.module.css.module.css +393 -0
  90. package/dist/toast.module.module.css.module.css +11 -0
  91. package/dist/tokens.css +3 -0
  92. package/dist/tooltip.module.module.css.module.css +139 -0
  93. package/dist/truncated-description.module.module.css.module.css +15 -0
  94. package/package.json +101 -0
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ // src/theme/lib/utils.ts
4
+ var STORAGE_KEY = "equality-theme";
5
+ var UPDATE_EVENT = "equality-theme-change";
6
+ var FALLBACK_THEME = "light";
7
+ var getFallbackTheme = (options = {}) => {
8
+ const { canFallbackToBrowserSettings = false } = options;
9
+ if (typeof window === "undefined" || !canFallbackToBrowserSettings) {
10
+ return FALLBACK_THEME;
11
+ }
12
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
13
+ };
14
+ var getDefaultTheme = () => {
15
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
16
+ if (themeProviderRootElement) {
17
+ return themeProviderRootElement.getAttribute("data-equality-theme") || void 0;
18
+ } else {
19
+ return void 0;
20
+ }
21
+ };
22
+ var getThemeFromLocalStorage = () => {
23
+ const safeReadStorage = (key) => {
24
+ try {
25
+ return window.localStorage.getItem(key);
26
+ } catch {
27
+ return null;
28
+ }
29
+ };
30
+ const themeLocalStorageValue = safeReadStorage(STORAGE_KEY);
31
+ return themeLocalStorageValue;
32
+ };
33
+ var getThemeFromWindow = () => {
34
+ return window.__equalityTheme;
35
+ };
36
+ var applyThemeToDom = (theme) => {
37
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
38
+ if (themeProviderRootElement) {
39
+ themeProviderRootElement.setAttribute("data-equality-theme", theme);
40
+ }
41
+ };
42
+ var setThemeInLocalStorage = (theme) => {
43
+ try {
44
+ window.localStorage.setItem(STORAGE_KEY, theme);
45
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
46
+ } catch {
47
+ console.error("Failed to set theme in localStorage");
48
+ }
49
+ };
50
+ var setThemeOnWindow = (theme) => {
51
+ window.__equalityTheme = theme;
52
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
53
+ };
54
+ var setTheme = (theme) => {
55
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
56
+ if (isUsingLocalStorage) {
57
+ setThemeInLocalStorage(theme);
58
+ } else {
59
+ setThemeOnWindow(theme);
60
+ }
61
+ applyThemeToDom(theme);
62
+ };
63
+ var getCurrentThemeState = (options = {}) => {
64
+ const { canFallbackToBrowserSettings = false } = options;
65
+ if (typeof window === "undefined") {
66
+ return void 0;
67
+ }
68
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
69
+ const storedTheme = isUsingLocalStorage ? getThemeFromLocalStorage() : getThemeFromWindow();
70
+ const theme = storedTheme || getDefaultTheme() || getFallbackTheme({ canFallbackToBrowserSettings });
71
+ if (!storedTheme) {
72
+ setTheme(theme);
73
+ }
74
+ return theme;
75
+ };
76
+ var initializeTheme = (options = {}) => {
77
+ const { shouldStoreTheme = false } = options;
78
+ window.__equalityIsUsingLocalStorage = shouldStoreTheme;
79
+ const theme = getCurrentThemeState({ canFallbackToBrowserSettings: true });
80
+ if (theme) applyThemeToDom(theme);
81
+ };
82
+
83
+ // src/theme/lib/inline-initialize-script.ts
84
+ var helpers = {
85
+ applyThemeToDom,
86
+ getCurrentThemeState,
87
+ getDefaultTheme,
88
+ getFallbackTheme,
89
+ getThemeFromLocalStorage,
90
+ getThemeFromWindow,
91
+ initializeTheme,
92
+ setTheme,
93
+ setThemeInLocalStorage,
94
+ setThemeOnWindow
95
+ };
96
+ var serializeHelpers = () => Object.entries(helpers).map(([name, fn]) => {
97
+ return `const ${name} = ${fn.toString()};`;
98
+ }).join("\n");
99
+ var buildInlineThemeInitializer = (options = {}) => {
100
+ const { shouldStoreTheme = false } = options;
101
+ return `
102
+ (() => {
103
+ const STORAGE_KEY = ${JSON.stringify(STORAGE_KEY)};
104
+ const UPDATE_EVENT = ${JSON.stringify(UPDATE_EVENT)};
105
+ ${serializeHelpers()}
106
+ initializeTheme({ shouldStoreTheme: ${JSON.stringify(shouldStoreTheme)} });
107
+ })();
108
+ `;
109
+ };
110
+ var inlineInitializeTheme = (options = {}) => {
111
+ return buildInlineThemeInitializer(options);
112
+ };
113
+
114
+ exports.initializeTheme = inlineInitializeTheme;
115
+ //# sourceMappingURL=scripts.cjs.map
116
+ //# sourceMappingURL=scripts.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/lib/utils.ts","../src/theme/lib/inline-initialize-script.ts"],"names":[],"mappings":"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","file":"scripts.cjs","sourcesContent":["const STORAGE_KEY = 'equality-theme';\nconst UPDATE_EVENT = 'equality-theme-change';\nconst FALLBACK_THEME = 'light';\ntype Theme = 'light' | 'dark';\n\ninterface InitializeThemeOptions {\n shouldStoreTheme?: boolean;\n}\n\ninterface GetCurrentThemeStateOptions {\n canFallbackToBrowserSettings?: boolean;\n}\n\ninterface GetFallbackThemeOptions {\n canFallbackToBrowserSettings?: boolean;\n}\n\nconst getFallbackTheme = (options: GetFallbackThemeOptions = {}): Theme => {\n const { canFallbackToBrowserSettings = false } = options;\n\n if (typeof window === 'undefined' || !canFallbackToBrowserSettings) {\n return FALLBACK_THEME;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n};\n\nconst getDefaultTheme = (): Theme | undefined => {\n const themeProviderRootElement =\n document.querySelector('[data-equality-theme]') || document.documentElement;\n if (themeProviderRootElement) {\n return (themeProviderRootElement.getAttribute('data-equality-theme') || undefined) as\n | Theme\n | undefined;\n } else {\n return undefined;\n }\n};\n\nconst getThemeFromLocalStorage = (): Theme | null => {\n const safeReadStorage = (key: string) => {\n try {\n return window.localStorage.getItem(key) as Theme | null;\n } catch {\n return null;\n }\n };\n\n const themeLocalStorageValue = safeReadStorage(STORAGE_KEY);\n return themeLocalStorageValue;\n};\n\nconst getThemeFromWindow = (): Theme | undefined => {\n return window.__equalityTheme as Theme | undefined;\n};\n\nconst applyThemeToDom = (theme: Theme) => {\n const themeProviderRootElement =\n document.querySelector('[data-equality-theme]') || document.documentElement;\n if (themeProviderRootElement) {\n themeProviderRootElement.setAttribute('data-equality-theme', theme); // This sets the theme that controls the styling color variables used\n }\n};\n\nconst setThemeInLocalStorage = (theme: Theme) => {\n try {\n window.localStorage.setItem(STORAGE_KEY, theme);\n window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));\n } catch {\n console.error('Failed to set theme in localStorage');\n }\n};\n\nconst setThemeOnWindow = (theme: Theme) => {\n window.__equalityTheme = theme;\n window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));\n};\n\nconst setTheme = (theme: Theme) => {\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n if (isUsingLocalStorage) {\n setThemeInLocalStorage(theme);\n } else {\n setThemeOnWindow(theme);\n }\n applyThemeToDom(theme);\n};\n\nconst getCurrentThemeState = (options: GetCurrentThemeStateOptions = {}) => {\n const { canFallbackToBrowserSettings = false } = options;\n\n // First, use stored theme if available\n // Then, use default theme set on data-equality-theme attribute if available\n // Then, use fallback theme from browser settings if available\n\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n const storedTheme = isUsingLocalStorage ? getThemeFromLocalStorage() : getThemeFromWindow();\n const theme =\n storedTheme || getDefaultTheme() || getFallbackTheme({ canFallbackToBrowserSettings });\n if (!storedTheme) {\n setTheme(theme);\n }\n return theme;\n};\n\nconst initializeTheme = (options: InitializeThemeOptions = {}) => {\n // This is only needed if the initial state needs to be dynamic\n const { shouldStoreTheme = false } = options;\n\n window.__equalityIsUsingLocalStorage = shouldStoreTheme;\n const theme = getCurrentThemeState({ canFallbackToBrowserSettings: true });\n if (theme) applyThemeToDom(theme);\n};\n\nconst subscribeToThemeChange = (listener: () => void) => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n if (isUsingLocalStorage) {\n // use localStorage\n const storageListener = (event: StorageEvent) => {\n if (event.key === STORAGE_KEY) listener();\n };\n const updateListener = () => listener();\n\n window.addEventListener('storage', storageListener);\n window.addEventListener(UPDATE_EVENT, updateListener);\n return () => {\n window.removeEventListener('storage', storageListener);\n window.removeEventListener(UPDATE_EVENT, updateListener);\n };\n } else {\n // use window object\n const windowListener = () => {\n listener();\n };\n window.addEventListener(UPDATE_EVENT, windowListener);\n return () => {\n window.removeEventListener(UPDATE_EVENT, windowListener);\n };\n }\n};\n\nexport {\n Theme,\n InitializeThemeOptions,\n STORAGE_KEY,\n UPDATE_EVENT,\n FALLBACK_THEME,\n getCurrentThemeState,\n applyThemeToDom,\n initializeTheme,\n setTheme,\n subscribeToThemeChange,\n getFallbackTheme,\n getDefaultTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n setThemeInLocalStorage,\n setThemeOnWindow,\n};\n","import {\n applyThemeToDom,\n getCurrentThemeState,\n getDefaultTheme,\n getFallbackTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n initializeTheme,\n InitializeThemeOptions,\n setTheme,\n setThemeInLocalStorage,\n setThemeOnWindow,\n STORAGE_KEY,\n UPDATE_EVENT,\n} from '@/theme/lib/utils';\n\nconst helpers = {\n applyThemeToDom,\n getCurrentThemeState,\n getDefaultTheme,\n getFallbackTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n initializeTheme,\n setTheme,\n setThemeInLocalStorage,\n setThemeOnWindow,\n};\n\nconst serializeHelpers = () =>\n Object.entries(helpers)\n .map(([name, fn]) => {\n return `const ${name} = ${fn.toString()};`;\n })\n .join('\\n');\n\nconst buildInlineThemeInitializer = (options: InitializeThemeOptions = {}) => {\n const { shouldStoreTheme = false } = options;\n\n return `\n (() => {\n const STORAGE_KEY = ${JSON.stringify(STORAGE_KEY)};\n const UPDATE_EVENT = ${JSON.stringify(UPDATE_EVENT)};\n ${serializeHelpers()}\n initializeTheme({ shouldStoreTheme: ${JSON.stringify(shouldStoreTheme)} });\n })();\n `;\n};\n\nconst inlineInitializeTheme = (options: InitializeThemeOptions = {}) => {\n return buildInlineThemeInitializer(options);\n};\n\nexport { inlineInitializeTheme as initializeTheme };\n"]}
@@ -0,0 +1,5 @@
1
+ import { InitializeThemeOptions } from './theme/lib/utils.cjs';
2
+
3
+ declare const inlineInitializeTheme: (options?: InitializeThemeOptions) => string;
4
+
5
+ export { inlineInitializeTheme as initializeTheme };
@@ -0,0 +1,5 @@
1
+ import { InitializeThemeOptions } from './theme/lib/utils.js';
2
+
3
+ declare const inlineInitializeTheme: (options?: InitializeThemeOptions) => string;
4
+
5
+ export { inlineInitializeTheme as initializeTheme };
@@ -0,0 +1,114 @@
1
+ // src/theme/lib/utils.ts
2
+ var STORAGE_KEY = "equality-theme";
3
+ var UPDATE_EVENT = "equality-theme-change";
4
+ var FALLBACK_THEME = "light";
5
+ var getFallbackTheme = (options = {}) => {
6
+ const { canFallbackToBrowserSettings = false } = options;
7
+ if (typeof window === "undefined" || !canFallbackToBrowserSettings) {
8
+ return FALLBACK_THEME;
9
+ }
10
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
11
+ };
12
+ var getDefaultTheme = () => {
13
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
14
+ if (themeProviderRootElement) {
15
+ return themeProviderRootElement.getAttribute("data-equality-theme") || void 0;
16
+ } else {
17
+ return void 0;
18
+ }
19
+ };
20
+ var getThemeFromLocalStorage = () => {
21
+ const safeReadStorage = (key) => {
22
+ try {
23
+ return window.localStorage.getItem(key);
24
+ } catch {
25
+ return null;
26
+ }
27
+ };
28
+ const themeLocalStorageValue = safeReadStorage(STORAGE_KEY);
29
+ return themeLocalStorageValue;
30
+ };
31
+ var getThemeFromWindow = () => {
32
+ return window.__equalityTheme;
33
+ };
34
+ var applyThemeToDom = (theme) => {
35
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
36
+ if (themeProviderRootElement) {
37
+ themeProviderRootElement.setAttribute("data-equality-theme", theme);
38
+ }
39
+ };
40
+ var setThemeInLocalStorage = (theme) => {
41
+ try {
42
+ window.localStorage.setItem(STORAGE_KEY, theme);
43
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
44
+ } catch {
45
+ console.error("Failed to set theme in localStorage");
46
+ }
47
+ };
48
+ var setThemeOnWindow = (theme) => {
49
+ window.__equalityTheme = theme;
50
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
51
+ };
52
+ var setTheme = (theme) => {
53
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
54
+ if (isUsingLocalStorage) {
55
+ setThemeInLocalStorage(theme);
56
+ } else {
57
+ setThemeOnWindow(theme);
58
+ }
59
+ applyThemeToDom(theme);
60
+ };
61
+ var getCurrentThemeState = (options = {}) => {
62
+ const { canFallbackToBrowserSettings = false } = options;
63
+ if (typeof window === "undefined") {
64
+ return void 0;
65
+ }
66
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
67
+ const storedTheme = isUsingLocalStorage ? getThemeFromLocalStorage() : getThemeFromWindow();
68
+ const theme = storedTheme || getDefaultTheme() || getFallbackTheme({ canFallbackToBrowserSettings });
69
+ if (!storedTheme) {
70
+ setTheme(theme);
71
+ }
72
+ return theme;
73
+ };
74
+ var initializeTheme = (options = {}) => {
75
+ const { shouldStoreTheme = false } = options;
76
+ window.__equalityIsUsingLocalStorage = shouldStoreTheme;
77
+ const theme = getCurrentThemeState({ canFallbackToBrowserSettings: true });
78
+ if (theme) applyThemeToDom(theme);
79
+ };
80
+
81
+ // src/theme/lib/inline-initialize-script.ts
82
+ var helpers = {
83
+ applyThemeToDom,
84
+ getCurrentThemeState,
85
+ getDefaultTheme,
86
+ getFallbackTheme,
87
+ getThemeFromLocalStorage,
88
+ getThemeFromWindow,
89
+ initializeTheme,
90
+ setTheme,
91
+ setThemeInLocalStorage,
92
+ setThemeOnWindow
93
+ };
94
+ var serializeHelpers = () => Object.entries(helpers).map(([name, fn]) => {
95
+ return `const ${name} = ${fn.toString()};`;
96
+ }).join("\n");
97
+ var buildInlineThemeInitializer = (options = {}) => {
98
+ const { shouldStoreTheme = false } = options;
99
+ return `
100
+ (() => {
101
+ const STORAGE_KEY = ${JSON.stringify(STORAGE_KEY)};
102
+ const UPDATE_EVENT = ${JSON.stringify(UPDATE_EVENT)};
103
+ ${serializeHelpers()}
104
+ initializeTheme({ shouldStoreTheme: ${JSON.stringify(shouldStoreTheme)} });
105
+ })();
106
+ `;
107
+ };
108
+ var inlineInitializeTheme = (options = {}) => {
109
+ return buildInlineThemeInitializer(options);
110
+ };
111
+
112
+ export { inlineInitializeTheme as initializeTheme };
113
+ //# sourceMappingURL=scripts.js.map
114
+ //# sourceMappingURL=scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/lib/utils.ts","../src/theme/lib/inline-initialize-script.ts"],"names":[],"mappings":"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","file":"scripts.js","sourcesContent":["const STORAGE_KEY = 'equality-theme';\nconst UPDATE_EVENT = 'equality-theme-change';\nconst FALLBACK_THEME = 'light';\ntype Theme = 'light' | 'dark';\n\ninterface InitializeThemeOptions {\n shouldStoreTheme?: boolean;\n}\n\ninterface GetCurrentThemeStateOptions {\n canFallbackToBrowserSettings?: boolean;\n}\n\ninterface GetFallbackThemeOptions {\n canFallbackToBrowserSettings?: boolean;\n}\n\nconst getFallbackTheme = (options: GetFallbackThemeOptions = {}): Theme => {\n const { canFallbackToBrowserSettings = false } = options;\n\n if (typeof window === 'undefined' || !canFallbackToBrowserSettings) {\n return FALLBACK_THEME;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n};\n\nconst getDefaultTheme = (): Theme | undefined => {\n const themeProviderRootElement =\n document.querySelector('[data-equality-theme]') || document.documentElement;\n if (themeProviderRootElement) {\n return (themeProviderRootElement.getAttribute('data-equality-theme') || undefined) as\n | Theme\n | undefined;\n } else {\n return undefined;\n }\n};\n\nconst getThemeFromLocalStorage = (): Theme | null => {\n const safeReadStorage = (key: string) => {\n try {\n return window.localStorage.getItem(key) as Theme | null;\n } catch {\n return null;\n }\n };\n\n const themeLocalStorageValue = safeReadStorage(STORAGE_KEY);\n return themeLocalStorageValue;\n};\n\nconst getThemeFromWindow = (): Theme | undefined => {\n return window.__equalityTheme as Theme | undefined;\n};\n\nconst applyThemeToDom = (theme: Theme) => {\n const themeProviderRootElement =\n document.querySelector('[data-equality-theme]') || document.documentElement;\n if (themeProviderRootElement) {\n themeProviderRootElement.setAttribute('data-equality-theme', theme); // This sets the theme that controls the styling color variables used\n }\n};\n\nconst setThemeInLocalStorage = (theme: Theme) => {\n try {\n window.localStorage.setItem(STORAGE_KEY, theme);\n window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));\n } catch {\n console.error('Failed to set theme in localStorage');\n }\n};\n\nconst setThemeOnWindow = (theme: Theme) => {\n window.__equalityTheme = theme;\n window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));\n};\n\nconst setTheme = (theme: Theme) => {\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n if (isUsingLocalStorage) {\n setThemeInLocalStorage(theme);\n } else {\n setThemeOnWindow(theme);\n }\n applyThemeToDom(theme);\n};\n\nconst getCurrentThemeState = (options: GetCurrentThemeStateOptions = {}) => {\n const { canFallbackToBrowserSettings = false } = options;\n\n // First, use stored theme if available\n // Then, use default theme set on data-equality-theme attribute if available\n // Then, use fallback theme from browser settings if available\n\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n const storedTheme = isUsingLocalStorage ? getThemeFromLocalStorage() : getThemeFromWindow();\n const theme =\n storedTheme || getDefaultTheme() || getFallbackTheme({ canFallbackToBrowserSettings });\n if (!storedTheme) {\n setTheme(theme);\n }\n return theme;\n};\n\nconst initializeTheme = (options: InitializeThemeOptions = {}) => {\n // This is only needed if the initial state needs to be dynamic\n const { shouldStoreTheme = false } = options;\n\n window.__equalityIsUsingLocalStorage = shouldStoreTheme;\n const theme = getCurrentThemeState({ canFallbackToBrowserSettings: true });\n if (theme) applyThemeToDom(theme);\n};\n\nconst subscribeToThemeChange = (listener: () => void) => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n\n const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;\n if (isUsingLocalStorage) {\n // use localStorage\n const storageListener = (event: StorageEvent) => {\n if (event.key === STORAGE_KEY) listener();\n };\n const updateListener = () => listener();\n\n window.addEventListener('storage', storageListener);\n window.addEventListener(UPDATE_EVENT, updateListener);\n return () => {\n window.removeEventListener('storage', storageListener);\n window.removeEventListener(UPDATE_EVENT, updateListener);\n };\n } else {\n // use window object\n const windowListener = () => {\n listener();\n };\n window.addEventListener(UPDATE_EVENT, windowListener);\n return () => {\n window.removeEventListener(UPDATE_EVENT, windowListener);\n };\n }\n};\n\nexport {\n Theme,\n InitializeThemeOptions,\n STORAGE_KEY,\n UPDATE_EVENT,\n FALLBACK_THEME,\n getCurrentThemeState,\n applyThemeToDom,\n initializeTheme,\n setTheme,\n subscribeToThemeChange,\n getFallbackTheme,\n getDefaultTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n setThemeInLocalStorage,\n setThemeOnWindow,\n};\n","import {\n applyThemeToDom,\n getCurrentThemeState,\n getDefaultTheme,\n getFallbackTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n initializeTheme,\n InitializeThemeOptions,\n setTheme,\n setThemeInLocalStorage,\n setThemeOnWindow,\n STORAGE_KEY,\n UPDATE_EVENT,\n} from '@/theme/lib/utils';\n\nconst helpers = {\n applyThemeToDom,\n getCurrentThemeState,\n getDefaultTheme,\n getFallbackTheme,\n getThemeFromLocalStorage,\n getThemeFromWindow,\n initializeTheme,\n setTheme,\n setThemeInLocalStorage,\n setThemeOnWindow,\n};\n\nconst serializeHelpers = () =>\n Object.entries(helpers)\n .map(([name, fn]) => {\n return `const ${name} = ${fn.toString()};`;\n })\n .join('\\n');\n\nconst buildInlineThemeInitializer = (options: InitializeThemeOptions = {}) => {\n const { shouldStoreTheme = false } = options;\n\n return `\n (() => {\n const STORAGE_KEY = ${JSON.stringify(STORAGE_KEY)};\n const UPDATE_EVENT = ${JSON.stringify(UPDATE_EVENT)};\n ${serializeHelpers()}\n initializeTheme({ shouldStoreTheme: ${JSON.stringify(shouldStoreTheme)} });\n })();\n `;\n};\n\nconst inlineInitializeTheme = (options: InitializeThemeOptions = {}) => {\n return buildInlineThemeInitializer(options);\n};\n\nexport { inlineInitializeTheme as initializeTheme };\n"]}
@@ -0,0 +1,46 @@
1
+ /*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */
2
+ .scroll-area {
3
+ position: relative;
4
+ overflow: hidden;
5
+ }
6
+ .scroll-area-viewport {
7
+ height: 100%;
8
+ width: 100%;
9
+ border-radius: inherit;
10
+ }
11
+ .scroll-bar {
12
+ display: flex;
13
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
14
+ transition-timing-function: var(--tw-ease, cubic-bezier(0.4, 0, 0.2, 1));
15
+ transition-duration: var(--tw-duration, 150ms);
16
+ touch-action: none;
17
+ -webkit-user-select: none;
18
+ user-select: none;
19
+ }
20
+ .scroll-bar--vertical {
21
+ border-left-style: var(--tw-border-style);
22
+ border-left-width: 1px;
23
+ border-left-color: transparent;
24
+ height: 100%;
25
+ width: calc(0.25rem * 2.5);
26
+ padding: 1px;
27
+ }
28
+ .scroll-bar--horizontal {
29
+ border-top-style: var(--tw-border-style);
30
+ border-top-width: 1px;
31
+ border-top-color: transparent;
32
+ flex-direction: column;
33
+ height: calc(0.25rem * 2.5);
34
+ padding: 1px;
35
+ }
36
+ .scroll-area-thumb {
37
+ border-radius: calc(infinity * 1px);
38
+ background-color: var(--color-border);
39
+ position: relative;
40
+ flex: 1;
41
+ }
42
+ @property --tw-border-style {
43
+ syntax: "*";
44
+ inherits: false;
45
+ initial-value: solid;
46
+ }
@@ -0,0 +1,9 @@
1
+ /*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */
2
+ .search-bar {
3
+ position: relative;
4
+ }
5
+ .search-icon {
6
+ color: var(--color-text-secondary);
7
+ width: calc(0.25rem * 4);
8
+ height: calc(0.25rem * 4);
9
+ }
@@ -0,0 +1,42 @@
1
+ /*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */
2
+ .section-heading--right-content {
3
+ border-bottom-style: var(--tw-border-style);
4
+ border-bottom-width: 1px;
5
+ border-color: var(--color-border);
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ padding-bottom: calc(0.25rem * 2);
10
+ }
11
+ .content {
12
+ :where(& > :not(:last-child)) {
13
+ --tw-space-y-reverse: 0;
14
+ margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));
15
+ margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));
16
+ }
17
+ }
18
+ .heading {
19
+ font-size: 1.25rem;
20
+ line-height: var(--tw-leading, calc(1.75 / 1.25));
21
+ --tw-font-weight: 500;
22
+ font-weight: 500;
23
+ }
24
+ .description {
25
+ font-size: 0.875rem;
26
+ line-height: var(--tw-leading, calc(1.25 / 0.875));
27
+ color: var(--color-text-secondary);
28
+ }
29
+ @property --tw-border-style {
30
+ syntax: "*";
31
+ inherits: false;
32
+ initial-value: solid;
33
+ }
34
+ @property --tw-space-y-reverse {
35
+ syntax: "*";
36
+ inherits: false;
37
+ initial-value: 0;
38
+ }
39
+ @property --tw-font-weight {
40
+ syntax: "*";
41
+ inherits: false;
42
+ }