@vertexvis/viewer-toolkit-react 0.0.3-canary.0 → 0.0.3-canary.10

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 (95) hide show
  1. package/dist/bundle.cjs.js +1 -6
  2. package/dist/bundle.cjs.js.map +1 -1
  3. package/dist/bundle.esm.js +1 -6
  4. package/dist/bundle.esm.js.map +1 -1
  5. package/dist/components/appearance/__tests__/cross-section-appearance-reset.spec.d.ts +1 -0
  6. package/dist/components/appearance/__tests__/feature-edges-controls.spec.d.ts +1 -0
  7. package/dist/components/appearance/__tests__/feature-edges-reset.spec.d.ts +1 -0
  8. package/dist/components/appearance/__tests__/selection-highlighting-controls.spec.d.ts +1 -0
  9. package/dist/components/appearance/__tests__/selection-highlighting-reset.spec.d.ts +1 -0
  10. package/dist/components/appearance/__tests__/viewer-background-color-picker.spec.d.ts +1 -0
  11. package/dist/components/appearance/__tests__/viewer-background-reset.spec.d.ts +1 -0
  12. package/dist/components/appearance/cross-section-appearance-color-picker.d.ts +5 -0
  13. package/dist/components/appearance/cross-section-appearance-controls.d.ts +6 -0
  14. package/dist/components/appearance/cross-section-appearance-line-thickness-slider.d.ts +4 -0
  15. package/dist/components/appearance/cross-section-appearance-panel-section.d.ts +7 -0
  16. package/dist/components/appearance/cross-section-appearance-reset.d.ts +4 -0
  17. package/dist/components/appearance/feature-edges-color-picker.d.ts +5 -0
  18. package/dist/components/appearance/feature-edges-controls.d.ts +6 -0
  19. package/dist/components/appearance/feature-edges-panel-section.d.ts +7 -0
  20. package/dist/components/appearance/feature-edges-reset.d.ts +4 -0
  21. package/dist/components/appearance/feature-edges-thickness-slider.d.ts +4 -0
  22. package/dist/components/appearance/scene-item-material-clear.d.ts +1 -2
  23. package/dist/components/appearance/selection-highlighting-color-picker.d.ts +5 -0
  24. package/dist/components/appearance/selection-highlighting-controls.d.ts +7 -0
  25. package/dist/components/appearance/selection-highlighting-line-thickness-slider.d.ts +4 -0
  26. package/dist/components/appearance/selection-highlighting-opacity-slider.d.ts +4 -0
  27. package/dist/components/appearance/selection-highlighting-panel-section.d.ts +8 -0
  28. package/dist/components/appearance/selection-highlighting-reset.d.ts +4 -0
  29. package/dist/components/appearance/viewer-background-color-picker.d.ts +5 -0
  30. package/dist/components/appearance/viewer-background-controls.d.ts +5 -0
  31. package/dist/components/appearance/viewer-background-panel-section.d.ts +6 -0
  32. package/dist/components/appearance/viewer-background-reset.d.ts +4 -0
  33. package/dist/components/common/debounced-color-picker.d.ts +8 -0
  34. package/dist/components/common/slider.d.ts +3 -1
  35. package/dist/components/ghosting/__tests__/ghosting-panel-section.spec.d.ts +1 -0
  36. package/dist/components/ghosting/ghosting-controls.d.ts +5 -0
  37. package/dist/components/ghosting/ghosting-panel-section.d.ts +7 -0
  38. package/dist/components/ghosting/scene-item-ghosting-clear.d.ts +5 -0
  39. package/dist/components/ghosting/scene-item-ghosting-opacity-slider.d.ts +4 -0
  40. package/dist/components/ghosting/scene-item-ghosting-toggle.d.ts +4 -0
  41. package/dist/components/measurement/__tests__/measurement-context-menu.spec.d.ts +1 -0
  42. package/dist/components/measurement/__tests__/point-to-point-measurement-tool.spec.d.ts +1 -0
  43. package/dist/components/measurement/__tests__/point-to-point-measurement.spec.d.ts +1 -0
  44. package/dist/components/measurement/__tests__/precise-measurement-tool.spec.d.ts +1 -0
  45. package/dist/components/measurement/__tests__/precise-measurement.spec.d.ts +1 -0
  46. package/dist/components/measurement/measurement-context-menu.d.ts +5 -0
  47. package/dist/components/measurement/measurement-details.d.ts +5 -0
  48. package/dist/components/measurement/point-to-point-measurement-tool.d.ts +1 -0
  49. package/dist/components/measurement/point-to-point-measurement.d.ts +7 -0
  50. package/dist/components/measurement/precise-measurement-tool.d.ts +1 -0
  51. package/dist/components/measurement/precise-measurement.d.ts +8 -0
  52. package/dist/components/messages/application-messages.d.ts +1 -0
  53. package/dist/components/sidebar/viewer-right-sidebar/transforms-panel.d.ts +1 -0
  54. package/dist/components/sidebar/viewer-right-sidebar/viewer-right-panel-header.d.ts +1 -0
  55. package/dist/components/toolbar/cross-section/cross-section.d.ts +1 -3
  56. package/dist/components/transforms/__tests__/transform-panel-section.spec.d.ts +1 -0
  57. package/dist/components/transforms/__tests__/transform-widget.spec.d.ts +1 -0
  58. package/dist/components/transforms/transform-clear.d.ts +5 -0
  59. package/dist/components/transforms/transform-controls.d.ts +4 -0
  60. package/dist/components/transforms/transform-manipulator-toggle.d.ts +4 -0
  61. package/dist/components/transforms/transform-panel-section.d.ts +6 -0
  62. package/dist/components/transforms/transform-widget.d.ts +13 -0
  63. package/dist/index.css +1 -1
  64. package/dist/index.d.ts +43 -1
  65. package/dist/state/appearance/feature-edges.d.ts +4 -0
  66. package/dist/state/appearance/index.d.ts +2 -0
  67. package/dist/state/appearance/selection-highlighting.d.ts +6 -0
  68. package/dist/state/appearance/viewer-background.d.ts +2 -0
  69. package/dist/state/context-menu/context-menu.d.ts +1 -1
  70. package/dist/state/cross-section/actions.d.ts +4 -3
  71. package/dist/state/cross-section/cross-section.d.ts +4 -2
  72. package/dist/state/ghosting/__tests__/actions.spec.d.ts +1 -0
  73. package/dist/state/ghosting/actions.d.ts +7 -0
  74. package/dist/state/ghosting/ghosting.d.ts +12 -0
  75. package/dist/state/ghosting/index.d.ts +2 -0
  76. package/dist/state/measurement/actions.d.ts +19 -0
  77. package/dist/state/measurement/index.d.ts +4 -0
  78. package/dist/state/measurement/measurement.d.ts +6 -0
  79. package/dist/state/measurement/point-to-point-measurement.d.ts +11 -0
  80. package/dist/state/measurement/precise-measurement.d.ts +8 -0
  81. package/dist/state/messages/actions.d.ts +6 -0
  82. package/dist/state/messages/index.d.ts +2 -0
  83. package/dist/state/messages/messages.d.ts +18 -0
  84. package/dist/state/panel/panel.d.ts +3 -3
  85. package/dist/state/selection/selection.d.ts +2 -0
  86. package/dist/state/transforms/actions.d.ts +21 -0
  87. package/dist/state/transforms/index.d.ts +2 -0
  88. package/dist/state/transforms/transforms.d.ts +38 -0
  89. package/dist/state/viewer/core/core.d.ts +1 -0
  90. package/dist/util/popover/popover.d.ts +3 -0
  91. package/dist/util/refs/when-component-ready.d.ts +2 -0
  92. package/package.json +5 -5
  93. package/dist/util/logging/logger.d.ts +0 -8
  94. package/dist/util/recoil/synchronized-prop.d.ts +0 -2
  95. /package/dist/{util/logging/__tests__/logger.spec.d.ts → components/appearance/__tests__/cross-section-appearance-controls.spec.d.ts} +0 -0
