@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
Binary file
@@ -46,6 +46,7 @@ export const perspectiveviewerelement_getPlugin: (a: number, b: number, c: numbe
46
46
  export const perspectiveviewerelement_getRenderStats: (a: number, b: number, c: number) => void;
47
47
  export const perspectiveviewerelement_getSelection: (a: number, b: number, c: number) => void;
48
48
  export const perspectiveviewerelement_getTable: (a: number, b: number) => number;
49
+ export const perspectiveviewerelement_getThemes: (a: number) => number;
49
50
  export const perspectiveviewerelement_getView: (a: number, b: number) => number;
50
51
  export const perspectiveviewerelement_getViewConfig: (a: number, b: number) => number;
51
52
  export const perspectiveviewerelement_load: (a: number, b: number, c: number) => void;
@@ -59,7 +60,7 @@ export const perspectiveviewerelement_restore: (a: number, b: number, c: number)
59
60
  export const perspectiveviewerelement_restoreWorkspace: (a: number, b: number) => number;
60
61
  export const perspectiveviewerelement_restyleElement: (a: number) => number;
61
62
  export const perspectiveviewerelement_save: (a: number, b: number) => number;
62
- export const perspectiveviewerelement_saveWorkspace: (a: number) => number;
63
+ export const perspectiveviewerelement_saveWorkspace: (a: number, b: number) => number;
63
64
  export const perspectiveviewerelement_setActivePanel: (a: number, b: number, c: number) => number;
64
65
  export const perspectiveviewerelement_setAutoPause: (a: number, b: number) => number;
65
66
  export const perspectiveviewerelement_setAutoSize: (a: number, b: number) => void;
@@ -99,7 +100,7 @@ export const client_table: (a: number, b: number, c: number) => number;
99
100
  export const client_terminate: (a: number, b: number) => void;
100
101
  export const genericsqlvirtualservermodel_getHostedTables: (a: number, b: number) => void;
101
102
  export const genericsqlvirtualservermodel_new: (a: number, b: number) => void;
102
- export const genericsqlvirtualservermodel_tableMakeView: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
103
+ export const genericsqlvirtualservermodel_tableMakeView: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
103
104
  export const genericsqlvirtualservermodel_tableSchema: (a: number, b: number, c: number, d: number) => void;
104
105
  export const genericsqlvirtualservermodel_tableSize: (a: number, b: number, c: number, d: number) => void;
105
106
  export const genericsqlvirtualservermodel_tableValidateExpression: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
@@ -166,21 +167,22 @@ export const virtualdataslice_setIntegerCol: (a: number, b: number, c: number, d
166
167
  export const virtualdataslice_setStringCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
167
168
  export const virtualserver_handleRequest: (a: number, b: number, c: number) => number;
168
169
  export const virtualserver_new: (a: number, b: number) => void;
169
- export const __wasm_bindgen_func_elem_17003: (a: number, b: number) => void;
170
- export const __wasm_bindgen_func_elem_17713: (a: number, b: number) => void;
171
- export const __wasm_bindgen_func_elem_18571: (a: number, b: number) => void;
172
- export const __wasm_bindgen_func_elem_3989: (a: number, b: number) => void;
173
- export const __wasm_bindgen_func_elem_23208: (a: number, b: number) => void;
174
- export const __wasm_bindgen_func_elem_31328: (a: number, b: number, c: number, d: number) => void;
175
- export const __wasm_bindgen_func_elem_17122: (a: number, b: number, c: number) => void;
176
- export const __wasm_bindgen_func_elem_17718: (a: number, b: number, c: number) => void;
177
- export const __wasm_bindgen_func_elem_6981: (a: number, b: number, c: number) => void;
178
- export const __wasm_bindgen_func_elem_6982: (a: number, b: number, c: number) => void;
179
- export const __wasm_bindgen_func_elem_6983: (a: number, b: number, c: number) => void;
180
- export const __wasm_bindgen_func_elem_6979: (a: number, b: number, c: number) => void;
181
- export const __wasm_bindgen_func_elem_23225: (a: number, b: number, c: number) => void;
182
- export const __wasm_bindgen_func_elem_19569: (a: number, b: number) => number;
183
- export const __wasm_bindgen_func_elem_17717: (a: number, b: number) => void;
170
+ export const __wasm_bindgen_func_elem_18416: (a: number, b: number) => void;
171
+ export const __wasm_bindgen_func_elem_19123: (a: number, b: number) => void;
172
+ export const __wasm_bindgen_func_elem_20026: (a: number, b: number) => void;
173
+ export const __wasm_bindgen_func_elem_4350: (a: number, b: number) => void;
174
+ export const __wasm_bindgen_func_elem_24703: (a: number, b: number) => void;
175
+ export const __wasm_bindgen_func_elem_32844: (a: number, b: number, c: number, d: number) => void;
176
+ export const __wasm_bindgen_func_elem_18535: (a: number, b: number, c: number) => void;
177
+ export const __wasm_bindgen_func_elem_19128: (a: number, b: number, c: number) => void;
178
+ export const __wasm_bindgen_func_elem_7657: (a: number, b: number, c: number) => void;
179
+ export const __wasm_bindgen_func_elem_7658: (a: number, b: number, c: number) => void;
180
+ export const __wasm_bindgen_func_elem_7659: (a: number, b: number, c: number) => void;
181
+ export const __wasm_bindgen_func_elem_7655: (a: number, b: number, c: number) => void;
182
+ export const __wasm_bindgen_func_elem_24720: (a: number, b: number, c: number) => void;
183
+ export const __wasm_bindgen_func_elem_21027: (a: number, b: number) => number;
184
+ export const __wasm_bindgen_func_elem_19127: (a: number, b: number) => void;
185
+ export const __wasm_bindgen_func_elem_21028: (a: number, b: number) => void;
184
186
  export const __wbindgen_export: (a: number, b: number) => number;
185
187
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
186
188
  export const __wbindgen_export3: (a: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perspective-dev/viewer",
3
- "version": "5.2.0",
3
+ "version": "5.3.1",
4
4
  "description": "The `<perspective-viewer>` Custom Element, frontend for Perspective",
5
5
  "keywords": [
6
6
  "perspective",
@@ -150,15 +150,15 @@
150
150
  content: var(--psp-label--number-fg-mode--content, "Foreground");
151
151
  }
152
152
 
153
- label#pos_fg_color-label:before {
153
+ label#fg_colors-label:before {
154
154
  content: var(--psp-label--number-fg-mode--content, "Foreground");
155
155
  }
156
156
 
157
157
  label#number_bg_mode-label:before {
158
- content: var(--psp-label--number-fg-mode--content, "Background");
158
+ content: var(--psp-label--number-bg-mode--content, "Background");
159
159
  }
160
160
 
161
- label#pos_bg_color-label:before {
161
+ label#bg_colors-label:before {
162
162
  content: var(--psp-label--pos-bg-color--content, "Background");
163
163
  }
