@novu/js 2.6.6 → 3.0.0-canary.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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkZ4XIR64I_js = require('../chunk-Z4XIR64I.js');
3
+ var chunkMCK3RKPK_js = require('../chunk-MCK3RKPK.js');
4
4
  var chunkERC62PGI_js = require('../chunk-ERC62PGI.js');
5
5
  var chunk7B52C2XE_js = require('../chunk-7B52C2XE.js');
6
6
  var web = require('solid-js/web');
@@ -9,29 +9,14 @@ var store = require('solid-js/store');
9
9
  var clsx = require('clsx');
10
10
  var tailwindMerge = require('tailwind-merge');
11
11
  var classVarianceAuthority = require('class-variance-authority');
12
- var solidMotionone = require('solid-motionone');
13
12
  var dom = require('@floating-ui/dom');
14
13
  var solidFloatingUi = require('solid-floating-ui');
14
+ var solidMotionone = require('solid-motionone');
15
15
 
16
16
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
17
 
18
18
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
19
19
 
20
- // src/ui/config/defaultVariables.ts
21
- var defaultVariables = {
22
- colorPrimary: "#0081F1",
23
- colorPrimaryForeground: "white",
24
- colorSecondary: "#F3F3F3",
25
- colorSecondaryForeground: "#1A1523",
26
- colorCounter: "#E5484D",
27
- colorCounterForeground: "white",
28
- colorBackground: "#FCFCFC",
29
- colorForeground: "#1A1523",
30
- colorNeutral: "#525252",
31
- colorShadow: "rgba(122,133,153,0.25)",
32
- fontSize: "inherit",
33
- borderRadius: "0.375rem"
34
- };
35
20
  var defaultLocalization = {
36
21
  locale: "en-US",
37
22
  "inbox.filters.dropdownOptions.unread": "Unread only",
@@ -40,7 +25,7 @@ var defaultLocalization = {
40
25
  "inbox.filters.labels.unread": "Unread",
41
26
  "inbox.filters.labels.default": "Inbox",
42
27
  "inbox.filters.labels.archived": "Archived",
43
- "notifications.emptyNotice": "No notifications",
28
+ "notifications.emptyNotice": "Quiet for now. Check back later.",
44
29
  "notifications.actions.readAll": "Mark all as read",
45
30
  "notifications.actions.archiveAll": "Archive all",
46
31
  "notifications.actions.archiveRead": "Archive read",
@@ -49,17 +34,64 @@ var defaultLocalization = {
49
34
  "notification.actions.unread.tooltip": "Mark as unread",
50
35
  "notification.actions.archive.tooltip": "Archive",
51
36
  "notification.actions.unarchive.tooltip": "Unarchive",
52
- "preferences.title": "Notification Preferences",
37
+ "preferences.title": "Preferences",
38
+ "preferences.emptyNotice": "No notification specific preferences yet.",
53
39
  "preferences.global": "Global Preferences",
54
40
  "preferences.workflow.disabled.notice": "Contact admin to enable subscription management for this critical notification.",
55
41
  "preferences.workflow.disabled.tooltip": "Contact admin to edit"
56
42
  };
57
43
  var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
58
44
 
45
+ // src/ui/context/LocalizationContext.tsx
46
+ var LocalizationContext = solidJs.createContext(void 0);
47
+ var LocalizationProvider = (props) => {
48
+ const localization = solidJs.createMemo(() => {
49
+ const _a = props.localization || {}, {
50
+ dynamic
51
+ } = _a, localizationObject = chunk7B52C2XE_js.__objRest(_a, [
52
+ "dynamic"
53
+ ]);
54
+ return chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, defaultLocalization), dynamicLocalization()), dynamic || {}), localizationObject);
55
+ });
56
+ const t = (key, ...args) => {
57
+ const value = localization()[key];
58
+ if (typeof value === "function") {
59
+ return value(args[0]);
60
+ }
61
+ return value;
62
+ };
63
+ const locale = solidJs.createMemo(() => localization().locale);
64
+ return web.createComponent(LocalizationContext.Provider, {
65
+ value: {
66
+ t,
67
+ locale
68
+ },
69
+ get children() {
70
+ return props.children;
71
+ }
72
+ });
73
+ };
74
+ function useLocalization() {
75
+ const context = solidJs.useContext(LocalizationContext);
76
+ if (!context) {
77
+ throw new Error("useLocalization must be used within an LocalizationProvider");
78
+ }
79
+ return context;
80
+ }
81
+
82
+ // src/ui/types.ts
83
+ var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
84
+ NotificationStatus2["UNREAD_READ"] = "unreadRead";
85
+ NotificationStatus2["UNREAD"] = "unread";
86
+ NotificationStatus2["ARCHIVED"] = "archived";
87
+ return NotificationStatus2;
88
+ })(NotificationStatus || {});
89
+
59
90
  // src/ui/config/appearanceKeys.ts
