@perspective-dev/viewer 5.2.0 → 5.3.1

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 (179) hide show
  1. package/dist/cdn/perspective-viewer.js +8 -8
  2. package/dist/cdn/perspective-viewer.js.map +3 -3
  3. package/dist/css/blueprint.css +1 -0
  4. package/dist/css/botanical.css +1 -1
  5. package/dist/css/dracula.css +1 -1
  6. package/dist/css/eggplant.css +1 -0
  7. package/dist/css/gruvbox-dark.css +1 -1
  8. package/dist/css/gruvbox.css +1 -1
  9. package/dist/css/icons.css +1 -1
  10. package/dist/css/intl/de.css +1 -1
  11. package/dist/css/intl/es.css +1 -1
  12. package/dist/css/intl/fr.css +1 -1
  13. package/dist/css/intl/ja.css +1 -1
  14. package/dist/css/intl/pt.css +1 -1
  15. package/dist/css/intl/zh.css +1 -1
  16. package/dist/css/intl.css +1 -1
  17. package/dist/css/ledger.css +1 -0
  18. package/dist/css/monokai.css +1 -1
  19. package/dist/css/nord.css +1 -0
  20. package/dist/css/phosphor.css +1 -1
  21. package/dist/css/pro-dark.css +1 -1
  22. package/dist/css/pro.css +1 -1
  23. package/dist/css/solarized-dark.css +1 -1
  24. package/dist/css/solarized.css +1 -1
  25. package/dist/css/themes.css +1 -1
  26. package/dist/css/vaporwave.css +1 -1
  27. package/dist/css/velvet.css +1 -0
  28. package/dist/docs/perspective-docs.json +1 -1
  29. package/dist/esm/column-format.d.ts +16 -3
  30. package/dist/esm/perspective-viewer.d.ts +1 -0
  31. package/dist/esm/perspective-viewer.inline.js +9 -9
  32. package/dist/esm/perspective-viewer.inline.js.map +3 -3
  33. package/dist/esm/perspective-viewer.js +8 -8
  34. package/dist/esm/perspective-viewer.js.map +3 -3
  35. package/dist/esm/plugin.d.ts +10 -0
  36. package/dist/esm/ts-rs/PanelViewerConfig.d.ts +1 -1
  37. package/dist/esm/ts-rs/SaveWorkspaceOptions.d.ts +10 -0
  38. package/dist/esm/ts-rs/ViewerConfig.d.ts +1 -1
  39. package/dist/esm/ts-rs/WorkspaceConfig.d.ts +9 -1
  40. package/dist/esm/ts-rs/WorkspaceConfigUpdate.d.ts +13 -3
  41. package/dist/wasm/perspective-viewer.d.ts +43 -36
  42. package/dist/wasm/perspective-viewer.js +198 -136
  43. package/dist/wasm/perspective-viewer.wasm +0 -0
  44. package/dist/wasm/perspective-viewer.wasm.d.ts +19 -17
  45. package/package.json +1 -1
  46. package/src/css/column-settings-panel.css +28 -5
  47. package/src/css/column-style.css +291 -31
  48. package/src/css/containers/tabs.css +13 -3
  49. package/src/css/dom/select.css +21 -9
  50. package/src/css/form/code-editor.css +4 -4
  51. package/src/css/plugin-selector.css +1 -0
  52. package/src/css/plugin-settings-panel.css +72 -0
  53. package/src/css/viewer.css +0 -5
  54. package/src/rust/agent/tools.rs +53 -19
  55. package/src/rust/components/column_selector/active_column.rs +2 -2
  56. package/src/rust/components/column_selector/add_expression_button.rs +3 -3
  57. package/src/rust/components/column_selector/aggregate_selector.rs +2 -3
  58. package/src/rust/components/column_selector/config_selector.rs +8 -0
  59. package/src/rust/components/column_selector/expr_edit_button.rs +4 -10
  60. package/src/rust/components/column_selector/inactive_column.rs +2 -2
  61. package/src/rust/components/column_selector.rs +48 -4
  62. package/src/rust/components/column_settings_sidebar/style_tab/primitive_field.rs +293 -126
  63. package/src/rust/components/column_settings_sidebar/style_tab.rs +330 -234
  64. package/src/rust/components/column_settings_sidebar.rs +88 -69
  65. package/src/rust/components/containers/control_group.rs +91 -0
  66. package/src/rust/components/containers/mod.rs +1 -0
  67. package/src/rust/components/containers/select.rs +8 -2
  68. package/src/rust/components/datetime_column_style/simple.rs +15 -4
  69. package/src/rust/components/datetime_column_style.rs +50 -10
  70. package/src/rust/components/editable_header.rs +85 -144
  71. package/src/rust/components/expression_editor.rs +9 -16
  72. package/src/rust/components/form/code_editor.rs +16 -6
  73. package/src/rust/components/form/debug.rs +1 -0
  74. package/src/rust/components/form/mod.rs +3 -1
  75. package/src/rust/components/form/multi_stop_gradient_selector.rs +476 -0
  76. package/src/rust/components/form/named_value_picker.rs +86 -0
  77. package/src/rust/components/form/palette_selector.rs +440 -0
  78. package/src/rust/components/main_panel/msg.rs +2 -2
  79. package/src/rust/components/main_panel/reconcile.rs +4 -4
  80. package/src/rust/components/plugin_tab.rs +126 -112
  81. package/src/rust/components/settings_panel.rs +26 -20
  82. package/src/rust/components/status_bar.rs +0 -1
  83. package/src/rust/components/style_controls/number_string_format/digits_section.rs +22 -10
  84. package/src/rust/components/style_controls/number_string_format/misc_section.rs +6 -2
  85. package/src/rust/components/style_controls/number_string_format/style_section.rs +1 -0
  86. package/src/rust/components/style_controls/number_string_format/types.rs +24 -0
  87. package/src/rust/components/style_controls/number_string_format.rs +37 -14
  88. package/src/rust/components/viewer/msg.rs +46 -7
  89. package/src/rust/components/viewer/panels.rs +11 -9
  90. package/src/rust/components/viewer/render.rs +8 -3
  91. package/src/rust/components/viewer/settings.rs +163 -23
  92. package/src/rust/components/viewer/snapshots.rs +46 -21
  93. package/src/rust/components/viewer/wiring.rs +14 -25
  94. package/src/rust/components/viewer.rs +12 -8
  95. package/src/rust/config/column_config_schema.rs +435 -45
  96. package/src/rust/config/css_scale.rs +882 -0
  97. package/src/rust/config/datetime_column_style.rs +4 -21
  98. package/src/rust/config/mod.rs +2 -0
  99. package/src/rust/config/number_string_format.rs +211 -18
  100. package/src/rust/config/options.rs +10 -0
  101. package/src/rust/config/viewer_config.rs +49 -55
  102. package/src/rust/config/workspace_config.rs +132 -5
  103. package/src/rust/custom_elements/viewer.rs +214 -155
  104. package/src/rust/custom_events.rs +14 -1
  105. package/src/rust/js/regular_layout.rs +3 -3
  106. package/src/rust/lib.rs +2 -0
  107. package/src/rust/presentation/column_locator.rs +19 -5
  108. package/src/rust/presentation.rs +209 -36
  109. package/src/rust/queries/column_locator.rs +74 -44
  110. package/src/rust/queries/get_viewer_config.rs +0 -3
  111. package/src/rust/queries/mod.rs +2 -0
  112. package/src/rust/queries/palette_set.rs +82 -0
  113. package/src/rust/queries/plugin_column_styles.rs +6 -2
  114. package/src/rust/renderer/dispatch.rs +50 -12
  115. package/src/rust/renderer/plugin_config.rs +362 -53
  116. package/src/rust/renderer.rs +15 -42
  117. package/src/rust/session/column_defaults_update.rs +15 -8
  118. package/src/rust/session/metadata.rs +5 -1
  119. package/src/rust/session/props.rs +1 -0
  120. package/src/rust/session.rs +9 -6
  121. package/src/rust/tasks/create_panel.rs +44 -57
  122. package/src/rust/tasks/edit_expression.rs +19 -23
  123. package/src/rust/tasks/edit_window.rs +8 -10
  124. package/src/rust/tasks/eject.rs +4 -1
  125. package/src/rust/tasks/pipeline.rs +2 -2
  126. package/src/rust/tasks/presize_panels.rs +44 -5
  127. package/src/rust/tasks/reset_all.rs +4 -4
  128. package/src/rust/tasks/restore_and_render.rs +17 -44
  129. package/src/rust/tasks/restore_panel.rs +11 -13
  130. package/src/rust/tasks/set_edit_mode.rs +3 -1
  131. package/src/rust/tasks/sync_update_panels.rs +11 -1
  132. package/src/rust/tasks/update_theme.rs +23 -18
  133. package/src/rust/utils/css_vars.rs +26 -0
  134. package/src/rust/utils/mod.rs +2 -0
  135. package/src/rust/utils/spawn.rs +1 -1
  136. package/src/rust/workspace.rs +435 -272
  137. package/src/svg/lock.svg +7 -0
  138. package/src/themes/blueprint.css +190 -0
  139. package/src/themes/botanical.css +14 -17
  140. package/src/themes/defaults.css +4 -110
  141. package/src/themes/dracula.css +19 -14
  142. package/src/themes/eggplant.css +189 -0
  143. package/src/themes/gruvbox-dark.css +23 -15
  144. package/src/themes/gruvbox.css +11 -1
  145. package/src/themes/icons.css +2 -2
  146. package/src/themes/intl/de.css +23 -1
  147. package/src/themes/intl/es.css +23 -1
  148. package/src/themes/intl/fr.css +23 -1
  149. package/src/themes/intl/ja.css +23 -1
  150. package/src/themes/intl/pt.css +23 -1
  151. package/src/themes/intl/zh.css +23 -1
  152. package/src/themes/intl.css +26 -4
  153. package/src/themes/ledger.css +195 -0
  154. package/src/themes/monokai.css +24 -14
  155. package/src/themes/nord.css +186 -0
  156. package/src/themes/phosphor.css +7 -14
  157. package/src/themes/pro-dark.css +12 -16
  158. package/src/themes/pro.css +118 -0
  159. package/src/themes/solarized-dark.css +9 -16
  160. package/src/themes/solarized.css +7 -0
  161. package/src/themes/themes.css +10 -5
  162. package/src/themes/vaporwave.css +22 -14
  163. package/src/themes/velvet.css +192 -0
  164. package/src/ts/column-format.ts +52 -2
  165. package/src/ts/perspective-viewer.ts +1 -0
  166. package/src/ts/plugin.ts +14 -0
  167. package/src/ts/ts-rs/PanelViewerConfig.ts +1 -1
  168. package/src/ts/ts-rs/SaveWorkspaceOptions.ts +11 -0
  169. package/src/ts/ts-rs/ViewerConfig.ts +1 -1
  170. package/src/ts/ts-rs/WorkspaceConfig.ts +8 -2
  171. package/src/ts/ts-rs/WorkspaceConfigUpdate.ts +11 -3
  172. package/src/rust/components/form/color_range_selector.rs +0 -137
  173. package/src/svg/dropdown-selector-light.svg +0 -3
  174. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline0.js +0 -0
  175. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline1.js +0 -0
  176. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline2.js +0 -0
  177. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline3.js +0 -0
  178. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline4.js +0 -0
  179. /package/dist/wasm/snippets/{perspective-viewer-02e461f3d7062b26 → perspective-viewer-87bd21b215d0631a}/inline5.js +0 -0
