@sky.ui/core 0.0.24 → 0.0.26

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.
Files changed (73) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/custom-elements.json +1116 -1116
  4. package/dist/helper/controllers/animation-controller.js.map +1 -1
  5. package/dist/helper/controllers/popover-controller.js +1 -1
  6. package/dist/helper/controllers/popover-controller.js.map +1 -1
  7. package/dist/helper/iconify-offline.js.map +1 -1
  8. package/dist/helper/internals/form-control-base.js +1 -1
  9. package/dist/helper/internals/form-control-base.js.map +1 -1
  10. package/dist/helper/utils/color-resolver.js.map +1 -1
  11. package/dist/helper/utils/size-resolver.js.map +1 -1
  12. package/dist/sky-alert/sky-alert.js +45 -45
  13. package/dist/sky-alert/sky-alert.js.map +1 -1
  14. package/dist/sky-appbar/sky-appbar.js +30 -30
  15. package/dist/sky-appbar/sky-appbar.js.map +1 -1
  16. package/dist/sky-avatar/sky-avatar.js +25 -25
  17. package/dist/sky-avatar/sky-avatar.js.map +1 -1
  18. package/dist/sky-badge/sky-badge.d.ts +1 -1
  19. package/dist/sky-badge/sky-badge.js +27 -27
  20. package/dist/sky-badge/sky-badge.js.map +1 -1
  21. package/dist/sky-button/sky-button.js +25 -25
  22. package/dist/sky-button/sky-button.js.map +1 -1
  23. package/dist/sky-card/sky-card.js +22 -22
  24. package/dist/sky-card/sky-card.js.map +1 -1
  25. package/dist/sky-checkbox/sky-checkbox.d.ts +2 -2
  26. package/dist/sky-checkbox/sky-checkbox.js +43 -43
  27. package/dist/sky-checkbox/sky-checkbox.js.map +1 -1
  28. package/dist/sky-chip/sky-chip.js +35 -35
  29. package/dist/sky-chip/sky-chip.js.map +1 -1
  30. package/dist/sky-col/sky-col.js +7 -7
  31. package/dist/sky-col/sky-col.js.map +1 -1
  32. package/dist/sky-combobox/sky-combobox.d.ts +2 -2
  33. package/dist/sky-combobox/sky-combobox.js +244 -244
  34. package/dist/sky-combobox/sky-combobox.js.map +1 -1
  35. package/dist/sky-dialog/sky-dialog.js +43 -43
  36. package/dist/sky-dialog/sky-dialog.js.map +1 -1
  37. package/dist/sky-divider/sky-divider.js +16 -16
  38. package/dist/sky-divider/sky-divider.js.map +1 -1
  39. package/dist/sky-flexbox/sky-flexbox.js +9 -9
  40. package/dist/sky-flexbox/sky-flexbox.js.map +1 -1
  41. package/dist/sky-flexcol/sky-flexcol.js +2 -2
  42. package/dist/sky-flexcol/sky-flexcol.js.map +1 -1
  43. package/dist/sky-form/sky-form.js +12 -12
  44. package/dist/sky-form/sky-form.js.map +1 -1
  45. package/dist/sky-grid/sky-grid.js +6 -6
  46. package/dist/sky-grid/sky-grid.js.map +1 -1
  47. package/dist/sky-icon/sky-icon.js +13 -13
  48. package/dist/sky-icon/sky-icon.js.map +1 -1
  49. package/dist/sky-image/sky-image.js +21 -21
  50. package/dist/sky-image/sky-image.js.map +1 -1
  51. package/dist/sky-image/srcset-utils.js.map +1 -1
  52. package/dist/sky-input/sky-input.d.ts +2 -2
  53. package/dist/sky-input/sky-input.js +225 -225
  54. package/dist/sky-input/sky-input.js.map +1 -1
  55. package/dist/sky-list/sky-list.js +6 -6
  56. package/dist/sky-list/sky-list.js.map +1 -1
  57. package/dist/sky-listitem/sky-listitem.js +31 -31
  58. package/dist/sky-listitem/sky-listitem.js.map +1 -1
  59. package/dist/sky-radio/sky-radio.d.ts +2 -2
  60. package/dist/sky-radio/sky-radio.js +27 -27
  61. package/dist/sky-radio/sky-radio.js.map +1 -1
  62. package/dist/sky-row/sky-row.js +2 -2
  63. package/dist/sky-row/sky-row.js.map +1 -1
  64. package/dist/sky-sheet/sky-sheet.js +2 -2
  65. package/dist/sky-sheet/sky-sheet.js.map +1 -1
  66. package/dist/sky-simple-table/sky-simple-table.js +34 -34
  67. package/dist/sky-simple-table/sky-simple-table.js.map +1 -1
  68. package/dist/sky-theme-provider/sky-theme-provider.js +2 -2
  69. package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -1
  70. package/package.json +2 -17
  71. package/plugins/rollup-plugin.d.ts +5 -8
  72. package/plugins/vite-plugin.d.ts +5 -8
  73. package/plugins/webpack-plugin.d.ts +3 -7
