sp-component 0.0.2 → 0.0.3

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 (114) hide show
  1. package/dist/components/accordion/sp-accordion-item.css.js +1 -1
  2. package/dist/components/accordion/sp-accordion.css.js +1 -1
  3. package/dist/components/alert/sp-alert.css.js +1 -1
  4. package/dist/components/autocomplete/sp-autocomplete.css.js +1 -1
  5. package/dist/components/autocomplete/sp-autocomplete.template.d.ts.map +1 -1
  6. package/dist/components/autocomplete/sp-autocomplete.template.js +14 -13
  7. package/dist/components/avatar/sp-avatar.css.js +1 -1
  8. package/dist/components/badge/sp-badge.css.js +1 -1
  9. package/dist/components/badge/sp-badge.d.ts +2 -0
  10. package/dist/components/badge/sp-badge.d.ts.map +1 -1
  11. package/dist/components/badge/sp-badge.js +34 -31
  12. package/dist/components/breadcrumb/sp-breadcrumb-item.css.js +1 -1
  13. package/dist/components/breadcrumb/sp-breadcrumb.css.js +1 -1
  14. package/dist/components/button/sp-button.css.js +1 -1
  15. package/dist/components/calendar/sp-calendar-date-picker.css.js +1 -1
  16. package/dist/components/calendar/sp-calendar.css.js +1 -1
  17. package/dist/components/calendar/sp-calendar.d.ts +1 -0
  18. package/dist/components/calendar/sp-calendar.d.ts.map +1 -1
  19. package/dist/components/calendar/sp-calendar.js +29 -29
  20. package/dist/components/card/sp-card.css.js +1 -1
  21. package/dist/components/card/sp-card.template.d.ts.map +1 -1
  22. package/dist/components/card/sp-card.template.js +25 -16
  23. package/dist/components/carousel/sp-carousel-slide.css.js +2 -2
  24. package/dist/components/carousel/sp-carousel.css.js +1 -1
  25. package/dist/components/checkbox/sp-checkbox.css.js +1 -1
  26. package/dist/components/checkbox-group/sp-checkbox-group.css.js +1 -1
  27. package/dist/components/color-picker/sp-color-picker.css.js +1 -1
  28. package/dist/components/color-picker/sp-color-picker.template.d.ts.map +1 -1
  29. package/dist/components/color-picker/sp-color-picker.template.js +15 -14
  30. package/dist/components/combobox/sp-combobox.css.js +1 -1
  31. package/dist/components/combobox/sp-combobox.d.ts.map +1 -1
  32. package/dist/components/combobox/sp-combobox.js +26 -20
  33. package/dist/components/command-palette/sp-command-palette.css.js +1 -1
  34. package/dist/components/confirm-dialog/sp-confirm-dialog.css.js +1 -1
  35. package/dist/components/copy-button/sp-copy-button.css.js +1 -1
  36. package/dist/components/divider/sp-divider.css.js +1 -1
  37. package/dist/components/drawer/sp-drawer.css.js +1 -1
  38. package/dist/components/drawer/sp-drawer.d.ts +4 -0
  39. package/dist/components/drawer/sp-drawer.d.ts.map +1 -1
  40. package/dist/components/drawer/sp-drawer.js +78 -69
  41. package/dist/components/empty-state/sp-empty-state.css.js +1 -1
  42. package/dist/components/file-upload/sp-file-upload.css.js +1 -1
  43. package/dist/components/form-field/sp-form-field.css.js +1 -1
  44. package/dist/components/gallery/sp-gallery.css.js +1 -1
  45. package/dist/components/icon/sp-icon.css.js +2 -2
  46. package/dist/components/input/sp-input.css.js +1 -1
  47. package/dist/components/kbd/sp-kbd.css.js +1 -1
  48. package/dist/components/menu/sp-menu-item.css.js +1 -1
  49. package/dist/components/menu/sp-menu.css.js +1 -1
  50. package/dist/components/menu/sp-menu.d.ts +1 -0
  51. package/dist/components/menu/sp-menu.d.ts.map +1 -1
  52. package/dist/components/menu/sp-menu.js +33 -33
  53. package/dist/components/modal/sp-modal.css.js +1 -1
  54. package/dist/components/modal/sp-modal.d.ts +2 -0
  55. package/dist/components/modal/sp-modal.d.ts.map +1 -1
  56. package/dist/components/modal/sp-modal.js +60 -51
  57. package/dist/components/navbar/sp-navbar.css.js +2 -2
  58. package/dist/components/number-input/sp-number-input.css.js +1 -1
  59. package/dist/components/number-input/sp-number-input.d.ts.map +1 -1
  60. package/dist/components/number-input/sp-number-input.js +55 -52
  61. package/dist/components/otp-input/sp-otp-input.css.js +1 -1
  62. package/dist/components/pagination/sp-pagination.css.js +1 -1
  63. package/dist/components/popover/sp-popover.css.js +1 -1
  64. package/dist/components/progress-bar/sp-progress-bar.css.js +1 -1
  65. package/dist/components/radio/sp-radio-group.css.js +1 -1
  66. package/dist/components/radio/sp-radio.css.js +1 -1
  67. package/dist/components/radio/sp-radio.d.ts +1 -0
  68. package/dist/components/radio/sp-radio.d.ts.map +1 -1
  69. package/dist/components/radio/sp-radio.js +19 -16
  70. package/dist/components/rating/sp-rating.css.js +2 -2
  71. package/dist/components/scroll-area/sp-scroll-area.css.js +1 -1
  72. package/dist/components/scroll-area/sp-scroll-area.d.ts +1 -0
  73. package/dist/components/scroll-area/sp-scroll-area.d.ts.map +1 -1
  74. package/dist/components/scroll-area/sp-scroll-area.js +43 -44
  75. package/dist/components/select/sp-select.css.js +1 -1
  76. package/dist/components/sidebar/sp-sidebar.css.js +1 -1
  77. package/dist/components/skeleton/sp-skeleton.css.js +1 -1
  78. package/dist/components/slider/sp-slider.css.js +1 -1
  79. package/dist/components/spinner/sp-spinner.css.js +1 -1
  80. package/dist/components/split-panel/sp-split-panel.css.js +1 -1
  81. package/dist/components/stat/sp-stat.css.js +1 -1
  82. package/dist/components/stepper/sp-stepper.css.js +1 -1
  83. package/dist/components/switch/sp-switch.css.js +1 -1
  84. package/dist/components/table/sp-table.css.js +1 -1
  85. package/dist/components/table/sp-table.d.ts +80 -17
  86. package/dist/components/table/sp-table.d.ts.map +1 -1
  87. package/dist/components/table/sp-table.js +237 -82
  88. package/dist/components/table/sp-table.template.d.ts.map +1 -1
  89. package/dist/components/table/sp-table.template.js +337 -67
  90. package/dist/components/table/sp-table.types.d.ts +22 -0
  91. package/dist/components/table/sp-table.types.d.ts.map +1 -1
  92. package/dist/components/tabs/sp-tab.css.js +2 -2
  93. package/dist/components/tabs/sp-tabs.css.js +1 -1
  94. package/dist/components/tag/sp-tag.css.js +1 -1
  95. package/dist/components/tag-input/sp-tag-input.css.js +2 -2
  96. package/dist/components/textarea/sp-textarea.css.js +1 -1
  97. package/dist/components/time-picker/sp-time-picker.css.js +1 -1
  98. package/dist/components/timeline/sp-timeline.css.js +1 -1
  99. package/dist/components/toast/sp-toast.css.js +1 -1
  100. package/dist/components/toast/sp-toast.d.ts +1 -0
  101. package/dist/components/toast/sp-toast.d.ts.map +1 -1
  102. package/dist/components/toast/sp-toast.js +32 -33
  103. package/dist/components/toast-stack/sp-toast-stack.css.js +1 -1
  104. package/dist/components/tooltip/sp-tooltip.css.js +2 -2
  105. package/dist/components/tree/sp-tree-item.css.js +1 -1
  106. package/dist/components/tree/sp-tree.css.js +2 -2
  107. package/dist/components/visually-hidden/sp-visually-hidden.css.js +2 -2
  108. package/dist/config.d.ts +28 -0
  109. package/dist/config.d.ts.map +1 -0
  110. package/dist/config.js +44 -0
  111. package/dist/index.d.ts +2 -0
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +2 -0
  114. package/package.json +13 -9