@@ -0,0 +1,7 @@
1
+ <svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="6.5" y="9.5" width="8" height="7" stroke="#666" />
3
+ <path d="M13 9V8.5C13 7.11929 11.8807 6 10.5 6V6C9.11929 6 8 7.11929 8 8.5V9" stroke="#666" />
4
+ <path
5
+ d="M11.4911 13C11.4911 13.5523 11.0434 14 10.4911 14C9.93878 14 9.49107 13.5523 9.49107 13C9.49107 12.4477 9.93878 12 10.4911 12C11.0434 12 11.4911 12.4477 11.4911 13Z"
6
+ fill="#666" />
7
+ </svg>
@@ -0,0 +1,190 @@
1
+ /* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
2
+ * ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
3
+ * ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
4
+ * ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
5
+ * ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
6
+ * ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
7
+ * ┃ Copyright (c) 2017, the Perspective Authors. ┃
8
+ * ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
9
+ * ┃ This file is part of the Perspective library, distributed under the terms ┃
10
+ * ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
11
+ * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */
12
+
13
+ @import "./defaults.css";
14
+
15
+ perspective-viewer,
16
+ perspective-viewer[theme="Blueprint"],
17
+ perspective-viewer [theme="Blueprint"] {
18
+ --psp-theme-name: "Blueprint";
19
+ }
20
+
21
+ perspective-viewer[theme="Blueprint"],
22
+ perspective-viewer [theme="Blueprint"] {
23
+ --theme-bg0: #0c2f6b;
24
+ --theme-bg1: #103a80;
25
+ --theme-bg2: #1b478f;
26
+ --theme-bg3: #2a58a8;
27
+
28
+ --theme-fg0: #e6f0ff;
29
+ --theme-fg1: #a9c4ee;
30
+ --theme-fg2: #5b84c6;
31
+
32
+ --theme-line: #3b6fc4;
33
+ --theme-cyan: #7fd3ff;
34
+ --theme-yellow: #ffd166;
35
+ --theme-orange: #ff8a65;
36
+ --theme-green: #b8e986;
37
+ --theme-pink: #ff9ecf;
38
+ --theme-white: #ffffff;
39
+ --theme-lavender: #c3b1ff;
40
+ --theme-mint: #5ee7c7;
41
+ --theme-magenta: #f6a6ff;
42
+ --theme-sky: #9cc3ff;
43
+
44
+ background-color: var(--theme-bg0);
45
+ color: var(--theme-fg0);
46
+ color-scheme: dark;
47
+ --psp--color: var(--theme-fg0);
48
+ --psp-active--color: var(--theme-cyan);
49
+ --psp-error--color: var(--theme-orange);
50
+ --psp-inactive--color: var(--theme-fg2);
51
+ --psp-inactive--border-color: var(--theme-bg3);
52
+ --psp--background-color: var(--theme-bg0);
53
+ --psp-active--background: rgba(127, 211, 255, 0.3);
54
+ --psp-expression--operator--color: var(--theme-fg1);
55
+ --psp-expression--function--color: var(--theme-cyan);
56
+ --psp-expression--psp-error--color: var(--theme-orange);
57
+ --psp-calendar--filter: invert(1);
58
+ --psp-input--filter: invert(1);
59
+ --psp-warning--color: var(--theme-bg0);
60
+ --psp-warning--background: var(--theme-yellow);
61
+
62
+ --psp-status-icon--connected--color: var(--theme-green);
63
+ --psp-status-icon--initializing--color: var(--theme-yellow);
64
+ --psp-status-icon--psp-error--color: var(--theme-orange);
65
+
66
+ --psp-code-editor--symbol--color: var(--theme-fg0);
67
+ --psp-code-editor--literal--color: var(--theme-cyan);
68
+ --psp-code-editor--operator--color: var(--theme-yellow);
69
+ --psp-code-editor--comment--color: var(--theme-fg2);
70
+ --psp-code-editor--column--color: var(--theme-green);
71
+
72
+ --psp-datagrid--pos-cell--color: var(--theme-cyan);
73
+ --psp-datagrid--neg-cell--color: var(--theme-orange);
74
+ --psp-datagrid--hover--border-color: var(--theme-line);
75
+
76
+ --psp-charts--legend--color: var(--theme-fg1);
77
+ --psp-charts--treemap--labels: var(--theme-fg0);
78
+ --psp-charts--treemap--hover-highlight: var(--theme-white);
79
+ --psp-charts--tooltip--color: var(--theme-fg0);
80
+ --psp-charts--axis-ticks--color: var(--theme-fg0);
81
+ --psp-charts--axis-lines--color: var(--theme-fg2);
82
+ --psp-charts--gridline--color: var(--theme-bg2);
83
+ --psp-charts--tooltip--background: var(--theme-bg1);
84
+ --psp-charts--tooltip--border-color: var(--theme-line);
85
+ --psp-charts--legend--background: var(--psp--background-color);
86
+
87
+ --psp-charts--series--color: var(--theme-cyan);
88
+ --psp-charts--series-1--color: var(--theme-cyan);
89
+ --psp-charts--series-2--color: var(--theme-yellow);
90
+ --psp-charts--series-3--color: var(--theme-orange);
91
+ --psp-charts--series-4--color: var(--theme-green);
92
+ --psp-charts--series-5--color: var(--theme-pink);
93
+ --psp-charts--series-6--color: var(--theme-white);
94
+ --psp-charts--series-7--color: var(--theme-lavender);
95
+ --psp-charts--series-8--color: var(--theme-mint);
96
+ --psp-charts--series-9--color: var(--theme-magenta);
97
+ --psp-charts--series-10--color: var(--theme-sky);
98
+ --psp-datagrid--series-1--color: var(--theme-cyan);
99
+ --psp-datagrid--series-2--color: var(--theme-yellow);
100
+ --psp-datagrid--series-3--color: var(--theme-orange);
101
+ --psp-datagrid--series-4--color: var(--theme-green);
102
+ --psp-datagrid--series-5--color: var(--theme-pink);
103
+ --psp-datagrid--series-6--color: var(--theme-white);
104
+ --psp-datagrid--series-7--color: var(--theme-lavender);
105
+ --psp-datagrid--series-8--color: var(--theme-mint);
106
+ --psp-datagrid--series-9--color: var(--theme-magenta);
107
+ --psp-datagrid--series-10--color: var(--theme-sky);
108
+
109
+ --psp-charts--gradient--background: linear-gradient(
110
+ var(--theme-orange) 0%,
111
+ var(--theme-bg0) 50%,
112
+ var(--theme-cyan) 100%
113
+ );
114
+
115
+ --psp-openlayers--tile-url: "http://{a-c}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png";
116
+ --psp-openlayers--attribution--filter: invert(1) hue-rotate(180deg);
117
+ --psp-openlayers--element--background: var(--theme-bg1);
118
+ --psp-openlayers--category-1--color: var(--theme-cyan);
119
+ --psp-openlayers--category-2--color: var(--theme-yellow);
120
+ --psp-openlayers--category-3--color: var(--theme-orange);
121
+ --psp-openlayers--category-4--color: var(--theme-green);
122
+ --psp-openlayers--category-5--color: var(--theme-pink);
123
+ --psp-openlayers--category-6--color: var(--theme-white);
124
+ --psp-openlayers--category-7--color: var(--theme-lavender);
125
+ --psp-openlayers--category-8--color: var(--theme-mint);
126
+ --psp-openlayers--category-9--color: var(--theme-magenta);
127
+ --psp-openlayers--category-10--color: var(--theme-sky);
128
+ --psp-openlayers--gradient--background: linear-gradient(
129
+ var(--theme-orange) 0%,
130
+ var(--theme-bg0) 50%,
131
+ var(--theme-cyan) 100%
132
+ );
133
+ }
134
+
135
+ perspective-context-menu[theme="Blueprint"],
136
+ perspective-copy-menu[theme="Blueprint"],
137
+ perspective-export-menu[theme="Blueprint"],
138
+ perspective-dropdown[theme="Blueprint"],
139
+ perspective-date-column-style[theme="Blueprint"],
140
+ perspective-datetime-column-style[theme="Blueprint"],
141
+ perspective-number-column-style[theme="Blueprint"],
142
+ perspective-string-column-style[theme="Blueprint"] {
143
+ --theme-bg0: #0c2f6b;
144
+ --theme-bg1: #103a80;
145
+ --theme-bg2: #1b478f;
146
+ --theme-bg3: #2a58a8;
147
+ --theme-fg0: #e6f0ff;
148
+ --theme-fg1: #a9c4ee;
149
+ --theme-fg2: #5b84c6;
150
+ --theme-line: #3b6fc4;
151
+ --theme-cyan: #7fd3ff;
152
+ --theme-yellow: #ffd166;
153
+ --theme-orange: #ff8a65;
154
+ --theme-green: #b8e986;
155
+ --theme-pink: #ff9ecf;
156
+ --theme-white: #ffffff;
157
+ --theme-lavender: #c3b1ff;
158
+ --theme-mint: #5ee7c7;
159
+ --theme-magenta: #f6a6ff;
160
+ --theme-sky: #9cc3ff;
161
+
162
+ background-color: var(--theme-bg0);
163
+ color: var(--theme-fg0);
164
+ color-scheme: dark;
165
+ --psp--color: var(--theme-fg0);
166
+ --psp-active--color: var(--theme-cyan);
167
+ --psp-error--color: var(--theme-orange);
168
+ --psp-inactive--color: var(--theme-fg2);
169
+ --psp-inactive--border-color: var(--theme-bg3);
170
+ --psp--background-color: var(--theme-bg0);
171
+ --psp-active--background: rgba(127, 211, 255, 0.3);
172
+ --psp-expression--operator--color: var(--theme-fg1);
173
+ --psp-expression--function--color: var(--theme-cyan);
174
+ --psp-expression--psp-error--color: var(--theme-orange);
175
+ --psp-calendar--filter: invert(1);
176
+ --psp-input--filter: invert(1);
177
+ --psp-warning--color: var(--theme-bg0);
178
+ --psp-warning--background: var(--theme-yellow);
179
+ --psp-status-icon--connected--color: var(--theme-green);
180
+ --psp-status-icon--initializing--color: var(--theme-yellow);
181
+ --psp-status-icon--psp-error--color: var(--theme-orange);
182
+
183
+ --psp-code-editor--symbol--color: var(--theme-fg0);
184
+ --psp-code-editor--literal--color: var(--theme-cyan);
185
+ --psp-code-editor--operator--color: var(--theme-yellow);
186
+ --psp-code-editor--comment--color: var(--theme-fg2);
187
+ --psp-code-editor--column--color: var(--theme-green);
188
+
189
+ border: 1px solid #2a58a8;
190
+ }
@@ -8,7 +8,8 @@
8
8
  * ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
