@social.io/catalog 1.3.0 → 2.0.0
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/.smartconfig.json +51 -0
- package/dist_bundle/bundle.js +5450 -3267
- package/dist_ts_web/00_commitinfo_data.js +3 -3
- package/dist_ts_web/elements/index.d.ts +20 -3
- package/dist_ts_web/elements/index.js +27 -7
- package/dist_ts_web/elements/sio-ai-card.d.ts +39 -0
- package/dist_ts_web/elements/sio-ai-card.js +229 -0
- package/dist_ts_web/elements/sio-avatar.d.ts +46 -0
- package/dist_ts_web/elements/sio-avatar.js +379 -0
- package/dist_ts_web/elements/sio-bucket-header.d.ts +36 -0
- package/dist_ts_web/elements/sio-bucket-header.js +197 -0
- package/dist_ts_web/elements/sio-button.d.ts +7 -3
- package/dist_ts_web/elements/sio-button.js +253 -152
- package/dist_ts_web/elements/sio-channel-rail.d.ts +37 -0
- package/dist_ts_web/elements/sio-channel-rail.js +275 -0
- package/dist_ts_web/elements/sio-chip.d.ts +25 -0
- package/dist_ts_web/elements/sio-chip.js +188 -0
- package/dist_ts_web/elements/sio-cmdk.d.ts +59 -0
- package/dist_ts_web/elements/sio-cmdk.js +471 -0
- package/dist_ts_web/elements/sio-combox.d.ts +55 -1
- package/dist_ts_web/elements/sio-combox.js +458 -261
- package/dist_ts_web/elements/sio-composer.d.ts +48 -0
- package/dist_ts_web/elements/sio-composer.js +357 -0
- package/dist_ts_web/elements/sio-conversation-selector.d.ts +41 -1
- package/dist_ts_web/elements/sio-conversation-selector.js +426 -238
- package/dist_ts_web/elements/sio-conversation-view.d.ts +34 -6
- package/dist_ts_web/elements/sio-conversation-view.js +738 -564
- package/dist_ts_web/elements/sio-dropdown-menu.d.ts +6 -6
- package/dist_ts_web/elements/sio-dropdown-menu.js +223 -169
- package/dist_ts_web/elements/sio-fab.d.ts +23 -5
- package/dist_ts_web/elements/sio-fab.js +259 -235
- package/dist_ts_web/elements/sio-glass-toolbar.d.ts +22 -0
- package/dist_ts_web/elements/sio-glass-toolbar.js +178 -0
- package/dist_ts_web/elements/sio-icon.d.ts +1 -0
- package/dist_ts_web/elements/sio-icon.js +254 -94
- package/dist_ts_web/elements/sio-image-lightbox.d.ts +3 -4
- package/dist_ts_web/elements/sio-image-lightbox.js +282 -191
- package/dist_ts_web/elements/sio-inset-list.d.ts +28 -0
- package/dist_ts_web/elements/sio-inset-list.js +191 -0
- package/dist_ts_web/elements/sio-kbd.d.ts +16 -0
- package/dist_ts_web/elements/sio-kbd.js +117 -0
- package/dist_ts_web/elements/sio-list-row.d.ts +55 -0
- package/dist_ts_web/elements/sio-list-row.js +462 -0
- package/dist_ts_web/elements/sio-message-input.d.ts +25 -4
- package/dist_ts_web/elements/sio-message-input.js +231 -226
- package/dist_ts_web/elements/sio-paper-thumb.d.ts +24 -0
- package/dist_ts_web/elements/sio-paper-thumb.js +293 -0
- package/dist_ts_web/elements/sio-pdf-viewer.d.ts +2 -0
- package/dist_ts_web/elements/sio-pdf-viewer.js +344 -244
- package/dist_ts_web/elements/sio-segmented.d.ts +32 -0
- package/dist_ts_web/elements/sio-segmented.js +217 -0
- package/dist_ts_web/elements/sio-step-timeline.d.ts +28 -0
- package/dist_ts_web/elements/sio-step-timeline.js +222 -0
- package/dist_ts_web/elements/sio-tab-bar.d.ts +36 -0
- package/dist_ts_web/elements/sio-tab-bar.js +232 -0
- package/dist_ts_web/elements/sio-unread-badge.d.ts +25 -0
- package/dist_ts_web/elements/sio-unread-badge.js +203 -0
- package/dist_ts_web/elements/sio-waveform.d.ts +34 -0
- package/dist_ts_web/elements/sio-waveform.js +304 -0
- package/dist_ts_web/elements/tokens.d.ts +70 -0
- package/dist_ts_web/elements/tokens.js +277 -0
- package/dist_ts_web/pages/firstpage.d.ts +5 -0
- package/dist_ts_web/pages/firstpage.js +21 -2
- package/dist_ts_web/pages/mainpage.d.ts +6 -0
- package/dist_ts_web/pages/mainpage.js +111 -39
- package/{license → license.md} +3 -1
- package/package.json +23 -29
- package/readme.hints.md +81 -0
- package/readme.md +85 -151
- package/ts_web/00_commitinfo_data.ts +2 -2
- package/ts_web/elements/index.ts +30 -7
- package/ts_web/elements/sio-ai-card.ts +175 -0
- package/ts_web/elements/sio-avatar.ts +295 -0
- package/ts_web/elements/sio-bucket-header.ts +157 -0
- package/ts_web/elements/sio-button.ts +149 -127
- package/ts_web/elements/sio-channel-rail.ts +243 -0
- package/ts_web/elements/sio-chip.ts +134 -0
- package/ts_web/elements/sio-cmdk.ts +461 -0
- package/ts_web/elements/sio-combox.ts +327 -204
- package/ts_web/elements/sio-composer.ts +306 -0
- package/ts_web/elements/sio-conversation-selector.ts +350 -228
- package/ts_web/elements/sio-conversation-view.ts +573 -457
- package/ts_web/elements/sio-dropdown-menu.ts +112 -130
- package/ts_web/elements/sio-fab.ts +192 -227
- package/ts_web/elements/sio-glass-toolbar.ts +140 -0
- package/ts_web/elements/sio-icon.ts +147 -25
- package/ts_web/elements/sio-image-lightbox.ts +62 -64
- package/ts_web/elements/sio-inset-list.ts +140 -0
- package/ts_web/elements/sio-kbd.ts +80 -0
- package/ts_web/elements/sio-list-row.ts +393 -0
- package/ts_web/elements/sio-message-input.ts +142 -221
- package/ts_web/elements/sio-paper-thumb.ts +244 -0
- package/ts_web/elements/sio-pdf-viewer.ts +58 -60
- package/ts_web/elements/sio-segmented.ts +183 -0
- package/ts_web/elements/sio-step-timeline.ts +179 -0
- package/ts_web/elements/sio-tab-bar.ts +195 -0
- package/ts_web/elements/sio-unread-badge.ts +147 -0
- package/ts_web/elements/sio-waveform.ts +239 -0
- package/ts_web/elements/tokens.ts +297 -0
- package/ts_web/pages/firstpage.ts +20 -1
- package/ts_web/pages/mainpage.ts +111 -39
- package/dist_bundle/bundle.js.map +0 -7
- package/dist_ts_web/elements/00colors.d.ts +0 -108
- package/dist_ts_web/elements/00colors.js +0 -137
- package/dist_ts_web/elements/00fonts.d.ts +0 -60
- package/dist_ts_web/elements/00fonts.js +0 -129
- package/dist_ts_web/elements/00tokens.d.ts +0 -123
- package/dist_ts_web/elements/00tokens.js +0 -176
- package/dist_ts_web/elements/sio-conversation-list.d.ts +0 -20
- package/dist_ts_web/elements/sio-conversation-list.js +0 -495
- package/dist_ts_web/elements/sio-recorder.d.ts +0 -60
- package/dist_ts_web/elements/sio-recorder.js +0 -173
- package/dist_ts_web/elements/sio-subwidget-conversations.d.ts +0 -16
- package/dist_ts_web/elements/sio-subwidget-conversations.js +0 -350
- package/dist_ts_web/elements/sio-subwidget-onboardme.d.ts +0 -7
- package/dist_ts_web/elements/sio-subwidget-onboardme.js +0 -243
- package/dist_watch/bundle.js +0 -81694
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -25
- package/npmextra.json +0 -19
- package/ts_web/elements/00colors.ts +0 -164
- package/ts_web/elements/00fonts.ts +0 -145
- package/ts_web/elements/00tokens.ts +0 -197
- package/ts_web/elements/sio-recorder.ts +0 -213
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, html, property, customElement, css, } from '@design.estate/dees-element';
|
|
36
|
+
import { sioElementStyles } from './tokens.js';
|
|
37
|
+
import './sio-icon.js';
|
|
38
|
+
/**
|
|
39
|
+
* The v7 channel set — All / Mail / Chats / Calls / Letters
|
|
40
|
+
* (prototype: SIO_CHANNELS in SocialIOData.jsx).
|
|
41
|
+
*/
|
|
42
|
+
const defaultChannels = [
|
|
43
|
+
{ id: 'all', label: 'All', color: 'var(--sio-blue)', icon: 'grid-2x2' },
|
|
44
|
+
{ id: 'mail', label: 'Mail', color: 'var(--sio-ch-mail)', icon: 'mail' },
|
|
45
|
+
{ id: 'chats', label: 'Chats', color: 'var(--sio-ch-chats)', icon: 'message-circle' },
|
|
46
|
+
{ id: 'calls', label: 'Calls', color: 'var(--sio-ch-calls)', icon: 'phone' },
|
|
47
|
+
{ id: 'letters', label: 'Letters', color: 'var(--sio-ch-letters)', icon: 'file-text' },
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* sio-channel-rail — the 64px channel column at the very left of the
|
|
51
|
+
* desktop window (v7 prototype: SIOChannelRail in
|
|
52
|
+
* SocialIODesktopChannels.jsx).
|
|
53
|
+
*
|
|
54
|
+
* Each item stacks an 18px icon over a 10px label; the active item gets a
|
|
55
|
+
* rounded-10 chip and its channel color, and every item can carry an unread
|
|
56
|
+
* badge (channel-colored pill at top -5 / right -9 with a 2px ring cut out
|
|
57
|
+
* of the rail). Selecting a channel dispatches `channel-select` with
|
|
58
|
+
* `{ id, channel }` (bubbles, composed).
|
|
59
|
+
*/
|
|
60
|
+
let SioChannelRail = (() => {
|
|
61
|
+
let _classDecorators = [customElement('sio-channel-rail')];
|
|
62
|
+
let _classDescriptor;
|
|
63
|
+
let _classExtraInitializers = [];
|
|
64
|
+
let _classThis;
|
|
65
|
+
let _classSuper = DeesElement;
|
|
66
|
+
let _channels_decorators;
|
|
67
|
+
let _channels_initializers = [];
|
|
68
|
+
let _channels_extraInitializers = [];
|
|
69
|
+
let _active_decorators;
|
|
70
|
+
let _active_initializers = [];
|
|
71
|
+
let _active_extraInitializers = [];
|
|
72
|
+
var SioChannelRail = class extends _classSuper {
|
|
73
|
+
static { _classThis = this; }
|
|
74
|
+
static {
|
|
75
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
76
|
+
_channels_decorators = [property({ type: Array })];
|
|
77
|
+
_active_decorators = [property({ type: String })];
|
|
78
|
+
__esDecorate(this, null, _channels_decorators, { kind: "accessor", name: "channels", static: false, private: false, access: { has: obj => "channels" in obj, get: obj => obj.channels, set: (obj, value) => { obj.channels = value; } }, metadata: _metadata }, _channels_initializers, _channels_extraInitializers);
|
|
79
|
+
__esDecorate(this, null, _active_decorators, { kind: "accessor", name: "active", static: false, private: false, access: { has: obj => "active" in obj, get: obj => obj.active, set: (obj, value) => { obj.active = value; } }, metadata: _metadata }, _active_initializers, _active_extraInitializers);
|
|
80
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
81
|
+
SioChannelRail = _classThis = _classDescriptor.value;
|
|
82
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
83
|
+
}
|
|
84
|
+
static demo = () => html `
|
|
85
|
+
<div style="display: flex; gap: 24px; font-family: var(--sio-font-sf);">
|
|
86
|
+
<!-- busy morning: unreads on every channel -->
|
|
87
|
+
<div
|
|
88
|
+
style="display: flex; height: 340px; border-radius: 12px; overflow: hidden; border: var(--sio-hairline) solid var(--sio-separator);"
|
|
89
|
+
>
|
|
90
|
+
<sio-channel-rail
|
|
91
|
+
active="mail"
|
|
92
|
+
.channels=${[
|
|
93
|
+
{ id: 'all', label: 'All', color: 'var(--sio-blue)', icon: 'grid-2x2', unread: 3 },
|
|
94
|
+
{ id: 'mail', label: 'Mail', color: 'var(--sio-ch-mail)', icon: 'mail', unread: 4 },
|
|
95
|
+
{ id: 'chats', label: 'Chats', color: 'var(--sio-ch-chats)', icon: 'message-circle', unread: 7 },
|
|
96
|
+
{ id: 'calls', label: 'Calls', color: 'var(--sio-ch-calls)', icon: 'phone', unread: 1 },
|
|
97
|
+
{ id: 'letters', label: 'Letters', color: 'var(--sio-ch-letters)', icon: 'file-text', unread: 2 },
|
|
98
|
+
]}
|
|
99
|
+
></sio-channel-rail>
|
|
100
|
+
<div style="width: 210px; background: var(--sio-surface); padding: 14px 16px;">
|
|
101
|
+
<div style="font-size: 13px; font-weight: 600; color: var(--sio-label);">Inbox</div>
|
|
102
|
+
<div style="margin-top: 2px; font-size: 11px; color: var(--sio-label-3);">
|
|
103
|
+
4 unread · Feed 12 · Paper 4
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<!-- Letters active, all clear -->
|
|
109
|
+
<div
|
|
110
|
+
style="display: flex; height: 340px; border-radius: 12px; overflow: hidden; border: var(--sio-hairline) solid var(--sio-separator);"
|
|
111
|
+
>
|
|
112
|
+
<sio-channel-rail active="letters"></sio-channel-rail>
|
|
113
|
+
<div style="width: 210px; background: var(--sio-surface); padding: 14px 16px;">
|
|
114
|
+
<div style="font-size: 13px; font-weight: 600; color: var(--sio-label);">Letters</div>
|
|
115
|
+
<div style="margin-top: 2px; font-size: 11px; color: var(--sio-label-3);">
|
|
116
|
+
Scan station online · 1 queued
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
`;
|
|
122
|
+
#channels_accessor_storage = __runInitializers(this, _channels_initializers, defaultChannels);
|
|
123
|
+
get channels() { return this.#channels_accessor_storage; }
|
|
124
|
+
set channels(value) { this.#channels_accessor_storage = value; }
|
|
125
|
+
#active_accessor_storage = (__runInitializers(this, _channels_extraInitializers), __runInitializers(this, _active_initializers, 'mail'));
|
|
126
|
+
get active() { return this.#active_accessor_storage; }
|
|
127
|
+
set active(value) { this.#active_accessor_storage = value; }
|
|
128
|
+
static styles = [
|
|
129
|
+
...sioElementStyles,
|
|
130
|
+
css `
|
|
131
|
+
:host {
|
|
132
|
+
display: block;
|
|
133
|
+
height: 100%;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Rail chrome: the systemGray fill composited over the canvas —
|
|
137
|
+
#E8E8EC light / #1C1C1F dark, matching the design's #EDEDEE/#17171A
|
|
138
|
+
from tokens alone. */
|
|
139
|
+
.rail {
|
|
140
|
+
width: 64px;
|
|
141
|
+
height: 100%;
|
|
142
|
+
box-sizing: border-box;
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
align-items: stretch;
|
|
146
|
+
gap: 2px;
|
|
147
|
+
padding: 10px 8px;
|
|
148
|
+
background-color: var(--sio-bg);
|
|
149
|
+
background-image: linear-gradient(var(--sio-surface-2), var(--sio-surface-2));
|
|
150
|
+
border-right: var(--sio-hairline) solid var(--sio-separator);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.item {
|
|
154
|
+
appearance: none;
|
|
155
|
+
border: none;
|
|
156
|
+
margin: 0;
|
|
157
|
+
position: relative;
|
|
158
|
+
padding: 8px 0;
|
|
159
|
+
border-radius: var(--sio-radius);
|
|
160
|
+
background: transparent;
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-direction: column;
|
|
163
|
+
align-items: center;
|
|
164
|
+
gap: 3px;
|
|
165
|
+
font-family: var(--sio-font-sf);
|
|
166
|
+
cursor: pointer;
|
|
167
|
+
-webkit-tap-highlight-color: transparent;
|
|
168
|
+
transition: background 120ms ease, color 120ms ease;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.item.active {
|
|
172
|
+
background: color-mix(in oklab, var(--sio-label) 5%, transparent);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.item:focus-visible {
|
|
176
|
+
outline: 2px solid color-mix(in oklab, var(--sio-tint) 40%, transparent);
|
|
177
|
+
outline-offset: -2px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.glyph {
|
|
181
|
+
position: relative;
|
|
182
|
+
display: flex;
|
|
183
|
+
align-items: center;
|
|
184
|
+
justify-content: center;
|
|
185
|
+
color: var(--sio-label-3);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.item.active .glyph {
|
|
189
|
+
color: var(--_channel-color, var(--sio-tint));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.badge {
|
|
193
|
+
position: absolute;
|
|
194
|
+
top: -5px;
|
|
195
|
+
right: -9px;
|
|
196
|
+
min-width: 15px;
|
|
197
|
+
height: 15px;
|
|
198
|
+
padding: 0 4px;
|
|
199
|
+
box-sizing: border-box;
|
|
200
|
+
border-radius: 8px;
|
|
201
|
+
background: var(--_channel-color, var(--sio-tint));
|
|
202
|
+
/* fixed foreground on the theme-stable channel palette */
|
|
203
|
+
color: #ffffff;
|
|
204
|
+
font-size: 10px;
|
|
205
|
+
font-weight: 700;
|
|
206
|
+
font-variant-numeric: tabular-nums;
|
|
207
|
+
display: flex;
|
|
208
|
+
align-items: center;
|
|
209
|
+
justify-content: center;
|
|
210
|
+
line-height: 1;
|
|
211
|
+
/* 2px ring in the rail's own chrome tone */
|
|
212
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--sio-label) 8%, var(--sio-bg));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.label {
|
|
216
|
+
font-size: 10px;
|
|
217
|
+
font-weight: 500;
|
|
218
|
+
letter-spacing: 0.02px;
|
|
219
|
+
line-height: 1.25;
|
|
220
|
+
color: var(--sio-label-2);
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.item.active .label {
|
|
225
|
+
font-weight: 600;
|
|
226
|
+
color: var(--sio-label);
|
|
227
|
+
}
|
|
228
|
+
`,
|
|
229
|
+
];
|
|
230
|
+
render() {
|
|
231
|
+
return html `
|
|
232
|
+
<nav class="rail" part="rail">
|
|
233
|
+
${this.channels.map((channel) => html `
|
|
234
|
+
<button
|
|
235
|
+
type="button"
|
|
236
|
+
class="item ${channel.id === this.active ? 'active' : ''}"
|
|
237
|
+
style="--_channel-color: ${channel.color}"
|
|
238
|
+
aria-current=${channel.id === this.active ? 'page' : 'false'}
|
|
239
|
+
@click=${() => this.handleSelect(channel)}
|
|
240
|
+
>
|
|
241
|
+
<span class="glyph">
|
|
242
|
+
<sio-icon icon=${channel.icon} size="18" .strokeWidth=${1.7}></sio-icon>
|
|
243
|
+
${channel.unread
|
|
244
|
+
? html `<span class="badge">${channel.unread}</span>`
|
|
245
|
+
: html ``}
|
|
246
|
+
</span>
|
|
247
|
+
<span class="label">${channel.label}</span>
|
|
248
|
+
</button>
|
|
249
|
+
`)}
|
|
250
|
+
</nav>
|
|
251
|
+
`;
|
|
252
|
+
}
|
|
253
|
+
handleSelect(channel) {
|
|
254
|
+
if (channel.id === this.active) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
this.active = channel.id;
|
|
258
|
+
this.dispatchEvent(new CustomEvent('channel-select', {
|
|
259
|
+
detail: { id: channel.id, channel },
|
|
260
|
+
bubbles: true,
|
|
261
|
+
composed: true,
|
|
262
|
+
}));
|
|
263
|
+
}
|
|
264
|
+
constructor() {
|
|
265
|
+
super(...arguments);
|
|
266
|
+
__runInitializers(this, _active_extraInitializers);
|
|
267
|
+
}
|
|
268
|
+
static {
|
|
269
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
return SioChannelRail = _classThis;
|
|
273
|
+
})();
|
|
274
|
+
export { SioChannelRail };
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWNoYW5uZWwtcmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zaW8tY2hhbm5lbC1yYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsYUFBYSxFQUNiLEdBQUcsR0FFSixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGVBQWUsQ0FBQztBQXFCdkI7OztHQUdHO0FBQ0gsTUFBTSxlQUFlLEdBQTBCO0lBQzdDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0lBQ3ZFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQ3hFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7SUFDckYsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7SUFDNUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Q0FDdkYsQ0FBQztBQUVGOzs7Ozs7Ozs7O0dBVUc7SUFFVSxjQUFjOzRCQUQxQixhQUFhLENBQUMsa0JBQWtCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs4QkFBbkIsU0FBUSxXQUFXOzs7O29DQXdDNUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2tDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFGM0IsNktBQWdCLFFBQVEsNkJBQVIsUUFBUSwyRkFBMEM7WUFHbEUsdUtBQWdCLE1BQU0sNkJBQU4sTUFBTSx1RkFBVTtZQTVDbEMsNktBNExDOzs7O1FBM0xRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7OztzQkFRWDtZQUNWLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDbEYsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNuRixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDaEcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUN2RixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1NBQ2xHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCUixDQUFDO1FBR0YsNkVBQWtELGVBQWUsRUFBQztRQUFsRSxJQUFnQixRQUFRLDhDQUEwQztRQUFsRSxJQUFnQixRQUFRLG9EQUEwQztRQUdsRSxnSUFBeUIsTUFBTSxHQUFDO1FBQWhDLElBQWdCLE1BQU0sNENBQVU7UUFBaEMsSUFBZ0IsTUFBTSxrREFBVTtRQUV6QixNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrR0Y7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOztVQUVMLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNqQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBOzs7NEJBR0MsT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7eUNBQzdCLE9BQU8sQ0FBQyxLQUFLOzZCQUN6QixPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzt1QkFDbkQsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7OztpQ0FHdEIsT0FBTyxDQUFDLElBQUksMkJBQTJCLEdBQUc7a0JBQ3pELE9BQU8sQ0FBQyxNQUFNO2dCQUNkLENBQUMsQ0FBQyxJQUFJLENBQUEsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLFNBQVM7Z0JBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7b0NBRVUsT0FBTyxDQUFDLEtBQUs7O1dBRXRDLENBQ0Y7O0tBRUosQ0FBQztRQUNKLENBQUM7UUFFTyxZQUFZLENBQUMsT0FBNEI7WUFDL0MsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsSUFBSSxXQUFXLENBQTBCLGdCQUFnQixFQUFFO2dCQUN6RCxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDOzs7Ozs7WUEzTFUsdURBQWM7Ozs7O1NBQWQsY0FBYyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-icon.js';
|
|
3
|
+
export type TSioChipVariant = 'channel' | 'lane' | 'status' | 'generic';
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'sio-chip': SioChip;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* sio-chip — uppercase 11px/600 label on a 14% color-mix tint of the
|
|
11
|
+
* palette color (v7 `.sio-lane-chip` and the channel chips in list rows).
|
|
12
|
+
*/
|
|
13
|
+
export declare class SioChip extends DeesElement {
|
|
14
|
+
static demo: () => TemplateResult<1>;
|
|
15
|
+
accessor variant: TSioChipVariant;
|
|
16
|
+
/** palette key within the variant, e.g. "mail", "feed", "now" */
|
|
17
|
+
accessor value: string;
|
|
18
|
+
/** custom CSS color for variant="generic"; defaults to the system tint */
|
|
19
|
+
accessor color: string;
|
|
20
|
+
/** optional leading glyph (sio-icon name) */
|
|
21
|
+
accessor icon: string;
|
|
22
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
23
|
+
private get resolvedColor();
|
|
24
|
+
render(): TemplateResult;
|
|
25
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, html, property, customElement, css, } from '@design.estate/dees-element';
|
|
36
|
+
import { sioElementStyles } from './tokens.js';
|
|
37
|
+
import './sio-icon.js';
|
|
38
|
+
/**
|
|
39
|
+
* variant:value → palette token.
|
|
40
|
+
* channel mail | chats | calls | letters
|
|
41
|
+
* lane feed | paper | people
|
|
42
|
+
* status now | today | later | done (unified-feed triage buckets)
|
|
43
|
+
*/
|
|
44
|
+
const chipPalette = {
|
|
45
|
+
'channel:mail': 'var(--sio-ch-mail)',
|
|
46
|
+
'channel:chats': 'var(--sio-ch-chats)',
|
|
47
|
+
'channel:calls': 'var(--sio-ch-calls)',
|
|
48
|
+
'channel:letters': 'var(--sio-ch-letters)',
|
|
49
|
+
'lane:feed': 'var(--sio-lane-feed)',
|
|
50
|
+
'lane:paper': 'var(--sio-lane-paper)',
|
|
51
|
+
'lane:people': 'var(--sio-lane-people)',
|
|
52
|
+
'status:now': 'var(--sio-bucket-now)',
|
|
53
|
+
'status:today': 'var(--sio-bucket-today)',
|
|
54
|
+
'status:later': 'var(--sio-bucket-later)',
|
|
55
|
+
'status:done': 'var(--sio-bucket-done)',
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* sio-chip — uppercase 11px/600 label on a 14% color-mix tint of the
|
|
59
|
+
* palette color (v7 `.sio-lane-chip` and the channel chips in list rows).
|
|
60
|
+
*/
|
|
61
|
+
let SioChip = (() => {
|
|
62
|
+
let _classDecorators = [customElement('sio-chip')];
|
|
63
|
+
let _classDescriptor;
|
|
64
|
+
let _classExtraInitializers = [];
|
|
65
|
+
let _classThis;
|
|
66
|
+
let _classSuper = DeesElement;
|
|
67
|
+
let _variant_decorators;
|
|
68
|
+
let _variant_initializers = [];
|
|
69
|
+
let _variant_extraInitializers = [];
|
|
70
|
+
let _value_decorators;
|
|
71
|
+
let _value_initializers = [];
|
|
72
|
+
let _value_extraInitializers = [];
|
|
73
|
+
let _color_decorators;
|
|
74
|
+
let _color_initializers = [];
|
|
75
|
+
let _color_extraInitializers = [];
|
|
76
|
+
let _icon_decorators;
|
|
77
|
+
let _icon_initializers = [];
|
|
78
|
+
let _icon_extraInitializers = [];
|
|
79
|
+
var SioChip = class extends _classSuper {
|
|
80
|
+
static { _classThis = this; }
|
|
81
|
+
static {
|
|
82
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
83
|
+
_variant_decorators = [property({ type: String })];
|
|
84
|
+
_value_decorators = [property({ type: String })];
|
|
85
|
+
_color_decorators = [property({ type: String })];
|
|
86
|
+
_icon_decorators = [property({ type: String })];
|
|
87
|
+
__esDecorate(this, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
|
|
88
|
+
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
89
|
+
__esDecorate(this, null, _color_decorators, { kind: "accessor", name: "color", static: false, private: false, access: { has: obj => "color" in obj, get: obj => obj.color, set: (obj, value) => { obj.color = value; } }, metadata: _metadata }, _color_initializers, _color_extraInitializers);
|
|
90
|
+
__esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
|
|
91
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
92
|
+
SioChip = _classThis = _classDescriptor.value;
|
|
93
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
94
|
+
}
|
|
95
|
+
static demo = () => html `
|
|
96
|
+
<div style="display: flex; flex-direction: column; gap: 14px;">
|
|
97
|
+
<div style="display: flex; gap: 8px; flex-wrap: wrap; align-items: center;">
|
|
98
|
+
<sio-chip variant="channel" value="mail" icon="envelope">Mail</sio-chip>
|
|
99
|
+
<sio-chip variant="channel" value="chats" icon="message-circle">Chat</sio-chip>
|
|
100
|
+
<sio-chip variant="channel" value="calls" icon="phone">Call</sio-chip>
|
|
101
|
+
<sio-chip variant="channel" value="letters" icon="file-text">Letter</sio-chip>
|
|
102
|
+
</div>
|
|
103
|
+
<div style="display: flex; gap: 8px; flex-wrap: wrap; align-items: center;">
|
|
104
|
+
<sio-chip variant="lane" value="feed">Feed</sio-chip>
|
|
105
|
+
<sio-chip variant="lane" value="paper">Paper trail</sio-chip>
|
|
106
|
+
<sio-chip variant="lane" value="people">People</sio-chip>
|
|
107
|
+
</div>
|
|
108
|
+
<div style="display: flex; gap: 8px; flex-wrap: wrap; align-items: center;">
|
|
109
|
+
<sio-chip variant="status" value="now">Now</sio-chip>
|
|
110
|
+
<sio-chip variant="status" value="today">Today</sio-chip>
|
|
111
|
+
<sio-chip variant="status" value="later">Later</sio-chip>
|
|
112
|
+
<sio-chip variant="status" value="done">Done</sio-chip>
|
|
113
|
+
</div>
|
|
114
|
+
<div style="display: flex; gap: 8px; flex-wrap: wrap; align-items: center;">
|
|
115
|
+
<sio-chip icon="sparkles">AI summary</sio-chip>
|
|
116
|
+
<sio-chip color="var(--sio-ch-letters)">Suggested</sio-chip>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
`;
|
|
120
|
+
#variant_accessor_storage = __runInitializers(this, _variant_initializers, 'generic');
|
|
121
|
+
get variant() { return this.#variant_accessor_storage; }
|
|
122
|
+
set variant(value) { this.#variant_accessor_storage = value; }
|
|
123
|
+
#value_accessor_storage = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _value_initializers, ''));
|
|
124
|
+
/** palette key within the variant, e.g. "mail", "feed", "now" */
|
|
125
|
+
get value() { return this.#value_accessor_storage; }
|
|
126
|
+
set value(value) { this.#value_accessor_storage = value; }
|
|
127
|
+
#color_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _color_initializers, ''));
|
|
128
|
+
/** custom CSS color for variant="generic"; defaults to the system tint */
|
|
129
|
+
get color() { return this.#color_accessor_storage; }
|
|
130
|
+
set color(value) { this.#color_accessor_storage = value; }
|
|
131
|
+
#icon_accessor_storage = (__runInitializers(this, _color_extraInitializers), __runInitializers(this, _icon_initializers, ''));
|
|
132
|
+
/** optional leading glyph (sio-icon name) */
|
|
133
|
+
get icon() { return this.#icon_accessor_storage; }
|
|
134
|
+
set icon(value) { this.#icon_accessor_storage = value; }
|
|
135
|
+
static styles = [
|
|
136
|
+
...sioElementStyles,
|
|
137
|
+
css `
|
|
138
|
+
:host {
|
|
139
|
+
display: inline-flex;
|
|
140
|
+
flex-shrink: 0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* v7 .sio-lane-chip */
|
|
144
|
+
.chip {
|
|
145
|
+
display: inline-flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
gap: 6px;
|
|
148
|
+
padding: 3px 9px;
|
|
149
|
+
border-radius: var(--sio-radius-sm);
|
|
150
|
+
background: color-mix(in oklab, var(--chip-color) 14%, transparent);
|
|
151
|
+
color: var(--chip-color);
|
|
152
|
+
font-family: var(--sio-font-sf);
|
|
153
|
+
font-size: 11px;
|
|
154
|
+
font-weight: 600;
|
|
155
|
+
letter-spacing: 0.04em;
|
|
156
|
+
text-transform: uppercase;
|
|
157
|
+
white-space: nowrap;
|
|
158
|
+
user-select: none;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
sio-icon {
|
|
162
|
+
flex: 0 0 auto;
|
|
163
|
+
}
|
|
164
|
+
`,
|
|
165
|
+
];
|
|
166
|
+
get resolvedColor() {
|
|
167
|
+
return (chipPalette[`${this.variant}:${this.value}`] || this.color || 'var(--sio-tint)');
|
|
168
|
+
}
|
|
169
|
+
render() {
|
|
170
|
+
return html `
|
|
171
|
+
<span class="chip" style="--chip-color: ${this.resolvedColor};">
|
|
172
|
+
${this.icon ? html `<sio-icon icon=${this.icon} size="10"></sio-icon>` : ''}
|
|
173
|
+
<slot></slot>
|
|
174
|
+
</span>
|
|
175
|
+
`;
|
|
176
|
+
}
|
|
177
|
+
constructor() {
|
|
178
|
+
super(...arguments);
|
|
179
|
+
__runInitializers(this, _icon_extraInitializers);
|
|
180
|
+
}
|
|
181
|
+
static {
|
|
182
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
return SioChip = _classThis;
|
|
186
|
+
})();
|
|
187
|
+
export { SioChip };
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWNoaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFFBQVEsRUFDUixhQUFhLEVBQ2IsR0FBRyxHQUVKLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sZUFBZSxDQUFDO0FBVXZCOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLEdBQTJCO0lBQzFDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGlCQUFpQixFQUFFLHVCQUF1QjtJQUMxQyxXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsYUFBYSxFQUFFLHdCQUF3QjtJQUN2QyxZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLGNBQWMsRUFBRSx5QkFBeUI7SUFDekMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxhQUFhLEVBQUUsd0JBQXdCO0NBQ3hDLENBQUM7QUFFRjs7O0dBR0c7SUFFVSxPQUFPOzRCQURuQixhQUFhLENBQUMsVUFBVSxDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7Ozs7Ozs7Ozs7dUJBQW5CLFNBQVEsV0FBVzs7OzttQ0EyQnJDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztpQ0FJMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQUkxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBSTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQVgzQiwwS0FBZ0IsT0FBTyw2QkFBUCxPQUFPLHlGQUE4QjtZQUlyRCxvS0FBZ0IsS0FBSyw2QkFBTCxLQUFLLHFGQUFNO1lBSTNCLG9LQUFnQixLQUFLLDZCQUFMLEtBQUsscUZBQU07WUFJM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFBTTtZQXhDNUIsNktBd0ZDOzs7O1FBdkZRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QjlCLENBQUM7UUFHRiwyRUFBMkMsU0FBUyxFQUFDO1FBQXJELElBQWdCLE9BQU8sNkNBQThCO1FBQXJELElBQWdCLE9BQU8sbURBQThCO1FBSXJELDZIQUF3QixFQUFFLEdBQUM7UUFGM0IsaUVBQWlFO1FBRWpFLElBQWdCLEtBQUssMkNBQU07UUFBM0IsSUFBZ0IsS0FBSyxpREFBTTtRQUkzQiwySEFBd0IsRUFBRSxHQUFDO1FBRjNCLDBFQUEwRTtRQUUxRSxJQUFnQixLQUFLLDJDQUFNO1FBQTNCLElBQWdCLEtBQUssaURBQU07UUFJM0IseUhBQXVCLEVBQUUsR0FBQztRQUYxQiw2Q0FBNkM7UUFFN0MsSUFBZ0IsSUFBSSwwQ0FBTTtRQUExQixJQUFnQixJQUFJLGdEQUFNO1FBRW5CLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EyQkY7U0FDRixDQUFDO1FBRUYsSUFBWSxhQUFhO1lBQ3ZCLE9BQU8sQ0FDTCxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksaUJBQWlCLENBQ2hGLENBQUM7UUFDSixDQUFDO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBO2dEQUNpQyxJQUFJLENBQUMsYUFBYTtVQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsa0JBQWtCLElBQUksQ0FBQyxJQUFJLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFOzs7S0FHN0UsQ0FBQztRQUNKLENBQUM7Ozs7OztZQXZGVSx1REFBTzs7Ozs7U0FBUCxPQUFPIn0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-icon.js';
|
|
3
|
+
import './sio-kbd.js';
|
|
4
|
+
/**
|
|
5
|
+
* sio-cmdk — v7 command palette overlay (SocialIODesktop.jsx `SIOCmdK`
|
|
6
|
+
* + socialio.css `.sio-cmdk*`).
|
|
7
|
+
*
|
|
8
|
+
* Scrim rgba(0,0,0,.32) + blur(6px), 640px panel at 14vh on --sio-surface,
|
|
9
|
+
* radius 14, deep shadow + 0.5px hairline ring. Search row with magnifier,
|
|
10
|
+
* query input and an `esc` kbd hint; grouped results with uppercase 11/600
|
|
11
|
+
* section headers; rows of 18px glyph + 14px label + right kbd chord.
|
|
12
|
+
* Active row = tint-soft wash + tint text.
|
|
13
|
+
*
|
|
14
|
+
* Keyboard: ↑/↓ move (wrapping), Enter runs the active item, Esc closes.
|
|
15
|
+
* Typing filters items across all sections; empty sections disappear.
|
|
16
|
+
*
|
|
17
|
+
* Events: `cmdk-run` { id } · `cmdk-close` (both bubble + composed).
|
|
18
|
+
* The host owns the `open` flag — the palette never hides itself.
|
|
19
|
+
*/
|
|
20
|
+
export interface ISioCmdkItem {
|
|
21
|
+
id: string;
|
|
22
|
+
/** lucide icon name rendered through sio-icon (18px glyph slot). */
|
|
23
|
+
icon: string;
|
|
24
|
+
label: string;
|
|
25
|
+
/** keyboard chord hint, e.g. '⇧R' or 'G I'. */
|
|
26
|
+
shortcut?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ISioCmdkSection {
|
|
29
|
+
name: string;
|
|
30
|
+
items: ISioCmdkItem[];
|
|
31
|
+
}
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLElementTagNameMap {
|
|
34
|
+
'sio-cmdk': SioCmdk;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export declare class SioCmdk extends DeesElement {
|
|
38
|
+
static demo: () => TemplateResult<1>;
|
|
39
|
+
/** Grouped commands; filtered live against `query`. */
|
|
40
|
+
accessor sections: ISioCmdkSection[];
|
|
41
|
+
/** Host-owned visibility flag (wire ⌘K / cmdk-close in the app shell). */
|
|
42
|
+
accessor open: boolean;
|
|
43
|
+
/** Current filter text — settable to preseed, updated as the user types. */
|
|
44
|
+
accessor query: string;
|
|
45
|
+
accessor placeholder: string;
|
|
46
|
+
private accessor activeIndex;
|
|
47
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
48
|
+
private getFilteredSections;
|
|
49
|
+
private getFlatItems;
|
|
50
|
+
willUpdate(): void;
|
|
51
|
+
updated(changedPropertiesArg: Map<PropertyKey, unknown>): void;
|
|
52
|
+
private handleInput;
|
|
53
|
+
private handleKeydown;
|
|
54
|
+
private scrollActiveRowIntoView;
|
|
55
|
+
private handleBackdropClick;
|
|
56
|
+
private runItem;
|
|
57
|
+
private close;
|
|
58
|
+
render(): TemplateResult;
|
|
59
|
+
}
|