@@ -1,27 +1,36 @@
1
- import { nothing as i, html as l } from "lit";
2
- import { classMap as a } from "lit/directives/class-map.js";
1
+ import { html as s, nothing as e } from "lit";
2
+ import { classMap as t } from "lit/directives/class-map.js";
3
3
  function c() {
4
- const t = l`
5
- <slot name="image"></slot>
6
- <slot name="header"></slot>
7
- <slot></slot>
8
- <slot name="footer"></slot>
9
- ${this.loading ? l`<div class="sp-card-loading-overlay" aria-hidden="true"></div>` : i}
10
- `;
11
- return l`
4
+ const l = s`
5
+ <div class="sp-card-skeleton" aria-hidden="true">
6
+ <div class="sp-card-skeleton-line sp-card-skeleton-title"></div>
7
+ <div class="sp-card-skeleton-body">
8
+ <div class="sp-card-skeleton-line" style="width:100%"></div>
9
+ <div class="sp-card-skeleton-line" style="width:80%"></div>
10
+ <div class="sp-card-skeleton-line" style="width:60%"></div>
11
+ </div>
12
+ <div class="sp-card-skeleton-line sp-card-skeleton-footer" style="width:40%;margin-top:16px;"></div>
13
+ </div>
14
+ `, i = this.loading ? l : s`
15
+ <slot name="image"></slot>
16
+ <slot name="header"></slot>
17
+ <slot></slot>
18
+ <slot name="footer"></slot>
19
+ `;
20
+ return s`
12
21
  <div
13
- class=${a({
22
+ class=${t({
14
23
  "sp-card": !0,
15
24
  "sp-card--clickable": this.clickable,
16
25
  "sp-card--loading": this.loading
17
26
  })}
18
27
  style="padding: ${this.padding}"
19
- role=${this.clickable && !this.href ? "button" : i}
20
- tabindex=${this.clickable && !this.href ? "0" : i}
21
- @click=${this.clickable ? this._handleClick : i}
22
- @keydown=${this.clickable ? this._handleKeydown : i}
28
+ role=${this.clickable && !this.href ? "button" : e}
29
+ tabindex=${this.clickable && !this.href ? "0" : e}
30
+ @click=${this.clickable ? this._handleClick : e}
31
+ @keydown=${this.clickable ? this._handleKeydown : e}
23
32
  >
24
- ${this.href ? l`<a class="sp-card-link" href=${this.href}>${t}</a>` : t}
33
+ ${this.href ? s`<a class="sp-card-link" href=${this.href}>${i}</a>` : i}
25
34
  </div>
26
35
  `;
27
36
  }
@@ -1,4 +1,4 @@
1
- const t = ":host{display:block;position:absolute;top:0;left:0;width:100%;height:100%;flex-shrink:0;will-change:transform,opacity}:host([active]){position:relative}@media(prefers-reduced-motion:reduce){:host{transition:none}}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block;position:absolute;top:0;left:0;width:100%;height:100%;flex-shrink:0;will-change:transform,opacity}:host([active]){position:relative}@media(prefers-reduced-motion:reduce){:host{transition:none}}";
2
2
  export {
3
- t as default
3
+ e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const r = ':host{display:block;width:100%}.sp-carousel{display:flex;flex-direction:column;gap:12px;width:100%}.sp-carousel-track-wrapper{overflow:hidden;position:relative;width:100%;border-radius:8px;cursor:grab;-webkit-user-select:none;user-select:none}.sp-carousel-track-wrapper--dragging,.sp-carousel-track-wrapper:active{cursor:grabbing}.sp-carousel-track{position:relative;width:100%;height:100%}::slotted(sp-carousel-slide){transition:transform .4s cubic-bezier(.25,.46,.45,.94)}:host([effect="fade"]) ::slotted(sp-carousel-slide){transition:opacity .5s ease,transform 0s;position:absolute!important;top:0;left:0;width:100%;height:100%}:host([effect="fade"]) ::slotted(sp-carousel-slide[active]){position:relative!important}.sp-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:50%;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--sp-text-secondary, #374151);cursor:pointer;box-shadow:0 2px 8px #00000026;transition:background .2s,transform .2s,box-shadow .2s,opacity .2s;opacity:.7}.sp-carousel-track-wrapper:hover .sp-carousel-arrow{opacity:1}.sp-carousel-arrow:hover:not(:disabled){background:#fffffffa;box-shadow:0 4px 12px #0003;transform:translateY(-50%) scale(1.08)}.sp-carousel-arrow:focus-visible{outline:2px solid #6366f1;outline-offset:2px;opacity:1}.sp-carousel-arrow:disabled{opacity:.2;cursor:not-allowed}.sp-carousel-arrow svg{width:18px;height:18px}.sp-carousel-arrow--prev{left:12px}.sp-carousel-arrow--next{right:12px}:host([orientation="vertical"]) .sp-carousel-arrow--prev{top:12px;left:50%;transform:translate(-50%)}:host([orientation="vertical"]) .sp-carousel-arrow--next{top:auto;bottom:12px;left:50%;transform:translate(-50%)}:host([orientation="vertical"]) .sp-carousel-arrow:hover:not(:disabled){transform:translate(-50%) scale(1.08)}.sp-carousel-dots{display:flex;justify-content:center;align-items:center;gap:6px}.sp-carousel-dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:#cbd5e1;cursor:pointer;transition:background .2s,transform .2s,width .2s}.sp-carousel-dot:hover{background:#94a3b8}.sp-carousel-dot--active{background:#6366f1;width:24px;border-radius:4px;transform:none}.sp-carousel-dot:focus-visible{outline:2px solid #6366f1;outline-offset:2px}@media(max-width:480px){.sp-carousel-arrow{width:32px;height:32px}.sp-carousel-arrow svg{width:14px;height:14px}.sp-carousel-arrow--prev{left:6px}.sp-carousel-arrow--next{right:6px}.sp-carousel-dots{gap:4px}.sp-carousel-dot{width:6px;height:6px}.sp-carousel-dot--active{width:18px}}@media(prefers-reduced-motion:reduce){.sp-carousel-arrow,.sp-carousel-dot{transition:none}::slotted(sp-carousel-slide){transition:none}:host([effect="fade"]) ::slotted(sp-carousel-slide){transition:none}}';
1
+ const r = '*,*:before,*:after{box-sizing:border-box}:host{display:block;width:100%}.sp-carousel{display:flex;flex-direction:column;gap:12px;width:100%}.sp-carousel-track-wrapper{overflow:hidden;position:relative;width:100%;border-radius:8px;cursor:grab;-webkit-user-select:none;user-select:none}.sp-carousel-track-wrapper--dragging,.sp-carousel-track-wrapper:active{cursor:grabbing}.sp-carousel-track{position:relative;width:100%;height:100%}::slotted(sp-carousel-slide){transition:transform .4s cubic-bezier(.25,.46,.45,.94)}:host([effect="fade"]) ::slotted(sp-carousel-slide){transition:opacity .5s ease,transform 0s;position:absolute!important;top:0;left:0;width:100%;height:100%}:host([effect="fade"]) ::slotted(sp-carousel-slide[active]){position:relative!important}.sp-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:50%;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--sp-text-secondary, #374151);cursor:pointer;box-shadow:0 2px 8px #00000026;transition:background .2s,transform .2s,box-shadow .2s,opacity .2s;opacity:.7}.sp-carousel-track-wrapper:hover .sp-carousel-arrow{opacity:1}.sp-carousel-arrow:hover:not(:disabled){background:#fffffffa;box-shadow:0 4px 12px #0003;transform:translateY(-50%) scale(1.08)}.sp-carousel-arrow:focus-visible{outline:2px solid #6366f1;outline-offset:2px;opacity:1}.sp-carousel-arrow:disabled{opacity:.2;cursor:not-allowed}.sp-carousel-arrow svg{width:18px;height:18px}.sp-carousel-arrow--prev{left:12px}.sp-carousel-arrow--next{right:12px}:host([orientation="vertical"]) .sp-carousel-arrow--prev{top:12px;left:50%;transform:translate(-50%)}:host([orientation="vertical"]) .sp-carousel-arrow--next{top:auto;bottom:12px;left:50%;transform:translate(-50%)}:host([orientation="vertical"]) .sp-carousel-arrow:hover:not(:disabled){transform:translate(-50%) scale(1.08)}.sp-carousel-dots{display:flex;justify-content:center;align-items:center;gap:6px}.sp-carousel-dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:#cbd5e1;cursor:pointer;transition:background .2s,transform .2s,width .2s}.sp-carousel-dot:hover{background:#94a3b8}.sp-carousel-dot--active{background:#6366f1;width:24px;border-radius:4px;transform:none}.sp-carousel-dot:focus-visible{outline:2px solid #6366f1;outline-offset:2px}@media(max-width:480px){.sp-carousel-arrow{width:32px;height:32px}.sp-carousel-arrow svg{width:14px;height:14px}.sp-carousel-arrow--prev{left:6px}.sp-carousel-arrow--next{right:6px}.sp-carousel-dots{gap:4px}.sp-carousel-dot{width:6px;height:6px}.sp-carousel-dot--active{width:18px}}@media(prefers-reduced-motion:reduce){.sp-carousel-arrow,.sp-carousel-dot{transition:none}::slotted(sp-carousel-slide){transition:none}:host([effect="fade"]) ::slotted(sp-carousel-slide){transition:none}}';
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:inline-block}.sp-checkbox-label{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.sp-checkbox-label--disabled{opacity:.5;cursor:not-allowed}.sp-checkbox-control{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;border:2px solid var(--sp-border, #d1d5db);border-radius:3px;background:var(--sp-bg, white);transition:all .15s;margin-top:1px}.sp-checkbox-control input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:inherit;min-width:44px;min-height:44px;top:50%;left:50%;transform:translate(-50%,-50%)}.sp-checkbox-control--checked,.sp-checkbox-control--indeterminate{background:var(--sp-primary, #3b82f6);border-color:var(--sp-primary, #3b82f6)}.sp-checkbox-control:has(input:focus-visible){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([size="sm"]) .sp-checkbox-control{width:14px;height:14px}:host([size="lg"]) .sp-checkbox-control{width:20px;height:20px;border-radius:4px}.sp-checkbox-text{font-size:14px;color:var(--sp-text-secondary, #374151);line-height:1.4}:host([size="sm"]) .sp-checkbox-text{font-size:12px}:host([size="lg"]) .sp-checkbox-text{font-size:16px}.sp-checkbox-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-checkbox-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(prefers-reduced-motion:reduce){.sp-checkbox-control{transition:none}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-block}.sp-checkbox-label{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.sp-checkbox-label--disabled{opacity:.5;cursor:not-allowed}.sp-checkbox-control{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;border:2px solid var(--sp-border, #d1d5db);border-radius:3px;background:var(--sp-bg, white);transition:all .15s;margin-top:1px}.sp-checkbox-control input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:inherit;min-width:44px;min-height:44px;top:50%;left:50%;transform:translate(-50%,-50%)}.sp-checkbox-control--checked,.sp-checkbox-control--indeterminate{background:var(--sp-primary, #3b82f6);border-color:var(--sp-primary, #3b82f6)}.sp-checkbox-control:has(input:focus-visible){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([size="sm"]) .sp-checkbox-control{width:14px;height:14px}:host([size="lg"]) .sp-checkbox-control{width:20px;height:20px;border-radius:4px}.sp-checkbox-text{font-size:14px;color:var(--sp-text-secondary, #374151);line-height:1.4}:host([size="sm"]) .sp-checkbox-text{font-size:12px}:host([size="lg"]) .sp-checkbox-text{font-size:16px}.sp-checkbox-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-checkbox-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(prefers-reduced-motion:reduce){.sp-checkbox-control{transition:none}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const o = ':host{display:block}.sp-checkbox-group{border:none;margin:0;padding:0}.sp-checkbox-group-legend{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:8px}:host([error]) .sp-checkbox-group-legend{color:var(--sp-error, #FF4D4F)}.sp-checkbox-group-options{display:flex;flex-direction:column;gap:8px}:host([orientation="horizontal"]) .sp-checkbox-group-options{flex-direction:row;flex-wrap:wrap;gap:16px}.sp-checkbox-group-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-checkbox-group-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}';
1
+ const o = '*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-checkbox-group{border:none;margin:0;padding:0}.sp-checkbox-group-legend{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:8px}:host([error]) .sp-checkbox-group-legend{color:var(--sp-error, #FF4D4F)}.sp-checkbox-group-options{display:flex;flex-direction:column;gap:8px}:host([orientation="horizontal"]) .sp-checkbox-group-options{flex-direction:row;flex-wrap:wrap;gap:16px}.sp-checkbox-group-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-checkbox-group-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}';
2
2
  export {
3
3
  o as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const r = ":host{display:inline-block;font-family:inherit;position:relative}.sp-color-picker-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-color-picker-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);cursor:pointer;font-size:13px;font-family:inherit;color:var(--sp-text-secondary, #374151);transition:border-color .2s,box-shadow .2s}.sp-color-picker-trigger:hover:not(:disabled){border-color:var(--sp-border-strong, #9ca3af)}.sp-color-picker-trigger:focus-visible{outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .5));outline-offset:1px}.sp-color-picker-trigger:disabled{opacity:.5;cursor:not-allowed}.sp-color-picker-trigger-preview{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex-shrink:0}.sp-color-picker-trigger-value{font-family:monospace;font-size:13px}.sp-color-picker-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:260px;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:12px;box-shadow:0 10px 25px #0000001f,0 4px 10px #0000000f;padding:16px;display:flex;flex-direction:column;gap:12px}.sp-color-picker-canvas{position:relative;width:100%;height:160px;border-radius:6px;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.sp-color-picker-thumb{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid var(--sp-bg, white);box-shadow:0 0 0 1px #0000004d,0 2px 4px #0003;transform:translate(-50%,-50%);pointer-events:none}.sp-color-picker-sliders{display:flex;flex-direction:column;gap:8px}input[type=range].sp-color-picker-hue,input[type=range].sp-color-picker-alpha{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:12px;border-radius:6px;outline:none;cursor:pointer}input[type=range].sp-color-picker-hue{background:linear-gradient(to right,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}input[type=range].sp-color-picker-hue::-webkit-slider-thumb,input[type=range].sp-color-picker-alpha::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--sp-bg, white);border:2px solid rgba(0,0,0,.2);box-shadow:0 1px 3px #0003;cursor:grab}input[type=range].sp-color-picker-alpha{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.sp-color-picker-inputs{display:flex;gap:8px}.sp-color-picker-hex-input{flex:1;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;padding:6px 10px;font-family:monospace;font-size:13px;color:var(--sp-text-secondary, #374151);outline:none;transition:border-color .2s;background:var(--sp-bg, white)}.sp-color-picker-hex-input:focus{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-color-picker-swatches{display:flex;flex-wrap:wrap;gap:6px}.sp-color-picker-swatch{width:24px;height:24px;border-radius:50%;border:2px solid rgba(0,0,0,.1);cursor:pointer;padding:0;transition:transform .15s,border-color .15s}.sp-color-picker-swatch:hover{transform:scale(1.2);border-color:#0000004d}.sp-color-picker-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-color-picker-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}.sp-color-picker--disabled .sp-color-picker-trigger{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.sp-color-picker-trigger,.sp-color-picker-swatch{transition:none}}";
1
+ const r = "*,*:before,*:after{box-sizing:border-box}:host{display:inline-block;font-family:inherit;position:relative}.sp-color-picker-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-color-picker-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);cursor:pointer;font-size:13px;font-family:inherit;color:var(--sp-text-secondary, #374151);transition:border-color .2s,box-shadow .2s}.sp-color-picker-trigger:hover:not(:disabled){border-color:var(--sp-border-strong, #9ca3af)}.sp-color-picker-trigger:focus-visible{outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .5));outline-offset:1px}.sp-color-picker-trigger:disabled{opacity:.5;cursor:not-allowed}.sp-color-picker-trigger-preview{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex-shrink:0}.sp-color-picker-trigger-value{font-family:monospace;font-size:13px}.sp-color-picker-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:260px;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:12px;box-shadow:0 10px 25px #0000001f,0 4px 10px #0000000f;padding:16px;display:flex;flex-direction:column;gap:12px}.sp-color-picker-canvas{position:relative;width:100%;height:160px;border-radius:6px;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.sp-color-picker-thumb{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid var(--sp-bg, white);box-shadow:0 0 0 1px #0000004d,0 2px 4px #0003;transform:translate(-50%,-50%);pointer-events:none}.sp-color-picker-sliders{display:flex;flex-direction:column;gap:8px}input[type=range].sp-color-picker-hue,input[type=range].sp-color-picker-alpha{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:12px;border-radius:6px;outline:none;cursor:pointer}input[type=range].sp-color-picker-hue{background:linear-gradient(to right,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}input[type=range].sp-color-picker-hue::-webkit-slider-thumb,input[type=range].sp-color-picker-alpha::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--sp-bg, white);border:2px solid rgba(0,0,0,.2);box-shadow:0 1px 3px #0003;cursor:grab}input[type=range].sp-color-picker-alpha{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.sp-color-picker-inputs{display:flex;gap:8px}.sp-color-picker-hex-input{flex:1;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;padding:6px 10px;font-family:monospace;font-size:13px;color:var(--sp-text-secondary, #374151);outline:none;transition:border-color .2s;background:var(--sp-bg, white)}.sp-color-picker-hex-input:focus{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-color-picker-swatches{display:flex;flex-wrap:wrap;gap:6px}.sp-color-picker-swatch{width:24px;height:24px;border-radius:50%;border:2px solid rgba(0,0,0,.1);cursor:pointer;padding:0;transition:transform .15s,border-color .15s}.sp-color-picker-swatch:hover{transform:scale(1.2);border-color:#0000004d}.sp-color-picker-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-color-picker-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}.sp-color-picker--disabled .sp-color-picker-trigger{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.sp-color-picker-trigger,.sp-color-picker-swatch{transition:none}}";
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sp-color-picker.template.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/sp-color-picker.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,cAAc,CA2HhF"}
1
+ {"version":3,"file":"sp-color-picker.template.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/sp-color-picker.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,cAAc,CA4HhF"}
@@ -1,7 +1,7 @@
1
- import { nothing as i, html as s } from "lit";
1
+ import { nothing as e, html as s } from "lit";
2
2
  import { classMap as a } from "lit/directives/class-map.js";
3
3
  function o() {
4
- const e = this.swatches ? this.swatches.split(",").map((t) => t.trim()).filter(Boolean) : [];
4
+ const t = this.swatches ? this.swatches.split(",").map((i) => i.trim()).filter(Boolean) : [];
5
5
  return s`
6
6
  <div
7
7
  class=${a({
@@ -10,7 +10,7 @@ function o() {
10
10
  "sp-color-picker--error": !!this.error
11
11
  })}
12
12
  >
13
- ${this.label ? s`<label class="sp-color-picker-label">${this.label}</label>` : i}
13
+ ${this.label ? s`<label class="sp-color-picker-label">${this.label}</label>` : e}
14
14
 
15
15
  <button
16
16
  class="sp-color-picker-trigger"
@@ -33,9 +33,10 @@ function o() {
33
33
  role="dialog"
34
34
  aria-label="Color picker"
35
35
  >
36
- <!-- Gradient canvas -->
36
+ <!-- Gradient canvas (accessible via hue/alpha sliders and hex input) -->
37
37
  <div
38
38
  class="sp-color-picker-canvas"
39
+ aria-hidden="true"
39
40
  style="background: linear-gradient(to bottom, transparent, black),
40
41
  linear-gradient(to right, white, hsl(${this._h},100%,50%))"
41
42
  @pointerdown=${this._startCanvasDrag}
@@ -69,7 +70,7 @@ function o() {
69
70
  aria-label="Alpha"
70
71
  @input=${this._handleAlphaInput}
71
72
  />
72
- ` : i}
73
+ ` : e}
73
74
  </div>
74
75
 
75
76
  <!-- Hex / text input -->
@@ -84,25 +85,25 @@ function o() {
84
85
  </div>
85
86
 
86
87
  <!-- Swatches -->
87
- ${e.length ? s`
88
+ ${t.length ? s`
88
89
  <div class="sp-color-picker-swatches">
89
- ${e.map(
90
- (t) => s`
90
+ ${t.map(
91
+ (i) => s`
91
92
  <button
92
93
  class="sp-color-picker-swatch"
93
94
  type="button"
94
- style="background: ${t}"
95
- aria-label=${t}
96
- @click=${() => this._selectSwatch(t)}
95
+ style="background: ${i}"
96
+ aria-label=${i}
97
+ @click=${() => this._selectSwatch(i)}
97
98
  ></button>
98
99
  `
99
100
  )}
100
101
  </div>
101
- ` : i}
102
+ ` : e}
102
103
  </div>
103
- ` : i}
104
+ ` : e}
104
105
 
105
- ${this.error ? s`<span class="sp-color-picker-error" role="alert">${this.error}</span>` : this.hint ? s`<span class="sp-color-picker-hint">${this.hint}</span>` : i}
106
+ ${this.error ? s`<span class="sp-color-picker-error" role="alert">${this.error}</span>` : this.hint ? s`<span class="sp-color-picker-hint">${this.hint}</span>` : e}
106
107
  </div>
107
108
  `;
108
109
  }
@@ -1,4 +1,4 @@
1
- const o = ':host{display:block;font-family:inherit}.sp-combobox-wrapper{position:relative}.sp-combobox-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-required{color:var(--sp-error, #FF4D4F)}.sp-combobox-container{position:relative;display:flex;align-items:center;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);transition:border-color .2s}.sp-combobox-container--open,.sp-combobox-container:focus-within{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59,130,246,.2))}.sp-combobox-container--error{border-color:var(--sp-error, #FF4D4F)}.sp-combobox-container--error:focus-within{box-shadow:0 0 0 2px var(--sp-error-focus, rgba(255,77,79,.2))}.sp-combobox-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 12px;min-width:0;cursor:pointer}.sp-combobox-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-combobox-input{padding:5px 8px;font-size:12px}:host([size="lg"]) .sp-combobox-input{padding:11px 16px;font-size:16px}.sp-combobox-multi-wrap{display:flex;flex-wrap:wrap;gap:4px;flex:1;align-items:center;padding:4px 6px;min-height:36px}:host([size="sm"]) .sp-combobox-multi-wrap{min-height:28px;padding:3px 5px}:host([size="lg"]) .sp-combobox-multi-wrap{min-height:46px;padding:6px 8px}.sp-combobox-input--multi{flex:1;min-width:80px;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:2px 4px;cursor:text}:host([size="sm"]) .sp-combobox-input--multi{font-size:12px}:host([size="lg"]) .sp-combobox-input--multi{font-size:16px}.sp-combobox-input--multi::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-combobox-tag{display:inline-flex;align-items:center;gap:3px;background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary-hover, #2563eb);border:1px solid var(--sp-primary-focus, rgba(59,130,246,.3));border-radius:4px;padding:2px 4px 2px 8px;font-size:12px;line-height:1.4;max-width:180px}.sp-combobox-tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-combobox-tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--sp-primary, #3b82f6);padding:0 2px;line-height:1;font-size:14px;flex-shrink:0;border-radius:2px}.sp-combobox-tag-remove:hover{color:var(--sp-error, #FF4D4F);background:var(--sp-error-bg, #FFF2F0)}.sp-combobox-clear{background:none;border:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0 4px;flex-shrink:0}.sp-combobox-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-combobox-arrow-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0 10px;align-self:stretch;color:var(--sp-text-muted, #6b7280);flex-shrink:0}.sp-combobox-arrow-btn:disabled{cursor:not-allowed}.sp-combobox-arrow{color:var(--sp-text-muted, #6b7280);font-size:12px;pointer-events:none}.sp-combobox-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:9999;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:6px;box-shadow:0 8px 24px #0000001f;max-height:var(--sp-combobox-max-height, 280px);overflow-y:auto}.sp-combobox-option{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;color:var(--sp-text-secondary, #374151);cursor:pointer}.sp-combobox-option:hover:not(.sp-combobox-option--disabled){background:var(--sp-bg-muted, #f3f4f6)}.sp-combobox-option--selected{color:var(--sp-primary, #3b82f6);font-weight:500;background:var(--sp-primary-bg, #eff6ff)}.sp-combobox-option--disabled{opacity:.4;cursor:not-allowed}.sp-combobox-option--highlighted{background:var(--sp-bg-muted, #f3f4f6)}.sp-combobox-option--selected.sp-combobox-option--highlighted{background:var(--sp-primary-bg, #eff6ff);filter:brightness(.96)}.sp-combobox-option-check{width:16px;flex-shrink:0;font-size:12px;color:var(--sp-primary, #3b82f6);font-weight:700}.sp-combobox-no-results{padding:12px;font-size:14px;color:var(--sp-text-placeholder, #9ca3af);text-align:center}.sp-combobox-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-combobox-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}:host([disabled]) .sp-combobox-container{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}:host([disabled]) .sp-combobox-input{cursor:not-allowed}@media(max-width:479px){.sp-combobox-wrapper{width:100%}.sp-combobox-dropdown{left:0;right:0;width:100%}}@media(prefers-reduced-motion:reduce){.sp-combobox-container{transition:none}}';
1
+ const o = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit}.sp-combobox-wrapper{position:relative}.sp-combobox-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-required{color:var(--sp-error, #FF4D4F)}.sp-combobox-container{position:relative;display:flex;align-items:center;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);transition:border-color .2s}.sp-combobox-container--open,.sp-combobox-container:focus-within{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59,130,246,.2))}.sp-combobox-container--error{border-color:var(--sp-error, #FF4D4F)}.sp-combobox-container--error:focus-within{box-shadow:0 0 0 2px var(--sp-error-focus, rgba(255,77,79,.2))}.sp-combobox-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 12px;min-width:0;cursor:pointer}.sp-combobox-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-combobox-input{padding:5px 8px;font-size:12px}:host([size="lg"]) .sp-combobox-input{padding:11px 16px;font-size:16px}.sp-combobox-multi-wrap{display:flex;flex-wrap:wrap;gap:4px;flex:1;align-items:center;padding:4px 6px;min-height:36px}:host([size="sm"]) .sp-combobox-multi-wrap{min-height:28px;padding:3px 5px}:host([size="lg"]) .sp-combobox-multi-wrap{min-height:46px;padding:6px 8px}.sp-combobox-input--multi{flex:1;min-width:80px;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:2px 4px;cursor:text}:host([size="sm"]) .sp-combobox-input--multi{font-size:12px}:host([size="lg"]) .sp-combobox-input--multi{font-size:16px}.sp-combobox-input--multi::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-combobox-tag{display:inline-flex;align-items:center;gap:3px;background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary-hover, #2563eb);border:1px solid var(--sp-primary-focus, rgba(59,130,246,.3));border-radius:4px;padding:2px 4px 2px 8px;font-size:12px;line-height:1.4;max-width:180px}.sp-combobox-tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-combobox-tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--sp-primary, #3b82f6);padding:0 2px;line-height:1;font-size:14px;flex-shrink:0;border-radius:2px}.sp-combobox-tag-remove:hover{color:var(--sp-error, #FF4D4F);background:var(--sp-error-bg, #FFF2F0)}.sp-combobox-clear{background:none;border:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0 4px;flex-shrink:0}.sp-combobox-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-combobox-arrow-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0 10px;align-self:stretch;color:var(--sp-text-muted, #6b7280);flex-shrink:0}.sp-combobox-arrow-btn:disabled{cursor:not-allowed}.sp-combobox-arrow{color:var(--sp-text-muted, #6b7280);font-size:12px;pointer-events:none}.sp-combobox-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:9999;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:6px;box-shadow:0 8px 24px #0000001f;max-height:var(--sp-combobox-max-height, 280px);overflow-y:auto}.sp-combobox-option{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;color:var(--sp-text-secondary, #374151);cursor:pointer}.sp-combobox-option:hover:not(.sp-combobox-option--disabled){background:var(--sp-bg-muted, #f3f4f6)}.sp-combobox-option--selected{color:var(--sp-primary, #3b82f6);font-weight:500;background:var(--sp-primary-bg, #eff6ff)}.sp-combobox-option--disabled{opacity:.4;cursor:not-allowed}.sp-combobox-option--highlighted{background:var(--sp-bg-muted, #f3f4f6)}.sp-combobox-option--selected.sp-combobox-option--highlighted{background:var(--sp-primary-bg, #eff6ff);filter:brightness(.96)}.sp-combobox-option-check{width:16px;flex-shrink:0;font-size:12px;color:var(--sp-primary, #3b82f6);font-weight:700}.sp-combobox-no-results{padding:12px;font-size:14px;color:var(--sp-text-placeholder, #9ca3af);text-align:center}.sp-combobox-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-combobox-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}:host([disabled]) .sp-combobox-container{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}:host([disabled]) .sp-combobox-input{cursor:not-allowed}@media(max-width:479px){.sp-combobox-wrapper{width:100%}.sp-combobox-dropdown{left:0;right:0;width:100%}}@media(prefers-reduced-motion:reduce){.sp-combobox-container{transition:none}}';
2
2
  export {
3
3
  o as default
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sp-combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/sp-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,mBAAoB,SAAQ,UAAU;;IACjD,OAAgB,MAAM,0BAAqB;IAC3C,MAAM,CAAC,cAAc,UAAQ;;IAU7B,KAAK,SAAM;IAGX,MAAM,EAAE,MAAM,EAAE,CAAM;IAGtB,OAAO,EAAE,gBAAgB,EAAE,CAAM;IAGjC,WAAW,SAAe;IAG1B,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,IAAI,EAAE,cAAc,CAAQ;IAG5B,SAAS,UAAS;IAGlB,QAAQ,UAAS;IAGjB,aAAa,SAAK;IAGlB,KAAK,SAAM;IAGX,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,aAAa,SAAsB;IAEnC,WAAW,SAAM;IACjB,KAAK,UAAS;IACd,QAAQ,UAAS;IAGjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAGzC;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,kBAAkB,IAAI,gBAAgB,EAAE;IAIxC,OAAO,CAAC,gBAAgB;IAoBxB,iBAAiB,IAAI,IAAI;IAOhB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQ/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOlC;IAEO,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAKrC,QAAQ,CAAC,qBAAqB,GAAI,GAAG,KAAK,UAexC;IAEF,QAAQ,CAAC,iBAAiB,aAIxB;IAEF,QAAQ,CAAC,iBAAiB,GAAI,GAAG,KAAK,UAKpC;IAEF,QAAQ,CAAC,aAAa,GAAI,QAAQ,gBAAgB,UA4BhD;IAEF,QAAQ,CAAC,kBAAkB,GAAI,KAAK,MAAM,EAAE,GAAG,KAAK,UAMlD;IAEF,QAAQ,CAAC,YAAY,GAAI,GAAG,KAAK,UAa/B;IAEF,QAAQ,CAAC,cAAc,GAAI,GAAG,aAAa,KAAG,IAAI,CAuDhD;IAEF,OAAO,CAAC,0BAA0B;IAMzB,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,mBAAmB,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"sp-combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/sp-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,mBAAoB,SAAQ,UAAU;;IACjD,OAAgB,MAAM,0BAAqB;IAC3C,MAAM,CAAC,cAAc,UAAQ;;IAU7B,KAAK,SAAM;IAGX,MAAM,EAAE,MAAM,EAAE,CAAM;IAGtB,OAAO,EAAE,gBAAgB,EAAE,CAAM;IAGjC,WAAW,SAAe;IAG1B,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,IAAI,EAAE,cAAc,CAAQ;IAG5B,SAAS,UAAS;IAGlB,QAAQ,UAAS;IAGjB,aAAa,SAAK;IAGlB,KAAK,SAAM;IAGX,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,aAAa,SAAsB;IAGnC,WAAW,SAAM;IAGjB,KAAK,UAAS;IAEd,QAAQ,UAAS;IAGjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAGzC;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,kBAAkB,IAAI,gBAAgB,EAAE;IAIxC,OAAO,CAAC,gBAAgB;IAoBxB,iBAAiB,IAAI,IAAI;IAMhB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQ/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMlC;IAEO,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAKrC,QAAQ,CAAC,qBAAqB,GAAI,GAAG,KAAK,UAcxC;IAEF,QAAQ,CAAC,iBAAiB,aAGxB;IAEF,QAAQ,CAAC,iBAAiB,GAAI,GAAG,KAAK,UAIpC;IAEF,QAAQ,CAAC,aAAa,GAAI,QAAQ,gBAAgB,UA0BhD;IAEF,QAAQ,CAAC,kBAAkB,GAAI,KAAK,MAAM,EAAE,GAAG,KAAK,UAKlD;IAEF,QAAQ,CAAC,YAAY,GAAI,GAAG,KAAK,UAY/B;IAEF,QAAQ,CAAC,cAAc,GAAI,GAAG,aAAa,KAAG,IAAI,CAgDhD;IAEF,OAAO,CAAC,0BAA0B;IAMzB,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,mBAAmB,CAAC;KACpC;CACF"}
@@ -1,64 +1,64 @@
1
- import { unsafeCSS as v, LitElement as _ } from "lit";
2
- import { property as h, state as f, customElement as g } from "lit/decorators.js";
1
+ import { unsafeCSS as v, LitElement as f } from "lit";
2
+ import { property as h, state as d, customElement as g } from "lit/decorators.js";
3
3
  import m from "./sp-combobox.css.js";
4
4
  import { comboboxTemplate as y } from "./sp-combobox.template.js";
5
- var x = Object.defineProperty, b = Object.getOwnPropertyDescriptor, d = (e) => {
5
+ var x = Object.defineProperty, b = Object.getOwnPropertyDescriptor, c = (e) => {
6
6
  throw TypeError(e);
7
7
  }, l = (e, t, s, a) => {
8
8
  for (var o = a > 1 ? void 0 : a ? b(t, s) : t, u = e.length - 1, p; u >= 0; u--)
9
9
  (p = e[u]) && (o = (a ? p(t, s, o) : p(o)) || o);
10
10
  return a && o && x(t, s, o), o;
11
- }, c = (e, t, s) => t.has(e) || d("Cannot " + s), n = (e, t, s) => (c(e, t, "read from private field"), s ? s.call(e) : t.get(e)), w = (e, t, s) => t.has(e) ? d("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, s), C = (e, t, s, a) => (c(e, t, "write to private field"), t.set(e, s), s), r;
12
- let i = class extends _ {
11
+ }, _ = (e, t, s) => t.has(e) || c("Cannot " + s), n = (e, t, s) => (_(e, t, "read from private field"), s ? s.call(e) : t.get(e)), w = (e, t, s) => t.has(e) ? c("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, s), C = (e, t, s, a) => (_(e, t, "write to private field"), t.set(e, s), s), r;
12
+ let i = class extends f {
13
13
  constructor() {
14
14
  super(), w(this, r), this.value = "", this.values = [], this.options = [], this.placeholder = "Search...", this.disabled = !1, this.required = !1, this.name = "", this.size = "md", this.clearable = !1, this.multiple = !1, this.maxSelections = 0, this.error = "", this.hint = "", this.label = "", this.noResultsText = "No results found", this._searchText = "", this._open = !1, this._focused = !1, this._highlightedIndex = null, this._handleOutsideClick = (e) => {
15
- !this.contains(e.target) && e.composedPath()[0] !== this && (this._open = !1, this._searchText = "", this._highlightedIndex = null, this.requestUpdate());
15
+ !this.contains(e.target) && e.composedPath()[0] !== this && (this._open = !1, this._searchText = "", this._highlightedIndex = null);
16
16
  }, this._handleToggleDropdown = (e) => {
17
17
  e.stopPropagation(), !this.disabled && (this._open ? (this._open = !1, this._searchText = "", this._highlightedIndex = null) : (this._open = !0, this._searchText = "", this.updateComplete.then(() => {
18
18
  var t;
19
19
  (t = this.renderRoot.querySelector(".sp-combobox-input")) == null || t.focus();
20
- })), this.requestUpdate());
20
+ })));
21
21
  }, this._handleInputFocus = () => {
22
- this._open = !0, this._searchText = "", this.requestUpdate();
22
+ this._open = !0, this._searchText = "";
23
23
  }, this._handleInputInput = (e) => {
24
- this._searchText = e.target.value, this._open = !0, this._highlightedIndex = null, this.requestUpdate();
24
+ this._searchText = e.target.value, this._open = !0, this._highlightedIndex = null;
25
25
  }, this._handleSelect = (e) => {
26
26
  if (!e.disabled) {
27
27
  if (this.multiple) {
28
- this.values.includes(e.value) ? this.values = this.values.filter((s) => s !== e.value) : (this.maxSelections === 0 || this.values.length < this.maxSelections) && (this.values = [...this.values, e.value]), this._searchText = "", this._highlightedIndex = null, this._updateFormValue(), this.requestUpdate(), this.updateComplete.then(() => {
28
+ this.values.includes(e.value) ? this.values = this.values.filter((s) => s !== e.value) : (this.maxSelections === 0 || this.values.length < this.maxSelections) && (this.values = [...this.values, e.value]), this._searchText = "", this._highlightedIndex = null, this._updateFormValue(), this.updateComplete.then(() => {
29
29
  var s;
30
30
  (s = this.renderRoot.querySelector(".sp-combobox-input")) == null || s.focus();
31
31
  }), this.dispatchEvent(new CustomEvent("sp-change", { detail: { values: this.values }, bubbles: !0, composed: !0 }));
32
32
  return;
33
33
  }
34
- this.value = e.value, this._searchText = "", this._open = !1, this._highlightedIndex = null, this._updateFormValue(), this.requestUpdate(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { value: this.value }, bubbles: !0, composed: !0 }));
34
+ this.value = e.value, this._searchText = "", this._open = !1, this._highlightedIndex = null, this._updateFormValue(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { value: this.value }, bubbles: !0, composed: !0 }));
35
35
  }
36
36
  }, this._handleRemoveValue = (e, t) => {
37
- t.stopPropagation(), this.values = this.values.filter((s) => s !== e), this._updateFormValue(), this.requestUpdate(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { values: this.values }, bubbles: !0, composed: !0 }));
37
+ t.stopPropagation(), this.values = this.values.filter((s) => s !== e), this._updateFormValue(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { values: this.values }, bubbles: !0, composed: !0 }));
38
38
  }, this._handleClear = (e) => {
39
- e.stopPropagation(), this.multiple ? this.values = [] : this.value = "", this._searchText = "", this._open = !1, this._highlightedIndex = null, this._updateFormValue(), this.requestUpdate(), this.dispatchEvent(new CustomEvent("sp-clear", { bubbles: !0, composed: !0 }));
39
+ e.stopPropagation(), this.multiple ? this.values = [] : this.value = "", this._searchText = "", this._open = !1, this._highlightedIndex = null, this._updateFormValue(), this.dispatchEvent(new CustomEvent("sp-clear", { bubbles: !0, composed: !0 }));
40
40
  }, this._handleKeydown = (e) => {
41
41
  if (e.key === "Backspace" && this.multiple && this._searchText === "" && this.values.length > 0) {
42
- this.values = this.values.slice(0, -1), this._updateFormValue(), this.requestUpdate(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { values: this.values }, bubbles: !0, composed: !0 }));
42
+ this.values = this.values.slice(0, -1), this._updateFormValue(), this.dispatchEvent(new CustomEvent("sp-change", { detail: { values: this.values }, bubbles: !0, composed: !0 }));
43
43
  return;
44
44
  }
45
45
  if (!this._open) {
46
46
  if (e.key === "ArrowDown" || e.key === "ArrowUp") {
47
- e.preventDefault(), this._open = !0, this.requestUpdate();
47
+ e.preventDefault(), this._open = !0;
48
48
  return;
49
49
  }
50
50
  return;
51
51
  }
52
52
  const t = this._getVisibleOptions(), s = this._highlightedIndex ?? -1;
53
53
  if (e.key === "ArrowDown")
54
- e.preventDefault(), this._highlightedIndex = s < t.length - 1 ? s + 1 : 0, this.requestUpdate(), this.updateComplete.then(() => this._scrollHighlightedIntoView());
54
+ e.preventDefault(), this._highlightedIndex = s < t.length - 1 ? s + 1 : 0, this.updateComplete.then(() => this._scrollHighlightedIntoView());
55
55
  else if (e.key === "ArrowUp")
56
- e.preventDefault(), this._highlightedIndex = s > 0 ? s - 1 : t.length - 1, this.requestUpdate(), this.updateComplete.then(() => this._scrollHighlightedIntoView());
56
+ e.preventDefault(), this._highlightedIndex = s > 0 ? s - 1 : t.length - 1, this.updateComplete.then(() => this._scrollHighlightedIntoView());
57
57
  else if (e.key === "Enter" && s >= 0) {
58
58
  e.preventDefault();
59
59
  const a = t[s];
60
60
  a && !a.disabled && this._handleSelect(a);
61
- } else e.key === "Escape" ? (e.preventDefault(), this._open = !1, this._highlightedIndex = null, this.requestUpdate()) : e.key === "Home" ? (e.preventDefault(), this._highlightedIndex = 0, this.requestUpdate(), this.updateComplete.then(() => this._scrollHighlightedIntoView())) : e.key === "End" && (e.preventDefault(), this._highlightedIndex = t.length - 1, this.requestUpdate(), this.updateComplete.then(() => this._scrollHighlightedIntoView()));
61
+ } else e.key === "Escape" ? (e.preventDefault(), this._open = !1, this._highlightedIndex = null) : e.key === "Home" ? (e.preventDefault(), this._highlightedIndex = 0, this.updateComplete.then(() => this._scrollHighlightedIntoView())) : e.key === "End" && (e.preventDefault(), this._highlightedIndex = t.length - 1, this.updateComplete.then(() => this._scrollHighlightedIntoView()));
62
62
  }, C(this, r, this.attachInternals());
