@novu/js 2.5.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chunk-RK2WRT5F.js → chunk-R7DABK4G.js} +118 -67
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +14 -14
- package/dist/{esm/novu-iUKr-1Nj.d.mts → cjs/novu-C3OVXS9Q.d.ts} +31 -29
- package/dist/cjs/themes/index.d.ts +2 -2
- package/dist/cjs/{types-G05b9m65.d.ts → types-Bg3djGZK.d.ts} +1 -1
- package/dist/cjs/ui/index.d.ts +4 -4
- package/dist/cjs/ui/index.js +8 -8
- package/dist/esm/{chunk-YGB4AV4G.mjs → chunk-BGMSCE2S.mjs} +118 -67
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/{cjs/novu-iUKr-1Nj.d.ts → esm/novu-C3OVXS9Q.d.mts} +31 -29
- package/dist/esm/themes/index.d.mts +2 -2
- package/dist/esm/{types-fTgZAefu.d.mts → types-Cuys78dx.d.mts} +1 -1
- package/dist/esm/ui/index.d.mts +4 -4
- package/dist/esm/ui/index.mjs +5 -5
- package/dist/index.css +1 -1
- package/dist/novu.min.js +10 -10
- package/dist/novu.min.js.gz +0 -0
- package/package.json +29 -27
|
@@ -816,7 +816,8 @@ var Notifications = class extends BaseModule {
|
|
|
816
816
|
return this.callWithSession(() => __async(this, null, function* () {
|
|
817
817
|
const args = __spreadValues({ limit }, restOptions);
|
|
818
818
|
try {
|
|
819
|
-
|
|
819
|
+
const shouldUseCache = "useCache" in args ? args.useCache : __privateGet(this, _useCache);
|
|
820
|
+
let data = shouldUseCache ? this.cache.getAll(args) : void 0;
|
|
820
821
|
this._emitter.emit("notifications.list.pending", { args, data });
|
|
821
822
|
if (!data) {
|
|
822
823
|
const response = yield this._inboxService.fetchNotifications(__spreadValues({
|
|
@@ -827,7 +828,7 @@ var Notifications = class extends BaseModule {
|
|
|
827
828
|
filter: response.filter,
|
|
828
829
|
notifications: response.data.map((el) => new Notification(el, this._emitter, this._inboxService))
|
|
829
830
|
};
|
|
830
|
-
if (
|
|
831
|
+
if (shouldUseCache) {
|
|
831
832
|
this.cache.set(args, data);
|
|
832
833
|
data = this.cache.getAll(args);
|
|
833
834
|
}
|
|
@@ -1054,44 +1055,12 @@ _emitter3 = new WeakMap();
|
|
|
1054
1055
|
_inboxService2 = new WeakMap();
|
|
1055
1056
|
_options = new WeakMap();
|
|
1056
1057
|
|
|
1057
|
-
// src/preferences/preference.ts
|
|
1058
|
-
var _emitter4, _apiService;
|
|
1059
|
-
var Preference = class {
|
|
1060
|
-
constructor(preference, { emitterInstance, inboxServiceInstance }) {
|
|
1061
|
-
__privateAdd(this, _emitter4);
|
|
1062
|
-
__privateAdd(this, _apiService);
|
|
1063
|
-
__privateSet(this, _emitter4, emitterInstance);
|
|
1064
|
-
__privateSet(this, _apiService, inboxServiceInstance);
|
|
1065
|
-
this.level = preference.level;
|
|
1066
|
-
this.enabled = preference.enabled;
|
|
1067
|
-
this.channels = preference.channels;
|
|
1068
|
-
this.workflow = preference.workflow;
|
|
1069
|
-
}
|
|
1070
|
-
update({ channelPreferences }) {
|
|
1071
|
-
var _a;
|
|
1072
|
-
return updatePreference({
|
|
1073
|
-
emitter: __privateGet(this, _emitter4),
|
|
1074
|
-
apiService: __privateGet(this, _apiService),
|
|
1075
|
-
args: {
|
|
1076
|
-
workflowId: (_a = this.workflow) == null ? void 0 : _a.id,
|
|
1077
|
-
channelPreferences,
|
|
1078
|
-
preference: {
|
|
1079
|
-
level: this.level,
|
|
1080
|
-
enabled: this.enabled,
|
|
1081
|
-
channels: this.channels,
|
|
1082
|
-
workflow: this.workflow
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
});
|
|
1086
|
-
}
|
|
1087
|
-
};
|
|
1088
|
-
_emitter4 = new WeakMap();
|
|
1089
|
-
_apiService = new WeakMap();
|
|
1090
|
-
|
|
1091
1058
|
// src/preferences/helpers.ts
|
|
1092
1059
|
var updatePreference = (_0) => __async(void 0, [_0], function* ({
|
|
1093
1060
|
emitter,
|
|
1094
1061
|
apiService,
|
|
1062
|
+
cache,
|
|
1063
|
+
useCache,
|
|
1095
1064
|
args
|
|
1096
1065
|
}) {
|
|
1097
1066
|
const { workflowId, channelPreferences } = args;
|
|
@@ -1104,7 +1073,9 @@ var updatePreference = (_0) => __async(void 0, [_0], function* ({
|
|
|
1104
1073
|
}),
|
|
1105
1074
|
{
|
|
1106
1075
|
emitterInstance: emitter,
|
|
1107
|
-
inboxServiceInstance: apiService
|
|
1076
|
+
inboxServiceInstance: apiService,
|
|
1077
|
+
cache,
|
|
1078
|
+
useCache
|
|
1108
1079
|
}
|
|
1109
1080
|
) : void 0
|
|
1110
1081
|
});
|
|
@@ -1112,11 +1083,14 @@ var updatePreference = (_0) => __async(void 0, [_0], function* ({
|
|
|
1112
1083
|
if (workflowId) {
|
|
1113
1084
|
response = yield apiService.updateWorkflowPreferences({ workflowId, channelPreferences });
|
|
1114
1085
|
} else {
|
|
1086
|
+
optimisticUpdateWorkflowPreferences({ emitter, apiService, cache, useCache, args });
|
|
1115
1087
|
response = yield apiService.updateGlobalPreferences(channelPreferences);
|
|
1116
1088
|
}
|
|
1117
1089
|
const preference = new Preference(response, {
|
|
1118
1090
|
emitterInstance: emitter,
|
|
1119
|
-
inboxServiceInstance: apiService
|
|
1091
|
+
inboxServiceInstance: apiService,
|
|
1092
|
+
cache,
|
|
1093
|
+
useCache
|
|
1120
1094
|
});
|
|
1121
1095
|
emitter.emit("preference.update.resolved", { args, data: preference });
|
|
1122
1096
|
return { data: preference };
|
|
@@ -1125,6 +1099,90 @@ var updatePreference = (_0) => __async(void 0, [_0], function* ({
|
|
|
1125
1099
|
return { error: new NovuError("Failed to fetch notifications", error) };
|
|
1126
1100
|
}
|
|
1127
1101
|
});
|
|
1102
|
+
var optimisticUpdateWorkflowPreferences = ({
|
|
1103
|
+
emitter,
|
|
1104
|
+
apiService,
|
|
1105
|
+
cache,
|
|
1106
|
+
useCache,
|
|
1107
|
+
args
|
|
1108
|
+
}) => {
|
|
1109
|
+
const allPreferences = useCache ? cache == null ? void 0 : cache.getAll({}) : void 0;
|
|
1110
|
+
allPreferences == null ? void 0 : allPreferences.forEach((el) => {
|
|
1111
|
+
var _a;
|
|
1112
|
+
if (el.level === "template" /* TEMPLATE */) {
|
|
1113
|
+
const mergedPreference = __spreadProps(__spreadValues({}, el), {
|
|
1114
|
+
channels: Object.entries(el.channels).reduce((acc, [key, value]) => {
|
|
1115
|
+
var _a2;
|
|
1116
|
+
const channelType = key;
|
|
1117
|
+
acc[channelType] = (_a2 = args.channelPreferences[channelType]) != null ? _a2 : value;
|
|
1118
|
+
return acc;
|
|
1119
|
+
}, {})
|
|
1120
|
+
});
|
|
1121
|
+
const updatedPreference = args.preference ? new Preference(mergedPreference, {
|
|
1122
|
+
emitterInstance: emitter,
|
|
1123
|
+
inboxServiceInstance: apiService,
|
|
1124
|
+
cache,
|
|
1125
|
+
useCache
|
|
1126
|
+
}) : void 0;
|
|
1127
|
+
if (updatedPreference) {
|
|
1128
|
+
emitter.emit("preference.update.pending", {
|
|
1129
|
+
args: {
|
|
1130
|
+
workflowId: (_a = el.workflow) == null ? void 0 : _a.id,
|
|
1131
|
+
channelPreferences: updatedPreference.channels
|
|
1132
|
+
},
|
|
1133
|
+
data: updatedPreference
|
|
1134
|
+
});
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
});
|
|
1138
|
+
};
|
|
1139
|
+
|
|
1140
|
+
// src/preferences/preference.ts
|
|
1141
|
+
var _emitter4, _apiService, _cache3, _useCache2;
|
|
1142
|
+
var Preference = class {
|
|
1143
|
+
constructor(preference, {
|
|
1144
|
+
emitterInstance,
|
|
1145
|
+
inboxServiceInstance,
|
|
1146
|
+
cache,
|
|
1147
|
+
useCache
|
|
1148
|
+
}) {
|
|
1149
|
+
__privateAdd(this, _emitter4);
|
|
1150
|
+
__privateAdd(this, _apiService);
|
|
1151
|
+
__privateAdd(this, _cache3);
|
|
1152
|
+
__privateAdd(this, _useCache2);
|
|
1153
|
+
__privateSet(this, _emitter4, emitterInstance);
|
|
1154
|
+
__privateSet(this, _apiService, inboxServiceInstance);
|
|
1155
|
+
__privateSet(this, _cache3, cache);
|
|
1156
|
+
__privateSet(this, _useCache2, useCache);
|
|
1157
|
+
this.level = preference.level;
|
|
1158
|
+
this.enabled = preference.enabled;
|
|
1159
|
+
this.channels = preference.channels;
|
|
1160
|
+
this.workflow = preference.workflow;
|
|
1161
|
+
}
|
|
1162
|
+
update({ channelPreferences }) {
|
|
1163
|
+
var _a;
|
|
1164
|
+
return updatePreference({
|
|
1165
|
+
emitter: __privateGet(this, _emitter4),
|
|
1166
|
+
apiService: __privateGet(this, _apiService),
|
|
1167
|
+
cache: __privateGet(this, _cache3),
|
|
1168
|
+
useCache: __privateGet(this, _useCache2),
|
|
1169
|
+
args: {
|
|
1170
|
+
workflowId: (_a = this.workflow) == null ? void 0 : _a.id,
|
|
1171
|
+
channelPreferences,
|
|
1172
|
+
preference: {
|
|
1173
|
+
level: this.level,
|
|
1174
|
+
enabled: this.enabled,
|
|
1175
|
+
channels: this.channels,
|
|
1176
|
+
workflow: this.workflow
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
};
|
|
1182
|
+
_emitter4 = new WeakMap();
|
|
1183
|
+
_apiService = new WeakMap();
|
|
1184
|
+
_cache3 = new WeakMap();
|
|
1185
|
+
_useCache2 = new WeakMap();
|
|
1128
1186
|
|
|
1129
1187
|
// src/cache/preferences-cache.ts
|
|
1130
1188
|
var updateEvents2 = ["preference.update.pending", "preference.update.resolved"];
|
|
@@ -1138,13 +1196,13 @@ var excludeEmpty2 = ({ tags }) => Object.entries({ tags }).reduce((acc, [key, va
|
|
|
1138
1196
|
var getCacheKey2 = ({ tags }) => {
|
|
1139
1197
|
return JSON.stringify(excludeEmpty2({ tags }));
|
|
1140
1198
|
};
|
|
1141
|
-
var _emitter5,
|
|
1199
|
+
var _emitter5, _cache4;
|
|
1142
1200
|
var PreferencesCache = class {
|
|
1143
1201
|
constructor({ emitterInstance }) {
|
|
1144
1202
|
__privateAdd(this, _emitter5);
|
|
1145
|
-
__privateAdd(this,
|
|
1203
|
+
__privateAdd(this, _cache4);
|
|
1146
1204
|
this.updatePreference = (key, data) => {
|
|
1147
|
-
const preferences = __privateGet(this,
|
|
1205
|
+
const preferences = __privateGet(this, _cache4).get(key);
|
|
1148
1206
|
if (!preferences) {
|
|
1149
1207
|
return false;
|
|
1150
1208
|
}
|
|
@@ -1159,16 +1217,16 @@ var PreferencesCache = class {
|
|
|
1159
1217
|
}
|
|
1160
1218
|
const updatedPreferences = [...preferences];
|
|
1161
1219
|
updatedPreferences[index] = data;
|
|
1162
|
-
__privateGet(this,
|
|
1220
|
+
__privateGet(this, _cache4).set(key, updatedPreferences);
|
|
1163
1221
|
return true;
|
|
1164
1222
|
};
|
|
1165
1223
|
this.handlePreferenceEvent = ({ data }) => {
|
|
1166
1224
|
if (!data) {
|
|
1167
1225
|
return;
|
|
1168
1226
|
}
|
|
1169
|
-
__privateGet(this,
|
|
1227
|
+
__privateGet(this, _cache4).keys().forEach((key) => {
|
|
1170
1228
|
const hasUpdatedPreference = this.updatePreference(key, data);
|
|
1171
|
-
const updatedPreference = __privateGet(this,
|
|
1229
|
+
const updatedPreference = __privateGet(this, _cache4).get(key);
|
|
1172
1230
|
if (!hasUpdatedPreference || !updatedPreference) {
|
|
1173
1231
|
return;
|
|
1174
1232
|
}
|
|
@@ -1181,28 +1239,28 @@ var PreferencesCache = class {
|
|
|
1181
1239
|
updateEvents2.forEach((event) => {
|
|
1182
1240
|
__privateGet(this, _emitter5).on(event, this.handlePreferenceEvent);
|
|
1183
1241
|
});
|
|
1184
|
-
__privateSet(this,
|
|
1242
|
+
__privateSet(this, _cache4, new InMemoryCache());
|
|
1185
1243
|
}
|
|
1186
1244
|
has(args) {
|
|
1187
|
-
return __privateGet(this,
|
|
1245
|
+
return __privateGet(this, _cache4).get(getCacheKey2(args)) !== void 0;
|
|
1188
1246
|
}
|
|
1189
1247
|
set(args, data) {
|
|
1190
|
-
__privateGet(this,
|
|
1248
|
+
__privateGet(this, _cache4).set(getCacheKey2(args), data);
|
|
1191
1249
|
}
|
|
1192
1250
|
getAll(args) {
|
|
1193
1251
|
if (this.has(args)) {
|
|
1194
|
-
return __privateGet(this,
|
|
1252
|
+
return __privateGet(this, _cache4).get(getCacheKey2(args));
|
|
1195
1253
|
}
|
|
1196
1254
|
}
|
|
1197
1255
|
clearAll() {
|
|
1198
|
-
__privateGet(this,
|
|
1256
|
+
__privateGet(this, _cache4).clear();
|
|
1199
1257
|
}
|
|
1200
1258
|
};
|
|
1201
1259
|
_emitter5 = new WeakMap();
|
|
1202
|
-
|
|
1260
|
+
_cache4 = new WeakMap();
|
|
1203
1261
|
|
|
1204
1262
|
// src/preferences/preferences.ts
|
|
1205
|
-
var
|
|
1263
|
+
var _useCache3;
|
|
1206
1264
|
var Preferences = class extends BaseModule {
|
|
1207
1265
|
constructor({
|
|
1208
1266
|
useCache,
|
|
@@ -1213,27 +1271,29 @@ var Preferences = class extends BaseModule {
|
|
|
1213
1271
|
eventEmitterInstance,
|
|
1214
1272
|
inboxServiceInstance
|
|
1215
1273
|
});
|
|
1216
|
-
__privateAdd(this,
|
|
1274
|
+
__privateAdd(this, _useCache3);
|
|
1217
1275
|
this.cache = new PreferencesCache({
|
|
1218
1276
|
emitterInstance: this._emitter
|
|
1219
1277
|
});
|
|
1220
|
-
__privateSet(this,
|
|
1278
|
+
__privateSet(this, _useCache3, useCache);
|
|
1221
1279
|
}
|
|
1222
1280
|
list() {
|
|
1223
1281
|
return __async(this, arguments, function* (args = {}) {
|
|
1224
1282
|
return this.callWithSession(() => __async(this, null, function* () {
|
|
1225
1283
|
try {
|
|
1226
|
-
let data = __privateGet(this,
|
|
1284
|
+
let data = __privateGet(this, _useCache3) ? this.cache.getAll(args) : void 0;
|
|
1227
1285
|
this._emitter.emit("preferences.list.pending", { args, data });
|
|
1228
1286
|
if (!data) {
|
|
1229
1287
|
const response = yield this._inboxService.fetchPreferences(args.tags);
|
|
1230
1288
|
data = response.map(
|
|
1231
1289
|
(el) => new Preference(el, {
|
|
1232
1290
|
emitterInstance: this._emitter,
|
|
1233
|
-
inboxServiceInstance: this._inboxService
|
|
1291
|
+
inboxServiceInstance: this._inboxService,
|
|
1292
|
+
cache: this.cache,
|
|
1293
|
+
useCache: __privateGet(this, _useCache3)
|
|
1234
1294
|
})
|
|
1235
1295
|
);
|
|
1236
|
-
if (__privateGet(this,
|
|
1296
|
+
if (__privateGet(this, _useCache3)) {
|
|
1237
1297
|
this.cache.set(args, data);
|
|
1238
1298
|
data = this.cache.getAll(args);
|
|
1239
1299
|
}
|
|
@@ -1247,17 +1307,8 @@ var Preferences = class extends BaseModule {
|
|
|
1247
1307
|
}));
|
|
1248
1308
|
});
|
|
1249
1309
|
}
|
|
1250
|
-
update(args) {
|
|
1251
|
-
return __async(this, null, function* () {
|
|
1252
|
-
return this.callWithSession(
|
|
1253
|
-
() => __async(this, null, function* () {
|
|
1254
|
-
return updatePreference({ emitter: this._emitter, apiService: this._inboxService, args });
|
|
1255
|
-
})
|
|
1256
|
-
);
|
|
1257
|
-
});
|
|
1258
|
-
}
|
|
1259
1310
|
};
|
|
1260
|
-
|
|
1311
|
+
_useCache3 = new WeakMap();
|
|
1261
1312
|
var PRODUCTION_SOCKET_URL = "https://ws.novu.co";
|
|
1262
1313
|
var NOTIFICATION_RECEIVED = "notifications.notification_received";
|
|
1263
1314
|
var UNSEEN_COUNT_CHANGED = "notifications.unseen_count_changed";
|
|
@@ -1535,7 +1586,7 @@ var InboxService = class {
|
|
|
1535
1586
|
_httpClient = new WeakMap();
|
|
1536
1587
|
|
|
1537
1588
|
// src/novu.ts
|
|
1538
|
-
var version = "2.
|
|
1589
|
+
var version = "2.6.0";
|
|
1539
1590
|
var name = "@novu/js";
|
|
1540
1591
|
var userAgent = `${name}@${version}`;
|
|
1541
1592
|
var _emitter7, _session, _socket, _inboxService3;
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NotificationFilter } from './novu-
|
|
2
|
-
export { k as Action, A as ActionTypeEnum, m as ChannelPreference, f as ChannelType, C as CtaType, E as EventHandler, a as Events, F as FiltersCountResponse, q as IPreferenceOverride, I as InboxNotification, L as ListNotificationsResponse, i as MessageAction, M as MessageButton, t as Notification, e as NotificationActionStatus, d as NotificationButton, c as NotificationStatus, b as Novu, v as NovuError, s as NovuOptions, n as PaginatedResponse, u as Preference, P as PreferenceLevel, g as PreferenceOverrideSource, p as PreferenceOverrideSourceEnum, o as PreferencesResponse, R as Redirect, r as Result, h as Session, S as SocketEventNames, j as Subscriber, T as TODO, W as WebSocketEvent, l as Workflow } from './novu-
|
|
1
|
+
import { N as NotificationFilter } from './novu-C3OVXS9Q.mjs';
|
|
2
|
+
export { k as Action, A as ActionTypeEnum, m as ChannelPreference, f as ChannelType, C as CtaType, E as EventHandler, a as Events, F as FiltersCountResponse, q as IPreferenceOverride, I as InboxNotification, L as ListNotificationsResponse, i as MessageAction, M as MessageButton, t as Notification, e as NotificationActionStatus, d as NotificationButton, c as NotificationStatus, b as Novu, v as NovuError, s as NovuOptions, n as PaginatedResponse, u as Preference, P as PreferenceLevel, g as PreferenceOverrideSource, p as PreferenceOverrideSourceEnum, o as PreferencesResponse, R as Redirect, r as Result, h as Session, S as SocketEventNames, j as Subscriber, T as TODO, W as WebSocketEvent, l as Workflow } from './novu-C3OVXS9Q.mjs';
|
|
3
3
|
import '@novu/client';
|
|
4
4
|
|
|
5
5
|
declare const areTagsEqual: (tags1?: string[], tags2?: string[]) => boolean;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ActionTypeEnum, ChannelType, CtaType, NotificationActionStatus, NotificationButton, NotificationStatus, Novu, PreferenceLevel, PreferenceOverrideSource, PreferenceOverrideSourceEnum, WebSocketEvent, areTagsEqual, isSameFilter } from './chunk-
|
|
1
|
+
export { ActionTypeEnum, ChannelType, CtaType, NotificationActionStatus, NotificationButton, NotificationStatus, Novu, PreferenceLevel, PreferenceOverrideSource, PreferenceOverrideSourceEnum, WebSocketEvent, areTagsEqual, isSameFilter } from './chunk-BGMSCE2S.mjs';
|
|
2
2
|
import './chunk-STZMOEWR.mjs';
|
|
@@ -5,6 +5,33 @@ declare class NovuError extends Error {
|
|
|
5
5
|
constructor(message: string, originalError: unknown);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
type ListPreferencesArgs = {
|
|
9
|
+
tags?: string[];
|
|
10
|
+
};
|
|
11
|
+
type UpdatePreferencesArgs = {
|
|
12
|
+
workflowId?: string;
|
|
13
|
+
channelPreferences: ChannelPreference;
|
|
14
|
+
preference?: {
|
|
15
|
+
level: PreferenceLevel;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
channels: ChannelPreference;
|
|
18
|
+
workflow?: Workflow;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
declare class PreferencesCache {
|
|
23
|
+
#private;
|
|
24
|
+
constructor({ emitterInstance }: {
|
|
25
|
+
emitterInstance: NovuEventEmitter;
|
|
26
|
+
});
|
|
27
|
+
private updatePreference;
|
|
28
|
+
private handlePreferenceEvent;
|
|
29
|
+
has(args: ListPreferencesArgs): boolean;
|
|
30
|
+
set(args: ListPreferencesArgs, data: Preference[]): void;
|
|
31
|
+
getAll(args: ListPreferencesArgs): Preference[] | undefined;
|
|
32
|
+
clearAll(): void;
|
|
33
|
+
}
|
|
34
|
+
|
|
8
35
|
type PreferenceLike = Pick<Preference, 'level' | 'enabled' | 'channels' | 'workflow'>;
|
|
9
36
|
declare class Preference {
|
|
10
37
|
#private;
|
|
@@ -12,9 +39,11 @@ declare class Preference {
|
|
|
12
39
|
readonly enabled: boolean;
|
|
13
40
|
readonly channels: ChannelPreference;
|
|
14
41
|
readonly workflow?: Workflow;
|
|
15
|
-
constructor(preference: PreferenceLike, { emitterInstance, inboxServiceInstance }: {
|
|
42
|
+
constructor(preference: PreferenceLike, { emitterInstance, inboxServiceInstance, cache, useCache, }: {
|
|
16
43
|
emitterInstance: NovuEventEmitter;
|
|
17
44
|
inboxServiceInstance: InboxService;
|
|
45
|
+
cache: PreferencesCache;
|
|
46
|
+
useCache: boolean;
|
|
18
47
|
});
|
|
19
48
|
update({ channelPreferences }: {
|
|
20
49
|
channelPreferences: ChannelPreference;
|
|
@@ -293,6 +322,7 @@ type ListNotificationsArgs = {
|
|
|
293
322
|
limit?: number;
|
|
294
323
|
after?: string;
|
|
295
324
|
offset?: number;
|
|
325
|
+
useCache?: boolean;
|
|
296
326
|
};
|
|
297
327
|
type ListNotificationsResponse = {
|
|
298
328
|
notifications: Notification[];
|
|
@@ -399,20 +429,6 @@ declare class Notifications extends BaseModule {
|
|
|
399
429
|
}): void;
|
|
400
430
|
}
|
|
401
431
|
|
|
402
|
-
type ListPreferencesArgs = {
|
|
403
|
-
tags?: string[];
|
|
404
|
-
};
|
|
405
|
-
type UpdatePreferencesArgs = {
|
|
406
|
-
workflowId?: string;
|
|
407
|
-
channelPreferences: ChannelPreference;
|
|
408
|
-
preference?: {
|
|
409
|
-
level: PreferenceLevel;
|
|
410
|
-
enabled: boolean;
|
|
411
|
-
channels: ChannelPreference;
|
|
412
|
-
workflow?: Workflow;
|
|
413
|
-
};
|
|
414
|
-
};
|
|
415
|
-
|
|
416
432
|
type InitializeSessionArgs = {
|
|
417
433
|
applicationIdentifier: string;
|
|
418
434
|
subscriberId: string;
|
|
@@ -504,19 +520,6 @@ declare class NovuEventEmitter {
|
|
|
504
520
|
emit<Key extends EventNames>(type: Key, event?: Events[Key]): void;
|
|
505
521
|
}
|
|
506
522
|
|
|
507
|
-
declare class PreferencesCache {
|
|
508
|
-
#private;
|
|
509
|
-
constructor({ emitterInstance }: {
|
|
510
|
-
emitterInstance: NovuEventEmitter;
|
|
511
|
-
});
|
|
512
|
-
private updatePreference;
|
|
513
|
-
private handlePreferenceEvent;
|
|
514
|
-
has(args: ListPreferencesArgs): boolean;
|
|
515
|
-
set(args: ListPreferencesArgs, data: Preference[]): void;
|
|
516
|
-
getAll(args: ListPreferencesArgs): Preference[] | undefined;
|
|
517
|
-
clearAll(): void;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
523
|
declare class Preferences extends BaseModule {
|
|
521
524
|
#private;
|
|
522
525
|
readonly cache: PreferencesCache;
|
|
@@ -526,7 +529,6 @@ declare class Preferences extends BaseModule {
|
|
|
526
529
|
eventEmitterInstance: NovuEventEmitter;
|
|
527
530
|
});
|
|
528
531
|
list(args?: ListPreferencesArgs): Result<Preference[]>;
|
|
529
|
-
update(args: UpdatePreferencesArgs): Result<Preference>;
|
|
530
532
|
}
|
|
531
533
|
|
|
532
534
|
declare class Novu implements Pick<NovuEventEmitter, 'on'> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Notification, N as NotificationFilter, s as NovuOptions, b as Novu } from './novu-
|
|
1
|
+
import { t as Notification, N as NotificationFilter, s as NovuOptions, b as Novu } from './novu-C3OVXS9Q.mjs';
|
|
2
2
|
|
|
3
3
|
declare const defaultLocalization: {
|
|
4
4
|
readonly locale: "en-US";
|
package/dist/esm/ui/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as NovuOptions } from '../novu-
|
|
2
|
-
export { t as Notification } from '../novu-
|
|
3
|
-
import { N as NotificationRenderer, B as BellRenderer, a as NotificationClickHandler, b as NotificationActionClickHandler, c as NovuProviderProps, d as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, R as RouterPush } from '../types-
|
|
4
|
-
export { e as AppearanceKey, C as CSSProperties, E as ElementStyles, f as Elements, i as LocalizationKey, h as NotificationStatus, g as Theme, V as Variables } from '../types-
|
|
1
|
+
import { s as NovuOptions } from '../novu-C3OVXS9Q.mjs';
|
|
2
|
+
export { t as Notification } from '../novu-C3OVXS9Q.mjs';
|
|
3
|
+
import { N as NotificationRenderer, B as BellRenderer, a as NotificationClickHandler, b as NotificationActionClickHandler, c as NovuProviderProps, d as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, R as RouterPush } from '../types-Cuys78dx.mjs';
|
|
4
|
+
export { e as AppearanceKey, C as CSSProperties, E as ElementStyles, f as Elements, i as LocalizationKey, h as NotificationStatus, g as Theme, V as Variables } from '../types-Cuys78dx.mjs';
|
|
5
5
|
import * as solid_js from 'solid-js';
|
|
6
6
|
import { ComponentProps } from 'solid-js';
|
|
7
7
|
import { MountableElement } from 'solid-js/web';
|
package/dist/esm/ui/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Novu, isSameFilter } from '../chunk-
|
|
1
|
+
import { Novu, isSameFilter } from '../chunk-BGMSCE2S.mjs';
|
|
2
2
|
import { parseMarkdownIntoTokens } from '../chunk-GPV65U5R.mjs';
|
|
3
3
|
import { __privateAdd, __privateSet, __privateMethod, __privateGet, __spreadProps, __spreadValues, __objRest, __async } from '../chunk-STZMOEWR.mjs';
|
|
4
4
|
import { delegateEvents, createComponent, mergeProps, render, Portal, spread, template, insert, memo, effect, className, use, addEventListener, setAttribute, Dynamic, isServer } from 'solid-js/web';
|
|
@@ -2066,7 +2066,7 @@ var useReadAll = (props) => {
|
|
|
2066
2066
|
yield novu.notifications.readAll({ tags });
|
|
2067
2067
|
(_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
|
|
2068
2068
|
} catch (error) {
|
|
2069
|
-
(_b =
|
|
2069
|
+
(_b = void 0 ) == null ? void 0 : _b.call(props, error);
|
|
2070
2070
|
}
|
|
2071
2071
|
});
|
|
2072
2072
|
return { readAll };
|
|
@@ -2081,7 +2081,7 @@ var useArchiveAll = (props) => {
|
|
|
2081
2081
|
yield novu.notifications.archiveAll({ tags });
|
|
2082
2082
|
(_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
|
|
2083
2083
|
} catch (error) {
|
|
2084
|
-
(_b =
|
|
2084
|
+
(_b = void 0 ) == null ? void 0 : _b.call(props, error);
|
|
2085
2085
|
}
|
|
2086
2086
|
});
|
|
2087
2087
|
return { archiveAll };
|
|
@@ -2096,7 +2096,7 @@ var useArchiveAllRead = (props) => {
|
|
|
2096
2096
|
yield novu.notifications.archiveAllRead({ tags });
|
|
2097
2097
|
(_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
|
|
2098
2098
|
} catch (error) {
|
|
2099
|
-
(_b =
|
|
2099
|
+
(_b = void 0 ) == null ? void 0 : _b.call(props, error);
|
|
2100
2100
|
}
|
|
2101
2101
|
});
|
|
2102
2102
|
return { archiveAllRead };
|
|
@@ -3992,7 +3992,7 @@ var Renderer = (props) => {
|
|
|
3992
3992
|
}
|
|
3993
3993
|
});
|
|
3994
3994
|
};
|
|
3995
|
-
var version = "2.
|
|
3995
|
+
var version = "2.6.0";
|
|
3996
3996
|
var cssHref = `https://cdn.jsdelivr.net/npm/@novu/js@${version}/dist/index.css`;
|
|
3997
3997
|
var _dispose, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _routerPush, _setRouterPush, _preferencesFilter, _setPreferencesFilter, _predefinedNovu, _NovuUI_instances, mountComponentRenderer_fn, updateComponentProps_fn;
|
|
3998
3998
|
var NovuUI = class {
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box",;background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-right-0{right:0}.nt-right-2{right:.5rem}.nt-top-0{top:0}.nt-top-2{top:.5rem}.nt-z-10{z-index:10}.nt-z-\[-1\]{z-index:-1}.nt-float-right{float:right}.nt-m-auto{margin:auto}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt-ml-1{margin-left:.25rem}.nt-mr-auto{margin-right:auto}.nt-mt-4{margin-top:1rem}.nt-mt-\[-0\.25rem\]{margin-top:-.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\.5{height:.625rem;width:.625rem}.nt-size-8{height:2rem;width:2rem}.nt-h-10{height:2.5rem}.nt-h-11{height:2.75rem}.nt-h-3{height:.75rem}.nt-h-6{height:1.5rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-\[600px\]{height:600px}.nt-h-fit{height:-moz-fit-content;height:fit-content}.nt-h-full{height:100%}.nt-w-1\/3{width:33.333333%}.nt-w-1\/4{width:25%}.nt-w-11{width:2.75rem}.nt-w-2\/3{width:66.666667%}.nt-w-6{width:1.5rem}.nt-w-\[400px\]{width:400px}.nt-w-fit{width:-moz-fit-content;width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.-nt-translate-x-\[1\.0625rem\]{--tw-translate-x:-1.0625rem}.-nt-translate-x-\[1\.0625rem\],.-nt-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-nt-translate-y-1\/2{--tw-translate-y:-50%}.nt-translate-x-1\/2{--tw-translate-x:50%}.nt-translate-x-1\/2,.nt-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-translate-y-1\/2{--tw-translate-y:50%}.nt-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes nt-pulse{50%{opacity:.5}}.nt-animate-pulse{animation:nt-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.nt-cursor-default{cursor:default}.nt-cursor-pointer{cursor:pointer}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-1{gap:.25rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-whitespace-nowrap{white-space:nowrap}.nt-rounded{border-radius:.25rem}.nt-rounded-full{border-radius:9999px}.nt-rounded-lg{border-radius:.5rem}.nt-rounded-md{border-radius:.375rem}.nt-rounded-xl{border-radius:.75rem}.nt-border{border-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-secondary{border-color:var(--nv-color-secondary)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-foreground-alpha-100{background-color:var(--nv-color-foreground-alpha-100)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-p-0{padding:0}.nt-p-0\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-4{padding:1rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-6{padding-left:1.5rem;padding-right:1.5rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\[6px\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-5{padding-bottom:1.25rem;padding-top:1.25rem}.nt-pb-3{padding-bottom:.75rem}.nt-pb-\[0\.625rem\]{padding-bottom:.625rem}.nt-pr-1{padding-right:.25rem}.nt-pr-1\.5{padding-right:.375rem}.nt-pt-9{padding-top:2.25rem}.nt-text-right{text-align:right}.nt-text-start{text-align:start}.nt-text-base{font-size:1rem;line-height:1.5rem}.nt-text-sm{font-size:.875rem;line-height:1.25rem}.nt-text-xl{font-size:1.25rem;line-height:1.75rem}.nt-text-xs{font-size:.75rem;line-height:1rem}.nt-font-medium{font-weight:500}.nt-font-semibold{font-weight:600}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-100{color:var(--nv-color-foreground-alpha-100)}.nt-text-foreground-alpha-200{color:var(--nv-color-foreground-alpha-200)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-secondary-foreground-alpha-500{color:var(--nv-color-secondary-foreground-alpha-500)}.nt-opacity-0{opacity:0}.nt-shadow-dropdown{--tw-shadow:0 5px 20px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color)}.nt-shadow-dropdown,.nt-shadow-popover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-popover{--tw-shadow:0 5px 15px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 15px 0 var(--tw-shadow-color)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-ring-offset-background{--tw-ring-offset-color:var(--nv-color-background)}.nt-backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.after\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\:nt-left-0:after{content:var(--tw-content);left:0}.after\:nt-left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:nt-top-0:after{content:var(--tw-content);top:0}.after\:nt-top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:nt-h-5:after{content:var(--tw-content);height:1.25rem}.after\:nt-h-\[2px\]:after{content:var(--tw-content);height:2px}.after\:nt-w-5:after{content:var(--tw-content);width:1.25rem}.after\:nt-w-full:after{content:var(--tw-content);width:100%}.after\:nt-rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\:nt-border:after{border-width:1px;content:var(--tw-content)}.after\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\:nt-border-neutral-alpha-400:after{border-color:var(--nv-color-neutral-alpha-400);content:var(--tw-content)}.after\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:nt-duration-200:after{transition-duration:.2s}.after\:nt-content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\:nt-bg-foreground-alpha-50:hover{background-color:var(--nv-color-foreground-alpha-50)}.hover\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\:nt-bg-primary-alpha-900:hover{background-color:var(--nv-color-primary-alpha-900)}.hover\:nt-bg-secondary-alpha-800:hover{background-color:var(--nv-color-secondary-alpha-800)}.focus\:nt-bg-foreground-alpha-50:focus{background-color:var(--nv-color-foreground-alpha-50)}.focus\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\:nt-opacity-50:disabled{opacity:.5}.nt-group:hover .group-hover\:nt-opacity-0{opacity:0}.nt-group:hover .group-hover\:nt-opacity-100{opacity:1}.nt-peer:checked~.peer-checked\:nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-peer:checked~.peer-checked\:nt-bg-primary{background-color:var(--nv-color-primary)}.nt-peer:checked~.peer-checked\:after\:nt-translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-peer:checked~.peer-checked\:after\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.data-\[open\=true\]\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\[open\=true\]\:nt-rotate-180[data-open=true],.data-\[open\=true\]\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[disabled\=true\]\:nt-bg-neutral-alpha-50[data-disabled=true]{background-color:var(--nv-color-neutral-alpha-50)}.data-\[disabled\=true\]\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\[disabled\=true\]\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\[state\=active\]\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\[state\=active\]\:after\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}
|
|
1
|
+
.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-right-0{right:0}.nt-right-2{right:.5rem}.nt-top-0{top:0}.nt-top-2{top:.5rem}.nt-z-10{z-index:10}.nt-z-\[-1\]{z-index:-1}.nt-float-right{float:right}.nt-m-auto{margin:auto}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt-ml-1{margin-left:.25rem}.nt-mr-auto{margin-right:auto}.nt-mt-4{margin-top:1rem}.nt-mt-\[-0\.25rem\]{margin-top:-.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\.5{height:.625rem;width:.625rem}.nt-size-8{height:2rem;width:2rem}.nt-h-10{height:2.5rem}.nt-h-11{height:2.75rem}.nt-h-3{height:.75rem}.nt-h-6{height:1.5rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-\[600px\]{height:600px}.nt-h-fit{height:-moz-fit-content;height:fit-content}.nt-h-full{height:100%}.nt-w-1\/3{width:33.333333%}.nt-w-1\/4{width:25%}.nt-w-11{width:2.75rem}.nt-w-2\/3{width:66.666667%}.nt-w-6{width:1.5rem}.nt-w-\[400px\]{width:400px}.nt-w-fit{width:-moz-fit-content;width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.-nt-translate-x-\[1\.0625rem\]{--tw-translate-x:-1.0625rem}.-nt-translate-x-\[1\.0625rem\],.-nt-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-nt-translate-y-1\/2{--tw-translate-y:-50%}.nt-translate-x-1\/2{--tw-translate-x:50%}.nt-translate-x-1\/2,.nt-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-translate-y-1\/2{--tw-translate-y:50%}.nt-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes nt-pulse{50%{opacity:.5}}.nt-animate-pulse{animation:nt-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.nt-cursor-default{cursor:default}.nt-cursor-pointer{cursor:pointer}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-1{gap:.25rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-whitespace-nowrap{white-space:nowrap}.nt-rounded{border-radius:.25rem}.nt-rounded-full{border-radius:9999px}.nt-rounded-lg{border-radius:.5rem}.nt-rounded-md{border-radius:.375rem}.nt-rounded-xl{border-radius:.75rem}.nt-border{border-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-secondary{border-color:var(--nv-color-secondary)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-foreground-alpha-100{background-color:var(--nv-color-foreground-alpha-100)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-p-0{padding:0}.nt-p-0\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-4{padding:1rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-6{padding-left:1.5rem;padding-right:1.5rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\[6px\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-5{padding-bottom:1.25rem;padding-top:1.25rem}.nt-pb-3{padding-bottom:.75rem}.nt-pb-\[0\.625rem\]{padding-bottom:.625rem}.nt-pr-1{padding-right:.25rem}.nt-pr-1\.5{padding-right:.375rem}.nt-pt-9{padding-top:2.25rem}.nt-text-right{text-align:right}.nt-text-start{text-align:start}.nt-text-base{font-size:1rem;line-height:1.5rem}.nt-text-sm{font-size:.875rem;line-height:1.25rem}.nt-text-xl{font-size:1.25rem;line-height:1.75rem}.nt-text-xs{font-size:.75rem;line-height:1rem}.nt-font-medium{font-weight:500}.nt-font-semibold{font-weight:600}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-100{color:var(--nv-color-foreground-alpha-100)}.nt-text-foreground-alpha-200{color:var(--nv-color-foreground-alpha-200)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-secondary-foreground-alpha-500{color:var(--nv-color-secondary-foreground-alpha-500)}.nt-opacity-0{opacity:0}.nt-shadow-dropdown{--tw-shadow:0 5px 20px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color)}.nt-shadow-dropdown,.nt-shadow-popover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-popover{--tw-shadow:0 5px 15px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 15px 0 var(--tw-shadow-color)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 var(--nv-color-shadow);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-ring-offset-background{--tw-ring-offset-color:var(--nv-color-background)}.nt-backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.after\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\:nt-left-0:after{content:var(--tw-content);left:0}.after\:nt-left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:nt-top-0:after{content:var(--tw-content);top:0}.after\:nt-top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:nt-h-5:after{content:var(--tw-content);height:1.25rem}.after\:nt-h-\[2px\]:after{content:var(--tw-content);height:2px}.after\:nt-w-5:after{content:var(--tw-content);width:1.25rem}.after\:nt-w-full:after{content:var(--tw-content);width:100%}.after\:nt-rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\:nt-border:after{border-width:1px;content:var(--tw-content)}.after\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\:nt-border-neutral-alpha-400:after{border-color:var(--nv-color-neutral-alpha-400);content:var(--tw-content)}.after\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:nt-duration-200:after{transition-duration:.2s}.after\:nt-content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\:nt-bg-foreground-alpha-50:hover{background-color:var(--nv-color-foreground-alpha-50)}.hover\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\:nt-bg-primary-alpha-900:hover{background-color:var(--nv-color-primary-alpha-900)}.hover\:nt-bg-secondary-alpha-800:hover{background-color:var(--nv-color-secondary-alpha-800)}.focus\:nt-bg-foreground-alpha-50:focus{background-color:var(--nv-color-foreground-alpha-50)}.focus\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\:nt-opacity-50:disabled{opacity:.5}.nt-group:hover .group-hover\:nt-opacity-0{opacity:0}.nt-group:hover .group-hover\:nt-opacity-100{opacity:1}.nt-peer:checked~.peer-checked\:nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-peer:checked~.peer-checked\:nt-bg-primary{background-color:var(--nv-color-primary)}.nt-peer:checked~.peer-checked\:after\:nt-translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-peer:checked~.peer-checked\:after\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.data-\[open\=true\]\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\[open\=true\]\:nt-rotate-180[data-open=true],.data-\[open\=true\]\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[disabled\=true\]\:nt-bg-neutral-alpha-50[data-disabled=true]{background-color:var(--nv-color-neutral-alpha-50)}.data-\[disabled\=true\]\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\[disabled\=true\]\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\[state\=active\]\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\[state\=active\]\:after\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}
|