ngwr 15.0.1 → 15.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/anchor/styles/_index.scss +13 -2
- package/bits/aurora/styles/_rules.scss +11 -0
- package/bits/dot-grid/dot-grid.scss +1 -0
- package/bits/dot-grid/styles/_index.scss +8 -0
- package/bits/dot-grid/styles/_rules.scss +54 -0
- package/bits/iridescence/iridescence.scss +1 -0
- package/bits/iridescence/styles/_index.scss +8 -0
- package/bits/iridescence/styles/_rules.scss +72 -0
- package/bits/marquee/styles/_rules.scss +7 -3
- package/bits/ripple-grid/ripple-grid.scss +1 -0
- package/bits/ripple-grid/styles/_index.scss +8 -0
- package/bits/ripple-grid/styles/_rules.scss +63 -0
- package/bits/spotlight-card/styles/_rules.scss +7 -4
- package/bits/star-border/styles/_rules.scss +5 -2
- package/bits/threads/styles/_index.scss +8 -0
- package/bits/threads/styles/_rules.scss +76 -0
- package/bits/threads/threads.scss +1 -0
- package/bits/waves/styles/_rules.scss +8 -1
- package/charts/bar-chart/styles/_index.scss +607 -7
- package/charts/boxplot-chart/styles/_index.scss +297 -0
- package/charts/bullet-chart/styles/_index.scss +268 -0
- package/charts/calendar-heatmap/styles/_index.scss +25 -3
- package/charts/candlestick-chart/styles/_index.scss +307 -0
- package/charts/chart-legend/styles/_index.scss +143 -0
- package/charts/core/styles/_index.scss +30 -0
- package/charts/donut-chart/styles/_index.scss +39 -3
- package/charts/funnel-chart/styles/_index.scss +237 -0
- package/charts/gauge/styles/_index.scss +4 -2
- package/charts/heatmap-chart/styles/_index.scss +329 -0
- package/charts/line-chart/styles/_index.scss +141 -8
- package/charts/meter-group/styles/_index.scss +44 -13
- package/charts/radar-chart/styles/_index.scss +206 -0
- package/charts/scatter-chart/styles/_index.scss +245 -0
- package/charts/sparkline/styles/_index.scss +10 -1
- package/charts/treemap-chart/styles/_index.scss +215 -0
- package/charts/waterfall-chart/styles/_index.scss +321 -0
- package/collapse/styles/_index.scss +6 -1
- package/fesm2022/ngwr-affix.mjs +3 -3
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bits-aurora.mjs +30 -38
- package/fesm2022/ngwr-bits-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-bits-blur-text.mjs +3 -3
- package/fesm2022/ngwr-bits-border-glow-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-border-glow.mjs +11 -5
- package/fesm2022/ngwr-bits-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-bits-circular-text.mjs +3 -3
- package/fesm2022/ngwr-bits-click-spark.mjs +3 -3
- package/fesm2022/ngwr-bits-confetti.mjs +3 -3
- package/fesm2022/ngwr-bits-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-bits-dot-grid-testing.mjs +40 -0
- package/fesm2022/ngwr-bits-dot-grid-testing.mjs.map +1 -0
- package/fesm2022/ngwr-bits-dot-grid.mjs +482 -0
- package/fesm2022/ngwr-bits-dot-grid.mjs.map +1 -0
- package/fesm2022/ngwr-bits-falling-text.mjs +3 -3
- package/fesm2022/ngwr-bits-fuzzy-text.mjs +3 -3
- package/fesm2022/ngwr-bits-glitch-text.mjs +3 -3
- package/fesm2022/ngwr-bits-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-bits-iridescence-testing.mjs +31 -0
- package/fesm2022/ngwr-bits-iridescence-testing.mjs.map +1 -0
- package/fesm2022/ngwr-bits-iridescence.mjs +591 -0
- package/fesm2022/ngwr-bits-iridescence.mjs.map +1 -0
- package/fesm2022/ngwr-bits-marquee-testing.mjs +1 -1
- package/fesm2022/ngwr-bits-marquee-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-marquee.mjs +7 -7
- package/fesm2022/ngwr-bits-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-bits-ripple-grid-testing.mjs +40 -0
- package/fesm2022/ngwr-bits-ripple-grid-testing.mjs.map +1 -0
- package/fesm2022/ngwr-bits-ripple-grid.mjs +805 -0
- package/fesm2022/ngwr-bits-ripple-grid.mjs.map +1 -0
- package/fesm2022/ngwr-bits-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-bits-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-bits-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-bits-split-text.mjs +3 -3
- package/fesm2022/ngwr-bits-spotlight-card-testing.mjs +1 -1
- package/fesm2022/ngwr-bits-spotlight-card-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-spotlight-card.mjs +10 -10
- package/fesm2022/ngwr-bits-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-bits-star-border-testing.mjs +1 -1
- package/fesm2022/ngwr-bits-star-border-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-star-border.mjs +7 -7
- package/fesm2022/ngwr-bits-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-bits-threads-testing.mjs +41 -0
- package/fesm2022/ngwr-bits-threads-testing.mjs.map +1 -0
- package/fesm2022/ngwr-bits-threads.mjs +482 -0
- package/fesm2022/ngwr-bits-threads.mjs.map +1 -0
- package/fesm2022/ngwr-bits-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-bits-typewriter.mjs +3 -3
- package/fesm2022/ngwr-bits-waves-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-waves.mjs +60 -41
- package/fesm2022/ngwr-bits-waves.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +8 -8
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar.mjs +3 -3
- package/fesm2022/ngwr-card.mjs +9 -9
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-cascader.mjs +5 -5
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-charts-bar-chart-testing.mjs +127 -3
- package/fesm2022/ngwr-charts-bar-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-bar-chart.mjs +683 -49
- package/fesm2022/ngwr-charts-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-charts-boxplot-chart-testing.mjs +161 -0
- package/fesm2022/ngwr-charts-boxplot-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-boxplot-chart.mjs +517 -0
- package/fesm2022/ngwr-charts-boxplot-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-bullet-chart-testing.mjs +68 -0
- package/fesm2022/ngwr-charts-bullet-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-bullet-chart.mjs +459 -0
- package/fesm2022/ngwr-charts-bullet-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-calendar-heatmap-testing.mjs +27 -0
- package/fesm2022/ngwr-charts-calendar-heatmap-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-calendar-heatmap.mjs +96 -17
- package/fesm2022/ngwr-charts-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-charts-candlestick-chart-testing.mjs +107 -0
- package/fesm2022/ngwr-charts-candlestick-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-candlestick-chart.mjs +508 -0
- package/fesm2022/ngwr-charts-candlestick-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-chart-legend-testing.mjs +126 -0
- package/fesm2022/ngwr-charts-chart-legend-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-chart-legend.mjs +251 -0
- package/fesm2022/ngwr-charts-chart-legend.mjs.map +1 -0
- package/fesm2022/ngwr-charts-core.mjs +383 -0
- package/fesm2022/ngwr-charts-core.mjs.map +1 -0
- package/fesm2022/ngwr-charts-donut-chart-testing.mjs +10 -1
- package/fesm2022/ngwr-charts-donut-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-donut-chart.mjs +187 -31
- package/fesm2022/ngwr-charts-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-charts-funnel-chart-testing.mjs +100 -0
- package/fesm2022/ngwr-charts-funnel-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-funnel-chart.mjs +415 -0
- package/fesm2022/ngwr-charts-funnel-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-gauge-testing.mjs +9 -3
- package/fesm2022/ngwr-charts-gauge-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-gauge.mjs +9 -15
- package/fesm2022/ngwr-charts-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-charts-heatmap-chart-testing.mjs +120 -0
- package/fesm2022/ngwr-charts-heatmap-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-heatmap-chart.mjs +519 -0
- package/fesm2022/ngwr-charts-heatmap-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-line-chart-testing.mjs +43 -1
- package/fesm2022/ngwr-charts-line-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-line-chart.mjs +436 -122
- package/fesm2022/ngwr-charts-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-charts-meter-group-testing.mjs +14 -2
- package/fesm2022/ngwr-charts-meter-group-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-meter-group.mjs +101 -32
- package/fesm2022/ngwr-charts-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-charts-radar-chart-testing.mjs +98 -0
- package/fesm2022/ngwr-charts-radar-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-radar-chart.mjs +720 -0
- package/fesm2022/ngwr-charts-radar-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-scatter-chart-testing.mjs +132 -0
- package/fesm2022/ngwr-charts-scatter-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-scatter-chart.mjs +545 -0
- package/fesm2022/ngwr-charts-scatter-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-sparkline-testing.mjs.map +1 -1
- package/fesm2022/ngwr-charts-sparkline.mjs +14 -16
- package/fesm2022/ngwr-charts-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-charts-treemap-chart-testing.mjs +103 -0
- package/fesm2022/ngwr-charts-treemap-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-treemap-chart.mjs +535 -0
- package/fesm2022/ngwr-charts-treemap-chart.mjs.map +1 -0
- package/fesm2022/ngwr-charts-waterfall-chart-testing.mjs +131 -0
- package/fesm2022/ngwr-charts-waterfall-chart-testing.mjs.map +1 -0
- package/fesm2022/ngwr-charts-waterfall-chart.mjs +462 -0
- package/fesm2022/ngwr-charts-waterfall-chart.mjs.map +1 -0
- package/fesm2022/ngwr-checkbox.mjs +6 -6
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +6 -6
- package/fesm2022/ngwr-command-palette.mjs +3 -3
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-context-menu.mjs +12 -12
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +6 -6
- package/fesm2022/ngwr-date-picker.mjs +21 -21
- package/fesm2022/ngwr-date.mjs +6 -6
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog.mjs +15 -15
- package/fesm2022/ngwr-directives.mjs +12 -12
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-drawer.mjs +18 -18
- package/fesm2022/ngwr-dropdown.mjs +9 -9
- package/fesm2022/ngwr-editor.mjs +3 -3
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-event-calendar.mjs +6 -6
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form.mjs +9 -9
- package/fesm2022/ngwr-graph.mjs +6 -6
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-i18n-ar.mjs +90 -4
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +90 -4
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +90 -4
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +90 -4
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +90 -4
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +90 -4
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +90 -4
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +90 -4
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +90 -4
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +90 -4
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +90 -4
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +90 -4
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +90 -4
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +90 -4
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +90 -4
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +90 -4
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +90 -4
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +90 -4
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +90 -4
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +90 -4
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-tw.mjs +90 -4
- package/fesm2022/ngwr-i18n-zh-tw.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +90 -4
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-input-number.mjs +3 -3
- package/fesm2022/ngwr-input-otp.mjs +3 -3
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +3 -3
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +5 -5
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +8 -8
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-mention.mjs +6 -6
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-overlay.mjs +6 -6
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs +3 -3
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +6 -6
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popover.mjs +43 -20
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +4 -3
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-rating.mjs +3 -3
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-schema-form.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-select.mjs +12 -12
- package/fesm2022/ngwr-sidebar.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +3 -3
- package/fesm2022/ngwr-sortable-list.mjs +11 -11
- package/fesm2022/ngwr-sortable-list.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-statistic.mjs +9 -9
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-table.mjs +18 -18
- package/fesm2022/ngwr-tabs-router.mjs +3 -3
- package/fesm2022/ngwr-tabs.mjs +6 -6
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast-testing.mjs +2 -1
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
- package/fesm2022/ngwr-toast.mjs +34 -15
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +6 -6
- package/fesm2022/ngwr-transfer.mjs +3 -3
- package/fesm2022/ngwr-tree.mjs +3 -3
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-utils.mjs +31 -1
- package/fesm2022/ngwr-utils.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
- package/fesm2022/ngwr-window-testing.mjs +61 -5
- package/fesm2022/ngwr-window-testing.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +1538 -895
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/fesm2022/ngwr.mjs.map +1 -1
- package/i18n/ar.json +84 -4
- package/i18n/cs.json +84 -4
- package/i18n/de.json +84 -4
- package/i18n/en.json +84 -4
- package/i18n/es.json +84 -4
- package/i18n/fr.json +84 -4
- package/i18n/he.json +84 -4
- package/i18n/hi.json +84 -4
- package/i18n/id.json +84 -4
- package/i18n/it.json +84 -4
- package/i18n/ja.json +84 -4
- package/i18n/ko.json +84 -4
- package/i18n/nl.json +84 -4
- package/i18n/pl.json +84 -4
- package/i18n/pt.json +84 -4
- package/i18n/ru.json +84 -4
- package/i18n/sv.json +84 -4
- package/i18n/tr.json +84 -4
- package/i18n/uk.json +84 -4
- package/i18n/vi.json +84 -4
- package/i18n/zh-TW.json +84 -4
- package/i18n/zh.json +84 -4
- package/llms-full.txt +266 -9
- package/llms.txt +30 -7
- package/mcp/api.js +69 -1
- package/mcp/catalog.js +10 -1
- package/mcp/server.js +15 -1
- package/mcp/tools.js +122 -26
- package/package.json +132 -1
- package/popover/styles/_index.scss +75 -7
- package/schematics/component-style/index.js +3 -0
- package/schematics/migrations/v15/index.js +3 -26
- package/schematics/ng-add/index.js +2 -2
- package/schematics/use/symbol-map.json +14 -0
- package/schematics/utility/global-styles.js +19 -4
- package/schematics/utility/v15-moves.js +55 -0
- package/skills/ngwr/SKILL.md +8 -2
- package/skills/ngwr/references/catalog.md +28 -0
- package/skills/ngwr/references/setup.md +5 -4
- package/theme/styles/_focus.scss +8 -0
- package/toast/styles/_index.scss +103 -12
- package/types/ngwr-bits-aurora.d.ts +11 -0
- package/types/ngwr-bits-border-glow-testing.d.ts +5 -6
- package/types/ngwr-bits-border-glow.d.ts +5 -1
- package/types/ngwr-bits-dot-grid-testing.d.ts +92 -0
- package/types/ngwr-bits-dot-grid.d.ts +158 -0
- package/types/ngwr-bits-iridescence-testing.d.ts +85 -0
- package/types/ngwr-bits-iridescence.d.ts +244 -0
- package/types/ngwr-bits-ripple-grid-testing.d.ts +96 -0
- package/types/ngwr-bits-ripple-grid.d.ts +294 -0
- package/types/ngwr-bits-splash-cursor.d.ts +0 -1
- package/types/ngwr-bits-spotlight-card-testing.d.ts +3 -1
- package/types/ngwr-bits-star-border-testing.d.ts +7 -7
- package/types/ngwr-bits-threads-testing.d.ts +97 -0
- package/types/ngwr-bits-threads.d.ts +216 -0
- package/types/ngwr-bits-waves-testing.d.ts +1 -1
- package/types/ngwr-bits-waves.d.ts +20 -3
- package/types/ngwr-charts-bar-chart-testing.d.ts +193 -14
- package/types/ngwr-charts-bar-chart.d.ts +546 -38
- package/types/ngwr-charts-boxplot-chart-testing.d.ts +165 -0
- package/types/ngwr-charts-boxplot-chart.d.ts +308 -0
- package/types/ngwr-charts-bullet-chart-testing.d.ts +99 -0
- package/types/ngwr-charts-bullet-chart.d.ts +262 -0
- package/types/ngwr-charts-calendar-heatmap-testing.d.ts +32 -1
- package/types/ngwr-charts-calendar-heatmap.d.ts +55 -6
- package/types/ngwr-charts-candlestick-chart-testing.d.ts +135 -0
- package/types/ngwr-charts-candlestick-chart.d.ts +361 -0
- package/types/ngwr-charts-chart-legend-testing.d.ts +84 -0
- package/types/ngwr-charts-chart-legend.d.ts +178 -0
- package/types/ngwr-charts-core.d.ts +391 -0
- package/types/ngwr-charts-donut-chart-testing.d.ts +28 -5
- package/types/ngwr-charts-donut-chart.d.ts +124 -12
- package/types/ngwr-charts-funnel-chart-testing.d.ts +130 -0
- package/types/ngwr-charts-funnel-chart.d.ts +296 -0
- package/types/ngwr-charts-gauge-testing.d.ts +5 -0
- package/types/ngwr-charts-gauge.d.ts +6 -4
- package/types/ngwr-charts-heatmap-chart-testing.d.ts +148 -0
- package/types/ngwr-charts-heatmap-chart.d.ts +359 -0
- package/types/ngwr-charts-line-chart-testing.d.ts +72 -11
- package/types/ngwr-charts-line-chart.d.ts +291 -67
- package/types/ngwr-charts-meter-group-testing.d.ts +16 -2
- package/types/ngwr-charts-meter-group.d.ts +71 -11
- package/types/ngwr-charts-radar-chart-testing.d.ts +162 -0
- package/types/ngwr-charts-radar-chart.d.ts +461 -0
- package/types/ngwr-charts-scatter-chart-testing.d.ts +147 -0
- package/types/ngwr-charts-scatter-chart.d.ts +396 -0
- package/types/ngwr-charts-sparkline-testing.d.ts +4 -1
- package/types/ngwr-charts-sparkline.d.ts +8 -6
- package/types/ngwr-charts-treemap-chart-testing.d.ts +131 -0
- package/types/ngwr-charts-treemap-chart.d.ts +295 -0
- package/types/ngwr-charts-waterfall-chart-testing.d.ts +149 -0
- package/types/ngwr-charts-waterfall-chart.d.ts +338 -0
- package/types/ngwr-color-picker.d.ts +0 -21
- package/types/ngwr-dropdown.d.ts +0 -52
- package/types/ngwr-editor.d.ts +2 -84
- package/types/ngwr-i18n.d.ts +0 -15
- package/types/ngwr-mention.d.ts +0 -13
- package/types/ngwr-popconfirm.d.ts +0 -33
- package/types/ngwr-popover.d.ts +29 -53
- package/types/ngwr-toast-testing.d.ts +6 -1
- package/types/ngwr-tour.d.ts +0 -2
- package/types/ngwr-utils.d.ts +49 -7
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-window-testing.d.ts +65 -7
- package/types/ngwr-window.d.ts +831 -207
- package/types/ngwr.d.ts +1 -0
- package/window/styles/_index.scss +528 -82
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
@use '../../../theme/styles' as theme;
|
|
2
|
+
@use '../../../popover/styles' as popover-styles; // the `.wr-tooltip` chip the hover tooltip renders into
|
|
3
|
+
|
|
4
|
+
// Styles for the entry points this component's own markup renders. The legend is a
|
|
5
|
+
// `ul[wr-chart-legend]`, so `@use 'ngwr/charts/scatter-chart'` alone draws it styled.
|
|
6
|
+
@use '../../chart-legend/styles' as chart-legend-styles; // WrChartLegend
|
|
7
|
+
// With `dataTable`, the figures render as a `<wr-chart-table>` beside the plot, which
|
|
8
|
+
// its own sheet clips out of sight.
|
|
9
|
+
@use '../../core/styles' as core-styles; // WrChartTable
|
|
10
|
+
|
|
11
|
+
.wr-scatter-chart {
|
|
12
|
+
--wr-scatter-chart-font-family: var(--wr-font-family-base);
|
|
13
|
+
--wr-scatter-chart-color: var(--wr-color-on-surface);
|
|
14
|
+
// The room round the drawing inside the plot, which markers near either end overhang
|
|
15
|
+
// into — at least: it grows to the largest marker drawn (see `$inset` below). The y
|
|
16
|
+
// labels read the block one to meet the gridlines, the x labels the inline one to meet
|
|
17
|
+
// theirs.
|
|
18
|
+
--wr-scatter-chart-plot-inset-x: var(--wr-space-md);
|
|
19
|
+
--wr-scatter-chart-plot-inset-y: var(--wr-space-sm);
|
|
20
|
+
--wr-scatter-chart-legend-margin-bottom: var(--wr-space-md);
|
|
21
|
+
--wr-scatter-chart-grid-color: color-mix(in srgb, var(--wr-border-base) 70%, transparent);
|
|
22
|
+
--wr-scatter-chart-tick-gap: var(--wr-space-xs);
|
|
23
|
+
--wr-scatter-chart-tick-font-size: var(--wr-text-xs);
|
|
24
|
+
--wr-scatter-chart-tick-line-height: var(--wr-text-xs-leading);
|
|
25
|
+
--wr-scatter-chart-tick-color: var(--wr-color-on-surface-muted);
|
|
26
|
+
--wr-scatter-chart-title-font-size: var(--wr-text-xs);
|
|
27
|
+
--wr-scatter-chart-title-font-weight: var(--wr-font-weight-medium);
|
|
28
|
+
--wr-scatter-chart-title-color: var(--wr-color-on-surface-muted);
|
|
29
|
+
--wr-scatter-chart-title-gap: var(--wr-space-xs);
|
|
30
|
+
// Every marker is ringed in the surface colour, so two that touch stay two shapes
|
|
31
|
+
// rather than one blot: the palette's colours sit within about 1.06:1 of each other,
|
|
32
|
+
// and a ring is a shape that survives greyscale.
|
|
33
|
+
//
|
|
34
|
+
// A plain point is drawn solid. Drawn at 0.7, the primary marker measured 2.9:1 against
|
|
35
|
+
// the light surface and 2.6:1 against the dark one, under the 3:1 WCAG 1.4.11 asks of a
|
|
36
|
+
// mark a reader needs, where solid it is 4.9:1 and 4.1:1. A bubble chart is drawn at
|
|
37
|
+
// 0.7 all the same (`--bubbles`): its markers overlap as a rule, and a solid bubble hides
|
|
38
|
+
// every smaller one behind it, which costs more than the contrast does.
|
|
39
|
+
--wr-scatter-chart-point-opacity: 1;
|
|
40
|
+
--wr-scatter-chart-bubble-opacity: 0.7;
|
|
41
|
+
--wr-scatter-chart-point-ring: var(--wr-color-surface);
|
|
42
|
+
--wr-scatter-chart-point-ring-width: 1px;
|
|
43
|
+
--wr-scatter-chart-halo-width: 2px;
|
|
44
|
+
|
|
45
|
+
// The plot's padding: the inset tokens, or as far as the largest marker drawn reaches
|
|
46
|
+
// past its centre with its hover ring, if farther. The component writes that reach in
|
|
47
|
+
// px, sideways and up or down. The axes keep a point off the frame only when it lands
|
|
48
|
+
// exactly on it, so one a fraction of a step inside sits a few px from it, and a 20px
|
|
49
|
+
// bubble there would paint over the tick labels and past the chart's own box, where an
|
|
50
|
+
// `overflow: hidden` ancestor cuts it off.
|
|
51
|
+
$reach-x: calc(var(--wr-scatter-chart-reach-x, 0) * 1px + var(--wr-scatter-chart-halo-width) / 2);
|
|
52
|
+
$reach-y: calc(var(--wr-scatter-chart-reach-y, 0) * 1px + var(--wr-scatter-chart-halo-width) / 2);
|
|
53
|
+
$inset: max(var(--wr-scatter-chart-plot-inset-x), $reach-x);
|
|
54
|
+
$inset-y: max(var(--wr-scatter-chart-plot-inset-y), $reach-y);
|
|
55
|
+
|
|
56
|
+
// Where a tick is, for the x labels. The strip is as wide as the plot — the drawing
|
|
57
|
+
// plus its inline padding — and each label is handed its gridline's x as a percentage
|
|
58
|
+
// of the DRAWING, so the length from either side of the strip to the gridline is the
|
|
59
|
+
// padding plus that share of what is left.
|
|
60
|
+
$x: var(--wr-scatter-chart-x, 50);
|
|
61
|
+
$slot: var(--wr-scatter-chart-x-slot, 100);
|
|
62
|
+
$point: calc($inset + (100% - 2 * $inset) * $x / 100);
|
|
63
|
+
$room-start: calc($inset + (100cqw - 2 * $inset) * $x / 100);
|
|
64
|
+
$room-end: calc($inset + (100cqw - 2 * $inset) * (100 - $x) / 100);
|
|
65
|
+
|
|
66
|
+
display: block;
|
|
67
|
+
// The containing block of the out-of-flow `dataTable` copy, as on the line chart: a
|
|
68
|
+
// static host lets that 1px box resolve against an ancestor outside the chart and keep
|
|
69
|
+
// its place in an unpositioned scroller's content. No z-index, so no stacking context.
|
|
70
|
+
position: relative;
|
|
71
|
+
font-family: var(--wr-scatter-chart-font-family);
|
|
72
|
+
color: var(--wr-scatter-chart-color);
|
|
73
|
+
|
|
74
|
+
&__legend {
|
|
75
|
+
margin-block-end: var(--wr-scatter-chart-legend-margin-bottom);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// The y labels at inline start, the plot beside them, and the x labels under the plot
|
|
79
|
+
// alone. A grid follows `direction`, so the gutter is on the right under RTL with no
|
|
80
|
+
// rule of its own; the drawing itself keeps its x axis running left to right, as every
|
|
81
|
+
// SVG chart here does — the HTML layouts (bar, bullet, treemap) are the ones that mirror.
|
|
82
|
+
&__body {
|
|
83
|
+
display: grid;
|
|
84
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// The axes' names, set horizontally: the y one above the plot at the gutter's side,
|
|
88
|
+
// where a reader looks first, and the x one centred under its ticks. A name turned on
|
|
89
|
+
// its side reads in neither direction comfortably. A name is the host's own text, in
|
|
90
|
+
// whatever language, so it takes its direction from that text (`plaintext`): on an RTL
|
|
91
|
+
// page "Revenue, k$" read "$Revenue, k", its trailing sign carried to the page's start.
|
|
92
|
+
&__y-title,
|
|
93
|
+
&__x-title {
|
|
94
|
+
font-size: var(--wr-scatter-chart-title-font-size);
|
|
95
|
+
font-weight: var(--wr-scatter-chart-title-font-weight);
|
|
96
|
+
color: var(--wr-scatter-chart-title-color);
|
|
97
|
+
overflow-wrap: anywhere;
|
|
98
|
+
unicode-bidi: plaintext;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Shrunk to its text at the gutter's side, so following its own direction does not move
|
|
102
|
+
// it across the chart.
|
|
103
|
+
&__y-title {
|
|
104
|
+
grid-column: 1 / -1;
|
|
105
|
+
grid-row: 1;
|
|
106
|
+
justify-self: start;
|
|
107
|
+
margin-block-end: var(--wr-scatter-chart-title-gap);
|
|
108
|
+
text-align: start;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&__x-title {
|
|
112
|
+
grid-column: 2;
|
|
113
|
+
grid-row: 4;
|
|
114
|
+
margin-block-start: var(--wr-scatter-chart-title-gap);
|
|
115
|
+
text-align: center;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// As wide as the longest label: every label is in flow, in the one cell of a one-cell
|
|
119
|
+
// grid, so the column sizes to the widest while its height stays one label. Stretched
|
|
120
|
+
// to the plot's row, each label moves down from the top by its own gridline's share of
|
|
121
|
+
// the drawing, inside the plot's block padding, then up by half itself — the line
|
|
122
|
+
// chart's y axis, for the same reasons.
|
|
123
|
+
&__y-axis {
|
|
124
|
+
grid-column: 1;
|
|
125
|
+
grid-row: 2;
|
|
126
|
+
display: grid;
|
|
127
|
+
grid-template-rows: minmax(0, 1fr);
|
|
128
|
+
padding-inline-end: var(--wr-scatter-chart-tick-gap);
|
|
129
|
+
font-size: var(--wr-scatter-chart-tick-font-size);
|
|
130
|
+
line-height: var(--wr-scatter-chart-tick-line-height);
|
|
131
|
+
color: var(--wr-scatter-chart-tick-color);
|
|
132
|
+
text-align: end;
|
|
133
|
+
white-space: nowrap;
|
|
134
|
+
font-variant-numeric: tabular-nums;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Shrunk to its text against the plot's side of the column, so its own direction can
|
|
138
|
+
// follow its text (`plaintext`): a negative tick is a `-` in front of digits, neither of
|
|
139
|
+
// which has a direction, and under RTL the sign would land on the far side — `350-`.
|
|
140
|
+
&__y-tick {
|
|
141
|
+
grid-area: 1 / 1;
|
|
142
|
+
align-self: start;
|
|
143
|
+
justify-self: end;
|
|
144
|
+
position: relative;
|
|
145
|
+
unicode-bidi: plaintext;
|
|
146
|
+
top: calc($inset-y + (100% - 2 * $inset-y) * var(--wr-scatter-chart-y, 0) / 100);
|
|
147
|
+
transform: translateY(-50%);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&__plot {
|
|
151
|
+
grid-column: 2;
|
|
152
|
+
grid-row: 2;
|
|
153
|
+
position: relative;
|
|
154
|
+
padding: $inset-y $inset;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// The plot's drawing by its class, never a bare `svg`: every point is an `<svg>` of
|
|
158
|
+
// its own, and the legend's keys are too. Overflow is visible because a marker near an
|
|
159
|
+
// end reaches past the drawing, over the plot's padding.
|
|
160
|
+
&__svg {
|
|
161
|
+
display: block;
|
|
162
|
+
width: 100%;
|
|
163
|
+
height: 100%;
|
|
164
|
+
overflow: visible;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&__grid-line {
|
|
168
|
+
stroke: var(--wr-scatter-chart-grid-color);
|
|
169
|
+
stroke-width: 1px;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
&--bubbles {
|
|
173
|
+
--wr-scatter-chart-point-opacity: var(--wr-scatter-chart-bubble-opacity);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
&__marker {
|
|
177
|
+
fill-opacity: var(--wr-scatter-chart-point-opacity);
|
|
178
|
+
stroke: var(--wr-scatter-chart-point-ring);
|
|
179
|
+
stroke-width: var(--wr-scatter-chart-point-ring-width);
|
|
180
|
+
stroke-linejoin: round;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Never hittable: it is drawn under the pointer, and the points it rings are found
|
|
184
|
+
// by position rather than by what is under the pointer.
|
|
185
|
+
&__halo {
|
|
186
|
+
pointer-events: none;
|
|
187
|
+
stroke-width: var(--wr-scatter-chart-halo-width);
|
|
188
|
+
stroke-linejoin: round;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
&__x-axis {
|
|
192
|
+
grid-column: 2;
|
|
193
|
+
grid-row: 3;
|
|
194
|
+
position: relative;
|
|
195
|
+
margin-block-start: var(--wr-scatter-chart-tick-gap);
|
|
196
|
+
font-size: var(--wr-scatter-chart-tick-font-size);
|
|
197
|
+
line-height: var(--wr-scatter-chart-tick-line-height);
|
|
198
|
+
color: var(--wr-scatter-chart-tick-color);
|
|
199
|
+
font-variant-numeric: tabular-nums;
|
|
200
|
+
// The labels are absolutely positioned onto their gridlines, so the strip has no
|
|
201
|
+
// content of its own to give it a height: one line of their own leading. `1.25em` is
|
|
202
|
+
// a pixel short of the 16px line, so each label hung that far over what came next.
|
|
203
|
+
height: 1lh;
|
|
204
|
+
// A `translateX` percentage means the LABEL's own width, so the room left beside it
|
|
205
|
+
// has to arrive in another unit — `cqw` is this strip's. Every label is out of flow,
|
|
206
|
+
// so the containment costs the layout nothing.
|
|
207
|
+
container-type: inline-size;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
&__x-tick {
|
|
211
|
+
position: absolute;
|
|
212
|
+
// rtl-ok: the drawing's own x, which does not flip with `direction`
|
|
213
|
+
left: $point;
|
|
214
|
+
// Centred on its gridline, but never past either end of the strip: the shift is the
|
|
215
|
+
// smaller of half the label and the room left on that side, so the first and last
|
|
216
|
+
// ticks, which sit on the frame, move inwards and the rest stay centred.
|
|
217
|
+
// rtl-ok: the drawing's own x, which does not flip with `direction`
|
|
218
|
+
transform: translateX(clamp(calc(-1 * $room-start), -50%, calc($room-end - 100%)));
|
|
219
|
+
// Its own slot, half the way to a neighbour on each side, cut back to the room
|
|
220
|
+
// between its gridline and the end of the strip.
|
|
221
|
+
max-width: min(
|
|
222
|
+
calc((100% - 2 * $inset) * $slot / 100),
|
|
223
|
+
calc($inset + (100% - 2 * $inset) * ($x + $slot / 2) / 100),
|
|
224
|
+
calc($inset + (100% - 2 * $inset) * (100 - $x + $slot / 2) / 100)
|
|
225
|
+
);
|
|
226
|
+
overflow: hidden;
|
|
227
|
+
text-overflow: ellipsis;
|
|
228
|
+
white-space: nowrap;
|
|
229
|
+
// As a y tick: the sign stays before the digits. The box is as wide as its text, so
|
|
230
|
+
// where it sits does not move.
|
|
231
|
+
unicode-bidi: plaintext;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// The SVG keeps its fills and strokes under forced colors, so the points keep their
|
|
236
|
+
// series' colours and the legend still keys them. The ring and the grid are drawn in
|
|
237
|
+
// theme colours that mean nothing on a forced palette: the ring takes the page's own
|
|
238
|
+
// colour, which keeps touching points apart on any background, and the grid the
|
|
239
|
+
// system's muted one.
|
|
240
|
+
@media (forced-colors: active) {
|
|
241
|
+
.wr-scatter-chart {
|
|
242
|
+
--wr-scatter-chart-point-ring: Canvas;
|
|
243
|
+
--wr-scatter-chart-grid-color: GrayText;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
@use '../../../popover/styles'; // the `.wr-tooltip` chip the hover tooltip renders into
|
|
2
2
|
|
|
3
3
|
.wr-sparkline {
|
|
4
|
+
// How much of the line's colour the `showArea` fill takes, and the ring round the hover
|
|
5
|
+
// marker: the surface the sparkline sits on, so the marker reads on the line under it.
|
|
6
|
+
--wr-sparkline-area-opacity: 0.15;
|
|
7
|
+
--wr-sparkline-marker-ring: var(--wr-color-surface);
|
|
8
|
+
|
|
4
9
|
display: inline-block;
|
|
5
10
|
// The hover marker is placed from this box's padding edge, measured off the drawing.
|
|
6
11
|
position: relative;
|
|
@@ -11,6 +16,10 @@
|
|
|
11
16
|
overflow: visible;
|
|
12
17
|
}
|
|
13
18
|
|
|
19
|
+
&__area {
|
|
20
|
+
fill-opacity: var(--wr-sparkline-area-opacity);
|
|
21
|
+
}
|
|
22
|
+
|
|
14
23
|
// The point the hover tooltip is reading. Placed by the component in SVG
|
|
15
24
|
// coordinates, which do not flip with `direction`, and never hittable: it sits
|
|
16
25
|
// under the pointer, and taking the `mousemove` would lose the line.
|
|
@@ -18,7 +27,7 @@
|
|
|
18
27
|
position: absolute;
|
|
19
28
|
width: 0.5rem;
|
|
20
29
|
height: 0.5rem;
|
|
21
|
-
border: 2px solid var(--wr-
|
|
30
|
+
border: 2px solid var(--wr-sparkline-marker-ring);
|
|
22
31
|
border-radius: 50%;
|
|
23
32
|
box-sizing: content-box;
|
|
24
33
|
// rtl-ok: SVG coordinates, see above
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
@use '../../../theme/styles' as theme;
|
|
2
|
+
@use '../../../popover/styles'; // the `.wr-tooltip` chip the hover tooltip renders into
|
|
3
|
+
|
|
4
|
+
// Styles for the entry points this component's own markup renders. With `dataTable`, the
|
|
5
|
+
// figures render as a `<wr-chart-table>` beside the drawing, which its own sheet clips
|
|
6
|
+
// out of sight.
|
|
7
|
+
@use '../../core/styles' as core-styles; // WrChartTable
|
|
8
|
+
|
|
9
|
+
.wr-treemap-chart {
|
|
10
|
+
--wr-treemap-chart-font-family: var(--wr-font-family-base);
|
|
11
|
+
// What the tiles' tints mix towards, and what shows behind them.
|
|
12
|
+
--wr-treemap-chart-bg: var(--wr-color-surface);
|
|
13
|
+
// The gap round every tile: an inset line in the surface colour on each, so two
|
|
14
|
+
// neighbours sit twice this apart. Drawn as an inset shadow, never a border or a margin:
|
|
15
|
+
// a margin takes area from the layout, and a border on a `border-box` tile is a floor
|
|
16
|
+
// under its size, so a sliver worth a fraction of a pixel would be drawn two wide and
|
|
17
|
+
// cover its group's edge. A faint separator by default, not a 3:1 boundary: the names,
|
|
18
|
+
// the nesting and the data table carry the reading, and `prefers-contrast: more` below
|
|
19
|
+
// turns it into a line that is one.
|
|
20
|
+
--wr-treemap-chart-gap: 1px;
|
|
21
|
+
--wr-treemap-chart-gap-color: var(--wr-color-surface);
|
|
22
|
+
--wr-treemap-chart-radius: var(--wr-border-radius-sm);
|
|
23
|
+
// How much of its colour a tile carries, mixed into the surface: a leaf more than a
|
|
24
|
+
// group, so the leaves stand on their group's strip and edge. Tints rather than the
|
|
25
|
+
// solid colour, so the names on them read in `on-surface` whatever the colour — a
|
|
26
|
+
// node's own `color` can be anything — and in both schemes, since the surface they mix
|
|
27
|
+
// into is a `light-dark()` pair.
|
|
28
|
+
--wr-treemap-chart-leaf-tint: 34%;
|
|
29
|
+
--wr-treemap-chart-group-tint: 14%;
|
|
30
|
+
// The names and values written inside the tiles. The layout leaves a tile its name
|
|
31
|
+
// only from about 36 × 22 px, and its value under it from 38 px tall, measured for
|
|
32
|
+
// this type and padding; a larger type is clipped by the tile rather than spilling.
|
|
33
|
+
--wr-treemap-chart-label-font-size: var(--wr-text-xs);
|
|
34
|
+
--wr-treemap-chart-label-line-height: var(--wr-text-xs-leading);
|
|
35
|
+
--wr-treemap-chart-label-color: var(--wr-color-on-surface);
|
|
36
|
+
--wr-treemap-chart-label-font-weight: var(--wr-font-weight-medium);
|
|
37
|
+
--wr-treemap-chart-header-font-weight: var(--wr-font-weight-semibold);
|
|
38
|
+
--wr-treemap-chart-value-font-weight: var(--wr-font-weight-regular);
|
|
39
|
+
// Between a group's name and its figure, in its strip.
|
|
40
|
+
--wr-treemap-chart-header-gap: var(--wr-space-xs);
|
|
41
|
+
--wr-treemap-chart-label-padding-x: var(--wr-space-xs);
|
|
42
|
+
--wr-treemap-chart-label-padding-y: calc(var(--wr-space-xs) / 2);
|
|
43
|
+
// The tile the tooltip is about, ringed inside its own edge so it covers no neighbour.
|
|
44
|
+
--wr-treemap-chart-active-ring: var(--wr-color-on-surface);
|
|
45
|
+
--wr-treemap-chart-active-ring-width: 2px;
|
|
46
|
+
|
|
47
|
+
display: block;
|
|
48
|
+
// The containing block of the out-of-flow `dataTable` copy, as on the line chart: a
|
|
49
|
+
// static host lets that 1px box resolve against an ancestor outside the chart and keep
|
|
50
|
+
// its place in an unpositioned scroller's content. No z-index, so no stacking context.
|
|
51
|
+
position: relative;
|
|
52
|
+
font-family: var(--wr-treemap-chart-font-family);
|
|
53
|
+
|
|
54
|
+
// The tiles are positioned in percentages of this box, which is as wide as the chart
|
|
55
|
+
// and as tall as `height`.
|
|
56
|
+
&__plot {
|
|
57
|
+
position: relative;
|
|
58
|
+
width: 100%;
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
border-radius: var(--wr-treemap-chart-radius);
|
|
61
|
+
background: var(--wr-treemap-chart-bg);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&__tile {
|
|
65
|
+
position: absolute;
|
|
66
|
+
box-sizing: border-box;
|
|
67
|
+
display: flex;
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
// The name and the value sit at the tile's inline-start edge as boxes of their own
|
|
70
|
+
// width, so each can take its direction from its own text and still line up with the
|
|
71
|
+
// tile's corner. `text-align: start` would resolve against the NAME's direction and
|
|
72
|
+
// put a Latin name on the left of an RTL tile.
|
|
73
|
+
align-items: flex-start;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
// No padding and no border: the tile is drawn at exactly the rectangle the layout gave
|
|
76
|
+
// it. The text carries its own padding, below, and the gap is a shadow inside the edge.
|
|
77
|
+
border-radius: var(--wr-treemap-chart-radius);
|
|
78
|
+
box-shadow: inset 0 0 0 var(--wr-treemap-chart-gap) var(--wr-treemap-chart-gap-color);
|
|
79
|
+
background: color-mix(
|
|
80
|
+
in srgb,
|
|
81
|
+
var(--wr-treemap-chart-tile-color, var(--wr-color-primary)) var(--wr-treemap-chart-leaf-tint),
|
|
82
|
+
var(--wr-treemap-chart-bg)
|
|
83
|
+
);
|
|
84
|
+
color: var(--wr-treemap-chart-label-color);
|
|
85
|
+
font-size: var(--wr-treemap-chart-label-font-size);
|
|
86
|
+
line-height: var(--wr-treemap-chart-label-line-height);
|
|
87
|
+
|
|
88
|
+
&--group {
|
|
89
|
+
background: color-mix(
|
|
90
|
+
in srgb,
|
|
91
|
+
var(--wr-treemap-chart-tile-color, var(--wr-color-primary)) var(--wr-treemap-chart-group-tint),
|
|
92
|
+
var(--wr-treemap-chart-bg)
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&--active {
|
|
97
|
+
outline: var(--wr-treemap-chart-active-ring-width) solid var(--wr-treemap-chart-active-ring);
|
|
98
|
+
outline-offset: calc(-1 * var(--wr-treemap-chart-active-ring-width));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// A group's name and figure, in the strip the layout left above its children. Its
|
|
103
|
+
// height is written inline from the layout's own number. The figure WRAPS rather than
|
|
104
|
+
// shrinks when the two do not fit on one line, onto a second line the strip clips: the
|
|
105
|
+
// name is what tells the group apart, so it keeps the line, and a figure cut to `1…` says
|
|
106
|
+
// nothing the tooltip does not say in full.
|
|
107
|
+
&__header {
|
|
108
|
+
position: absolute;
|
|
109
|
+
inset-inline: 0;
|
|
110
|
+
top: 0;
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-wrap: wrap;
|
|
113
|
+
align-content: flex-start;
|
|
114
|
+
column-gap: var(--wr-treemap-chart-header-gap);
|
|
115
|
+
box-sizing: border-box;
|
|
116
|
+
overflow: hidden;
|
|
117
|
+
padding: var(--wr-treemap-chart-label-padding-y) var(--wr-treemap-chart-label-padding-x) 0;
|
|
118
|
+
font-weight: var(--wr-treemap-chart-header-font-weight);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// A name and a value set their own direction (`dir="auto"` in the template), so a name's
|
|
122
|
+
// ellipsis lands at its own end. Held to the tile's width, since a box of its own width
|
|
123
|
+
// that will not wrap would otherwise be as wide as its text.
|
|
124
|
+
&__label,
|
|
125
|
+
&__value {
|
|
126
|
+
min-width: 0;
|
|
127
|
+
max-width: 100%;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
white-space: nowrap;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// A name is cut with an ellipsis; a value never is (see below).
|
|
133
|
+
&__label {
|
|
134
|
+
text-overflow: ellipsis;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// A leaf's name and value, in its corner. The padding is theirs rather than the tile's,
|
|
138
|
+
// so it can never make a tile bigger than its value: on a tile too small to be written
|
|
139
|
+
// in there is no text, and so no padding. The strip carries its own.
|
|
140
|
+
&__tile > &__label,
|
|
141
|
+
&__tile > &__value {
|
|
142
|
+
box-sizing: border-box;
|
|
143
|
+
padding-inline: var(--wr-treemap-chart-label-padding-x);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&__tile > &__label {
|
|
147
|
+
padding-block-start: var(--wr-treemap-chart-label-padding-y);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&__label {
|
|
151
|
+
flex: 0 1 auto;
|
|
152
|
+
font-weight: var(--wr-treemap-chart-label-font-weight);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&__header &__label {
|
|
156
|
+
font-weight: inherit;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&__value {
|
|
160
|
+
flex: none;
|
|
161
|
+
font-weight: var(--wr-treemap-chart-value-font-weight);
|
|
162
|
+
font-variant-numeric: tabular-nums;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// A leaf's value is printed whole or not at all, with no measuring, as the heatmap's
|
|
166
|
+
// values are: a wrapping flex line one line tall, led by a zero-width item. A value
|
|
167
|
+
// that fits its tile shares that first line; one that does not cannot join it, so it
|
|
168
|
+
// wraps onto a second line, under the first, where `overflow` hides it. `$12…` for
|
|
169
|
+
// $120K would print another number, and the tooltip and the data table carry it whole.
|
|
170
|
+
// The value in a group's strip already wraps out of sight past the name (see `__header`).
|
|
171
|
+
&__tile > &__value {
|
|
172
|
+
display: flex;
|
|
173
|
+
flex-wrap: wrap;
|
|
174
|
+
block-size: var(--wr-treemap-chart-label-line-height);
|
|
175
|
+
|
|
176
|
+
&::before {
|
|
177
|
+
content: '';
|
|
178
|
+
flex: 0 0 0;
|
|
179
|
+
block-size: 100%;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// A reader who asked for more contrast gets the gap as a line rather than a separator:
|
|
185
|
+
// the muted ink, which the theme deepens under the same query. Measured in Chromium on
|
|
186
|
+
// every tile of the docs page's charts, against the tile's own tint: 4.64:1 at the lowest
|
|
187
|
+
// in light and 3.47:1 in dark — the warning tint, the brightest there — where the
|
|
188
|
+
// surface-coloured gap reads 1.08–1.73:1 and 1.12–2.39:1. That holds for the palette and
|
|
189
|
+
// the theme's own colours; a node's `color` can be anything. Not the theme's hairline:
|
|
190
|
+
// it is solved against the page and its lightest fill, a tint is darker than either, and
|
|
191
|
+
// it measured 1.97:1 and 1.49:1 on the same tiles.
|
|
192
|
+
@media (prefers-contrast: more) {
|
|
193
|
+
.wr-treemap-chart {
|
|
194
|
+
--wr-treemap-chart-gap-color: var(--wr-color-on-surface-muted);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Forced colors resets every tile's tinted background to `Canvas`, and that is left to
|
|
199
|
+
// happen rather than opted out of, as the bars are: a bar painted as the page vanishes,
|
|
200
|
+
// while a tile keeps its edge, its name and its place inside its group, which are what
|
|
201
|
+
// tell the groups apart anyway. The edge is what has to survive, and the shadow that
|
|
202
|
+
// draws the gap is dropped here, so it is an inset OUTLINE in the text colour — an outline
|
|
203
|
+
// because, like the shadow, it takes no room and sets no floor under a tile's size. The
|
|
204
|
+
// tile the tooltip is about keeps its wider outline, in the highlight colour.
|
|
205
|
+
@media (forced-colors: active) {
|
|
206
|
+
.wr-treemap-chart__tile {
|
|
207
|
+
outline: var(--wr-treemap-chart-gap) solid CanvasText;
|
|
208
|
+
outline-offset: calc(-1 * var(--wr-treemap-chart-gap));
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.wr-treemap-chart__tile--active {
|
|
212
|
+
outline: var(--wr-treemap-chart-active-ring-width) solid Highlight;
|
|
213
|
+
outline-offset: calc(-1 * var(--wr-treemap-chart-active-ring-width));
|
|
214
|
+
}
|
|
215
|
+
}
|