dataface 0.3.2.dev22__py3-none-any.whl → 0.3.2.dev111__py3-none-any.whl
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.
- dataface/__init__.py +70 -23
- dataface/agent_api/__init__.py +162 -68
- dataface/agent_api/_paths.py +9 -3
- dataface/agent_api/docs/yaml-reference.md +240 -106
- dataface/agent_api/init.py +1 -1
- dataface/agent_api/project_session.py +2 -1
- dataface/agent_api/serve.py +115 -0
- dataface/ai/agent.py +28 -2
- dataface/cli/_project.py +100 -1
- dataface/cli/commands/board_artifact.py +5 -2
- dataface/cli/commands/describe.py +7 -3
- dataface/cli/commands/docs.py +12 -3
- dataface/cli/commands/init.py +7 -14
- dataface/cli/commands/inspect.py +6 -1
- dataface/cli/commands/mcp_init.py +23 -43
- dataface/cli/commands/migrate.py +8 -3
- dataface/cli/commands/query.py +11 -8
- dataface/cli/commands/render.py +20 -9
- dataface/cli/commands/search.py +8 -2
- dataface/cli/commands/serve.py +26 -76
- dataface/cli/commands/skills_init.py +2 -19
- dataface/cli/commands/validate.py +7 -2
- dataface/cli/filesystem_project.py +5 -4
- dataface/cli/main.py +2 -19
- dataface/core/__init__.py +73 -28
- dataface/core/{compile/colors.py → colors.py} +20 -5
- dataface/core/compile/compiler.py +97 -34
- dataface/core/compile/data_table.py +7 -2
- dataface/core/compile/enrich.py +18 -44
- dataface/core/compile/face_warnings.py +46 -8
- dataface/core/compile/format.py +47 -1
- dataface/core/compile/inherit_graph.py +3 -3
- dataface/core/compile/inherit_registry.yaml +1 -1
- dataface/core/compile/migrations.py +112 -9
- dataface/core/compile/models/chart/normalized/kpi.py +0 -4
- dataface/core/compile/models/chart/resolved/_base.py +28 -10
- dataface/core/compile/models/chart/resolved/callout.py +2 -3
- dataface/core/compile/models/chart/resolved/kpi.py +7 -3
- dataface/core/compile/models/chart/resolved/table.py +16 -2
- dataface/core/compile/models/markers.py +1 -1
- dataface/core/compile/models/primitives.py +175 -2
- dataface/core/compile/models/source.py +5 -5
- dataface/core/compile/models/style/authored/__init__.py +32 -8
- dataface/core/compile/models/style/authored/_base.py +126 -69
- dataface/core/compile/models/style/authored/table.py +61 -3
- dataface/core/compile/models/style/resolved/__init__.py +12 -2
- dataface/core/compile/models/style/resolved/_base.py +142 -57
- dataface/core/compile/models/style/resolved/_cartesian.py +6 -11
- dataface/core/compile/models/style/resolved/_cascade.py +141 -54
- dataface/core/compile/models/style/resolved/area.py +1 -1
- dataface/core/compile/models/style/resolved/bar.py +1 -1
- dataface/core/compile/models/style/resolved/line.py +1 -1
- dataface/core/compile/models/style/resolved/scatter.py +3 -2
- dataface/core/compile/models/style/theme/__init__.py +36 -14
- dataface/core/compile/models/style/theme/_chart_base.py +17 -9
- dataface/core/compile/models/style/theme/axis.py +432 -312
- dataface/core/compile/models/style/theme/charts.py +10 -6
- dataface/core/compile/models/style/theme/kpi.py +2 -1
- dataface/core/compile/models/style/theme/page.py +5 -2
- dataface/core/compile/models/style/theme/table.py +2 -2
- dataface/core/compile/models/vega_lite/config.py +1 -1
- dataface/core/compile/normalize_charts.py +6 -2
- dataface/core/compile/normalize_queries.py +21 -7
- dataface/core/compile/resolve/__init__.py +2 -0
- dataface/core/compile/resolve/_axes.py +147 -44
- dataface/core/compile/resolve/_channels.py +1 -1
- dataface/core/compile/resolve/_dispatch.py +1 -1
- dataface/core/compile/resolve/_domain.py +49 -32
- dataface/core/compile/resolve/_kwargs.py +39 -12
- dataface/core/compile/resolve/_marks.py +8 -3
- dataface/core/compile/resolve/_palette.py +7 -3
- dataface/core/compile/resolve/_table.py +124 -33
- dataface/core/compile/resolve/area.py +48 -18
- dataface/core/compile/resolve/bar.py +245 -64
- dataface/core/compile/resolve/geo.py +10 -3
- dataface/core/compile/resolve/heatmap.py +16 -8
- dataface/core/compile/resolve/line.py +35 -12
- dataface/core/compile/resolve/pie.py +4 -1
- dataface/core/compile/resolve/pie_attachment.py +1 -1
- dataface/core/compile/resolve/scatter.py +25 -13
- dataface/core/compile/resolve/simple.py +25 -2
- dataface/core/compile/schema_renderers/prompt.py +1 -1
- dataface/core/compile/schema_renderers/textmate_grammar.py +8 -1
- dataface/core/compile/source_map.py +211 -28
- dataface/core/compile/style_cascade.py +126 -55
- dataface/core/compile/yaml_error_formatter.py +1 -1
- dataface/core/connections.py +10 -3
- dataface/core/dashboard.py +24 -18
- dataface/core/defaults/themes/_base.yaml +49 -39
- dataface/core/defaults/themes/cream.yaml +4 -4
- dataface/core/defaults/themes/diagnostics-title-baseline.yaml +1 -1
- dataface/core/defaults/themes/diagnostics-title-color-extreme.yaml +1 -1
- dataface/core/defaults/themes/diagnostics-title-font-extreme.yaml +1 -1
- dataface/core/defaults/themes/diagnostics-title-size-extreme.yaml +1 -1
- dataface/core/defaults/themes/diagnostics-title-weight-extreme.yaml +1 -1
- dataface/core/defaults/themes/editorial.yaml +6 -6
- dataface/core/defaults/themes/neon.yaml +15 -8
- dataface/core/defaults/themes/plain.yaml +6 -4
- dataface/core/defaults/themes/stark.yaml +16 -7
- dataface/core/defaults/themes/vivid.yaml +15 -8
- dataface/core/diagnostics/__init__.py +2 -2
- dataface/core/diagnostics/codes_compile.py +13 -31
- dataface/core/diagnostics/codes_execute.py +79 -0
- dataface/core/diagnostics/codes_render.py +87 -28
- dataface/core/diagnostics/diagnostic.py +30 -0
- dataface/core/diagnostics/hints.py +19 -0
- dataface/core/dialects/base.py +17 -0
- dataface/core/dialects/postgres.py +14 -0
- dataface/core/dialects/redshift.py +5 -0
- dataface/core/execute/__init__.py +59 -14
- dataface/core/execute/adapters/dbt_adapter.py +4 -1
- dataface/core/execute/adapters/dbt_adapter_factory.py +19 -0
- dataface/core/execute/adapters/dbt_utils.py +84 -20
- dataface/core/execute/adapters/postgres_connection_manager.py +48 -0
- dataface/core/execute/adapters/sql_adapter.py +72 -4
- dataface/core/execute/dbt_jinja.py +65 -10
- dataface/core/execute/executor.py +69 -16
- dataface/core/font_measure.py +28 -0
- dataface/core/fonts.py +8 -5
- dataface/core/inspect/__init__.py +46 -6
- dataface/core/project.py +13 -1
- dataface/core/render/chart/data_table_attachment.py +14 -12
- dataface/core/render/chart/emitters/_cartesian.py +21 -18
- dataface/core/render/chart/emitters/_channels.py +56 -8
- dataface/core/render/chart/emitters/_label_overlap.py +18 -15
- dataface/core/render/chart/emitters/_measured_label_padding.py +4 -4
- dataface/core/render/chart/emitters/area.py +3 -3
- dataface/core/render/chart/emitters/bar.py +60 -35
- dataface/core/render/chart/emitters/geo.py +8 -13
- dataface/core/render/chart/emitters/heatmap.py +20 -26
- dataface/core/render/chart/emitters/line.py +2 -2
- dataface/core/render/chart/emitters/scatter.py +7 -30
- dataface/core/render/chart/features/baseline.py +22 -9
- dataface/core/render/chart/features/endpoint_labels.py +55 -32
- dataface/core/render/chart/features/mirror_axis.py +12 -9
- dataface/core/render/chart/features/value_labels.py +1 -1
- dataface/core/render/chart/kpi.py +11 -90
- dataface/core/render/chart/presentation.py +6 -8
- dataface/core/render/chart/rendering.py +3 -12
- dataface/core/render/chart/session.py +10 -0
- dataface/core/render/chart/spec.py +3 -0
- dataface/core/render/chart/spec_builders.py +18 -18
- dataface/core/render/chart/table.py +81 -36
- dataface/core/render/chart/table_support.py +2 -53
- dataface/core/render/chart/time_unit_detect.py +3 -2
- dataface/core/render/chart/translate.py +82 -44
- dataface/core/render/chart/type_inference.py +45 -25
- dataface/core/render/chart/validation.py +91 -0
- dataface/core/render/chart/vega_lite.py +30 -11
- dataface/core/render/chart/vl_field_maps.py +111 -76
- dataface/core/render/converters/chart.py +16 -6
- dataface/core/render/faces.py +3 -2
- dataface/core/render/fonts/DFTSerifOldstyleProportional-Regular.woff2 +0 -0
- dataface/core/render/fonts/DFTSerifOldstyleTabular-Regular.woff2 +0 -0
- dataface/core/render/fonts/SOURCE_CODE_PRO_LICENSE.txt +93 -93
- dataface/core/render/fonts/_font_face.css +10 -0
- dataface/core/render/layout_sizing.py +267 -238
- dataface/core/render/numeral_expr.py +80 -0
- dataface/core/render/warnings/bar_band_width_too_narrow.py +64 -6
- dataface/core/render/warnings/layered_chart_shared_y_axis_scale_mismatch.py +25 -3
- dataface/core/render/warnings/likely_currency_or_percent_missing_formatter.py +12 -6
- dataface/core/render/warnings/palette_unsupported.py +6 -0
- dataface/core/render/warnings/pie_dominant_segment.py +1 -0
- dataface/core/render/warnings/pie_too_many_segments.py +1 -0
- dataface/core/render/warnings/point_map_out_of_projection.py +1 -0
- dataface/core/render/warnings/query_returned_zero_rows.py +1 -0
- dataface/core/render/warnings/redundant_encoding.py +20 -1
- dataface/core/render/warnings/registry.py +7 -3
- dataface/core/render/warnings/temporal_single_point.py +1 -0
- dataface/core/render/warnings/too_many_color_categories.py +1 -0
- dataface/core/render/warnings/too_many_x_categories.py +18 -2
- dataface/core/render/warnings/value_labels_crowd_width.py +9 -0
- dataface/core/render/warnings/y_encoding_mostly_null.py +1 -0
- dataface/core/render_format.py +18 -0
- dataface/core/text/format_d3.py +56 -0
- dataface/core/text/numeral_scale.py +218 -0
- dataface/core/utils.py +103 -10
- dataface/data/schemas/board-resolved/board-resolved.schema.json +9487 -7978
- dataface/data/schemas/yaml/0.3.2.json +1 -0
- dataface/data/schemas/yaml/manifest.json +7 -0
- {dataface-0.3.2.dev22.dist-info → dataface-0.3.2.dev111.dist-info}/METADATA +1 -1
- {dataface-0.3.2.dev22.dist-info → dataface-0.3.2.dev111.dist-info}/RECORD +185 -177
- {dataface-0.3.2.dev22.dist-info → dataface-0.3.2.dev111.dist-info}/WHEEL +0 -0
- {dataface-0.3.2.dev22.dist-info → dataface-0.3.2.dev111.dist-info}/entry_points.txt +0 -0
- {dataface-0.3.2.dev22.dist-info → dataface-0.3.2.dev111.dist-info}/licenses/LICENSE +0 -0
|
@@ -651,14 +651,14 @@ Authored overlay for BarChartStyle. Bar chart style: chart-level fields + marks
|
|
|
651
651
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
652
652
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
653
653
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
654
|
-
| `axis` | [
|
|
655
|
-
| `axis_x` | [
|
|
656
|
-
| `axis_y` | [
|
|
657
|
-
| `axis_quantitative` | [
|
|
658
|
-
| `axis_band` | [
|
|
654
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
655
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
656
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
657
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
658
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
659
659
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
660
660
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
661
|
-
| `scale` | [
|
|
661
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
662
662
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
663
663
|
| `orientation` | enum: "horizontal", "vertical", "auto" | ✓ | Preferred bar orientation; None uses the renderer default (vertical). |
|
|
664
664
|
| `stack` | enum: "none", "zero", "normalize", "center" | ✓ | Default stack mode for bar charts; none renders side-by-side columns. |
|
|
@@ -746,14 +746,14 @@ Authored overlay for LineChartStyle. Line chart style: chart-level fields + mark
|
|
|
746
746
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
747
747
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
748
748
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
749
|
-
| `axis` | [
|
|
750
|
-
| `axis_x` | [
|
|
751
|
-
| `axis_y` | [
|
|
752
|
-
| `axis_quantitative` | [
|
|
753
|
-
| `axis_band` | [
|
|
749
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
750
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
751
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
752
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
753
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
754
754
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
755
755
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
756
|
-
| `scale` | [
|
|
756
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
757
757
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
758
758
|
| `endpoint_labels` | [EndpointLabelsConfig](#endpointlabelsconfig) | ✓ | Endpoint label pane configuration for line charts. |
|
|
759
759
|
| `marks` | [LineChartMarksStyle](#linechartmarksstyle) | ✓ | Line-family mark overrides. Unset fields fall back to [`style.charts.marks`](#chartsstyle). |
|
|
@@ -777,14 +777,14 @@ Authored overlay for AreaChartStyle. Area chart style: chart-level fields + mark
|
|
|
777
777
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
778
778
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
779
779
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
780
|
-
| `axis` | [
|
|
781
|
-
| `axis_x` | [
|
|
782
|
-
| `axis_y` | [
|
|
783
|
-
| `axis_quantitative` | [
|
|
784
|
-
| `axis_band` | [
|
|
780
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
781
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
782
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
783
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
784
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
785
785
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
786
786
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
787
|
-
| `scale` | [
|
|
787
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
788
788
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
789
789
|
| `stack` | enum: "none", "zero", "normalize", "center" | ✓ | Default stack mode for area charts: 'none', 'zero', 'normalize', or 'center'. |
|
|
790
790
|
| `endpoint_labels` | [EndpointLabelsConfig](#endpointlabelsconfig) | ✓ | Endpoint label pane configuration for area charts. |
|
|
@@ -809,14 +809,14 @@ Authored overlay for ScatterChartStyle. Scatter chart style: chart-level fields
|
|
|
809
809
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
810
810
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
811
811
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
812
|
-
| `axis` | [
|
|
813
|
-
| `axis_x` | [
|
|
814
|
-
| `axis_y` | [
|
|
815
|
-
| `axis_quantitative` | [
|
|
816
|
-
| `axis_band` | [
|
|
812
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
813
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
814
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
815
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
816
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
817
817
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
818
818
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
819
|
-
| `scale` | [
|
|
819
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
820
820
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
821
821
|
| `marks` | [ScatterChartMarksStyle](#scatterchartmarksstyle) | ✓ | Scatter-family mark overrides. Unset fields fall back to [`style.charts.marks`](#chartsstyle). |
|
|
822
822
|
|
|
@@ -839,14 +839,14 @@ Authored overlay for HeatmapChartStyle. Heatmap chart style.
|
|
|
839
839
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
840
840
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
841
841
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
842
|
-
| `axis` | [
|
|
843
|
-
| `axis_x` | [
|
|
844
|
-
| `axis_y` | [
|
|
845
|
-
| `axis_quantitative` | [
|
|
846
|
-
| `axis_band` | [
|
|
842
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
843
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
844
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
845
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
846
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
847
847
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
848
848
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
849
|
-
| `scale` | [
|
|
849
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
850
850
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
851
851
|
| `cell_padding` | float | ✓ | Padding between heatmap cells in pixels. |
|
|
852
852
|
| `marks` | [HeatmapChartMarksStyle](#heatmapchartmarksstyle) | ✓ | Heatmap-family mark overrides. Unset fields fall back to [`style.charts.marks`](#chartsstyle). |
|
|
@@ -1192,10 +1192,10 @@ Authored overlay for ChartsStyle. Registry of all chart-type styles plus shared
|
|
|
1192
1192
|
| `default_chart_height` | float | ✓ | Fallback chart height in pixels when aspect-ratio sizing is unavailable. |
|
|
1193
1193
|
| `default_table_height` | float | ✓ | Placeholder table height in pixels; replaced by data-aware row-count sizing at render time. |
|
|
1194
1194
|
| `label_usable_ratio` | float | ✓ | Fraction of chart width usable for axis labels (0–1); labels are tilted when full labels exceed this width. |
|
|
1195
|
-
| `axis` | [
|
|
1196
|
-
| `axis_x` | [
|
|
1197
|
-
| `axis_y` | [
|
|
1198
|
-
| `axis_quantitative` | [
|
|
1195
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Shared axis style applied to all axes before per-axis overrides. |
|
|
1196
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | X-axis style overrides applied after the shared axis. Unset fields fall back to style.charts.axis. |
|
|
1197
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Y-axis style overrides applied after the shared axis. Unset fields fall back to style.charts.axis. |
|
|
1198
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Quantitative axis style overrides applied after axis_x/axis_y. Unset fields fall back to style.charts.axis. |
|
|
1199
1199
|
| `view` | [ViewStyle](#viewstyle) | ✓ | Vega-Lite view dimensions and border. |
|
|
1200
1200
|
| `marks` | [GlobalMarksStyle](#globalmarksstyle) | ✓ | Global mark defaults (tier-1 of the marks cascade). |
|
|
1201
1201
|
| `bar` | [BarChartStyle](#barchartstyle) | ✓ | Bar chart style. |
|
|
@@ -1425,58 +1425,92 @@ Authored overlay for ColorStyle. Unified chart color config: static paint, categ
|
|
|
1425
1425
|
| `gradient` | [ScaleTargetConfig](#scaletargetconfig) | ✓ | Continuous gradient scale for the color encoding. |
|
|
1426
1426
|
| `categorical` | [CategoricalColorStyle](#categoricalcolorstyle) | ✓ | Categorical color and single-series palette config. |
|
|
1427
1427
|
|
|
1428
|
-
<a id="
|
|
1429
|
-
##
|
|
1430
|
-
Authored overlay for
|
|
1428
|
+
<a id="baseaxisstyle"></a>
|
|
1429
|
+
## BaseAxisStyle
|
|
1430
|
+
Authored overlay for BaseAxisStyle. Universal axis surface — grid/line/ticks/labels/title/scale.
|
|
1431
1431
|
|
|
1432
1432
|
| Field | Type | Optional | Description |
|
|
1433
1433
|
|-------|------|:--------:|-------------|
|
|
1434
|
-
| `grid` | [
|
|
1435
|
-
| `
|
|
1434
|
+
| `grid` | [BaseAxisGridStyle](#baseaxisgridstyle) | ✓ | Grid line style for this axis. |
|
|
1435
|
+
| `line` | [AxisLineStyle](#axislinestyle) | ✓ | Domain line style for this axis. |
|
|
1436
1436
|
| `ticks` | [AxisTicksStyle](#axisticksstyle) | ✓ | Tick mark style for this axis. |
|
|
1437
|
-
| `
|
|
1438
|
-
| `title` | [
|
|
1439
|
-
| `
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
|
1437
|
+
| `labels` | [AxisLabelStyle](#axislabelstyle) | ✓ | Axis label style. |
|
|
1438
|
+
| `title` | [AxisTitleStyle](#axistitlestyle) | ✓ | Axis title style. |
|
|
1439
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Per-axis scale overrides; None means no override. |
|
|
1440
|
+
|
|
1441
|
+
<a id="axisxstyle"></a>
|
|
1442
|
+
## AxisXStyle
|
|
1443
|
+
Authored overlay for AxisXStyle. Dimension/category-time axis style. Theme slot: axis_x.
|
|
1444
|
+
|
|
1445
|
+
| Field | Type | Optional | Description |
|
|
1446
|
+
|-------|------|:--------:|-------------|
|
|
1447
|
+
| `grid` | [BaseAxisGridStyle](#baseaxisgridstyle) | ✓ | Grid line style for this axis. |
|
|
1448
|
+
| `line` | [AxisLineStyle](#axislinestyle) | ✓ | Domain line style for this axis. |
|
|
1449
|
+
| `ticks` | [DimensionTicksStyle](#dimensionticksstyle) | ✓ | Dimension axis tick style. |
|
|
1450
|
+
| `labels` | [DimensionLabelStyle](#dimensionlabelstyle) | ✓ | Dimension axis label style. |
|
|
1451
|
+
| `title` | [AxisTitleStyle](#axistitlestyle) | ✓ | Axis title style. |
|
|
1452
|
+
| `scale` | [XScaleStyle](#xscalestyle) | ✓ | X-axis scale overrides including x_reverse; None means no override. |
|
|
1453
|
+
| `position` | enum: "top", "bottom" | ✓ | X-axis position; None uses Vega-Lite's default (bottom). |
|
|
1446
1454
|
| `time_unit` | enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | ✓ | Time-unit bucketing for temporal x-axes; None or 'auto' auto-detects from data. |
|
|
1447
|
-
| `scale` | [ScaleStyle](#scalestyle) | ✓ | Per-axis scale overrides; None means no override. |
|
|
1448
1455
|
| `type` | enum: "auto", "ordinal", "temporal" | ✓ | Scale type for bucketed-time x-axes; None/'auto' infers from time_unit grain. |
|
|
1449
1456
|
| `fill` | enum: "null", "zero", "linear", "step-after", "step-before", "step-center", "curve" | ✓ | Fill for synthesized missing-bucket rows: null, zero, linear, step-after / step-before / step-center (Looker step), or curve (smoothstep). |
|
|
1450
1457
|
| `fiscal_year_start_month` | int | ✓ | Calendar month (1=Jan..12=Dec) that opens a fiscal year/quarter for year/yearquarter bucketing; theme default 1 is the calendar convention (Q1=Jan-Mar). A non-default value always wins over axis_x.type: temporal for year/yearquarter grains - Vega-Lite's native timeUnit transform has no fiscal-offset concept and would otherwise silently discard the offset. |
|
|
1451
1458
|
|
|
1452
|
-
<a id="
|
|
1453
|
-
##
|
|
1454
|
-
Authored overlay for
|
|
1459
|
+
<a id="axisystyle"></a>
|
|
1460
|
+
## AxisYStyle
|
|
1461
|
+
Authored overlay for AxisYStyle. Measure axis style. Theme slot: axis_y.
|
|
1462
|
+
|
|
1463
|
+
| Field | Type | Optional | Description |
|
|
1464
|
+
|-------|------|:--------:|-------------|
|
|
1465
|
+
| `grid` | [MeasureGridStyle](#measuregridstyle) | ✓ | Measure axis grid style (includes zero-baseline override). |
|
|
1466
|
+
| `line` | [AxisLineStyle](#axislinestyle) | ✓ | Domain line style for this axis. |
|
|
1467
|
+
| `ticks` | [AxisTicksStyle](#axisticksstyle) | ✓ | Tick mark style for this axis. |
|
|
1468
|
+
| `labels` | [AxisLabelStyle](#axislabelstyle) | ✓ | Axis label style. |
|
|
1469
|
+
| `title` | [AxisTitleStyle](#axistitlestyle) | ✓ | Axis title style. |
|
|
1470
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Per-axis scale overrides; None means no override. |
|
|
1471
|
+
| `position` | enum: "left", "right", "auto" | ✓ | Y-axis position; auto flips when endpoint labels are on the right. |
|
|
1472
|
+
| `mirror` | bool \| [AxisMirrorStyle](#axismirrorstyle) | ✓ | Draw the y-scale on both left and right edges (wide charts). true mirrors the primary axis's label verbatim; an object (format/expr) relabels only the mirrored edge — e.g. a percent-of-total right axis next to an absolute-value left axis — while ticks stay aligned to the single shared scale. Only meaningful on axis_y. |
|
|
1473
|
+
|
|
1474
|
+
<a id="quantitativeaxisstyle"></a>
|
|
1475
|
+
## QuantitativeAxisStyle
|
|
1476
|
+
Authored overlay for QuantitativeAxisStyle. Scale-type overlay for quantitative axes. Theme slot: axis_quantitative.
|
|
1477
|
+
|
|
1478
|
+
| Field | Type | Optional | Description |
|
|
1479
|
+
|-------|------|:--------:|-------------|
|
|
1480
|
+
| `grid` | [BaseAxisGridStyle](#baseaxisgridstyle) | ✓ | Grid line style for this axis. |
|
|
1481
|
+
| `line` | [AxisLineStyle](#axislinestyle) | ✓ | Domain line style for this axis. |
|
|
1482
|
+
| `ticks` | [AxisTicksStyle](#axisticksstyle) | ✓ | Tick mark style for this axis. |
|
|
1483
|
+
| `labels` | [AxisLabelStyle](#axislabelstyle) | ✓ | Axis label style. |
|
|
1484
|
+
| `title` | [AxisTitleStyle](#axistitlestyle) | ✓ | Axis title style. |
|
|
1485
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Per-axis scale overrides; None means no override. |
|
|
1486
|
+
|
|
1487
|
+
<a id="bandaxisstyle"></a>
|
|
1488
|
+
## BandAxisStyle
|
|
1489
|
+
Authored overlay for BandAxisStyle. Scale-type overlay for band (categorical) axes. Theme slot: axis_band.
|
|
1490
|
+
|
|
1491
|
+
| Field | Type | Optional | Description |
|
|
1492
|
+
|-------|------|:--------:|-------------|
|
|
1493
|
+
| `grid` | [BaseAxisGridStyle](#baseaxisgridstyle) | ✓ | Grid line style for this axis. |
|
|
1494
|
+
| `line` | [AxisLineStyle](#axislinestyle) | ✓ | Domain line style for this axis. |
|
|
1495
|
+
| `ticks` | [AxisTicksStyle](#axisticksstyle) | ✓ | Tick mark style for this axis. |
|
|
1496
|
+
| `labels` | [AxisLabelStyle](#axislabelstyle) | ✓ | Axis label style. |
|
|
1497
|
+
| `title` | [AxisTitleStyle](#axistitlestyle) | ✓ | Axis title style. |
|
|
1498
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Per-axis scale overrides; None means no override. |
|
|
1499
|
+
| `band_position` | float | ✓ | Band position within the step (0–1); None uses Vega-Lite's default. |
|
|
1500
|
+
|
|
1501
|
+
<a id="basescalestyle"></a>
|
|
1502
|
+
## BaseScaleStyle
|
|
1503
|
+
Authored overlay for BaseScaleStyle. Universal + continuous-only scale config.
|
|
1455
1504
|
|
|
1456
1505
|
| Field | Type | Optional | Description |
|
|
1457
1506
|
|-------|------|:--------:|-------------|
|
|
1458
|
-
| `band_padding_inner` | float | ✓ | Inner padding fraction for band scales; None uses Vega-Lite's default. |
|
|
1459
|
-
| `band_padding_outer` | float | ✓ | Outer padding fraction for band scales; None uses Vega-Lite's default. |
|
|
1460
|
-
| `point_padding` | float | ✓ | Padding fraction for point scales; None uses Vega-Lite's default. |
|
|
1461
|
-
| `rect_band_padding_inner` | float | ✓ | Inner padding fraction for rect band scales; None uses Vega-Lite's default. |
|
|
1462
1507
|
| `round` | bool | ✓ | Round scale outputs to nearest integer; None uses Vega-Lite's default (no rounding). |
|
|
1463
|
-
| `zero` | bool \| enum: "auto" | ✓ | Force scale zero-baseline: True/False pins it; "auto" runs the Dataface smart-zero heuristic; None passes through to Vega-Lite. |
|
|
1464
1508
|
| `clamp` | bool | ✓ | Clamp values to scale domain; None uses Vega-Lite's default (no clamping). |
|
|
1465
|
-
| `continuous_padding` | float | ✓ | Padding in pixels for continuous scales; None uses Vega-Lite's default. |
|
|
1466
|
-
| `band` | [ScaleBandStyle](#scalebandstyle) | ✓ | Band mark size constraints; None uses Vega-Lite's defaults. |
|
|
1467
|
-
| `quantile_count` | int | ✓ | Number of quantile buckets; None uses Vega-Lite's default. |
|
|
1468
|
-
| `quantize_count` | int | ✓ | Number of quantize buckets; None uses Vega-Lite's default. |
|
|
1469
|
-
| `use_unaggregated_domain` | bool | ✓ | Use unaggregated domain for scale extent; None uses Vega-Lite's default. |
|
|
1470
|
-
| `x_reverse` | bool | ✓ | Reverse the x-axis scale direction; None means no reversal. |
|
|
1471
|
-
| `type` | enum: "linear", "log", "pow", "sqrt", "symlog", "temporal" | ✓ | Scale type override. 'linear'/'log'/'pow'/'sqrt'/'symlog' pass straight through to Vega-Lite's quantitative scale.type. 'temporal' is a Dataface escape hatch for a cartesian x-axis: it forces a continuous temporal scale instead of the auto-inferred ordinal/nominal bucketed type, which is required before an authored ``domain`` of ISO dates can extend the visible range past the data extent. None lets Dataface/Vega-Lite infer from the field type. |
|
|
1472
|
-
| `domain` | list[Any] | ✓ | Explicit [low, high] scale domain; None lets Vega-Lite auto-determine from data. Must have exactly 2 elements — Dataface only wires a continuous range override through to Vega-Lite, not an explicit category enumeration. When ``type: temporal`` is set, both elements must be ISO-8601 date/datetime strings. |
|
|
1473
|
-
| `base` | float | ✓ | Log base; only meaningful with type: log. None lets Vega-Lite apply its own default (10). |
|
|
1474
|
-
| `exponent` | float | ✓ | Power exponent; only meaningful with type: pow. None uses Vega-Lite's default. |
|
|
1475
|
-
| `constant` | float | ✓ | Symlog constant; only meaningful with type: symlog. None uses Vega-Lite's default. |
|
|
1476
|
-
| `domain_strategy` | enum: "stable", "auto" | ✓ | How the numeric domain responds to filter-variable changes when no explicit `domain` is authored. 'stable' (the default when None) pins the domain to the chart query's full unfiltered extent — the same value lands at the same pixel across variable changes. 'auto' rescales the domain to the current filtered subset on every variable change. An explicit `domain` always wins over either strategy. |
|
|
1477
1509
|
| `nice` | bool | ✓ | Round scale domain to nice values; None uses Vega-Lite's default. |
|
|
1478
1510
|
| `padding` | float | ✓ | Unified scale padding shortcut; dispatches to band, point, or continuous padding per scale type. |
|
|
1479
1511
|
| `headroom` | float | ✓ | Fractional breathing room at measure-axis edges, exact (never nice-rounded). Zero-anchored axes (bar; line/area/scatter near zero): domain_max = data_max * (1 + headroom). Zoomed axes (line/area/scatter far from zero): both edges expand — domain_max = data_max + headroom * span; domain_min = data_min - headroom * span. None inherits the theme default; 0 disables headroom. Ignored with an explicit `domain` or `stack: normalize`. |
|
|
1512
|
+
| `values` | list[Any] | ✓ | Explicit tick values; None uses Vega-Lite's auto tick values. |
|
|
1513
|
+
| `continuous` | [ScaleContinuousStyle](#scalecontinuousstyle) | ✓ | Continuous-scale overrides (type, domain, zero, log/pow/symlog params); None means no override. |
|
|
1480
1514
|
|
|
1481
1515
|
<a id="datatablestyle"></a>
|
|
1482
1516
|
## DataTableStyle
|
|
@@ -2039,14 +2073,14 @@ Authored overlay for HistogramChartStyle. Histogram chart style.
|
|
|
2039
2073
|
| `background` | str | ✓ | Chart-local background color override; None inherits from theme. |
|
|
2040
2074
|
| `color` | [ColorStyle](#colorstyle) | ✓ | Chart color: static mark paint, categorical palette, and/or gradient scale. |
|
|
2041
2075
|
| `title` | [TitleStyle](#titlestyle) | ✓ | Chart-level title style override; None inherits the theme title style. |
|
|
2042
|
-
| `axis` | [
|
|
2043
|
-
| `axis_x` | [
|
|
2044
|
-
| `axis_y` | [
|
|
2045
|
-
| `axis_quantitative` | [
|
|
2046
|
-
| `axis_band` | [
|
|
2076
|
+
| `axis` | [BaseAxisStyle](#baseaxisstyle) | ✓ | Override applied to both x and y axes; None inherits the global axis at render. |
|
|
2077
|
+
| `axis_x` | [AxisXStyle](#axisxstyle) | ✓ | Per-chart-type x-axis style overrides; None inherits the global axis_x at render. |
|
|
2078
|
+
| `axis_y` | [AxisYStyle](#axisystyle) | ✓ | Per-chart-type y-axis style overrides; None inherits the global axis_y at render. |
|
|
2079
|
+
| `axis_quantitative` | [QuantitativeAxisStyle](#quantitativeaxisstyle) | ✓ | Per-chart-type quantitative-axis overrides; None inherits the global axis_quantitative at render. |
|
|
2080
|
+
| `axis_band` | [BandAxisStyle](#bandaxisstyle) | ✓ | Per-chart-type categorical (band) axis overrides; None inherits the global band axis at render. |
|
|
2047
2081
|
| `number_format` | str | ✓ | Default number format for axes and tooltips (D3 format string); None inherits from theme. |
|
|
2048
2082
|
| `time_format` | str | ✓ | Default time format for temporal axes (D3 time format string); None inherits from theme. |
|
|
2049
|
-
| `scale` | [
|
|
2083
|
+
| `scale` | [BaseScaleStyle](#basescalestyle) | ✓ | Chart-type encoding scale overrides applied to both x and y; None means no override. |
|
|
2050
2084
|
| `data_table` | [DataTableStyle](#datatablestyle) | ✓ | Per-chart-type data_table style override. Unset fields fall back to [`style.charts.data_table`](#chartsstyle). |
|
|
2051
2085
|
| `bin_maxbins` | int | ✓ | Maximum number of bins for auto-binning. |
|
|
2052
2086
|
| `marks` | [HistogramChartMarksStyle](#histogramchartmarksstyle) | ✓ | Histogram-family mark overrides. Unset fields fall back to [`style.charts.marks`](#chartsstyle). |
|
|
@@ -2229,9 +2263,9 @@ Authored overlay for CategoricalColorStyle. Categorical palette config: per-seri
|
|
|
2229
2263
|
| `palette` | list[str] \| str | ✓ | Categorical color palette: list of stops or a named palette. Expanded to list[str] at validation time. |
|
|
2230
2264
|
| `single_series_palette` | list[str] \| str | ✓ | Ordered list of single-series mark inks (must be non-empty when set), or a palette name. |
|
|
2231
2265
|
|
|
2232
|
-
<a id="
|
|
2233
|
-
##
|
|
2234
|
-
Authored overlay for
|
|
2266
|
+
<a id="baseaxisgridstyle"></a>
|
|
2267
|
+
## BaseAxisGridStyle
|
|
2268
|
+
Authored overlay for BaseAxisGridStyle. Grid line style for all axis variants.
|
|
2235
2269
|
|
|
2236
2270
|
| Field | Type | Optional | Description |
|
|
2237
2271
|
|-------|------|:--------:|-------------|
|
|
@@ -2240,11 +2274,10 @@ Authored overlay for AxisGridStyle.
|
|
|
2240
2274
|
| `width` | float | ✓ | Grid line width in pixels; None uses Vega-Lite's default. |
|
|
2241
2275
|
| `color` | str | ✓ | Grid line color; None uses Vega-Lite's default. |
|
|
2242
2276
|
| `dash` | list[float] | ✓ | Dash pattern for grid lines; None renders a solid line. |
|
|
2243
|
-
| `zero` | [AxisGridZeroStyle](#axisgridzerostyle) | ✓ | Zero-baseline gridline style; None inherits from parent axis. |
|
|
2244
2277
|
|
|
2245
|
-
<a id="
|
|
2246
|
-
##
|
|
2247
|
-
Authored overlay for AxisDomainStyle
|
|
2278
|
+
<a id="axislinestyle"></a>
|
|
2279
|
+
## AxisLineStyle
|
|
2280
|
+
Authored overlay for AxisLineStyle. Axis domain/baseline line style. Renamed from ``AxisDomainStyle`` —
|
|
2248
2281
|
|
|
2249
2282
|
| Field | Type | Optional | Description |
|
|
2250
2283
|
|-------|------|:--------:|-------------|
|
|
@@ -2254,21 +2287,21 @@ Authored overlay for AxisDomainStyle.
|
|
|
2254
2287
|
|
|
2255
2288
|
<a id="axisticksstyle"></a>
|
|
2256
2289
|
## AxisTicksStyle
|
|
2257
|
-
Authored overlay for AxisTicksStyle.
|
|
2290
|
+
Authored overlay for AxisTicksStyle. Universal tick config. ``step``-anchored cadence needs a named time
|
|
2258
2291
|
|
|
2259
2292
|
| Field | Type | Optional | Description |
|
|
2260
2293
|
|-------|------|:--------:|-------------|
|
|
2261
2294
|
| `visible` | bool | ✓ | Show axis ticks; None inherits from parent axis. |
|
|
2262
2295
|
| `color` | str | ✓ | Tick color; None uses Vega-Lite's default. |
|
|
2263
|
-
| `
|
|
2296
|
+
| `length` | float | ✓ | Tick length in pixels; None uses Vega-Lite's default. |
|
|
2264
2297
|
| `width` | float | ✓ | Tick stroke width in pixels; None uses Vega-Lite's default. |
|
|
2298
|
+
| `offset` | float | ✓ | Pixel offset of ticks from their default position; None means no offset. |
|
|
2265
2299
|
| `count` | int | ✓ | Target number of axis ticks. On a quantitative axis the renderer computes explicit tickValues so VL emits exactly this many ticks — VL's tickCount is advisory and frequently ignored there. On a temporal axis_x, count is passed through as VL's axis.tickCount, which VL's time-scale tick logic honours as a target. |
|
|
2266
|
-
| `
|
|
2267
|
-
| `step` | int | ✓ | Step multiple for the interval cadence (e.g. interval: year, step: 5 -> ticks every 5 years). Requires interval to also be set — step alone doesn't name a unit. |
|
|
2300
|
+
| `step` | int | ✓ | Step multiple for a step-anchored tick cadence (e.g. on DimensionTicksStyle: time_unit: year, step: 5 -> ticks every 5 years). Inert on this base class alone — a channel that wants step-anchored cadence adds the unit field (DimensionTicksStyle.time_unit). |
|
|
2268
2301
|
|
|
2269
|
-
<a id="
|
|
2270
|
-
##
|
|
2271
|
-
Authored overlay for
|
|
2302
|
+
<a id="axislabelstyle"></a>
|
|
2303
|
+
## AxisLabelStyle
|
|
2304
|
+
Authored overlay for AxisLabelStyle. Axis label: font + padding + VL-passthrough.
|
|
2272
2305
|
|
|
2273
2306
|
| Field | Type | Optional | Description |
|
|
2274
2307
|
|-------|------|:--------:|-------------|
|
|
@@ -2277,19 +2310,92 @@ Authored overlay for AxisElementStyle. Axis label or title: font + padding + VL-
|
|
|
2277
2310
|
| `max_width` | float | ✓ | Maximum label width in pixels; None uses Vega-Lite's default (180px). |
|
|
2278
2311
|
| `angle` | float | ✓ | Label rotation angle in degrees; None uses Vega-Lite's default. |
|
|
2279
2312
|
| `align` | enum: "left", "right", "center", "inward", "outward" | ✓ | Horizontal text alignment of labels. 'left'/'right'/'center' are absolute. 'inward' hugs the plot (own-side: left on a left axis, right on a right axis); 'outward' hugs away from the plot (Vega-Lite's default growth direction). inward/outward are a no-op on an axis with no left/right edge. None uses Vega-Lite's default. |
|
|
2280
|
-
| `baseline` | str | ✓ | Vertical text baseline of labels; None uses Vega-Lite's default. |
|
|
2281
2313
|
| `overlap` | [AxisLabelOverlapConfig](#axislabeloverlapconfig) | ✓ | Label overlap strategy enablement. None inherits from the theme cascade. Set individual bools to enable/disable; the resolver applies them in fixed order skip→tilt. On bucketed temporal axes, skip thins label visibility to a coarser calendar period without changing the axis or label time unit. |
|
|
2282
|
-
| `
|
|
2314
|
+
| `min_gap` | float | ✓ | Minimum pixel gap between labels; None uses Vega-Lite's default (0px). |
|
|
2315
|
+
| `visible` | bool | ✓ | Show axis labels; None uses Vega-Lite's default (labels shown). |
|
|
2316
|
+
| `expr` | str | ✓ | Custom Vega expression for label text; None uses smart temporal defaults when applicable. |
|
|
2317
|
+
| `bound` | bool \| float | ✓ | Hide labels that overflow the axis range; None uses Vega-Lite's default. |
|
|
2318
|
+
| `flush` | bool \| float | ✓ | Align first/last label flush with the scale range; None uses Vega-Lite's default. |
|
|
2319
|
+
| `offset` | float | ✓ | Pixel offset of the label from its tick anchor; None uses Vega-Lite's default. |
|
|
2320
|
+
| `format` | str | ✓ | Tick value format string; None uses auto-format. |
|
|
2321
|
+
|
|
2322
|
+
<a id="axistitlestyle"></a>
|
|
2323
|
+
## AxisTitleStyle
|
|
2324
|
+
Authored overlay for AxisTitleStyle. Axis title typography — deliberately thin. A title is one short static
|
|
2325
|
+
|
|
2326
|
+
| Field | Type | Optional | Description |
|
|
2327
|
+
|-------|------|:--------:|-------------|
|
|
2328
|
+
| `font` | [FontStyle](#fontstyle) | ✓ | Axis title font style overrides. Unset fields fall back to [`style.charts.font`](#chartsstyle). |
|
|
2329
|
+
| `padding` | float | ✓ | Padding between axis title and labels in pixels; None uses Vega-Lite's default. |
|
|
2330
|
+
| `angle` | float | ✓ | Title rotation angle in degrees; None uses Vega-Lite's default. |
|
|
2331
|
+
| `align` | enum: "left", "right", "center", "inward", "outward" | ✓ | Horizontal text alignment of the title. 'left'/'right'/'center' are absolute. 'inward'/'outward' resolve against the axis's own left/right edge, same as label.align; a no-op on an axis with no left/right edge. None uses Vega-Lite's default. |
|
|
2332
|
+
| `visible` | bool | ✓ | Show the axis title; None uses Vega-Lite's default (title shown). |
|
|
2333
|
+
|
|
2334
|
+
<a id="dimensionticksstyle"></a>
|
|
2335
|
+
## DimensionTicksStyle
|
|
2336
|
+
Authored overlay for DimensionTicksStyle. axis_x-only: step-anchored tick cadence needs a named time unit.
|
|
2337
|
+
|
|
2338
|
+
| Field | Type | Optional | Description |
|
|
2339
|
+
|-------|------|:--------:|-------------|
|
|
2340
|
+
| `visible` | bool | ✓ | Show axis ticks; None inherits from parent axis. |
|
|
2341
|
+
| `color` | str | ✓ | Tick color; None uses Vega-Lite's default. |
|
|
2342
|
+
| `length` | float | ✓ | Tick length in pixels; None uses Vega-Lite's default. |
|
|
2343
|
+
| `width` | float | ✓ | Tick stroke width in pixels; None uses Vega-Lite's default. |
|
|
2344
|
+
| `offset` | float | ✓ | Pixel offset of ticks from their default position; None means no offset. |
|
|
2345
|
+
| `count` | int | ✓ | Target number of axis ticks. On a quantitative axis the renderer computes explicit tickValues so VL emits exactly this many ticks — VL's tickCount is advisory and frequently ignored there. On a temporal axis_x, count is passed through as VL's axis.tickCount, which VL's time-scale tick logic honours as a target. |
|
|
2346
|
+
| `step` | int | ✓ | Step multiple for a step-anchored tick cadence (e.g. on DimensionTicksStyle: time_unit: year, step: 5 -> ticks every 5 years). Inert on this base class alone — a channel that wants step-anchored cadence adds the unit field (DimensionTicksStyle.time_unit). |
|
|
2347
|
+
| `time_unit` | enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | ✓ | Step-anchored tick cadence unit; None disables step-anchored ticks. |
|
|
2348
|
+
|
|
2349
|
+
<a id="dimensionlabelstyle"></a>
|
|
2350
|
+
## DimensionLabelStyle
|
|
2351
|
+
Authored overlay for DimensionLabelStyle. AxisLabelStyle + dimension-axis-only label fields.
|
|
2352
|
+
|
|
2353
|
+
| Field | Type | Optional | Description |
|
|
2354
|
+
|-------|------|:--------:|-------------|
|
|
2355
|
+
| `font` | [FontStyle](#fontstyle) | ✓ | Axis element font style overrides. Unset fields fall back to [`style.charts.font`](#chartsstyle). |
|
|
2356
|
+
| `padding` | float | ✓ | Padding between axis labels and ticks in pixels; None inherits from parent axis. |
|
|
2357
|
+
| `max_width` | float | ✓ | Maximum label width in pixels; None uses Vega-Lite's default (180px). |
|
|
2358
|
+
| `angle` | float | ✓ | Label rotation angle in degrees; None uses Vega-Lite's default. |
|
|
2359
|
+
| `align` | enum: "left", "right", "center", "inward", "outward" | ✓ | Horizontal text alignment of labels. 'left'/'right'/'center' are absolute. 'inward' hugs the plot (own-side: left on a left axis, right on a right axis); 'outward' hugs away from the plot (Vega-Lite's default growth direction). inward/outward are a no-op on an axis with no left/right edge. None uses Vega-Lite's default. |
|
|
2360
|
+
| `overlap` | [AxisLabelOverlapConfig](#axislabeloverlapconfig) | ✓ | Label overlap strategy enablement. None inherits from the theme cascade. Set individual bools to enable/disable; the resolver applies them in fixed order skip→tilt. On bucketed temporal axes, skip thins label visibility to a coarser calendar period without changing the axis or label time unit. |
|
|
2361
|
+
| `min_gap` | float | ✓ | Minimum pixel gap between labels; None uses Vega-Lite's default (0px). |
|
|
2283
2362
|
| `visible` | bool | ✓ | Show axis labels; None uses Vega-Lite's default (labels shown). |
|
|
2284
|
-
| `time_unit` | enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | ✓ | Label cadence for temporal axes; None inherits from the parent axis time_unit. |
|
|
2285
2363
|
| `expr` | str | ✓ | Custom Vega expression for label text; None uses smart temporal defaults when applicable. |
|
|
2286
2364
|
| `bound` | bool \| float | ✓ | Hide labels that overflow the axis range; None uses Vega-Lite's default. |
|
|
2287
2365
|
| `flush` | bool \| float | ✓ | Align first/last label flush with the scale range; None uses Vega-Lite's default. |
|
|
2288
2366
|
| `offset` | float | ✓ | Pixel offset of the label from its tick anchor; None uses Vega-Lite's default. |
|
|
2289
|
-
| `
|
|
2290
|
-
| `
|
|
2367
|
+
| `format` | str | ✓ | Tick value format string; None uses auto-format. |
|
|
2368
|
+
| `time_unit` | enum: "auto", "year", "yearquarter", "yearmonth", "yearweek", "yearmonthdate", "monthofyear", "dayofweek", "dayofmonth", "dayofyear", "hourofday", "none" | ✓ | Label cadence for temporal axes; None inherits from the parent axis time_unit. |
|
|
2291
2369
|
| `tilt_increments` | list[float] | ✓ | Descending tilt angles for label overlap resolution on discrete x-axes; None disables tilt. |
|
|
2292
|
-
| `values` | list[Any] | ✓ | Dates to keep label text on, chosen from among the axis's ticks (whatever axis_x.values or the auto-fill cadence already produced) — this filters which ticks show text, it does not add or remove ticks. Every tick not in this list keeps its position and gridline but has its label blanked. Set axis_x.values separately to change tick/grid density itself. Temporal x-axes only; None labels every tick as usual. |
|
|
2370
|
+
| `values` | list[Any] | ✓ | Dates to keep label text on, chosen from among the axis's ticks (whatever axis_x.values or the auto-fill cadence already produced) — this filters which ticks show text, it does not add or remove ticks. Every tick not in this list keeps its position and gridline but has its label blanked. Set axis_x.values separately to change tick/grid density itself. Temporal x-axes only; not supported on a horizontal bar's categorical axis. None labels every tick as usual. |
|
|
2371
|
+
|
|
2372
|
+
<a id="xscalestyle"></a>
|
|
2373
|
+
## XScaleStyle
|
|
2374
|
+
Authored overlay for XScaleStyle. Scale config for axis_x.scale only.
|
|
2375
|
+
|
|
2376
|
+
| Field | Type | Optional | Description |
|
|
2377
|
+
|-------|------|:--------:|-------------|
|
|
2378
|
+
| `round` | bool | ✓ | Round scale outputs to nearest integer; None uses Vega-Lite's default (no rounding). |
|
|
2379
|
+
| `clamp` | bool | ✓ | Clamp values to scale domain; None uses Vega-Lite's default (no clamping). |
|
|
2380
|
+
| `nice` | bool | ✓ | Round scale domain to nice values; None uses Vega-Lite's default. |
|
|
2381
|
+
| `padding` | float | ✓ | Unified scale padding shortcut; dispatches to band, point, or continuous padding per scale type. |
|
|
2382
|
+
| `headroom` | float | ✓ | Fractional breathing room at measure-axis edges, exact (never nice-rounded). Zero-anchored axes (bar; line/area/scatter near zero): domain_max = data_max * (1 + headroom). Zoomed axes (line/area/scatter far from zero): both edges expand — domain_max = data_max + headroom * span; domain_min = data_min - headroom * span. None inherits the theme default; 0 disables headroom. Ignored with an explicit `domain` or `stack: normalize`. |
|
|
2383
|
+
| `values` | list[Any] | ✓ | Explicit tick values; None uses Vega-Lite's auto tick values. |
|
|
2384
|
+
| `continuous` | [ScaleContinuousStyle](#scalecontinuousstyle) | ✓ | Continuous-scale overrides (type, domain, zero, log/pow/symlog params); None means no override. |
|
|
2385
|
+
| `x_reverse` | bool | ✓ | Reverse the x-axis scale direction; None means no reversal. |
|
|
2386
|
+
|
|
2387
|
+
<a id="measuregridstyle"></a>
|
|
2388
|
+
## MeasureGridStyle
|
|
2389
|
+
Authored overlay for MeasureGridStyle. BaseAxisGridStyle + zero-baseline override for the measure (y) axis.
|
|
2390
|
+
|
|
2391
|
+
| Field | Type | Optional | Description |
|
|
2392
|
+
|-------|------|:--------:|-------------|
|
|
2393
|
+
| `visible` | bool | ✓ | Show grid lines; None inherits from parent axis. |
|
|
2394
|
+
| `opacity` | float | ✓ | Grid line opacity; None uses Vega-Lite's default. |
|
|
2395
|
+
| `width` | float | ✓ | Grid line width in pixels; None uses Vega-Lite's default. |
|
|
2396
|
+
| `color` | str | ✓ | Grid line color; None uses Vega-Lite's default. |
|
|
2397
|
+
| `dash` | list[float] | ✓ | Dash pattern for grid lines; None renders a solid line. |
|
|
2398
|
+
| `zero` | [AxisGridZeroStyle](#axisgridzerostyle) | ✓ | Zero-baseline gridline style; None inherits from parent axis. |
|
|
2293
2399
|
|
|
2294
2400
|
<a id="axismirrorstyle"></a>
|
|
2295
2401
|
## AxisMirrorStyle
|
|
@@ -2300,14 +2406,19 @@ Per-edge label override for the mirrored ``axis_y.mirror`` ghost axis.
|
|
|
2300
2406
|
| `format` | str | ✓ | Tick value format string for the mirrored edge; None reuses the primary axis's format. |
|
|
2301
2407
|
| `expr` | str | ✓ | Custom Vega expression for the mirrored edge's label text; None reuses the primary axis's label expression. |
|
|
2302
2408
|
|
|
2303
|
-
<a id="
|
|
2304
|
-
##
|
|
2305
|
-
Authored overlay for
|
|
2409
|
+
<a id="scalecontinuousstyle"></a>
|
|
2410
|
+
## ScaleContinuousStyle
|
|
2411
|
+
Authored overlay for ScaleContinuousStyle. Continuous-scale-only config: type, domain, zero-baseline, log/pow/symlog params.
|
|
2306
2412
|
|
|
2307
2413
|
| Field | Type | Optional | Description |
|
|
2308
2414
|
|-------|------|:--------:|-------------|
|
|
2309
|
-
| `
|
|
2310
|
-
| `
|
|
2415
|
+
| `zero` | bool \| enum: "auto" | ✓ | Force scale zero-baseline: True/False pins it; "auto" runs the Dataface smart-zero heuristic; None passes through to Vega-Lite. |
|
|
2416
|
+
| `type` | enum: "linear", "log", "pow", "sqrt", "symlog", "temporal" | ✓ | Scale type override. 'linear'/'log'/'pow'/'sqrt'/'symlog' pass straight through to Vega-Lite's quantitative scale.type. 'temporal' is a Dataface escape hatch for a cartesian x-axis: it forces a continuous temporal scale instead of the auto-inferred ordinal/nominal bucketed type, which is required before an authored ``domain`` of ISO dates can extend the visible range past the data extent. None lets Dataface/Vega-Lite infer from the field type. |
|
|
2417
|
+
| `domain` | list[Any] | ✓ | Explicit [low, high] scale domain; None lets Vega-Lite auto-determine from data. Must have exactly 2 elements — Dataface only wires a continuous range override through to Vega-Lite, not an explicit category enumeration. When ``type: temporal`` is set, both elements must be ISO-8601 date/datetime strings. |
|
|
2418
|
+
| `domain_strategy` | enum: "stable", "auto" | ✓ | How the numeric domain responds to filter-variable changes when no explicit `domain` is authored. 'stable' (the default when None) pins the domain to the chart query's full unfiltered extent — the same value lands at the same pixel across variable changes. 'auto' rescales the domain to the current filtered subset on every variable change. An explicit `domain` always wins over either strategy. |
|
|
2419
|
+
| `log` | [ScaleLogStyle](#scalelogstyle) | ✓ | Log-scale param (base); only meaningful with type: log. |
|
|
2420
|
+
| `pow` | [ScalePowStyle](#scalepowstyle) | ✓ | Power-scale param (exponent); only meaningful with type: pow. |
|
|
2421
|
+
| `symlog` | [ScaleSymlogStyle](#scalesymlogstyle) | ✓ | Symlog-scale param (constant); only meaningful with type: symlog. |
|
|
2311
2422
|
|
|
2312
2423
|
<a id="rulestyle"></a>
|
|
2313
2424
|
## RuleStyle
|
|
@@ -2684,6 +2795,15 @@ Authored overlay for RangeDefaults.
|
|
|
2684
2795
|
| `default_max` | float | ✓ | Default maximum value for range inputs. |
|
|
2685
2796
|
| `default_step` | float | ✓ | Default step size for range inputs. |
|
|
2686
2797
|
|
|
2798
|
+
<a id="axislabeloverlapconfig"></a>
|
|
2799
|
+
## AxisLabelOverlapConfig
|
|
2800
|
+
Authored overlay for AxisLabelOverlapConfig. Two-bool overlap strategy enablement for x-axis labels.
|
|
2801
|
+
|
|
2802
|
+
| Field | Type | Optional | Description |
|
|
2803
|
+
|-------|------|:--------:|-------------|
|
|
2804
|
+
| `tilt` | bool | ✓ | Enable label tilt strategy; None inherits from parent axis. |
|
|
2805
|
+
| `skip` | bool | ✓ | Enable temporal label thinning; ignored on categorical axes; None inherits from parent axis. |
|
|
2806
|
+
|
|
2687
2807
|
<a id="axisgridzerostyle"></a>
|
|
2688
2808
|
## AxisGridZeroStyle
|
|
2689
2809
|
Authored overlay for AxisGridZeroStyle. Zero-baseline gridline color and width overrides.
|
|
@@ -2693,14 +2813,29 @@ Authored overlay for AxisGridZeroStyle. Zero-baseline gridline color and width o
|
|
|
2693
2813
|
| `color` | str | ✓ | Color of the zero-baseline grid line; None inherits from parent axis. |
|
|
2694
2814
|
| `width` | float | ✓ | Width of the zero-baseline grid line in pixels; None inherits from parent axis. |
|
|
2695
2815
|
|
|
2696
|
-
<a id="
|
|
2697
|
-
##
|
|
2698
|
-
Authored overlay for
|
|
2816
|
+
<a id="scalelogstyle"></a>
|
|
2817
|
+
## ScaleLogStyle
|
|
2818
|
+
Authored overlay for ScaleLogStyle. Log-scale-only param.
|
|
2699
2819
|
|
|
2700
2820
|
| Field | Type | Optional | Description |
|
|
2701
2821
|
|-------|------|:--------:|-------------|
|
|
2702
|
-
| `
|
|
2703
|
-
|
|
2822
|
+
| `base` | float | ✓ | Log base; only meaningful with type: log. None lets Vega-Lite apply its own default (10). |
|
|
2823
|
+
|
|
2824
|
+
<a id="scalepowstyle"></a>
|
|
2825
|
+
## ScalePowStyle
|
|
2826
|
+
Authored overlay for ScalePowStyle. Power-scale-only param.
|
|
2827
|
+
|
|
2828
|
+
| Field | Type | Optional | Description |
|
|
2829
|
+
|-------|------|:--------:|-------------|
|
|
2830
|
+
| `exponent` | float | ✓ | Power exponent; only meaningful with type: pow. None uses Vega-Lite's default. |
|
|
2831
|
+
|
|
2832
|
+
<a id="scalesymlogstyle"></a>
|
|
2833
|
+
## ScaleSymlogStyle
|
|
2834
|
+
Authored overlay for ScaleSymlogStyle. Symlog-scale-only param.
|
|
2835
|
+
|
|
2836
|
+
| Field | Type | Optional | Description |
|
|
2837
|
+
|-------|------|:--------:|-------------|
|
|
2838
|
+
| `constant` | float | ✓ | Symlog constant; only meaningful with type: symlog. None uses Vega-Lite's default. |
|
|
2704
2839
|
|
|
2705
2840
|
<a id="datatablerowpaddingstyle"></a>
|
|
2706
2841
|
## DataTableRowPaddingStyle
|
|
@@ -2981,7 +3116,6 @@ Redshift source configuration.
|
|
|
2981
3116
|
| `retries` | int | ✓ | Number of Redshift connection retry attempts. |
|
|
2982
3117
|
| `retry_all` | bool | ✓ | Whether all connection errors are retried. |
|
|
2983
3118
|
| `region` | str | ✓ | AWS region containing the Redshift target. |
|
|
2984
|
-
| `autocommit` | bool | ✓ | Whether Redshift statements autocommit. |
|
|
2985
3119
|
| `access_key_id` | str | ✓ | AWS access key identifier. |
|
|
2986
3120
|
| `secret_access_key` | str | ✓ | AWS secret access key. |
|
|
2987
3121
|
| `idc_region` | str | ✓ | AWS IAM Identity Center region. |
|
dataface/agent_api/init.py
CHANGED
|
@@ -34,7 +34,7 @@ def init_project(
|
|
|
34
34
|
Safe to re-run: scaffold files are skipped unless *force* is set.
|
|
35
35
|
Agent markdown is never written; agent onboarding lives in installed skills.
|
|
36
36
|
"""
|
|
37
|
-
root = (project_dir or Path(
|
|
37
|
+
root = (project_dir or Path()).resolve()
|
|
38
38
|
dbt_detected = (root / "dbt_project.yml").exists()
|
|
39
39
|
|
|
40
40
|
result = InitResult(project_dir=root, dbt_detected=dbt_detected)
|
|
@@ -50,10 +50,11 @@ from dataface.core.render.board_links import LinkContext
|
|
|
50
50
|
|
|
51
51
|
if TYPE_CHECKING:
|
|
52
52
|
from dataface.cli.filesystem_project import FilesystemProject
|
|
53
|
-
from dataface.core.dashboard import RenderedDashboard
|
|
53
|
+
from dataface.core.dashboard import RenderedDashboard
|
|
54
54
|
from dataface.core.execute.file_source_materializer import FileSourceMaterializer
|
|
55
55
|
from dataface.core.execute.source_resolver import SourceResolver
|
|
56
56
|
from dataface.core.inspect.query_validator import RelationshipContext
|
|
57
|
+
from dataface.core.render_format import RenderFormat
|
|
57
58
|
|
|
58
59
|
# Probe at module load time — single find_spec call per process.
|
|
59
60
|
_SUPER_SCHEMA_AVAILABLE: bool = (
|