@@ -1 +1 @@
1
- {"version":3,"file":"sky-radio.js","sources":["../../src/sky-radio/sky-radio.ts"],"sourcesContent":[null],"names":["SkyRadio","FormControlBase","syncStyleVars","this","style","setProperty","resolveColor","color","willUpdate","changed","super","size","has","check","disabled","readonly","checked","syncFormValue","focusRadio","input","shadowRoot","querySelector","focus","styles","css","constructor","label","value","_hasMeaningfulSlot","_onSlotChange","e","slot","target","next","_slotHasMeaningfulContent","onNativeChange","currentTarget","becameChecked","name","closest","all","Array","from","document","querySelectorAll","r","dispatchEvent","CustomEvent","detail","bubbles","composed","reemitNativeEvent","syncValidity","handleKeydown","event","key","preventDefault","click","captureDefaultValue","shadowRootOptions","LitElement","delegatesFocus","connectedCallback","addEventListener","hasAttribute","tabIndex","disconnectedCallback","removeEventListener","updated","undefined","get","readOnly","slotEl","assignedNodes","flatten","some","n","nodeType","Node","ELEMENT_NODE","textContent","trim","length","getFormValue","setValueFromFormState","state","getValidityAnchor","getNativeControl","isEmpty","onNativeValueMutated","_native","getCustomErrorMessage","validationErrors","required","requiredMessage","render","html","classMap","when","__decorate","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"sky-radio.js","sources":["../../src/sky-radio/sky-radio.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { when } from \"lit/directives/when.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { resolveColor } from \"../helper/utils/color-resolver\";\nimport { FormControlBase, FormState } from \"../helper/internals/form-control-base\";\n\nexport type SkyRadioSelectDetail = { value: string };\nexport type SkyRadioValidationErrorDetail = { errors: string[] };\nexport type SkyRadioValueClearedDetail = { value: \"\" };\n\n/**\n * @element sky-radio\n *\n * @summary Single radio option for grouped or standalone selection.\n *\n * @status stable\n * @since 1.0.0\n *\n * @documentation https://library.sky-ui.com/components/radio\n *\n * @slot - Content to display instead of the label property.\n *\n * @csspart wrapper - The circular radio control element.\n * @csspart input - The native hidden radio input element.\n * @csspart label - The text label element.\n *\n * @property {string} label - Text label displayed beside the control.\n * @property {string} value - Option value used for selection and form value.\n * @property {boolean} checked - Whether this option is selected.\n * @property {string} name - Radio name used for same-name exclusivity.\n * @property {string} color - Accent color used in checked state.\n * @property {boolean} disabled - Disables user interaction.\n * @property {boolean} readonly - Prevents selection changes while still allowing focus.\n * @property {boolean} required - Enables required validation for standalone usage.\n * @property {string} requiredMessage - Error message for required validation failures.\n *\n * @fires {CustomEvent<SkyRadioSelectDetail>} radio-select - Fired when the option becomes selected.\n * @fires {Event} change - Native change event for form compatibility.\n * @fires {Event} input - Native input event for form compatibility.\n * @fires {CustomEvent<SkyRadioValidationErrorDetail>} validation-error - Fired when validation errors occur.\n * @fires {CustomEvent<SkyRadioValueClearedDetail>} value-cleared - Fired when selection is reset.\n * @method check Selects this radio option.\n * @method focusRadio Focuses the underlying native radio control.\n *\n * @Behavior\n * - Uses a native hidden radio input for semantics and keyboard interaction.\n * - Supports grouped usage inside `sky-radio-group` and standalone usage.\n * - Synchronizes checked state and form value through `FormControlBase`.\n *\n * @example\n * ```html\n * <sky-radio-group label=\"Deployment\" name=\"deployment\">\n * <sky-radio value=\"blue\" checked color=\"primary\">Blue Environment</sky-radio>\n * <sky-radio value=\"green\">Green Environment</sky-radio>\n * </sky-radio-group>\n * ```\n * ```vue\n * <template>\n * <sky-radio-group label=\"Deployment\" name=\"deployment\">\n * <sky-radio value=\"blue\" checked color=\"primary\">Blue Environment</sky-radio>\n * <sky-radio value=\"green\">Green Environment</sky-radio>\n * </sky-radio-group>\n * </template>\n * ```\n * ```jsx\n * export default function Demo() {\n * return (\n * <sky-radio-group label=\"Deployment\" name=\"deployment\">\n * <sky-radio value=\"blue\" checked color=\"primary\">Blue Environment</sky-radio>\n * <sky-radio value=\"green\">Green Environment</sky-radio>\n * </sky-radio-group>\n * );\n * }\n * ```\n */\n@customElement(\"sky-radio\")\nexport class SkyRadio extends FormControlBase {\n @property({ type: String }) label: string = \"\";\n @property({ type: String }) value: string = \"\";\n @property({ type: Boolean, reflect: true }) checked: boolean = false;\n @property({ type: String }) color: string = \"primary\";\n @state() private _hasMeaningfulSlot = false;\n\n private syncStyleVars(): void {\n this.style.setProperty(\"--radio-checked-color\", resolveColor(this.color));\n }\n\n protected override willUpdate(changed: Map<string, unknown>): void {\n super.willUpdate(changed);\n if (changed.size === 0 || changed.has(\"color\")) {\n this.syncStyleVars();\n }\n }\n\n public check(): void {\n if (this.disabled || this.readonly) return;\n this.checked = true;\n this.syncFormValue();\n }\n\n public focusRadio(): void {\n const input = this.shadowRoot?.querySelector('input[type=\"radio\"]') as HTMLInputElement | null;\n input?.focus();\n }\n\n static override styles = css`\n :host {\n display: inline-flex;\n align-items: center;\n }\n\n /* readonly: allow focus + keyboard traversal, but show subtle visual state */\n :host([readonly]) label {\n cursor: default;\n }\n\n label {\n display: flex;\n align-items: center;\n gap: var(--sky-space-1\\\\.5, 6px);\n color: var(--sky-text-primary);\n cursor: pointer;\n font-size: var(--sky-font-size-sm);\n font-family: var(--sky-font);\n }\n\n label[disabled] {\n pointer-events: none;\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n :host([disabled]) label,\n :host([disabled]) .radio-wrapper {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .radio-wrapper {\n position: relative;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n display: inline-block;\n background: var(--sky-glass-solid);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n border: 2px solid var(--sky-text-tertiary);\n border-radius: 50%;\n transition:\n border-color 0.3s ease-in-out,\n background-color 0.3s ease-in-out,\n box-shadow 0.3s ease-in-out;\n cursor: pointer;\n flex-shrink: 0;\n }\n\n .radio-wrapper::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0);\n width: 10px;\n height: 10px;\n background-color: var(--sky-glass-solid);\n border-radius: 50%;\n transition:\n transform 0.3s ease-in-out,\n background-color 0.3s ease-in-out;\n }\n\n .radio-wrapper.checked {\n border-color: var(--radio-checked-color);\n background-color: var(--radio-checked-color);\n }\n\n .radio-wrapper.checked::before {\n transform: translate(-50%, -50%) scale(1);\n }\n\n input[type=\"radio\"] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n width: 0;\n height: 0;\n }\n\n :host(:focus-within) .radio-wrapper {\n box-shadow: var(--sky-focus-ring);\n border-color: var(--radio-checked-color);\n }\n\n sky-icon {\n display: inline-block;\n width: 1em;\n height: 1em;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .radio-wrapper,\n .radio-wrapper::before {\n transition: none;\n }\n }\n `;\n\n constructor() {\n super();\n this.captureDefaultValue(\"\");\n }\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(\"keydown\", this.handleKeydown);\n // Make the host focusable\n if (!this.hasAttribute(\"tabindex\")) {\n this.tabIndex = this.disabled ? -1 : 0;\n }\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener(\"keydown\", this.handleKeydown);\n super.disconnectedCallback();\n }\n\n override updated(changed: Map<string, unknown>): void {\n const input = this.shadowRoot?.querySelector<HTMLInputElement>(\n \"input[type='radio']\",\n );\n\n if (changed.has(\"checked\")) {\n if (input && input.checked !== this.checked) input.checked = this.checked;\n\n if (changed.get(\"checked\") !== undefined) {\n this.syncFormValue();\n this.syncValidity();\n }\n }\n if (changed.has(\"disabled\") || changed.has(\"readonly\")) {\n if (input) {\n input.disabled = this.disabled;\n input.readOnly = this.readonly;\n }\n this.tabIndex = this.disabled ? -1 : 0;\n }\n\n if (changed.has(\"value\")) {\n this.syncFormValue();\n this.syncValidity();\n }\n }\n\n private _slotHasMeaningfulContent(slotEl: HTMLSlotElement): boolean {\n const nodes = slotEl.assignedNodes({ flatten: true });\n return nodes.some((n) =>\n n.nodeType === Node.ELEMENT_NODE\n ? true\n : (n.textContent ?? \"\").trim().length > 0\n );\n }\n\n private _onSlotChange = (e: Event) => {\n const slot = e.target as HTMLSlotElement;\n const next = this._slotHasMeaningfulContent(slot);\n if (next !== this._hasMeaningfulSlot) this._hasMeaningfulSlot = next;\n };\n\n private onNativeChange = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n\n // ✅ Prevent state change when disabled or readonly, and re-sync native state\n if (this.disabled || this.readonly) {\n if (input.checked !== this.checked) {\n input.checked = this.checked;\n }\n return;\n }\n\n const becameChecked = input.checked && !this.checked;\n this.checked = input.checked;\n\n // When used individually, uncheck siblings with the same name\n if (this.checked && this.name && !this.closest(\"sky-radio-group\")) {\n const all = Array.from(document.querySelectorAll<SkyRadio>(\"sky-radio\"));\n for (const r of all) {\n if (r !== this && r.name === this.name) r.checked = false;\n }\n }\n\n if (becameChecked) {\n // Dispatch custom event\n this.dispatchEvent(\n new CustomEvent<SkyRadioSelectDetail>(\"radio-select\", {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n\n // Dispatch native events for form compatibility\n this.reemitNativeEvent(\"change\", e);\n this.reemitNativeEvent(\"input\", e);\n\n // Sync form value\n this.syncFormValue();\n this.syncValidity();\n }\n };\n\n private handleKeydown = (event: KeyboardEvent) => {\n // ✅ no keyboard activation in disabled/readonly mode\n if (this.disabled || this.readonly) return;\n\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n const input = this.shadowRoot?.querySelector<HTMLInputElement>(\n \"input[type='radio']\"\n );\n input?.click();\n }\n };\n\n // ============================================================\n // FormControlBase implementation\n // ============================================================\n\n /** Get the current value for form submission */\n protected override getFormValue(): FormState {\n return this.checked ? this.value : null;\n }\n\n /** Set value from form state (e.g., form reset) */\n protected override setValueFromFormState(state: FormState): void {\n if (typeof state === \"string\") {\n this.checked = state === this.value;\n } else {\n this.checked = false;\n }\n }\n\n /** Get the validity anchor (the hidden input) */\n protected override getValidityAnchor(): HTMLElement | undefined {\n return this.getNativeControl() || undefined;\n }\n\n /** Check if empty (for required validation) */\n protected override isEmpty(): boolean {\n return !this.checked;\n }\n\n /** Get the native control (hidden radio input) */\n protected override getNativeControl(): HTMLElement | null {\n return this.shadowRoot?.querySelector<HTMLElement>(\"input[type='radio']\") || null;\n }\n\n /** Handle native value mutation */\n protected override onNativeValueMutated(_native: any): void {\n // Sync the checked state from native input\n const input = this.getNativeControl() as HTMLInputElement;\n if (input) {\n this.checked = input.checked;\n }\n }\n\n /** Override to provide custom error messages */\n protected override getCustomErrorMessage(): string {\n return this.validationErrors?.[0] || \"\";\n }\n\n /** Get current validation errors */\n get validationErrors(): string[] {\n return this.required && !this.checked ? [this.requiredMessage] : [];\n }\n\n override render() {\n return html`\n <label\n part=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n aria-readonly=${this.readonly ? \"true\" : \"false\"}\n >\n <input\n type=\"radio\"\n part=\"input\"\n .name=${this.name}\n .value=${this.value}\n .checked=${this.checked}\n @change=${this.onNativeChange}\n ?disabled=${this.disabled}\n ?required=${this.required}\n />\n <div\n class=${classMap({ \"radio-wrapper\": true, checked: this.checked })}\n part=\"wrapper\"\n ></div>\n <slot @slotchange=${this._onSlotChange}></slot>\n ${when(!this._hasMeaningfulSlot, () => this.label)}\n </label>\n `;\n }\n}\n"],"names":["SkyRadio","FormControlBase","constructor","super","this","label","value","checked","color","_hasMeaningfulSlot","_onSlotChange","e","slot","target","next","_slotHasMeaningfulContent","onNativeChange","input","currentTarget","disabled","readonly","becameChecked","name","closest","all","Array","from","document","querySelectorAll","r","dispatchEvent","CustomEvent","detail","bubbles","composed","reemitNativeEvent","syncFormValue","syncValidity","handleKeydown","event","key","preventDefault","shadowRoot","querySelector","click","captureDefaultValue","syncStyleVars","style","setProperty","resolveColor","willUpdate","changed","size","has","check","focusRadio","focus","connectedCallback","addEventListener","hasAttribute","tabIndex","disconnectedCallback","removeEventListener","updated","get","readOnly","slotEl","assignedNodes","flatten","some","n","nodeType","Node","ELEMENT_NODE","textContent","trim","length","getFormValue","setValueFromFormState","state","getValidityAnchor","getNativeControl","isEmpty","onNativeValueMutated","_native","getCustomErrorMessage","validationErrors","required","requiredMessage","render","html","classMap","when","styles","css","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import{__decorate as t}from"tslib";import{customElement as s}from"lit/decorators.js";import{LitElement as o,css as r,html as e}from"lit";let i=class extends o{static{this.styles=r`
1
+ import{customElement as r}from"lit/decorators.js";import{css as t,LitElement as e,html as o}from"lit";var s=Object.getOwnPropertyDescriptor;let l=class extends e{render(){return o`<slot></slot>`}};l.styles=t`
2
2
  :host {
3
3
  display: contents;
4
4
  }
5
- `}render(){return e`<slot></slot>`}};i=t([s("sky-row")],i);export{i as SkyRow};
5
+ `,l=((r,t,e,o)=>{for(var l,n=o>1?void 0:o?s(t,e):t,i=r.length-1;i>=0;i--)(l=r[i])&&(n=l(n)||n);return n})([r("sky-row")],l);export{l as SkyRow};
6
6
  //# sourceMappingURL=sky-row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sky-row.js","sources":["../../src/sky-row/sky-row.ts"],"sourcesContent":[null],"names":["SkyRow","LitElement","this","styles","css","render","html","__decorate","customElement"],"mappings":"yIAyDO,IAAMA,EAAN,cAAqBC,SACVC,KAAAC,OAASC,CAAG;;;;GAI1B,CAEO,MAAAC,GACP,OAAOC,CAAI,eACb,GATWN,EAAMO,EAAA,CADlBC,EAAc,YACFR"}
1
+ {"version":3,"file":"sky-row.js","sources":["../../src/sky-row/sky-row.ts"],"sourcesContent":["import { customElement } from \"lit/decorators.js\";\r\nimport { LitElement, html, css } from \"lit\";\r\n\r\n\r\n/**\r\n * @element sky-row\r\n *\r\n * @summary Lightweight semantic row wrapper for use inside `sky-grid`.\r\n *\r\n * @status stable\r\n * @since 1.0.0\r\n *\r\n * @documentation https://library.sky-ui.com/components/grid\r\n * @dependency sky-grid\r\n *\r\n * @slot - Default slot for child content.\r\n *\r\n * @Behavior\r\n * - Renders as `display: contents` so it does not add layout wrappers.\r\n * - Preserves semantic grouping for rows while children participate directly in parent layout.\r\n *\r\n * @example\r\n * ```html\r\n * <sky-grid columns=\"3\" gap=\"12px\">\r\n * <sky-row>\r\n * <div>Account</div>\r\n * <div>Status</div>\r\n * <div>Actions</div>\r\n * </sky-row>\r\n * </sky-grid>\r\n * ```\r\n * ```vue\r\n * <template>\r\n * <sky-grid columns=\"3\" gap=\"12px\">\r\n * <sky-row>\r\n * <div>Account</div>\r\n * <div>Status</div>\r\n * <div>Actions</div>\r\n * </sky-row>\r\n * </sky-grid>\r\n * </template>\r\n * ```\r\n * ```jsx\r\n * export default function Demo() {\r\n * return (\r\n * <sky-grid columns=\"3\" gap=\"12px\">\r\n * <sky-row>\r\n * <div>Account</div>\r\n * <div>Status</div>\r\n * <div>Actions</div>\r\n * </sky-row>\r\n * </sky-grid>\r\n * );\r\n * }\r\n * ```\r\n */\r\n@customElement(\"sky-row\")\r\nexport class SkyRow extends LitElement {\r\n static override styles = css`\r\n :host {\r\n display: contents;\r\n }\r\n `;\r\n\r\n override render() {\r\n return html`<slot></slot>`;\r\n }\r\n}"],"names":["SkyRow","LitElement","render","html","styles","css","__decorateClass","customElement"],"mappings":"4IAyDO,IAAMA,EAAN,cAAqBC,EAOjB,MAAAC,GACP,OAAOC,CAAA,eACT,GATWH,EACKI,OAASC,CAAA;;;;IADdL,uGAANM,CAAA,CADNC,EAAc,YACFP"}
@@ -1,4 +1,4 @@
1
- import{__decorate as r,__metadata as s}from"tslib";import{LitElement as a,css as t,html as e}from"lit";import{property as o,customElement as i}from"lit/decorators.js";import{resolveRadius as d}from"../helper/utils/size-resolver.js";const n={none:"0",sm:"var(--sky-radius-primary)",md:"var(--sky-radius-secondary)",lg:"var(--sky-radius-tertiary)",xl:"var(--sky-radius-full)"};function y(r){return Object.prototype.hasOwnProperty.call(n,r)?n[r]:d(r)}let b=class extends a{constructor(){super(...arguments),this.bg="primary",this.blurLevel="sm",this.shadow="sm",this.border="sm",this.radius="md"}connectedCallback(){super.connectedCallback(),this._applyRadiusVar()}_applyRadiusVar(){this.style.setProperty("--sheet-radius",y(this.radius))}willUpdate(r){super.willUpdate(r),(0===r.size||r.has("radius"))&&this._applyRadiusVar()}static{this.styles=t`
1
+ import{css as r,LitElement as s,html as a}from"lit";import{property as e,customElement as o}from"lit/decorators.js";import{resolveRadius as t}from"../helper/utils/size-resolver.js";var i=Object.defineProperty,d=Object.getOwnPropertyDescriptor,n=(r,s,a,e)=>{for(var o,t=e>1?void 0:e?d(s,a):s,n=r.length-1;n>=0;n--)(o=r[n])&&(t=(e?o(s,a,t):o(t))||t);return e&&t&&i(s,a,t),t};const y={none:"0",sm:"var(--sky-radius-primary)",md:"var(--sky-radius-secondary)",lg:"var(--sky-radius-tertiary)",xl:"var(--sky-radius-full)"};function b(r){return Object.prototype.hasOwnProperty.call(y,r)?y[r]:t(r)}let l=class extends s{constructor(){super(...arguments),this.bg="primary",this.blurLevel="sm",this.shadow="sm",this.border="sm",this.radius="md"}connectedCallback(){super.connectedCallback(),this._applyRadiusVar()}_applyRadiusVar(){this.style.setProperty("--sheet-radius",b(this.radius))}willUpdate(r){super.willUpdate(r),(0===r.size||r.has("radius"))&&this._applyRadiusVar()}render(){return a`<slot></slot>`}};l.styles=r`
2
2
  :host {
3
3
  display: block;
4
4
  box-sizing: border-box;
@@ -89,5 +89,5 @@ import{__decorate as r,__metadata as s}from"tslib";import{LitElement as a,css as
89
89
  :host([border="lg"]) {
90
90
  border: var(--sky-border-tertiary);
91
91
  }
92
- `}render(){return e`<slot></slot>`}};r([o({type:String,reflect:!0}),s("design:type",String)],b.prototype,"bg",void 0),r([o({type:String,reflect:!0}),s("design:type",String)],b.prototype,"blurLevel",void 0),r([o({type:String,reflect:!0}),s("design:type",String)],b.prototype,"shadow",void 0),r([o({type:String,reflect:!0}),s("design:type",String)],b.prototype,"border",void 0),r([o({type:String,reflect:!0}),s("design:type",String)],b.prototype,"radius",void 0),b=r([i("sky-sheet")],b);export{b as SkySheet,y as resolveSheetRadius};
92
+ `,n([e({type:String,reflect:!0})],l.prototype,"bg",2),n([e({type:String,reflect:!0})],l.prototype,"blurLevel",2),n([e({type:String,reflect:!0})],l.prototype,"shadow",2),n([e({type:String,reflect:!0})],l.prototype,"border",2),n([e({type:String,reflect:!0})],l.prototype,"radius",2),l=n([o("sky-sheet")],l);export{l as SkySheet,b as resolveSheetRadius};
93
93
  //# sourceMappingURL=sky-sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sky-sheet.js","sources":["../../src/sky-sheet/sky-sheet.ts"],"sourcesContent":[null],"names":["SHEET_RADIUS_PRESETS","none","sm","md","lg","xl","resolveSheetRadius","input","Object","prototype","hasOwnProperty","call","resolveRadius","SkySheet","LitElement","constructor","this","bg","blurLevel","shadow","border","radius","connectedCallback","super","_applyRadiusVar","style","setProperty","willUpdate","changed","size","has","styles","css","render","html","__decorate","property","type","String","reflect","customElement"],"mappings":"wOAYA,MAAMA,EAA+C,CACnDC,KAAM,IACNC,GAAI,4BACJC,GAAI,8BACJC,GAAI,6BACJC,GAAI,0BAIA,SAAUC,EAAmBC,GACjC,OAAIC,OAAOC,UAAUC,eAAeC,KAAKX,EAAsBO,GACtDP,EAAqBO,GAEvBK,EAAcL,EACvB,CAoDO,IAAMM,EAAN,cAAuBC,EAAvB,WAAAC,uBAGLC,KAAAC,GAAyB,UAGzBD,KAAAE,UAA+B,KAG/BF,KAAAG,OAAyB,KAGzBH,KAAAI,OAAyB,KAGzBJ,KAAAK,OAAyB,IAkH3B,CAhHW,iBAAAC,GACPC,MAAMD,oBACNN,KAAKQ,iBACP,CAEQ,eAAAA,GACNR,KAAKS,MAAMC,YAAY,iBAAkBpB,EAAmBU,KAAKK,QACnE,CAEmB,UAAAM,CAAWC,GAC5BL,MAAMI,WAAWC,IACI,IAAjBA,EAAQC,MAAcD,EAAQE,IAAI,YACpCd,KAAKQ,iBAET,QAEgBR,KAAAe,OAASC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2F1B,CAEO,MAAAC,GACP,OAAOC,CAAI,eACb,GA7HAC,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,6BACA1B,EAAAJ,UAAA,aAGnC0B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,6BACC1B,EAAAJ,UAAA,oBAGpC0B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,6BACL1B,EAAAJ,UAAA,iBAG9B0B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,6BACL1B,EAAAJ,UAAA,iBAG9B0B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,6BACL1B,EAAAJ,UAAA,iBAfnBI,EAAQsB,EAAA,CADpBK,EAAc,cACF3B"}
1
+ {"version":3,"file":"sky-sheet.js","sources":["../../src/sky-sheet/sky-sheet.ts"],"sourcesContent":["import { LitElement, html, css, type PropertyValues } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { resolveRadius } from \"../helper/utils/size-resolver.js\";\n\nexport type SkySheetBackground = \"primary\" | \"secondary\" | \"tertiary\" | \"solid\" | \"transparent\";\nexport type SkySheetBlurLevel = \"none\" | \"sm\" | \"md\" | \"lg\";\nexport type SkySheetShadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"inset\";\nexport type SkySheetBorder = \"none\" | \"sm\" | \"md\" | \"lg\";\n\n/** Preset tokens or any CSS length (e.g. `1rem`, `16px`). */\nexport type SkySheetRadius = string;\n\nconst SHEET_RADIUS_PRESETS: Record<string, string> = {\n none: \"0\",\n sm: \"var(--sky-radius-primary)\",\n md: \"var(--sky-radius-secondary)\",\n lg: \"var(--sky-radius-tertiary)\",\n xl: \"var(--sky-radius-full)\",\n};\n\n/** Preset map includes `xl`; arbitrary values pass through like `resolveRadius`. */\nexport function resolveSheetRadius(input: string): string {\n if (Object.prototype.hasOwnProperty.call(SHEET_RADIUS_PRESETS, input)) {\n return SHEET_RADIUS_PRESETS[input];\n }\n return resolveRadius(input);\n}\n\n/**\n * @element sky-sheet\n *\n * @summary Themed surface container with configurable background, blur, border, and shadow.\n *\n * @status stable\n * @since 1.0.0\n *\n * @documentation https://library.sky-ui.com/components/sheet\n *\n * @slot - Content placed inside the sheet container.\n *\n * @property {SkySheetBackground} bg - Background style.\n * @property {SkySheetBlurLevel} blurLevel - Backdrop blur intensity.\n * @property {SkySheetShadow} shadow - Shadow style preset.\n * @property {SkySheetBorder} border - Border style preset.\n * @property {SkySheetRadius} radius - Preset (`none`, `sm`, `md`, `lg`, `xl`) or CSS length (`1rem`, `16px`).\n *\n * @Behavior\n * - Applies visual styles directly on `:host` for compact composition.\n * - Uses theme CSS variables for consistent glass and elevation tokens.\n * - Renders slot content without additional wrappers.\n *\n * @example\n * ```html\n * <sky-sheet bg=\"solid\" blur-level=\"md\" shadow=\"lg\" border=\"md\" radius=\"lg\">\n * <h3>Deployment Summary</h3>\n * <p>All regional checks passed. Ready to promote to production.</p>\n * </sky-sheet>\n * ```\n * ```vue\n * <template>\n * <sky-sheet bg=\"solid\" blur-level=\"md\" shadow=\"lg\" border=\"md\" radius=\"lg\">\n * <h3>Deployment Summary</h3>\n * <p>All regional checks passed. Ready to promote to production.</p>\n * </sky-sheet>\n * </template>\n * ```\n * ```jsx\n * export default function Demo() {\n * return (\n * <sky-sheet bg=\"solid\" blur-level=\"md\" shadow=\"lg\" border=\"md\" radius=\"lg\">\n * <h3>Deployment Summary</h3>\n * <p>All regional checks passed. Ready to promote to production.</p>\n * </sky-sheet>\n * );\n * }\n * ```\n */\n@customElement(\"sky-sheet\")\nexport class SkySheet extends LitElement {\n\n @property({ type: String, reflect: true })\n bg: SkySheetBackground = \"primary\";\n\n @property({ type: String, reflect: true })\n blurLevel: SkySheetBlurLevel = \"sm\";\n\n @property({ type: String, reflect: true })\n shadow: SkySheetShadow = \"sm\";\n\n @property({ type: String, reflect: true })\n border: SkySheetBorder = \"sm\";\n\n @property({ type: String, reflect: true })\n radius: SkySheetRadius = \"md\";\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._applyRadiusVar();\n }\n\n private _applyRadiusVar(): void {\n this.style.setProperty(\"--sheet-radius\", resolveSheetRadius(this.radius));\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n if (changed.size === 0 || changed.has(\"radius\")) {\n this._applyRadiusVar();\n }\n }\n\n static override styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n font-family: var(--sky-font);\n width: 100%;\n height: 100%;\n padding: var(--sky-space-3, 12px);\n border-radius: var(--sheet-radius, var(--sky-radius-secondary));\n }\n\n /* background */\n :host([bg=\"primary\"]) {\n background: var(--sky-glass-primary);\n }\n :host([bg=\"secondary\"]) {\n background: var(--sky-glass-secondary);\n }\n :host([bg=\"tertiary\"]) {\n background: var(--sky-glass-tertiary);\n }\n :host([bg=\"solid\"]) {\n background: var(--sky-glass-solid);\n background-image: none;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n :host([bg=\"transparent\"]) {\n background: transparent;\n background-image: none;\n }\n\n :host([bg=\"primary\"]:not([blurLevel=\"none\"])),\n :host([bg=\"secondary\"]:not([blurLevel=\"none\"])),\n :host([bg=\"tertiary\"]:not([blurLevel=\"none\"])) {\n background-image: var(--sky-glass-surface);\n }\n\n :host([blurLevel=\"none\"]) {\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n :host([blurLevel=\"sm\"]) {\n backdrop-filter: var(--sky-blur-primary) var(--sky-brightness-primary)\n var(--sky-saturation-primary);\n -webkit-backdrop-filter: var(--sky-blur-primary)\n var(--sky-brightness-primary) var(--sky-saturation-primary);\n }\n :host([blurLevel=\"md\"]) {\n backdrop-filter: var(--sky-blur-secondary) var(--sky-brightness-secondary)\n var(--sky-saturation-secondary);\n -webkit-backdrop-filter: var(--sky-blur-secondary)\n var(--sky-brightness-secondary) var(--sky-saturation-secondary);\n }\n :host([blurLevel=\"lg\"]) {\n backdrop-filter: var(--sky-blur-tertiary) var(--sky-brightness-tertiary)\n var(--sky-saturation-tertiary);\n -webkit-backdrop-filter: var(--sky-blur-tertiary)\n var(--sky-brightness-tertiary) var(--sky-saturation-tertiary);\n }\n\n /* shadow */\n :host([shadow=\"none\"]) {\n box-shadow: none;\n }\n :host([shadow=\"sm\"]) {\n box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-primary);\n }\n :host([shadow=\"md\"]) {\n box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-secondary);\n }\n :host([shadow=\"lg\"]) {\n box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-tertiary);\n }\n :host([shadow=\"inset\"]) {\n box-shadow: var(--sky-box-shadow-inset);\n }\n\n /* border */\n :host([border=\"none\"]) {\n border: none;\n }\n :host([border=\"sm\"]) {\n border: var(--sky-border-primary);\n }\n :host([border=\"md\"]) {\n border: var(--sky-border-secondary);\n }\n :host([border=\"lg\"]) {\n border: var(--sky-border-tertiary);\n }\n `;\n\n override render() {\n return html`<slot></slot>`;\n }\n}\n"],"names":["SHEET_RADIUS_PRESETS","none","sm","md","lg","xl","resolveSheetRadius","input","Object","prototype","hasOwnProperty","call","resolveRadius","SkySheet","LitElement","constructor","super","arguments","this","bg","blurLevel","shadow","border","radius","connectedCallback","_applyRadiusVar","style","setProperty","willUpdate","changed","size","has","render","html","styles","css","__decorateClass","property","type","String","reflect","customElement"],"mappings":"qXAYA,MAAMA,EAA+C,CACnDC,KAAM,IACNC,GAAI,4BACJC,GAAI,8BACJC,GAAI,6BACJC,GAAI,0BAIC,SAASC,EAAmBC,GACjC,OAAIC,OAAOC,UAAUC,eAAeC,KAAKX,EAAsBO,GACtDP,EAAqBO,GAEvBK,EAAcL,EACvB,CAoDO,IAAMM,EAAN,cAAuBC,EAAvB,WAAAC,GAAAC,SAAAC,WAGLC,KAAAC,GAAyB,UAGzBD,KAAAE,UAA+B,KAG/BF,KAAAG,OAAyB,KAGzBH,KAAAI,OAAyB,KAGzBJ,KAAAK,OAAyB,IAAA,CAEhB,iBAAAC,GACPR,MAAMQ,oBACNN,KAAKO,iBACP,CAEQ,eAAAA,GACNP,KAAKQ,MAAMC,YAAY,iBAAkBrB,EAAmBY,KAAKK,QACnE,CAEmB,UAAAK,CAAWC,GAC5Bb,MAAMY,WAAWC,IACI,IAAjBA,EAAQC,MAAcD,EAAQE,IAAI,YACpCb,KAAKO,iBAET,CA+FS,MAAAO,GACP,OAAOC,CAAA,eACT,GAhIWpB,EAiCKqB,OAASC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9BzBC,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,KAFxB3B,EAGXJ,UAAA,KAAA,GAGA2B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,KALxB3B,EAMXJ,UAAA,YAAA,GAGA2B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,KARxB3B,EASXJ,UAAA,SAAA,GAGA2B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,KAXxB3B,EAYXJ,UAAA,SAAA,GAGA2B,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,KAdxB3B,EAeXJ,UAAA,SAAA,GAfWI,EAANuB,EAAA,CADNK,EAAc,cACF5B"}
@@ -1,4 +1,36 @@
1
- import{__decorate as t,__metadata as e}from"tslib";import{LitElement as r,css as a,html as s,nothing as o}from"lit";import{property as i,customElement as l}from"lit/decorators.js";import{repeat as y}from"lit/directives/repeat.js";import{styleMap as p}from"lit/directives/style-map.js";let d=class extends r{constructor(){super(...arguments),this.data=[],this.columns=[],this.emptyText="No data available"}get column(){return this.columns}set column(t){const e=this.columns;this.columns=Array.isArray(t)?t:[],this.requestUpdate("column",e)}static{this.styles=a`
1
+ import{css as t,LitElement as r,html as e,nothing as a}from"lit";import{property as s,customElement as o}from"lit/decorators.js";import{repeat as l}from"lit/directives/repeat.js";import{styleMap as i}from"lit/directives/style-map.js";var y=Object.defineProperty,p=Object.getOwnPropertyDescriptor,n=(t,r,e,a)=>{for(var s,o=a>1?void 0:a?p(r,e):r,l=t.length-1;l>=0;l--)(s=t[l])&&(o=(a?s(r,e,o):s(o))||o);return a&&o&&y(r,e,o),o};let d=class extends r{constructor(){super(...arguments),this.data=[],this.columns=[],this.emptyText="No data available"}get column(){return this.columns}set column(t){const r=this.columns;this.columns=Array.isArray(t)?t:[],this.requestUpdate("column",r)}get _safeData(){return Array.isArray(this.data)?this.data:[]}get _resolvedColumns(){if(Array.isArray(this.columns)&&this.columns.length>0)return this.columns.filter(t=>Boolean(t?.key));const t=this._safeData[0];return t?Object.keys(t).map(t=>({key:t,label:this._toTitle(t)})):[]}_toTitle(t){return t.replace(/[_-]+/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,t=>t.toUpperCase())}_formatCell(t){return null==t?"":t instanceof Date?t.toLocaleDateString():String(t)}_cellStyle(t){return{textAlign:t.align,width:t.width}}render(){const t=this._safeData,r=this._resolvedColumns;return t.length&&r.length?e`
2
+ <div class="wrapper" part="wrapper">
3
+ <table part="table">
4
+ <thead>
5
+ <tr>
6
+ ${l(r,t=>t.key,t=>e`
7
+ <th
8
+ part="header-cell"
9
+ style=${i(this._cellStyle(t))}
10
+ >
11
+ ${t.header??t.label??this._toTitle(t.key)}
12
+ </th>
13
+ `)}
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+ ${l(t,(t,r)=>String(t.id??r),t=>e`
18
+ <tr part="row">
19
+ ${l(r,t=>t.key,r=>e`
20
+ <td part="cell" style=${i(this._cellStyle(r))}>
21
+ ${this._formatCell(t[r.key])||a}
22
+ </td>
23
+ `)}
24
+ </tr>
25
+ `)}
26
+ </tbody>
27
+ </table>
28
+ </div>
29
+ `:e`
30
+ <div class="wrapper" part="wrapper">
31
+ <div class="empty" part="empty">${this.emptyText}</div>
32
+ </div>
33
+ `}};d.styles=t`
2
34
  :host {
3
35
  display: block;
4
36
  width: 100%;
@@ -64,37 +96,5 @@ import{__decorate as t,__metadata as e}from"tslib";import{LitElement as r,css as
64
96
  text-align: center;
65
97
  font-size: var(--sky-font-size-sm, 0.875rem);
66
98
  }
67
- `}get _safeData(){return Array.isArray(this.data)?this.data:[]}get _resolvedColumns(){if(Array.isArray(this.columns)&&this.columns.length>0)return this.columns.filter(t=>Boolean(t?.key));const t=this._safeData[0];return t?Object.keys(t).map(t=>({key:t,label:this._toTitle(t)})):[]}_toTitle(t){return t.replace(/[_-]+/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,t=>t.toUpperCase())}_formatCell(t){return null==t?"":t instanceof Date?t.toLocaleDateString():String(t)}_cellStyle(t){return{textAlign:t.align,width:t.width}}render(){const t=this._safeData,e=this._resolvedColumns;return t.length&&e.length?s`
68
- <div class="wrapper" part="wrapper">
69
- <table part="table">
70
- <thead>
71
- <tr>
72
- ${y(e,t=>t.key,t=>s`
73
- <th
74
- part="header-cell"
75
- style=${p(this._cellStyle(t))}
76
- >
77
- ${t.header??t.label??this._toTitle(t.key)}
78
- </th>
79
- `)}
80
- </tr>
81
- </thead>
82
- <tbody>
83
- ${y(t,(t,e)=>String(t.id??e),t=>s`
84
- <tr part="row">
85
- ${y(e,t=>t.key,e=>s`
86
- <td part="cell" style=${p(this._cellStyle(e))}>
87
- ${this._formatCell(t[e.key])||o}
88
- </td>
89
- `)}
90
- </tr>
91
- `)}
92
- </tbody>
93
- </table>
94
- </div>
95
- `:s`
96
- <div class="wrapper" part="wrapper">
97
- <div class="empty" part="empty">${this.emptyText}</div>
98
- </div>
99
- `}};t([i({type:Array}),e("design:type",Array)],d.prototype,"data",void 0),t([i({type:Array}),e("design:type",Array)],d.prototype,"columns",void 0),t([i({type:String}),e("design:type",Object)],d.prototype,"emptyText",void 0),t([i({type:Array}),e("design:type",Object),e("design:paramtypes",[Object])],d.prototype,"column",null),d=t([l("sky-simple-table")],d);export{d as SkySimpleTable};
99
+ `,n([s({type:Array})],d.prototype,"data",2),n([s({type:Array})],d.prototype,"columns",2),n([s({type:String})],d.prototype,"emptyText",2),n([s({type:Array})],d.prototype,"column",1),d=n([o("sky-simple-table")],d);export{d as SkySimpleTable};
100
100
  //# sourceMappingURL=sky-simple-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sky-simple-table.js","sources":["../../src/sky-simple-table/sky-simple-table.ts"],"sourcesContent":[null],"names":["SkySimpleTable","LitElement","constructor","this","data","columns","emptyText","column","value","old","Array","isArray","requestUpdate","styles","css","_safeData","_resolvedColumns","length","filter","Boolean","key","firstRow","Object","keys","map","label","_toTitle","replace","char","toUpperCase","_formatCell","Date","toLocaleDateString","String","_cellStyle","textAlign","align","width","render","rows","html","repeat","styleMap","header","row","index","id","nothing","__decorate","property","type","prototype","customElement"],"mappings":"6RA+DO,IAAMA,EAAN,cAA6BC,EAA7B,WAAAC,uBACsBC,KAAAC,KAA4B,GAC5BD,KAAAE,QAAkC,GACjCF,KAAAG,UAAY,mBA6K1C,CA3KE,UACIC,GACF,OAAOJ,KAAKE,OACd,CAEA,UAAIE,CAAOC,GACT,MAAMC,EAAMN,KAAKE,QACjBF,KAAKE,QAAUK,MAAMC,QAAQH,GAASA,EAAQ,GAC9CL,KAAKS,cAAc,SAAUH,EAC/B,QAEON,KAAAU,OAASC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEjB,CAEF,aAAYC,GACV,OAAOL,MAAMC,QAAQR,KAAKC,MAAQD,KAAKC,KAAO,EAChD,CAEA,oBAAYY,GACV,GAAIN,MAAMC,QAAQR,KAAKE,UAAYF,KAAKE,QAAQY,OAAS,EACvD,OAAOd,KAAKE,QAAQa,OAAQX,GAAWY,QAAQZ,GAAQa,MAGzD,MAAMC,EAAWlB,KAAKY,UAAU,GAChC,OAAKM,EAEEC,OAAOC,KAAKF,GAAUG,IAAKJ,IAAG,CACnCA,MACAK,MAAOtB,KAAKuB,SAASN,MAJD,EAMxB,CAEQ,QAAAM,CAASlB,GACf,OAAOA,EACJmB,QAAQ,SAAU,KAClBA,QAAQ,kBAAmB,SAC3BA,QAAQ,QAAUC,GAASA,EAAKC,cACrC,CAEQ,WAAAC,CAAYtB,GAClB,OAAIA,QAA8C,GAC9CA,aAAiBuB,KAAavB,EAAMwB,qBACjCC,OAAOzB,EAChB,CAEQ,UAAA0B,CAAW3B,GACjB,MAAO,CACL4B,UAAW5B,EAAO6B,MAClBC,MAAO9B,EAAO8B,MAElB,CAEA,MAAAC,GACE,MAAMC,EAAOpC,KAAKY,UACZV,EAAUF,KAAKa,iBAErB,OAAKuB,EAAKtB,QAAWZ,EAAQY,OAQtBuB,CAAI;;;;;gBAKCC,EACApC,EACCE,GAAWA,EAAOa,IAClBb,GAAWiC,CAAI;;;4BAGJE,EAASvC,KAAK+B,WAAW3B;;sBAE/BA,EAAOoC,QAAUpC,EAAOkB,OAAStB,KAAKuB,SAASnB,EAAOa;;;;;;cAO9DqB,EACAF,EACA,CAACK,EAAKC,IAAUZ,OAAOW,EAAIE,IAAMD,GAChCD,GAAQJ,CAAI;;oBAEPC,EACApC,EACCE,GAAWA,EAAOa,IAClBb,GAAWiC,CAAI;8CACUE,EAASvC,KAAK+B,WAAW3B;0BAC7CJ,KAAK2B,YAAYc,EAAIrC,EAAOa,OAAS2B;;;;;;;;MArClDP,CAAI;;4CAE2BrC,KAAKG;;OA8C/C,GA9K2B0C,EAAA,CAA1BC,EAAS,CAAEC,KAAMxC,gCAAwCV,EAAAmD,UAAA,eAC/BH,EAAA,CAA1BC,EAAS,CAAEC,KAAMxC,gCAA8CV,EAAAmD,UAAA,kBACpCH,EAAA,CAA3BC,EAAS,CAAEC,KAAMjB,kCAA0CjC,EAAAmD,UAAA,oBAE5DH,EAAA,CAACC,EAAS,CAAEC,KAAMxC,iEAGjBV,EAAAmD,UAAA,SAAA,MARUnD,EAAcgD,EAAA,CAD1BI,EAAc,qBACFpD"}
1
+ {"version":3,"file":"sky-simple-table.js","sources":["../../src/sky-simple-table/sky-simple-table.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\nimport { repeat } from \"lit/directives/repeat.js\";\r\nimport { styleMap } from \"lit/directives/style-map.js\";\r\n\r\nexport type SkySimpleTableCellValue =\r\n | string\r\n | number\r\n | boolean\r\n | null\r\n | undefined\r\n | Date;\r\n\r\nexport type SkySimpleTableRow = Record<string, SkySimpleTableCellValue>;\r\n\r\nexport type SkySimpleTableColumn = {\r\n key: string;\r\n label?: string;\r\n header?: string;\r\n align?: \"left\" | \"center\" | \"right\";\r\n width?: string;\r\n};\r\n\r\n/**\r\n * @element sky-simple-table\r\n *\r\n * @summary Lightweight table for rendering simple object rows from `data` and `columns` props.\r\n *\r\n * @status stable\r\n * @since 1.0.0\r\n *\r\n * @documentation https://library.sky-ui.com/components/simple-table\r\n *\r\n * @csspart wrapper - Scrollable table wrapper.\r\n * @csspart table - The native table element.\r\n * @csspart header-cell - Header cells.\r\n * @csspart row - Body rows.\r\n * @csspart cell - Body cells.\r\n * @csspart empty - Empty state message.\r\n *\r\n * @property {SkySimpleTableRow[]} data - Plain object rows.\r\n * @property {SkySimpleTableColumn[]} columns - Column definitions. Uses first row keys when omitted.\r\n * @property {SkySimpleTableColumn[]} column - Alias for `columns`.\r\n * @property {string} emptyText - Message shown when there are no rows.\r\n *\r\n * @example\r\n * ```html\r\n * <sky-simple-table></sky-simple-table>\r\n * <script>\r\n * const table = document.querySelector(\"sky-simple-table\");\r\n * table.columns = [\r\n * { key: \"name\", label: \"Name\" },\r\n * { key: \"role\", label: \"Role\" },\r\n * { key: \"status\", label: \"Status\" },\r\n * ];\r\n * table.data = [\r\n * { name: \"Aarav Patel\", role: \"Designer\", status: \"Active\" },\r\n * { name: \"Maya Shah\", role: \"Engineer\", status: \"Away\" },\r\n * ];\r\n * </script>\r\n * ```\r\n */\r\n@customElement(\"sky-simple-table\")\r\nexport class SkySimpleTable extends LitElement {\r\n @property({ type: Array }) data: SkySimpleTableRow[] = [];\r\n @property({ type: Array }) columns: SkySimpleTableColumn[] = [];\r\n @property({ type: String }) emptyText = \"No data available\";\r\n\r\n @property({ type: Array })\r\n get column(): SkySimpleTableColumn[] {\r\n return this.columns;\r\n }\r\n\r\n set column(value: SkySimpleTableColumn[] | null | undefined) {\r\n const old = this.columns;\r\n this.columns = Array.isArray(value) ? value : [];\r\n this.requestUpdate(\"column\", old);\r\n }\r\n\r\n static styles = css`\r\n :host {\r\n display: block;\r\n width: 100%;\r\n color: var(--sky-text-primary);\r\n font-family: var(--sky-font);\r\n }\r\n\r\n .wrapper {\r\n width: 100%;\r\n overflow-x: auto;\r\n border: var(--sky-border-primary);\r\n border-radius: var(--sky-radius-secondary);\r\n background: var(--sky-glass-primary);\r\n box-shadow: var(--sky-box-shadow-primary);\r\n }\r\n\r\n table {\r\n width: 100%;\r\n min-width: max-content;\r\n border-collapse: collapse;\r\n font-size: var(--sky-font-size-sm, 0.875rem);\r\n }\r\n\r\n thead {\r\n background: var(--sky-glass-secondary);\r\n }\r\n\r\n th,\r\n td {\r\n box-sizing: border-box;\r\n padding: var(--sky-space-3, 12px) var(--sky-space-4, 16px);\r\n border-bottom: 1px solid var(--sky-border-light);\r\n text-align: left;\r\n white-space: nowrap;\r\n }\r\n\r\n th {\r\n color: var(--sky-text-secondary);\r\n font-weight: 700;\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n td {\r\n color: var(--sky-text-primary);\r\n }\r\n\r\n tbody tr:last-child td {\r\n border-bottom: 0;\r\n }\r\n\r\n tbody tr {\r\n transition: background var(--sky-duration-fast, 120ms)\r\n var(--sky-ease-default, ease);\r\n }\r\n\r\n tbody tr:hover {\r\n background: var(--sky-hover-primary);\r\n }\r\n\r\n .empty {\r\n padding: var(--sky-space-6, 24px);\r\n color: var(--sky-text-secondary);\r\n text-align: center;\r\n font-size: var(--sky-font-size-sm, 0.875rem);\r\n }\r\n `;\r\n\r\n private get _safeData(): SkySimpleTableRow[] {\r\n return Array.isArray(this.data) ? this.data : [];\r\n }\r\n\r\n private get _resolvedColumns(): SkySimpleTableColumn[] {\r\n if (Array.isArray(this.columns) && this.columns.length > 0) {\r\n return this.columns.filter((column) => Boolean(column?.key));\r\n }\r\n\r\n const firstRow = this._safeData[0];\r\n if (!firstRow) return [];\r\n\r\n return Object.keys(firstRow).map((key) => ({\r\n key,\r\n label: this._toTitle(key),\r\n }));\r\n }\r\n\r\n private _toTitle(value: string): string {\r\n return value\r\n .replace(/[_-]+/g, \" \")\r\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\r\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n }\r\n\r\n private _formatCell(value: SkySimpleTableCellValue): string {\r\n if (value === null || value === undefined) return \"\";\r\n if (value instanceof Date) return value.toLocaleDateString();\r\n return String(value);\r\n }\r\n\r\n private _cellStyle(column: SkySimpleTableColumn) {\r\n return {\r\n textAlign: column.align,\r\n width: column.width,\r\n };\r\n }\r\n\r\n render() {\r\n const rows = this._safeData;\r\n const columns = this._resolvedColumns;\r\n\r\n if (!rows.length || !columns.length) {\r\n return html`\r\n <div class=\"wrapper\" part=\"wrapper\">\r\n <div class=\"empty\" part=\"empty\">${this.emptyText}</div>\r\n </div>\r\n `;\r\n }\r\n\r\n return html`\r\n <div class=\"wrapper\" part=\"wrapper\">\r\n <table part=\"table\">\r\n <thead>\r\n <tr>\r\n ${repeat(\r\n columns,\r\n (column) => column.key,\r\n (column) => html`\r\n <th\r\n part=\"header-cell\"\r\n style=${styleMap(this._cellStyle(column))}\r\n >\r\n ${column.header ?? column.label ?? this._toTitle(column.key)}\r\n </th>\r\n `,\r\n )}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${repeat(\r\n rows,\r\n (row, index) => String(row.id ?? index),\r\n (row) => html`\r\n <tr part=\"row\">\r\n ${repeat(\r\n columns,\r\n (column) => column.key,\r\n (column) => html`\r\n <td part=\"cell\" style=${styleMap(this._cellStyle(column))}>\r\n ${this._formatCell(row[column.key]) || nothing}\r\n </td>\r\n `,\r\n )}\r\n </tr>\r\n `,\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"sky-simple-table\": SkySimpleTable;\r\n }\r\n}\r\n"],"names":["SkySimpleTable","LitElement","constructor","super","arguments","this","data","columns","emptyText","column","value","old","Array","isArray","requestUpdate","_safeData","_resolvedColumns","length","filter","Boolean","key","firstRow","Object","keys","map","label","_toTitle","replace","char","toUpperCase","_formatCell","Date","toLocaleDateString","String","_cellStyle","textAlign","align","width","render","rows","html","repeat","styleMap","header","row","index","id","nothing","styles","css","__decorateClass","property","type","prototype","customElement"],"mappings":"0aA+DO,IAAMA,EAAN,cAA6BC,EAA7B,WAAAC,GAAAC,SAAAC,WACsBC,KAAAC,KAA4B,GAC5BD,KAAAE,QAAkC,GACjCF,KAAAG,UAAY,mBAAA,CAGxC,UAAIC,GACF,OAAOJ,KAAKE,OACd,CAEA,UAAIE,CAAOC,GACT,MAAMC,EAAMN,KAAKE,QACjBF,KAAKE,QAAUK,MAAMC,QAAQH,GAASA,EAAQ,GAC9CL,KAAKS,cAAc,SAAUH,EAC/B,CAsEA,aAAYI,GACV,OAAOH,MAAMC,QAAQR,KAAKC,MAAQD,KAAKC,KAAO,EAChD,CAEA,oBAAYU,GACV,GAAIJ,MAAMC,QAAQR,KAAKE,UAAYF,KAAKE,QAAQU,OAAS,EACvD,OAAOZ,KAAKE,QAAQW,OAAQT,GAAWU,QAAQV,GAAQW,MAGzD,MAAMC,EAAWhB,KAAKU,UAAU,GAChC,OAAKM,EAEEC,OAAOC,KAAKF,GAAUG,IAAKJ,IAAA,CAChCA,MACAK,MAAOpB,KAAKqB,SAASN,MAJD,EAMxB,CAEQ,QAAAM,CAAShB,GACf,OAAOA,EACJiB,QAAQ,SAAU,KAClBA,QAAQ,kBAAmB,SAC3BA,QAAQ,QAAUC,GAASA,EAAKC,cACrC,CAEQ,WAAAC,CAAYpB,GAClB,OAAIA,QAA8C,GAC9CA,aAAiBqB,KAAarB,EAAMsB,qBACjCC,OAAOvB,EAChB,CAEQ,UAAAwB,CAAWzB,GACjB,MAAO,CACL0B,UAAW1B,EAAO2B,MAClBC,MAAO5B,EAAO4B,MAElB,CAEA,MAAAC,GACE,MAAMC,EAAOlC,KAAKU,UACZR,EAAUF,KAAKW,iBAErB,OAAKuB,EAAKtB,QAAWV,EAAQU,OAQtBuB,CAAA;;;;;gBAKKC,EACAlC,EACCE,GAAWA,EAAOW,IAClBX,GAAW+B,CAAA;;;4BAGAE,EAASrC,KAAK6B,WAAWzB;;sBAE/BA,EAAOkC,QAAUlC,EAAOgB,OAASpB,KAAKqB,SAASjB,EAAOW;;;;;;cAO9DqB,EACAF,EACA,CAACK,EAAKC,IAAUZ,OAAOW,EAAIE,IAAMD,GAChCD,GAAQJ,CAAA;;oBAEHC,EACAlC,EACCE,GAAWA,EAAOW,IAClBX,GAAW+B,CAAA;8CACcE,EAASrC,KAAK6B,WAAWzB;0BAC7CJ,KAAKyB,YAAYc,EAAInC,EAAOW,OAAS2B;;;;;;;;MArClDP,CAAA;;4CAE+BnC,KAAKG;;OA8C/C,GA/KWR,EAgBJgD,OAASC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAfWC,EAAA,CAA1BC,EAAS,CAAEC,KAAMxC,SADPZ,EACgBqD,UAAA,OAAA,GACAH,EAAA,CAA1BC,EAAS,CAAEC,KAAMxC,SAFPZ,EAEgBqD,UAAA,UAAA,GACCH,EAAA,CAA3BC,EAAS,CAAEC,KAAMnB,UAHPjC,EAGiBqD,UAAA,YAAA,GAGxBH,EAAA,CADHC,EAAS,CAAEC,KAAMxC,SALPZ,EAMPqD,UAAA,SAAA,GANOrD,EAANkD,EAAA,CADNI,EAAc,qBACFtD"}
@@ -1,4 +1,4 @@
1
- import{__decorate as e,__metadata as r}from"tslib";import{LitElement as t,css as o,html as s}from"lit";import{property as a,state as i,customElement as n}from"lit/decorators.js";import{createContext as c,provide as l}from"@lit/context";const y={light:{glass:{baseColor:"#F5F7FA",opacities:{primary:.34,secondary:.34,tertiary:.34,solid:1}},overlay:{color:"#F5F7FA",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#000000",opacity:{primary:.08,secondary:.11,tertiary:.14,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#FAFAFA",foreground:"#1A1A1A",active:"#0485f7",success:"#17C964",warning:"#F5A524",danger:"#Ff383c",info:"#9353D3"},blur:{primary:"10px",secondary:"20px",tertiary:"28px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 6px 18px rgba(0,0,0,0.05)",secondary:"0 10px 28px rgba(0,0,0,0.08)",tertiary:"0 16px 40px rgba(0,0,0,0.10)",inset:"inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -1px 0 rgba(0,0,0,0.04)",hover:"0 8px 24px rgba(0,0,0,0.10)"},brightness:{primary:"1.02",secondary:"1.06",tertiary:"1.08"},saturation:{primary:"1.05",secondary:"1.12",tertiary:"1.18"},separator:"rgba(0,0,0,0.10)",border:{primary:"1px solid rgba(0,0,0,0.10)",secondary:"1px solid rgba(0,0,0,0.08)",tertiary:"1px solid rgba(0,0,0,0.06)"},glassSurface:{top:.24,bottom:.06},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}},dark:{glass:{baseColor:"#181A1B",opacities:{primary:.4,secondary:.4,tertiary:.4,solid:1}},overlay:{color:"#181A1B",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#FFFFFF",opacity:{primary:.1,secondary:.14,tertiary:.18,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#181A1B",foreground:"#E5E5E5",active:"#0485f7",success:"#17C964",warning:"#f7b750",danger:"#db3b3e",info:"#9353D3"},blur:{primary:"10px",secondary:"20px",tertiary:"28px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 6px 18px rgba(0,0,0,0.28)",secondary:"0 10px 28px rgba(0,0,0,0.32)",tertiary:"0 16px 40px rgba(0,0,0,0.36)",inset:"inset 0 1px 0 rgba(255,255,255,0.10), inset 0 -1px 0 rgba(0,0,0,0.22)",hover:"0 8px 24px rgba(0,0,0,0.38)"},brightness:{primary:"1.0",secondary:"1.04",tertiary:"1.06"},saturation:{primary:"1.08",secondary:"1.15",tertiary:"1.22"},separator:"rgba(255,255,255,0.10)",border:{primary:"1px solid rgba(255,255,255,0.12)",secondary:"1px solid rgba(255,255,255,0.10)",tertiary:"1px solid rgba(255,255,255,0.08)"},glassSurface:{top:.26,bottom:.08},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}}};function d(){try{if("undefined"!=typeof localStorage){const e=localStorage.getItem("theme");return"light"===e||"dark"===e||"system"===e?e:"system"}}catch{}return"system"}function m(e){if("undefined"==typeof window)return"light";if("system"===e){try{if(window.matchMedia)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{}return"light"}return e}function h(){if("undefined"==typeof document)return"light";const e=document.documentElement.getAttribute("data-theme");return"light"===e||"dark"===e?e:"undefined"!=typeof matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function p(e){if("undefined"==typeof window)return()=>{};const r=r=>{const{mode:t,preference:o}=r.detail||{};"light"===t||"dark"===t?e(t,o):e(h(),void 0)};return window.addEventListener("sky-theme",r),queueMicrotask(()=>e(h(),void 0)),()=>window.removeEventListener("sky-theme",r)}function k(e,r){const t=Array.isArray(e)?[...e]:{...e};for(const o in r){const s=r[o];s&&"object"==typeof s&&!Array.isArray(s)?t[o]=k(e[o],s):t[o]=s??e[o]}return t}function u(e){return{light:k(y.light,e.light??{}),dark:k(y.dark,e.dark??{})}}function b(e,r=1){const t="number"==typeof e&&Number.isFinite(e)?e:r;return Math.max(0,Math.min(1,t))}function g(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):100}function f(e){return/^oklch\(\s*[\d.]+\s+[\d.]+\s+[\d.]+(?:deg)?(?:\s*\/\s*[\d.]+%?)?\s*\)$/i.test(e.trim())}function x(e){return f(e),e}function v(e,r){const t=b(r),o=g(100*t);if(t<=0)return"transparent";if(t>=1)return x(e);if(f(e)){const r=e.trim();return r.includes("/")?r:r.replace(/\)$/,` / ${o}%)`)}return`color-mix(in oklch, ${e} ${o}%, transparent)`}function $(e,r,t){return`color-mix(in oklch, ${e} ${g(r)}%, ${t})`}function S(e,r){return e.split(",").map(e=>`${e.trim()}${r}`).join(",\n")}function w(e){return`\n${e} {\n scrollbar-color: var(--sky-scrollbar-thumb) var(--sky-scrollbar-track);\n}\n${S(e,"::-webkit-scrollbar-track")} {\n background: var(--sky-scrollbar-track);\n}\n${S(e,"::-webkit-scrollbar-thumb")} {\n background-color: var(--sky-scrollbar-thumb);\n}\n${S(e,"::-webkit-scrollbar-thumb:hover")} {\n background-color: var(--sky-scrollbar-thumb-hover);\n}\n`.trim()}function E(e,r){return`${r}{${Object.entries(e).map(([e,r])=>`${e.replace(/\./g,"\\.")}:${r};`).join("")}}`}function z(e,r){let t=document.getElementById(e);return t||(t=document.createElement("style"),t.id=e,document.head.appendChild(t)),t.textContent=r,t}const F=c("sky/theme");let C=class extends t{constructor(){super(...arguments),this.scope="root",this.preference=d(),this.mode="light",this.persist=!0,this.broadcast=!0,this.media=null,this.globalStyleId="sky-theme-provider-global-style",this.hostScrollbarStyleId="sky-theme-provider-host-scrollbar",this.hostSheet=null,this.hostStyleEl=null,this.rootVarsStyleId="sky-theme-vars-root",this.onSystemChange=()=>{"system"===(this.preference??d())&&(this.mode=m("system"),this.applyVariables(),this.pushContext(),this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0})))}}static{this.styles=o`
1
+ import{css as e,LitElement as r,html as t}from"lit";import{property as o,state as s,customElement as a}from"lit/decorators.js";import{createContext as i,provide as n}from"@lit/context";var c=Object.defineProperty,l=Object.getOwnPropertyDescriptor,y=(e,r,t,o)=>{for(var s,a=o>1?void 0:o?l(r,t):r,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o?s(r,t,a):s(a))||a);return o&&a&&c(r,t,a),a};const m={light:{glass:{baseColor:"#F5F7FA",opacities:{primary:.34,secondary:.34,tertiary:.34,solid:1}},overlay:{color:"#F5F7FA",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#000000",opacity:{primary:.08,secondary:.11,tertiary:.14,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#FAFAFA",foreground:"#1A1A1A",active:"#0485f7",success:"#17C964",warning:"#F5A524",danger:"#Ff383c",info:"#9353D3"},blur:{primary:"10px",secondary:"20px",tertiary:"28px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 6px 18px rgba(0,0,0,0.05)",secondary:"0 10px 28px rgba(0,0,0,0.08)",tertiary:"0 16px 40px rgba(0,0,0,0.10)",inset:"inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -1px 0 rgba(0,0,0,0.04)",hover:"0 8px 24px rgba(0,0,0,0.10)"},brightness:{primary:"1.02",secondary:"1.06",tertiary:"1.08"},saturation:{primary:"1.05",secondary:"1.12",tertiary:"1.18"},separator:"rgba(0,0,0,0.10)",border:{primary:"1px solid rgba(0,0,0,0.10)",secondary:"1px solid rgba(0,0,0,0.08)",tertiary:"1px solid rgba(0,0,0,0.06)"},glassSurface:{top:.24,bottom:.06},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}},dark:{glass:{baseColor:"#181A1B",opacities:{primary:.4,secondary:.4,tertiary:.4,solid:1}},overlay:{color:"#181A1B",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#FFFFFF",opacity:{primary:.1,secondary:.14,tertiary:.18,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#181A1B",foreground:"#E5E5E5",active:"#0485f7",success:"#17C964",warning:"#f7b750",danger:"#db3b3e",info:"#9353D3"},blur:{primary:"10px",secondary:"20px",tertiary:"28px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 6px 18px rgba(0,0,0,0.28)",secondary:"0 10px 28px rgba(0,0,0,0.32)",tertiary:"0 16px 40px rgba(0,0,0,0.36)",inset:"inset 0 1px 0 rgba(255,255,255,0.10), inset 0 -1px 0 rgba(0,0,0,0.22)",hover:"0 8px 24px rgba(0,0,0,0.38)"},brightness:{primary:"1.0",secondary:"1.04",tertiary:"1.06"},saturation:{primary:"1.08",secondary:"1.15",tertiary:"1.22"},separator:"rgba(255,255,255,0.10)",border:{primary:"1px solid rgba(255,255,255,0.12)",secondary:"1px solid rgba(255,255,255,0.10)",tertiary:"1px solid rgba(255,255,255,0.08)"},glassSurface:{top:.26,bottom:.08},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}}};function d(){try{if("undefined"!=typeof localStorage){const e=localStorage.getItem("theme");return"light"===e||"dark"===e||"system"===e?e:"system"}}catch{}return"system"}function h(e){if("undefined"==typeof window)return"light";if("system"===e){try{if(window.matchMedia)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{}return"light"}return e}function p(){if("undefined"==typeof document)return"light";const e=document.documentElement.getAttribute("data-theme");return"light"===e||"dark"===e?e:"undefined"!=typeof matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function k(e){if("undefined"==typeof window)return()=>{};const r=r=>{const{mode:t,preference:o}=r.detail||{};"light"===t||"dark"===t?e(t,o):e(p(),void 0)};return window.addEventListener("sky-theme",r),queueMicrotask(()=>e(p(),void 0)),()=>window.removeEventListener("sky-theme",r)}function u(e,r){const t=Array.isArray(e)?[...e]:{...e};for(const o in r){const s=r[o];s&&"object"==typeof s&&!Array.isArray(s)?t[o]=u(e[o],s):t[o]=s??e[o]}return t}function b(e){return{light:u(m.light,e.light??{}),dark:u(m.dark,e.dark??{})}}function g(e,r=1){const t="number"==typeof e&&Number.isFinite(e)?e:r;return Math.max(0,Math.min(1,t))}function f(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):100}function x(e){return/^oklch\(\s*[\d.]+\s+[\d.]+\s+[\d.]+(?:deg)?(?:\s*\/\s*[\d.]+%?)?\s*\)$/i.test(e.trim())}function v(e){return x(e),e}function $(e,r){const t=g(r),o=f(100*t);if(t<=0)return"transparent";if(t>=1)return v(e);if(x(e)){const r=e.trim();return r.includes("/")?r:r.replace(/\)$/,` / ${o}%)`)}return`color-mix(in oklch, ${e} ${o}%, transparent)`}function S(e,r,t){return`color-mix(in oklch, ${e} ${f(r)}%, ${t})`}function w(e,r){return e.split(",").map(e=>`${e.trim()}${r}`).join(",\n")}function E(e){return`\n${e} {\n scrollbar-color: var(--sky-scrollbar-thumb) var(--sky-scrollbar-track);\n}\n${w(e,"::-webkit-scrollbar-track")} {\n background: var(--sky-scrollbar-track);\n}\n${w(e,"::-webkit-scrollbar-thumb")} {\n background-color: var(--sky-scrollbar-thumb);\n}\n${w(e,"::-webkit-scrollbar-thumb:hover")} {\n background-color: var(--sky-scrollbar-thumb-hover);\n}\n`.trim()}function z(e,r){return`${r}{${Object.entries(e).map(([e,r])=>`${e.replace(/\./g,"\\.")}:${r};`).join("")}}`}function F(e,r){let t=document.getElementById(e);return t||(t=document.createElement("style"),t.id=e,document.head.appendChild(t)),t.textContent=r,t}const C=i("sky/theme");let j=class extends r{constructor(){super(...arguments),this.scope="root",this.preference=d(),this.mode="light",this.persist=!0,this.broadcast=!0,this.media=null,this.globalStyleId="sky-theme-provider-global-style",this.hostScrollbarStyleId="sky-theme-provider-host-scrollbar",this.hostSheet=null,this.hostStyleEl=null,this.rootVarsStyleId="sky-theme-vars-root",this.onSystemChange=()=>{"system"===(this.preference??d())&&(this.mode=h("system"),this.applyVariables(),this.pushContext(),this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0})))}}connectedCallback(){super.connectedCallback(),this.mode=h(this.preference),this.pushContext(),this.setupSystemWatcher(),"host"===this.scope&&this.applyVariables()}disconnectedCallback(){if(super.disconnectedCallback(),this.media?.removeEventListener("change",this.onSystemChange),this.hostStyleEl&&this.hostStyleEl.parentNode&&(this.hostStyleEl.parentNode.removeChild(this.hostStyleEl),this.hostStyleEl=null),"host"===this.scope){const e=document.getElementById(this.globalStyleId);e&&e.remove();const r=document.getElementById(this.hostScrollbarStyleId);r&&r.remove()}}firstUpdated(){"root"!==this.scope&&"both"!==this.scope||this.applyVariables()}updated(e){super.updated(e),(e.has("userTheme")||e.has("mode")||e.has("preference")||e.has("scope"))&&this.pushContext()}willUpdate(e){const r=e.has("preference"),t=e.has("scope"),o=e.has("userTheme");let s=!1;if(r||t){const e=h(this.preference);e!==this.mode&&(this.mode=e,s=!0)}const a=!!this.hasUpdated;if(("host"===this.scope||a)&&(s||t||o)&&this.applyVariables(),r||s||o||t){this.pushContext();const e="host"===this.scope&&a&&(o||r||s||t);this.broadcast&&("root"===this.scope||"both"===this.scope||e)&&this.broadcastTheme()}}setRootThemeAttrs(){const e=document.documentElement;e.toggleAttribute("data-theme-light","light"===this.mode),e.toggleAttribute("data-theme-dark","dark"===this.mode),e.setAttribute("data-theme",this.mode),e.style.colorScheme=this.mode,e.classList.toggle("dark","dark"===this.mode)}broadcastTheme(){const e={mode:this.mode,preference:this.preference};window.dispatchEvent(new CustomEvent("sky-theme",{detail:e})),window.dispatchEvent(new CustomEvent("theme-change-global",{detail:e}))}setPreference(e){try{!this.persist||"root"!==this.scope&&"both"!==this.scope||localStorage.setItem("theme",e)}catch{}this.preference=e,!this.broadcast||"root"!==this.scope&&"both"!==this.scope||this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0}))}togglePreference(){const e=this.preference??d(),r="light"===e?"dark":"dark"===e?"system":"light";return this.setPreference(r),r}setupSystemWatcher(){"undefined"!=typeof window&&window.matchMedia&&(this.media=window.matchMedia("(prefers-color-scheme: dark)"),this.media.addEventListener("change",this.onSystemChange))}ensureGlobalStyle(){if("undefined"==typeof document)return;const e=`\n body {\n font-family: var(--sky-font);\n margin: 0;\n padding: 0;\n background: var(--sky-background-color);\n color: var(--sky-text-primary);\n }\n\n html[data-sky-dialog-open="true"] {\n overflow: hidden !important;\n position: relative;\n height: 100%;\n }\n\n ${E("html, body, *")}\n `.trim();let r=document.getElementById(this.globalStyleId);r?r.textContent=e:(r=document.createElement("style"),r.id=this.globalStyleId,r.textContent=e,document.head.appendChild(r))}applyHostNativeScrollbars(e){if("undefined"!=typeof document){if(this.toggleAttribute("sky-native-scrollbars",e),!e){const e=document.getElementById(this.hostScrollbarStyleId);return void(e&&e.remove())}F(this.hostScrollbarStyleId,E("sky-theme-provider[sky-native-scrollbars], sky-theme-provider[sky-native-scrollbars] *"))}}applyVariables(){const e=function(e,r){const t={},o=(e,r)=>{null!=r&&(t[`--${e}`]=r)};o("sky-text-dark",v(r?"#FFFFFF":"#0B1020")),o("sky-text-light",v(r?"#030712":"#FFFFFF"));const s=e.fontFamily,a=e.fontFamilyMono??"ui-monospace, monospace";o("sky-font",s),o("sky-font-sans",s),o("sky-font-mono",a),o("sky-background-color",v(e.color.background)),o("sky-text-primary",v(e.color.foreground));const i=r?{secondary:82,tertiary:66,quaternary:50,quinary:36}:{secondary:76,tertiary:60,quaternary:44,quinary:30};Object.entries(i).forEach(([e,r])=>{o(`sky-text-${e}`,`color-mix(in oklch, var(--sky-text-primary) ${r}%, var(--sky-background-color))`)}),["primary","secondary","tertiary","quaternary","quinary"].forEach(e=>{o(`sky-text-${e}-hover`,`color-mix(in oklch, var(--sky-text-${e}) 86%, var(--sky-text-dark))`)});const{baseColor:n,baseShades:c,opacities:l}=e.glass,y=e.color.foreground,m=r?{primary:96,secondary:88,tertiary:78}:{primary:96,secondary:90,tertiary:82},d=c?.primary??S(n,m.primary,y),h=c?.secondary??S(n,m.secondary,y),p=c?.tertiary??S(n,m.tertiary,y),k=r?.4:.34,u={primary:g(l.primary,k),secondary:g(l.secondary??l.primary,k),tertiary:g(l.tertiary??l.primary,k),solid:g(l.solid,1)};o("sky-glass-primary",$(d,u.primary)),o("sky-glass-secondary",$(h,u.secondary)),o("sky-glass-tertiary",$(p,u.tertiary)),o("sky-glass-solid",$(n,u.solid));const b=g(e.glassSurface?.top,r?.26:.24),f=g(e.glassSurface?.bottom,r?.08:.06);o("sky-glass-surface",`linear-gradient(\n 180deg,\n ${$(h,b)},\n ${$(d,f)}\n )`),Object.entries(e.overlay.opacities).forEach(([r,t])=>{o(`sky-overlay-${r}`,$(e.overlay.color,t))}),Object.entries(e.glassHover.opacity).forEach(([r,t])=>{o(`sky-hover-${r}`,$(e.glassHover.color,t))}),Object.entries(e.border).forEach(([e,r])=>{o(`sky-border-${e}`,r)}),Object.entries(e.radius).forEach(([e,r])=>{o(`sky-radius-${e}`,r)}),Object.entries(e.blur).forEach(([e,r])=>{o(`sky-blur-${e}`,`blur(${r})`)}),Object.entries(e.brightness).forEach(([e,r])=>{o(`sky-brightness-${e}`,`brightness(${r})`)}),Object.entries(e.saturation).forEach(([e,r])=>{o(`sky-saturation-${e}`,`saturate(${r})`)}),Object.entries(e.boxshadow).forEach(([e,r])=>{o(`sky-box-shadow-${e}`,r)}),o("sky-border-light",e.separator),Object.entries(e.motion?.duration??{}).forEach(([e,r])=>{o(`sky-duration-${e}`,r)}),Object.entries(e.motion?.ease??{}).forEach(([e,r])=>{o(`sky-ease-${e}`,r)}),o("sky-transition-default",["background-color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","border-color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","box-shadow var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","transform var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","opacity var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"].join(", ")),o("sky-transition-fast",["background-color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","border-color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","box-shadow var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","opacity var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"].join(", ")),Object.entries(e.zIndex??{}).forEach(([e,r])=>{o(`sky-z-${e}`,String(r))}),Object.entries(e.opacity??{}).forEach(([e,r])=>{o(`sky-opacity-${e}`,String(r))});const x=e.scrollbar;o("sky-scrollbar-track",x?.track??"transparent"),o("sky-scrollbar-thumb",x?.thumb??(r?"color-mix(in oklch, var(--sky-text-tertiary) 78%, transparent)":"color-mix(in oklch, var(--sky-text-tertiary) 68%, transparent)")),o("sky-scrollbar-thumb-hover",x?.thumbHover??(r?"color-mix(in oklch, var(--sky-text-secondary) 52%, var(--sky-active-primary))":"color-mix(in oklch, var(--sky-text-secondary) 44%, var(--sky-active-primary))")),o("sky-text-shadow-on-glass",r?"0 1px 2px rgba(0,0,0,0.45)":"0 1px 1px rgba(255,255,255,0.55)");const w=["active","success","warning","danger","info"];w.forEach(r=>{const t=e.color[r];o(`sky-${r}-primary`,t),o(`sky-${r}-secondary`,`color-mix(in oklch, var(--sky-${r}-primary) 82%, var(--sky-background-color))`),o(`sky-${r}-tertiary`,`color-mix(in oklch, var(--sky-${r}-primary) 62%, var(--sky-background-color))`),o(`sky-${r}-quaternary`,`color-mix(in oklch, var(--sky-${r}-primary) 42%, var(--sky-background-color))`),o(`sky-${r}-quinary`,`color-mix(in oklch, var(--sky-${r}-primary) 24%, var(--sky-background-color))`),o(`sky-${r}-primary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 88%, var(--sky-text-dark))`),o(`sky-${r}-secondary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 72%, var(--sky-text-dark))`),o(`sky-${r}-tertiary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 56%, var(--sky-text-dark))`),o(`sky-${r}-quaternary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 40%, var(--sky-text-dark))`),o(`sky-${r}-quinary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 28%, var(--sky-text-dark))`),o(`sky-${r}-g0`,`color-mix(in oklch, var(--sky-${r}-primary) 12%, transparent)`),o(`sky-${r}-g1`,`color-mix(in oklch, var(--sky-${r}-primary) 24%, transparent)`),o(`sky-${r}-g2`,`color-mix(in oklch, var(--sky-${r}-primary) 48%, transparent)`)}),w.forEach(e=>{o(`sky-${e}-primary-hover`,`color-mix(in oklch, var(--sky-${e}-primary) 86%, var(--sky-text-dark))`),o(`sky-${e}-secondary-hover`,`color-mix(in oklch, var(--sky-${e}-secondary) 86%, var(--sky-text-dark))`),o(`sky-${e}-tertiary-hover`,`color-mix(in oklch, var(--sky-${e}-tertiary) 86%, var(--sky-text-dark))`),o(`sky-${e}-quaternary-hover`,`color-mix(in oklch, var(--sky-${e}-quaternary) 86%, var(--sky-text-dark))`),o(`sky-${e}-quinary-hover`,`color-mix(in oklch, var(--sky-${e}-quinary) 86%, var(--sky-text-dark))`)}),w.forEach(e=>{o(`sky-ring-${e}-1`,`0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-2`,`0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-3`,`0 0 0 3px var(--sky-${e}-primary)`),o(`sky-ring-${e}-4`,`0 0 0 4px var(--sky-${e}-primary)`),o(`sky-ring-${e}-5`,`0 0 0 5px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-1`,`inset 0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-2`,`inset 0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-3`,`inset 0 0 0 3px var(--sky-${e}-primary)`)}),o("sky-focus-ring","0 0 0 3px color-mix(in oklch, var(--sky-active-primary) 42%, transparent)"),o("sky-focus-ring-offset","2px"),o("sky-text-white","oklch(1 0 0)"),o("sky-text-black","oklch(0 0 0)"),Object.entries(e.fontSize??{}).forEach(([e,r])=>{o(`sky-font-size-${e}`,r)}),Object.entries(e.fontWeight??{}).forEach(([e,r])=>{o(`sky-font-weight-${e}`,r)}),Object.entries(e.lineHeight??{}).forEach(([e,r])=>{o(`sky-line-height-${e}`,r)}),Object.entries(e.letterSpacing??{}).forEach(([e,r])=>{o(`sky-letter-spacing-${e}`,r)});const E=(r,t)=>e.fontSize?.[r]??t,z=(r,t)=>e.lineHeight?.[r]??t,F=[{key:"xs",size:"xs",line:"tight"},{key:"sm",size:"sm",line:"snug"},{key:"md",size:"md",line:"normal"},{key:"lg",size:"lg",line:"snug"},{key:"xl",size:"xl",line:"snug"},{key:"2xl",size:"2xl",line:"tight"},{key:"3xl",size:"3xl",line:"tight"},{key:"4xl",size:"4xl",line:"tight"}];for(const{key:e,size:r,line:t}of F){const s=E(r,"1rem"),a=z(t,"1.5");o(`sky-font-${e}`,`${s} / ${a} var(--sky-font-sans)`),o(`sky-font-mono-${e}`,`${s} / ${a} var(--sky-font-mono)`)}Object.entries(e.spacing??{}).forEach(([e,r])=>{o(`sky-space-${e}`,r)});const C={body:{size:"md",weight:"normal",line:"normal"},label:{size:"sm",weight:"medium",line:"snug"},caption:{size:"xs",weight:"normal",line:"tight"},title:{size:"lg",weight:"semibold",line:"snug"},heading:{size:"2xl",weight:"bold",line:"tight"},display:{size:"4xl",weight:"bold",line:"tight"}},j=(r,t)=>e.fontWeight?.[r]??t;for(const[e,r]of Object.entries(C)){const t=E(r.size,"1rem"),s=j(r.weight,"400"),a=z(r.line,"1.5");o(`sky-text-${e}`,`${s} ${t}/${a} var(--sky-font-sans)`)}return t}(b(this.userTheme||{})[this.mode],"dark"===this.mode);if(this.toggleAttribute("data-theme-light","light"===this.mode),this.toggleAttribute("data-theme-dark","dark"===this.mode),"host"===this.scope||"both"===this.scope){const r=z(e,":host");if("adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){if(!this.hostSheet){this.hostSheet=new CSSStyleSheet;const e=this.renderRoot.adoptedStyleSheets??[];this.renderRoot.adoptedStyleSheets=[...e,this.hostSheet]}this.hostSheet.replaceSync(r)}else this.hostStyleEl||(this.hostStyleEl=document.createElement("style"),this.renderRoot.appendChild(this.hostStyleEl)),this.hostStyleEl.textContent=r;this.style.removeProperty("color"),this.style.removeProperty("background"),this.applyHostNativeScrollbars(!0)}else this.applyHostNativeScrollbars(!1);if("root"===this.scope||"both"===this.scope){const r=z(e,":root");F(this.rootVarsStyleId,r),this.setRootThemeAttrs(),this.ensureGlobalStyle(),document.body&&(document.body.style.removeProperty("color"),document.body.style.removeProperty("background"),document.body.style.removeProperty("font-family")),this.broadcastTheme()}}pushContext(){const e=b(this.userTheme??{});this._ctx={mode:this.mode,preference:this.preference,theme:e,setPreference:e=>this.setPreference(e),togglePreference:()=>this.togglePreference()}}render(){return t`<slot></slot>`}};j.styles=e`
2
2
  :host {
3
3
  display: contents;
4
4
  }
@@ -8,5 +8,5 @@ import{__decorate as e,__metadata as r}from"tslib";import{LitElement as t,css as
8
8
  color: var(--sky-text-primary);
9
9
  background: var(--sky-background-color);
10
10
  }
11
- `}connectedCallback(){super.connectedCallback(),this.mode=m(this.preference),this.pushContext(),this.setupSystemWatcher(),"host"===this.scope&&this.applyVariables()}disconnectedCallback(){if(super.disconnectedCallback(),this.media?.removeEventListener("change",this.onSystemChange),this.hostStyleEl&&this.hostStyleEl.parentNode&&(this.hostStyleEl.parentNode.removeChild(this.hostStyleEl),this.hostStyleEl=null),"host"===this.scope){const e=document.getElementById(this.globalStyleId);e&&e.remove();const r=document.getElementById(this.hostScrollbarStyleId);r&&r.remove()}}firstUpdated(){"root"!==this.scope&&"both"!==this.scope||this.applyVariables()}updated(e){super.updated(e),(e.has("userTheme")||e.has("mode")||e.has("preference")||e.has("scope"))&&this.pushContext()}willUpdate(e){const r=e.has("preference"),t=e.has("scope"),o=e.has("userTheme");let s=!1;if(r||t){const e=m(this.preference);e!==this.mode&&(this.mode=e,s=!0)}const a=!!this.hasUpdated;if(("host"===this.scope||a)&&(s||t||o)&&this.applyVariables(),r||s||o||t){this.pushContext();const e="host"===this.scope&&a&&(o||r||s||t);this.broadcast&&("root"===this.scope||"both"===this.scope||e)&&this.broadcastTheme()}}setRootThemeAttrs(){const e=document.documentElement;e.toggleAttribute("data-theme-light","light"===this.mode),e.toggleAttribute("data-theme-dark","dark"===this.mode),e.setAttribute("data-theme",this.mode),e.style.colorScheme=this.mode,e.classList.toggle("dark","dark"===this.mode)}broadcastTheme(){const e={mode:this.mode,preference:this.preference};window.dispatchEvent(new CustomEvent("sky-theme",{detail:e})),window.dispatchEvent(new CustomEvent("theme-change-global",{detail:e}))}setPreference(e){try{!this.persist||"root"!==this.scope&&"both"!==this.scope||localStorage.setItem("theme",e)}catch{}this.preference=e,!this.broadcast||"root"!==this.scope&&"both"!==this.scope||this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0}))}togglePreference(){const e=this.preference??d(),r="light"===e?"dark":"dark"===e?"system":"light";return this.setPreference(r),r}setupSystemWatcher(){"undefined"!=typeof window&&window.matchMedia&&(this.media=window.matchMedia("(prefers-color-scheme: dark)"),this.media.addEventListener("change",this.onSystemChange))}ensureGlobalStyle(){if("undefined"==typeof document)return;const e=`\n body {\n font-family: var(--sky-font);\n margin: 0;\n padding: 0;\n background: var(--sky-background-color);\n color: var(--sky-text-primary);\n }\n\n html[data-sky-dialog-open="true"] {\n overflow: hidden !important;\n position: relative;\n height: 100%;\n }\n\n ${w("html, body, *")}\n `.trim();let r=document.getElementById(this.globalStyleId);r?r.textContent=e:(r=document.createElement("style"),r.id=this.globalStyleId,r.textContent=e,document.head.appendChild(r))}applyHostNativeScrollbars(e){if("undefined"!=typeof document){if(this.toggleAttribute("sky-native-scrollbars",e),!e){const e=document.getElementById(this.hostScrollbarStyleId);return void(e&&e.remove())}z(this.hostScrollbarStyleId,w("sky-theme-provider[sky-native-scrollbars], sky-theme-provider[sky-native-scrollbars] *"))}}applyVariables(){const e=function(e,r){const t={},o=(e,r)=>{null!=r&&(t[`--${e}`]=r)};o("sky-text-dark",x(r?"#FFFFFF":"#0B1020")),o("sky-text-light",x(r?"#030712":"#FFFFFF"));const s=e.fontFamily,a=e.fontFamilyMono??"ui-monospace, monospace";o("sky-font",s),o("sky-font-sans",s),o("sky-font-mono",a),o("sky-background-color",x(e.color.background)),o("sky-text-primary",x(e.color.foreground));const i=r?{secondary:82,tertiary:66,quaternary:50,quinary:36}:{secondary:76,tertiary:60,quaternary:44,quinary:30};Object.entries(i).forEach(([e,r])=>{o(`sky-text-${e}`,`color-mix(in oklch, var(--sky-text-primary) ${r}%, var(--sky-background-color))`)}),["primary","secondary","tertiary","quaternary","quinary"].forEach(e=>{o(`sky-text-${e}-hover`,`color-mix(in oklch, var(--sky-text-${e}) 86%, var(--sky-text-dark))`)});const{baseColor:n,baseShades:c,opacities:l}=e.glass,y=e.color.foreground,d=r?{primary:96,secondary:88,tertiary:78}:{primary:96,secondary:90,tertiary:82},m=c?.primary??$(n,d.primary,y),h=c?.secondary??$(n,d.secondary,y),p=c?.tertiary??$(n,d.tertiary,y),k=r?.4:.34,u={primary:b(l.primary,k),secondary:b(l.secondary??l.primary,k),tertiary:b(l.tertiary??l.primary,k),solid:b(l.solid,1)};o("sky-glass-primary",v(m,u.primary)),o("sky-glass-secondary",v(h,u.secondary)),o("sky-glass-tertiary",v(p,u.tertiary)),o("sky-glass-solid",v(n,u.solid));const g=b(e.glassSurface?.top,r?.26:.24),f=b(e.glassSurface?.bottom,r?.08:.06);o("sky-glass-surface",`linear-gradient(\n 180deg,\n ${v(h,g)},\n ${v(m,f)}\n )`),Object.entries(e.overlay.opacities).forEach(([r,t])=>{o(`sky-overlay-${r}`,v(e.overlay.color,t))}),Object.entries(e.glassHover.opacity).forEach(([r,t])=>{o(`sky-hover-${r}`,v(e.glassHover.color,t))}),Object.entries(e.border).forEach(([e,r])=>{o(`sky-border-${e}`,r)}),Object.entries(e.radius).forEach(([e,r])=>{o(`sky-radius-${e}`,r)}),Object.entries(e.blur).forEach(([e,r])=>{o(`sky-blur-${e}`,`blur(${r})`)}),Object.entries(e.brightness).forEach(([e,r])=>{o(`sky-brightness-${e}`,`brightness(${r})`)}),Object.entries(e.saturation).forEach(([e,r])=>{o(`sky-saturation-${e}`,`saturate(${r})`)}),Object.entries(e.boxshadow).forEach(([e,r])=>{o(`sky-box-shadow-${e}`,r)}),o("sky-border-light",e.separator),Object.entries(e.motion?.duration??{}).forEach(([e,r])=>{o(`sky-duration-${e}`,r)}),Object.entries(e.motion?.ease??{}).forEach(([e,r])=>{o(`sky-ease-${e}`,r)}),o("sky-transition-default",["background-color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","border-color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","color var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","box-shadow var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","transform var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","opacity var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"].join(", ")),o("sky-transition-fast",["background-color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","border-color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","color var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","box-shadow var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))","opacity var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"].join(", ")),Object.entries(e.zIndex??{}).forEach(([e,r])=>{o(`sky-z-${e}`,String(r))}),Object.entries(e.opacity??{}).forEach(([e,r])=>{o(`sky-opacity-${e}`,String(r))});const S=e.scrollbar;o("sky-scrollbar-track",S?.track??"transparent"),o("sky-scrollbar-thumb",S?.thumb??(r?"color-mix(in oklch, var(--sky-text-tertiary) 78%, transparent)":"color-mix(in oklch, var(--sky-text-tertiary) 68%, transparent)")),o("sky-scrollbar-thumb-hover",S?.thumbHover??(r?"color-mix(in oklch, var(--sky-text-secondary) 52%, var(--sky-active-primary))":"color-mix(in oklch, var(--sky-text-secondary) 44%, var(--sky-active-primary))")),o("sky-text-shadow-on-glass",r?"0 1px 2px rgba(0,0,0,0.45)":"0 1px 1px rgba(255,255,255,0.55)");const w=["active","success","warning","danger","info"];w.forEach(r=>{const t=e.color[r];o(`sky-${r}-primary`,t),o(`sky-${r}-secondary`,`color-mix(in oklch, var(--sky-${r}-primary) 82%, var(--sky-background-color))`),o(`sky-${r}-tertiary`,`color-mix(in oklch, var(--sky-${r}-primary) 62%, var(--sky-background-color))`),o(`sky-${r}-quaternary`,`color-mix(in oklch, var(--sky-${r}-primary) 42%, var(--sky-background-color))`),o(`sky-${r}-quinary`,`color-mix(in oklch, var(--sky-${r}-primary) 24%, var(--sky-background-color))`),o(`sky-${r}-primary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 88%, var(--sky-text-dark))`),o(`sky-${r}-secondary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 72%, var(--sky-text-dark))`),o(`sky-${r}-tertiary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 56%, var(--sky-text-dark))`),o(`sky-${r}-quaternary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 40%, var(--sky-text-dark))`),o(`sky-${r}-quinary-dark`,`color-mix(in oklch, var(--sky-${r}-primary) 28%, var(--sky-text-dark))`),o(`sky-${r}-g0`,`color-mix(in oklch, var(--sky-${r}-primary) 12%, transparent)`),o(`sky-${r}-g1`,`color-mix(in oklch, var(--sky-${r}-primary) 24%, transparent)`),o(`sky-${r}-g2`,`color-mix(in oklch, var(--sky-${r}-primary) 48%, transparent)`)}),w.forEach(e=>{o(`sky-${e}-primary-hover`,`color-mix(in oklch, var(--sky-${e}-primary) 86%, var(--sky-text-dark))`),o(`sky-${e}-secondary-hover`,`color-mix(in oklch, var(--sky-${e}-secondary) 86%, var(--sky-text-dark))`),o(`sky-${e}-tertiary-hover`,`color-mix(in oklch, var(--sky-${e}-tertiary) 86%, var(--sky-text-dark))`),o(`sky-${e}-quaternary-hover`,`color-mix(in oklch, var(--sky-${e}-quaternary) 86%, var(--sky-text-dark))`),o(`sky-${e}-quinary-hover`,`color-mix(in oklch, var(--sky-${e}-quinary) 86%, var(--sky-text-dark))`)}),w.forEach(e=>{o(`sky-ring-${e}-1`,`0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-2`,`0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-3`,`0 0 0 3px var(--sky-${e}-primary)`),o(`sky-ring-${e}-4`,`0 0 0 4px var(--sky-${e}-primary)`),o(`sky-ring-${e}-5`,`0 0 0 5px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-1`,`inset 0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-2`,`inset 0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-3`,`inset 0 0 0 3px var(--sky-${e}-primary)`)}),o("sky-focus-ring","0 0 0 3px color-mix(in oklch, var(--sky-active-primary) 42%, transparent)"),o("sky-focus-ring-offset","2px"),o("sky-text-white","oklch(1 0 0)"),o("sky-text-black","oklch(0 0 0)"),Object.entries(e.fontSize??{}).forEach(([e,r])=>{o(`sky-font-size-${e}`,r)}),Object.entries(e.fontWeight??{}).forEach(([e,r])=>{o(`sky-font-weight-${e}`,r)}),Object.entries(e.lineHeight??{}).forEach(([e,r])=>{o(`sky-line-height-${e}`,r)}),Object.entries(e.letterSpacing??{}).forEach(([e,r])=>{o(`sky-letter-spacing-${e}`,r)});const E=(r,t)=>e.fontSize?.[r]??t,z=(r,t)=>e.lineHeight?.[r]??t,F=[{key:"xs",size:"xs",line:"tight"},{key:"sm",size:"sm",line:"snug"},{key:"md",size:"md",line:"normal"},{key:"lg",size:"lg",line:"snug"},{key:"xl",size:"xl",line:"snug"},{key:"2xl",size:"2xl",line:"tight"},{key:"3xl",size:"3xl",line:"tight"},{key:"4xl",size:"4xl",line:"tight"}];for(const{key:e,size:r,line:t}of F){const s=E(r,"1rem"),a=z(t,"1.5");o(`sky-font-${e}`,`${s} / ${a} var(--sky-font-sans)`),o(`sky-font-mono-${e}`,`${s} / ${a} var(--sky-font-mono)`)}Object.entries(e.spacing??{}).forEach(([e,r])=>{o(`sky-space-${e}`,r)});const C={body:{size:"md",weight:"normal",line:"normal"},label:{size:"sm",weight:"medium",line:"snug"},caption:{size:"xs",weight:"normal",line:"tight"},title:{size:"lg",weight:"semibold",line:"snug"},heading:{size:"2xl",weight:"bold",line:"tight"},display:{size:"4xl",weight:"bold",line:"tight"}},j=(r,t)=>e.fontWeight?.[r]??t;for(const[e,r]of Object.entries(C)){const t=E(r.size,"1rem"),s=j(r.weight,"400"),a=z(r.line,"1.5");o(`sky-text-${e}`,`${s} ${t}/${a} var(--sky-font-sans)`)}return t}(u(this.userTheme||{})[this.mode],"dark"===this.mode);if(this.toggleAttribute("data-theme-light","light"===this.mode),this.toggleAttribute("data-theme-dark","dark"===this.mode),"host"===this.scope||"both"===this.scope){const r=E(e,":host");if("adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){if(!this.hostSheet){this.hostSheet=new CSSStyleSheet;const e=this.renderRoot.adoptedStyleSheets??[];this.renderRoot.adoptedStyleSheets=[...e,this.hostSheet]}this.hostSheet.replaceSync(r)}else this.hostStyleEl||(this.hostStyleEl=document.createElement("style"),this.renderRoot.appendChild(this.hostStyleEl)),this.hostStyleEl.textContent=r;this.style.removeProperty("color"),this.style.removeProperty("background"),this.applyHostNativeScrollbars(!0)}else this.applyHostNativeScrollbars(!1);if("root"===this.scope||"both"===this.scope){const r=E(e,":root");z(this.rootVarsStyleId,r),this.setRootThemeAttrs(),this.ensureGlobalStyle(),document.body&&(document.body.style.removeProperty("color"),document.body.style.removeProperty("background"),document.body.style.removeProperty("font-family")),this.broadcastTheme()}}pushContext(){const e=u(this.userTheme??{});this._ctx={mode:this.mode,preference:this.preference,theme:e,setPreference:e=>this.setPreference(e),togglePreference:()=>this.togglePreference()}}render(){return s`<slot></slot>`}};e([a({type:Object}),r("design:type",Object)],C.prototype,"userTheme",void 0),e([a({type:String,reflect:!0}),r("design:type",String)],C.prototype,"scope",void 0),e([a({type:String,reflect:!0}),r("design:type",String)],C.prototype,"preference",void 0),e([i(),r("design:type",String)],C.prototype,"mode",void 0),e([l({context:F}),r("design:type",Object)],C.prototype,"_ctx",void 0),e([a({type:Boolean}),r("design:type",Boolean)],C.prototype,"persist",void 0),e([a({type:Boolean}),r("design:type",Boolean)],C.prototype,"broadcast",void 0),C=e([n("sky-theme-provider")],C);export{C as SkyThemeProvider,y as defaultTheme,h as getCurrentTheme,d as getThemePreference,u as mergeTheme,p as onThemeChange,m as resolveActualTheme,F as themeContext};
11
+ `,y([o({type:Object})],j.prototype,"userTheme",2),y([o({type:String,reflect:!0})],j.prototype,"scope",2),y([o({type:String,reflect:!0})],j.prototype,"preference",2),y([s()],j.prototype,"mode",2),y([n({context:C})],j.prototype,"_ctx",2),y([o({type:Boolean})],j.prototype,"persist",2),y([o({type:Boolean})],j.prototype,"broadcast",2),j=y([a("sky-theme-provider")],j);export{j as SkyThemeProvider,m as defaultTheme,p as getCurrentTheme,d as getThemePreference,b as mergeTheme,k as onThemeChange,h as resolveActualTheme,C as themeContext};
12
12
  //# sourceMappingURL=sky-theme-provider.js.map