@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
@@ -0,0 +1,178 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { DeesElement, html, customElement, css, } from '@design.estate/dees-element';
36
+ import { sioElementStyles, sioToolbarGlass } from './tokens.js';
37
+ import './sio-icon.js';
38
+ /**
39
+ * sio-glass-toolbar — the 44px liquid-glass command bar that tops every
40
+ * social.io pane (v7 prototype: SocialIODesktop.jsx thread/list toolbars,
41
+ * styles/socialio.css `.sio-toolbar-glass`).
42
+ *
43
+ * The bar is deliberately chromeless: it only provides the toolbar glass
44
+ * recipe (blur 28px, saturate 180%) with the 0.5px bottom hairline and a
45
+ * three-region layout. Content flows into the `start` (leading actions),
46
+ * `center` (title / context) and `end` (trailing actions, search) slots.
47
+ */
48
+ let SioGlassToolbar = (() => {
49
+ let _classDecorators = [customElement('sio-glass-toolbar')];
50
+ let _classDescriptor;
51
+ let _classExtraInitializers = [];
52
+ let _classThis;
53
+ let _classSuper = DeesElement;
54
+ var SioGlassToolbar = 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
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
59
+ SioGlassToolbar = _classThis = _classDescriptor.value;
60
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
+ }
62
+ static demo = () => html `
63
+ <div
64
+ style="display: flex; flex-direction: column; gap: 24px; max-width: 720px; font-family: var(--sio-font-sf); color: var(--sio-label);"
65
+ >
66
+ <!-- desktop thread pane: leading actions · trailing search -->
67
+ <div
68
+ style="position: relative; height: 176px; border-radius: 14px; overflow: hidden; border: var(--sio-hairline) solid var(--sio-separator); background: var(--sio-surface);"
69
+ >
70
+ <div style="padding: 60px 28px 0;">
71
+ <div style="font-size: 24px; font-weight: 700; letter-spacing: -0.5px; line-height: 1.18;">
72
+ Contract draft — comments by Friday?
73
+ </div>
74
+ <div style="margin-top: 8px; font-size: 12px; color: var(--sio-label-3);">
75
+ Dr. Sabine Vogel · 3 participants · 4 messages
76
+ </div>
77
+ </div>
78
+ <sio-glass-toolbar style="position: absolute; top: 0; left: 0; right: 0;">
79
+ <sio-icon slot="start" icon="archive" size="15" style="padding: 5px 8px; color: var(--sio-label-3);"></sio-icon>
80
+ <sio-icon slot="start" icon="clock" size="15" style="padding: 5px 8px; color: var(--sio-label-3);"></sio-icon>
81
+ <sio-icon slot="start" icon="trash" size="15" style="padding: 5px 8px; color: var(--sio-label-3);"></sio-icon>
82
+ <sio-icon slot="start" icon="reply" size="15" style="padding: 5px 8px; color: var(--sio-label-3);"></sio-icon>
83
+ <sio-icon slot="start" icon="forward" size="15" style="padding: 5px 8px; color: var(--sio-label-3);"></sio-icon>
84
+ <span
85
+ slot="end"
86
+ style="display: inline-flex; align-items: center; gap: 6px; width: 170px; padding: 4px 10px; border-radius: 8px; background: var(--sio-surface-2); color: var(--sio-label-3); font-size: 12px;"
87
+ >
88
+ <sio-icon icon="search" size="12"></sio-icon>
89
+ <span style="flex: 1;">Search</span>
90
+ <span
91
+ style="padding: 1px 5px; border-radius: 4px; background: var(--sio-surface-2); border: var(--sio-hairline) solid var(--sio-separator); font-family: var(--sio-font-mono); font-size: 11px;"
92
+ >⌘F</span
93
+ >
94
+ </span>
95
+ </sio-glass-toolbar>
96
+ </div>
97
+
98
+ <!-- centered-title variant (mobile detail header) -->
99
+ <div
100
+ style="position: relative; height: 132px; border-radius: 14px; overflow: hidden; border: var(--sio-hairline) solid var(--sio-separator); background: var(--sio-bg);"
101
+ >
102
+ <div style="padding: 58px 20px 0; font-size: 15px; line-height: 1.45; color: var(--sio-label-2);">
103
+ Deploy is queued behind the cert renewal — ETA 15:40. I'll ping this thread the second staging is green.
104
+ </div>
105
+ <sio-glass-toolbar style="position: absolute; top: 0; left: 0; right: 0;">
106
+ <span
107
+ slot="start"
108
+ style="display: inline-flex; align-items: center; gap: 2px; color: var(--sio-tint); font-size: 15px;"
109
+ >
110
+ <sio-icon icon="chevron-left" size="18"></sio-icon>
111
+ Chats
112
+ </span>
113
+ <span slot="center" style="font-size: 15px; font-weight: 600; letter-spacing: -0.2px; white-space: nowrap;">
114
+ Orbit · launch week
115
+ </span>
116
+ <sio-icon slot="end" icon="phone" size="18" style="color: var(--sio-ch-chats);"></sio-icon>
117
+ <sio-icon slot="end" icon="video" size="18" style="color: var(--sio-ch-chats);"></sio-icon>
118
+ </sio-glass-toolbar>
119
+ </div>
120
+ </div>
121
+ `;
122
+ static styles = [
123
+ ...sioElementStyles,
124
+ css `
125
+ :host {
126
+ display: block;
127
+ }
128
+
129
+ .toolbar {
130
+ ${sioToolbarGlass}
131
+ height: 44px;
132
+ box-sizing: border-box;
133
+ display: grid;
134
+ grid-template-columns: 1fr auto 1fr;
135
+ align-items: center;
136
+ column-gap: 8px;
137
+ padding: 0 14px;
138
+ }
139
+
140
+ .region {
141
+ display: flex;
142
+ align-items: center;
143
+ min-width: 0;
144
+ }
145
+
146
+ .start {
147
+ justify-content: flex-start;
148
+ gap: 2px;
149
+ }
150
+
151
+ .center {
152
+ justify-content: center;
153
+ overflow: hidden;
154
+ }
155
+
156
+ .end {
157
+ justify-content: flex-end;
158
+ gap: 8px;
159
+ }
160
+ `,
161
+ ];
162
+ render() {
163
+ return html `
164
+ <div class="toolbar" part="toolbar">
165
+ <div class="region start"><slot name="start"></slot></div>
166
+ <div class="region center"><slot name="center"></slot></div>
167
+ <div class="region end"><slot name="end"></slot></div>
168
+ </div>
169
+ `;
170
+ }
171
+ static {
172
+ __runInitializers(_classThis, _classExtraInitializers);
173
+ }
174
+ };
175
+ return SioGlassToolbar = _classThis;
176
+ })();
177
+ export { SioGlassToolbar };
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWdsYXNzLXRvb2xiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWdsYXNzLXRvb2xiYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLGFBQWEsRUFDYixHQUFHLEdBRUosTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sZUFBZSxDQUFDO0FBUXZCOzs7Ozs7Ozs7R0FTRztJQUVVLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOytCQUFuQixTQUFRLFdBQVc7Ozs7WUFBaEQsNktBZ0hDOzs7O1FBL0dRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEOUIsQ0FBQztRQUVLLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyxDQUFBOzs7Ozs7VUFNRyxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4QnBCO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7Ozs7O0tBTVYsQ0FBQztRQUNKLENBQUM7O1lBL0dVLHVEQUFlOzs7OztTQUFmLGVBQWUifQ==
@@ -18,6 +18,7 @@ export declare class SioIcon extends DeesElement {
18
18
  private lastStrokeWidth;
19
19
  static styles: import("@design.estate/dees-element").CSSResult[];
20
20
  render(): TemplateResult;
21
+ private resolveIconNode;
21
22
  updated(): void;
22
23
  disconnectedCallback(): Promise<void>;
23
24
  }