164
164
 
@@ -187,8 +187,12 @@
187
187
  content: var(--psp-label--series--content, "Series");
188
188
  }
189
189
 
190
- label#color-range-label:before {
191
- content: var(--psp-label--color-range--content, "Color Range");
190
+ label#palette-label:before {
191
+ content: var(--psp-label--palette--content, "Palette");
192
+ }
193
+
194
+ label#gradient-label:before {
195
+ content: var(--psp-label--gradient--content, "Gradient");
192
196
  }
193
197
 
194
198
  label#style-label:before {
@@ -213,6 +217,10 @@
213
217
  content: var(--psp-label--notation--content, "Notation");
214
218
  }
215
219
 
220
+ label#compact-display-label:before {
221
+ content: var(--psp-label--compact-display--content, "Compact Display");
222
+ }
223
+
216
224
  label#use-grouping-label:before {
217
225
  content: var(--psp-label--use-grouping--content, "Use Grouping");
218
226
  }
@@ -233,6 +241,21 @@
233
241
  content: var(--psp-label--bg-gradient--content, "Max Value");
234
242
  }
235
243
 
244
+ label#color-group-label:before {
245
+ content: var(--psp-label--group-color--content, "Color");
246
+ }
247
+
248
+ label#format-group-label:before {
249
+ content: var(--psp-label--group-format--content, "Format");
250
+ }
251
+
252
+ label#column_size_override-label:before {
253
+ content: var(
254
+ --psp-label--column-size-override--content,
255
+ "Column Width"
256
+ );
257
+ }
258
+
236
259
  label#rounding-priority-label:before {
