@k2b/ui 0.50.0 → 0.52.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/dist/base.css +35 -1
- package/dist/browser/actions/Button.js.map +1 -1
- package/dist/browser/actions/CommandList.js +861 -0
- package/dist/browser/actions/CommandList.js.map +1 -0
- package/dist/browser/actions/CommandMenu.js +237 -0
- package/dist/browser/actions/CommandMenu.js.map +1 -0
- package/dist/browser/actions/Dropdown.js +43 -10
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/Toolbar.js +8 -2
- package/dist/browser/actions/Toolbar.js.map +1 -1
- package/dist/browser/actions/command-dock.js +47 -0
- package/dist/browser/actions/command-dock.js.map +1 -0
- package/dist/browser/actions/command-items.js +84 -0
- package/dist/browser/actions/command-items.js.map +1 -0
- package/dist/browser/actions/command-messages.js +42 -0
- package/dist/browser/actions/command-messages.js.map +1 -0
- package/dist/browser/actions/index.js +1 -0
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/charts/core/area.js +3 -5
- package/dist/browser/charts/core/area.js.map +1 -1
- package/dist/browser/charts/core/bar-labels.js +5 -0
- package/dist/browser/charts/core/bar-labels.js.map +1 -0
- package/dist/browser/charts/core/bubble.js +166 -0
- package/dist/browser/charts/core/bubble.js.map +1 -0
- package/dist/browser/charts/core/calendar.js +1 -1
- package/dist/browser/charts/core/calendar.js.map +1 -1
- package/dist/browser/charts/core/chart-messages.js +17 -0
- package/dist/browser/charts/core/chart-messages.js.map +1 -0
- package/dist/browser/charts/core/default-styles.js +83 -0
- package/dist/browser/charts/core/default-styles.js.map +1 -0
- package/dist/browser/charts/core/funnel-layout.js +79 -0
- package/dist/browser/charts/core/funnel-layout.js.map +1 -0
- package/dist/browser/charts/core/funnel.js +27 -0
- package/dist/browser/charts/core/funnel.js.map +1 -0
- package/dist/browser/charts/core/hbar-layout.js +118 -0
- package/dist/browser/charts/core/hbar-layout.js.map +1 -0
- package/dist/browser/charts/core/hbar.js +39 -0
- package/dist/browser/charts/core/hbar.js.map +1 -0
- package/dist/browser/charts/core/index.js +12 -2
- package/dist/browser/charts/core/index.js.map +1 -1
- package/dist/browser/charts/core/map.js +116 -0
- package/dist/browser/charts/core/map.js.map +1 -0
- package/dist/browser/charts/core/pareto.js +120 -0
- package/dist/browser/charts/core/pareto.js.map +1 -0
- package/dist/browser/charts/core/radar.js +101 -0
- package/dist/browser/charts/core/radar.js.map +1 -0
- package/dist/browser/charts/core/registry.js +33 -16
- package/dist/browser/charts/core/registry.js.map +1 -1
- package/dist/browser/charts/core/render-size.js +15 -0
- package/dist/browser/charts/core/render-size.js.map +1 -0
- package/dist/browser/charts/core/render.js +39 -10
- package/dist/browser/charts/core/render.js.map +1 -1
- package/dist/browser/charts/core/snapshot.js +4 -4
- package/dist/browser/charts/core/snapshot.js.map +1 -1
- package/dist/browser/charts/core/svg-barGauge.js +67 -0
- package/dist/browser/charts/core/svg-barGauge.js.map +1 -0
- package/dist/browser/charts/core/svg-boxplot.js +127 -0
- package/dist/browser/charts/core/svg-boxplot.js.map +1 -0
- package/dist/browser/charts/core/svg-common.js +1065 -0
- package/dist/browser/charts/core/svg-common.js.map +1 -0
- package/dist/browser/charts/core/svg-gauge.js +185 -0
- package/dist/browser/charts/core/svg-gauge.js.map +1 -0
- package/dist/browser/charts/core/svg-heatmap.js +80 -0
- package/dist/browser/charts/core/svg-heatmap.js.map +1 -0
- package/dist/browser/charts/core/svg-histogram.js +73 -0
- package/dist/browser/charts/core/svg-histogram.js.map +1 -0
- package/dist/browser/charts/core/svg-renderers.js +638 -0
- package/dist/browser/charts/core/svg-renderers.js.map +1 -0
- package/dist/browser/charts/core/svg-scatter.js +114 -0
- package/dist/browser/charts/core/svg-scatter.js.map +1 -0
- package/dist/browser/charts/core/svg.js +4 -2525
- package/dist/browser/charts/core/svg.js.map +1 -1
- package/dist/browser/charts/core/treemap.js +138 -0
- package/dist/browser/charts/core/treemap.js.map +1 -0
- package/dist/browser/charts/core/types.js +0 -2
- package/dist/browser/charts/core/types.js.map +1 -1
- package/dist/browser/charts/core/waterfall.js +162 -0
- package/dist/browser/charts/core/waterfall.js.map +1 -0
- package/dist/browser/charts/description.js +2 -0
- package/dist/browser/charts/description.js.map +1 -0
- package/dist/browser/charts.js.map +1 -1
- package/dist/browser/content/Chart.js +14 -628
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartRoot.js +646 -0
- package/dist/browser/content/ChartRoot.js.map +1 -0
- package/dist/browser/content/ChartSnapshotView.js +4 -1
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/ChartSparkline.js +24 -0
- package/dist/browser/content/ChartSparkline.js.map +1 -0
- package/dist/browser/content/DataTable.js +186 -193
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/FileView.js +111 -61
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/Lightbox.js +62 -30
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/MapView.js +30 -28
- package/dist/browser/content/MapView.js.map +1 -1
- package/dist/browser/content/PdfPreview.js +84 -52
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/PdfViewer.js +588 -0
- package/dist/browser/content/PdfViewer.js.map +1 -0
- package/dist/browser/content/ThumbnailStrip.js +174 -0
- package/dist/browser/content/ThumbnailStrip.js.map +1 -0
- package/dist/browser/content/chart-bar.js +344 -16
- package/dist/browser/content/chart-bar.js.map +1 -1
- package/dist/browser/content/chart-inspection-core.js +50 -29
- package/dist/browser/content/chart-inspection-core.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-message-catalog.js +28 -0
- package/dist/browser/content/chart-message-catalog.js.map +1 -1
- package/dist/browser/content/chart-state-timeline.js +1 -1
- package/dist/browser/content/chart-state-timeline.js.map +1 -1
- package/dist/browser/content/chart-svg.js +2 -1
- package/dist/browser/content/chart-svg.js.map +1 -1
- package/dist/browser/content/index.js +2 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/pdf-document.js +29 -0
- package/dist/browser/content/pdf-document.js.map +1 -0
- package/dist/browser/content/pdf-limits.js +31 -0
- package/dist/browser/content/pdf-limits.js.map +1 -0
- package/dist/browser/content/pdf-messages.js +34 -2
- package/dist/browser/content/pdf-messages.js.map +1 -1
- package/dist/browser/content/pdf-viewer-engine.js +57 -0
- package/dist/browser/content/pdf-viewer-worker.js +28 -0
- package/dist/browser/content/thumbnail-strip-messages.js +24 -0
- package/dist/browser/content/thumbnail-strip-messages.js.map +1 -0
- package/dist/browser/inputs/ChoiceInputs.js +150 -76
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/inputs/ChoiceSlider.js +75 -58
- package/dist/browser/inputs/ChoiceSlider.js.map +1 -1
- package/dist/browser/inputs/DatePicker.js +113 -98
- package/dist/browser/inputs/DatePicker.js.map +1 -1
- package/dist/browser/inputs/PeriodPicker.js +874 -0
- package/dist/browser/inputs/PeriodPicker.js.map +1 -0
- package/dist/browser/inputs/index.js +5 -1
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/input-messages.js +8 -2
- package/dist/browser/inputs/input-messages.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownEditor.js +14 -10
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js +330 -0
- package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
- package/dist/browser/inputs/markdown/SlashCommands.js +402 -0
- package/dist/browser/inputs/markdown/SlashCommands.js.map +1 -0
- package/dist/browser/inputs/period-picker-messages.js +71 -0
- package/dist/browser/inputs/period-picker-messages.js.map +1 -0
- package/dist/browser/inputs/period.js +263 -0
- package/dist/browser/inputs/period.js.map +1 -0
- package/dist/browser/internal/field.js +96 -77
- package/dist/browser/internal/field.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +7 -5
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +147 -120
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Discussion.js +101 -108
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/PanelDialog.js +92 -68
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/surfaces/DescriptionList.js +5 -2
- package/dist/browser/surfaces/DescriptionList.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js +95 -78
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/delta-badge.js +16 -2
- package/dist/browser/surfaces/delta-badge.js.map +1 -1
- package/dist/browser/surfaces/stat-cell-messages.js +4 -2
- package/dist/browser/surfaces/stat-cell-messages.js.map +1 -1
- package/dist/browser/widgets/DashboardFrame.js +315 -0
- package/dist/browser/widgets/DashboardFrame.js.map +1 -0
- package/dist/browser/widgets/index.js +1 -0
- package/dist/browser/widgets/index.js.map +1 -1
- package/dist/licenses/pdfjs-dist.txt +177 -0
- package/dist/ssr/actions/Button.js.map +1 -1
- package/dist/ssr/actions/CommandList.js +638 -0
- package/dist/ssr/actions/CommandList.js.map +1 -0
- package/dist/ssr/actions/CommandMenu.js +197 -0
- package/dist/ssr/actions/CommandMenu.js.map +1 -0
- package/dist/ssr/actions/Dropdown.js +43 -10
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/Toolbar.js +8 -2
- package/dist/ssr/actions/Toolbar.js.map +1 -1
- package/dist/ssr/actions/command-dock.js +47 -0
- package/dist/ssr/actions/command-dock.js.map +1 -0
- package/dist/ssr/actions/command-items.js +84 -0
- package/dist/ssr/actions/command-items.js.map +1 -0
- package/dist/ssr/actions/command-messages.js +42 -0
- package/dist/ssr/actions/command-messages.js.map +1 -0
- package/dist/ssr/actions/index.js +1 -0
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/charts/core/area.js +3 -5
- package/dist/ssr/charts/core/area.js.map +1 -1
- package/dist/ssr/charts/core/bar-labels.js +5 -0
- package/dist/ssr/charts/core/bar-labels.js.map +1 -0
- package/dist/ssr/charts/core/bubble.js +166 -0
- package/dist/ssr/charts/core/bubble.js.map +1 -0
- package/dist/ssr/charts/core/calendar.js +1 -1
- package/dist/ssr/charts/core/calendar.js.map +1 -1
- package/dist/ssr/charts/core/chart-messages.js +17 -0
- package/dist/ssr/charts/core/chart-messages.js.map +1 -0
- package/dist/ssr/charts/core/default-styles.js +83 -0
- package/dist/ssr/charts/core/default-styles.js.map +1 -0
- package/dist/ssr/charts/core/funnel-layout.js +79 -0
- package/dist/ssr/charts/core/funnel-layout.js.map +1 -0
- package/dist/ssr/charts/core/funnel.js +27 -0
- package/dist/ssr/charts/core/funnel.js.map +1 -0
- package/dist/ssr/charts/core/hbar-layout.js +118 -0
- package/dist/ssr/charts/core/hbar-layout.js.map +1 -0
- package/dist/ssr/charts/core/hbar.js +39 -0
- package/dist/ssr/charts/core/hbar.js.map +1 -0
- package/dist/ssr/charts/core/index.js +12 -2
- package/dist/ssr/charts/core/index.js.map +1 -1
- package/dist/ssr/charts/core/map.js +116 -0
- package/dist/ssr/charts/core/map.js.map +1 -0
- package/dist/ssr/charts/core/pareto.js +120 -0
- package/dist/ssr/charts/core/pareto.js.map +1 -0
- package/dist/ssr/charts/core/radar.js +101 -0
- package/dist/ssr/charts/core/radar.js.map +1 -0
- package/dist/ssr/charts/core/registry.js +33 -16
- package/dist/ssr/charts/core/registry.js.map +1 -1
- package/dist/ssr/charts/core/render-size.js +15 -0
- package/dist/ssr/charts/core/render-size.js.map +1 -0
- package/dist/ssr/charts/core/render.js +39 -10
- package/dist/ssr/charts/core/render.js.map +1 -1
- package/dist/ssr/charts/core/snapshot.js +4 -4
- package/dist/ssr/charts/core/snapshot.js.map +1 -1
- package/dist/ssr/charts/core/svg-barGauge.js +67 -0
- package/dist/ssr/charts/core/svg-barGauge.js.map +1 -0
- package/dist/ssr/charts/core/svg-boxplot.js +127 -0
- package/dist/ssr/charts/core/svg-boxplot.js.map +1 -0
- package/dist/ssr/charts/core/svg-common.js +1065 -0
- package/dist/ssr/charts/core/svg-common.js.map +1 -0
- package/dist/ssr/charts/core/svg-gauge.js +185 -0
- package/dist/ssr/charts/core/svg-gauge.js.map +1 -0
- package/dist/ssr/charts/core/svg-heatmap.js +80 -0
- package/dist/ssr/charts/core/svg-heatmap.js.map +1 -0
- package/dist/ssr/charts/core/svg-histogram.js +73 -0
- package/dist/ssr/charts/core/svg-histogram.js.map +1 -0
- package/dist/ssr/charts/core/svg-renderers.js +638 -0
- package/dist/ssr/charts/core/svg-renderers.js.map +1 -0
- package/dist/ssr/charts/core/svg-scatter.js +114 -0
- package/dist/ssr/charts/core/svg-scatter.js.map +1 -0
- package/dist/ssr/charts/core/svg.js +4 -2525
- package/dist/ssr/charts/core/svg.js.map +1 -1
- package/dist/ssr/charts/core/treemap.js +138 -0
- package/dist/ssr/charts/core/treemap.js.map +1 -0
- package/dist/ssr/charts/core/types.js +0 -2
- package/dist/ssr/charts/core/types.js.map +1 -1
- package/dist/ssr/charts/core/waterfall.js +162 -0
- package/dist/ssr/charts/core/waterfall.js.map +1 -0
- package/dist/ssr/charts/description.js +2 -0
- package/dist/ssr/charts/description.js.map +1 -0
- package/dist/ssr/charts.js.map +1 -1
- package/dist/ssr/content/Chart.js +14 -471
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartRoot.js +489 -0
- package/dist/ssr/content/ChartRoot.js.map +1 -0
- package/dist/ssr/content/ChartSnapshotView.js +1 -0
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/ChartSparkline.js +24 -0
- package/dist/ssr/content/ChartSparkline.js.map +1 -0
- package/dist/ssr/content/DataTable.js +12 -16
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/FileView.js +56 -7
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +39 -10
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/MapView.js +9 -9
- package/dist/ssr/content/MapView.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js +49 -20
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/PdfViewer.js +484 -0
- package/dist/ssr/content/PdfViewer.js.map +1 -0
- package/dist/ssr/content/ThumbnailStrip.js +103 -0
- package/dist/ssr/content/ThumbnailStrip.js.map +1 -0
- package/dist/ssr/content/chart-bar.js +344 -16
- package/dist/ssr/content/chart-bar.js.map +1 -1
- package/dist/ssr/content/chart-inspection-core.js +50 -29
- package/dist/ssr/content/chart-inspection-core.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-message-catalog.js +28 -0
- package/dist/ssr/content/chart-message-catalog.js.map +1 -1
- package/dist/ssr/content/chart-state-timeline.js +1 -1
- package/dist/ssr/content/chart-state-timeline.js.map +1 -1
- package/dist/ssr/content/chart-svg.js +2 -1
- package/dist/ssr/content/chart-svg.js.map +1 -1
- package/dist/ssr/content/index.js +2 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/pdf-document.js +29 -0
- package/dist/ssr/content/pdf-document.js.map +1 -0
- package/dist/ssr/content/pdf-limits.js +31 -0
- package/dist/ssr/content/pdf-limits.js.map +1 -0
- package/dist/ssr/content/pdf-messages.js +34 -2
- package/dist/ssr/content/pdf-messages.js.map +1 -1
- package/dist/ssr/content/thumbnail-strip-messages.js +24 -0
- package/dist/ssr/content/thumbnail-strip-messages.js.map +1 -0
- package/dist/ssr/inputs/ChoiceInputs.js +69 -17
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/inputs/ChoiceSlider.js +17 -12
- package/dist/ssr/inputs/ChoiceSlider.js.map +1 -1
- package/dist/ssr/inputs/DatePicker.js +14 -9
- package/dist/ssr/inputs/DatePicker.js.map +1 -1
- package/dist/ssr/inputs/PeriodPicker.js +598 -0
- package/dist/ssr/inputs/PeriodPicker.js.map +1 -0
- package/dist/ssr/inputs/index.js +5 -1
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/input-messages.js +8 -2
- package/dist/ssr/inputs/input-messages.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js +293 -0
- package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
- package/dist/ssr/inputs/markdown/SlashCommands.js +339 -0
- package/dist/ssr/inputs/markdown/SlashCommands.js.map +1 -0
- package/dist/ssr/inputs/period-picker-messages.js +71 -0
- package/dist/ssr/inputs/period-picker-messages.js.map +1 -0
- package/dist/ssr/inputs/period.js +263 -0
- package/dist/ssr/inputs/period.js.map +1 -0
- package/dist/ssr/internal/field.js +36 -24
- package/dist/ssr/internal/field.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +5 -1
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +27 -4
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +16 -2
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/PanelDialog.js +40 -26
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/surfaces/DescriptionList.js +1 -1
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +31 -21
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/delta-badge.js +16 -2
- package/dist/ssr/surfaces/delta-badge.js.map +1 -1
- package/dist/ssr/surfaces/stat-cell-messages.js +4 -2
- package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -1
- package/dist/ssr/widgets/DashboardFrame.js +195 -0
- package/dist/ssr/widgets/DashboardFrame.js.map +1 -0
- package/dist/ssr/widgets/index.js +1 -0
- package/dist/ssr/widgets/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/Button.d.ts +1 -1
- package/dist/types/actions/CommandList.d.ts +120 -0
- package/dist/types/actions/CommandMenu.d.ts +39 -0
- package/dist/types/actions/Dropdown.d.ts +17 -0
- package/dist/types/actions/Toolbar.d.ts +2 -0
- package/dist/types/actions/command-dock.d.ts +8 -0
- package/dist/types/actions/command-items.d.ts +134 -0
- package/dist/types/actions/command-messages.d.ts +19 -0
- package/dist/types/actions/index.d.ts +3 -0
- package/dist/types/charts/core/bar-labels.d.ts +1 -0
- package/dist/types/charts/core/bubble.d.ts +66 -0
- package/dist/types/charts/core/calendar.d.ts +1 -1
- package/dist/types/charts/core/chart-messages.d.ts +5 -0
- package/dist/types/charts/core/default-styles.d.ts +1 -0
- package/dist/types/charts/core/funnel-layout.d.ts +43 -0
- package/dist/types/charts/core/funnel.d.ts +13 -0
- package/dist/types/charts/core/hbar-layout.d.ts +74 -0
- package/dist/types/charts/core/hbar.d.ts +13 -0
- package/dist/types/charts/core/index.d.ts +12 -2
- package/dist/types/charts/core/map.d.ts +3 -0
- package/dist/types/charts/core/pareto.d.ts +40 -0
- package/dist/types/charts/core/radar.d.ts +47 -0
- package/dist/types/charts/core/registry.d.ts +27 -11
- package/dist/types/charts/core/render-size.d.ts +7 -0
- package/dist/types/charts/core/render.d.ts +1 -4
- package/dist/types/charts/core/snapshot.d.ts +2 -2
- package/dist/types/charts/core/svg-barGauge.d.ts +3 -0
- package/dist/types/charts/core/svg-boxplot.d.ts +18 -0
- package/dist/types/charts/core/svg-common.d.ts +612 -0
- package/dist/types/charts/core/svg-gauge.d.ts +6 -0
- package/dist/types/charts/core/svg-heatmap.d.ts +6 -0
- package/dist/types/charts/core/svg-histogram.d.ts +16 -0
- package/dist/types/charts/core/svg-renderers.d.ts +118 -0
- package/dist/types/charts/core/svg-scatter.d.ts +23 -0
- package/dist/types/charts/core/svg.d.ts +4 -698
- package/dist/types/charts/core/treemap.d.ts +45 -0
- package/dist/types/charts/core/types.d.ts +1 -12
- package/dist/types/charts/core/waterfall.d.ts +68 -0
- package/dist/types/charts/description.d.ts +289 -0
- package/dist/types/charts.d.ts +1 -0
- package/dist/types/content/Chart.d.ts +3 -91
- package/dist/types/content/ChartRoot.d.ts +92 -0
- package/dist/types/content/ChartSparkline.d.ts +5 -0
- package/dist/types/content/Lightbox.d.ts +2 -0
- package/dist/types/content/PdfViewer.d.ts +32 -0
- package/dist/types/content/ThumbnailStrip.d.ts +29 -0
- package/dist/types/content/chart-bar.d.ts +131 -2
- package/dist/types/content/chart-inspection-core.d.ts +7 -0
- package/dist/types/content/chart-inspection.d.ts +1 -0
- package/dist/types/content/chart-message-catalog.d.ts +8 -0
- package/dist/types/content/index.d.ts +3 -0
- package/dist/types/content/pdf-document.d.ts +5 -0
- package/dist/types/content/pdf-engine.d.ts +9 -0
- package/dist/types/content/pdf-limits.d.ts +43 -0
- package/dist/types/content/pdf-messages.d.ts +16 -0
- package/dist/types/content/thumbnail-strip-messages.d.ts +10 -0
- package/dist/types/inputs/ChoiceInputs.d.ts +6 -0
- package/dist/types/inputs/ChoiceSlider.d.ts +12 -0
- package/dist/types/inputs/DatePicker.d.ts +22 -0
- package/dist/types/inputs/PeriodPicker.d.ts +24 -0
- package/dist/types/inputs/index.d.ts +10 -2
- package/dist/types/inputs/input-messages.d.ts +3 -0
- package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -0
- package/dist/types/inputs/markdown/MarkdownSelectionToolbar.d.ts +19 -0
- package/dist/types/inputs/markdown/SlashCommands.d.ts +20 -0
- package/dist/types/inputs/period-picker-messages.d.ts +34 -0
- package/dist/types/inputs/period.d.ts +134 -0
- package/dist/types/internal/field.d.ts +2 -0
- package/dist/types/layout/DetailPanel.d.ts +12 -0
- package/dist/types/layout/PanelDialog.d.ts +5 -0
- package/dist/types/layout/index.d.ts +1 -1
- package/dist/types/surfaces/DescriptionList.d.ts +5 -0
- package/dist/types/surfaces/StatCell.d.ts +6 -1
- package/dist/types/surfaces/stat-cell-messages.d.ts +1 -0
- package/dist/types/widgets/DashboardFrame.d.ts +61 -0
- package/dist/types/widgets/index.d.ts +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { dates } from "@k2b/stdlib";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A period as an app stores it: a preset key that stays relative ("this month" is next month's month too), or two
|
|
5
|
+
* explicit days. Days are date keys such as `2026-11-01`; `end` is inclusive.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** Inclusive days of a period. `null` is an open edge, for example "All time" without a known first day. */
|
|
9
|
+
|
|
10
|
+
/** What a preset resolves against: today in the period's time zone and the first day of the week. */
|
|
11
|
+
|
|
12
|
+
/** The clock a period is resolved with. Server and browser pass the same values so the first render agrees. */
|
|
13
|
+
|
|
14
|
+
const keyDate = key => new Date(`${key}T00:00:00Z`);
|
|
15
|
+
const dateKeyOf = date => date.toISOString().slice(0, 10);
|
|
16
|
+
const day = (year, month, date) => dateKeyOf(new Date(Date.UTC(year, month, date)));
|
|
17
|
+
const parts = key => ({
|
|
18
|
+
year: Number(key.slice(0, 4)),
|
|
19
|
+
month: Number(key.slice(5, 7)) - 1,
|
|
20
|
+
date: Number(key.slice(8, 10))
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
/** Adds whole days to a date key; calendar days, so a DST change never moves it. */
|
|
24
|
+
export const addPeriodDays = (key, count) => {
|
|
25
|
+
const date = keyDate(key);
|
|
26
|
+
date.setUTCDate(date.getUTCDate() + count);
|
|
27
|
+
return dateKeyOf(date);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/** Number of days in an inclusive range of date keys. */
|
|
31
|
+
export const periodDayCount = range => Math.round((keyDate(range.end).getTime() - keyDate(range.start).getTime()) / 86_400_000) + 1;
|
|
32
|
+
const month = (key, offset) => {
|
|
33
|
+
const {
|
|
34
|
+
year,
|
|
35
|
+
month
|
|
36
|
+
} = parts(key);
|
|
37
|
+
return {
|
|
38
|
+
start: day(year, month + offset, 1),
|
|
39
|
+
end: day(year, month + offset + 1, 0)
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const quarter = (key, offset) => {
|
|
43
|
+
const {
|
|
44
|
+
year,
|
|
45
|
+
month
|
|
46
|
+
} = parts(key);
|
|
47
|
+
const first = Math.floor(month / 3) * 3 + offset * 3;
|
|
48
|
+
return {
|
|
49
|
+
start: day(year, first, 1),
|
|
50
|
+
end: day(year, first + 3, 0)
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
const year = (key, offset) => {
|
|
54
|
+
const value = parts(key).year + offset;
|
|
55
|
+
return {
|
|
56
|
+
start: `${value}-01-01`,
|
|
57
|
+
end: `${value}-12-31`
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const week = (context, offset) => {
|
|
61
|
+
const weekday = keyDate(context.today).getUTCDay();
|
|
62
|
+
const start = addPeriodDays(context.today, -((weekday - context.weekStartsOn + 7) % 7) + offset * 7);
|
|
63
|
+
return {
|
|
64
|
+
start,
|
|
65
|
+
end: addPeriodDays(start, 6)
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Built-in presets. Each covers its whole calendar period ("This month" is the 1st to the last day, not up to
|
|
71
|
+
* today) in the period's time zone; weeks start on the context's first day of the week.
|
|
72
|
+
*/
|
|
73
|
+
export const periodPresets = {
|
|
74
|
+
today: {
|
|
75
|
+
key: "today",
|
|
76
|
+
resolve: ({
|
|
77
|
+
today
|
|
78
|
+
}) => ({
|
|
79
|
+
start: today,
|
|
80
|
+
end: today
|
|
81
|
+
})
|
|
82
|
+
},
|
|
83
|
+
yesterday: {
|
|
84
|
+
key: "yesterday",
|
|
85
|
+
resolve: ({
|
|
86
|
+
today
|
|
87
|
+
}) => ({
|
|
88
|
+
start: addPeriodDays(today, -1),
|
|
89
|
+
end: addPeriodDays(today, -1)
|
|
90
|
+
})
|
|
91
|
+
},
|
|
92
|
+
thisWeek: {
|
|
93
|
+
key: "this-week",
|
|
94
|
+
resolve: context => week(context, 0)
|
|
95
|
+
},
|
|
96
|
+
lastWeek: {
|
|
97
|
+
key: "last-week",
|
|
98
|
+
resolve: context => week(context, -1)
|
|
99
|
+
},
|
|
100
|
+
thisMonth: {
|
|
101
|
+
key: "this-month",
|
|
102
|
+
resolve: ({
|
|
103
|
+
today
|
|
104
|
+
}) => month(today, 0)
|
|
105
|
+
},
|
|
106
|
+
lastMonth: {
|
|
107
|
+
key: "last-month",
|
|
108
|
+
resolve: ({
|
|
109
|
+
today
|
|
110
|
+
}) => month(today, -1)
|
|
111
|
+
},
|
|
112
|
+
thisQuarter: {
|
|
113
|
+
key: "this-quarter",
|
|
114
|
+
resolve: ({
|
|
115
|
+
today
|
|
116
|
+
}) => quarter(today, 0)
|
|
117
|
+
},
|
|
118
|
+
lastQuarter: {
|
|
119
|
+
key: "last-quarter",
|
|
120
|
+
resolve: ({
|
|
121
|
+
today
|
|
122
|
+
}) => quarter(today, -1)
|
|
123
|
+
},
|
|
124
|
+
thisYear: {
|
|
125
|
+
key: "this-year",
|
|
126
|
+
resolve: ({
|
|
127
|
+
today
|
|
128
|
+
}) => year(today, 0)
|
|
129
|
+
},
|
|
130
|
+
lastYear: {
|
|
131
|
+
key: "last-year",
|
|
132
|
+
resolve: ({
|
|
133
|
+
today
|
|
134
|
+
}) => year(today, -1)
|
|
135
|
+
},
|
|
136
|
+
/** Everything up to today; `since` is the first day with data when the app knows it, else the start stays open. */
|
|
137
|
+
all: (options = {}) => ({
|
|
138
|
+
key: "all",
|
|
139
|
+
resolve: ({
|
|
140
|
+
today
|
|
141
|
+
}) => ({
|
|
142
|
+
start: options.since ?? null,
|
|
143
|
+
end: today
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
};
|
|
147
|
+
const dateKeyPattern = /^\d{4}-\d{2}-\d{2}$/;
|
|
148
|
+
/** A real calendar day key, not only the shape (`2026-02-30` is refused). */
|
|
149
|
+
export const isPeriodDay = value => {
|
|
150
|
+
if (typeof value !== "string" || !dateKeyPattern.test(value)) return false;
|
|
151
|
+
const date = keyDate(value);
|
|
152
|
+
return !Number.isNaN(date.getTime()) && dateKeyOf(date) === value;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/** Accepts a stored or URL value only when it is a known preset key or two real days in order. */
|
|
156
|
+
export const parsePeriodValue = (value, presets) => {
|
|
157
|
+
if (!value || typeof value !== "object") return undefined;
|
|
158
|
+
const candidate = value;
|
|
159
|
+
if (typeof candidate.preset === "string") return presets.some(preset => preset.key === candidate.preset) ? {
|
|
160
|
+
preset: candidate.preset
|
|
161
|
+
} : undefined;
|
|
162
|
+
if (isPeriodDay(candidate.start) && isPeriodDay(candidate.end) && candidate.start <= candidate.end) return {
|
|
163
|
+
start: candidate.start,
|
|
164
|
+
end: candidate.end
|
|
165
|
+
};
|
|
166
|
+
return undefined;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/** The context presets resolve against: today in the clock's time zone. */
|
|
170
|
+
export const periodContext = (clock = {}) => ({
|
|
171
|
+
today: dates.formatDateKey(clock.now ?? new Date(), {
|
|
172
|
+
timeZone: clock.timeZone
|
|
173
|
+
}),
|
|
174
|
+
weekStartsOn: clock.weekStartsOn ?? clock.firstDayOfWeek ?? 1
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Resolves a value to inclusive days. Returns `undefined` for a preset key the list does not contain, so a stored
|
|
179
|
+
* period that no longer exists is never silently replaced.
|
|
180
|
+
*/
|
|
181
|
+
export const resolvePeriod = (value, presets, clock = {}) => {
|
|
182
|
+
if (!("preset" in value)) return {
|
|
183
|
+
start: value.start,
|
|
184
|
+
end: value.end
|
|
185
|
+
};
|
|
186
|
+
return presets.find(preset => preset.key === value.preset)?.resolve(periodContext(clock));
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* The instants a query uses for a resolved period: `from` is the start of the first day and `to` the start of the
|
|
191
|
+
* day after the last one (exclusive), both in the time zone. Days are never assumed to last 24 hours.
|
|
192
|
+
*/
|
|
193
|
+
export const periodInstants = (range, timeZone) => {
|
|
194
|
+
const midnight = key => dates.zonedDateTimeToInstant(`${key}T00:00`, timeZone, {
|
|
195
|
+
disambiguation: "compatible"
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
from: range.start ? midnight(range.start) : null,
|
|
199
|
+
to: range.end ? midnight(addPeriodDays(range.end, 1)) : null
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
const utcFormat = (locale, options) => new Intl.DateTimeFormat(locale, {
|
|
203
|
+
...options,
|
|
204
|
+
timeZone: "UTC"
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Short days of a preset, for the list and the trigger: "Sat, Nov 7", "Nov 1 – 30", "2025", "since 3/14/2019".
|
|
209
|
+
* The year is added only when the period is not in today's year.
|
|
210
|
+
*/
|
|
211
|
+
export const formatPeriodDays = (range, today, locale, since) => {
|
|
212
|
+
if (!range.start) return "";
|
|
213
|
+
if (!range.end) return since(utcFormat(locale, {
|
|
214
|
+
day: "2-digit",
|
|
215
|
+
month: "2-digit",
|
|
216
|
+
year: "numeric"
|
|
217
|
+
}).format(keyDate(range.start)));
|
|
218
|
+
const start = keyDate(range.start);
|
|
219
|
+
const end = keyDate(range.end);
|
|
220
|
+
const sameYear = range.start.slice(0, 4) === range.end.slice(0, 4);
|
|
221
|
+
if (sameYear && range.start.endsWith("-01-01") && range.end.endsWith("-12-31")) return range.start.slice(0, 4);
|
|
222
|
+
if (range.end === today && range.start.slice(0, 4) !== today.slice(0, 4)) return since(utcFormat(locale, {
|
|
223
|
+
day: "2-digit",
|
|
224
|
+
month: "2-digit",
|
|
225
|
+
year: "numeric"
|
|
226
|
+
}).format(start));
|
|
227
|
+
const withYear = !sameYear || range.start.slice(0, 4) !== today.slice(0, 4);
|
|
228
|
+
if (range.start === range.end) return utcFormat(locale, {
|
|
229
|
+
weekday: "short",
|
|
230
|
+
day: "numeric",
|
|
231
|
+
month: "short",
|
|
232
|
+
...(withYear ? {
|
|
233
|
+
year: "numeric"
|
|
234
|
+
} : {})
|
|
235
|
+
}).format(start);
|
|
236
|
+
return utcFormat(locale, {
|
|
237
|
+
day: "numeric",
|
|
238
|
+
month: "short",
|
|
239
|
+
...(withYear ? {
|
|
240
|
+
year: "numeric"
|
|
241
|
+
} : {})
|
|
242
|
+
}).formatRange(start, end);
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
/** Explicit days as numbers with the year: "01.–07.11.2026" in German, "11/1/2026 – 11/7/2026" in English. */
|
|
246
|
+
export const formatPeriodRange = (range, locale) => {
|
|
247
|
+
const format = utcFormat(locale, {
|
|
248
|
+
day: "2-digit",
|
|
249
|
+
month: "2-digit",
|
|
250
|
+
year: "numeric"
|
|
251
|
+
});
|
|
252
|
+
return range.start === range.end ? format.format(keyDate(range.start)) : format.formatRange(keyDate(range.start), keyDate(range.end));
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/** The widest explicit range within today's year, all of it (two-digit days, a three-digit count), so a trigger can reserve its width. */
|
|
256
|
+
export const widePeriodRangeSample = today => {
|
|
257
|
+
const year = today.slice(0, 4);
|
|
258
|
+
return {
|
|
259
|
+
start: `${year}-01-01`,
|
|
260
|
+
end: `${year}-12-31`
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
//# sourceMappingURL=period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["inputs/period.ts"],"sourcesContent":["import { dates } from \"@k2b/stdlib\";\n\n/**\n * A period as an app stores it: a preset key that stays relative (\"this month\" is next month's month too), or two\n * explicit days. Days are date keys such as `2026-11-01`; `end` is inclusive.\n */\nexport type PeriodValue = { preset: string } | { start: string; end: string };\n\n/** Inclusive days of a period. `null` is an open edge, for example \"All time\" without a known first day. */\nexport type PeriodRange = { start: string | null; end: string | null };\n\n/** What a preset resolves against: today in the period's time zone and the first day of the week. */\nexport type PeriodContext = { today: string; weekStartsOn: 0 | 1 };\n\nexport type PeriodPreset = {\n key: string;\n /** Shown in the list and the trigger. Built-in presets bring a translated label; app presets name their own. */\n label?: string;\n resolve: (context: PeriodContext) => PeriodRange;\n};\n\n/** The clock a period is resolved with. Server and browser pass the same values so the first render agrees. */\nexport type PeriodClock = {\n /** The instant \"today\" is read from; defaults to now. */\n now?: Date;\n /** IANA time zone the days belong to, for example a base's zone; defaults to the runtime zone. */\n timeZone?: string;\n /** First day of the week, as in the calendar's date config; Monday by default. */\n weekStartsOn?: 0 | 1;\n /** Alias of `weekStartsOn`, accepted from a shared date config. */\n firstDayOfWeek?: 0 | 1;\n};\n\nconst keyDate = (key: string): Date => new Date(`${key}T00:00:00Z`);\nconst dateKeyOf = (date: Date): string => date.toISOString().slice(0, 10);\nconst day = (year: number, month: number, date: number): string => dateKeyOf(new Date(Date.UTC(year, month, date)));\nconst parts = (key: string) => ({ year: Number(key.slice(0, 4)), month: Number(key.slice(5, 7)) - 1, date: Number(key.slice(8, 10)) });\n\n/** Adds whole days to a date key; calendar days, so a DST change never moves it. */\nexport const addPeriodDays = (key: string, count: number): string => {\n const date = keyDate(key);\n date.setUTCDate(date.getUTCDate() + count);\n return dateKeyOf(date);\n};\n\n/** Number of days in an inclusive range of date keys. */\nexport const periodDayCount = (range: { start: string; end: string }): number =>\n Math.round((keyDate(range.end).getTime() - keyDate(range.start).getTime()) / 86_400_000) + 1;\n\nconst month = (key: string, offset: number): PeriodRange => {\n const { year, month } = parts(key);\n return { start: day(year, month + offset, 1), end: day(year, month + offset + 1, 0) };\n};\nconst quarter = (key: string, offset: number): PeriodRange => {\n const { year, month } = parts(key);\n const first = Math.floor(month / 3) * 3 + offset * 3;\n return { start: day(year, first, 1), end: day(year, first + 3, 0) };\n};\nconst year = (key: string, offset: number): PeriodRange => {\n const value = parts(key).year + offset;\n return { start: `${value}-01-01`, end: `${value}-12-31` };\n};\nconst week = (context: PeriodContext, offset: number): PeriodRange => {\n const weekday = keyDate(context.today).getUTCDay();\n const start = addPeriodDays(context.today, -((weekday - context.weekStartsOn + 7) % 7) + offset * 7);\n return { start, end: addPeriodDays(start, 6) };\n};\n\n/**\n * Built-in presets. Each covers its whole calendar period (\"This month\" is the 1st to the last day, not up to\n * today) in the period's time zone; weeks start on the context's first day of the week.\n */\nexport const periodPresets = {\n today: { key: \"today\", resolve: ({ today }) => ({ start: today, end: today }) },\n yesterday: { key: \"yesterday\", resolve: ({ today }) => ({ start: addPeriodDays(today, -1), end: addPeriodDays(today, -1) }) },\n thisWeek: { key: \"this-week\", resolve: (context) => week(context, 0) },\n lastWeek: { key: \"last-week\", resolve: (context) => week(context, -1) },\n thisMonth: { key: \"this-month\", resolve: ({ today }) => month(today, 0) },\n lastMonth: { key: \"last-month\", resolve: ({ today }) => month(today, -1) },\n thisQuarter: { key: \"this-quarter\", resolve: ({ today }) => quarter(today, 0) },\n lastQuarter: { key: \"last-quarter\", resolve: ({ today }) => quarter(today, -1) },\n thisYear: { key: \"this-year\", resolve: ({ today }) => year(today, 0) },\n lastYear: { key: \"last-year\", resolve: ({ today }) => year(today, -1) },\n /** Everything up to today; `since` is the first day with data when the app knows it, else the start stays open. */\n all: (options: { since?: string | null } = {}): PeriodPreset => ({\n key: \"all\",\n resolve: ({ today }) => ({ start: options.since ?? null, end: today }),\n }),\n} satisfies Record<string, PeriodPreset | ((options?: { since?: string | null }) => PeriodPreset)>;\n\nconst dateKeyPattern = /^\\d{4}-\\d{2}-\\d{2}$/;\n/** A real calendar day key, not only the shape (`2026-02-30` is refused). */\nexport const isPeriodDay = (value: unknown): value is string => {\n if (typeof value !== \"string\" || !dateKeyPattern.test(value)) return false;\n const date = keyDate(value);\n return !Number.isNaN(date.getTime()) && dateKeyOf(date) === value;\n};\n\n/** Accepts a stored or URL value only when it is a known preset key or two real days in order. */\nexport const parsePeriodValue = (value: unknown, presets: readonly PeriodPreset[]): PeriodValue | undefined => {\n if (!value || typeof value !== \"object\") return undefined;\n const candidate = value as Record<string, unknown>;\n if (typeof candidate.preset === \"string\")\n return presets.some((preset) => preset.key === candidate.preset) ? { preset: candidate.preset } : undefined;\n if (isPeriodDay(candidate.start) && isPeriodDay(candidate.end) && candidate.start <= candidate.end)\n return { start: candidate.start, end: candidate.end };\n return undefined;\n};\n\n/** The context presets resolve against: today in the clock's time zone. */\nexport const periodContext = (clock: PeriodClock = {}): PeriodContext => ({\n today: dates.formatDateKey(clock.now ?? new Date(), { timeZone: clock.timeZone }),\n weekStartsOn: clock.weekStartsOn ?? clock.firstDayOfWeek ?? 1,\n});\n\n/**\n * Resolves a value to inclusive days. Returns `undefined` for a preset key the list does not contain, so a stored\n * period that no longer exists is never silently replaced.\n */\nexport const resolvePeriod = (value: PeriodValue, presets: readonly PeriodPreset[], clock: PeriodClock = {}): PeriodRange | undefined => {\n if (!(\"preset\" in value)) return { start: value.start, end: value.end };\n return presets.find((preset) => preset.key === value.preset)?.resolve(periodContext(clock));\n};\n\n/**\n * The instants a query uses for a resolved period: `from` is the start of the first day and `to` the start of the\n * day after the last one (exclusive), both in the time zone. Days are never assumed to last 24 hours.\n */\nexport const periodInstants = (range: PeriodRange, timeZone: string): { from: string | null; to: string | null } => {\n const midnight = (key: string) => dates.zonedDateTimeToInstant(`${key}T00:00`, timeZone, { disambiguation: \"compatible\" });\n return { from: range.start ? midnight(range.start) : null, to: range.end ? midnight(addPeriodDays(range.end, 1)) : null };\n};\n\nconst utcFormat = (locale: string, options: Intl.DateTimeFormatOptions) => new Intl.DateTimeFormat(locale, { ...options, timeZone: \"UTC\" });\n\n/**\n * Short days of a preset, for the list and the trigger: \"Sat, Nov 7\", \"Nov 1 – 30\", \"2025\", \"since 3/14/2019\".\n * The year is added only when the period is not in today's year.\n */\nexport const formatPeriodDays = (range: PeriodRange, today: string, locale: string, since: (date: string) => string): string => {\n if (!range.start) return \"\";\n if (!range.end) return since(utcFormat(locale, { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" }).format(keyDate(range.start)));\n const start = keyDate(range.start);\n const end = keyDate(range.end);\n const sameYear = range.start.slice(0, 4) === range.end.slice(0, 4);\n if (sameYear && range.start.endsWith(\"-01-01\") && range.end.endsWith(\"-12-31\")) return range.start.slice(0, 4);\n if (range.end === today && range.start.slice(0, 4) !== today.slice(0, 4))\n return since(utcFormat(locale, { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" }).format(start));\n const withYear = !sameYear || range.start.slice(0, 4) !== today.slice(0, 4);\n if (range.start === range.end)\n return utcFormat(locale, { weekday: \"short\", day: \"numeric\", month: \"short\", ...(withYear ? { year: \"numeric\" } : {}) }).format(start);\n return utcFormat(locale, { day: \"numeric\", month: \"short\", ...(withYear ? { year: \"numeric\" } : {}) }).formatRange(start, end);\n};\n\n/** Explicit days as numbers with the year: \"01.–07.11.2026\" in German, \"11/1/2026 – 11/7/2026\" in English. */\nexport const formatPeriodRange = (range: { start: string; end: string }, locale: string): string => {\n const format = utcFormat(locale, { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" });\n return range.start === range.end ? format.format(keyDate(range.start)) : format.formatRange(keyDate(range.start), keyDate(range.end));\n};\n\n/** The widest explicit range within today's year, all of it (two-digit days, a three-digit count), so a trigger can reserve its width. */\nexport const widePeriodRangeSample = (today: string): { start: string; end: string } => {\n const year = today.slice(0, 4);\n return { start: `${year}-01-01`, end: `${year}-12-31` };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,10 +8,11 @@ import { createComponent as _$createComponent } from "solid-js/web";
|
|
|
8
8
|
import { getNextElement as _$getNextElement } from "solid-js/web";
|
|
9
9
|
var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-field__required aria-hidden=true>*`),
|
|
10
10
|
_tmpl$2 = /*#__PURE__*/_$template(`<label class=k2b-field__label><!$><!/><!$><!/>`),
|
|
11
|
-
_tmpl$3 = /*#__PURE__*/_$template(`<
|
|
12
|
-
_tmpl$4 = /*#__PURE__*/_$template(`<
|
|
13
|
-
_tmpl$5 = /*#__PURE__*/_$template(`<
|
|
14
|
-
_tmpl$6 = /*#__PURE__*/_$template(`<
|
|
11
|
+
_tmpl$3 = /*#__PURE__*/_$template(`<span class=k2b-field__label><!$><!/><!$><!/>`),
|
|
12
|
+
_tmpl$4 = /*#__PURE__*/_$template(`<div class=k2b-field__label-row><!$><!/><!$><!/>`),
|
|
13
|
+
_tmpl$5 = /*#__PURE__*/_$template(`<p class=k2b-field__description>`),
|
|
14
|
+
_tmpl$6 = /*#__PURE__*/_$template(`<p class=k2b-field__error role=alert aria-live=polite>`),
|
|
15
|
+
_tmpl$7 = /*#__PURE__*/_$template(`<div><!$><!/><!$><!/><!$><!/><!$><!/>`);
|
|
15
16
|
import { createUniqueId, Show } from "solid-js";
|
|
16
17
|
import { resolveMaybeAccessor } from "../inputs/field-contract";
|
|
17
18
|
export const createFieldMeta = id => {
|
|
@@ -26,107 +27,125 @@ export const createFieldMeta = id => {
|
|
|
26
27
|
};
|
|
27
28
|
export function Field(props) {
|
|
28
29
|
const error = () => resolveMaybeAccessor(props.error);
|
|
30
|
+
const label = () => _$createComponent(Show, {
|
|
31
|
+
get when() {
|
|
32
|
+
return props.labelFor !== false;
|
|
33
|
+
},
|
|
34
|
+
get fallback() {
|
|
35
|
+
return (() => {
|
|
36
|
+
var _el$7 = _$getNextElement(_tmpl$3),
|
|
37
|
+
_el$9 = _el$7.firstChild,
|
|
38
|
+
[_el$0, _co$3] = _$getNextMarker(_el$9.nextSibling),
|
|
39
|
+
_el$1 = _el$0.nextSibling,
|
|
40
|
+
[_el$10, _co$4] = _$getNextMarker(_el$1.nextSibling);
|
|
41
|
+
_$insert(_el$7, () => props.label, _el$0, _co$3);
|
|
42
|
+
_$insert(_el$7, _$createComponent(Show, {
|
|
43
|
+
get when() {
|
|
44
|
+
return props.required;
|
|
45
|
+
},
|
|
46
|
+
get children() {
|
|
47
|
+
return _$getNextElement(_tmpl$);
|
|
48
|
+
}
|
|
49
|
+
}), _el$10, _co$4);
|
|
50
|
+
_$effect(() => _$setAttribute(_el$7, "id", props.meta.labelId));
|
|
51
|
+
return _el$7;
|
|
52
|
+
})();
|
|
53
|
+
},
|
|
54
|
+
get children() {
|
|
55
|
+
var _el$ = _$getNextElement(_tmpl$2),
|
|
56
|
+
_el$3 = _el$.firstChild,
|
|
57
|
+
[_el$4, _co$] = _$getNextMarker(_el$3.nextSibling),
|
|
58
|
+
_el$5 = _el$4.nextSibling,
|
|
59
|
+
[_el$6, _co$2] = _$getNextMarker(_el$5.nextSibling);
|
|
60
|
+
_$insert(_el$, () => props.label, _el$4, _co$);
|
|
61
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
62
|
+
get when() {
|
|
63
|
+
return props.required;
|
|
64
|
+
},
|
|
65
|
+
get children() {
|
|
66
|
+
return _$getNextElement(_tmpl$);
|
|
67
|
+
}
|
|
68
|
+
}), _el$6, _co$2);
|
|
69
|
+
_$effect(_p$ => {
|
|
70
|
+
var _v$ = props.meta.labelId,
|
|
71
|
+
_v$2 = props.labelFor || props.meta.controlId;
|
|
72
|
+
_v$ !== _p$.e && _$setAttribute(_el$, "id", _p$.e = _v$);
|
|
73
|
+
_v$2 !== _p$.t && _$setAttribute(_el$, "for", _p$.t = _v$2);
|
|
74
|
+
return _p$;
|
|
75
|
+
}, {
|
|
76
|
+
e: undefined,
|
|
77
|
+
t: undefined
|
|
78
|
+
});
|
|
79
|
+
return _el$;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
29
82
|
return (() => {
|
|
30
|
-
var _el$ = _$getNextElement(_tmpl$
|
|
31
|
-
_el$
|
|
32
|
-
[_el$
|
|
33
|
-
_el$
|
|
34
|
-
[_el$
|
|
35
|
-
_el$
|
|
36
|
-
[_el$
|
|
37
|
-
_el$
|
|
38
|
-
[_el$
|
|
39
|
-
_$insert(_el
|
|
83
|
+
var _el$11 = _$getNextElement(_tmpl$7),
|
|
84
|
+
_el$19 = _el$11.firstChild,
|
|
85
|
+
[_el$20, _co$7] = _$getNextMarker(_el$19.nextSibling),
|
|
86
|
+
_el$21 = _el$20.nextSibling,
|
|
87
|
+
[_el$22, _co$8] = _$getNextMarker(_el$21.nextSibling),
|
|
88
|
+
_el$23 = _el$22.nextSibling,
|
|
89
|
+
[_el$24, _co$9] = _$getNextMarker(_el$23.nextSibling),
|
|
90
|
+
_el$25 = _el$24.nextSibling,
|
|
91
|
+
[_el$26, _co$0] = _$getNextMarker(_el$25.nextSibling);
|
|
92
|
+
_$insert(_el$11, _$createComponent(Show, {
|
|
40
93
|
get when() {
|
|
41
94
|
return props.label;
|
|
42
95
|
},
|
|
43
96
|
get children() {
|
|
44
97
|
return _$createComponent(Show, {
|
|
45
98
|
get when() {
|
|
46
|
-
return props.
|
|
99
|
+
return props.labelEnd;
|
|
47
100
|
},
|
|
48
101
|
get fallback() {
|
|
49
|
-
return (
|
|
50
|
-
var _el$16 = _$getNextElement(_tmpl$6),
|
|
51
|
-
_el$18 = _el$16.firstChild,
|
|
52
|
-
[_el$19, _co$7] = _$getNextMarker(_el$18.nextSibling),
|
|
53
|
-
_el$20 = _el$19.nextSibling,
|
|
54
|
-
[_el$21, _co$8] = _$getNextMarker(_el$20.nextSibling);
|
|
55
|
-
_$insert(_el$16, () => props.label, _el$19, _co$7);
|
|
56
|
-
_$insert(_el$16, _$createComponent(Show, {
|
|
57
|
-
get when() {
|
|
58
|
-
return props.required;
|
|
59
|
-
},
|
|
60
|
-
get children() {
|
|
61
|
-
return _$getNextElement(_tmpl$);
|
|
62
|
-
}
|
|
63
|
-
}), _el$21, _co$8);
|
|
64
|
-
_$effect(() => _$setAttribute(_el$16, "id", props.meta.labelId));
|
|
65
|
-
return _el$16;
|
|
66
|
-
})();
|
|
102
|
+
return label();
|
|
67
103
|
},
|
|
68
104
|
get children() {
|
|
69
|
-
var _el$
|
|
70
|
-
_el$
|
|
71
|
-
[_el$
|
|
72
|
-
_el$
|
|
73
|
-
[_el$
|
|
74
|
-
_$insert(_el$
|
|
75
|
-
_$insert(_el$
|
|
76
|
-
|
|
77
|
-
return props.required;
|
|
78
|
-
},
|
|
79
|
-
get children() {
|
|
80
|
-
return _$getNextElement(_tmpl$);
|
|
81
|
-
}
|
|
82
|
-
}), _el$7, _co$2);
|
|
83
|
-
_$effect(_p$ => {
|
|
84
|
-
var _v$ = props.meta.labelId,
|
|
85
|
-
_v$2 = props.labelFor || props.meta.controlId;
|
|
86
|
-
_v$ !== _p$.e && _$setAttribute(_el$2, "id", _p$.e = _v$);
|
|
87
|
-
_v$2 !== _p$.t && _$setAttribute(_el$2, "for", _p$.t = _v$2);
|
|
88
|
-
return _p$;
|
|
89
|
-
}, {
|
|
90
|
-
e: undefined,
|
|
91
|
-
t: undefined
|
|
92
|
-
});
|
|
93
|
-
return _el$2;
|
|
105
|
+
var _el$12 = _$getNextElement(_tmpl$4),
|
|
106
|
+
_el$13 = _el$12.firstChild,
|
|
107
|
+
[_el$14, _co$5] = _$getNextMarker(_el$13.nextSibling),
|
|
108
|
+
_el$15 = _el$14.nextSibling,
|
|
109
|
+
[_el$16, _co$6] = _$getNextMarker(_el$15.nextSibling);
|
|
110
|
+
_$insert(_el$12, label, _el$14, _co$5);
|
|
111
|
+
_$insert(_el$12, () => props.labelEnd, _el$16, _co$6);
|
|
112
|
+
return _el$12;
|
|
94
113
|
}
|
|
95
114
|
});
|
|
96
115
|
}
|
|
97
|
-
}), _el$
|
|
98
|
-
_$insert(_el
|
|
116
|
+
}), _el$20, _co$7);
|
|
117
|
+
_$insert(_el$11, _$createComponent(Show, {
|
|
99
118
|
get when() {
|
|
100
119
|
return props.description;
|
|
101
120
|
},
|
|
102
121
|
get children() {
|
|
103
|
-
var _el$
|
|
104
|
-
_$insert(_el$
|
|
105
|
-
_$effect(() => _$setAttribute(_el$
|
|
106
|
-
return _el$
|
|
122
|
+
var _el$17 = _$getNextElement(_tmpl$5);
|
|
123
|
+
_$insert(_el$17, () => props.description);
|
|
124
|
+
_$effect(() => _$setAttribute(_el$17, "id", props.meta.descriptionId));
|
|
125
|
+
return _el$17;
|
|
107
126
|
}
|
|
108
|
-
}), _el$
|
|
109
|
-
_$insert(_el
|
|
110
|
-
_$insert(_el
|
|
127
|
+
}), _el$22, _co$8);
|
|
128
|
+
_$insert(_el$11, () => props.children, _el$24, _co$9);
|
|
129
|
+
_$insert(_el$11, _$createComponent(Show, {
|
|
111
130
|
get when() {
|
|
112
131
|
return error();
|
|
113
132
|
},
|
|
114
133
|
get children() {
|
|
115
|
-
var _el$
|
|
116
|
-
_$insert(_el$
|
|
117
|
-
_$effect(() => _$setAttribute(_el$
|
|
118
|
-
return _el$
|
|
134
|
+
var _el$18 = _$getNextElement(_tmpl$6);
|
|
135
|
+
_$insert(_el$18, error);
|
|
136
|
+
_$effect(() => _$setAttribute(_el$18, "id", props.meta.errorId));
|
|
137
|
+
return _el$18;
|
|
119
138
|
}
|
|
120
|
-
}), _el$
|
|
139
|
+
}), _el$26, _co$0);
|
|
121
140
|
_$effect(_p$ => {
|
|
122
141
|
var _v$3 = `k2b-field ${props.class ?? ""}`,
|
|
123
142
|
_v$4 = props.disabled ? "true" : undefined,
|
|
124
143
|
_v$5 = props.fill ? "true" : undefined,
|
|
125
144
|
_v$6 = error() ? "true" : undefined;
|
|
126
|
-
_v$3 !== _p$.e && _$className(_el
|
|
127
|
-
_v$4 !== _p$.t && _$setAttribute(_el
|
|
128
|
-
_v$5 !== _p$.a && _$setAttribute(_el
|
|
129
|
-
_v$6 !== _p$.o && _$setAttribute(_el
|
|
145
|
+
_v$3 !== _p$.e && _$className(_el$11, _p$.e = _v$3);
|
|
146
|
+
_v$4 !== _p$.t && _$setAttribute(_el$11, "data-disabled", _p$.t = _v$4);
|
|
147
|
+
_v$5 !== _p$.a && _$setAttribute(_el$11, "data-fill", _p$.a = _v$5);
|
|
148
|
+
_v$6 !== _p$.o && _$setAttribute(_el$11, "data-invalid", _p$.o = _v$6);
|
|
130
149
|
return _p$;
|
|
131
150
|
}, {
|
|
132
151
|
e: undefined,
|
|
@@ -134,7 +153,7 @@ export function Field(props) {
|
|
|
134
153
|
a: undefined,
|
|
135
154
|
o: undefined
|
|
136
155
|
});
|
|
137
|
-
return _el
|
|
156
|
+
return _el$11;
|
|
138
157
|
})();
|
|
139
158
|
}
|
|
140
159
|
export const fieldDescribedBy = (meta, owner) => [owner["aria-describedby"], owner.description ? meta.descriptionId : undefined, resolveMaybeAccessor(owner.error) ? meta.errorId : undefined].filter(Boolean).join(" ") || undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"],"sources":["internal/field.tsx"],"sourcesContent":["import { createUniqueId, type JSX, Show } from \"solid-js\";\nimport type { FieldProps } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\n\nexport type FieldMeta = {\n controlId: string;\n labelId: string;\n descriptionId: string;\n errorId: string;\n};\n\nexport const createFieldMeta = (id?: string): FieldMeta => {\n const generatedId = createUniqueId();\n const controlId = id ?? `k2b-field-${generatedId}`;\n\n return {\n controlId,\n labelId: `${controlId}-label`,\n descriptionId: `${controlId}-description`,\n errorId: `${controlId}-error`,\n };\n};\n\ntype FieldLayoutProps = {\n children: JSX.Element;\n meta: FieldMeta;\n fill?: boolean;\n /** Composite controls use aria-labelledby instead of an HTML label target. */\n labelFor?: string | false;\n} & Pick<FieldProps, \"class\" | \"description\" | \"error\" | \"label\" | \"required\" | \"disabled\">;\n\nexport function Field(props: FieldLayoutProps): JSX.Element {\n const error = () => resolveMaybeAccessor(props.error);\n
|
|
1
|
+
{"version":3,"names":["aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-required"],"sources":["internal/field.tsx"],"sourcesContent":["import { createUniqueId, type JSX, Show } from \"solid-js\";\nimport type { FieldProps } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\n\nexport type FieldMeta = {\n controlId: string;\n labelId: string;\n descriptionId: string;\n errorId: string;\n};\n\nexport const createFieldMeta = (id?: string): FieldMeta => {\n const generatedId = createUniqueId();\n const controlId = id ?? `k2b-field-${generatedId}`;\n\n return {\n controlId,\n labelId: `${controlId}-label`,\n descriptionId: `${controlId}-description`,\n errorId: `${controlId}-error`,\n };\n};\n\ntype FieldLayoutProps = {\n children: JSX.Element;\n meta: FieldMeta;\n fill?: boolean;\n /** Composite controls use aria-labelledby instead of an HTML label target. */\n labelFor?: string | false;\n /** Optional controls beside the label, outside its clickable target. */\n labelEnd?: JSX.Element;\n} & Pick<FieldProps, \"class\" | \"description\" | \"error\" | \"label\" | \"required\" | \"disabled\">;\n\nexport function Field(props: FieldLayoutProps): JSX.Element {\n const error = () => resolveMaybeAccessor(props.error);\n const label = () => (\n <Show\n when={props.labelFor !== false}\n fallback={\n <span id={props.meta.labelId} class=\"k2b-field__label\">\n {props.label}\n <Show when={props.required}>\n <span class=\"k2b-field__required\" aria-hidden=\"true\">\n *\n </span>\n </Show>\n </span>\n }\n >\n <label id={props.meta.labelId} class=\"k2b-field__label\" for={props.labelFor || props.meta.controlId}>\n {props.label}\n <Show when={props.required}>\n <span class=\"k2b-field__required\" aria-hidden=\"true\">\n *\n </span>\n </Show>\n </label>\n </Show>\n );\n\n return (\n <div\n class={`k2b-field ${props.class ?? \"\"}`}\n data-disabled={props.disabled ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n >\n <Show when={props.label}>\n <Show when={props.labelEnd} fallback={label()}>\n <div class=\"k2b-field__label-row\">\n {label()}\n {props.labelEnd}\n </div>\n </Show>\n </Show>\n <Show when={props.description}>\n <p class=\"k2b-field__description\" id={props.meta.descriptionId}>\n {props.description}\n </p>\n </Show>\n {props.children}\n <Show when={error()}>\n <p class=\"k2b-field__error\" id={props.meta.errorId} role=\"alert\" aria-live=\"polite\">\n {error()}\n </p>\n </Show>\n </div>\n );\n}\n\ntype FieldAriaOwner = Pick<FieldProps, \"aria-describedby\" | \"aria-label\" | \"description\" | \"error\" | \"label\" | \"required\">;\n\nexport const fieldDescribedBy = (meta: FieldMeta, owner: FieldAriaOwner): string | undefined =>\n [\n owner[\"aria-describedby\"],\n owner.description ? meta.descriptionId : undefined,\n resolveMaybeAccessor(owner.error) ? meta.errorId : undefined,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\nexport const fieldControlAria = (meta: FieldMeta, owner: FieldAriaOwner) => ({\n get \"aria-label\"() {\n return owner.label ? undefined : owner[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return owner.label ? meta.labelId : undefined;\n },\n get \"aria-describedby\"() {\n return fieldDescribedBy(meta, owner);\n },\n get \"aria-invalid\"() {\n return resolveMaybeAccessor(owner.error) ? (\"true\" as const) : undefined;\n },\n get \"aria-required\"() {\n return owner.required || undefined;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2833,6 +2833,10 @@ const AppWorkspace = props => {
|
|
|
2833
2833
|
setSidebarId,
|
|
2834
2834
|
initialLayoutState
|
|
2835
2835
|
};
|
|
2836
|
+
// Read once in the untracked component body and written once: the controller owns the sizes after the first
|
|
2837
|
+
// frame. In the root's effect, every rerun (a class that follows the view) rewrote the inline style and showed
|
|
2838
|
+
// the restored widths for a frame.
|
|
2839
|
+
const restoredStyle = appWorkspaceLayoutStyle(initialLayoutState());
|
|
2836
2840
|
|
|
2837
2841
|
// The resize handles are inert markup until the controller is attached, so
|
|
2838
2842
|
// the workspace attaches it itself and scopes it to this root. `onMount`
|
|
@@ -2877,28 +2881,26 @@ const AppWorkspace = props => {
|
|
|
2877
2881
|
var _el$154 = _$getNextElement(_tmpl$59);
|
|
2878
2882
|
var _ref$9 = root;
|
|
2879
2883
|
typeof _ref$9 === "function" ? _$use(_ref$9, _el$154) : root = _el$154;
|
|
2884
|
+
_$style(_el$154, restoredStyle);
|
|
2880
2885
|
_$insert(_el$154, contents);
|
|
2881
2886
|
_$effect(_p$ => {
|
|
2882
2887
|
var _v$88 = `k2b-app-workspace ${props.class ?? ""}`,
|
|
2883
2888
|
_v$89 = props.mobileSurface,
|
|
2884
2889
|
_v$90 = props.flat ? "true" : undefined,
|
|
2885
2890
|
_v$91 = initialLayoutState()?.sidebarCollapsed === undefined ? undefined : String(initialLayoutState()?.sidebarCollapsed),
|
|
2886
|
-
_v$92 = props.resizable === false ? "false" : "true"
|
|
2887
|
-
_v$93 = appWorkspaceLayoutStyle(initialLayoutState());
|
|
2891
|
+
_v$92 = props.resizable === false ? "false" : "true";
|
|
2888
2892
|
_v$88 !== _p$.e && _$className(_el$154, _p$.e = _v$88);
|
|
2889
2893
|
_v$89 !== _p$.t && _$setAttribute(_el$154, "data-mobile-surface", _p$.t = _v$89);
|
|
2890
2894
|
_v$90 !== _p$.a && _$setAttribute(_el$154, "data-flat", _p$.a = _v$90);
|
|
2891
2895
|
_v$91 !== _p$.o && _$setAttribute(_el$154, "data-sidebar-collapsed", _p$.o = _v$91);
|
|
2892
2896
|
_v$92 !== _p$.i && _$setAttribute(_el$154, "data-workspace-resizable", _p$.i = _v$92);
|
|
2893
|
-
_p$.n = _$style(_el$154, _v$93, _p$.n);
|
|
2894
2897
|
return _p$;
|
|
2895
2898
|
}, {
|
|
2896
2899
|
e: undefined,
|
|
2897
2900
|
t: undefined,
|
|
2898
2901
|
a: undefined,
|
|
2899
2902
|
o: undefined,
|
|
2900
|
-
i: undefined
|
|
2901
|
-
n: undefined
|
|
2903
|
+
i: undefined
|
|
2902
2904
|
});
|
|
2903
2905
|
return _el$154;
|
|
2904
2906
|
}
|