@@ -0,0 +1,5 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdate?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ }
5
+ export declare const VertexCrossSectionAppearanceColorPicker: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdateCrossSectionColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ onUpdateCrossSectionLineThickness?: (lineThickness: number) => void;
5
+ }
6
+ export declare function VertexCrossSectionAppearanceControls({ onUpdateCrossSectionColor, onUpdateCrossSectionLineThickness, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onUpdate?: (lineThickness: number) => void;
3
+ }
4
+ export declare const VertexCrossSectionAppearanceLineThicknessSlider: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onResetCrossSectionAppearance?: VoidFunction;
4
+ onUpdateCrossSectionColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
5
+ onUpdateCrossSectionLineThickness?: (lineThickness: number) => void;
6
+ }
7
+ export declare function VertexCrossSectionAppearancePanelSection({ onResetCrossSectionAppearance, onUpdateCrossSectionColor, onUpdateCrossSectionLineThickness, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onReset?: VoidFunction;
3
+ }
4
+ export declare const VertexCrossSectionAppearanceReset: ({ onReset, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdate?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ }
5
+ export declare const VertexFeatureEdgesColorPicker: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdateFeatureEdgesColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ onUpdateFeatureEdgesThickness?: (lineThickness: number) => void;
5
+ }
6
+ export declare function VertexFeatureEdgesControls({ onUpdateFeatureEdgesColor, onUpdateFeatureEdgesThickness, }: Props): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onResetFeatureEdges?: VoidFunction;
4
+ onUpdateFeatureEdgesColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
5
+ onUpdateFeatureEdgesThickness?: (thickness: number) => void;
6
+ }
7
+ export declare function VertexFeatureEdgesPanelSection({ onResetFeatureEdges, onUpdateFeatureEdgesColor, onUpdateFeatureEdgesThickness, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onReset?: VoidFunction;
3
+ }
4
+ export declare const VertexFeatureEdgesReset: ({ onReset }: Props) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onUpdate?: (lineThickness: number) => void;
3
+ }
4
+ export declare const VertexFeatureEdgesThicknessSlider: ({ onUpdate, }: Props) => JSX.Element;
@@ -1,6 +1,5 @@
1
1
  export interface Props {
2
- canClearSelected: boolean;
3
2
  onClear?: VoidFunction;
4
3
  onClearAll?: VoidFunction;
5
4
  }
