pixelize-design-library 2.4.1-beta.10 → 2.4.1-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Theme/chakra/common.web.d.ts.map +1 -1
- package/dist/Theme/chakra/common.web.js +4 -1
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts +12 -3
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
- package/dist/Theme/provider/PixelizeThemeProvider.js +30 -8
- package/dist/Theme/tokens/brands/lavender/palette.light.d.ts.map +1 -1
- package/dist/Theme/tokens/brands/lavender/palette.light.js +22 -15
- package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
- package/dist/Theme/tokens/brands/zinc/palette.dark.js +5 -4
- package/dist/Theme/tokens/builders/buildDarkPalette.d.ts.map +1 -1
- package/dist/Theme/tokens/builders/buildDarkPalette.js +19 -4
- package/package.json +1 -1
- package/dist/App.d.ts +0 -4
- package/dist/App.js +0 -95
- package/dist/Layout.d.ts +0 -3
- package/dist/Layout.js +0 -286
- package/dist/Pages/TInput.d.ts +0 -3
- package/dist/Pages/TInput.d.ts.map +0 -1
- package/dist/Pages/TInput.js +0 -20
- package/dist/Pages/accordion.d.ts +0 -3
- package/dist/Pages/accordion.d.ts.map +0 -1
- package/dist/Pages/accordion.js +0 -21
- package/dist/Pages/alertdialog.d.ts +0 -3
- package/dist/Pages/alertdialog.d.ts.map +0 -1
- package/dist/Pages/alertdialog.js +0 -53
- package/dist/Pages/button.d.ts +0 -3
- package/dist/Pages/button.d.ts.map +0 -1
- package/dist/Pages/button.js +0 -32
- package/dist/Pages/card.d.ts +0 -3
- package/dist/Pages/card.d.ts.map +0 -1
- package/dist/Pages/card.js +0 -102
- package/dist/Pages/chart.d.ts +0 -4
- package/dist/Pages/chart.d.ts.map +0 -1
- package/dist/Pages/chart.js +0 -25
- package/dist/Pages/checkbox.d.ts +0 -3
- package/dist/Pages/checkbox.d.ts.map +0 -1
- package/dist/Pages/checkbox.js +0 -11
- package/dist/Pages/contactForm.d.ts +0 -3
- package/dist/Pages/contactForm.d.ts.map +0 -1
- package/dist/Pages/contactForm.js +0 -15
- package/dist/Pages/customModulesTable.d.ts +0 -4
- package/dist/Pages/customModulesTable.d.ts.map +0 -1
- package/dist/Pages/customModulesTable.js +0 -25
- package/dist/Pages/datePick.d.ts +0 -3
- package/dist/Pages/datePick.d.ts.map +0 -1
- package/dist/Pages/datePick.js +0 -49
- package/dist/Pages/drawer.d.ts +0 -3
- package/dist/Pages/drawer.d.ts.map +0 -1
- package/dist/Pages/drawer.js +0 -53
- package/dist/Pages/dropdown.d.ts +0 -3
- package/dist/Pages/dropdown.d.ts.map +0 -1
- package/dist/Pages/dropdown.js +0 -21
- package/dist/Pages/editor.d.ts +0 -3
- package/dist/Pages/editor.d.ts.map +0 -1
- package/dist/Pages/editor.js +0 -13
- package/dist/Pages/feedback.d.ts +0 -2
- package/dist/Pages/feedback.d.ts.map +0 -1
- package/dist/Pages/feedback.js +0 -12
- package/dist/Pages/fileUpload.d.ts +0 -2
- package/dist/Pages/fileUpload.d.ts.map +0 -1
- package/dist/Pages/fileUpload.js +0 -36
- package/dist/Pages/input.d.ts +0 -3
- package/dist/Pages/input.d.ts.map +0 -1
- package/dist/Pages/input.js +0 -48
- package/dist/Pages/kanbanboard.d.ts +0 -3
- package/dist/Pages/kanbanboard.d.ts.map +0 -1
- package/dist/Pages/kanbanboard.js +0 -182
- package/dist/Pages/modal.d.ts +0 -3
- package/dist/Pages/modal.d.ts.map +0 -1
- package/dist/Pages/modal.js +0 -61
- package/dist/Pages/multiSelect.d.ts +0 -3
- package/dist/Pages/multiSelect.d.ts.map +0 -1
- package/dist/Pages/multiSelect.js +0 -22
- package/dist/Pages/noteArea.d.ts +0 -3
- package/dist/Pages/noteArea.d.ts.map +0 -1
- package/dist/Pages/noteArea.js +0 -26
- package/dist/Pages/notification.d.ts +0 -3
- package/dist/Pages/notification.d.ts.map +0 -1
- package/dist/Pages/notification.js +0 -37
- package/dist/Pages/numberInput.d.ts +0 -3
- package/dist/Pages/numberInput.d.ts.map +0 -1
- package/dist/Pages/numberInput.js +0 -16
- package/dist/Pages/orgSwitcher.d.ts +0 -4
- package/dist/Pages/orgSwitcher.d.ts.map +0 -1
- package/dist/Pages/orgSwitcher.js +0 -36
- package/dist/Pages/organizationDetails.d.ts +0 -4
- package/dist/Pages/organizationDetails.d.ts.map +0 -1
- package/dist/Pages/organizationDetails.js +0 -80
- package/dist/Pages/photoViewer.d.ts +0 -3
- package/dist/Pages/photoViewer.d.ts.map +0 -1
- package/dist/Pages/photoViewer.js +0 -12
- package/dist/Pages/pinInputs.d.ts +0 -3
- package/dist/Pages/pinInputs.d.ts.map +0 -1
- package/dist/Pages/pinInputs.js +0 -11
- package/dist/Pages/productCaard.d.ts +0 -3
- package/dist/Pages/productCaard.d.ts.map +0 -1
- package/dist/Pages/productCaard.js +0 -311
- package/dist/Pages/productDetailCard.d.ts +0 -3
- package/dist/Pages/productDetailCard.d.ts.map +0 -1
- package/dist/Pages/productDetailCard.js +0 -78
- package/dist/Pages/productFilter.d.ts +0 -3
- package/dist/Pages/productFilter.d.ts.map +0 -1
- package/dist/Pages/productFilter.js +0 -148
- package/dist/Pages/progressbar.d.ts +0 -3
- package/dist/Pages/progressbar.d.ts.map +0 -1
- package/dist/Pages/progressbar.js +0 -11
- package/dist/Pages/radioButton.d.ts +0 -3
- package/dist/Pages/radioButton.d.ts.map +0 -1
- package/dist/Pages/radioButton.js +0 -18
- package/dist/Pages/rolesPermission.d.ts +0 -4
- package/dist/Pages/rolesPermission.d.ts.map +0 -1
- package/dist/Pages/rolesPermission.js +0 -144
- package/dist/Pages/search.d.ts +0 -3
- package/dist/Pages/search.d.ts.map +0 -1
- package/dist/Pages/search.js +0 -21
- package/dist/Pages/searchSelect.d.ts +0 -3
- package/dist/Pages/searchSelect.d.ts.map +0 -1
- package/dist/Pages/searchSelect.js +0 -97
- package/dist/Pages/select.d.ts +0 -3
- package/dist/Pages/select.d.ts.map +0 -1
- package/dist/Pages/select.js +0 -20
- package/dist/Pages/selectSearch.d.ts +0 -3
- package/dist/Pages/selectSearch.d.ts.map +0 -1
- package/dist/Pages/selectSearch.js +0 -58
- package/dist/Pages/signInActivityTable.d.ts +0 -4
- package/dist/Pages/signInActivityTable.d.ts.map +0 -1
- package/dist/Pages/signInActivityTable.js +0 -17
- package/dist/Pages/skeleton.d.ts +0 -3
- package/dist/Pages/skeleton.d.ts.map +0 -1
- package/dist/Pages/skeleton.js +0 -12
- package/dist/Pages/stageProgress.d.ts +0 -4
- package/dist/Pages/stageProgress.d.ts.map +0 -1
- package/dist/Pages/stageProgress.js +0 -31
- package/dist/Pages/switch.d.ts +0 -3
- package/dist/Pages/switch.d.ts.map +0 -1
- package/dist/Pages/switch.js +0 -17
- package/dist/Pages/table.d.ts +0 -3
- package/dist/Pages/table.d.ts.map +0 -1
- package/dist/Pages/table.js +0 -182
- package/dist/Pages/tag.d.ts +0 -3
- package/dist/Pages/tag.d.ts.map +0 -1
- package/dist/Pages/tag.js +0 -27
- package/dist/Pages/textArea.d.ts +0 -3
- package/dist/Pages/textArea.d.ts.map +0 -1
- package/dist/Pages/textArea.js +0 -14
- package/dist/Pages/tier1.d.ts +0 -4
- package/dist/Pages/tier1.d.ts.map +0 -1
- package/dist/Pages/tier1.js +0 -86
- package/dist/Pages/timeline.d.ts +0 -3
- package/dist/Pages/timeline.d.ts.map +0 -1
- package/dist/Pages/timeline.js +0 -73
- package/dist/Pages/tooltip.d.ts +0 -3
- package/dist/Pages/tooltip.d.ts.map +0 -1
- package/dist/Pages/tooltip.js +0 -11
- package/dist/Pages/toster.d.ts +0 -3
- package/dist/Pages/toster.d.ts.map +0 -1
- package/dist/Pages/toster.js +0 -53
- package/dist/Pages/upgradeButton.d.ts +0 -4
- package/dist/Pages/upgradeButton.d.ts.map +0 -1
- package/dist/Pages/upgradeButton.js +0 -17
- package/dist/Pages/userDetails.d.ts +0 -4
- package/dist/Pages/userDetails.d.ts.map +0 -1
- package/dist/Pages/userDetails.js +0 -79
- package/dist/Pages/verifyEmail.d.ts +0 -3
- package/dist/Pages/verifyEmail.d.ts.map +0 -1
- package/dist/Pages/verifyEmail.js +0 -17
- package/dist/bootstrap.d.ts +0 -2
- package/dist/bootstrap.js +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.web.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/common.web.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"common.web.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/common.web.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAeX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -15,7 +15,10 @@ const common = {
|
|
|
15
15
|
radii: primitives_1.radii,
|
|
16
16
|
zIndices: primitives_1.zIndices,
|
|
17
17
|
config: {
|
|
18
|
-
|
|
18
|
+
// Chakra's default, and it must stay that way. A custom prefix silently breaks every
|
|
19
|
+
// `var(--chakra-colors-*)` an app writes in plain CSS: the variable simply does not
|
|
20
|
+
// exist, so the fallback (usually #fff) wins and the surface renders white in dark mode.
|
|
21
|
+
cssVarPrefix: "chakra",
|
|
19
22
|
},
|
|
20
23
|
};
|
|
21
24
|
exports.default = common;
|
|
@@ -10,10 +10,19 @@ export type ThemeModeContextValue = {
|
|
|
10
10
|
};
|
|
11
11
|
export type PixelizeThemeProviderProps = {
|
|
12
12
|
children: React.ReactNode;
|
|
13
|
-
/** Initial brand. A persisted brand wins over this. */
|
|
13
|
+
/** Initial brand. A persisted brand wins over this. Re-synced if the prop changes after mount. */
|
|
14
14
|
brand?: ThemeName;
|
|
15
|
-
/**
|
|
15
|
+
/** Brand counterpart of `onModeChange`, with the same user-intent-only contract. */
|
|
16
|
+
onBrandChange?: (brand: ThemeName) => void;
|
|
17
|
+
/** Initial color mode. A persisted mode wins over this. Re-synced if the prop changes after mount. */
|
|
16
18
|
defaultMode?: ColorMode;
|
|
19
|
+
/**
|
|
20
|
+
* Fired only when the mode changes through `setMode`/`toggle` — i.e. user intent. It is NOT
|
|
21
|
+
* fired when a changed `defaultMode` prop is synced in, which is what makes it safe to persist
|
|
22
|
+
* from: an app that instead mirrors `mode` in an effect re-persists its own echo, and if that
|
|
23
|
+
* store feeds `defaultMode` back the two ends flip each other forever.
|
|
24
|
+
*/
|
|
25
|
+
onModeChange?: (mode: ColorMode) => void;
|
|
17
26
|
storageKey?: string;
|
|
18
27
|
disablePersistence?: boolean;
|
|
19
28
|
/**
|
|
@@ -42,5 +51,5 @@ export declare const ThemeModeContext: React.Context<ThemeModeContextValue | und
|
|
|
42
51
|
* whatever the active palette says. Read the mode from `useThemeMode()` instead. Existing apps are
|
|
43
52
|
* unaffected: they are light-only, where that argument was always the one returned anyway.
|
|
44
53
|
*/
|
|
45
|
-
export declare const PixelizeThemeProvider: ({ children, brand: brandProp, defaultMode, storageKey, disablePersistence, themeOverrides, }: PixelizeThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export declare const PixelizeThemeProvider: ({ children, brand: brandProp, onBrandChange, defaultMode, onModeChange, storageKey, disablePersistence, themeOverrides, }: PixelizeThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
46
55
|
//# sourceMappingURL=PixelizeThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelizeThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/Theme/provider/PixelizeThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,iBAAiB,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"PixelizeThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/Theme/provider/PixelizeThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,iBAAiB,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kGAAkG;IAClG,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oFAAoF;IACpF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,sGAAsG;IACtG,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C,CAAC;AA2BF,eAAO,MAAM,gBAAgB,kDAE5B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAAI,2HASnC,0BAA0B,4CA8K5B,CAAC"}
|
|
@@ -48,7 +48,7 @@ exports.ThemeModeContext = (0, react_1.createContext)(undefined);
|
|
|
48
48
|
* whatever the active palette says. Read the mode from `useThemeMode()` instead. Existing apps are
|
|
49
49
|
* unaffected: they are light-only, where that argument was always the one returned anyway.
|
|
50
50
|
*/
|
|
51
|
-
const PixelizeThemeProvider = ({ children, brand: brandProp = DEFAULT_BRAND, defaultMode = DEFAULT_MODE, storageKey = DEFAULT_STORAGE_KEY, disablePersistence = false, themeOverrides, }) => {
|
|
51
|
+
const PixelizeThemeProvider = ({ children, brand: brandProp = DEFAULT_BRAND, onBrandChange, defaultMode = DEFAULT_MODE, onModeChange, storageKey = DEFAULT_STORAGE_KEY, disablePersistence = false, themeOverrides, }) => {
|
|
52
52
|
const [mode, setModeState] = (0, react_1.useState)(defaultMode);
|
|
53
53
|
const [brand, setBrandState] = (0, react_1.useState)(brandProp);
|
|
54
54
|
// Deterministic on the server and on the first client render — the real OS value lands in
|
|
@@ -70,19 +70,27 @@ const PixelizeThemeProvider = ({ children, brand: brandProp = DEFAULT_BRAND, def
|
|
|
70
70
|
// `brandProp` only seeds initial state above, so a consumer that re-renders with a new
|
|
71
71
|
// `brand` prop after mount (e.g. persisting the pick through its own store, like tickets'
|
|
72
72
|
// Settings page dispatching Redux instead of calling `setBrand`) would otherwise never see
|
|
73
|
-
// it applied
|
|
74
|
-
// mirroring `mode`. Sync it here instead so every consumer gets it for free.
|
|
73
|
+
// it applied. Sync it here instead so every consumer gets it for free.
|
|
75
74
|
const isFirstBrandPropRun = (0, react_1.useRef)(true);
|
|
76
75
|
(0, react_1.useEffect)(() => {
|
|
77
76
|
if (isFirstBrandPropRun.current) {
|
|
78
77
|
isFirstBrandPropRun.current = false;
|
|
79
78
|
return;
|
|
80
79
|
}
|
|
81
|
-
setBrandState(brandProp);
|
|
82
80
|
// Only re-sync when the prop itself changes — not on every local `setBrand` call (that
|
|
83
81
|
// would fight the user's own in-session brand picking, e.g. via ThemeSwitcher).
|
|
84
|
-
|
|
82
|
+
setBrandState(brandProp);
|
|
85
83
|
}, [brandProp]);
|
|
84
|
+
// Same prop-sync for the mode, so an app owning it in its own store no longer needs the
|
|
85
|
+
// `mode` -> store mirror effect that deadlocks against this one.
|
|
86
|
+
const isFirstModePropRun = (0, react_1.useRef)(true);
|
|
87
|
+
(0, react_1.useEffect)(() => {
|
|
88
|
+
if (isFirstModePropRun.current) {
|
|
89
|
+
isFirstModePropRun.current = false;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setModeState(defaultMode);
|
|
93
|
+
}, [defaultMode]);
|
|
86
94
|
// Skipping the mount run keeps the defaults from being written over a stored value before
|
|
87
95
|
// the rehydrate effect above has applied it.
|
|
88
96
|
const isFirstPersistRun = (0, react_1.useRef)(true);
|
|
@@ -107,11 +115,25 @@ const PixelizeThemeProvider = ({ children, brand: brandProp = DEFAULT_BRAND, def
|
|
|
107
115
|
(0, react_1.useEffect)(() => {
|
|
108
116
|
document.documentElement.style.colorScheme = resolvedMode;
|
|
109
117
|
}, [resolvedMode]);
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
// Held in refs so a caller's inline arrow never re-creates `setMode`/`setBrand`, which would
|
|
119
|
+
// invalidate the context value on every render of the consuming app.
|
|
120
|
+
const onModeChangeRef = (0, react_1.useRef)(onModeChange);
|
|
121
|
+
onModeChangeRef.current = onModeChange;
|
|
122
|
+
const onBrandChangeRef = (0, react_1.useRef)(onBrandChange);
|
|
123
|
+
onBrandChangeRef.current = onBrandChange;
|
|
124
|
+
const setMode = (0, react_1.useCallback)((next) => {
|
|
125
|
+
var _a;
|
|
126
|
+
setModeState(next);
|
|
127
|
+
(_a = onModeChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onModeChangeRef, next);
|
|
128
|
+
}, []);
|
|
129
|
+
const setBrand = (0, react_1.useCallback)((next) => {
|
|
130
|
+
var _a;
|
|
131
|
+
setBrandState(next);
|
|
132
|
+
(_a = onBrandChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onBrandChangeRef, next);
|
|
133
|
+
}, []);
|
|
112
134
|
// From "system", flip to the opposite of what the OS currently gives, so a click always
|
|
113
135
|
// visibly changes the UI.
|
|
114
|
-
const toggle = (0, react_1.useCallback)(() =>
|
|
136
|
+
const toggle = (0, react_1.useCallback)(() => setMode(resolvedMode === "dark" ? "light" : "dark"), [resolvedMode, setMode]);
|
|
115
137
|
const value = (0, react_1.useMemo)(() => ({ mode, resolvedMode, setMode, toggle, brand, setBrand }), [mode, resolvedMode, setMode, toggle, brand, setBrand]);
|
|
116
138
|
const resolvedTheme = (0, react_1.useMemo)(() => {
|
|
117
139
|
const base = index_1.brandThemes[brand][resolvedMode];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.light.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/lavender/palette.light.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"palette.light.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/lavender/palette.light.ts"],"names":[],"mappings":"AAmTA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -150,7 +150,8 @@ const backgroundColor = {
|
|
|
150
150
|
secondary: "#f2edf8",
|
|
151
151
|
tertiary: "#ebe3f4",
|
|
152
152
|
quaternary: "#e2d8ef",
|
|
153
|
-
|
|
153
|
+
// A card must read as lifted off the tinted canvas; the old #fdfcfe was 2% away from it.
|
|
154
|
+
light: "#ffffff",
|
|
154
155
|
medium: "#e8e0f2",
|
|
155
156
|
accent: "#e0d5ed",
|
|
156
157
|
subtle: "#f5f1fa",
|
|
@@ -227,25 +228,31 @@ const sidebar = {
|
|
|
227
228
|
},
|
|
228
229
|
};
|
|
229
230
|
const boxborder = {
|
|
230
|
-
50: "#
|
|
231
|
-
100: "#
|
|
232
|
-
200: "#
|
|
233
|
-
300: "#
|
|
234
|
-
400: "#
|
|
235
|
-
500: "#
|
|
236
|
-
600: "#
|
|
231
|
+
50: "#f5f3f9",
|
|
232
|
+
100: "#ece8f3",
|
|
233
|
+
200: "#dad4e8",
|
|
234
|
+
300: "#d1c9e2",
|
|
235
|
+
400: "#c7bcda",
|
|
236
|
+
500: "#bcb0d1",
|
|
237
|
+
600: "#a79ac3",
|
|
237
238
|
700: "#918ba1",
|
|
238
239
|
800: "#6d6879",
|
|
239
240
|
900: "#52505b",
|
|
240
241
|
};
|
|
242
|
+
/**
|
|
243
|
+
* The low rungs sat two steps too pale to draw anything: `200` — the default hairline for
|
|
244
|
+
* cards, dividers and inputs — was L94 against a L98 canvas, so a card had no visible edge.
|
|
245
|
+
* It now lands at L88, contrast 1.22 against a white card, matching Chakra's gray.200 hairline.
|
|
246
|
+
* Rungs 700+ are unchanged; they were never the problem.
|
|
247
|
+
*/
|
|
241
248
|
const border = {
|
|
242
|
-
50: "#
|
|
243
|
-
100: "#
|
|
244
|
-
200: "#
|
|
245
|
-
300: "#
|
|
246
|
-
400: "#
|
|
247
|
-
500: "#
|
|
248
|
-
600: "#
|
|
249
|
+
50: "#f6f4f9",
|
|
250
|
+
100: "#ede9f4",
|
|
251
|
+
200: "#dcd5e9",
|
|
252
|
+
300: "#d3cbe3",
|
|
253
|
+
400: "#c9bedb",
|
|
254
|
+
500: "#beb2d2",
|
|
255
|
+
600: "#a99cc4",
|
|
249
256
|
700: "#938da3",
|
|
250
257
|
800: "#6f6a7c",
|
|
251
258
|
900: "#54505e",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.dark.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/zinc/palette.dark.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"palette.dark.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/zinc/palette.dark.ts"],"names":[],"mappings":"AAwLA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -93,15 +93,16 @@ const header = {
|
|
|
93
93
|
900: "#ffffff",
|
|
94
94
|
};
|
|
95
95
|
// muted-foreground = gray[500] = #a1a1aa (5.81:1 on the #27272a muted surface); it also serves
|
|
96
|
-
// as the focus ring on the #09090b canvas (7.76:1). gray[400] = the interactive border/icon rung
|
|
97
|
-
//
|
|
98
|
-
//
|
|
96
|
+
// as the focus ring on the #09090b canvas (7.76:1). gray[400] = the interactive border/icon rung,
|
|
97
|
+
// and is the one value here NOT ported verbatim: it is pinned to whatever clears the 3:1 non-text
|
|
98
|
+
// bar on the LIGHTEST named surface, which is derived rather than ported. shadcn's own #71717a
|
|
99
|
+
// measures 2.81 there, so this sits two steps lighter (3.19).
|
|
99
100
|
const gray = {
|
|
100
101
|
50: "#18181b",
|
|
101
102
|
100: "#27272a",
|
|
102
103
|
200: "#3f3f46",
|
|
103
104
|
300: "#52525b",
|
|
104
|
-
400: "#
|
|
105
|
+
400: "#7a7a83",
|
|
105
106
|
500: "#a1a1aa",
|
|
106
107
|
600: "#b4b4bb",
|
|
107
108
|
700: "#d4d4d8",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildDarkPalette.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/builders/buildDarkPalette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA2CrE,uEAAuE;AACvE,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAG,UAW/C,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAG,UAW/C,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,EAAE,OAAO,MAAM,KAAG,MAWvE,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,SAAS,GAAI,OAAO,UAAU,EAAE,OAAO,MAAM,KAAG,UAM5D,CAAC;
|
|
1
|
+
{"version":3,"file":"buildDarkPalette.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/builders/buildDarkPalette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA2CrE,uEAAuE;AACvE,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAG,UAW/C,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAG,UAW/C,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,EAAE,OAAO,MAAM,KAAG,MAWvE,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,SAAS,GAAI,OAAO,UAAU,EAAE,OAAO,MAAM,KAAG,UAM5D,CAAC;AAkJF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAwElE;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -169,8 +169,11 @@ const TEXT_TARGETS = {
|
|
|
169
169
|
const PLACEHOLDER_TARGETS = {
|
|
170
170
|
50: 25, 100: 30, 200: 35, 300: 42, 400: 48, 500: 54, 600: 60, 700: 66, 800: 72, 900: 80,
|
|
171
171
|
};
|
|
172
|
+
// Rung 200 is the default hairline. At L18 it sat 5 points off a card at L13 — below the
|
|
173
|
+
// perceptible step, so dark cards read as edgeless. L22 draws the same 1.2x edge the light
|
|
174
|
+
// ramp does, which is what makes a card look like a card in either mode.
|
|
172
175
|
const BORDER_TARGETS = {
|
|
173
|
-
50:
|
|
176
|
+
50: 14, 100: 18, 200: 22, 300: 24, 400: 26, 500: 27, 600: 33, 700: 42, 800: 52, 900: 62,
|
|
174
177
|
};
|
|
175
178
|
const DISABLED_TARGETS = {
|
|
176
179
|
50: 14, 100: 18, 200: 22, 300: 26, 400: 30, 500: 34, 600: 42, 700: 52, 800: 62, 900: 72,
|
|
@@ -215,12 +218,22 @@ const NAMED_SURFACE_L = {
|
|
|
215
218
|
accent: 17,
|
|
216
219
|
muted: 18,
|
|
217
220
|
};
|
|
218
|
-
|
|
221
|
+
/**
|
|
222
|
+
* Surfaces are hue-NEUTRAL in dark: every brand shares one canvas, so switching theme recolors the
|
|
223
|
+
* accents and nothing else. Tinting them instead (this was 14) made a full-screen wash — Meadow's
|
|
224
|
+
* whole app read green — which reads as a different product per brand rather than a different
|
|
225
|
+
* accent. Light mode keeps its tinted canvas; there the tint is a hint on white, not the whole
|
|
226
|
+
* screen. Brand identity in dark lives in `primary`/semantic/text, which stay hued.
|
|
227
|
+
*/
|
|
228
|
+
const SURFACE_SAT = 0;
|
|
219
229
|
const TEXT_SAT = 12;
|
|
220
230
|
const PLACEHOLDER_SAT = 10;
|
|
221
231
|
const BORDER_SAT = 12;
|
|
222
232
|
const DISABLED_SAT = 8;
|
|
223
|
-
|
|
233
|
+
// Neutral for the same reason as SURFACE_SAT — gray's low rungs ARE surfaces, and a tinted ramp
|
|
234
|
+
// on a neutral canvas reads as a mismatch. It also buys back the contrast the neutral canvas
|
|
235
|
+
// cost: `gray[400]` on `muted` was 2.99 on lavender/zinc at sat 6, and is 3.16 at 0.
|
|
236
|
+
const GRAY_SAT = 0;
|
|
224
237
|
function buildDarkPalette(light) {
|
|
225
238
|
const hueSource = light.primary[500];
|
|
226
239
|
const { h } = (0, color_1.hexToHsl)(hueSource);
|
|
@@ -265,7 +278,9 @@ function buildDarkPalette(light) {
|
|
|
265
278
|
placeholder: fromTargets(hueSource, PLACEHOLDER_TARGETS, PLACEHOLDER_SAT),
|
|
266
279
|
border: fromTargets(hueSource, BORDER_TARGETS, BORDER_SAT),
|
|
267
280
|
boxborder: fromTargets(hueSource, BORDER_TARGETS, BORDER_SAT),
|
|
268
|
-
|
|
281
|
+
// Neutral: a row hover is a surface fill, and across a full table its tint is exactly the
|
|
282
|
+
// brand wash the canvas was changed to avoid.
|
|
283
|
+
table: { hover: fromTargets(hueSource, TABLE_HOVER_TARGETS, SURFACE_SAT) },
|
|
269
284
|
disabled: fromTargets(hueSource, DISABLED_TARGETS, DISABLED_SAT),
|
|
270
285
|
// Derived from the LIFTED accent against the dark canvas: the lift stops at the white-label
|
|
271
286
|
// floor (~4.55), which leaves primary[500] short of AA as text, so text needs its own rung.
|
package/package.json
CHANGED
package/dist/App.d.ts
DELETED
package/dist/App.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const react_1 = require("react");
|
|
8
|
-
const react_2 = require("@chakra-ui/react");
|
|
9
|
-
const lucide_react_1 = require("lucide-react");
|
|
10
|
-
const Loading_1 = __importDefault(require("./Components/Loading/Loading"));
|
|
11
|
-
const SideBar_1 = __importDefault(require("./Components/SideBar/SideBar"));
|
|
12
|
-
const NavigationBar_1 = __importDefault(require("./Components/NavigationBar/NavigationBar"));
|
|
13
|
-
const useSidebarPrefs_1 = require("./Hooks/useSidebarPrefs");
|
|
14
|
-
const provider_1 = require("./Theme/provider");
|
|
15
|
-
const useCustomTheme_1 = require("./Theme/useCustomTheme");
|
|
16
|
-
const Layout_1 = __importDefault(require("./Layout"));
|
|
17
|
-
require("./global.css");
|
|
18
|
-
// --- Static demo data (module scope so it isn't re-created each render) ------
|
|
19
|
-
const menu = [
|
|
20
|
-
{
|
|
21
|
-
id: 1, title: "Dashboard", icon: lucide_react_1.House, url: "", group: "Main",
|
|
22
|
-
secondaryItems: [
|
|
23
|
-
{ id: 11, title: "SubMenu", url: "submenu1", icon: lucide_react_1.Cuboid, badge: { count: 10, color: "red", radius: "5px", variant: "outline" } },
|
|
24
|
-
{ id: 12, title: "SubMenu2", url: "submenu2", icon: lucide_react_1.Cuboid },
|
|
25
|
-
],
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
id: 2, title: "AlertDialog", icon: lucide_react_1.Calendar, url: "alertdialog",
|
|
29
|
-
badge: { count: 10, color: "red", radius: "5px", variant: "outline" },
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
id: 3, title: "SideMenu", icon: lucide_react_1.Cuboid, url: "sidemenu",
|
|
33
|
-
subMenu: [
|
|
34
|
-
{ id: 31, title: "SubMenu1", url: "submenu1", icon: lucide_react_1.FileText },
|
|
35
|
-
{ id: 32, title: "SubMenu2", url: "submenu2", icon: lucide_react_1.Link2, badge: { count: 10, color: "red", radius: "5px", variant: "subtle" } },
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: 4, title: "SideMenu", icon: lucide_react_1.Cuboid, url: "sidemenu",
|
|
40
|
-
subMenu: [
|
|
41
|
-
{ id: 33, title: "SubMenu1", url: "submenu1" },
|
|
42
|
-
{ id: 34, title: "SubMenu2", url: "submenu2" },
|
|
43
|
-
],
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: 8, title: "SideMenu", icon: lucide_react_1.Cuboid, url: "sidemenu", group: "Tools",
|
|
47
|
-
subMenu: [
|
|
48
|
-
{ id: 41, title: "SubMenu1", url: "submenu1", icon: lucide_react_1.Cuboid },
|
|
49
|
-
{ id: 42, title: "SubMenu2", url: "submenu2", icon: lucide_react_1.Cuboid },
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
];
|
|
53
|
-
const navmenus = [
|
|
54
|
-
{ title: "Account Settings", url: "myaccount", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Cuboid, {}) },
|
|
55
|
-
{ title: "Reset password", url: "resetpassword" },
|
|
56
|
-
{ title: "Billing", url: "billing" },
|
|
57
|
-
{ title: "Notifications", url: "notifications" },
|
|
58
|
-
];
|
|
59
|
-
function useWindowSize() {
|
|
60
|
-
const [windowSize, setWindowSize] = (0, react_1.useState)({ width: 0, height: 0 });
|
|
61
|
-
(0, react_1.useEffect)(() => {
|
|
62
|
-
const handleResize = () => setWindowSize({ width: window.innerWidth, height: window.innerHeight });
|
|
63
|
-
window.addEventListener("resize", handleResize);
|
|
64
|
-
handleResize();
|
|
65
|
-
return () => window.removeEventListener("resize", handleResize);
|
|
66
|
-
}, []);
|
|
67
|
-
return windowSize;
|
|
68
|
-
}
|
|
69
|
-
function App() {
|
|
70
|
-
const { height } = useWindowSize();
|
|
71
|
-
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
72
|
-
// Persisted layout choices — restored to exactly the same state on reload/new
|
|
73
|
-
// session via localStorage. `collapsed` = mini-rail; `mobileNav` = navbar mode
|
|
74
|
-
// forced on a big screen; `mobileOpen` = whether the overlay drawer is open.
|
|
75
|
-
// Composed handlers (onToggleMobileNav / closeMobile) come straight from the hook,
|
|
76
|
-
// so this app does not re-implement the navbar-mode/drawer behavior.
|
|
77
|
-
const { collapsed: toggle, toggleCollapsed, mobileNav, mobileOpen, toggleMobileOpen, onToggleMobileNav, closeMobile, } = (0, useSidebarPrefs_1.useSidebarPrefs)();
|
|
78
|
-
const [activeMenu, setActiveMenu] = (0, react_1.useState)(2);
|
|
79
|
-
const [activeSecondaryItem, setActiveSecondaryItem] = (0, react_1.useState)(null);
|
|
80
|
-
const handleMenuClick = (menu) => {
|
|
81
|
-
setActiveMenu(menu === null || menu === void 0 ? void 0 : menu.id);
|
|
82
|
-
setActiveSecondaryItem(null);
|
|
83
|
-
};
|
|
84
|
-
const handleSecondaryNavClick = (item) => {
|
|
85
|
-
var _a, _b;
|
|
86
|
-
setActiveSecondaryItem((_b = (_a = item === null || item === void 0 ? void 0 : item.id) !== null && _a !== void 0 ? _a : item === null || item === void 0 ? void 0 : item.title) !== null && _b !== void 0 ? _b : null);
|
|
87
|
-
};
|
|
88
|
-
const handleNavOnClick = () => { };
|
|
89
|
-
const handleLogout = () => { };
|
|
90
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: "App", children: (0, jsx_runtime_1.jsxs)(react_2.Box, { minH: "100vh", bg: "gray.100", overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(Loading_1.default, { text: "PIXELIZE CRM", isLoading: false, onlytext: true }), (0, jsx_runtime_1.jsxs)(react_2.Flex, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { children: (0, jsx_runtime_1.jsx)(SideBar_1.default, { menus: menu, activeMenu: activeMenu, handleMenuClick: handleMenuClick, handleSecondaryNavClick: handleSecondaryNavClick, toggle: toggle, changeToggle: toggleCollapsed, companyName: "PIXELIZE Technologies Pvt., Ltd.", selectedSecondaryItem: activeSecondaryItem, mobileOpen: mobileOpen, onMobileClose: closeMobile, mobileNav: mobileNav, onToggleMobileNav: onToggleMobileNav }) }), (0, jsx_runtime_1.jsxs)(react_2.Box, { flex: "1", minW: 0, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(NavigationBar_1.default, { userAvathar: "https://bit.ly/dan-abramo", userName: "PIXELIZE", userRole: "Admin", navMenu: navmenus, handleNavOnClick: handleNavOnClick, handleLogout: handleLogout, logoutText: "Logout", sideBarToggole: mobileOpen, onSideBarToggole: toggleMobileOpen, forceSideBarToggle: mobileNav, navigationBarText: {
|
|
91
|
-
text: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Dashboard" }),
|
|
92
|
-
onIconClick: () => { },
|
|
93
|
-
}, moreIcon: (0, jsx_runtime_1.jsx)(lucide_react_1.Calendar, {}) }, "navbar"), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(react_2.Flex, { "data-testid": "theme-controls", px: "50px", pb: 3, gap: 4, align: "center", justify: "flex-end", children: [(0, jsx_runtime_1.jsx)(provider_1.ThemeSwitcher, { variant: "segmented", showBrandPicker: true }), (0, jsx_runtime_1.jsx)(provider_1.ThemeSwitcher, { variant: "icon" })] }), (0, jsx_runtime_1.jsx)(react_2.Box, { p: "50px", pt: 0, height: height - 200, overflowY: "scroll", overflowX: "hidden", width: "100%", "data-testid": "playground-surface", bg: theme.colors.backgroundColor.main, children: (0, jsx_runtime_1.jsx)(Layout_1.default, {}) })] })] })] }) }));
|
|
94
|
-
}
|
|
95
|
-
exports.default = App;
|
package/dist/Layout.d.ts
DELETED