63
63
  }
64
64
  get _filteredOptions() {
@@ -80,7 +80,7 @@ let i = class extends _ {
80
80
  n(this, r).setFormValue(this.value), this.required && !this.value ? n(this, r).setValidity({ valueMissing: !0 }, "Please select a value") : n(this, r).setValidity({});
81
81
  }
82
82
  formResetCallback() {
83
- this.value = "", this.values = [], this._updateFormValue(), this.requestUpdate();
83
+ this.value = "", this.values = [], this._updateFormValue();
84
84
  }
85
85
  updated(e) {
86
86
  super.updated(e), ["value", "values", "required", "multiple"].some((s) => e.has(s)) && this._updateFormValue();
@@ -149,7 +149,13 @@ l([
149
149
  h({ type: String, attribute: "no-results-text" })
150
150
  ], i.prototype, "noResultsText", 2);
151
151
  l([
152
- f()
152
+ d()
153
+ ], i.prototype, "_searchText", 2);
154
+ l([
155
+ d()
156
+ ], i.prototype, "_open", 2);
157
+ l([
158
+ d()
153
159
  ], i.prototype, "_highlightedIndex", 2);
154
160
  i = l([
155
161
  g("sp-combobox")
@@ -1,4 +1,4 @@
1
- const e = ":host{display:contents}.sp-command-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--sp-overlay, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999}.sp-command-palette{position:fixed;top:20%;left:50%;transform:translate(-50%);width:90vw;max-width:560px;background:var(--sp-bg, #ffffff);border-radius:12px;box-shadow:0 25px 60px #00000040,0 8px 20px #00000026;z-index:1000;overflow:hidden;animation:sp-cp-in .15s ease}@keyframes sp-cp-in{0%{opacity:0;transform:translate(-50%) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}@media(prefers-reduced-motion:reduce){.sp-command-palette{animation:none}}.sp-command-palette-search{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);gap:10px}.sp-command-search-icon{width:18px;height:18px;flex-shrink:0;color:var(--sp-text-placeholder, #9ca3af)}.sp-command-palette-input{flex:1;border:none;outline:none;padding:16px 0;font-size:1.1rem;color:var(--sp-text, #111827);background:transparent;font-family:inherit}.sp-command-palette-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-command-esc-hint{font-size:.7rem;padding:2px 5px;background:var(--sp-bg-muted, #f3f4f6);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:4px;color:var(--sp-text-muted, #6b7280);font-family:monospace;flex-shrink:0}.sp-command-palette-results{max-height:400px;overflow-y:auto;padding:4px 0}.sp-command-loading,.sp-command-empty{padding:24px 16px;text-align:center;color:var(--sp-text-placeholder, #9ca3af);font-size:.9rem}.sp-command-group-header{padding:8px 16px 4px;font-size:.65rem;font-variant:small-caps;letter-spacing:.08em;color:var(--sp-text-placeholder, #9ca3af);font-weight:600;text-transform:uppercase}.sp-command-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:inherit;font-size:.9rem;color:var(--sp-text, #111827);transition:background .1s}.sp-command-item:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-command-item--active{background:var(--sp-primary-bg, #eff6ff);outline:none}.sp-command-item--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.sp-command-item-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}.sp-command-item-body{flex:1;min-width:0}.sp-command-item-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-command-item-description{font-size:.78rem;color:var(--sp-text-muted, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.sp-command-palette-footer{display:flex;align-items:center;gap:16px;padding:8px 16px;border-top:1px solid var(--sp-border-subtle, #e5e7eb);background:var(--sp-bg-subtle, #f9fafb);font-size:.72rem;color:var(--sp-text-placeholder, #9ca3af)}.sp-command-palette-footer kbd{padding:1px 5px;background:var(--sp-bg, #ffffff);border:1px solid var(--sp-border, #d1d5db);border-radius:3px;font-size:.7rem;font-family:monospace;color:var(--sp-text-secondary, #374151)}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:contents}.sp-command-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--sp-overlay, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999}.sp-command-palette{position:fixed;top:20%;left:50%;transform:translate(-50%);width:90vw;max-width:560px;background:var(--sp-bg, #ffffff);border-radius:12px;box-shadow:0 25px 60px #00000040,0 8px 20px #00000026;z-index:1000;overflow:hidden;animation:sp-cp-in .15s ease}@keyframes sp-cp-in{0%{opacity:0;transform:translate(-50%) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}@media(prefers-reduced-motion:reduce){.sp-command-palette{animation:none}}.sp-command-palette-search{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);gap:10px}.sp-command-search-icon{width:18px;height:18px;flex-shrink:0;color:var(--sp-text-placeholder, #9ca3af)}.sp-command-palette-input{flex:1;border:none;outline:none;padding:16px 0;font-size:1.1rem;color:var(--sp-text, #111827);background:transparent;font-family:inherit}.sp-command-palette-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-command-esc-hint{font-size:.7rem;padding:2px 5px;background:var(--sp-bg-muted, #f3f4f6);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:4px;color:var(--sp-text-muted, #6b7280);font-family:monospace;flex-shrink:0}.sp-command-palette-results{max-height:400px;overflow-y:auto;padding:4px 0}.sp-command-loading,.sp-command-empty{padding:24px 16px;text-align:center;color:var(--sp-text-placeholder, #9ca3af);font-size:.9rem}.sp-command-group-header{padding:8px 16px 4px;font-size:.65rem;font-variant:small-caps;letter-spacing:.08em;color:var(--sp-text-placeholder, #9ca3af);font-weight:600;text-transform:uppercase}.sp-command-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:inherit;font-size:.9rem;color:var(--sp-text, #111827);transition:background .1s}.sp-command-item:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-command-item--active{background:var(--sp-primary-bg, #eff6ff);outline:none}.sp-command-item--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.sp-command-item-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}.sp-command-item-body{flex:1;min-width:0}.sp-command-item-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-command-item-description{font-size:.78rem;color:var(--sp-text-muted, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.sp-command-palette-footer{display:flex;align-items:center;gap:16px;padding:8px 16px;border-top:1px solid var(--sp-border-subtle, #e5e7eb);background:var(--sp-bg-subtle, #f9fafb);font-size:.72rem;color:var(--sp-text-placeholder, #9ca3af)}.sp-command-palette-footer kbd{padding:1px 5px;background:var(--sp-bg, #ffffff);border:1px solid var(--sp-border, #d1d5db);border-radius:3px;font-size:.7rem;font-family:monospace;color:var(--sp-text-secondary, #374151)}";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const o = ":host{display:contents}dialog{padding:0;border:none;border-radius:12px;box-shadow:0 20px 60px #00000040;background:transparent;max-width:440px;width:calc(100vw - 32px);animation:sp-dialog-in .2s ease}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .45));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sp-backdrop-in .2s ease}@keyframes sp-dialog-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes sp-backdrop-in{0%{opacity:0}to{opacity:1}}.sp-confirm-dialog-panel{background:var(--sp-bg, #ffffff);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.sp-confirm-dialog-title{margin:0;font-size:18px;font-weight:600;color:var(--sp-text, #111827);line-height:1.3}.sp-confirm-dialog-message{margin:0;font-size:14px;color:var(--sp-text-muted, #4b5563);line-height:1.5}.sp-confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.sp-confirm-cancel,.sp-confirm-ok{display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:opacity .15s,background .15s;border:1px solid transparent}.sp-confirm-cancel{background:var(--sp-bg-subtle, #f9fafb);color:var(--sp-text-secondary, #374151);border-color:var(--sp-border, #d1d5db)}.sp-confirm-cancel:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-confirm-ok--default{background:var(--sp-primary, #3b82f6);color:var(--sp-bg, #ffffff)}.sp-confirm-ok--default:hover{opacity:.87}.sp-confirm-ok--destructive{background:var(--sp-error, #FF4D4F);color:var(--sp-bg, #ffffff)}.sp-confirm-ok--destructive:hover{opacity:.87}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}";
1
+ const o = "*,*:before,*:after{box-sizing:border-box}:host{display:contents}dialog{padding:0;border:none;border-radius:12px;box-shadow:0 20px 60px #00000040;background:transparent;max-width:440px;width:calc(100vw - 32px);animation:sp-dialog-in .2s ease}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .45));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sp-backdrop-in .2s ease}@keyframes sp-dialog-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes sp-backdrop-in{0%{opacity:0}to{opacity:1}}.sp-confirm-dialog-panel{background:var(--sp-bg, #ffffff);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.sp-confirm-dialog-title{margin:0;font-size:18px;font-weight:600;color:var(--sp-text, #111827);line-height:1.3}.sp-confirm-dialog-message{margin:0;font-size:14px;color:var(--sp-text-muted, #4b5563);line-height:1.5}.sp-confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.sp-confirm-cancel,.sp-confirm-ok{display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:opacity .15s,background .15s;border:1px solid transparent}.sp-confirm-cancel{background:var(--sp-bg-subtle, #f9fafb);color:var(--sp-text-secondary, #374151);border-color:var(--sp-border, #d1d5db)}.sp-confirm-cancel:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-confirm-ok--default{background:var(--sp-primary, #3b82f6);color:var(--sp-bg, #ffffff)}.sp-confirm-ok--default:hover{opacity:.87}.sp-confirm-ok--destructive{background:var(--sp-error, #FF4D4F);color:var(--sp-bg, #ffffff)}.sp-confirm-ok--destructive:hover{opacity:.87}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}";
2
2
  export {
3
3
  o as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const o = ':host{display:inline-block}.sp-copy-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--sp-copy-button-radius, 4px);font-family:inherit;font-weight:500;cursor:pointer;transition:opacity .2s;line-height:1;box-sizing:border-box;white-space:nowrap}:host([size="sm"]) .sp-copy-button{height:24px;padding:0 8px;font-size:12px}:host([size="md"]) .sp-copy-button{height:32px;padding:0 12px;font-size:13px}:host([size="lg"]) .sp-copy-button{height:40px;padding:0 16px;font-size:14px}:host([variant="primary"]) .sp-copy-button{background-color:var(--sp-primary, #3b82f6);color:var(--sp-bg, #ffffff);border:1px solid transparent}:host([variant="secondary"]) .sp-copy-button{background-color:var(--sp-text-muted, #6b7280);color:var(--sp-bg, #ffffff);border:1px solid transparent}:host([variant="ghost"]) .sp-copy-button{background-color:transparent;color:var(--sp-primary, #3b82f6);border:1px solid var(--sp-primary, #3b82f6)}:host(:not([disabled])) .sp-copy-button:hover{opacity:.85}.sp-copy-button--success{opacity:.9}:host([disabled]) .sp-copy-button{opacity:.5;cursor:not-allowed;pointer-events:none}.sp-copy-button svg{width:1em;height:1em;display:block;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sp-copy-button:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host{transition:none!important}button,a,[role=button]{transition:none!important}}';
1
+ const o = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-block}.sp-copy-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--sp-copy-button-radius, 4px);font-family:inherit;font-weight:500;cursor:pointer;transition:opacity .2s;line-height:1;box-sizing:border-box;white-space:nowrap}:host([size="sm"]) .sp-copy-button{height:24px;padding:0 8px;font-size:12px}:host([size="md"]) .sp-copy-button{height:32px;padding:0 12px;font-size:13px}:host([size="lg"]) .sp-copy-button{height:40px;padding:0 16px;font-size:14px}:host([variant="primary"]) .sp-copy-button{background-color:var(--sp-primary, #3b82f6);color:var(--sp-bg, #ffffff);border:1px solid transparent}:host([variant="secondary"]) .sp-copy-button{background-color:var(--sp-text-muted, #6b7280);color:var(--sp-bg, #ffffff);border:1px solid transparent}:host([variant="ghost"]) .sp-copy-button{background-color:transparent;color:var(--sp-primary, #3b82f6);border:1px solid var(--sp-primary, #3b82f6)}:host(:not([disabled])) .sp-copy-button:hover{opacity:.85}.sp-copy-button--success{opacity:.9}:host([disabled]) .sp-copy-button{opacity:.5;cursor:not-allowed;pointer-events:none}.sp-copy-button svg{width:1em;height:1em;display:block;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sp-copy-button:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host{transition:none!important}button,a,[role=button]{transition:none!important}}';
2
2
  export {
3
3
  o as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;--sp-divider-color: var(--sp-border-subtle, #e5e7eb)}:host([orientation="vertical"]){display:inline-flex;height:100%;align-self:stretch}.sp-divider{display:flex;align-items:center;width:100%}:host([orientation="vertical"]) .sp-divider{flex-direction:column;height:100%;width:auto}.sp-divider-line{flex:1;border:none;margin:0}:host([orientation="horizontal"]) .sp-divider-line{border-top:1px solid var(--sp-divider-color)}:host([orientation="vertical"]) .sp-divider-line{border-left:1px solid var(--sp-divider-color);height:100%;width:0}:host([variant="dashed"]) .sp-divider-line{border-style:dashed!important}:host([variant="dotted"]) .sp-divider-line{border-style:dotted!important}.sp-divider-label{flex-shrink:0;padding:0 12px;font-size:12px;color:var(--sp-text-placeholder, #9ca3af);white-space:nowrap}@media(prefers-reduced-motion:reduce){:host{transition:none!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;--sp-divider-color: var(--sp-border-subtle, #e5e7eb)}:host([orientation="vertical"]){display:inline-flex;height:100%;align-self:stretch}.sp-divider{display:flex;align-items:center;width:100%}:host([orientation="vertical"]) .sp-divider{flex-direction:column;height:100%;width:auto}.sp-divider-line{flex:1;border:none;margin:0}:host([orientation="horizontal"]) .sp-divider-line{border-top:1px solid var(--sp-divider-color)}:host([orientation="vertical"]) .sp-divider-line{border-left:1px solid var(--sp-divider-color);height:100%;width:0}:host([variant="dashed"]) .sp-divider-line{border-style:dashed!important}:host([variant="dotted"]) .sp-divider-line{border-style:dotted!important}.sp-divider-label{flex-shrink:0;padding:0 12px;font-size:12px;color:var(--sp-text-placeholder, #9ca3af);white-space:nowrap}@media(prefers-reduced-motion:reduce){:host{transition:none!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:contents}dialog{padding:0;border:none;max-height:100%;max-width:100%;overflow:hidden;margin:0;background:transparent}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .5))}:host([placement="right"]) dialog{margin-left:auto;height:100vh}:host([placement="left"]) dialog{margin-right:auto;height:100vh}:host([placement="top"]) dialog{margin-bottom:auto;width:100vw}:host([placement="bottom"]) dialog{margin-top:auto;width:100vw}.sp-drawer-panel{background:var(--sp-bg, white);height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000026;overflow:hidden;position:relative}:host([placement="left"]) .sp-drawer-panel{box-shadow:4px 0 20px #00000026;animation:sp-drawer-left .25s ease}:host([placement="right"]) .sp-drawer-panel{animation:sp-drawer-right .25s ease}:host([placement="top"]) .sp-drawer-panel{box-shadow:0 4px 20px #00000026;animation:sp-drawer-top .25s ease}:host([placement="bottom"]) .sp-drawer-panel{box-shadow:0 -4px 20px #00000026;animation:sp-drawer-bottom .25s ease}@keyframes sp-drawer-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-drawer-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sp-drawer-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes sp-drawer-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sp-drawer-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:18px;color:var(--sp-text-muted, #6b7280);padding:4px;line-height:1;border-radius:4px;z-index:1}.sp-drawer-close:hover{color:var(--sp-text, #111827);background:var(--sp-bg-muted, #f3f4f6)}.sp-drawer-close:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host([placement="left"]) .sp-drawer-panel,:host([placement="right"]) .sp-drawer-panel,:host([placement="top"]) .sp-drawer-panel,:host([placement="bottom"]) .sp-drawer-panel{animation:none}}.sp-drawer-body{flex:1;overflow-y:auto;padding:20px}::slotted([slot="header"]){display:block;padding:20px 20px 16px;font-size:18px;font-weight:600;color:var(--sp-text, #111827);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}::slotted([slot="footer"]){display:block;padding:16px 20px 20px;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}@media(max-width:480px){:host([placement="left"]) dialog,:host([placement="right"]) dialog{width:100vw!important}:host([placement="left"]) .sp-drawer-panel,:host([placement="right"]) .sp-drawer-panel{width:100vw;max-width:100vw}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:contents}dialog:not([open]){display:none}dialog{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;padding:0;border:none;margin:0;background:transparent;overflow:hidden}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .5))}:host([placement="right"]) dialog{display:flex;flex-direction:row;justify-content:flex-end;align-items:stretch}:host([placement="left"]) dialog{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch}:host([placement="top"]) dialog{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}:host([placement="bottom"]) dialog{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}.sp-drawer-panel{background:var(--sp-bg, white);display:flex;flex-direction:column;overflow:hidden;position:relative;flex-shrink:0}:host([placement="left"]) .sp-drawer-panel,:host([placement="right"]) .sp-drawer-panel{height:100vh}:host([placement="right"]) .sp-drawer-panel{box-shadow:-4px 0 20px #00000026}:host([placement="left"]) .sp-drawer-panel{box-shadow:4px 0 20px #00000026}:host([placement="top"]) .sp-drawer-panel{box-shadow:0 4px 20px #00000026}:host([placement="bottom"]) .sp-drawer-panel{box-shadow:0 -4px 20px #00000026}:host([placement="right"]) .sp-drawer-panel{animation:sp-drawer-right .25s ease}:host([placement="left"]) .sp-drawer-panel{animation:sp-drawer-left .25s ease}:host([placement="top"]) .sp-drawer-panel{animation:sp-drawer-top .25s ease}:host([placement="bottom"]) .sp-drawer-panel{animation:sp-drawer-bottom .25s ease}:host([closing][placement="right"]) .sp-drawer-panel{animation:sp-drawer-right .25s ease reverse forwards}:host([closing][placement="left"]) .sp-drawer-panel{animation:sp-drawer-left .25s ease reverse forwards}:host([closing][placement="top"]) .sp-drawer-panel{animation:sp-drawer-top .25s ease reverse forwards}:host([closing][placement="bottom"]) .sp-drawer-panel{animation:sp-drawer-bottom .25s ease reverse forwards}@keyframes sp-drawer-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sp-drawer-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sp-drawer-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes sp-drawer-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sp-drawer-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:18px;color:var(--sp-text-muted, #6b7280);padding:4px;line-height:1;border-radius:4px;z-index:1}.sp-drawer-close:hover{color:var(--sp-text, #111827);background:var(--sp-bg-muted, #f3f4f6)}.sp-drawer-close:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host([placement="right"]) .sp-drawer-panel,:host([placement="left"]) .sp-drawer-panel,:host([placement="top"]) .sp-drawer-panel,:host([placement="bottom"]) .sp-drawer-panel,:host([closing][placement="right"]) .sp-drawer-panel,:host([closing][placement="left"]) .sp-drawer-panel,:host([closing][placement="top"]) .sp-drawer-panel,:host([closing][placement="bottom"]) .sp-drawer-panel{animation:none}}.sp-drawer-body{flex:1;overflow-y:auto;padding:20px}::slotted([slot="header"]){display:block;padding:20px 20px 16px;font-size:18px;font-weight:600;color:var(--sp-text, #111827);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}::slotted([slot="footer"]){display:block;padding:16px 20px 20px;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}@media(max-width:480px){:host([placement="left"]) .sp-drawer-panel,:host([placement="right"]) .sp-drawer-panel{width:100vw!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -31,10 +31,14 @@ export declare class SpDrawerComponent extends LitElement {
31
31
  private _previousFocus;
32
32
  private _touchStartX;
33
33
  private _touchStartY;
34
+ private _afterHideTimer;
35
+ private _closeTimer;
36
+ private static readonly ANIM_DURATION;
34
37
  private _getFocusableElements;
35
38
  private _handleKeydown;
36
39
  connectedCallback(): void;
37
40
  disconnectedCallback(): void;
41
+ private readonly _handlePageHide;
38
42
  render(): import('lit-html').TemplateResult;
39
43
  updated(changed: Map<string, unknown>): void;
40
44
  private readonly _handleTouchStart;
@@ -1 +1 @@
1
- {"version":3,"file":"sp-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/sp-drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,UAAS;IAGb,KAAK,SAAM;IAGX,SAAS,EAAE,iBAAiB,CAAW;IAGvC,IAAI,SAAW;IAGf,QAAQ,UAAQ;IAGhB,cAAc,UAAQ;IAEtB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,cAAc,CAwBpB;IAEO,iBAAiB;IAKjB,oBAAoB;IAOpB,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAwC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAqB9B;IAEF,cAAc,IAAI,MAAM;IAOxB,QAAQ,CAAC,YAAY,aAEnB;IAEF,QAAQ,CAAC,mBAAmB,GAAI,GAAG,UAAU,UAE3C;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"sp-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/sp-drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,UAAS;IAGb,KAAK,SAAM;IAGX,SAAS,EAAE,iBAAiB,CAAW;IAGvC,IAAI,SAAW;IAGf,QAAQ,UAAQ;IAGhB,cAAc,UAAQ;IAEtB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAO;IAE5C,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,cAAc,CAwBpB;IAEO,iBAAiB;IAMjB,oBAAoB;IAc7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEO,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAqD9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAqB9B;IAEF,cAAc,IAAI,MAAM;IAOxB,QAAQ,CAAC,YAAY,aAEnB;IAEF,QAAQ,CAAC,mBAAmB,GAAI,GAAG,UAAU,UAE3C;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}