6
- export declare const VertexSceneItemMaterialClear: ({ canClearSelected, onClear, onClearAll, }: Props) => JSX.Element;
5
+ export declare const VertexSceneItemMaterialClear: ({ onClear, onClearAll, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdate?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ }
5
+ export declare const VertexSelectionHighlightingColorPicker: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdateSelectionHighlightColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ onUpdateSelectionHighlightOpacity?: (opacity: number) => void;
5
+ onUpdateSelectionHighlightLineThickness?: (lineThickness: number) => void;
6
+ }
7
+ export declare function VertexSelectionHighlightingControls({ onUpdateSelectionHighlightColor, onUpdateSelectionHighlightOpacity, onUpdateSelectionHighlightLineThickness, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onUpdate?: (lineThickness: number) => void;
3
+ }
4
+ export declare const VertexSelectionHighlightingLineThicknessSlider: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onUpdate?: (opacity: number) => void;
3
+ }
4
+ export declare const VertexSelectionHighlightingOpacitySlider: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onResetSelectionHighlighting?: VoidFunction;
4
+ onUpdateSelectionHighlightColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
5
+ onUpdateSelectionHighlightOpacity?: (opacity: number) => void;
6
+ onUpdateSelectionHighlightLineThickness?: (lineThickness: number) => void;
7
+ }
8
+ export declare function VertexSelectionHighlightingPanelSection({ onResetSelectionHighlighting, onUpdateSelectionHighlightColor, onUpdateSelectionHighlightOpacity, onUpdateSelectionHighlightLineThickness, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onReset?: VoidFunction;
3
+ }
4
+ export declare const VertexSelectionHighlightingReset: ({ onReset, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdate?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ }
5
+ export declare const VertexViewerBackgroundColorPicker: ({ onUpdate, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onUpdateViewerBackgroundColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
4
+ }
5
+ export declare function VertexViewerBackgroundControls({ onUpdateViewerBackgroundColor, }: Props): JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ColorMaterial } from '@vertexvis/viewer';
2
+ export interface Props {
3
+ onResetViewerBackgroundColor?: VoidFunction;
4
+ onUpdateViewerBackgroundColor?: (color: ColorMaterial.ColorMaterial | undefined) => void;
5
+ }
6
+ export declare function VertexViewerBackgroundPanelSection({ onResetViewerBackgroundColor, onUpdateViewerBackgroundColor, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onReset?: VoidFunction;
3
+ }
4
+ export declare const VertexViewerBackgroundReset: ({ onReset, }: Props) => JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { VertexColorPicker as UiVertexColorPicker } from '@vertexvis/ui-react';
2
+ import React from 'react';
3
+ export interface Props {
4
+ onInput?: (color: string) => void;
5
+ }
6
+ type ComponentProps = Omit<React.ComponentProps<typeof UiVertexColorPicker>, 'onInput'>;
7
+ export declare const VertexColorPicker: ({ onInput, ...uiProps }: Props & ComponentProps) => JSX.Element;
8
+ export {};
@@ -3,8 +3,10 @@ import React from 'react';
3
3
  export interface Props {
4
4
  value?: number;
5
5
  defaultValue?: number;
6
+ leftLabel?: string;
7
+ rightLabel?: string;
6
8
  onChange?: (value: number) => void;
7
9
  }
8
10
  type ComponentProps = Omit<React.ComponentProps<typeof UiVertexSlider>, 'onChange'>;
9
- export declare const VertexSlider: ({ value, defaultValue, onChange, onValueChange, onValueInput, ...uiProps }: Props & ComponentProps) => JSX.Element;
11
+ export declare const VertexSlider: ({ value, defaultValue, leftLabel, rightLabel, onChange, onValueChange, onValueInput, ...uiProps }: Props & ComponentProps) => JSX.Element;
10
12
  export {};
@@ -0,0 +1,5 @@
1
+ export interface Props {
2
+ onApplyGhostingChange?: (ghosted: boolean) => void;
3
+ onApplyOpacity?: (opacity: number) => void;
4
+ }
5
+ export declare function VertexGhostingControls({ onApplyGhostingChange, onApplyOpacity, }: Props): JSX.Element;
@@ -0,0 +1,7 @@
1
+ export interface Props {
2
+ onClearGhostState?: VoidFunction;
3
+ onClearAllGhostState?: VoidFunction;
4
+ onApplyGhostingChange?: (ghosted: boolean) => void;
5
+ onApplyOpacity?: (opacity: number) => void;
6
+ }
7
+ export declare function VertexGhostingPanelSection({ onClearGhostState, onClearAllGhostState, onApplyGhostingChange, onApplyOpacity, }: Props): JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface Props {
2
+ onClear?: VoidFunction;
3
+ onClearAll?: VoidFunction;
4
+ }
5
+ export declare const VertexSceneItemGhostingClear: ({ onClear, onClearAll, }: Props) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onApply?: (opacity: number) => void;
3
+ }
4
+ export declare const VertexSceneItemGhostingOpacitySlider: ({ onApply, }: Props) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onApply?: (ghosted: boolean) => void;
3
+ }
4
+ export declare const VertexSceneItemGhostingToggle: ({ onApply, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ interface Props {
2
+ onDelete: (id: string) => void;
3
+ }
4
+ export declare function VertexMeasurementContextMenu({ onDelete }: Props): JSX.Element;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import { DraggablePopoverPlacement } from '@util/popover/popover';
2
+ export interface MeasurementDetailsProps {
3
+ placement: DraggablePopoverPlacement;
4
+ }
5
+ export declare function VertexMeasurementDetails({ placement, }: MeasurementDetailsProps): JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function VertexPointToPointMeasurementTool(): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { EditedPointToPointMeasurement } from '@state/measurement';
2
+ import { DraggablePopoverPlacement } from '@util/popover/popover';
3
+ export interface PointToPointMeasurementProps {
4
+ detailsPlacement: DraggablePopoverPlacement;
5
+ onPointToPointMeasurementChange?: (measurement: EditedPointToPointMeasurement) => void;
6
+ }
7
+ export declare function VertexPointToPointMeasurement({ detailsPlacement, onPointToPointMeasurementChange, }: PointToPointMeasurementProps): JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function VertexPreciseMeasurementTool(): JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { DraggablePopoverPlacement } from '@util/popover/popover';
2
+ import type { MeasurementEntity, MeasurementOutcome } from '@vertexvis/viewer';
3
+ export interface Props {
4
+ detailsPlacement: DraggablePopoverPlacement;
5
+ onEntitiesChanged?: (measurement: MeasurementEntity[]) => void;
6
+ onOutcomeChanged?: (measurement: MeasurementOutcome | undefined) => void;
7
+ }
8
+ export declare const VertexPreciseMeasurement: ({ detailsPlacement, onEntitiesChanged, onOutcomeChanged, }: Props) => JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function VertexApplicationMessages(): JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function DefaultTransformsPanel(): JSX.Element;
@@ -1,2 +1,3 @@
1
1
  export declare const APPEARANCE_HEADING = "Appearance";
2
+ export declare const TRANSFORMS_HEADING = "Transforms";
2
3
  export declare const ViewerRightPanelHeader: () => JSX.Element;
@@ -2,7 +2,5 @@ import { DistanceUnitType } from '@util/measurement/units';
2
2
  export interface Props {
3
3
  readonly decimalPlaces?: number;
4
4
  readonly measurementUnit?: DistanceUnitType;
5
- readonly sectionLineWidth?: number;
6
- readonly sectionColor?: string;
7
5
  }
8
- export declare const VertexViewerCrossSectionButton: ({ decimalPlaces, measurementUnit, sectionLineWidth, sectionColor, }: Props) => JSX.Element;
6
+ export declare const VertexViewerCrossSectionButton: ({ decimalPlaces, measurementUnit, }: Props) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface Props {
2
+ onClear?: VoidFunction;
3
+ onClearAll?: VoidFunction;
4
+ }
5
+ export declare const VertexTransformClear: ({ onClear, onClearAll, }: Props) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onToggleTransformsManipulator?: (enabled: boolean) => void;
3
+ }
4
+ export declare function VertexTransformControls({ onToggleTransformsManipulator, }: Props): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ onToggleTransformsManipulator?: (enabled: boolean) => void;
3
+ }
4
+ export declare const VertexTransformManipulatorToggle: ({ onToggleTransformsManipulator, }: Props) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface Props {
2
+ onClearTransforms?: VoidFunction;
3
+ onClearAllTransforms?: VoidFunction;
4
+ onToggleTransformsManipulator?: (enabled: boolean) => void;
5
+ }
6
+ export declare function VertexTransformPanelSection({ onClearTransforms, onClearAllTransforms, onToggleTransformsManipulator, }: Props): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { Euler, Vector3 } from '@vertexvis/geometry';
2
+ import { DistanceUnitType } from '@vertexvis/viewer';
3
+ import React from 'react';
4
+ interface Props {
5
+ transformWidgetElement?: React.Ref<HTMLVertexViewerTransformWidgetElement>;
6
+ supportUndo?: boolean;
7
+ decimalPlaces?: number;
8
+ distanceUnit?: DistanceUnitType;
9
+ onPositionChange?: (position: Vector3.Vector3 | undefined) => void;
10
+ onRotationChange?: (orientation: Euler.Euler | undefined) => void;
11
+ }
12
+ export declare function VertexTransformWidget({ transformWidgetElement, supportUndo, decimalPlaces, distanceUnit, onPositionChange, onRotationChange, }: Props): JSX.Element;
13
+ export {};
package/dist/index.css CHANGED
@@ -4,4 +4,4 @@
4
4
  --font-mono--font-feature-settings
5
5
  );--default-mono-font-variation-settings:var(
6
6
  --font-mono--font-variation-settings
7
- )}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:var( --default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" );font-variation-settings:var( --default-font-variation-settings,normal );line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:var( --default-mono-font-feature-settings,normal );font-family:var( --default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace );font-size:1em;font-variation-settings:var( --default-mono-font-variation-settings,normal )}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{font-feature-settings:inherit;background-color:transparent;border-radius:0;color:inherit;font:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{color:color-mix(in oklab,currentColor 50%,transparent);opacity:1}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.m-7{margin:calc(var(--spacing)*7)}.mx-0\.5{margin-inline:calc(var(--spacing)*.5)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-8{margin-top:calc(var(--spacing)*8)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.-ml-px{margin-left:-1px}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.table{display:table}.h-0{height:calc(var(--spacing)*0)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.min-h-12{min-height:calc(var(--spacing)*12)}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-lg{max-width:var(--container-lg)}.min-w-12{min-width:calc(var(--spacing)*12)}.min-w-75{min-width:calc(var(--spacing)*75)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-evenly{justify-content:space-evenly}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-white{background-color:var(--color-white)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-3{padding:calc(var(--spacing)*3)}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--vertex-ui-blue-700\)\]{color:var(--vertex-ui-blue-700)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.opacity-70{opacity:70%}.opacity-95{opacity:95%}.opacity-100{opacity:100%}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color,currentColor)}.ring-0,.ring-1{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentColor)}.ring-neutral-200{--tw-ring-color:var(--color-neutral-200)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.select-none{-webkit-user-select:none;user-select:none}.hover\:bg-neutral-200{&:hover{@media (hover:hover){background-color:var(--color-neutral-200)}}}.hover\:bg-neutral-300{&:hover{@media (hover:hover){background-color:var(--color-neutral-300)}}}.hover\:text-neutral-700{&:hover{@media (hover:hover){color:var(--color-neutral-700)}}}.hover\:text-neutral-800{&:hover{@media (hover:hover){color:var(--color-neutral-800)}}}.hover\:opacity-100{&:hover{@media (hover:hover){opacity:100%}}}.active\:bg-neutral-400{&:active{background-color:var(--color-neutral-400)}}.md\:hidden,.md\:p-3,.md\:pointer-events-auto{@media (width >= 48rem){padding:calc(var(--spacing)*3)}}}:root{--white:#fff;--black:#000;--neutral-050:#fafafa;--neutral-100:#f5f5f5;--neutral-200:#eee;--neutral-300:#e0e0e0;--neutral-400:#bdbdbd;--neutral-500:#9e9e9e;--neutral-600:#757575;--neutral-700:#616161;--neutral-800:#444;--neutral-900:#212121;--red-050:#fff7f7;--red-100:#ffefef;--red-200:#ffe0e0;--red-300:#ffb3b3;--red-400:#ff4d4d;--red-500:red;--red-600:#eb0000;--red-700:#d90000;--red-800:#c40000;--red-900:#900;--orange-050:#fffcf7;--orange-100:#fff9ef;--orange-200:#fff3e0;--orange-300:#ffe0b3;--orange-400:#ffb84d;--orange-500:#f90;--orange-600:#ff8400;--orange-700:#ff7300;--orange-800:#e05d00;--orange-900:#993b00;--yellow-050:#fffef7;--yellow-100:#fffdef;--yellow-200:#fffbe0;--yellow-300:#fff5b3;--yellow-400:#ffee6e;--yellow-500:#ffe600;--yellow-600:#ffd300;--yellow-700:#ffc500;--yellow-800:#cc8f00;--yellow-900:#995c00;--green-050:#f7fdf7;--green-100:#effcef;--green-200:#e0f9e0;--green-300:#b3f0b3;--green-400:#4ddb4d;--green-500:#0c0;--green-600:#00c000;--green-700:#00ad00;--green-800:green;--green-900:#004d00;--teal-050:#f8fdfc;--teal-100:#f1fbfa;--teal-200:#e4f7f5;--teal-300:#bcece7;--teal-400:#62d2c7;--teal-500:#1fbeaf;--teal-600:#17af9f;--teal-700:#0a9986;--teal-800:#07705f;--teal-900:#054d43;--blue-050:#f7fcfd;--blue-100:#eff9fc;--blue-200:#e0f3f9;--blue-300:#b3e0f0;--blue-400:#4db8db;--blue-500:#09c;--blue-600:#0086c0;--blue-700:#006bad;--blue-800:#004f80;--blue-900:#002f4d;--purple-050:#fdf9fc;--purple-100:#faf2f8;--purple-200:#f6e6f2;--purple-300:#e9c2e0;--purple-400:#cb70b6;--purple-500:#b43296;--purple-600:#a42683;--purple-700:#8c1368;--purple-800:#66124b;--purple-900:#4d0b39;--x-axis-color:#ea3324;--y-axis-color:#4faf32;--z-axis-color:#00f}vertex-viewer-dom-renderer{visibility:hidden}vertex-viewer-dom-renderer.hydrated{visibility:inherit}vertex-scene-tree-toolbar{visibility:hidden}vertex-scene-tree-toolbar.hydrated{visibility:inherit}vertex-viewer-toolbar{visibility:hidden}vertex-viewer-toolbar.hydrated{visibility:inherit}:root{--padding-1:0.25em;--padding-2:0.5em;--padding-3:0.75em;--padding-4:1em;--padding-5:1.25em;--padding-6:1.5em;--padding-7:1.75em;--padding-8:2em;--abs-padding-1:0.25rem;--abs-padding-2:0.5rem;--abs-padding-3:0.75rem;--abs-padding-4:1rem;--abs-padding-5:1.25rem;--abs-padding-6:1.5rem;--abs-padding-7:1.75rem;--abs-padding-8:2rem}.sc-vertex-textfield-h{display:block}.txt-wrapper{align-items:center;background:none;box-sizing:border-box;display:flex;font-family:var(--vertex-ui-font-family);line-height:1.4;width:100%}.txt-wrapper-border{border:1px solid transparent;border-radius:4px}.txt-slot{padding-bottom:1px}.txt{background:none;border:1px solid transparent;border-radius:4px;box-sizing:border-box;font-family:var(--vertex-ui-font-family);font-weight:var(--vertex-ui-font-weight-base);line-height:1.4;padding:6px .5em 7px;text-overflow:ellipsis;width:100%}.txt:focus{outline:none}.txt-textarea{box-shadow:none;outline:none;overflow:hidden;resize:none}.txt:-webkit-autofill{animation-name:onAutoFillStart}.txt:not(.txt:-webkit-autofill){animation-name:onAutoFillCancel}.txt-standard{border-color:var(--vertex-ui-neutral-400);color:var(--vertex-ui-neutral-800)}.txt-standard .txt::placeholder{color:var(--vertex-ui-neutral-500)}.txt-standard:focus,.txt-standard:hover:not(.disabled){border-color:var(--vertex-ui-neutral-500)}.txt-standard.disabled{border-color:var(--vertex-ui-neutral-200)}.txt-standard.disabled,.txt-standard.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-blank{color:var(--vertex-ui-neutral-800)}.txt-blank:not(:hover) .txt:focus{border-color:var(--vertex-ui-neutral-400);border-radius:4px}.txt-blank .txt::placeholder{color:var(--vertex-ui-neutral-500)}.txt-blank:hover:not(.disabled) .txt{border-color:var(--vertex-ui-neutral-400);border-radius:4px}.txt-filled{background-color:var(--vertex-ui-neutral-200);border-color:var(--vertex-ui-neutral-200);color:var(--vertex-ui-neutral-800)}.txt-filled .txt::placeholder{color:var(--vertex-ui-neutral-700)}.txt-filled:focus,.txt-filled:hover:not(.disabled){border-bottom-color:var(--vertex-ui-blue-600)}.txt-filled.disabled{border-color:var(--vertex-ui-neutral-100)}.txt-filled.disabled,.txt-filled.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined{background-color:var(--vertex-ui-white);border-color:var(--vertex-ui-white) var(--vertex-ui-white) var(--vertex-ui-neutral-400) var(--vertex-ui-white);color:var(--vertex-ui-neutral-800)}.txt-underlined.disabled,.txt-underlined.disabled::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined::placeholder{color:var(--vertex-ui-neutral-700)}.txt-underlined:focus,.txt-underlined:hover:not(.disabled){background-color:var(--vertex-ui-neutral-200);border-color:var(--vertex-ui-neutral-200);border-bottom-color:var(--vertex-ui-blue-600)}.txt-underlined.disabled{border-bottom-color:var(--vertex-ui-neutral-200)}.txt-underlined.disabled,.txt-underlined.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined.has-error{border-bottom-color:var(--vertex-ui-red-600)}.txt-blank.has-error,.txt-filled.has-error,.txt-standard.has-error{border-color:var(--vertex-ui-red-600)}.txt-size-standard{font-size:var(--vertex-ui-text-base)}.txt-size-sm{font-size:var(--vertex-ui-text-sm)}.txt-size-md{font-size:var(--vertex-ui-text-md)}.txt-size-lg{font-size:var(--vertex-ui-text-lg)}.txt-size-xl{font-size:var(--vertex-ui-text-xl)}.txt-size-xxl{font-size:var(--vertex-ui-text-xxl)}.click-to-edit{display:flex;flex-direction:row}.click-to-edit-text{width:100%}.icon-visibility{display:none}.click-to-edit:not(.disabled):hover .icon-visibility{display:block}.click-to-edit-icon-wrapper{align-items:center;display:flex;flex-shrink:0;margin-left:5px;vertical-align:middle}.hover-icon slot::slotted(*){height:1rem;padding-left:.5rem;width:1rem}.click-to-edit-button{background-color:var(--neutral-200);border-radius:4px;color:var(--green-700)}.click-to-edit-button:hover{background-color:var(--neutral-300);color:var(--green-800)}vertex-tooltip:not(.hydrated){display:none}.vertex-tooltip-popover{height:100%;width:100%}.vertex-tooltip-content{background-color:var(--vertex-ui-neutral-700);border-radius:4px;color:var(--vertex-ui-white);display:flex;font-family:var(--vertex-ui-font-family);font-size:var(--vertex-ui-text-xxs);justify-content:center;padding:.25rem .5rem;pointer-events:none;text-align:center;user-select:none;white-space:var(--tooltip-white-space);width:var(--tooltip-width)}:root{--vertex-ui-white:#fff;--vertex-ui-black:#000;--vertex-ui-neutral-050:#fafafa;--vertex-ui-neutral-100:#f5f5f5;--vertex-ui-neutral-200:#eee;--vertex-ui-neutral-300:#e0e0e0;--vertex-ui-neutral-400:#bdbdbd;--vertex-ui-neutral-500:#9e9e9e;--vertex-ui-neutral-600:#757575;--vertex-ui-neutral-700:#616161;--vertex-ui-neutral-800:#444;--vertex-ui-neutral-900:#212121;--vertex-ui-red-050:#fff7f7;--vertex-ui-red-100:#ffefef;--vertex-ui-red-200:#ffe0e0;--vertex-ui-red-300:#ffb3b3;--vertex-ui-red-400:#ff4d4d;--vertex-ui-red-500:red;--vertex-ui-red-600:#eb0000;--vertex-ui-red-700:#d90000;--vertex-ui-red-800:#c40000;--vertex-ui-red-900:#900;--vertex-ui-orange-050:#fffcf7;--vertex-ui-orange-100:#fff9ef;--vertex-ui-orange-200:#fff3e0;--vertex-ui-orange-300:#ffe0b3;--vertex-ui-orange-400:#ffb84d;--vertex-ui-orange-500:#f90;--vertex-ui-orange-600:#ff8400;--vertex-ui-orange-700:#ff7300;--vertex-ui-orange-800:#e05d00;--vertex-ui-orange-900:#993b00;--vertex-ui-yellow-050:#fffef7;--vertex-ui-yellow-100:#fffdef;--vertex-ui-yellow-200:#fffbe0;--vertex-ui-yellow-300:#fff5b3;--vertex-ui-yellow-400:#ffee6e;--vertex-ui-yellow-500:#ffe600;--vertex-ui-yellow-600:#ffd300;--vertex-ui-yellow-700:#ffc500;--vertex-ui-yellow-800:#cc8f00;--vertex-ui-yellow-900:#995c00;--vertex-ui-green-050:#f7fdf7;--vertex-ui-green-100:#effcef;--vertex-ui-green-200:#e0f9e0;--vertex-ui-green-300:#b3f0b3;--vertex-ui-green-400:#4ddb4d;--vertex-ui-green-500:#0c0;--vertex-ui-green-600:#00c000;--vertex-ui-green-700:#00ad00;--vertex-ui-green-800:green;--vertex-ui-green-900:#004d00;--vertex-ui-teal-050:#f8fdfc;--vertex-ui-teal-100:#f1fbfa;--vertex-ui-teal-200:#e4f7f5;--vertex-ui-teal-300:#bcece7;--vertex-ui-teal-400:#62d2c7;--vertex-ui-teal-500:#1fbeaf;--vertex-ui-teal-600:#17af9f;--vertex-ui-teal-700:#0a9986;--vertex-ui-teal-800:#07705f;--vertex-ui-teal-900:#054d43;--vertex-ui-blue-050:#f7fcfd;--vertex-ui-blue-100:#eff9fc;--vertex-ui-blue-200:#e0f3f9;--vertex-ui-blue-300:#b3e0f0;--vertex-ui-blue-400:#4db8db;--vertex-ui-blue-500:#09c;--vertex-ui-blue-600:#0086c0;--vertex-ui-blue-700:#006bad;--vertex-ui-blue-800:#004f80;--vertex-ui-blue-900:#002f4d;--vertex-ui-purple-050:#fdf9fc;--vertex-ui-purple-100:#faf2f8;--vertex-ui-purple-200:#f6e6f2;--vertex-ui-purple-300:#e9c2e0;--vertex-ui-purple-400:#cb70b6;--vertex-ui-purple-500:#b43296;--vertex-ui-purple-600:#a42683;--vertex-ui-purple-700:#8c1368;--vertex-ui-purple-800:#66124b;--vertex-ui-purple-900:#4d0b39;--vertex-ui-text-t:0.5625rem;--vertex-ui-text-xxs:0.625rem;--vertex-ui-text-xs:0.75rem;--vertex-ui-text-sm:0.8125rem;--vertex-ui-text-base:0.875rem;--vertex-ui-text-md:0.9375rem;--vertex-ui-text-lg:1rem;--vertex-ui-text-xl:1.125rem;--vertex-ui-text-xxl:1.25rem;--vertex-ui-font-weight-light:300;--vertex-ui-font-weight-base:400;--vertex-ui-font-weight-medium:500;--vertex-ui-font-weight-bold:700;--vertex-ui-font-family:"Roboto","Helvetica Neue",Helvetica,sans-serif;--vertex-ui-font-family-monospace:"Roboto Mono","Helvetica Monospaced",monospace;--vertex-ui-popover-layer:2000;--vertex-ui-context-menu-layer:11000;--vertex-ui-dialog-layer:15000;--vertex-ui-overlay-shadow:-1px 0 2px rgba(0,0,0,.12),1px 0 2px rgba(0,0,0,.13)}@media (min-width:812px){:root{--vertex-ui-min-dialog-width:700px;--vertex-ui-min-dialog-height:500px}}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}
7
+ )}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:var(--default-font-feature-settings,normal);-webkit-tap-highlight-color:transparent;font-family:var( --default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" );font-variation-settings:var( --default-font-variation-settings,normal );line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:var( --default-mono-font-feature-settings,normal );font-family:var( --default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace );font-size:1em;font-variation-settings:var( --default-mono-font-variation-settings,normal )}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{font-feature-settings:inherit;background-color:transparent;border-radius:0;color:inherit;font:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{color:color-mix(in oklab,currentColor 50%,transparent);opacity:1}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.z-\[16000\]{z-index:16000}.m-7{margin:calc(var(--spacing)*7)}.mx-0\.5{margin-inline:calc(var(--spacing)*.5)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-8{margin-top:calc(var(--spacing)*8)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.-ml-px{margin-left:-1px}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.table{display:table}.h-0{height:calc(var(--spacing)*0)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.min-h-12{min-height:calc(var(--spacing)*12)}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-lg{max-width:var(--container-lg)}.min-w-12{min-width:calc(var(--spacing)*12)}.min-w-40{min-width:calc(var(--spacing)*40)}.min-w-75{min-width:calc(var(--spacing)*75)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-evenly{justify-content:space-evenly}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-white{background-color:var(--color-white)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-3{padding:calc(var(--spacing)*3)}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-0\.5{padding-left:calc(var(--spacing)*.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--vertex-ui-blue-700\)\]{color:var(--vertex-ui-blue-700)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.opacity-70{opacity:70%}.opacity-95{opacity:95%}.opacity-100{opacity:100%}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color,currentColor)}.ring-0,.ring-1{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentColor)}.ring-neutral-200{--tw-ring-color:var(--color-neutral-200)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.select-none{-webkit-user-select:none;user-select:none}.hover\:bg-neutral-200{&:hover{@media (hover:hover){background-color:var(--color-neutral-200)}}}.hover\:bg-neutral-300{&:hover{@media (hover:hover){background-color:var(--color-neutral-300)}}}.hover\:text-neutral-700{&:hover{@media (hover:hover){color:var(--color-neutral-700)}}}.hover\:text-neutral-800{&:hover{@media (hover:hover){color:var(--color-neutral-800)}}}.hover\:opacity-100{&:hover{@media (hover:hover){opacity:100%}}}.active\:bg-neutral-400{&:active{background-color:var(--color-neutral-400)}}.md\:hidden,.md\:p-3,.md\:pointer-events-auto{@media (width >= 48rem){padding:calc(var(--spacing)*3)}}}:root{--white:#fff;--black:#000;--neutral-050:#fafafa;--neutral-100:#f5f5f5;--neutral-200:#eee;--neutral-300:#e0e0e0;--neutral-400:#bdbdbd;--neutral-500:#9e9e9e;--neutral-600:#757575;--neutral-700:#616161;--neutral-800:#444;--neutral-900:#212121;--red-050:#fff7f7;--red-100:#ffefef;--red-200:#ffe0e0;--red-300:#ffb3b3;--red-400:#ff4d4d;--red-500:red;--red-600:#eb0000;--red-700:#d90000;--red-800:#c40000;--red-900:#900;--orange-050:#fffcf7;--orange-100:#fff9ef;--orange-200:#fff3e0;--orange-300:#ffe0b3;--orange-400:#ffb84d;--orange-500:#f90;--orange-600:#ff8400;--orange-700:#ff7300;--orange-800:#e05d00;--orange-900:#993b00;--yellow-050:#fffef7;--yellow-100:#fffdef;--yellow-200:#fffbe0;--yellow-300:#fff5b3;--yellow-400:#ffee6e;--yellow-500:#ffe600;--yellow-600:#ffd300;--yellow-700:#ffc500;--yellow-800:#cc8f00;--yellow-900:#995c00;--green-050:#f7fdf7;--green-100:#effcef;--green-200:#e0f9e0;--green-300:#b3f0b3;--green-400:#4ddb4d;--green-500:#0c0;--green-600:#00c000;--green-700:#00ad00;--green-800:green;--green-900:#004d00;--teal-050:#f8fdfc;--teal-100:#f1fbfa;--teal-200:#e4f7f5;--teal-300:#bcece7;--teal-400:#62d2c7;--teal-500:#1fbeaf;--teal-600:#17af9f;--teal-700:#0a9986;--teal-800:#07705f;--teal-900:#054d43;--blue-050:#f7fcfd;--blue-100:#eff9fc;--blue-200:#e0f3f9;--blue-300:#b3e0f0;--blue-400:#4db8db;--blue-500:#09c;--blue-600:#0086c0;--blue-700:#006bad;--blue-800:#004f80;--blue-900:#002f4d;--purple-050:#fdf9fc;--purple-100:#faf2f8;--purple-200:#f6e6f2;--purple-300:#e9c2e0;--purple-400:#cb70b6;--purple-500:#b43296;--purple-600:#a42683;--purple-700:#8c1368;--purple-800:#66124b;--purple-900:#4d0b39;--x-axis-color:#ea3324;--y-axis-color:#4faf32;--z-axis-color:#00f}vertex-viewer-dom-renderer{visibility:hidden}vertex-viewer-dom-renderer.hydrated{visibility:inherit}vertex-scene-tree-toolbar{visibility:hidden}vertex-scene-tree-toolbar.hydrated{visibility:inherit}vertex-viewer-toolbar{visibility:hidden}vertex-viewer-toolbar.hydrated{visibility:inherit}:root{--padding-1:0.25em;--padding-2:0.5em;--padding-3:0.75em;--padding-4:1em;--padding-5:1.25em;--padding-6:1.5em;--padding-7:1.75em;--padding-8:2em;--abs-padding-1:0.25rem;--abs-padding-2:0.5rem;--abs-padding-3:0.75rem;--abs-padding-4:1rem;--abs-padding-5:1.25rem;--abs-padding-6:1.5rem;--abs-padding-7:1.75rem;--abs-padding-8:2rem}.sc-vertex-textfield-h{display:block}.txt-wrapper{align-items:center;background:none;box-sizing:border-box;display:flex;font-family:var(--vertex-ui-font-family);line-height:1.4;width:100%}.txt-wrapper-border{border:1px solid transparent;border-radius:4px}.txt-slot{padding-bottom:1px}.txt{background:none;border:1px solid transparent;border-radius:4px;box-sizing:border-box;font-family:var(--vertex-ui-font-family);font-weight:var(--vertex-ui-font-weight-base);line-height:1.4;padding:6px .5em 7px;text-overflow:ellipsis;width:100%}.txt:focus{outline:none}.txt-textarea{box-shadow:none;outline:none;overflow:hidden;resize:none}.txt:-webkit-autofill{animation-name:onAutoFillStart}.txt:not(.txt:-webkit-autofill){animation-name:onAutoFillCancel}.txt-standard{border-color:var(--vertex-ui-neutral-400);color:var(--vertex-ui-neutral-800)}.txt-standard .txt::placeholder{color:var(--vertex-ui-neutral-500)}.txt-standard:focus,.txt-standard:hover:not(.disabled){border-color:var(--vertex-ui-neutral-500)}.txt-standard.disabled{border-color:var(--vertex-ui-neutral-200)}.txt-standard.disabled,.txt-standard.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-blank{color:var(--vertex-ui-neutral-800)}.txt-blank:not(:hover) .txt:focus{border-color:var(--vertex-ui-neutral-400);border-radius:4px}.txt-blank .txt::placeholder{color:var(--vertex-ui-neutral-500)}.txt-blank:hover:not(.disabled) .txt{border-color:var(--vertex-ui-neutral-400);border-radius:4px}.txt-filled{background-color:var(--vertex-ui-neutral-200);border-color:var(--vertex-ui-neutral-200);color:var(--vertex-ui-neutral-800)}.txt-filled .txt::placeholder{color:var(--vertex-ui-neutral-700)}.txt-filled:focus,.txt-filled:hover:not(.disabled){border-bottom-color:var(--vertex-ui-blue-600)}.txt-filled.disabled{border-color:var(--vertex-ui-neutral-100)}.txt-filled.disabled,.txt-filled.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined{background-color:var(--vertex-ui-white);border-color:var(--vertex-ui-white) var(--vertex-ui-white) var(--vertex-ui-neutral-400) var(--vertex-ui-white);color:var(--vertex-ui-neutral-800)}.txt-underlined.disabled,.txt-underlined.disabled::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined::placeholder{color:var(--vertex-ui-neutral-700)}.txt-underlined:focus,.txt-underlined:hover:not(.disabled){background-color:var(--vertex-ui-neutral-200);border-color:var(--vertex-ui-neutral-200);border-bottom-color:var(--vertex-ui-blue-600)}.txt-underlined.disabled{border-bottom-color:var(--vertex-ui-neutral-200)}.txt-underlined.disabled,.txt-underlined.disabled .txt::placeholder{color:var(--vertex-ui-neutral-400)}.txt-underlined.has-error{border-bottom-color:var(--vertex-ui-red-600)}.txt-blank.has-error,.txt-filled.has-error,.txt-standard.has-error{border-color:var(--vertex-ui-red-600)}.txt-size-standard{font-size:var(--vertex-ui-text-base)}.txt-size-sm{font-size:var(--vertex-ui-text-sm)}.txt-size-md{font-size:var(--vertex-ui-text-md)}.txt-size-lg{font-size:var(--vertex-ui-text-lg)}.txt-size-xl{font-size:var(--vertex-ui-text-xl)}.txt-size-xxl{font-size:var(--vertex-ui-text-xxl)}.click-to-edit{display:flex;flex-direction:row}.click-to-edit-text{width:100%}.icon-visibility{display:none}.click-to-edit:not(.disabled):hover .icon-visibility{display:block}.click-to-edit-icon-wrapper{align-items:center;display:flex;flex-shrink:0;margin-left:5px;vertical-align:middle}.hover-icon slot::slotted(*){height:1rem;padding-left:.5rem;width:1rem}.click-to-edit-button{background-color:var(--neutral-200);border-radius:4px;color:var(--green-700)}.click-to-edit-button:hover{background-color:var(--neutral-300);color:var(--green-800)}vertex-tooltip:not(.hydrated){display:none}.vertex-tooltip-popover{height:100%;width:100%}.vertex-tooltip-content{background-color:var(--vertex-ui-neutral-700);border-radius:4px;color:var(--vertex-ui-white);display:flex;font-family:var(--vertex-ui-font-family);font-size:var(--vertex-ui-text-xxs);justify-content:center;padding:.25rem .5rem;pointer-events:none;text-align:center;user-select:none;white-space:var(--tooltip-white-space);width:var(--tooltip-width)}:root{--vertex-ui-white:#fff;--vertex-ui-black:#000;--vertex-ui-neutral-050:#fafafa;--vertex-ui-neutral-100:#f5f5f5;--vertex-ui-neutral-200:#eee;--vertex-ui-neutral-300:#e0e0e0;--vertex-ui-neutral-400:#bdbdbd;--vertex-ui-neutral-500:#9e9e9e;--vertex-ui-neutral-600:#757575;--vertex-ui-neutral-700:#616161;--vertex-ui-neutral-800:#444;--vertex-ui-neutral-900:#212121;--vertex-ui-red-050:#fff7f7;--vertex-ui-red-100:#ffefef;--vertex-ui-red-200:#ffe0e0;--vertex-ui-red-300:#ffb3b3;--vertex-ui-red-400:#ff4d4d;--vertex-ui-red-500:red;--vertex-ui-red-600:#eb0000;--vertex-ui-red-700:#d90000;--vertex-ui-red-800:#c40000;--vertex-ui-red-900:#900;--vertex-ui-orange-050:#fffcf7;--vertex-ui-orange-100:#fff9ef;--vertex-ui-orange-200:#fff3e0;--vertex-ui-orange-300:#ffe0b3;--vertex-ui-orange-400:#ffb84d;--vertex-ui-orange-500:#f90;--vertex-ui-orange-600:#ff8400;--vertex-ui-orange-700:#ff7300;--vertex-ui-orange-800:#e05d00;--vertex-ui-orange-900:#993b00;--vertex-ui-yellow-050:#fffef7;--vertex-ui-yellow-100:#fffdef;--vertex-ui-yellow-200:#fffbe0;--vertex-ui-yellow-300:#fff5b3;--vertex-ui-yellow-400:#ffee6e;--vertex-ui-yellow-500:#ffe600;--vertex-ui-yellow-600:#ffd300;--vertex-ui-yellow-700:#ffc500;--vertex-ui-yellow-800:#cc8f00;--vertex-ui-yellow-900:#995c00;--vertex-ui-green-050:#f7fdf7;--vertex-ui-green-100:#effcef;--vertex-ui-green-200:#e0f9e0;--vertex-ui-green-300:#b3f0b3;--vertex-ui-green-400:#4ddb4d;--vertex-ui-green-500:#0c0;--vertex-ui-green-600:#00c000;--vertex-ui-green-700:#00ad00;--vertex-ui-green-800:green;--vertex-ui-green-900:#004d00;--vertex-ui-teal-050:#f8fdfc;--vertex-ui-teal-100:#f1fbfa;--vertex-ui-teal-200:#e4f7f5;--vertex-ui-teal-300:#bcece7;--vertex-ui-teal-400:#62d2c7;--vertex-ui-teal-500:#1fbeaf;--vertex-ui-teal-600:#17af9f;--vertex-ui-teal-700:#0a9986;--vertex-ui-teal-800:#07705f;--vertex-ui-teal-900:#054d43;--vertex-ui-blue-050:#f7fcfd;--vertex-ui-blue-100:#eff9fc;--vertex-ui-blue-200:#e0f3f9;--vertex-ui-blue-300:#b3e0f0;--vertex-ui-blue-400:#4db8db;--vertex-ui-blue-500:#09c;--vertex-ui-blue-600:#0086c0;--vertex-ui-blue-700:#006bad;--vertex-ui-blue-800:#004f80;--vertex-ui-blue-900:#002f4d;--vertex-ui-purple-050:#fdf9fc;--vertex-ui-purple-100:#faf2f8;--vertex-ui-purple-200:#f6e6f2;--vertex-ui-purple-300:#e9c2e0;--vertex-ui-purple-400:#cb70b6;--vertex-ui-purple-500:#b43296;--vertex-ui-purple-600:#a42683;--vertex-ui-purple-700:#8c1368;--vertex-ui-purple-800:#66124b;--vertex-ui-purple-900:#4d0b39;--vertex-ui-text-t:0.5625rem;--vertex-ui-text-xxs:0.625rem;--vertex-ui-text-xs:0.75rem;--vertex-ui-text-sm:0.8125rem;--vertex-ui-text-base:0.875rem;--vertex-ui-text-md:0.9375rem;--vertex-ui-text-lg:1rem;--vertex-ui-text-xl:1.125rem;--vertex-ui-text-xxl:1.25rem;--vertex-ui-font-weight-light:300;--vertex-ui-font-weight-base:400;--vertex-ui-font-weight-medium:500;--vertex-ui-font-weight-bold:700;--vertex-ui-font-family:"Roboto","Helvetica Neue",Helvetica,sans-serif;--vertex-ui-font-family-monospace:"Roboto Mono","Helvetica Monospaced",monospace;--vertex-ui-popover-layer:2000;--vertex-ui-context-menu-layer:11000;--vertex-ui-dialog-layer:15000;--vertex-ui-overlay-shadow:-1px 0 2px rgba(0,0,0,.12),1px 0 2px rgba(0,0,0,.13)}@media (min-width:812px){:root{--vertex-ui-min-dialog-width:700px;--vertex-ui-min-dialog-height:500px}}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,28 @@
1
+ import { VertexCrossSectionAppearanceColorPicker } from './components/appearance/cross-section-appearance-color-picker';
2
+ import { VertexCrossSectionAppearanceControls } from './components/appearance/cross-section-appearance-controls';
3
+ import { VertexCrossSectionAppearanceLineThicknessSlider } from './components/appearance/cross-section-appearance-line-thickness-slider';
4
+ import { VertexCrossSectionAppearancePanelSection } from './components/appearance/cross-section-appearance-panel-section';
5
+ import { VertexCrossSectionAppearanceReset } from './components/appearance/cross-section-appearance-reset';
6
+ import { VertexFeatureEdgesColorPicker } from './components/appearance/feature-edges-color-picker';
7
+ import { VertexFeatureEdgesControls } from './components/appearance/feature-edges-controls';
8
+ import { VertexFeatureEdgesPanelSection } from './components/appearance/feature-edges-panel-section';
9
+ import { VertexFeatureEdgesReset } from './components/appearance/feature-edges-reset';
10
+ import { VertexFeatureEdgesThicknessSlider } from './components/appearance/feature-edges-thickness-slider';
11
+ import { VertexMaterialControls } from './components/appearance/material-controls';
12
+ import { VertexMaterialPanelSection } from './components/appearance/material-panel-section';
13
+ import { VertexSceneItemMaterialClear } from './components/appearance/scene-item-material-clear';
14
+ import { VertexSceneItemMaterialColorPicker } from './components/appearance/scene-item-material-color-picker';
15
+ import { VertexSceneItemMaterialOpacitySlider } from './components/appearance/scene-item-material-opacity-slider';
16
+ import { VertexSelectionHighlightingColorPicker } from './components/appearance/selection-highlighting-color-picker';
17
+ import { VertexSelectionHighlightingControls } from './components/appearance/selection-highlighting-controls';
18
+ import { VertexSelectionHighlightingLineThicknessSlider } from './components/appearance/selection-highlighting-line-thickness-slider';
19
+ import { VertexSelectionHighlightingOpacitySlider } from './components/appearance/selection-highlighting-opacity-slider';
20
+ import { VertexSelectionHighlightingPanelSection } from './components/appearance/selection-highlighting-panel-section';
21
+ import { VertexSelectionHighlightingReset } from './components/appearance/selection-highlighting-reset';
22
+ import { VertexViewerBackgroundColorPicker } from './components/appearance/viewer-background-color-picker';
23
+ import { VertexViewerBackgroundControls } from './components/appearance/viewer-background-controls';
24
+ import { VertexViewerBackgroundPanelSection } from './components/appearance/viewer-background-panel-section';
25
+ import { VertexViewerBackgroundReset } from './components/appearance/viewer-background-reset';
1
26
  import { VertexBoxSelectionButton } from './components/box-selection/box-selection-button';
2
27
  import { VertexResizableContent } from './components/common/resizable-content';
3
28
  import { VertexContextMenu } from './components/context-menu/context-menu';
@@ -11,6 +36,18 @@ import { VertexShowOnlyMenuItem } from './components/context-menu/menu-items/sho
11
36
  import { VertexShowOnlySelectedMenuItem } from './components/context-menu/menu-items/show-only-selected-menu-item';
12
37
  import { VertexSceneTreeContextMenu } from './components/context-menu/scene-tree-context-menu';
13
38
  import { VertexViewerContextMenu } from './components/context-menu/viewer-context-menu';
39
+ import { VertexGhostingControls } from './components/ghosting/ghosting-controls';
40
+ import { VertexGhostingPanelSection } from './components/ghosting/ghosting-panel-section';
41
+ import { VertexSceneItemGhostingClear } from './components/ghosting/scene-item-ghosting-clear';
42
+ import { VertexSceneItemGhostingOpacitySlider } from './components/ghosting/scene-item-ghosting-opacity-slider';
43
+ import { VertexSceneItemGhostingToggle } from './components/ghosting/scene-item-ghosting-toggle';
44
+ import { VertexMeasurementContextMenu } from './components/measurement/measurement-context-menu';
45
+ import { VertexMeasurementDetails } from './components/measurement/measurement-details';
46
+ import { VertexPointToPointMeasurement } from './components/measurement/point-to-point-measurement';
47
+ import { VertexPointToPointMeasurementTool } from './components/measurement/point-to-point-measurement-tool';
48
+ import { VertexPreciseMeasurement } from './components/measurement/precise-measurement';
49
+ import { VertexPreciseMeasurementTool } from './components/measurement/precise-measurement-tool';
50
+ import { VertexApplicationMessages } from './components/messages/application-messages';
14
51
  import { VertexSceneTree } from './components/scene-tree/vertex-scene-tree';
15
52
  import { VertexSceneTreeHeader } from './components/scene-tree/vertex-scene-tree-header';
16
53
  import { VertexSceneTreeTableLayout } from './components/scene-tree/vertex-scene-tree-table-layout';
@@ -23,6 +60,11 @@ import { VertexRotateButton } from './components/toolbar/rotate';
23
60
  import { VertexToolbar } from './components/toolbar/toolbar';
24
61
  import { VertexViewerToolbarDivider } from './components/toolbar/toolbar-divider';
25
62
  import { VertexZoomButton } from './components/toolbar/zoom';
63
+ import { VertexTransformClear } from './components/transforms/transform-clear';
64
+ import { VertexTransformControls } from './components/transforms/transform-controls';
65
+ import { VertexTransformManipulatorToggle } from './components/transforms/transform-manipulator-toggle';
66
+ import { VertexTransformPanelSection } from './components/transforms/transform-panel-section';
67
+ import { VertexTransformWidget } from './components/transforms/transform-widget';
26
68
  import { VertexViewerSceneReset } from './components/viewer/scene-reset';
27
69
  import { VertexViewer } from './components/viewer/vertex-viewer';
28
70
  import { VertexViewerViewCube } from './components/viewer/vertex-viewer-view-cube';
@@ -31,4 +73,4 @@ import * as CrossSection from './state/cross-section';
31
73
  import * as Hits from './state/hits';
32
74
  import * as SceneTree from './state/scene-tree';
33
75
  import * as Selection from './state/selection';
34
- export { CrossSection, Hits, SceneTree, Selection, VertexBoxSelectionButton, VertexContextMenu, VertexFitAllButton, VertexFitSelectedMenuItem, VertexFlyToMenuItem, VertexHideAllMenuItem, VertexHidePartMenuItem, VertexHideSelectedMenuItem, VertexPanButton, VertexResizableContent, VertexRotateButton, VertexSceneTree, VertexSceneTreeContextMenu, VertexSceneTreeHeader, VertexSceneTreeTableLayout, VertexShowAllMenuItem, VertexShowOnlyMenuItem, VertexShowOnlySelectedMenuItem, VertexToolbar, VertexViewer, VertexViewerContextMenu, VertexViewerCrossSectionButton, VertexViewerRightOpenedPanel, VertexViewerRightSidebar, VertexViewerSceneReset, VertexViewerToolbarDivider, VertexViewerToolkitRoot, VertexViewerViewCube, VertexZoomButton, };
76
+ export { CrossSection, Hits, SceneTree, Selection, VertexApplicationMessages, VertexBoxSelectionButton, VertexContextMenu, VertexCrossSectionAppearanceColorPicker, VertexCrossSectionAppearanceControls, VertexCrossSectionAppearanceLineThicknessSlider, VertexCrossSectionAppearancePanelSection, VertexCrossSectionAppearanceReset, VertexFeatureEdgesColorPicker, VertexFeatureEdgesControls, VertexFeatureEdgesPanelSection, VertexFeatureEdgesReset, VertexFeatureEdgesThicknessSlider, VertexFitAllButton, VertexFitSelectedMenuItem, VertexFlyToMenuItem, VertexGhostingControls, VertexGhostingPanelSection, VertexHideAllMenuItem, VertexHidePartMenuItem, VertexHideSelectedMenuItem, VertexMaterialControls, VertexMaterialPanelSection, VertexMeasurementContextMenu, VertexMeasurementDetails, VertexPanButton, VertexPointToPointMeasurement, VertexPointToPointMeasurementTool, VertexPreciseMeasurement, VertexPreciseMeasurementTool, VertexResizableContent, VertexRotateButton, VertexSceneItemGhostingClear, VertexSceneItemGhostingOpacitySlider, VertexSceneItemGhostingToggle, VertexSceneItemMaterialClear, VertexSceneItemMaterialColorPicker, VertexSceneItemMaterialOpacitySlider, VertexSceneTree, VertexSceneTreeContextMenu, VertexSceneTreeHeader, VertexSceneTreeTableLayout, VertexSelectionHighlightingColorPicker, VertexSelectionHighlightingControls, VertexSelectionHighlightingLineThicknessSlider, VertexSelectionHighlightingOpacitySlider, VertexSelectionHighlightingPanelSection, VertexSelectionHighlightingReset, VertexShowAllMenuItem, VertexShowOnlyMenuItem, VertexShowOnlySelectedMenuItem, VertexToolbar, VertexTransformClear, VertexTransformControls, VertexTransformManipulatorToggle, VertexTransformPanelSection, VertexTransformWidget, VertexViewer, VertexViewerBackgroundColorPicker, VertexViewerBackgroundControls, VertexViewerBackgroundPanelSection, VertexViewerBackgroundReset, VertexViewerContextMenu, VertexViewerCrossSectionButton, VertexViewerRightOpenedPanel, VertexViewerRightSidebar, VertexViewerSceneReset, VertexViewerToolbarDivider, VertexViewerToolkitRoot, VertexViewerViewCube, VertexZoomButton, };
@@ -0,0 +1,4 @@
1
+ export declare const DEFAULT_FEATURE_EDGE_THICKNESS_VALUE = 0.5;
2
+ export declare const DEFAULT_FEATURE_EDGE_COLOR = "#444444";
3
+ export declare const featureEdgesSelectedColor: import("recoil").RecoilState<string>;
4
+ export declare const featureEdgesLineThickness: import("recoil").RecoilState<number>;
@@ -1,2 +1,4 @@
1
1
  export * from './actions';
2
+ export * from './feature-edges';
2
3
  export * from './material';
4
+ export * from './viewer-background';
@@ -0,0 +1,6 @@
1
+ export declare const DEFAULT_SELECTION_HIGHLIGHTING_COLOR = "#ffff00";
2
+ export declare const DEFAULT_SELECTION_HIGHLIGHTING_OPACITY = 35;
3
+ export declare const DEFAULT_SELECTION_HIGHLIGHTING_LINE_THICKNESS = 1;
4
+ export declare const selectionHighlightingSelectedColor: import("recoil").RecoilState<string>;
5
+ export declare const selectionHighlightingSelectedOpacity: import("recoil").RecoilState<number>;
6
+ export declare const selectionHighlightingSelectedLineThickness: import("recoil").RecoilState<number>;
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_VIEWER_BACKGROUND_COLOR = "#FFFFFF";
2
+ export declare const viewerBackgroundSelectedColor: import("recoil").RecoilState<string>;
@@ -1,7 +1,7 @@
1
1
  import { Hit } from '@state/hits';
2
2
  import { Point } from '@vertexvis/geometry';
3
3
  import { Row } from '@vertexvis/viewer/dist/types/components/scene-tree/lib/row';
4
- export type ContextMenuType = 'scene-tree' | 'viewer' | 'color-swatch';
4
+ export type ContextMenuType = 'color-swatch' | 'measurement' | 'scene-tree' | 'viewer';
5
5
  export type ContextMenuItem = Row | Hit | HTMLElement;
6
6
  export type ContextMenuAction = (item: ContextMenuItem) => void | Promise<void> | boolean | Promise<boolean>;
7
7
  export declare function contextMenuItemIsRow(item?: ContextMenuItem): item is Row;