@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.
Files changed (124) hide show
  1. package/.smartconfig.json +51 -0
  2. package/dist_bundle/bundle.js +5450 -3267
  3. package/dist_ts_web/00_commitinfo_data.js +3 -3
  4. package/dist_ts_web/elements/index.d.ts +20 -3
  5. package/dist_ts_web/elements/index.js +27 -7
  6. package/dist_ts_web/elements/sio-ai-card.d.ts +39 -0
  7. package/dist_ts_web/elements/sio-ai-card.js +229 -0
  8. package/dist_ts_web/elements/sio-avatar.d.ts +46 -0
  9. package/dist_ts_web/elements/sio-avatar.js +379 -0
  10. package/dist_ts_web/elements/sio-bucket-header.d.ts +36 -0
  11. package/dist_ts_web/elements/sio-bucket-header.js +197 -0
  12. package/dist_ts_web/elements/sio-button.d.ts +7 -3
  13. package/dist_ts_web/elements/sio-button.js +253 -152
  14. package/dist_ts_web/elements/sio-channel-rail.d.ts +37 -0
  15. package/dist_ts_web/elements/sio-channel-rail.js +275 -0
  16. package/dist_ts_web/elements/sio-chip.d.ts +25 -0
  17. package/dist_ts_web/elements/sio-chip.js +188 -0
  18. package/dist_ts_web/elements/sio-cmdk.d.ts +59 -0
  19. package/dist_ts_web/elements/sio-cmdk.js +471 -0
  20. package/dist_ts_web/elements/sio-combox.d.ts +55 -1
  21. package/dist_ts_web/elements/sio-combox.js +458 -261
  22. package/dist_ts_web/elements/sio-composer.d.ts +48 -0
  23. package/dist_ts_web/elements/sio-composer.js +357 -0
  24. package/dist_ts_web/elements/sio-conversation-selector.d.ts +41 -1
  25. package/dist_ts_web/elements/sio-conversation-selector.js +426 -238
  26. package/dist_ts_web/elements/sio-conversation-view.d.ts +34 -6
  27. package/dist_ts_web/elements/sio-conversation-view.js +738 -564
  28. package/dist_ts_web/elements/sio-dropdown-menu.d.ts +6 -6
  29. package/dist_ts_web/elements/sio-dropdown-menu.js +223 -169
  30. package/dist_ts_web/elements/sio-fab.d.ts +23 -5
  31. package/dist_ts_web/elements/sio-fab.js +259 -235
  32. package/dist_ts_web/elements/sio-glass-toolbar.d.ts +22 -0
  33. package/dist_ts_web/elements/sio-glass-toolbar.js +178 -0
  34. package/dist_ts_web/elements/sio-icon.d.ts +1 -0
  35. package/dist_ts_web/elements/sio-icon.js +254 -94
  36. package/dist_ts_web/elements/sio-image-lightbox.d.ts +3 -4
  37. package/dist_ts_web/elements/sio-image-lightbox.js +282 -191
  38. package/dist_ts_web/elements/sio-inset-list.d.ts +28 -0
  39. package/dist_ts_web/elements/sio-inset-list.js +191 -0
  40. package/dist_ts_web/elements/sio-kbd.d.ts +16 -0
  41. package/dist_ts_web/elements/sio-kbd.js +117 -0
  42. package/dist_ts_web/elements/sio-list-row.d.ts +55 -0
  43. package/dist_ts_web/elements/sio-list-row.js +462 -0
  44. package/dist_ts_web/elements/sio-message-input.d.ts +25 -4
  45. package/dist_ts_web/elements/sio-message-input.js +231 -226
  46. package/dist_ts_web/elements/sio-paper-thumb.d.ts +24 -0
  47. package/dist_ts_web/elements/sio-paper-thumb.js +293 -0
  48. package/dist_ts_web/elements/sio-pdf-viewer.d.ts +2 -0
  49. package/dist_ts_web/elements/sio-pdf-viewer.js +344 -244
  50. package/dist_ts_web/elements/sio-segmented.d.ts +32 -0
  51. package/dist_ts_web/elements/sio-segmented.js +217 -0
  52. package/dist_ts_web/elements/sio-step-timeline.d.ts +28 -0
  53. package/dist_ts_web/elements/sio-step-timeline.js +222 -0
  54. package/dist_ts_web/elements/sio-tab-bar.d.ts +36 -0
  55. package/dist_ts_web/elements/sio-tab-bar.js +232 -0
  56. package/dist_ts_web/elements/sio-unread-badge.d.ts +25 -0
  57. package/dist_ts_web/elements/sio-unread-badge.js +203 -0
  58. package/dist_ts_web/elements/sio-waveform.d.ts +34 -0
  59. package/dist_ts_web/elements/sio-waveform.js +304 -0
  60. package/dist_ts_web/elements/tokens.d.ts +70 -0
  61. package/dist_ts_web/elements/tokens.js +277 -0
  62. package/dist_ts_web/pages/firstpage.d.ts +5 -0
  63. package/dist_ts_web/pages/firstpage.js +21 -2
  64. package/dist_ts_web/pages/mainpage.d.ts +6 -0
  65. package/dist_ts_web/pages/mainpage.js +111 -39
  66. package/{license → license.md} +3 -1
  67. package/package.json +23 -29
  68. package/readme.hints.md +81 -0
  69. package/readme.md +85 -151
  70. package/ts_web/00_commitinfo_data.ts +2 -2
  71. package/ts_web/elements/index.ts +30 -7
  72. package/ts_web/elements/sio-ai-card.ts +175 -0
  73. package/ts_web/elements/sio-avatar.ts +295 -0
  74. package/ts_web/elements/sio-bucket-header.ts +157 -0
  75. package/ts_web/elements/sio-button.ts +149 -127
  76. package/ts_web/elements/sio-channel-rail.ts +243 -0
  77. package/ts_web/elements/sio-chip.ts +134 -0
  78. package/ts_web/elements/sio-cmdk.ts +461 -0
  79. package/ts_web/elements/sio-combox.ts +327 -204
  80. package/ts_web/elements/sio-composer.ts +306 -0
  81. package/ts_web/elements/sio-conversation-selector.ts +350 -228
  82. package/ts_web/elements/sio-conversation-view.ts +573 -457
  83. package/ts_web/elements/sio-dropdown-menu.ts +112 -130
  84. package/ts_web/elements/sio-fab.ts +192 -227
  85. package/ts_web/elements/sio-glass-toolbar.ts +140 -0
  86. package/ts_web/elements/sio-icon.ts +147 -25
  87. package/ts_web/elements/sio-image-lightbox.ts +62 -64
  88. package/ts_web/elements/sio-inset-list.ts +140 -0
  89. package/ts_web/elements/sio-kbd.ts +80 -0
  90. package/ts_web/elements/sio-list-row.ts +393 -0
  91. package/ts_web/elements/sio-message-input.ts +142 -221
  92. package/ts_web/elements/sio-paper-thumb.ts +244 -0
  93. package/ts_web/elements/sio-pdf-viewer.ts +58 -60
  94. package/ts_web/elements/sio-segmented.ts +183 -0
  95. package/ts_web/elements/sio-step-timeline.ts +179 -0
  96. package/ts_web/elements/sio-tab-bar.ts +195 -0
  97. package/ts_web/elements/sio-unread-badge.ts +147 -0
  98. package/ts_web/elements/sio-waveform.ts +239 -0
  99. package/ts_web/elements/tokens.ts +297 -0
  100. package/ts_web/pages/firstpage.ts +20 -1
  101. package/ts_web/pages/mainpage.ts +111 -39
  102. package/dist_bundle/bundle.js.map +0 -7
  103. package/dist_ts_web/elements/00colors.d.ts +0 -108
  104. package/dist_ts_web/elements/00colors.js +0 -137
  105. package/dist_ts_web/elements/00fonts.d.ts +0 -60
  106. package/dist_ts_web/elements/00fonts.js +0 -129
  107. package/dist_ts_web/elements/00tokens.d.ts +0 -123
  108. package/dist_ts_web/elements/00tokens.js +0 -176
  109. package/dist_ts_web/elements/sio-conversation-list.d.ts +0 -20
  110. package/dist_ts_web/elements/sio-conversation-list.js +0 -495
  111. package/dist_ts_web/elements/sio-recorder.d.ts +0 -60
  112. package/dist_ts_web/elements/sio-recorder.js +0 -173
  113. package/dist_ts_web/elements/sio-subwidget-conversations.d.ts +0 -16
  114. package/dist_ts_web/elements/sio-subwidget-conversations.js +0 -350
  115. package/dist_ts_web/elements/sio-subwidget-onboardme.d.ts +0 -7
  116. package/dist_ts_web/elements/sio-subwidget-onboardme.js +0 -243
  117. package/dist_watch/bundle.js +0 -81694
  118. package/dist_watch/bundle.js.map +0 -7
  119. package/dist_watch/index.html +0 -25
  120. package/npmextra.json +0 -19
  121. package/ts_web/elements/00colors.ts +0 -164
  122. package/ts_web/elements/00fonts.ts +0 -145
  123. package/ts_web/elements/00tokens.ts +0 -197
  124. 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