@@ -1,127 +1,287 @@
1
- import { DeesElement, html, property, customElement, cssManager, css, } from '@design.estate/dees-element';
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { DeesElement, html, property, customElement, css, } from '@design.estate/dees-element';
2
36
  import * as lucideIcons from 'lucide';
3
- import { createElement } from 'lucide';
4
- @customElement('sio-icon')
5
- export class SioIcon extends DeesElement {
6
- static demo = () => html `
7
- <div style="display: flex; gap: 16px; align-items: center;">
8
- <sio-icon icon="search"></sio-icon>
9
- <sio-icon icon="message-square" color="#3b82f6"></sio-icon>
10
- <sio-icon icon="x" size="32"></sio-icon>
11
- <sio-icon icon="send" strokeWidth="3"></sio-icon>
37
+ import { Archive, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Clock, Download, FileText, Forward, Grid2x2, Mail, MessageCircle, Mic, MicOff, MonitorUp, Paperclip, Pencil, Phone, PhoneOff, Plus, Reply, Search, Send, Sparkles, Star, Trash2, Users, Video, X, createElement, } from 'lucide';
38
+ import { sioElementStyles } from './tokens.js';
39
+ /**
40
+ * v7 icon aliases — the design's SF-symbol-flavored names mapped onto lucide.
41
+ * Anything not listed here falls through to the PascalCase lucide lookup,
42
+ * so every lucide icon stays addressable by its kebab-case name.
43
+ */
44
+ const sioIconAliases = {
45
+ // channels
46
+ envelope: Mail,
47
+ mail: Mail,
48
+ 'message-circle': MessageCircle,
49
+ phone: Phone,
50
+ 'file-text': FileText,
51
+ // unified feed / triage
52
+ 'grid-2x2': Grid2x2,
53
+ grid: Grid2x2,
54
+ sparkles: Sparkles,
55
+ star: Star,
56
+ paperclip: Paperclip,
57
+ archive: Archive,
58
+ clock: Clock,
59
+ trash: Trash2,
60
+ reply: Reply,
61
+ forward: Forward,
62
+ // composer / navigation
63
+ search: Search,
64
+ send: Send,
65
+ plus: Plus,
66
+ chevron: ChevronRight,
67
+ 'chevron-left': ChevronLeft,
68
+ 'chevron-right': ChevronRight,
69
+ 'chevron-up': ChevronUp,
70
+ 'chevron-down': ChevronDown,
71
+ // calls / meetings
72
+ mic: Mic,
73
+ 'mic-off': MicOff,
74
+ video: Video,
75
+ 'monitor-up': MonitorUp,
76
+ users: Users,
77
+ 'phone-off': PhoneOff,
78
+ // generic
79
+ check: Check,
80
+ x: X,
81
+ download: Download,
82
+ pencil: Pencil,
83
+ };
84
+ let SioIcon = (() => {
85
+ let _classDecorators = [customElement('sio-icon')];
86
+ let _classDescriptor;
87
+ let _classExtraInitializers = [];
88
+ let _classThis;
89
+ let _classSuper = DeesElement;
90
+ let _icon_decorators;
91
+ let _icon_initializers = [];
92
+ let _icon_extraInitializers = [];
93
+ let _size_decorators;
94
+ let _size_initializers = [];
95
+ let _size_extraInitializers = [];
96
+ let _color_decorators;
97
+ let _color_initializers = [];
98
+ let _color_extraInitializers = [];
99
+ let _strokeWidth_decorators;
100
+ let _strokeWidth_initializers = [];
101
+ let _strokeWidth_extraInitializers = [];
102
+ var SioIcon = class extends _classSuper {
103
+ static { _classThis = this; }
104
+ static {
105
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
106
+ _icon_decorators = [property({ type: String })];
107
+ _size_decorators = [property({ type: Number })];
108
+ _color_decorators = [property({ type: String })];
109
+ _strokeWidth_decorators = [property({ type: Number })];
110
+ __esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
111
+ __esDecorate(this, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
112
+ __esDecorate(this, null, _color_decorators, { kind: "accessor", name: "color", static: false, private: false, access: { has: obj => "color" in obj, get: obj => obj.color, set: (obj, value) => { obj.color = value; } }, metadata: _metadata }, _color_initializers, _color_extraInitializers);
113
+ __esDecorate(this, null, _strokeWidth_decorators, { kind: "accessor", name: "strokeWidth", static: false, private: false, access: { has: obj => "strokeWidth" in obj, get: obj => obj.strokeWidth, set: (obj, value) => { obj.strokeWidth = value; } }, metadata: _metadata }, _strokeWidth_initializers, _strokeWidth_extraInitializers);
114
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
115
+ SioIcon = _classThis = _classDescriptor.value;
116
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
117
+ }
118
+ static demo = () => html `
119
+ <div style="display: flex; flex-direction: column; gap: 16px; font-family: var(--sio-font-sf); color: var(--sio-label);">
120
+ <div style="display: flex; gap: 16px; align-items: center;">
121
+ <sio-icon icon="envelope" style="color: var(--sio-ch-mail);"></sio-icon>
122
+ <sio-icon icon="message-circle" style="color: var(--sio-ch-chats);"></sio-icon>
123
+ <sio-icon icon="phone" style="color: var(--sio-ch-calls);"></sio-icon>
124
+ <sio-icon icon="file-text" style="color: var(--sio-ch-letters);"></sio-icon>
125
+ <sio-icon icon="grid-2x2" style="color: var(--sio-tint);"></sio-icon>
126
+ <sio-icon icon="sparkles" style="color: var(--sio-tint);"></sio-icon>
127
+ </div>
128
+ <div style="display: flex; gap: 16px; align-items: center; color: var(--sio-label-3);">
129
+ <sio-icon icon="star" size="18"></sio-icon>
130
+ <sio-icon icon="paperclip" size="18"></sio-icon>
131
+ <sio-icon icon="archive" size="18"></sio-icon>
132
+ <sio-icon icon="clock" size="18"></sio-icon>
133
+ <sio-icon icon="reply" size="18"></sio-icon>
134
+ <sio-icon icon="forward" size="18"></sio-icon>
135
+ <sio-icon icon="trash" size="18" style="color: var(--sio-red);"></sio-icon>
136
+ </div>
137
+ <div style="display: flex; gap: 16px; align-items: center; color: var(--sio-label-2);">
138
+ <sio-icon icon="mic" size="20"></sio-icon>
139
+ <sio-icon icon="video" size="20"></sio-icon>
140
+ <sio-icon icon="monitor-up" size="20"></sio-icon>
141
+ <sio-icon icon="users" size="20"></sio-icon>
142
+ <sio-icon icon="phone-off" size="20" style="color: var(--sio-red);"></sio-icon>
143
+ <sio-icon icon="send" size="20" style="color: var(--sio-tint);"></sio-icon>
144
+ </div>
12
145
  </div>
13
146
  `;
14
- @property({ type: String })
15
- accessor icon;
16
- @property({ type: Number })
17
- accessor size = 24;
18
- @property({ type: String })
19
- accessor color = 'currentColor';
20
- @property({ type: Number })
21
- accessor strokeWidth = 2;
22
- // Cache for rendered icons
23
- static iconCache = new Map();
24
- static MAX_CACHE_SIZE = 100;
25
- // Track last rendered properties to avoid unnecessary updates
26
- lastIcon = null;
27
- lastSize = null;
28
- lastColor = null;
29
- lastStrokeWidth = null;
30
- static styles = [
31
- cssManager.defaultStyles,
32
- css `
147
+ #icon_accessor_storage = __runInitializers(this, _icon_initializers, '');
148
+ get icon() { return this.#icon_accessor_storage; }
149
+ set icon(value) { this.#icon_accessor_storage = value; }
150
+ #size_accessor_storage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _size_initializers, 24));
151
+ get size() { return this.#size_accessor_storage; }
152
+ set size(value) { this.#size_accessor_storage = value; }
153
+ #color_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _color_initializers, 'currentColor'));
154
+ get color() { return this.#color_accessor_storage; }
155
+ set color(value) { this.#color_accessor_storage = value; }
156
+ #strokeWidth_accessor_storage = (__runInitializers(this, _color_extraInitializers), __runInitializers(this, _strokeWidth_initializers, 1.75));
157
+ get strokeWidth() { return this.#strokeWidth_accessor_storage; }
158
+ set strokeWidth(value) { this.#strokeWidth_accessor_storage = value; }
159
+ // Cache for rendered icons
160
+ static iconCache = new Map();
161
+ static MAX_CACHE_SIZE = 100;
162
+ // Track last rendered properties to avoid unnecessary updates
163
+ lastIcon = (__runInitializers(this, _strokeWidth_extraInitializers), null);
164
+ lastSize = null;
165
+ lastColor = null;
166
+ lastStrokeWidth = null;
167
+ static styles = [
168
+ ...sioElementStyles,
169
+ css `
33
170
  :host {
34
171
  display: inline-flex;
35
172
  align-items: center;
36
173
  justify-content: center;
37
174
  line-height: 1;
38
175
  vertical-align: middle;
176
+ color: currentColor;
39
177
  }
40
-
178
+
41
179
  #iconContainer {
42
180
  display: flex;
43
181
  align-items: center;
44
182
  justify-content: center;
45
183
  }
46
-
184
+
47
185
  #iconContainer svg {
48
186
  display: block;
49
187
  width: 100%;
50
188
  height: 100%;
51
189
  }
52
190
  `,
53
- ];
54
- render() {
55
- return html `
191
+ ];
192
+ render() {
193
+ return html `
56
194
  <div id="iconContainer" style="width: ${this.size}px; height: ${this.size}px;"></div>
57
195
  `;
58
- }
59
- updated() {
60
- // Check if we need to update
61
- if (this.lastIcon === this.icon &&
62
- this.lastSize === this.size &&
63
- this.lastColor === this.color &&
64
- this.lastStrokeWidth === this.strokeWidth) {
65
- return;
66
- }
67
- // Update tracking properties
68
- this.lastIcon = this.icon;
69
- this.lastSize = this.size;
70
- this.lastColor = this.color;
71
- this.lastStrokeWidth = this.strokeWidth;
72
- const container = this.shadowRoot?.querySelector('#iconContainer');
73
- if (!container || !this.icon)
74
- return;
75
- // Clear container
76
- container.innerHTML = '';
77
- // Create cache key
78
- const cacheKey = `${this.icon}:${this.size}:${this.color}:${this.strokeWidth}`;
79
- // Check cache
80
- if (SioIcon.iconCache.has(cacheKey)) {
81
- container.innerHTML = SioIcon.iconCache.get(cacheKey);
82
- return;
83
196
  }
84
- try {
197
+ resolveIconNode() {
198
+ const iconName = this.icon
199
+ .replace(/^lucide:/, '')
200
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
201
+ .toLowerCase();
202
+ const aliasNode = sioIconAliases[iconName];
203
+ if (aliasNode) {
204
+ return aliasNode;
205
+ }
85
206
  // Convert icon name to PascalCase (e.g., 'message-square' -> 'MessageSquare')
86
- const pascalCaseName = this.icon
207
+ const pascalCaseName = iconName
87
208
  .split('-')
88
- .map(part => part.charAt(0).toUpperCase() + part.slice(1))
209
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
89
210
  .join('');
90
- const iconComponent = lucideIcons[pascalCaseName];
91
- if (!iconComponent) {
92
- console.warn(`Lucide icon '${pascalCaseName}' not found`);
211
+ const lucideNode = lucideIcons[pascalCaseName];
212
+ if (Array.isArray(lucideNode)) {
213
+ return lucideNode;
214
+ }
215
+ return undefined;
216
+ }
217
+ updated() {
218
+ // Check if we need to update
219
+ if (this.lastIcon === this.icon &&
220
+ this.lastSize === this.size &&
221
+ this.lastColor === this.color &&
222
+ this.lastStrokeWidth === this.strokeWidth) {
93
223
  return;
94
224
  }
95
- // Create the icon element
96
- const svgElement = createElement(iconComponent, {
97
- size: this.size,
98
- color: this.color,
99
- strokeWidth: this.strokeWidth,
100
- });
101
- if (svgElement) {
102
- // Cache the result
103
- const svgString = svgElement.outerHTML;
104
- SioIcon.iconCache.set(cacheKey, svgString);
105
- // Limit cache size
106
- if (SioIcon.iconCache.size > SioIcon.MAX_CACHE_SIZE) {
107
- const firstKey = SioIcon.iconCache.keys().next().value;
108
- SioIcon.iconCache.delete(firstKey);
225
+ // Update tracking properties
226
+ this.lastIcon = this.icon;
227
+ this.lastSize = this.size;
228
+ this.lastColor = this.color;
229
+ this.lastStrokeWidth = this.strokeWidth;
230
+ const container = this.shadowRoot?.querySelector('#iconContainer');
231
+ if (!container || !this.icon)
232
+ return;
233
+ // Clear container
234
+ container.innerHTML = '';
235
+ // Create cache key
236
+ const cacheKey = `${this.icon}:${this.size}:${this.color}:${this.strokeWidth}`;
237
+ // Check cache
238
+ if (SioIcon.iconCache.has(cacheKey)) {
239
+ container.innerHTML = SioIcon.iconCache.get(cacheKey);
240
+ return;
241
+ }
242
+ try {
243
+ const iconNode = this.resolveIconNode();
244
+ if (!iconNode) {
245
+ console.warn(`sio-icon: lucide icon '${this.icon}' not found`);
246
+ return;
247
+ }
248
+ // Create the icon element
249
+ const svgElement = createElement(iconNode, {
250
+ size: this.size,
251
+ color: this.color,
252
+ strokeWidth: this.strokeWidth,
253
+ });
254
+ if (svgElement) {
255
+ svgElement.setAttribute('aria-hidden', 'true');
256
+ // Cache the result
257
+ const svgString = svgElement.outerHTML;
258
+ SioIcon.iconCache.set(cacheKey, svgString);
259
+ // Limit cache size
260
+ if (SioIcon.iconCache.size > SioIcon.MAX_CACHE_SIZE) {
261
+ const firstKey = SioIcon.iconCache.keys().next().value;
262
+ SioIcon.iconCache.delete(firstKey);
263
+ }
264
+ // Append to container
265
+ container.appendChild(svgElement);
109
266
  }
110
- // Append to container
111
- container.appendChild(svgElement);
267
+ }
268
+ catch (error) {
269
+ console.error(`Error rendering icon ${this.icon}:`, error);
112
270
  }
113
271
  }
114
- catch (error) {
115
- console.error(`Error rendering icon ${this.icon}:`, error);
272
+ async disconnectedCallback() {
273
+ await super.disconnectedCallback();
274
+ // Clear references
275
+ this.lastIcon = null;
276
+ this.lastSize = null;
277
+ this.lastColor = null;
278
+ this.lastStrokeWidth = null;
116
279
  }
117
- }
118
- async disconnectedCallback() {
119
- await super.disconnectedCallback();
120
- // Clear references
121
- this.lastIcon = null;
122
- this.lastSize = null;
123
- this.lastColor = null;
124
- this.lastStrokeWidth = null;
125
- }
126
- }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osUUFBUSxFQUNSLGFBQWEsRUFDYixVQUFVLEVBQ1YsR0FBRyxHQUVKLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVF2QyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7QUFDMUIsTUFBTSxPQUFPLE9BQVEsU0FBUSxXQUFXO0lBQy9CLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7O0dBTzlCLENBQUM7SUFFRixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsSUFBSSxDQUFTO0lBRTdCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxJQUFJLEdBQVcsRUFBRSxDQUFDO0lBRWxDLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEdBQVcsY0FBYyxDQUFDO0lBRS9DLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxXQUFXLEdBQVcsQ0FBQyxDQUFDO0lBRXhDLDJCQUEyQjtJQUNuQixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQzdDLE1BQU0sQ0FBVSxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBRTdDLDhEQUE4RDtJQUN0RCxRQUFRLEdBQWtCLElBQUksQ0FBQztJQUMvQixR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
280
+ static {
281
+ __runInitializers(_classThis, _classExtraInitializers);
282
+ }
283
+ };
284
+ return SioIcon = _classThis;
285
+ })();
286
+ export { SioIcon };
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc2lvLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFFBQVEsRUFDUixhQUFhLEVBQ2IsR0FBRyxHQUVKLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE9BQU8sRUFDUCxPQUFPLEVBQ1AsSUFBSSxFQUNKLGFBQWEsRUFDYixHQUFHLEVBQ0gsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsQ0FBQyxFQUNELGFBQWEsR0FFZCxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFRL0M7Ozs7R0FJRztBQUNILE1BQU0sY0FBYyxHQUE2QjtJQUMvQyxXQUFXO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsSUFBSTtJQUNWLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsS0FBSyxFQUFFLEtBQUs7SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQix3QkFBd0I7SUFDeEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsSUFBSSxFQUFFLE9BQU87SUFDYixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsSUFB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
@@ -1,11 +1,11 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import './sio-icon.js';
2
3
  export interface ILightboxFile {
3
4
  url: string;
4
5
  name: string;
5
6
  size?: number;
6
7
  type?: string;
7
8
  }
8
- export type ILightboxImage = ILightboxFile;
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
11
  'sio-image-lightbox': SioImageLightbox;
@@ -15,8 +15,7 @@ export declare class SioImageLightbox extends DeesElement {
15
15
  static demo: () => TemplateResult<1>;
16
16
  accessor isOpen: boolean;
17
17
  accessor file: ILightboxFile | null;
18
- get image(): ILightboxFile | null;
19
- set image(value: ILightboxFile | null);
18
+ private closeCleanupTimeout;
20
19
  private accessor fileLoaded;
21
20
  private accessor scale;
22
21
  private accessor translateX;
@@ -27,7 +26,7 @@ export declare class SioImageLightbox extends DeesElement {
27
26
  static styles: import("@design.estate/dees-element").CSSResult[];
28
27
  private isPDF;
29
28
  render(): TemplateResult;
30
- open(file: ILightboxFile | ILightboxImage): Promise<void>;
29
+ open(file: ILightboxFile): Promise<void>;
31
30
  private close;
32
31
  private handleKeyDown;
33
32
  private zoomIn;