@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,81 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
export type FormState = string | File | FormData | null | string;
|
|
3
|
+
export declare abstract class FormControlBase extends LitElement {
|
|
4
|
+
/** Enables form-associated custom element behavior */
|
|
5
|
+
static formAssociated: boolean;
|
|
6
|
+
protected internals: ElementInternals;
|
|
7
|
+
protected defaultValue: string;
|
|
8
|
+
/** Native form attributes you’ll reuse everywhere */
|
|
9
|
+
name: string;
|
|
10
|
+
formId: string | null;
|
|
11
|
+
disabled: boolean;
|
|
12
|
+
readonly: boolean;
|
|
13
|
+
required: boolean;
|
|
14
|
+
requiredMessage: string;
|
|
15
|
+
constructor();
|
|
16
|
+
get form(): HTMLFormElement | null;
|
|
17
|
+
get validity(): ValidityState;
|
|
18
|
+
get validationMessage(): string;
|
|
19
|
+
get willValidate(): boolean;
|
|
20
|
+
checkValidity(): boolean;
|
|
21
|
+
reportValidity(): boolean;
|
|
22
|
+
formResetCallback(): void;
|
|
23
|
+
formDisabledCallback(disabled: boolean): void;
|
|
24
|
+
formStateRestoreCallback(state: FormState): void;
|
|
25
|
+
/** Must return current “submission value” (string/file/formdata) */
|
|
26
|
+
protected abstract getFormValue(): FormState;
|
|
27
|
+
/** Must set the component state from restored state (usually string) */
|
|
28
|
+
protected abstract setValueFromFormState(state: FormState): void;
|
|
29
|
+
/** Must return the internal focusable control to anchor validity bubbles */
|
|
30
|
+
protected abstract getValidityAnchor(): HTMLElement | undefined;
|
|
31
|
+
/** Must return true if empty (for required) */
|
|
32
|
+
protected abstract isEmpty(): boolean;
|
|
33
|
+
/** ✅ Must return the native control you want to proxy to (input/textarea/select/...) */
|
|
34
|
+
protected abstract getNativeControl(): HTMLElement | null;
|
|
35
|
+
/** Optional: return first custom error message (or empty string) */
|
|
36
|
+
protected getCustomErrorMessage(): string;
|
|
37
|
+
protected validateForForm(): string;
|
|
38
|
+
/** Optional: reset component to default */
|
|
39
|
+
protected onFormReset(): void;
|
|
40
|
+
/** Optional: react to fieldset disabled */
|
|
41
|
+
protected onFormDisabled(_disabled: boolean): void;
|
|
42
|
+
/** Optional: handle BFCache restore */
|
|
43
|
+
protected onFormStateRestore(state: FormState): void;
|
|
44
|
+
/**
|
|
45
|
+
* ✅ Called by base after a proxy method mutates the native control.
|
|
46
|
+
* Subclasses should pull native.value into their state and optionally validate.
|
|
47
|
+
*/
|
|
48
|
+
protected onNativeValueMutated(_native: any): void;
|
|
49
|
+
protected syncFormValue(): void;
|
|
50
|
+
protected syncValidity(): void;
|
|
51
|
+
protected reemitNativeEvent(type: string, originalEvent: Event, init?: Partial<EventInit> & {
|
|
52
|
+
detail?: any;
|
|
53
|
+
}): void;
|
|
54
|
+
/** Call once after initial render */
|
|
55
|
+
protected captureDefaultValue(initial: string): void;
|
|
56
|
+
protected get nativeControl(): any | null;
|
|
57
|
+
protected get nativeInput(): HTMLInputElement | null;
|
|
58
|
+
protected get nativeTextarea(): HTMLTextAreaElement | null;
|
|
59
|
+
/** Central sync after proxy calls */
|
|
60
|
+
protected syncFromNative(runValidity?: boolean): void;
|
|
61
|
+
focus(options?: FocusOptions): void;
|
|
62
|
+
blur(): void;
|
|
63
|
+
click(): void;
|
|
64
|
+
showPicker(): boolean;
|
|
65
|
+
protected getSelectionTarget(): HTMLInputElement | HTMLTextAreaElement | null;
|
|
66
|
+
get selectionStart(): number | null;
|
|
67
|
+
set selectionStart(v: number | null);
|
|
68
|
+
get selectionEnd(): number | null;
|
|
69
|
+
set selectionEnd(v: number | null);
|
|
70
|
+
get selectionDirection(): "forward" | "backward" | "none" | null;
|
|
71
|
+
select(): void;
|
|
72
|
+
setSelectionRange(start: number, end: number, direction?: "forward" | "backward" | "none"): void;
|
|
73
|
+
setRangeText(replacement: string, start?: number, end?: number, selectionMode?: "select" | "start" | "end" | "preserve"): void;
|
|
74
|
+
get valueAsNumber(): number;
|
|
75
|
+
set valueAsNumber(v: number);
|
|
76
|
+
get valueAsDate(): Date | null;
|
|
77
|
+
set valueAsDate(v: Date | null);
|
|
78
|
+
stepUp(n?: number): void;
|
|
79
|
+
stepDown(n?: number): void;
|
|
80
|
+
setCustomValidity(message: string): void;
|
|
81
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i}from"lit";import{property as s}from"lit/decorators.js";class n extends i{static{this.formAssociated=!0}constructor(){if(super(),this.defaultValue="",this.name="",this.formId=null,this.disabled=!1,this.readonly=!1,this.required=!1,this.requiredMessage="This field is required.","function"!=typeof this.attachInternals)throw new Error("ElementInternals / form-associated custom elements not supported in this browser.");this.internals=this.attachInternals()}get form(){return this.internals.form}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.internals.reportValidity()}formResetCallback(){this.onFormReset(),this.syncFormValue(),this.syncValidity()}formDisabledCallback(t){this.disabled=t,this.onFormDisabled(t),this.syncValidity()}formStateRestoreCallback(t){this.onFormStateRestore(t),this.syncFormValue(),this.syncValidity()}getCustomErrorMessage(){return""}validateForForm(){return""}onFormReset(){this.setValueFromFormState(this.defaultValue)}onFormDisabled(t){}onFormStateRestore(t){this.setValueFromFormState(t)}onNativeValueMutated(t){}syncFormValue(){if(!this.name||this.disabled)return void this.internals.setFormValue(null);const t=this.getFormValue();null!==t?this.internals.setFormValue(t):this.internals.setFormValue(null)}syncValidity(){if(this.disabled)return void this.internals.setValidity({});if(this.required&&this.isEmpty())return void this.internals.setValidity({valueMissing:!0},this.requiredMessage||"This field is required.",this.getValidityAnchor());const t=this.validateForForm();t?this.internals.setValidity({customError:!0},t,this.getValidityAnchor()):this.internals.setValidity({})}reemitNativeEvent(t,e,i){const s={bubbles:!0,composed:!0,cancelable:!!["submit"].includes(t)},n=void 0!==i?.detail?new CustomEvent(t,{...s,...i}):new Event(t,{...s,...i});n.__originalEvent=e,this.dispatchEvent(n)}captureDefaultValue(t){this.defaultValue=t??""}get nativeControl(){return this.getNativeControl()}get nativeInput(){const t=this.getNativeControl();return t instanceof HTMLInputElement?t:null}get nativeTextarea(){const t=this.getNativeControl();return t instanceof HTMLTextAreaElement?t:null}syncFromNative(t=!0){const e=this.nativeControl;e&&(this.onNativeValueMutated(e),this.syncFormValue(),t&&this.syncValidity())}focus(t){this.nativeControl?.focus?.(t)}blur(){this.nativeControl?.blur?.()}click(){this.nativeControl?.click?.()}showPicker(){const t=this.nativeInput;if(!t||"function"!=typeof t.showPicker)return!1;try{return t.showPicker(),!0}catch(t){return!1}}getSelectionTarget(){const t=this.getNativeControl();if(!t)return null;if(t instanceof HTMLTextAreaElement)return t;if(t instanceof HTMLInputElement){const e=(t.type||"").toLowerCase();return"date"===e||"time"===e||"week"===e||"month"===e||"datetime-local"===e||"number"===e||"file"===e?null:t}return null}get selectionStart(){return this.getSelectionTarget()?.selectionStart??null}set selectionStart(t){const e=this.getSelectionTarget();e&&(e.selectionStart=t)}get selectionEnd(){return this.getSelectionTarget()?.selectionEnd??null}set selectionEnd(t){const e=this.getSelectionTarget();e&&(e.selectionEnd=t)}get selectionDirection(){return this.getSelectionTarget()?.selectionDirection??null}select(){this.getSelectionTarget()?.select?.()}setSelectionRange(t,e,i){this.getSelectionTarget()?.setSelectionRange?.(t,e,i)}setRangeText(t,e,i,s){const n=this.getSelectionTarget();!n||this.disabled||this.readonly||(void 0!==e&&void 0!==i?n.setRangeText(t,e,i,s):n.setRangeText(t),this.syncFromNative(!0))}get valueAsNumber(){return this.nativeInput?.valueAsNumber??Number.NaN}set valueAsNumber(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.valueAsNumber=t,this.syncFromNative(!0))}get valueAsDate(){return this.nativeInput?.valueAsDate??null}set valueAsDate(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.valueAsDate=t,this.syncFromNative(!0))}stepUp(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.stepUp(t),this.syncFromNative(!0))}stepDown(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.stepDown(t),this.syncFromNative(!0))}setCustomValidity(t){this.disabled||(t?this.internals.setValidity({customError:!0},t,this.getValidityAnchor()):(this.internals.setValidity({}),this.syncValidity()))}}t([s({type:String,reflect:!0}),e("design:type",Object)],n.prototype,"name",void 0),t([s({type:String,reflect:!0}),e("design:type",Object)],n.prototype,"formId",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"disabled",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"readonly",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"required",void 0),t([s({type:String}),e("design:type",Object)],n.prototype,"requiredMessage",void 0);export{n as FormControlBase};
|
|
2
|
+
//# sourceMappingURL=form-control-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-control-base.js","sources":["../../../src/helper/internals/form-control-base.ts"],"sourcesContent":[null],"names":["FormControlBase","LitElement","this","formAssociated","constructor","super","defaultValue","name","formId","disabled","readonly","required","requiredMessage","attachInternals","Error","internals","form","validity","validationMessage","willValidate","checkValidity","reportValidity","formResetCallback","onFormReset","syncFormValue","syncValidity","formDisabledCallback","onFormDisabled","formStateRestoreCallback","state","onFormStateRestore","getCustomErrorMessage","validateForForm","setValueFromFormState","_disabled","onNativeValueMutated","_native","setFormValue","v","getFormValue","setValidity","isEmpty","valueMissing","getValidityAnchor","msg","customError","reemitNativeEvent","type","originalEvent","init","common","bubbles","composed","cancelable","includes","ev","undefined","detail","CustomEvent","Event","__originalEvent","dispatchEvent","captureDefaultValue","initial","nativeControl","getNativeControl","nativeInput","el","HTMLInputElement","nativeTextarea","HTMLTextAreaElement","syncFromNative","runValidity","native","focus","options","blur","click","showPicker","input","err","getSelectionTarget","t","toLowerCase","selectionStart","selectionEnd","selectionDirection","select","setSelectionRange","start","end","direction","setRangeText","replacement","selectionMode","valueAsNumber","Number","NaN","valueAsDate","stepUp","n","stepDown","setCustomValidity","message","__decorate","property","String","reflect","prototype","Boolean"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./form-control-base";
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color resolution utilities for Sky Design System
|
|
3
|
+
* Provides consistent color token mapping across components
|
|
4
|
+
*/
|
|
5
|
+
export type ColorToken = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'light' | 'dark' | 'default' | string;
|
|
6
|
+
export interface ColorResolverConfig {
|
|
7
|
+
/** CSS variable prefix (default: 'sky') */
|
|
8
|
+
prefix?: string;
|
|
9
|
+
/** Whether to use color-mix for hover states */
|
|
10
|
+
useColorMix?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Default color token mapping to CSS variables
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_COLOR_TOKENS: Record<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Resolves a color token to its CSS value
|
|
18
|
+
* @param input - Color token (e.g., 'primary') or custom CSS color
|
|
19
|
+
* @param customMap - Optional custom token mapping (overrides defaults)
|
|
20
|
+
* @returns CSS color value
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveColor(input: string, customMap?: Record<string, string>): string;
|
|
23
|
+
/**
|
|
24
|
+
* Determines appropriate text color for a given background color token
|
|
25
|
+
* @param input - Color token (e.g., 'primary')
|
|
26
|
+
* @returns CSS color value for text
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveTextColorForToken(input: string): string;
|
|
29
|
+
/** True when the token is the neutral glass surface (`default`), not a brand accent. */
|
|
30
|
+
export declare function isDefaultColorToken(input: string): boolean;
|
|
31
|
+
/** Foreground ink (labels, borders) — never use glass-solid as text. */
|
|
32
|
+
export declare function resolveInkColorForToken(input: string): string;
|
|
33
|
+
/** Accent for hover/focus on neutral surfaces. */
|
|
34
|
+
export declare function resolveAccentColorForToken(input: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Theme glass border shorthand (`1px solid …` from `--sky-border-primary`).
|
|
37
|
+
* Use as a full `border` value — do not wrap in `Npx solid var(--sky-border-primary)`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function skyBorderPrimaryShorthand(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Separator stroke for custom widths (`--sky-border-light` is a color, not shorthand).
|
|
42
|
+
*/
|
|
43
|
+
export declare function skyBorderWidthSolid(widthPx: number): string;
|
|
44
|
+
/** Partial variant overrides when `color="default"` (surface token, not ink). */
|
|
45
|
+
export type DefaultColorVariantPatch = Partial<{
|
|
46
|
+
bg: string;
|
|
47
|
+
color: string;
|
|
48
|
+
border: string;
|
|
49
|
+
shadow: string;
|
|
50
|
+
hoverBg: string;
|
|
51
|
+
hoverColor: string;
|
|
52
|
+
hoverShadow: string;
|
|
53
|
+
hoverBorder: string;
|
|
54
|
+
arrow: string;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Applies variant style overrides for `color="default"` so glass tokens are not
|
|
58
|
+
* used as text/border/hover ink on translucent surfaces.
|
|
59
|
+
*/
|
|
60
|
+
export declare function tuneSurfaceVariantForDefaultColor<T extends DefaultColorVariantPatch>(colorToken: string, variant: string, styles: T): T;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a hover shade using color-mix
|
|
63
|
+
* @param color - Base CSS color
|
|
64
|
+
* @param amount - Percentage of black to mix (0-100)
|
|
65
|
+
* @returns CSS color-mix() value
|
|
66
|
+
*/
|
|
67
|
+
export declare function hoverShade(color: string, amount?: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* Creates a hover shade using color-mix
|
|
70
|
+
* @param color - Base CSS color
|
|
71
|
+
* @param amount - Percentage of black to mix (0-100)
|
|
72
|
+
* @returns CSS color-mix() value
|
|
73
|
+
*/
|
|
74
|
+
export declare function darkShade(color: string, amount?: number): string;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a hover shade using color-mix
|
|
77
|
+
* @param color - Base CSS color
|
|
78
|
+
* @param amount - Percentage of black to mix (0-100)
|
|
79
|
+
* @returns CSS color-mix() value
|
|
80
|
+
*/
|
|
81
|
+
export declare function lightShade(color: string, amount?: number): string;
|
|
82
|
+
/**
|
|
83
|
+
* Creates a faded/transparent version of a color
|
|
84
|
+
* @param color - Base CSS color
|
|
85
|
+
* @param amount - Percentage of transparency (0-100)
|
|
86
|
+
* @returns CSS color-mix() value with transparency
|
|
87
|
+
*/
|
|
88
|
+
export declare function fadeMix(color: string, amount?: number): string;
|
|
89
|
+
/**
|
|
90
|
+
* Resolves gradient stop tokens to CSS colors
|
|
91
|
+
* @param stop - Gradient stop token (e.g., 'primary 30%')
|
|
92
|
+
* @returns CSS gradient stop value
|
|
93
|
+
*/
|
|
94
|
+
export declare function resolveGradientStop(stop: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Parses a gradient specification string
|
|
97
|
+
*/
|
|
98
|
+
export interface GradientSpec {
|
|
99
|
+
kind: 'linear' | 'radial' | 'conic';
|
|
100
|
+
args: string;
|
|
101
|
+
stops: string[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Parses gradient specification string
|
|
105
|
+
* Format: "kind@args: stop1, stop2, stop3"
|
|
106
|
+
* Example: "linear@90deg: primary, secondary 50%, danger"
|
|
107
|
+
* Example: "radial@circle: primary, transparent"
|
|
108
|
+
*/
|
|
109
|
+
export declare function parseGradientSpec(input: string): GradientSpec;
|
|
110
|
+
/**
|
|
111
|
+
* Creates a CSS gradient from a specification string
|
|
112
|
+
* @param specStr - Gradient specification string
|
|
113
|
+
* @param fallbackColor - Fallback color if no stops provided
|
|
114
|
+
* @returns CSS gradient value
|
|
115
|
+
*/
|
|
116
|
+
export declare function createGradient(specStr: string, fallbackColor?: string): string;
|
|
117
|
+
/**
|
|
118
|
+
* Color resolver with configuration support
|
|
119
|
+
*/
|
|
120
|
+
export declare class ColorResolver {
|
|
121
|
+
private config;
|
|
122
|
+
constructor(config?: ColorResolverConfig);
|
|
123
|
+
/**
|
|
124
|
+
* Resolves a color with prefix-aware variable names
|
|
125
|
+
*/
|
|
126
|
+
resolve(input: string): string;
|
|
127
|
+
/**
|
|
128
|
+
* Gets text color for a background color
|
|
129
|
+
*/
|
|
130
|
+
getTextColor(backgroundColor: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* Creates a hover state color
|
|
133
|
+
*/
|
|
134
|
+
getHoverColor(baseColor: string, darkenAmount?: number): string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Singleton instance for convenience
|
|
138
|
+
*/
|
|
139
|
+
export declare const colorResolver: ColorResolver;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const r={primary:"var(--sky-active-primary)",active:"var(--sky-active-primary)",secondary:"var(--sky-info-primary)",success:"var(--sky-success-primary)",danger:"var(--sky-danger-primary)",warning:"var(--sky-warning-primary)",info:"var(--sky-info-primary)",light:"var(--sky-text-light)",dark:"var(--sky-text-dark)",muted:"var(--sky-text-tertiary)","border-light":"var(--sky-border-light)",default:"var(--sky-glass-solid)"};function t(t,a={}){const e={...r,...a};return e[t]||t||e.primary}function a(r){return{dark:"var(--sky-text-light)",light:"var(--sky-text-dark)",warning:"var(--sky-text-black)",success:"var(--sky-text-black)",default:"var(--sky-text-primary)"}[r]||"var(--sky-text-white)"}function e(r){return"default"===r}function i(r){return e(r)?"var(--sky-text-primary)":t(r)}function o(r){return e(r)?"var(--sky-active-primary)":t(r)}function s(){return"var(--sky-border-primary)"}function n(r){return`${r}px solid var(--sky-border-light)`}const y={shadow:{bg:"var(--sky-glass-solid)",hoverBg:"var(--sky-glass-solid)",color:"var(--sky-text-primary)",hoverColor:"var(--sky-active-primary)",arrow:"var(--sky-glass-solid)"},solid:{hoverShadow:"var(--sky-box-shadow-primary)"},faded:{color:"var(--sky-text-primary)",hoverColor:"var(--sky-text-primary)",arrow:"var(--sky-hover-tertiary)"},bordered:{color:"var(--sky-text-primary)",border:n(2),hoverColor:"var(--sky-text-primary)",hoverBorder:"2px solid var(--sky-text-tertiary)",arrow:"var(--sky-border-light)"},transparent:{color:"var(--sky-text-primary)",hoverBg:"var(--sky-hover-tertiary)",hoverColor:"var(--sky-text-primary)"},flat:{bg:"var(--sky-hover-tertiary)",color:"var(--sky-text-primary)",hoverBg:"var(--sky-hover-secondary)",hoverColor:"var(--sky-active-primary)",arrow:"var(--sky-hover-tertiary)"},ghost:{color:"var(--sky-text-primary)",border:n(2),hoverBg:"var(--sky-hover-secondary)",hoverColor:"var(--sky-text-primary)"},link:{color:"var(--sky-text-primary)",hoverColor:"var(--sky-active-primary)"},light:{color:"var(--sky-text-primary)"}};function v(r,t,a){if(!e(r))return a;const i=y[t];return i?{...a,...i}:a}function c(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-dark))`}function l(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-black))`}function k(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-white))`}function d(r,t=15){return`color-mix(in srgb, ${r} ${t}%, transparent)`}function u(t){const a=t.match(/^([^\s]+)(\s+.+)?$/),e=a?.[1]??t;return`${r[e]||e}${a?.[2]??""}`}function p(r){const t=(r||"").trim(),a=t.indexOf(":");let e="",i=t;-1!==a&&(e=t.slice(0,a).trim(),i=t.slice(a+1).trim());let o="linear",s="90deg";if(e){const[r,a]=e.split("@").map(r=>r.trim()),n=(r||"").toLowerCase();"linear"===n||"radial"===n||"conic"===n?(o=n,s=a||("linear"===o?"90deg":"radial"===o?"circle":"from 0deg at 50% 50%")):i=t}return{kind:o,args:s,stops:i.split(",").map(r=>r.trim()).filter(Boolean)}}function g(r,t="var(--sky-active-primary)"){const a=p(r),e=(a.stops.length?a.stops:[t,t]).map(r=>u(r)),{kind:i,args:o}=a;switch(i){case"linear":return`linear-gradient(${o}, ${e.join(", ")})`;case"radial":return`radial-gradient(${o}, ${e.join(", ")})`;case"conic":return`conic-gradient(${o}, ${e.join(", ")})`;default:return`linear-gradient(90deg, ${e.join(", ")})`}}class h{constructor(r={}){this.config={prefix:r.prefix||"sky",useColorMix:r.useColorMix??!0}}resolve(t){if(t.startsWith("#"))return t;if(t.startsWith("rgb")||t.startsWith("hsl"))return t;if(t.startsWith("var("))return t;const a=`var(--${this.config.prefix}-${t})`;return r[t]||a||r.primary}getTextColor(t){return t in r?a(t):"var(--sky-text-white)"}getHoverColor(r,t=20){return this.config.useColorMix?c(r,t):r}}const m=new h;export{h as ColorResolver,r as DEFAULT_COLOR_TOKENS,m as colorResolver,g as createGradient,l as darkShade,d as fadeMix,c as hoverShade,e as isDefaultColorToken,k as lightShade,p as parseGradientSpec,o as resolveAccentColorForToken,t as resolveColor,u as resolveGradientStop,i as resolveInkColorForToken,a as resolveTextColorForToken,s as skyBorderPrimaryShorthand,n as skyBorderWidthSolid,v as tuneSurfaceVariantForDefaultColor};
|
|
2
|
+
//# sourceMappingURL=color-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-resolver.js","sources":["../../../src/helper/utils/color-resolver.ts"],"sourcesContent":[null],"names":["DEFAULT_COLOR_TOKENS","primary","active","secondary","success","danger","warning","info","light","dark","muted","default","resolveColor","input","customMap","map","resolveTextColorForToken","isDefaultColorToken","resolveInkColorForToken","resolveAccentColorForToken","skyBorderPrimaryShorthand","skyBorderWidthSolid","widthPx","DEFAULT_COLOR_VARIANT_PATCHES","shadow","bg","hoverBg","color","hoverColor","arrow","solid","hoverShadow","faded","bordered","border","hoverBorder","transparent","flat","ghost","link","tuneSurfaceVariantForDefaultColor","colorToken","variant","styles","patch","hoverShade","amount","darkShade","lightShade","fadeMix","resolveGradientStop","stop","match","head","parseGradientSpec","raw","trim","idx","indexOf","prefix","stopsStr","slice","kind","args","k","a","split","s","kLower","toLowerCase","stops","filter","Boolean","createGradient","specStr","fallbackColor","spec","length","st","join","ColorResolver","constructor","config","this","useColorMix","resolve","startsWith","customVar","getTextColor","backgroundColor","getHoverColor","baseColor","darkenAmount","colorResolver"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size-resolver.js","sources":["../../../src/helper/utils/size-resolver.ts"],"sourcesContent":[null],"names":["resolveRadius","input","map","none","sm","md","lg","full","Object","prototype","hasOwnProperty","call"],"mappings":"AAKM,SAAUA,EAAcC,GAC1B,MAAMC,EAA8B,CAClCC,KAAM,MACNC,GAAI,4BACJC,GAAI,8BACJC,GAAI,6BACJC,KAAM,UAER,OAAOC,OAAOC,UAAUC,eAAeC,KAAKT,EAAKD,GAC7CC,EAAID,GACJA,CACN"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export { html } from 'lit';
|
|
2
|
+
export * from './helper';
|
|
3
|
+
export * from './sky-accordion';
|
|
4
|
+
export * from './sky-accordion-item';
|
|
5
|
+
export * from './sky-alert';
|
|
6
|
+
export * from './sky-appbar';
|
|
7
|
+
export * from './sky-avatar';
|
|
8
|
+
export * from './sky-badge';
|
|
9
|
+
export * from './sky-breadcrumb';
|
|
10
|
+
export * from './sky-button';
|
|
11
|
+
export * from './sky-button-group';
|
|
12
|
+
export * from './sky-card';
|
|
13
|
+
export * from './sky-carousel';
|
|
14
|
+
export * from './sky-checkbox';
|
|
15
|
+
export * from './sky-chip';
|
|
16
|
+
export * from './sky-col';
|
|
17
|
+
export * from './sky-combobox';
|
|
18
|
+
export * from './sky-counter';
|
|
19
|
+
export * from './sky-dialog';
|
|
20
|
+
export * from './sky-divider';
|
|
21
|
+
export * from './sky-drawer';
|
|
22
|
+
export * from './sky-dropdown';
|
|
23
|
+
export * from './sky-dropdown-item';
|
|
24
|
+
export * from './sky-flexbar';
|
|
25
|
+
export * from './sky-flexbox';
|
|
26
|
+
export * from './sky-flexcol';
|
|
27
|
+
export * from './sky-flexitem';
|
|
28
|
+
export * from './sky-form';
|
|
29
|
+
export * from './sky-grid';
|
|
30
|
+
export * from './sky-icon';
|
|
31
|
+
export * from './sky-image';
|
|
32
|
+
export * from './sky-input';
|
|
33
|
+
export * from './sky-list';
|
|
34
|
+
export * from './sky-listitem';
|
|
35
|
+
export * from './sky-navbar';
|
|
36
|
+
export * from './sky-navpanel';
|
|
37
|
+
export * from './sky-notification';
|
|
38
|
+
export * from './sky-otp';
|
|
39
|
+
export * from './sky-overlay';
|
|
40
|
+
export * from './sky-pagination';
|
|
41
|
+
export * from './sky-progress';
|
|
42
|
+
export * from './sky-radio';
|
|
43
|
+
export * from './sky-radio-group';
|
|
44
|
+
export * from './sky-range';
|
|
45
|
+
export * from './sky-row';
|
|
46
|
+
export * from './sky-serial';
|
|
47
|
+
export * from './sky-sheet';
|
|
48
|
+
export * from './sky-skeleton';
|
|
49
|
+
export * from './sky-slider';
|
|
50
|
+
export * from './sky-speeddial';
|
|
51
|
+
export * from './sky-spinner';
|
|
52
|
+
export * from './sky-steps';
|
|
53
|
+
export * from './sky-switch';
|
|
54
|
+
export * from './sky-tab';
|
|
55
|
+
export * from './sky-tab-button';
|
|
56
|
+
export * from './sky-theme-provider';
|
|
57
|
+
export * from './sky-theme-switcher';
|
|
58
|
+
export * from './sky-tooltip';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{html}from"lit";export{FormControlBase}from"./helper/internals/form-control-base.js";export{ColorResolver,DEFAULT_COLOR_TOKENS,colorResolver,createGradient,darkShade,fadeMix,hoverShade,isDefaultColorToken,lightShade,parseGradientSpec,resolveAccentColorForToken,resolveColor,resolveGradientStop,resolveInkColorForToken,resolveTextColorForToken,skyBorderPrimaryShorthand,skyBorderWidthSolid,tuneSurfaceVariantForDefaultColor}from"./helper/utils/color-resolver.js";export{resolveRadius}from"./helper/utils/size-resolver.js";export{AnimationController}from"./helper/controllers/animation-controller.js";export{PopoverController}from"./helper/controllers/popover-controller.js";export{extractIconNames,fetchIconsForOffline,registerOfflineIcons}from"./helper/iconify-offline.js";export{SkyAccordion}from"./sky-accordion/sky-accordion.js";export{SkyAccordionItem}from"./sky-accordion-item/sky-accordion-item.js";export{SkyAlert}from"./sky-alert/sky-alert.js";export{SkyAppbar}from"./sky-appbar/sky-appbar.js";export{SkyAvatar}from"./sky-avatar/sky-avatar.js";export{SkyBadge}from"./sky-badge/sky-badge.js";export{SkyBreadcrumb}from"./sky-breadcrumb/sky-breadcrumb.js";export{SkyButton}from"./sky-button/sky-button.js";export{SkyButtonGroup}from"./sky-button-group/sky-button-group.js";export{SkyCard}from"./sky-card/sky-card.js";export{SkyCarousel}from"./sky-carousel/sky-carousel.js";export{SkyCheckbox}from"./sky-checkbox/sky-checkbox.js";export{SkyChip}from"./sky-chip/sky-chip.js";export{SkyCol}from"./sky-col/sky-col.js";export{SkyCombobox}from"./sky-combobox/sky-combobox.js";export{SkyCounter}from"./sky-counter/sky-counter.js";export{SkyDialog}from"./sky-dialog/sky-dialog.js";export{SkyDivider}from"./sky-divider/sky-divider.js";export{SkyDrawer}from"./sky-drawer/sky-drawer.js";export{SkyDropdown}from"./sky-dropdown/sky-dropdown.js";export{SkyDropdownItem}from"./sky-dropdown-item/sky-dropdown-item.js";export{SkyFlexbar}from"./sky-flexbar/sky-flexbar.js";export{SkyFlexbox}from"./sky-flexbox/sky-flexbox.js";export{SkyFlexcol}from"./sky-flexcol/sky-flexcol.js";export{SkyFlexitem}from"./sky-flexitem/sky-flexitem.js";export{SkyForm}from"./sky-form/sky-form.js";export{SkyGrid}from"./sky-grid/sky-grid.js";export{SkyIcon}from"./sky-icon/sky-icon.js";export{SkyImage}from"./sky-image/sky-image.js";export{SkyInput}from"./sky-input/sky-input.js";export{SkyList}from"./sky-list/sky-list.js";export{SkyListitem}from"./sky-listitem/sky-listitem.js";export{SkyNavbar}from"./sky-navbar/sky-navbar.js";export{SkyNavpanel}from"./sky-navpanel/sky-navpanel.js";export{SkyNotification}from"./sky-notification/sky-notification.js";export{SkyOtp}from"./sky-otp/sky-otp.js";export{SkyOverlay}from"./sky-overlay/sky-overlay.js";export{SkyPagination}from"./sky-pagination/sky-pagination.js";export{SkyProgress}from"./sky-progress/sky-progress.js";export{SkyRadio}from"./sky-radio/sky-radio.js";export{SkyRadioGroup}from"./sky-radio-group/sky-radio-group.js";export{SkyRange}from"./sky-range/sky-range.js";export{SkyRow}from"./sky-row/sky-row.js";export{SkySerial}from"./sky-serial/sky-serial.js";export{SkySheet,resolveSheetRadius}from"./sky-sheet/sky-sheet.js";export{SkySkeleton}from"./sky-skeleton/sky-skeleton.js";export{SkySlider}from"./sky-slider/sky-slider.js";export{SkySpeeddial}from"./sky-speeddial/sky-speeddial.js";export{SkySpinner}from"./sky-spinner/sky-spinner.js";export{SkySteps}from"./sky-steps/sky-steps.js";export{SkySwitch}from"./sky-switch/sky-switch.js";export{SkyTab}from"./sky-tab/sky-tab.js";export{SkyTabButton}from"./sky-tab-button/sky-tab-button.js";export{SkyThemeProvider,defaultTheme,getCurrentTheme,getThemePreference,mergeTheme,onThemeChange,resolveActualTheme,themeContext}from"./sky-theme-provider/sky-theme-provider.js";export{SkyThemeSwitcher}from"./sky-theme-switcher/sky-theme-switcher.js";export{SkyTooltip}from"./sky-tooltip/sky-tooltip.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./sky-accordion";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sky-accordion.js';
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import { SkyAccordionItem } from "../sky-accordion-item/sky-accordion-item";
|
|
3
|
+
export type SkyAccordionVariant = "transparent" | "solid" | "bordered" | "splitted";
|
|
4
|
+
export type SkyAccordionToggleEventDetail = {
|
|
5
|
+
open: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @element sky-accordion
|
|
9
|
+
*
|
|
10
|
+
* @summary Container that manages direct `<sky-accordion-item>` children, open-state coordination, and keyboard navigation.
|
|
11
|
+
*
|
|
12
|
+
* @status stable
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
*
|
|
15
|
+
* @documentation https://library.sky-ui.com/components/accordion
|
|
16
|
+
* @dependency sky-accordion-item
|
|
17
|
+
*
|
|
18
|
+
* @slot - One or more direct `<sky-accordion-item>` children.
|
|
19
|
+
*
|
|
20
|
+
* @property {boolean} singleOpen - Allows at most one direct item to remain open at a time.
|
|
21
|
+
* @property {SkyAccordionVariant} variant - Visual presentation variant for the accordion container.
|
|
22
|
+
* @property {boolean} disabled - Disables user interaction for the entire accordion.
|
|
23
|
+
* @property {string} label - Accessible name applied to the group via `aria-label`.
|
|
24
|
+
* @method expandAll Opens all direct items; in `single-open` mode, opens only the first direct item.
|
|
25
|
+
* @method collapseAll Closes all direct items.
|
|
26
|
+
* @method openItem Opens a direct item by index and returns whether the operation succeeded.
|
|
27
|
+
* @method closeItem Closes a direct item by index and returns whether the operation succeeded.
|
|
28
|
+
* @method toggleItem Toggles a direct item by index and returns whether the operation succeeded.
|
|
29
|
+
* @method openFirst Opens the first direct item and returns whether the operation succeeded.
|
|
30
|
+
* @method openLast Opens the last direct item and returns whether the operation succeeded.
|
|
31
|
+
* @method focusItem Moves focus to a direct item header by index and returns whether focus was moved.
|
|
32
|
+
* @method focusFirst Moves focus to the first direct item header and returns whether focus was moved.
|
|
33
|
+
* @method focusLast Moves focus to the last direct item header and returns whether focus was moved.
|
|
34
|
+
* @method getItems Returns a snapshot of direct `<sky-accordion-item>` children.
|
|
35
|
+
*
|
|
36
|
+
* @fires {CustomEvent<SkyAccordionToggleEventDetail>} accordion-toggle - Emitted by a direct child item when its open state changes; used by the container to enforce `single-open` behavior.
|
|
37
|
+
*
|
|
38
|
+
* @csspart group - Wrapper that contains all slotted accordion items.
|
|
39
|
+
*
|
|
40
|
+
* @Behavior
|
|
41
|
+
* - Default mode allows multiple direct items to remain open.
|
|
42
|
+
* - `single-open` ensures only one direct item is open at any time.
|
|
43
|
+
* - Nested item events are ignored; coordination applies only to direct children.
|
|
44
|
+
* - Keyboard navigation supports `ArrowDown`/`ArrowRight`, `ArrowUp`/`ArrowLeft`, `Home`, and `End`.
|
|
45
|
+
* - Accessibility is provided through `role="group"` and optional `aria-label` on the wrapper.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```html
|
|
49
|
+
* <sky-accordion label="FAQs" single-open variant="splitted">
|
|
50
|
+
* <sky-accordion-item open>
|
|
51
|
+
* <span slot="title">What is Sky UI?</span>
|
|
52
|
+
* <div slot="content">A reusable web component library.</div>
|
|
53
|
+
* </sky-accordion-item>
|
|
54
|
+
* </sky-accordion>
|
|
55
|
+
* ```
|
|
56
|
+
* ```vue
|
|
57
|
+
* <template>
|
|
58
|
+
* <sky-accordion label="FAQs" single-open variant="splitted">
|
|
59
|
+
* <sky-accordion-item open>
|
|
60
|
+
* <span slot="title">What is Sky UI?</span>
|
|
61
|
+
* <div slot="content">A reusable web component library.</div>
|
|
62
|
+
* </sky-accordion-item>
|
|
63
|
+
* </sky-accordion>
|
|
64
|
+
* </template>
|
|
65
|
+
* ```
|
|
66
|
+
* ```jsx
|
|
67
|
+
* export default function Demo() {
|
|
68
|
+
* return (
|
|
69
|
+
* <sky-accordion label="FAQs" single-open variant="splitted">
|
|
70
|
+
* <sky-accordion-item open>
|
|
71
|
+
* <span slot="title">What is Sky UI?</span>
|
|
72
|
+
* <div slot="content">A reusable web component library.</div>
|
|
73
|
+
* </sky-accordion-item>
|
|
74
|
+
* </sky-accordion>
|
|
75
|
+
* );
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare class SkyAccordion extends LitElement {
|
|
80
|
+
/**
|
|
81
|
+
* Enables single-open coordination for direct items.
|
|
82
|
+
* @default false
|
|
83
|
+
*/
|
|
84
|
+
singleOpen: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Visual variant applied to the accordion container.
|
|
87
|
+
* @default "solid"
|
|
88
|
+
*/
|
|
89
|
+
variant: SkyAccordionVariant;
|
|
90
|
+
/**
|
|
91
|
+
* Disables interaction for all direct accordion items.
|
|
92
|
+
* @default false
|
|
93
|
+
*/
|
|
94
|
+
disabled: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Accessible group label mapped to `aria-label`.
|
|
97
|
+
*/
|
|
98
|
+
label: string;
|
|
99
|
+
/**
|
|
100
|
+
* Cached list of direct accordion children.
|
|
101
|
+
* Reset when slot content changes.
|
|
102
|
+
*/
|
|
103
|
+
private _itemsCache;
|
|
104
|
+
static styles: import("lit").CSSResult;
|
|
105
|
+
connectedCallback(): void;
|
|
106
|
+
disconnectedCallback(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Opens direct items.
|
|
109
|
+
* In `single-open` mode, opens only the first direct item.
|
|
110
|
+
*
|
|
111
|
+
* @returns {void}
|
|
112
|
+
*/
|
|
113
|
+
expandAll(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Closes all direct items.
|
|
116
|
+
*
|
|
117
|
+
* @returns {void}
|
|
118
|
+
*/
|
|
119
|
+
collapseAll(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Opens a direct item by index.
|
|
122
|
+
* In `single-open` mode, opening one item closes the others.
|
|
123
|
+
*
|
|
124
|
+
* @param index Zero-based direct child index.
|
|
125
|
+
* @returns True when an item exists at the index and is opened.
|
|
126
|
+
*/
|
|
127
|
+
openItem(index: number): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Closes a direct item by index.
|
|
130
|
+
*
|
|
131
|
+
* @param index Zero-based direct child index.
|
|
132
|
+
* @returns True when an item exists at the index and is closed.
|
|
133
|
+
*/
|
|
134
|
+
closeItem(index: number): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Toggles a direct item by index.
|
|
137
|
+
* In `single-open` mode, opening one item closes the others.
|
|
138
|
+
*
|
|
139
|
+
* @param index Zero-based direct child index.
|
|
140
|
+
* @returns True when an item exists at the index and is toggled.
|
|
141
|
+
*/
|
|
142
|
+
toggleItem(index: number): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Opens the first direct item.
|
|
145
|
+
*
|
|
146
|
+
* @returns True when at least one direct item exists and is opened.
|
|
147
|
+
*/
|
|
148
|
+
openFirst(): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Opens the last direct item.
|
|
151
|
+
*
|
|
152
|
+
* @returns True when at least one direct item exists and is opened.
|
|
153
|
+
*/
|
|
154
|
+
openLast(): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Moves focus to a direct item header by index.
|
|
157
|
+
*
|
|
158
|
+
* @param index Zero-based direct child index.
|
|
159
|
+
* @returns True when a header is found and focused.
|
|
160
|
+
*/
|
|
161
|
+
focusItem(index: number): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Moves focus to the first direct item header.
|
|
164
|
+
*
|
|
165
|
+
* @returns True when a first item header is found and focused.
|
|
166
|
+
*/
|
|
167
|
+
focusFirst(): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Moves focus to the last direct item header.
|
|
170
|
+
*
|
|
171
|
+
* @returns True when a last item header is found and focused.
|
|
172
|
+
*/
|
|
173
|
+
focusLast(): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Returns a snapshot of direct items.
|
|
176
|
+
*
|
|
177
|
+
* @returns A shallow copy of direct `<sky-accordion-item>` children.
|
|
178
|
+
*/
|
|
179
|
+
getItems(): SkyAccordionItem[];
|
|
180
|
+
/**
|
|
181
|
+
* Handles child toggle events for single-open coordination.
|
|
182
|
+
* Ignores events from nested or non-direct accordion items.
|
|
183
|
+
*
|
|
184
|
+
* @param e Toggle event emitted by a descendant item.
|
|
185
|
+
* @returns {void}
|
|
186
|
+
*/
|
|
187
|
+
private handleItemToggle;
|
|
188
|
+
/**
|
|
189
|
+
* Handles keyboard navigation across direct item headers.
|
|
190
|
+
* Focuses adjacent or boundary headers without changing open state.
|
|
191
|
+
*/
|
|
192
|
+
private handleKeydown;
|
|
193
|
+
/** Clears the direct-item cache after slot content changes. */
|
|
194
|
+
private handleSlotChange;
|
|
195
|
+
/**
|
|
196
|
+
* Returns direct `<sky-accordion-item>` children.
|
|
197
|
+
* Uses `this.children`, so nested descendants are excluded.
|
|
198
|
+
*/
|
|
199
|
+
private get items();
|
|
200
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
201
|
+
}
|