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.
- package/dist/components/accordion/sp-accordion-item.css.js +1 -1
- package/dist/components/accordion/sp-accordion.css.js +1 -1
- package/dist/components/alert/sp-alert.css.js +1 -1
- package/dist/components/autocomplete/sp-autocomplete.css.js +1 -1
- package/dist/components/autocomplete/sp-autocomplete.template.d.ts.map +1 -1
- package/dist/components/autocomplete/sp-autocomplete.template.js +14 -13
- package/dist/components/avatar/sp-avatar.css.js +1 -1
- package/dist/components/badge/sp-badge.css.js +1 -1
- package/dist/components/badge/sp-badge.d.ts +2 -0
- package/dist/components/badge/sp-badge.d.ts.map +1 -1
- package/dist/components/badge/sp-badge.js +34 -31
- package/dist/components/breadcrumb/sp-breadcrumb-item.css.js +1 -1
- package/dist/components/breadcrumb/sp-breadcrumb.css.js +1 -1
- package/dist/components/button/sp-button.css.js +1 -1
- package/dist/components/calendar/sp-calendar-date-picker.css.js +1 -1
- package/dist/components/calendar/sp-calendar.css.js +1 -1
- package/dist/components/calendar/sp-calendar.d.ts +1 -0
- package/dist/components/calendar/sp-calendar.d.ts.map +1 -1
- package/dist/components/calendar/sp-calendar.js +29 -29
- package/dist/components/card/sp-card.css.js +1 -1
- package/dist/components/card/sp-card.template.d.ts.map +1 -1
- package/dist/components/card/sp-card.template.js +25 -16
- package/dist/components/carousel/sp-carousel-slide.css.js +2 -2
- package/dist/components/carousel/sp-carousel.css.js +1 -1
- package/dist/components/checkbox/sp-checkbox.css.js +1 -1
- package/dist/components/checkbox-group/sp-checkbox-group.css.js +1 -1
- package/dist/components/color-picker/sp-color-picker.css.js +1 -1
- package/dist/components/color-picker/sp-color-picker.template.d.ts.map +1 -1
- package/dist/components/color-picker/sp-color-picker.template.js +15 -14
- package/dist/components/combobox/sp-combobox.css.js +1 -1
- package/dist/components/combobox/sp-combobox.d.ts.map +1 -1
- package/dist/components/combobox/sp-combobox.js +26 -20
- package/dist/components/command-palette/sp-command-palette.css.js +1 -1
- package/dist/components/confirm-dialog/sp-confirm-dialog.css.js +1 -1
- package/dist/components/copy-button/sp-copy-button.css.js +1 -1
- package/dist/components/divider/sp-divider.css.js +1 -1
- package/dist/components/drawer/sp-drawer.css.js +1 -1
- package/dist/components/drawer/sp-drawer.d.ts +4 -0
- package/dist/components/drawer/sp-drawer.d.ts.map +1 -1
- package/dist/components/drawer/sp-drawer.js +78 -69
- package/dist/components/empty-state/sp-empty-state.css.js +1 -1
- package/dist/components/file-upload/sp-file-upload.css.js +1 -1
- package/dist/components/form-field/sp-form-field.css.js +1 -1
- package/dist/components/gallery/sp-gallery.css.js +1 -1
- package/dist/components/icon/sp-icon.css.js +2 -2
- package/dist/components/input/sp-input.css.js +1 -1
- package/dist/components/kbd/sp-kbd.css.js +1 -1
- package/dist/components/menu/sp-menu-item.css.js +1 -1
- package/dist/components/menu/sp-menu.css.js +1 -1
- package/dist/components/menu/sp-menu.d.ts +1 -0
- package/dist/components/menu/sp-menu.d.ts.map +1 -1
- package/dist/components/menu/sp-menu.js +33 -33
- package/dist/components/modal/sp-modal.css.js +1 -1
- package/dist/components/modal/sp-modal.d.ts +2 -0
- package/dist/components/modal/sp-modal.d.ts.map +1 -1
- package/dist/components/modal/sp-modal.js +60 -51
- package/dist/components/navbar/sp-navbar.css.js +2 -2
- package/dist/components/number-input/sp-number-input.css.js +1 -1
- package/dist/components/number-input/sp-number-input.d.ts.map +1 -1
- package/dist/components/number-input/sp-number-input.js +55 -52
- package/dist/components/otp-input/sp-otp-input.css.js +1 -1
- package/dist/components/pagination/sp-pagination.css.js +1 -1
- package/dist/components/popover/sp-popover.css.js +1 -1
- package/dist/components/progress-bar/sp-progress-bar.css.js +1 -1
- package/dist/components/radio/sp-radio-group.css.js +1 -1
- package/dist/components/radio/sp-radio.css.js +1 -1
- package/dist/components/radio/sp-radio.d.ts +1 -0
- package/dist/components/radio/sp-radio.d.ts.map +1 -1
- package/dist/components/radio/sp-radio.js +19 -16
- package/dist/components/rating/sp-rating.css.js +2 -2
- package/dist/components/scroll-area/sp-scroll-area.css.js +1 -1
- package/dist/components/scroll-area/sp-scroll-area.d.ts +1 -0
- package/dist/components/scroll-area/sp-scroll-area.d.ts.map +1 -1
- package/dist/components/scroll-area/sp-scroll-area.js +43 -44
- package/dist/components/select/sp-select.css.js +1 -1
- package/dist/components/sidebar/sp-sidebar.css.js +1 -1
- package/dist/components/skeleton/sp-skeleton.css.js +1 -1
- package/dist/components/slider/sp-slider.css.js +1 -1
- package/dist/components/spinner/sp-spinner.css.js +1 -1
- package/dist/components/split-panel/sp-split-panel.css.js +1 -1
- package/dist/components/stat/sp-stat.css.js +1 -1
- package/dist/components/stepper/sp-stepper.css.js +1 -1
- package/dist/components/switch/sp-switch.css.js +1 -1
- package/dist/components/table/sp-table.css.js +1 -1
- package/dist/components/table/sp-table.d.ts +80 -17
- package/dist/components/table/sp-table.d.ts.map +1 -1
- package/dist/components/table/sp-table.js +237 -82
- package/dist/components/table/sp-table.template.d.ts.map +1 -1
- package/dist/components/table/sp-table.template.js +337 -67
- package/dist/components/table/sp-table.types.d.ts +22 -0
- package/dist/components/table/sp-table.types.d.ts.map +1 -1
- package/dist/components/tabs/sp-tab.css.js +2 -2
- package/dist/components/tabs/sp-tabs.css.js +1 -1
- package/dist/components/tag/sp-tag.css.js +1 -1
- package/dist/components/tag-input/sp-tag-input.css.js +2 -2
- package/dist/components/textarea/sp-textarea.css.js +1 -1
- package/dist/components/time-picker/sp-time-picker.css.js +1 -1
- package/dist/components/timeline/sp-timeline.css.js +1 -1
- package/dist/components/toast/sp-toast.css.js +1 -1
- package/dist/components/toast/sp-toast.d.ts +1 -0
- package/dist/components/toast/sp-toast.d.ts.map +1 -1
- package/dist/components/toast/sp-toast.js +32 -33
- package/dist/components/toast-stack/sp-toast-stack.css.js +1 -1
- package/dist/components/tooltip/sp-tooltip.css.js +2 -2
- package/dist/components/tree/sp-tree-item.css.js +1 -1
- package/dist/components/tree/sp-tree.css.js +2 -2
- package/dist/components/visually-hidden/sp-visually-hidden.css.js +2 -2
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +44 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/package.json +13 -9
|
@@ -1,103 +1,373 @@
|
|
|
1
1
|
import { nothing as s, html as e } from "lit";
|
|
2
|
-
import { classMap as
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { classMap as g } from "lit/directives/class-map.js";
|
|
3
|
+
import { SpConfig as h } from "../../config.js";
|
|
4
|
+
function m() {
|
|
5
|
+
const c = this._visibleColumns, o = this._pagedData, $ = o.length > 0 && this.selectedRows.size === o.length, u = this.selectedRows.size > 0 && this.selectedRows.size < o.length, p = c.length + (this.selectable ? 1 : 0) + (this.actions.length ? 1 : 0), b = this._filteredData, d = this._hasActiveFilters, n = this.virtual ? this._virtualSlice : null;
|
|
5
6
|
return e`
|
|
6
|
-
|
|
7
|
+
<!-- ── Toolbar ── -->
|
|
8
|
+
${this.searchable || this.columns.length > 0 ? e`
|
|
9
|
+
<div class="sp-table-toolbar">
|
|
10
|
+
${this.searchable ? e`
|
|
11
|
+
<div class="sp-table-search">
|
|
12
|
+
<span class="sp-table-search-icon">
|
|
13
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
14
|
+
<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/>
|
|
15
|
+
</svg>
|
|
16
|
+
</span>
|
|
17
|
+
<input
|
|
18
|
+
class="sp-table-search-input"
|
|
19
|
+
type="search"
|
|
20
|
+
placeholder=${h.locale.table.searchPlaceholder}
|
|
21
|
+
.value=${this._globalSearch}
|
|
22
|
+
@input=${(t) => this._handleGlobalSearch(t.target.value)}
|
|
23
|
+
/>
|
|
24
|
+
${this._globalSearch ? e`<button class="sp-table-search-clear" @click=${this._clearFilters} title="Clear search">✕</button>` : s}
|
|
25
|
+
</div>
|
|
26
|
+
` : s}
|
|
27
|
+
|
|
28
|
+
<div class="sp-table-toolbar-end">
|
|
29
|
+
${d ? e`
|
|
30
|
+
<button class="sp-table-chip-clear" @click=${this._clearFilters}>
|
|
31
|
+
${h.locale.table.clearFilters}
|
|
32
|
+
</button>
|
|
33
|
+
` : s}
|
|
34
|
+
|
|
35
|
+
<!-- Column visibility picker -->
|
|
36
|
+
<div class="sp-table-col-picker-wrap">
|
|
37
|
+
<button
|
|
38
|
+
class="sp-table-icon-btn"
|
|
39
|
+
title="Show/hide columns"
|
|
40
|
+
@click=${() => {
|
|
41
|
+
this._showColPicker = !this._showColPicker;
|
|
42
|
+
}}
|
|
43
|
+
aria-expanded=${this._showColPicker}
|
|
44
|
+
>
|
|
45
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
46
|
+
<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/>
|
|
47
|
+
<rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/>
|
|
48
|
+
</svg>
|
|
49
|
+
${h.locale.table.columnsLabel}
|
|
50
|
+
</button>
|
|
51
|
+
${this._showColPicker ? e`
|
|
52
|
+
<div class="sp-table-col-picker" @click=${(t) => t.stopPropagation()}>
|
|
53
|
+
<div class="sp-table-col-picker-title">Toggle columns</div>
|
|
54
|
+
${this._orderedColumns.map((t) => e`
|
|
55
|
+
<label class="sp-table-col-picker-item">
|
|
56
|
+
<input
|
|
57
|
+
type="checkbox"
|
|
58
|
+
.checked=${!this._hiddenCols.has(t.key)}
|
|
59
|
+
@change=${() => this._toggleColumn(t.key)}
|
|
60
|
+
/>
|
|
61
|
+
${t.label}
|
|
62
|
+
</label>
|
|
63
|
+
`)}
|
|
64
|
+
</div>
|
|
65
|
+
` : s}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
${b.length !== this.data.length ? e`<span class="sp-table-count">${b.length} / ${this.data.length} rows</span>` : e`<span class="sp-table-count">${this.data.length} rows</span>`}
|
|
69
|
+
|
|
70
|
+
${this.pageSize && this.pageSizeOptions.length > 1 ? e`
|
|
71
|
+
<div class="sp-table-page-size">
|
|
72
|
+
<label class="sp-table-page-size-label">${h.locale.table.rowsLabel}</label>
|
|
73
|
+
<select
|
|
74
|
+
class="sp-table-page-size-select"
|
|
75
|
+
.value=${String(this.pageSize)}
|
|
76
|
+
@change=${(t) => this._handlePageSizeChange(Number(t.target.value))}
|
|
77
|
+
aria-label="Rows per page"
|
|
78
|
+
>
|
|
79
|
+
${this.pageSizeOptions.map((t) => e`
|
|
80
|
+
<option value=${t} ?selected=${this.pageSize === t}>${t}</option>
|
|
81
|
+
`)}
|
|
82
|
+
</select>
|
|
83
|
+
</div>
|
|
84
|
+
` : s}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
` : s}
|
|
88
|
+
|
|
89
|
+
<!-- ── Table ── -->
|
|
90
|
+
<div
|
|
91
|
+
class="sp-table-wrapper"
|
|
92
|
+
style=${this.virtual ? `max-height: ${this.maxHeight}; overflow-y: auto;` : s}
|
|
93
|
+
@scroll=${this.virtual ? this._onVirtualScroll : s}
|
|
94
|
+
@click=${() => {
|
|
95
|
+
this._showColPicker = !1, this._openFilterCol = null;
|
|
96
|
+
}}
|
|
97
|
+
>
|
|
7
98
|
<table class="sp-table">
|
|
8
99
|
${this.caption ? e`<caption class="sp-table-caption">${this.caption}</caption>` : s}
|
|
100
|
+
|
|
9
101
|
<thead>
|
|
102
|
+
<!-- Column header row -->
|
|
10
103
|
<tr>
|
|
11
|
-
${this.selectable ? e
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
104
|
+
${this.selectable ? e`<th class="sp-table-th sp-table-th--checkbox" scope="col">
|
|
105
|
+
<input
|
|
106
|
+
type="checkbox"
|
|
107
|
+
.checked=${$}
|
|
108
|
+
.indeterminate=${u}
|
|
109
|
+
@change=${(t) => this._handleSelectAll(t.target.checked)}
|
|
110
|
+
aria-label="Select all rows"
|
|
111
|
+
/>
|
|
112
|
+
</th>` : s}
|
|
113
|
+
|
|
114
|
+
${c.map((t, l) => e`
|
|
115
|
+
<th
|
|
116
|
+
class=${g({
|
|
117
|
+
"sp-table-th": !0,
|
|
118
|
+
"sp-table-th--sortable": !!t.sortable,
|
|
119
|
+
"sp-table-th--sorted": this.sortKey === t.key,
|
|
120
|
+
"sp-table-th--sticky": this.stickyHeader,
|
|
121
|
+
"sp-table-th--dragging": this._dragFromIndex === l,
|
|
122
|
+
"sp-table-th--dragover": this._dragOverIndex === l,
|
|
123
|
+
"sp-table-th--reorderable": this.reorderable
|
|
124
|
+
})}
|
|
125
|
+
scope="col"
|
|
126
|
+
style=${t.width ? `width: ${t.width}` : s}
|
|
127
|
+
draggable=${this.reorderable ? "true" : "false"}
|
|
128
|
+
aria-sort=${t.sortable ? this.sortKey === t.key ? this.sortDirection === "asc" ? "ascending" : this.sortDirection === "desc" ? "descending" : "none" : "none" : s}
|
|
129
|
+
@click=${() => this._handleSort(t)}
|
|
130
|
+
@dragstart=${(a) => this._handleDragStart(a, l)}
|
|
131
|
+
@dragover=${(a) => this._handleDragOver(a, l)}
|
|
132
|
+
@dragleave=${this._handleDragLeave}
|
|
133
|
+
@drop=${(a) => this._handleDrop(a, l)}
|
|
134
|
+
@dragend=${this._handleDragEnd}
|
|
135
|
+
>
|
|
136
|
+
<span
|
|
137
|
+
class="sp-table-th-content"
|
|
138
|
+
style=${t.align ? `justify-content: ${t.align === "right" ? "flex-end" : t.align === "center" ? "center" : "flex-start"}` : s}
|
|
37
139
|
>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
140
|
+
${this.reorderable ? e`<span class="sp-table-drag-handle" title="Drag to reorder">⋮⋮</span>` : s}
|
|
141
|
+
${t.label}
|
|
142
|
+
${t.sortable ? e`<span class="sp-table-sort-icon">
|
|
143
|
+
${this.sortKey === t.key ? this.sortDirection === "asc" ? "↑" : this.sortDirection === "desc" ? "↓" : "↕" : "↕"}
|
|
144
|
+
</span>` : s}
|
|
145
|
+
${t.filterable ? e`
|
|
146
|
+
<button
|
|
147
|
+
class="sp-table-filter-icon-btn ${this._filters[t.key] ? "sp-table-filter-icon-btn--active" : ""}"
|
|
148
|
+
title="Filter by ${t.label}"
|
|
149
|
+
aria-label="Filter by ${t.label}"
|
|
150
|
+
@click=${(a) => {
|
|
151
|
+
a.stopPropagation(), this._toggleFilterCol(t.key);
|
|
152
|
+
}}
|
|
153
|
+
>
|
|
154
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none">
|
|
155
|
+
<path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>
|
|
156
|
+
</svg>
|
|
157
|
+
</button>
|
|
158
|
+
` : s}
|
|
159
|
+
</span>
|
|
160
|
+
|
|
161
|
+
${t.filterable && this._openFilterCol === t.key ? e`
|
|
162
|
+
<div class="sp-table-col-filter-pop" @click=${(a) => a.stopPropagation()}>
|
|
163
|
+
<div class="sp-table-col-filter-pop-label">${h.locale.table.filterLabel.replace("{col}", t.label)}</div>
|
|
164
|
+
<div class="sp-table-col-filter-pop-row">
|
|
165
|
+
<input
|
|
166
|
+
class="sp-table-col-filter-pop-input"
|
|
167
|
+
type="search"
|
|
168
|
+
placeholder="Type to filter…"
|
|
169
|
+
.value=${this._filters[t.key] ?? ""}
|
|
170
|
+
@input=${(a) => this._handleFilter(t.key, a.target.value)}
|
|
171
|
+
aria-label="Filter by ${t.label}"
|
|
172
|
+
/>
|
|
173
|
+
${this._filters[t.key] ? e`
|
|
174
|
+
<button
|
|
175
|
+
class="sp-table-col-filter-pop-clear"
|
|
176
|
+
title="Clear filter"
|
|
177
|
+
@click=${() => {
|
|
178
|
+
this._handleFilter(t.key, ""), this._openFilterCol = null;
|
|
179
|
+
}}
|
|
180
|
+
>✕</button>
|
|
181
|
+
` : s}
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
` : s}
|
|
185
|
+
</th>
|
|
186
|
+
`)}
|
|
187
|
+
|
|
188
|
+
${this.actions.length ? e`<th class="sp-table-th sp-table-th--actions" scope="col">${h.locale.table.actionsLabel}</th>` : s}
|
|
48
189
|
</tr>
|
|
49
190
|
</thead>
|
|
191
|
+
|
|
50
192
|
<tbody>
|
|
51
193
|
${this.loading ? e`
|
|
194
|
+
<tr>
|
|
195
|
+
<td colspan=${p} class="sp-table-empty">
|
|
196
|
+
<div class="sp-table-loading">
|
|
197
|
+
<svg class="sp-table-spin" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
198
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56"/>
|
|
199
|
+
</svg>
|
|
200
|
+
${h.locale.table.loading}
|
|
201
|
+
</div>
|
|
202
|
+
</td>
|
|
203
|
+
</tr>
|
|
204
|
+
` : o.length === 0 ? e`
|
|
52
205
|
<tr>
|
|
53
|
-
<td colspan=${
|
|
54
|
-
<div class="sp-table-
|
|
206
|
+
<td colspan=${p} class="sp-table-empty">
|
|
207
|
+
<div class="sp-table-empty-inner">
|
|
208
|
+
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" style="color:var(--sp-border-strong,#9ca3af)">
|
|
209
|
+
<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/>
|
|
210
|
+
</svg>
|
|
211
|
+
<span>${d ? "No results match the current filters." : this.emptyText}</span>
|
|
212
|
+
${d ? e`<button class="sp-table-chip-clear" @click=${this._clearFilters}>${h.locale.table.clearFilters}</button>` : s}
|
|
213
|
+
</div>
|
|
55
214
|
</td>
|
|
56
215
|
</tr>
|
|
57
|
-
` : this.
|
|
58
|
-
<tr>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<tr
|
|
64
|
-
class=${h({
|
|
216
|
+
` : this.virtual && n ? e`
|
|
217
|
+
<tr style="height: ${n.topPad}px; border: none;"><td colspan="${p}" style="padding:0;border:0;"></td></tr>
|
|
218
|
+
${n.rows.map((t, l) => {
|
|
219
|
+
const a = n.startIndex + l, i = a;
|
|
220
|
+
return e`
|
|
221
|
+
<tr class=${g({
|
|
65
222
|
"sp-table-row": !0,
|
|
66
223
|
"sp-table-row--striped": this.striped && a % 2 === 1,
|
|
67
224
|
"sp-table-row--selected": this.selectedRows.has(a)
|
|
68
|
-
})}
|
|
69
|
-
|
|
70
|
-
${this.selectable ? e`
|
|
225
|
+
})}>
|
|
226
|
+
${this.selectable ? e`
|
|
71
227
|
<td class="sp-table-td sp-table-td--checkbox">
|
|
72
228
|
<input
|
|
73
229
|
type="checkbox"
|
|
74
230
|
.checked=${this.selectedRows.has(a)}
|
|
75
|
-
@change=${(
|
|
76
|
-
a,
|
|
77
|
-
l.target.checked
|
|
78
|
-
)}
|
|
231
|
+
@change=${(r) => this._handleRowSelect(a, r.target.checked)}
|
|
79
232
|
aria-label="Select row ${a + 1}"
|
|
80
233
|
/>
|
|
81
234
|
</td>
|
|
82
235
|
` : s}
|
|
83
|
-
|
|
84
|
-
|
|
236
|
+
|
|
237
|
+
${c.map((r) => e`
|
|
85
238
|
<td
|
|
86
239
|
class="sp-table-td"
|
|
87
|
-
style=${
|
|
240
|
+
style=${r.align ? `text-align: ${r.align}` : s}
|
|
88
241
|
>
|
|
89
|
-
${t[
|
|
242
|
+
${r.render ? e`${r.render(t[r.key], t)}` : t[r.key] ?? ""}
|
|
90
243
|
</td>
|
|
91
|
-
`
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
244
|
+
`)}
|
|
245
|
+
|
|
246
|
+
${this.actions.length ? e`
|
|
247
|
+
<td class="sp-table-td sp-table-td--actions">
|
|
248
|
+
<div class="sp-table-actions">
|
|
249
|
+
${this.actions.map((r) => e`
|
|
250
|
+
<button
|
|
251
|
+
class="sp-table-action-btn sp-table-action-btn--${r.variant ?? "ghost"}"
|
|
252
|
+
title=${r.label}
|
|
253
|
+
@click=${(v) => {
|
|
254
|
+
v.stopPropagation(), this._handleAction(r, t, i);
|
|
255
|
+
}}
|
|
256
|
+
>
|
|
257
|
+
${r.icon ? e`<span>${r.icon}</span>` : s}
|
|
258
|
+
${r.label}
|
|
259
|
+
</button>
|
|
260
|
+
`)}
|
|
261
|
+
</div>
|
|
262
|
+
</td>
|
|
263
|
+
` : s}
|
|
264
|
+
</tr>
|
|
265
|
+
`;
|
|
266
|
+
})}
|
|
267
|
+
<tr style="height: ${n.bottomPad}px; border: none;"><td colspan="${p}" style="padding:0;border:0;"></td></tr>
|
|
268
|
+
` : o.map((t, l) => {
|
|
269
|
+
const a = this.pageSize ? (this._page - 1) * this.pageSize + l : l;
|
|
270
|
+
return e`
|
|
271
|
+
<tr class=${g({
|
|
272
|
+
"sp-table-row": !0,
|
|
273
|
+
"sp-table-row--striped": this.striped && l % 2 === 1,
|
|
274
|
+
"sp-table-row--selected": this.selectedRows.has(l)
|
|
275
|
+
})}>
|
|
276
|
+
${this.selectable ? e`
|
|
277
|
+
<td class="sp-table-td sp-table-td--checkbox">
|
|
278
|
+
<input
|
|
279
|
+
type="checkbox"
|
|
280
|
+
.checked=${this.selectedRows.has(l)}
|
|
281
|
+
@change=${(i) => this._handleRowSelect(l, i.target.checked)}
|
|
282
|
+
aria-label="Select row ${l + 1}"
|
|
283
|
+
/>
|
|
284
|
+
</td>
|
|
285
|
+
` : s}
|
|
286
|
+
|
|
287
|
+
${c.map((i) => e`
|
|
288
|
+
<td
|
|
289
|
+
class="sp-table-td"
|
|
290
|
+
style=${i.align ? `text-align: ${i.align}` : s}
|
|
291
|
+
>
|
|
292
|
+
${i.render ? e`${i.render(t[i.key], t)}` : t[i.key] ?? ""}
|
|
293
|
+
</td>
|
|
294
|
+
`)}
|
|
295
|
+
|
|
296
|
+
${this.actions.length ? e`
|
|
297
|
+
<td class="sp-table-td sp-table-td--actions">
|
|
298
|
+
<div class="sp-table-actions">
|
|
299
|
+
${this.actions.map((i) => e`
|
|
300
|
+
<button
|
|
301
|
+
class="sp-table-action-btn sp-table-action-btn--${i.variant ?? "ghost"}"
|
|
302
|
+
title=${i.label}
|
|
303
|
+
@click=${(r) => {
|
|
304
|
+
r.stopPropagation(), this._handleAction(i, t, a);
|
|
305
|
+
}}
|
|
306
|
+
>
|
|
307
|
+
${i.icon ? e`<span>${i.icon}</span>` : s}
|
|
308
|
+
${i.label}
|
|
309
|
+
</button>
|
|
310
|
+
`)}
|
|
311
|
+
</div>
|
|
312
|
+
</td>
|
|
313
|
+
` : s}
|
|
314
|
+
</tr>
|
|
315
|
+
`;
|
|
316
|
+
})}
|
|
96
317
|
</tbody>
|
|
97
318
|
</table>
|
|
98
319
|
</div>
|
|
320
|
+
|
|
321
|
+
<!-- ── Pagination footer ── -->
|
|
322
|
+
${this.pageSize && this._totalPages > 1 && !this.virtual ? e`
|
|
323
|
+
<div class="sp-table-pagination">
|
|
324
|
+
<span class="sp-table-page-info">
|
|
325
|
+
${(this._page - 1) * this.pageSize + 1}–${Math.min(this._page * this.pageSize, b.length)}
|
|
326
|
+
${h.locale.table.ofTotal.replace("{total}", String(b.length))}
|
|
327
|
+
</span>
|
|
328
|
+
<div class="sp-table-page-btns">
|
|
329
|
+
<button
|
|
330
|
+
class="sp-table-page-btn"
|
|
331
|
+
?disabled=${this._page === 1}
|
|
332
|
+
@click=${() => this._goToPage(1)}
|
|
333
|
+
title="First page"
|
|
334
|
+
>«</button>
|
|
335
|
+
<button
|
|
336
|
+
class="sp-table-page-btn"
|
|
337
|
+
?disabled=${this._page === 1}
|
|
338
|
+
@click=${() => this._goToPage(this._page - 1)}
|
|
339
|
+
title="Previous page"
|
|
340
|
+
>‹</button>
|
|
341
|
+
|
|
342
|
+
${Array.from({ length: this._totalPages }, (t, l) => l + 1).filter((t) => Math.abs(t - this._page) <= 2 || t === 1 || t === this._totalPages).reduce(
|
|
343
|
+
(t, l, a, i) => (a > 0 && l - i[a - 1] > 1 && t.push("..."), t.push(l), t),
|
|
344
|
+
[]
|
|
345
|
+
).map(
|
|
346
|
+
(t) => t === "..." ? e`<span class="sp-table-page-ellipsis">…</span>` : e`
|
|
347
|
+
<button
|
|
348
|
+
class="sp-table-page-btn ${t === this._page ? "sp-table-page-btn--active" : ""}"
|
|
349
|
+
@click=${() => this._goToPage(t)}
|
|
350
|
+
>${t}</button>
|
|
351
|
+
`
|
|
352
|
+
)}
|
|
353
|
+
|
|
354
|
+
<button
|
|
355
|
+
class="sp-table-page-btn"
|
|
356
|
+
?disabled=${this._page === this._totalPages}
|
|
357
|
+
@click=${() => this._goToPage(this._page + 1)}
|
|
358
|
+
title="Next page"
|
|
359
|
+
>›</button>
|
|
360
|
+
<button
|
|
361
|
+
class="sp-table-page-btn"
|
|
362
|
+
?disabled=${this._page === this._totalPages}
|
|
363
|
+
@click=${() => this._goToPage(this._totalPages)}
|
|
364
|
+
title="Last page"
|
|
365
|
+
>»</button>
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
` : s}
|
|
99
369
|
`;
|
|
100
370
|
}
|
|
101
371
|
export {
|
|
102
|
-
|
|
372
|
+
m as tableTemplate
|
|
103
373
|
};
|
|
@@ -3,8 +3,19 @@ export interface SpTableColumn {
|
|
|
3
3
|
key: string;
|
|
4
4
|
label: string;
|
|
5
5
|
sortable?: boolean;
|
|
6
|
+
filterable?: boolean;
|
|
7
|
+
hidden?: boolean;
|
|
6
8
|
width?: string;
|
|
7
9
|
align?: "left" | "center" | "right";
|
|
10
|
+
/** Custom cell renderer — receives the cell value and full row */
|
|
11
|
+
render?: (value: unknown, row: Record<string, unknown>) => string;
|
|
12
|
+
}
|
|
13
|
+
export interface SpTableAction {
|
|
14
|
+
label: string;
|
|
15
|
+
icon?: string;
|
|
16
|
+
variant?: "primary" | "secondary" | "ghost" | "destructive";
|
|
17
|
+
/** Called with the row data and row index */
|
|
18
|
+
onClick: (row: Record<string, unknown>, index: number) => void;
|
|
8
19
|
}
|
|
9
20
|
export interface SpTableProps {
|
|
10
21
|
columns: SpTableColumn[];
|
|
@@ -20,5 +31,16 @@ export interface SpTableProps {
|
|
|
20
31
|
stickyHeader: boolean;
|
|
21
32
|
selectable: boolean;
|
|
22
33
|
caption: string;
|
|
34
|
+
reorderable: boolean;
|
|
35
|
+
searchable: boolean;
|
|
36
|
+
pageSize: number;
|
|
37
|
+
pageSizeOptions: number[];
|
|
38
|
+
actions: SpTableAction[];
|
|
39
|
+
/** Enables virtual scrolling (replaces pagination) */
|
|
40
|
+
virtual: boolean;
|
|
41
|
+
/** Row height in px for virtual scroll calculations */
|
|
42
|
+
rowHeight: number;
|
|
43
|
+
/** Container height for virtual scroll */
|
|
44
|
+
maxHeight: string;
|
|
23
45
|
}
|
|
24
46
|
//# sourceMappingURL=sp-table.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sp-table.types.d.ts","sourceRoot":"","sources":["../../../src/components/table/sp-table.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sp-table.types.d.ts","sourceRoot":"","sources":["../../../src/components/table/sp-table.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,kEAAkE;IAClE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CACnE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;IAC5D,6CAA6C;IAC7C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e = "*,*:before,*:after{box-sizing:border-box}:host{display:inline-block}.sp-tab-button{background:none;border:none;cursor:pointer;padding:10px 16px;font-size:14px;font-weight:500;color:var(--sp-text-muted, #6b7280);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;font-family:inherit}.sp-tab-button:hover:not(:disabled){color:var(--sp-text-secondary, #374151)}.sp-tab-button--active{color:var(--sp-primary, #3b82f6);border-bottom-color:var(--sp-primary, #3b82f6)}.sp-tab-button:disabled{opacity:.5;cursor:not-allowed}:host([active]) .sp-tab-button{color:var(--sp-primary, #3b82f6);border-bottom-color:var(--sp-primary, #3b82f6)}.sp-tab-button:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px;border-radius:4px}.sp-tab-icon{display:inline-flex;align-items:center;margin-right:6px;font-size:16px;line-height:1}.sp-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;font-size:11px;font-weight:600;border-radius:9px;background:var(--sp-border-subtle, #e5e7eb);color:var(--sp-text-secondary, #374151);line-height:1}.sp-tab-button--active .sp-tab-badge{background:var(--sp-primary-bg-hover, #dbeafe);color:var(--sp-primary-active, #1d4ed8)}.sp-tab-close{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;border-radius:3px;font-size:14px;line-height:1;color:var(--sp-text-placeholder, #9ca3af);cursor:pointer}.sp-tab-close:hover{background:var(--sp-border-subtle, #e5e7eb);color:var(--sp-text-secondary, #374151)}@media(prefers-reduced-motion:reduce){.sp-tab-button{transition:none}}";
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
e as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = ':host{display:block}.sp-tabs-nav-wrapper{position:relative;display:flex;align-items:center}.sp-tabs-nav{display:flex;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}.sp-tabs-nav::-webkit-scrollbar{display:none}.sp-tabs-scroll-btn{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:20px;color:var(--sp-text-muted, #6b7280);padding:0 4px;line-height:1;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);height:100%;display:flex;align-items:center}.sp-tabs-scroll-btn:hover{color:var(--sp-text-secondary, #374151);background:var(--sp-bg-muted, #f3f4f6)}.sp-tabs-scroll-btn:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px}.sp-tabs-content{padding:16px 0}:host([placement="left"]) .sp-tabs,:host([placement="right"]) .sp-tabs{display:flex;gap:0}:host([placement="left"]) .sp-tabs-nav-wrapper{flex-direction:column;border-right:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="left"]) .sp-tabs-nav{flex-direction:column;border-bottom:none;padding-right:0}:host([placement="right"]) .sp-tabs-nav-wrapper{flex-direction:column;border-left:1px solid var(--sp-border-subtle, #e5e7eb);order:1}:host([placement="right"]) .sp-tabs-nav{flex-direction:column;border-bottom:none}:host([placement="left"]) .sp-tabs-content,:host([placement="right"]) .sp-tabs-content{flex:1;padding:0 16px}:host([placement="bottom"]) .sp-tabs{display:flex;flex-direction:column-reverse}:host([placement="bottom"]) .sp-tabs-nav{border-bottom:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="bottom"]) .sp-tabs-scroll-btn{border-bottom:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="left"]) sp-tab .sp-tab-button,:host([placement="right"]) sp-tab .sp-tab-button{border-bottom:none;border-right:2px solid transparent}';
|
|
1
|
+
const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-tabs-nav-wrapper{position:relative;display:flex;align-items:center}.sp-tabs-nav{display:flex;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}.sp-tabs-nav::-webkit-scrollbar{display:none}.sp-tabs-scroll-btn{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:20px;color:var(--sp-text-muted, #6b7280);padding:0 4px;line-height:1;border-bottom:1px solid var(--sp-border-subtle, #e5e7eb);height:100%;display:flex;align-items:center}.sp-tabs-scroll-btn:hover{color:var(--sp-text-secondary, #374151);background:var(--sp-bg-muted, #f3f4f6)}.sp-tabs-scroll-btn:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px}.sp-tabs-content{padding:16px 0}:host([placement="left"]) .sp-tabs,:host([placement="right"]) .sp-tabs{display:flex;gap:0}:host([placement="left"]) .sp-tabs-nav-wrapper{flex-direction:column;border-right:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="left"]) .sp-tabs-nav{flex-direction:column;border-bottom:none;padding-right:0}:host([placement="right"]) .sp-tabs-nav-wrapper{flex-direction:column;border-left:1px solid var(--sp-border-subtle, #e5e7eb);order:1}:host([placement="right"]) .sp-tabs-nav{flex-direction:column;border-bottom:none}:host([placement="left"]) .sp-tabs-content,:host([placement="right"]) .sp-tabs-content{flex:1;padding:0 16px}:host([placement="bottom"]) .sp-tabs{display:flex;flex-direction:column-reverse}:host([placement="bottom"]) .sp-tabs-nav{border-bottom:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="bottom"]) .sp-tabs-scroll-btn{border-bottom:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb)}:host([placement="left"]) sp-tab .sp-tab-button,:host([placement="right"]) sp-tab .sp-tab-button{border-bottom:none;border-right:2px solid transparent}';
|
|
2
2
|
export {
|
|
3
3
|
e as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = ':host{display:inline-flex}:host([disabled]){opacity:.5;pointer-events:none}.sp-tag{display:inline-flex;align-items:center;gap:4px;border-radius:4px;font-weight:500;white-space:nowrap}:host([size="sm"]) .sp-tag{padding:1px 6px;font-size:11px}:host([size="md"]) .sp-tag{padding:2px 8px;font-size:12px}:host([size="lg"]) .sp-tag{padding:4px 12px;font-size:14px}:host([variant="primary"]) .sp-tag{background:var(--sp-primary-bg-hover, #dbeafe);color:var(--sp-primary-active, #1d4ed8)}:host([variant="secondary"]) .sp-tag{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text-secondary, #374151)}:host([variant="success"]) .sp-tag{background:#dcfce7;color:#15803d}:host([variant="warning"]) .sp-tag{background:#fef9c3;color:#a16207}:host([variant="danger"]) .sp-tag{background:#fee2e2;color:#b91c1c}:host([variant="neutral"]) .sp-tag{background:var(--sp-border-subtle, #e5e7eb);color:#4b5563}.sp-tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;opacity:.7;color:inherit;line-height:1}.sp-tag-remove:hover{opacity:1}.sp-tag-remove: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 e = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-flex}:host([disabled]){opacity:.5;pointer-events:none}.sp-tag{display:inline-flex;align-items:center;gap:4px;border-radius:4px;font-weight:500;white-space:nowrap}:host([size="sm"]) .sp-tag{padding:1px 6px;font-size:11px}:host([size="md"]) .sp-tag{padding:2px 8px;font-size:12px}:host([size="lg"]) .sp-tag{padding:4px 12px;font-size:14px}:host([variant="primary"]) .sp-tag{background:var(--sp-primary-bg-hover, #dbeafe);color:var(--sp-primary-active, #1d4ed8)}:host([variant="secondary"]) .sp-tag{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text-secondary, #374151)}:host([variant="success"]) .sp-tag{background:#dcfce7;color:#15803d}:host([variant="warning"]) .sp-tag{background:#fef9c3;color:#a16207}:host([variant="danger"]) .sp-tag{background:#fee2e2;color:#b91c1c}:host([variant="neutral"]) .sp-tag{background:var(--sp-border-subtle, #e5e7eb);color:#4b5563}.sp-tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;opacity:.7;color:inherit;line-height:1}.sp-tag-remove:hover{opacity:1}.sp-tag-remove: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
|
e as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const i = "*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-tag-input{display:flex;flex-direction:column;gap:4px;font-family:inherit}.sp-tag-input-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-tag-input-field{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, #ffffff);cursor:text;transition:border-color .2s,box-shadow .2s;min-height:40px;box-sizing:border-box}.sp-tag-input--focused .sp-tag-input-field,.sp-tag-input-field:focus-within{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59, 130, 246, .15));outline:none}.sp-tag-input--error .sp-tag-input-field{border-color:var(--sp-error, #FF4D4F);box-shadow:0 0 0 3px var(--sp-error-focus, rgba(255, 77, 79, .15))}.sp-tag-input--disabled .sp-tag-input-field{background:var(--sp-bg-subtle, #f9fafb);cursor:not-allowed;opacity:.6}.sp-tag-input--sm .sp-tag-input-field{padding:4px 8px;min-height:32px;font-size:12px}.sp-tag-input--md .sp-tag-input-field{padding:6px 10px;min-height:40px;font-size:14px}.sp-tag-input--lg .sp-tag-input-field{padding:8px 12px;min-height:48px;font-size:16px}.sp-tag-input-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--sp-primary-bg, #eff6ff);border:1px solid var(--sp-primary-bg-hover, #bfdbfe);border-radius:999px;font-size:13px;color:var(--sp-primary-active, #1d4ed8);animation:sp-chip-enter .15s ease;flex-shrink:0}@keyframes sp-chip-enter{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.sp-tag-input-chip-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-tag-input-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--sp-primary-active, #1d4ed8);cursor:pointer;font-size:12px;line-height:1;transition:background .15s;flex-shrink:0}.sp-tag-input-chip-remove:hover{background:var(--sp-primary-bg-hover, #bfdbfe)}.sp-tag-input-input{flex:1;min-width:80px;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;color:var(--sp-text, #111827);padding:2px 0}.sp-tag-input-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-tag-input-input:disabled{cursor:not-allowed}.sp-tag-input-hint{font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:2px}.sp-tag-input-error{font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:2px}@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
|
+
i as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = ':host{display:block;font-family:inherit}.sp-textarea-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)}textarea{width:100%;padding:8px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;font-family:inherit;font-size:14px;color:var(--sp-text, #111827);background:var(--sp-bg, white);outline:none;box-sizing:border-box;transition:border-color .2s;resize:vertical;min-height:80px}textarea:focus-visible{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}textarea.sp-textarea--error{border-color:var(--sp-error, #FF4D4F)}textarea.sp-textarea--error:focus-visible{border-color:var(--sp-error, #FF4D4F);outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}:host([resize="none"]) textarea{resize:none}:host([resize="horizontal"]) textarea{resize:horizontal}:host([resize="both"]) textarea{resize:both}:host([disabled]) textarea{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb);resize:none}:host([readonly]) textarea{background:var(--sp-bg-subtle, #f9fafb)}.sp-textarea-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.sp-textarea-error{font-size:12px;color:var(--sp-error, #FF4D4F)}.sp-textarea-hint{font-size:12px;color:var(--sp-text-muted, #6b7280)}.sp-textarea-count{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);margin-left:auto}textarea.sp-textarea--auto-resize{resize:none;overflow:hidden}@media(max-width:479px){:host{width:100%}.sp-textarea-wrapper{width:100%}textarea{width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){textarea{transition:none}}';
|
|
1
|
+
const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit}.sp-textarea-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)}textarea{width:100%;padding:8px 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;font-family:inherit;font-size:14px;color:var(--sp-text, #111827);background:var(--sp-bg, white);outline:none;box-sizing:border-box;transition:border-color .2s;resize:vertical;min-height:80px}textarea:focus-visible{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}textarea.sp-textarea--error{border-color:var(--sp-error, #FF4D4F)}textarea.sp-textarea--error:focus-visible{border-color:var(--sp-error, #FF4D4F);outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}:host([resize="none"]) textarea{resize:none}:host([resize="horizontal"]) textarea{resize:horizontal}:host([resize="both"]) textarea{resize:both}:host([disabled]) textarea{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb);resize:none}:host([readonly]) textarea{background:var(--sp-bg-subtle, #f9fafb)}.sp-textarea-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.sp-textarea-error{font-size:12px;color:var(--sp-error, #FF4D4F)}.sp-textarea-hint{font-size:12px;color:var(--sp-text-muted, #6b7280)}.sp-textarea-count{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);margin-left:auto}textarea.sp-textarea--auto-resize{resize:none;overflow:hidden}@media(max-width:479px){:host{width:100%}.sp-textarea-wrapper{width:100%}textarea{width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){textarea{transition:none}}';
|
|
2
2
|
export {
|
|
3
3
|
e as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = ':host{display:block;font-family:inherit;position:relative}.sp-time-picker-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-time-picker-field{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);cursor:pointer;transition:border-color .2s,box-shadow .2s;min-width:160px}.sp-time-picker-field:hover:not(.sp-time-picker-field--disabled){border-color:var(--sp-border-strong, #9ca3af)}.sp-time-picker-field--open{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-time-picker-field--error{border-color:var(--sp-error, #FF4D4F)}.sp-time-picker-field--disabled{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}.sp-time-picker-icon{color:var(--sp-text-placeholder, #9ca3af);flex-shrink:0}.sp-time-picker-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 0;cursor:pointer;min-width:0}.sp-time-picker-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-time-picker-input:disabled{cursor:not-allowed}.sp-time-picker-clear{border:none;background:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0;font-size:18px;line-height:1;display:flex;align-items:center}.sp-time-picker-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-time-picker-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:220px;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:10px;box-shadow:0 10px 25px #0000001f,0 4px 8px #0000000f;overflow:hidden}.sp-time-picker-columns{display:flex;align-items:center;justify-content:center;gap:4px;padding:16px 16px 8px}.sp-time-picker-col{display:flex;flex-direction:column;align-items:center;gap:4px}.sp-time-picker-sep{font-size:20px;font-weight:600;color:var(--sp-text-secondary, #374151);margin-bottom:2px}.sp-time-picker-arrow{border:none;background:none;cursor:pointer;color:var(--sp-text-muted, #6b7280);font-size:10px;padding:4px 8px;border-radius:4px;line-height:1;transition:background .15s,color .15s}.sp-time-picker-arrow:hover{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text, #111827)}.sp-time-picker-value{font-size:20px;font-weight:600;font-family:monospace;color:var(--sp-text, #111827);min-width:2ch;text-align:center}.sp-time-picker-col--period .sp-time-picker-value{font-size:16px;font-family:inherit}.sp-time-picker-presets{max-height:160px;overflow-y:auto;border-top:1px solid var(--sp-bg-muted, #f3f4f6);padding:4px 0;scrollbar-width:thin;scrollbar-color:var(--sp-border, #d1d5db) transparent}.sp-time-picker-option{display:block;width:100%;padding:6px 16px;border:none;background:none;cursor:pointer;text-align:left;font-size:13px;font-family:monospace;color:var(--sp-text-secondary, #374151);transition:background .1s}.sp-time-picker-option:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-time-picker-option--selected{background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary-hover, #2563eb);font-weight:600}.sp-time-picker-actions{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-top:1px solid var(--sp-bg-muted, #f3f4f6);gap:8px}.sp-time-picker-now,.sp-time-picker-ok{border:none;cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px;font-family:inherit;font-weight:500;transition:background .15s}.sp-time-picker-now{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text-secondary, #374151)}.sp-time-picker-now:hover{background:var(--sp-border-subtle, #e5e7eb)}.sp-time-picker-ok{background:var(--sp-primary, #3b82f6);color:var(--sp-bg, white)}.sp-time-picker-ok:hover{background:var(--sp-primary-hover, #2563eb)}.sp-time-picker-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-time-picker-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}:host([size="sm"]) .sp-time-picker-field{padding:0 8px}:host([size="sm"]) .sp-time-picker-input{padding:5px 0;font-size:12px}:host([size="lg"]) .sp-time-picker-field{padding:0 16px}:host([size="lg"]) .sp-time-picker-input{padding:12px 0;font-size:16px}:host([disabled]) .sp-time-picker-field{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}@media(prefers-reduced-motion:reduce){.sp-time-picker-field,.sp-time-picker-arrow,.sp-time-picker-option,.sp-time-picker-now,.sp-time-picker-ok{transition:none}}';
|
|
1
|
+
const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit;position:relative}.sp-time-picker-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-time-picker-field{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;background:var(--sp-bg, white);cursor:pointer;transition:border-color .2s,box-shadow .2s;min-width:160px}.sp-time-picker-field:hover:not(.sp-time-picker-field--disabled){border-color:var(--sp-border-strong, #9ca3af)}.sp-time-picker-field--open{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary-focus, rgba(59, 130, 246, .2))}.sp-time-picker-field--error{border-color:var(--sp-error, #FF4D4F)}.sp-time-picker-field--disabled{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}.sp-time-picker-icon{color:var(--sp-text-placeholder, #9ca3af);flex-shrink:0}.sp-time-picker-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 0;cursor:pointer;min-width:0}.sp-time-picker-input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}.sp-time-picker-input:disabled{cursor:not-allowed}.sp-time-picker-clear{border:none;background:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0;font-size:18px;line-height:1;display:flex;align-items:center}.sp-time-picker-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-time-picker-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:220px;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:10px;box-shadow:0 10px 25px #0000001f,0 4px 8px #0000000f;overflow:hidden}.sp-time-picker-columns{display:flex;align-items:center;justify-content:center;gap:4px;padding:16px 16px 8px}.sp-time-picker-col{display:flex;flex-direction:column;align-items:center;gap:4px}.sp-time-picker-sep{font-size:20px;font-weight:600;color:var(--sp-text-secondary, #374151);margin-bottom:2px}.sp-time-picker-arrow{border:none;background:none;cursor:pointer;color:var(--sp-text-muted, #6b7280);font-size:10px;padding:4px 8px;border-radius:4px;line-height:1;transition:background .15s,color .15s}.sp-time-picker-arrow:hover{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text, #111827)}.sp-time-picker-value{font-size:20px;font-weight:600;font-family:monospace;color:var(--sp-text, #111827);min-width:2ch;text-align:center}.sp-time-picker-col--period .sp-time-picker-value{font-size:16px;font-family:inherit}.sp-time-picker-presets{max-height:160px;overflow-y:auto;border-top:1px solid var(--sp-bg-muted, #f3f4f6);padding:4px 0;scrollbar-width:thin;scrollbar-color:var(--sp-border, #d1d5db) transparent}.sp-time-picker-option{display:block;width:100%;padding:6px 16px;border:none;background:none;cursor:pointer;text-align:left;font-size:13px;font-family:monospace;color:var(--sp-text-secondary, #374151);transition:background .1s}.sp-time-picker-option:hover{background:var(--sp-bg-muted, #f3f4f6)}.sp-time-picker-option--selected{background:var(--sp-primary-bg, #eff6ff);color:var(--sp-primary-hover, #2563eb);font-weight:600}.sp-time-picker-actions{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-top:1px solid var(--sp-bg-muted, #f3f4f6);gap:8px}.sp-time-picker-now,.sp-time-picker-ok{border:none;cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px;font-family:inherit;font-weight:500;transition:background .15s}.sp-time-picker-now{background:var(--sp-bg-muted, #f3f4f6);color:var(--sp-text-secondary, #374151)}.sp-time-picker-now:hover{background:var(--sp-border-subtle, #e5e7eb)}.sp-time-picker-ok{background:var(--sp-primary, #3b82f6);color:var(--sp-bg, white)}.sp-time-picker-ok:hover{background:var(--sp-primary-hover, #2563eb)}.sp-time-picker-error{display:block;font-size:12px;color:var(--sp-error, #FF4D4F);margin-top:4px}.sp-time-picker-hint{display:block;font-size:12px;color:var(--sp-text-muted, #6b7280);margin-top:4px}:host([size="sm"]) .sp-time-picker-field{padding:0 8px}:host([size="sm"]) .sp-time-picker-input{padding:5px 0;font-size:12px}:host([size="lg"]) .sp-time-picker-field{padding:0 16px}:host([size="lg"]) .sp-time-picker-input{padding:12px 0;font-size:16px}:host([disabled]) .sp-time-picker-field{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}@media(prefers-reduced-motion:reduce){.sp-time-picker-field,.sp-time-picker-arrow,.sp-time-picker-option,.sp-time-picker-now,.sp-time-picker-ok{transition:none}}';
|
|
2
2
|
export {
|
|
3
3
|
e as default
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = ":host{display:block}.sp-timeline{display:flex;flex-direction:column}.sp-timeline-item{display:flex;gap:16px}.sp-timeline-indicator{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.sp-timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--sp-border, #d1d5db);border:2px solid var(--sp-bg, white);box-shadow:0 0 0 2px var(--sp-border, #d1d5db);flex-shrink:0;margin-top:3px}.sp-timeline-item--default .sp-timeline-dot{background:var(--sp-text-muted, #6b7280);box-shadow:0 0 0 2px var(--sp-text-muted, #6b7280)}.sp-timeline-item--success .sp-timeline-dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e}.sp-timeline-item--warning .sp-timeline-dot{background:var(--sp-warning, #FAAD14);box-shadow:0 0 0 2px var(--sp-warning, #FAAD14)}.sp-timeline-item--error .sp-timeline-dot{background:var(--sp-error, #FF4D4F);box-shadow:0 0 0 2px var(--sp-error, #FF4D4F)}.sp-timeline-item--info .sp-timeline-dot{background:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary, #3b82f6)}.sp-timeline-line{width:2px;flex:1;background:var(--sp-timeline-line-color, var(--sp-border-subtle, #e5e7eb));min-height:24px;margin-top:4px}.sp-timeline-content{padding-bottom:24px;flex:1}.sp-timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sp-timeline-label{font-size:14px;font-weight:600;color:var(--sp-text, #111827)}.sp-timeline-time{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);flex-shrink:0}.sp-timeline-description{font-size:14px;color:var(--sp-text-muted, #6b7280);margin:4px 0 0;line-height:1.5}.sp-timeline-dot--icon{display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1}.sp-timeline--alternate .sp-timeline-item{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:flex-start}.sp-timeline--alternate .sp-timeline-content{padding-bottom:24px}.sp-timeline--alternate .sp-timeline-content--alt{text-align:right}.sp-timeline--alternate .sp-timeline-indicator{grid-column:2}@media(max-width:640px){.sp-timeline--alternate .sp-timeline-item{display:flex;grid-template-columns:unset}.sp-timeline--alternate .sp-timeline-content--alt{display:none}.sp-timeline--alternate .sp-timeline-item--right .sp-timeline-content{display:block}.sp-timeline--alternate .sp-timeline-item--right .sp-timeline-indicator{grid-column:unset}}@media(prefers-reduced-motion:reduce){:host{transition:none!important}}";
|
|
1
|
+
const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-timeline{display:flex;flex-direction:column}.sp-timeline-item{display:flex;gap:16px}.sp-timeline-indicator{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.sp-timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--sp-border, #d1d5db);border:2px solid var(--sp-bg, white);box-shadow:0 0 0 2px var(--sp-border, #d1d5db);flex-shrink:0;margin-top:3px}.sp-timeline-item--default .sp-timeline-dot{background:var(--sp-text-muted, #6b7280);box-shadow:0 0 0 2px var(--sp-text-muted, #6b7280)}.sp-timeline-item--success .sp-timeline-dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e}.sp-timeline-item--warning .sp-timeline-dot{background:var(--sp-warning, #FAAD14);box-shadow:0 0 0 2px var(--sp-warning, #FAAD14)}.sp-timeline-item--error .sp-timeline-dot{background:var(--sp-error, #FF4D4F);box-shadow:0 0 0 2px var(--sp-error, #FF4D4F)}.sp-timeline-item--info .sp-timeline-dot{background:var(--sp-primary, #3b82f6);box-shadow:0 0 0 2px var(--sp-primary, #3b82f6)}.sp-timeline-line{width:2px;flex:1;background:var(--sp-timeline-line-color, var(--sp-border-subtle, #e5e7eb));min-height:24px;margin-top:4px}.sp-timeline-content{padding-bottom:24px;flex:1}.sp-timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sp-timeline-label{font-size:14px;font-weight:600;color:var(--sp-text, #111827)}.sp-timeline-time{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);flex-shrink:0}.sp-timeline-description{font-size:14px;color:var(--sp-text-muted, #6b7280);margin:4px 0 0;line-height:1.5}.sp-timeline-dot--icon{display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1}.sp-timeline--alternate .sp-timeline-item{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:flex-start}.sp-timeline--alternate .sp-timeline-content{padding-bottom:24px}.sp-timeline--alternate .sp-timeline-content--alt{text-align:right}.sp-timeline--alternate .sp-timeline-indicator{grid-column:2}@media(max-width:640px){.sp-timeline--alternate .sp-timeline-item{display:flex;grid-template-columns:unset}.sp-timeline--alternate .sp-timeline-content--alt{display:none}.sp-timeline--alternate .sp-timeline-item--right .sp-timeline-content{display:block}.sp-timeline--alternate .sp-timeline-item--right .sp-timeline-indicator{grid-column:unset}}@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 o = ':host{display:block;pointer-events:none}:host([open]){pointer-events:auto}.sp-toast{position:relative;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:14px;max-width:360px;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s;pointer-events:none;overflow:hidden}.sp-toast--open{opacity:1;transform:translateY(0);pointer-events:auto}.sp-toast-icon{flex-shrink:0;font-size:16px}.sp-toast-message{flex:1;line-height:1.4}.sp-toast-close{background:none;border:none;cursor:pointer;opacity:.6;font-size:14px;padding:0;flex-shrink:0}.sp-toast-close:hover{opacity:1}.sp-toast-action{background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;padding:2px 6px;border-radius:4px;flex-shrink:0;text-decoration:none}:host([variant="neutral"]) .sp-toast{background:var(--sp-text-secondary, #1f2937);color:var(--sp-bg, white)}:host([variant="neutral"]) .sp-toast-action{color:#93c5fd}:host([variant="info"]) .sp-toast{background:var(--sp-primary-bg, #eff6ff);border:1px solid #bfdbfe;color:#1e40af}:host([variant="info"]) .sp-toast-action{color:var(--sp-primary-active, #1d4ed8)}:host([variant="success"]) .sp-toast{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}:host([variant="success"]) .sp-toast-action{color:#15803d}:host([variant="warning"]) .sp-toast{background:var(--sp-warning-bg, #FFFBE6);border:1px solid #fde68a;color:#92400e}:host([variant="warning"]) .sp-toast-action{color:#b45309}:host([variant="error"]) .sp-toast{background:var(--sp-error-bg, #FFF2F0);border:1px solid #fecaca;color:#991b1b}:host([variant="error"]) .sp-toast-action{color:#b91c1c}.sp-toast-close:focus-visible,.sp-toast-action:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@keyframes sp-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.sp-toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:currentColor;opacity:.35;transform-origin:left;animation:sp-toast-progress linear forwards}@media(max-width:480px){:host{width:100%}.sp-toast{max-width:100%;width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}:host{animation:none;transition:none}}';
|
|
1
|
+
const o = '*,*:before,*:after{box-sizing:border-box}:host{display:block;pointer-events:none}:host([open]){pointer-events:auto}.sp-toast{position:relative;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:14px;max-width:360px;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s;pointer-events:none;overflow:hidden}.sp-toast--open{opacity:1;transform:translateY(0);pointer-events:auto}.sp-toast-icon{flex-shrink:0;font-size:16px}.sp-toast-message{flex:1;line-height:1.4}.sp-toast-close{background:none;border:none;cursor:pointer;opacity:.6;font-size:14px;padding:0;flex-shrink:0}.sp-toast-close:hover{opacity:1}.sp-toast-action{background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;padding:2px 6px;border-radius:4px;flex-shrink:0;text-decoration:none}:host([variant="neutral"]) .sp-toast{background:var(--sp-text-secondary, #1f2937);color:var(--sp-bg, white)}:host([variant="neutral"]) .sp-toast-action{color:#93c5fd}:host([variant="info"]) .sp-toast{background:var(--sp-primary-bg, #eff6ff);border:1px solid #bfdbfe;color:#1e40af}:host([variant="info"]) .sp-toast-action{color:var(--sp-primary-active, #1d4ed8)}:host([variant="success"]) .sp-toast{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}:host([variant="success"]) .sp-toast-action{color:#15803d}:host([variant="warning"]) .sp-toast{background:var(--sp-warning-bg, #FFFBE6);border:1px solid #fde68a;color:#92400e}:host([variant="warning"]) .sp-toast-action{color:#b45309}:host([variant="error"]) .sp-toast{background:var(--sp-error-bg, #FFF2F0);border:1px solid #fecaca;color:#991b1b}:host([variant="error"]) .sp-toast-action{color:#b91c1c}.sp-toast-close:focus-visible,.sp-toast-action:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@keyframes sp-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.sp-toast-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:currentColor;opacity:.35;transform-origin:left;animation:sp-toast-progress linear forwards}@media(max-width:480px){:host{width:100%}.sp-toast{max-width:100%;width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}:host{animation:none;transition:none}}';
|
|
2
2
|
export {
|
|
3
3
|
o as default
|
|
4
4
|
};
|