60
91
  var appearanceKeys = [
61
92
  // Primitives
62
93
  "button",
94
+ "icon",
63
95
  "popoverContent",
64
96
  "popoverTrigger",
65
97
  "dropdownContent",
@@ -67,13 +99,17 @@ var appearanceKeys = [
67
99
  "dropdownItem",
68
100
  "dropdownItemLabel",
69
101
  "dropdownItemLabelContainer",
70
- "dropdownItemLeftIcon",
71
- "dropdownItemRightIcon",
102
+ "dropdownItemLeft__icon",
103
+ "dropdownItemRight__icon",
104
+ "dropdownItem__icon",
105
+ "collapsible",
72
106
  "tooltipContent",
73
107
  "tooltipTrigger",
74
108
  "back__button",
75
109
  "skeletonText",
76
110
  "skeletonAvatar",
111
+ "skeletonSwitch",
112
+ "skeletonSwitchThumb",
77
113
  "tabsRoot",
78
114
  "tabsList",
79
115
  "tabsContent",
@@ -96,10 +132,18 @@ var appearanceKeys = [
96
132
  "notificationListContainer",
97
133
  "notificationList",
98
134
  "notificationListEmptyNoticeContainer",
99
- "notificationListEmptyNotice",
135
+ "notificationListEmptyNoticeOverlay",
100
136
  "notificationListEmptyNoticeIcon",
137
+ "notificationListEmptyNotice",
138
+ "notificationList__skeleton",
139
+ "notificationList__skeletonContent",
140
+ "notificationList__skeletonItem",
141
+ "notificationList__skeletonAvatar",
142
+ "notificationList__skeletonText",
101
143
  "notificationListNewNotificationsNotice__button",
102
144
  "notification",
145
+ "notificationContent",
146
+ "notificationTextContainer",
103
147
  "notificationDot",
104
148
  "notificationSubject",
105
149
  "notificationSubject__strong",
@@ -107,7 +151,9 @@ var appearanceKeys = [
107
151
  "notificationBody__strong",
108
152
  "notificationBodyContainer",
109
153
  "notificationImage",
154
+ "notificationImageLoadingFallback",
110
155
  "notificationDate",
156
+ "notificationDateActionsContainer",
111
157
  "notificationDefaultActions",
112
158
  "notificationCustomActions",
113
159
  "notificationPrimaryAction__button",
@@ -116,6 +162,10 @@ var appearanceKeys = [
116
162
  "notificationUnread__button",
117
163
  "notificationArchive__button",
118
164
  "notificationUnarchive__button",
165
+ "notificationRead__icon",
166
+ "notificationUnread__icon",
167
+ "notificationArchive__icon",
168
+ "notificationUnarchive__icon",
119
169
  // Notifications tabs
120
170
  "notificationsTabs__tabsRoot",
121
171
  "notificationsTabs__tabsList",
@@ -132,6 +182,8 @@ var appearanceKeys = [
132
182
  "inboxStatus__dropdownItemLabelContainer",
133
183
  "inboxStatus__dropdownItemLeft__icon",
134
184
  "inboxStatus__dropdownItemRight__icon",
185
+ "inboxStatus__dropdownItem__icon",
186
+ "inboxStatus__dropdownItemCheck__icon",
135
187
  // More actions
136
188
  "moreActionsContainer",
137
189
  "moreActions__dropdownTrigger",
@@ -142,7 +194,7 @@ var appearanceKeys = [
142
194
  "moreActions__dots",
143
195
  // More tabs
144
196
  "moreTabs__button",
145
- "moreTabs__dots",
197
+ "moreTabs__icon",
146
198
  "moreTabs__dropdownTrigger",
147
199
  "moreTabs__dropdownContent",
148
200
  "moreTabs__dropdownItem",
@@ -157,13 +209,15 @@ var appearanceKeys = [
157
209
  "workflowLabelDisabled__icon",
158
210
  "workflowContainerRight__icon",
159
211
  "workflowArrow__icon",
212
+ "workflowDescription",
160
213
  // channel
161
214
  "channelContainer",
215
+ "channelIconContainer",
216
+ "channel__icon",
162
217
  "channelsContainerCollapsible",
163
218
  "channelsContainer",
164
219
  "channelLabel",
165
220
  "channelLabelContainer",
166
- "channelDescription",
167
221
  "channelName",
168
222
  "channelSwitchContainer",
169
223
  "channelSwitch",
@@ -171,47 +225,133 @@ var appearanceKeys = [
171
225
  // Preferences Header
172
226
  "preferencesHeader",
173
227
  "preferencesHeader__back__button",
228
+ "preferencesHeader__back__button__icon",
174
229
  "preferencesHeader__title",
230
+ "preferencesHeader__icon",
175
231
  // Preferences Loading
176
- "preferencesLoadingContainer",
232
+ "preferencesListEmptyNoticeContainer",
233
+ "preferencesListEmptyNotice",
234
+ "preferencesList__skeleton",
235
+ "preferencesList__skeletonContent",
236
+ "preferencesList__skeletonItem",
237
+ "preferencesList__skeletonIcon",
238
+ "preferencesList__skeletonSwitch",
239
+ "preferencesList__skeletonSwitchThumb",
240
+ "preferencesList__skeletonText",
177
241
  // Text formatting
178
242
  "strong"
179
243
  ];
180
- function createInfiniteScroll(fetcher) {
244
+
245
+ // src/ui/config/defaultVariables.ts
246
+ var defaultVariables = {
247
+ colorPrimary: "#7D52F4",
248
+ colorPrimaryForeground: "white",
249
+ colorSecondary: "#FFFFFF",
250
+ colorSecondaryForeground: "#646464",
251
+ colorCounter: "#FB3748",
252
+ colorCounterForeground: "white",
253
+ colorBackground: "#FCFCFC",
254
+ colorRing: "#E1E4EA",
255
+ colorForeground: "#1A1523",
256
+ colorNeutral: "#525252",
257
+ colorShadow: "rgb(0,0,0)",
258
+ fontSize: "1rem",
259
+ borderRadius: "0.375rem"
260
+ };
261
+
262
+ // src/ui/helpers/constants.ts
263
+ var DEFAULT_TARGET = "_blank";
264
+ var DEFAULT_REFERRER = "noopener noreferrer";
265
+ function createInfiniteScroll(fetcher, options) {
181
266
  const [data, setData] = solidJs.createSignal([]);
182
267
  const [initialLoading, setInitialLoading] = solidJs.createSignal(true);
183
- const [offset3, setOffset] = solidJs.createSignal(0);
268
+ const [after, setAfter] = solidJs.createSignal(void 0);
184
269
  const [end, setEnd] = solidJs.createSignal(false);
185
- const [contents, { mutate, refetch }] = solidJs.createResource(offset3, fetcher);
186
- let setEl = () => {
187
- };
188
- if (!web.isServer) {
189
- const io = new IntersectionObserver((e) => {
190
- if (e.length > 0 && e[0].isIntersecting && !end() && !contents.loading) {
191
- setOffset(setOffset(data().length));
270
+ const [contents, { mutate, refetch }] = solidJs.createResource(
271
+ () => ({ trigger: true, after: after() }),
272
+ (params) => fetcher(params.after)
273
+ );
274
+ let observedElement = null;
275
+ let io = null;
276
+ solidJs.onMount(() => {
277
+ io = new IntersectionObserver(
278
+ (entries) => {
279
+ var _a;
280
+ const entry = entries[0];
281
+ if (entry && entry.isIntersecting && !end() && !contents.loading) {
282
+ const data2 = (_a = contents.latest) == null ? void 0 : _a.data;
283
+ if (data2) {
284
+ setAfter(data2[data2.length - 1][options.paginationField]);
285
+ }
286
+ }
287
+ },
288
+ {
289
+ threshold: 0.1
192
290
  }
291
+ );
292
+ if (observedElement && io) {
293
+ io.observe(observedElement);
294
+ }
295
+ solidJs.onCleanup(() => {
296
+ io == null ? void 0 : io.disconnect();
297
+ io = null;
193
298
  });
194
- solidJs.onCleanup(() => io.disconnect());
195
- setEl = (el) => {
196
- io.observe(el);
197
- solidJs.onCleanup(() => io.unobserve(el));
198
- };
199
- }
200
- solidJs.createComputed(() => {
299
+ });
300
+ solidJs.createEffect(() => {
301
+ if (contents.loading) return;
201
302
  const content = contents.latest;
202
303
  if (!content) return;
203
304
  setInitialLoading(false);
204
305
  solidJs.batch(() => {
205
306
  if (!content.hasMore) setEnd(true);
206
307
  setData(content.data);
308
+ requestAnimationFrame(() => {
309
+ checkVisibilityAndLoadMore();
310
+ });
207
311
  });
208
312
  });
313
+ const checkVisibilityAndLoadMore = () => {
314
+ if (observedElement && !end() && !contents.loading) {
315
+ const observer = new IntersectionObserver(
316
+ (entries) => {
317
+ var _a;
318
+ const entry = entries[0];
319
+ if (entry.isIntersecting) {
320
+ const data2 = (_a = contents.latest) == null ? void 0 : _a.data;
321
+ if (data2) {
322
+ setAfter(data2[data2.length - 1][options.paginationField]);
323
+ }
324
+ }
325
+ observer.disconnect();
326
+ },
327
+ {
328
+ threshold: [0.1]
329
+ }
330
+ );
331
+ observer.observe(observedElement);
332
+ solidJs.onCleanup(() => {
333
+ observer.disconnect();
334
+ });
335
+ }
336
+ };
337
+ const setEl = (el) => {
338
+ if (io && observedElement) {
339
+ io.unobserve(observedElement);
340
+ }
341
+ observedElement = el;
342
+ if (io && el) {
343
+ io.observe(el);
344
+ }
345
+ solidJs.onCleanup(() => {
346
+ if (io && el) io.unobserve(el);
347
+ });
348
+ };
209
349
  const reset = () => chunk7B52C2XE_js.__async(this, null, function* () {
210
350
  setData([]);
211
351
  setInitialLoading(true);
212
352
  setEnd(false);
213
- if (offset3() !== 0) {
214
- setOffset(0);
353
+ if (after() !== void 0) {
354
+ setAfter(void 0);
215
355
  } else {
216
356
  yield refetch();
217
357
  }
@@ -221,7 +361,7 @@ function createInfiniteScroll(fetcher) {
221
361
  {
222
362
  initialLoading,
223
363
  setEl,
224
- offset: offset3,
364
+ after,
225
365
  end,
226
366
  mutate,
227
367
  reset
@@ -261,6 +401,7 @@ function formatToRelativeTime({
261
401
  var twMerge = tailwindMerge.extendTailwindMerge({
262
402
  prefix: "nt-"
263
403
  });
404
+ var publicFacingTwMerge = tailwindMerge.extendTailwindMerge({});
264
405
  function cn(...inputs) {
265
406
  return twMerge(clsx__default.default(inputs));
266
407
  }
@@ -292,31 +433,105 @@ function createClassAndRuleFromCssString(classNameSet, styles) {
292
433
  classNameSet.add(className);
293
434
  return { className, rule };
294
435
  }
295
- var shades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
436
+ var shades = [25, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
296
437
  function generateDefaultColor(props) {
297
438
  const cssVariableDefaultRule = `.${props.id} { --nv-${props.key}: oklch(from ${props.color} l c h); }`;
298
439
  return cssVariableDefaultRule;
299
440
  }
300
- function generatesSolidShadesFromColor(props) {
441
+ function generateSolidShadeRulesFromColor({ color, key, id }) {
301
442
  const rules = [];
302
- for (let i = 0; i < shades.length; i += 1) {
303
- const shade = shades[i];
304
- const cssVariableSolidRule = `.${props.id} { --nv-${props.key}-${shade}: oklch(from ${props.color} calc(l - ${(shade - 500) / 1e3}) c h); }`;
305
- rules.push(cssVariableSolidRule);
306
- }
443
+ const adjustLightness = (factor) => {
444
+ if (factor >= 0) {
445
+ return `min(1, calc(l + ${factor} * (1 - l)))`;
446
+ } else {
447
+ return `max(0, calc(l * (1 + ${factor})))`;
448
+ }
449
+ };
450
+ const lightnessOffsets = {
451
+ 25: adjustLightness(0.475),
452
+ 50: adjustLightness(0.45),
453
+ 100: adjustLightness(0.4),
454
+ 200: adjustLightness(0.3),
455
+ 300: adjustLightness(0.2),
456
+ 400: adjustLightness(0.1),
457
+ 500: "l",
458
+ 600: adjustLightness(-0.1),
459
+ 700: adjustLightness(-0.2),
460
+ 800: adjustLightness(-0.3),
461
+ 900: adjustLightness(-0.4)
462
+ };
463
+ shades.forEach((shade) => {
464
+ const newLightness = lightnessOffsets[shade];
465
+ const cssVariableRule = `.${id} { --nv-${key}-${shade}: oklch(from ${color} ${newLightness} c h); }`;
466
+ rules.push(cssVariableRule);
467
+ });
307
468
  return rules;
308
469
  }
309
- function generatesAlphaShadesFromColor(props) {
470
+ function generateAlphaShadeRulesFromColor({ color, key, id }) {
310
471
  const rules = [];
311
- for (let i = 0; i < shades.length; i += 1) {
312
- const shade = shades[i];
313
- const cssVariableAlphaRule = `.${props.id} { --nv-${props.key}-${shade}: oklch(from ${props.color} l c h / ${shade / 1e3}); }`;
472
+ const alphaMap = {
473
+ 25: 0.025,
474
+ 50: 0.05,
475
+ 100: 0.1,
476
+ 200: 0.2,
477
+ 300: 0.3,
478
+ 400: 0.4,
479
+ 500: 0.5,
480
+ 600: 0.6,
481
+ 700: 0.7,
482
+ 800: 0.8,
483
+ 900: 0.9
484
+ };
485
+ Object.entries(alphaMap).forEach(([shade, alpha]) => {
486
+ const cssVariableAlphaRule = `.${id} { --nv-${key}-${shade}: oklch(from ${color} l c h / ${alpha}); }`;
314
487
  rules.push(cssVariableAlphaRule);
315
- }
488
+ });
489
+ return rules;
490
+ }
491
+ function generateFontSizeRules(props) {
492
+ const { id, baseFontSize } = props;
493
+ const sizeRatios = {
494
+ xs: 0.65625,
495
+ sm: 0.765625,
496
+ base: 0.875,
497
+ lg: 0.984375,
498
+ xl: 1.09375,
499
+ "2xl": 1.3125,
500
+ "3xl": 1.640625,
501
+ "4xl": 1.96875
502
+ };
503
+ const rules = [];
504
+ Object.entries(sizeRatios).forEach(([key, ratio]) => {
505
+ const size = `calc(${baseFontSize} * ${ratio})`;
506
+ const lineHeight = `calc(${baseFontSize} * ${ratio} * 1.33)`;
507
+ const cssVariableRule = `.${id} { --nv-font-size-${key}: ${size}; --nv-line-height-${key}: ${lineHeight}; }`;
508
+ rules.push(cssVariableRule);
509
+ });
510
+ return rules;
511
+ }
512
+ function generateBorderRadiusRules(props) {
513
+ const { id, baseRadius } = props;
514
+ const radiusRatios = {
515
+ none: 0,
516
+ xs: 0.333,
517
+ sm: 0.667,
518
+ md: 1,
519
+ lg: 1.333,
520
+ xl: 2,
521
+ "2xl": 2.667,
522
+ "3xl": 4,
523
+ full: 9999
524
+ };
525
+ const rules = [];
526
+ Object.entries(radiusRatios).forEach(([key, ratio]) => {
527
+ const value = key === "none" ? "0px" : key === "full" ? "9999px" : `calc(${baseRadius} * ${ratio})`;
528
+ const cssVariableRule = `.${id} { --nv-radius-${key}: ${value}; }`;
529
+ rules.push(cssVariableRule);
530
+ });
316
531
  return rules;
317
532
  }
318
533
  var parseVariables = (variables, id) => {
319
- return [
534
+ const rules = [
320
535
  generateDefaultColor({ color: variables.colorBackground, key: "color-background", id }),
321
536
  generateDefaultColor({ color: variables.colorForeground, key: "color-foreground", id }),
322
537
  generateDefaultColor({ color: variables.colorPrimary, key: "color-primary", id }),
@@ -326,24 +541,28 @@ var parseVariables = (variables, id) => {
326
541
  generateDefaultColor({ color: variables.colorCounter, key: "color-counter", id }),
327
542
  generateDefaultColor({ color: variables.colorCounterForeground, key: "color-counter-foreground", id }),
328
543
  generateDefaultColor({ color: variables.colorShadow, key: "color-shadow", id }),
329
- ...generatesAlphaShadesFromColor({ color: variables.colorBackground, key: "color-background-alpha", id }),
330
- ...generatesAlphaShadesFromColor({ color: variables.colorForeground, key: "color-foreground-alpha", id }),
331
- ...generatesSolidShadesFromColor({ color: variables.colorPrimary, key: "color-primary", id }),
332
- ...generatesAlphaShadesFromColor({ color: variables.colorPrimary, key: "color-primary-alpha", id }),
333
- ...generatesAlphaShadesFromColor({
544
+ generateDefaultColor({ color: variables.colorRing, key: "color-ring", id }),
545
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorBackground, key: "color-background-alpha", id }),
546
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorForeground, key: "color-foreground-alpha", id }),
547
+ ...generateSolidShadeRulesFromColor({ color: variables.colorPrimary, key: "color-primary", id }),
548
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorPrimary, key: "color-primary-alpha", id }),
549
+ ...generateAlphaShadeRulesFromColor({
334
550
  color: variables.colorPrimaryForeground,
335
551
  key: "color-primary-foreground-alpha",
336
552
  id
337
553
  }),
338
- ...generatesSolidShadesFromColor({ color: variables.colorSecondary, key: "color-secondary", id }),
339
- ...generatesAlphaShadesFromColor({ color: variables.colorSecondary, key: "color-secondary-alpha", id }),
340
- ...generatesAlphaShadesFromColor({
554
+ ...generateSolidShadeRulesFromColor({ color: variables.colorSecondary, key: "color-secondary", id }),
555
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorSecondary, key: "color-secondary-alpha", id }),
556
+ ...generateAlphaShadeRulesFromColor({
341
557
  color: variables.colorSecondaryForeground,
342
558
  key: "color-secondary-foreground-alpha",
343
559
  id
344
560
  }),
345
- ...generatesAlphaShadesFromColor({ color: variables.colorNeutral, key: "color-neutral-alpha", id })
561
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorNeutral, key: "color-neutral-alpha", id }),
562
+ ...generateFontSizeRules({ id, baseFontSize: variables.fontSize }),
563
+ ...generateBorderRadiusRules({ id, baseRadius: variables.borderRadius })
346
564
  ];
565
+ return rules;
347
566
  };
348
567
  var parseElements = (elements) => {
349
568
  const elementsStyleData = [];
@@ -358,7 +577,12 @@ var parseElements = (elements) => {
358
577
  }
359
578
  }
360
579
  }
361
- return elementsStyleData;
580
+ const sortedElementsStyleData = elementsStyleData.sort((a, b) => {
581
+ const countA = (a.key.match(/__/g) || []).length;
582
+ const countB = (b.key.match(/__/g) || []).length;
583
+ return countA - countB;
584
+ });
585
+ return sortedElementsStyleData;
362
586
  };
363
587
  var getTagsFromTab = (tab) => {
364
588
  var _a;
@@ -368,7 +592,7 @@ var getTagsFromTab = (tab) => {
368
592
  // src/ui/helpers/useStyle.ts
369
593
  var useStyle = () => {
370
594
  const appearance = useAppearance();
371
- const [isServer2, setIsServer] = solidJs.createSignal(true);
595
+ const [isServer, setIsServer] = solidJs.createSignal(true);
372
596
  solidJs.onMount(() => {
373
597
  setIsServer(false);
374
598
  });
@@ -395,13 +619,14 @@ var useStyle = () => {
395
619
  return countB - countA;
396
620
  });
397
621
  const finalClassName = classes.filter((className2) => !finalAppearanceKeys.includes(className2)).join(" ");
398
- const appearanceClassnames = [];
399
- for (let i = 0; i < finalAppearanceKeys.length; i += 1) {
622
+ let appearanceClassnames = [];
623
+ for (let i = 0; i < finalAppearanceKeys.reverse().length; i += 1) {
400
624
  if (typeof ((_a = appearance.elements()) == null ? void 0 : _a[finalAppearanceKeys[i]]) === "string") {
401
625
  appearanceClassnames.push((_b = appearance.elements()) == null ? void 0 : _b[finalAppearanceKeys[i]]);
402
626
  }
403
627
  }
404
- const cssInJsClasses = !!finalAppearanceKeys.length && !isServer2() ? finalAppearanceKeys.map((appKey) => appearance.appearanceKeyToCssInJsClass[appKey]) : [];
628
+ appearanceClassnames = [publicFacingTwMerge(appearanceClassnames)];
629
+ const cssInJsClasses = !!finalAppearanceKeys.length && !isServer() ? finalAppearanceKeys.map((appKey) => appearance.appearanceKeyToCssInJsClass[appKey]) : [];
405
630
  return cn(
406
631
  ...finalAppearanceKeys.map((key) => `nv-${key}`),
407
632
  "\u{1F514}",
@@ -422,10 +647,6 @@ function useUncontrolledState(props) {
422
647
  return [uncontrolledValue, setUncontrolledValue];
423
648
  }
424
649
 
425
- // src/ui/helpers/constants.ts
426
- var DEFAULT_TARGET = "_blank";
427
- var DEFAULT_REFERRER = "noopener noreferrer";
428
-
429
650
  // src/ui/context/AppearanceContext.tsx
430
651
  var AppearanceContext = solidJs.createContext(void 0);
431
652
  var AppearanceProvider = (props) => {
@@ -598,51 +819,6 @@ var useWebSocketEvent = ({
598
819
  });
599
820
  });
600
821
  };
601
- var LocalizationContext = solidJs.createContext(void 0);
602
- var LocalizationProvider = (props) => {
603
- const localization = solidJs.createMemo(() => {
604
- const _a = props.localization || {}, {
605
- dynamic
606
- } = _a, localizationObject = chunk7B52C2XE_js.__objRest(_a, [
607
- "dynamic"
608
- ]);
609
- return chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, defaultLocalization), dynamicLocalization()), dynamic || {}), localizationObject);
610
- });
611
- const t = (key, ...args) => {
612
- const value = localization()[key];
613
- if (typeof value === "function") {
614
- return value(args[0]);
615
- }
616
- return value;
617
- };
618
- const locale = solidJs.createMemo(() => localization().locale);
619
- return web.createComponent(LocalizationContext.Provider, {
620
- value: {
621
- t,
622
- locale
623
- },
624
- get children() {
625
- return props.children;
626
- }
627
- });
628
- };
629
- function useLocalization() {
630
- const context = solidJs.useContext(LocalizationContext);
631
- if (!context) {
632
- throw new Error("useLocalization must be used within an LocalizationProvider");
633
- }
634
- return context;
635
- }
636
-
637
- // src/ui/types.ts
638
- var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
639
- NotificationStatus2["UNREAD_READ"] = "unreadRead";
640
- NotificationStatus2["UNREAD"] = "unread";
641
- NotificationStatus2["ARCHIVED"] = "archived";
642
- return NotificationStatus2;
643
- })(NotificationStatus || {});
644
-
645
- // src/ui/context/InboxContext.tsx
646
822
  var InboxContext = solidJs.createContext(void 0);
647
823
  var STATUS_TO_FILTER = {
648
824
  ["unreadRead" /* UNREAD_READ */]: {
@@ -754,7 +930,7 @@ var useInboxContext = () => {
754
930
  };
755
931
  var NovuContext = solidJs.createContext(void 0);
756
932
  function NovuProvider(props) {
757
- const novu = solidJs.createMemo(() => props.novu || new chunkZ4XIR64I_js.Novu(props.options));
933
+ const novu = solidJs.createMemo(() => props.novu || new chunkMCK3RKPK_js.Novu(props.options));
758
934
  return web.createComponent(NovuContext.Provider, {
759
935
  get value() {
760
936
  return novu();
@@ -839,7 +1015,7 @@ var CountProvider = (props) => {
839
1015
  const limitValue = limit();
840
1016
  const tabFilter = chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, filter()), {
841
1017
  tags,
842
- offset: 0,
1018
+ after: void 0,
843
1019
  limit: limitValue
844
1020
  });
845
1021
  const hasEmptyCache = !notificationsCache.has(tabFilter);
@@ -873,11 +1049,16 @@ var CountProvider = (props) => {
873
1049
  if (filter().archived) {
874
1050
  return;
875
1051
  }
876
- const allTabs = tabs();
877
- if (allTabs.length > 0) {
878
- for (let i = 0; i < allTabs.length; i += 1) {
879
- const tab = allTabs[i];
880
- const tags = getTagsFromTab(tab);
1052
+ const tagsMap = tabs().reduce((acc, tab) => {
1053
+ const tags = getTagsFromTab(tab);
1054
+ const tagsKey = createKey(tags);
1055
+ acc.set(tagsKey, tags);
1056
+ return acc;
1057
+ }, /* @__PURE__ */ new Map());
1058
+ const uniqueTags = Array.from(tagsMap.values());
1059
+ if (uniqueTags.length > 0) {
1060
+ for (let i = 0; i < uniqueTags.length; i += 1) {
1061
+ const tags = uniqueTags[i];
881
1062
  const allNotifications = tags.length === 0;
882
1063
  const includesAtLeastOneTag = tags.some((tag) => {
883
1064
  var _a;
@@ -1053,144 +1234,144 @@ var ExternalElementRenderer = (props) => {
1053
1234
  return _el$;
1054
1235
  })();
1055
1236
  };
1056
- var _tmpl$2 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M16.25 15V6.875L15 4.375H5L3.75 6.877V15c0 .345.28.625.625.625h11.25c.345 0 .625-.28.625-.625zM5 8.125h10v6.25H5v-6.25zm.772-2.5h8.455l.625 1.25H5.148l.625-1.25zm6.103 3.75h-3.75v1.25h3.75v-1.25z">`);
1057
- var Archive = (props) => {
1237
+ var _tmpl$2 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 20 20"><path fill=currentColor d="M5.833 8.333L10 12.5l4.166-4.167H5.833z">`);
1238
+ var ArrowDropDown = (props) => {
1058
1239
  return (() => {
1059
1240
  var _el$ = _tmpl$2();
1060
1241
  web.spread(_el$, props, true, true);
1061
1242
  return _el$;
1062
1243
  })();
1063
1244
  };
1064
- var _tmpl$3 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M17.117 4.358l-1.159-1.4A1.21 1.21 0 0015 2.5H5c-.392 0-.733.175-.967.458l-1.15 1.4A1.632 1.632 0 002.5 5.417v10.416c0 .917.75 1.667 1.667 1.667h11.666c.917 0 1.667-.75 1.667-1.667V5.417c0-.4-.142-.775-.383-1.059zM10 14.583L5.417 10h2.916V8.333h3.334V10h2.916L10 14.583zM4.267 4.167l.675-.834h10l.783.834H4.267z">`);
1065
- var ArchiveRead = (props) => {
1245
+ var _tmpl$3 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M9.20425 9.99907L12.9168 13.7116L11.8563 14.7721L7.08325 9.99907L11.8563 5.22607L12.9168 6.28657L9.20425 9.99907Z"fill=currentColor>`);
1246
+ var ArrowLeft = (props) => {
1066
1247
  return (() => {
1067
1248
  var _el$ = _tmpl$3();
1068
1249
  web.spread(_el$, props, true, true);
1069
1250
  return _el$;
1070
1251
  })();
1071
1252
  };
1072
- var _tmpl$4 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M5.833 8.333L10 12.5l4.166-4.167H5.833z">`);
1073
- var ArrowDropDown = (props) => {
1253
+ var _tmpl$4 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 12"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5 12C5.6875 12 6.25 11.4462 6.25 10.7692H3.75C3.75 11.4462 4.3125 12 5 12ZM8.75 8.30769V5.23077C8.75 3.34154 7.73125 1.76 5.9375 1.34154V0.923077C5.9375 0.412308 5.51875 0 5 0C4.48125 0 4.0625 0.412308 4.0625 0.923077V1.34154C2.275 1.76 1.25 3.33538 1.25 5.23077V8.30769L0 9.53846V10.1538H10V9.53846L8.75 8.30769ZM7.5 8.92308H2.5V5.23077C2.5 3.70462 3.44375 2.46154 5 2.46154C6.55625 2.46154 7.5 3.70462 7.5 5.23077V8.92308Z"fill=currentColor>`);
1254
+ function Bell(props) {
1074
1255
  return (() => {
1075
1256
  var _el$ = _tmpl$4();
1076
1257
  web.spread(_el$, props, true, true);
1077
1258
  return _el$;
1078
1259
  })();
1079
- };
1080
- var _tmpl$5 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M10 16.667l1.175-1.175-4.65-4.659h10.142V9.167H6.525l4.659-4.65L10 3.333 3.334 10 10 16.667z">`);
1081
- var ArrowLeft = (props) => {
1260
+ }
1261
+ var _tmpl$5 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M0.625 9.375L2.93989 8.86059C3.5538 9.18889 4.25516 9.375 5 9.375C7.41622 9.375 9.375 7.41622 9.375 5C9.375 2.58375 7.41622 0.625 5 0.625C2.58375 0.625 0.625 2.58375 0.625 5C0.625 5.74484 0.81113 6.4462 1.13942 7.0601L0.625 9.375ZM6.50881 2.8125L6.43224 3.68761H7.1875V4.56259H6.35568L6.27912 5.43759H7.1875V6.31259H6.2026L6.12604 7.1875H5.24771L5.32423 6.31259H4.44591L4.36934 7.1875H3.49101L3.56755 6.31259H2.8125V5.43759H3.64411L3.72066 4.56259H2.8125V3.68761H3.79721L3.87377 2.8125H4.75211L4.67555 3.68761H5.55392L5.63048 2.8125H6.50881ZM4.59899 4.56259L4.52247 5.43759H5.40079L5.47736 4.56259H4.59899Z"fill=currentColor>`);
1262
+ var Chat = (props) => {
1082
1263
  return (() => {
1083
1264
  var _el$ = _tmpl$5();
1084
1265
  web.spread(_el$, props, true, true);
1085
1266
  return _el$;
1086
1267
  })();
1087
1268
  };
1088
- var _tmpl$6 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M10 18.333c.916 0 1.666-.75 1.666-1.666H8.333c0 .916.75 1.666 1.667 1.666zm5-5V9.167c0-2.559-1.359-4.7-3.75-5.267v-.567c0-.691-.559-1.25-1.25-1.25-.692 0-1.25.559-1.25 1.25V3.9C6.366 4.467 5 6.6 5 9.167v4.166L3.333 15v.833h13.333V15L15 13.333zm-1.667.834H6.666v-5c0-2.067 1.259-3.75 3.334-3.75s3.333 1.683 3.333 3.75v5z">`);
1089
- function BellIcon(props) {
1269
+ var _tmpl$6 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 8 6"fill=none xmlns=http://www.w3.org/2000/svg><path d="M2.99994 4.58847L7.33298 0L8 0.705765L2.99994 6L0 2.82356L0.666549 2.11779L2.99994 4.58847Z"fill=currentColor>`);
1270
+ var Check = (props) => {
1090
1271
  return (() => {
1091
1272
  var _el$ = _tmpl$6();
1092
1273
  web.spread(_el$, props, true, true);
1093
1274
  return _el$;
1094
1275
  })();
1095
- }
1096
- var _tmpl$7 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M12.5 3.333v5.834H4.31l-.975.975V3.333H12.5zm.834-1.666H2.5a.836.836 0 00-.833.833v11.667L5 10.833h8.334a.836.836 0 00.833-.833V2.5a.836.836 0 00-.833-.833zM17.5 5h-1.666v7.5H5v1.667c0 .458.375.833.834.833H15l3.334 3.333v-12.5A.836.836 0 0017.5 5z">`);
1097
- var Chat = (props) => {
1276
+ };
1277
+ var _tmpl$7 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 20 20"><path fill=currentColor d="M5 8.333c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S5.916 8.333 5 8.333zm10 0c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S15.916 8.333 15 8.333zm-5 0c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S10.916 8.333 10 8.333z">`);
1278
+ var Dots = (props) => {
1098
1279
  return (() => {
1099
1280
  var _el$ = _tmpl$7();
1100
1281
  web.spread(_el$, props, true, true);
1101
1282
  return _el$;
1102
1283
  })();
1103
1284
  };
1104
- var _tmpl$8 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M7.5 13.475L4.025 10l-1.183 1.175L7.5 15.833l10-10-1.175-1.175L7.5 13.475z">`);
1105
- var Check = (props) => {
1285
+ var _tmpl$8 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M4.20703 1.875H2.8125H2.10547H1.875V2.04688V2.8125V3.60156V5.33984L0.00390625 3.95508C0.0351562 3.60156 0.216797 3.27344 0.505859 3.06055L0.9375 2.74023V1.875C0.9375 1.35742 1.35742 0.9375 1.875 0.9375H3.37109L4.3457 0.216797C4.53516 0.0761719 4.76367 0 5 0C5.23633 0 5.46484 0.0761719 5.6543 0.214844L6.62891 0.9375H8.125C8.64258 0.9375 9.0625 1.35742 9.0625 1.875V2.74023L9.49414 3.06055C9.7832 3.27344 9.96484 3.60156 9.99609 3.95508L8.125 5.33984V3.60156V2.8125V2.04688V1.875H7.89453H7.1875H5.79297H4.20508H4.20703ZM0 8.75V4.72852L4.25 7.87695C4.4668 8.03711 4.73047 8.125 5 8.125C5.26953 8.125 5.5332 8.03906 5.75 7.87695L10 4.72852V8.75C10 9.43945 9.43945 10 8.75 10H1.25C0.560547 10 0 9.43945 0 8.75ZM3.4375 3.125H6.5625C6.73438 3.125 6.875 3.26562 6.875 3.4375C6.875 3.60938 6.73438 3.75 6.5625 3.75H3.4375C3.26562 3.75 3.125 3.60938 3.125 3.4375C3.125 3.26562 3.26562 3.125 3.4375 3.125ZM3.4375 4.375H6.5625C6.73438 4.375 6.875 4.51562 6.875 4.6875C6.875 4.85938 6.73438 5 6.5625 5H3.4375C3.26562 5 3.125 4.85938 3.125 4.6875C3.125 4.51562 3.26562 4.375 3.4375 4.375Z"fill=currentColor>`);
1286
+ var Email = (props) => {
1106
1287
  return (() => {
1107
1288
  var _el$ = _tmpl$8();
1108
1289
  web.spread(_el$, props, true, true);
1109
1290
  return _el$;
1110
1291
  })();
1111
1292
  };
1112
- var _tmpl$9 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M5 8.333c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S5.916 8.333 5 8.333zm10 0c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S15.916 8.333 15 8.333zm-5 0c-.917 0-1.667.75-1.667 1.667s.75 1.667 1.667 1.667c.916 0 1.666-.75 1.666-1.667S10.916 8.333 10 8.333z">`);
1113
- var Dots = (props) => {
1293
+ var _tmpl$9 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 12"fill=none xmlns=http://www.w3.org/2000/svg><path d="M4.99962 0.856934C4.64404 0.856934 4.35676 1.14421 4.35676 1.49979V1.88551C2.89024 2.18283 1.78533 3.48059 1.78533 5.03551V5.41318C1.78533 6.35738 1.43779 7.26943 0.810999 7.97658L0.662339 8.14332C0.493589 8.33216 0.45341 8.60336 0.555865 8.83439C0.658321 9.06542 0.889348 9.21408 1.14247 9.21408H8.85676C9.10988 9.21408 9.3389 9.06542 9.44337 8.83439C9.54783 8.60336 9.50564 8.33216 9.33689 8.14332L9.18823 7.97658C8.56145 7.26943 8.2139 6.35939 8.2139 5.41318V5.03551C8.2139 3.48059 7.10899 2.18283 5.64247 1.88551V1.49979C5.64247 1.14421 5.3552 0.856934 4.99962 0.856934ZM5.90966 10.767C6.15073 10.5259 6.28533 10.1985 6.28533 9.85693H4.99962H3.7139C3.7139 10.1985 3.8485 10.5259 4.08957 10.767C4.33064 11.008 4.6581 11.1426 4.99962 11.1426C5.34113 11.1426 5.66859 11.008 5.90966 10.767Z"fill=currentColor>`);
1294
+ var InApp = (props) => {
1114
1295
  return (() => {
1115
1296
  var _el$ = _tmpl$9();
1116
1297
  web.spread(_el$, props, true, true);
1117
1298
  return _el$;
1118
1299
  })();
1119
1300
  };
1120
- var _tmpl$10 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M16.667 3.333H3.334c-.917 0-1.659.75-1.659 1.667l-.008 10c0 .917.75 1.667 1.667 1.667h13.333c.917 0 1.667-.75 1.667-1.667V5c0-.917-.75-1.667-1.667-1.667zm0 11.667H3.334V6.667L10 10.833l6.667-4.166V15zM10 9.167L3.334 5h13.333L10 9.167z">`);
1121
- var Email = (props) => {
1301
+ var _tmpl$10 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M2.29671 10C1.78742 10 1.39807 9.85716 1.12864 9.57149C0.862497 9.28581 0.729426 8.86623 0.729426 8.31274V2.64594H1.69543V8.29668C1.69543 8.52163 1.74964 8.69487 1.85806 8.81624C1.96978 8.93408 2.12914 8.99301 2.33614 8.99301H7.66389C7.86764 8.99301 8.02366 8.93408 8.13209 8.81624C8.24384 8.69487 8.29965 8.52163 8.29965 8.29668V2.64594H9.27059V8.31274C9.27059 8.8627 9.13591 9.28048 8.86648 9.56608C8.59705 9.85536 8.20931 10 7.70333 10H2.29671ZM3.41056 5.34543C3.29556 5.34543 3.20028 5.30438 3.1247 5.22226C3.04913 5.14015 3.01134 5.03304 3.01134 4.90089V4.72949C3.01134 4.59737 3.04749 4.49204 3.11977 4.41348C3.19535 4.33492 3.29227 4.29564 3.41056 4.29564H6.5944C6.71271 4.29564 6.80795 4.33492 6.88026 4.41348C6.95582 4.49204 6.9936 4.59737 6.9936 4.72949V4.90089C6.9936 5.03304 6.95582 5.14015 6.88026 5.22226C6.8047 5.30438 6.70939 5.34543 6.5944 5.34543H3.41056ZM1.05964 3.16014C0.724502 3.16014 0.463285 3.05301 0.276004 2.83877C0.0920037 2.62095 0 2.33172 0 1.97107V1.18907C0 0.824846 0.0952841 0.535614 0.28586 0.321373C0.476428 0.107124 0.734358 0 1.05964 0H8.94536C9.27715 0 9.53511 0.107124 9.71911 0.321373C9.90642 0.535614 10 0.824846 10 1.18907V1.97107C10 2.33172 9.90642 2.62095 9.71911 2.83877C9.53511 3.05301 9.27715 3.16014 8.94536 3.16014H1.05964ZM1.24693 2.19067H8.75805C8.87304 2.19067 8.95516 2.16211 9.00448 2.10497C9.05372 2.04427 9.07838 1.95322 9.07838 1.83181V1.32833C9.07838 1.20335 9.05372 1.1123 9.00448 1.05517C8.95516 0.99803 8.87304 0.969462 8.75805 0.969462H1.24693C1.13193 0.969462 1.04814 0.99803 0.995567 1.05517C0.946281 1.1123 0.921638 1.20335 0.921638 1.32833V1.83181C0.921638 1.95322 0.946281 2.04427 0.995567 2.10497C1.04814 2.16211 1.13193 2.19067 1.24693 2.19067Z"fill=currentColor>`);
1302
+ var MarkAsArchived = (props) => {
1122
1303
  return (() => {
1123
1304
  var _el$ = _tmpl$10();
1124
1305
  web.spread(_el$, props, true, true);
1125
1306
  return _el$;
1126
1307
  })();
1127
1308
  };
1128
- var _tmpl$11 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 20 20"fill=none><path fill=currentColor d="M9.99967 18.3334C10.9163 18.3334 11.6663 17.5834 11.6663 16.6667H8.33301C8.33301 17.5834 9.08301 18.3334 9.99967 18.3334ZM14.9997 13.3334V9.16671C14.9997 6.60837 13.6413 4.46671 11.2497 3.90004V3.33337C11.2497 2.64171 10.6913 2.08337 9.99967 2.08337C9.30801 2.08337 8.74967 2.64171 8.74967 3.33337V3.90004C6.36634 4.46671 4.99967 6.60004 4.99967 9.16671V13.3334L3.33301 15V15.8334H16.6663V15L14.9997 13.3334ZM13.333 14.1667H6.66634V9.16671C6.66634 7.10004 7.92467 5.41671 9.99967 5.41671C12.0747 5.41671 13.333 7.10004 13.333 9.16671V14.1667Z">`);
1129
- var InApp = (props) => {
1309
+ var _tmpl$11 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M2.29671 10C1.78742 10 1.39807 9.85716 1.12864 9.57149C0.862497 9.28581 0.729426 8.86623 0.729426 8.31274V2.64594H1.69543V8.29668C1.69543 8.52163 1.74964 8.69487 1.85806 8.81624C1.96978 8.93408 2.12914 8.99301 2.33614 8.99301H7.66389C7.86764 8.99301 8.02366 8.93408 8.13209 8.81624C8.24384 8.69487 8.29965 8.52163 8.29965 8.29668V2.64594H9.27059V8.31274C9.27059 8.8627 9.13591 9.28048 8.86648 9.56608C8.59705 9.85536 8.20931 10 7.70333 10H2.29671ZM1.05964 3.16014C0.724502 3.16014 0.463285 3.05301 0.276004 2.83877C0.0920037 2.62095 0 2.33172 0 1.97107V1.18907C0 0.824846 0.0952841 0.535614 0.28586 0.321373C0.476428 0.107124 0.734358 0 1.05964 0H8.94536C9.27715 0 9.53511 0.107124 9.71911 0.321373C9.90642 0.535614 10 0.824846 10 1.18907V1.97107C10 2.33172 9.90642 2.62095 9.71911 2.83877C9.53511 3.05301 9.27715 3.16014 8.94536 3.16014H1.05964ZM1.24693 2.19067H8.75805C8.87304 2.19067 8.95516 2.16211 9.00448 2.10497C9.05372 2.04427 9.07838 1.95322 9.07838 1.83181V1.32833C9.07838 1.20335 9.05372 1.1123 9.00448 1.05517C8.95516 0.99803 8.87304 0.969462 8.75805 0.969462H1.24693C1.13193 0.969462 1.04814 0.99803 0.995567 1.05517C0.946281 1.1123 0.921638 1.20335 0.921638 1.32833V1.83181C0.921638 1.95322 0.946281 2.04427 0.995567 2.10497C1.04814 2.16211 1.13193 2.19067 1.24693 2.19067Z"fill=currentColor>`);
1310
+ var MarkAsArchivedRead = (props) => {
1130
1311
  return (() => {
1131
1312
  var _el$ = _tmpl$11();
1132
1313
  web.spread(_el$, props, true, true);
1133
1314
  return _el$;
1134
1315
  })();
1135
1316
  };
1136
- var _tmpl$12 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M15.833 2.5H4.158c-.925 0-1.65.742-1.65 1.667L2.5 15.833A1.66 1.66 0 004.158 17.5h11.675c.917 0 1.667-.75 1.667-1.667V4.167A1.667 1.667 0 0015.833 2.5zm0 10H12.5c0 1.383-1.125 2.5-2.5 2.5a2.502 2.502 0 01-2.5-2.5H4.158V4.167h11.675V12.5z">`);
1137
- var Inbox = (props) => {
1317
+ var _tmpl$12 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M1.75683 10C1.17837 10 0.740942 9.85182 0.444565 9.55546C0.148188 9.26266 0 8.83065 0 8.25932V1.74077C0 1.16587 0.148188 0.732023 0.444565 0.43921C0.740942 0.146407 1.17837 0 1.75683 0H8.24315C8.82161 0 9.25901 0.146407 9.55546 0.43921C9.85182 0.732023 10 1.16587 10 1.74077V8.25932C10 8.83065 9.85182 9.26266 9.55546 9.55546C9.25901 9.85182 8.82161 10 8.24315 10H1.75683ZM1.8211 8.94491H8.17889C8.42524 8.94491 8.61456 8.88056 8.74665 8.75204C8.87874 8.62351 8.94483 8.42889 8.94483 8.16818V1.82647C8.94483 1.56937 8.87874 1.37655 8.74665 1.248C8.61456 1.11945 8.42524 1.05518 8.17889 1.05518H1.8211C1.57115 1.05518 1.38011 1.11945 1.248 1.248C1.11944 1.37655 1.05517 1.56937 1.05517 1.82647V8.16818C1.05517 8.42889 1.11944 8.62351 1.248 8.75204C1.38011 8.88056 1.57115 8.94491 1.8211 8.94491ZM4.42957 7.53616C4.32958 7.53616 4.24032 7.51477 4.16176 7.47189C4.0832 7.42546 4.00643 7.35763 3.93144 7.26841L2.66738 5.72579C2.57454 5.60795 2.52812 5.48833 2.52812 5.36693C2.52812 5.23481 2.57276 5.12232 2.66202 5.02949C2.75487 4.93307 2.86556 4.88486 2.99411 4.88486C3.07624 4.88486 3.14944 4.90272 3.21371 4.93843C3.28156 4.97056 3.34762 5.02949 3.4119 5.11518L4.40814 6.37925L6.52383 2.98876C6.63453 2.80666 6.77379 2.7156 6.94162 2.7156C7.06658 2.7156 7.17911 2.75667 7.27903 2.83879C7.37903 2.92093 7.42903 3.02804 7.42903 3.16016C7.42903 3.22087 7.41477 3.28336 7.38616 3.34763C7.3612 3.40834 7.33086 3.46547 7.29511 3.51903L4.90091 7.26301C4.78664 7.44511 4.62953 7.53616 4.42957 7.53616Z"fill=currentColor>`);
1318
+ var MarkAsRead = (props) => {
1138
1319
  return (() => {
1139
1320
  var _el$ = _tmpl$12();
1140
1321
  web.spread(_el$, props, true, true);
1141
1322
  return _el$;
1142
1323
  })();
1143
1324
  };
1144
- var _tmpl$13 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=13 height=12 fill=none viewBox="0 0 13 12"><path fill=currentColor d="M9.787.98A5.972 5.972 0 006.5 0c-.668 0-1.31.11-1.911.31L9.187 4.94c.221.222.6.065.6-.248V.98z"></path><path fill=currentColor d="M2.879 1.216A5.99 5.99 0 00.5 6c0 1.134.315 2.195.862 3.1V7.309c0-1.966 2.379-2.946 3.764-1.552l4.995 5.027A5.99 5.99 0 0012.5 6a5.972 5.972 0 00-.862-3.1v1.791c0 1.966-2.379 2.946-3.764 1.552L2.879 1.216z"></path><path fill=currentColor d="M8.411 11.69L3.813 7.06a.351.351 0 00-.6.248v3.711c.944.62 2.073.98 3.287.98.668 0 1.31-.11 1.911-.31z">`);
1145
- var Novu2 = (props) => {
1325
+ var _tmpl$13 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M3.15789 2.99902V4.99902L0 2.49902L3.15789 -0.000976562V1.99902H5.78947C6.90618 1.99902 7.97714 2.42045 8.76677 3.1706C9.55639 3.92074 10 4.93816 10 5.99902C10 7.05989 9.55639 8.0773 8.76677 8.82745C7.97714 9.5776 6.90618 9.99902 5.78947 9.99902H1.05263V8.99902H5.78947C6.627 8.99902 7.43022 8.68295 8.02244 8.12034C8.61466 7.55773 8.94737 6.79467 8.94737 5.99902C8.94737 5.20337 8.61466 4.44031 8.02244 3.8777C7.43022 3.31509 6.627 2.99902 5.78947 2.99902H3.15789Z"fill=currentColor>`);
1326
+ var MarkAsUnarchived = (props) => {
1146
1327
  return (() => {
1147
1328
  var _el$ = _tmpl$13();
1148
1329
  web.spread(_el$, props, true, true);
1149
1330
  return _el$;
1150
1331
  })();
1151
1332
  };
1152
- var _tmpl$14 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M15.833.833H7.5c-.917 0-1.667.75-1.667 1.667V5H7.5V3.333h8.333v13.334H7.5V15H5.833v2.5c0 .917.75 1.667 1.667 1.667h8.333c.917 0 1.667-.75 1.667-1.667v-15c0-.917-.75-1.667-1.667-1.667zM5.842 11.225L3.717 9.1l-1.059 1.058 3.175 3.175 5.992-5.991-1.058-1.059-4.925 4.942z">`);
1153
- var Push = (props) => {
1333
+ var _tmpl$14 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 11 11"fill=none xmlns=http://www.w3.org/2000/svg><path d="M6.8 1.5H1.5C0.947715 1.5 0.5 1.94772 0.5 2.5V9.5C0.5 10.0523 0.947715 10.5 1.5 10.5H8.5C9.05228 10.5 9.5 10.0523 9.5 9.5V4.2"stroke=currentColor stroke-miterlimit=1 stroke-linecap=round></path><circle cx=9.25 cy=1.75 r=1.25 fill=currentColor>`);
1334
+ var MarkAsUnread = (props) => {
1154
1335
  return (() => {
1155
1336
  var _el$ = _tmpl$14();
1156
1337
  web.spread(_el$, props, true, true);
1157
1338
  return _el$;
1158
1339
  })();
1159
1340
  };
1160
- var _tmpl$15 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M15.833 2.5H4.167C3.25 2.5 2.5 3.25 2.5 4.167v11.666c0 .917.75 1.667 1.667 1.667h11.666c.917 0 1.667-.75 1.667-1.667V4.167c0-.917-.75-1.667-1.667-1.667zm0 13.333H4.167V4.167h11.666v11.666zM14.992 7.5l-1.175-1.183-5.492 5.491-2.15-2.141-1.183 1.175 3.333 3.325L14.992 7.5z">`);
1161
- var ReadAll = (props) => {
1341
+ var _tmpl$15 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 13 12"><path fill=currentColor d="M9.787.98A5.972 5.972 0 006.5 0c-.668 0-1.31.11-1.911.31L9.187 4.94c.221.222.6.065.6-.248V.98z"></path><path fill=currentColor d="M2.879 1.216A5.99 5.99 0 00.5 6c0 1.134.315 2.195.862 3.1V7.309c0-1.966 2.379-2.946 3.764-1.552l4.995 5.027A5.99 5.99 0 0012.5 6a5.972 5.972 0 00-.862-3.1v1.791c0 1.966-2.379 2.946-3.764 1.552L2.879 1.216z"></path><path fill=currentColor d="M8.411 11.69L3.813 7.06a.351.351 0 00-.6.248v3.711c.944.62 2.073.98 3.287.98.668 0 1.31-.11 1.911-.31z">`);
1342
+ var Novu2 = (props) => {
1162
1343
  return (() => {
1163
1344
  var _el$ = _tmpl$15();
1164
1345
  web.spread(_el$, props, true, true);
1165
1346
  return _el$;
1166
1347
  })();
1167
1348
  };
1168
- var _tmpl$16 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M15.95 10.783c.033-.25.05-.508.05-.783a4.81 4.81 0 00-.059-.783L17.633 7.9a.408.408 0 00.1-.508l-1.6-2.767a.407.407 0 00-.492-.183l-1.991.8a5.885 5.885 0 00-1.35-.784L12 2.342A.403.403 0 0011.6 2H8.4c-.2 0-.359.142-.392.342l-.3 2.116c-.492.2-.942.475-1.35.784l-1.992-.8a.398.398 0 00-.491.183L2.283 7.392c-.1.175-.067.391.1.508l1.692 1.317A4.89 4.89 0 004 10c0 .258.016.533.058.783L2.366 12.1a.408.408 0 00-.1.508l1.6 2.767c.1.183.309.242.492.183l1.992-.8c.416.317.858.584 1.35.784l.3 2.116c.041.2.2.342.4.342h3.2c.2 0 .366-.142.391-.342l.3-2.116c.492-.2.942-.467 1.35-.784l1.992.8c.183.067.392 0 .492-.183l1.6-2.767c.1-.183.058-.391-.1-.508l-1.675-1.317zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z">`);
1169
- var Settings = (props) => {
1349
+ var _tmpl$16 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 16"fill=none xmlns=http://www.w3.org/2000/svg><path d="M4.12531 1.8999C3.94958 1.8999 3.80713 2.04235 3.80713 2.21808C3.80713 2.39382 3.94958 2.53627 4.12531 2.53627H6.0344C6.21013 2.53627 6.35258 2.39382 6.35258 2.21808C6.35258 2.04235 6.21013 1.8999 6.0344 1.8999H4.12531Z"fill=currentColor></path><path d="M4.12531 1.8999C3.94958 1.8999 3.80713 2.04235 3.80713 2.21808C3.80713 2.39382 3.94958 2.53627 4.12531 2.53627H6.0344C6.21013 2.53627 6.35258 2.39382 6.35258 2.21808C6.35258 2.04235 6.21013 1.8999 6.0344 1.8999H4.12531Z"stroke=currentColor></path><path d="M2.69329 1.46818H7.30693C7.75127 1.46818 8.11147 1.82839 8.11147 2.27273V13.7273C8.11147 14.1716 7.75127 14.5318 7.30693 14.5318H2.69329C2.24896 14.5318 1.88875 14.1716 1.88875 13.7273V2.27273C1.88875 1.82839 2.24896 1.46818 2.69329 1.46818ZM2.69329 0.85C1.90754 0.85 1.27057 1.48698 1.27057 2.27273V2.95695C1.17568 3.00972 1.11147 3.111 1.11147 3.22727V3.54545C1.11147 3.64155 1.15532 3.7274 1.22411 3.78409C1.15532 3.84078 1.11147 3.92663 1.11147 4.02273V4.65909C1.11147 4.75519 1.15532 4.84104 1.22411 4.89773C1.15532 4.95442 1.11147 5.04027 1.11147 5.13636V6.09091C1.11147 6.20718 1.17568 6.30846 1.27057 6.36123V13.7273C1.27057 14.513 1.90754 15.15 2.69329 15.15H7.30693C8.09268 15.15 8.72966 14.513 8.72966 13.7273V6.36123C8.82454 6.30846 8.88875 6.20718 8.88875 6.09091V4.81818C8.88875 4.70191 8.82454 4.60063 8.72966 4.54786V2.27273C8.72966 1.48698 8.09268 0.85 7.30693 0.85H2.69329Z"fill=currentColor stroke=currentColor stroke-width=0.3>`);
1350
+ var Push = (props) => {
1170
1351
  return (() => {
1171
1352
  var _el$ = _tmpl$16();
1172
1353
  web.spread(_el$, props, true, true);
1173
1354
  return _el$;
1174
1355
  })();
1175
1356
  };
1176
- var _tmpl$17 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M16.667 1.667H3.334c-.917 0-1.667.75-1.667 1.666v15L5 15h11.667c.917 0 1.667-.75 1.667-1.667v-10c0-.916-.75-1.666-1.667-1.666zm0 11.666H4.309l-.975.975V3.333h13.333v10zM5.834 7.5H7.5v1.667H5.834V7.5zm6.666 0h1.667v1.667H12.5V7.5zm-3.333 0h1.667v1.667H9.167V7.5z">`);
1177
- var Sms = (props) => {
1357
+ var _tmpl$17 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M10 1.75L17.125 5.875V14.125L10 18.25L2.875 14.125V5.875L10 1.75ZM10 3.48325L4.375 6.73975V13.2603L10 16.5167L15.625 13.2603V6.73975L10 3.48325ZM10 13C9.20435 13 8.44129 12.6839 7.87868 12.1213C7.31607 11.5587 7 10.7956 7 10C7 9.20435 7.31607 8.44129 7.87868 7.87868C8.44129 7.31607 9.20435 7 10 7C10.7956 7 11.5587 7.31607 12.1213 7.87868C12.6839 8.44129 13 9.20435 13 10C13 10.7956 12.6839 11.5587 12.1213 12.1213C11.5587 12.6839 10.7956 13 10 13ZM10 11.5C10.3978 11.5 10.7794 11.342 11.0607 11.0607C11.342 10.7794 11.5 10.3978 11.5 10C11.5 9.60218 11.342 9.22064 11.0607 8.93934C10.7794 8.65804 10.3978 8.5 10 8.5C9.60218 8.5 9.22064 8.65804 8.93934 8.93934C8.65804 9.22064 8.5 9.60218 8.5 10C8.5 10.3978 8.65804 10.7794 8.93934 11.0607C9.22064 11.342 9.60218 11.5 10 11.5Z"fill=currentColor>`);
1358
+ var Settings = (props) => {
1178
1359
  return (() => {
1179
1360
  var _el$ = _tmpl$17();
1180
1361
  web.spread(_el$, props, true, true);
1181
1362
  return _el$;
1182
1363
  })();
1183
1364
  };
1184
- var _tmpl$18 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 20 20"fill=none><path fill=currentColor d="M17.1167 4.35833L15.9583 2.95833C15.7333 2.675 15.3917 2.5 15 2.5H5C4.60833 2.5 4.26667 2.675 4.03333 2.95833L2.88333 4.35833C2.64167 4.64167 2.5 5.01667 2.5 5.41667V15.8333C2.5 16.75 3.25 17.5 4.16667 17.5H15.8333C16.75 17.5 17.5 16.75 17.5 15.8333V5.41667C17.5 5.01667 17.3583 4.64167 17.1167 4.35833ZM5.2 4.16667H14.8L15.4917 5H4.51667L5.2 4.16667ZM4.16667 15.8333V6.66667H15.8333V15.8333H4.16667ZM6.66667 11.6667H8.79167V14.1667H11.2083V11.6667H13.3333L10 8.33333L6.66667 11.6667Z">`);
1185
- var Unarchive = (props) => {
1365
+ var _tmpl$18 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5.00051 9.28364C7.76195 9.28364 10 7.20598 10 4.64182C10 2.07766 7.76195 0 5.00051 0C2.23907 0 0.00101462 2.07766 0.00101462 4.64182C0.00101462 5.64829 0.346683 6.57889 0.932561 7.33988C0.895455 7.88663 0.709927 8.37313 0.514634 8.74358C0.407223 8.94889 0.297859 9.11404 0.21779 9.22562C0.176778 9.28141 0.145531 9.32381 0.122096 9.35282C0.110379 9.36621 0.102567 9.37737 0.096708 9.38407L0.0908493 9.39076C0.00101462 9.49342 -0.0243734 9.64517 0.0244497 9.77907C0.0732729 9.91297 0.186543 10 0.313483 10C0.873973 10 1.43837 9.80138 1.90707 9.56929C2.35429 9.34613 2.73511 9.08056 2.96751 8.88641C3.58854 9.14305 4.27597 9.28587 5.00051 9.28587V9.28364ZM1.87582 4.03481C1.87582 3.58179 2.19806 3.21357 2.5945 3.21357H2.96946C3.14132 3.21357 3.28193 3.37425 3.28193 3.57063C3.28193 3.76702 3.14132 3.92769 2.96946 3.92769H2.5945C2.54177 3.92769 2.50076 3.97679 2.50076 4.03481C2.50076 4.07052 2.51638 4.10399 2.54373 4.12408L3.11789 4.56148C3.31904 4.71323 3.43817 4.96987 3.43817 5.2466C3.43817 5.69962 3.11593 6.06784 2.71949 6.06784L2.18829 6.07007C2.01644 6.07007 1.87582 5.9094 1.87582 5.71301C1.87582 5.51663 2.01644 5.35595 2.18829 5.35595H2.71949C2.77222 5.35595 2.81323 5.30685 2.81323 5.24883C2.81323 5.21312 2.79761 5.17965 2.77026 5.15956L2.1961 4.72216C1.99691 4.56818 1.87582 4.31154 1.87582 4.03481ZM7.28153 3.21357H7.65649C7.82834 3.21357 7.96896 3.37425 7.96896 3.57063C7.96896 3.76702 7.82834 3.92769 7.65649 3.92769H7.28153C7.2288 3.92769 7.18779 3.97679 7.18779 4.03481C7.18779 4.07052 7.20341 4.10399 7.23075 4.12408L7.80491 4.56148C8.00411 4.71323 8.12519 4.96987 8.12519 5.2466C8.12519 5.69962 7.80296 6.06784 7.40651 6.06784L6.87532 6.07007C6.70346 6.07007 6.56285 5.9094 6.56285 5.71301C6.56285 5.51663 6.70346 5.35595 6.87532 5.35595H7.40651C7.45924 5.35595 7.50025 5.30685 7.50025 5.24883C7.50025 5.21312 7.48463 5.17965 7.45729 5.15956L6.88313 4.72216C6.68393 4.57041 6.56285 4.31377 6.56285 4.03705C6.56285 3.58402 6.88508 3.2158 7.28153 3.2158V3.21357ZM4.31308 3.35639L5.00051 4.40304L5.68794 3.35639C5.76801 3.23365 5.90862 3.18233 6.03751 3.23142C6.1664 3.28052 6.25038 3.41665 6.25038 3.57063V5.71301C6.25038 5.9094 6.10977 6.07007 5.93791 6.07007C5.76605 6.07007 5.62544 5.9094 5.62544 5.71301V4.64182L5.25048 5.21312C5.19189 5.30239 5.09815 5.35595 5.00051 5.35595C4.90286 5.35595 4.80912 5.30239 4.75053 5.21312L4.37557 4.64182V5.71301C4.37557 5.9094 4.23496 6.07007 4.0631 6.07007C3.89124 6.07007 3.75063 5.9094 3.75063 5.71301V3.57063C3.75063 3.41665 3.83656 3.28052 3.9635 3.23142C4.09044 3.18233 4.23105 3.23365 4.31308 3.35639Z"fill=currentColor>`);
1366
+ var Sms = (props) => {
1186
1367
  return (() => {
1187
1368
  var _el$ = _tmpl$18();
1188
1369
  web.spread(_el$, props, true, true);
1189
1370
  return _el$;
1190
1371
  })();
1191
1372
  };
1192
- var _tmpl$19 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=20 height=20 fill=none viewBox="0 0 20 20"><path fill=currentColor d="M10 15v1.25H4.996a.625.625 0 01-.621-.62V4.37c0-.342.28-.62.624-.62H12.5l3.125 3.125v4.375h-1.25V7.5h-2.5V5h-6.25v10H10zm1.54-.335l2.21 2.21 3.094-3.093-.884-.884-2.21 2.21-1.326-1.326-.884.883z">`);
1193
- var Unread = (props) => {
1373
+ var _tmpl$19 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 8"fill=none xmlns=http://www.w3.org/2000/svg><path d="M1.0119 0.348031C1.06274 0.14468 1.26565 0 1.5 0H8.5C8.73435 0 8.93725 0.14468 8.9881 0.348031L9.9881 4.34804C9.996 4.37969 10 4.412 10 4.44444V7.55556C10 7.80102 9.77615 8 9.5 8H0.5C0.22386 8 0 7.80102 0 7.55556V4.44444C0 4.412 0.00399495 4.37969 0.011905 4.34804L1.0119 0.348031ZM1.90108 0.888889L1.12331 4H3.5C3.5 4.7364 4.17155 5.33333 5 5.33333C5.82845 5.33333 6.5 4.7364 6.5 4H8.8767L8.0989 0.888889H1.90108ZM7.292 4.88889C6.9062 5.67373 6.02515 6.22222 5 6.22222C3.97484 6.22222 3.0938 5.67373 2.70802 4.88889H1V7.11111H9V4.88889H7.292Z"fill=currentColor>`);
1374
+ var UnreadRead = (props) => {
1194
1375
  return (() => {
1195
1376
  var _el$ = _tmpl$19();
1196
1377
  web.spread(_el$, props, true, true);
@@ -1204,9 +1385,9 @@ var BellContainer = (props) => {
1204
1385
  const style = useStyle();
1205
1386
  return (() => {
1206
1387
  var _el$ = _tmpl$20();
1207
- web.insert(_el$, web.createComponent(BellIcon, {
1388
+ web.insert(_el$, web.createComponent(Bell, {
1208
1389
  get ["class"]() {
1209
- return style("bellIcon");
1390
+ return style("bellIcon", "nt-size-4");
1210
1391
  }
1211
1392
  }), null);
1212
1393
  web.insert(_el$, web.createComponent(solidJs.Show, {
@@ -1215,17 +1396,17 @@ var BellContainer = (props) => {
1215
1396
  },
1216
1397
  get children() {
1217
1398
  var _el$2 = _tmpl$20();
1218
- web.effect(() => web.className(_el$2, style("bellDot", "nt-absolute nt-top-2 nt-right-2 nt-block nt-size-2 nt-transform nt-translate-x-1/2 -nt-translate-y-1/2 nt-bg-primary nt-rounded-full nt-border nt-border-background")));
1399
+ web.effect(() => web.className(_el$2, style("bellDot", "nt-absolute nt-top-0 nt-right-0 nt-block nt-size-2 nt-transform nt-bg-counter nt-rounded-full nt-border nt-border-background")));
1219
1400
  return _el$2;
1220
1401
  }
1221
1402
  }), null);
1222
- web.effect(() => web.className(_el$, style("bellContainer", `nt-h-6 nt-w-6 nt-flex nt-justify-center nt-items-center nt-rounded-md nt-relative nt-text-foreground nt-cursor-pointer`)));
1403
+ web.effect(() => web.className(_el$, style("bellContainer", `nt-size-4 nt-flex nt-justify-center nt-items-center nt-relative nt-text-foreground nt-cursor-pointer`)));
1223
1404
  return _el$;
1224
1405
  })();
1225
1406
  };
1226
1407
 
1227
1408
  // src/ui/components/elements/Bell/Bell.tsx
1228
- var Bell = (props) => {
1409
+ var Bell2 = (props) => {
1229
1410
  const {
1230
1411
  totalUnreadCount
1231
1412
  } = useTotalUnreadCount();
@@ -1254,7 +1435,7 @@ function isBrowser() {
1254
1435
  }
1255
1436
 
1256
1437
  // src/ui/components/elements/Footer.tsx
1257
- var _tmpl$21 = /* @__PURE__ */ web.template(`<div class="nt-flex nt-shrink-0 nt-justify-center nt-items-center nt-gap-1 nt-mt-auto nt-pt-9 nt-pb-3 nt-text-foreground-alpha-200"><a target=_blank class="nt-block nt-w-full nt-flex nt-items-center nt-gap-1 nt-justify-center"><span class=nt-text-xs>Powered by Novu`);
1438
+ var _tmpl$21 = /* @__PURE__ */ web.template(`<div class="nt-flex nt-shrink-0 nt-justify-center nt-items-center nt-gap-1 nt-mt-auto nt-py-3 nt-text-foreground-alpha-400"><a target=_blank class="nt-w-full nt-flex nt-items-center nt-gap-1 nt-justify-center"><span class=nt-text-xs>Inbox by</span><span class=nt-text-xs>Novu`);
1258
1439
  var Footer = () => {
1259
1440
  const {
1260
1441
  hideBranding
@@ -1264,8 +1445,10 @@ var Footer = () => {
1264
1445
  return !hideBranding();
1265
1446
  },
1266
1447
  get children() {
1267
- var _el$ = _tmpl$21(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
1268
- web.insert(_el$2, web.createComponent(Novu2, {}), _el$3);
1448
+ var _el$ = _tmpl$21(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
1449
+ web.insert(_el$2, web.createComponent(Novu2, {
1450
+ "class": "nt-size-4"
1451
+ }), _el$4);
1269
1452
  web.effect(() => web.setAttribute(_el$2, "href", `https://go.novu.co/powered?ref=${getCurrentDomain()}`));
1270
1453
  return _el$;
1271
1454
  }
@@ -1278,21 +1461,21 @@ function getCurrentDomain() {
1278
1461
  return "";
1279
1462
  }
1280
1463
  var _tmpl$22 = /* @__PURE__ */ web.template(`<button>`);
1281
- var buttonVariants = classVarianceAuthority.cva("nt-inline-flex nt-gap-4 nt-items-center nt-justify-center nt-whitespace-nowrap nt-rounded-lg nt-text-sm nt-font-medium nt-ring-offset-background nt-transition-colors focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-ring-primary nt-focus-visible:nt-ring-offset-2 disabled:nt-pointer-events-none disabled:nt-opacity-50", {
1464
+ var buttonVariants = classVarianceAuthority.cva(cn('nt-inline-flex nt-gap-4 nt-items-center nt-justify-center nt-whitespace-nowrap nt-text-sm nt-font-medium nt-transition-colors disabled:nt-pointer-events-none disabled:nt-opacity-50 after:nt-absolute after:nt-content-[""] before:nt-content-[""] before:nt-absolute [&_svg]:nt-pointer-events-none [&_svg]:nt-shrink-0', `focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-rounded-md focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2`), {
1282
1465
  variants: {
1283
1466
  variant: {
1284
- default: "nt-bg-primary nt-text-primary-foreground hover:nt-bg-primary-alpha-900",
1285
- secondary: "nt-bg-secondary nt-text-secondary-foreground hover:nt-bg-secondary-alpha-800",
1286
- icon: "nt-text-secondary-foreground-alpha-500 hover:nt-bg-neutral-alpha-50",
1287
- ghost: "hover:nt-bg-neutral-alpha-50",
1467
+ default: "nt-bg-gradient-to-b nt-from-20% nt-from-primary-foreground-alpha-200 nt-to-transparent nt-bg-primary nt-text-primary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-primary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-primary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-primary-foreground-alpha-50 after:nt-to-transparent",
1468
+ secondary: "nt-bg-secondary nt-text-secondary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-secondary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-secondary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-secondary-foreground-alpha-50 after:nt-to-transparent",
1469
+ ghost: "hover:nt-bg-neutral-alpha-100 nt-text-foreground-alpha-600 hover:nt-text-foreground-alpha-800",
1288
1470
  unstyled: ""
1289
1471
  },
1290
1472
  size: {
1291
1473
  none: "",
1292
- icon: "nt-p-1",
1293
- default: "nt-h-8 nt-px-3",
1294
- sm: "nt-h-7 nt-rounded-md nt-px-3",
1295
- lg: "nt-h-10 nt-px-8"
1474
+ iconSm: "nt-p-1 nt-rounded-md after:nt-rounded-md before:nt-rounded-md focus-visible:nt-rounded-md",
1475
+ icon: "nt-p-2.5 nt-rounded-xl before:nt-rounded-xl after:nt-rounded-xl focus-visible:nt-rounded-xl",
1476
+ default: "nt-px-2 nt-py-1 nt-rounded-lg focus-visible:nt-rounded-lg before:nt-rounded-lg after:nt-rounded-lg",
1477
+ sm: "nt-px-1 nt-py-px nt-rounded-md nt-text-xs nt-px-1 before:nt-rounded-md focus-visible:nt-rounded-md after:nt-rounded-md",
1478
+ lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-lg after:nt-rounded-lg focus-visible:nt-rounded-lg"
1296
1479
  }
1297
1480
  },
1298
1481
  defaultVariants: {
@@ -1350,24 +1533,37 @@ var PopoverClose = (props) => {
1350
1533
  })();
1351
1534
  };
1352
1535
  web.delegateEvents(["click"]);
1353
- var Motion = new Proxy(solidMotionone.Motion, {
1354
- get: (_, tag) => (props) => {
1355
- const {
1356
- animations
1357
- } = useAppearance();
1358
- return web.createComponent(solidMotionone.Motion, web.mergeProps(props, {
1359
- tag,
1360
- get transition() {
1361
- return animations() ? props.transition : {
1362
- duration: 0
1363
- };
1536
+ var _tmpl$24 = /* @__PURE__ */ web.template(`<div>`);
1537
+ var Root = (props) => {
1538
+ const [_, rest] = solidJs.splitProps(props, ["class"]);
1539
+ const {
1540
+ id
1541
+ } = useAppearance();
1542
+ const style = useStyle();
1543
+ const {
1544
+ hideBranding
1545
+ } = useInboxContext();
1546
+ return [web.createComponent(solidJs.Show, {
1547
+ get when() {
1548
+ return !hideBranding();
1549
+ },
1550
+ children: new Comment(" Powered by Novu - https://novu.co ")
1551
+ }), (() => {
1552
+ var _el$ = _tmpl$24();
1553
+ web.spread(_el$, web.mergeProps({
1554
+ get id() {
1555
+ return `novu-root-${id()}`;
1556
+ },
1557
+ get ["class"]() {
1558
+ return style("root"), cn("novu", id(), "nt-text-foreground nt-h-full");
1364
1559
  }
1365
- }));
1366
- }
1367
- });
1560
+ }, rest), false, false);
1561
+ return _el$;
1562
+ })()];
1563
+ };
1368
1564
  var PopoverContext = solidJs.createContext(void 0);
1369
1565
  function PopoverRoot(props) {
1370
- var _a, _b;
1566
+ var _a;
1371
1567
  const [uncontrolledIsOpen, setUncontrolledIsOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
1372
1568
  const onOpenChange = () => {
1373
1569
  var _a2;
@@ -1380,23 +1576,19 @@ function PopoverRoot(props) {
1380
1576
  const [reference, setReference] = solidJs.createSignal(null);
1381
1577
  const [floating, setFloating] = solidJs.createSignal(null);
1382
1578
  const position = solidFloatingUi.useFloating(reference, floating, {
1383
- placement: props.placement || "bottom-start",
1384
- whileElementsMounted: (reference2, floating2, update) => dom.autoUpdate(reference2, floating2, update, {
1385
- elementResize: false,
1386
- ancestorScroll: false,
1387
- animationFrame: false,
1388
- layoutShift: false
1389
- }),
1390
- middleware: [dom.offset((_b = props.offset) != null ? _b : 10), dom.flip({
1391
- fallbackPlacements: props.fallbackPlacements || ["top-start"]
1579
+ strategy: "fixed",
1580
+ placement: props.placement,
1581
+ whileElementsMounted: dom.autoUpdate,
1582
+ middleware: [dom.offset(10), dom.flip({
1583
+ fallbackPlacements: props.fallbackPlacements
1392
1584
  }), dom.shift()]
1393
1585
  });
1394
1586
  const floatingStyles = solidJs.createMemo(() => {
1395
- var _a2, _b2;
1587
+ var _a2, _b;
1396
1588
  return {
1397
1589
  position: position.strategy,
1398
1590
  top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
1399
- left: `${(_b2 = position.x) != null ? _b2 : 0}px`
1591
+ left: `${(_b = position.x) != null ? _b : 0}px`
1400
1592
  };
1401
1593
  });
1402
1594
  const onClose = () => {
@@ -1430,7 +1622,8 @@ function usePopover() {
1430
1622
  }
1431
1623
 
1432
1624
  // src/ui/components/primitives/Popover/PopoverContent.tsx
1433
- var popoverContentVariants = () => cn("nt-w-[400px] nt-h-[600px] nt-rounded-xl nt-bg-background", "nt-shadow-popover nt-z-10 nt-cursor-default nt-flex nt-flex-col nt-overflow-hidden");
1625
+ var _tmpl$25 = /* @__PURE__ */ web.template(`<div>`);
1626
+ var popoverContentVariants = () => cn("nt-w-[400px] nt-h-[600px] nt-rounded-xl nt-bg-background", "nt-shadow-popover nt-animate-in nt-slide-in-from-top-2 nt-fade-in nt-z-10 nt-cursor-default nt-flex nt-flex-col nt-overflow-hidden nt-border nt-border-border");
1434
1627
  var PopoverContentBody = (props) => {
1435
1628
  const {
1436
1629
  open,
@@ -1451,27 +1644,23 @@ var PopoverContentBody = (props) => {
1451
1644
  removeActive(floatingEl);
1452
1645
  });
1453
1646
  });
1454
- return web.createComponent(Motion.div, web.mergeProps({
1455
- ref: setFloating,
1456
- get ["class"]() {
1457
- return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "popoverContent", popoverContentVariants());
1458
- },
1459
- get style() {
1460
- return floatingStyles();
1461
- },
1462
- get ["data-open"]() {
1463
- return open();
1464
- },
1465
- animate: {
1466
- opacity: [0, 1],
1467
- y: [-6, 0]
1468
- },
1469
- transition: {
1470
- duration: 0.1,
1471
- easing: "ease-out"
1472
- }
1473
- }, rest));
1474
- };
1647
+ return (() => {
1648
+ var _el$ = _tmpl$25();
1649
+ web.use(setFloating, _el$);
1650
+ web.spread(_el$, web.mergeProps({
1651
+ get ["class"]() {
1652
+ return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "popoverContent", popoverContentVariants());
1653
+ },
1654
+ get style() {
1655
+ return floatingStyles();
1656
+ },
1657
+ get ["data-open"]() {
1658
+ return open();
1659
+ }
1660
+ }, rest), false, false);
1661
+ return _el$;
1662
+ })();
1663
+ };
1475
1664
  var PopoverContent = (props) => {
1476
1665
  const [local, rest] = solidJs.splitProps(props, ["portal"]);
1477
1666
  const {
@@ -1536,7 +1725,7 @@ var PopoverContent = (props) => {
1536
1725
  }
1537
1726
  });
1538
1727
  };
1539
- var _tmpl$24 = /* @__PURE__ */ web.template(`<button>`);
1728
+ var _tmpl$26 = /* @__PURE__ */ web.template(`<button>`);
1540
1729
  var PopoverTrigger = (props) => {
1541
1730
  const {
1542
1731
  setReference,
@@ -1560,7 +1749,7 @@ var PopoverTrigger = (props) => {
1560
1749
  }, rest));
1561
1750
  }
1562
1751
  return (() => {
1563
- var _el$ = _tmpl$24();
1752
+ var _el$ = _tmpl$26();
1564
1753
  _el$.$$click = handleClick;
1565
1754
  web.use(setReference, _el$);
1566
1755
  web.spread(_el$, web.mergeProps({
@@ -1592,7 +1781,7 @@ var Popover = {
1592
1781
  */
1593
1782
  Close: PopoverClose
1594
1783
  };
1595
- var dropdownContentVariants = () => "nt-w-max nt-rounded-xl nt-p-1 nt-overflow-hidden nt-flex nt-flex-col nt-min-w-52 nt-shadow-dropdown nt-z-10 nt-bg-background";
1784
+ var dropdownContentVariants = () => "nt-w-max nt-rounded-xl nt-border nt-border-border nt-p-1 nt-text-sm nt-overflow-hidden nt-flex nt-flex-col nt-min-w-52 nt-shadow-dropdown nt-z-10 nt-bg-background nt-animate-in nt-slide-in-from-top-2 nt-fade-in";
1596
1785
  var DropdownContent = (props) => {
1597
1786
  const style = useStyle();
1598
1787
  const [local, rest] = solidJs.splitProps(props, ["appearanceKey"]);
@@ -1602,7 +1791,7 @@ var DropdownContent = (props) => {
1602
1791
  }
1603
1792
  }, rest));
1604
1793
  };
1605
- var dropdownItemVariants = () => "focus:nt-outline-none nt-rounded-lg nt-items-center hover:nt-bg-neutral-alpha-50 focus-visible:nt-bg-neutral-alpha-50 nt-py-1 nt-px-3";
1794
+ var dropdownItemVariants = () => "focus:nt-outline-none nt-text-sm nt-rounded-lg nt-items-center hover:nt-bg-neutral-alpha-50 focus-visible:nt-bg-neutral-alpha-50 nt-py-1 nt-px-2";
1606
1795
  var DropdownItem = (props) => {
1607
1796
  const style = useStyle();
1608
1797
  const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "onClick", "class"]);
@@ -1660,25 +1849,21 @@ var Dropdown = {
1660
1849
  */
1661
1850
  Item: DropdownItem
1662
1851
  };
1663
- var _tmpl$25 = /* @__PURE__ */ web.template(`<div role=tablist>`);
1664
- var _tmpl$26 = /* @__PURE__ */ web.template(`<div class="nt-border-t nt-border-secondary nt-mt-[-0.25rem] nt-relative nt-z-[-1]">`);
1665
- var tabsListVariants = () => "nt-flex nt-gap-6 nt-px-6 nt-py-1 nt-overflow-hidden";
1666
- var TabsList = (props) => {
1667
- const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "ref", "children"]);
1668
- const style = useStyle();
1669
- return [(() => {
1670
- var _el$ = _tmpl$25();
1671
- var _ref$ = local.ref;
1672
- typeof _ref$ === "function" ? web.use(_ref$, _el$) : local.ref = _el$;
1673
- web.spread(_el$, web.mergeProps({
1674
- get ["class"]() {
1675
- return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsList", tabsListVariants());
1852
+ var Motion = new Proxy(solidMotionone.Motion, {
1853
+ get: (_, tag) => (props) => {
1854
+ const {
1855
+ animations
1856
+ } = useAppearance();
1857
+ return web.createComponent(solidMotionone.Motion, web.mergeProps(props, {
1858
+ tag,
1859
+ get transition() {
1860
+ return animations() ? props.transition : {
1861
+ duration: 0
1862
+ };
1676
1863
  }
1677
- }, rest), false, true);
1678
- web.insert(_el$, () => local.children);
1679
- return _el$;
1680
- })(), _tmpl$26()];
1681
- };
1864
+ }));
1865
+ }
1866
+ });
1682
1867
  var useKeyboardNavigation = ({
1683
1868
  activeTab,
1684
1869
  setActiveTab,
@@ -1771,7 +1956,7 @@ var TabsRoot = (props) => {
1771
1956
  web.use(setTabsContainer, _el$);
1772
1957
  web.spread(_el$, web.mergeProps({
1773
1958
  get ["class"]() {
1774
- return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsRoot", tabsRootVariants());
1959
+ return style(local.appearanceKey || "tabsRoot", cn(tabsRootVariants(), local.class));
1775
1960
  }
1776
1961
  }, rest), false, true);
1777
1962
  web.insert(_el$, () => local.children);
@@ -1813,7 +1998,26 @@ var TabsContent = (props) => {
1813
1998
  }
1814
1999
  });
1815
2000
  };
1816
- var tabsTriggerVariants = () => `nt-relative nt-transition nt-outline-none nt-text-foreground-alpha-600 focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-ring-primary focus-visible:nt-ring-offset-2 nt-pb-[0.625rem] after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px] after:nt-border-b-2 data-[state=active]:after:nt-border-primary data-[state=active]:nt-text-foreground after:nt-border-b-transparent`;
2001
+ var _tmpl$29 = /* @__PURE__ */ web.template(`<div role=tablist>`);
2002
+ var _tmpl$210 = /* @__PURE__ */ web.template(`<div class="nt-relative nt-z-[-1]">`);
2003
+ var tabsListVariants = () => "nt-flex nt-gap-6";
2004
+ var TabsList = (props) => {
2005
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "ref", "children"]);
2006
+ const style = useStyle();
2007
+ return [(() => {
2008
+ var _el$ = _tmpl$29();
2009
+ var _ref$ = local.ref;
2010
+ typeof _ref$ === "function" ? web.use(_ref$, _el$) : local.ref = _el$;
2011
+ web.spread(_el$, web.mergeProps({
2012
+ get ["class"]() {
2013
+ return style(local.appearanceKey || "tabsList", cn(tabsListVariants(), local.class));
2014
+ }
2015
+ }, rest), false, true);
2016
+ web.insert(_el$, () => local.children);
2017
+ return _el$;
2018
+ })(), _tmpl$210()];
2019
+ };
2020
+ var tabsTriggerVariants = () => cn("nt-relative nt-transition nt-outline-none nt-text-foreground-alpha-600 nt-pb-[0.625rem]", `after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px]`, "after:nt-transition-opacity after:nt-duration-200", "data-[state=active]:after:nt-border-b-2 data-[state=active]:after:nt-border-primary data-[state=active]:after:nt-opacity-100", "data-[state=active]:nt-text-foreground after:nt-border-b-transparent after:nt-opacity-0", "focus-visible:nt-outline-none focus-visible:nt-rounded-lg focus-visible:nt-ring-2 focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2");
1817
2021
  var TabsTrigger = (props) => {
1818
2022
  const [local, rest] = solidJs.splitProps(props, ["value", "class", "appearanceKey", "ref", "onClick", "children"]);
1819
2023
  const style = useStyle();
@@ -1880,17 +2084,16 @@ var inboxFilterLocalizationKeys = {
1880
2084
  unread: "inbox.filters.labels.unread",
1881
2085
  archived: "inbox.filters.labels.archived"
1882
2086
  };
1883
- var _tmpl$29 = /* @__PURE__ */ web.template(`<span><span></span><span>`);
1884
- var _tmpl$210 = /* @__PURE__ */ web.template(`<span>`);
2087
+ var _tmpl$30 = /* @__PURE__ */ web.template(`<span><span></span><span>`);
1885
2088
  var cases = [{
1886
2089
  status: "unreadRead" /* UNREAD_READ */,
1887
- icon: Inbox
2090
+ icon: UnreadRead
1888
2091
  }, {
1889
2092
  status: "unread" /* UNREAD */,
1890
- icon: Unread
2093
+ icon: MarkAsUnread
1891
2094
  }, {
1892
2095
  status: "archived" /* ARCHIVED */,
1893
- icon: Archive
2096
+ icon: MarkAsArchived
1894
2097
  }];
1895
2098
  var StatusOptions = (props) => {
1896
2099
  return web.createComponent(solidJs.For, {
@@ -1925,11 +2128,11 @@ var StatusItem = (props) => {
1925
2128
  },
1926
2129
  get children() {
1927
2130
  return [(() => {
1928
- var _el$ = _tmpl$29(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2131
+ var _el$ = _tmpl$30(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
1929
2132
  web.insert(_el$2, () => props.icon());
1930
2133
  web.insert(_el$3, () => t(props.localizationKey));
1931
2134
  web.effect((_p$) => {
1932
- var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon"), _v$3 = props.localizationKey, _v$4 = style("inboxStatus__dropdownItemLabel");
2135
+ var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon", "nt-size-3"), _v$3 = props.localizationKey, _v$4 = style("inboxStatus__dropdownItemLabel");
1933
2136
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
1934
2137
  _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
1935
2138
  _v$3 !== _p$.a && web.setAttribute(_el$3, "data-localization", _p$.a = _v$3);
@@ -1947,10 +2150,11 @@ var StatusItem = (props) => {
1947
2150
  return props.isSelected;
1948
2151
  },
1949
2152
  get children() {
1950
- var _el$4 = _tmpl$210();
1951
- web.insert(_el$4, web.createComponent(Check, {}));
1952
- web.effect(() => web.className(_el$4, style("inboxStatus__dropdownItemRight__icon")));
1953
- return _el$4;
2153
+ return web.createComponent(Check, {
2154
+ get ["class"]() {
2155
+ return style("inboxStatus__dropdownItemCheck__icon", "nt-size-3");
2156
+ }
2157
+ });
1954
2158
  }
1955
2159
  })];
1956
2160
  }
@@ -1958,7 +2162,7 @@ var StatusItem = (props) => {
1958
2162
  };
1959
2163
 
1960
2164
  // src/ui/components/elements/InboxStatus/InboxStatusDropdown.tsx
1961
- var _tmpl$30 = /* @__PURE__ */ web.template(`<span>`);
2165
+ var _tmpl$31 = /* @__PURE__ */ web.template(`<span>`);
1962
2166
  var StatusDropdown = () => {
1963
2167
  const style = useStyle();
1964
2168
  const {
@@ -1975,7 +2179,7 @@ var StatusDropdown = () => {
1975
2179
  return style("inboxStatus__dropdownTrigger", cn(buttonVariants({
1976
2180
  variant: "unstyled",
1977
2181
  size: "none"
1978
- }), "nt-gap-2"));
2182
+ }), "nt-gap-0.5"));
1979
2183
  },
1980
2184
  asChild: (triggerProps) => web.createComponent(Button, web.mergeProps({
1981
2185
  variant: "unstyled",
@@ -1983,10 +2187,10 @@ var StatusDropdown = () => {
1983
2187
  }, triggerProps, {
1984
2188
  get children() {
1985
2189
  return [(() => {
1986
- var _el$ = _tmpl$30();
2190
+ var _el$ = _tmpl$31();
1987
2191
  web.insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
1988
2192
  web.effect((_p$) => {
1989
- var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-xl nt-font-semibold");
2193
+ var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-base");
1990
2194
  _v$ !== _p$.e && web.setAttribute(_el$, "data-localization", _p$.e = _v$);
1991
2195
  _v$2 !== _p$.t && web.className(_el$, _p$.t = _v$2);
1992
2196
  return _p$;
@@ -1995,12 +2199,11 @@ var StatusDropdown = () => {
1995
2199
  t: void 0
1996
2200
  });
1997
2201
  return _el$;
1998
- })(), (() => {
1999
- var _el$2 = _tmpl$30();
2000
- web.insert(_el$2, web.createComponent(ArrowDropDown, {}));
2001
- web.effect(() => web.className(_el$2, style("inboxStatus__dropdownItemRight__icon", "nt-text-foreground-alpha-600")));
2002
- return _el$2;
2003
- })()];
2202
+ })(), web.createComponent(ArrowDropDown, {
2203
+ get ["class"]() {
2204
+ return style("inboxStatus__dropdownItemRight__icon", "nt-text-foreground-alpha-600 nt-size-4");
2205
+ }
2206
+ })];
2004
2207
  }
2005
2208
  }))
2006
2209
  }), web.createComponent(Dropdown.Content, {
@@ -2017,17 +2220,52 @@ var StatusDropdown = () => {
2017
2220
  }
2018
2221
  });
2019
2222
  };
2223
+
2224
+ // src/ui/api/hooks/useArchiveAll.ts
2225
+ var useArchiveAll = (props) => {
2226
+ const novu = useNovu();
2227
+ const archiveAll = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({ tags } = {}) {
2228
+ var _a, _b;
2229
+ try {
2230
+ yield novu.notifications.archiveAll({ tags });
2231
+ (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
2232
+ } catch (error) {
2233
+ (_b = void 0 ) == null ? void 0 : _b.call(props, error);
2234
+ }
2235
+ });
2236
+ return { archiveAll };
2237
+ };
2238
+
2239
+ // src/ui/api/hooks/useArchiveAllRead.ts
2240
+ var useArchiveAllRead = (props) => {
2241
+ const novu = useNovu();
2242
+ const archiveAllRead = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({ tags } = {}) {
2243
+ var _a, _b;
2244
+ try {
2245
+ yield novu.notifications.archiveAllRead({ tags });
2246
+ (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
2247
+ } catch (error) {
2248
+ (_b = void 0 ) == null ? void 0 : _b.call(props, error);
2249
+ }
2250
+ });
2251
+ return { archiveAllRead };
2252
+ };
2020
2253
  var useNotificationsInfiniteScroll = (props) => {
2021
2254
  const novu = useNovu();
2022
2255
  let filter = chunk7B52C2XE_js.__spreadValues({}, props.options());
2023
- const [data, { initialLoading, setEl, end, mutate, reset }] = createInfiniteScroll((offset3) => chunk7B52C2XE_js.__async(void 0, null, function* () {
2024
- var _a, _b;
2025
- const { data: data2 } = yield novu.notifications.list(chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.options() || {}), { offset: offset3 }));
2026
- return { data: (_a = data2 == null ? void 0 : data2.notifications) != null ? _a : [], hasMore: (_b = data2 == null ? void 0 : data2.hasMore) != null ? _b : false };
2027
- }));
2256
+ const [data, { initialLoading, setEl, end, mutate, reset }] = createInfiniteScroll(
2257
+ (after) => chunk7B52C2XE_js.__async(void 0, null, function* () {
2258
+ var _a, _b;
2259
+ const { data: data2 } = yield novu.notifications.list(chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.options() || {}), { after }));
2260
+ return { data: (_a = data2 == null ? void 0 : data2.notifications) != null ? _a : [], hasMore: (_b = data2 == null ? void 0 : data2.hasMore) != null ? _b : false };
2261
+ }),
2262
+ {
2263
+ paginationField: "id"
2264
+ }
2265
+ );
2028
2266
  solidJs.onMount(() => {
2029
2267
  const listener = ({ data: data2 }) => {
2030
- if (!data2 || !chunkZ4XIR64I_js.isSameFilter(filter, data2.filter)) {
2268
+ if (!data2 || !chunkMCK3RKPK_js.isSameFilter(filter, data2.filter)) {
2031
2269
  return;
2032
2270
  }
2033
2271
  mutate({ data: data2.notifications, hasMore: data2.hasMore });
@@ -2035,19 +2273,19 @@ var useNotificationsInfiniteScroll = (props) => {
2035
2273
  const cleanup = novu.on("notifications.list.updated", listener);
2036
2274
  solidJs.onCleanup(() => cleanup());
2037
2275
  });
2038
- solidJs.createEffect(() => {
2276
+ solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
2039
2277
  const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
2040
- if (chunkZ4XIR64I_js.isSameFilter(filter, newFilter)) {
2278
+ if (chunkMCK3RKPK_js.isSameFilter(filter, newFilter)) {
2041
2279
  return;
2042
2280
  }
2043
2281
  novu.notifications.clearCache();
2044
- reset();
2282
+ yield reset();
2045
2283
  filter = newFilter;
2046
- });
2047
- const refetch = ({ filter: filter2 }) => {
2284
+ }));
2285
+ const refetch = (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({ filter: filter2 }) {
2048
2286
  novu.notifications.clearCache({ filter: filter2 });
2049
- reset();
2050
- };
2287
+ yield reset();
2288
+ });
2051
2289
  return { data, initialLoading, setEl, end, refetch };
2052
2290
  };
2053
2291
  var usePreferences = (options) => {
@@ -2093,38 +2331,8 @@ var useReadAll = (props) => {
2093
2331
  return { readAll };
2094
2332
  };
2095
2333
 
2096
- // src/ui/api/hooks/useArchiveAll.ts
2097
- var useArchiveAll = (props) => {
2098
- const novu = useNovu();
2099
- const archiveAll = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({ tags } = {}) {
2100
- var _a, _b;
2101
- try {
2102
- yield novu.notifications.archiveAll({ tags });
2103
- (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
2104
- } catch (error) {
2105
- (_b = void 0 ) == null ? void 0 : _b.call(props, error);
2106
- }
2107
- });
2108
- return { archiveAll };
2109
- };
2110
-
2111
- // src/ui/api/hooks/useArchiveAllRead.ts
2112
- var useArchiveAllRead = (props) => {
2113
- const novu = useNovu();
2114
- const archiveAllRead = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({ tags } = {}) {
2115
- var _a, _b;
2116
- try {
2117
- yield novu.notifications.archiveAllRead({ tags });
2118
- (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
2119
- } catch (error) {
2120
- (_b = void 0 ) == null ? void 0 : _b.call(props, error);
2121
- }
2122
- });
2123
- return { archiveAllRead };
2124
- };
2125
-
2126
2334
  // src/ui/components/elements/Header/MoreActionsOptions.tsx
2127
- var _tmpl$31 = /* @__PURE__ */ web.template(`<span>`);
2335
+ var _tmpl$32 = /* @__PURE__ */ web.template(`<span>`);
2128
2336
  var MoreActionsOptions = () => {
2129
2337
  const {
2130
2338
  filter
@@ -2143,19 +2351,19 @@ var MoreActionsOptions = () => {
2143
2351
  onClick: () => readAll({
2144
2352
  tags: filter().tags
2145
2353
  }),
2146
- icon: ReadAll
2354
+ icon: MarkAsRead
2147
2355
  }), web.createComponent(ActionsItem, {
2148
2356
  localizationKey: "notifications.actions.archiveAll",
2149
2357
  onClick: () => archiveAll({
2150
2358
  tags: filter().tags
2151
2359
  }),
2152
- icon: Archive
2360
+ icon: MarkAsArchived
2153
2361
  }), web.createComponent(ActionsItem, {
2154
2362
  localizationKey: "notifications.actions.archiveRead",
2155
2363
  onClick: () => archiveAllRead({
2156
2364
  tags: filter().tags
2157
2365
  }),
2158
- icon: ArchiveRead
2366
+ icon: MarkAsArchivedRead
2159
2367
  })];
2160
2368
  };
2161
2369
  var ActionsItem = (props) => {
@@ -2172,12 +2380,12 @@ var ActionsItem = (props) => {
2172
2380
  },
2173
2381
  get children() {
2174
2382
  return [(() => {
2175
- var _el$ = _tmpl$31();
2383
+ var _el$ = _tmpl$32();
2176
2384
  web.insert(_el$, () => props.icon());
2177
- web.effect(() => web.className(_el$, style("moreActions__dropdownItemLeft__icon", "nt-text-foreground-alpha-600")));
2385
+ web.effect(() => web.className(_el$, style("moreActions__dropdownItemLeft__icon", "nt-size-3")));
2178
2386
  return _el$;
2179
2387
  })(), (() => {
2180
- var _el$2 = _tmpl$31();
2388
+ var _el$2 = _tmpl$32();
2181
2389
  web.insert(_el$2, () => t(props.localizationKey));
2182
2390
  web.effect((_p$) => {
2183
2391
  var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel");
@@ -2212,13 +2420,13 @@ var MoreActionsDropdown = () => {
2212
2420
  return style("moreActions__dropdownTrigger");
2213
2421
  },
2214
2422
  asChild: (triggerProps) => web.createComponent(Button, web.mergeProps({
2215
- variant: "icon",
2216
- size: "icon"
2423
+ variant: "ghost",
2424
+ size: "iconSm"
2217
2425
  }, triggerProps, {
2218
2426
  get children() {
2219
2427
  return web.createComponent(Dots, {
2220
2428
  get ["class"]() {
2221
- return style("moreActions__dots");
2429
+ return style("moreActions__dots", "nt-size-5");
2222
2430
  }
2223
2431
  });
2224
2432
  }
@@ -2236,11 +2444,11 @@ var MoreActionsDropdown = () => {
2236
2444
  };
2237
2445
 
2238
2446
  // src/ui/components/elements/Header/ActionsContainer.tsx
2239
- var _tmpl$32 = /* @__PURE__ */ web.template(`<div>`);
2447
+ var _tmpl$33 = /* @__PURE__ */ web.template(`<div>`);
2240
2448
  var ActionsContainer = (props) => {
2241
2449
  const style = useStyle();
2242
2450
  return (() => {
2243
- var _el$ = _tmpl$32();
2451
+ var _el$ = _tmpl$33();
2244
2452
  web.insert(_el$, web.createComponent(MoreActionsDropdown, {}), null);
2245
2453
  web.insert(_el$, web.createComponent(solidJs.Show, {
2246
2454
  get when() {
@@ -2248,99 +2456,68 @@ var ActionsContainer = (props) => {
2248
2456
  },
2249
2457
  children: (showPreferences) => web.createComponent(Button, {
2250
2458
  appearanceKey: "preferences__button",
2251
- variant: "icon",
2252
- size: "icon",
2459
+ variant: "ghost",
2460
+ size: "iconSm",
2253
2461
  get onClick() {
2254
2462
  return showPreferences();
2255
2463
  },
2256
2464
  get children() {
2257
- return web.createComponent(Settings, {});
2465
+ return web.createComponent(Settings, {
2466
+ get ["class"]() {
2467
+ return style("preferences__icon", "nt-size-5");
2468
+ }
2469
+ });
2258
2470
  }
2259
2471
  })
2260
2472
  }), null);
2261
- web.effect(() => web.className(_el$, style("moreActionsContainer", "nt-flex nt-gap-2")));
2473
+ web.effect(() => web.className(_el$, style("moreActionsContainer", "nt-flex nt-gap-3")));
2262
2474
  return _el$;
2263
2475
  })();
2264
2476
  };
2265
2477
 
2266
2478
  // src/ui/components/elements/Header/Header.tsx
2267
- var _tmpl$33 = /* @__PURE__ */ web.template(`<div>`);
2479
+ var _tmpl$34 = /* @__PURE__ */ web.template(`<div>`);
2268
2480
  var Header = (props) => {
2269
2481
  const style = useStyle();
2270
2482
  return (() => {
2271
- var _el$ = _tmpl$33();
2483
+ var _el$ = _tmpl$34();
2272
2484
  web.insert(_el$, web.createComponent(StatusDropdown, {}), null);
2273
2485
  web.insert(_el$, web.createComponent(ActionsContainer, {
2274
2486
  get showPreferences() {
2275
2487
  return props.navigateToPreferences;
2276
2488
  }
2277
2489
  }), null);
2278
- web.effect(() => web.className(_el$, style("inboxHeader", cn("nt-flex nt-shrink-0 nt-justify-between nt-items-center nt-w-full nt-py-5 nt-px-6"))));
2279
- return _el$;
2280
- })();
2281
- };
2282
- var _tmpl$34 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
2283
- var _tmpl$211 = /* @__PURE__ */ web.template(`<button>`);
2284
- var PreferencesHeader = (props) => {
2285
- const style = useStyle();
2286
- const {
2287
- t
2288
- } = useLocalization();
2289
- return (() => {
2290
- var _el$ = _tmpl$34(), _el$2 = _el$.firstChild;
2291
- web.insert(_el$, web.createComponent(solidJs.Show, {
2292
- get when() {
2293
- return props.navigateToNotifications;
2294
- },
2295
- children: (navigateToNotifications) => (() => {
2296
- var _el$3 = _tmpl$211();
2297
- web.addEventListener(_el$3, "click", navigateToNotifications(), true);
2298
- web.insert(_el$3, web.createComponent(ArrowLeft, {}));
2299
- web.effect(() => web.className(_el$3, style("preferencesHeader__back__button", "nt-h-6 nt-w-6 nt-flex nt-justify-center nt-items-center nt-rounded-md nt-relative hover:nt-bg-foreground-alpha-50 focus:nt-bg-foreground-alpha-50 nt-text-foreground-alpha-600")));
2300
- return _el$3;
2301
- })()
2302
- }), _el$2);
2303
- web.insert(_el$2, () => t("preferences.title"));
2304
- web.effect((_p$) => {
2305
- var _v$ = style("preferencesHeader", "nt-flex nt-items-center nt-py-5 nt-px-6 nt-gap-2"), _v$2 = style("preferencesHeader__title", "nt-text-xl nt-font-semibold");
2306
- _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
2307
- _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
2308
- return _p$;
2309
- }, {
2310
- e: void 0,
2311
- t: void 0
2312
- });
2490
+ web.effect(() => web.className(_el$, style("inboxHeader", cn("nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-justify-between nt-items-center nt-w-full nt-pb-2 nt-pt-2.5 nt-px-4"))));
2313
2491
  return _el$;
2314
2492
  })();
2315
2493
  };
2316
- web.delegateEvents(["click"]);
2317
2494
  var _tmpl$35 = /* @__PURE__ */ web.template(`<div>`);
2318
- var Root = (props) => {
2319
- const [_, rest] = solidJs.splitProps(props, ["class"]);
2320
- const {
2321
- id
2322
- } = useAppearance();
2495
+ var Collapsible = (props) => {
2323
2496
  const style = useStyle();
2324
- const {
2325
- hideBranding
2326
- } = useInboxContext();
2327
- return [web.createComponent(solidJs.Show, {
2328
- get when() {
2329
- return !hideBranding();
2330
- },
2331
- children: new Comment(" Powered by Novu - https://novu.co ")
2332
- }), (() => {
2497
+ let contentRef;
2498
+ const [enableTransition, setEnableTransition] = solidJs.createSignal(false);
2499
+ solidJs.createEffect(() => {
2500
+ requestAnimationFrame(() => setEnableTransition(true));
2501
+ });
2502
+ return (() => {
2333
2503
  var _el$ = _tmpl$35();
2504
+ var _ref$ = contentRef;
2505
+ typeof _ref$ === "function" ? web.use(_ref$, _el$) : contentRef = _el$;
2334
2506
  web.spread(_el$, web.mergeProps({
2335
- get id() {
2336
- return `novu-root-${id()}`;
2337
- },
2338
2507
  get ["class"]() {
2339
- return style("root"), cn("novu", id(), "nt-text-foreground nt-h-full");
2508
+ return style("collapsible", props.class);
2509
+ },
2510
+ get style() {
2511
+ return {
2512
+ overflow: "hidden",
2513
+ opacity: props.open ? 1 : 0,
2514
+ transition: enableTransition() ? "height 250ms ease-in-out, opacity 250ms ease-in-out" : "none",
2515
+ height: props.open ? `${contentRef == null ? void 0 : contentRef.scrollHeight}px` : "0px"
2516
+ };
2340
2517
  }
2341
- }, rest), false, false);
2518
+ }, props), false, false);
2342
2519
  return _el$;
2343
- })()];
2520
+ })();
2344
2521
  };
2345
2522
  var _tmpl$36 = /* @__PURE__ */ web.template(`<label><input type=checkbox class="nt-peer nt-sr-only"><div>`);
2346
2523
  var Switch = (props) => {
@@ -2351,7 +2528,7 @@ var Switch = (props) => {
2351
2528
  props.onChange(e.target.checked);
2352
2529
  });
2353
2530
  web.effect((_p$) => {
2354
- var _v$ = style("channelSwitch", `nt-relative nt-inline-flex nt-cursor-pointer nt-items-center`), _v$2 = style("channelSwitchThumb", `nt-peer nt-h-6 nt-w-11 nt-rounded-full nt-border nt-border-neutral-alpha-200 peer-checked:nt-border-neutral-alpha-400 nt-bg-neutral-alpha-300 after:nt-absolute after:nt-left-[2px] after:nt-top-0.5 after:nt-h-5 after:nt-w-5 after:nt-rounded-full after:nt-border after:nt-border-neutral-alpha-400 after:nt-bg-background after:nt-transition-all after:nt-content-[''] peer-checked:nt-bg-primary peer-checked:after:nt-translate-x-full peer-checked:after:nt-border-background nt-transition-all nt-duration-200 after:nt-duration-200`), _v$3 = props.checked;
2531
+ var _v$ = style("channelSwitch", `nt-relative nt-inline-flex nt-cursor-pointer nt-items-center`), _v$2 = style("channelSwitchThumb", `nt-peer nt-h-4 nt-w-7 nt-rounded-full peer-checked:nt-shadow-none peer-checked:nt-border-neutral-alpha-400 nt-bg-neutral-alpha-300 after:nt-absolute after:nt-top-0.5 after:nt-size-3 after:nt-left-0.5 after:nt-rounded-full after:nt-bg-background after:nt-transition-all after:nt-content-[''] peer-checked:nt-bg-primary peer-checked:after:nt-translate-x-full peer-checked:after:nt-border-background nt-transition-all nt-duration-200 after:nt-duration-200 shadow-sm`), _v$3 = props.checked;
2355
2532
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
2356
2533
  _v$2 !== _p$.t && web.className(_el$3, _p$.t = _v$2);
2357
2534
  _v$3 !== _p$.a && web.setAttribute(_el$3, "data-checked", _p$.a = _v$3);
@@ -2377,15 +2554,17 @@ var ChannelRow = (props) => {
2377
2554
  workflowId: props.workflowId
2378
2555
  });
2379
2556
  });
2380
- const onChange = (checked) => {
2381
- updatePreference(checked);
2382
- };
2557
+ const onChange = (checked) => chunk7B52C2XE_js.__async(void 0, null, function* () {
2558
+ yield updatePreference(checked);
2559
+ });
2383
2560
  return (() => {
2384
2561
  var _el$ = _tmpl$37(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
2385
2562
  web.insert(_el$3, web.createComponent(ChannelIcon, {
2563
+ appearanceKey: "channel__icon",
2386
2564
  get channel() {
2387
2565
  return props.channel;
2388
- }
2566
+ },
2567
+ "class": "nt-size-3"
2389
2568
  }));
2390
2569
  web.insert(_el$4, () => getLabel(props.channel));
2391
2570
  web.insert(_el$5, web.createComponent(Switch, {
@@ -2395,33 +2574,56 @@ var ChannelRow = (props) => {
2395
2574
  onChange: (checked) => onChange(checked)
2396
2575
  }));
2397
2576
  web.effect((_p$) => {
2398
- var _v$ = style("channelContainer", "nt-flex nt-justify-between nt-items-center nt-h-11 nt-gap-2 data-[disabled=true]:nt-text-foreground-alpha-600"), _v$2 = style("channelLabelContainer", "nt-flex nt-items-center nt-gap-2"), _v$3 = style("channelLabel", "nt-text-base nt-font-semibold"), _v$4 = style("channelSwitchContainer", "nt-flex nt-items-center");
2577
+ var _v$ = style("channelContainer", "nt-flex nt-justify-between nt-items-center nt-gap-2 data-[disabled=true]:nt-text-foreground-alpha-600"), _v$2 = style("channelLabelContainer", "nt-flex nt-items-center nt-gap-2 nt-text-foreground"), _v$3 = style("channelIconContainer", "nt-p-1 nt-rounded-md nt-bg-neutral-alpha-25 nt-text-foreground-alpha-300"), _v$4 = style("channelLabel", "nt-text-sm nt-font-semibold"), _v$5 = style("channelSwitchContainer", "nt-flex nt-items-center");
2399
2578
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
2400
2579
  _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
2401
- _v$3 !== _p$.a && web.className(_el$4, _p$.a = _v$3);
2402
- _v$4 !== _p$.o && web.className(_el$5, _p$.o = _v$4);
2580
+ _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
2581
+ _v$4 !== _p$.o && web.className(_el$4, _p$.o = _v$4);
2582
+ _v$5 !== _p$.i && web.className(_el$5, _p$.i = _v$5);
2403
2583
  return _p$;
2404
2584
  }, {
2405
2585
  e: void 0,
2406
2586
  t: void 0,
2407
2587
  a: void 0,
2408
- o: void 0
2588
+ o: void 0,
2589
+ i: void 0
2409
2590
  });
2410
2591
  return _el$;
2411
2592
  })();
2412
2593
  };
2413
2594
  var ChannelIcon = (props) => {
2595
+ const style = useStyle();
2414
2596
  switch (props.channel) {
2415
2597
  case "in_app" /* IN_APP */:
2416
- return web.createComponent(InApp, {});
2598
+ return web.createComponent(InApp, {
2599
+ get ["class"]() {
2600
+ return style(props.appearanceKey, props.class);
2601
+ }
2602
+ });
2417
2603
  case "email" /* EMAIL */:
2418
- return web.createComponent(Email, {});
2604
+ return web.createComponent(Email, {
2605
+ get ["class"]() {
2606
+ return style(props.appearanceKey, props.class);
2607
+ }
2608
+ });
2419
2609
  case "push" /* PUSH */:
2420
- return web.createComponent(Push, {});
2610
+ return web.createComponent(Push, {
2611
+ get ["class"]() {
2612
+ return style(props.appearanceKey, props.class);
2613
+ }
2614
+ });
2421
2615
  case "sms" /* SMS */:
2422
- return web.createComponent(Sms, {});
2616
+ return web.createComponent(Sms, {
2617
+ get ["class"]() {
2618
+ return style(props.appearanceKey, props.class);
2619
+ }
2620
+ });
2423
2621
  case "chat" /* CHAT */:
2424
- return web.createComponent(Chat, {});
2622
+ return web.createComponent(Chat, {
2623
+ get ["class"]() {
2624
+ return style(props.appearanceKey, props.class);
2625
+ }
2626
+ });
2425
2627
  default:
2426
2628
  return null;
2427
2629
  }
@@ -2443,11 +2645,12 @@ var getLabel = (channel) => {
2443
2645
  }
2444
2646
  };
2445
2647
  var _tmpl$38 = /* @__PURE__ */ web.template(`<div>`);
2648
+ var _tmpl$211 = /* @__PURE__ */ web.template(`<div><div></div><div>`);
2446
2649
  var SkeletonText = (props) => {
2447
2650
  const style = useStyle();
2448
2651
  return (() => {
2449
2652
  var _el$ = _tmpl$38();
2450
- web.effect(() => web.className(_el$, style(props.appearanceKey, cn("nt-w-full nt-h-3 nt-rounded nt-bg-foreground-alpha-100", props.class))));
2653
+ web.effect(() => web.className(_el$, style(props.appearanceKey, cn("nt-w-full nt-h-3 nt-rounded nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
2451
2654
  return _el$;
2452
2655
  })();
2453
2656
  };
@@ -2455,63 +2658,164 @@ var SkeletonAvatar = (props) => {
2455
2658
  const style = useStyle();
2456
2659
  return (() => {
2457
2660
  var _el$2 = _tmpl$38();
2458
- web.effect(() => web.className(_el$2, style(props.appearanceKey, cn("nt-size-8 nt-rounded-lg nt-bg-foreground-alpha-100", props.class))));
2661
+ web.effect(() => web.className(_el$2, style(props.appearanceKey, cn("nt-size-8 nt-rounded-lg nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
2459
2662
  return _el$2;
2460
2663
  })();
2461
2664
  };
2462
-
2463
- // src/ui/components/elements/Preferences/LoadingScreen.tsx
2464
- var _tmpl$39 = /* @__PURE__ */ web.template(`<div><div class="nt-flex nt-flex-col nt-self-stretch nt-gap-1 nt-flex-1"></div><div>`);
2465
- var LoadingScreen = () => {
2466
- return web.createComponent(solidJs.For, {
2467
- get each() {
2468
- return Array.from({
2469
- length: 8
2470
- });
2471
- },
2472
- children: () => web.createComponent(LoadingSkeleton, {})
2473
- });
2474
- };
2475
- var LoadingSkeleton = () => {
2665
+ var SkeletonSwitch = (props) => {
2476
2666
  const style = useStyle();
2477
2667
  return (() => {
2478
- var _el$ = _tmpl$39(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2479
- web.insert(_el$2, web.createComponent(SkeletonText, {
2480
- appearanceKey: "skeletonText",
2481
- "class": "nt-w-1/3"
2482
- }), null);
2483
- web.insert(_el$2, web.createComponent(SkeletonText, {
2484
- appearanceKey: "skeletonText",
2485
- "class": "nt-w-1/3"
2486
- }), null);
2487
- web.insert(_el$3, web.createComponent(ArrowDropDown, {}));
2488
- web.effect(() => web.className(_el$, style("preferencesLoadingContainer", "nt-p-4 nt-flex nt-gap-1 nt-items-center nt-self-stretch nt-animate-pulse")));
2489
- return _el$;
2668
+ var _el$3 = _tmpl$211(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
2669
+ web.effect((_p$) => {
2670
+ var _v$ = style(props.appearanceKey, cn("nt-relative nt-inline-flex nt-items-center", props.class)), _v$2 = style(props.appearanceKey, "nt-h-4 nt-w-7 nt-rounded-full nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent"), _v$3 = style(props.thumbAppearanceKey, "nt-absolute nt-top-0.5 nt-left-0.5 nt-size-3 nt-rounded-full nt-bg-background nt-shadow");
2671
+ _v$ !== _p$.e && web.className(_el$3, _p$.e = _v$);
2672
+ _v$2 !== _p$.t && web.className(_el$4, _p$.t = _v$2);
2673
+ _v$3 !== _p$.a && web.className(_el$5, _p$.a = _v$3);
2674
+ return _p$;
2675
+ }, {
2676
+ e: void 0,
2677
+ t: void 0,
2678
+ a: void 0
2679
+ });
2680
+ return _el$3;
2490
2681
  })();
2491
2682
  };
2492
2683
 
2493
- // src/ui/components/elements/Preferences/Preferences.tsx
2494
- var _tmpl$40 = /* @__PURE__ */ web.template(`<div>`);
2495
- var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
2496
- var _tmpl$310 = /* @__PURE__ */ web.template(`<div><div><div><div></div></div><span>`);
2497
- var Preferences = () => {
2498
- var _a;
2684
+ // src/ui/components/elements/Preferences/PreferencesListSkeleton.tsx
2685
+ var _tmpl$39 = /* @__PURE__ */ web.template(`<div>`);
2686
+ var channelIcons = [InApp, Email, Sms, Push, Chat];
2687
+ var PreferencesListSkeleton = (props) => {
2499
2688
  const style = useStyle();
2500
2689
  const {
2501
- preferencesFilter
2502
- } = useInboxContext();
2503
- const {
2504
- preferences,
2505
- loading
2506
- } = usePreferences({
2507
- tags: (_a = preferencesFilter()) == null ? void 0 : _a.tags
2508
- });
2509
- const allPreferences = solidJs.createMemo(() => {
2510
- var _a2, _b;
2511
- const globalPreference = (_a2 = preferences()) == null ? void 0 : _a2.find((preference) => preference.level === "global" /* GLOBAL */);
2512
- const workflowPreferences = (_b = preferences()) == null ? void 0 : _b.filter((preference) => preference.level === "template" /* TEMPLATE */);
2513
- const workflowPreferencesIds = workflowPreferences == null ? void 0 : workflowPreferences.map((preference) => {
2514
- var _a3;
2690
+ t
2691
+ } = useLocalization();
2692
+ return (() => {
2693
+ var _el$ = _tmpl$39();
2694
+ web.insert(_el$, web.createComponent(Motion.div, {
2695
+ get animate() {
2696
+ return {
2697
+ scale: props.loading ? 1 : 0.7
2698
+ };
2699
+ },
2700
+ transition: {
2701
+ duration: 0.6,
2702
+ easing: [0.39, 0.24, 0.3, 1],
2703
+ delay: 0.3
2704
+ },
2705
+ get ["class"]() {
2706
+ return style("preferencesList__skeleton", "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4");
2707
+ },
2708
+ get children() {
2709
+ return [web.memo(() => Array.from({
2710
+ length: 5
2711
+ }).map((_, i) => {
2712
+ const Icon = channelIcons[i];
2713
+ return web.createComponent(Motion.div, {
2714
+ get animate() {
2715
+ return {
2716
+ marginBottom: props.loading ? 0 : "16px",
2717
+ borderWidth: props.loading ? 0 : "1px",
2718
+ borderRadius: props.loading ? 0 : "var(--nv-radius-lg)"
2719
+ };
2720
+ },
2721
+ transition: {
2722
+ duration: 0.5,
2723
+ delay: 0.3,
2724
+ easing: "ease-in-out"
2725
+ },
2726
+ get ["class"]() {
2727
+ return style("preferencesList__skeletonContent", "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25");
2728
+ },
2729
+ get children() {
2730
+ return [web.createComponent(Icon, {
2731
+ get ["class"]() {
2732
+ return style("preferencesList__skeletonIcon", "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100");
2733
+ }
2734
+ }), (() => {
2735
+ var _el$3 = _tmpl$39();
2736
+ web.insert(_el$3, web.createComponent(SkeletonText, {
2737
+ appearanceKey: "notificationList__skeletonText",
2738
+ "class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
2739
+ }), null);
2740
+ web.insert(_el$3, web.createComponent(SkeletonText, {
2741
+ appearanceKey: "preferencesList__skeletonText",
2742
+ "class": "nt-h-2 nt-w-2/3 nt-bg-neutral-alpha-50 nt-rounded"
2743
+ }), null);
2744
+ web.effect(() => web.className(_el$3, style("preferencesList__skeletonItem", "nt-flex nt-flex-col nt-gap-2 nt-flex-1")));
2745
+ return _el$3;
2746
+ })(), web.createComponent(SkeletonSwitch, {
2747
+ appearanceKey: "preferencesList__skeletonSwitch",
2748
+ thumbAppearanceKey: "preferencesList__skeletonSwitchThumb"
2749
+ })];
2750
+ }
2751
+ });
2752
+ })), (() => {
2753
+ var _el$2 = _tmpl$39();
2754
+ web.effect(() => web.className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
2755
+ return _el$2;
2756
+ })()];
2757
+ }
2758
+ }), null);
2759
+ web.insert(_el$, web.createComponent(solidJs.Show, {
2760
+ get when() {
2761
+ return !props.loading;
2762
+ },
2763
+ get children() {
2764
+ return web.createComponent(Motion.p, {
2765
+ initial: {
2766
+ opacity: 0,
2767
+ y: -4,
2768
+ filter: "blur(4px)"
2769
+ },
2770
+ get animate() {
2771
+ return {
2772
+ opacity: props.loading ? 0 : 1,
2773
+ y: 0,
2774
+ filter: "blur(0px)"
2775
+ };
2776
+ },
2777
+ transition: {
2778
+ duration: 0.7,
2779
+ easing: [0.39, 0.24, 0.3, 1],
2780
+ delay: 0.6
2781
+ },
2782
+ get ["class"]() {
2783
+ return style("preferencesListEmptyNotice"), "nt-text-center";
2784
+ },
2785
+ "data-localization": "preferences.emptyNotice",
2786
+ get children() {
2787
+ return t("preferences.emptyNotice");
2788
+ }
2789
+ });
2790
+ }
2791
+ }), null);
2792
+ web.effect(() => web.className(_el$, style("preferencesListEmptyNoticeContainer", "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center")));
2793
+ return _el$;
2794
+ })();
2795
+ };
2796
+
2797
+ // src/ui/components/elements/Preferences/Preferences.tsx
2798
+ var _tmpl$40 = /* @__PURE__ */ web.template(`<div>`);
2799
+ var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
2800
+ var _tmpl$310 = /* @__PURE__ */ web.template(`<div><div><div><div></div></div><span>`);
2801
+ var Preferences = () => {
2802
+ var _a;
2803
+ const style = useStyle();
2804
+ const {
2805
+ preferencesFilter
2806
+ } = useInboxContext();
2807
+ const {
2808
+ preferences,
2809
+ loading
2810
+ } = usePreferences({
2811
+ tags: (_a = preferencesFilter()) == null ? void 0 : _a.tags
2812
+ });
2813
+ const allPreferences = solidJs.createMemo(() => {
2814
+ var _a2, _b;
2815
+ const globalPreference = (_a2 = preferences()) == null ? void 0 : _a2.find((preference) => preference.level === "global" /* GLOBAL */);
2816
+ const workflowPreferences = (_b = preferences()) == null ? void 0 : _b.filter((preference) => preference.level === "template" /* TEMPLATE */);
2817
+ const workflowPreferencesIds = workflowPreferences == null ? void 0 : workflowPreferences.map((preference) => {
2818
+ var _a3;
2515
2819
  return (_a3 = preference.workflow) == null ? void 0 : _a3.id;
2516
2820
  });
2517
2821
  return {
@@ -2529,41 +2833,42 @@ var Preferences = () => {
2529
2833
  }, {}));
2530
2834
  });
2531
2835
  });
2532
- const optimisticUpdate = (preference) => ({
2836
+ const optimisticUpdate = (preference) => (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({
2533
2837
  channel,
2534
2838
  enabled
2535
- }) => {
2536
- preference == null ? void 0 : preference.update({
2839
+ }) {
2840
+ yield preference == null ? void 0 : preference.update({
2537
2841
  channels: {
2538
2842
  [channel]: enabled
2539
2843
  }
2540
2844
  });
2541
- };
2845
+ });
2542
2846
  return (() => {
2543
2847
  var _el$ = _tmpl$40();
2544
- web.insert(_el$, web.createComponent(solidJs.Show, {
2545
- get when() {
2546
- return loading();
2848
+ web.insert(_el$, web.createComponent(PreferencesRow, {
2849
+ localizationKey: "preferences.global",
2850
+ get channels() {
2851
+ var _a2;
2852
+ return ((_a2 = allPreferences().globalPreference) == null ? void 0 : _a2.channels) || {};
2547
2853
  },
2548
- get children() {
2549
- return web.createComponent(LoadingScreen, {});
2854
+ get onChange() {
2855
+ return optimisticUpdate(allPreferences().globalPreference);
2550
2856
  }
2551
2857
  }), null);
2552
2858
  web.insert(_el$, web.createComponent(solidJs.Show, {
2553
2859
  get when() {
2554
- return web.memo(() => !!!loading())() && preferences();
2860
+ var _a2;
2861
+ return (_a2 = allPreferences().workflowPreferences) == null ? void 0 : _a2.length;
2555
2862
  },
2556
- get children() {
2557
- return [web.createComponent(PreferencesRow, {
2558
- localizationKey: "preferences.global",
2559
- get channels() {
2560
- var _a2;
2561
- return ((_a2 = allPreferences().globalPreference) == null ? void 0 : _a2.channels) || {};
2562
- },
2563
- get onChange() {
2564
- return optimisticUpdate(allPreferences().globalPreference);
2863
+ get fallback() {
2864
+ return web.createComponent(PreferencesListSkeleton, {
2865
+ get loading() {
2866
+ return loading();
2565
2867
  }
2566
- }), web.createComponent(solidJs.For, {
2868
+ });
2869
+ },
2870
+ get children() {
2871
+ return web.createComponent(solidJs.For, {
2567
2872
  get each() {
2568
2873
  return allPreferences().workflowPreferencesIds;
2569
2874
  },
@@ -2591,14 +2896,14 @@ var Preferences = () => {
2591
2896
  }
2592
2897
  });
2593
2898
  }
2594
- })];
2899
+ });
2595
2900
  }
2596
2901
  }), null);
2597
- web.effect(() => web.className(_el$, style("preferencesContainer", "nt-p-2 nt-flex nt-flex-col nt-gap-1 nt-bg-background nt-overflow-y-auto nt-h-full")));
2902
+ web.effect(() => web.className(_el$, style("preferencesContainer", "nt-px-3 nt-py-4 nt-flex nt-flex-col nt-gap-1 nt-overflow-y-auto nt-h-full")));
2598
2903
  return _el$;
2599
2904
  })();
2600
2905
  };
2601
- var ChannelsLabel = (props) => {
2906
+ var WorkflowDescription = (props) => {
2602
2907
  const style = useStyle();
2603
2908
  const channelNames = () => {
2604
2909
  const channels = [];
@@ -2620,96 +2925,86 @@ var ChannelsLabel = (props) => {
2620
2925
  return (() => {
2621
2926
  var _el$3 = _tmpl$40();
2622
2927
  web.insert(_el$3, channelNames);
2623
- web.effect(() => web.className(_el$3, style("channelDescription", "nt-text-sm nt-text-foreground-alpha-600 nt-text-start")));
2928
+ web.effect(() => web.className(_el$3, style(props.appearanceKey, cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class))));
2624
2929
  return _el$3;
2625
2930
  })();
2626
2931
  };
2627
2932
  var PreferencesRow = (props) => {
2628
- const [isOpen, setIsOpen] = solidJs.createSignal(false);
2629
2933
  const style = useStyle();
2934
+ const [isOpenDescription, setIsOpenDescription] = solidJs.createSignal(true);
2935
+ const [isOpenChannels, setIsOpenChannels] = solidJs.createSignal(false);
2630
2936
  const {
2631
2937
  t
2632
2938
  } = useLocalization();
2633
- const channels = solidJs.createMemo(() => Object.keys(props.channels || {}));
2939
+ const channels = solidJs.createMemo(() => Object.keys(props.channels));
2634
2940
  return web.createComponent(solidJs.Show, {
2635
2941
  get when() {
2636
2942
  return channels().length > 0;
2637
2943
  },
2638
2944
  get children() {
2639
2945
  var _el$4 = _tmpl$310(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$8 = _el$6.nextSibling;
2640
- _el$5.$$click = () => setIsOpen((prev) => !prev);
2946
+ _el$5.$$click = () => {
2947
+ setIsOpenChannels((prev) => !prev);
2948
+ setIsOpenDescription((prev) => !prev);
2949
+ };
2641
2950
  web.insert(_el$7, () => t(props.localizationKey));
2642
- web.insert(_el$6, web.createComponent(ChannelsLabel, {
2643
- get channels() {
2644
- return props.channels;
2951
+ web.insert(_el$6, web.createComponent(Collapsible, {
2952
+ get open() {
2953
+ return isOpenDescription();
2954
+ },
2955
+ get children() {
2956
+ return web.createComponent(WorkflowDescription, {
2957
+ get channels() {
2958
+ return props.channels;
2959
+ },
2960
+ appearanceKey: "workflowDescription",
2961
+ "class": "nt-overflow-hidden"
2962
+ });
2645
2963
  }
2646
2964
  }), null);
2647
2965
  web.insert(_el$8, web.createComponent(ArrowDropDown, {
2648
2966
  get ["class"]() {
2649
- return style("workflowArrow__icon", "nt-text-foreground-alpha-600");
2967
+ return style("workflowArrow__icon", "nt-text-foreground-alpha-600 nt-size-4");
2650
2968
  }
2651
2969
  }));
2652
- web.insert(_el$4, web.createComponent(solidMotionone.Presence, {
2653
- exitBeforeEnter: true,
2970
+ web.insert(_el$4, web.createComponent(Collapsible, {
2971
+ get open() {
2972
+ return isOpenChannels();
2973
+ },
2654
2974
  get children() {
2655
- return web.createComponent(solidJs.Show, {
2656
- get when() {
2657
- return isOpen();
2975
+ var _el$9 = _tmpl$40();
2976
+ web.insert(_el$9, web.createComponent(solidJs.For, {
2977
+ get each() {
2978
+ return channels();
2658
2979
  },
2659
- get children() {
2660
- return web.createComponent(Motion.div, {
2661
- animate: {
2662
- gridTemplateRows: ["0fr", "1fr"]
2663
- },
2664
- exit: {
2665
- gridTemplateRows: ["1fr", "0fr"]
2666
- },
2667
- transition: {
2668
- duration: 0.2,
2669
- easing: "ease-out"
2670
- },
2671
- get ["class"]() {
2672
- return style("channelsContainerCollapsible", "nt-grid nt-self-stretch");
2673
- },
2674
- get children() {
2675
- var _el$9 = _tmpl$40();
2676
- web.insert(_el$9, web.createComponent(solidJs.For, {
2677
- get each() {
2678
- return channels();
2679
- },
2680
- children: (channel) => web.createComponent(ChannelRow, {
2681
- channel,
2682
- get enabled() {
2683
- return !!props.channels[channel];
2684
- },
2685
- get workflowId() {
2686
- return props.workflowId;
2687
- },
2688
- get onChange() {
2689
- return props.onChange;
2690
- }
2691
- })
2692
- }));
2693
- web.effect(() => web.className(_el$9, style("channelsContainer", "nt-overflow-hidden nt-flex-col nt-gap-1")));
2694
- return _el$9;
2695
- }
2696
- });
2697
- }
2698
- });
2980
+ children: (channel) => web.createComponent(ChannelRow, {
2981
+ channel,
2982
+ get enabled() {
2983
+ return !!props.channels[channel];
2984
+ },
2985
+ get workflowId() {
2986
+ return props.workflowId;
2987
+ },
2988
+ get onChange() {
2989
+ return props.onChange;
2990
+ }
2991
+ })
2992
+ }));
2993
+ web.effect(() => web.className(_el$9, style("channelsContainer", "nt-flex nt-bg-background nt-border nt-border-neutral-alpha-50 nt-rounded-lg nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden")));
2994
+ return _el$9;
2699
2995
  }
2700
2996
  }), null);
2701
2997
  web.effect((_p$) => {
2702
- var _v$ = style("workflowContainer", `nt-p-4 nt-flex nt-flex-col nt-gap-1 nt-items-start nt-self-stretch hover:nt-bg-neutral-alpha-50 nt-rounded-lg data-[disabled=true]:nt-bg-neutral-alpha-50`), _v$2 = isOpen(), _v$3 = style("workflowLabelContainer", "nt-flex nt-justify-between nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden"), _v$4 = isOpen(), _v$5 = style("workflowLabelHeader", "nt-overflow-hidden"), _v$6 = style("workflowLabel", "nt-text-base nt-font-semibold nt-truncate"), _v$7 = props.localizationKey, _v$8 = isOpen(), _v$9 = style("workflowContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$10 = isOpen();
2998
+ var _v$ = style("workflowContainer", `nt-p-1 nt-bg-neutral-alpha-25 nt-rounded-lg`), _v$2 = isOpenChannels(), _v$3 = style("workflowLabelContainer", "nt-flex nt-justify-between nt-p-1 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden"), _v$4 = style("workflowLabelHeader", "nt-overflow-hidden"), _v$5 = style("workflowLabel", "nt-text-sm nt-font-semibold nt-truncate"), _v$6 = props.localizationKey, _v$7 = isOpenChannels(), _v$8 = style("workflowContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$9 = isOpenChannels();
2703
2999
  _v$ !== _p$.e && web.className(_el$4, _p$.e = _v$);
2704
3000
  _v$2 !== _p$.t && web.setAttribute(_el$4, "data-open", _p$.t = _v$2);
2705
3001
  _v$3 !== _p$.a && web.className(_el$5, _p$.a = _v$3);
2706
- _v$4 !== _p$.o && web.setAttribute(_el$5, "data-open", _p$.o = _v$4);
2707
- _v$5 !== _p$.i && web.className(_el$6, _p$.i = _v$5);
2708
- _v$6 !== _p$.n && web.className(_el$7, _p$.n = _v$6);
2709
- _v$7 !== _p$.s && web.setAttribute(_el$7, "data-localization", _p$.s = _v$7);
2710
- _v$8 !== _p$.h && web.setAttribute(_el$7, "data-open", _p$.h = _v$8);
2711
- _v$9 !== _p$.r && web.className(_el$8, _p$.r = _v$9);
2712
- _v$10 !== _p$.d && web.setAttribute(_el$8, "data-open", _p$.d = _v$10);
3002
+ _v$4 !== _p$.o && web.className(_el$6, _p$.o = _v$4);
3003
+ _v$5 !== _p$.i && web.className(_el$7, _p$.i = _v$5);
3004
+ _v$6 !== _p$.n && web.setAttribute(_el$7, "data-localization", _p$.n = _v$6);
3005
+ _v$7 !== _p$.s && web.setAttribute(_el$7, "data-open", _p$.s = _v$7);
3006
+ _v$8 !== _p$.h && web.className(_el$8, _p$.h = _v$8);
3007
+ _v$9 !== _p$.r && web.setAttribute(_el$8, "data-open", _p$.r = _v$9);
2713
3008
  return _p$;
2714
3009
  }, {
2715
3010
  e: void 0,
@@ -2720,20 +3015,98 @@ var PreferencesRow = (props) => {
2720
3015
  n: void 0,
2721
3016
  s: void 0,
2722
3017
  h: void 0,
2723
- r: void 0,
2724
- d: void 0
3018
+ r: void 0
2725
3019
  });
2726
3020
  return _el$4;
2727
3021
  }
2728
3022
  });
2729
3023
  };
2730
3024
  web.delegateEvents(["click"]);
2731
- var _tmpl$41 = /* @__PURE__ */ web.template(`<strong>`);
3025
+ var _tmpl$41 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
3026
+ var PreferencesHeader = (props) => {
3027
+ const style = useStyle();
3028
+ const {
3029
+ t
3030
+ } = useLocalization();
3031
+ return (() => {
3032
+ var _el$ = _tmpl$41(), _el$2 = _el$.firstChild;
3033
+ web.insert(_el$, web.createComponent(solidJs.Show, {
3034
+ get when() {
3035
+ return props.navigateToNotifications;
3036
+ },
3037
+ children: (navigateToNotifications) => web.createComponent(Button, {
3038
+ appearanceKey: "preferencesHeader__back__button",
3039
+ "class": "nt-text-foreground-alpha-600",
3040
+ variant: "unstyled",
3041
+ size: "none",
3042
+ get onClick() {
3043
+ return navigateToNotifications();
3044
+ },
3045
+ get children() {
3046
+ return web.createComponent(ArrowLeft, {
3047
+ get ["class"]() {
3048
+ return style("preferencesHeader__back__button__icon", "nt-size-4");
3049
+ }
3050
+ });
3051
+ }
3052
+ })
3053
+ }), _el$2);
3054
+ web.insert(_el$2, () => t("preferences.title"));
3055
+ web.effect((_p$) => {
3056
+ var _v$ = style("preferencesHeader", "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-border-b nt-border-border nt-items-center nt-py-3.5 nt-px-4 nt-gap-2"), _v$2 = style("preferencesHeader__title", "nt-text-base nt-font-medium");
3057
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
3058
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
3059
+ return _p$;
3060
+ }, {
3061
+ e: void 0,
3062
+ t: void 0
3063
+ });
3064
+ return _el$;
3065
+ })();
3066
+ };
3067
+ var useTabsDropdown = ({ tabs }) => {
3068
+ const [tabsList, setTabsList] = solidJs.createSignal();
3069
+ const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
3070
+ const [dropdownTabs, setDropdownTabs] = solidJs.createSignal([]);
3071
+ solidJs.onMount(() => {
3072
+ const tabsListEl = tabsList();
3073
+ if (!tabsListEl) return;
3074
+ const tabsElements = [...tabsListEl.querySelectorAll('[role="tab"]')];
3075
+ const observer = new IntersectionObserver(
3076
+ (entries) => {
3077
+ let visibleTabIds = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio === 1).map((entry) => entry.target.id);
3078
+ if (tabsElements.length === visibleTabIds.length) {
3079
+ setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
3080
+ observer.disconnect();
3081
+ return;
3082
+ }
3083
+ visibleTabIds = visibleTabIds.slice(0, -1);
3084
+ setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
3085
+ setDropdownTabs(tabs.filter((tab) => !visibleTabIds.includes(tab.label)));
3086
+ observer.disconnect();
3087
+ },
3088
+ { root: tabsListEl }
3089
+ );
3090
+ for (const tabElement of tabsElements) {
3091
+ observer.observe(tabElement);
3092
+ }
3093
+ });
3094
+ return { dropdownTabs, setTabsList, visibleTabs };
3095
+ };
3096
+ var _tmpl$42 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M10.0001 10.879L13.7126 7.1665L14.7731 8.227L10.0001 13L5.22705 8.227L6.28755 7.1665L10.0001 10.879Z"fill=currentColor>`);
3097
+ var ArrowDown = (props) => {
3098
+ return (() => {
3099
+ var _el$ = _tmpl$42();
3100
+ web.spread(_el$, props, true, true);
3101
+ return _el$;
3102
+ })();
3103
+ };
3104
+ var _tmpl$43 = /* @__PURE__ */ web.template(`<strong>`);
2732
3105
  var _tmpl$213 = /* @__PURE__ */ web.template(`<p>`);
2733
3106
  var Bold = (props) => {
2734
3107
  const style = useStyle();
2735
3108
  return (() => {
2736
- var _el$ = _tmpl$41();
3109
+ var _el$ = _tmpl$43();
2737
3110
  web.insert(_el$, () => props.children);
2738
3111
  web.effect(() => web.className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
2739
3112
  return _el$;
@@ -2824,7 +3197,7 @@ function useTooltip() {
2824
3197
  }
2825
3198
 
2826
3199
  // src/ui/components/primitives/Tooltip/TooltipContent.tsx
2827
- var _tmpl$42 = /* @__PURE__ */ web.template(`<div>`);
3200
+ var _tmpl$44 = /* @__PURE__ */ web.template(`<div>`);
2828
3201
  var tooltipContentVariants = () => "nt-bg-foreground nt-p-2 nt-shadow-tooltip nt-rounded-lg nt-text-background nt-text-xs";
2829
3202
  var TooltipContentBody = (props) => {
2830
3203
  const {
@@ -2847,7 +3220,7 @@ var TooltipContentBody = (props) => {
2847
3220
  });
2848
3221
  });
2849
3222
  return (() => {
2850
- var _el$ = _tmpl$42();
3223
+ var _el$ = _tmpl$44();
2851
3224
  web.use(setFloating, _el$);
2852
3225
  web.spread(_el$, web.mergeProps({
2853
3226
  get ["class"]() {
@@ -2886,7 +3259,7 @@ var TooltipContent = (props) => {
2886
3259
  }
2887
3260
  });
2888
3261
  };
2889
- var _tmpl$43 = /* @__PURE__ */ web.template(`<button>`);
3262
+ var _tmpl$45 = /* @__PURE__ */ web.template(`<button>`);
2890
3263
  var TooltipTrigger = (props) => {
2891
3264
  const {
2892
3265
  setReference,
@@ -2909,7 +3282,7 @@ var TooltipTrigger = (props) => {
2909
3282
  }, rest));
2910
3283
  }
2911
3284
  return (() => {
2912
- var _el$ = _tmpl$43();
3285
+ var _el$ = _tmpl$45();
2913
3286
  _el$.addEventListener("mouseleave", () => {
2914
3287
  setOpen(false);
2915
3288
  });
@@ -2941,9 +3314,10 @@ var Tooltip = {
2941
3314
  };
2942
3315
 
2943
3316
  // src/ui/components/Notification/DefaultNotification.tsx
2944
- var _tmpl$44 = /* @__PURE__ */ web.template(`<span>`);
2945
- var _tmpl$214 = /* @__PURE__ */ web.template(`<img>`);
2946
- var _tmpl$311 = /* @__PURE__ */ web.template(`<a><div><div class="nt-relative nt-shrink-0 nt-float-right nt-ml-1 nt-pr-1.5"><p></p><div></div></div><div>`);
3317
+ var _tmpl$46 = /* @__PURE__ */ web.template(`<img>`);
3318
+ var _tmpl$214 = /* @__PURE__ */ web.template(`<div>`);
3319
+ var _tmpl$311 = /* @__PURE__ */ web.template(`<span>`);
3320
+ var _tmpl$47 = /* @__PURE__ */ web.template(`<a><div><div></div><div></div><p>`);
2947
3321
  var DefaultNotification = (props) => {
2948
3322
  const style = useStyle();
2949
3323
  const {
@@ -2968,62 +3342,99 @@ var DefaultNotification = (props) => {
2968
3342
  }, 1e3 * 60);
2969
3343
  return () => clearInterval(interval);
2970
3344
  });
2971
- const handleNotificationClick = (e) => {
3345
+ const handleNotificationClick = (e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
2972
3346
  var _a, _b, _c;
2973
3347
  e.stopPropagation();
2974
3348
  e.preventDefault();
2975
3349
  if (!props.notification.isRead) {
2976
- props.notification.read();
3350
+ yield props.notification.read();
2977
3351
  }
2978
3352
  (_a = props.onNotificationClick) == null ? void 0 : _a.call(props, props.notification);
2979
3353
  navigate((_b = props.notification.redirect) == null ? void 0 : _b.url, (_c = props.notification.redirect) == null ? void 0 : _c.target);
2980
- };
2981
- const handleActionButtonClick = (action, e) => {
3354
+ });
3355
+ const handleActionButtonClick = (action, e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
2982
3356
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2983
3357
  e.stopPropagation();
2984
3358
  if (action === "primary" /* PRIMARY */) {
2985
- props.notification.completePrimary();
3359
+ yield props.notification.completePrimary();
2986
3360
  (_a = props.onPrimaryActionClick) == null ? void 0 : _a.call(props, props.notification);
2987
3361
  navigate((_c = (_b = props.notification.primaryAction) == null ? void 0 : _b.redirect) == null ? void 0 : _c.url, (_e = (_d = props.notification.primaryAction) == null ? void 0 : _d.redirect) == null ? void 0 : _e.target);
2988
3362
  } else {
2989
- props.notification.completeSecondary();
3363
+ yield props.notification.completeSecondary();
2990
3364
  (_f = props.onSecondaryActionClick) == null ? void 0 : _f.call(props, props.notification);
2991
3365
  navigate((_h = (_g = props.notification.secondaryAction) == null ? void 0 : _g.redirect) == null ? void 0 : _h.url, (_j = (_i = props.notification.secondaryAction) == null ? void 0 : _i.redirect) == null ? void 0 : _j.target);
2992
3366
  }
2993
- };
3367
+ });
2994
3368
  return (() => {
2995
- var _el$ = _tmpl$311(), _el$4 = _el$.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$5.nextSibling;
3369
+ var _el$ = _tmpl$47(), _el$3 = _el$.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$7 = _el$5.nextSibling;
2996
3370
  _el$.$$click = handleNotificationClick;
2997
- web.insert(_el$, web.createComponent(solidJs.Show, {
2998
- get when() {
2999
- return !props.notification.isRead;
3000
- },
3001
- get children() {
3002
- var _el$2 = _tmpl$44();
3003
- web.effect(() => web.className(_el$2, style("notificationDot", "nt-absolute -nt-translate-x-[1.0625rem] nt-translate-y-1/2 nt-size-2.5 nt-bg-primary nt-rounded-full nt-border nt-border-neutral-alpha-200")));
3004
- return _el$2;
3005
- }
3006
- }), _el$4);
3007
3371
  web.insert(_el$, web.createComponent(solidJs.Show, {
3008
3372
  get when() {
3009
3373
  return props.notification.avatar;
3010
3374
  },
3375
+ get fallback() {
3376
+ return (() => {
3377
+ var _el$9 = _tmpl$214();
3378
+ web.effect(() => web.className(_el$9, style("notificationImageLoadingFallback", "nt-size-8 nt-rounded-lg nt-shrink-0 nt-aspect-square")));
3379
+ return _el$9;
3380
+ })();
3381
+ },
3011
3382
  get children() {
3012
- var _el$3 = _tmpl$214();
3383
+ var _el$2 = _tmpl$46();
3013
3384
  web.effect((_p$) => {
3014
- var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg"), _v$2 = props.notification.avatar;
3015
- _v$ !== _p$.e && web.className(_el$3, _p$.e = _v$);
3016
- _v$2 !== _p$.t && web.setAttribute(_el$3, "src", _p$.t = _v$2);
3385
+ var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square"), _v$2 = props.notification.avatar;
3386
+ _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
3387
+ _v$2 !== _p$.t && web.setAttribute(_el$2, "src", _p$.t = _v$2);
3017
3388
  return _p$;
3018
3389
  }, {
3019
3390
  e: void 0,
3020
3391
  t: void 0
3021
3392
  });
3022
- return _el$3;
3393
+ return _el$2;
3023
3394
  }
3024
- }), _el$4);
3025
- web.insert(_el$6, date);
3026
- web.insert(_el$7, web.createComponent(solidJs.Show, {
3395
+ }), _el$3);
3396
+ web.insert(_el$4, web.createComponent(solidJs.Show, {
3397
+ get when() {
3398
+ return props.renderSubject;
3399
+ },
3400
+ get fallback() {
3401
+ return web.createComponent(solidJs.Show, {
3402
+ get when() {
3403
+ return props.notification.subject;
3404
+ },
3405
+ children: (subject) => web.createComponent(Markdown_default, {
3406
+ appearanceKey: "notificationSubject",
3407
+ "class": "nt-text-start nt-font-medium",
3408
+ strongAppearanceKey: "notificationSubject__strong",
3409
+ get children() {
3410
+ return subject();
3411
+ }
3412
+ })
3413
+ });
3414
+ },
3415
+ children: (renderSubject) => web.createComponent(ExternalElementRenderer, {
3416
+ render: (el) => renderSubject()(el, props.notification)
3417
+ })
3418
+ }), null);
3419
+ web.insert(_el$4, web.createComponent(solidJs.Show, {
3420
+ get when() {
3421
+ return props.renderBody;
3422
+ },
3423
+ get fallback() {
3424
+ return web.createComponent(Markdown_default, {
3425
+ appearanceKey: "notificationBody",
3426
+ strongAppearanceKey: "notificationBody__strong",
3427
+ "class": "nt-text-start nt-whitespace-pre-wrap nt-text-foreground-alpha-600",
3428
+ get children() {
3429
+ return props.notification.body;
3430
+ }
3431
+ });
3432
+ },
3433
+ children: (renderBody) => web.createComponent(ExternalElementRenderer, {
3434
+ render: (el) => renderBody()(el, props.notification)
3435
+ })
3436
+ }), null);
3437
+ web.insert(_el$5, web.createComponent(solidJs.Show, {
3027
3438
  get when() {
3028
3439
  return status() !== "archived" /* ARCHIVED */;
3029
3440
  },
@@ -3038,16 +3449,19 @@ var DefaultNotification = (props) => {
3038
3449
  return [web.createComponent(Tooltip.Trigger, {
3039
3450
  asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3040
3451
  appearanceKey: "notificationRead__button",
3041
- size: "icon",
3042
- variant: "icon"
3452
+ size: "iconSm",
3453
+ variant: "ghost"
3043
3454
  }, childProps, {
3044
- onClick: (e) => {
3455
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3045
3456
  e.stopPropagation();
3046
- props.notification.read();
3047
- },
3048
- "class": "hover:nt-bg-neutral-alpha-50 nt-p-0.5",
3457
+ yield props.notification.read();
3458
+ }),
3049
3459
  get children() {
3050
- return web.createComponent(ReadAll, {});
3460
+ return web.createComponent(MarkAsRead, {
3461
+ get ["class"]() {
3462
+ return style("notificationRead__icon", "nt-size-3");
3463
+ }
3464
+ });
3051
3465
  }
3052
3466
  }))
3053
3467
  }), web.createComponent(Tooltip.Content, {
@@ -3065,16 +3479,19 @@ var DefaultNotification = (props) => {
3065
3479
  return [web.createComponent(Tooltip.Trigger, {
3066
3480
  asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3067
3481
  appearanceKey: "notificationUnread__button",
3068
- size: "icon",
3069
- variant: "icon"
3482
+ size: "iconSm",
3483
+ variant: "ghost"
3070
3484
  }, childProps, {
3071
- onClick: (e) => {
3485
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3072
3486
  e.stopPropagation();
3073
- props.notification.unread();
3074
- },
3075
- "class": "hover:nt-bg-neutral-alpha-50 nt-p-0.5",
3487
+ yield props.notification.unread();
3488
+ }),
3076
3489
  get children() {
3077
- return web.createComponent(Unread, {});
3490
+ return web.createComponent(MarkAsUnread, {
3491
+ get ["class"]() {
3492
+ return style("notificationUnread__icon", "nt-size-3");
3493
+ }
3494
+ });
3078
3495
  }
3079
3496
  }))
3080
3497
  }), web.createComponent(Tooltip.Content, {
@@ -3089,7 +3506,7 @@ var DefaultNotification = (props) => {
3089
3506
  });
3090
3507
  }
3091
3508
  }), null);
3092
- web.insert(_el$7, web.createComponent(solidJs.Show, {
3509
+ web.insert(_el$5, web.createComponent(solidJs.Show, {
3093
3510
  get when() {
3094
3511
  return props.notification.isArchived;
3095
3512
  },
@@ -3099,16 +3516,19 @@ var DefaultNotification = (props) => {
3099
3516
  return [web.createComponent(Tooltip.Trigger, {
3100
3517
  asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3101
3518
  appearanceKey: "notificationArchive__button",
3102
- size: "icon",
3103
- variant: "icon"
3519
+ size: "iconSm",
3520
+ variant: "ghost"
3104
3521
  }, childProps, {
3105
- onClick: (e) => {
3522
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3106
3523
  e.stopPropagation();
3107
- props.notification.archive();
3108
- },
3109
- "class": "hover:nt-bg-neutral-alpha-50 nt-p-0.5",
3524
+ yield props.notification.archive();
3525
+ }),
3110
3526
  get children() {
3111
- return web.createComponent(Archive, {});
3527
+ return web.createComponent(MarkAsArchived, {
3528
+ get ["class"]() {
3529
+ return style("notificationArchive__icon", "nt-size-3");
3530
+ }
3531
+ });
3112
3532
  }
3113
3533
  }))
3114
3534
  }), web.createComponent(Tooltip.Content, {
@@ -3126,16 +3546,19 @@ var DefaultNotification = (props) => {
3126
3546
  return [web.createComponent(Tooltip.Trigger, {
3127
3547
  asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3128
3548
  appearanceKey: "notificationUnarchive__button",
3129
- size: "icon",
3130
- variant: "icon"
3549
+ size: "iconSm",
3550
+ variant: "ghost"
3131
3551
  }, childProps, {
3132
- onClick: (e) => {
3552
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3133
3553
  e.stopPropagation();
3134
- props.notification.unarchive();
3135
- },
3136
- "class": "hover:nt-bg-neutral-alpha-50 nt-p-0.5",
3554
+ yield props.notification.unarchive();
3555
+ }),
3137
3556
  get children() {
3138
- return web.createComponent(Unarchive, {});
3557
+ return web.createComponent(MarkAsUnarchived, {
3558
+ get ["class"]() {
3559
+ return style("notificationArchive__icon", "nt-size-3");
3560
+ }
3561
+ });
3139
3562
  }
3140
3563
  }))
3141
3564
  }), web.createComponent(Tooltip.Content, {
@@ -3148,65 +3571,65 @@ var DefaultNotification = (props) => {
3148
3571
  });
3149
3572
  }
3150
3573
  }), null);
3151
- web.insert(_el$4, web.createComponent(solidJs.Show, {
3574
+ web.insert(_el$3, web.createComponent(solidJs.Show, {
3152
3575
  get when() {
3153
- return props.notification.subject;
3576
+ return props.notification.primaryAction || props.notification.secondaryAction;
3154
3577
  },
3155
- children: (subject) => web.createComponent(Markdown_default, {
3156
- appearanceKey: "notificationSubject__strong",
3157
- "class": "nt-text-start",
3158
- strongAppearanceKey: "notificationSubject__strong",
3159
- get children() {
3160
- return subject();
3161
- }
3162
- })
3163
- }), _el$8);
3164
- web.insert(_el$4, web.createComponent(Markdown_default, {
3165
- appearanceKey: "notificationBody__strong",
3166
- strongAppearanceKey: "notificationBody__strong",
3167
- "class": "nt-text-start nt-whitespace-pre-wrap",
3168
3578
  get children() {
3169
- return props.notification.body;
3579
+ var _el$6 = _tmpl$214();
3580
+ web.insert(_el$6, web.createComponent(solidJs.Show, {
3581
+ get when() {
3582
+ return props.notification.primaryAction;
3583
+ },
3584
+ keyed: true,
3585
+ children: (primaryAction) => web.createComponent(Button, {
3586
+ appearanceKey: "notificationPrimaryAction__button",
3587
+ variant: "default",
3588
+ onClick: (e) => handleActionButtonClick("primary" /* PRIMARY */, e),
3589
+ get children() {
3590
+ return primaryAction.label;
3591
+ }
3592
+ })
3593
+ }), null);
3594
+ web.insert(_el$6, web.createComponent(solidJs.Show, {
3595
+ get when() {
3596
+ return props.notification.secondaryAction;
3597
+ },
3598
+ keyed: true,
3599
+ children: (secondaryAction) => web.createComponent(Button, {
3600
+ appearanceKey: "notificationSecondaryAction__button",
3601
+ variant: "secondary",
3602
+ onClick: (e) => handleActionButtonClick("secondary" /* SECONDARY */, e),
3603
+ get children() {
3604
+ return secondaryAction.label;
3605
+ }
3606
+ })
3607
+ }), null);
3608
+ web.effect(() => web.className(_el$6, style("notificationCustomActions", "nt-flex nt-flex-wrap nt-gap-2")));
3609
+ return _el$6;
3170
3610
  }
3171
- }), _el$8);
3172
- web.insert(_el$8, web.createComponent(solidJs.Show, {
3173
- get when() {
3174
- return props.notification.primaryAction;
3175
- },
3176
- keyed: true,
3177
- children: (primaryAction) => web.createComponent(Button, {
3178
- appearanceKey: "notificationPrimaryAction__button",
3179
- variant: "default",
3180
- onClick: (e) => handleActionButtonClick("primary" /* PRIMARY */, e),
3181
- get children() {
3182
- return primaryAction.label;
3183
- }
3184
- })
3185
- }), null);
3186
- web.insert(_el$8, web.createComponent(solidJs.Show, {
3611
+ }), _el$7);
3612
+ web.insert(_el$7, date);
3613
+ web.insert(_el$, web.createComponent(solidJs.Show, {
3187
3614
  get when() {
3188
- return props.notification.secondaryAction;
3615
+ return !props.notification.isRead;
3189
3616
  },
3190
- keyed: true,
3191
- children: (secondaryAction) => web.createComponent(Button, {
3192
- appearanceKey: "notificationSecondaryAction__button",
3193
- variant: "secondary",
3194
- onClick: (e) => handleActionButtonClick("secondary" /* SECONDARY */, e),
3195
- get children() {
3196
- return secondaryAction.label;
3197
- }
3198
- })
3617
+ get children() {
3618
+ var _el$8 = _tmpl$311();
3619
+ web.effect(() => web.className(_el$8, style("notificationDot", "nt-size-1.5 nt-bg-primary nt-rounded-full nt-shrink-0")));
3620
+ return _el$8;
3621
+ }
3199
3622
  }), null);
3200
3623
  web.effect((_p$) => {
3201
3624
  var _a;
3202
- var _v$3 = style("notification", cn("nt-w-full nt-text-sm hover:nt-bg-neutral-alpha-50 nt-group nt-relative nt-flex nt-py-4 nt-px-6 nt-gap-2", {
3625
+ var _v$3 = style("notification", cn("nt-w-full nt-text-sm hover:nt-bg-primary-alpha-25 nt-group nt-relative nt-flex nt-items-start nt-p-4 nt-gap-2", "[&:not(:first-child)]:nt-border-t nt-border-neutral-alpha-100", {
3203
3626
  "nt-cursor-pointer": !props.notification.isRead || !!((_a = props.notification.redirect) == null ? void 0 : _a.url)
3204
- })), _v$4 = style("notificationBody", "nt-overflow-hidden nt-w-full"), _v$5 = style("notificationDate", "nt-transition nt-duration-100 nt-ease-out nt-text-foreground-alpha-400 nt-shrink-0 nt-float-right nt-text-right group-hover:nt-opacity-0"), _v$6 = style("notificationDefaultActions", `nt-transition nt-duration-100 nt-ease-out nt-gap-2 nt-flex nt-shrink-0 nt-opacity-0 group-hover:nt-opacity-100 nt-justify-center nt-items-center nt-absolute nt-top-0 nt-right-0 nt-bg-neutral-alpha-50 nt-rounded-lg nt-backdrop-blur-md nt-p-0.5`), _v$7 = style("notificationCustomActions", "nt-flex nt-flex-wrap nt-gap-4 nt-mt-4");
3627
+ })), _v$4 = style("notificationContent", "nt-flex nt-flex-col nt-gap-2 nt-w-full"), _v$5 = style("notificationTextContainer"), _v$6 = style("notificationDefaultActions", "nt-absolute nt-transition nt-duration-100 nt-ease-out nt-gap-0.5 nt-flex nt-shrink-0 nt-opacity-0 group-hover:nt-opacity-100 group-focus-within:nt-opacity-100 nt-justify-center nt-items-center nt-bg-background/90 nt-right-3 nt-top-3 nt-border nt-border-neutral-alpha-100 nt-rounded-lg nt-backdrop-blur-lg nt-p-0.5"), _v$7 = style("notificationDate", "nt-text-foreground-alpha-400");
3205
3628
  _v$3 !== _p$.e && web.className(_el$, _p$.e = _v$3);
3206
- _v$4 !== _p$.t && web.className(_el$4, _p$.t = _v$4);
3207
- _v$5 !== _p$.a && web.className(_el$6, _p$.a = _v$5);
3208
- _v$6 !== _p$.o && web.className(_el$7, _p$.o = _v$6);
3209
- _v$7 !== _p$.i && web.className(_el$8, _p$.i = _v$7);
3629
+ _v$4 !== _p$.t && web.className(_el$3, _p$.t = _v$4);
3630
+ _v$5 !== _p$.a && web.className(_el$4, _p$.a = _v$5);
3631
+ _v$6 !== _p$.o && web.className(_el$5, _p$.o = _v$6);
3632
+ _v$7 !== _p$.i && web.className(_el$7, _p$.i = _v$7);
3210
3633
  return _p$;
3211
3634
  }, {
3212
3635
  e: void 0,
@@ -3231,6 +3654,12 @@ var Notification = (props) => {
3231
3654
  get notification() {
3232
3655
  return props.notification;
3233
3656
  },
3657
+ get renderSubject() {
3658
+ return props.renderSubject;
3659
+ },
3660
+ get renderBody() {
3661
+ return props.renderBody;
3662
+ },
3234
3663
  get onNotificationClick() {
3235
3664
  return props.onNotificationClick;
3236
3665
  },
@@ -3249,14 +3678,6 @@ var Notification = (props) => {
3249
3678
  }
3250
3679
  });
3251
3680
  };
3252
- var _tmpl$45 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=48 height=48 viewBox="0 0 48 48"fill=none><path fill=currentColor d="M35.2 21.62L32.38 18.8L39.5 11.7L42.32 14.52C42.1 14.58 35.2 21.62 35.2 21.62ZM26 6H22V16H26V6ZM12.8 21.62L15.62 18.8L8.52 11.68L5.68 14.52C5.9 14.58 12.8 21.62 12.8 21.62ZM40 28H33.16C31.62 31.52 28.08 34 24 34C19.92 34 16.38 31.52 14.84 28H8V38H40V28ZM40 24C42.2 24 44 25.8 44 28V38C44 40.2 42.2 42 40 42H8C5.8 42 4 40.2 4 38V28C4 25.8 5.8 24 8 24H18C18 27.32 20.68 30 24 30C27.32 30 30 27.32 30 24H40Z">`);
3253
- function EmptyIcon(props) {
3254
- return (() => {
3255
- var _el$ = _tmpl$45();
3256
- web.spread(_el$, props, true, true);
3257
- return _el$;
3258
- })();
3259
- }
3260
3681
  var NewMessagesCta = (props) => {
3261
3682
  const shouldRender = solidJs.createMemo(() => !!props.count);
3262
3683
  const {
@@ -3269,7 +3690,7 @@ var NewMessagesCta = (props) => {
3269
3690
  get children() {
3270
3691
  return web.createComponent(Button, {
3271
3692
  appearanceKey: "notificationListNewNotificationsNotice__button",
3272
- "class": "nt-absolute nt-w-fit nt-top-0 nt-mx-auto nt-inset-2 nt-z-10 nt-rounded-full hover:nt-bg-primary-600 nt-animate-in nt-slide-in-from-top-2 nt-fade-in",
3693
+ "class": "nt-absolute nt-w-fit nt-h-fit nt-top-0 nt-mx-auto nt-inset-2 nt-z-10 nt-rounded-full hover:nt-bg-primary-600 nt-animate-in nt-slide-in-from-top-2 nt-fade-in",
3273
3694
  get onClick() {
3274
3695
  return props.onClick;
3275
3696
  },
@@ -3283,66 +3704,113 @@ var NewMessagesCta = (props) => {
3283
3704
  }
3284
3705
  });
3285
3706
  };
3286
- var _tmpl$46 = /* @__PURE__ */ web.template(`<div class="nt-flex nt-gap-2 nt-px-6 nt-py-4 nt-w-full"><div class="nt-flex nt-flex-col nt-self-stretch nt-gap-3 nt-flex-1"><div class="nt-flex nt-gap-1"></div><div class="nt-flex nt-gap-1">`);
3287
- var NotificationSkeleton = () => {
3288
- return (() => {
3289
- var _el$ = _tmpl$46(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
3290
- web.insert(_el$, web.createComponent(SkeletonAvatar, {
3291
- appearanceKey: "skeletonAvatar"
3292
- }), _el$2);
3293
- web.insert(_el$2, web.createComponent(SkeletonText, {
3294
- appearanceKey: "skeletonText",
3295
- "class": "nt-w-1/4"
3296
- }), _el$3);
3297
- web.insert(_el$3, web.createComponent(SkeletonText, {
3298
- appearanceKey: "skeletonText"
3299
- }), null);
3300
- web.insert(_el$3, web.createComponent(SkeletonText, {
3301
- appearanceKey: "skeletonText"
3302
- }), null);
3303
- web.insert(_el$4, web.createComponent(SkeletonText, {
3304
- appearanceKey: "skeletonText",
3305
- "class": "nt-w-2/3"
3306
- }), null);
3307
- web.insert(_el$4, web.createComponent(SkeletonText, {
3308
- appearanceKey: "skeletonText",
3309
- "class": "nt-w-1/3"
3310
- }), null);
3311
- return _el$;
3312
- })();
3313
- };
3707
+ var _tmpl$48 = /* @__PURE__ */ web.template(`<div>`);
3314
3708
  var NotificationListSkeleton = (props) => {
3315
- return web.createComponent(solidJs.For, {
3316
- get each() {
3317
- return Array.from({
3318
- length: props.count
3319
- });
3320
- },
3321
- children: () => web.createComponent(NotificationSkeleton, {})
3322
- });
3323
- };
3324
-
3325
- // src/ui/components/Notification/NotificationList.tsx
3326
- var _tmpl$47 = /* @__PURE__ */ web.template(`<div><p class=nt-text-center data-localization=notifications.emptyNotice>`);
3327
- var _tmpl$215 = /* @__PURE__ */ web.template(`<div>`);
3328
- var _tmpl$312 = /* @__PURE__ */ web.template(`<div><div>`);
3329
- var EmptyNotificationList = () => {
3330
3709
  const style = useStyle();
3331
3710
  const {
3332
3711
  t
3333
3712
  } = useLocalization();
3334
3713
  return (() => {
3335
- var _el$ = _tmpl$47(), _el$2 = _el$.firstChild;
3336
- web.insert(_el$, web.createComponent(EmptyIcon, {
3714
+ var _el$ = _tmpl$48();
3715
+ web.insert(_el$, web.createComponent(Motion.div, {
3716
+ get animate() {
3717
+ return {
3718
+ scale: props.loading ? 1 : 0.7
3719
+ };
3720
+ },
3721
+ transition: {
3722
+ duration: 0.6,
3723
+ easing: [0.39, 0.24, 0.3, 1],
3724
+ delay: 0.3
3725
+ },
3337
3726
  get ["class"]() {
3338
- return style("notificationListEmptyNoticeIcon");
3727
+ return style("notificationList__skeleton", "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4");
3728
+ },
3729
+ get children() {
3730
+ return [web.memo(() => Array.from({
3731
+ length: 5
3732
+ }).map((_, i) => web.createComponent(Motion.div, {
3733
+ get animate() {
3734
+ return {
3735
+ marginBottom: props.loading ? 0 : "16px",
3736
+ borderWidth: props.loading ? 0 : "1px",
3737
+ borderRadius: props.loading ? 0 : "var(--nv-radius-lg)"
3738
+ };
3739
+ },
3740
+ transition: {
3741
+ duration: 0.5,
3742
+ delay: 0.3,
3743
+ easing: "ease-in-out"
3744
+ },
3745
+ get ["class"]() {
3746
+ return style("notificationList__skeletonContent", "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25");
3747
+ },
3748
+ get children() {
3749
+ return [web.createComponent(SkeletonAvatar, {
3750
+ appearanceKey: "notificationList__skeletonAvatar",
3751
+ "class": "nt-w-8 nt-h-8 nt-rounded-full nt-bg-neutral-alpha-100"
3752
+ }), (() => {
3753
+ var _el$3 = _tmpl$48();
3754
+ web.insert(_el$3, web.createComponent(SkeletonText, {
3755
+ appearanceKey: "notificationList__skeletonText",
3756
+ "class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
3757
+ }), null);
3758
+ web.insert(_el$3, web.createComponent(SkeletonText, {
3759
+ appearanceKey: "notificationList__skeletonText",
3760
+ "class": "nt-h-2 nt-w-2/3 nt-bg-neutral-alpha-50 nt-rounded"
3761
+ }), null);
3762
+ web.effect(() => web.className(_el$3, style("notificationList__skeletonItem", "nt-flex nt-flex-col nt-gap-2 nt-flex-1")));
3763
+ return _el$3;
3764
+ })()];
3765
+ }
3766
+ }))), (() => {
3767
+ var _el$2 = _tmpl$48();
3768
+ web.effect(() => web.className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
3769
+ return _el$2;
3770
+ })()];
3339
3771
  }
3340
- }), _el$2);
3341
- web.insert(_el$2, () => t("notifications.emptyNotice"));
3342
- web.effect(() => web.className(_el$, style("notificationListEmptyNoticeContainer", "nt-flex nt-flex-col nt-items-center nt-m-auto nt-h-fit nt-w-full nt-text-foreground-alpha-100 nt-p-6 nt-text-center")));
3772
+ }), null);
3773
+ web.insert(_el$, web.createComponent(solidJs.Show, {
3774
+ get when() {
3775
+ return !props.loading;
3776
+ },
3777
+ get children() {
3778
+ return web.createComponent(Motion.p, {
3779
+ initial: {
3780
+ opacity: 0,
3781
+ y: -4,
3782
+ filter: "blur(4px)"
3783
+ },
3784
+ get animate() {
3785
+ return {
3786
+ opacity: props.loading ? 0 : 1,
3787
+ y: 0,
3788
+ filter: "blur(0px)"
3789
+ };
3790
+ },
3791
+ transition: {
3792
+ duration: 0.7,
3793
+ easing: [0.39, 0.24, 0.3, 1],
3794
+ delay: 0.6
3795
+ },
3796
+ get ["class"]() {
3797
+ return style("notificationListEmptyNotice", "nt-text-center");
3798
+ },
3799
+ "data-localization": "notifications.emptyNotice",
3800
+ get children() {
3801
+ return t("notifications.emptyNotice");
3802
+ }
3803
+ });
3804
+ }
3805
+ }), null);
3806
+ web.effect(() => web.className(_el$, style("notificationListEmptyNoticeContainer", "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center")));
3343
3807
  return _el$;
3344
3808
  })();
3345
3809
  };
3810
+
3811
+ // src/ui/components/Notification/NotificationList.tsx
3812
+ var _tmpl$49 = /* @__PURE__ */ web.template(`<div>`);
3813
+ var _tmpl$215 = /* @__PURE__ */ web.template(`<div><div>`);
3346
3814
  var NotificationList = (props) => {
3347
3815
  var _a, _b;
3348
3816
  const options = solidJs.createMemo(() => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.filter), {
@@ -3385,99 +3853,92 @@ var NotificationList = (props) => {
3385
3853
  });
3386
3854
  });
3387
3855
  return (() => {
3388
- var _el$3 = _tmpl$312(), _el$4 = _el$3.firstChild;
3389
- web.insert(_el$3, web.createComponent(NewMessagesCta, {
3856
+ var _el$ = _tmpl$215(), _el$2 = _el$.firstChild;
3857
+ web.insert(_el$, web.createComponent(NewMessagesCta, {
3390
3858
  get count() {
3391
3859
  return count();
3392
3860
  },
3393
3861
  onClick: handleOnNewMessagesClick
3394
- }), _el$4);
3862
+ }), _el$2);
3395
3863
  web.use((el) => {
3396
3864
  notificationListElement = el;
3397
- }, _el$4);
3398
- web.insert(_el$4, web.createComponent(solidJs.Show, {
3865
+ }, _el$2);
3866
+ web.insert(_el$2, web.createComponent(solidJs.Show, {
3399
3867
  get when() {
3400
- return !initialLoading();
3868
+ return data().length > 0;
3401
3869
  },
3402
3870
  get fallback() {
3403
3871
  return web.createComponent(NotificationListSkeleton, {
3404
- count: 8
3872
+ get loading() {
3873
+ return initialLoading();
3874
+ }
3405
3875
  });
3406
3876
  },
3407
3877
  get children() {
3408
- return web.createComponent(solidJs.Show, {
3409
- get when() {
3410
- return data().length > 0;
3411
- },
3412
- get fallback() {
3413
- return web.createComponent(EmptyNotificationList, {});
3878
+ return [web.createComponent(solidJs.For, {
3879
+ get each() {
3880
+ return ids();
3414
3881
  },
3415
- get children() {
3416
- return [web.createComponent(solidJs.For, {
3417
- get each() {
3418
- return ids();
3882
+ children: (_, index) => {
3883
+ const notification = () => data()[index()];
3884
+ return web.createComponent(Notification, {
3885
+ get notification() {
3886
+ return notification();
3419
3887
  },
3420
- children: (_, index) => {
3421
- const notification = () => data()[index()];
3422
- return web.createComponent(Notification, {
3423
- get notification() {
3424
- return notification();
3425
- },
3426
- get renderNotification() {
3427
- return props.renderNotification;
3428
- },
3429
- get onNotificationClick() {
3430
- return props.onNotificationClick;
3431
- },
3432
- get onPrimaryActionClick() {
3433
- return props.onPrimaryActionClick;
3434
- },
3435
- get onSecondaryActionClick() {
3436
- return props.onSecondaryActionClick;
3437
- }
3438
- });
3439
- }
3440
- }), web.createComponent(solidJs.Show, {
3441
- get when() {
3442
- return !end();
3888
+ get renderNotification() {
3889
+ return props.renderNotification;
3443
3890
  },
3444
- get children() {
3445
- var _el$5 = _tmpl$215();
3446
- web.use(setEl, _el$5);
3447
- web.insert(_el$5, web.createComponent(solidJs.For, {
3448
- get each() {
3449
- return Array.from({
3450
- length: 3
3451
- });
3452
- },
3453
- children: () => web.createComponent(NotificationSkeleton, {})
3454
- }));
3455
- return _el$5;
3891
+ get renderSubject() {
3892
+ return props.renderSubject;
3893
+ },
3894
+ get renderBody() {
3895
+ return props.renderBody;
3896
+ },
3897
+ get onNotificationClick() {
3898
+ return props.onNotificationClick;
3899
+ },
3900
+ get onPrimaryActionClick() {
3901
+ return props.onPrimaryActionClick;
3902
+ },
3903
+ get onSecondaryActionClick() {
3904
+ return props.onSecondaryActionClick;
3456
3905
  }
3457
- })];
3906
+ });
3458
3907
  }
3459
- });
3908
+ }), web.createComponent(solidJs.Show, {
3909
+ get when() {
3910
+ return !end();
3911
+ },
3912
+ get children() {
3913
+ var _el$3 = _tmpl$49();
3914
+ web.use(setEl, _el$3);
3915
+ web.insert(_el$3, web.createComponent(NotificationListSkeleton, {
3916
+ loading: true
3917
+ }));
3918
+ return _el$3;
3919
+ }
3920
+ })];
3460
3921
  }
3461
3922
  }));
3462
3923
  web.effect((_p$) => {
3463
- var _v$ = style("notificationListContainer", "nt-relative nt-h-full nt-overflow-hidden"), _v$2 = style("notificationList", "nt-relative nt-h-full nt-flex nt-flex-col nt-overflow-y-auto");
3464
- _v$ !== _p$.e && web.className(_el$3, _p$.e = _v$);
3465
- _v$2 !== _p$.t && web.className(_el$4, _p$.t = _v$2);
3924
+ var _v$ = style("notificationListContainer", "nt-relative nt-border-t nt-border-t-neutral-alpha-200 nt-h-full nt-overflow-hidden"), _v$2 = style("notificationList", "nt-relative nt-h-full nt-flex nt-flex-col nt-overflow-y-auto");
3925
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
3926
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
3466
3927
  return _p$;
3467
3928
  }, {
3468
3929
  e: void 0,
3469
3930
  t: void 0
3470
3931
  });
3471
- return _el$3;
3932
+ return _el$;
3472
3933
  })();
3473
3934
  };
3474
- var _tmpl$48 = /* @__PURE__ */ web.template(`<span>`);
3935
+ var _tmpl$50 = /* @__PURE__ */ web.template(`<span>`);
3475
3936
  var getDisplayCount = (count) => count >= 100 ? "99+" : count;
3476
3937
  var InboxTabUnreadNotificationsCount = (props) => {
3477
3938
  const style = useStyle();
3478
3939
  const displayCount = solidJs.createMemo(() => getDisplayCount(props.count));
3479
3940
  return (() => {
3480
- var _el$ = _tmpl$48();
3941
+ var _el$ = _tmpl$50();
3481
3942
  web.insert(_el$, displayCount);
3482
3943
  web.effect(() => web.className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
3483
3944
  return _el$;
@@ -3502,7 +3963,7 @@ var InboxTab = (props) => {
3502
3963
  },
3503
3964
  get children() {
3504
3965
  return [(() => {
3505
- var _el$2 = _tmpl$48();
3966
+ var _el$2 = _tmpl$50();
3506
3967
  web.insert(_el$2, () => props.label);
3507
3968
  web.effect(() => web.className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
3508
3969
  return _el$2;
@@ -3540,7 +4001,7 @@ var InboxDropdownTab = (props) => {
3540
4001
  },
3541
4002
  get children() {
3542
4003
  return [(() => {
3543
- var _el$3 = _tmpl$48();
4004
+ var _el$3 = _tmpl$50();
3544
4005
  web.insert(_el$3, () => props.label);
3545
4006
  web.effect(() => web.className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
3546
4007
  return _el$3;
@@ -3559,38 +4020,9 @@ var InboxDropdownTab = (props) => {
3559
4020
  }
3560
4021
  });
3561
4022
  };
3562
- var useTabsDropdown = ({ tabs }) => {
3563
- const [tabsList, setTabsList] = solidJs.createSignal();
3564
- const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
3565
- const [dropdownTabs, setDropdownTabs] = solidJs.createSignal([]);
3566
- solidJs.onMount(() => {
3567
- const tabsListEl = tabsList();
3568
- if (!tabsListEl) return;
3569
- const tabsElements = [...tabsListEl.querySelectorAll('[role="tab"]')];
3570
- const observer = new IntersectionObserver(
3571
- (entries) => {
3572
- let visibleTabIds = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio === 1).map((entry) => entry.target.id);
3573
- if (tabsElements.length === visibleTabIds.length) {
3574
- setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
3575
- observer.disconnect();
3576
- return;
3577
- }
3578
- visibleTabIds = visibleTabIds.slice(0, -1);
3579
- setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
3580
- setDropdownTabs(tabs.filter((tab) => !visibleTabIds.includes(tab.label)));
3581
- observer.disconnect();
3582
- },
3583
- { root: tabsListEl }
3584
- );
3585
- for (const tabElement of tabsElements) {
3586
- observer.observe(tabElement);
3587
- }
3588
- });
3589
- return { dropdownTabs, setTabsList, visibleTabs };
3590
- };
3591
4023
 
3592
4024
  // src/ui/components/InboxTabs/InboxTabs.tsx
3593
- var tabsDropdownTriggerVariants = () => `nt-relative after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px] after:nt-border-b-2 nt-pb-[0.625rem]`;
4025
+ var tabsDropdownTriggerVariants = () => `nt-relative after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px] after:nt-border-b-2 nt-mb-[0.625rem]`;
3594
4026
  var InboxTabs = (props) => {
3595
4027
  const style = useStyle();
3596
4028
  const {
@@ -3614,16 +4046,15 @@ var InboxTabs = (props) => {
3614
4046
  const options = solidJs.createMemo(() => dropdownTabs().map((tab) => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, tab), {
3615
4047
  rightIcon: tab.label === activeTab() ? web.createComponent(Check, {
3616
4048
  get ["class"]() {
3617
- return style("moreTabs__dropdownItemRight__icon");
4049
+ return style("moreTabs__dropdownItemRight__icon", "nt-size-3");
3618
4050
  }
3619
4051
  }) : void 0
3620
4052
  })));
3621
4053
  const dropdownTabsUnreadSum = solidJs.createMemo(() => dropdownTabsUnreadCounts().reduce((accumulator, currentValue) => accumulator + currentValue, 0));
3622
4054
  const isTabsDropdownActive = solidJs.createMemo(() => dropdownTabs().map((tab) => tab.label).includes(activeTab()));
3623
4055
  return web.createComponent(Tabs.Root, {
3624
- get ["class"]() {
3625
- return style("notificationsTabs__tabsRoot", cn(tabsRootVariants(), "nt-flex-1 nt-overflow-hidden"));
3626
- },
4056
+ appearanceKey: "notificationsTabs__tabsRoot",
4057
+ "class": "nt-flex nt-flex-col nt-flex-1 nt-min-h-0",
3627
4058
  get value() {
3628
4059
  return activeTab();
3629
4060
  },
@@ -3637,6 +4068,7 @@ var InboxTabs = (props) => {
3637
4068
  return web.createComponent(Tabs.List, {
3638
4069
  ref: setTabsList,
3639
4070
  appearanceKey: "notificationsTabs__tabsList",
4071
+ "class": "nt-bg-neutral-alpha-25 nt-px-4",
3640
4072
  get children() {
3641
4073
  return props.tabs.map((tab) => web.createComponent(InboxTab, web.mergeProps(tab, {
3642
4074
  "class": "nt-invisible"
@@ -3647,30 +4079,34 @@ var InboxTabs = (props) => {
3647
4079
  get children() {
3648
4080
  return web.createComponent(Tabs.List, {
3649
4081
  appearanceKey: "notificationsTabs__tabsList",
4082
+ "class": "nt-bg-neutral-alpha-25 nt-px-4",
3650
4083
  get children() {
3651
- return [web.memo(() => visibleTabs().map((tab) => web.createComponent(InboxTab, tab))), web.createComponent(solidJs.Show, {
4084
+ return [web.createComponent(solidJs.For, {
4085
+ get each() {
4086
+ return visibleTabs();
4087
+ },
4088
+ children: (tab) => web.createComponent(InboxTab, tab)
4089
+ }), web.createComponent(solidJs.Show, {
3652
4090
  get when() {
3653
4091
  return dropdownTabs().length > 0;
3654
4092
  },
3655
4093
  get children() {
3656
4094
  return web.createComponent(Dropdown.Root, {
3657
- fallbackPlacements: ["bottom", "top"],
3658
- placement: "bottom-start",
3659
4095
  get children() {
3660
4096
  return [web.createComponent(Dropdown.Trigger, {
3661
4097
  appearanceKey: "moreTabs__dropdownTrigger",
3662
4098
  asChild: (triggerProps) => web.createComponent(Button, web.mergeProps({
3663
4099
  variant: "unstyled",
3664
- size: "none",
4100
+ size: "iconSm",
3665
4101
  appearanceKey: "moreTabs__button"
3666
4102
  }, triggerProps, {
3667
4103
  get ["class"]() {
3668
- return cn(tabsDropdownTriggerVariants(), isTabsDropdownActive() ? "after:nt-border-b-primary" : "after:nt-border-b-transparent nt-text-foreground-alpha-600");
4104
+ return cn(tabsDropdownTriggerVariants(), "nt-ml-auto", isTabsDropdownActive() ? "after:nt-border-b-primary" : "after:nt-border-b-transparent nt-text-foreground-alpha-700");
3669
4105
  },
3670
4106
  get children() {
3671
- return [web.createComponent(Dots, {
4107
+ return [web.createComponent(ArrowDown, {
3672
4108
  get ["class"]() {
3673
- return style("moreTabs__dots");
4109
+ return style("moreTabs__icon", "nt-size-5");
3674
4110
  }
3675
4111
  }), web.createComponent(solidJs.Show, {
3676
4112
  get when() {
@@ -3711,13 +4147,19 @@ var InboxTabs = (props) => {
3711
4147
  return tab.label;
3712
4148
  },
3713
4149
  get ["class"]() {
3714
- return style("notificationsTabs__tabsContent", cn(activeTab() === tab.label ? "nt-block" : "nt-hidden", "nt-flex-1 nt-overflow-hidden"));
4150
+ return style("notificationsTabs__tabsContent", cn(activeTab() === tab.label ? "nt-block" : "nt-hidden", "nt-overflow-auto nt-flex-1 nt-flex nt-flex-col nt-min-h-0"));
3715
4151
  },
3716
4152
  get children() {
3717
4153
  return web.createComponent(NotificationList, {
3718
4154
  get renderNotification() {
3719
4155
  return props.renderNotification;
3720
4156
  },
4157
+ get renderSubject() {
4158
+ return props.renderSubject;
4159
+ },
4160
+ get renderBody() {
4161
+ return props.renderBody;
4162
+ },
3721
4163
  get onNotificationClick() {
3722
4164
  return props.onNotificationClick;
3723
4165
  },
@@ -3740,7 +4182,7 @@ var InboxTabs = (props) => {
3740
4182
  };
3741
4183
 
3742
4184
  // src/ui/components/Inbox.tsx
3743
- var _tmpl$49 = /* @__PURE__ */ web.template(`<div>`);
4185
+ var _tmpl$51 = /* @__PURE__ */ web.template(`<div>`);
3744
4186
  var InboxPage = /* @__PURE__ */ function(InboxPage2) {
3745
4187
  InboxPage2["Notifications"] = "notifications";
3746
4188
  InboxPage2["Preferences"] = "preferences";
@@ -3762,7 +4204,7 @@ var InboxContent = (props) => {
3762
4204
  };
3763
4205
  });
3764
4206
  return (() => {
3765
- var _el$ = _tmpl$49();
4207
+ var _el$ = _tmpl$51();
3766
4208
  web.insert(_el$, web.createComponent(solidJs.Switch, {
3767
4209
  get children() {
3768
4210
  return [web.createComponent(solidJs.Match, {
@@ -3784,6 +4226,12 @@ var InboxContent = (props) => {
3784
4226
  get renderNotification() {
3785
4227
  return props.renderNotification;
3786
4228
  },
4229
+ get renderSubject() {
4230
+ return props.renderSubject;
4231
+ },
4232
+ get renderBody() {
4233
+ return props.renderBody;
4234
+ },
3787
4235
  get onNotificationClick() {
3788
4236
  return props.onNotificationClick;
3789
4237
  },
@@ -3803,6 +4251,12 @@ var InboxContent = (props) => {
3803
4251
  get renderNotification() {
3804
4252
  return props.renderNotification;
3805
4253
  },
4254
+ get renderSubject() {
4255
+ return props.renderSubject;
4256
+ },
4257
+ get renderBody() {
4258
+ return props.renderBody;
4259
+ },
3806
4260
  get onNotificationClick() {
3807
4261
  return props.onNotificationClick;
3808
4262
  },
@@ -3838,7 +4292,7 @@ var InboxContent = (props) => {
3838
4292
  return _el$;
3839
4293
  })();
3840
4294
  };
3841
- var Inbox2 = (props) => {
4295
+ var Inbox = (props) => {
3842
4296
  const style = useStyle();
3843
4297
  const {
3844
4298
  isOpened,
@@ -3869,7 +4323,7 @@ var Inbox2 = (props) => {
3869
4323
  size: "icon"
3870
4324
  }, triggerProps, {
3871
4325
  get children() {
3872
- return web.createComponent(Bell, {
4326
+ return web.createComponent(Bell2, {
3873
4327
  get renderBell() {
3874
4328
  return props.renderBell;
3875
4329
  }
@@ -3880,18 +4334,44 @@ var Inbox2 = (props) => {
3880
4334
  appearanceKey: "inbox__popoverContent",
3881
4335
  portal: true,
3882
4336
  get children() {
3883
- return web.createComponent(InboxContent, {
3884
- get renderNotification() {
4337
+ return web.createComponent(solidJs.Show, {
4338
+ get when() {
3885
4339
  return props.renderNotification;
3886
4340
  },
3887
- get onNotificationClick() {
3888
- return props.onNotificationClick;
3889
- },
3890
- get onPrimaryActionClick() {
3891
- return props.onPrimaryActionClick;
4341
+ get fallback() {
4342
+ return web.createComponent(InboxContent, {
4343
+ get renderSubject() {
4344
+ return props.renderSubject;
4345
+ },
4346
+ get renderBody() {
4347
+ return props.renderBody;
4348
+ },
4349
+ get onNotificationClick() {
4350
+ return props.onNotificationClick;
4351
+ },
4352
+ get onPrimaryActionClick() {
4353
+ return props.onPrimaryActionClick;
4354
+ },
4355
+ get onSecondaryActionClick() {
4356
+ return props.onSecondaryActionClick;
4357
+ }
4358
+ });
3892
4359
  },
3893
- get onSecondaryActionClick() {
3894
- return props.onSecondaryActionClick;
4360
+ get children() {
4361
+ return web.createComponent(InboxContent, {
4362
+ get renderNotification() {
4363
+ return props.renderNotification;
4364
+ },
4365
+ get onNotificationClick() {
4366
+ return props.onNotificationClick;
4367
+ },
4368
+ get onPrimaryActionClick() {
4369
+ return props.onPrimaryActionClick;
4370
+ },
4371
+ get onSecondaryActionClick() {
4372
+ return props.onSecondaryActionClick;
4373
+ }
4374
+ });
3895
4375
  }
3896
4376
  });
3897
4377
  }
@@ -3902,21 +4382,55 @@ var Inbox2 = (props) => {
3902
4382
 
3903
4383
  // src/ui/components/Renderer.tsx
3904
4384
  var novuComponents = {
3905
- Inbox: Inbox2,
4385
+ Inbox,
3906
4386
  InboxContent,
3907
- Bell,
3908
- Notifications: (props) => web.createComponent(InboxContent, web.mergeProps(props, {
3909
- hideNav: true,
3910
- get initialPage() {
3911
- return InboxPage.Notifications;
4387
+ Bell: Bell2,
4388
+ Notifications: (props) => {
4389
+ if (props.renderNotification) {
4390
+ const _a = props, propsWithoutBodyAndSubject = chunk7B52C2XE_js.__objRest(_a, [
4391
+ "renderBody",
4392
+ "renderSubject"
4393
+ ]);
4394
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutBodyAndSubject, {
4395
+ hideNav: true,
4396
+ get initialPage() {
4397
+ return InboxPage.Notifications;
4398
+ }
4399
+ }));
3912
4400
  }
3913
- })),
3914
- Preferences: (props) => web.createComponent(InboxContent, web.mergeProps(props, {
3915
- hideNav: true,
3916
- get initialPage() {
3917
- return InboxPage.Preferences;
4401
+ const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
4402
+ "renderNotification"
4403
+ ]);
4404
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
4405
+ hideNav: true,
4406
+ get initialPage() {
4407
+ return InboxPage.Notifications;
4408
+ }
4409
+ }));
4410
+ },
4411
+ Preferences: (props) => {
4412
+ if (props.renderNotification) {
4413
+ const _a = props, propsWithoutBodyAndSubject = chunk7B52C2XE_js.__objRest(_a, [
4414
+ "renderBody",
4415
+ "renderSubject"
4416
+ ]);
4417
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutBodyAndSubject, {
4418
+ hideNav: true,
4419
+ get initialPage() {
4420
+ return InboxPage.Preferences;
4421
+ }
4422
+ }));
3918
4423
  }
3919
- }))
4424
+ const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
4425
+ "renderNotification"
4426
+ ]);
4427
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
4428
+ hideNav: true,
4429
+ get initialPage() {
4430
+ return InboxPage.Preferences;
4431
+ }
4432
+ }));
4433
+ }
3920
4434
  };
3921
4435
  var Renderer = (props) => {
3922
4436
  const nodes = () => [...props.nodes.keys()];
@@ -3981,11 +4495,13 @@ var Renderer = (props) => {
3981
4495
  let portalDivElement;
3982
4496
  const Component = novuComponents[novuComponent().name];
3983
4497
  solidJs.onMount(() => {
3984
- if (!["Notifications", "Preferences"].includes(novuComponent().name)) return;
4498
+ if (!["Notifications", "Preferences", "InboxContent"].includes(novuComponent().name)) return;
3985
4499
  if (node instanceof HTMLElement) {
3986
- node.classList.add("nt-h-full");
4500
+ node.style.height = "100%";
4501
+ }
4502
+ if (portalDivElement) {
4503
+ portalDivElement.style.height = "100%";
3987
4504
  }
3988
- portalDivElement.classList.add("nt-h-full");
3989
4505
  });
3990
4506
  return web.createComponent(web.Portal, {
3991
4507
  mount: node,
@@ -4015,7 +4531,7 @@ var Renderer = (props) => {
4015
4531
  }
4016
4532
  });
4017
4533
  };
4018
- var version = "2.6.6";
4534
+ var version = "3.0.0-canary.0";
4019
4535
  var cssHref = `https://cdn.jsdelivr.net/npm/@novu/js@${version}/dist/index.css`;
4020
4536
  var _dispose, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _routerPush, _setRouterPush, _preferencesFilter, _setPreferencesFilter, _predefinedNovu, _NovuUI_instances, mountComponentRenderer_fn, updateComponentProps_fn;
4021
4537
  var NovuUI = class {