@social.io/catalog 1.3.0 → 2.1.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 +5455 -3248
- package/dist_ts_web/00_commitinfo_data.js +3 -3
- package/dist_ts_web/elements/index.d.ts +21 -3
- package/dist_ts_web/elements/index.js +28 -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 +38 -0
- package/dist_ts_web/elements/sio-channel-rail.js +288 -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-logo-render.d.ts +42 -0
- package/dist_ts_web/elements/sio-logo-render.js +306 -0
- package/dist_ts_web/elements/sio-logo.d.ts +64 -0
- package/dist_ts_web/elements/sio-logo.js +393 -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 +82 -0
- package/readme.md +113 -146
- package/ts_web/00_commitinfo_data.ts +2 -2
- package/ts_web/elements/index.ts +31 -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 +256 -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-logo-render.ts +367 -0
- package/ts_web/elements/sio-logo.ts +311 -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,28 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-list-row.js';
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
'sio-inset-list': SioInsetList;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* sio-inset-list — iOS grouped ("inset") card list container
|
|
10
|
+
* (design source: SIORowMobile groups in SocialIOiOS.jsx).
|
|
11
|
+
*
|
|
12
|
+
* Rounds children into an 18px card on the grouped canvas with 16px side
|
|
13
|
+
* margins (mobile), separates them with 0.5px inset hairlines, and takes an
|
|
14
|
+
* optional uppercase section header at the 32px inset.
|
|
15
|
+
*
|
|
16
|
+
* Separators: `sio-list-row` children draw their own text-aligned inset
|
|
17
|
+
* hairline (auto-hidden on the last row); all other children get a plain
|
|
18
|
+
* hairline between siblings from this container.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SioInsetList extends DeesElement {
|
|
21
|
+
static demo: () => TemplateResult<1>;
|
|
22
|
+
/** Optional uppercase section header rendered above the card at the 32px inset. */
|
|
23
|
+
accessor header: string;
|
|
24
|
+
/** Drops the 16px side margins (embedding in desktop columns). */
|
|
25
|
+
accessor flush: boolean;
|
|
26
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
27
|
+
render(): TemplateResult;
|
|
28
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
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-list-row.js';
|
|
38
|
+
/**
|
|
39
|
+
* sio-inset-list — iOS grouped ("inset") card list container
|
|
40
|
+
* (design source: SIORowMobile groups in SocialIOiOS.jsx).
|
|
41
|
+
*
|
|
42
|
+
* Rounds children into an 18px card on the grouped canvas with 16px side
|
|
43
|
+
* margins (mobile), separates them with 0.5px inset hairlines, and takes an
|
|
44
|
+
* optional uppercase section header at the 32px inset.
|
|
45
|
+
*
|
|
46
|
+
* Separators: `sio-list-row` children draw their own text-aligned inset
|
|
47
|
+
* hairline (auto-hidden on the last row); all other children get a plain
|
|
48
|
+
* hairline between siblings from this container.
|
|
49
|
+
*/
|
|
50
|
+
let SioInsetList = (() => {
|
|
51
|
+
let _classDecorators = [customElement('sio-inset-list')];
|
|
52
|
+
let _classDescriptor;
|
|
53
|
+
let _classExtraInitializers = [];
|
|
54
|
+
let _classThis;
|
|
55
|
+
let _classSuper = DeesElement;
|
|
56
|
+
let _header_decorators;
|
|
57
|
+
let _header_initializers = [];
|
|
58
|
+
let _header_extraInitializers = [];
|
|
59
|
+
let _flush_decorators;
|
|
60
|
+
let _flush_initializers = [];
|
|
61
|
+
let _flush_extraInitializers = [];
|
|
62
|
+
var SioInsetList = class extends _classSuper {
|
|
63
|
+
static { _classThis = this; }
|
|
64
|
+
static {
|
|
65
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
66
|
+
_header_decorators = [property({ type: String })];
|
|
67
|
+
_flush_decorators = [property({ type: Boolean, reflect: true })];
|
|
68
|
+
__esDecorate(this, null, _header_decorators, { kind: "accessor", name: "header", static: false, private: false, access: { has: obj => "header" in obj, get: obj => obj.header, set: (obj, value) => { obj.header = value; } }, metadata: _metadata }, _header_initializers, _header_extraInitializers);
|
|
69
|
+
__esDecorate(this, null, _flush_decorators, { kind: "accessor", name: "flush", static: false, private: false, access: { has: obj => "flush" in obj, get: obj => obj.flush, set: (obj, value) => { obj.flush = value; } }, metadata: _metadata }, _flush_initializers, _flush_extraInitializers);
|
|
70
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
71
|
+
SioInsetList = _classThis = _classDescriptor.value;
|
|
72
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
|
+
}
|
|
74
|
+
static demo = () => html `
|
|
75
|
+
<div style="max-width: 420px; background: var(--sio-bg); padding: 18px 0; font-family: var(--sio-font-sf); border-radius: 12px;">
|
|
76
|
+
<sio-inset-list header="Today">
|
|
77
|
+
<sio-list-row
|
|
78
|
+
unread
|
|
79
|
+
title="Maya Lindqvist"
|
|
80
|
+
time="09:41"
|
|
81
|
+
subject="Q3 numbers ahead of the board call"
|
|
82
|
+
preview="Attached the deck — the growth slide still needs your revenue split before Thursday."
|
|
83
|
+
density="comfortable"
|
|
84
|
+
>
|
|
85
|
+
<span
|
|
86
|
+
slot="avatar"
|
|
87
|
+
style="width: 30px; height: 30px; border-radius: 50%; background: var(--sio-ch-mail); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; letter-spacing: -0.2px;"
|
|
88
|
+
>ML</span>
|
|
89
|
+
</sio-list-row>
|
|
90
|
+
<sio-list-row
|
|
91
|
+
unread
|
|
92
|
+
title="Jonas Weber"
|
|
93
|
+
time="08:12"
|
|
94
|
+
subject="Launch copy — final review"
|
|
95
|
+
preview="I folded your edits in. One open question on the pricing line."
|
|
96
|
+
density="comfortable"
|
|
97
|
+
>
|
|
98
|
+
<span
|
|
99
|
+
slot="avatar"
|
|
100
|
+
style="width: 30px; height: 30px; border-radius: 50%; background: var(--sio-ch-chats); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; letter-spacing: -0.2px;"
|
|
101
|
+
>JW</span>
|
|
102
|
+
</sio-list-row>
|
|
103
|
+
<sio-list-row
|
|
104
|
+
title="Deutsche Post"
|
|
105
|
+
time="Yesterday"
|
|
106
|
+
subject="Letter scanned: Finanzamt München"
|
|
107
|
+
preview="2 pages · OCR ready · deadline detected: Jul 24"
|
|
108
|
+
density="comfortable"
|
|
109
|
+
>
|
|
110
|
+
<span
|
|
111
|
+
slot="avatar"
|
|
112
|
+
style="width: 30px; height: 30px; border-radius: 50%; background: var(--sio-ch-letters); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; letter-spacing: -0.2px;"
|
|
113
|
+
>DP</span>
|
|
114
|
+
</sio-list-row>
|
|
115
|
+
</sio-inset-list>
|
|
116
|
+
<div style="height: 18px;"></div>
|
|
117
|
+
<sio-inset-list header="Notifications">
|
|
118
|
+
<div style="padding: 12px 16px; font-size: 15px; color: var(--sio-label); display: flex; align-items: center;">
|
|
119
|
+
<span style="flex: 1;">Priority only</span>
|
|
120
|
+
<span style="font-size: 15px; color: var(--sio-label-3);">On</span>
|
|
121
|
+
</div>
|
|
122
|
+
<div style="padding: 12px 16px; font-size: 15px; color: var(--sio-label); display: flex; align-items: center;">
|
|
123
|
+
<span style="flex: 1;">Quiet hours</span>
|
|
124
|
+
<span style="font-size: 15px; color: var(--sio-label-3);">22:00 – 07:00</span>
|
|
125
|
+
</div>
|
|
126
|
+
<div style="padding: 12px 16px; font-size: 15px; color: var(--sio-tint);">Add exception…</div>
|
|
127
|
+
</sio-inset-list>
|
|
128
|
+
</div>
|
|
129
|
+
`;
|
|
130
|
+
#header_accessor_storage = __runInitializers(this, _header_initializers, '');
|
|
131
|
+
/** Optional uppercase section header rendered above the card at the 32px inset. */
|
|
132
|
+
get header() { return this.#header_accessor_storage; }
|
|
133
|
+
set header(value) { this.#header_accessor_storage = value; }
|
|
134
|
+
#flush_accessor_storage = (__runInitializers(this, _header_extraInitializers), __runInitializers(this, _flush_initializers, false));
|
|
135
|
+
/** Drops the 16px side margins (embedding in desktop columns). */
|
|
136
|
+
get flush() { return this.#flush_accessor_storage; }
|
|
137
|
+
set flush(value) { this.#flush_accessor_storage = value; }
|
|
138
|
+
static styles = [
|
|
139
|
+
...sioElementStyles,
|
|
140
|
+
css `
|
|
141
|
+
:host {
|
|
142
|
+
display: block;
|
|
143
|
+
font-family: var(--sio-font-sf);
|
|
144
|
+
}
|
|
145
|
+
.section-header {
|
|
146
|
+
padding: 6px 32px;
|
|
147
|
+
font-size: 13px;
|
|
148
|
+
font-weight: 600;
|
|
149
|
+
color: var(--sio-label-3);
|
|
150
|
+
letter-spacing: -0.08px;
|
|
151
|
+
text-transform: uppercase;
|
|
152
|
+
}
|
|
153
|
+
:host([flush]) .section-header {
|
|
154
|
+
padding: 6px 16px;
|
|
155
|
+
}
|
|
156
|
+
.card {
|
|
157
|
+
background: var(--sio-surface);
|
|
158
|
+
margin: 0 16px;
|
|
159
|
+
border-radius: 18px;
|
|
160
|
+
overflow: hidden;
|
|
161
|
+
}
|
|
162
|
+
:host([flush]) .card {
|
|
163
|
+
margin: 0;
|
|
164
|
+
}
|
|
165
|
+
/* plain hairline between non-row children; sio-list-row draws its own
|
|
166
|
+
inset hairline and hides it on :last-child itself */
|
|
167
|
+
::slotted(:not(sio-list-row):not(:last-child)) {
|
|
168
|
+
border-bottom: var(--sio-hairline) solid var(--sio-separator);
|
|
169
|
+
}
|
|
170
|
+
`,
|
|
171
|
+
];
|
|
172
|
+
render() {
|
|
173
|
+
return html `
|
|
174
|
+
${this.header ? html `<div class="section-header">${this.header}</div>` : html ``}
|
|
175
|
+
<div class="card">
|
|
176
|
+
<slot></slot>
|
|
177
|
+
</div>
|
|
178
|
+
`;
|
|
179
|
+
}
|
|
180
|
+
constructor() {
|
|
181
|
+
super(...arguments);
|
|
182
|
+
__runInitializers(this, _flush_extraInitializers);
|
|
183
|
+
}
|
|
184
|
+
static {
|
|
185
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
return SioInsetList = _classThis;
|
|
189
|
+
})();
|
|
190
|
+
export { SioInsetList };
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWluc2V0LWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWluc2V0LWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFFBQVEsRUFDUixhQUFhLEVBQ2IsR0FBRyxHQUVKLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFRM0I7Ozs7Ozs7Ozs7O0dBV0c7SUFFVSxZQUFZOzRCQUR4QixhQUFhLENBQUMsZ0JBQWdCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs0QkFBbkIsU0FBUSxXQUFXOzs7O2tDQTJEMUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQUkxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUgzQyx1S0FBZ0IsTUFBTSw2QkFBTixNQUFNLHVGQUFNO1lBSTVCLG9LQUFnQixLQUFLLDZCQUFMLEtBQUsscUZBQVM7WUFoRWhDLDZLQTZHQzs7OztRQTVHUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVEOUIsQ0FBQztRQUlGLHlFQUF5QixFQUFFLEVBQUM7UUFGNUIsbUZBQW1GO1FBRW5GLElBQWdCLE1BQU0sNENBQU07UUFBNUIsSUFBZ0IsTUFBTSxrREFBTTtRQUk1Qiw0SEFBd0IsS0FBSyxHQUFDO1FBRjlCLGtFQUFrRTtRQUVsRSxJQUFnQixLQUFLLDJDQUFTO1FBQTlCLElBQWdCLEtBQUssaURBQVM7UUFFdkIsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQThCRjtTQUNGLENBQUM7UUFFSyxNQUFNO1lBQ1gsT0FBTyxJQUFJLENBQUE7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsK0JBQStCLElBQUksQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7Ozs7S0FJaEYsQ0FBQztRQUNKLENBQUM7Ozs7OztZQTVHVSx1REFBWTs7Ozs7U0FBWixZQUFZIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'sio-kbd': SioKbd;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* sio-kbd — keyboard hint chip (v7 `.sio-kbd`): mono 11px on surface-2
|
|
9
|
+
* with a 0.5px hairline border and 4px radius. Shown in toolbars and the
|
|
10
|
+
* command palette, e.g. ⌘R (reply), E (archive), ⌘K (commands).
|
|
11
|
+
*/
|
|
12
|
+
export declare class SioKbd extends DeesElement {
|
|
13
|
+
static demo: () => TemplateResult<1>;
|
|
14
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
15
|
+
render(): TemplateResult;
|
|
16
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
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, customElement, css, } from '@design.estate/dees-element';
|
|
36
|
+
import { sioElementStyles } from './tokens.js';
|
|
37
|
+
/**
|
|
38
|
+
* sio-kbd — keyboard hint chip (v7 `.sio-kbd`): mono 11px on surface-2
|
|
39
|
+
* with a 0.5px hairline border and 4px radius. Shown in toolbars and the
|
|
40
|
+
* command palette, e.g. ⌘R (reply), E (archive), ⌘K (commands).
|
|
41
|
+
*/
|
|
42
|
+
let SioKbd = (() => {
|
|
43
|
+
let _classDecorators = [customElement('sio-kbd')];
|
|
44
|
+
let _classDescriptor;
|
|
45
|
+
let _classExtraInitializers = [];
|
|
46
|
+
let _classThis;
|
|
47
|
+
let _classSuper = DeesElement;
|
|
48
|
+
var SioKbd = class extends _classSuper {
|
|
49
|
+
static { _classThis = this; }
|
|
50
|
+
static {
|
|
51
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
52
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
53
|
+
SioKbd = _classThis = _classDescriptor.value;
|
|
54
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
55
|
+
}
|
|
56
|
+
static demo = () => html `
|
|
57
|
+
<div style="display: flex; flex-direction: column; gap: 14px;">
|
|
58
|
+
<div style="display: flex; gap: 6px; align-items: center;">
|
|
59
|
+
<sio-kbd>⌘K</sio-kbd>
|
|
60
|
+
<sio-kbd>⌘R</sio-kbd>
|
|
61
|
+
<sio-kbd>⇧⌘A</sio-kbd>
|
|
62
|
+
<sio-kbd>E</sio-kbd>
|
|
63
|
+
<sio-kbd>⌫</sio-kbd>
|
|
64
|
+
<sio-kbd>esc</sio-kbd>
|
|
65
|
+
</div>
|
|
66
|
+
<div style="display: flex; gap: 14px; align-items: center; font-size: 12px;">
|
|
67
|
+
<span style="display: inline-flex; gap: 5px; align-items: center;">
|
|
68
|
+
Reply <sio-kbd>⌘R</sio-kbd>
|
|
69
|
+
</span>
|
|
70
|
+
<span style="display: inline-flex; gap: 5px; align-items: center;">
|
|
71
|
+
Archive <sio-kbd>E</sio-kbd>
|
|
72
|
+
</span>
|
|
73
|
+
<span style="display: inline-flex; gap: 5px; align-items: center;">
|
|
74
|
+
Snooze <sio-kbd>H</sio-kbd>
|
|
75
|
+
</span>
|
|
76
|
+
<span style="display: inline-flex; gap: 5px; align-items: center;">
|
|
77
|
+
Commands <sio-kbd>⌘K</sio-kbd>
|
|
78
|
+
</span>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
`;
|
|
82
|
+
static styles = [
|
|
83
|
+
...sioElementStyles,
|
|
84
|
+
css `
|
|
85
|
+
:host {
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
flex-shrink: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* v7 .sio-kbd */
|
|
91
|
+
.kbd {
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: 2px;
|
|
95
|
+
padding: 1px 5px;
|
|
96
|
+
border-radius: var(--sio-radius-xs);
|
|
97
|
+
background: var(--sio-surface-2);
|
|
98
|
+
color: var(--sio-label-2);
|
|
99
|
+
font-family: var(--sio-font-mono);
|
|
100
|
+
font-size: 11px;
|
|
101
|
+
border: var(--sio-hairline) solid var(--sio-separator);
|
|
102
|
+
white-space: nowrap;
|
|
103
|
+
user-select: none;
|
|
104
|
+
}
|
|
105
|
+
`,
|
|
106
|
+
];
|
|
107
|
+
render() {
|
|
108
|
+
return html `<span class="kbd"><slot></slot></span>`;
|
|
109
|
+
}
|
|
110
|
+
static {
|
|
111
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
return SioKbd = _classThis;
|
|
115
|
+
})();
|
|
116
|
+
export { SioKbd };
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWtiZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zaW8ta2JkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBQ2IsR0FBRyxHQUVKLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUS9DOzs7O0dBSUc7SUFFVSxNQUFNOzRCQURsQixhQUFhLENBQUMsU0FBUyxDQUFDOzs7O3NCQUNHLFdBQVc7c0JBQW5CLFNBQVEsV0FBVzs7OztZQUF2Qyw2S0F5REM7Ozs7UUF4RFEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5QjlCLENBQUM7UUFFSyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBcUJGO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQSx3Q0FBd0MsQ0FBQztRQUN0RCxDQUFDOztZQXhEVSx1REFBTTs7Ozs7U0FBTixNQUFNIn0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-icon.js';
|
|
3
|
+
/**
|
|
4
|
+
* Row density per the v7 spec — comfortable 78px / cozy 62px / compact 48px
|
|
5
|
+
* (`--sio-row-*` tokens) with 14 / 11 / 8px vertical padding.
|
|
6
|
+
*/
|
|
7
|
+
export type TSioListRowDensity = 'comfortable' | 'cozy' | 'compact';
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
'sio-list-row': SioListRow;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* sio-list-row — the universal list row of social.io v7
|
|
15
|
+
* (thread lists, unified feed, search results, person history).
|
|
16
|
+
*
|
|
17
|
+
* Anatomy (design source: SIODesktopRow / SIOUniRow / SIORowMobile):
|
|
18
|
+
* [8px unread-dot gutter] [avatar slot] [line1: title + trailing + time]
|
|
19
|
+
* [line2: subject]
|
|
20
|
+
* [preview — clamped 2/1/0 lines]
|
|
21
|
+
* [meta slot — chips]
|
|
22
|
+
* plus a hover-revealed trailing `actions` slot (triage: done/snooze/draft)
|
|
23
|
+
* and a 0.5px inset hairline between rows (hidden on the last row).
|
|
24
|
+
*
|
|
25
|
+
* Slots:
|
|
26
|
+
* avatar — leading avatar (any element; 30px at cozy/comfortable, 24px compact)
|
|
27
|
+
* line1-trailing — small trailing adornments on line 1 (count, star, paperclip)
|
|
28
|
+
* meta — chip row (lane/channel chips, AI summary chip); hidden at compact
|
|
29
|
+
* actions — desktop triage actions, revealed on hover (opacity 0 -> 1, .12s)
|
|
30
|
+
*
|
|
31
|
+
* Events:
|
|
32
|
+
* row-select — bubbles/composed; fired on click or Enter/Space
|
|
33
|
+
* (not fired for clicks inside the `actions` slot).
|
|
34
|
+
*/
|
|
35
|
+
export declare class SioListRow extends DeesElement {
|
|
36
|
+
static demo: () => TemplateResult<1>;
|
|
37
|
+
accessor title: string;
|
|
38
|
+
/** Trailing timestamp on line 1 — rendered with tabular-nums. */
|
|
39
|
+
accessor time: string;
|
|
40
|
+
/** Line 2 — subject / one-line summary. Tinted when the row is selected. */
|
|
41
|
+
accessor subject: string;
|
|
42
|
+
/** Optional preview text — clamped to 2 lines (comfortable) / 1 line (cozy), hidden at compact. */
|
|
43
|
+
accessor preview: string;
|
|
44
|
+
accessor density: TSioListRowDensity;
|
|
45
|
+
/** Shows the 8px tint dot in the leading gutter. */
|
|
46
|
+
accessor unread: boolean;
|
|
47
|
+
/** Selected state — tint-soft background, tinted subject line. */
|
|
48
|
+
accessor selected: boolean;
|
|
49
|
+
private accessor hasMeta;
|
|
50
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
51
|
+
render(): TemplateResult;
|
|
52
|
+
private handleMetaSlotChange;
|
|
53
|
+
private handleSelect;
|
|
54
|
+
private handleKeydown;
|
|
55
|
+
}
|