- <sio-fab></sio-fab>
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3RwYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL3BhZ2VzL2ZpcnN0cGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Q0FFbEMsQ0FBQyJ9
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
- <style>
4
- body {
5
- margin: 0;
6
- padding: 0;
7
- background: #f5f5f5;
8
- }
9
- .demo-container {
10
- min-height: 100vh;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvbWFpbnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytCQXNDSCxJQUFJOzs7O0NBSWxDLENBQUMifQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvbWFpbnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5EOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7OztzQkFhWjtJQUNWLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQ3JDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0lBQ2pDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0NBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkZWLENBQUMifQ==
@@ -1,4 +1,6 @@
1
- Copyright (c) 2020 Lossless GmbH (hello@lossless.com)
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": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "private": false,
5
- "description": "catalog for social.io",
6
- "main": "dist_ts_web/index.js",
7
- "typings": "dist_ts_web/index.d.ts",
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": "Lossless GmbH",
10
- "license": "UNLICENSED",
10
+ "author": "Task Venture Capital GmbH",
11
+ "license": "MIT",
11
12
  "dependencies": {
12
- "@design.estate/dees-domtools": "^2.3.6",
13
- "@design.estate/dees-element": "^2.1.3",
14
- "@design.estate/dees-wcctools": "^1.2.1",
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": "^3.1.2",
24
- "@git.zone/tsbundle": "^2.6.3",
25
- "@git.zone/tsrun": "^2.0.0",
26
- "@git.zone/tstest": "^3.1.3",
27
- "@git.zone/tswatch": "^2.3.5",
28
- "@push.rocks/projectinfo": "^5.0.2",
29
- "@push.rocks/smartenv": "^6.0.0",
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
- "npmextra.json",
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://gitlab.com/social.io/private/catalog.git"
43
+ "url": "git+https://code.foss.global/social.io/catalog.git"
50
44
  },
51
45
  "bugs": {
52
- "url": "https://gitlab.com/social.io/private/catalog/issues"
46
+ "url": "https://code.foss.global/social.io/catalog/issues"
53
47
  },
54
- "homepage": "https://gitlab.com/social.io/private/catalog#readme",
48
+ "homepage": "https://code.foss.global/social.io/catalog#readme",
55
49
  "scripts": {
56
50
  "test": "tstest test/",
57
- "build": "tsbuild tsfolders --allowimplicitany --skiplibcheck && tsbundle element --production",
58
- "watch": "tswatch element",
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
- A modern, beautifully designed UI component library for building conversational interfaces and support chat experiences. Built with Lit Element and TypeScript.
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
- ## 🎯 Features
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
- ## 🚀 Quick Start
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
- The library uses CSS custom properties for theming. The design system includes:
17
+ Every component draws exclusively from the token layer in `tokens.ts`:
81
18
 
82
- - **Colors** - Primary, secondary, accent, destructive, muted, and semantic colors
83
- - **Typography** - System font stack with size and weight variants
84
- - **Spacing** - Consistent spacing scale (0.5rem increments)
85
- - **Radius** - Border radius tokens from sm to full
86
- - **Shadows** - Elevation system from sm to 2xl
87
- - **Transitions** - Smooth animation presets
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
- ### Dark Mode
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 { bdTheme } from '@social.io/catalog';
95
-
96
- // Usage in styles
97
- css`
98
- background: ${bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 10%)')};
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
- ## 📖 Usage Examples
103
-
104
- ### Basic Chat FAB
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
- const lightbox = document.querySelector('sio-image-lightbox');
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
- ### PDF Viewer
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
- ## 🔧 Development
108
+ ## Development
163
109
 
164
110
  ```bash
165
- # Install dependencies
166
111
  pnpm install
167
-
168
- # Start development server with hot reload
169
- pnpm watch
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
- ## 📚 Dependencies
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 [LICENSE](./LICENSE) file.
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
 
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@social.io/catalog',
6
- version: '1.3.0',
7
- description: 'catalog for social.io'
6
+ version: '2.0.0',
7
+ description: 'v7 Apple-native design system and web components for social.io'
8
8
  }