@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,5 +1,24 @@
|
|
|
1
1
|
import { html } from '@design.estate/dees-element';
|
|
2
|
+
/**
|
|
3
|
+
* firstpage — the embeddable widget moment: a host page with the
|
|
4
|
+
* sio-fab launcher (unread pill) anchored bottom-right. Clicking the
|
|
5
|
+
* fab opens the sio-combox singleton it owns.
|
|
6
|
+
*/
|
|
2
7
|
export const firstpage = () => html `
|
|
3
|
-
<
|
|
8
|
+
<div
|
|
9
|
+
style="position: relative; min-height: 100vh; font-family: var(--sio-font-sf); background: var(--sio-bg);"
|
|
10
|
+
>
|
|
11
|
+
<div style="max-width: 560px; margin: 0 auto; padding: 64px 24px;">
|
|
12
|
+
<div style="font-size: 28px; font-weight: 700; letter-spacing: 0.36px; color: var(--sio-label);">
|
|
13
|
+
Orbit — customer page
|
|
14
|
+
</div>
|
|
15
|
+
<div style="margin-top: 10px; font-size: 15px; line-height: 20px; letter-spacing: -0.24px; color: var(--sio-label-3);">
|
|
16
|
+
A stand-in host website. The launcher bubble bottom-right is the
|
|
17
|
+
social.io widget entry point — click it (or press Ctrl+S) to open
|
|
18
|
+
the combox.
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<sio-fab .unread=${2}></sio-fab>
|
|
22
|
+
</div>
|
|
4
23
|
`;
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3RwYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL3BhZ2VzL2ZpcnN0cGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7O3VCQWNaLENBQUM7O0NBRXZCLENBQUMifQ==
|
|
@@ -1 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mainpage — a composed v7 showcase: the unified feed, built from the
|
|
3
|
+
* catalog primitives (sio-segmented, sio-ai-card, sio-inset-list,
|
|
4
|
+
* sio-list-row, sio-avatar, sio-chip). Everything color-related comes
|
|
5
|
+
* from the --sio-* tokens; light/dark follows the theme manager.
|
|
6
|
+
*/
|
|
1
7
|
export declare const mainpage: () => import("@design.estate/dees-element").TemplateResult<1>;
|
|
@@ -1,45 +1,117 @@
|
|
|
1
1
|
import { html } from '@design.estate/dees-element';
|
|
2
|
+
/**
|
|
3
|
+
* mainpage — a composed v7 showcase: the unified feed, built from the
|
|
4
|
+
* catalog primitives (sio-segmented, sio-ai-card, sio-inset-list,
|
|
5
|
+
* sio-list-row, sio-avatar, sio-chip). Everything color-related comes
|
|
6
|
+
* from the --sio-* tokens; light/dark follows the theme manager.
|
|
7
|
+
*/
|
|
2
8
|
export const mainpage = () => html `
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
display: flex;
|
|
12
|
-
align-items: center;
|
|
13
|
-
justify-content: center;
|
|
14
|
-
padding: 0;
|
|
15
|
-
}
|
|
16
|
-
.demo-section {
|
|
17
|
-
background: white;
|
|
18
|
-
border-radius: 8px;
|
|
19
|
-
padding: 40px;
|
|
20
|
-
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
|
21
|
-
max-width: 1200px;
|
|
22
|
-
width: 100%;
|
|
23
|
-
}
|
|
24
|
-
h2 {
|
|
25
|
-
margin-bottom: 20px;
|
|
26
|
-
font-family: sans-serif;
|
|
27
|
-
}
|
|
28
|
-
.component-demo {
|
|
29
|
-
margin: 20px 0;
|
|
30
|
-
position: relative;
|
|
31
|
-
min-height: 700px;
|
|
32
|
-
}
|
|
33
|
-
</style>
|
|
34
|
-
<div class="demo-container">
|
|
35
|
-
<div class="demo-section">
|
|
36
|
-
<h2>Social.io Catalog Components</h2>
|
|
37
|
-
|
|
38
|
-
<div class="component-demo">
|
|
39
|
-
<h3>FAB with Combox Demo</h3>
|
|
40
|
-
<sio-fab .showCombox=${true}></sio-fab>
|
|
9
|
+
<div
|
|
10
|
+
style="min-height: 100vh; padding: 40px 0 64px; background: var(--sio-bg); font-family: var(--sio-font-sf);"
|
|
11
|
+
>
|
|
12
|
+
<div style="max-width: 440px; margin: 0 auto;">
|
|
13
|
+
<div
|
|
14
|
+
style="padding: 0 16px 14px; font-size: 34px; line-height: 41px; font-weight: 700; letter-spacing: 0.37px; color: var(--sio-label);"
|
|
15
|
+
>
|
|
16
|
+
Feed
|
|
41
17
|
</div>
|
|
18
|
+
|
|
19
|
+
<div style="padding: 0 16px 18px;">
|
|
20
|
+
<sio-segmented
|
|
21
|
+
.segments=${[
|
|
22
|
+
{ id: 'priority', label: 'Priority' },
|
|
23
|
+
{ id: 'time', label: 'Timeline' },
|
|
24
|
+
{ id: 'person', label: 'By person' },
|
|
25
|
+
]}
|
|
26
|
+
selected="priority"
|
|
27
|
+
></sio-segmented>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div style="padding: 0 16px 18px;">
|
|
31
|
+
<sio-ai-card label="Morning digest · 3 items">
|
|
32
|
+
<div>Maya needs your revenue split for the Q3 deck before Thursday's board call.</div>
|
|
33
|
+
<div>Finanzamt letter: objection deadline detected — Jul 24 (13 days left).</div>
|
|
34
|
+
<div>Jonas resolved the launch-copy thread; one pricing question stays open.</div>
|
|
35
|
+
</sio-ai-card>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<sio-inset-list header="Now">
|
|
39
|
+
<sio-list-row
|
|
40
|
+
unread
|
|
41
|
+
title="Maya Lindqvist"
|
|
42
|
+
time="09:41"
|
|
43
|
+
subject="Q3 numbers ahead of the board call"
|
|
44
|
+
preview="Attached the deck — the growth slide still needs your revenue split before Thursday. Can you take a pass today?"
|
|
45
|
+
density="comfortable"
|
|
46
|
+
>
|
|
47
|
+
<sio-avatar
|
|
48
|
+
slot="avatar"
|
|
49
|
+
initials="ML"
|
|
50
|
+
tint="#FF6B8A"
|
|
51
|
+
size="30"
|
|
52
|
+
channelBadge="mail"
|
|
53
|
+
></sio-avatar>
|
|
54
|
+
<sio-chip slot="meta" variant="channel" value="mail" icon="envelope">Mail</sio-chip>
|
|
55
|
+
<sio-chip slot="meta" variant="status" value="now">Now</sio-chip>
|
|
56
|
+
</sio-list-row>
|
|
57
|
+
<sio-list-row
|
|
58
|
+
unread
|
|
59
|
+
title="Deutsche Post"
|
|
60
|
+
time="08:55"
|
|
61
|
+
subject="Letter scanned: Finanzamt München"
|
|
62
|
+
preview="2 pages · OCR ready · deadline detected: Jul 24"
|
|
63
|
+
density="comfortable"
|
|
64
|
+
>
|
|
65
|
+
<sio-avatar
|
|
66
|
+
slot="avatar"
|
|
67
|
+
initials="DP"
|
|
68
|
+
tint="var(--sio-ch-letters)"
|
|
69
|
+
size="30"
|
|
70
|
+
channelBadge="letters"
|
|
71
|
+
></sio-avatar>
|
|
72
|
+
<sio-chip slot="meta" variant="channel" value="letters" icon="file-text">Letter</sio-chip>
|
|
73
|
+
<sio-chip slot="meta" variant="lane" value="paper">Paper trail</sio-chip>
|
|
74
|
+
</sio-list-row>
|
|
75
|
+
</sio-inset-list>
|
|
76
|
+
|
|
77
|
+
<div style="height: 22px;"></div>
|
|
78
|
+
|
|
79
|
+
<sio-inset-list header="Today">
|
|
80
|
+
<sio-list-row
|
|
81
|
+
title="Jonas Weber"
|
|
82
|
+
time="08:12"
|
|
83
|
+
subject="Launch copy — final review"
|
|
84
|
+
preview="I folded your edits in. One open question on the pricing line."
|
|
85
|
+
density="cozy"
|
|
86
|
+
>
|
|
87
|
+
<sio-avatar
|
|
88
|
+
slot="avatar"
|
|
89
|
+
initials="JW"
|
|
90
|
+
tint="var(--sio-ch-chats)"
|
|
91
|
+
size="30"
|
|
92
|
+
presence="online"
|
|
93
|
+
></sio-avatar>
|
|
94
|
+
<sio-chip slot="meta" variant="channel" value="chats" icon="message-circle">Chat</sio-chip>
|
|
95
|
+
<sio-chip slot="meta" variant="status" value="today">Today</sio-chip>
|
|
96
|
+
</sio-list-row>
|
|
97
|
+
<sio-list-row
|
|
98
|
+
title="Ana Ferreira"
|
|
99
|
+
time="Tue"
|
|
100
|
+
subject="Missed call · voicemail (0:42)"
|
|
101
|
+
density="cozy"
|
|
102
|
+
>
|
|
103
|
+
<sio-avatar
|
|
104
|
+
slot="avatar"
|
|
105
|
+
initials="AF"
|
|
106
|
+
tint="var(--sio-ch-calls)"
|
|
107
|
+
size="30"
|
|
108
|
+
channelBadge="calls"
|
|
109
|
+
></sio-avatar>
|
|
110
|
+
<sio-chip slot="meta" variant="channel" value="calls" icon="phone">Call</sio-chip>
|
|
111
|
+
<sio-chip slot="meta" variant="status" value="done">Done</sio-chip>
|
|
112
|
+
</sio-list-row>
|
|
113
|
+
</sio-inset-list>
|
|
42
114
|
</div>
|
|
43
115
|
</div>
|
|
44
116
|
`;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvbWFpbnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5EOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7OztzQkFhWjtJQUNWLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQ3JDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQ2pDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0NBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkZWLENBQUMifQ==
|
package/{license → license.md}
RENAMED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020-2026 Task Venture Capital GmbH (hello@task.vc)
|
|
2
4
|
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/package.json
CHANGED
|
@@ -1,33 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@social.io/catalog",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "
|
|
6
|
-
"
|
|
7
|
-
|
|
5
|
+
"description": "v7 Apple-native design system and web components for social.io",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./dist_ts_web/index.js"
|
|
8
|
+
},
|
|
8
9
|
"type": "module",
|
|
9
|
-
"author": "
|
|
10
|
-
"license": "
|
|
10
|
+
"author": "Task Venture Capital GmbH",
|
|
11
|
+
"license": "MIT",
|
|
11
12
|
"dependencies": {
|
|
12
|
-
"@design.estate/dees-domtools": "^2.
|
|
13
|
-
"@design.estate/dees-element": "^2.
|
|
14
|
-
"
|
|
15
|
-
"@losslessone_private/loint-pubapi": "^1.0.14",
|
|
16
|
-
"@social.io/interfaces": "^1.2.1",
|
|
17
|
-
"lucide": "^0.556.0",
|
|
18
|
-
"rrweb": "2.0.0-alpha.4",
|
|
19
|
-
"rrweb-player": "1.0.0-alpha.4",
|
|
20
|
-
"rrweb-snapshot": "2.0.0-alpha.4"
|
|
13
|
+
"@design.estate/dees-domtools": "^2.5.6",
|
|
14
|
+
"@design.estate/dees-element": "^2.4.0",
|
|
15
|
+
"lucide": "^1.16.0"
|
|
21
16
|
},
|
|
22
17
|
"devDependencies": {
|
|
23
|
-
"@git.zone/tsbuild": "^
|
|
24
|
-
"@git.zone/tsbundle": "^2.
|
|
25
|
-
"@git.zone/tsrun": "^2.0.
|
|
26
|
-
"@git.zone/tstest": "^3.
|
|
27
|
-
"@git.zone/tswatch": "^
|
|
28
|
-
"@
|
|
29
|
-
"@
|
|
30
|
-
"@types/node": "^24.10.1"
|
|
18
|
+
"@git.zone/tsbuild": "^4.4.2",
|
|
19
|
+
"@git.zone/tsbundle": "^2.10.0",
|
|
20
|
+
"@git.zone/tsrun": "^2.0.5",
|
|
21
|
+
"@git.zone/tstest": "^3.6.6",
|
|
22
|
+
"@git.zone/tswatch": "^3.3.2",
|
|
23
|
+
"@types/node": "^26.1.0",
|
|
24
|
+
"@design.estate/dees-wcctools": "^3.9.0"
|
|
31
25
|
},
|
|
32
26
|
"files": [
|
|
33
27
|
"ts/**/*",
|
|
@@ -38,7 +32,7 @@
|
|
|
38
32
|
"dist_ts_web/**/*",
|
|
39
33
|
"assets/**/*",
|
|
40
34
|
"cli.js",
|
|
41
|
-
"
|
|
35
|
+
".smartconfig.json",
|
|
42
36
|
"readme.md"
|
|
43
37
|
],
|
|
44
38
|
"browserslist": [
|
|
@@ -46,16 +40,16 @@
|
|
|
46
40
|
],
|
|
47
41
|
"repository": {
|
|
48
42
|
"type": "git",
|
|
49
|
-
"url": "git+https://
|
|
43
|
+
"url": "git+https://code.foss.global/social.io/catalog.git"
|
|
50
44
|
},
|
|
51
45
|
"bugs": {
|
|
52
|
-
"url": "https://
|
|
46
|
+
"url": "https://code.foss.global/social.io/catalog/issues"
|
|
53
47
|
},
|
|
54
|
-
"homepage": "https://
|
|
48
|
+
"homepage": "https://code.foss.global/social.io/catalog#readme",
|
|
55
49
|
"scripts": {
|
|
56
50
|
"test": "tstest test/",
|
|
57
|
-
"build": "tsbuild tsfolders --allowimplicitany
|
|
58
|
-
"watch": "tswatch
|
|
51
|
+
"build": "tsbuild tsfolders --allowimplicitany && tsbundle",
|
|
52
|
+
"watch": "tswatch",
|
|
59
53
|
"buildDocs": "tsdoc"
|
|
60
54
|
}
|
|
61
55
|
}
|
package/readme.hints.md
CHANGED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# @social.io/catalog — hints
|
|
2
|
+
|
|
3
|
+
## v2 architecture (v7 design program)
|
|
4
|
+
|
|
5
|
+
- Pure web-component catalog: Lit via `@design.estate/dees-element` with
|
|
6
|
+
standard TC39 decorators (`@property({ ... }) public accessor x`,
|
|
7
|
+
`@state() private accessor y`). No services, no recorder — the v1
|
|
8
|
+
media-recorder stack was removed.
|
|
9
|
+
- Every element: `@customElement('sio-...')`, a
|
|
10
|
+
`declare global { interface HTMLElementTagNameMap }` entry, a
|
|
11
|
+
`public static demo = () => html\`...\`` with realistic v7 content, and
|
|
12
|
+
`static styles = [...sioElementStyles, css\`...\`]`.
|
|
13
|
+
- Entry points:
|
|
14
|
+
- `ts_web/index.ts` → re-exports `ts_web/elements/index.ts` (the barrel:
|
|
15
|
+
tokens + all components).
|
|
16
|
+
- `html/index.ts` → dees-wcctools catalog with three sections:
|
|
17
|
+
Primitives (all `Sio*` classes except the widget suite), Chat Widget
|
|
18
|
+
(`SioFab`, `SioCombox`, `SioConversationSelector`, `SioConversationView`,
|
|
19
|
+
`SioMessageInput`, `SioImageLightbox`, `SioPdfViewer`), Pages.
|
|
20
|
+
- `ts_web/pages/` — `firstpage` (widget host page with the sio-fab
|
|
21
|
+
launcher), `mainpage` (composed v7 unified-feed showcase:
|
|
22
|
+
segmented + ai-card + inset-list + list-rows + avatars + chips).
|
|
23
|
+
- Build: `pnpm build` = `tsbuild tsfolders` (no skipLibCheck) + `tsbundle`.
|
|
24
|
+
Dev: `pnpm watch` (tswatch serves `html/index.html`).
|
|
25
|
+
- Tests: `test/test.chromium.ts` runs in real Chromium via
|
|
26
|
+
`pnpm test` (tstest). Pattern: construct → append to body →
|
|
27
|
+
`await updateComplete` → assert against `shadowRoot`. Gotcha: the
|
|
28
|
+
dees-domtools base styles put `transition: background .1s, color .1s`
|
|
29
|
+
on `*` — wait ~200ms before asserting a *changed* computed color.
|
|
30
|
+
|
|
31
|
+
## Token system (`ts_web/elements/tokens.ts`)
|
|
32
|
+
|
|
33
|
+
- The only source of color/typography/radius/density values. Components
|
|
34
|
+
never hardcode colors; tints derive with
|
|
35
|
+
`color-mix(in oklab, var(--sio-...) N%, transparent)`. No string
|
|
36
|
+
concatenation on `cssManager.bdTheme(...)` results (the v1 anti-pattern) —
|
|
37
|
+
light/dark pairs live inside tokens.ts, or a component declares its own
|
|
38
|
+
scoped custom prop via `bdTheme` when the value is component-specific
|
|
39
|
+
(e.g. the segmented-control knob).
|
|
40
|
+
- `sioElementStyles = [cssManager.defaultStyles, sioBaseStyles]` — spread it
|
|
41
|
+
first in every element's `static styles`.
|
|
42
|
+
- Custom props (all `--sio-*`): surfaces (`bg`, `bg-grouped`, `surface`,
|
|
43
|
+
`surface-2`), 4-level labels, separators (0.5px hairline convention via
|
|
44
|
+
`--sio-hairline`), tint `#0A84FF` (dark `#409CFF`, hover `#0071E3`/`#64B2FF`,
|
|
45
|
+
soft 10%/18%), channel palette (mail `#0A84FF`, chats `#30D158`,
|
|
46
|
+
calls `#FF9F0A`, letters `#A2845E`), lane palette (feed/paper/people),
|
|
47
|
+
bucket palette (now `#FF453A`, today `#FF9F0A`, later `#8E8E93`,
|
|
48
|
+
done `#30D158`), density row heights 78/62/48px, radii ramp, glass values.
|
|
49
|
+
- Helper CSS fragments: `sioGlass` / `sioToolbarGlass` / `sioPillGlass`
|
|
50
|
+
(backdrop blur 28px saturate 180%), the SF type ramp
|
|
51
|
+
(`sioTypeLargeTitle` … `sioTypeCaption2`, `sioTypeMono`), and
|
|
52
|
+
`sioTabularNums` for any run of digits. `sioTheme` maps token names to
|
|
53
|
+
`var(--sio-*)` strings for inline styles.
|
|
54
|
+
- Icons: `sio-icon` is a thin wrapper over the `lucide` npm package
|
|
55
|
+
(never a CDN), with a small alias map (e.g. `envelope` → `mail`).
|
|
56
|
+
|
|
57
|
+
## Component inventory (27 files / 28 elements)
|
|
58
|
+
|
|
59
|
+
Foundation: `sio-icon`, `sio-button`, `sio-kbd`, `sio-chip`
|
|
60
|
+
(channel/lane/status palettes), `sio-avatar` + `sio-avatar-stack`,
|
|
61
|
+
`sio-unread-badge`.
|
|
62
|
+
|
|
63
|
+
Chrome & navigation: `sio-glass-toolbar`, `sio-segmented`,
|
|
64
|
+
`sio-tab-bar`, `sio-channel-rail`, `sio-dropdown-menu`.
|
|
65
|
+
|
|
66
|
+
Lists & feed: `sio-list-row` (density comfortable/cozy/compact =
|
|
67
|
+
78/62/48px, unread gutter, hover triage actions, inset hairlines),
|
|
68
|
+
`sio-inset-list` (iOS grouped card), `sio-bucket-header`.
|
|
69
|
+
|
|
70
|
+
Content & input: `sio-ai-card`, `sio-composer` (`composer-send` /
|
|
71
|
+
`composer-attach`), `sio-cmdk` (host-owned `open`, `cmdk-run` /
|
|
72
|
+
`cmdk-close`), `sio-waveform`, `sio-step-timeline`, `sio-paper-thumb`.
|
|
73
|
+
|
|
74
|
+
Chat-widget suite (embeddable): `sio-fab` (owns the `SioCombox`
|
|
75
|
+
singleton), `sio-combox` (three states: home list / conversation /
|
|
76
|
+
away email-fallback), `sio-conversation-selector`,
|
|
77
|
+
`sio-conversation-view`, `sio-message-input`, `sio-image-lightbox`,
|
|
78
|
+
`sio-pdf-viewer`.
|
|
79
|
+
|
|
80
|
+
All interactions dispatch `CustomEvent`s with `bubbles: true,
|
|
81
|
+
composed: true`; `render()` stays side-effect free.
|
package/readme.md
CHANGED
|
@@ -1,190 +1,124 @@
|
|
|
1
1
|
# @social.io/catalog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The social.io v7 design system and web component library: Apple-native Lit components for the unified-inbox product family — feed rows, channel navigation, command palette, media primitives, and the embeddable chat-widget suite. Built on [@design.estate/dees-element](https://www.npmjs.com/package/@design.estate/dees-element) (Lit 3, standard TC39 decorators) with a CSS-custom-property token system and full light/dark theming.
|
|
4
4
|
|
|
5
5
|
## Issue Reporting and Security
|
|
6
6
|
|
|
7
7
|
For reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
- **Complete Chat UI** - Ready-to-use conversation components with message threads, typing indicators, and attachments
|
|
12
|
-
- **Floating Action Button** - Eye-catching FAB with smooth animations for triggering the chat interface
|
|
13
|
-
- **PDF Viewer** - Built-in PDF rendering with zoom, pagination, and download capabilities
|
|
14
|
-
- **Image Lightbox** - Full-featured lightbox with zoom, pan, and keyboard navigation
|
|
15
|
-
- **Modern Design Tokens** - Consistent styling with customizable colors, spacing, typography, and shadows
|
|
16
|
-
- **Dark Mode Ready** - Full light/dark theme support out of the box
|
|
17
|
-
- **Accessibility** - Keyboard navigation and proper ARIA attributes
|
|
18
|
-
- **TypeScript First** - Full type definitions for all components
|
|
19
|
-
|
|
20
|
-
## 📦 Installation
|
|
9
|
+
## Install
|
|
21
10
|
|
|
22
11
|
```bash
|
|
23
|
-
npm install @social.io/catalog
|
|
24
|
-
# or
|
|
25
12
|
pnpm add @social.io/catalog
|
|
26
13
|
```
|
|
27
14
|
|
|
28
|
-
##
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
import { SioFab, SioCombox } from '@social.io/catalog';
|
|
32
|
-
|
|
33
|
-
// Components auto-register as custom elements
|
|
34
|
-
// Just use them in your HTML:
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
```html
|
|
38
|
-
<!-- Floating Action Button that opens the chat -->
|
|
39
|
-
<sio-fab></sio-fab>
|
|
40
|
-
|
|
41
|
-
<!-- Or use the full chat box directly -->
|
|
42
|
-
<sio-combox></sio-combox>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## 🧩 Components
|
|
46
|
-
|
|
47
|
-
### Core Components
|
|
48
|
-
|
|
49
|
-
| Component | Description |
|
|
50
|
-
|-----------|-------------|
|
|
51
|
-
| `<sio-fab>` | Floating action button with animated chat icon |
|
|
52
|
-
| `<sio-combox>` | Complete chat interface with conversation list and message view |
|
|
53
|
-
| `<sio-button>` | Styled button with variants (primary, secondary, destructive, outline, ghost) |
|
|
54
|
-
| `<sio-icon>` | Lucide icon wrapper with size and color customization |
|
|
55
|
-
| `<sio-dropdown-menu>` | Animated dropdown menu with keyboard support |
|
|
56
|
-
|
|
57
|
-
### Conversation Components
|
|
58
|
-
|
|
59
|
-
| Component | Description |
|
|
60
|
-
|-----------|-------------|
|
|
61
|
-
| `<sio-conversation-selector>` | Searchable list of conversations with unread indicators |
|
|
62
|
-
| `<sio-conversation-view>` | Message thread with typing indicators and file attachments |
|
|
63
|
-
| `<sio-message-input>` | Auto-expanding textarea with file upload |
|
|
64
|
-
|
|
65
|
-
### Media Components
|
|
66
|
-
|
|
67
|
-
| Component | Description |
|
|
68
|
-
|-----------|-------------|
|
|
69
|
-
| `<sio-image-lightbox>` | Fullscreen image viewer with zoom and pan |
|
|
70
|
-
| `<sio-pdf-viewer>` | PDF renderer with page navigation and zoom controls |
|
|
71
|
-
|
|
72
|
-
### Utility Components
|
|
73
|
-
|
|
74
|
-
| Component | Description |
|
|
75
|
-
|-----------|-------------|
|
|
76
|
-
| `<sio-recorder>` | Session recording using rrweb |
|
|
77
|
-
|
|
78
|
-
## 💅 Styling & Theming
|
|
15
|
+
## Design System
|
|
79
16
|
|
|
80
|
-
|
|
17
|
+
Every component draws exclusively from the token layer in `tokens.ts`:
|
|
81
18
|
|
|
82
|
-
- **
|
|
83
|
-
- **
|
|
84
|
-
- **
|
|
85
|
-
- **
|
|
86
|
-
- **
|
|
87
|
-
- **
|
|
19
|
+
- **Semantic surfaces** — `--sio-bg`, `--sio-surface`, `--sio-surface-2`, four label levels, and 0.5px hairline separators, switching between iOS-style light (`#F2F2F7`/`#FFFFFF`) and true-black dark (`#000`/`#1C1C1E`).
|
|
20
|
+
- **Tint** — `--sio-tint` `#0A84FF`, deliberately brightened to `#409CFF` in dark mode, with hover and soft (translucent) variants.
|
|
21
|
+
- **Channel palette** — mail `#0A84FF`, chats `#30D158`, calls `#FF9F0A`, letters `#A2845E`; lane palette (feed/paper/people) and triage-bucket palette (now/today/later/done) alongside.
|
|
22
|
+
- **Density** — `--sio-row-comfortable` 78px, `--sio-row-cozy` 62px, `--sio-row-compact` 48px.
|
|
23
|
+
- **Glass recipes** — `sioGlass`, `sioToolbarGlass`, `sioPillGlass` (backdrop blur + saturate) as reusable CSS fragments.
|
|
24
|
+
- **SF type ramp** — `sioTypeLargeTitle` (34/700) through `sioTypeCaption2` (11/400), tabular numerals for counts and times.
|
|
88
25
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
Dark mode is automatically supported. The components use `bdTheme()` helper that switches between light and dark values:
|
|
26
|
+
Theming follows the ambient theme via `cssManager.bdTheme()` pairs, with explicit `:host([theme='dark'])` / `:host([dark])` attribute overrides.
|
|
92
27
|
|
|
93
28
|
```typescript
|
|
94
|
-
import {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
29
|
+
import { css } from '@design.estate/dees-element';
|
|
30
|
+
import { sioElementStyles } from '@social.io/catalog';
|
|
31
|
+
|
|
32
|
+
// in your own component:
|
|
33
|
+
public static styles = [
|
|
34
|
+
...sioElementStyles,
|
|
35
|
+
css`
|
|
36
|
+
.bar { background: var(--sio-surface); color: var(--sio-tint); }
|
|
37
|
+
`,
|
|
38
|
+
];
|
|
100
39
|
```
|
|
101
40
|
|
|
102
|
-
##
|
|
103
|
-
|
|
104
|
-
|
|
41
|
+
## Components
|
|
42
|
+
|
|
43
|
+
Components auto-register as custom elements on import.
|
|
44
|
+
|
|
45
|
+
### Foundation
|
|
46
|
+
|
|
47
|
+
| Element | Purpose |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| `sio-icon` | Lucide icon renderer (`icon`, `size`, `color`, `strokeWidth`) |
|
|
50
|
+
| `sio-button` | Primary / secondary / destructive / outline / ghost variants, sm–lg sizes, status spinner |
|
|
51
|
+
| `sio-avatar` / `sio-avatar-stack` | Initials-on-tint circles with presence dot, channel badge, overlapping stacks |
|
|
52
|
+
| `sio-chip` | Channel / lane / status chips (uppercase 11px on soft color-mix background) |
|
|
53
|
+
| `sio-unread-badge` | Count pills in channel colors, rail-sized variant |
|
|
54
|
+
| `sio-kbd` | Keyboard-shortcut hint chip (mono, hairline border) |
|
|
55
|
+
|
|
56
|
+
### Chrome and navigation
|
|
57
|
+
|
|
58
|
+
| Element | Purpose |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| `sio-glass-toolbar` | 44px glass bar with start/center/end slots |
|
|
61
|
+
| `sio-segmented` | iOS-style segmented control with counts |
|
|
62
|
+
| `sio-tab-bar` | Mobile bottom glass bar, channel tabs + optional calendar |
|
|
63
|
+
| `sio-channel-rail` | 64px desktop rail with per-channel unread badges |
|
|
64
|
+
| `sio-dropdown-menu` | Slot-triggered menu with destructive/disabled items |
|
|
65
|
+
|
|
66
|
+
### Lists and feed
|
|
67
|
+
|
|
68
|
+
| Element | Purpose |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| `sio-list-row` | Universal row: three densities, unread-dot gutter, selection tint, hover action slot |
|
|
71
|
+
| `sio-inset-list` | iOS grouped card list with inset hairlines and section headers |
|
|
72
|
+
| `sio-bucket-header` | Triage-bucket header (colored dot + uppercase label + count) |
|
|
73
|
+
|
|
74
|
+
### Content and input
|
|
75
|
+
|
|
76
|
+
| Element | Purpose |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `sio-ai-card` | AI summary/translation surface (soft tint, uppercase eyebrow, bullets) |
|
|
79
|
+
| `sio-composer` | Pill input + circular send button, attach slot, email-capture variant |
|
|
80
|
+
| `sio-cmdk` | Command palette: search, grouped results, keyboard navigation, kbd chords |
|
|
81
|
+
| `sio-waveform` | Voicemail player bar chart with progress coloring and counters |
|
|
82
|
+
| `sio-step-timeline` | Vertical tracking timeline (done/pending steps) |
|
|
83
|
+
| `sio-paper-thumb` | Physical-letter thumbnail (torn-edge inbound / stamped outbound) |
|
|
84
|
+
|
|
85
|
+
### Embeddable chat-widget suite
|
|
86
|
+
|
|
87
|
+
| Element | Purpose |
|
|
88
|
+
| --- | --- |
|
|
89
|
+
| `sio-fab` | 56px tinted launcher with unread badge and open/close crossfade |
|
|
90
|
+
| `sio-combox` | The widget shell (380×620, singleton `createOnBody()`), welcome → conversation → away states, "Powered by social.io" footer |
|
|
91
|
+
| `sio-conversation-selector` | Gradient-header welcome pane: team avatar stack, recent conversation, CTA, FAQ list |
|
|
92
|
+
| `sio-conversation-view` | Message thread: glass header with presence, bubbles, typing indicator, away→email notice |
|
|
93
|
+
| `sio-message-input` | Composer wrapper with attachments and email-capture mode |
|
|
94
|
+
| `sio-image-lightbox` / `sio-pdf-viewer` | Attachment viewers (zoom/pan images, paginated PDFs) |
|
|
105
95
|
|
|
106
96
|
```html
|
|
97
|
+
<!-- Drop-in chat widget -->
|
|
107
98
|
<sio-fab></sio-fab>
|
|
108
99
|
```
|
|
109
100
|
|
|
110
|
-
The FAB opens a complete chat interface when clicked. It includes:
|
|
111
|
-
- Keyboard shortcut (Ctrl+S) to toggle
|
|
112
|
-
- Smooth scale and pulse animations
|
|
113
|
-
- Gradient background with glow effects
|
|
114
|
-
|
|
115
|
-
### Custom Button Variants
|
|
116
|
-
|
|
117
|
-
```html
|
|
118
|
-
<sio-button type="primary">Submit</sio-button>
|
|
119
|
-
<sio-button type="destructive">Delete</sio-button>
|
|
120
|
-
<sio-button type="outline">Cancel</sio-button>
|
|
121
|
-
<sio-button type="ghost" size="sm">
|
|
122
|
-
<sio-icon icon="settings"></sio-icon>
|
|
123
|
-
</sio-button>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### Image Lightbox
|
|
127
|
-
|
|
128
101
|
```typescript
|
|
129
|
-
|
|
130
|
-
lightbox.open({
|
|
131
|
-
url: 'https://example.com/photo.jpg',
|
|
132
|
-
name: 'My Photo',
|
|
133
|
-
size: 1024000
|
|
134
|
-
});
|
|
135
|
-
```
|
|
102
|
+
import { SioCombox } from '@social.io/catalog';
|
|
136
103
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```html
|
|
140
|
-
<sio-pdf-viewer
|
|
141
|
-
url="https://example.com/document.pdf"
|
|
142
|
-
fileName="document.pdf"
|
|
143
|
-
></sio-pdf-viewer>
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Dropdown Menu
|
|
147
|
-
|
|
148
|
-
```html
|
|
149
|
-
<sio-dropdown-menu
|
|
150
|
-
.items=${[
|
|
151
|
-
{ id: 'edit', label: 'Edit', icon: 'pencil' },
|
|
152
|
-
{ id: 'delete', label: 'Delete', icon: 'trash', destructive: true }
|
|
153
|
-
]}
|
|
154
|
-
@item-selected=${(e) => console.log('Selected:', e.detail.item)}
|
|
155
|
-
>
|
|
156
|
-
<sio-button type="ghost">
|
|
157
|
-
<sio-icon icon="more-vertical"></sio-icon>
|
|
158
|
-
</sio-button>
|
|
159
|
-
</sio-dropdown-menu>
|
|
104
|
+
const combox = SioCombox.createOnBody();
|
|
105
|
+
combox.open();
|
|
160
106
|
```
|
|
161
107
|
|
|
162
|
-
##
|
|
108
|
+
## Development
|
|
163
109
|
|
|
164
110
|
```bash
|
|
165
|
-
# Install dependencies
|
|
166
111
|
pnpm install
|
|
167
|
-
|
|
168
|
-
#
|
|
169
|
-
pnpm
|
|
170
|
-
|
|
171
|
-
# Run tests
|
|
172
|
-
pnpm test
|
|
173
|
-
|
|
174
|
-
# Build for production
|
|
175
|
-
pnpm build
|
|
112
|
+
pnpm watch # wcctools component dashboard on http://localhost:3002
|
|
113
|
+
pnpm test # Chromium component tests via @git.zone/tstest
|
|
114
|
+
pnpm build # tsbuild + tsbundle
|
|
176
115
|
```
|
|
177
116
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
- **@design.estate/dees-element** - Lit Element base with utilities
|
|
181
|
-
- **@design.estate/dees-domtools** - DOM manipulation helpers
|
|
182
|
-
- **lucide** - Beautiful open-source icons
|
|
183
|
-
- **rrweb** - Session recording/replay (for recorder component)
|
|
117
|
+
Every component ships a `static demo` rendered in the wcctools dashboard, grouped into Primitives, Chat Widget, and Pages sections, with light/dark and viewport switching.
|
|
184
118
|
|
|
185
119
|
## License and Legal Information
|
|
186
120
|
|
|
187
|
-
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [
|
|
121
|
+
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license.md](./license.md) file.
|
|
188
122
|
|
|
189
123
|
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
|
|
190
124
|
|