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,15 +1,15 @@
1
1
  import { unsafeCSS as p, LitElement as u } from "lit";
2
- import { property as c, state as n, customElement as _ } from "lit/decorators.js";
3
- import m from "./sp-scroll-area.css.js";
4
- import { scrollAreaTemplate as d } from "./sp-scroll-area.template.js";
5
- var b = Object.defineProperty, g = Object.getOwnPropertyDescriptor, h = (t, i, e, o) => {
6
- for (var r = o > 1 ? void 0 : o ? g(i, e) : i, l = t.length - 1, a; l >= 0; l--)
7
- (a = t[l]) && (r = (o ? a(i, e, r) : a(r)) || r);
8
- return o && r && b(i, e, r), r;
2
+ import { property as c, state as n, customElement as m } from "lit/decorators.js";
3
+ import _ from "./sp-scroll-area.css.js";
4
+ import { scrollAreaTemplate as b } from "./sp-scroll-area.template.js";
5
+ var d = Object.defineProperty, g = Object.getOwnPropertyDescriptor, h = (t, s, e, r) => {
6
+ for (var i = r > 1 ? void 0 : r ? g(s, e) : s, l = t.length - 1, a; l >= 0; l--)
7
+ (a = t[l]) && (i = (r ? a(s, e, i) : a(i)) || i);
8
+ return r && i && d(s, e, i), i;
9
9
  };
10
- let s = class extends u {
10
+ let o = class extends u {
11
11
  constructor() {
12
- super(...arguments), this.orientation = "vertical", this.scrollbar = "auto", this.maxHeight = "", this.maxWidth = "", this.hideDelay = 1e3, this.smoothScroll = !1, this._thumbHeight = 100, this._thumbTop = 0, this._thumbWidth = 100, this._thumbLeft = 0, this._scrolling = !1, this._scrollTimeout = null, this._resizeObserver = null, this._dragStartY = 0, this._dragStartScrollTop = 0, this._dragStartX = 0, this._dragStartScrollLeft = 0, this._dragAxis = "vertical", this._onScroll = () => {
12
+ super(...arguments), this.orientation = "vertical", this.scrollbar = "auto", this.maxHeight = "", this.maxWidth = "", this.hideDelay = 1e3, this.smoothScroll = !1, this._thumbHeight = 100, this._thumbTop = 0, this._thumbWidth = 100, this._thumbLeft = 0, this._scrolling = !1, this._scrollTimeout = null, this._resizeObserver = null, this._dragStartY = 0, this._dragStartScrollTop = 0, this._dragStartX = 0, this._dragStartScrollLeft = 0, this._dragAxis = "vertical", this._activeDragThumb = null, this._onScroll = () => {
13
13
  this._updateThumbs(), this._scrolling = !0, this._scrollTimeout !== null && clearTimeout(this._scrollTimeout), this._scrollTimeout = setTimeout(() => {
14
14
  this._scrolling = !1;
15
15
  }, this.hideDelay);
@@ -26,28 +26,27 @@ let s = class extends u {
26
26
  );
27
27
  }, this._startThumbDrag = (t) => {
28
28
  t.preventDefault(), t.target.setPointerCapture(t.pointerId);
29
- const i = t.target.classList.contains(
29
+ const s = t.target.classList.contains(
30
30
  "sp-scroll-area-thumb--vertical"
31
31
  );
32
- this._dragAxis = i ? "vertical" : "horizontal";
32
+ this._dragAxis = s ? "vertical" : "horizontal";
33
33
  const e = this._getViewport();
34
- e && (this._dragStartY = t.clientY, this._dragStartScrollTop = e.scrollTop, this._dragStartX = t.clientX, this._dragStartScrollLeft = e.scrollLeft, t.target.addEventListener("pointermove", this._onThumbMove), t.target.addEventListener(
35
- "pointerup",
36
- this._onThumbUp,
37
- { once: !0 }
38
- ));
34
+ if (!e) return;
35
+ this._dragStartY = t.clientY, this._dragStartScrollTop = e.scrollTop, this._dragStartX = t.clientX, this._dragStartScrollLeft = e.scrollLeft;
36
+ const r = t.target;
37
+ this._activeDragThumb = r, r.addEventListener("pointermove", this._onThumbMove), r.addEventListener("pointerup", this._onThumbUp, { once: !0 });
39
38
  }, this._onThumbMove = (t) => {
40
- const i = this._getViewport();
41
- if (i)
39
+ const s = this._getViewport();
40
+ if (s)
42
41
  if (this._dragAxis === "vertical") {
43
- const e = t.clientY - this._dragStartY, { scrollHeight: o, clientHeight: r } = i, l = e / (r * (this._thumbHeight / 100));
44
- i.scrollTop = this._dragStartScrollTop + l * (o - r);
42
+ const e = t.clientY - this._dragStartY, { scrollHeight: r, clientHeight: i } = s, l = e / (i * (this._thumbHeight / 100));
43
+ s.scrollTop = this._dragStartScrollTop + l * (r - i);
45
44
  } else {
46
- const e = t.clientX - this._dragStartX, { scrollWidth: o, clientWidth: r } = i, l = e / (r * (this._thumbWidth / 100));
47
- i.scrollLeft = this._dragStartScrollLeft + l * (o - r);
45
+ const e = t.clientX - this._dragStartX, { scrollWidth: r, clientWidth: i } = s, l = e / (i * (this._thumbWidth / 100));
46
+ s.scrollLeft = this._dragStartScrollLeft + l * (r - i);
48
47
  }
49
48
  }, this._onThumbUp = (t) => {
50
- t.target.removeEventListener("pointermove", this._onThumbMove);
49
+ t.target.removeEventListener("pointermove", this._onThumbMove), this._activeDragThumb = null;
51
50
  };
52
51
  }
53
52
  _getViewport() {
@@ -59,11 +58,11 @@ let s = class extends u {
59
58
  _updateThumbs() {
60
59
  const t = this._getViewport();
61
60
  if (!t) return;
62
- const { scrollTop: i, scrollHeight: e, clientHeight: o, scrollLeft: r, scrollWidth: l, clientWidth: a } = t;
61
+ const { scrollTop: s, scrollHeight: e, clientHeight: r, scrollLeft: i, scrollWidth: l, clientWidth: a } = t;
63
62
  e > 0 && (this._thumbHeight = Math.max(
64
63
  10,
65
- o / e * 100
66
- ), this._thumbTop = e > o ? i / (e - o) * (100 - this._thumbHeight) : 0), l > 0 && (this._thumbWidth = Math.max(10, a / l * 100), this._thumbLeft = l > a ? r / (l - a) * (100 - this._thumbWidth) : 0);
64
+ r / e * 100
65
+ ), this._thumbTop = e > r ? s / (e - r) * (100 - this._thumbHeight) : 0), l > 0 && (this._thumbWidth = Math.max(10, a / l * 100), this._thumbLeft = l > a ? i / (l - a) * (100 - this._thumbWidth) : 0);
67
66
  }
68
67
  firstUpdated() {
69
68
  const t = this._getViewport();
@@ -73,49 +72,49 @@ let s = class extends u {
73
72
  }
74
73
  disconnectedCallback() {
75
74
  var t;
76
- super.disconnectedCallback(), (t = this._resizeObserver) == null || t.disconnect(), this._scrollTimeout !== null && clearTimeout(this._scrollTimeout);
75
+ super.disconnectedCallback(), (t = this._resizeObserver) == null || t.disconnect(), this._scrollTimeout !== null && clearTimeout(this._scrollTimeout), this._activeDragThumb && (this._activeDragThumb.removeEventListener("pointermove", this._onThumbMove), this._activeDragThumb = null);
77
76
  }
78
77
  render() {
79
- return d.call(this);
78
+ return b.call(this);
80
79
  }
81
80
  };
82
- s.styles = p(m);
81
+ o.styles = p(_);
83
82
  h([
84
83
  c({ type: String, reflect: !0 })
85
- ], s.prototype, "orientation", 2);
84
+ ], o.prototype, "orientation", 2);
86
85
  h([
87
86
  c({ type: String, reflect: !0 })
88
- ], s.prototype, "scrollbar", 2);
87
+ ], o.prototype, "scrollbar", 2);
89
88
  h([
90
89
  c({ type: String, attribute: "max-height" })
91
- ], s.prototype, "maxHeight", 2);
90
+ ], o.prototype, "maxHeight", 2);
92
91
  h([
93
92
  c({ type: String, attribute: "max-width" })
94
- ], s.prototype, "maxWidth", 2);
93
+ ], o.prototype, "maxWidth", 2);
95
94
  h([
96
95
  c({ type: Number, attribute: "hide-delay" })
97
- ], s.prototype, "hideDelay", 2);
96
+ ], o.prototype, "hideDelay", 2);
98
97
  h([
99
98
  c({ type: Boolean, attribute: "smooth-scroll" })
100
- ], s.prototype, "smoothScroll", 2);
99
+ ], o.prototype, "smoothScroll", 2);
101
100
  h([
102
101
  n()
103
- ], s.prototype, "_thumbHeight", 2);
102
+ ], o.prototype, "_thumbHeight", 2);
104
103
  h([
105
104
  n()
106
- ], s.prototype, "_thumbTop", 2);
105
+ ], o.prototype, "_thumbTop", 2);
107
106
  h([
108
107
  n()
109
- ], s.prototype, "_thumbWidth", 2);
108
+ ], o.prototype, "_thumbWidth", 2);
110
109
  h([
111
110
  n()
112
- ], s.prototype, "_thumbLeft", 2);
111
+ ], o.prototype, "_thumbLeft", 2);
113
112
  h([
114
113
  n()
115
- ], s.prototype, "_scrolling", 2);
116
- s = h([
117
- _("sp-scroll-area")
118
- ], s);
114
+ ], o.prototype, "_scrolling", 2);
115
+ o = h([
116
+ m("sp-scroll-area")
117
+ ], o);
119
118
  export {
120
- s as SpScrollAreaComponent
119
+ o as SpScrollAreaComponent
121
120
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;font-family:inherit}.sp-select-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-select-container{position:relative;display:flex;align-items:center}select{width:100%;padding:8px 36px 8px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;background:var(--sp-bg, white);font-size:14px;font-family:inherit;color:var(--sp-text, #111827);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .2s}select:focus-visible{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}.sp-select-container--error select{border-color:var(--sp-error, #FF4D4F)}.sp-select-container--error select:focus-visible{outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}.sp-select-arrow{position:absolute;right:12px;pointer-events:none;color:var(--sp-text-muted, #6b7280);font-size:12px}:host([size="sm"]) select{padding:6px 32px 6px 8px;font-size:12px}:host([size="lg"]) select{padding:12px 40px 12px 16px;font-size:16px}:host([disabled]) select{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}.sp-select-count-badge{display:inline-block;margin-top:4px;padding:2px 8px;background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary, #3b82f6);border-radius:9999px;font-size:12px;font-weight:500}.sp-select-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-select-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(max-width:479px){:host{width:100%}.sp-select-wrapper{width:100%}.sp-select-container{width:100%;box-sizing:border-box}select{width:100%}}@media(prefers-reduced-motion:reduce){select{transition:none}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit}.sp-select-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-select-container{position:relative;display:flex;align-items:center}select{width:100%;padding:8px 36px 8px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;background:var(--sp-bg, white);font-size:14px;font-family:inherit;color:var(--sp-text, #111827);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .2s}select:focus-visible{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}.sp-select-container--error select{border-color:var(--sp-error, #FF4D4F)}.sp-select-container--error select:focus-visible{outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}.sp-select-arrow{position:absolute;right:12px;pointer-events:none;color:var(--sp-text-muted, #6b7280);font-size:12px}:host([size="sm"]) select{padding:6px 32px 6px 8px;font-size:12px}:host([size="lg"]) select{padding:12px 40px 12px 16px;font-size:16px}:host([disabled]) select{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}.sp-select-count-badge{display:inline-block;margin-top:4px;padding:2px 8px;background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary, #3b82f6);border-radius:9999px;font-size:12px;font-weight:500}.sp-select-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-select-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(max-width:479px){:host{width:100%}.sp-select-wrapper{width:100%}.sp-select-container{width:100%;box-sizing:border-box}select{width:100%}}@media(prefers-reduced-motion:reduce){select{transition:none}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;height:100%}.sp-sidebar{height:100%;background:var(--sp-bg, white);display:flex;flex-direction:column;transition:width .25s ease;overflow:hidden;position:relative;box-sizing:border-box}:host([bordered]) .sp-sidebar{border-right:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="right"]) :host([bordered]) .sp-sidebar{border-right:none;border-left:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-sidebar-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.sp-sidebar-toggle{position:absolute;top:16px;right:-12px;z-index:1;width:24px;height:24px;border-radius:50%;border:1px solid var(--sp-border-subtle, #e5e7eb);background:var(--sp-bg, white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 1px 4px #0000001a}.sp-sidebar-toggle:hover{background:var(--sp-bg-muted, #f3f4f6)}::slotted([slot="header"]){display:block;padding:16px;border-bottom:1px solid var(--sp-bg-muted, #f3f4f6)}::slotted([slot="footer"]){display:block;padding:16px;border-top:1px solid var(--sp-bg-muted, #f3f4f6);margin-top:auto}.sp-sidebar-toggle: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],.sp-sidebar{transition:none!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;height:100%}.sp-sidebar{height:100%;background:var(--sp-bg, white);display:flex;flex-direction:column;transition:width .25s ease;overflow:hidden;position:relative;box-sizing:border-box}:host([bordered]) .sp-sidebar{border-right:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="right"]) :host([bordered]) .sp-sidebar{border-right:none;border-left:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-sidebar-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.sp-sidebar-toggle{position:absolute;top:16px;right:-12px;z-index:1;width:24px;height:24px;border-radius:50%;border:1px solid var(--sp-border-subtle, #e5e7eb);background:var(--sp-bg, white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 1px 4px #0000001a}.sp-sidebar-toggle:hover{background:var(--sp-bg-muted, #f3f4f6)}::slotted([slot="header"]){display:block;padding:16px;border-bottom:1px solid var(--sp-bg-muted, #f3f4f6)}::slotted([slot="footer"]){display:block;padding:16px;border-top:1px solid var(--sp-bg-muted, #f3f4f6);margin-top:auto}.sp-sidebar-toggle: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],.sp-sidebar{transition:none!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;width:100%}:host([variant="circle"]){display:inline-block;width:auto}.sp-skeleton{background:var(--sp-border-subtle, #e5e7eb);border-radius:4px}:host([variant="circle"]) .sp-skeleton{border-radius:50%}:host([variant="rect"]) .sp-skeleton{border-radius:4px;width:100%}:host([variant="text"]) .sp-skeleton{height:1em;border-radius:4px;width:100%}.sp-skeleton--title{height:1.5em;border-radius:4px;width:100%}.sp-skeleton-text-lines{display:flex;flex-direction:column;gap:6px;width:100%}.sp-skeleton--text-line{height:1em;border-radius:4px;width:100%}.sp-skeleton--text-line-last{width:60%}.sp-skeleton--animated{background:linear-gradient(90deg,var(--sp-border-subtle, #e5e7eb) 25%,var(--sp-bg-muted, #f3f4f6) 50%,var(--sp-border-subtle, #e5e7eb) 75%);background-size:200% 100%;animation:sp-shimmer 1.5s infinite}@keyframes sp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sp-skeleton,.sp-skeleton:after{animation:none;background:var(--sp-border-subtle, #e5e7eb)}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;width:100%}:host([variant="circle"]){display:inline-block;width:auto}.sp-skeleton{background:var(--sp-border-subtle, #e5e7eb);border-radius:4px}:host([variant="circle"]) .sp-skeleton{border-radius:50%}:host([variant="rect"]) .sp-skeleton{border-radius:4px;width:100%}:host([variant="text"]) .sp-skeleton{height:1em;border-radius:4px;width:100%}.sp-skeleton--title{height:1.5em;border-radius:4px;width:100%}.sp-skeleton-text-lines{display:flex;flex-direction:column;gap:6px;width:100%}.sp-skeleton--text-line{height:1em;border-radius:4px;width:100%}.sp-skeleton--text-line-last{width:60%}.sp-skeleton--animated{background:linear-gradient(90deg,var(--sp-border-subtle, #e5e7eb) 25%,var(--sp-bg-muted, #f3f4f6) 50%,var(--sp-border-subtle, #e5e7eb) 75%);background-size:200% 100%;animation:sp-shimmer 1.5s infinite}@keyframes sp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sp-skeleton,.sp-skeleton:after{animation:none;background:var(--sp-border-subtle, #e5e7eb)}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;font-family:inherit}.sp-slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sp-slider-label{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151)}.sp-slider-value{font-size:14px;color:var(--sp-primary, #3b82f6);font-weight:600}.sp-slider-track-wrapper{position:relative;display:flex;align-items:center;height:20px}.sp-slider-track{position:absolute;left:0;right:0;height:4px;background:var(--sp-border-subtle, #e5e7eb);border-radius:2px;pointer-events:none}:host([size="sm"]) .sp-slider-track{height:2px}:host([size="lg"]) .sp-slider-track{height:6px}.sp-slider-fill{position:absolute;height:100%;background:var(--sp-primary, #3b82f6);border-radius:2px;transition:width .1s,left .1s}.sp-slider-input{position:relative;width:100%;margin:0;height:20px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;z-index:1}.sp-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--sp-primary, #3b82f6);border:2px solid var(--sp-bg, white);box-shadow:0 1px 4px #0003;cursor:pointer;transition:transform .1s}:host([size="sm"]) .sp-slider-input::-webkit-slider-thumb{width:12px;height:12px}:host([size="lg"]) .sp-slider-input::-webkit-slider-thumb{width:20px;height:20px}.sp-slider-input::-webkit-slider-thumb:hover{transform:scale(1.2)}.sp-slider-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--sp-primary, #3b82f6);border:2px solid var(--sp-bg, white);box-shadow:0 1px 4px #0003;cursor:pointer}.sp-slider-input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([disabled]) .sp-slider-input{cursor:not-allowed;opacity:.5}:host([disabled]) .sp-slider-fill{background:var(--sp-text-placeholder, #9ca3af)}.sp-slider-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-slider-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}.sp-slider-input--range-start,.sp-slider-input--range-end{position:absolute;pointer-events:none}.sp-slider-input--range-start::-webkit-slider-thumb,.sp-slider-input--range-end::-webkit-slider-thumb{pointer-events:all}.sp-slider-input--range-start::-moz-range-thumb,.sp-slider-input--range-end::-moz-range-thumb{pointer-events:all}.sp-slider-marks{position:absolute;left:0;right:0;top:100%;margin-top:4px;pointer-events:none}.sp-slider-mark{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%)}.sp-slider-mark-tick{display:block;width:2px;height:6px;background:var(--sp-text-placeholder, #9ca3af);border-radius:1px}.sp-slider-mark-label{font-size:11px;color:var(--sp-text-muted, #6b7280);margin-top:2px;white-space:nowrap}@media(max-width:480px){.sp-slider-track-wrapper{height:28px}.sp-slider-input::-webkit-slider-thumb{width:22px;height:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}input[type=range]::-webkit-slider-thumb{transition:none}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit}.sp-slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sp-slider-label{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151)}.sp-slider-value{font-size:14px;color:var(--sp-primary, #3b82f6);font-weight:600}.sp-slider-track-wrapper{position:relative;display:flex;align-items:center;height:20px}.sp-slider-track{position:absolute;left:0;right:0;height:4px;background:var(--sp-border-subtle, #e5e7eb);border-radius:2px;pointer-events:none}:host([size="sm"]) .sp-slider-track{height:2px}:host([size="lg"]) .sp-slider-track{height:6px}.sp-slider-fill{position:absolute;height:100%;background:var(--sp-primary, #3b82f6);border-radius:2px;transition:width .1s,left .1s}.sp-slider-input{position:relative;width:100%;margin:0;height:20px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;z-index:1}.sp-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--sp-primary, #3b82f6);border:2px solid var(--sp-bg, white);box-shadow:0 1px 4px #0003;cursor:pointer;transition:transform .1s}:host([size="sm"]) .sp-slider-input::-webkit-slider-thumb{width:12px;height:12px}:host([size="lg"]) .sp-slider-input::-webkit-slider-thumb{width:20px;height:20px}.sp-slider-input::-webkit-slider-thumb:hover{transform:scale(1.2)}.sp-slider-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--sp-primary, #3b82f6);border:2px solid var(--sp-bg, white);box-shadow:0 1px 4px #0003;cursor:pointer}.sp-slider-input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([disabled]) .sp-slider-input{cursor:not-allowed;opacity:.5}:host([disabled]) .sp-slider-fill{background:var(--sp-text-placeholder, #9ca3af)}.sp-slider-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-slider-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}.sp-slider-input--range-start,.sp-slider-input--range-end{position:absolute;pointer-events:none}.sp-slider-input--range-start::-webkit-slider-thumb,.sp-slider-input--range-end::-webkit-slider-thumb{pointer-events:all}.sp-slider-input--range-start::-moz-range-thumb,.sp-slider-input--range-end::-moz-range-thumb{pointer-events:all}.sp-slider-marks{position:absolute;left:0;right:0;top:100%;margin-top:4px;pointer-events:none}.sp-slider-mark{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%)}.sp-slider-mark-tick{display:block;width:2px;height:6px;background:var(--sp-text-placeholder, #9ca3af);border-radius:1px}.sp-slider-mark-label{font-size:11px;color:var(--sp-text-muted, #6b7280);margin-top:2px;white-space:nowrap}@media(max-width:480px){.sp-slider-track-wrapper{height:28px}.sp-slider-input::-webkit-slider-thumb{width:22px;height:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}input[type=range]::-webkit-slider-thumb{transition:none}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const i = ':host{display:inline-flex;align-items:center;justify-content:center;color:var(--sp-primary, #3b82f6)}.sp-spinner{display:flex;animation:sp-spin .75s linear infinite}.sp-spinner svg{display:block}:host([size="sm"]) .sp-spinner svg{width:16px;height:16px}:host([size="md"]) .sp-spinner svg{width:24px;height:24px}:host([size="lg"]) .sp-spinner svg{width:36px;height:36px}:host([size="xl"]) .sp-spinner svg{width:48px;height:48px}.sp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes sp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sp-spinner{animation:none;opacity:.6}}';
1
+ const i = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-flex;align-items:center;justify-content:center;color:var(--sp-primary, #3b82f6)}.sp-spinner{display:flex;animation:sp-spin .75s linear infinite}.sp-spinner svg{display:block}:host([size="sm"]) .sp-spinner svg{width:16px;height:16px}:host([size="md"]) .sp-spinner svg{width:24px;height:24px}:host([size="lg"]) .sp-spinner svg{width:36px;height:36px}:host([size="xl"]) .sp-spinner svg{width:48px;height:48px}.sp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes sp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sp-spinner{animation:none;opacity:.6}}';
2
2
  export {
3
3
  i as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ":host{display:block;width:100%;height:100%}.sp-split-panel{display:grid;width:100%;height:100%}.sp-split-panel--horizontal{grid-template-columns:var(--position, 50%) 4px 1fr;grid-template-rows:1fr}.sp-split-panel--vertical{grid-template-columns:1fr;grid-template-rows:var(--position, 50%) 4px 1fr}.sp-split-panel-start,.sp-split-panel-end{overflow:hidden;min-width:0;min-height:0}.sp-split-panel-divider{display:flex;align-items:center;justify-content:center;background:var(--sp-border-subtle, #e5e7eb);transition:background .15s;-webkit-user-select:none;user-select:none;outline:none;flex-shrink:0}.sp-split-panel--horizontal .sp-split-panel-divider{cursor:col-resize;width:4px;height:100%}.sp-split-panel--vertical .sp-split-panel-divider{cursor:row-resize;width:100%;height:4px}.sp-split-panel-divider:hover,.sp-split-panel--dragging .sp-split-panel-divider{background:#93c5fd}.sp-split-panel-divider:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:0}.sp-split-panel-handle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--sp-bg, #ffffff);border:1px solid var(--sp-border, #d1d5db);border-radius:4px;box-shadow:0 1px 3px #0000001a;flex-shrink:0}.sp-split-panel-handle svg{width:10px;height:10px;color:var(--sp-text-placeholder, #9ca3af)}.sp-split-panel--horizontal .sp-split-panel-handle{flex-direction:column}:host([disabled]) .sp-split-panel-divider{cursor:default;pointer-events:none;opacity:.5}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block;width:100%;height:100%}.sp-split-panel{display:grid;width:100%;height:100%}.sp-split-panel--horizontal{grid-template-columns:var(--position, 50%) 4px 1fr;grid-template-rows:1fr}.sp-split-panel--vertical{grid-template-columns:1fr;grid-template-rows:var(--position, 50%) 4px 1fr}.sp-split-panel-start,.sp-split-panel-end{overflow:hidden;min-width:0;min-height:0}.sp-split-panel-divider{display:flex;align-items:center;justify-content:center;background:var(--sp-border-subtle, #e5e7eb);transition:background .15s;-webkit-user-select:none;user-select:none;outline:none;flex-shrink:0}.sp-split-panel--horizontal .sp-split-panel-divider{cursor:col-resize;width:4px;height:100%}.sp-split-panel--vertical .sp-split-panel-divider{cursor:row-resize;width:100%;height:4px}.sp-split-panel-divider:hover,.sp-split-panel--dragging .sp-split-panel-divider{background:#93c5fd}.sp-split-panel-divider:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:0}.sp-split-panel-handle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--sp-bg, #ffffff);border:1px solid var(--sp-border, #d1d5db);border-radius:4px;box-shadow:0 1px 3px #0000001a;flex-shrink:0}.sp-split-panel-handle svg{width:10px;height:10px;color:var(--sp-text-placeholder, #9ca3af)}.sp-split-panel--horizontal .sp-split-panel-handle{flex-direction:column}:host([disabled]) .sp-split-panel-divider{cursor:default;pointer-events:none;opacity:.5}";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = ":host{display:block}.sp-stat{display:flex;flex-direction:column;gap:4px}.sp-stat-label{font-size:13px;font-weight:500;color:var(--sp-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em}.sp-stat-value-row{display:flex;align-items:baseline;gap:4px}.sp-stat-prefix{font-size:20px;font-weight:500;color:var(--sp-text-muted, #6b7280)}.sp-stat-value{font-size:36px;font-weight:700;color:var(--sp-text, #111827);line-height:1}.sp-stat-suffix{font-size:16px;font-weight:500;color:var(--sp-text-muted, #6b7280)}.sp-stat-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500}.sp-stat-trend--up{color:var(--sp-stat-trend-up-color, #16a34a)}.sp-stat-trend--down{color:var(--sp-stat-trend-down-color, var(--sp-error-hover, #CF1322))}.sp-stat-trend--neutral{color:var(--sp-stat-trend-neutral-color, var(--sp-text-muted, #6b7280))}.sp-stat-trend-icon{font-size:14px}.sp-stat-description{font-size:13px;color:var(--sp-text-placeholder, #9ca3af)}.sp-stat-icon{margin-right:4px;font-size:15px}.sp-stat--loading{gap:8px}.sp-stat-skeleton{display:block;border-radius:4px;background:linear-gradient(90deg,var(--sp-bg-muted, #f0f0f0) 25%,var(--sp-border-subtle, #e0e0e0) 50%,var(--sp-bg-muted, #f0f0f0) 75%);background-size:200% 100%;animation:sp-stat-shimmer 1.4s ease infinite}.sp-stat-skeleton--label{height:13px;width:80px}.sp-stat-skeleton--value{height:36px;width:120px}.sp-stat-skeleton--trend{height:13px;width:60px}@keyframes sp-stat-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:640px){:host{min-width:0}.sp-stat-value{font-size:28px}}@media(prefers-reduced-motion:reduce){:host{transition:none!important}.sp-stat-skeleton{animation:none}}";
1
+ const t = "*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-stat{display:flex;flex-direction:column;gap:4px}.sp-stat-label{font-size:13px;font-weight:500;color:var(--sp-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em}.sp-stat-value-row{display:flex;align-items:baseline;gap:4px}.sp-stat-prefix{font-size:20px;font-weight:500;color:var(--sp-text-muted, #6b7280)}.sp-stat-value{font-size:36px;font-weight:700;color:var(--sp-text, #111827);line-height:1}.sp-stat-suffix{font-size:16px;font-weight:500;color:var(--sp-text-muted, #6b7280)}.sp-stat-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500}.sp-stat-trend--up{color:var(--sp-stat-trend-up-color, #16a34a)}.sp-stat-trend--down{color:var(--sp-stat-trend-down-color, var(--sp-error-hover, #CF1322))}.sp-stat-trend--neutral{color:var(--sp-stat-trend-neutral-color, var(--sp-text-muted, #6b7280))}.sp-stat-trend-icon{font-size:14px}.sp-stat-description{font-size:13px;color:var(--sp-text-placeholder, #9ca3af)}.sp-stat-icon{margin-right:4px;font-size:15px}.sp-stat--loading{gap:8px}.sp-stat-skeleton{display:block;border-radius:4px;background:linear-gradient(90deg,var(--sp-bg-muted, #f0f0f0) 25%,var(--sp-border-subtle, #e0e0e0) 50%,var(--sp-bg-muted, #f0f0f0) 75%);background-size:200% 100%;animation:sp-stat-shimmer 1.4s ease infinite}.sp-stat-skeleton--label{height:13px;width:80px}.sp-stat-skeleton--value{height:36px;width:120px}.sp-stat-skeleton--trend{height:13px;width:60px}@keyframes sp-stat-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:640px){:host{min-width:0}.sp-stat-value{font-size:28px}}@media(prefers-reduced-motion:reduce){:host{transition:none!important}.sp-stat-skeleton{animation:none}}";
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block}.sp-stepper{display:flex;align-items:flex-start}:host([orientation="vertical"]) .sp-stepper{flex-direction:column}.sp-step{display:flex;align-items:center;flex:1;position:relative}:host([orientation="vertical"]) .sp-step{flex-direction:column;align-items:flex-start;flex:none;width:100%;padding-bottom:24px}.sp-step-indicator{width:32px;height:32px;border-radius:50%;border:2px solid var(--sp-border, #d1d5db);background:var(--sp-bg, white);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--sp-text-muted, #6b7280);flex-shrink:0;z-index:1;transition:all .2s}.sp-step--complete .sp-step-indicator{background:var(--sp-primary, #3b82f6);border-color:var(--sp-primary, #3b82f6);color:var(--sp-bg, white)}.sp-step--current .sp-step-indicator{border-color:var(--sp-primary, #3b82f6);color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-step--error .sp-step-indicator{border-color:var(--sp-error, #FF4D4F);color:var(--sp-error, #FF4D4F)}.sp-step-connector{flex:1;height:2px;background:var(--sp-border-subtle, #e5e7eb);margin:0 8px}:host([orientation="vertical"]) .sp-step-connector{width:2px;height:24px;margin:4px 0;position:absolute;left:15px;top:32px}.sp-step--complete+.sp-step .sp-step-connector,.sp-step--complete .sp-step-connector{background:var(--sp-primary, #3b82f6)}.sp-step-content{display:flex;flex-direction:column;gap:2px;padding:0 8px}:host([orientation="vertical"]) .sp-step-content{position:absolute;left:44px;top:4px}.sp-step-label{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);white-space:nowrap}.sp-step--current .sp-step-label{color:var(--sp-primary, #3b82f6)}.sp-step--upcoming .sp-step-label{color:var(--sp-text-placeholder, #9ca3af)}.sp-step--error .sp-step-label{color:var(--sp-error, #FF4D4F)}.sp-step-description{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);white-space:nowrap}.sp-step-indicator: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],.sp-step-indicator{transition:none!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-stepper{display:flex;align-items:flex-start}:host([orientation="vertical"]) .sp-stepper{flex-direction:column}.sp-step{display:flex;align-items:center;flex:1;position:relative}:host([orientation="vertical"]) .sp-step{flex-direction:column;align-items:flex-start;flex:none;width:100%;padding-bottom:24px}.sp-step-indicator{width:32px;height:32px;border-radius:50%;border:2px solid var(--sp-border, #d1d5db);background:var(--sp-bg, white);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--sp-text-muted, #6b7280);flex-shrink:0;z-index:1;transition:all .2s}.sp-step--complete .sp-step-indicator{background:var(--sp-primary, #3b82f6);border-color:var(--sp-primary, #3b82f6);color:var(--sp-bg, white)}.sp-step--current .sp-step-indicator{border-color:var(--sp-primary, #3b82f6);color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-step--error .sp-step-indicator{border-color:var(--sp-error, #FF4D4F);color:var(--sp-error, #FF4D4F)}.sp-step-connector{flex:1;height:2px;background:var(--sp-border-subtle, #e5e7eb);margin:0 8px}:host([orientation="vertical"]) .sp-step-connector{width:2px;height:24px;margin:4px 0;position:absolute;left:15px;top:32px}.sp-step--complete+.sp-step .sp-step-connector,.sp-step--complete .sp-step-connector{background:var(--sp-primary, #3b82f6)}.sp-step-content{display:flex;flex-direction:column;gap:2px;padding:0 8px}:host([orientation="vertical"]) .sp-step-content{position:absolute;left:44px;top:4px}.sp-step-label{font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);white-space:nowrap}.sp-step--current .sp-step-label{color:var(--sp-primary, #3b82f6)}.sp-step--upcoming .sp-step-label{color:var(--sp-text-placeholder, #9ca3af)}.sp-step--error .sp-step-label{color:var(--sp-error, #FF4D4F)}.sp-step-description{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);white-space:nowrap}.sp-step-indicator: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],.sp-step-indicator{transition:none!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = ':host{display:inline-block}.sp-switch-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.sp-switch-label--disabled{opacity:.5;cursor:not-allowed}.sp-switch-track{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;border-radius:12px;background:var(--sp-border, #d1d5db);transition:background .2s;flex-shrink:0}.sp-switch-track input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:inherit;border-radius:inherit}.sp-switch-track--checked{background:var(--sp-primary, #3b82f6)}.sp-switch-thumb{position:absolute;left:2px;width:20px;height:20px;border-radius:50%;background:var(--sp-bg, white);box-shadow:0 1px 3px #0003;transition:transform .2s;pointer-events:none}.sp-switch-track--checked .sp-switch-thumb{transform:translate(20px)}.sp-switch-track:has(input:focus-visible){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([size="sm"]) .sp-switch-track{width:34px;height:18px;border-radius:9px}:host([size="sm"]) .sp-switch-thumb{width:14px;height:14px}:host([size="sm"]) .sp-switch-track--checked .sp-switch-thumb{transform:translate(16px)}:host([size="lg"]) .sp-switch-track{width:54px;height:30px;border-radius:15px}:host([size="lg"]) .sp-switch-thumb{width:26px;height:26px}:host([size="lg"]) .sp-switch-track--checked .sp-switch-thumb{transform:translate(24px)}.sp-switch-text{font-size:14px;color:var(--sp-text-secondary, #374151)}.sp-switch-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(prefers-reduced-motion:reduce){.sp-switch-track,.sp-switch-thumb{transition:none}}';
1
+ const t = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-block}.sp-switch-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.sp-switch-label--disabled{opacity:.5;cursor:not-allowed}.sp-switch-track{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;border-radius:12px;background:var(--sp-border, #d1d5db);transition:background .2s;flex-shrink:0}.sp-switch-track input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:inherit;border-radius:inherit}.sp-switch-track--checked{background:var(--sp-primary, #3b82f6)}.sp-switch-thumb{position:absolute;left:2px;width:20px;height:20px;border-radius:50%;background:var(--sp-bg, white);box-shadow:0 1px 3px #0003;transition:transform .2s;pointer-events:none}.sp-switch-track--checked .sp-switch-thumb{transform:translate(20px)}.sp-switch-track:has(input:focus-visible){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}:host([size="sm"]) .sp-switch-track{width:34px;height:18px;border-radius:9px}:host([size="sm"]) .sp-switch-thumb{width:14px;height:14px}:host([size="sm"]) .sp-switch-track--checked .sp-switch-thumb{transform:translate(16px)}:host([size="lg"]) .sp-switch-track{width:54px;height:30px;border-radius:15px}:host([size="lg"]) .sp-switch-thumb{width:26px;height:26px}:host([size="lg"]) .sp-switch-track--checked .sp-switch-thumb{transform:translate(24px)}.sp-switch-text{font-size:14px;color:var(--sp-text-secondary, #374151)}.sp-switch-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}@media(prefers-reduced-motion:reduce){.sp-switch-track,.sp-switch-thumb{transition:none}}';
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ":host{display:block}.sp-table-wrapper{width:100%;overflow-x:auto;border-radius:8px}.sp-table{width:100%;border-collapse:collapse;font-size:14px}:host([bordered]) .sp-table-wrapper{border:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-table-th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--sp-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em;background:var(--sp-bg-subtle, #f9fafb);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);white-space:nowrap}:host([compact]) .sp-table-th{padding:8px 12px}.sp-table-th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sp-table-th--sortable:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-th-content{display:flex;align-items:center;gap:6px}.sp-table-sort-icon{color:var(--sp-text-placeholder, #9ca3af);font-size:12px}.sp-table-th--sorted .sp-table-sort-icon{color:var(--sp-primary, #3b82f6)}.sp-table-td{padding:12px 16px;color:var(--sp-text-secondary, #374151);border-bottom:1px solid var(--sp-bg-muted, #f3f4f6)}:host([compact]) .sp-table-td{padding:8px 12px}:host([bordered]) .sp-table-th,:host([bordered]) .sp-table-td{border:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-table-row--striped{background:var(--sp-bg-subtle, #f9fafb)}:host([hoverable]) .sp-table-row:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-empty{text-align:center;padding:32px;color:var(--sp-text-placeholder, #9ca3af);font-size:14px}.sp-table-loading{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--sp-text-muted, #6b7280)}.sp-table-th--sortable:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px}.sp-table-th--sticky{position:sticky;top:0;z-index:1;background:var(--sp-table-header-bg, var(--sp-bg-subtle, #f9fafb))}.sp-table-caption{caption-side:top;padding:8px 16px;text-align:left;font-size:14px;font-weight:600;color:var(--sp-text-secondary, #374151)}.sp-table-th--checkbox,.sp-table-td--checkbox{width:40px;padding:12px 8px;text-align:center}.sp-table-row--selected{background:var(--sp-primary-bg, #eff6ff)}:host([hoverable]) .sp-table-row--selected:hover{background:var(--sp-primary-bg-hover, #dbeafe)}@media(prefers-reduced-motion:reduce){:host{transition:none!important}button,a,[role=button]{transition:none!important}}";
1
+ const e = `*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-table-toolbar{display:flex;align-items:center;gap:10px;padding:10px 0 12px;flex-wrap:wrap}.sp-table-search{position:relative;display:flex;align-items:center;flex:1;min-width:180px;max-width:360px}.sp-table-search-icon{position:absolute;left:10px;color:var(--sp-text-muted, #9ca3af);display:flex;align-items:center;pointer-events:none}.sp-table-search-input{width:100%;padding:7px 32px;font-size:13px;font-family:inherit;background:var(--sp-bg, #fff);color:var(--sp-text, #111827);border:1px solid var(--sp-border, #d1d5db);border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.sp-table-search-input::placeholder{color:var(--sp-text-muted, #9ca3af)}.sp-table-search-input:focus{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59,130,246,.2))}.sp-table-search-clear{position:absolute;right:8px;background:none;border:none;cursor:pointer;color:var(--sp-text-muted, #9ca3af);font-size:12px;padding:2px;border-radius:3px;line-height:1}.sp-table-search-clear:hover{color:var(--sp-text, #111827)}.sp-table-toolbar-end{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.sp-table-count{font-size:12px;color:var(--sp-text-muted, #6b7280);white-space:nowrap}.sp-table-chip-clear{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-family:inherit;background:var(--sp-error-bg, #fff2f0);color:var(--sp-error, #ef4444);border:1px solid var(--sp-error, #ef4444);border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .15s}.sp-table-chip-clear:hover{background:var(--sp-error-bg-hover, #ffccc7)}.sp-table-icon-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-family:inherit;background:var(--sp-bg, #fff);color:var(--sp-text-secondary, #374151);border:1px solid var(--sp-border, #d1d5db);border-radius:7px;cursor:pointer;white-space:nowrap;transition:background .15s}.sp-table-icon-btn:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-col-picker-wrap{position:relative}.sp-table-col-picker{position:absolute;right:0;top:calc(100% + 6px);background:var(--sp-bg, #fff);border:1px solid var(--sp-border, #d1d5db);border-radius:10px;box-shadow:var(--sp-shadow-lg, 0 10px 15px -3px rgba(0,0,0,.1));padding:8px 4px;min-width:180px;z-index:100}.sp-table-col-picker-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sp-text-muted, #6b7280);padding:4px 12px 8px;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);margin-bottom:4px}.sp-table-col-picker-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:13px;color:var(--sp-text-secondary, #374151);cursor:pointer;border-radius:6px;margin:0 4px;transition:background .1s}.sp-table-col-picker-item:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-col-picker-item input{cursor:pointer;accent-color:var(--sp-primary, #3b82f6)}.sp-table-page-size{display:flex;align-items:center;gap:6px;white-space:nowrap}.sp-table-page-size-label{font-size:12px;color:var(--sp-text-muted, #6b7280)}.sp-table-page-size-select{padding:4px 24px 4px 8px;font-size:12px;font-family:inherit;background:var(--sp-bg, #fff);color:var(--sp-text-secondary, #374151);border:1px solid var(--sp-border, #d1d5db);border-radius:6px;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;transition:border-color .15s}.sp-table-page-size-select:focus{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59,130,246,.2))}.sp-table-wrapper{width:100%;overflow-x:auto;border-radius:10px;border:1px solid var(--sp-border-subtle, #e5e7eb)}:host([bordered]) .sp-table-wrapper{border:1px solid var(--sp-border, #d1d5db)}.sp-table{width:100%;border-collapse:collapse;font-size:14px}.sp-table-th{padding:11px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--sp-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em;background:var(--sp-bg-subtle, #f9fafb);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);white-space:nowrap;position:relative;transition:background .12s}:host([compact]) .sp-table-th{padding:7px 12px}.sp-table-th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sp-table-th--sortable:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-th--sortable:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px}.sp-table-th--reorderable,.sp-table-th--reorderable.sp-table-th--sortable{cursor:grab}.sp-table-th--dragging{opacity:.5}.sp-table-th--dragover{background:var(--sp-primary-bg, #eff6ff)!important;border-left:2px solid var(--sp-primary, #3b82f6)}.sp-table-th--sticky{position:sticky;top:0;z-index:2;background:var(--sp-bg-subtle, #f9fafb)}.sp-table-th-content{display:flex;align-items:center;gap:6px}.sp-table-drag-handle{color:var(--sp-border-strong, #9ca3af);font-size:12px;cursor:grab;line-height:1;flex-shrink:0;letter-spacing:-2px}.sp-table-sort-icon{color:var(--sp-text-placeholder, #9ca3af);font-size:12px;flex-shrink:0}.sp-table-th--sorted .sp-table-sort-icon{color:var(--sp-primary, #3b82f6)}.sp-table-filter-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;background:none;border:none;border-radius:4px;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0;transition:color .12s,background .12s}.sp-table-filter-icon-btn:hover{color:var(--sp-text-secondary, #374151);background:var(--sp-bg-muted, #f3f4f6)}.sp-table-filter-icon-btn--active{color:var(--sp-primary, #3b82f6)}.sp-table-filter-icon-btn--active:hover{background:var(--sp-primary-bg, #eff6ff)}.sp-table-col-filter-pop{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:var(--sp-bg, #fff);border:1px solid var(--sp-border, #d1d5db);border-radius:10px;box-shadow:var(--sp-shadow-lg, 0 10px 15px -3px rgba(0,0,0,.12), 0 4px 6px -2px rgba(0,0,0,.06));padding:10px;z-index:60}.sp-table-col-filter-pop-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sp-text-muted, #6b7280);margin-bottom:8px}.sp-table-col-filter-pop-row{display:flex;align-items:center;gap:6px}.sp-table-col-filter-pop-input{flex:1;padding:6px 10px;font-size:13px;font-family:inherit;background:var(--sp-bg-subtle, #f9fafb);color:var(--sp-text, #111827);border:1px solid var(--sp-border, #d1d5db);border-radius:7px;outline:none;transition:border-color .15s,box-shadow .15s}.sp-table-col-filter-pop-input::placeholder{color:var(--sp-text-muted, #9ca3af)}.sp-table-col-filter-pop-input:focus{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59,130,246,.2));background:var(--sp-bg, #fff)}.sp-table-col-filter-pop-clear{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;background:none;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;cursor:pointer;color:var(--sp-text-muted, #9ca3af);font-size:11px;transition:color .12s,background .12s,border-color .12s}.sp-table-col-filter-pop-clear:hover{color:var(--sp-error, #ef4444);border-color:var(--sp-error, #ef4444);background:var(--sp-error-bg, #fff2f0)}.sp-table-td{padding:12px 16px;color:var(--sp-text-secondary, #374151);border-bottom:1px solid var(--sp-bg-muted, #f3f4f6);vertical-align:middle}:host([compact]) .sp-table-td{padding:8px 12px}:host([bordered]) .sp-table-th,:host([bordered]) .sp-table-td{border:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-table-row--striped{background:var(--sp-bg-subtle, #f9fafb)}:host([hoverable]) .sp-table-row:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-row--selected{background:var(--sp-primary-bg, #eff6ff)!important}:host([hoverable]) .sp-table-row--selected:hover{background:var(--sp-primary-bg-hover, #dbeafe)!important}.sp-table-th--checkbox,.sp-table-td--checkbox{width:40px;padding:12px 8px;text-align:center}.sp-table-th--actions{width:1%;white-space:nowrap}.sp-table-td--actions{white-space:nowrap}.sp-table-actions{display:flex;align-items:center;gap:4px}.sp-table-action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-family:inherit;border-radius:6px;border:none;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s;font-weight:500}.sp-table-action-btn--ghost{background:transparent;color:var(--sp-text-secondary, #374151)}.sp-table-action-btn--ghost:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-table-action-btn--primary{background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary, #3b82f6)}.sp-table-action-btn--primary:hover{background:var(--sp-primary-bg-hover, #dbeafe)}.sp-table-action-btn--secondary{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text-secondary, #374151);border:1px solid var(--sp-border, #d1d5db)}.sp-table-action-btn--secondary:hover{background:var(--sp-bg, #fff)}.sp-table-action-btn--destructive{background:var(--sp-error-bg, #fff2f0);color:var(--sp-error, #ef4444)}.sp-table-action-btn--destructive:hover{background:var(--sp-error-bg-hover, #ffccc7)}.sp-table-empty{text-align:center;padding:40px 20px;color:var(--sp-text-placeholder, #9ca3af);font-size:14px}.sp-table-empty-inner{display:flex;flex-direction:column;align-items:center;gap:10px}.sp-table-empty-inner .sp-table-chip-clear{margin-top:4px}.sp-table-loading{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--sp-text-muted, #6b7280)}.sp-table-caption{caption-side:top;padding:8px 16px;text-align:left;font-size:14px;font-weight:600;color:var(--sp-text-secondary, #374151)}.sp-table-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 2px 2px;flex-wrap:wrap;gap:10px}.sp-table-page-info{font-size:13px;color:var(--sp-text-muted, #6b7280)}.sp-table-page-btns{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sp-table-page-btn{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;font-size:13px;font-family:inherit;background:var(--sp-bg, #fff);color:var(--sp-text-secondary, #374151);border:1px solid var(--sp-border, #d1d5db);border-radius:7px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.sp-table-page-btn:hover:not(:disabled){background:var(--sp-bg-muted, #f3f4f6);border-color:var(--sp-border-strong, #9ca3af)}.sp-table-page-btn:disabled{opacity:.4;cursor:not-allowed}.sp-table-page-btn--active{background:var(--sp-primary, #3b82f6)!important;color:#fff!important;border-color:var(--sp-primary, #3b82f6)!important;font-weight:700}.sp-table-page-ellipsis{padding:0 4px;font-size:13px;color:var(--sp-text-muted, #6b7280)}@keyframes sp-table-spin{to{transform:rotate(360deg)}}.sp-table-spin{animation:sp-table-spin .8s linear infinite;transform-origin:center}@media(prefers-reduced-motion:reduce){.sp-table-spin{animation:none}*{transition:none!important}}@media(max-width:600px){.sp-table-toolbar{gap:6px}.sp-table-search{max-width:100%}.sp-table-toolbar-end{margin-left:0}}`;
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,26 +1,38 @@
1
1
  import { LitElement } from 'lit';
2
- import { SpTableColumn, SpTableSortDirection } from './sp-table.types.js';
2
+ import { SpTableAction, SpTableColumn, SpTableSortDirection } from './sp-table.types.js';
3
3
  /**
4
- * Data table component with column definitions and row data array.
4
+ * Data table component with sorting, filtering, column reordering,
5
+ * column visibility, pagination, and row actions.
5
6
  *
6
7
  * @element sp-table
7
8
  *
8
- * @prop {SpTableColumn[]} columns - Column definitions
9
- * @prop {Record<string, unknown>[]} data - Row data
10
- * @prop {boolean} loading - Shows loading state
11
- * @prop {boolean} bordered - Adds borders to cells
12
- * @prop {boolean} striped - Alternates row background
13
- * @prop {boolean} hoverable - Highlights rows on hover
14
- * @prop {boolean} compact - Reduces cell padding
15
- * @prop {string} emptyText - Text shown when no data
16
- * @prop {string} sortKey - Currently sorted column key
17
- * @prop {SpTableSortDirection} sortDirection - Current sort direction
18
- * @prop {boolean} stickyHeader - Makes the header sticky
19
- * @prop {boolean} selectable - Enables row selection with checkboxes
20
- * @prop {string} caption - Table caption text
9
+ * @prop {SpTableColumn[]} columns - Column definitions
10
+ * @prop {Record<string, unknown>[]} data - Row data
11
+ * @prop {boolean} loading - Shows loading state
12
+ * @prop {boolean} bordered - Adds borders to cells
13
+ * @prop {boolean} striped - Alternates row background
14
+ * @prop {boolean} hoverable - Highlights rows on hover
15
+ * @prop {boolean} compact - Reduces cell padding
16
+ * @prop {string} emptyText - Text shown when no data
17
+ * @prop {string} sortKey - Currently sorted column key
18
+ * @prop {SpTableSortDirection} sortDirection - Current sort direction
19
+ * @prop {boolean} stickyHeader - Makes the header sticky
20
+ * @prop {boolean} selectable - Enables row selection with checkboxes
21
+ * @prop {string} caption - Table caption text
22
+ * @prop {boolean} reorderable - Allows drag-and-drop column reordering
23
+ * @prop {boolean} searchable - Shows a global search toolbar
24
+ * @prop {number} pageSize - Rows per page (0 = no pagination)
25
+ * @prop {number[]} pageSizeOptions - Page size options for the selector
26
+ * @prop {SpTableAction[]} actions - Per-row action buttons
27
+ * @prop {boolean} virtual - Enables virtual scrolling (replaces pagination)
28
+ * @prop {number} rowHeight - Row height in px for virtual scroll calculations
29
+ * @prop {string} maxHeight - Container height for virtual scroll
21
30
  *
22
- * @fires {CustomEvent<{ key: string, direction: SpTableSortDirection }>} sp-sort - Emitted when a sortable column header is clicked
23
- * @fires {CustomEvent<{ indices: number[] }>} sp-selection-change - Emitted when row selection changes
31
+ * @fires {CustomEvent<{ key, direction }>} sp-sort - Sort column clicked
32
+ * @fires {CustomEvent<{ indices }>} sp-selection-change - Row selection changed
33
+ * @fires {CustomEvent<{ order }>} sp-column-reorder - Columns were reordered
34
+ * @fires {CustomEvent<{ row, index }>} sp-row-action - Row action clicked
35
+ * @fires {CustomEvent<{ pageSize }>} sp-page-size-change - Fires when page size selector changes
24
36
  */
25
37
  export declare class SpTableComponent extends LitElement {
26
38
  static styles: import('lit').CSSResult;
@@ -37,10 +49,61 @@ export declare class SpTableComponent extends LitElement {
37
49
  stickyHeader: boolean;
38
50
  selectable: boolean;
39
51
  caption: string;
52
+ reorderable: boolean;
53
+ searchable: boolean;
54
+ pageSize: number;
55
+ pageSizeOptions: number[];
56
+ actions: SpTableAction[];
57
+ virtual: boolean;
58
+ rowHeight: number;
59
+ maxHeight: string;
40
60
  selectedRows: Set<number>;
61
+ _columnOrder: string[];
62
+ _hiddenCols: Set<string>;
63
+ _filters: Record<string, string>;
64
+ _globalSearch: string;
65
+ _page: number;
66
+ _showColPicker: boolean;
67
+ _dragOverIndex: number;
68
+ _dragFromIndex: number;
69
+ _openFilterCol: string | null;
70
+ _scrollTop: number;
71
+ _containerH: number;
72
+ private _resizeObs?;
73
+ firstUpdated(): void;
74
+ updated(changed: Map<string, unknown>): void;
75
+ disconnectedCallback(): void;
76
+ private _setupVirtualScroll;
77
+ get _orderedColumns(): SpTableColumn[];
78
+ get _visibleColumns(): SpTableColumn[];
79
+ get _filteredData(): Record<string, unknown>[];
80
+ get _pagedData(): Record<string, unknown>[];
81
+ get _totalPages(): number;
82
+ get _virtualSlice(): {
83
+ rows: Record<string, unknown>[];
84
+ startIndex: number;
85
+ topPad: number;
86
+ bottomPad: number;
87
+ };
88
+ readonly _onVirtualScroll: (e: Event) => void;
89
+ readonly _handlePageSizeChange: (size: number) => void;
41
90
  readonly _handleRowSelect: (rowIndex: number, checked: boolean) => void;
42
91
  readonly _handleSelectAll: (checked: boolean) => void;
43
92
  readonly _handleSort: (column: SpTableColumn) => void;
93
+ readonly _handleDragStart: (e: DragEvent, index: number) => void;
94
+ readonly _handleDragOver: (e: DragEvent, index: number) => void;
95
+ readonly _handleDragLeave: () => void;
96
+ readonly _handleDrop: (e: DragEvent, toIndex: number) => void;
97
+ readonly _handleDragEnd: () => void;
98
+ readonly _toggleFilterCol: (key: string) => void;
99
+ readonly _handleFilter: (key: string, value: string) => void;
100
+ readonly _handleGlobalSearch: (value: string) => void;
101
+ readonly _clearFilters: () => void;
102
+ get _hasActiveFilters(): boolean;
103
+ readonly _toggleColumn: (key: string) => void;
104
+ readonly _goToPage: (page: number) => void;
105
+ readonly _handleAction: (action: SpTableAction, row: Record<string, unknown>, index: number) => void;
106
+ private _emit;
44
107
  render(): import('lit-html').TemplateResult;
45
108
  }
46
109
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"sp-table.d.ts","sourceRoot":"","sources":["../../../src/components/table/sp-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,OAAO,EAAE,aAAa,EAAE,CAAM;IAG9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;IAGrC,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,SAAS,UAAQ;IAGjB,OAAO,UAAS;IAGhB,SAAS,SAAuB;IAGhC,OAAO,SAAM;IAGb,aAAa,EAAE,oBAAoB,CAAU;IAG7C,YAAY,UAAS;IAGrB,UAAU,UAAS;IAGnB,OAAO,SAAM;IAGb,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEtC,QAAQ,CAAC,gBAAgB,GAAI,UAAU,MAAM,EAAE,SAAS,OAAO,UAe7D;IAEF,QAAQ,CAAC,gBAAgB,GAAI,SAAS,OAAO,UAY3C;IAEF,QAAQ,CAAC,WAAW,GAAI,QAAQ,aAAa,UAiB3C;IAEO,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"sp-table.d.ts","sourceRoot":"","sources":["../../../src/components/table/sp-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAI3C,OAAO,EAAE,aAAa,EAAE,CAAM;IAG9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;IAGrC,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,SAAS,UAAQ;IAGjB,OAAO,UAAS;IAGhB,SAAS,SAAuB;IAGhC,OAAO,SAAM;IAGb,aAAa,EAAE,oBAAoB,CAAU;IAG7C,YAAY,UAAS;IAGrB,UAAU,UAAS;IAGnB,OAAO,SAAM;IAGb,WAAW,UAAS;IAGpB,UAAU,UAAS;IAGnB,QAAQ,SAAK;IAGb,eAAe,EAAE,MAAM,EAAE,CAAqB;IAG9C,OAAO,EAAE,aAAa,EAAE,CAAM;IAG9B,OAAO,UAAS;IAGhB,SAAS,SAAM;IAGf,SAAS,SAAW;IAGX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACtC,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACtC,aAAa,SAAM;IACnB,KAAK,SAAK;IACV,cAAc,UAAS;IACvB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,UAAU,SAAK;IACf,WAAW,SAAO;IAE3B,OAAO,CAAC,UAAU,CAAC,CAAiB;IAG3B,YAAY;IAIZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IA0BrC,oBAAoB;IAK7B,OAAO,CAAC,mBAAmB;IAY3B,IAAI,eAAe,IAAI,aAAa,EAAE,CAIrC;IAED,IAAI,eAAe,IAAI,aAAa,EAAE,CAErC;IAED,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CA+B7C;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAK1C;IAED,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAI,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAc9G;IAGD,QAAQ,CAAC,gBAAgB,GAAI,GAAG,KAAK,UAEnC;IAGF,QAAQ,CAAC,qBAAqB,GAAI,MAAM,MAAM,UAK5C;IAGF,QAAQ,CAAC,gBAAgB,GAAI,UAAU,MAAM,EAAE,SAAS,OAAO,UAK7D;IAEF,QAAQ,CAAC,gBAAgB,GAAI,SAAS,OAAO,UAI3C;IAGF,QAAQ,CAAC,WAAW,GAAI,QAAQ,aAAa,UAY3C;IAGF,QAAQ,CAAC,gBAAgB,GAAI,GAAG,SAAS,EAAE,OAAO,MAAM,UAMtD;IAEF,QAAQ,CAAC,eAAe,GAAI,GAAG,SAAS,EAAE,OAAO,MAAM,UAIrD;IAEF,QAAQ,CAAC,gBAAgB,aAEvB;IAEF,QAAQ,CAAC,WAAW,GAAI,GAAG,SAAS,EAAE,SAAS,MAAM,UAkBnD;IAEF,QAAQ,CAAC,cAAc,aAGrB;IAGF,QAAQ,CAAC,gBAAgB,GAAI,KAAK,MAAM,UAEtC;IAEF,QAAQ,CAAC,aAAa,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,UAIlD;IAEF,QAAQ,CAAC,mBAAmB,GAAI,OAAO,MAAM,UAI3C;IAEF,QAAQ,CAAC,aAAa,aAKpB;IAEF,IAAI,iBAAiB,IAAI,OAAO,CAK/B;IAGD,QAAQ,CAAC,aAAa,GAAI,KAAK,MAAM,UAInC;IAGF,QAAQ,CAAC,SAAS,GAAI,MAAM,MAAM,UAGhC;IAGF,QAAQ,CAAC,aAAa,GAAI,QAAQ,aAAa,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,MAAM,UAG1F;IAGF,OAAO,CAAC,KAAK;IAIJ,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF"}