@sky.ui/core 0.0.1
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/LICENSE.md +139 -0
- package/README.md +113 -0
- package/auto-import-loader.js +60 -0
- package/auto-import.js +93 -0
- package/dist/custom-elements.json +27051 -0
- package/dist/helper/controllers/animation-controller.d.ts +120 -0
- package/dist/helper/controllers/animation-controller.js +2 -0
- package/dist/helper/controllers/animation-controller.js.map +1 -0
- package/dist/helper/controllers/index.d.ts +2 -0
- package/dist/helper/controllers/popover-controller.d.ts +162 -0
- package/dist/helper/controllers/popover-controller.js +2 -0
- package/dist/helper/controllers/popover-controller.js.map +1 -0
- package/dist/helper/form-control-base.d.ts +1 -0
- package/dist/helper/iconify-offline.d.ts +73 -0
- package/dist/helper/iconify-offline.js +2 -0
- package/dist/helper/iconify-offline.js.map +1 -0
- package/dist/helper/index.d.ts +5 -0
- package/dist/helper/internals/form-control-base.d.ts +81 -0
- package/dist/helper/internals/form-control-base.js +2 -0
- package/dist/helper/internals/form-control-base.js.map +1 -0
- package/dist/helper/internals/index.d.ts +1 -0
- package/dist/helper/utils/color-resolver.d.ts +139 -0
- package/dist/helper/utils/color-resolver.js +2 -0
- package/dist/helper/utils/color-resolver.js.map +1 -0
- package/dist/helper/utils/index.d.ts +2 -0
- package/dist/helper/utils/size-resolver.d.ts +6 -0
- package/dist/helper/utils/size-resolver.js +2 -0
- package/dist/helper/utils/size-resolver.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/sky-accordion/index.d.ts +1 -0
- package/dist/sky-accordion/index.js +1 -0
- package/dist/sky-accordion/sky-accordion.d.ts +201 -0
- package/dist/sky-accordion/sky-accordion.js +85 -0
- package/dist/sky-accordion/sky-accordion.js.map +1 -0
- package/dist/sky-accordion-item/index.d.ts +1 -0
- package/dist/sky-accordion-item/index.js +1 -0
- package/dist/sky-accordion-item/sky-accordion-item.d.ts +161 -0
- package/dist/sky-accordion-item/sky-accordion-item.js +191 -0
- package/dist/sky-accordion-item/sky-accordion-item.js.map +1 -0
- package/dist/sky-alert/index.d.ts +1 -0
- package/dist/sky-alert/index.js +1 -0
- package/dist/sky-alert/sky-alert.d.ts +136 -0
- package/dist/sky-alert/sky-alert.js +292 -0
- package/dist/sky-alert/sky-alert.js.map +1 -0
- package/dist/sky-appbar/index.d.ts +1 -0
- package/dist/sky-appbar/index.js +1 -0
- package/dist/sky-appbar/sky-appbar.d.ts +84 -0
- package/dist/sky-appbar/sky-appbar.js +173 -0
- package/dist/sky-appbar/sky-appbar.js.map +1 -0
- package/dist/sky-avatar/index.d.ts +1 -0
- package/dist/sky-avatar/index.js +1 -0
- package/dist/sky-avatar/sky-avatar.d.ts +104 -0
- package/dist/sky-avatar/sky-avatar.js +152 -0
- package/dist/sky-avatar/sky-avatar.js.map +1 -0
- package/dist/sky-badge/index.d.ts +1 -0
- package/dist/sky-badge/index.js +1 -0
- package/dist/sky-badge/sky-badge.d.ts +154 -0
- package/dist/sky-badge/sky-badge.js +148 -0
- package/dist/sky-badge/sky-badge.js.map +1 -0
- package/dist/sky-breadcrumb/index.d.ts +1 -0
- package/dist/sky-breadcrumb/index.js +1 -0
- package/dist/sky-breadcrumb/sky-breadcrumb.d.ts +111 -0
- package/dist/sky-breadcrumb/sky-breadcrumb.js +230 -0
- package/dist/sky-breadcrumb/sky-breadcrumb.js.map +1 -0
- package/dist/sky-button/index.d.ts +1 -0
- package/dist/sky-button/index.js +1 -0
- package/dist/sky-button/sky-button.d.ts +118 -0
- package/dist/sky-button/sky-button.js +172 -0
- package/dist/sky-button/sky-button.js.map +1 -0
- package/dist/sky-button-group/index.d.ts +1 -0
- package/dist/sky-button-group/index.js +1 -0
- package/dist/sky-button-group/sky-button-group.d.ts +93 -0
- package/dist/sky-button-group/sky-button-group.js +281 -0
- package/dist/sky-button-group/sky-button-group.js.map +1 -0
- package/dist/sky-card/index.d.ts +1 -0
- package/dist/sky-card/index.js +1 -0
- package/dist/sky-card/sky-card.d.ts +143 -0
- package/dist/sky-card/sky-card.js +186 -0
- package/dist/sky-card/sky-card.js.map +1 -0
- package/dist/sky-carousel/index.d.ts +1 -0
- package/dist/sky-carousel/index.js +1 -0
- package/dist/sky-carousel/sky-carousel.d.ts +265 -0
- package/dist/sky-carousel/sky-carousel.js +211 -0
- package/dist/sky-carousel/sky-carousel.js.map +1 -0
- package/dist/sky-checkbox/index.d.ts +1 -0
- package/dist/sky-checkbox/index.js +1 -0
- package/dist/sky-checkbox/sky-checkbox.d.ts +165 -0
- package/dist/sky-checkbox/sky-checkbox.js +276 -0
- package/dist/sky-checkbox/sky-checkbox.js.map +1 -0
- package/dist/sky-chip/index.d.ts +1 -0
- package/dist/sky-chip/index.js +1 -0
- package/dist/sky-chip/sky-chip.d.ts +95 -0
- package/dist/sky-chip/sky-chip.js +210 -0
- package/dist/sky-chip/sky-chip.js.map +1 -0
- package/dist/sky-col/index.d.ts +1 -0
- package/dist/sky-col/index.js +1 -0
- package/dist/sky-col/sky-col.d.ts +84 -0
- package/dist/sky-col/sky-col.js +46 -0
- package/dist/sky-col/sky-col.js.map +1 -0
- package/dist/sky-combobox/index.d.ts +1 -0
- package/dist/sky-combobox/index.js +1 -0
- package/dist/sky-combobox/sky-combobox.d.ts +313 -0
- package/dist/sky-combobox/sky-combobox.js +1146 -0
- package/dist/sky-combobox/sky-combobox.js.map +1 -0
- package/dist/sky-counter/index.d.ts +1 -0
- package/dist/sky-counter/index.js +1 -0
- package/dist/sky-counter/sky-counter.d.ts +130 -0
- package/dist/sky-counter/sky-counter.js +101 -0
- package/dist/sky-counter/sky-counter.js.map +1 -0
- package/dist/sky-dialog/index.d.ts +1 -0
- package/dist/sky-dialog/index.js +1 -0
- package/dist/sky-dialog/sky-dialog.d.ts +237 -0
- package/dist/sky-dialog/sky-dialog.js +265 -0
- package/dist/sky-dialog/sky-dialog.js.map +1 -0
- package/dist/sky-divider/index.d.ts +1 -0
- package/dist/sky-divider/index.js +1 -0
- package/dist/sky-divider/sky-divider.d.ts +120 -0
- package/dist/sky-divider/sky-divider.js +42 -0
- package/dist/sky-divider/sky-divider.js.map +1 -0
- package/dist/sky-drawer/index.d.ts +1 -0
- package/dist/sky-drawer/index.js +1 -0
- package/dist/sky-drawer/sky-drawer.d.ts +161 -0
- package/dist/sky-drawer/sky-drawer.js +177 -0
- package/dist/sky-drawer/sky-drawer.js.map +1 -0
- package/dist/sky-dropdown/index.d.ts +1 -0
- package/dist/sky-dropdown/index.js +1 -0
- package/dist/sky-dropdown/sky-dropdown.d.ts +252 -0
- package/dist/sky-dropdown/sky-dropdown.js +58 -0
- package/dist/sky-dropdown/sky-dropdown.js.map +1 -0
- package/dist/sky-dropdown-item/index.d.ts +1 -0
- package/dist/sky-dropdown-item/index.js +1 -0
- package/dist/sky-dropdown-item/sky-dropdown-item.d.ts +207 -0
- package/dist/sky-dropdown-item/sky-dropdown-item.js +341 -0
- package/dist/sky-dropdown-item/sky-dropdown-item.js.map +1 -0
- package/dist/sky-flexbar/index.d.ts +1 -0
- package/dist/sky-flexbar/index.js +1 -0
- package/dist/sky-flexbar/sky-flexbar.d.ts +189 -0
- package/dist/sky-flexbar/sky-flexbar.js +148 -0
- package/dist/sky-flexbar/sky-flexbar.js.map +1 -0
- package/dist/sky-flexbox/index.d.ts +1 -0
- package/dist/sky-flexbox/index.js +1 -0
- package/dist/sky-flexbox/sky-flexbox.d.ts +156 -0
- package/dist/sky-flexbox/sky-flexbox.js +40 -0
- package/dist/sky-flexbox/sky-flexbox.js.map +1 -0
- package/dist/sky-flexcol/index.d.ts +1 -0
- package/dist/sky-flexcol/index.js +1 -0
- package/dist/sky-flexcol/sky-flexcol.d.ts +154 -0
- package/dist/sky-flexcol/sky-flexcol.js +14 -0
- package/dist/sky-flexcol/sky-flexcol.js.map +1 -0
- package/dist/sky-flexitem/index.d.ts +1 -0
- package/dist/sky-flexitem/index.js +1 -0
- package/dist/sky-flexitem/sky-flexitem.d.ts +114 -0
- package/dist/sky-flexitem/sky-flexitem.js +45 -0
- package/dist/sky-flexitem/sky-flexitem.js.map +1 -0
- package/dist/sky-form/index.d.ts +1 -0
- package/dist/sky-form/index.js +1 -0
- package/dist/sky-form/sky-form.d.ts +286 -0
- package/dist/sky-form/sky-form.js +66 -0
- package/dist/sky-form/sky-form.js.map +1 -0
- package/dist/sky-grid/index.d.ts +1 -0
- package/dist/sky-grid/index.js +1 -0
- package/dist/sky-grid/sky-grid.d.ts +78 -0
- package/dist/sky-grid/sky-grid.js +40 -0
- package/dist/sky-grid/sky-grid.js.map +1 -0
- package/dist/sky-icon/index.d.ts +1 -0
- package/dist/sky-icon/index.js +1 -0
- package/dist/sky-icon/ion-local.json.js +2 -0
- package/dist/sky-icon/ion-local.json.js.map +1 -0
- package/dist/sky-icon/sky-icon.d.ts +123 -0
- package/dist/sky-icon/sky-icon.js +40 -0
- package/dist/sky-icon/sky-icon.js.map +1 -0
- package/dist/sky-image/index.d.ts +1 -0
- package/dist/sky-image/index.js +1 -0
- package/dist/sky-image/sky-image.d.ts +102 -0
- package/dist/sky-image/sky-image.js +29 -0
- package/dist/sky-image/sky-image.js.map +1 -0
- package/dist/sky-input/index.d.ts +1 -0
- package/dist/sky-input/index.js +1 -0
- package/dist/sky-input/sky-input.d.ts +345 -0
- package/dist/sky-input/sky-input.js +820 -0
- package/dist/sky-input/sky-input.js.map +1 -0
- package/dist/sky-list/index.d.ts +1 -0
- package/dist/sky-list/index.js +1 -0
- package/dist/sky-list/sky-list.d.ts +85 -0
- package/dist/sky-list/sky-list.js +41 -0
- package/dist/sky-list/sky-list.js.map +1 -0
- package/dist/sky-listitem/index.d.ts +1 -0
- package/dist/sky-listitem/index.js +1 -0
- package/dist/sky-listitem/sky-listitem.d.ts +76 -0
- package/dist/sky-listitem/sky-listitem.js +104 -0
- package/dist/sky-listitem/sky-listitem.js.map +1 -0
- package/dist/sky-navbar/index.d.ts +1 -0
- package/dist/sky-navbar/index.js +1 -0
- package/dist/sky-navbar/sky-navbar.d.ts +207 -0
- package/dist/sky-navbar/sky-navbar.js +521 -0
- package/dist/sky-navbar/sky-navbar.js.map +1 -0
- package/dist/sky-navpanel/index.d.ts +1 -0
- package/dist/sky-navpanel/index.js +1 -0
- package/dist/sky-navpanel/sky-navpanel.d.ts +186 -0
- package/dist/sky-navpanel/sky-navpanel.js +404 -0
- package/dist/sky-navpanel/sky-navpanel.js.map +1 -0
- package/dist/sky-notification/index.d.ts +1 -0
- package/dist/sky-notification/index.js +1 -0
- package/dist/sky-notification/sky-notification.d.ts +152 -0
- package/dist/sky-notification/sky-notification.js +456 -0
- package/dist/sky-notification/sky-notification.js.map +1 -0
- package/dist/sky-otp/index.d.ts +1 -0
- package/dist/sky-otp/index.js +1 -0
- package/dist/sky-otp/sky-otp.d.ts +101 -0
- package/dist/sky-otp/sky-otp.js +96 -0
- package/dist/sky-otp/sky-otp.js.map +1 -0
- package/dist/sky-overlay/index.d.ts +1 -0
- package/dist/sky-overlay/index.js +1 -0
- package/dist/sky-overlay/sky-overlay.d.ts +71 -0
- package/dist/sky-overlay/sky-overlay.js +26 -0
- package/dist/sky-overlay/sky-overlay.js.map +1 -0
- package/dist/sky-pagination/index.d.ts +1 -0
- package/dist/sky-pagination/index.js +1 -0
- package/dist/sky-pagination/sky-pagination.d.ts +167 -0
- package/dist/sky-pagination/sky-pagination.js +453 -0
- package/dist/sky-pagination/sky-pagination.js.map +1 -0
- package/dist/sky-progress/index.d.ts +1 -0
- package/dist/sky-progress/index.js +1 -0
- package/dist/sky-progress/sky-progress.d.ts +70 -0
- package/dist/sky-progress/sky-progress.js +87 -0
- package/dist/sky-progress/sky-progress.js.map +1 -0
- package/dist/sky-radio/index.d.ts +1 -0
- package/dist/sky-radio/index.js +1 -0
- package/dist/sky-radio/sky-radio.d.ts +118 -0
- package/dist/sky-radio/sky-radio.js +109 -0
- package/dist/sky-radio/sky-radio.js.map +1 -0
- package/dist/sky-radio-group/index.d.ts +1 -0
- package/dist/sky-radio-group/index.js +1 -0
- package/dist/sky-radio-group/sky-radio-group.d.ts +186 -0
- package/dist/sky-radio-group/sky-radio-group.js +239 -0
- package/dist/sky-radio-group/sky-radio-group.js.map +1 -0
- package/dist/sky-range/index.d.ts +1 -0
- package/dist/sky-range/index.js +1 -0
- package/dist/sky-range/sky-range.d.ts +110 -0
- package/dist/sky-range/sky-range.js +196 -0
- package/dist/sky-range/sky-range.js.map +1 -0
- package/dist/sky-row/index.d.ts +1 -0
- package/dist/sky-row/index.js +1 -0
- package/dist/sky-row/sky-row.d.ts +57 -0
- package/dist/sky-row/sky-row.js +6 -0
- package/dist/sky-row/sky-row.js.map +1 -0
- package/dist/sky-serial/index.d.ts +1 -0
- package/dist/sky-serial/index.js +1 -0
- package/dist/sky-serial/sky-serial.d.ts +127 -0
- package/dist/sky-serial/sky-serial.js +133 -0
- package/dist/sky-serial/sky-serial.js.map +1 -0
- package/dist/sky-sheet/index.d.ts +1 -0
- package/dist/sky-sheet/index.js +1 -0
- package/dist/sky-sheet/sky-sheet.d.ts +70 -0
- package/dist/sky-sheet/sky-sheet.js +47 -0
- package/dist/sky-sheet/sky-sheet.js.map +1 -0
- package/dist/sky-skeleton/index.d.ts +1 -0
- package/dist/sky-skeleton/index.js +1 -0
- package/dist/sky-skeleton/sky-skeleton.d.ts +80 -0
- package/dist/sky-skeleton/sky-skeleton.js +233 -0
- package/dist/sky-skeleton/sky-skeleton.js.map +1 -0
- package/dist/sky-slider/index.d.ts +1 -0
- package/dist/sky-slider/index.js +1 -0
- package/dist/sky-slider/sky-slider.d.ts +96 -0
- package/dist/sky-slider/sky-slider.js +139 -0
- package/dist/sky-slider/sky-slider.js.map +1 -0
- package/dist/sky-speeddial/index.d.ts +1 -0
- package/dist/sky-speeddial/index.js +1 -0
- package/dist/sky-speeddial/sky-speeddial.d.ts +86 -0
- package/dist/sky-speeddial/sky-speeddial.js +154 -0
- package/dist/sky-speeddial/sky-speeddial.js.map +1 -0
- package/dist/sky-spinner/index.d.ts +1 -0
- package/dist/sky-spinner/index.js +1 -0
- package/dist/sky-spinner/sky-spinner.d.ts +87 -0
- package/dist/sky-spinner/sky-spinner.js +334 -0
- package/dist/sky-spinner/sky-spinner.js.map +1 -0
- package/dist/sky-steps/index.d.ts +1 -0
- package/dist/sky-steps/index.js +1 -0
- package/dist/sky-steps/sky-steps.d.ts +170 -0
- package/dist/sky-steps/sky-steps.js +455 -0
- package/dist/sky-steps/sky-steps.js.map +1 -0
- package/dist/sky-switch/index.d.ts +1 -0
- package/dist/sky-switch/index.js +1 -0
- package/dist/sky-switch/sky-switch.d.ts +116 -0
- package/dist/sky-switch/sky-switch.js +191 -0
- package/dist/sky-switch/sky-switch.js.map +1 -0
- package/dist/sky-tab/index.d.ts +1 -0
- package/dist/sky-tab/index.js +1 -0
- package/dist/sky-tab/sky-tab.d.ts +188 -0
- package/dist/sky-tab/sky-tab.js +390 -0
- package/dist/sky-tab/sky-tab.js.map +1 -0
- package/dist/sky-tab-button/index.d.ts +1 -0
- package/dist/sky-tab-button/index.js +1 -0
- package/dist/sky-tab-button/sky-tab-button.d.ts +114 -0
- package/dist/sky-tab-button/sky-tab-button.js +167 -0
- package/dist/sky-tab-button/sky-tab-button.js.map +1 -0
- package/dist/sky-theme-provider/index.d.ts +1 -0
- package/dist/sky-theme-provider/index.js +1 -0
- package/dist/sky-theme-provider/sky-theme-provider.d.ts +169 -0
- package/dist/sky-theme-provider/sky-theme-provider.js +12 -0
- package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -0
- package/dist/sky-theme-switcher/index.d.ts +1 -0
- package/dist/sky-theme-switcher/index.js +1 -0
- package/dist/sky-theme-switcher/sky-theme-switcher.d.ts +92 -0
- package/dist/sky-theme-switcher/sky-theme-switcher.js +43 -0
- package/dist/sky-theme-switcher/sky-theme-switcher.js.map +1 -0
- package/dist/sky-tooltip/index.d.ts +1 -0
- package/dist/sky-tooltip/index.js +1 -0
- package/dist/sky-tooltip/sky-tooltip.d.ts +156 -0
- package/dist/sky-tooltip/sky-tooltip.js +242 -0
- package/dist/sky-tooltip/sky-tooltip.js.map +1 -0
- package/package.json +475 -0
- package/plugins/rollup-plugin.d.ts +19 -0
- package/plugins/rollup-plugin.js +129 -0
- package/plugins/vite-plugin.d.ts +22 -0
- package/plugins/vite-plugin.js +116 -0
- package/plugins/webpack-plugin.d.ts +12 -0
- package/plugins/webpack-plugin.js +46 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { LitElement, PropertyValues } from "lit";
|
|
2
|
+
export type SkyAvatarFit = "cover" | "contain";
|
|
3
|
+
/**
|
|
4
|
+
* @element sky-avatar
|
|
5
|
+
*
|
|
6
|
+
* @summary Avatar that renders image content or fallback slot content with configurable size, radius, outline, and loading state.
|
|
7
|
+
*
|
|
8
|
+
* @status stable
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*
|
|
11
|
+
* @documentation https://library.sky-ui.com/components/avatar
|
|
12
|
+
*
|
|
13
|
+
* @slot - Fallback content (e.g., initials or an icon) rendered when `image` is empty.
|
|
14
|
+
*
|
|
15
|
+
* @property {string} size - Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).
|
|
16
|
+
* @property {string} image - Image URL; fallback slot is shown on load error.
|
|
17
|
+
* @property {SkyAvatarFit} fit - Image fill mode: `cover` (default) or `contain`.
|
|
18
|
+
* @property {string} radius - Border radius token or CSS value.
|
|
19
|
+
* @property {string} color - Token or CSS color applied to fallback slot content.
|
|
20
|
+
* @property {string} alt - Accessible name when image content conveys meaning.
|
|
21
|
+
* @property {string} outline - CSS `outline` value.
|
|
22
|
+
* @property {string} outlineOffset - CSS `outline-offset` value.
|
|
23
|
+
* @property {boolean} loading - Shows loading overlay when true.
|
|
24
|
+
* @property {boolean} disabled - Dims and disables pointer interactions.
|
|
25
|
+
* @property {boolean} interactive - Enables interactive behavior with keyboard/click activation.
|
|
26
|
+
* @property {boolean} shadow - When true, applies glass background, border, and elevation; default is a clean avatar.
|
|
27
|
+
*
|
|
28
|
+
* @csspart avatar - The avatar container element.
|
|
29
|
+
* @csspart loading-overlay - The loading overlay container (shown when `loading` is true).
|
|
30
|
+
* @csspart spinner - The spinner element shown when loading.
|
|
31
|
+
*
|
|
32
|
+
* @Behavior
|
|
33
|
+
* - Applies image content when available; otherwise renders fallback slot content.
|
|
34
|
+
* - Uses keyed rendering to reset avatar content when image availability changes.
|
|
35
|
+
* - Scales spinner dimensions from resolved avatar size for numeric values.
|
|
36
|
+
* - Respects reduced-motion preference by disabling spinner animation.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```html
|
|
40
|
+
* <sky-avatar size="56px" radius="full" color="primary">
|
|
41
|
+
* JD
|
|
42
|
+
* </sky-avatar>
|
|
43
|
+
* ```
|
|
44
|
+
* ```vue
|
|
45
|
+
* <template>
|
|
46
|
+
* <sky-avatar size="56px" radius="full" color="primary">
|
|
47
|
+
* JD
|
|
48
|
+
* </sky-avatar>
|
|
49
|
+
* </template>
|
|
50
|
+
* ```
|
|
51
|
+
* ```jsx
|
|
52
|
+
* export default function Demo() {
|
|
53
|
+
* return (
|
|
54
|
+
* <sky-avatar size="56px" radius="full" color="primary">
|
|
55
|
+
* JD
|
|
56
|
+
* </sky-avatar>
|
|
57
|
+
* );
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare class SkyAvatar extends LitElement {
|
|
62
|
+
/** Avatar size: preset sm|md|lg or CSS length. @default "50px" */
|
|
63
|
+
size: string;
|
|
64
|
+
/** Image URL. On error, slot is shown. @default "" */
|
|
65
|
+
image: string;
|
|
66
|
+
/** How the image fills the avatar. @default "cover" */
|
|
67
|
+
fit: SkyAvatarFit;
|
|
68
|
+
/** Border radius token or CSS value. @default "md" */
|
|
69
|
+
radius: string;
|
|
70
|
+
/** Accessible name when image is set. @default "" */
|
|
71
|
+
alt: string;
|
|
72
|
+
/** Slot text/icon color token/CSS color. @default "dark" */
|
|
73
|
+
color: string;
|
|
74
|
+
/** Outline string. @default "" */
|
|
75
|
+
outline: string;
|
|
76
|
+
/** Outline offset value. @default "2px" */
|
|
77
|
+
outlineOffset: string;
|
|
78
|
+
/** Loading state. @default false */
|
|
79
|
+
loading: boolean;
|
|
80
|
+
/** Disables the avatar. @default false */
|
|
81
|
+
disabled: boolean;
|
|
82
|
+
/** When true, focusable with focus ring and click. @default false */
|
|
83
|
+
interactive: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Glass styling on the avatar (`background`, `border`, `box-shadow`, backdrop).
|
|
86
|
+
* `false` (default) keeps the avatar minimal for inline use.
|
|
87
|
+
*/
|
|
88
|
+
shadow: boolean;
|
|
89
|
+
/** True when image failed to load; show slot instead. */
|
|
90
|
+
private _imageError;
|
|
91
|
+
static styles: import("lit").CSSResult;
|
|
92
|
+
updated(changed: PropertyValues): void;
|
|
93
|
+
/** Marks image load success and keeps image rendering active. */
|
|
94
|
+
private _onImageLoad;
|
|
95
|
+
/** Marks image load failure and enables fallback slot rendering. */
|
|
96
|
+
private _onImageError;
|
|
97
|
+
/** Re-dispatches click in interactive mode for host-level consumers. */
|
|
98
|
+
private _handleInteractiveClick;
|
|
99
|
+
/** Handles keyboard activation in interactive mode. */
|
|
100
|
+
private _handleInteractiveKeydown;
|
|
101
|
+
/** Derives spinner dimensions from current avatar size. */
|
|
102
|
+
private adjustSpinnerSize;
|
|
103
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
104
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i,css as r,nothing as o,html as s}from"lit";import{property as a,state as n,customElement as l}from"lit/decorators.js";import{when as d}from"lit/directives/when.js";import{keyed as p}from"lit/directives/keyed.js";import{resolveRadius as c}from"../helper/utils/size-resolver.js";import{resolveColor as h}from"../helper/utils/color-resolver.js";import{styleMap as y}from"lit/directives/style-map.js";import{classMap as v}from"lit/directives/class-map.js";const g={sm:"var(--sky-space-8, 2rem)",md:"var(--sky-space-10, 2.5rem)",lg:"var(--sky-space-12, 3rem)"},m={sm:32,md:40,lg:48};let b=class extends i{constructor(){super(...arguments),this.size="50px",this.image="",this.fit="cover",this.radius="md",this.alt="",this.color="dark",this.outline="",this.outlineOffset="2px",this.loading=!1,this.disabled=!1,this.interactive=!1,this.shadow=!1,this._imageError=!1,this._onImageLoad=()=>{this._imageError=!1},this._onImageError=()=>{this._imageError=!0}}static{this.styles=r`
|
|
2
|
+
:host {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
line-height: 0;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
:host([disabled]) {
|
|
10
|
+
opacity: var(--sky-opacity-disabled, 0.5);
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.avatar {
|
|
15
|
+
width: var(--avatar-size);
|
|
16
|
+
height: var(--avatar-size);
|
|
17
|
+
position: relative;
|
|
18
|
+
background-size: var(--avatar-bg-size, cover);
|
|
19
|
+
background-position: center;
|
|
20
|
+
background-repeat: no-repeat;
|
|
21
|
+
border-radius: var(--avatar-border-radius, 12px);
|
|
22
|
+
display: flex;
|
|
23
|
+
color: var(--slot-text-color);
|
|
24
|
+
justify-content: center;
|
|
25
|
+
align-items: center;
|
|
26
|
+
background-clip: padding-box;
|
|
27
|
+
-webkit-background-clip: padding-box;
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:host([shadow]) .avatar {
|
|
33
|
+
background-color: var(--sky-glass-primary);
|
|
34
|
+
box-shadow: var(--sky-box-shadow-primary);
|
|
35
|
+
border: var(--sky-border-primary);
|
|
36
|
+
z-index: 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:host([shadow]) .avatar::before {
|
|
40
|
+
content: "";
|
|
41
|
+
position: absolute;
|
|
42
|
+
inset: 0;
|
|
43
|
+
border-radius: inherit;
|
|
44
|
+
z-index: -1;
|
|
45
|
+
backdrop-filter: var(--sky-blur-primary) var(--sky-brightness-primary)
|
|
46
|
+
var(--sky-saturation-primary);
|
|
47
|
+
-webkit-backdrop-filter: var(--sky-blur-primary)
|
|
48
|
+
var(--sky-brightness-primary) var(--sky-saturation-primary);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
:host([loading]) .avatar {
|
|
52
|
+
will-change: transform;
|
|
53
|
+
transform: translateZ(0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.avatar:focus-visible {
|
|
57
|
+
outline: none;
|
|
58
|
+
box-shadow: var(--sky-focus-ring);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.avatar--interactive {
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
-webkit-tap-highlight-color: transparent;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.image-probe {
|
|
67
|
+
position: absolute;
|
|
68
|
+
width: 0;
|
|
69
|
+
height: 0;
|
|
70
|
+
opacity: 0;
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
::slotted(*) {
|
|
75
|
+
font-size: calc(var(--avatar-size) * 0.75);
|
|
76
|
+
font-weight: var(--sky-font-weight-semibold, 600);
|
|
77
|
+
font-family: var(--sky-font);
|
|
78
|
+
line-height: 1;
|
|
79
|
+
text-align: center;
|
|
80
|
+
display: flex;
|
|
81
|
+
justify-content: center;
|
|
82
|
+
align-items: center;
|
|
83
|
+
object-fit: contain;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.loading-overlay {
|
|
87
|
+
position: absolute;
|
|
88
|
+
inset: 0;
|
|
89
|
+
border-radius: inherit;
|
|
90
|
+
background: var(--sky-overlay-primary);
|
|
91
|
+
display: flex;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
align-items: center;
|
|
94
|
+
z-index: 1;
|
|
95
|
+
visibility: hidden;
|
|
96
|
+
}
|
|
97
|
+
:host([loading]) .loading-overlay {
|
|
98
|
+
visibility: visible;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.spinner {
|
|
102
|
+
border-width: var(--sky-border-medium, 4px);
|
|
103
|
+
border-style: solid;
|
|
104
|
+
border-color: var(--sky-text-white);
|
|
105
|
+
border-top-color: var(--slot-text-color);
|
|
106
|
+
border-radius: var(--sky-radius-full, 50%);
|
|
107
|
+
width: 40px;
|
|
108
|
+
height: 40px;
|
|
109
|
+
animation: spin var(--sky-duration-slow, 1s) linear infinite;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@keyframes spin {
|
|
113
|
+
0% {
|
|
114
|
+
transform: rotate(0deg);
|
|
115
|
+
}
|
|
116
|
+
100% {
|
|
117
|
+
transform: rotate(360deg);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@media (prefers-reduced-motion: reduce) {
|
|
122
|
+
.spinner {
|
|
123
|
+
animation: none;
|
|
124
|
+
border-top-color: var(--slot-text-color);
|
|
125
|
+
opacity: 0.8;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
`}updated(t){super.updated(t),t.has("image")&&(this._imageError=!1);const e=g[this.size]??this.size;this.style.setProperty("--avatar-size",e),this.style.setProperty("--avatar-bg-size","contain"===this.fit?"contain":"cover"),this.style.setProperty("--avatar-border-radius",c(this.radius)),this.color&&this.style.setProperty("--slot-text-color",h(this.color)),this.adjustSpinnerSize()}_handleInteractiveClick(t){this.interactive&&!this.disabled&&(t.stopPropagation(),this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0})))}_handleInteractiveKeydown(t){this.interactive&&!this.disabled&&("Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.dispatchEvent(new Event("click",{bubbles:!0,composed:!0}))))}adjustSpinnerSize(){const t=m[this.size]??parseFloat(this.size);if(Number.isFinite(t)){const e=.25*t,i=this.shadowRoot?.querySelector(".spinner");i&&(i.style.width=`${e}px`,i.style.height=`${e}px`,i.style.borderWidth=`${Math.max(1,e/10)}px`)}}render(){const t=this.image&&!this._imageError,e={};t&&(e.backgroundImage=`url(${encodeURI(this.image)})`),this.outline&&(e.outline=this.outline),this.outlineOffset&&(e.outlineOffset=this.outlineOffset);const i=this.interactive?"button":t&&this.alt?"img":o,r=this.interactive&&this.alt||t&&this.alt?this.alt:o;return s`
|
|
129
|
+
<div
|
|
130
|
+
class=${v({avatar:!0,"avatar--interactive":!!this.interactive})}
|
|
131
|
+
part="avatar"
|
|
132
|
+
style=${y(e)}
|
|
133
|
+
role=${i}
|
|
134
|
+
aria-label=${r}
|
|
135
|
+
tabindex=${this.interactive&&!this.disabled?"0":o}
|
|
136
|
+
@click=${this._handleInteractiveClick}
|
|
137
|
+
@keydown=${this._handleInteractiveKeydown}
|
|
138
|
+
>
|
|
139
|
+
${this.image?s`<img
|
|
140
|
+
class="image-probe"
|
|
141
|
+
src=${this.image}
|
|
142
|
+
alt=""
|
|
143
|
+
@load=${this._onImageLoad}
|
|
144
|
+
@error=${this._onImageError}
|
|
145
|
+
/>`:o}
|
|
146
|
+
<div class="loading-overlay" part="loading-overlay">
|
|
147
|
+
<div class="spinner" part="spinner"></div>
|
|
148
|
+
</div>
|
|
149
|
+
${p(t?"_img_":"_slot_",d(!t,()=>s`<slot></slot>`,()=>o))}
|
|
150
|
+
</div>
|
|
151
|
+
`}};t([a({type:String}),e("design:type",String)],b.prototype,"size",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"image",void 0),t([a({type:String,reflect:!0}),e("design:type",String)],b.prototype,"fit",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"radius",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"alt",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"color",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"outline",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"outlineOffset",void 0),t([a({type:Boolean,reflect:!0}),e("design:type",Boolean)],b.prototype,"loading",void 0),t([a({type:Boolean,reflect:!0}),e("design:type",Boolean)],b.prototype,"disabled",void 0),t([a({type:Boolean}),e("design:type",Boolean)],b.prototype,"interactive",void 0),t([a({type:Boolean,reflect:!0}),e("design:type",Object)],b.prototype,"shadow",void 0),t([n(),e("design:type",Object)],b.prototype,"_imageError",void 0),b=t([l("sky-avatar")],b);export{b as SkyAvatar};
|
|
152
|
+
//# sourceMappingURL=sky-avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sky-avatar.js","sources":["../../src/sky-avatar/sky-avatar.ts"],"sourcesContent":[null],"names":["SIZE_PRESETS","sm","md","lg","SIZE_PX","SkyAvatar","LitElement","constructor","this","size","image","fit","radius","alt","color","outline","outlineOffset","loading","disabled","interactive","shadow","_imageError","_onImageLoad","_onImageError","styles","css","updated","changed","super","has","resolvedSize","style","setProperty","resolveRadius","resolveColor","adjustSpinnerSize","_handleInteractiveClick","e","stopPropagation","dispatchEvent","Event","bubbles","composed","_handleInteractiveKeydown","key","preventDefault","avatarSizePx","parseFloat","Number","isFinite","spinnerSize","spinner","shadowRoot","querySelector","width","height","borderWidth","Math","max","render","showImage","avatarStyle","encodeURI","role","nothing","ariaLabel","html","classMap","avatar","styleMap","keyed","when","__decorate","property","type","String","prototype","reflect","Boolean","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./sky-badge";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sky-badge.js';
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { LitElement, PropertyValues } from "lit";
|
|
2
|
+
export type SkyBadgeClickEventDetail = {
|
|
3
|
+
originalEvent: Event;
|
|
4
|
+
};
|
|
5
|
+
export type SkyBadgePosition = "default" | "floating" | "inline";
|
|
6
|
+
export type SkyBadgeShape = "circle" | "pill" | "custom";
|
|
7
|
+
export type SkyBadgePlacement = "custom" | "top-right" | "top-left" | "bottom-left" | "bottom-right" | "top-center";
|
|
8
|
+
/**
|
|
9
|
+
* @element sky-badge
|
|
10
|
+
*
|
|
11
|
+
* @summary Badge for status dots, counts, or icons anchored to slotted content.
|
|
12
|
+
*
|
|
13
|
+
* @status stable
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
*
|
|
16
|
+
* @documentation https://library.sky-ui.com/components/badge
|
|
17
|
+
* @dependency sky-icon
|
|
18
|
+
*
|
|
19
|
+
* @slot - The content the badge attaches to.
|
|
20
|
+
* @slot badge - Optional slot to override the badge content entirely.
|
|
21
|
+
*
|
|
22
|
+
* @fires {CustomEvent<SkyBadgeClickEventDetail>} badge-click - Emitted when badge activation occurs via click, Enter, or Space while `interactive` is true.
|
|
23
|
+
*
|
|
24
|
+
* @csspart container - Wrapper around the slotted content and the badge.
|
|
25
|
+
* @csspart badge - The badge element. Use `badgeRef` for positioning (e.g. tooltip anchor).
|
|
26
|
+
* @csspart icon - The icon element when `isIcon` is true.
|
|
27
|
+
*
|
|
28
|
+
* @Behavior
|
|
29
|
+
* - Visibility is controlled by `show` and `hideWhenZero`.
|
|
30
|
+
* - Numeric values above `max` render as `<max>+`.
|
|
31
|
+
* - Interactive mode supports click and keyboard activation.
|
|
32
|
+
* - Reduced motion mode removes badge transitions.
|
|
33
|
+
*
|
|
34
|
+
* @property {string} statusColor - Badge background token or CSS color.
|
|
35
|
+
* @property {string} textColor - Text color token or CSS color.
|
|
36
|
+
* @property {string} iconColor - Icon color token or CSS color; falls back to `textColor` when empty.
|
|
37
|
+
* @property {SkyBadgePosition} position - Layout mode: `default | floating | inline`.
|
|
38
|
+
* @property {string} value - Badge text/count or icon name in icon mode.
|
|
39
|
+
* @property {boolean} isIcon - Renders icon mode when true.
|
|
40
|
+
* @property {string} size - Badge and icon size CSS length.
|
|
41
|
+
* @property {SkyBadgeShape} shape - Badge shape: `circle | pill | custom`.
|
|
42
|
+
* @property {number} max - Maximum numeric count before rendering overflow label.
|
|
43
|
+
* @property {boolean} hideWhenZero - Hides badge when value resolves to numeric zero.
|
|
44
|
+
* @property {boolean} show - Forces badge visibility independent of value.
|
|
45
|
+
* @property {string} offsetX - Horizontal offset CSS length.
|
|
46
|
+
* @property {string} offsetY - Vertical offset CSS length.
|
|
47
|
+
* @property {boolean} ring - Enables visual ring around the badge.
|
|
48
|
+
* @property {string} ringColor - Ring color token or CSS color.
|
|
49
|
+
* @property {string} ringOffset - Ring offset CSS length.
|
|
50
|
+
* @property {string | null} badgeLabel - ARIA label override.
|
|
51
|
+
* @property {boolean} badgeAriaHidden - Hides badge from assistive technology when true.
|
|
52
|
+
* @property {boolean} interactive - Enables focus/activation and `badge-click` emission.
|
|
53
|
+
* @property {SkyBadgePlacement} placement - Anchor placement preset for badge positioning.
|
|
54
|
+
* @method showBadge Forces badge visibility on.
|
|
55
|
+
* @method hideBadge Forces badge visibility off.
|
|
56
|
+
* @method setValue Updates badge value text or icon name.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```html
|
|
60
|
+
* <sky-badge value="5" statuscolor="danger" placement="top-right">
|
|
61
|
+
* <sky-icon icon="mdi:bell-outline"></sky-icon>
|
|
62
|
+
* </sky-badge>
|
|
63
|
+
* ```
|
|
64
|
+
* ```vue
|
|
65
|
+
* <template>
|
|
66
|
+
* <sky-badge value="5" statuscolor="danger" placement="top-right">
|
|
67
|
+
* <sky-icon icon="mdi:bell-outline"></sky-icon>
|
|
68
|
+
* </sky-badge>
|
|
69
|
+
* </template>
|
|
70
|
+
* ```
|
|
71
|
+
* ```jsx
|
|
72
|
+
* export default function Demo() {
|
|
73
|
+
* return (
|
|
74
|
+
* <sky-badge value="5" statuscolor="danger" placement="top-right">
|
|
75
|
+
* <sky-icon icon="mdi:bell-outline"></sky-icon>
|
|
76
|
+
* </sky-badge>
|
|
77
|
+
* );
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare class SkyBadge extends LitElement {
|
|
82
|
+
static dependencies: Record<string, CustomElementConstructor>;
|
|
83
|
+
/** Background color of the badge. */
|
|
84
|
+
statusColor: string;
|
|
85
|
+
/** Color of text content inside the badge. */
|
|
86
|
+
textColor: string;
|
|
87
|
+
/** Color of the badge icon (when `isIcon` is true). */
|
|
88
|
+
iconColor: string;
|
|
89
|
+
/** Position of the badge relative to content. */
|
|
90
|
+
position: SkyBadgePosition;
|
|
91
|
+
/** Value or icon name displayed inside the badge. */
|
|
92
|
+
value: string;
|
|
93
|
+
/** Whether the badge should render as an icon instead of text. */
|
|
94
|
+
isIcon: boolean;
|
|
95
|
+
/** Size (width/height) of the badge. e.g., `8px`, `1rem`. */
|
|
96
|
+
size: string;
|
|
97
|
+
/** Shape of the badge. `circle`, `pill`, or `custom` (use `--sky-badge-radius`). */
|
|
98
|
+
shape: SkyBadgeShape;
|
|
99
|
+
/** Maximum numeric count before showing e.g., `99+`. Ignored in icon mode. */
|
|
100
|
+
max: number;
|
|
101
|
+
/** Do not render the badge if numeric value is `0`. */
|
|
102
|
+
hideWhenZero: boolean;
|
|
103
|
+
/** Controls visibility regardless of value (useful for async data). */
|
|
104
|
+
show: boolean;
|
|
105
|
+
/** Pixel or CSS length offsets for `default`/`floating` positions. */
|
|
106
|
+
offsetX: string;
|
|
107
|
+
offsetY: string;
|
|
108
|
+
/** Optional outline ring around the badge. */
|
|
109
|
+
ring: boolean;
|
|
110
|
+
ringColor: string;
|
|
111
|
+
ringOffset: string;
|
|
112
|
+
/** Accessiblity: override the generated aria-label for screen readers. */
|
|
113
|
+
badgeLabel: string | null;
|
|
114
|
+
/** Accessibility: if true, hides the badge from assistive tech (purely decorative). */
|
|
115
|
+
badgeAriaHidden: boolean;
|
|
116
|
+
/** Make badge focusable/clickable and emit `badge-click`. */
|
|
117
|
+
interactive: boolean;
|
|
118
|
+
/** Corner preset; use "custom" to rely on offsetX/offsetY and existing behavior. */
|
|
119
|
+
placement: SkyBadgePlacement;
|
|
120
|
+
private _badgeEl;
|
|
121
|
+
/** Ref for the badge element (e.g. for tooltip anchor or positioning). */
|
|
122
|
+
badgeRef: import("lit-html/directives/ref").Ref<HTMLSpanElement>;
|
|
123
|
+
static shadowRootOptions: ShadowRootInit;
|
|
124
|
+
static styles: import("lit").CSSResult;
|
|
125
|
+
protected updated(changed: PropertyValues<this>): void;
|
|
126
|
+
/**
|
|
127
|
+
* Forces badge visibility on.
|
|
128
|
+
*
|
|
129
|
+
* @returns {void}
|
|
130
|
+
*/
|
|
131
|
+
showBadge(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Forces badge visibility off.
|
|
134
|
+
*
|
|
135
|
+
* @returns {void}
|
|
136
|
+
*/
|
|
137
|
+
hideBadge(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Updates badge value for text/count or icon modes.
|
|
140
|
+
*
|
|
141
|
+
* @param value Badge value or icon name.
|
|
142
|
+
* @returns {void}
|
|
143
|
+
*/
|
|
144
|
+
setValue(value: string): void;
|
|
145
|
+
/** Emits `badge-click` for interactive activation. */
|
|
146
|
+
private _onActivate;
|
|
147
|
+
/** Handles keyboard activation with Enter and Space. */
|
|
148
|
+
private _onKeydown;
|
|
149
|
+
/** Computes accessible badge label from current render state. */
|
|
150
|
+
private _computeAriaLabel;
|
|
151
|
+
/** Resolves anchor edges from placement preset. */
|
|
152
|
+
private _computeAnchors;
|
|
153
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
154
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i,css as o,nothing as s,html as a}from"lit";import{property as r,query as n,customElement as l}from"lit/decorators.js";import{when as p}from"lit/directives/when.js";import{createRef as d,ref as g}from"lit/directives/ref.js";import{resolveColor as c}from"../helper/utils/color-resolver.js";import{styleMap as h}from"lit/directives/style-map.js";import{SkyIcon as y}from"../sky-icon/sky-icon.js";const b=["default","floating","inline"],f=["circle","pill","custom"],u=["custom","top-right","top-left","bottom-left","bottom-right","top-center"];let v=class extends i{constructor(){super(...arguments),this.statusColor="success",this.textColor="default",this.iconColor="",this.position="default",this.value="",this.isIcon=!1,this.size="",this.shape="custom",this.max=99,this.hideWhenZero=!1,this.show=!0,this.offsetX="0px",this.offsetY="0px",this.ring=!1,this.ringColor="primary",this.ringOffset="1px",this.badgeLabel=null,this.badgeAriaHidden=!1,this.interactive=!1,this.placement="custom",this.badgeRef=d(),this._onActivate=t=>{this.interactive&&this.dispatchEvent(new CustomEvent("badge-click",{detail:{originalEvent:t},bubbles:!0,composed:!0}))},this._onKeydown=t=>{this.interactive&&("Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this._onActivate(t)))}}static{this.dependencies={"sky-icon":y}}static{this.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=o`
|
|
2
|
+
:host {
|
|
3
|
+
display: inline-block;
|
|
4
|
+
position: relative;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
/* Theming: override with --sky-badge-* for custom sizing */
|
|
7
|
+
--sky-badge-radius: 12px;
|
|
8
|
+
--sky-badge-padding: 2px;
|
|
9
|
+
--sky-badge-font-size: var(--sky-font-size-xs, 0.75rem);
|
|
10
|
+
--sky-badge-font-weight: var(--sky-font-weight-bold, 700);
|
|
11
|
+
--sky-badge-shadow: var(
|
|
12
|
+
--sky-box-shadow-primary,
|
|
13
|
+
0 1px 2px rgba(2, 6, 23, 0.15)
|
|
14
|
+
);
|
|
15
|
+
--sky-badge-translate-x: 0px;
|
|
16
|
+
--sky-badge-translate-y: 0px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.container {
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
position: relative;
|
|
22
|
+
align-items: center;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Badge base */
|
|
26
|
+
.badge {
|
|
27
|
+
min-width: 5px;
|
|
28
|
+
min-height: 5px;
|
|
29
|
+
padding: var(--sky-badge-padding);
|
|
30
|
+
display: inline-flex;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
align-items: center;
|
|
33
|
+
box-shadow: var(--sky-badge-shadow);
|
|
34
|
+
color: var(--_badge-text-color);
|
|
35
|
+
background-color: var(--_badge-bg);
|
|
36
|
+
font-weight: var(--sky-badge-font-weight);
|
|
37
|
+
font-size: var(--sky-badge-font-size);
|
|
38
|
+
line-height: var(--sky-line-height-none, 1);
|
|
39
|
+
letter-spacing: var(--sky-letter-spacing-tight, -0.01em);
|
|
40
|
+
font-family: var(--sky-font, inherit);
|
|
41
|
+
position: absolute;
|
|
42
|
+
z-index: 1;
|
|
43
|
+
border-radius: var(--_badge-radius);
|
|
44
|
+
min-width: var(--_badge-size);
|
|
45
|
+
min-height: var(--_badge-size);
|
|
46
|
+
top: var(--_anchor-top, auto);
|
|
47
|
+
right: var(--_anchor-right, auto);
|
|
48
|
+
bottom: var(--_anchor-bottom, auto);
|
|
49
|
+
left: var(--_anchor-left, auto);
|
|
50
|
+
transform: translate(
|
|
51
|
+
var(--sky-badge-translate-x),
|
|
52
|
+
var(--sky-badge-translate-y)
|
|
53
|
+
);
|
|
54
|
+
user-select: none;
|
|
55
|
+
-webkit-user-select: none;
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@media (prefers-reduced-motion: reduce) {
|
|
60
|
+
.badge {
|
|
61
|
+
transition: none;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Floating offsets & overlap */
|
|
66
|
+
.badge.floating {
|
|
67
|
+
transform: translate(
|
|
68
|
+
calc(50% + var(--sky-badge-translate-x)),
|
|
69
|
+
calc(-50% + var(--sky-badge-translate-y))
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Inline style participates in text flow */
|
|
74
|
+
.badge.inline {
|
|
75
|
+
position: static;
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
margin-inline-start: var(--sky-space-1.5, 6px);
|
|
78
|
+
transform: translate(
|
|
79
|
+
var(--sky-badge-translate-x),
|
|
80
|
+
var(--sky-badge-translate-y)
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Icon styling */
|
|
85
|
+
sky-icon[part="icon"] {
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
width: 1em;
|
|
90
|
+
height: 1em;
|
|
91
|
+
font-size: var(--_icon-size);
|
|
92
|
+
color: var(--_icon-color);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Interactive affordances */
|
|
96
|
+
.badge[role="button"] {
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
outline: none;
|
|
99
|
+
-webkit-tap-highlight-color: transparent;
|
|
100
|
+
}
|
|
101
|
+
.badge[role="button"]:focus-visible {
|
|
102
|
+
box-shadow: var(--sky-focus-ring, 0 0 0 3px
|
|
103
|
+
color-mix(in srgb, var(--_ring-color), transparent 40%));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Ring (outline) */
|
|
107
|
+
.badge.ringed::after {
|
|
108
|
+
content: "";
|
|
109
|
+
position: absolute;
|
|
110
|
+
inset: calc(-1 * var(--_ring-offset));
|
|
111
|
+
border-radius: inherit;
|
|
112
|
+
box-shadow: 0 0 0 2px var(--_ring-color);
|
|
113
|
+
pointer-events: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.badge[data-placement="top-center"] {
|
|
117
|
+
transform: translate(
|
|
118
|
+
calc(-50% + var(--sky-badge-translate-x)),
|
|
119
|
+
var(--sky-badge-translate-y)
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
`}updated(t){t.has("size")&&/^\d+$/.test(this.size)&&(this.size=`${this.size}px`),t.has("position")&&!b.includes(this.position)&&(this.position="default"),t.has("shape")&&!f.includes(this.shape)&&(this.shape="custom"),t.has("placement")&&!u.includes(this.placement)&&(this.placement="custom")}showBadge(){this.show=!0}hideBadge(){this.show=!1}setValue(t){this.value=t}_computeAriaLabel(t){if(this.badgeAriaHidden)return null;if(this.badgeLabel)return this.badgeLabel;if(this.isIcon)return"";if(null==t||""===t)return"Badge";const e=Number(t);return isNaN(e)?`Badge: ${t}`:`Badge count: ${t}`}_computeAnchors(t){if("custom"===t)return{top:"0",right:"0",bottom:"auto",left:"auto"};switch(t){case"top-right":default:return{top:"0",right:"0",bottom:"auto",left:"auto"};case"top-left":return{top:"0",right:"auto",bottom:"auto",left:"0"};case"bottom-left":return{top:"auto",right:"auto",bottom:"0",left:"0"};case"bottom-right":return{top:"auto",right:"0",bottom:"0",left:"auto"};case"top-center":return{top:"0",right:"auto",bottom:"auto",left:"50%"}}}render(){const t=Number(this.value),e=!isNaN(t)&&!this.isIcon,i=this.hideWhenZero&&e&&0===t,o=this.show&&!i,r=this.isIcon?null:e&&this.max>0&&t>this.max?`${this.max}+`:this.value,n=["badge",this.position];this.ring&&n.push("ringed");const l="circle"===this.shape?"50%":"pill"===this.shape?"999px":"var(--sky-badge-radius)",{top:d,right:y,bottom:b,left:f}=this._computeAnchors(this.placement),u={"--_badge-bg":c(this.statusColor),"--_badge-text-color":c(this.textColor),"--_badge-radius":l,"--_badge-size":this.size,"--_icon-size":this.size,"--_icon-color":c(this.iconColor||this.textColor),"--_ring-color":c(this.ringColor),"--_ring-offset":this.ringOffset,"--sky-badge-translate-x":this.offsetX,"--sky-badge-translate-y":this.offsetY,"--_anchor-top":d,"--_anchor-right":y,"--_anchor-bottom":b,"--_anchor-left":f},v=this._computeAriaLabel(r);return a`
|
|
123
|
+
<div class="container" part="container">
|
|
124
|
+
<slot></slot>
|
|
125
|
+
${p(o,()=>a`
|
|
126
|
+
<span
|
|
127
|
+
class=${n.join(" ")}
|
|
128
|
+
part="badge"
|
|
129
|
+
style=${h(u)}
|
|
130
|
+
role=${this.interactive?"button":"status"}
|
|
131
|
+
aria-live=${this.interactive?"off":"polite"}
|
|
132
|
+
data-placement=${this.placement}
|
|
133
|
+
aria-atomic="true"
|
|
134
|
+
aria-label=${v??s}
|
|
135
|
+
aria-hidden=${this.badgeAriaHidden?"true":"false"}
|
|
136
|
+
tabindex=${this.interactive?0:-1}
|
|
137
|
+
@click=${this._onActivate}
|
|
138
|
+
@keydown=${this._onKeydown}
|
|
139
|
+
${g(this.badgeRef)}
|
|
140
|
+
>
|
|
141
|
+
<slot name="badge">
|
|
142
|
+
${p(this.isIcon,()=>a`<sky-icon part="icon" icon=${this.value} aria-hidden="true"></sky-icon>`,()=>a`${r}`)}
|
|
143
|
+
</slot>
|
|
144
|
+
</span>
|
|
145
|
+
`)}
|
|
146
|
+
</div>
|
|
147
|
+
`}};t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"statusColor",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"textColor",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"iconColor",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"position",void 0),t([r({type:String}),e("design:type",String)],v.prototype,"value",void 0),t([r({type:Boolean,reflect:!0}),e("design:type",Object)],v.prototype,"isIcon",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"size",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"shape",void 0),t([r({type:Number}),e("design:type",Object)],v.prototype,"max",void 0),t([r({type:Boolean}),e("design:type",Object)],v.prototype,"hideWhenZero",void 0),t([r({type:Boolean,reflect:!0}),e("design:type",Object)],v.prototype,"show",void 0),t([r({type:String}),e("design:type",String)],v.prototype,"offsetX",void 0),t([r({type:String}),e("design:type",String)],v.prototype,"offsetY",void 0),t([r({type:Boolean}),e("design:type",Object)],v.prototype,"ring",void 0),t([r({type:String}),e("design:type",String)],v.prototype,"ringColor",void 0),t([r({type:String}),e("design:type",String)],v.prototype,"ringOffset",void 0),t([r({type:String}),e("design:type",Object)],v.prototype,"badgeLabel",void 0),t([r({type:Boolean}),e("design:type",Object)],v.prototype,"badgeAriaHidden",void 0),t([r({type:Boolean}),e("design:type",Object)],v.prototype,"interactive",void 0),t([r({type:String,reflect:!0}),e("design:type",String)],v.prototype,"placement",void 0),t([n(".badge"),e("design:type",HTMLSpanElement)],v.prototype,"_badgeEl",void 0),v=t([l("sky-badge")],v);export{v as SkyBadge};
|
|
148
|
+
//# sourceMappingURL=sky-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sky-badge.js","sources":["../../src/sky-badge/sky-badge.ts"],"sourcesContent":[null],"names":["SKY_BADGE_POSITIONS","SKY_BADGE_SHAPES","SKY_BADGE_PLACEMENTS","SkyBadge","LitElement","constructor","this","statusColor","textColor","iconColor","position","value","isIcon","size","shape","max","hideWhenZero","show","offsetX","offsetY","ring","ringColor","ringOffset","badgeLabel","badgeAriaHidden","interactive","placement","badgeRef","createRef","_onActivate","e","dispatchEvent","CustomEvent","detail","originalEvent","bubbles","composed","_onKeydown","key","preventDefault","dependencies","SkyIcon","shadowRootOptions","mode","delegatesFocus","styles","css","updated","changed","has","test","includes","showBadge","hideBadge","setValue","_computeAriaLabel","displayValue","n","Number","isNaN","_computeAnchors","top","right","bottom","left","render","numeric","isNumeric","shouldHideZero","visible","cls","push","computedRadius","badgeStyle","resolveColor","ariaLabel","html","when","join","styleMap","nothing","ref","__decorate","property","type","String","reflect","prototype","Boolean","query","HTMLSpanElement","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./sky-breadcrumb";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sky-breadcrumb.js';
|