@kanaries/graphic-walker 0.2.14 → 0.2.15
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/App.d.ts +3 -2
- package/dist/components/callout.d.ts +2 -0
- package/dist/components/toolbar/components.d.ts +4 -1
- package/dist/components/toolbar/index.d.ts +2 -0
- package/dist/components/toolbar/toolbar-item.d.ts +3 -0
- package/dist/components/tooltip.d.ts +2 -0
- package/dist/fields/components.d.ts +0 -1
- package/dist/fields/filterField/filterEditDialog.d.ts +1 -1
- package/dist/graphic-walker.es.js +15103 -14997
- package/dist/graphic-walker.es.js.map +1 -1
- package/dist/graphic-walker.umd.js +134 -264
- package/dist/graphic-walker.umd.js.map +1 -1
- package/dist/interfaces.d.ts +2 -0
- package/dist/renderer/index.d.ts +6 -4
- package/dist/utils/media.d.ts +2 -1
- package/dist/vis/react-vega.d.ts +4 -2
- package/dist/vis/theme.d.ts +36 -20
- package/dist/visualSettings/index.d.ts +2 -1
- package/package.json +1 -1
- package/src/App.tsx +19 -14
- package/src/components/callout.tsx +9 -7
- package/src/components/clickMenu.tsx +1 -7
- package/src/components/modal.tsx +1 -15
- package/src/components/sizeSetting.tsx +2 -2
- package/src/components/tabs/editableTab.tsx +2 -2
- package/src/components/toolbar/components.tsx +8 -23
- package/src/components/toolbar/index.tsx +11 -4
- package/src/components/toolbar/toolbar-button.tsx +2 -1
- package/src/components/toolbar/toolbar-item.tsx +17 -12
- package/src/components/toolbar/toolbar-select-button.tsx +9 -13
- package/src/components/toolbar/toolbar-toggle-button.tsx +2 -1
- package/src/components/tooltip.tsx +10 -6
- package/src/dataSource/dataSelection/csvData.tsx +1 -1
- package/src/dataSource/index.tsx +2 -3
- package/src/fields/components.tsx +13 -50
- package/src/fields/datasetFields/index.tsx +3 -4
- package/src/fields/encodeFields/singleEncodeEditor.tsx +1 -1
- package/src/fields/filterField/filterEditDialog.tsx +63 -99
- package/src/fields/filterField/slider.tsx +1 -1
- package/src/insightBoard/mainBoard.tsx +9 -2
- package/src/interfaces.ts +4 -1
- package/src/locales/en-US.json +5 -2
- package/src/locales/i18n.ts +7 -0
- package/src/locales/ja-JP.json +195 -0
- package/src/locales/zh-CN.json +5 -2
- package/src/renderer/index.tsx +96 -71
- package/src/utils/media.ts +16 -11
- package/src/vis/react-vega.tsx +18 -3
- package/src/vis/theme.ts +23 -25
- package/src/visualSettings/index.tsx +12 -32
- package/dist/components/container.d.ts +0 -2
- package/src/components/container.tsx +0 -25
|
@@ -29,38 +29,14 @@ import { useTranslation } from 'react-i18next';
|
|
|
29
29
|
import { ResizeDialog } from '../components/sizeSetting';
|
|
30
30
|
import { GEMO_TYPES, STACK_MODE, CHART_LAYOUT_TYPE } from '../config';
|
|
31
31
|
import { useGlobalStore } from '../store';
|
|
32
|
-
import { IStackMode, EXPLORATION_TYPES, IBrushDirection, BRUSH_DIRECTIONS } from '../interfaces';
|
|
32
|
+
import { IStackMode, EXPLORATION_TYPES, IBrushDirection, BRUSH_DIRECTIONS, IDarkMode } from '../interfaces';
|
|
33
33
|
import { IReactVegaHandler } from '../vis/react-vega';
|
|
34
34
|
import Toolbar, { ToolbarItemProps } from '../components/toolbar';
|
|
35
35
|
import { ButtonWithShortcut } from './menubar';
|
|
36
|
+
import { useCurrentMediaTheme } from '../utils/media';
|
|
36
37
|
import throttle from '../utils/throttle';
|
|
37
38
|
|
|
38
39
|
|
|
39
|
-
export const LiteContainer = styled.div`
|
|
40
|
-
margin: 0.2em;
|
|
41
|
-
border: 1px solid #e5e7eb;
|
|
42
|
-
padding: 1em;
|
|
43
|
-
background-color: #fff;
|
|
44
|
-
@media (prefers-color-scheme: dark) {
|
|
45
|
-
background-color: #000;
|
|
46
|
-
border: 1px solid #4b5563;
|
|
47
|
-
}
|
|
48
|
-
.menu-root {
|
|
49
|
-
position: relative;
|
|
50
|
-
& > *:not(.trigger) {
|
|
51
|
-
display: flex;
|
|
52
|
-
flex-direction: column;
|
|
53
|
-
position: absolute;
|
|
54
|
-
right: 0;
|
|
55
|
-
top: 100%;
|
|
56
|
-
border: 1px solid #8884;
|
|
57
|
-
}
|
|
58
|
-
&:not(:hover) > *:not(.trigger):not(:hover) {
|
|
59
|
-
display: none;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
`;
|
|
63
|
-
|
|
64
40
|
const Invisible = styled.div`
|
|
65
41
|
clip: rect(1px, 1px, 1px, 1px);
|
|
66
42
|
clip-path: inset(50%);
|
|
@@ -79,16 +55,17 @@ const FormContainer = styled.div`
|
|
|
79
55
|
display: flex;
|
|
80
56
|
flex-direction: column;
|
|
81
57
|
color: #444;
|
|
82
|
-
|
|
58
|
+
.dark {
|
|
83
59
|
color: #aaa;
|
|
84
60
|
}
|
|
85
61
|
`;
|
|
86
62
|
|
|
87
63
|
interface IVisualSettings {
|
|
64
|
+
darkModePreference: IDarkMode;
|
|
88
65
|
rendererHandler?: React.RefObject<IReactVegaHandler>;
|
|
89
66
|
}
|
|
90
67
|
|
|
91
|
-
const VisualSettings: React.FC<IVisualSettings> = ({ rendererHandler }) => {
|
|
68
|
+
const VisualSettings: React.FC<IVisualSettings> = ({ rendererHandler, darkModePreference }) => {
|
|
92
69
|
const { vizStore } = useGlobalStore();
|
|
93
70
|
const { visualConfig, canUndo, canRedo } = vizStore;
|
|
94
71
|
const { t: tGlobal } = useTranslation();
|
|
@@ -107,6 +84,8 @@ const VisualSettings: React.FC<IVisualSettings> = ({ rendererHandler }) => {
|
|
|
107
84
|
rendererHandler?.current?.downloadSVG();
|
|
108
85
|
}, 200), [rendererHandler]);
|
|
109
86
|
|
|
87
|
+
const dark = useCurrentMediaTheme(darkModePreference) === 'dark';
|
|
88
|
+
|
|
110
89
|
const items = useMemo<ToolbarItemProps[]>(() => {
|
|
111
90
|
return [
|
|
112
91
|
{
|
|
@@ -338,16 +317,16 @@ const VisualSettings: React.FC<IVisualSettings> = ({ rendererHandler }) => {
|
|
|
338
317
|
label: t('button.export_chart'),
|
|
339
318
|
icon: PhotoIcon,
|
|
340
319
|
form: (
|
|
341
|
-
<FormContainer>
|
|
320
|
+
<FormContainer className={dark ? 'dark' : ''}>
|
|
342
321
|
<button
|
|
343
|
-
className=
|
|
322
|
+
className={`text-xs pt-1 pb-1 pl-6 pr-6 ${dark ? 'dark bg-zinc-900 text-gray-100 hover:bg-gray-700' : 'bg-white hover:bg-gray-200 text-gray-800'}`}
|
|
344
323
|
aria-label={t('button.export_chart_as', { type: 'png' })}
|
|
345
324
|
onClick={() => downloadPNG()}
|
|
346
325
|
>
|
|
347
326
|
{t('button.export_chart_as', { type: 'png' })}
|
|
348
327
|
</button>
|
|
349
328
|
<button
|
|
350
|
-
className=
|
|
329
|
+
className={`text-xs pt-1 pb-1 pl-6 pr-6 ${dark ? 'dark bg-zinc-900 text-gray-100 hover:bg-gray-700' : 'bg-white hover:bg-gray-200 text-gray-800'}`}
|
|
351
330
|
aria-label={t('button.export_chart_as', { type: 'svg' })}
|
|
352
331
|
onClick={() => downloadSVG()}
|
|
353
332
|
>
|
|
@@ -357,10 +336,11 @@ const VisualSettings: React.FC<IVisualSettings> = ({ rendererHandler }) => {
|
|
|
357
336
|
),
|
|
358
337
|
},
|
|
359
338
|
] as ToolbarItemProps[];
|
|
360
|
-
}, [vizStore, canUndo, canRedo, defaultAggregated, markType, stack, interactiveScale, sizeMode, width, height, explorationMode, brushDirection, showActions, downloadPNG, downloadSVG]);
|
|
339
|
+
}, [vizStore, canUndo, canRedo, defaultAggregated, markType, stack, interactiveScale, sizeMode, width, height, explorationMode, brushDirection, showActions, downloadPNG, downloadSVG, dark]);
|
|
361
340
|
|
|
362
341
|
return <div style={{ margin: '0.38em 0.28em 0.2em 0.18em' }}>
|
|
363
342
|
<Toolbar
|
|
343
|
+
darkModePreference={darkModePreference}
|
|
364
344
|
items={items}
|
|
365
345
|
styles={{
|
|
366
346
|
root: {
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import styled from "styled-components";
|
|
2
|
-
|
|
3
|
-
export const Container = styled.div`
|
|
4
|
-
border: 1px solid #e5e7eb;
|
|
5
|
-
padding: 1em;
|
|
6
|
-
margin: 1em;
|
|
7
|
-
background-color: #fff;
|
|
8
|
-
// dark theme
|
|
9
|
-
@media (prefers-color-scheme: dark) {
|
|
10
|
-
background-color: #000;
|
|
11
|
-
border: 1px solid #4b5563;
|
|
12
|
-
}
|
|
13
|
-
`;
|
|
14
|
-
|
|
15
|
-
export const NestContainer = styled.div`
|
|
16
|
-
border: 1px solid #e5e7eb;
|
|
17
|
-
padding: 0.4em;
|
|
18
|
-
font-size: 12px;
|
|
19
|
-
margin: 0.2em;
|
|
20
|
-
background-color: #fff;
|
|
21
|
-
@media (prefers-color-scheme: dark) {
|
|
22
|
-
background-color: #000;
|
|
23
|
-
border: 1px solid #4b5563;
|
|
24
|
-
}
|
|
25
|
-
`;
|