9
9
  * ┃ This file is part of the Perspective library, distributed under the terms ┃
10
10
  * ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
11
- * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */
11
+ * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
12
+ */
12
13
 
13
14
  @import "./defaults.css";
14
15
 
@@ -24,6 +25,7 @@ perspective-viewer [theme="Botanical"] {
24
25
  /* perspective-viewer-botanical--colors */
25
26
  background-color: #1a2e1a;
26
27
  color: #e0ead8;
28
+ color-scheme: dark;
27
29
  --psp--color: #e0ead8;
28
30
  --psp-active--color: #5a9e4b;
29
31
  --psp-error--color: #e8836a;
@@ -39,14 +41,6 @@ perspective-viewer [theme="Botanical"] {
39
41
  --psp-warning--color: #1a2e1a;
40
42
  --psp-warning--background: var(--psp--color);
41
43
 
42
- --psp-icon--select-arrow--mask-image: var(
43
- --psp-icon--select-arrow-light--mask-image
44
- );
45
-
46
- --psp-icon--select-arrow-hover--mask-image: var(
47
- --psp-icon--select-arrow-dark--mask-image
48
- );
49
-
50
44
  /* Syntax */
51
45
  --psp-code-editor--symbol--color: #e0ead8;
52
46
  --psp-code-editor--literal--color: #a8d8a0;
@@ -81,6 +75,16 @@ perspective-viewer [theme="Botanical"] {
81
75
  --psp-charts--series-8--color: rgb(210, 140, 80);
82
76
  --psp-charts--series-9--color: rgb(130, 120, 190);
83
77
  --psp-charts--series-10--color: rgb(170, 200, 110);
78
+ --psp-datagrid--series-1--color: rgb(90, 158, 75);
79
+ --psp-datagrid--series-2--color: rgb(206, 176, 104);
80
+ --psp-datagrid--series-3--color: rgb(160, 110, 180);
81
+ --psp-datagrid--series-4--color: rgb(80, 170, 150);
82
+ --psp-datagrid--series-5--color: rgb(140, 170, 90);
83
+ --psp-datagrid--series-6--color: rgb(200, 120, 140);
84
+ --psp-datagrid--series-7--color: rgb(100, 150, 190);
85
+ --psp-datagrid--series-8--color: rgb(210, 140, 80);
86
+ --psp-datagrid--series-9--color: rgb(130, 120, 190);
87
+ --psp-datagrid--series-10--color: rgb(170, 200, 110);
84
88
 
85
89
  --psp-charts--gradient--background: linear-gradient(
86
90
  #e8836a 0%,
@@ -103,6 +107,7 @@ perspective-string-column-style[theme="Botanical"] {
103
107
  /* perspective-viewer-botanical--colors */
104
108
  background-color: #1a2e1a;
105
109
  color: #e0ead8;
110
+ color-scheme: dark;
106
111
  --psp--color: #e0ead8;
107
112
  --psp-active--color: #5a9e4b;
108
113
  --psp-error--color: #e8836a;
@@ -118,14 +123,6 @@ perspective-string-column-style[theme="Botanical"] {
118
123
  --psp-warning--color: #1a2e1a;
119
124
  --psp-warning--background: var(--psp--color);
120
125
 
121
- --psp-icon--select-arrow--mask-image: var(
122
- --psp-icon--select-arrow-light--mask-image
123
- );
124
-
125
- --psp-icon--select-arrow-hover--mask-image: var(
126
- --psp-icon--select-arrow-dark--mask-image
127
- );
128
-
129
126
  --psp-code-editor--symbol--color: #e0ead8;
130
127
  --psp-code-editor--literal--color: #a8d8a0;
131
128
  --psp-code-editor--operator--color: rgb(206, 176, 104);
@@ -8,25 +8,13 @@
8
8
  * ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
9
9
  * ┃ This file is part of the Perspective library, distributed under the terms ┃
10
10
  * ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
11
- * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ */
11
+ * ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
12
+ */
12
13
 
13
14
  @import "./icons.css";
14
15
  @import "./intl.css";
15
16
 
16
17
  perspective-viewer,
17
- /* Per-panel light-DOM descendants (the plugin + `<PanelTab>`, both carrying a
18
- `theme` attribute) get the complete base too — so each panel resolves real
19
- `color`/`font-family` and every `--psp-*` from its OWN theme instead of
20
- inheriting the active panel's. Theme overrides refine this via the matching
21
- `perspective-viewer [theme="X"]` rule.
22
-
23
- `:where()` gives this clause ZERO specificity, so the panel's own
24
- `[theme="X"]` override (specificity 0,1,1) ALWAYS wins over this default base.
25
- Without it the two would tie at (0,1,1) and import order would decide — and
26
- because every theme file `@import`s `defaults.css`, the base is inlined after
27
- later overrides and the default would leak over the panel's theme. A
28
- zero-specificity rule still beats inheritance, so the base values apply where
29
- the override is silent. */
30
18
  :where(perspective-viewer [theme]),
31
19
  perspective-context-menu,
32
20
  perspective-copy-menu,
@@ -36,27 +24,6 @@ perspective-date-column-style,
36
24
  perspective-datetime-column-style,
37
25
  perspective-number-column-style,
38
26
  perspective-string-column-style {
39
- /* Colors */
40
- --psp--color: #161616;
41
-
42
- color: var(--psp--color);
43
-
44
- --psp-inactive--color: #ababab;
45
- --psp-inactive--border-color: #dadada;
46
- --psp-active--color: #2670a9;
47
- --psp-error--color: #ff471e;
48
- --psp--background-color: #ffffff;
49
- --psp-icon-overflow-hint--color: rgba(0, 0, 0, 0.2);
50
- --psp-select--background-color: none;
51
- --psp-warning--background: #042121;
52
- --psp-warning--color: #fdfffd;
53
-
54
- /* TODO deprecate me */
55
- --psp-icon-overflow-hint--color: #fdfffd;
56
- /* Colors */
57
- --psp-placeholder--background: #8b868045;
58
-
59
- /* Dimensions */
60
27
  --psp-button--font-size: 16px;
61
28
  --psp-config-button--padding: 15px 8px 6px 8px;
62
29
  --psp-column-selector--font-size: 16px;
@@ -65,7 +32,6 @@ perspective-string-column-style {
65
32
  --psp-top-panel-row--display: inline-flex;
66
33
  --psp-button--min-width: 33px;
67
34
 
68
- /* Fonts */
69
35
  font-family:
70
36
  "ui-monospace", "SFMono-Regular", "SF Mono", "Menlo", "Consolas",
71
37
  "Liberation Mono", monospace;
@@ -73,82 +39,9 @@ perspective-string-column-style {
73
39
  "ui-monospace", "SFMono-Regular", "SF Mono", "Menlo", "Consolas",
74
40
  "Liberation Mono", monospace;
75
41
 
76
- /* Colors (select arrow defaults) */
77
- --psp-icon--select-arrow--mask-image: var(
78
- --psp-icon--select-arrow-dark--mask-image
79
- );
80
- --psp-icon--select-arrow-hover--mask-image: var(
81
- --psp-icon--select-arrow-light--mask-image
82
- );
83
-
84
- /* webgl */
85
42
  --psp-label--webgl-y1--content: "arrow_upward";
86
43
  --psp-label--webgl-y2--content: "arrow_downward";
87
- --psp-charts--treemap-axis--lines: none;
88
- --psp-charts--tooltip--background-color: rgba(155, 155, 155, 0.8);
89
- --psp-charts--tooltip--color: #161616;
90
- --psp-charts--tooltip--border-color: #fff;
91
- --psp-charts--tooltip--box-shadow: 0 2px 4px 0 rgb(0 0 0 / 10%);
92
- --psp-charts--gridline--color: #eaedef;
93
- --psp-charts--axis-ticks--color: #161616;
94
- --psp-charts--axis-lines--color: #c5c9d0;
95
- --psp-charts--legend--background: var(--psp--background-color);
96
- --psp-charts--series--color: rgba(31, 119, 180, 0.8);
97
- --psp-charts--series-1--color: #0366d6;
98
- --psp-charts--series-2--color: #ff7f0e;
99
- --psp-charts--series-3--color: #2ca02c;
100
- --psp-charts--series-4--color: #d62728;
101
- --psp-charts--series-5--color: #9467bd;
102
- --psp-charts--series-6--color: #8c564b;
103
- --psp-charts--series-7--color: #e377c2;
104
- --psp-charts--series-8--color: #7f7f7f;
105
- --psp-charts--series-9--color: #bcbd22;
106
- --psp-charts--series-10--color: #17becf;
107
- --psp-charts--gradient--background: linear-gradient(
108
- #4d342f 0%,
109
- #e4521b 22.5%,
110
- #feeb65 42.5%,
111
- #f0f0f0 50%,
112
- #dcedc8 57.5%,
113
- #42b3d5 67.5%,
114
- #1a237e 100%
115
- );
116
-
117
- /* Datagrid */
118
- --psp-datagrid--pos-cell--color: #338dcd;
119
- --psp-datagrid--neg-cell--color: #ff471e;
120
-
121
- /* OpenLayers */
122
- --psp-openlayers--tile-url: "http://{a-c}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png";
123
- --psp-openlayers--element--background: #fff;
124
- --psp-openlayers--category-1--color: #0366d6;
125
- --psp-openlayers--category-2--color: #ff7f0e;
126
- --psp-openlayers--category-3--color: #2ca02c;
127
- --psp-openlayers--category-4--color: #d62728;
128
- --psp-openlayers--category-5--color: #9467bd;
129
- --psp-openlayers--category-6--color: #8c564b;
130
- --psp-openlayers--category-7--color: #e377c2;
131
- --psp-openlayers--category-8--color: #7f7f7f;
132
- --psp-openlayers--category-9--color: #bcbd22;
133
- --psp-openlayers--category-10--color: #17becf;
134
- --psp-openlayers--gradient--background: linear-gradient(
135
- #4d342f 0%,
136
- #e4521b 22.5%,
137
- #feeb65 42.5%,
138
- #f0f0f0 50%,
139
- #dcedc8 57.5%,
140
- #42b3d5 67.5%,
141
- #1a237e 100%
142
- );
143
44
 
144
- /* Completeness anchors for per-panel theming. These are color/appearance
145
- vars that some themes (e.g. Pro Dark) set but the light default does not
146
- — so without a base value an unthemed/light panel would *inherit* them
147
- from a differently-themed (active) panel, mixing themes. `initial` makes
148
- the custom property the guaranteed-invalid value: consumers fall back to
149
- their own default (identical to the current unthemed rendering) AND the
150
- element no longer inherits a neighboring panel's value. A theme that
151
- wants a real value overrides it in its `[theme="X"]` block as usual. */
152
45
  --psp-active--background: initial;
153
46
  --psp-calendar--filter: initial;
154
47
  --psp-charts--legend--color: initial;
@@ -167,6 +60,8 @@ perspective-string-column-style {
167
60
  --psp-openlayers--attribution--filter: initial;
168
61
  --psp-charts--series-11--color: initial;
169
62
  --psp-charts--series-12--color: initial;
63
+ --psp-datagrid--series-11--color: initial;
64
+ --psp-datagrid--series-12--color: initial;
170
65
  --psp-charts--map-tiles--url: initial;
171
66
  --psp-column-type--boolean--color: initial;
172
67
  --psp-column-type--date--color: initial;
@@ -180,7 +75,6 @@ perspective-string-column-style {
180
75
  --psp-status-icon--psp-error--color: initial;
181
76
  }
182
77
 
183
- /* Modal defaults */
184
78
  perspective-context-menu,
185
79
  perspective-copy-menu,
186
80
  perspective-export-menu,
@@ -23,6 +23,7 @@ perspective-viewer [theme="Dracula"] {
23
23
  /* perspective-viewer-pro-dark--colors (overrides) */
24
24
  background-color: #242526;
25
25
  color: white;
26
+ color-scheme: dark;
26
27
  --psp--color: white;
27
28
  --psp-active--color: #2770a9;
28
29
  --psp-error--color: #ff9485;
@@ -38,14 +39,6 @@ perspective-viewer [theme="Dracula"] {
38
39
  --psp-warning--color: #242526;
39
40
  --psp-warning--background: var(--psp--color);
40
41
 
41
- --psp-icon--select-arrow--mask-image: var(
42
- --psp-icon--select-arrow-light--mask-image
43
- );
44
-
45
- --psp-icon--select-arrow-hover--mask-image: var(
46
- --psp-icon--select-arrow-dark--mask-image
47
- );
48
-
49
42
  --psp-code-editor--symbol--color: white;
50
43
  --psp-code-editor--literal--color: #7dc3f0;
51
44
  --psp-code-editor--operator--color: rgb(23, 166, 123);
@@ -78,6 +71,16 @@ perspective-viewer [theme="Dracula"] {
78
71
  --psp-charts--series-8--color: rgb(221, 99, 103);
79
72
  --psp-charts--series-9--color: rgb(120, 104, 206);
80
73
  --psp-charts--series-10--color: rgb(23, 166, 123);
74
+ --psp-datagrid--series-1--color: rgb(71, 120, 194);
75
+ --psp-datagrid--series-2--color: rgb(204, 120, 48);
76
+ --psp-datagrid--series-3--color: rgb(158, 84, 192);
77
+ --psp-datagrid--series-4--color: rgb(51, 150, 153);
78
+ --psp-datagrid--series-5--color: rgb(102, 114, 143);
79
+ --psp-datagrid--series-6--color: rgb(211, 103, 189);
80
+ --psp-datagrid--series-7--color: rgb(109, 124, 77);
81
+ --psp-datagrid--series-8--color: rgb(221, 99, 103);
82
+ --psp-datagrid--series-9--color: rgb(120, 104, 206);
83
+ --psp-datagrid--series-10--color: rgb(23, 166, 123);
81
84
  --psp-charts--gradient--background: linear-gradient(
82
85
  #dd6367 0%,
83
86
  #242526 50%,
@@ -148,6 +151,13 @@ perspective-viewer [theme="Dracula"] {
148
151
  --psp-charts--series-5--color: var(--theme-purple);
149
152
  --psp-charts--series-6--color: var(--theme-pink);
150
153
  --psp-charts--series-7--color: var(--theme-orange);
154
+ --psp-datagrid--series-1--color: var(--theme-blue);
155
+ --psp-datagrid--series-2--color: var(--theme-red);
156
+ --psp-datagrid--series-3--color: var(--theme-green);
157
+ --psp-datagrid--series-4--color: var(--theme-yellow);
158
+ --psp-datagrid--series-5--color: var(--theme-purple);
159
+ --psp-datagrid--series-6--color: var(--theme-pink);
160
+ --psp-datagrid--series-7--color: var(--theme-orange);
151
161
 
152
162
  --psp-charts--gradient--background: linear-gradient(
153
163
  var(--theme-red),
@@ -163,6 +173,7 @@ perspective-dropdown[theme="Dracula"] {
163
173
  /* perspective-viewer-pro-dark--colors (overrides) */
164
174
  background-color: #242526;
165
175
  color: white;
176
+ color-scheme: dark;
166
177
  --psp--color: white;
167
178
  --psp-active--color: #2770a9;
168
179
  --psp-error--color: #ff9485;
@@ -177,12 +188,6 @@ perspective-dropdown[theme="Dracula"] {
177
188
  --psp-input--filter: invert(1);
178
189
  --psp-warning--color: #242526;
179
190
  --psp-warning--background: var(--psp--color);
180
- --psp-icon--select-arrow--mask-image: var(
181
- --psp-icon--select-arrow-light--mask-image
182
- );
183
- --psp-icon--select-arrow-hover--mask-image: var(
184
- --psp-icon--select-arrow-dark--mask-image
185
- );
186
191
  --psp-code-editor--symbol--color: white;
187
192
  --psp-code-editor--literal--color: #7dc3f0;
188
193
  --psp-code-editor--operator--color: rgb(23, 166, 123);