@lifecorner/angular-ui-kit 3.4.1 → 3.5.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/README.md +12 -2
- package/fesm2022/lifecorner-angular-ui-kit-accordion.mjs +454 -0
- package/fesm2022/lifecorner-angular-ui-kit-accordion.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-alert.mjs +297 -0
- package/fesm2022/lifecorner-angular-ui-kit-alert.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs +190 -0
- package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-area-chart.mjs +446 -0
- package/fesm2022/lifecorner-angular-ui-kit-area-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-avatar-group.mjs +158 -0
- package/fesm2022/lifecorner-angular-ui-kit-avatar-group.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-avatar.mjs +216 -0
- package/fesm2022/lifecorner-angular-ui-kit-avatar.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-badge.mjs +121 -0
- package/fesm2022/lifecorner-angular-ui-kit-badge.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-bar-chart.mjs +360 -0
- package/fesm2022/lifecorner-angular-ui-kit-bar-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-bottom-nav.mjs +344 -0
- package/fesm2022/lifecorner-angular-ui-kit-bottom-nav.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-breadcrumbs.mjs +191 -0
- package/fesm2022/lifecorner-angular-ui-kit-breadcrumbs.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-button.mjs +423 -0
- package/fesm2022/lifecorner-angular-ui-kit-button.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-calendar.mjs +368 -0
- package/fesm2022/lifecorner-angular-ui-kit-calendar.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-callout.mjs +203 -0
- package/fesm2022/lifecorner-angular-ui-kit-callout.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-card.mjs +323 -0
- package/fesm2022/lifecorner-angular-ui-kit-card.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-chat.mjs +790 -0
- package/fesm2022/lifecorner-angular-ui-kit-chat.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-checkbox.mjs +325 -0
- package/fesm2022/lifecorner-angular-ui-kit-checkbox.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-chip.mjs +214 -0
- package/fesm2022/lifecorner-angular-ui-kit-chip.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs +375 -0
- package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-code-block.mjs +518 -0
- package/fesm2022/lifecorner-angular-ui-kit-code-block.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs +278 -0
- package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-combobox.mjs +688 -0
- package/fesm2022/lifecorner-angular-ui-kit-combobox.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs +494 -0
- package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-container.mjs +103 -0
- package/fesm2022/lifecorner-angular-ui-kit-container.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs +308 -0
- package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs +466 -0
- package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs +810 -0
- package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs +1761 -0
- package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs +165 -0
- package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-diff-viewer.mjs +356 -0
- package/fesm2022/lifecorner-angular-ui-kit-diff-viewer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-divider.mjs +119 -0
- package/fesm2022/lifecorner-angular-ui-kit-divider.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs +762 -0
- package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-donut-chart.mjs +255 -0
- package/fesm2022/lifecorner-angular-ui-kit-donut-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-drawer.mjs +308 -0
- package/fesm2022/lifecorner-angular-ui-kit-drawer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-email-input.mjs +519 -0
- package/fesm2022/lifecorner-angular-ui-kit-email-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-empty-state.mjs +143 -0
- package/fesm2022/lifecorner-angular-ui-kit-empty-state.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-error-display.mjs +306 -0
- package/fesm2022/lifecorner-angular-ui-kit-error-display.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-field-group.mjs +154 -0
- package/fesm2022/lifecorner-angular-ui-kit-field-group.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs +281 -0
- package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs +258 -0
- package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-footer.mjs +200 -0
- package/fesm2022/lifecorner-angular-ui-kit-footer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-funnel-chart.mjs +292 -0
- package/fesm2022/lifecorner-angular-ui-kit-funnel-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs +563 -0
- package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs +314 -0
- package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-gauge.mjs +265 -0
- package/fesm2022/lifecorner-angular-ui-kit-gauge.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-header.mjs +955 -0
- package/fesm2022/lifecorner-angular-ui-kit-header.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-heatmap.mjs +305 -0
- package/fesm2022/lifecorner-angular-ui-kit-heatmap.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-hero.mjs +168 -0
- package/fesm2022/lifecorner-angular-ui-kit-hero.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-icon-names.mjs +9 -0
- package/fesm2022/lifecorner-angular-ui-kit-icon-names.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-icon.mjs +1026 -0
- package/fesm2022/lifecorner-angular-ui-kit-icon.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-input.mjs +595 -0
- package/fesm2022/lifecorner-angular-ui-kit-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-chart.mjs +105 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-overlay.mjs +50 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-overlay.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-url.mjs +22 -0
- package/fesm2022/lifecorner-angular-ui-kit-internal-url.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs +319 -0
- package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-line-chart.mjs +413 -0
- package/fesm2022/lifecorner-angular-ui-kit-line-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-list.mjs +338 -0
- package/fesm2022/lifecorner-angular-ui-kit-list.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs +813 -0
- package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-logo.mjs +226 -0
- package/fesm2022/lifecorner-angular-ui-kit-logo.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-markdown.mjs +756 -0
- package/fesm2022/lifecorner-angular-ui-kit-markdown.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-menu.mjs +321 -0
- package/fesm2022/lifecorner-angular-ui-kit-menu.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-modal.mjs +329 -0
- package/fesm2022/lifecorner-angular-ui-kit-modal.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-models.mjs +0 -0
- package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs +419 -0
- package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs +644 -0
- package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs +401 -0
- package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs +266 -0
- package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-page-layout.mjs +127 -0
- package/fesm2022/lifecorner-angular-ui-kit-page-layout.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-pagination.mjs +343 -0
- package/fesm2022/lifecorner-angular-ui-kit-pagination.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-password-input.mjs +696 -0
- package/fesm2022/lifecorner-angular-ui-kit-password-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-pie-chart.mjs +162 -0
- package/fesm2022/lifecorner-angular-ui-kit-pie-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-pipeline.mjs +159 -0
- package/fesm2022/lifecorner-angular-ui-kit-pipeline.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-popover.mjs +190 -0
- package/fesm2022/lifecorner-angular-ui-kit-popover.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-progress-bar.mjs +190 -0
- package/fesm2022/lifecorner-angular-ui-kit-progress-bar.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-progress-ring.mjs +175 -0
- package/fesm2022/lifecorner-angular-ui-kit-progress-ring.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-provider-button.mjs +255 -0
- package/fesm2022/lifecorner-angular-ui-kit-provider-button.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-radar-chart.mjs +309 -0
- package/fesm2022/lifecorner-angular-ui-kit-radar-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-radio.mjs +708 -0
- package/fesm2022/lifecorner-angular-ui-kit-radio.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-rating.mjs +327 -0
- package/fesm2022/lifecorner-angular-ui-kit-rating.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs +718 -0
- package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs +415 -0
- package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs +290 -0
- package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-section.mjs +127 -0
- package/fesm2022/lifecorner-angular-ui-kit-section.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-select.mjs +650 -0
- package/fesm2022/lifecorner-angular-ui-kit-select.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-sidenav.mjs +691 -0
- package/fesm2022/lifecorner-angular-ui-kit-sidenav.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs +144 -0
- package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-slider.mjs +204 -0
- package/fesm2022/lifecorner-angular-ui-kit-slider.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-spacer.mjs +73 -0
- package/fesm2022/lifecorner-angular-ui-kit-spacer.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-sparkline.mjs +318 -0
- package/fesm2022/lifecorner-angular-ui-kit-sparkline.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-spinner.mjs +95 -0
- package/fesm2022/lifecorner-angular-ui-kit-spinner.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs +298 -0
- package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-stack.mjs +162 -0
- package/fesm2022/lifecorner-angular-ui-kit-stack.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-stacked-bar-chart.mjs +412 -0
- package/fesm2022/lifecorner-angular-ui-kit-stacked-bar-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-stage-list.mjs +186 -0
- package/fesm2022/lifecorner-angular-ui-kit-stage-list.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-stat-trend.mjs +224 -0
- package/fesm2022/lifecorner-angular-ui-kit-stat-trend.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-status-dot.mjs +122 -0
- package/fesm2022/lifecorner-angular-ui-kit-status-dot.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-stepper.mjs +209 -0
- package/fesm2022/lifecorner-angular-ui-kit-stepper.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-switch.mjs +249 -0
- package/fesm2022/lifecorner-angular-ui-kit-switch.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-table.mjs +1434 -0
- package/fesm2022/lifecorner-angular-ui-kit-table.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs +407 -0
- package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs +380 -0
- package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs +440 -0
- package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-theme.mjs +145 -0
- package/fesm2022/lifecorner-angular-ui-kit-theme.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-timeline.mjs +262 -0
- package/fesm2022/lifecorner-angular-ui-kit-timeline.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-toast.mjs +352 -0
- package/fesm2022/lifecorner-angular-ui-kit-toast.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs +215 -0
- package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-tokens.mjs +134 -0
- package/fesm2022/lifecorner-angular-ui-kit-tokens.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-toolbar.mjs +225 -0
- package/fesm2022/lifecorner-angular-ui-kit-toolbar.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-tooltip.mjs +386 -0
- package/fesm2022/lifecorner-angular-ui-kit-tooltip.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-tree-view.mjs +509 -0
- package/fesm2022/lifecorner-angular-ui-kit-tree-view.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-typography.mjs +209 -0
- package/fesm2022/lifecorner-angular-ui-kit-typography.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-verification-code-input.mjs +365 -0
- package/fesm2022/lifecorner-angular-ui-kit-verification-code-input.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit-waterfall-chart.mjs +371 -0
- package/fesm2022/lifecorner-angular-ui-kit-waterfall-chart.mjs.map +1 -0
- package/fesm2022/lifecorner-angular-ui-kit.mjs +109 -38925
- package/package.json +449 -1
- package/types/lifecorner-angular-ui-kit-accordion.d.ts +239 -0
- package/types/lifecorner-angular-ui-kit-alert.d.ts +189 -0
- package/types/lifecorner-angular-ui-kit-app-shell.d.ts +148 -0
- package/types/lifecorner-angular-ui-kit-area-chart.d.ts +180 -0
- package/types/lifecorner-angular-ui-kit-avatar-group.d.ts +62 -0
- package/types/lifecorner-angular-ui-kit-avatar.d.ts +131 -0
- package/types/lifecorner-angular-ui-kit-badge.d.ts +59 -0
- package/types/lifecorner-angular-ui-kit-bar-chart.d.ts +157 -0
- package/types/lifecorner-angular-ui-kit-bottom-nav.d.ts +184 -0
- package/types/lifecorner-angular-ui-kit-breadcrumbs.d.ts +55 -0
- package/types/lifecorner-angular-ui-kit-button.d.ts +181 -0
- package/types/lifecorner-angular-ui-kit-calendar.d.ts +136 -0
- package/types/lifecorner-angular-ui-kit-callout.d.ts +77 -0
- package/types/lifecorner-angular-ui-kit-card.d.ts +213 -0
- package/types/lifecorner-angular-ui-kit-chat.d.ts +379 -0
- package/types/lifecorner-angular-ui-kit-checkbox.d.ts +116 -0
- package/types/lifecorner-angular-ui-kit-chip.d.ts +104 -0
- package/types/lifecorner-angular-ui-kit-choice-prompt.d.ts +186 -0
- package/types/lifecorner-angular-ui-kit-code-block.d.ts +85 -0
- package/types/lifecorner-angular-ui-kit-color-picker.d.ts +88 -0
- package/types/lifecorner-angular-ui-kit-combobox.d.ts +222 -0
- package/types/lifecorner-angular-ui-kit-confirm-dialog.d.ts +211 -0
- package/types/lifecorner-angular-ui-kit-container.d.ts +47 -0
- package/types/lifecorner-angular-ui-kit-copy-field.d.ts +89 -0
- package/types/lifecorner-angular-ui-kit-date-range-picker.d.ts +126 -0
- package/types/lifecorner-angular-ui-kit-datepicker.d.ts +363 -0
- package/types/lifecorner-angular-ui-kit-dependency-viewer.d.ts +568 -0
- package/types/lifecorner-angular-ui-kit-description-list.d.ts +137 -0
- package/types/lifecorner-angular-ui-kit-diff-viewer.d.ts +93 -0
- package/types/lifecorner-angular-ui-kit-divider.d.ts +66 -0
- package/types/lifecorner-angular-ui-kit-document-viewer.d.ts +256 -0
- package/types/lifecorner-angular-ui-kit-donut-chart.d.ts +92 -0
- package/types/lifecorner-angular-ui-kit-drawer.d.ts +124 -0
- package/types/lifecorner-angular-ui-kit-email-input.d.ts +292 -0
- package/types/lifecorner-angular-ui-kit-empty-state.d.ts +81 -0
- package/types/lifecorner-angular-ui-kit-error-display.d.ts +157 -0
- package/types/lifecorner-angular-ui-kit-field-group.d.ts +69 -0
- package/types/lifecorner-angular-ui-kit-file-upload.d.ts +122 -0
- package/types/lifecorner-angular-ui-kit-filter-bar.d.ts +116 -0
- package/types/lifecorner-angular-ui-kit-footer.d.ts +97 -0
- package/types/lifecorner-angular-ui-kit-funnel-chart.d.ts +97 -0
- package/types/lifecorner-angular-ui-kit-gallery.d.ts +240 -0
- package/types/lifecorner-angular-ui-kit-gantt-chart.d.ts +133 -0
- package/types/lifecorner-angular-ui-kit-gauge.d.ts +94 -0
- package/types/lifecorner-angular-ui-kit-header.d.ts +496 -0
- package/types/lifecorner-angular-ui-kit-heatmap.d.ts +126 -0
- package/types/lifecorner-angular-ui-kit-hero.d.ts +121 -0
- package/types/lifecorner-angular-ui-kit-icon-names.d.ts +21 -0
- package/types/lifecorner-angular-ui-kit-icon.d.ts +260 -0
- package/types/lifecorner-angular-ui-kit-input.d.ts +346 -0
- package/types/lifecorner-angular-ui-kit-internal-chart.d.ts +86 -0
- package/types/lifecorner-angular-ui-kit-internal-overlay.d.ts +31 -0
- package/types/lifecorner-angular-ui-kit-internal-url.d.ts +22 -0
- package/types/lifecorner-angular-ui-kit-kanban-board.d.ts +111 -0
- package/types/lifecorner-angular-ui-kit-line-chart.d.ts +186 -0
- package/types/lifecorner-angular-ui-kit-list.d.ts +215 -0
- package/types/lifecorner-angular-ui-kit-log-viewer.d.ts +355 -0
- package/types/lifecorner-angular-ui-kit-logo.d.ts +182 -0
- package/types/lifecorner-angular-ui-kit-markdown.d.ts +278 -0
- package/types/lifecorner-angular-ui-kit-menu.d.ts +152 -0
- package/types/lifecorner-angular-ui-kit-modal.d.ts +207 -0
- package/types/lifecorner-angular-ui-kit-models.d.ts +62 -0
- package/types/lifecorner-angular-ui-kit-next-step-card.d.ts +262 -0
- package/types/lifecorner-angular-ui-kit-notification-center.d.ts +237 -0
- package/types/lifecorner-angular-ui-kit-number-input.d.ts +126 -0
- package/types/lifecorner-angular-ui-kit-page-header.d.ts +178 -0
- package/types/lifecorner-angular-ui-kit-page-layout.d.ts +61 -0
- package/types/lifecorner-angular-ui-kit-pagination.d.ts +141 -0
- package/types/lifecorner-angular-ui-kit-password-input.d.ts +361 -0
- package/types/lifecorner-angular-ui-kit-pie-chart.d.ts +58 -0
- package/types/lifecorner-angular-ui-kit-pipeline.d.ts +89 -0
- package/types/lifecorner-angular-ui-kit-popover.d.ts +104 -0
- package/types/lifecorner-angular-ui-kit-progress-bar.d.ts +116 -0
- package/types/lifecorner-angular-ui-kit-progress-ring.d.ts +67 -0
- package/types/lifecorner-angular-ui-kit-provider-button.d.ts +137 -0
- package/types/lifecorner-angular-ui-kit-radar-chart.d.ts +113 -0
- package/types/lifecorner-angular-ui-kit-radio.d.ts +297 -0
- package/types/lifecorner-angular-ui-kit-rating.d.ts +115 -0
- package/types/lifecorner-angular-ui-kit-rich-text-editor.d.ts +226 -0
- package/types/lifecorner-angular-ui-kit-scatter-plot.d.ts +190 -0
- package/types/lifecorner-angular-ui-kit-search-input.d.ts +137 -0
- package/types/lifecorner-angular-ui-kit-section.d.ts +34 -0
- package/types/lifecorner-angular-ui-kit-select.d.ts +274 -0
- package/types/lifecorner-angular-ui-kit-sidenav.d.ts +367 -0
- package/types/lifecorner-angular-ui-kit-skeleton.d.ts +61 -0
- package/types/lifecorner-angular-ui-kit-slider.d.ts +79 -0
- package/types/lifecorner-angular-ui-kit-spacer.d.ts +27 -0
- package/types/lifecorner-angular-ui-kit-sparkline.d.ts +113 -0
- package/types/lifecorner-angular-ui-kit-spinner.d.ts +50 -0
- package/types/lifecorner-angular-ui-kit-split-pane.d.ts +131 -0
- package/types/lifecorner-angular-ui-kit-stack.d.ts +49 -0
- package/types/lifecorner-angular-ui-kit-stacked-bar-chart.d.ts +171 -0
- package/types/lifecorner-angular-ui-kit-stage-list.d.ts +69 -0
- package/types/lifecorner-angular-ui-kit-stat-trend.d.ts +62 -0
- package/types/lifecorner-angular-ui-kit-status-dot.d.ts +62 -0
- package/types/lifecorner-angular-ui-kit-stepper.d.ts +113 -0
- package/types/lifecorner-angular-ui-kit-switch.d.ts +141 -0
- package/types/lifecorner-angular-ui-kit-table.d.ts +632 -0
- package/types/lifecorner-angular-ui-kit-tabs.d.ts +196 -0
- package/types/lifecorner-angular-ui-kit-tag-input.d.ts +123 -0
- package/types/lifecorner-angular-ui-kit-textarea.d.ts +225 -0
- package/types/lifecorner-angular-ui-kit-theme.d.ts +91 -0
- package/types/lifecorner-angular-ui-kit-timeline.d.ts +162 -0
- package/types/lifecorner-angular-ui-kit-toast.d.ts +204 -0
- package/types/lifecorner-angular-ui-kit-toggle-group.d.ts +100 -0
- package/types/lifecorner-angular-ui-kit-tokens.d.ts +134 -0
- package/types/lifecorner-angular-ui-kit-toolbar.d.ts +120 -0
- package/types/lifecorner-angular-ui-kit-tooltip.d.ts +120 -0
- package/types/lifecorner-angular-ui-kit-tree-view.d.ts +231 -0
- package/types/lifecorner-angular-ui-kit-typography.d.ts +126 -0
- package/types/lifecorner-angular-ui-kit-verification-code-input.d.ts +187 -0
- package/types/lifecorner-angular-ui-kit-waterfall-chart.d.ts +163 -0
- package/types/lifecorner-angular-ui-kit.d.ts +109 -17401
- package/fesm2022/lifecorner-angular-ui-kit.mjs.map +0 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output } from "@angular/core";
|
|
3
|
+
import { IconComponent } from "@lifecorner/angular-ui-kit/icon";
|
|
4
|
+
var CalloutComponent = class CalloutComponent {
|
|
5
|
+
variant = input("info", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
6
|
+
title = input(...ngDevMode ? [void 0, { debugName: "title" }] : /* istanbul ignore next */ []);
|
|
7
|
+
icon = input(void 0, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
8
|
+
iconAriaLabel = input(void 0, ...ngDevMode ? [{ debugName: "iconAriaLabel" }] : /* istanbul ignore next */ []);
|
|
9
|
+
dismissible = input(false, ...ngDevMode ? [{ debugName: "dismissible" }] : /* istanbul ignore next */ []);
|
|
10
|
+
dismissAriaLabel = input("Dismiss", ...ngDevMode ? [{ debugName: "dismissAriaLabel" }] : /* istanbul ignore next */ []);
|
|
11
|
+
dismissed = output();
|
|
12
|
+
visible = model(true, ...ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []);
|
|
13
|
+
calloutClasses = computed(() => {
|
|
14
|
+
return ["callout", `callout--${this.variant()}`].join(" ");
|
|
15
|
+
}, ...ngDevMode ? [{ debugName: "calloutClasses" }] : /* istanbul ignore next */ []);
|
|
16
|
+
role = computed(() => this.variant() === "error" || this.variant() === "warning" ? "alert" : "status", ...ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []);
|
|
17
|
+
iconName = computed(() => {
|
|
18
|
+
return this.icon() || {
|
|
19
|
+
info: "information-circle",
|
|
20
|
+
success: "check-circle",
|
|
21
|
+
warning: "exclamation-triangle",
|
|
22
|
+
error: "x-circle",
|
|
23
|
+
neutral: "information-circle"
|
|
24
|
+
}[this.variant()];
|
|
25
|
+
}, ...ngDevMode ? [{ debugName: "iconName" }] : /* istanbul ignore next */ []);
|
|
26
|
+
dismiss() {
|
|
27
|
+
this.visible.set(false);
|
|
28
|
+
this.dismissed.emit();
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
31
|
+
minVersion: "12.0.0",
|
|
32
|
+
version: "22.2.2",
|
|
33
|
+
ngImport: i0,
|
|
34
|
+
type: CalloutComponent,
|
|
35
|
+
deps: [],
|
|
36
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
37
|
+
});
|
|
38
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
39
|
+
minVersion: "17.0.0",
|
|
40
|
+
version: "22.2.2",
|
|
41
|
+
type: CalloutComponent,
|
|
42
|
+
isStandalone: true,
|
|
43
|
+
selector: "lc-callout",
|
|
44
|
+
inputs: {
|
|
45
|
+
variant: {
|
|
46
|
+
classPropertyName: "variant",
|
|
47
|
+
publicName: "variant",
|
|
48
|
+
isSignal: true,
|
|
49
|
+
isRequired: false,
|
|
50
|
+
transformFunction: null
|
|
51
|
+
},
|
|
52
|
+
title: {
|
|
53
|
+
classPropertyName: "title",
|
|
54
|
+
publicName: "title",
|
|
55
|
+
isSignal: true,
|
|
56
|
+
isRequired: false,
|
|
57
|
+
transformFunction: null
|
|
58
|
+
},
|
|
59
|
+
icon: {
|
|
60
|
+
classPropertyName: "icon",
|
|
61
|
+
publicName: "icon",
|
|
62
|
+
isSignal: true,
|
|
63
|
+
isRequired: false,
|
|
64
|
+
transformFunction: null
|
|
65
|
+
},
|
|
66
|
+
iconAriaLabel: {
|
|
67
|
+
classPropertyName: "iconAriaLabel",
|
|
68
|
+
publicName: "iconAriaLabel",
|
|
69
|
+
isSignal: true,
|
|
70
|
+
isRequired: false,
|
|
71
|
+
transformFunction: null
|
|
72
|
+
},
|
|
73
|
+
dismissible: {
|
|
74
|
+
classPropertyName: "dismissible",
|
|
75
|
+
publicName: "dismissible",
|
|
76
|
+
isSignal: true,
|
|
77
|
+
isRequired: false,
|
|
78
|
+
transformFunction: null
|
|
79
|
+
},
|
|
80
|
+
dismissAriaLabel: {
|
|
81
|
+
classPropertyName: "dismissAriaLabel",
|
|
82
|
+
publicName: "dismissAriaLabel",
|
|
83
|
+
isSignal: true,
|
|
84
|
+
isRequired: false,
|
|
85
|
+
transformFunction: null
|
|
86
|
+
},
|
|
87
|
+
visible: {
|
|
88
|
+
classPropertyName: "visible",
|
|
89
|
+
publicName: "visible",
|
|
90
|
+
isSignal: true,
|
|
91
|
+
isRequired: false,
|
|
92
|
+
transformFunction: null
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
outputs: {
|
|
96
|
+
dismissed: "dismissed",
|
|
97
|
+
visible: "visibleChange"
|
|
98
|
+
},
|
|
99
|
+
ngImport: i0,
|
|
100
|
+
template: "@if (visible()) {\n <div [class]=\"calloutClasses()\" [attr.role]=\"role()\">\n <lc-icon\n class=\"callout__icon\"\n [name]=\"iconName()\"\n size=\"md\"\n [decorative]=\"!iconAriaLabel()\"\n [ariaLabel]=\"iconAriaLabel()\"\n />\n <div class=\"callout__content\">\n @if (title()) {\n <strong class=\"callout__title\">{{ title() }}</strong>\n }\n <div class=\"callout__body\">\n <ng-content />\n </div>\n </div>\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"callout__dismiss\"\n [attr.aria-label]=\"dismissAriaLabel()\"\n (click)=\"dismiss()\"\n >\n <lc-icon name=\"x-mark\" size=\"sm\" [decorative]=\"true\" />\n </button>\n }\n </div>\n}\n",
|
|
101
|
+
styles: [".callout{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--border-radius-md);border-left:4px solid;font-size:var(--typography-font-size-sm, .875rem);line-height:1.5;color:var(--color-text-primary)}.callout--info{background-color:#3b658829;border-left-color:#3b65886b}.callout--info .callout__icon{color:var(--color-info)}.callout--success{background-color:#8ea47529;border-left-color:#8ea47566}.callout--success .callout__icon{color:var(--color-success)}.callout--warning{background-color:#e1a04029;border-left-color:#e1a0406b}.callout--warning .callout__icon{color:var(--color-warning)}.callout--error{background-color:#9d0e0e29;border-left-color:#9d0e0e73}.callout--error .callout__icon{color:var(--color-error)}.callout--neutral{background-color:var(--color-surface-hover);border-left-color:var(--color-border)}.callout--neutral .callout__icon{color:var(--color-text-tertiary)}.callout__icon{flex-shrink:0;margin-top:.0625rem}.callout__content{flex:1;min-width:0}.callout__title{display:block;font-weight:var(--typography-font-weight-semibold, 600);margin-bottom:.25rem}.callout__body p{margin:0}.callout__dismiss{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;border-radius:var(--border-radius-sm);background:transparent;color:inherit;opacity:.6;cursor:pointer;flex-shrink:0;transition:opacity .15s ease,background-color .15s ease}.callout__dismiss:hover{opacity:1;background-color:var(--color-surface-hover)}\n"],
|
|
102
|
+
dependencies: [{
|
|
103
|
+
kind: "component",
|
|
104
|
+
type: IconComponent,
|
|
105
|
+
selector: "lc-icon",
|
|
106
|
+
inputs: [
|
|
107
|
+
"name",
|
|
108
|
+
"variant",
|
|
109
|
+
"size",
|
|
110
|
+
"color",
|
|
111
|
+
"ariaLabel",
|
|
112
|
+
"decorative",
|
|
113
|
+
"strict"
|
|
114
|
+
]
|
|
115
|
+
}],
|
|
116
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
120
|
+
minVersion: "12.0.0",
|
|
121
|
+
version: "22.2.2",
|
|
122
|
+
ngImport: i0,
|
|
123
|
+
type: CalloutComponent,
|
|
124
|
+
decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{
|
|
127
|
+
selector: "lc-callout",
|
|
128
|
+
standalone: true,
|
|
129
|
+
imports: [IconComponent],
|
|
130
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
131
|
+
template: "@if (visible()) {\n <div [class]=\"calloutClasses()\" [attr.role]=\"role()\">\n <lc-icon\n class=\"callout__icon\"\n [name]=\"iconName()\"\n size=\"md\"\n [decorative]=\"!iconAriaLabel()\"\n [ariaLabel]=\"iconAriaLabel()\"\n />\n <div class=\"callout__content\">\n @if (title()) {\n <strong class=\"callout__title\">{{ title() }}</strong>\n }\n <div class=\"callout__body\">\n <ng-content />\n </div>\n </div>\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"callout__dismiss\"\n [attr.aria-label]=\"dismissAriaLabel()\"\n (click)=\"dismiss()\"\n >\n <lc-icon name=\"x-mark\" size=\"sm\" [decorative]=\"true\" />\n </button>\n }\n </div>\n}\n",
|
|
132
|
+
styles: [".callout{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--border-radius-md);border-left:4px solid;font-size:var(--typography-font-size-sm, .875rem);line-height:1.5;color:var(--color-text-primary)}.callout--info{background-color:#3b658829;border-left-color:#3b65886b}.callout--info .callout__icon{color:var(--color-info)}.callout--success{background-color:#8ea47529;border-left-color:#8ea47566}.callout--success .callout__icon{color:var(--color-success)}.callout--warning{background-color:#e1a04029;border-left-color:#e1a0406b}.callout--warning .callout__icon{color:var(--color-warning)}.callout--error{background-color:#9d0e0e29;border-left-color:#9d0e0e73}.callout--error .callout__icon{color:var(--color-error)}.callout--neutral{background-color:var(--color-surface-hover);border-left-color:var(--color-border)}.callout--neutral .callout__icon{color:var(--color-text-tertiary)}.callout__icon{flex-shrink:0;margin-top:.0625rem}.callout__content{flex:1;min-width:0}.callout__title{display:block;font-weight:var(--typography-font-weight-semibold, 600);margin-bottom:.25rem}.callout__body p{margin:0}.callout__dismiss{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;border-radius:var(--border-radius-sm);background:transparent;color:inherit;opacity:.6;cursor:pointer;flex-shrink:0;transition:opacity .15s ease,background-color .15s ease}.callout__dismiss:hover{opacity:1;background-color:var(--color-surface-hover)}\n"]
|
|
133
|
+
}]
|
|
134
|
+
}],
|
|
135
|
+
propDecorators: {
|
|
136
|
+
variant: [{
|
|
137
|
+
type: i0.Input,
|
|
138
|
+
args: [{
|
|
139
|
+
isSignal: true,
|
|
140
|
+
alias: "variant",
|
|
141
|
+
required: false
|
|
142
|
+
}]
|
|
143
|
+
}],
|
|
144
|
+
title: [{
|
|
145
|
+
type: i0.Input,
|
|
146
|
+
args: [{
|
|
147
|
+
isSignal: true,
|
|
148
|
+
alias: "title",
|
|
149
|
+
required: false
|
|
150
|
+
}]
|
|
151
|
+
}],
|
|
152
|
+
icon: [{
|
|
153
|
+
type: i0.Input,
|
|
154
|
+
args: [{
|
|
155
|
+
isSignal: true,
|
|
156
|
+
alias: "icon",
|
|
157
|
+
required: false
|
|
158
|
+
}]
|
|
159
|
+
}],
|
|
160
|
+
iconAriaLabel: [{
|
|
161
|
+
type: i0.Input,
|
|
162
|
+
args: [{
|
|
163
|
+
isSignal: true,
|
|
164
|
+
alias: "iconAriaLabel",
|
|
165
|
+
required: false
|
|
166
|
+
}]
|
|
167
|
+
}],
|
|
168
|
+
dismissible: [{
|
|
169
|
+
type: i0.Input,
|
|
170
|
+
args: [{
|
|
171
|
+
isSignal: true,
|
|
172
|
+
alias: "dismissible",
|
|
173
|
+
required: false
|
|
174
|
+
}]
|
|
175
|
+
}],
|
|
176
|
+
dismissAriaLabel: [{
|
|
177
|
+
type: i0.Input,
|
|
178
|
+
args: [{
|
|
179
|
+
isSignal: true,
|
|
180
|
+
alias: "dismissAriaLabel",
|
|
181
|
+
required: false
|
|
182
|
+
}]
|
|
183
|
+
}],
|
|
184
|
+
dismissed: [{
|
|
185
|
+
type: i0.Output,
|
|
186
|
+
args: ["dismissed"]
|
|
187
|
+
}],
|
|
188
|
+
visible: [{
|
|
189
|
+
type: i0.Input,
|
|
190
|
+
args: [{
|
|
191
|
+
isSignal: true,
|
|
192
|
+
alias: "visible",
|
|
193
|
+
required: false
|
|
194
|
+
}]
|
|
195
|
+
}, {
|
|
196
|
+
type: i0.Output,
|
|
197
|
+
args: ["visibleChange"]
|
|
198
|
+
}]
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
export { CalloutComponent };
|
|
202
|
+
|
|
203
|
+
//# sourceMappingURL=lifecorner-angular-ui-kit-callout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecorner-angular-ui-kit-callout.mjs","names":[],"sources":["../../../../libs/angular-ui-kit/src/lib/callout/callout.component.ts","../../../../libs/angular-ui-kit/src/lib/callout/callout.component.html"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n input,\n model,\n output,\n computed,\n} from '@angular/core';\nimport { IconComponent } from '@lifecorner/angular-ui-kit/icon';\n\nexport type CalloutVariant = 'info' | 'success' | 'warning' | 'error' | 'neutral';\n\n@Component({\n selector: 'lc-callout',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './callout.component.html',\n styleUrls: ['./callout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n/**\n * Callout component for contextual information banners.\n *\n * Features:\n * - Semantic variants (info, success, warning, error, neutral)\n * - Auto-mapped variant icons (override with `icon`); decorative unless\n * `iconAriaLabel` names them — no built-in English word\n * - Optional title text\n * - Dismissible with close button; `visible` is two-way bindable so a\n * dismissed callout can be shown again\n * - `role=\"alert\"` for error / warning, `role=\"status\"` otherwise\n * - Content projection for custom body content\n *\n * @example\n * ```html\n * <lc-callout variant=\"warning\" title=\"Attention\">Please review your input.</lc-callout>\n * ```\n */\nexport class CalloutComponent {\n /** Visual variant */\n variant = input<CalloutVariant>('info');\n\n /** Title text (optional) */\n title = input<string>();\n\n /** Icon name instead of the variant's default icon. */\n icon = input<string | undefined>(undefined);\n\n /**\n * Accessible name of the icon, e.g. „Hinweis“. Leave it unset when the\n * title or text already says what kind of note this is: the icon is then\n * decorative (`aria-hidden`). The kit sets no default text, so no English\n * word is read on a page in another language.\n */\n iconAriaLabel = input<string | undefined>(undefined);\n\n /** Whether the callout can be dismissed */\n dismissible = input<boolean>(false);\n\n /** Accessible name of the dismiss button (`dismissible`). */\n dismissAriaLabel = input('Dismiss');\n\n /** Emits when dismiss button is clicked */\n dismissed = output<void>();\n\n /**\n * Visibility (two-way bindable). Dismissing sets it to `false`; the parent\n * can set it back to `true` to show the callout again.\n */\n visible = model<boolean>(true);\n\n protected calloutClasses = computed(() => {\n return ['callout', `callout--${this.variant()}`].join(' ');\n });\n\n /**\n * Live-region semantics: only error / warning callouts interrupt the user\n * (`alert`); informational ones are announced politely (`status`).\n */\n protected role = computed(() =>\n this.variant() === 'error' || this.variant() === 'warning' ? 'alert' : 'status',\n );\n\n protected iconName = computed(() => {\n const map: Record<CalloutVariant, string> = {\n info: 'information-circle',\n success: 'check-circle',\n warning: 'exclamation-triangle',\n error: 'x-circle',\n neutral: 'information-circle',\n };\n return this.icon() || map[this.variant()];\n });\n\n dismiss(): void {\n this.visible.set(false);\n this.dismissed.emit();\n }\n}\n","@if (visible()) {\n <div [class]=\"calloutClasses()\" [attr.role]=\"role()\">\n <lc-icon\n class=\"callout__icon\"\n [name]=\"iconName()\"\n size=\"md\"\n [decorative]=\"!iconAriaLabel()\"\n [ariaLabel]=\"iconAriaLabel()\"\n />\n <div class=\"callout__content\">\n @if (title()) {\n <strong class=\"callout__title\">{{ title() }}</strong>\n }\n <div class=\"callout__body\">\n <ng-content />\n </div>\n </div>\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"callout__dismiss\"\n [attr.aria-label]=\"dismissAriaLabel()\"\n (click)=\"dismiss()\"\n >\n <lc-icon name=\"x-mark\" size=\"sm\" [decorative]=\"true\" />\n </button>\n }\n </div>\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostListener, computed, input, output } from "@angular/core";
|
|
3
|
+
import { IconComponent } from "@lifecorner/angular-ui-kit/icon";
|
|
4
|
+
var CardComponent = class CardComponent {
|
|
5
|
+
title = input(void 0, ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
|
|
6
|
+
subtitle = input(void 0, ...ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []);
|
|
7
|
+
icon = input(void 0, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
|
|
8
|
+
iconVariant = input("brand", ...ngDevMode ? [{ debugName: "iconVariant" }] : /* istanbul ignore next */ []);
|
|
9
|
+
iconSize = input("md", ...ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []);
|
|
10
|
+
badge = input(void 0, ...ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []);
|
|
11
|
+
badgeVariant = input("default", ...ngDevMode ? [{ debugName: "badgeVariant" }] : /* istanbul ignore next */ []);
|
|
12
|
+
variant = input("elevated", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
13
|
+
padding = input("md", ...ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []);
|
|
14
|
+
clickable = input(false, ...ngDevMode ? [{ debugName: "clickable" }] : /* istanbul ignore next */ []);
|
|
15
|
+
selected = input(false, ...ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []);
|
|
16
|
+
borderRadius = input("md", ...ngDevMode ? [{ debugName: "borderRadius" }] : /* istanbul ignore next */ []);
|
|
17
|
+
headingLevel = input(3, ...ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []);
|
|
18
|
+
ariaLabel = input(void 0, ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
|
|
19
|
+
cardClick = output();
|
|
20
|
+
isClickable = computed(() => this.clickable() && this.variant() !== "dashed", ...ngDevMode ? [{ debugName: "isClickable" }] : /* istanbul ignore next */ []);
|
|
21
|
+
cardClasses = computed(() => {
|
|
22
|
+
const classes = [
|
|
23
|
+
"card",
|
|
24
|
+
`card-${this.variant()}`,
|
|
25
|
+
`card-padding-${this.padding()}`,
|
|
26
|
+
`card-radius-${this.borderRadius()}`
|
|
27
|
+
];
|
|
28
|
+
if (this.isClickable()) classes.push("card-clickable");
|
|
29
|
+
if (this.selected() && this.variant() !== "dashed") classes.push("card-selected");
|
|
30
|
+
return classes.join(" ");
|
|
31
|
+
}, ...ngDevMode ? [{ debugName: "cardClasses" }] : /* istanbul ignore next */ []);
|
|
32
|
+
role = computed(() => this.isClickable() ? "button" : "article", ...ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []);
|
|
33
|
+
handleClick(event) {
|
|
34
|
+
if (this.isClickable()) this.cardClick.emit(event);
|
|
35
|
+
}
|
|
36
|
+
handleKeydown(event) {
|
|
37
|
+
if (this.isClickable() && (event.key === "Enter" || event.key === " ")) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
const mouseEvent = new MouseEvent("click", {
|
|
40
|
+
bubbles: true,
|
|
41
|
+
cancelable: true
|
|
42
|
+
});
|
|
43
|
+
this.cardClick.emit(mouseEvent);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
47
|
+
minVersion: "12.0.0",
|
|
48
|
+
version: "22.2.2",
|
|
49
|
+
ngImport: i0,
|
|
50
|
+
type: CardComponent,
|
|
51
|
+
deps: [],
|
|
52
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
53
|
+
});
|
|
54
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
55
|
+
minVersion: "17.0.0",
|
|
56
|
+
version: "22.2.2",
|
|
57
|
+
type: CardComponent,
|
|
58
|
+
isStandalone: true,
|
|
59
|
+
selector: "lc-card",
|
|
60
|
+
inputs: {
|
|
61
|
+
title: {
|
|
62
|
+
classPropertyName: "title",
|
|
63
|
+
publicName: "title",
|
|
64
|
+
isSignal: true,
|
|
65
|
+
isRequired: false,
|
|
66
|
+
transformFunction: null
|
|
67
|
+
},
|
|
68
|
+
subtitle: {
|
|
69
|
+
classPropertyName: "subtitle",
|
|
70
|
+
publicName: "subtitle",
|
|
71
|
+
isSignal: true,
|
|
72
|
+
isRequired: false,
|
|
73
|
+
transformFunction: null
|
|
74
|
+
},
|
|
75
|
+
icon: {
|
|
76
|
+
classPropertyName: "icon",
|
|
77
|
+
publicName: "icon",
|
|
78
|
+
isSignal: true,
|
|
79
|
+
isRequired: false,
|
|
80
|
+
transformFunction: null
|
|
81
|
+
},
|
|
82
|
+
iconVariant: {
|
|
83
|
+
classPropertyName: "iconVariant",
|
|
84
|
+
publicName: "iconVariant",
|
|
85
|
+
isSignal: true,
|
|
86
|
+
isRequired: false,
|
|
87
|
+
transformFunction: null
|
|
88
|
+
},
|
|
89
|
+
iconSize: {
|
|
90
|
+
classPropertyName: "iconSize",
|
|
91
|
+
publicName: "iconSize",
|
|
92
|
+
isSignal: true,
|
|
93
|
+
isRequired: false,
|
|
94
|
+
transformFunction: null
|
|
95
|
+
},
|
|
96
|
+
badge: {
|
|
97
|
+
classPropertyName: "badge",
|
|
98
|
+
publicName: "badge",
|
|
99
|
+
isSignal: true,
|
|
100
|
+
isRequired: false,
|
|
101
|
+
transformFunction: null
|
|
102
|
+
},
|
|
103
|
+
badgeVariant: {
|
|
104
|
+
classPropertyName: "badgeVariant",
|
|
105
|
+
publicName: "badgeVariant",
|
|
106
|
+
isSignal: true,
|
|
107
|
+
isRequired: false,
|
|
108
|
+
transformFunction: null
|
|
109
|
+
},
|
|
110
|
+
variant: {
|
|
111
|
+
classPropertyName: "variant",
|
|
112
|
+
publicName: "variant",
|
|
113
|
+
isSignal: true,
|
|
114
|
+
isRequired: false,
|
|
115
|
+
transformFunction: null
|
|
116
|
+
},
|
|
117
|
+
padding: {
|
|
118
|
+
classPropertyName: "padding",
|
|
119
|
+
publicName: "padding",
|
|
120
|
+
isSignal: true,
|
|
121
|
+
isRequired: false,
|
|
122
|
+
transformFunction: null
|
|
123
|
+
},
|
|
124
|
+
clickable: {
|
|
125
|
+
classPropertyName: "clickable",
|
|
126
|
+
publicName: "clickable",
|
|
127
|
+
isSignal: true,
|
|
128
|
+
isRequired: false,
|
|
129
|
+
transformFunction: null
|
|
130
|
+
},
|
|
131
|
+
selected: {
|
|
132
|
+
classPropertyName: "selected",
|
|
133
|
+
publicName: "selected",
|
|
134
|
+
isSignal: true,
|
|
135
|
+
isRequired: false,
|
|
136
|
+
transformFunction: null
|
|
137
|
+
},
|
|
138
|
+
borderRadius: {
|
|
139
|
+
classPropertyName: "borderRadius",
|
|
140
|
+
publicName: "borderRadius",
|
|
141
|
+
isSignal: true,
|
|
142
|
+
isRequired: false,
|
|
143
|
+
transformFunction: null
|
|
144
|
+
},
|
|
145
|
+
headingLevel: {
|
|
146
|
+
classPropertyName: "headingLevel",
|
|
147
|
+
publicName: "headingLevel",
|
|
148
|
+
isSignal: true,
|
|
149
|
+
isRequired: false,
|
|
150
|
+
transformFunction: null
|
|
151
|
+
},
|
|
152
|
+
ariaLabel: {
|
|
153
|
+
classPropertyName: "ariaLabel",
|
|
154
|
+
publicName: "ariaLabel",
|
|
155
|
+
isSignal: true,
|
|
156
|
+
isRequired: false,
|
|
157
|
+
transformFunction: null
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
outputs: { cardClick: "cardClick" },
|
|
161
|
+
host: { listeners: { "keydown": "handleKeydown($event)" } },
|
|
162
|
+
ngImport: i0,
|
|
163
|
+
template: "<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -- Enter/Space are handled by the host keydown listener (role=button, tabindex=0 when clickable) -->\n<div\n [class]=\"cardClasses()\"\n [attr.role]=\"role()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.tabindex]=\"isClickable() ? 0 : null\"\n (click)=\"handleClick($event)\"\n>\n @if (title()) {\n <div class=\"card__header\">\n @if (icon()) {\n <div\n class=\"card__icon card__icon--{{ iconVariant() }} card__icon--size-{{ iconSize() }}\"\n aria-hidden=\"true\"\n >\n <lc-icon [name]=\"icon()!\" [size]=\"iconSize() === 'sm' ? 'xs' : 'sm'\" [decorative]=\"true\" />\n </div>\n }\n <div class=\"card__header-left\">\n <div class=\"card__title-row\">\n @switch (headingLevel()) {\n @case (2) {\n <h2 class=\"card__title\">{{ title() }}</h2>\n }\n @case (4) {\n <h4 class=\"card__title\">{{ title() }}</h4>\n }\n @case (5) {\n <h5 class=\"card__title\">{{ title() }}</h5>\n }\n @case (6) {\n <h6 class=\"card__title\">{{ title() }}</h6>\n }\n @default {\n <h3 class=\"card__title\">{{ title() }}</h3>\n }\n }\n <!-- Rich status badge: project an lc-badge here (takes visual\n precedence over the `badge` string). Wrapper hides when empty. -->\n <span class=\"card__badge-slot\"><ng-content select=\"[card-badge]\"></ng-content></span>\n @if (badge()) {\n <span class=\"card__badge card__badge--{{ badgeVariant() }}\">{{ badge() }}</span>\n }\n </div>\n @if (subtitle()) {\n <p class=\"card__subtitle\">{{ subtitle() }}</p>\n }\n </div>\n <div class=\"card__header-action\">\n <ng-content select=\"[card-header-action]\"></ng-content>\n </div>\n </div>\n }\n <ng-content select=\"[card-header]\"></ng-content>\n <div class=\"card__body\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[card-footer]\"></ng-content>\n</div>\n",
|
|
164
|
+
styles: [":host{display:block;height:100%}.card{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--color-surface);color:var(--color-text-primary);transition:box-shadow .15s ease-in-out,transform .15s ease-in-out,border-color .15s ease-in-out}.card__body{flex:1;display:flex;flex-direction:column}.card-elevated{position:relative;overflow:hidden;background-image:var(--gradient-surface);border:1px solid var(--color-border);box-shadow:var(--elevation-1)}.card-elevated:after{content:\"\";position:absolute;inset:0 0 auto;height:3px;background:var(--accent-line);opacity:.7;pointer-events:none}.card-elevated:hover{box-shadow:var(--elevation-2)}.card-outlined{background-image:none;border:1px solid var(--color-border)}.card-flat{background-image:none}.card-raised{background-image:none;border:1px solid var(--color-border);box-shadow:var(--shadow-auth-card, var(--elevation-3))}.card-dashed{background-color:var(--color-muted-tile, var(--color-surface-muted));background-image:none;border:1px dashed var(--color-muted-tile-border, var(--color-border));box-shadow:none;color:var(--color-text-secondary)}.card-padding-none{padding:0}.card-padding-xs{padding:var(--lc-density-padding-xs, var(--spacing-2))}.card-padding-sm{padding:var(--lc-density-padding-sm, var(--spacing-3))}.card-padding-md{padding:var(--lc-density-padding-md, var(--spacing-4))}.card-padding-lg{padding:var(--lc-density-padding-lg, var(--spacing-6))}.card-radius-none{border-radius:var(--border-radius-none)}.card-radius-sm{border-radius:var(--border-radius-sm)}.card-radius-md{border-radius:var(--border-radius-md)}.card-radius-lg{border-radius:var(--border-radius-lg)}.card-radius-xl{border-radius:var(--border-radius-xl, 1.5rem)}.card-radius-full{border-radius:var(--border-radius-full)}.card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.card-clickable:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.card-clickable:hover{background-color:var(--color-surface-hover);border-color:var(--color-border-strong)}.card-clickable:active{transform:scale(.98)}.card-selected{border:1px solid var(--color-primary);background-color:var(--color-surface-selected);box-shadow:var(--shadow-brand-glow)}.card-selected.card-elevated{box-shadow:var(--shadow-brand-glow),var(--elevation-2)}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--lc-density-gap-md, var(--spacing-4));margin-bottom:var(--lc-density-padding-md, var(--spacing-4));padding-bottom:var(--lc-density-padding-sm, var(--spacing-3));border-bottom:1px solid var(--color-border, #e5e7eb)}.card__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--border-radius-md)}.card__icon--size-sm{width:1.75rem;height:1.75rem;border-radius:var(--border-radius-sm)}.card__icon--brand{background-image:var(--gradient-brand-tile);color:var(--color-on-primary, #fff);box-shadow:var(--shadow-brand-glow)}.card__icon--subtle{background-color:#20849724;color:var(--color-primary-500);border:1px solid var(--color-border-strong)}.card__header-left{flex:1;min-width:0}.card__title-row{display:flex;align-items:center;gap:.5rem}.card__badge-slot{display:inline-flex;align-items:center}.card__badge-slot:empty{display:none}.card__title{margin:0;font-weight:600;font-size:var(--lc-card-title-size, var(--font-size-lg, 1.125rem));line-height:1.3;color:var(--color-text-primary)}.card__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}.card__badge--default{background-color:var(--color-surface-hover);color:var(--color-text-secondary);border:1px solid var(--color-border)}.card__badge--primary{background-color:#20849729;color:var(--color-primary-500);border:1px solid var(--color-border-strong)}.card__badge--success{background-color:#8ea4752e;color:var(--color-success)}.card__badge--warning{background-color:#e1a0402e;color:var(--color-warning)}.card__badge--error{background-color:#9d0e0e2e;color:var(--color-error)}.card__subtitle{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.card__header-action{flex-shrink:0;display:flex;align-items:center;gap:.5rem}:host ::ng-deep [card-header],:host ::ng-deep .card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--lc-density-gap-sm, var(--spacing-2));margin-bottom:var(--lc-density-padding-md, var(--spacing-4));padding-bottom:var(--lc-density-padding-sm, var(--spacing-3));border-bottom:1px solid var(--color-divider, #e5e7eb);font-weight:600;font-size:1.125rem;color:var(--color-text-primary)}:host ::ng-deep .card-content{color:var(--color-text-primary)}:host ::ng-deep [card-footer],:host ::ng-deep .card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--lc-density-gap-sm, var(--spacing-2));margin-top:var(--lc-density-padding-md, var(--spacing-4));padding-top:var(--lc-density-padding-sm, var(--spacing-3));border-top:1px solid var(--color-divider, #e5e7eb);color:var(--color-text-secondary)}:host ::ng-deep .card-dashed lc-icon{color:var(--color-muted-tile-icon, var(--color-text-tertiary))}\n"],
|
|
165
|
+
dependencies: [{
|
|
166
|
+
kind: "component",
|
|
167
|
+
type: IconComponent,
|
|
168
|
+
selector: "lc-icon",
|
|
169
|
+
inputs: [
|
|
170
|
+
"name",
|
|
171
|
+
"variant",
|
|
172
|
+
"size",
|
|
173
|
+
"color",
|
|
174
|
+
"ariaLabel",
|
|
175
|
+
"decorative",
|
|
176
|
+
"strict"
|
|
177
|
+
]
|
|
178
|
+
}],
|
|
179
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
183
|
+
minVersion: "12.0.0",
|
|
184
|
+
version: "22.2.2",
|
|
185
|
+
ngImport: i0,
|
|
186
|
+
type: CardComponent,
|
|
187
|
+
decorators: [{
|
|
188
|
+
type: Component,
|
|
189
|
+
args: [{
|
|
190
|
+
selector: "lc-card",
|
|
191
|
+
standalone: true,
|
|
192
|
+
imports: [IconComponent],
|
|
193
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
194
|
+
template: "<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -- Enter/Space are handled by the host keydown listener (role=button, tabindex=0 when clickable) -->\n<div\n [class]=\"cardClasses()\"\n [attr.role]=\"role()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.tabindex]=\"isClickable() ? 0 : null\"\n (click)=\"handleClick($event)\"\n>\n @if (title()) {\n <div class=\"card__header\">\n @if (icon()) {\n <div\n class=\"card__icon card__icon--{{ iconVariant() }} card__icon--size-{{ iconSize() }}\"\n aria-hidden=\"true\"\n >\n <lc-icon [name]=\"icon()!\" [size]=\"iconSize() === 'sm' ? 'xs' : 'sm'\" [decorative]=\"true\" />\n </div>\n }\n <div class=\"card__header-left\">\n <div class=\"card__title-row\">\n @switch (headingLevel()) {\n @case (2) {\n <h2 class=\"card__title\">{{ title() }}</h2>\n }\n @case (4) {\n <h4 class=\"card__title\">{{ title() }}</h4>\n }\n @case (5) {\n <h5 class=\"card__title\">{{ title() }}</h5>\n }\n @case (6) {\n <h6 class=\"card__title\">{{ title() }}</h6>\n }\n @default {\n <h3 class=\"card__title\">{{ title() }}</h3>\n }\n }\n <!-- Rich status badge: project an lc-badge here (takes visual\n precedence over the `badge` string). Wrapper hides when empty. -->\n <span class=\"card__badge-slot\"><ng-content select=\"[card-badge]\"></ng-content></span>\n @if (badge()) {\n <span class=\"card__badge card__badge--{{ badgeVariant() }}\">{{ badge() }}</span>\n }\n </div>\n @if (subtitle()) {\n <p class=\"card__subtitle\">{{ subtitle() }}</p>\n }\n </div>\n <div class=\"card__header-action\">\n <ng-content select=\"[card-header-action]\"></ng-content>\n </div>\n </div>\n }\n <ng-content select=\"[card-header]\"></ng-content>\n <div class=\"card__body\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[card-footer]\"></ng-content>\n</div>\n",
|
|
195
|
+
styles: [":host{display:block;height:100%}.card{position:relative;display:flex;flex-direction:column;height:100%;background-color:var(--color-surface);color:var(--color-text-primary);transition:box-shadow .15s ease-in-out,transform .15s ease-in-out,border-color .15s ease-in-out}.card__body{flex:1;display:flex;flex-direction:column}.card-elevated{position:relative;overflow:hidden;background-image:var(--gradient-surface);border:1px solid var(--color-border);box-shadow:var(--elevation-1)}.card-elevated:after{content:\"\";position:absolute;inset:0 0 auto;height:3px;background:var(--accent-line);opacity:.7;pointer-events:none}.card-elevated:hover{box-shadow:var(--elevation-2)}.card-outlined{background-image:none;border:1px solid var(--color-border)}.card-flat{background-image:none}.card-raised{background-image:none;border:1px solid var(--color-border);box-shadow:var(--shadow-auth-card, var(--elevation-3))}.card-dashed{background-color:var(--color-muted-tile, var(--color-surface-muted));background-image:none;border:1px dashed var(--color-muted-tile-border, var(--color-border));box-shadow:none;color:var(--color-text-secondary)}.card-padding-none{padding:0}.card-padding-xs{padding:var(--lc-density-padding-xs, var(--spacing-2))}.card-padding-sm{padding:var(--lc-density-padding-sm, var(--spacing-3))}.card-padding-md{padding:var(--lc-density-padding-md, var(--spacing-4))}.card-padding-lg{padding:var(--lc-density-padding-lg, var(--spacing-6))}.card-radius-none{border-radius:var(--border-radius-none)}.card-radius-sm{border-radius:var(--border-radius-sm)}.card-radius-md{border-radius:var(--border-radius-md)}.card-radius-lg{border-radius:var(--border-radius-lg)}.card-radius-xl{border-radius:var(--border-radius-xl, 1.5rem)}.card-radius-full{border-radius:var(--border-radius-full)}.card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.card-clickable:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.card-clickable:hover{background-color:var(--color-surface-hover);border-color:var(--color-border-strong)}.card-clickable:active{transform:scale(.98)}.card-selected{border:1px solid var(--color-primary);background-color:var(--color-surface-selected);box-shadow:var(--shadow-brand-glow)}.card-selected.card-elevated{box-shadow:var(--shadow-brand-glow),var(--elevation-2)}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--lc-density-gap-md, var(--spacing-4));margin-bottom:var(--lc-density-padding-md, var(--spacing-4));padding-bottom:var(--lc-density-padding-sm, var(--spacing-3));border-bottom:1px solid var(--color-border, #e5e7eb)}.card__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--border-radius-md)}.card__icon--size-sm{width:1.75rem;height:1.75rem;border-radius:var(--border-radius-sm)}.card__icon--brand{background-image:var(--gradient-brand-tile);color:var(--color-on-primary, #fff);box-shadow:var(--shadow-brand-glow)}.card__icon--subtle{background-color:#20849724;color:var(--color-primary-500);border:1px solid var(--color-border-strong)}.card__header-left{flex:1;min-width:0}.card__title-row{display:flex;align-items:center;gap:.5rem}.card__badge-slot{display:inline-flex;align-items:center}.card__badge-slot:empty{display:none}.card__title{margin:0;font-weight:600;font-size:var(--lc-card-title-size, var(--font-size-lg, 1.125rem));line-height:1.3;color:var(--color-text-primary)}.card__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}.card__badge--default{background-color:var(--color-surface-hover);color:var(--color-text-secondary);border:1px solid var(--color-border)}.card__badge--primary{background-color:#20849729;color:var(--color-primary-500);border:1px solid var(--color-border-strong)}.card__badge--success{background-color:#8ea4752e;color:var(--color-success)}.card__badge--warning{background-color:#e1a0402e;color:var(--color-warning)}.card__badge--error{background-color:#9d0e0e2e;color:var(--color-error)}.card__subtitle{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.card__header-action{flex-shrink:0;display:flex;align-items:center;gap:.5rem}:host ::ng-deep [card-header],:host ::ng-deep .card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--lc-density-gap-sm, var(--spacing-2));margin-bottom:var(--lc-density-padding-md, var(--spacing-4));padding-bottom:var(--lc-density-padding-sm, var(--spacing-3));border-bottom:1px solid var(--color-divider, #e5e7eb);font-weight:600;font-size:1.125rem;color:var(--color-text-primary)}:host ::ng-deep .card-content{color:var(--color-text-primary)}:host ::ng-deep [card-footer],:host ::ng-deep .card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--lc-density-gap-sm, var(--spacing-2));margin-top:var(--lc-density-padding-md, var(--spacing-4));padding-top:var(--lc-density-padding-sm, var(--spacing-3));border-top:1px solid var(--color-divider, #e5e7eb);color:var(--color-text-secondary)}:host ::ng-deep .card-dashed lc-icon{color:var(--color-muted-tile-icon, var(--color-text-tertiary))}\n"]
|
|
196
|
+
}]
|
|
197
|
+
}],
|
|
198
|
+
propDecorators: {
|
|
199
|
+
title: [{
|
|
200
|
+
type: i0.Input,
|
|
201
|
+
args: [{
|
|
202
|
+
isSignal: true,
|
|
203
|
+
alias: "title",
|
|
204
|
+
required: false
|
|
205
|
+
}]
|
|
206
|
+
}],
|
|
207
|
+
subtitle: [{
|
|
208
|
+
type: i0.Input,
|
|
209
|
+
args: [{
|
|
210
|
+
isSignal: true,
|
|
211
|
+
alias: "subtitle",
|
|
212
|
+
required: false
|
|
213
|
+
}]
|
|
214
|
+
}],
|
|
215
|
+
icon: [{
|
|
216
|
+
type: i0.Input,
|
|
217
|
+
args: [{
|
|
218
|
+
isSignal: true,
|
|
219
|
+
alias: "icon",
|
|
220
|
+
required: false
|
|
221
|
+
}]
|
|
222
|
+
}],
|
|
223
|
+
iconVariant: [{
|
|
224
|
+
type: i0.Input,
|
|
225
|
+
args: [{
|
|
226
|
+
isSignal: true,
|
|
227
|
+
alias: "iconVariant",
|
|
228
|
+
required: false
|
|
229
|
+
}]
|
|
230
|
+
}],
|
|
231
|
+
iconSize: [{
|
|
232
|
+
type: i0.Input,
|
|
233
|
+
args: [{
|
|
234
|
+
isSignal: true,
|
|
235
|
+
alias: "iconSize",
|
|
236
|
+
required: false
|
|
237
|
+
}]
|
|
238
|
+
}],
|
|
239
|
+
badge: [{
|
|
240
|
+
type: i0.Input,
|
|
241
|
+
args: [{
|
|
242
|
+
isSignal: true,
|
|
243
|
+
alias: "badge",
|
|
244
|
+
required: false
|
|
245
|
+
}]
|
|
246
|
+
}],
|
|
247
|
+
badgeVariant: [{
|
|
248
|
+
type: i0.Input,
|
|
249
|
+
args: [{
|
|
250
|
+
isSignal: true,
|
|
251
|
+
alias: "badgeVariant",
|
|
252
|
+
required: false
|
|
253
|
+
}]
|
|
254
|
+
}],
|
|
255
|
+
variant: [{
|
|
256
|
+
type: i0.Input,
|
|
257
|
+
args: [{
|
|
258
|
+
isSignal: true,
|
|
259
|
+
alias: "variant",
|
|
260
|
+
required: false
|
|
261
|
+
}]
|
|
262
|
+
}],
|
|
263
|
+
padding: [{
|
|
264
|
+
type: i0.Input,
|
|
265
|
+
args: [{
|
|
266
|
+
isSignal: true,
|
|
267
|
+
alias: "padding",
|
|
268
|
+
required: false
|
|
269
|
+
}]
|
|
270
|
+
}],
|
|
271
|
+
clickable: [{
|
|
272
|
+
type: i0.Input,
|
|
273
|
+
args: [{
|
|
274
|
+
isSignal: true,
|
|
275
|
+
alias: "clickable",
|
|
276
|
+
required: false
|
|
277
|
+
}]
|
|
278
|
+
}],
|
|
279
|
+
selected: [{
|
|
280
|
+
type: i0.Input,
|
|
281
|
+
args: [{
|
|
282
|
+
isSignal: true,
|
|
283
|
+
alias: "selected",
|
|
284
|
+
required: false
|
|
285
|
+
}]
|
|
286
|
+
}],
|
|
287
|
+
borderRadius: [{
|
|
288
|
+
type: i0.Input,
|
|
289
|
+
args: [{
|
|
290
|
+
isSignal: true,
|
|
291
|
+
alias: "borderRadius",
|
|
292
|
+
required: false
|
|
293
|
+
}]
|
|
294
|
+
}],
|
|
295
|
+
headingLevel: [{
|
|
296
|
+
type: i0.Input,
|
|
297
|
+
args: [{
|
|
298
|
+
isSignal: true,
|
|
299
|
+
alias: "headingLevel",
|
|
300
|
+
required: false
|
|
301
|
+
}]
|
|
302
|
+
}],
|
|
303
|
+
ariaLabel: [{
|
|
304
|
+
type: i0.Input,
|
|
305
|
+
args: [{
|
|
306
|
+
isSignal: true,
|
|
307
|
+
alias: "ariaLabel",
|
|
308
|
+
required: false
|
|
309
|
+
}]
|
|
310
|
+
}],
|
|
311
|
+
cardClick: [{
|
|
312
|
+
type: i0.Output,
|
|
313
|
+
args: ["cardClick"]
|
|
314
|
+
}],
|
|
315
|
+
handleKeydown: [{
|
|
316
|
+
type: HostListener,
|
|
317
|
+
args: ["keydown", ["$event"]]
|
|
318
|
+
}]
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
export { CardComponent };
|
|
322
|
+
|
|
323
|
+
//# sourceMappingURL=lifecorner-angular-ui-kit-card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecorner-angular-ui-kit-card.mjs","names":[],"sources":["../../../../libs/angular-ui-kit/src/lib/card/card.component.ts","../../../../libs/angular-ui-kit/src/lib/card/card.component.html"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n HostListener,\n computed,\n} from '@angular/core';\nimport { IconComponent } from '@lifecorner/angular-ui-kit/icon';\n\n/** Visual variant of `lc-card`. */\nexport type CardVariant = 'elevated' | 'outlined' | 'flat' | 'raised' | 'dashed';\n\n/** Heading level of `lc-card`'s built-in title. */\nexport type CardHeadingLevel = 2 | 3 | 4 | 5 | 6;\n\n/**\n * Card component for content grouping and visual hierarchy.\n *\n * Features:\n * - Variant styles (elevated, outlined, flat, raised, dashed)\n * - Configurable padding (none, xs, sm, md, lg)\n * - Border radius options (none, sm, md, lg, xl, full)\n * - Optional title display, with an optional leading icon tile\n * - Content projection for flexible body content\n *\n * @example\n * ```html\n * <lc-card title=\"Card Title\" variant=\"elevated\" padding=\"md\">\n * <p>Card body content</p>\n * </lc-card>\n *\n * <!-- With a leading brand-tile icon in the header -->\n * <lc-card title=\"Repository\" subtitle=\"Checkout & profile\" icon=\"git-branch\">\n * ...\n * </lc-card>\n * ```\n */\n@Component({\n selector: 'lc-card',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n /**\n * Optional title rendered as a styled header.\n * For complex headers (e.g. title + action button), use content projection instead.\n */\n title = input<string | undefined>(undefined);\n\n /**\n * Optional subtitle rendered below the title.\n */\n subtitle = input<string | undefined>(undefined);\n\n /**\n * Optional leading icon (Tabler icon name) rendered as a teal brand tile to\n * the left of the title. Only shown when `title` is set.\n */\n icon = input<string | undefined>(undefined);\n\n /**\n * Visual treatment of the leading icon tile.\n * - brand: gradient teal tile with light ink (default)\n * - subtle: translucent surface tile with brand-teal ink\n * @default 'brand'\n */\n iconVariant = input<'brand' | 'subtle'>('brand');\n\n /**\n * Size of the leading icon tile.\n * - md: 2.25rem tile (default)\n * - sm: compact ~1.75rem chip for dense card headers\n * @default 'md'\n */\n iconSize = input<'sm' | 'md'>('md');\n\n /**\n * Optional badge text/count shown next to the title (e.g. item count).\n * For a richer status badge (e.g. a leading status dot), project an\n * `lc-badge` into the `card-badge` slot instead — the slot takes precedence.\n */\n badge = input<string | undefined>(undefined);\n\n /**\n * Badge color variant.\n * @default 'default'\n */\n badgeVariant = input<'default' | 'primary' | 'success' | 'warning' | 'error'>('default');\n\n /**\n * Visual variant of the card\n * - elevated: Box shadow (default)\n * - outlined: Border only (the hairline `--color-border`, no shadow) — the\n * content card on the \"Weite\" sky with `borderRadius=\"xl\"`\n * - flat: No shadow or border\n * - raised: plain surface, hairline border and the long, soft\n * `--shadow-auth-card`, no accent line — the sign-in card\n * - dashed: the muted \"coming soon\" tile — `--color-muted-tile` fill, 1 px\n * dashed `--color-muted-tile-border`, secondary ink, icons in\n * `--color-muted-tile-icon`. Never clickable: `clickable` is ignored\n * @default 'elevated'\n */\n variant = input<CardVariant>('elevated');\n\n /**\n * Padding inside the card\n * @default 'md'\n */\n padding = input<'none' | 'xs' | 'sm' | 'md' | 'lg'>('md');\n\n /**\n * Whether the card is clickable (hover effects, cursor pointer)\n * @default false\n */\n clickable = input<boolean>(false);\n\n /**\n * Whether the card is selected (if clickable)\n * @default false\n */\n selected = input<boolean>(false);\n\n /**\n * Border radius size: `none`, `sm`, `md`, `lg` (18 px), `xl` (24 px, the\n * \"Weite\" content card) or `full`.\n * @default 'md'\n */\n borderRadius = input<'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'>('md');\n\n /**\n * Heading level of the built-in `title` (`h2`–`h6`), so the card fits the\n * page's outline. Semantics only, the look stays the same.\n * @default 3\n */\n headingLevel = input<CardHeadingLevel>(3);\n\n /**\n * ARIA label for accessibility\n */\n ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Emitted when card is clicked (if clickable)\n */\n readonly cardClick = output<MouseEvent>();\n\n /**\n * Whether the card acts as a button: `clickable`, except for the dashed\n * \"coming soon\" tile, which is never interactive.\n */\n protected isClickable = computed(() => this.clickable() && this.variant() !== 'dashed');\n\n /**\n * Compute card CSS classes based on inputs\n */\n protected cardClasses = computed(() => {\n const classes = [\n 'card',\n `card-${this.variant()}`,\n `card-padding-${this.padding()}`,\n `card-radius-${this.borderRadius()}`,\n ];\n\n if (this.isClickable()) {\n classes.push('card-clickable');\n }\n\n // The dashed tile is never interactive, so it is never selected either.\n if (this.selected() && this.variant() !== 'dashed') {\n classes.push('card-selected');\n }\n\n return classes.join(' ');\n });\n\n /**\n * Compute ARIA role based on clickable state\n */\n protected role = computed(() => (this.isClickable() ? 'button' : 'article'));\n\n /**\n * Handle card click events\n */\n protected handleClick(event: MouseEvent): void {\n if (this.isClickable()) {\n this.cardClick.emit(event);\n }\n }\n\n /**\n * Handle keyboard events for accessibility\n */\n @HostListener('keydown', ['$event'])\n protected handleKeydown(event: KeyboardEvent): void {\n if (this.isClickable() && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n const mouseEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n });\n this.cardClick.emit(mouseEvent);\n }\n }\n}\n","<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -- Enter/Space are handled by the host keydown listener (role=button, tabindex=0 when clickable) -->\n<div\n [class]=\"cardClasses()\"\n [attr.role]=\"role()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.tabindex]=\"isClickable() ? 0 : null\"\n (click)=\"handleClick($event)\"\n>\n @if (title()) {\n <div class=\"card__header\">\n @if (icon()) {\n <div\n class=\"card__icon card__icon--{{ iconVariant() }} card__icon--size-{{ iconSize() }}\"\n aria-hidden=\"true\"\n >\n <lc-icon [name]=\"icon()!\" [size]=\"iconSize() === 'sm' ? 'xs' : 'sm'\" [decorative]=\"true\" />\n </div>\n }\n <div class=\"card__header-left\">\n <div class=\"card__title-row\">\n @switch (headingLevel()) {\n @case (2) {\n <h2 class=\"card__title\">{{ title() }}</h2>\n }\n @case (4) {\n <h4 class=\"card__title\">{{ title() }}</h4>\n }\n @case (5) {\n <h5 class=\"card__title\">{{ title() }}</h5>\n }\n @case (6) {\n <h6 class=\"card__title\">{{ title() }}</h6>\n }\n @default {\n <h3 class=\"card__title\">{{ title() }}</h3>\n }\n }\n <!-- Rich status badge: project an lc-badge here (takes visual\n precedence over the `badge` string). Wrapper hides when empty. -->\n <span class=\"card__badge-slot\"><ng-content select=\"[card-badge]\"></ng-content></span>\n @if (badge()) {\n <span class=\"card__badge card__badge--{{ badgeVariant() }}\">{{ badge() }}</span>\n }\n </div>\n @if (subtitle()) {\n <p class=\"card__subtitle\">{{ subtitle() }}</p>\n }\n </div>\n <div class=\"card__header-action\">\n <ng-content select=\"[card-header-action]\"></ng-content>\n </div>\n </div>\n }\n <ng-content select=\"[card-header]\"></ng-content>\n <div class=\"card__body\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[card-footer]\"></ng-content>\n</div>\n"],"mappings":"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"}
|