@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,276 @@
|
|
|
1
|
+
import{__decorate as e,__metadata as t}from"tslib";import{LitElement as i,css as s,nothing as o,html as r}from"lit";import{property as a,state as n,customElement as c}from"lit/decorators.js";import{when as h}from"lit/directives/when.js";import{classMap as d}from"lit/directives/class-map.js";import{styleMap as l}from"lit/directives/style-map.js";import{resolveColor as p}from"../helper/utils/color-resolver.js";import{FormControlBase as u}from"../helper/internals/form-control-base.js";let y=class extends u{constructor(){super(...arguments),this.label="",this.id="",this.value="",this.color="primary",this.defaultChecked=!1,this.showErrors=!1,this.prefix="",this.suffix="",this.prefixColor="",this.suffixColor="",this.validationActive=!1,this.invalid=!1,this._checked=!1,this._indeterminate=!1,this.validationErrors=[],this._hasMeaningfulSlot=!1,this._inputId=`sky-cb-${Math.random().toString(36).slice(2)}`,this._onSlotChange=e=>{const t=e.target,i=this._slotHasMeaningfulContent(t);i!==this._hasMeaningfulSlot&&(this._hasMeaningfulSlot=i)},this.handleBlur=e=>{this.validationActive=!0,this.validateInput();const t=this.shadowRoot?.querySelector(".cbx");t?.classList.remove("active"),this.syncValidity()},this._onKeyDown=e=>{this.disabled||this.readonly||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),this._inputElement?.click())}}static{this.shadowRootOptions={...i.shadowRootOptions,delegatesFocus:!0}}get checked(){return this._checked}set checked(e){const t=this._checked;this._checked=e,e&&this.indeterminate&&(this.indeterminate=!1,this._inputElement&&(this._inputElement.indeterminate=!1)),this.requestUpdate("checked",t),this._inputElement&&(this._inputElement.checked=e,this._inputElement.indeterminate=this.indeterminate),this._updateVisualState(),this.syncFormValue(),this.syncValidity()}get indeterminate(){return this._indeterminate}set indeterminate(e){const t=this._indeterminate;this._indeterminate=e,e&&this.checked&&(this.checked=!1),this.requestUpdate("indeterminate",t),this._inputElement&&(this._inputElement.indeterminate=e),this._updateVisualState(),this.syncValidity()}static{this.styles=s`
|
|
2
|
+
:host {
|
|
3
|
+
display: block;
|
|
4
|
+
position: relative;
|
|
5
|
+
font-family: var(--sky-font);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:host([readonly]) .cbx {
|
|
9
|
+
cursor: default;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ✅ Show focus UI whenever anything inside is focused */
|
|
13
|
+
:host(:focus-within) .cbx span:first-child,:host(:focus) .cbx span:first-child {
|
|
14
|
+
box-shadow: 0 0 8px var(--checkbox-color);
|
|
15
|
+
border-color: var(--checkbox-color)!important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.checkbox-wrapper {
|
|
19
|
+
position: relative;
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
gap: 5px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:host([disabled]) {
|
|
26
|
+
pointer-events: none;
|
|
27
|
+
opacity: 0.6;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.cbx {
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
user-select: none;
|
|
35
|
+
gap: 5px;
|
|
36
|
+
transition: all 0.2s ease;
|
|
37
|
+
font-family: var(--sky-font);
|
|
38
|
+
font-size: var(--sky-font-size-sm);
|
|
39
|
+
line-height: var(--sky-line-height-snug, 1.25);
|
|
40
|
+
color: var(--sky-text-primary);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.cbx span {
|
|
44
|
+
display: inline-block;
|
|
45
|
+
vertical-align: middle;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.cbx span:first-child {
|
|
49
|
+
position: relative;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
width: 18px;
|
|
52
|
+
height: 18px;
|
|
53
|
+
flex-shrink: 0;
|
|
54
|
+
border-radius: min(6px, var(--sky-radius-primary));
|
|
55
|
+
vertical-align: middle;
|
|
56
|
+
border: 2px solid var(--sky-text-tertiary);
|
|
57
|
+
transition: all 0.2s ease;
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
transform: translateZ(0);
|
|
62
|
+
contain: layout;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
transition: background-color 0.2s ease;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.cbx span:first-child svg {
|
|
68
|
+
position: absolute;
|
|
69
|
+
width: 12px;
|
|
70
|
+
height: 10px;
|
|
71
|
+
fill: none;
|
|
72
|
+
stroke: var(--sky-text-white);
|
|
73
|
+
stroke-width: 2;
|
|
74
|
+
stroke-linecap: round;
|
|
75
|
+
stroke-linejoin: round;
|
|
76
|
+
stroke-dasharray: 16px;
|
|
77
|
+
stroke-dashoffset: 16px;
|
|
78
|
+
transition: stroke-dashoffset 0.2s ease, transform 0.2s ease;
|
|
79
|
+
transform: translate3d(0, 0, 0);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.cbx:hover span:first-child {
|
|
83
|
+
background-color: var(--sky-text-tertiary);
|
|
84
|
+
border-color: var(--sky-text-tertiary);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
input[type="checkbox"]:checked + .cbx:hover span:first-child {
|
|
88
|
+
box-shadow: 0 0 8px var(--checkbox-color);
|
|
89
|
+
transition: box-shadow 0.2s ease;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.cbx span:first-child:before {
|
|
93
|
+
content: "";
|
|
94
|
+
inset: 0;
|
|
95
|
+
width: auto;
|
|
96
|
+
height: auto;
|
|
97
|
+
background: var(--checkbox-color, #506eec);
|
|
98
|
+
display: block;
|
|
99
|
+
transform: scale(0);
|
|
100
|
+
opacity: 0;
|
|
101
|
+
border-radius: 50%;
|
|
102
|
+
transition: transform 0.2s ease-out, opacity 0.2s ease-out;
|
|
103
|
+
position: absolute;
|
|
104
|
+
z-index: -1;
|
|
105
|
+
pointer-events: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
input[type="checkbox"] {
|
|
109
|
+
position: absolute;
|
|
110
|
+
opacity: 0;
|
|
111
|
+
width: 1px;
|
|
112
|
+
height: 1px;
|
|
113
|
+
margin: 0;
|
|
114
|
+
padding: 0;
|
|
115
|
+
border: 0;
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
input[type="checkbox"]:focus-visible + .cbx span:first-child,
|
|
120
|
+
input[type="checkbox"]:focus + .cbx span:first-child {
|
|
121
|
+
border-color: var(--sky-text-tertiary);
|
|
122
|
+
outline:none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
input[type="checkbox"]:checked + .cbx span:first-child {
|
|
126
|
+
background: var(--checkbox-color, #506eec);
|
|
127
|
+
border-color: var(--checkbox-color, #506eec);
|
|
128
|
+
|
|
129
|
+
transform: none; /* Ensure no transform applied */
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
input[type="checkbox"]:checked + .cbx span:first-child svg.checkmark {
|
|
133
|
+
stroke-dashoffset: 0;
|
|
134
|
+
transition: stroke-dashoffset 0.2s ease-in-out 0.1s,
|
|
135
|
+
transform 0.2s ease-in-out 0.1s;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
input[type="checkbox"]:not(:checked) + .cbx span:first-child svg.checkmark {
|
|
139
|
+
transition: opacity 0.2s ease-in-out;
|
|
140
|
+
opacity: 0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
input[type="checkbox"]:checked + .cbx span:first-child:before {
|
|
144
|
+
transform: scale(3.5);
|
|
145
|
+
opacity: 0;
|
|
146
|
+
transition: transform 0.2s ease-out, opacity 0.2s ease-out;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.cbx.checked span:first-child {
|
|
150
|
+
background: var(--checkbox-color, #506eec);
|
|
151
|
+
border-color: var(--checkbox-color, #506eec);
|
|
152
|
+
|
|
153
|
+
}
|
|
154
|
+
.cbx.checked span:first-child svg.checkmark {
|
|
155
|
+
stroke-dashoffset: 0;
|
|
156
|
+
transition: stroke-dashoffset 0.2s ease-in-out 0.1s,
|
|
157
|
+
transform 0.2s ease-in-out 0.1s;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.indeterminate-line {
|
|
161
|
+
width: 10px;
|
|
162
|
+
height: 2px;
|
|
163
|
+
background-color: var(--sky-text-white);
|
|
164
|
+
position: absolute;
|
|
165
|
+
border-radius: 1px;
|
|
166
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
167
|
+
opacity: 0;
|
|
168
|
+
transform: scaleX(0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.indeterminate-active {
|
|
172
|
+
opacity: 1;
|
|
173
|
+
transform: scaleX(1);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.checked .checkmark {
|
|
177
|
+
stroke-dashoffset: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.indeterminate .checkmark {
|
|
181
|
+
display: none;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.indeterminate .indeterminate-line {
|
|
185
|
+
opacity: 1;
|
|
186
|
+
transform: scaleX(1);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
.error-message {
|
|
191
|
+
font-size: var(--sky-font-size-xs);
|
|
192
|
+
color: var(--sky-danger-primary);
|
|
193
|
+
white-space: nowrap;
|
|
194
|
+
overflow: hidden;
|
|
195
|
+
text-overflow: ellipsis;
|
|
196
|
+
pointer-events: none;
|
|
197
|
+
margin-left: 5px;
|
|
198
|
+
width: 100%;
|
|
199
|
+
text-align: start;
|
|
200
|
+
font-family: var(--sky-font);
|
|
201
|
+
}
|
|
202
|
+
:dir(rtl) .error-message {
|
|
203
|
+
margin-right: 5px;
|
|
204
|
+
margin-left: unset;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
:host([validationactive]:invalid) .cbx span:first-child {
|
|
208
|
+
|
|
209
|
+
border-color: var(--sky-danger-primary);
|
|
210
|
+
}
|
|
211
|
+
:host([validationactive]:invalid) .cbx span:first-child svg.checkmark {
|
|
212
|
+
stroke-dashoffset: 0;
|
|
213
|
+
}
|
|
214
|
+
:host([validationactive]:invalid) .cbx span:first-child:before {
|
|
215
|
+
transform: scale(3.5);
|
|
216
|
+
opacity: 0;
|
|
217
|
+
}
|
|
218
|
+
:host([validationactive]:invalid) .error-message {
|
|
219
|
+
display: block;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
:host([indeterminate]) .indeterminate-line {
|
|
223
|
+
opacity: 1;
|
|
224
|
+
transform: scaleX(1);
|
|
225
|
+
}
|
|
226
|
+
:host([indeterminate]) .cbx span:first-child {
|
|
227
|
+
background-color: var(--checkbox-color);
|
|
228
|
+
border-color: var(--checkbox-color);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.checkbox-wrapper.no-text {
|
|
232
|
+
gap: 0;
|
|
233
|
+
}
|
|
234
|
+
`}getFormValue(){return this.name?this.disabled?null:this.checked?this.value&&""!==this.value.trim()?this.value:"on":null:null}setValueFromFormState(e){if(null===e)return this.checked=!1,void(this.indeterminate=!1);"string"==typeof e&&(this.value&&""!==this.value.trim()?this.checked=e===this.value:this.checked="on"===e||"true"===e||"1"===e,this.indeterminate=!1)}getValidityAnchor(){return this.shadowRoot?.querySelector('input[type="checkbox"]')??void 0}isEmpty(){return!this.checked}getNativeControl(){return this.shadowRoot?.querySelector('input[type="checkbox"]')}onFormReset(){this.checked=this.defaultChecked,this.indeterminate=!1,this.validationErrors=[],this.invalid=!1,this.validationActive=!1}willUpdate(e){e.has("color")&&this.style.setProperty("--checkbox-color",p(this.color))}updated(e){super.updated(e),this._inputElement||(this._inputElement=this.shadowRoot?.querySelector('input[type="checkbox"]')),this._inputElement&&(this._inputElement.checked=this.checked,this._inputElement.indeterminate=this.indeterminate,this._inputElement.disabled=this.disabled||this.readonly),this._updateVisualState(),(e.has("checked")||e.has("name")||e.has("disabled")||e.has("readonly")||e.has("required")||e.has("value"))&&(this.syncFormValue(),this.syncValidity())}handleChange(e){const t=e.target;if(this.disabled||this.readonly)return this._inputElement&&(this._inputElement.checked=this.checked,this._inputElement.indeterminate=this.indeterminate),e.preventDefault(),void e.stopPropagation();this.checked=t.checked,this.validateInput();const i=this.value&&""!==this.value.trim()?this.checked?this.value:void 0:this.checked;this.dispatchEvent(new CustomEvent("value-changed",{detail:{checked:this.checked,value:i},bubbles:!0,composed:!0}))}validateInput(){if(!this.validationActive)return!0;this.validationErrors=[],this.required&&!this.checked&&(this.validationErrors=[this.requiredMessage]),this.dispatchEvent(new CustomEvent("validation-error",{detail:{errors:[...this.validationErrors]},bubbles:!0,composed:!0}));const e=this.shadowRoot?.querySelector(".cbx");this.validationErrors.length?e?.classList.add("invalid"):e?.classList.remove("invalid");const t=0===this.validationErrors.length;return this.invalid=!t,t}check(){this.disabled||this.readonly||(this.checked=!0,this.indeterminate=!1)}uncheck(){this.disabled||this.readonly||(this.checked=!1,this.indeterminate=!1)}toggle(){this.disabled||this.readonly||(this.checked=!this.checked,this.indeterminate=!1)}reset(){this.onFormReset(),this.syncFormValue(),this.syncValidity(),this.dispatchEvent(new CustomEvent("value-cleared",{detail:{value:this.value,checked:this.checked},bubbles:!0,composed:!0}))}_updateVisualState(){const e=this.shadowRoot?.querySelector(".cbx");e&&(this.checked?(e.classList.add("checked"),e.classList.remove("indeterminate")):this.indeterminate?(e.classList.add("indeterminate"),e.classList.remove("checked")):e.classList.remove("checked","indeterminate"))}_slotHasMeaningfulContent(e){return e.assignedNodes({flatten:!0}).some(e=>e.nodeType===Node.ELEMENT_NODE||(e.textContent??"").trim().length>0)}get _hasTextContent(){return!!this.prefix||!!this.suffix||!!this.label||this._hasMeaningfulSlot}render(){const e=this._hasTextContent,t=d({"checkbox-wrapper":!0,"no-text":!e}),i=d({cbx:!0,checked:this.checked,indeterminate:this.indeterminate}),s=d({box:!0,"box--checked":this.checked,"box--indeterminate":this.indeterminate,"box--invalid":this.validationErrors.length>0}),a="box"+(this.checked?" box--checked":"")+(this.indeterminate?" box--indeterminate":"")+(this.validationErrors.length?" box--invalid":"");return r`
|
|
235
|
+
<div class=${t} part="wrapper">
|
|
236
|
+
<input
|
|
237
|
+
type="checkbox"
|
|
238
|
+
id="${this._inputId}"
|
|
239
|
+
class="inp-cbx"
|
|
240
|
+
part="input"
|
|
241
|
+
.checked="${this.checked}"
|
|
242
|
+
@blur=${this.handleBlur}
|
|
243
|
+
@keydown=${this._onKeyDown}
|
|
244
|
+
.disabled="${this.disabled||this.readonly}"
|
|
245
|
+
.value="${this.value}"
|
|
246
|
+
@change=${this.handleChange}
|
|
247
|
+
aria-checked=${this.indeterminate?"mixed":this.checked}
|
|
248
|
+
aria-invalid="${this.validationErrors.length>0}"
|
|
249
|
+
aria-readonly="${this.readonly}"
|
|
250
|
+
/>
|
|
251
|
+
<label class=${i} part="label" for="${this._inputId}">
|
|
252
|
+
<span part=${a} class=${s}>
|
|
253
|
+
<svg viewBox="0 0 12 10" class="checkmark" part="checkmark">
|
|
254
|
+
<polyline points="1.5 6 4.5 9 10.5 1"></polyline>
|
|
255
|
+
</svg>
|
|
256
|
+
<div class="indeterminate-line" part="indeterminate-line"></div>
|
|
257
|
+
</span>
|
|
258
|
+
<slot @slotchange=${this._onSlotChange}></slot>
|
|
259
|
+
${h(e,()=>{const e=l({textAlign:"start",color:"var(--sky-text-primary)"}),t=l({color:this.prefixColor,display:"inline-block"}),i=l({color:this.suffixColor,display:"inline-block"});return r`
|
|
260
|
+
<span style=${e} part="text">
|
|
261
|
+
<div style=${t} part="prefix">
|
|
262
|
+
${this.prefix}
|
|
263
|
+
</div>
|
|
264
|
+
${this._hasMeaningfulSlot?o:this.label}
|
|
265
|
+
<div style=${i} part="suffix">
|
|
266
|
+
${this.suffix}
|
|
267
|
+
</div>
|
|
268
|
+
</span>
|
|
269
|
+
`})}
|
|
270
|
+
</label>
|
|
271
|
+
</div>
|
|
272
|
+
${h(this.showErrors&&this.validationErrors.length>0&&this.validationActive,()=>r`<div class="error-message" part="error-message">
|
|
273
|
+
${this.validationErrors[0]}
|
|
274
|
+
</div>`)}
|
|
275
|
+
`}};e([a({type:String}),t("design:type",Object)],y.prototype,"label",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"id",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"value",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"color",void 0),e([a({type:Boolean}),t("design:type",Object)],y.prototype,"defaultChecked",void 0),e([a({type:Boolean}),t("design:type",Object)],y.prototype,"showErrors",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"prefix",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"suffix",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"prefixColor",void 0),e([a({type:String}),t("design:type",Object)],y.prototype,"suffixColor",void 0),e([a({type:Boolean,reflect:!0}),t("design:type",Boolean)],y.prototype,"validationActive",void 0),e([a({type:Boolean,reflect:!0}),t("design:type",Boolean)],y.prototype,"invalid",void 0),e([n(),t("design:type",Object)],y.prototype,"_checked",void 0),e([n(),t("design:type",Object)],y.prototype,"_indeterminate",void 0),e([n(),t("design:type",Array)],y.prototype,"validationErrors",void 0),e([n(),t("design:type",Object)],y.prototype,"_hasMeaningfulSlot",void 0),e([a({type:Boolean,reflect:!0}),t("design:type",Boolean),t("design:paramtypes",[Boolean])],y.prototype,"checked",null),e([a({type:Boolean,reflect:!0}),t("design:type",Boolean),t("design:paramtypes",[Boolean])],y.prototype,"indeterminate",null),y=e([c("sky-checkbox")],y);export{y as SkyCheckbox};
|
|
276
|
+
//# sourceMappingURL=sky-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sky-checkbox.js","sources":["../../src/sky-checkbox/sky-checkbox.ts"],"sourcesContent":[null],"names":["SkyCheckbox","FormControlBase","constructor","this","label","id","value","color","defaultChecked","showErrors","prefix","suffix","prefixColor","suffixColor","validationActive","invalid","_checked","_indeterminate","validationErrors","_hasMeaningfulSlot","_inputId","Math","random","toString","slice","_onSlotChange","e","slot","target","next","_slotHasMeaningfulContent","handleBlur","_e","validateInput","cbx","shadowRoot","querySelector","classList","remove","syncValidity","_onKeyDown","disabled","readonly","key","preventDefault","_inputElement","click","shadowRootOptions","LitElement","delegatesFocus","checked","v","old","indeterminate","requestUpdate","_updateVisualState","syncFormValue","styles","css","getFormValue","name","trim","setValueFromFormState","state","getValidityAnchor","undefined","isEmpty","getNativeControl","onFormReset","willUpdate","changed","has","style","setProperty","resolveColor","updated","super","handleChange","event","stopPropagation","emittedValue","dispatchEvent","CustomEvent","detail","bubbles","composed","required","requiredMessage","errors","length","add","isValid","check","uncheck","toggle","reset","slotEl","assignedNodes","flatten","some","n","nodeType","Node","ELEMENT_NODE","textContent","_hasTextContent","render","hasText","wrapperClasses","classMap","labelClasses","boxClasses","box","boxPart","html","when","textStyle","styleMap","textAlign","prefixStyle","display","suffixStyle","nothing","__decorate","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./sky-chip";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sky-chip.js';
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
export type SkyChipVariant = "solid" | "flat" | "shadow" | "bordered" | "faded" | "light" | "dot";
|
|
3
|
+
export type SkyChipRemovedEventDetail = {
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* @element sky-chip
|
|
8
|
+
*
|
|
9
|
+
* @summary Customizable chip for tags or selections with icon support, removable action, loading state, and visual variants.
|
|
10
|
+
*
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
*
|
|
14
|
+
* @documentation https://library.sky-ui.com/components/chip
|
|
15
|
+
* @dependency sky-icon
|
|
16
|
+
*
|
|
17
|
+
* @slot - Default slot for the chip label or any other content.
|
|
18
|
+
* @slot prefix - Optional prefix content that can be placed before the label.
|
|
19
|
+
* @slot suffix - Optional suffix content that can be placed after the label.
|
|
20
|
+
*
|
|
21
|
+
* @csspart chip - The visual representation of the chip component.
|
|
22
|
+
* @csspart icon - The icons displayed within the chip.
|
|
23
|
+
* @csspart close-button - The button for removing the chip.
|
|
24
|
+
* @csspart loading-spinner - The spinner that appears during loading.
|
|
25
|
+
* @csspart error-message - The error message displayed for invalid chips.
|
|
26
|
+
*
|
|
27
|
+
* @property {string} label - The label displayed on the chip. Default: `""`.
|
|
28
|
+
* @property {boolean} removable - Whether the chip can be removed by the user. Default: `false`.
|
|
29
|
+
* @property {string} color - The background color of the chip, can accept tokens or custom CSS color. Default: `"primary"`.
|
|
30
|
+
* @property {string} radius - The border radius of the chip. Default: `"full"`.
|
|
31
|
+
* @property {string} size - The size of the chip, which affects padding and font size. Default: `"md"`.
|
|
32
|
+
* @property {string} iconL - Left icon; shown only when the `prefix` slot is empty. Default: `null`.
|
|
33
|
+
* @property {string} iconR - Right icon; shown only when the `suffix` slot is empty. Default: `null`.
|
|
34
|
+
* @property {boolean} loading - Whether the chip is in a loading state. Default: `false`.
|
|
35
|
+
* @property {boolean} disabled - Whether the chip is disabled. Default: `false`.
|
|
36
|
+
* @property {SkyChipVariant} variant - Visual style variant. Default: `"flat"`.
|
|
37
|
+
* @method removeChip Dispatches `chip-removed` and removes the chip from the DOM.
|
|
38
|
+
*
|
|
39
|
+
* @fires {CustomEvent<SkyChipRemovedEventDetail>} chip-removed - Fired when the chip is removed by user action.
|
|
40
|
+
*
|
|
41
|
+
* @Behavior
|
|
42
|
+
* - Uses default slot content when present, otherwise falls back to `label`.
|
|
43
|
+
* - `iconL` / `iconR` render only when `prefix` / `suffix` slots have no meaningful content.
|
|
44
|
+
* - Emits `chip-removed` and removes itself when removable close action is triggered.
|
|
45
|
+
* - Resolves color tokens and radius/size presets to CSS values at render time.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```html
|
|
49
|
+
* <sky-chip label="Active Filter" removable iconl="ion:funnel" variant="light"></sky-chip>
|
|
50
|
+
* ```
|
|
51
|
+
* ```vue
|
|
52
|
+
* <template>
|
|
53
|
+
* <sky-chip label="Active Filter" removable iconl="ion:funnel" variant="light"></sky-chip>
|
|
54
|
+
* </template>
|
|
55
|
+
* ```
|
|
56
|
+
* ```jsx
|
|
57
|
+
* export default function Demo() {
|
|
58
|
+
* return <sky-chip label="Active Filter" removable iconl="ion:funnel" variant="light"></sky-chip>;
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class SkyChip extends LitElement {
|
|
63
|
+
static dependencies: Record<string, CustomElementConstructor>;
|
|
64
|
+
label: string;
|
|
65
|
+
removable: boolean;
|
|
66
|
+
/** Accepts preset tokens OR any valid CSS color (e.g., #0af, rgb(), var(--x)) */
|
|
67
|
+
color: string;
|
|
68
|
+
/** Radius can be any CSS radius value */
|
|
69
|
+
radius: string;
|
|
70
|
+
/** Size controls padding + font-size (xs, sm, md, lg, xl or numeric like "14px") */
|
|
71
|
+
size: string;
|
|
72
|
+
iconL: string | null;
|
|
73
|
+
iconR: string | null;
|
|
74
|
+
loading: boolean;
|
|
75
|
+
disabled: boolean;
|
|
76
|
+
variant: SkyChipVariant;
|
|
77
|
+
static styles: import("lit").CSSResult;
|
|
78
|
+
/** Updates host CSS variables from current color token/value. */
|
|
79
|
+
protected updated(): void;
|
|
80
|
+
/** Size resolver similar to button: controls padding + font-size */
|
|
81
|
+
private _resolveSize;
|
|
82
|
+
/**
|
|
83
|
+
* Dispatches `chip-removed` and removes the chip from the DOM.
|
|
84
|
+
*
|
|
85
|
+
* @returns {void}
|
|
86
|
+
*/
|
|
87
|
+
removeChip(): void;
|
|
88
|
+
private _slotHasMeaningfulContent;
|
|
89
|
+
/** Light DOM check works before the shadow tree exists (first render). */
|
|
90
|
+
private _hasPrefixSlotContent;
|
|
91
|
+
private _hasSuffixSlotContent;
|
|
92
|
+
private _hasDefaultSlotContent;
|
|
93
|
+
private _onSlotChange;
|
|
94
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
95
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import{__decorate as t,__metadata as o}from"tslib";import{LitElement as i,css as r,nothing as e,html as s}from"lit";import{property as n,customElement as a}from"lit/decorators.js";import{when as l}from"lit/directives/when.js";import{styleMap as c}from"lit/directives/style-map.js";import{classMap as p}from"lit/directives/class-map.js";import{resolveColor as h,resolveTextColorForToken as d,isDefaultColorToken as y,resolveInkColorForToken as g,resolveAccentColorForToken as f}from"../helper/utils/color-resolver.js";import{resolveRadius as v}from"../helper/utils/size-resolver.js";import{SkyIcon as u}from"../sky-icon/sky-icon.js";let m=class extends i{constructor(){super(...arguments),this.label="",this.removable=!1,this.color="primary",this.radius="full",this.size="md",this.iconL=null,this.iconR=null,this.loading=!1,this.disabled=!1,this.variant="flat",this._onSlotChange=()=>{this.requestUpdate()}}static{this.dependencies={"sky-icon":u}}static{this.styles=r`
|
|
2
|
+
:host {
|
|
3
|
+
display: inline-block;
|
|
4
|
+
font-family: var(--sky-font);
|
|
5
|
+
z-index: 1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:host([disabled]) {
|
|
9
|
+
pointer-events: none;
|
|
10
|
+
opacity: 0.6;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.chip {
|
|
14
|
+
position: relative;
|
|
15
|
+
display: flex;
|
|
16
|
+
gap: 2px;
|
|
17
|
+
width: max-content;
|
|
18
|
+
align-items: center;
|
|
19
|
+
border-radius: var(--sky-radius-secondary);
|
|
20
|
+
color: var(--chip-text-color);
|
|
21
|
+
font-weight: 500;
|
|
22
|
+
transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
background-color: var(--chip-bg-color);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.close-button {
|
|
28
|
+
|
|
29
|
+
display: flex;
|
|
30
|
+
height: 18px;
|
|
31
|
+
width: 18px;
|
|
32
|
+
justify-content: center;
|
|
33
|
+
font-size: inherit;
|
|
34
|
+
align-items: center;
|
|
35
|
+
background: var(--sky-glass-primary);
|
|
36
|
+
border: var(--sky-border-primary);
|
|
37
|
+
border-radius: 50%;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
color: var(--sky-text-primary);
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.close-button sky-icon {
|
|
44
|
+
transition: color 0.3s ease, transform 0.3s ease;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:dir(rtl) .close-button {
|
|
48
|
+
margin-right: 5px;
|
|
49
|
+
margin-left: unset;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.close-button:hover sky-icon,
|
|
53
|
+
.close-button:focus-visible sky-icon{
|
|
54
|
+
color: var(--sky-danger-primary);
|
|
55
|
+
transform: rotate(90deg);
|
|
56
|
+
outline: none;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.close-button::before {
|
|
60
|
+
content: "";
|
|
61
|
+
position: absolute;
|
|
62
|
+
inset: 0px;
|
|
63
|
+
backdrop-filter: var(--sky-blur-primary) var(--sky-brightness-primary)
|
|
64
|
+
var(--sky-saturation-primary);
|
|
65
|
+
-webkit-backdrop-filter: var(--sky-blur-primary)
|
|
66
|
+
var(--sky-brightness-primary) var(--sky-saturation-primary);
|
|
67
|
+
border-radius: inherit;
|
|
68
|
+
z-index: -1;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.icon {
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
justify-content: center;
|
|
75
|
+
color: var(--chip-text-color);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
sky-icon {
|
|
79
|
+
display: inline-block;
|
|
80
|
+
width: 1em;
|
|
81
|
+
height: 1em;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
::slotted([slot="prefix"]),
|
|
85
|
+
::slotted([slot="suffix"]) {
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.loading-overlay {
|
|
91
|
+
position: absolute;
|
|
92
|
+
inset: 0;
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
background: var(--sky-overlay-primary);
|
|
97
|
+
border-radius: inherit;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.loading-spinner {
|
|
101
|
+
width: 14px;
|
|
102
|
+
height: 14px;
|
|
103
|
+
border: 2px solid var(--sky-text-white);
|
|
104
|
+
border-top-color: var(--chip-bg-color);
|
|
105
|
+
border-radius: 50%;
|
|
106
|
+
animation: spin 0.8s linear infinite;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@keyframes spin {
|
|
110
|
+
from {
|
|
111
|
+
transform: rotate(0deg);
|
|
112
|
+
}
|
|
113
|
+
to {
|
|
114
|
+
transform: rotate(360deg);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.chip.bordered {
|
|
119
|
+
border: 1px solid var(--chip-ink-color, var(--chip-bg-color));
|
|
120
|
+
color: var(--chip-ink-color, var(--chip-bg-color));
|
|
121
|
+
background: transparent;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.chip.light {
|
|
125
|
+
background: transparent;
|
|
126
|
+
color: var(--chip-ink-color, var(--chip-bg-color));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.chip.flat {
|
|
130
|
+
box-shadow: none;
|
|
131
|
+
background: color-mix(
|
|
132
|
+
in srgb,
|
|
133
|
+
var(--chip-fill-color, var(--chip-bg-color)) 20%,
|
|
134
|
+
transparent
|
|
135
|
+
);
|
|
136
|
+
color: var(--chip-ink-color, var(--chip-bg-color));
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.chip.faded {
|
|
140
|
+
background-color: var(--sky-glass-primary);
|
|
141
|
+
border: 1px solid var(--sky-text-tertiary);
|
|
142
|
+
color: var(--chip-ink-color, var(--chip-bg-color));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.chip.shadow {
|
|
146
|
+
box-shadow: 0 2px 6px var(--chip-shadow-color, var(--chip-bg-color));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.chip.faded .icon,
|
|
150
|
+
.chip.flat .icon,
|
|
151
|
+
.chip.light .icon,
|
|
152
|
+
.chip.dot .icon,
|
|
153
|
+
.chip.bordered .icon {
|
|
154
|
+
color: var(--chip-ink-color, var(--chip-bg-color));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.chip.dot {
|
|
158
|
+
padding-left: 20px !important;
|
|
159
|
+
position: relative;
|
|
160
|
+
background-color: transparent;
|
|
161
|
+
border: 1px solid var(--sky-text-tertiary);
|
|
162
|
+
color: var(--sky-text-primary);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.chip.dot::before {
|
|
166
|
+
content: "";
|
|
167
|
+
position: absolute;
|
|
168
|
+
left: 6px;
|
|
169
|
+
top: 50%;
|
|
170
|
+
transform: translateY(-50%);
|
|
171
|
+
width: 8px;
|
|
172
|
+
height: 8px;
|
|
173
|
+
border-radius: 50%;
|
|
174
|
+
background-color: var(--chip-accent-color, var(--chip-bg-color));
|
|
175
|
+
}
|
|
176
|
+
`}updated(){const t=h(this.color),o=d(this.color);this.style.setProperty("--chip-bg-color",t),this.style.setProperty("--chip-text-color",o),y(this.color)?(this.style.setProperty("--chip-ink-color",g(this.color)),this.style.setProperty("--chip-accent-color",f(this.color)),this.style.setProperty("--chip-fill-color","var(--sky-hover-tertiary)"),this.style.setProperty("--chip-shadow-color","color-mix(in srgb, var(--sky-text-dark) 12%, transparent)")):(this.style.removeProperty("--chip-ink-color"),this.style.removeProperty("--chip-accent-color"),this.style.removeProperty("--chip-fill-color"),this.style.removeProperty("--chip-shadow-color"))}_resolveSize(t){const o={xs:{padding:"2px 4px",fontSize:"11px"},sm:{padding:"3px 6px",fontSize:"12px"},md:{padding:"4px 8px",fontSize:"13px"},lg:{padding:"5px 10px",fontSize:"14px"},xl:{padding:"6px 12px",fontSize:"15px"}};if(o[t])return o[t];const i=String(t).trim().match(/^([\d.]+)(px|rem|em)?$/i),r=i?.[2]||"px",e=i?parseFloat(i[1]):13,s=`${e}${r}`,n=(t,o,i)=>Math.max(o,Math.min(i,t)),a=n(.4*e,2,10),l=n(.8*e,6,16),c=t=>`${Math.round(100*t)/100}${r}`;return{padding:`${c(a)} ${c(l)}`,fontSize:s}}removeChip(){const t=new CustomEvent("chip-removed",{detail:{label:this.label},bubbles:!0,composed:!0});this.dispatchEvent(t),this.remove()}_slotHasMeaningfulContent(t){return t.assignedNodes({flatten:!0}).some(t=>t.nodeType===Node.ELEMENT_NODE||(t.textContent??"").trim().length>0)}_hasPrefixSlotContent(){if(this.querySelector('[slot="prefix"]'))return!0;const t=this.shadowRoot?.querySelector('slot[name="prefix"]');return!!t&&this._slotHasMeaningfulContent(t)}_hasSuffixSlotContent(){if(this.querySelector('[slot="suffix"]'))return!0;const t=this.shadowRoot?.querySelector('slot[name="suffix"]');return!!t&&this._slotHasMeaningfulContent(t)}_hasDefaultSlotContent(){for(const t of Array.from(this.childNodes)){if(t.nodeType===Node.ELEMENT_NODE){const o=t.getAttribute("slot");if("prefix"===o||"suffix"===o)continue;return!0}if((t.textContent??"").trim().length>0)return!0}const t=this.shadowRoot?.querySelector("slot:not([name])");return!!t&&this._slotHasMeaningfulContent(t)}render(){const t=this._resolveSize(this.size),o={padding:t.padding,borderRadius:v(this.radius),fontSize:t.fontSize};return s`
|
|
177
|
+
<div
|
|
178
|
+
class=${p({chip:!0,[this.variant]:!0,loading:this.loading})}
|
|
179
|
+
style=${c(o)}
|
|
180
|
+
part="chip"
|
|
181
|
+
>
|
|
182
|
+
<slot name="prefix" @slotchange=${this._onSlotChange}></slot>
|
|
183
|
+
${l(!this._hasPrefixSlotContent()&&this.iconL,()=>s`
|
|
184
|
+
<sky-icon class="icon" part="icon" icon="${this.iconL}"></sky-icon>
|
|
185
|
+
`)}
|
|
186
|
+
<slot @slotchange=${this._onSlotChange}></slot>
|
|
187
|
+
${this._hasDefaultSlotContent()?e:this.label}
|
|
188
|
+
<slot name="suffix" @slotchange=${this._onSlotChange}></slot>
|
|
189
|
+
${l(!this._hasSuffixSlotContent()&&this.iconR,()=>s`
|
|
190
|
+
<sky-icon class="icon icon-right" part="icon" icon="${this.iconR}"></sky-icon>
|
|
191
|
+
`)}
|
|
192
|
+
${l(this.removable,()=>s`
|
|
193
|
+
<button
|
|
194
|
+
class="close-button"
|
|
195
|
+
part="close-button"
|
|
196
|
+
type="button"
|
|
197
|
+
aria-label="Remove chip"
|
|
198
|
+
@click=${this.removeChip}
|
|
199
|
+
>
|
|
200
|
+
<sky-icon icon="ion:close"></sky-icon>
|
|
201
|
+
</button>
|
|
202
|
+
`)}
|
|
203
|
+
${l(this.loading,()=>s`
|
|
204
|
+
<div class="loading-overlay" part="loading-overlay">
|
|
205
|
+
<div class="loading-spinner" part="loading-spinner"></div>
|
|
206
|
+
</div>
|
|
207
|
+
`)}
|
|
208
|
+
</div>
|
|
209
|
+
`}};t([n({type:String}),o("design:type",String)],m.prototype,"label",void 0),t([n({type:Boolean}),o("design:type",Boolean)],m.prototype,"removable",void 0),t([n({type:String}),o("design:type",String)],m.prototype,"color",void 0),t([n({type:String}),o("design:type",String)],m.prototype,"radius",void 0),t([n({type:String}),o("design:type",String)],m.prototype,"size",void 0),t([n({type:String}),o("design:type",Object)],m.prototype,"iconL",void 0),t([n({type:String}),o("design:type",Object)],m.prototype,"iconR",void 0),t([n({type:Boolean}),o("design:type",Boolean)],m.prototype,"loading",void 0),t([n({type:Boolean,reflect:!0}),o("design:type",Boolean)],m.prototype,"disabled",void 0),t([n({type:String,reflect:!0}),o("design:type",String)],m.prototype,"variant",void 0),m=t([a("sky-chip")],m);export{m as SkyChip};
|
|
210
|
+
//# sourceMappingURL=sky-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sky-chip.js","sources":["../../src/sky-chip/sky-chip.ts"],"sourcesContent":[null],"names":["SkyChip","LitElement","constructor","this","label","removable","color","radius","size","iconL","iconR","loading","disabled","variant","_onSlotChange","requestUpdate","dependencies","SkyIcon","styles","css","updated","bgColor","resolveColor","textColor","resolveTextColorForToken","style","setProperty","isDefaultColorToken","resolveInkColorForToken","resolveAccentColorForToken","removeProperty","_resolveSize","input","presets","xs","padding","fontSize","sm","md","lg","xl","m","String","trim","match","unit","fsNum","parseFloat","fs","clamp","n","min","max","Math","py","px","to","round","removeChip","removeEvent","CustomEvent","detail","bubbles","composed","dispatchEvent","remove","_slotHasMeaningfulContent","slotEl","assignedNodes","flatten","some","nodeType","Node","ELEMENT_NODE","textContent","length","_hasPrefixSlotContent","querySelector","slot","shadowRoot","_hasSuffixSlotContent","_hasDefaultSlotContent","Array","from","childNodes","getAttribute","render","sizeDef","chipStyle","borderRadius","resolveRadius","html","classMap","chip","styleMap","when","nothing","__decorate","property","type","prototype","Boolean","reflect","customElement"],"mappings":"wnBAkFO,IAAMA,EAAN,cAAsBC,EAAtB,WAAAC,uBAMuBC,KAAAC,MAAgB,GACfD,KAAAE,WAAqB,EAGtBF,KAAAG,MAAgB,UAGhBH,KAAAI,OAAiB,OAGjBJ,KAAAK,KAAe,KAEfL,KAAAM,MAAuB,KACvBN,KAAAO,MAAuB,KACtBP,KAAAQ,SAAmB,EACJR,KAAAS,UAAoB,EACrBT,KAAAU,QAA0B,OA0S7DV,KAAAW,cAAgB,KACtBX,KAAKY,gBAkDT,QAjXSZ,KAAAa,aAAyD,CAC9D,WAAYC,EACZ,QAoBcd,KAAAe,OAASC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+K1B,CAGiB,OAAAC,GACjB,MAAMC,EAAUC,EAAanB,KAAKG,OAC5BiB,EAAYC,EAAyBrB,KAAKG,OAEhDH,KAAKsB,MAAMC,YAAY,kBAAmBL,GAC1ClB,KAAKsB,MAAMC,YAAY,oBAAqBH,GAExCI,EAAoBxB,KAAKG,QAC3BH,KAAKsB,MAAMC,YAAY,mBAAoBE,EAAwBzB,KAAKG,QACxEH,KAAKsB,MAAMC,YACT,sBACAG,EAA2B1B,KAAKG,QAElCH,KAAKsB,MAAMC,YAAY,oBAAqB,6BAC5CvB,KAAKsB,MAAMC,YACT,sBACA,+DAGFvB,KAAKsB,MAAMK,eAAe,oBAC1B3B,KAAKsB,MAAMK,eAAe,uBAC1B3B,KAAKsB,MAAMK,eAAe,qBAC1B3B,KAAKsB,MAAMK,eAAe,uBAE9B,CAGQ,YAAAC,CACNC,GAKA,MAAMC,EAAiE,CACrEC,GAAI,CAAEC,QAAS,UAAWC,SAAU,QACpCC,GAAI,CAAEF,QAAS,UAAWC,SAAU,QACpCE,GAAI,CAAEH,QAAS,UAAWC,SAAU,QACpCG,GAAI,CAAEJ,QAAS,WAAYC,SAAU,QACrCI,GAAI,CAAEL,QAAS,WAAYC,SAAU,SAGvC,GAAIH,EAAQD,GAAQ,OAAOC,EAAQD,GAEnC,MAAMS,EAAIC,OAAOV,GAAOW,OAAOC,MAAM,2BAC/BC,EAAOJ,IAAI,IAAM,KACjBK,EAAQL,EAAIM,WAAWN,EAAE,IAAM,GAC/BO,EAAK,GAAGF,IAAQD,IAEhBI,EAAQ,CAACC,EAAWC,EAAaC,IACrCC,KAAKD,IAAID,EAAKE,KAAKF,IAAIC,EAAKF,IAExBI,EAAKL,EAAc,GAARH,EAAa,EAAG,IAC3BS,EAAKN,EAAc,GAARH,EAAa,EAAG,IAE3BU,EAAMN,GAAc,GAAGG,KAAKI,MAAU,IAAJP,GAAW,MAAML,IAEzD,MAAO,CACLV,QAAS,GAAGqB,EAAGF,MAAOE,EAAGD,KACzBnB,SAAUY,EAEd,CAOO,UAAAU,GACL,MAAMC,EAAc,IAAIC,YAAuC,eAAgB,CAC7EC,OAAQ,CAAEzD,MAAOD,KAAKC,OACtB0D,SAAS,EACTC,UAAU,IAEZ5D,KAAK6D,cAAcL,GACnBxD,KAAK8D,QACP,CAEQ,yBAAAC,CAA0BC,GAEhC,OADcA,EAAOC,cAAc,CAAEC,SAAS,IACjCC,KAAMpB,GACjBA,EAAEqB,WAAaC,KAAKC,eAEfvB,EAAEwB,aAAe,IAAI/B,OAAOgC,OAAS,EAE9C,CAGQ,qBAAAC,GACN,GAAIzE,KAAK0E,cAAc,mBAAoB,OAAO,EAClD,MAAMC,EAAO3E,KAAK4E,YAAYF,cAC5B,uBAEF,QAAOC,GAAO3E,KAAK+D,0BAA0BY,EAC/C,CAEQ,qBAAAE,GACN,GAAI7E,KAAK0E,cAAc,mBAAoB,OAAO,EAClD,MAAMC,EAAO3E,KAAK4E,YAAYF,cAC5B,uBAEF,QAAOC,GAAO3E,KAAK+D,0BAA0BY,EAC/C,CAEQ,sBAAAG,GACN,IAAK,MAAM/B,KAAKgC,MAAMC,KAAKhF,KAAKiF,YAAa,CAC3C,GAAIlC,EAAEqB,WAAaC,KAAKC,aAAc,CACpC,MAAMK,EAAQ5B,EAAcmC,aAAa,QACzC,GAAa,WAATP,GAA8B,WAATA,EAAmB,SAC5C,OAAO,CACT,CACA,IAAK5B,EAAEwB,aAAe,IAAI/B,OAAOgC,OAAS,EAAG,OAAO,CACtD,CACA,MAAMG,EAAO3E,KAAK4E,YAAYF,cAC5B,oBAEF,QAAOC,GAAO3E,KAAK+D,0BAA0BY,EAC/C,CAMS,MAAAQ,GACP,MAAMC,EAAUpF,KAAK4B,aAAa5B,KAAKK,MACjCgF,EAAY,CAChBrD,QAASoD,EAAQpD,QACjBsD,aAAcC,EAAcvF,KAAKI,QACjC6B,SAAUmD,EAAQnD,UAGpB,OAAOuD,CAAI;;gBAECC,EAAS,CACfC,MAAM,EACN,CAAC1F,KAAKU,UAAU,EAChBF,QAASR,KAAKQ;gBAERmF,EAASN;;;0CAGiBrF,KAAKW;UACrCiF,GAAM5F,KAAKyE,yBAA2BzE,KAAKM,MAAO,IAAMkF,CAAI;qDACjBxF,KAAKM;;4BAE9BN,KAAKW;UACvBX,KAAK8E,yBAA2Be,EAAU7F,KAAKC;0CACfD,KAAKW;UACrCiF,GAAM5F,KAAK6E,yBAA2B7E,KAAKO,MAAO,IAAMiF,CAAI;gEACNxF,KAAKO;;UAE3DqF,EAAK5F,KAAKE,UAAW,IAAMsF,CAAI;;;;;;qBAMpBxF,KAAKuD;;;;;UAKhBqC,EAAK5F,KAAKQ,QAAS,IAAMgF,CAAI;;;;;;KAOrC,GA5W4BM,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAA6B1C,EAAAoG,UAAA,gBAClBH,EAAA,CAA5BC,EAAS,CAAEC,KAAME,oCAAsCrG,EAAAoG,UAAA,oBAG5BH,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAAoC1C,EAAAoG,UAAA,gBAG1BH,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAAkC1C,EAAAoG,UAAA,iBAGxBH,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAA8B1C,EAAAoG,UAAA,eAEpBH,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAAsC1C,EAAAoG,UAAA,gBAC5BH,EAAA,CAA3BC,EAAS,CAAEC,KAAMzD,kCAAsC1C,EAAAoG,UAAA,gBAC3BH,EAAA,CAA5BC,EAAS,CAAEC,KAAME,oCAAoCrG,EAAAoG,UAAA,kBACVH,EAAA,CAA3CC,EAAS,CAAEC,KAAME,QAASC,SAAS,8BAAkCtG,EAAAoG,UAAA,mBAC3BH,EAAA,CAA1CC,EAAS,CAAEC,KAAMzD,OAAQ4D,SAAS,6BAAyCtG,EAAAoG,UAAA,kBAtBjEpG,EAAOiG,EAAA,CADnBM,EAAc,aACFvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./sky-col";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sky-col.js';
|