@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
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-icon.js';
|
|
3
|
+
import './sio-button.js';
|
|
2
4
|
export interface IDropdownMenuItem {
|
|
3
5
|
id: string;
|
|
4
6
|
label: string;
|
|
@@ -17,16 +19,14 @@ export declare class SioDropdownMenu extends DeesElement {
|
|
|
17
19
|
accessor items: IDropdownMenuItem[];
|
|
18
20
|
accessor align: 'left' | 'right';
|
|
19
21
|
private accessor isOpen;
|
|
20
|
-
private documentClickHandler
|
|
21
|
-
private
|
|
22
|
-
private resizeHandler;
|
|
22
|
+
private documentClickHandler?;
|
|
23
|
+
private resizeHandler?;
|
|
23
24
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
24
25
|
render(): TemplateResult;
|
|
25
26
|
private toggleDropdown;
|
|
26
|
-
private updateDropdownPosition;
|
|
27
27
|
private handleItemClick;
|
|
28
|
-
private
|
|
29
|
-
private
|
|
28
|
+
private addDocumentListeners;
|
|
29
|
+
private removeDocumentListeners;
|
|
30
30
|
disconnectedCallback(): Promise<void>;
|
|
31
31
|
close(): void;
|
|
32
32
|
}
|
|
@@ -1,41 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
{
|
|
12
|
-
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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, property, html, customElement, css, state, } from '@design.estate/dees-element';
|
|
36
|
+
import { sioElementStyles } from './tokens.js';
|
|
37
|
+
import './sio-icon.js';
|
|
38
|
+
import './sio-button.js';
|
|
39
|
+
let SioDropdownMenu = (() => {
|
|
40
|
+
let _classDecorators = [customElement('sio-dropdown-menu')];
|
|
41
|
+
let _classDescriptor;
|
|
42
|
+
let _classExtraInitializers = [];
|
|
43
|
+
let _classThis;
|
|
44
|
+
let _classSuper = DeesElement;
|
|
45
|
+
let _items_decorators;
|
|
46
|
+
let _items_initializers = [];
|
|
47
|
+
let _items_extraInitializers = [];
|
|
48
|
+
let _align_decorators;
|
|
49
|
+
let _align_initializers = [];
|
|
50
|
+
let _align_extraInitializers = [];
|
|
51
|
+
let _isOpen_decorators;
|
|
52
|
+
let _isOpen_initializers = [];
|
|
53
|
+
let _isOpen_extraInitializers = [];
|
|
54
|
+
var SioDropdownMenu = class extends _classSuper {
|
|
55
|
+
static { _classThis = this; }
|
|
56
|
+
static {
|
|
57
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
58
|
+
_items_decorators = [property({ type: Array })];
|
|
59
|
+
_align_decorators = [property({ type: String })];
|
|
60
|
+
_isOpen_decorators = [state()];
|
|
61
|
+
__esDecorate(this, null, _items_decorators, { kind: "accessor", name: "items", static: false, private: false, access: { has: obj => "items" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);
|
|
62
|
+
__esDecorate(this, null, _align_decorators, { kind: "accessor", name: "align", static: false, private: false, access: { has: obj => "align" in obj, get: obj => obj.align, set: (obj, value) => { obj.align = value; } }, metadata: _metadata }, _align_initializers, _align_extraInitializers);
|
|
63
|
+
__esDecorate(this, null, _isOpen_decorators, { kind: "accessor", name: "isOpen", static: false, private: false, access: { has: obj => "isOpen" in obj, get: obj => obj.isOpen, set: (obj, value) => { obj.isOpen = value; } }, metadata: _metadata }, _isOpen_initializers, _isOpen_extraInitializers);
|
|
64
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
65
|
+
SioDropdownMenu = _classThis = _classDescriptor.value;
|
|
66
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
67
|
+
}
|
|
68
|
+
static demo = () => html `
|
|
69
|
+
<div
|
|
70
|
+
style="position: relative; height: 320px; display: flex; justify-content: center; padding-top: 40px; background: var(--sio-bg); border-radius: 14px;"
|
|
71
|
+
>
|
|
72
|
+
<sio-dropdown-menu
|
|
73
|
+
.items=${[
|
|
74
|
+
{ id: 'reply', label: 'Reply', icon: 'reply' },
|
|
75
|
+
{ id: 'forward', label: 'Forward', icon: 'forward' },
|
|
76
|
+
{ id: 'divider1', label: '', divider: true },
|
|
77
|
+
{ id: 'later', label: 'Move to Later', icon: 'clock' },
|
|
78
|
+
{ id: 'done', label: 'Mark as Done', icon: 'check' },
|
|
79
|
+
{ id: 'pin', label: 'Pin conversation', icon: 'pin' },
|
|
80
|
+
{ id: 'mute', label: 'Mute notifications', icon: 'bell-off', disabled: true },
|
|
81
|
+
{ id: 'divider2', label: '', divider: true },
|
|
82
|
+
{ id: 'block', label: 'Block sender', icon: 'user-x', destructive: true },
|
|
83
|
+
{ id: 'delete', label: 'Delete thread', icon: 'trash-2', destructive: true },
|
|
84
|
+
]}
|
|
85
|
+
>
|
|
86
|
+
<sio-button type="outline" size="sm">
|
|
87
|
+
<sio-icon icon="ellipsis" size="15"></sio-icon>
|
|
88
|
+
Thread actions
|
|
19
89
|
</sio-button>
|
|
20
90
|
</sio-dropdown-menu>
|
|
21
91
|
</div>
|
|
22
92
|
`;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
93
|
+
#items_accessor_storage = __runInitializers(this, _items_initializers, []);
|
|
94
|
+
get items() { return this.#items_accessor_storage; }
|
|
95
|
+
set items(value) { this.#items_accessor_storage = value; }
|
|
96
|
+
#align_accessor_storage = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _align_initializers, 'right'));
|
|
97
|
+
get align() { return this.#align_accessor_storage; }
|
|
98
|
+
set align(value) { this.#align_accessor_storage = value; }
|
|
99
|
+
#isOpen_accessor_storage = (__runInitializers(this, _align_extraInitializers), __runInitializers(this, _isOpen_initializers, false));
|
|
100
|
+
get isOpen() { return this.#isOpen_accessor_storage; }
|
|
101
|
+
set isOpen(value) { this.#isOpen_accessor_storage = value; }
|
|
102
|
+
documentClickHandler = __runInitializers(this, _isOpen_extraInitializers);
|
|
103
|
+
resizeHandler;
|
|
104
|
+
static styles = [
|
|
105
|
+
...sioElementStyles,
|
|
106
|
+
css `
|
|
35
107
|
:host {
|
|
36
108
|
position: relative;
|
|
37
109
|
display: inline-block;
|
|
38
|
-
font-family:
|
|
110
|
+
font-family: var(--sio-font-sf);
|
|
39
111
|
}
|
|
40
112
|
|
|
41
113
|
.trigger {
|
|
@@ -44,19 +116,23 @@ export class SioDropdownMenu extends DeesElement {
|
|
|
44
116
|
|
|
45
117
|
.dropdown {
|
|
46
118
|
position: absolute;
|
|
47
|
-
top: calc(100% +
|
|
119
|
+
top: calc(100% + 8px);
|
|
48
120
|
right: 0;
|
|
49
|
-
min-width:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
border-radius:
|
|
53
|
-
|
|
54
|
-
|
|
121
|
+
min-width: 210px;
|
|
122
|
+
padding: 5px;
|
|
123
|
+
background: var(--sio-surface);
|
|
124
|
+
border-radius: var(--sio-radius-md);
|
|
125
|
+
/* hairline ring + soft depth, per the v7 floating-surface recipe */
|
|
126
|
+
box-shadow:
|
|
127
|
+
0 18px 50px rgba(0, 0, 0, 0.22),
|
|
128
|
+
0 0 0 var(--sio-hairline) var(--sio-separator);
|
|
55
129
|
z-index: 100000;
|
|
56
130
|
opacity: 0;
|
|
57
|
-
transform: translateY(-
|
|
131
|
+
transform: translateY(-8px) scale(0.96);
|
|
58
132
|
pointer-events: none;
|
|
59
|
-
transition:
|
|
133
|
+
transition:
|
|
134
|
+
opacity 160ms ease,
|
|
135
|
+
transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
60
136
|
transform-origin: top right;
|
|
61
137
|
}
|
|
62
138
|
|
|
@@ -75,48 +151,52 @@ export class SioDropdownMenu extends DeesElement {
|
|
|
75
151
|
.menu-item {
|
|
76
152
|
display: flex;
|
|
77
153
|
align-items: center;
|
|
78
|
-
gap:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
line-height: 1.5;
|
|
82
|
-
color: ${bdTheme('foreground')};
|
|
83
|
-
cursor: pointer;
|
|
84
|
-
transition: ${unsafeCSS(transitions.all)};
|
|
85
|
-
user-select: none;
|
|
154
|
+
gap: 10px;
|
|
155
|
+
width: 100%;
|
|
156
|
+
padding: 8px 10px;
|
|
86
157
|
border: none;
|
|
158
|
+
border-radius: var(--sio-radius-sm);
|
|
87
159
|
background: none;
|
|
88
|
-
|
|
160
|
+
font-family: var(--sio-font-sf);
|
|
161
|
+
font-size: 13px;
|
|
162
|
+
font-weight: 500;
|
|
163
|
+
letter-spacing: -0.08px;
|
|
164
|
+
line-height: 18px;
|
|
89
165
|
text-align: left;
|
|
166
|
+
color: var(--sio-label);
|
|
167
|
+
cursor: pointer;
|
|
168
|
+
transition: background 80ms ease;
|
|
169
|
+
user-select: none;
|
|
90
170
|
}
|
|
91
171
|
|
|
92
172
|
.menu-item:hover:not(.disabled) {
|
|
93
|
-
background:
|
|
173
|
+
background: var(--sio-surface-2);
|
|
94
174
|
}
|
|
95
175
|
|
|
96
176
|
.menu-item:active:not(.disabled) {
|
|
97
|
-
|
|
177
|
+
background: color-mix(in oklab, var(--sio-label) 10%, transparent);
|
|
98
178
|
}
|
|
99
179
|
|
|
100
180
|
.menu-item.disabled {
|
|
101
|
-
opacity: 0.
|
|
102
|
-
cursor:
|
|
181
|
+
opacity: 0.4;
|
|
182
|
+
cursor: default;
|
|
103
183
|
}
|
|
104
184
|
|
|
105
185
|
.menu-item.destructive {
|
|
106
|
-
color:
|
|
186
|
+
color: var(--sio-red);
|
|
107
187
|
}
|
|
108
188
|
|
|
109
189
|
.menu-item.destructive:hover:not(.disabled) {
|
|
110
|
-
background:
|
|
190
|
+
background: color-mix(in oklab, var(--sio-red) 10%, transparent);
|
|
111
191
|
}
|
|
112
192
|
|
|
113
193
|
.menu-icon {
|
|
114
194
|
flex-shrink: 0;
|
|
115
|
-
color:
|
|
195
|
+
color: var(--sio-label-3);
|
|
116
196
|
}
|
|
117
197
|
|
|
118
198
|
.menu-item.destructive .menu-icon {
|
|
119
|
-
color:
|
|
199
|
+
color: var(--sio-red);
|
|
120
200
|
}
|
|
121
201
|
|
|
122
202
|
.menu-label {
|
|
@@ -124,130 +204,104 @@ export class SioDropdownMenu extends DeesElement {
|
|
|
124
204
|
}
|
|
125
205
|
|
|
126
206
|
.divider {
|
|
127
|
-
height:
|
|
128
|
-
background:
|
|
129
|
-
margin:
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/* Mobile adjustments */
|
|
133
|
-
@media (max-width: 600px) {
|
|
134
|
-
.dropdown {
|
|
135
|
-
position: fixed;
|
|
136
|
-
top: auto !important;
|
|
137
|
-
left: ${unsafeCSS(spacing["4"])} !important;
|
|
138
|
-
right: ${unsafeCSS(spacing["4"])};
|
|
139
|
-
bottom: ${unsafeCSS(spacing["4"])};
|
|
140
|
-
width: auto;
|
|
141
|
-
transform-origin: bottom center;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.dropdown.open {
|
|
145
|
-
transform: translateY(0) scale(1);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
.dropdown:not(.open) {
|
|
149
|
-
transform: translateY(10px) scale(0.95);
|
|
150
|
-
}
|
|
207
|
+
height: var(--sio-hairline);
|
|
208
|
+
background: var(--sio-separator);
|
|
209
|
+
margin: 4px 6px;
|
|
151
210
|
}
|
|
152
211
|
`,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
212
|
+
];
|
|
213
|
+
render() {
|
|
214
|
+
return html `
|
|
156
215
|
<div class="trigger" @click=${this.toggleDropdown}>
|
|
157
216
|
<slot></slot>
|
|
158
217
|
</div>
|
|
159
218
|
<div class="dropdown ${this.isOpen ? 'open' : ''} align-${this.align}">
|
|
160
|
-
${this.items.map(item => item.divider
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
219
|
+
${this.items.map((item) => item.divider
|
|
220
|
+
? html `<div class="divider"></div>`
|
|
221
|
+
: html `
|
|
222
|
+
<button
|
|
223
|
+
class="menu-item ${item.destructive ? 'destructive' : ''} ${item.disabled
|
|
224
|
+
? 'disabled'
|
|
225
|
+
: ''}"
|
|
226
|
+
@click=${() => this.handleItemClick(item)}
|
|
227
|
+
?disabled=${item.disabled}
|
|
228
|
+
>
|
|
229
|
+
${item.icon
|
|
230
|
+
? html `<sio-icon class="menu-icon" icon="${item.icon}" size="15"></sio-icon>`
|
|
231
|
+
: ''}
|
|
232
|
+
<span class="menu-label">${item.label}</span>
|
|
233
|
+
</button>
|
|
234
|
+
`)}
|
|
174
235
|
</div>
|
|
175
236
|
`;
|
|
176
|
-
}
|
|
177
|
-
toggleDropdown = (e) => {
|
|
178
|
-
console.log('[Dropdown] Toggle called, current state:', this.isOpen);
|
|
179
|
-
e.preventDefault();
|
|
180
|
-
e.stopPropagation();
|
|
181
|
-
this.isOpen = !this.isOpen;
|
|
182
|
-
console.log('[Dropdown] New state:', this.isOpen);
|
|
183
|
-
if (this.isOpen) {
|
|
184
|
-
this.addDocumentListener();
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
this.removeDocumentListener();
|
|
188
237
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
handleItemClick(item) {
|
|
196
|
-
if (item.disabled || item.divider)
|
|
197
|
-
return;
|
|
198
|
-
this.isOpen = false;
|
|
199
|
-
this.removeDocumentListener();
|
|
200
|
-
// Dispatch custom event with the selected item
|
|
201
|
-
this.dispatchEvent(new CustomEvent('item-selected', {
|
|
202
|
-
detail: { item },
|
|
203
|
-
bubbles: true,
|
|
204
|
-
composed: true
|
|
205
|
-
}));
|
|
206
|
-
}
|
|
207
|
-
addDocumentListener() {
|
|
208
|
-
// Close dropdown when clicking outside
|
|
209
|
-
this.documentClickHandler = (e) => {
|
|
210
|
-
const path = e.composedPath();
|
|
211
|
-
if (!path.includes(this)) {
|
|
212
|
-
this.isOpen = false;
|
|
213
|
-
this.removeDocumentListener();
|
|
238
|
+
toggleDropdown = (e) => {
|
|
239
|
+
e.preventDefault();
|
|
240
|
+
e.stopPropagation();
|
|
241
|
+
this.isOpen = !this.isOpen;
|
|
242
|
+
if (this.isOpen) {
|
|
243
|
+
this.addDocumentListeners();
|
|
214
244
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
this.scrollHandler = () => this.updateDropdownPosition();
|
|
218
|
-
this.resizeHandler = () => {
|
|
219
|
-
this.updateDropdownPosition();
|
|
220
|
-
if (window.innerWidth <= 600) {
|
|
221
|
-
// Close on mobile resize to prevent positioning issues
|
|
222
|
-
this.isOpen = false;
|
|
223
|
-
this.removeDocumentListener();
|
|
245
|
+
else {
|
|
246
|
+
this.removeDocumentListeners();
|
|
224
247
|
}
|
|
225
248
|
};
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
249
|
+
handleItemClick(item) {
|
|
250
|
+
if (item.disabled || item.divider)
|
|
251
|
+
return;
|
|
252
|
+
this.isOpen = false;
|
|
253
|
+
this.removeDocumentListeners();
|
|
254
|
+
this.dispatchEvent(new CustomEvent('item-selected', {
|
|
255
|
+
detail: { item },
|
|
256
|
+
bubbles: true,
|
|
257
|
+
composed: true,
|
|
258
|
+
}));
|
|
236
259
|
}
|
|
237
|
-
|
|
238
|
-
|
|
260
|
+
addDocumentListeners() {
|
|
261
|
+
// Close when clicking outside the component.
|
|
262
|
+
this.documentClickHandler = (e) => {
|
|
263
|
+
const path = e.composedPath();
|
|
264
|
+
if (!path.includes(this)) {
|
|
265
|
+
this.close();
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
// Close on small viewports to avoid stale absolute positioning.
|
|
269
|
+
this.resizeHandler = () => {
|
|
270
|
+
if (window.innerWidth <= 600) {
|
|
271
|
+
this.close();
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
// Delay to avoid the opening click closing the menu again.
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
if (!this.documentClickHandler || !this.resizeHandler)
|
|
277
|
+
return;
|
|
278
|
+
document.addEventListener('click', this.documentClickHandler);
|
|
279
|
+
window.addEventListener('resize', this.resizeHandler);
|
|
280
|
+
}, 0);
|
|
239
281
|
}
|
|
240
|
-
|
|
241
|
-
|
|
282
|
+
removeDocumentListeners() {
|
|
283
|
+
if (this.documentClickHandler) {
|
|
284
|
+
document.removeEventListener('click', this.documentClickHandler);
|
|
285
|
+
this.documentClickHandler = undefined;
|
|
286
|
+
}
|
|
287
|
+
if (this.resizeHandler) {
|
|
288
|
+
window.removeEventListener('resize', this.resizeHandler);
|
|
289
|
+
this.resizeHandler = undefined;
|
|
290
|
+
}
|
|
242
291
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
292
|
+
async disconnectedCallback() {
|
|
293
|
+
await super.disconnectedCallback();
|
|
294
|
+
this.removeDocumentListeners();
|
|
295
|
+
}
|
|
296
|
+
close() {
|
|
297
|
+
this.isOpen = false;
|
|
298
|
+
this.removeDocumentListeners();
|
|
299
|
+
}
|
|
300
|
+
static {
|
|
301
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
return SioDropdownMenu = _classThis;
|
|
305
|
+
})();
|
|
306
|
+
export { SioDropdownMenu };
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWRyb3Bkb3duLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWRyb3Bkb3duLW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBQ2IsR0FBRyxFQUNILEtBQUssR0FFTixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGVBQWUsQ0FBQztBQUN2QixPQUFPLGlCQUFpQixDQUFDO0lBa0JaLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7OytCQUFuQixTQUFRLFdBQVc7Ozs7aUNBMkI3QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7aUNBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztrQ0FHMUIsS0FBSyxFQUFFO1lBTFIsb0tBQWdCLEtBQUssNkJBQUwsS0FBSyxxRkFBMkI7WUFHaEQsb0tBQWdCLEtBQUssNkJBQUwsS0FBSyxxRkFBNkI7WUFHbEQsdUtBQWlCLE1BQU0sNkJBQU4sTUFBTSx1RkFBa0I7WUFsQzNDLDZLQXlQQzs7OztRQXhQUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7aUJBS2hCO1lBQ1AsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM5QyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3BELEVBQUUsRUFBRSxFQUFFLFVBQVUs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
|
|
@@ -1,20 +1,38 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import './sio-icon.js';
|
|
3
|
+
import './sio-unread-badge.js';
|
|
2
4
|
declare global {
|
|
3
5
|
interface HTMLElementTagNameMap {
|
|
4
6
|
'sio-fab': SioFab;
|
|
5
7
|
}
|
|
6
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* sio-fab — the widget launcher bubble (v7 SocialIOWidget.jsx SIOWidgetLauncher).
|
|
11
|
+
*
|
|
12
|
+
* 56px circle on solid system tint with the white social.io chat glyph,
|
|
13
|
+
* tinted ambient shadow (40% tint) plus a soft contact shadow. Unread
|
|
14
|
+
* count sits top-right as a red pill with a 2px page-surface ring.
|
|
15
|
+
* While the combox is open the glyph swaps to a chevron-down.
|
|
16
|
+
*
|
|
17
|
+
* Owns the SioCombox singleton: creates it on <body>, toggles it on
|
|
18
|
+
* click and on Ctrl+S, and mirrors its open state.
|
|
19
|
+
*/
|
|
7
20
|
export declare class SioFab extends DeesElement {
|
|
8
|
-
accessor showCombox: boolean;
|
|
9
|
-
private accessor hasShownOnce;
|
|
10
|
-
private accessor shouldPulse;
|
|
11
21
|
static demo: () => TemplateResult<1>;
|
|
22
|
+
/** mirrors the combox open state (chevron glyph while open) */
|
|
23
|
+
accessor showCombox: boolean;
|
|
24
|
+
/** unread conversation count — red pill on the launcher while closed */
|
|
25
|
+
accessor unread: number;
|
|
12
26
|
constructor();
|
|
27
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
13
28
|
render(): TemplateResult;
|
|
14
29
|
/**
|
|
15
30
|
* toggles the combox
|
|
16
31
|
*/
|
|
17
32
|
toggleCombox(): Promise<void>;
|
|
18
|
-
|
|
19
|
-
|
|
33
|
+
private comboxCloseHandler;
|
|
34
|
+
private comboxRef;
|
|
35
|
+
firstUpdated(args: Map<PropertyKey, unknown>): Promise<void>;
|
|
36
|
+
disconnectedCallback(): Promise<void>;
|
|
37
|
+
updated(changedProperties: Map<PropertyKey, unknown>): Promise<void>;
|
|
20
38
|
}
|