@ojiepermana/angular 22.1.11 → 22.1.13
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/README.md +32 -26
- package/chart/README.md +272 -0
- package/component/README.md +89 -0
- package/component/accordion/README.md +195 -0
- package/component/alert/README.md +184 -0
- package/component/alert-dialog/README.md +255 -0
- package/component/aspect-ratio/README.md +116 -0
- package/component/avatar/README.md +182 -0
- package/component/badge/README.md +143 -0
- package/component/breadcrumb/README.md +223 -0
- package/component/button/README.md +141 -0
- package/component/button-group/README.md +214 -0
- package/component/calendar/README.md +137 -0
- package/component/card/README.md +232 -0
- package/component/carousel/README.md +276 -0
- package/component/checkbox/README.md +153 -0
- package/component/collapsible/README.md +216 -0
- package/component/combobox/README.md +202 -0
- package/component/command/README.md +287 -0
- package/component/composer/README.md +241 -0
- package/component/context-menu/README.md +268 -0
- package/component/date-picker/README.md +202 -0
- package/component/dialog/README.md +276 -0
- package/component/drawer/README.md +147 -0
- package/component/dropdown-menu/README.md +336 -0
- package/component/editor/README.md +152 -0
- package/component/empty/README.md +193 -0
- package/component/form/README.md +216 -0
- package/component/hover-card/README.md +150 -0
- package/component/icon/README.md +25 -0
- package/component/input/README.md +160 -0
- package/component/input-group/README.md +245 -0
- package/component/input-otp/README.md +331 -0
- package/component/item/README.md +254 -0
- package/component/kanban/README.md +81 -0
- package/component/kbd/README.md +141 -0
- package/component/label/README.md +137 -0
- package/component/menubar/README.md +270 -0
- package/component/native-select/README.md +176 -0
- package/component/navigation-menu/README.md +165 -0
- package/component/pagination/README.md +151 -0
- package/component/pillbox/README.md +68 -0
- package/component/popover/README.md +54 -0
- package/component/progress/README.md +160 -0
- package/component/radio/README.md +212 -0
- package/component/resizable/README.md +178 -0
- package/component/scroll-area/README.md +150 -0
- package/component/select/README.md +228 -0
- package/component/separator/README.md +175 -0
- package/component/sheet/README.md +190 -0
- package/component/skeleton/README.md +158 -0
- package/component/slider/README.md +207 -0
- package/component/spinner/README.md +160 -0
- package/component/switch/README.md +170 -0
- package/component/table/README.md +292 -0
- package/component/tabs/README.md +220 -0
- package/component/textarea/README.md +169 -0
- package/component/timeline/README.md +94 -0
- package/component/toast/README.md +173 -0
- package/component/toggle/README.md +133 -0
- package/component/toggle-group/README.md +234 -0
- package/component/tooltip/README.md +230 -0
- package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
- package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
- package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
- package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
- package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
- package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
- package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
- package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
- package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
- package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
- package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
- package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
- package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
- package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
- package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
- package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
- package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
- package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
- package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
- package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
- package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
- package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
- package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
- package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
- package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
- package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
- package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
- package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
- package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
- package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
- package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
- package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
- package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
- package/fesm2022/ojiepermana-angular-component.mjs +4 -4
- package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
- package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
- package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
- package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
- package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
- package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
- package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
- package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
- package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
- package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
- package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
- package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
- package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
- package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
- package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
- package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
- package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
- package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
- package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
- package/fesm2022/ojiepermana-angular.mjs +6 -11
- package/navigation/README.md +374 -0
- package/package.json +81 -20
- package/sdk/README.md +212 -0
- package/sdk/schematics/collection.json +20 -0
- package/sdk/schematics/init/index.js +83 -0
- package/sdk/schematics/init/schema.json +19 -0
- package/sdk/schematics/ng-add/index.js +147 -0
- package/sdk/schematics/ng-add/schema.json +14 -0
- package/sdk/schematics/package.json +3 -0
- package/sdk/schematics/sdk/index.js +175 -0
- package/sdk/schematics/sdk/schema.json +19 -0
- package/sdk/sdk.config.example.json +24 -0
- package/sdk/src/config/loader.js +43 -0
- package/sdk/src/config/schema.js +59 -0
- package/sdk/src/emit/client.js +251 -0
- package/sdk/src/emit/metadata.js +310 -0
- package/sdk/src/emit/models.js +104 -0
- package/sdk/src/emit/navigation.js +56 -0
- package/sdk/src/emit/operations.js +118 -0
- package/sdk/src/emit/public-api.js +54 -0
- package/sdk/src/emit/services.js +110 -0
- package/sdk/src/engine.js +67 -0
- package/sdk/src/layout/per-domain.js +360 -0
- package/sdk/src/package.json +3 -0
- package/sdk/src/parser/bundle.js +25 -0
- package/sdk/src/parser/ir.js +429 -0
- package/sdk/src/parser/types.js +7 -0
- package/sdk/src/render/template.js +152 -0
- package/sdk/src/writer/index.js +286 -0
- package/theme/README.md +126 -0
- package/theme/component/settings/README.md +135 -0
- package/theme/layout/README.md +539 -0
- package/theme/page/README.md +453 -0
- package/theme/shell/README.md +340 -0
- package/theme/styles/README.md +178 -0
- package/theme/styles/css/base/components.css +553 -0
- package/theme/styles/css/base/index.css +14 -0
- package/theme/styles/css/base/package.css +9 -0
- package/theme/styles/css/base/prefers-dark.css +86 -0
- package/theme/styles/css/base/print.css +62 -0
- package/theme/styles/css/base/status.css +38 -0
- package/theme/styles/css/base/tailwind.css +165 -0
- package/theme/styles/css/base/theme.css +374 -0
- package/theme/styles/css/base/tokens.css +361 -0
- package/theme/styles/css/color/amber.css +72 -0
- package/theme/styles/css/color/blue.css +72 -0
- package/theme/styles/css/color/brand.css +38 -0
- package/theme/styles/css/color/cyan.css +72 -0
- package/theme/styles/css/color/emerald.css +72 -0
- package/theme/styles/css/color/fuchsia.css +72 -0
- package/theme/styles/css/color/green.css +72 -0
- package/theme/styles/css/color/index.css +19 -0
- package/theme/styles/css/color/indigo.css +72 -0
- package/theme/styles/css/color/lime.css +72 -0
- package/theme/styles/css/color/orange.css +72 -0
- package/theme/styles/css/color/pink.css +72 -0
- package/theme/styles/css/color/purple.css +72 -0
- package/theme/styles/css/color/red.css +72 -0
- package/theme/styles/css/color/rose.css +72 -0
- package/theme/styles/css/color/sky.css +72 -0
- package/theme/styles/css/color/teal.css +72 -0
- package/theme/styles/css/color/violet.css +72 -0
- package/theme/styles/css/color/yellow.css +72 -0
- package/theme/styles/css/index.css +18 -0
- package/theme/styles/css/neutral/gray.css +63 -0
- package/theme/styles/css/neutral/index.css +11 -0
- package/theme/styles/css/neutral/mauve.css +63 -0
- package/theme/styles/css/neutral/mist.css +63 -0
- package/theme/styles/css/neutral/neutral.css +63 -0
- package/theme/styles/css/neutral/olive.css +63 -0
- package/theme/styles/css/neutral/slate.css +63 -0
- package/theme/styles/css/neutral/stone.css +63 -0
- package/theme/styles/css/neutral/taupe.css +63 -0
- package/theme/styles/css/neutral/zinc.css +63 -0
- package/theme/styles/css/radius/index.css +30 -0
- package/theme/styles/css/space/index.css +20 -0
- package/types/ojiepermana-angular-chart-area.d.ts +76 -1
- package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
- package/types/ojiepermana-angular-chart-core.d.ts +811 -1
- package/types/ojiepermana-angular-chart-line.d.ts +75 -1
- package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
- package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
- package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
- package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
- package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
- package/types/ojiepermana-angular-chart.d.ts +2 -1
- package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
- package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
- package/types/ojiepermana-angular-component-alert.d.ts +42 -1
- package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
- package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
- package/types/ojiepermana-angular-component-badge.d.ts +24 -1
- package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
- package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
- package/types/ojiepermana-angular-component-button.d.ts +27 -1
- package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
- package/types/ojiepermana-angular-component-card.d.ts +69 -1
- package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
- package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
- package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
- package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
- package/types/ojiepermana-angular-component-command.d.ts +130 -1
- package/types/ojiepermana-angular-component-composer.d.ts +90 -1
- package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
- package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
- package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
- package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
- package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
- package/types/ojiepermana-angular-component-editor.d.ts +135 -1
- package/types/ojiepermana-angular-component-empty.d.ts +50 -1
- package/types/ojiepermana-angular-component-form.d.ts +159 -1
- package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
- package/types/ojiepermana-angular-component-icon.d.ts +89 -1
- package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
- package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
- package/types/ojiepermana-angular-component-input.d.ts +21 -1
- package/types/ojiepermana-angular-component-item.d.ts +93 -1
- package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
- package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
- package/types/ojiepermana-angular-component-label.d.ts +11 -1
- package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
- package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
- package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
- package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
- package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
- package/types/ojiepermana-angular-component-popover.d.ts +66 -1
- package/types/ojiepermana-angular-component-progress.d.ts +17 -1
- package/types/ojiepermana-angular-component-radio.d.ts +60 -1
- package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
- package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
- package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
- package/types/ojiepermana-angular-component-select.d.ts +122 -1
- package/types/ojiepermana-angular-component-separator.d.ts +14 -1
- package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
- package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
- package/types/ojiepermana-angular-component-slider.d.ts +83 -1
- package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
- package/types/ojiepermana-angular-component-switch.d.ts +44 -1
- package/types/ojiepermana-angular-component-table.d.ts +57 -1
- package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
- package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
- package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
- package/types/ojiepermana-angular-component-toast.d.ts +64 -1
- package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
- package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
- package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
- package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
- package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
- package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
- package/types/ojiepermana-angular-component-utils.d.ts +2 -1
- package/types/ojiepermana-angular-component.d.ts +2 -1
- package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
- package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
- package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
- package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
- package/types/ojiepermana-angular-navigation.d.ts +507 -1
- package/types/ojiepermana-angular-sdk.d.ts +89 -1
- package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
- package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
- package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
- package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
- package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
- package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
- package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
- package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
- package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
- package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
- package/types/ojiepermana-angular-theme-page.d.ts +5 -1
- package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
- package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
- package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
- package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
- package/types/ojiepermana-angular-theme.d.ts +2 -1
- package/types/ojiepermana-angular.d.ts +5 -5
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neutral theme: slate. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-neutral='slate'][data-mode='light'] {
|
|
6
|
+
--layout-canvas: 215 40% 95%;
|
|
7
|
+
--foreground: 215 16% 12%;
|
|
8
|
+
--surface: 215 16% 96%;
|
|
9
|
+
--surface-foreground: 215 16% 12%;
|
|
10
|
+
--card: 215 52% 99%;
|
|
11
|
+
--card-foreground: 215 16% 12%;
|
|
12
|
+
--popover: 215 52% 99%;
|
|
13
|
+
--popover-foreground: 215 16% 12%;
|
|
14
|
+
--muted: 215 16% 95%;
|
|
15
|
+
--muted-foreground: 215 16% 42%;
|
|
16
|
+
--border: 215 16% 88%;
|
|
17
|
+
--input: 215 16% 88%;
|
|
18
|
+
--layout-grid-line: 215 16% 82%;
|
|
19
|
+
--layout-grid-l: 82%;
|
|
20
|
+
--layout-pattern-hs: 215 35%;
|
|
21
|
+
--layout-pattern-node: 215 35% 32%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
html[theme-neutral='slate'][data-mode='dark'] {
|
|
25
|
+
--layout-canvas: 215 16% 15%;
|
|
26
|
+
--foreground: 215 8% 96%;
|
|
27
|
+
--surface: 215 16% 11%;
|
|
28
|
+
--surface-foreground: 215 8% 96%;
|
|
29
|
+
--card: 215 16% 8%;
|
|
30
|
+
--card-foreground: 215 8% 96%;
|
|
31
|
+
--popover: 215 16% 8%;
|
|
32
|
+
--popover-foreground: 215 8% 96%;
|
|
33
|
+
--muted: 215 16% 15%;
|
|
34
|
+
--muted-foreground: 215 11% 64%;
|
|
35
|
+
--border: 215 16% 17%;
|
|
36
|
+
--input: 215 16% 17%;
|
|
37
|
+
--layout-grid-line: 215 16% 22%;
|
|
38
|
+
--layout-grid-l: 22%;
|
|
39
|
+
--layout-pattern-hs: 215 30%;
|
|
40
|
+
--layout-pattern-node: 215 30% 78%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-color-scheme: dark) {
|
|
44
|
+
html[theme-neutral='slate']:not([data-mode='light']) {
|
|
45
|
+
--layout-canvas: 215 16% 15%;
|
|
46
|
+
--foreground: 215 8% 96%;
|
|
47
|
+
--surface: 215 16% 11%;
|
|
48
|
+
--surface-foreground: 215 8% 96%;
|
|
49
|
+
--card: 215 16% 8%;
|
|
50
|
+
--card-foreground: 215 8% 96%;
|
|
51
|
+
--popover: 215 16% 8%;
|
|
52
|
+
--popover-foreground: 215 8% 96%;
|
|
53
|
+
--muted: 215 16% 15%;
|
|
54
|
+
--muted-foreground: 215 11% 64%;
|
|
55
|
+
--border: 215 16% 17%;
|
|
56
|
+
--input: 215 16% 17%;
|
|
57
|
+
--layout-grid-line: 215 16% 22%;
|
|
58
|
+
--layout-grid-l: 22%;
|
|
59
|
+
--layout-pattern-hs: 215 30%;
|
|
60
|
+
--layout-pattern-node: 215 30% 78%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neutral theme: stone. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-neutral='stone'][data-mode='light'] {
|
|
6
|
+
--layout-canvas: 30 15% 95%;
|
|
7
|
+
--foreground: 30 6% 12%;
|
|
8
|
+
--surface: 30 6% 96%;
|
|
9
|
+
--surface-foreground: 30 6% 12%;
|
|
10
|
+
--card: 30 27% 99%;
|
|
11
|
+
--card-foreground: 30 6% 12%;
|
|
12
|
+
--popover: 30 27% 99%;
|
|
13
|
+
--popover-foreground: 30 6% 12%;
|
|
14
|
+
--muted: 30 6% 95%;
|
|
15
|
+
--muted-foreground: 30 6% 42%;
|
|
16
|
+
--border: 30 6% 88%;
|
|
17
|
+
--input: 30 6% 88%;
|
|
18
|
+
--layout-grid-line: 30 6% 82%;
|
|
19
|
+
--layout-grid-l: 82%;
|
|
20
|
+
--layout-pattern-hs: 30 15%;
|
|
21
|
+
--layout-pattern-node: 30 15% 32%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
html[theme-neutral='stone'][data-mode='dark'] {
|
|
25
|
+
--layout-canvas: 30 6% 15%;
|
|
26
|
+
--foreground: 30 3% 96%;
|
|
27
|
+
--surface: 30 6% 11%;
|
|
28
|
+
--surface-foreground: 30 3% 96%;
|
|
29
|
+
--card: 30 6% 8%;
|
|
30
|
+
--card-foreground: 30 3% 96%;
|
|
31
|
+
--popover: 30 6% 8%;
|
|
32
|
+
--popover-foreground: 30 3% 96%;
|
|
33
|
+
--muted: 30 6% 15%;
|
|
34
|
+
--muted-foreground: 30 4% 64%;
|
|
35
|
+
--border: 30 6% 17%;
|
|
36
|
+
--input: 30 6% 17%;
|
|
37
|
+
--layout-grid-line: 30 6% 22%;
|
|
38
|
+
--layout-grid-l: 22%;
|
|
39
|
+
--layout-pattern-hs: 30 12%;
|
|
40
|
+
--layout-pattern-node: 30 12% 78%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-color-scheme: dark) {
|
|
44
|
+
html[theme-neutral='stone']:not([data-mode='light']) {
|
|
45
|
+
--layout-canvas: 30 6% 15%;
|
|
46
|
+
--foreground: 30 3% 96%;
|
|
47
|
+
--surface: 30 6% 11%;
|
|
48
|
+
--surface-foreground: 30 3% 96%;
|
|
49
|
+
--card: 30 6% 8%;
|
|
50
|
+
--card-foreground: 30 3% 96%;
|
|
51
|
+
--popover: 30 6% 8%;
|
|
52
|
+
--popover-foreground: 30 3% 96%;
|
|
53
|
+
--muted: 30 6% 15%;
|
|
54
|
+
--muted-foreground: 30 4% 64%;
|
|
55
|
+
--border: 30 6% 17%;
|
|
56
|
+
--input: 30 6% 17%;
|
|
57
|
+
--layout-grid-line: 30 6% 22%;
|
|
58
|
+
--layout-grid-l: 22%;
|
|
59
|
+
--layout-pattern-hs: 30 12%;
|
|
60
|
+
--layout-pattern-node: 30 12% 78%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neutral theme: taupe. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-neutral='taupe'][data-mode='light'] {
|
|
6
|
+
--layout-canvas: 28 25% 95%;
|
|
7
|
+
--foreground: 28 10% 12%;
|
|
8
|
+
--surface: 28 10% 96%;
|
|
9
|
+
--surface-foreground: 28 10% 12%;
|
|
10
|
+
--card: 28 37% 99%;
|
|
11
|
+
--card-foreground: 28 10% 12%;
|
|
12
|
+
--popover: 28 37% 99%;
|
|
13
|
+
--popover-foreground: 28 10% 12%;
|
|
14
|
+
--muted: 28 10% 95%;
|
|
15
|
+
--muted-foreground: 28 10% 42%;
|
|
16
|
+
--border: 28 10% 88%;
|
|
17
|
+
--input: 28 10% 88%;
|
|
18
|
+
--layout-grid-line: 28 10% 82%;
|
|
19
|
+
--layout-grid-l: 82%;
|
|
20
|
+
--layout-pattern-hs: 28 25%;
|
|
21
|
+
--layout-pattern-node: 28 25% 32%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
html[theme-neutral='taupe'][data-mode='dark'] {
|
|
25
|
+
--layout-canvas: 28 10% 15%;
|
|
26
|
+
--foreground: 28 5% 96%;
|
|
27
|
+
--surface: 28 10% 11%;
|
|
28
|
+
--surface-foreground: 28 5% 96%;
|
|
29
|
+
--card: 28 10% 8%;
|
|
30
|
+
--card-foreground: 28 5% 96%;
|
|
31
|
+
--popover: 28 10% 8%;
|
|
32
|
+
--popover-foreground: 28 5% 96%;
|
|
33
|
+
--muted: 28 10% 15%;
|
|
34
|
+
--muted-foreground: 28 7% 64%;
|
|
35
|
+
--border: 28 10% 17%;
|
|
36
|
+
--input: 28 10% 17%;
|
|
37
|
+
--layout-grid-line: 28 10% 22%;
|
|
38
|
+
--layout-grid-l: 22%;
|
|
39
|
+
--layout-pattern-hs: 28 20%;
|
|
40
|
+
--layout-pattern-node: 28 20% 78%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-color-scheme: dark) {
|
|
44
|
+
html[theme-neutral='taupe']:not([data-mode='light']) {
|
|
45
|
+
--layout-canvas: 28 10% 15%;
|
|
46
|
+
--foreground: 28 5% 96%;
|
|
47
|
+
--surface: 28 10% 11%;
|
|
48
|
+
--surface-foreground: 28 5% 96%;
|
|
49
|
+
--card: 28 10% 8%;
|
|
50
|
+
--card-foreground: 28 5% 96%;
|
|
51
|
+
--popover: 28 10% 8%;
|
|
52
|
+
--popover-foreground: 28 5% 96%;
|
|
53
|
+
--muted: 28 10% 15%;
|
|
54
|
+
--muted-foreground: 28 7% 64%;
|
|
55
|
+
--border: 28 10% 17%;
|
|
56
|
+
--input: 28 10% 17%;
|
|
57
|
+
--layout-grid-line: 28 10% 22%;
|
|
58
|
+
--layout-grid-l: 22%;
|
|
59
|
+
--layout-pattern-hs: 28 20%;
|
|
60
|
+
--layout-pattern-node: 28 20% 78%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neutral theme: zinc. Generated by scripts/gen-theme-colors.mjs — do not edit.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
html[theme-neutral='zinc'][data-mode='light'] {
|
|
6
|
+
--layout-canvas: 240 13% 95%;
|
|
7
|
+
--foreground: 240 5% 12%;
|
|
8
|
+
--surface: 240 5% 96%;
|
|
9
|
+
--surface-foreground: 240 5% 12%;
|
|
10
|
+
--card: 240 25% 99%;
|
|
11
|
+
--card-foreground: 240 5% 12%;
|
|
12
|
+
--popover: 240 25% 99%;
|
|
13
|
+
--popover-foreground: 240 5% 12%;
|
|
14
|
+
--muted: 240 5% 95%;
|
|
15
|
+
--muted-foreground: 240 5% 42%;
|
|
16
|
+
--border: 240 5% 88%;
|
|
17
|
+
--input: 240 5% 88%;
|
|
18
|
+
--layout-grid-line: 240 5% 82%;
|
|
19
|
+
--layout-grid-l: 82%;
|
|
20
|
+
--layout-pattern-hs: 240 13%;
|
|
21
|
+
--layout-pattern-node: 240 13% 32%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
html[theme-neutral='zinc'][data-mode='dark'] {
|
|
25
|
+
--layout-canvas: 240 5% 15%;
|
|
26
|
+
--foreground: 240 3% 96%;
|
|
27
|
+
--surface: 240 5% 11%;
|
|
28
|
+
--surface-foreground: 240 3% 96%;
|
|
29
|
+
--card: 240 5% 8%;
|
|
30
|
+
--card-foreground: 240 3% 96%;
|
|
31
|
+
--popover: 240 5% 8%;
|
|
32
|
+
--popover-foreground: 240 3% 96%;
|
|
33
|
+
--muted: 240 5% 15%;
|
|
34
|
+
--muted-foreground: 240 4% 64%;
|
|
35
|
+
--border: 240 5% 17%;
|
|
36
|
+
--input: 240 5% 17%;
|
|
37
|
+
--layout-grid-line: 240 5% 22%;
|
|
38
|
+
--layout-grid-l: 22%;
|
|
39
|
+
--layout-pattern-hs: 240 10%;
|
|
40
|
+
--layout-pattern-node: 240 10% 78%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-color-scheme: dark) {
|
|
44
|
+
html[theme-neutral='zinc']:not([data-mode='light']) {
|
|
45
|
+
--layout-canvas: 240 5% 15%;
|
|
46
|
+
--foreground: 240 3% 96%;
|
|
47
|
+
--surface: 240 5% 11%;
|
|
48
|
+
--surface-foreground: 240 3% 96%;
|
|
49
|
+
--card: 240 5% 8%;
|
|
50
|
+
--card-foreground: 240 3% 96%;
|
|
51
|
+
--popover: 240 5% 8%;
|
|
52
|
+
--popover-foreground: 240 3% 96%;
|
|
53
|
+
--muted: 240 5% 15%;
|
|
54
|
+
--muted-foreground: 240 4% 64%;
|
|
55
|
+
--border: 240 5% 17%;
|
|
56
|
+
--input: 240 5% 17%;
|
|
57
|
+
--layout-grid-line: 240 5% 22%;
|
|
58
|
+
--layout-grid-l: 22%;
|
|
59
|
+
--layout-pattern-hs: 240 10%;
|
|
60
|
+
--layout-pattern-node: 240 10% 78%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Corner radius axis (theme-radius). Each preset sets the single --radius-base
|
|
3
|
+
* knob; the whole --radius-* scale + every rounded-* utility follows via the
|
|
4
|
+
* calc() chain (base/tailwind.css @theme inline). Runtime-switched by
|
|
5
|
+
* ThemeRadiusService via <html theme-radius>. Every value is Tailwind's stock
|
|
6
|
+
* radius for that name (rounded-none/xs/sm/md/xl/full); 'md' is the default.
|
|
7
|
+
*
|
|
8
|
+
* Wrapped in @layer tokens to match base/tokens.css and the color/neutral
|
|
9
|
+
* presets; html[theme-radius='x'] (0,1,1) beats the :root default (0,1,0).
|
|
10
|
+
*/
|
|
11
|
+
@layer tokens {
|
|
12
|
+
html[theme-radius='none'] {
|
|
13
|
+
--radius-base: 0px;
|
|
14
|
+
}
|
|
15
|
+
html[theme-radius='xs'] {
|
|
16
|
+
--radius-base: 0.125rem;
|
|
17
|
+
}
|
|
18
|
+
html[theme-radius='sm'] {
|
|
19
|
+
--radius-base: 0.25rem;
|
|
20
|
+
}
|
|
21
|
+
html[theme-radius='md'] {
|
|
22
|
+
--radius-base: 0.375rem;
|
|
23
|
+
}
|
|
24
|
+
html[theme-radius='xl'] {
|
|
25
|
+
--radius-base: 0.75rem;
|
|
26
|
+
}
|
|
27
|
+
html[theme-radius='full'] {
|
|
28
|
+
--radius-base: calc(infinity * 1px);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Spacing density axis (theme-space). Each preset sets the single --spacing-base
|
|
3
|
+
* knob; Tailwind derives --spacing from it (base/tailwind.css @theme inline), so
|
|
4
|
+
* every padding, margin, gap, width and height utility (and the --spacing-N
|
|
5
|
+
* scale) rescales at runtime. Switched by ThemeSpaceService via <html theme-space>.
|
|
6
|
+
* normal = the 0.25rem default (the Tailwind unit), so it is a no-op baseline.
|
|
7
|
+
*
|
|
8
|
+
* Wrapped in @layer tokens to match the radius/color/neutral presets;
|
|
9
|
+
* html[theme-space='x'] (0,1,1) beats the :root default (0,1,0).
|
|
10
|
+
*/
|
|
11
|
+
@layer tokens {
|
|
12
|
+
/* Two presets only: compact (~14% tighter step) and normal, the 0.25rem
|
|
13
|
+
* Tailwind default (no-op baseline). */
|
|
14
|
+
html[theme-space='compact'] {
|
|
15
|
+
--spacing-base: 0.215rem;
|
|
16
|
+
}
|
|
17
|
+
html[theme-space='normal'] {
|
|
18
|
+
--spacing-base: 0.25rem;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
2
|
+
import { ChartOrientation, LineCurve, ChartMargin, ChartPointClickEvent, LinePoint, LineSeriesPath } from '@ojiepermana/angular/chart/core';
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Use `ChartPointClickEvent` from
|
|
7
|
+
* `@ojiepermana/angular/chart/core`. Kept so existing handlers keep compiling;
|
|
8
|
+
* the shape is identical.
|
|
9
|
+
*/
|
|
10
|
+
type AreaPointClickEvent = ChartPointClickEvent;
|
|
11
|
+
/**
|
|
12
|
+
* Area chart — composable within `<Chart>`.
|
|
13
|
+
*
|
|
14
|
+
* - `stacked=true` stacks series along the value axis.
|
|
15
|
+
* - `gradient=true` fills each area with a vertical linear-gradient from
|
|
16
|
+
* the series color (top) to transparent (bottom). The gradient is
|
|
17
|
+
* emitted as `<defs><linearGradient>` per series, unique per chart id.
|
|
18
|
+
*/
|
|
19
|
+
declare class AreaChart {
|
|
20
|
+
private readonly root;
|
|
21
|
+
private readonly cart;
|
|
22
|
+
private readonly viewport;
|
|
23
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
|
|
24
|
+
readonly xKey: _angular_core.InputSignal<string>;
|
|
25
|
+
readonly orientation: _angular_core.InputSignal<ChartOrientation>;
|
|
26
|
+
/**
|
|
27
|
+
* Presentational style of the chart.
|
|
28
|
+
*
|
|
29
|
+
* Replaces `styles`, which read like a CSS styles bag rather than a single
|
|
30
|
+
* variant. Named `styleVariant` and not `variant` because `ChartBar` already
|
|
31
|
+
* publishes a `variant` input for its grouped versus stacked axis, and one
|
|
32
|
+
* name cannot mean two things across the family.
|
|
33
|
+
*/
|
|
34
|
+
readonly styleVariant: _angular_core.InputSignal<"base" | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use `styleVariant`. Still fully supported; when both are bound,
|
|
37
|
+
* `styleVariant` wins. Due for removal in the next major.
|
|
38
|
+
*/
|
|
39
|
+
readonly styles: _angular_core.InputSignal<"base">;
|
|
40
|
+
/** The style actually in effect. Bind this, never `styles()`. */
|
|
41
|
+
protected readonly chartStyle: _angular_core.Signal<"base">;
|
|
42
|
+
readonly stacked: _angular_core.InputSignal<boolean>;
|
|
43
|
+
readonly expanded: _angular_core.InputSignal<boolean>;
|
|
44
|
+
readonly gradient: _angular_core.InputSignal<boolean>;
|
|
45
|
+
readonly curve: _angular_core.InputSignal<LineCurve>;
|
|
46
|
+
private readonly themeSpace;
|
|
47
|
+
/**
|
|
48
|
+
* Plot gutters. Leave it unset and they follow the theme-space density
|
|
49
|
+
* axis; set it and your numbers win, unchanged, whatever the axis says.
|
|
50
|
+
*/
|
|
51
|
+
readonly margin: _angular_core.InputSignal<ChartMargin | null>;
|
|
52
|
+
/** The margin actually in effect. Bind this, never `margin()`. */
|
|
53
|
+
protected readonly plotMargin: _angular_core.Signal<ChartMargin>;
|
|
54
|
+
readonly strokeWidth: _angular_core.InputSignal<number>;
|
|
55
|
+
readonly showDots: _angular_core.InputSignal<boolean>;
|
|
56
|
+
readonly dotRadius: _angular_core.InputSignal<number>;
|
|
57
|
+
readonly pointClick: _angular_core.OutputEmitterRef<AreaPointClickEvent>;
|
|
58
|
+
/**
|
|
59
|
+
* The shared cartesian scaffolding: geometry, the index window, the layout
|
|
60
|
+
* effect, and the click plus active-point plus aria-label handlers.
|
|
61
|
+
*
|
|
62
|
+
* Declared before `layout` because the layout computed reads its geometry.
|
|
63
|
+
*/
|
|
64
|
+
protected readonly cx: _ojiepermana_angular_chart_core.CartesianChartSetup<LinePoint>;
|
|
65
|
+
protected readonly layout: _angular_core.Signal<_ojiepermana_angular_chart_core.AreaLayoutResult>;
|
|
66
|
+
protected readonly series: _angular_core.Signal<readonly LineSeriesPath[]>;
|
|
67
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
68
|
+
protected readonly dataColumns: _angular_core.Signal<string[]>;
|
|
69
|
+
protected gradientId(seriesKey: string): string;
|
|
70
|
+
protected areaFill(seriesKey: string, color: string): string;
|
|
71
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AreaChart, never>;
|
|
72
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChart, "ChartArea", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "xKey": { "alias": "xKey"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "styles": { "alias": "styles"; "required": false; "isSignal": true; }; "stacked": { "alias": "stacked"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "gradient": { "alias": "gradient"; "required": false; "isSignal": true; }; "curve": { "alias": "curve"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "dotRadius": { "alias": "dotRadius"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; }, never, ["svg:g[ChartBrush]", "svg\\:g[ChartGrid]", "svg\\:g[ChartAxisX]", "svg\\:g[ChartAxisY]", "svg\\:g[ChartCrosshair]", "ChartTooltip", "ChartLegend", "ChartZoomControls"], true, never>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { AreaChart };
|
|
76
|
+
export type { AreaPointClickEvent };
|
|
@@ -1 +1,201 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ojiepermana_angular_chart_bar from '@ojiepermana/angular/chart/bar';
|
|
2
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
3
|
+
import { ChartDatum, ChartOrientation, ChartStyleVariant, ChartMargin, ChartPointClickEvent } from '@ojiepermana/angular/chart/core';
|
|
4
|
+
import * as _angular_core from '@angular/core';
|
|
5
|
+
import { scaleBand, scaleLinear } from 'd3-scale';
|
|
6
|
+
|
|
7
|
+
/** Bar-chart layout variant. */
|
|
8
|
+
type BarVariant = 'grouped' | 'stacked';
|
|
9
|
+
/** A single bar rectangle ready to render. */
|
|
10
|
+
interface BarRect {
|
|
11
|
+
readonly key: string;
|
|
12
|
+
readonly seriesKey: string;
|
|
13
|
+
readonly datumIndex: number;
|
|
14
|
+
readonly category: string;
|
|
15
|
+
readonly value: number;
|
|
16
|
+
readonly x: number;
|
|
17
|
+
readonly y: number;
|
|
18
|
+
readonly width: number;
|
|
19
|
+
readonly height: number;
|
|
20
|
+
readonly color: string;
|
|
21
|
+
readonly active: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Inputs required to compute bar-chart geometry. */
|
|
24
|
+
interface BarLayoutInput {
|
|
25
|
+
readonly data: readonly ChartDatum[];
|
|
26
|
+
readonly xKey: string;
|
|
27
|
+
readonly seriesKeys: readonly string[];
|
|
28
|
+
readonly variant: BarVariant;
|
|
29
|
+
readonly orientation: ChartOrientation;
|
|
30
|
+
readonly innerWidth: number;
|
|
31
|
+
readonly innerHeight: number;
|
|
32
|
+
readonly bandPadding: number;
|
|
33
|
+
readonly groupPadding: number;
|
|
34
|
+
readonly colorKey?: string;
|
|
35
|
+
readonly activeKey?: string;
|
|
36
|
+
readonly activeValue?: string | number;
|
|
37
|
+
}
|
|
38
|
+
/** Computed layout: bars + scales. */
|
|
39
|
+
interface BarLayoutResult {
|
|
40
|
+
readonly bars: readonly BarRect[];
|
|
41
|
+
readonly categoryScale: ReturnType<typeof scaleBand<string>>;
|
|
42
|
+
readonly valueScale: ReturnType<typeof scaleLinear<number, number>>;
|
|
43
|
+
readonly categories: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
/** Build all bar rectangles for the given config. */
|
|
46
|
+
declare function computeBarLayout(input: BarLayoutInput): BarLayoutResult;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Styles supported by the bar family.
|
|
50
|
+
*
|
|
51
|
+
* - `base` — classic solid rectangles.
|
|
52
|
+
* - `dot` — dot-matrix rendering: each bar becomes a stack of small rounded
|
|
53
|
+
* cells, on top of a faint full-height cell track. Colors only reference
|
|
54
|
+
* theme CSS variables (`--color-<key>` per series, `--muted` for the track),
|
|
55
|
+
* so the style follows the active theme without touching the theme library.
|
|
56
|
+
*/
|
|
57
|
+
type BarChartStyle = ChartStyleVariant | 'dot';
|
|
58
|
+
/** A faint background cell of the dot-matrix track. */
|
|
59
|
+
interface BarDotTrackCell {
|
|
60
|
+
readonly key: string;
|
|
61
|
+
readonly x: number;
|
|
62
|
+
readonly y: number;
|
|
63
|
+
readonly width: number;
|
|
64
|
+
readonly height: number;
|
|
65
|
+
}
|
|
66
|
+
/** A filled (value) cell of the dot-matrix style. */
|
|
67
|
+
interface BarDotValueCell extends BarDotTrackCell {
|
|
68
|
+
readonly seriesKey: string;
|
|
69
|
+
readonly datumIndex: number;
|
|
70
|
+
readonly color: string;
|
|
71
|
+
readonly active: boolean;
|
|
72
|
+
}
|
|
73
|
+
/** Inputs required to compute the dot-matrix cell layout. */
|
|
74
|
+
interface BarDotLayoutInput {
|
|
75
|
+
readonly bars: readonly BarRect[];
|
|
76
|
+
readonly orientation: ChartOrientation;
|
|
77
|
+
readonly innerWidth: number;
|
|
78
|
+
readonly innerHeight: number;
|
|
79
|
+
/** Pixel position of value 0 on the value axis (`valueScale(0)`). */
|
|
80
|
+
readonly baseline: number;
|
|
81
|
+
/** Cell length along the value axis. Defaults to the bar thickness (square cells). */
|
|
82
|
+
readonly dotSize?: number;
|
|
83
|
+
/** Gap between consecutive cells along the value axis. */
|
|
84
|
+
readonly dotGap: number;
|
|
85
|
+
}
|
|
86
|
+
/** Computed dot-matrix layout: faint track cells + filled value cells. */
|
|
87
|
+
interface BarDotLayoutResult {
|
|
88
|
+
readonly track: readonly BarDotTrackCell[];
|
|
89
|
+
readonly values: readonly BarDotValueCell[];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build the dot-matrix cells for the `dot` bar style.
|
|
93
|
+
*
|
|
94
|
+
* Cells tile a global grid anchored at the value baseline, so stacked
|
|
95
|
+
* segments snap to the same rows and never overlap. A bar fills every cell
|
|
96
|
+
* whose center lies inside its value range; bars too short to cover a center
|
|
97
|
+
* still claim the cell nearest their midpoint when it is free.
|
|
98
|
+
*/
|
|
99
|
+
declare function computeBarDotCells(input: BarDotLayoutInput): BarDotLayoutResult;
|
|
100
|
+
|
|
101
|
+
/** Event emitted when a user clicks a bar. */
|
|
102
|
+
/**
|
|
103
|
+
* @deprecated Use `ChartPointClickEvent` from
|
|
104
|
+
* `@ojiepermana/angular/chart/core`. Kept so existing handlers keep compiling;
|
|
105
|
+
* the shape is identical.
|
|
106
|
+
*/
|
|
107
|
+
type BarClickEvent = ChartPointClickEvent;
|
|
108
|
+
/**
|
|
109
|
+
* Bar chart — composable within `<Chart>`.
|
|
110
|
+
*
|
|
111
|
+
* Layout variants (via inputs):
|
|
112
|
+
* - `orientation`: `'vertical'` (default) or `'horizontal'`
|
|
113
|
+
* - `variant`: `'grouped'` (default) or `'stacked'`
|
|
114
|
+
* - `styles`: `'base'` (default) or `'dot'` (dot-matrix cells)
|
|
115
|
+
*/
|
|
116
|
+
declare class BarChart {
|
|
117
|
+
private readonly root;
|
|
118
|
+
private readonly cart;
|
|
119
|
+
private readonly themeRadius;
|
|
120
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
|
|
121
|
+
readonly xKey: _angular_core.InputSignal<string>;
|
|
122
|
+
readonly orientation: _angular_core.InputSignal<ChartOrientation>;
|
|
123
|
+
readonly variant: _angular_core.InputSignal<BarVariant>;
|
|
124
|
+
/**
|
|
125
|
+
* Presentational style of the chart.
|
|
126
|
+
*
|
|
127
|
+
* Replaces `styles`, which read like a CSS styles bag rather than a single
|
|
128
|
+
* variant. Named `styleVariant` and not `variant` because `ChartBar` already
|
|
129
|
+
* publishes a `variant` input for its grouped versus stacked axis, and one
|
|
130
|
+
* name cannot mean two things across the family.
|
|
131
|
+
*/
|
|
132
|
+
readonly styleVariant: _angular_core.InputSignal<BarChartStyle | undefined>;
|
|
133
|
+
/**
|
|
134
|
+
* @deprecated Use `styleVariant`. Still fully supported; when both are bound,
|
|
135
|
+
* `styleVariant` wins. Due for removal in the next major.
|
|
136
|
+
*/
|
|
137
|
+
readonly styles: _angular_core.InputSignal<BarChartStyle>;
|
|
138
|
+
/** The style actually in effect. Bind this, never `styles()`. */
|
|
139
|
+
protected readonly chartStyle: _angular_core.Signal<BarChartStyle>;
|
|
140
|
+
private readonly themeSpace;
|
|
141
|
+
/**
|
|
142
|
+
* Plot gutters. Leave it unset and they follow the theme-space density
|
|
143
|
+
* axis; set it and your numbers win, unchanged, whatever the axis says.
|
|
144
|
+
*/
|
|
145
|
+
readonly margin: _angular_core.InputSignal<ChartMargin | null>;
|
|
146
|
+
/** The margin actually in effect. Bind this, never `margin()`. */
|
|
147
|
+
protected readonly plotMargin: _angular_core.Signal<ChartMargin>;
|
|
148
|
+
readonly bandPadding: _angular_core.InputSignal<number>;
|
|
149
|
+
readonly groupPadding: _angular_core.InputSignal<number>;
|
|
150
|
+
readonly cornerRadius: _angular_core.InputSignal<number | null>;
|
|
151
|
+
readonly colorKey: _angular_core.InputSignal<string | undefined>;
|
|
152
|
+
readonly activeKey: _angular_core.InputSignal<string | undefined>;
|
|
153
|
+
readonly activeValue: _angular_core.InputSignal<string | number | undefined>;
|
|
154
|
+
readonly showValueLabels: _angular_core.InputSignal<boolean>;
|
|
155
|
+
readonly valueLabelFormat: _angular_core.InputSignal<(value: number) => string>;
|
|
156
|
+
/** Cell length along the value axis for the `dot` style; defaults to the bar thickness. */
|
|
157
|
+
readonly dotSize: _angular_core.InputSignal<number | undefined>;
|
|
158
|
+
/** Gap between consecutive cells along the value axis for the `dot` style. */
|
|
159
|
+
readonly dotGap: _angular_core.InputSignal<number>;
|
|
160
|
+
/** Corner radius of each `dot` cell. */
|
|
161
|
+
readonly dotCornerRadius: _angular_core.InputSignal<number | null>;
|
|
162
|
+
/** Render the faint full-height cell track behind the `dot` values. */
|
|
163
|
+
readonly showDotTrack: _angular_core.InputSignal<boolean>;
|
|
164
|
+
readonly barClick: _angular_core.OutputEmitterRef<BarClickEvent>;
|
|
165
|
+
/**
|
|
166
|
+
* The shared cartesian scaffolding: geometry, the layout effect, and the click
|
|
167
|
+
* plus active-point plus aria-label handlers. No `viewport` here, so the bar
|
|
168
|
+
* chart always renders its whole dataset and `resolveDatumIndex` is the
|
|
169
|
+
* identity.
|
|
170
|
+
*
|
|
171
|
+
* Declared before `layout` because the layout computed reads its geometry.
|
|
172
|
+
*/
|
|
173
|
+
protected readonly cx: _ojiepermana_angular_chart_core.CartesianChartSetup<BarRect>;
|
|
174
|
+
/** Bar corner radius; an unset input follows the live theme-radius axis. */
|
|
175
|
+
protected readonly resolvedCornerRadius: _angular_core.Signal<number>;
|
|
176
|
+
/** Dot-cell corner radius; an unset input follows the theme-radius axis (smaller, SVG clamps to half the cell). */
|
|
177
|
+
protected readonly resolvedDotCornerRadius: _angular_core.Signal<number>;
|
|
178
|
+
protected readonly layout: _angular_core.Signal<_ojiepermana_angular_chart_bar.BarLayoutResult>;
|
|
179
|
+
protected readonly bars: _angular_core.Signal<readonly BarRect[]>;
|
|
180
|
+
protected readonly dotLayout: _angular_core.Signal<BarDotLayoutResult | null>;
|
|
181
|
+
protected readonly dotTrackCells: _angular_core.Signal<readonly _ojiepermana_angular_chart_bar.BarDotTrackCell[]>;
|
|
182
|
+
protected readonly dotValueCells: _angular_core.Signal<readonly BarDotValueCell[]>;
|
|
183
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
184
|
+
protected readonly visibleSeriesKeys: _angular_core.Signal<readonly string[]>;
|
|
185
|
+
protected readonly dataColumns: _angular_core.Signal<string[]>;
|
|
186
|
+
protected barOpacity(bar: BarRect): number;
|
|
187
|
+
protected dotCellOpacity(cell: BarDotValueCell): number;
|
|
188
|
+
/** In `dot` style the bar rect stays as an invisible interaction target. */
|
|
189
|
+
protected barFill(bar: BarRect): string;
|
|
190
|
+
private emphasisOpacity;
|
|
191
|
+
protected formatValueLabel(bar: BarRect): string;
|
|
192
|
+
protected barLabelX(bar: BarRect): number;
|
|
193
|
+
protected barLabelY(bar: BarRect): number;
|
|
194
|
+
protected barLabelAnchor(bar: BarRect): 'middle' | 'start' | 'end';
|
|
195
|
+
protected onKeydown(event: KeyboardEvent, index: number): void;
|
|
196
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChart, never>;
|
|
197
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChart, "ChartBar", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "xKey": { "alias": "xKey"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "styles": { "alias": "styles"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "bandPadding": { "alias": "bandPadding"; "required": false; "isSignal": true; }; "groupPadding": { "alias": "groupPadding"; "required": false; "isSignal": true; }; "cornerRadius": { "alias": "cornerRadius"; "required": false; "isSignal": true; }; "colorKey": { "alias": "colorKey"; "required": false; "isSignal": true; }; "activeKey": { "alias": "activeKey"; "required": false; "isSignal": true; }; "activeValue": { "alias": "activeValue"; "required": false; "isSignal": true; }; "showValueLabels": { "alias": "showValueLabels"; "required": false; "isSignal": true; }; "valueLabelFormat": { "alias": "valueLabelFormat"; "required": false; "isSignal": true; }; "dotSize": { "alias": "dotSize"; "required": false; "isSignal": true; }; "dotGap": { "alias": "dotGap"; "required": false; "isSignal": true; }; "dotCornerRadius": { "alias": "dotCornerRadius"; "required": false; "isSignal": true; }; "showDotTrack": { "alias": "showDotTrack"; "required": false; "isSignal": true; }; }, { "barClick": "barClick"; }, never, ["svg\\:g[ChartGrid]", "svg\\:g[ChartAxisX]", "svg\\:g[ChartAxisY]", "svg\\:g[ChartCrosshair]", "*", "ChartTooltip", "ChartLegend"], true, never>;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export { BarChart, computeBarDotCells, computeBarLayout };
|
|
201
|
+
export type { BarChartStyle, BarClickEvent, BarDotLayoutInput, BarDotLayoutResult, BarDotTrackCell, BarDotValueCell, BarLayoutInput, BarLayoutResult, BarRect, BarVariant };
|