@xylabs/react-pixel-debugger 4.0.3 → 4.0.5
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/browser/PixelEvent.d.ts +5 -0
- package/dist/browser/PixelEvent.d.ts.map +1 -0
- package/dist/browser/components/PixelDebugger.d.ts +3 -0
- package/dist/browser/components/PixelDebugger.d.ts.map +1 -0
- package/dist/browser/components/PixelDebuggerProvider.d.ts +4 -0
- package/dist/browser/components/PixelDebuggerProvider.d.ts.map +1 -0
- package/dist/browser/components/PixelDebuggerToggle.d.ts +4 -0
- package/dist/browser/components/PixelDebuggerToggle.d.ts.map +1 -0
- package/dist/browser/components/index.d.ts +4 -0
- package/dist/browser/components/index.d.ts.map +1 -0
- package/dist/browser/hooks/index.d.ts +2 -0
- package/dist/browser/hooks/index.d.ts.map +1 -0
- package/dist/browser/hooks/usePixelAltSendHandler.d.ts +2 -0
- package/dist/browser/hooks/usePixelAltSendHandler.d.ts.map +1 -0
- package/dist/browser/index.d.ts +4 -18
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs +9 -6
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +40 -40
- package/src/components/PixelDebugger.stories.tsx +1 -5
- package/src/components/PixelDebugger.tsx +18 -5
- package/src/components/PixelDebuggerToggle.tsx +3 -1
- package/xy.config.ts +1 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixelEvent.d.ts","sourceRoot":"","sources":["../../src/PixelEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixelDebugger.d.ts","sourceRoot":"","sources":["../../../src/components/PixelDebugger.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAKnD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EA+DjC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixelDebuggerProvider.d.ts","sourceRoot":"","sources":["../../../src/components/PixelDebuggerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAIxD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixelDebuggerToggle.d.ts","sourceRoot":"","sources":["../../../src/components/PixelDebuggerToggle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzD,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAWtD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePixelAltSendHandler.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePixelAltSendHandler.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,eAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,SAmB3G,CAAA"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare const PixelDebugger: React.FC;
|
|
6
|
-
|
|
7
|
-
declare const PixelDebuggerProvider: React.FC<WithChildren>;
|
|
8
|
-
|
|
9
|
-
declare const PixelDebuggerToggle: React.FC<BusyBoxProps>;
|
|
10
|
-
|
|
11
|
-
declare const usePixelAltSendHandler: (altHandler: (event: string, fields?: Record<string, unknown>) => void) => void;
|
|
12
|
-
|
|
13
|
-
interface PixelEvent {
|
|
14
|
-
event: string;
|
|
15
|
-
fields?: unknown;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { PixelDebugger, PixelDebuggerProvider, PixelDebuggerToggle, type PixelEvent, usePixelAltSendHandler };
|
|
1
|
+
export * from './components/index.ts';
|
|
2
|
+
export * from './hooks/index.ts';
|
|
3
|
+
export * from './PixelEvent.ts';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -99,12 +99,15 @@ var PixelDebugger = /* @__PURE__ */ __name(() => {
|
|
|
99
99
|
overflowY: "auto",
|
|
100
100
|
userSelect: "none"
|
|
101
101
|
}
|
|
102
|
-
}, events.map((e, index) =>
|
|
103
|
-
key
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
}, events.map((e, index) => (
|
|
103
|
+
// eslint-disable-next-line @eslint-react/no-duplicate-key
|
|
104
|
+
/* @__PURE__ */ React.createElement(PixelEventDetails, {
|
|
105
|
+
key: `${e.event}-${index}`,
|
|
106
|
+
events,
|
|
107
|
+
index,
|
|
108
|
+
...e
|
|
109
|
+
})
|
|
110
|
+
))), displayEvents && events.length === 0 && /* @__PURE__ */ React.createElement(Typography, {
|
|
108
111
|
variant: "subtitle2"
|
|
109
112
|
}, "No Events"))))));
|
|
110
113
|
}, "PixelDebugger");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/PixelDebugger.tsx","../../src/hooks/usePixelAltSendHandler.ts","../../src/components/PixelDebuggerProvider.tsx","../../src/components/PixelDebuggerToggle.tsx"],"sourcesContent":["import { Badge, Card, Divider, Typography, useTheme } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport { Portal } from '@xylabs/react-portal'\nimport React, { useContext, useState } from 'react'\n\nimport { usePixelAltSendHandler } from '../hooks/index.ts'\nimport type { PixelEvent } from '../PixelEvent.ts'\n\nexport const PixelDebugger: React.FC = () => {\n const { isDebugging } = useContext(DebugUserEventsContext)\n // TODO - when adding in the location hook to detect location change, was dropping the setEvents in usePixelAltSendHand\n const theme = useTheme()\n const [displayEvents, setDisplayEvents] = useState(false)\n const [events, setEvents] = useState<PixelEvent[]>([])\n\n usePixelAltSendHandler((event: string, fields?: Record<string, unknown>) => {\n setEvents(events => [{ event, fields }, ...events])\n })\n\n if (!isDebugging) {\n return null\n }\n\n return (\n <Portal>\n <div style={{ bottom: 0, left: 0, position: 'fixed', width: 350 }}>\n <Badge badgeContent={events.length} color=\"primary\" sx={{ width: '100%' }}>\n <Card\n variant=\"outlined\"\n sx={{\n backdropFilter: 'blur(16px) saturate(180%)',\n backgroundColor: 'rgba(18, 18, 18, .70)',\n overflowY: 'auto',\n width: '100%',\n }}\n color={theme.palette.primary.main}\n >\n <FlexCol alignItems=\"stretch\" sx={{ flexFlow: 'column', maxHeight: 400 }}>\n <FlexCol alignItems=\"stretch\" sx={{ flex: '0 1 auto' }}>\n <ButtonEx variant=\"text\" onClick={() => setDisplayEvents(!displayEvents)}>\n XY Pixel Debugger\n </ButtonEx>\n </FlexCol>\n {displayEvents && events.length > 0 && (\n <FlexCol\n alignItems=\"stretch\"\n alignContent=\"start\"\n padding={2}\n sx={{ cursor: 'pointer', flex: '1 1 auto', overflowY: 'auto', userSelect: 'none' }}\n >\n {events.map((e, index) => (\n <PixelEventDetails key={`${e.event}-${index}`} events={events} index={index} {...e} />\n ))}\n </FlexCol>\n )}\n {displayEvents && events.length === 0 && <Typography variant=\"subtitle2\">No Events</Typography>}\n </FlexCol>\n </Card>\n </Badge>\n </div>\n </Portal>\n )\n}\n\nconst PixelEventDetails: React.FC<PixelEvent & { events: PixelEvent[]; index: number }> = ({ event, fields, index, events }) => {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <FlexCol alignItems=\"stretch\" marginBottom={0.5} onClick={() => setIsOpen(!isOpen)}>\n <Typography variant=\"subtitle2\">{event}</Typography>\n {isOpen && (\n <Typography marginBottom={0.5} variant=\"caption\">\n {JSON.stringify(fields, null, 2)}\n </Typography>\n )}\n {events[index + 1] && <Divider />}\n </FlexCol>\n )\n}\n","import { XyPixel } from '@xylabs/pixel'\nimport { useEffect, useState } from 'react'\n\nexport const usePixelAltSendHandler = (altHandler: (event: string, fields?: Record<string, unknown>) => void) => {\n const [pixelSend, setPixelSend] = useState<typeof XyPixel.instance.send>()\n useEffect(() => {\n if (!pixelSend && XyPixel.instance.send) {\n const oldHandler = XyPixel.instance.send.bind(XyPixel.instance)\n setPixelSend(oldHandler)\n } else {\n XyPixel.instance.send = async (event: string, fields?: Record<string, unknown>, eventId?: string) => {\n altHandler(event, fields)\n return await pixelSend?.(event, fields, eventId)\n }\n }\n return () => {\n // restore send on unmount\n if (pixelSend) {\n XyPixel.instance.send = pixelSend\n }\n }\n }, [pixelSend, altHandler])\n}\n","import { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useLocalStorage } from '@xylabs/react-shared'\nimport React, { useMemo } from 'react'\n\nexport const PixelDebuggerProvider: React.FC<WithChildren> = ({ children }) => {\n const [isDebugging, setIsDebugging] = useLocalStorage<boolean>('isDebuggingPixel', false)\n const value = useMemo(() => ({ isDebugging, setIsDebugging }), [isDebugging, setIsDebugging])\n return <DebugUserEventsContext.Provider value={value}>{children}</DebugUserEventsContext.Provider>\n}\n","import { FormControl, FormLabel, Switch } from '@mui/material'\nimport type { BusyBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport React, { useContext } from 'react'\n\nexport const PixelDebuggerToggle: React.FC<BusyBoxProps> = ({ ...props }) => {\n const { setIsDebugging, isDebugging } = useContext(DebugUserEventsContext)\n\n return (\n <FlexRow {...props}>\n <FormControl>\n <FormLabel>Enable Debugger</FormLabel>\n <Switch checked={isDebugging} onClick={() => setIsDebugging(!isDebugging)} />\n </FormControl>\n </FlexRow>\n )\n}\n"],"mappings":"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","names":["Badge","Card","Divider","Typography","useTheme","ButtonEx","FlexCol","DebugUserEventsContext","Portal","React","useContext","useState","XyPixel","useEffect","useState","usePixelAltSendHandler","altHandler","pixelSend","setPixelSend","useState","useEffect","XyPixel","instance","send","oldHandler","bind","event","fields","eventId","PixelDebugger","isDebugging","useContext","DebugUserEventsContext","theme","useTheme","displayEvents","setDisplayEvents","useState","events","setEvents","usePixelAltSendHandler","event","fields","Portal","div","style","bottom","left","position","width","Badge","badgeContent","length","color","sx","Card","variant","backdropFilter","backgroundColor","overflowY","palette","primary","main","FlexCol","alignItems","flexFlow","maxHeight","flex","ButtonEx","onClick","alignContent","padding","cursor","userSelect","map","e","index","PixelEventDetails","key","Typography","isOpen","setIsOpen","marginBottom","JSON","stringify","Divider","DebugUserEventsContext","useLocalStorage","React","useMemo","PixelDebuggerProvider","children","isDebugging","setIsDebugging","useLocalStorage","value","useMemo","React","DebugUserEventsContext","Provider","FormControl","FormLabel","Switch","FlexRow","DebugUserEventsContext","React","useContext","PixelDebuggerToggle","props","setIsDebugging","isDebugging","useContext","DebugUserEventsContext","React","FlexRow","FormControl","FormLabel","Switch","checked","onClick"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/PixelDebugger.tsx","../../src/hooks/usePixelAltSendHandler.ts","../../src/components/PixelDebuggerProvider.tsx","../../src/components/PixelDebuggerToggle.tsx"],"sourcesContent":["import {\n Badge, Card, Divider, Typography, useTheme,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport { Portal } from '@xylabs/react-portal'\nimport React, { useContext, useState } from 'react'\n\nimport { usePixelAltSendHandler } from '../hooks/index.ts'\nimport type { PixelEvent } from '../PixelEvent.ts'\n\nexport const PixelDebugger: React.FC = () => {\n const { isDebugging } = useContext(DebugUserEventsContext)\n // TODO - when adding in the location hook to detect location change, was dropping the setEvents in usePixelAltSendHand\n const theme = useTheme()\n const [displayEvents, setDisplayEvents] = useState(false)\n const [events, setEvents] = useState<PixelEvent[]>([])\n\n usePixelAltSendHandler((event: string, fields?: Record<string, unknown>) => {\n setEvents(events => [{ event, fields }, ...events])\n })\n\n if (!isDebugging) {\n return null\n }\n\n return (\n <Portal>\n <div style={{\n bottom: 0, left: 0, position: 'fixed', width: 350,\n }}\n >\n <Badge badgeContent={events.length} color=\"primary\" sx={{ width: '100%' }}>\n <Card\n variant=\"outlined\"\n sx={{\n backdropFilter: 'blur(16px) saturate(180%)',\n backgroundColor: 'rgba(18, 18, 18, .70)',\n overflowY: 'auto',\n width: '100%',\n }}\n color={theme.palette.primary.main}\n >\n <FlexCol\n alignItems=\"stretch\"\n sx={{ flexFlow: 'column', maxHeight: 400 }}\n >\n <FlexCol alignItems=\"stretch\" sx={{ flex: '0 1 auto' }}>\n <ButtonEx variant=\"text\" onClick={() => setDisplayEvents(!displayEvents)}>\n XY Pixel Debugger\n </ButtonEx>\n </FlexCol>\n {displayEvents && events.length > 0 && (\n <FlexCol\n alignItems=\"stretch\"\n alignContent=\"start\"\n padding={2}\n sx={{\n cursor: 'pointer', flex: '1 1 auto', overflowY: 'auto', userSelect: 'none',\n }}\n >\n {events.map((e, index) => (\n // eslint-disable-next-line @eslint-react/no-duplicate-key\n <PixelEventDetails key={`${e.event}-${index}`} events={events} index={index} {...e} />\n ))}\n </FlexCol>\n )}\n {displayEvents && events.length === 0 && <Typography variant=\"subtitle2\">No Events</Typography>}\n </FlexCol>\n </Card>\n </Badge>\n </div>\n </Portal>\n )\n}\n\nconst PixelEventDetails: React.FC<PixelEvent & { events: PixelEvent[]; index: number }> = ({\n event, fields, index, events,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <FlexCol alignItems=\"stretch\" marginBottom={0.5} onClick={() => setIsOpen(!isOpen)}>\n <Typography variant=\"subtitle2\">{event}</Typography>\n {isOpen && (\n <Typography marginBottom={0.5} variant=\"caption\">\n {JSON.stringify(fields, null, 2)}\n </Typography>\n )}\n {events[index + 1] && <Divider />}\n </FlexCol>\n )\n}\n","import { XyPixel } from '@xylabs/pixel'\nimport { useEffect, useState } from 'react'\n\nexport const usePixelAltSendHandler = (altHandler: (event: string, fields?: Record<string, unknown>) => void) => {\n const [pixelSend, setPixelSend] = useState<typeof XyPixel.instance.send>()\n useEffect(() => {\n if (!pixelSend && XyPixel.instance.send) {\n const oldHandler = XyPixel.instance.send.bind(XyPixel.instance)\n setPixelSend(oldHandler)\n } else {\n XyPixel.instance.send = async (event: string, fields?: Record<string, unknown>, eventId?: string) => {\n altHandler(event, fields)\n return await pixelSend?.(event, fields, eventId)\n }\n }\n return () => {\n // restore send on unmount\n if (pixelSend) {\n XyPixel.instance.send = pixelSend\n }\n }\n }, [pixelSend, altHandler])\n}\n","import { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useLocalStorage } from '@xylabs/react-shared'\nimport React, { useMemo } from 'react'\n\nexport const PixelDebuggerProvider: React.FC<WithChildren> = ({ children }) => {\n const [isDebugging, setIsDebugging] = useLocalStorage<boolean>('isDebuggingPixel', false)\n const value = useMemo(() => ({ isDebugging, setIsDebugging }), [isDebugging, setIsDebugging])\n return <DebugUserEventsContext.Provider value={value}>{children}</DebugUserEventsContext.Provider>\n}\n","import {\n FormControl, FormLabel, Switch,\n} from '@mui/material'\nimport type { BusyBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DebugUserEventsContext } from '@xylabs/react-pixel'\nimport React, { useContext } from 'react'\n\nexport const PixelDebuggerToggle: React.FC<BusyBoxProps> = ({ ...props }) => {\n const { setIsDebugging, isDebugging } = useContext(DebugUserEventsContext)\n\n return (\n <FlexRow {...props}>\n <FormControl>\n <FormLabel>Enable Debugger</FormLabel>\n <Switch checked={isDebugging} onClick={() => setIsDebugging(!isDebugging)} />\n </FormControl>\n </FlexRow>\n )\n}\n"],"mappings":"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","names":["Badge","Card","Divider","Typography","useTheme","ButtonEx","FlexCol","DebugUserEventsContext","Portal","React","useContext","useState","XyPixel","useEffect","useState","usePixelAltSendHandler","altHandler","pixelSend","setPixelSend","useState","useEffect","XyPixel","instance","send","oldHandler","bind","event","fields","eventId","PixelDebugger","isDebugging","useContext","DebugUserEventsContext","theme","useTheme","displayEvents","setDisplayEvents","useState","events","setEvents","usePixelAltSendHandler","event","fields","Portal","div","style","bottom","left","position","width","Badge","badgeContent","length","color","sx","Card","variant","backdropFilter","backgroundColor","overflowY","palette","primary","main","FlexCol","alignItems","flexFlow","maxHeight","flex","ButtonEx","onClick","alignContent","padding","cursor","userSelect","map","e","index","PixelEventDetails","key","Typography","isOpen","setIsOpen","marginBottom","JSON","stringify","Divider","DebugUserEventsContext","useLocalStorage","React","useMemo","PixelDebuggerProvider","children","isDebugging","setIsDebugging","useLocalStorage","value","useMemo","React","DebugUserEventsContext","Provider","FormControl","FormLabel","Switch","FlexRow","DebugUserEventsContext","React","useContext","PixelDebuggerToggle","props","setIsDebugging","isDebugging","useContext","DebugUserEventsContext","React","FlexRow","FormControl","FormLabel","Switch","checked","onClick"]}
|
package/package.json
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/react-pixel-debugger",
|
|
3
|
+
"version": "4.0.5",
|
|
4
|
+
"description": "Common React library for all XY Labs projects that use React",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"utility",
|
|
7
|
+
"typescript",
|
|
8
|
+
"react"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://xylabs.com",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "git+https://github.com/xylabs/sdk-react/issues",
|
|
13
|
+
"email": "support@xylabs.com"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/xylabs/sdk-react.git"
|
|
18
|
+
},
|
|
19
|
+
"license": "LGPL-3.0-only",
|
|
3
20
|
"author": {
|
|
4
|
-
"email": "support@xylabs.com",
|
|
5
21
|
"name": "XY Labs Development Team",
|
|
22
|
+
"email": "support@xylabs.com",
|
|
6
23
|
"url": "https://xylabs.com"
|
|
7
24
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"type": "module",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/browser/index.d.ts",
|
|
30
|
+
"default": "./dist/browser/index.mjs"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
11
33
|
},
|
|
34
|
+
"module": "./dist/browser/index.mjs",
|
|
35
|
+
"types": "dist/browser/index.d.ts",
|
|
12
36
|
"workspaces": [
|
|
13
37
|
"packages/*"
|
|
14
38
|
],
|
|
15
39
|
"dependencies": {
|
|
16
40
|
"@xylabs/pixel": "^2.0.1",
|
|
17
|
-
"@xylabs/react-button": "^4.0.
|
|
18
|
-
"@xylabs/react-flexbox": "^4.0.
|
|
19
|
-
"@xylabs/react-pixel": "^4.0.
|
|
20
|
-
"@xylabs/react-portal": "^4.0.
|
|
21
|
-
"@xylabs/react-shared": "^4.0.
|
|
22
|
-
"axios": "^1.7.
|
|
41
|
+
"@xylabs/react-button": "^4.0.5",
|
|
42
|
+
"@xylabs/react-flexbox": "^4.0.5",
|
|
43
|
+
"@xylabs/react-pixel": "^4.0.5",
|
|
44
|
+
"@xylabs/react-portal": "^4.0.5",
|
|
45
|
+
"@xylabs/react-shared": "^4.0.5",
|
|
46
|
+
"axios": "^1.7.5"
|
|
23
47
|
},
|
|
24
|
-
"description": "Common React library for all XY Labs projects that use React",
|
|
25
48
|
"devDependencies": {
|
|
26
|
-
"@mui/material": "^
|
|
49
|
+
"@mui/material": "^6.0.1",
|
|
27
50
|
"@storybook/react": "^8.2.9",
|
|
28
|
-
"@types/react": "^18.3.
|
|
29
|
-
"@xylabs/ts-scripts-yarn3": "^4.0.
|
|
30
|
-
"@xylabs/tsconfig-react": "^4.0.
|
|
51
|
+
"@types/react": "^18.3.5",
|
|
52
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.7",
|
|
53
|
+
"@xylabs/tsconfig-react": "^4.0.7",
|
|
31
54
|
"react": "^18.3.1",
|
|
32
55
|
"react-dom": "^18.3.1",
|
|
33
56
|
"storybook": "^8.2.9",
|
|
34
57
|
"typescript": "^5.5.4"
|
|
35
58
|
},
|
|
36
59
|
"peerDependencies": {
|
|
37
|
-
"@mui/material": "
|
|
60
|
+
"@mui/material": ">5",
|
|
38
61
|
"react": "^18",
|
|
39
62
|
"react-dom": "^18"
|
|
40
63
|
},
|
|
41
|
-
"exports": {
|
|
42
|
-
".": {
|
|
43
|
-
"types": "./dist/browser/index.d.ts",
|
|
44
|
-
"default": "./dist/browser/index.mjs"
|
|
45
|
-
},
|
|
46
|
-
"./package.json": "./package.json"
|
|
47
|
-
},
|
|
48
|
-
"types": "dist/browser/index.d.ts",
|
|
49
|
-
"module": "./dist/browser/index.mjs",
|
|
50
|
-
"homepage": "https://xylabs.com",
|
|
51
|
-
"keywords": [
|
|
52
|
-
"utility",
|
|
53
|
-
"typescript",
|
|
54
|
-
"react"
|
|
55
|
-
],
|
|
56
|
-
"license": "LGPL-3.0-only",
|
|
57
64
|
"publishConfig": {
|
|
58
65
|
"access": "public"
|
|
59
|
-
}
|
|
60
|
-
"repository": {
|
|
61
|
-
"type": "git",
|
|
62
|
-
"url": "git+https://github.com/xylabs/sdk-react.git"
|
|
63
|
-
},
|
|
64
|
-
"sideEffects": false,
|
|
65
|
-
"version": "4.0.3",
|
|
66
|
-
"type": "module"
|
|
66
|
+
}
|
|
67
67
|
}
|
|
@@ -10,11 +10,7 @@ import { PixelDebuggerToggle } from './PixelDebuggerToggle.tsx'
|
|
|
10
10
|
const StorybookEntry = {
|
|
11
11
|
argTypes: {},
|
|
12
12
|
component: PixelDebuggerToggle,
|
|
13
|
-
parameters: {
|
|
14
|
-
docs: {
|
|
15
|
-
page: null,
|
|
16
|
-
},
|
|
17
|
-
},
|
|
13
|
+
parameters: { docs: { page: null } },
|
|
18
14
|
title: 'pixel-debugger/PixelDebuggerToggle',
|
|
19
15
|
} as Meta<typeof PixelDebuggerToggle>
|
|
20
16
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Badge, Card, Divider, Typography, useTheme,
|
|
3
|
+
} from '@mui/material'
|
|
2
4
|
import { ButtonEx } from '@xylabs/react-button'
|
|
3
5
|
import { FlexCol } from '@xylabs/react-flexbox'
|
|
4
6
|
import { DebugUserEventsContext } from '@xylabs/react-pixel'
|
|
@@ -25,7 +27,10 @@ export const PixelDebugger: React.FC = () => {
|
|
|
25
27
|
|
|
26
28
|
return (
|
|
27
29
|
<Portal>
|
|
28
|
-
<div style={{
|
|
30
|
+
<div style={{
|
|
31
|
+
bottom: 0, left: 0, position: 'fixed', width: 350,
|
|
32
|
+
}}
|
|
33
|
+
>
|
|
29
34
|
<Badge badgeContent={events.length} color="primary" sx={{ width: '100%' }}>
|
|
30
35
|
<Card
|
|
31
36
|
variant="outlined"
|
|
@@ -37,7 +42,10 @@ export const PixelDebugger: React.FC = () => {
|
|
|
37
42
|
}}
|
|
38
43
|
color={theme.palette.primary.main}
|
|
39
44
|
>
|
|
40
|
-
<FlexCol
|
|
45
|
+
<FlexCol
|
|
46
|
+
alignItems="stretch"
|
|
47
|
+
sx={{ flexFlow: 'column', maxHeight: 400 }}
|
|
48
|
+
>
|
|
41
49
|
<FlexCol alignItems="stretch" sx={{ flex: '0 1 auto' }}>
|
|
42
50
|
<ButtonEx variant="text" onClick={() => setDisplayEvents(!displayEvents)}>
|
|
43
51
|
XY Pixel Debugger
|
|
@@ -48,9 +56,12 @@ export const PixelDebugger: React.FC = () => {
|
|
|
48
56
|
alignItems="stretch"
|
|
49
57
|
alignContent="start"
|
|
50
58
|
padding={2}
|
|
51
|
-
sx={{
|
|
59
|
+
sx={{
|
|
60
|
+
cursor: 'pointer', flex: '1 1 auto', overflowY: 'auto', userSelect: 'none',
|
|
61
|
+
}}
|
|
52
62
|
>
|
|
53
63
|
{events.map((e, index) => (
|
|
64
|
+
// eslint-disable-next-line @eslint-react/no-duplicate-key
|
|
54
65
|
<PixelEventDetails key={`${e.event}-${index}`} events={events} index={index} {...e} />
|
|
55
66
|
))}
|
|
56
67
|
</FlexCol>
|
|
@@ -64,7 +75,9 @@ export const PixelDebugger: React.FC = () => {
|
|
|
64
75
|
)
|
|
65
76
|
}
|
|
66
77
|
|
|
67
|
-
const PixelEventDetails: React.FC<PixelEvent & { events: PixelEvent[]; index: number }> = ({
|
|
78
|
+
const PixelEventDetails: React.FC<PixelEvent & { events: PixelEvent[]; index: number }> = ({
|
|
79
|
+
event, fields, index, events,
|
|
80
|
+
}) => {
|
|
68
81
|
const [isOpen, setIsOpen] = useState(false)
|
|
69
82
|
return (
|
|
70
83
|
<FlexCol alignItems="stretch" marginBottom={0.5} onClick={() => setIsOpen(!isOpen)}>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
FormControl, FormLabel, Switch,
|
|
3
|
+
} from '@mui/material'
|
|
2
4
|
import type { BusyBoxProps } from '@xylabs/react-flexbox'
|
|
3
5
|
import { FlexRow } from '@xylabs/react-flexbox'
|
|
4
6
|
import { DebugUserEventsContext } from '@xylabs/react-pixel'
|