237
260
  content: var(
238
261
  --psp-label--rounding-priority--content,
@@ -17,6 +17,8 @@
17
17
  #window-editor-container {
18
18
  outline: none;
19
19
  user-select: none;
20
+ margin-right: -6px;
21
+ padding-right: 6px;
20
22
 
21
23
  .bool-field-desc {
22
24
  font-size: 10px;
@@ -216,39 +218,309 @@
216
218
  padding: 0px 0;
217
219
  }
218
220
 
221
+ details.control-group {
222
+ margin: 0 -8px 0 -8px;
223
+ padding: 0 8px 0 8px;
224
+
225
+ &:not([open]):hover {
226
+ color: var(--psp--background-color);
227
+ background-color: var(--psp--color);
228
+ border-color: var(--psp--color) !important;
229
+ }
230
+
231
+ &[open] summary:hover {
232
+ color: var(--psp--color);
233
+ }
234
+
235
+ &:not(:first-child) {
236
+ border-top: 1px solid var(--psp-inactive--color);
237
+ }
238
+
239
+ &:last-of-type {
240
+ border-bottom: 1px solid var(--psp-inactive--color);
241
+ }
242
+
243
+ &:first-child {
244
+ margin-top: -12px;
245
+ }
246
+
247
+ > summary {
248
+ display: flex;
249
+ align-items: center;
250
+ cursor: pointer;
251
+ list-style: none;
252
+ margin: 0;
253
+ padding-right: 6px;
254
+ outline: none;
255
+
256
+ &::-webkit-details-marker {
257
+ display: none;
258
+ }
259
+
260
+ > span.control-group-chevron {
261
+ flex: 0 0 8px;
262
+ height: 4px;
263
+ background-color: currentColor;
264
+ mask-image: var(--psp-icon--select-arrow--mask-image);
265
+ -webkit-mask-image: var(
266
+ --psp-icon--select-arrow--mask-image
267
+ );
268
+ -webkit-mask-repeat: no-repeat;
269
+ mask-repeat: no-repeat;
270
+ mask-size: cover;
271
+ -webkit-mask-position: center;
272
+ mask-position: center;
273
+ transform: rotate(-90deg);
274
+ margin-right: 2px;
275
+ }
276
+
277
+ label {
278
+ padding-top: 8px;
279
+ padding-bottom: 8px;
280
+ pointer-events: none;
281
+ flex: 1 1 auto;
282
+ width: auto;
283
+ margin: 0 0 0 6px;
284
+ }
285
+ }
286
+
287
+ &[open] > summary label {
288
+ padding-bottom: 8px;
289
+ }
290
+
291
+ &[open] > summary {
292
+ color: var(--psp-inactive--color);
293
+ margin-bottom: 2px;
294
+ }
295
+
296
+ &[open] > summary > span.control-group-chevron {
297
+ transform: none;
298
+ }
299
+ }
300
+
219
301
  .color-gradient-container {
220
302
  display: flex;
221
303
  align-items: center;
222
304
  flex-wrap: nowrap;
223
305
  flex: 1 1 100%;
224
- .color-thermometer {
306
+ }
307
+
308
+ .palette-selector {
309
+ .palette-swatches {
310
+ display: flex;
311
+ flex-wrap: wrap;
312
+ align-items: center;
313
+ gap: 4px;
225
314
  flex: 1 1 auto;
315
+ width: 0px;
316
+ max-height: 84px;
317
+ overflow-y: auto;
318
+ overflow-x: hidden;
319
+ padding: 0px 0 4px 0;
320
+ }
321
+
322
+ .palette-swatch {
323
+ position: relative;
324
+ width: 24px;
226
325
  height: 24px;
326
+ touch-action: none;
327
+
328
+ input[type="color"] {
329
+ width: 24px;
330
+ height: 24px;
331
+ border-radius: 3px;
332
+ }
333
+
334
+ &.dragging {
335
+ opacity: 0.5;
336
+ outline: 1px dashed var(--psp--color);
337
+ outline-offset: -1px;
338
+ border-radius: 3px;
339
+ }
340
+
341
+ .palette-swatch-remove {
342
+ position: absolute;
343
+ top: -2px;
344
+ right: -7px;
345
+ width: 14px;
346
+ height: 14px;
347
+ cursor: pointer;
348
+ display: none;
349
+ background-color: var(--psp--color);
350
+ -webkit-mask-size: cover;
351
+ mask-size: cover;
352
+ -webkit-mask-image: var(--psp-icon--close--mask-image);
353
+ mask-image: var(--psp-icon--close--mask-image);
354
+ }
355
+
356
+ &:hover .palette-swatch-remove {
357
+ display: inline-block;
358
+ }
359
+ }
360
+
361
+ .palette-swatches.reordering .palette-swatch-remove {
362
+ display: none;
363
+ }
364
+
365
+ .palette-add {
366
+ width: 22px;
367
+ height: 22px;
368
+ border: 1px dashed var(--psp-inactive--color);
369
+ border-radius: 3px;
370
+ cursor: pointer;
371
+ display: flex;
372
+ align-items: center;
373
+ justify-content: center;
374
+
375
+ &:before {
376
+ content: "+";
377
+ font-size: 14px;
378
+ line-height: 1;
379
+ color: var(--psp-inactive--color);
380
+ }
381
+
382
+ &:hover {
383
+ border-color: var(--psp--color);
384
+
385
+ &:before {
386
+ color: var(--psp--color);
387
+ }
388
+ }
227
389
  }
228
390
  }
229
391
 
230
- .color-selector {
231
- display: grid;
392
+ .gradient-stops-selector {
393
+ padding: 12px 0 16px 0;
394
+
395
+ .gradient-stops-bar {
396
+ cursor: copy;
397
+ position: relative;
398
+ flex: 1 1 auto;
399
+ height: 24px;
400
+ border-radius: 2px;
401
+ }
232
402
 
233
- input {
234
- grid-column: 1;
235
- grid-row: 1;
403
+ .gradient-stops-bar.discrete {
404
+ cursor: auto;
405
+ position: relative;
406
+ flex: 1 1 auto;
407
+ height: 24px;
408
+ border-radius: 2px;
236
409
  }
237
- .color-label {
410
+
411
+ .gradient-stop-handle {
412
+ position: absolute;
413
+ top: 0;
414
+ transform: translateX(-50%);
238
415
  display: flex;
239
- justify-content: center;
416
+ flex-direction: column;
240
417
  align-items: center;
241
- font-size: 14px;
242
- grid-column: 1;
243
- grid-row: 1;
244
- margin: 0;
245
- font-family: var(--psp-button--font-family, inherit);
246
- color: var(--sign--color, white);
247
- width: 36px;
418
+ width: 14px;
419
+ }
420
+
421
+ .gradient-stop-grip {
422
+ width: 14px;
248
423
  height: 24px;
249
- text-align: center;
250
- z-index: 1;
251
- pointer-events: none;
424
+ cursor: ew-resize;
425
+ touch-action: none;
426
+
427
+ &.disabled {
428
+ cursor: default;
429
+ }
430
+
431
+ &:before {
432
+ content: "";
433
+ display: block;
434
+ width: 0px;
435
+ height: 100%;
436
+ margin: 0 auto;
437
+ border: 1px solid var(--psp--background-color, #fff);
438
+ }
439
+ }
440
+
441
+ .gradient-stop-remove {
442
+ position: absolute;
443
+ top: -14px;
444
+ width: 14px;
445
+ height: 13px;
446
+ cursor: pointer;
447
+ display: inline-block;
448
+ background-color: var(--psp--color);
449
+ -webkit-mask-size: cover;
450
+ mask-size: cover;
451
+ -webkit-mask-image: var(--psp-icon--close--mask-image);
452
+ mask-image: var(--psp-icon--close--mask-image);
453
+
454
+ &.disabled {
455
+ cursor: default;
456
+ background-color: var(--psp-inactive--color);
457
+ }
458
+ }
459
+
460
+ .gradient-stop-lock {
461
+ position: absolute;
462
+ top: -14px;
463
+ width: 14px;
464
+ height: 13px;
465
+ display: inline-block;
466
+ background-color: var(--psp--color);
467
+ -webkit-mask-size: cover;
468
+ mask-size: cover;
469
+ -webkit-mask-image: var(--psp-icon--lock--mask-image);
470
+ mask-image: var(--psp-icon--lock--mask-image);
471
+ }
472
+
473
+ .gradient-stop-handle input[type="color"] {
474
+ width: 14px;
475
+ height: 14px;
476
+ margin-top: 2px;
477
+ border-radius: 3px;
478
+ }
479
+ }
480
+
481
+ .named-value-controls {
482
+ display: flex;
483
+ justify-content: flex-end;
484
+ align-items: center;
485
+ gap: 10px;
486
+ flex: 1 1 100%;
487
+ height: 0;
488
+ margin-top: 10px;
489
+ margin-bottom: -10px;
490
+ margin-right: 24px;
491
+ position: relative;
492
+ z-index: 1;
493
+ font-size: var(--label--font-size, 0.75em);
494
+ color: var(--psp-inactive--color);
495
+
496
+ select.named-value-select {
497
+ height: 15px;
498
+ padding: 0;
499
+ font-size: var(--label--font-size, 0.75em);
500
+ color: inherit;
501
+ background: none;
502
+ border: none;
503
+ cursor: pointer;
504
+
505
+ &:hover {
506
+ color: var(--psp--color, inherit);
507
+ }
508
+ }
509
+
510
+ .named-value-pin {
511
+ cursor: pointer;
512
+ user-select: none;
513
+ line-height: 15px;
514
+
515
+ &:before {
516
+ font-family: var(--psp-button--font-family, inherit);
517
+ color: var(--psp-inactive--color, #666);
518
+ content: var(--psp-label--pin-button--content, "Save");
519
+ }
520
+
521
+ &:hover:before {
522
+ color: var(--psp--color, inherit);
523
+ }
252
524
  }
253
525
  }
254
526
 
@@ -259,23 +531,11 @@
259
531
  padding: 0;
260
532
  font-family: inherit;
261
533
  overflow: hidden;
262
- border-radius: 12px;
534
+ border-radius: 3px;
263
535
 
264
536
  &:hover {
265
537
  opacity: 0.8;
266
538
  }
267
-
268
- &.pos-color-param {
269
- width: 36px;
270
- border-radius: 12px 0 0 12px;
271
- margin: 0 1px 0 0;
272
- }
273
-
274
- &.neg-color-param {
275
- width: 36px;
276
- border-radius: 0 12px 12px 0;
277
- margin: 0 0 0 1px;
278
- }
279
539
  }
280
540
 
281
541
  ::-webkit-color-swatch-wrapper {
@@ -13,13 +13,23 @@
13
13
 
14
14
  :host {
15
15
  #format-tab {
16
- overflow: scroll;
16
+ overflow: auto;
17
+ scrollbar-gutter: stable;
18
+ }
19
+
20
+ #style-tab {
21
+ margin-right: -6px;
22
+ #column-style-container {
23
+ margin-right: 6px;
24
+ }
17
25
  }
18
26
 
19
27
  #plugin-tab {
20
28
  overflow-x: hidden;
21
- overflow-y: scroll;
22
- padding: 12px 0 0 0;
29
+ overflow-y: auto;
30
+ scrollbar-gutter: stable;
31
+ padding: 12px 0 0 8px;
32
+ margin-left: -8px;
23
33
  }
24
34
 
25
35
  .tab-content {
@@ -16,12 +16,13 @@
16
16
  position: relative;
17
17
  flex: 1 1 auto;
18
18
  height: 100%;
19
+ font-size: 12px;
19
20
 
20
21
  &:after {
21
22
  content: attr(data-value) " ";
22
23
  visibility: hidden;
23
24
  white-space: nowrap;
24
- padding-right: 17px;
25
+ padding-right: 20px;
25
26
  }
26
27
 
27
28
  select {
@@ -32,6 +33,25 @@
32
33
  bottom: 0px;
33
34
  cursor: pointer;
34
35
  }
36
+
37
+ .select-arrow {
38
+ position: absolute;
39
+ pointer-events: none;
40
+ top: 50%;
41
+ right: 6px;
42
+ width: 6px;
43
+ height: 4px;
44
+ transform: translateY(-50%);
45
+ background-color: currentColor;
46
+ -webkit-mask-image: var(--psp-icon--select-arrow--mask-image);
47
+ mask-image: var(--psp-icon--select-arrow--mask-image);
48
+ -webkit-mask-repeat: no-repeat;
49
+ mask-repeat: no-repeat;
50
+ -webkit-mask-position: center;
51
+ mask-position: center;
52
+ -webkit-mask-size: contain;
53
+ mask-size: contain;
54
+ }
35
55
  }
36
56
 
37
57
  select {
@@ -45,14 +65,6 @@
45
65
  /* font-size: 10px; */
46
66
  font-family: inherit;
47
67
  background-color: transparent;
48
- background-image: var(--psp-icon--select-arrow--mask-image);
49
- background-position: right 2px center;
50
- background-repeat: no-repeat;
51
-
52
- &.invert:focus-within,
53
- &.invert:hover {
54
- background-image: var(--psp-icon--select-arrow-hover--mask-image);
55
- }
56
68
 
57
69
  option {
58
70
  color: var(--psp--color, inherit);
@@ -12,6 +12,10 @@
12
12
  */
13
13
 
14
14
  :host {
15
+ #editor.contained {
16
+ contain: inline-size;
17
+ }
18
+
15
19
  #editor {
16
20
  display: flex;
17
21
  flex: 1 1 auto;
@@ -65,10 +69,6 @@
65
69
  white-space: pre;
66
70
  overflow: hidden;
67
71
 
68
- span {
69
- /* display: contents; */
70
- }
71
-
72
72
  .comment {
73
73
  color: var(--psp-code-editor--comment--color, orange);
74
74
  }
@@ -43,6 +43,7 @@
43
43
 
44
44
  .plugin-selector-options {
45
45
  overflow-y: auto;
46
+ height: 100%;
46
47
  }
47
48
 
48
49
  &.open {
@@ -96,4 +96,76 @@
96
96
  label#map_tile_alpha-label:before {
97
97
  content: var(--psp-label--map-tile-alpha--content);
98
98
  }
99
+
100
+ label#numeric_axes-label:before {
101
+ content: var(--psp-label--numeric-axes--content);
102
+ }
103
+
104
+ label#legend_mode-label:before {
105
+ content: var(--psp-label--legend-mode--content);
106
+ }
107
+
108
+ label#legend_size_mode-label:before {
109
+ content: var(--psp-label--legend-size-mode--content);
110
+ }
111
+
112
+ label#legend_width_px-label:before {
113
+ content: var(--psp-label--legend-width-px--content);
114
+ }
115
+
116
+ label#legend_height_px-label:before {
117
+ content: var(--psp-label--legend-height-px--content);
118
+ }
119
+
120
+ label#legend_anchor-label:before {
121
+ content: var(--psp-label--legend-anchor--content);
122
+ }
123
+
124
+ label#legend_x-label:before {
125
+ content: var(--psp-label--legend-x--content);
126
+ }
127
+
128
+ label#legend_y-label:before {
129
+ content: var(--psp-label--legend-y--content);
130
+ }
131
+
132
+ label#legend_opacity-label:before {
133
+ content: var(--psp-label--legend-opacity--content);
134
+ }
135
+
136
+ label#tooltip_max_column_px-label:before {
137
+ content: var(--psp-label--tooltip-max-column-px--content);
138
+ }
139
+
140
+ label#tooltip_opacity-label:before {
141
+ content: var(--psp-label--tooltip-opacity--content);
142
+ }
143
+
144
+ label#axes-group-label:before {
145
+ content: var(--psp-label--group-axes--content, "Axes");
146
+ }
147
+
148
+ label#facets-group-label:before {
149
+ content: var(--psp-label--group-facets--content, "Facets");
150
+ }
151
+
152
+ label#glyph-group-label:before {
153
+ content: var(--psp-label--group-glyph--content, "Glyphs");
154
+ }
155
+
156
+ label#density-group-label:before {
157
+ content: var(--psp-label--group-density--content, "Density");
158
+ }
159
+
160
+ label#basemap-group-label:before {
161
+ content: var(--psp-label--group-basemap--content, "Basemap");
162
+ }
163
+
164
+ label#legend-group-label:before {
165
+ content: var(--psp-label--group-legend--content, "Legend");
166
+ }
167
+
168
+ label#tooltip-group-label:before {
169
+ content: var(--psp-label--group-tooltip--content, "Tooltips");
170
+ }
99
171
  }