@lumiastream/ui 0.2.8-alpha.19 → 0.2.8-alpha.20
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/index.js +114 -54
- package/dist/se-import.js +114 -54
- package/package.json +134 -134
package/dist/index.js
CHANGED
|
@@ -4618,8 +4618,40 @@ var SE_KAPPAGEN_EVENT_TO_LUMIA_ALERT = {
|
|
|
4618
4618
|
// All three drop silently; the rest of the widget (size, spawn zone,
|
|
4619
4619
|
// per-event flags for the remaining events) still imports.
|
|
4620
4620
|
};
|
|
4621
|
+
function normalizeKappagenChatEmoteMode(mode) {
|
|
4622
|
+
const normalized = String(mode ?? "").trim().toLowerCase();
|
|
4623
|
+
if (!normalized || normalized === "off" || normalized === "false" || normalized === "none") return "off";
|
|
4624
|
+
if (normalized.includes("combo")) return "combo";
|
|
4625
|
+
return "show-all";
|
|
4626
|
+
}
|
|
4621
4627
|
function mapKappagen(widget, ctx) {
|
|
4622
4628
|
const v = widget.variables ?? {};
|
|
4629
|
+
const kappagenName = widget.name ?? widget.id ?? "unnamed widget";
|
|
4630
|
+
console.groupCollapsed("[SE Import][Kappagen raw widget]", kappagenName);
|
|
4631
|
+
console.log("Full StreamElements widget:", widget);
|
|
4632
|
+
console.log("Raw variables/settings:", widget.variables ?? null);
|
|
4633
|
+
console.log("Listeners:", widget.listeners ?? null);
|
|
4634
|
+
console.log("Events:", v.events ?? null);
|
|
4635
|
+
console.log("Events config:", v.eventsConfig ?? null);
|
|
4636
|
+
console.log("Kappagen animation/source settings:", {
|
|
4637
|
+
cheersplosions: v.cheersplosions,
|
|
4638
|
+
emotesplosion: v.emotesplosion,
|
|
4639
|
+
emotesplosiondir: v.emotesplosiondir,
|
|
4640
|
+
emotesplosionduration: v.emotesplosionduration,
|
|
4641
|
+
mode: v.mode,
|
|
4642
|
+
size: v.size,
|
|
4643
|
+
spawnzone: v.spawnzone,
|
|
4644
|
+
gif: v.gif,
|
|
4645
|
+
emoji: v.emoji,
|
|
4646
|
+
bttv: v.bttv,
|
|
4647
|
+
ffz: v.ffz,
|
|
4648
|
+
sevenTv: v.sevenTv,
|
|
4649
|
+
duration: v.duration,
|
|
4650
|
+
direction: v.direction,
|
|
4651
|
+
fullscreen: v.fullscreen,
|
|
4652
|
+
limit: v.limit
|
|
4653
|
+
});
|
|
4654
|
+
console.groupEnd();
|
|
4623
4655
|
const eventsFromNested = v.eventsConfig ? {
|
|
4624
4656
|
subscriber: v.eventsConfig.subscriber?.enabled ?? true,
|
|
4625
4657
|
follower: v.eventsConfig.follower?.enabled ?? true,
|
|
@@ -4628,9 +4660,10 @@ function mapKappagen(widget, ctx) {
|
|
|
4628
4660
|
tip: v.eventsConfig.tip?.enabled ?? true
|
|
4629
4661
|
} : null;
|
|
4630
4662
|
const events = v.events ?? eventsFromNested ?? { subscriber: true, follower: true, cheer: true, raid: true, tip: true };
|
|
4663
|
+
const chatEmoteMode = normalizeKappagenChatEmoteMode(v.mode);
|
|
4631
4664
|
const alertTriggers = Object.entries(events).filter(([, enabled]) => !!enabled).map(([seKey]) => SE_KAPPAGEN_EVENT_TO_LUMIA_ALERT[seKey]).filter((x) => !!x);
|
|
4632
4665
|
const alertEmotes = ["Kappa", "<3", "imGlitch"];
|
|
4633
|
-
|
|
4666
|
+
const unit = buildUnit(
|
|
4634
4667
|
widget,
|
|
4635
4668
|
"emotealert",
|
|
4636
4669
|
{
|
|
@@ -4650,6 +4683,9 @@ function mapKappagen(widget, ctx) {
|
|
|
4650
4683
|
animationTime: typeof v.duration === "number" ? v.duration : 5,
|
|
4651
4684
|
duration: typeof v.duration === "number" ? v.duration : 5,
|
|
4652
4685
|
useAnimatedEmotes: true,
|
|
4686
|
+
alertOn: true,
|
|
4687
|
+
chatEmotesOn: chatEmoteMode !== "off",
|
|
4688
|
+
chatEmoteMode,
|
|
4653
4689
|
alertNumberEmotes: typeof v.limit === "number" && v.limit > 0 ? v.limit : 30,
|
|
4654
4690
|
alertEmotes,
|
|
4655
4691
|
alertTriggers,
|
|
@@ -4676,6 +4712,15 @@ function mapKappagen(widget, ctx) {
|
|
|
4676
4712
|
},
|
|
4677
4713
|
ctx
|
|
4678
4714
|
);
|
|
4715
|
+
console.groupCollapsed("[SE Import][Kappagen mapped emotealert]", kappagenName);
|
|
4716
|
+
console.log("Resolved events:", events);
|
|
4717
|
+
console.log("Mapped alert triggers:", alertTriggers);
|
|
4718
|
+
console.log("Mapped chat emote mode:", chatEmoteMode);
|
|
4719
|
+
console.log("Mapped alert emotes:", alertEmotes);
|
|
4720
|
+
console.log("Mapped Emotealert unit:", unit);
|
|
4721
|
+
console.log("Mapped Emotealert content:", unit.module?.content ?? null);
|
|
4722
|
+
console.groupEnd();
|
|
4723
|
+
return unit;
|
|
4679
4724
|
}
|
|
4680
4725
|
function mapLeaderboardFromVariables(widget, currency, ctx) {
|
|
4681
4726
|
const v = widget.variables ?? {};
|
|
@@ -4868,7 +4913,9 @@ function liftSESpritesIntoTiers(types) {
|
|
|
4868
4913
|
const cat = SE_TYPE_TO_CATEGORY[seKey];
|
|
4869
4914
|
if (!cat) continue;
|
|
4870
4915
|
const variations = block?.variations ?? [];
|
|
4871
|
-
const usable = variations.filter(
|
|
4916
|
+
const usable = variations.filter(
|
|
4917
|
+
(v) => typeof (v?.preview ?? v?.src) === "string" && (v.preview ?? v.src ?? "").length > 0
|
|
4918
|
+
);
|
|
4872
4919
|
const flagged = usable.filter((v) => v.default === true);
|
|
4873
4920
|
const picked = flagged.length > 0 ? flagged : usable;
|
|
4874
4921
|
const seenAmounts = /* @__PURE__ */ new Set();
|
|
@@ -4879,7 +4926,7 @@ function liftSESpritesIntoTiers(types) {
|
|
|
4879
4926
|
seenAmounts.add(amount);
|
|
4880
4927
|
tiers.push({
|
|
4881
4928
|
minAmount: amount,
|
|
4882
|
-
imageUrl: v.src,
|
|
4929
|
+
imageUrl: v.preview ?? v.src,
|
|
4883
4930
|
scale: typeof v.cheerSize === "number" && v.cheerSize > 0 ? v.cheerSize : 1
|
|
4884
4931
|
});
|
|
4885
4932
|
}
|
|
@@ -4930,58 +4977,71 @@ function mapHypeCup(widget, ctx) {
|
|
|
4930
4977
|
const maxBodies = typeof v.recentEvents === "number" && v.recentEvents > 0 ? Math.min(300, Math.max(10, v.recentEvents)) : 80;
|
|
4931
4978
|
const duration = typeof v.duration === "number" && v.duration > 0 ? Math.min(15, Math.max(1, v.duration)) : 3;
|
|
4932
4979
|
const sprites = liftSESpritesIntoTiers(v.types);
|
|
4933
|
-
return buildUnit(
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4980
|
+
return buildUnit(
|
|
4981
|
+
widget,
|
|
4982
|
+
"tipjar",
|
|
4983
|
+
{
|
|
4984
|
+
content: {
|
|
4985
|
+
version: 1,
|
|
4986
|
+
// Phase 1 ships a single preset; SE's per-cup polygon set isn't lifted
|
|
4987
|
+
// yet (it'd require multi-cup support which we deliberately deferred).
|
|
4988
|
+
// The streamer can swap a custom cup image + wireframe via Settings.
|
|
4989
|
+
preset: "glass-mug",
|
|
4990
|
+
customCup: null,
|
|
4991
|
+
cup: {
|
|
4992
|
+
x: cupX,
|
|
4993
|
+
y: cupY,
|
|
4994
|
+
scale: 1,
|
|
4995
|
+
opacity: 1
|
|
4996
|
+
},
|
|
4997
|
+
physics: {
|
|
4998
|
+
gravity: 1,
|
|
4999
|
+
bounce,
|
|
5000
|
+
friction: 0.06,
|
|
5001
|
+
maxBodies
|
|
5002
|
+
},
|
|
5003
|
+
tokens: {
|
|
5004
|
+
defaultRadius: 26
|
|
5005
|
+
},
|
|
5006
|
+
events: categoriesFromListeners(widget.listeners),
|
|
5007
|
+
chat: {
|
|
5008
|
+
useViewerAvatars: true
|
|
5009
|
+
},
|
|
5010
|
+
display: {
|
|
5011
|
+
showWireframes: !!v.showWireframes,
|
|
5012
|
+
showEventMessages: !!v.textEnabled,
|
|
5013
|
+
messageDuration: duration
|
|
5014
|
+
},
|
|
5015
|
+
sprites,
|
|
5016
|
+
// Phase 2 defaults for goal/break — disabled by import. Streamer
|
|
5017
|
+
// can enable in Settings; SE has no equivalent so nothing to lift.
|
|
5018
|
+
goal: {
|
|
5019
|
+
active: false,
|
|
5020
|
+
currency: "tips",
|
|
5021
|
+
target: 100,
|
|
5022
|
+
current: 0,
|
|
5023
|
+
readoutTemplate: "{{current}} / {{target}}",
|
|
5024
|
+
textColor: "#ffffff",
|
|
5025
|
+
hitAt: null
|
|
5026
|
+
},
|
|
5027
|
+
break: { enabled: false, command: "!breakjar", rebuildDelay: 5e3 },
|
|
5028
|
+
// Source-side knobs without a Lumia equivalent — preserved under
|
|
5029
|
+
// the generic `importMeta` envelope for future phases (per-cup
|
|
5030
|
+
// polygons + enter/movement physics tweaks). The per-event
|
|
5031
|
+
// sprite sets were already lifted into native `sprites` above.
|
|
5032
|
+
importMeta: buildImportMeta(widget, {
|
|
5033
|
+
enterFrom: v.enterFrom ?? null,
|
|
5034
|
+
preventMovement: !!v.preventMovement,
|
|
5035
|
+
fullscreen: !!v.fullscreen,
|
|
5036
|
+
cups: v.cups ?? null
|
|
5037
|
+
})
|
|
4964
5038
|
},
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
goal: { active: false, currency: "tips", target: 100, current: 0, readoutTemplate: "{{current}} / {{target}}", textColor: "#ffffff", hitAt: null },
|
|
4969
|
-
break: { enabled: false, command: "!breakjar", rebuildDelay: 5e3 },
|
|
4970
|
-
// Source-side knobs without a Lumia equivalent — preserved under
|
|
4971
|
-
// the generic `importMeta` envelope for future phases (per-cup
|
|
4972
|
-
// polygons + enter/movement physics tweaks). The per-event
|
|
4973
|
-
// sprite sets were already lifted into native `sprites` above.
|
|
4974
|
-
importMeta: buildImportMeta(widget, {
|
|
4975
|
-
enterFrom: v.enterFrom ?? null,
|
|
4976
|
-
preventMovement: !!v.preventMovement,
|
|
4977
|
-
fullscreen: !!v.fullscreen,
|
|
4978
|
-
cups: v.cups ?? null
|
|
4979
|
-
})
|
|
5039
|
+
css: {
|
|
5040
|
+
background: "transparent"
|
|
5041
|
+
}
|
|
4980
5042
|
},
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
}
|
|
4984
|
-
}, ctx);
|
|
5043
|
+
ctx
|
|
5044
|
+
);
|
|
4985
5045
|
}
|
|
4986
5046
|
function clamp01(n) {
|
|
4987
5047
|
if (!Number.isFinite(n)) return 0.5;
|
|
@@ -5808,7 +5868,7 @@ function ActiveLayerPreview({ overlay, layerId, CustomEmbed }) {
|
|
|
5808
5868
|
}
|
|
5809
5869
|
|
|
5810
5870
|
// src/se-import/ui/SEImportWizard.css
|
|
5811
|
-
styleInject('.se-import,\n.se-import * {\n box-sizing: border-box;\n}\n.se-import {\n --se-bg: #17162a;\n --se-surface: #27264a;\n --se-panel: #171b38;\n --se-panel-2: #202449;\n --se-border: rgba(116, 124, 211, 0.24);\n --se-border-strong: rgba(126, 128, 255, 0.58);\n --se-text: #f5f4ff;\n --se-muted: #bab8d2;\n --se-primary: #ff4076;\n --se-purple: #393853;\n --se-green: #06c96f;\n --se-warn: #f7a42b;\n width: 100%;\n height: 100%;\n min-width: min(680px, 100%);\n color: var(--se-text);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.se-import__shell {\n border-radius: 0;\n padding: 28px 48px 24px;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.se-import__header {\n flex: 0 0 auto;\n}\nfooter.se-import-actions {\n flex: 0 0 auto;\n}\n.se-import__header {\n display: grid;\n justify-items: center;\n gap: 42px;\n}\n.se-import__title {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n font-size: 20px;\n font-weight: 500;\n}\n.se-import-stepper {\n display: grid;\n width: min(760px, 100%);\n grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));\n}\n.se-import-step {\n position: relative;\n display: grid;\n justify-items: center;\n gap: 12px;\n min-width: 0;\n color: rgba(255, 255, 255, 0.72);\n}\n.se-import-step__label {\n color: var(--se-text);\n font-size: 18px;\n line-height: 1.1;\n}\n.se-import-step__line {\n position: absolute;\n top: 42px;\n left: 50%;\n width: 100%;\n height: 2px;\n background: rgba(255, 255, 255, 0.16);\n}\n.se-import-step:last-child .se-import-step__line {\n display: none;\n}\n.se-import-step__dot {\n z-index: 1;\n display: grid;\n width: 22px;\n height: 22px;\n place-items: center;\n border-radius: 50%;\n background: #47485e;\n color: #fff;\n font-size: 13px;\n font-weight: 700;\n line-height: 1;\n}\n.se-import-step--active .se-import-step__dot {\n background: var(--se-primary);\n}\n.se-import-step--done .se-import-step__dot {\n background: var(--se-green);\n}\n.se-import-step--done .se-import-step__line {\n background: var(--se-green);\n}\n.se-import-step--done:has(+ .se-import-step--active) .se-import-step__line {\n background:\n linear-gradient(\n 90deg,\n var(--se-green),\n var(--se-primary));\n}\n.se-import__content {\n display: grid;\n place-items: center;\n padding: 64px 0 28px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n@media (max-height: 760px) {\n .se-import__shell {\n padding: 18px 32px 16px;\n }\n .se-import__content {\n padding: 32px 0 16px;\n }\n}\n.se-import-panel {\n width: min(100%, 1080px);\n padding: 28px;\n}\n.se-import-panel--narrow {\n width: min(100%, 1140px);\n}\n.se-import-panel--medium {\n width: min(100%, 880px);\n}\n.se-import-panel--wide {\n width: min(100%, 1000px);\n}\n.se-import-panel--confirm {\n width: min(100%, 800px);\n}\n.se-import-panel h2,\n.se-import-panel h3,\n.se-import-panel p {\n margin: 0;\n}\n.se-import-panel h2 {\n font-size: 26px;\n font-weight: 700;\n line-height: 1.15;\n}\n.se-import-panel > p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n line-height: 1.45;\n}\n.se-import-field {\n margin-top: 34px;\n}\n.se-import-field .mui-ls-input {\n --ls-control-height: 66px;\n}\n.se-import-field .MuiInputLabel-root {\n color: var(--se-text);\n font-weight: 700;\n}\n.se-import-field .MuiInputLabel-root.Mui-focused {\n color: #dfe1ff;\n}\n.se-import-field .MuiInputBase-root {\n font-size: 18px;\n}\n.se-import-token-loading {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 13px;\n font-weight: 700;\n}\n.se-import-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.2);\n border-top-color: var(--se-primary);\n border-radius: 50%;\n animation: se-import-spin 800ms linear infinite;\n}\n@keyframes se-import-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.se-import-help {\n display: flex;\n gap: 18px;\n margin-top: 30px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n padding: 24px;\n color: var(--white2);\n}\n.se-import-help__icon {\n display: grid;\n width: 30px;\n height: 30px;\n flex: 0 0 auto;\n place-items: center;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n color: var(--white2);\n font-weight: 800;\n}\n.se-import-help__title {\n color: var(--se-text);\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-help__image {\n display: block;\n width: min(100%, 560px);\n height: auto;\n margin-top: 16px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n}\n.se-import-help ol {\n margin: 16px 0 0;\n padding-left: 18px;\n font-size: 15px;\n line-height: 1.7;\n}\n.se-import-help a {\n color: var(--primary);\n font-weight: 700;\n}\n.se-import-help--info {\n align-items: center;\n}\n.se-import-section-title {\n display: flex;\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n.se-import-section-title__num {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 46px;\n height: 46px;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n font-size: 1.5rem;\n font-weight: 800;\n}\n.se-import-section-title__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.se-import-section-title h3 {\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-section-title p {\n margin-top: 4px;\n color: var(--se-muted);\n font-size: 14px;\n}\n.se-import-grid {\n display: grid;\n gap: 8px;\n margin-top: 10px;\n}\n.se-import-grid--four {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.se-import-grid--stats {\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n}\n.se-import-grid--two {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.se-import-stat {\n min-height: 116px;\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n background:\n linear-gradient(\n 135deg,\n rgba(42, 47, 92, 0.9),\n rgba(33, 38, 78, 0.9));\n padding: 24px 22px;\n}\n.se-import-stat--success {\n background:\n linear-gradient(\n 135deg,\n rgba(12, 91, 86, 0.72),\n rgba(32, 65, 76, 0.8));\n border-color: rgba(19, 201, 126, 0.25);\n}\n.se-import-stat--info {\n border-color: rgba(116, 104, 255, 0.8);\n box-shadow: inset 3px 0 0 #6e76ff;\n}\n.se-import-stat--warn,\n.se-import-stat--muted {\n box-shadow: inset 3px 0 0 var(--se-warn);\n}\n.se-import-stat__label {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-stat__icon {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}\n.se-import-stat__value {\n margin-top: 12px;\n color: #fff;\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n}\n.se-import-stat__description {\n margin-top: 10px;\n color: var(--se-muted);\n font-size: 13px;\n line-height: 1.35;\n}\n.se-import-stat__sub {\n margin-top: 8px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-mode-card__icon {\n display: grid;\n width: 46px;\n height: 46px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 255, 255, 0.08);\n}\n.se-import-mode-card__icon img {\n width: 30px;\n height: 30px;\n object-fit: contain;\n}\n.se-import-mode-card__features {\n display: grid;\n gap: 6px;\n margin: 0;\n padding-left: 18px;\n}\n.se-import-overlay-progress {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n max-width: min(760px, 100%);\n width: 100%;\n gap: 14px;\n padding: 4px 2px 0;\n}\n.se-import-overlay-progress__copy {\n min-width: 0;\n color: var(--se-text);\n font-size: 13px;\n font-weight: 700;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-overlay-progress__strip,\n.se-import-overlay-progress__stack {\n display: flex;\n align-items: center;\n}\n.se-import-overlay-progress__strip {\n gap: 7px;\n}\n.se-import-overlay-progress__stack {\n margin-right: 5px;\n}\n.se-import-overlay-progress__stack--queued {\n margin-right: 0;\n margin-left: 5px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item {\n margin-left: -16px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item:first-child {\n margin-left: 0;\n}\n.se-import-overlay-progress__item {\n position: relative;\n width: 50px;\n height: 36px;\n flex: 0 0 auto;\n overflow: hidden;\n border: 1px solid var(--se-border);\n border-radius: 6px;\n background: var(--se-panel-2);\n opacity: 0.72;\n}\n.se-import-overlay-progress__item img,\n.se-import-overlay-progress__placeholder {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.se-import-overlay-progress__item--current {\n border-color: var(--se-primary);\n box-shadow: 0 0 0 1px var(--se-primary);\n opacity: 1;\n z-index: 3;\n}\n.se-import-overlay-progress__item--done {\n opacity: 1;\n}\n.se-import-overlay-progress__item--queued {\n opacity: 0.64;\n}\n.se-import-overlay-progress__more {\n display: grid;\n min-width: 28px;\n height: 24px;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n}\n.se-import-overlay-progress__check {\n position: absolute;\n right: 3px;\n bottom: 3px;\n display: grid;\n width: 16px;\n height: 16px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 11px;\n font-weight: 900;\n line-height: 1;\n}\n.se-import-option {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 18px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n background:\n linear-gradient(\n 135deg,\n rgba(35, 39, 81, 0.95),\n rgba(31, 35, 73, 0.95));\n box-shadow: inset 3px 0 0 var(--se-primary);\n cursor: pointer;\n padding: 22px;\n margin-bottom: 1rem;\n}\n.se-import-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.se-import-option__icon {\n display: grid;\n width: 40px;\n height: 40px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 64, 118, 0.12);\n}\n.se-import-option__icon img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n}\n.se-import-option__body {\n display: grid;\n gap: 8px;\n min-width: 0;\n}\n.se-import-option__title {\n font-size: 17px;\n font-weight: 800;\n}\n.se-import-option__copy {\n color: var(--se-muted);\n font-size: 14px;\n line-height: 1.45;\n}\n.se-import-option__count {\n color: #fff;\n font-size: 16px;\n}\n.se-import-option input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.se-import-toggle {\n position: relative;\n width: 48px;\n height: 28px;\n border-radius: 999px;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);\n}\n.se-import-toggle::after {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #fff;\n content: "";\n transition: transform 160ms ease;\n}\n.se-import-option input:checked + .se-import-toggle {\n background: var(--primary);\n}\n.se-import-option input:checked + .se-import-toggle::after {\n transform: translateX(20px);\n}\n.se-import-advanced {\n margin-top: 26px;\n border-radius: 10px;\n background: rgba(32, 36, 73, 0.7);\n padding: 24px;\n}\n.se-import-advanced summary {\n cursor: pointer;\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-advanced p {\n margin-top: 10px;\n color: var(--se-muted);\n}\n.se-import-transfer {\n position: relative;\n display: grid;\n width: min(720px, 100%);\n min-height: 190px;\n grid-template-columns: 180px minmax(260px, 1fr) 180px;\n align-items: center;\n gap: 28px;\n margin: 0 auto 60px;\n}\n.se-import-transfer__source {\n position: relative;\n display: grid;\n width: 160px;\n height: 160px;\n place-items: center;\n animation: se-import-source-bounce 1.8s ease-in-out infinite;\n}\n.se-import-transfer--complete .se-import-transfer__source {\n animation: none;\n}\n.se-import-transfer__source::before {\n top: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source::after {\n bottom: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source img {\n width: 192px;\n height: 192px;\n object-fit: contain;\n}\n.se-import-transfer__source--lumia {\n animation-delay: 0.22s;\n}\n.se-import-transfer__files {\n position: relative;\n height: 130px;\n}\n.se-import-transfer__file {\n position: absolute;\n top: 50%;\n left: -18px;\n width: 56px;\n height: 66px;\n object-fit: contain;\n transform: translateY(-50%);\n filter: drop-shadow(0 10px 12px rgba(8, 9, 25, 0.25));\n animation: se-import-file-fly 2.4s cubic-bezier(0.35, 0, 0.25, 1) infinite;\n}\n.se-import-transfer--complete .se-import-transfer__file {\n display: none;\n}\n.se-import-transfer__done {\n position: absolute;\n right: -8px;\n bottom: -8px;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 20px;\n font-weight: 900;\n box-shadow: 0 10px 20px rgba(6, 201, 111, 0.26);\n}\n.se-import-transfer__file--one {\n animation-delay: 0s;\n}\n.se-import-transfer__file--two {\n animation-delay: 0.38s;\n}\n.se-import-transfer__file--three {\n animation-delay: 0.76s;\n}\n.se-import-transfer__file--four {\n animation-delay: 1.14s;\n}\n@keyframes se-import-source-bounce {\n 0%, 100% {\n transform: translateY(0) scale(1);\n }\n 50% {\n transform: translateY(-8px) scale(1.025);\n }\n}\n@keyframes se-import-file-fly {\n 0% {\n opacity: 0;\n transform: translate(-10px, -50%) scale(0.82) rotate(-8deg);\n }\n 12% {\n opacity: 1;\n }\n 45% {\n transform: translate(145px, calc(-50% - 18px)) scale(1.08) rotate(5deg);\n }\n 82% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: translate(330px, -50%) scale(0.9) rotate(10deg);\n }\n}\n.se-import-mirror-head {\n display: grid;\n grid-template-columns: minmax(220px, auto) minmax(180px, 1fr) auto;\n align-items: center;\n gap: 14px;\n}\n.se-import-mirror-head p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n}\n.se-import-mirror-head span {\n flex: 0 0 auto;\n color: var(--se-muted);\n font-weight: 700;\n}\n.se-import-mirror-head strong {\n color: var(--se-text);\n font-size: 14px;\n}\n.se-import-progress {\n width: 100%;\n height: 14px;\n margin-top: 0;\n overflow: hidden;\n border: 0;\n border-radius: 999px;\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-bar {\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-value {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-progress::-moz-progress-bar {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-asset-list {\n max-height: 360px;\n margin-top: 22px;\n overflow-y: auto;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n}\n.se-import-asset-row {\n display: grid;\n grid-template-columns: 32px minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 14px;\n min-height: 42px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-asset-row__icon {\n width: 24px;\n height: 28px;\n justify-self: end;\n object-fit: contain;\n}\n.se-import-asset-row__url {\n overflow: hidden;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-asset-row__state {\n color: #9b8cff;\n font-weight: 800;\n}\n.se-import-asset-row--done .se-import-asset-row__state,\n.se-import-asset-row--reused .se-import-asset-row__state {\n color: var(--se-green);\n}\n.se-import-asset-row--failed .se-import-asset-row__state,\n.se-import-asset-row__error {\n color: #ff8080;\n}\n.se-import-link-button {\n border: 0;\n background: transparent;\n color: #ff9ab6;\n cursor: pointer;\n font: inherit;\n font-weight: 800;\n}\n.se-import-overview {\n margin-top: 28px;\n border: 1px solid var(--se-border);\n border-radius: 12px;\n background: rgba(26, 30, 61, 0.62);\n padding: 28px;\n}\n.se-import-overview h3 {\n margin-bottom: 18px;\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-row {\n display: grid;\n grid-template-columns: 190px minmax(0, 1fr) auto;\n gap: 18px;\n align-items: center;\n min-height: 48px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n}\n.se-import-row strong {\n min-width: 0;\n overflow: hidden;\n color: var(--se-text);\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-row em {\n color: var(--se-muted);\n font-style: normal;\n}\n.se-import-review-card {\n display: flex;\n justify-content: space-between;\n gap: 18px;\n border: 1px solid var(--se-border);\n border-radius: 10px;\n background: rgba(30, 34, 71, 0.8);\n padding: 20px;\n}\n.se-import-review-card__type {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-weight: 800;\n}\n.se-import-review-card p {\n margin-top: 8px;\n color: var(--se-muted);\n line-height: 1.45;\n}\n.se-import-review-card__status {\n flex: 0 0 auto;\n color: #facc15;\n font-size: 11px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-review-bulk,\n.se-import-actions--inline {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n margin-top: 16px;\n}\n.se-import-muted {\n margin-top: 16px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-generated {\n display: grid;\n gap: 12px;\n margin-top: 18px;\n}\n.se-import-generated__title {\n font-weight: 800;\n}\n.se-import-preview {\n width: 100%;\n height: 260px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n background: repeating-conic-gradient(#1a1c20 0% 25%, #1d1f24 0% 50%) 50% / 20px 20px;\n}\n.se-import-code {\n margin-top: 16px;\n}\n.se-import-code summary {\n cursor: pointer;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-code pre {\n max-height: 220px;\n margin: 10px 0 0;\n overflow: auto;\n border-radius: 8px;\n background: rgba(0, 0, 0, 0.28);\n padding: 12px;\n color: #d8dcff;\n font-size: 12px;\n}\n.se-import-error {\n margin-top: 18px;\n border: 1px solid rgba(239, 68, 68, 0.45);\n border-radius: 8px;\n background: rgba(220, 38, 38, 0.12);\n padding: 12px;\n color: #fca5a5;\n}\n.se-import-error__title {\n font-weight: 800;\n}\n.se-import-error__hint {\n margin-top: 6px;\n white-space: pre-wrap;\n}\n.se-import-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n margin-top: 8px;\n}\nfooter.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n}\n@media (max-height: 760px) {\n footer.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n }\n}\n@media (max-width: 900px) {\n .se-import__shell {\n min-height: 0;\n padding: 24px 18px;\n }\n .se-import__content {\n min-height: 0;\n padding-top: 32px;\n }\n .se-import-stepper {\n grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));\n }\n .se-import-step__label {\n font-size: 13px;\n }\n .se-import-grid--four,\n .se-import-grid--two,\n .se-import-transfer {\n grid-template-columns: 1fr;\n }\n .se-import-transfer {\n justify-items: center;\n }\n .se-import-transfer__files {\n width: min(360px, 100%);\n }\n .se-import-option,\n .se-import-row,\n .se-import-asset-row {\n grid-template-columns: 1fr;\n }\n .se-import-mirror-head,\n .se-import-review-card {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n');
|
|
5871
|
+
styleInject('.se-import,\n.se-import * {\n box-sizing: border-box;\n}\n.se-import {\n --se-bg: #17162a;\n --se-surface: #27264a;\n --se-panel: #171b38;\n --se-panel-2: #202449;\n --se-border: rgba(116, 124, 211, 0.24);\n --se-border-strong: rgba(126, 128, 255, 0.58);\n --se-text: #f5f4ff;\n --se-muted: #bab8d2;\n --se-primary: #ff4076;\n --se-purple: #393853;\n --se-green: #06c96f;\n --se-warn: #f7a42b;\n width: 100%;\n height: 100%;\n min-width: min(680px, 100%);\n color: var(--se-text);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.se-import__shell {\n border-radius: 0;\n padding: 28px 48px 24px;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.se-import__header {\n flex: 0 0 auto;\n}\nfooter.se-import-actions {\n flex: 0 0 auto;\n}\n.se-import__header {\n display: grid;\n justify-items: center;\n gap: 42px;\n}\n.se-import__title {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n font-size: 20px;\n font-weight: 500;\n}\n.se-import-stepper {\n display: grid;\n width: min(760px, 100%);\n grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));\n}\n.se-import-step {\n position: relative;\n display: grid;\n justify-items: center;\n gap: 12px;\n min-width: 0;\n color: rgba(255, 255, 255, 0.72);\n}\n.se-import-step__label {\n color: var(--se-text);\n font-size: 18px;\n line-height: 1.1;\n}\n.se-import-step__line {\n position: absolute;\n top: 42px;\n left: 50%;\n width: 100%;\n height: 2px;\n background: rgba(255, 255, 255, 0.16);\n}\n.se-import-step:last-child .se-import-step__line {\n display: none;\n}\n.se-import-step__dot {\n z-index: 1;\n display: grid;\n width: 22px;\n height: 22px;\n place-items: center;\n border-radius: 50%;\n background: #47485e;\n color: #fff;\n font-size: 13px;\n font-weight: 700;\n line-height: 1;\n}\n.se-import-step--active .se-import-step__dot {\n background: var(--se-primary);\n}\n.se-import-step--done .se-import-step__dot {\n background: var(--se-green);\n}\n.se-import-step--done .se-import-step__line {\n background: var(--se-green);\n}\n.se-import-step--done:has(+ .se-import-step--active) .se-import-step__line {\n background:\n linear-gradient(\n 90deg,\n var(--se-green),\n var(--se-primary));\n}\n.se-import__content {\n display: grid;\n place-items: center;\n padding: 64px 0 28px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n@media (max-height: 760px) {\n .se-import__shell {\n padding: 18px 32px 16px;\n }\n .se-import__content {\n padding: 32px 0 16px;\n }\n}\n.se-import-panel {\n width: min(100%, 1080px);\n padding: 28px;\n}\n.se-import-panel--narrow {\n width: min(100%, 1140px);\n}\n.se-import-panel--medium {\n width: min(100%, 880px);\n}\n.se-import-panel--wide {\n width: min(100%, 1000px);\n}\n.se-import-panel--confirm {\n width: min(100%, 800px);\n}\n.se-import-panel h2,\n.se-import-panel h3,\n.se-import-panel p {\n margin: 0;\n}\n.se-import-panel h2 {\n font-size: 26px;\n font-weight: 700;\n line-height: 1.15;\n}\n.se-import-panel > p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n line-height: 1.45;\n}\n.se-import-field {\n margin-top: 34px;\n}\n.se-import-field .mui-ls-input {\n --ls-control-height: 66px;\n}\n.se-import-field .MuiInputLabel-root {\n color: var(--se-text);\n font-weight: 700;\n}\n.se-import-field .MuiInputLabel-root.Mui-focused {\n color: #dfe1ff;\n}\n.se-import-field .MuiInputBase-root {\n font-size: 18px;\n}\n.se-import-token-loading {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 13px;\n font-weight: 700;\n}\n.se-import-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.2);\n border-top-color: var(--se-primary);\n border-radius: 50%;\n animation: se-import-spin 800ms linear infinite;\n}\n@keyframes se-import-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.se-import-help {\n display: flex;\n gap: 18px;\n margin-top: 30px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n padding: 24px;\n color: var(--white2);\n}\n.se-import-help__icon {\n display: grid;\n width: 30px;\n height: 30px;\n flex: 0 0 auto;\n place-items: center;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n color: var(--white2);\n font-weight: 800;\n}\n.se-import-help__title {\n color: var(--se-text);\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-help__image {\n display: block;\n width: min(100%, 560px);\n height: auto;\n margin-top: 16px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n}\n.se-import-help ol {\n margin: 16px 0 0;\n padding-left: 18px;\n font-size: 15px;\n line-height: 1.7;\n}\n.se-import-help a {\n color: var(--primary);\n font-weight: 700;\n}\n.se-import-help--info {\n align-items: center;\n}\n.se-import-section-title {\n display: flex;\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n.se-import-section-title__num {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 46px;\n height: 46px;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n font-size: 1.5rem;\n font-weight: 800;\n}\n.se-import-section-title__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.se-import-section-title h3 {\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-section-title p {\n margin-top: 4px;\n color: var(--se-muted);\n font-size: 14px;\n}\n.se-import-grid {\n display: grid;\n gap: 8px;\n margin-top: 10px;\n}\n.se-import-grid--four {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.se-import-grid--stats {\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n}\n.se-import-grid--two {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.se-import-stat {\n min-height: 116px;\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n background:\n linear-gradient(\n 135deg,\n rgba(42, 47, 92, 0.9),\n rgba(33, 38, 78, 0.9));\n padding: 24px 22px;\n}\n.se-import-stat--success {\n background:\n linear-gradient(\n 135deg,\n rgba(12, 91, 86, 0.72),\n rgba(32, 65, 76, 0.8));\n border-color: rgba(19, 201, 126, 0.25);\n}\n.se-import-stat--info {\n border-color: rgba(116, 104, 255, 0.8);\n box-shadow: inset 3px 0 0 #6e76ff;\n}\n.se-import-stat--warn,\n.se-import-stat--muted {\n box-shadow: inset 3px 0 0 var(--se-warn);\n}\n.se-import-stat__label {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-stat__icon {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}\n.se-import-stat__value {\n margin-top: 12px;\n color: #fff;\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n}\n.se-import-stat__description {\n margin-top: 10px;\n color: var(--se-muted);\n font-size: 13px;\n line-height: 1.35;\n}\n.se-import-stat__sub {\n margin-top: 8px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-mode-card__icon {\n display: grid;\n width: 46px;\n height: 46px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 255, 255, 0.08);\n}\n.se-import-mode-card__icon img {\n width: 30px;\n height: 30px;\n object-fit: contain;\n}\n.se-import-mode-card__features {\n display: grid;\n gap: 6px;\n margin: 0;\n padding-left: 18px;\n}\n.se-import-overlay-progress {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n max-width: min(760px, 100%);\n width: 100%;\n gap: 14px;\n padding: 4px 2px 0;\n}\n.se-import-overlay-progress__copy {\n min-width: 0;\n color: var(--se-text);\n font-size: 13px;\n font-weight: 700;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-overlay-progress__strip,\n.se-import-overlay-progress__stack {\n display: flex;\n align-items: center;\n}\n.se-import-overlay-progress__strip {\n gap: 7px;\n}\n.se-import-overlay-progress__stack {\n margin-right: 5px;\n}\n.se-import-overlay-progress__stack--queued {\n margin-right: 0;\n margin-left: 5px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item {\n margin-left: -16px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item:first-child {\n margin-left: 0;\n}\n.se-import-overlay-progress__item {\n position: relative;\n width: 50px;\n height: 36px;\n flex: 0 0 auto;\n overflow: hidden;\n border: 1px solid var(--se-border);\n border-radius: 6px;\n background: var(--se-panel-2);\n opacity: 0.72;\n}\n.se-import-overlay-progress__item img,\n.se-import-overlay-progress__placeholder {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.se-import-overlay-progress__item--current {\n border-color: var(--se-primary);\n box-shadow: 0 0 0 1px var(--se-primary);\n opacity: 1;\n z-index: 3;\n}\n.se-import-overlay-progress__item--done {\n opacity: 1;\n}\n.se-import-overlay-progress__item--queued {\n opacity: 0.64;\n}\n.se-import-overlay-progress__more {\n display: grid;\n min-width: 28px;\n height: 24px;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n}\n.se-import-overlay-progress__check {\n position: absolute;\n right: 3px;\n bottom: 3px;\n display: grid;\n width: 16px;\n height: 16px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 11px;\n font-weight: 900;\n line-height: 1;\n}\n.se-import-option {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 18px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n background:\n linear-gradient(\n 135deg,\n rgba(35, 39, 81, 0.95),\n rgba(31, 35, 73, 0.95));\n box-shadow: inset 3px 0 0 var(--se-primary);\n cursor: pointer;\n padding: 22px;\n margin-bottom: 1rem;\n}\n.se-import-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.se-import-option__icon {\n display: grid;\n width: 40px;\n height: 40px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 64, 118, 0.12);\n}\n.se-import-option__icon img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n}\n.se-import-option__body {\n display: grid;\n gap: 8px;\n min-width: 0;\n}\n.se-import-option__title {\n font-size: 17px;\n font-weight: 800;\n}\n.se-import-option__copy {\n color: var(--se-muted);\n font-size: 14px;\n line-height: 1.45;\n}\n.se-import-option__count {\n color: #fff;\n font-size: 16px;\n}\n.se-import-option input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.se-import-toggle {\n position: relative;\n width: 48px;\n height: 28px;\n border-radius: 999px;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);\n}\n.se-import-toggle::after {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #fff;\n content: "";\n transition: transform 160ms ease;\n}\n.se-import-option input:checked + .se-import-toggle {\n background: var(--primary);\n}\n.se-import-option input:checked + .se-import-toggle::after {\n transform: translateX(20px);\n}\n.se-import-advanced {\n margin-top: 26px;\n border-radius: 10px;\n background: rgba(32, 36, 73, 0.7);\n padding: 24px;\n}\n.se-import-advanced summary {\n cursor: pointer;\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-advanced p {\n margin-top: 10px;\n color: var(--se-muted);\n}\n.se-import-transfer {\n position: relative;\n display: grid;\n width: min(720px, 100%);\n min-height: 190px;\n grid-template-columns: 180px minmax(260px, 1fr) 180px;\n align-items: center;\n gap: 28px;\n margin: 0 auto 60px;\n}\n.se-import-transfer__source {\n position: relative;\n display: grid;\n width: 160px;\n height: 160px;\n place-items: center;\n animation: se-import-source-bounce 1.8s ease-in-out infinite;\n}\n.se-import-transfer--complete .se-import-transfer__source {\n animation: none;\n}\n.se-import-transfer__source::before {\n top: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source::after {\n bottom: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source img {\n width: 192px;\n height: 192px;\n object-fit: contain;\n}\n.se-import-transfer__source--lumia {\n animation-delay: 0.22s;\n}\n.se-import-transfer__files {\n position: relative;\n height: 130px;\n}\n.se-import-transfer__file {\n position: absolute;\n top: 50%;\n left: -18px;\n width: 56px;\n height: 66px;\n object-fit: contain;\n transform: translateY(-50%);\n filter: drop-shadow(0 10px 12px rgba(8, 9, 25, 0.25));\n animation: se-import-file-fly 2.4s cubic-bezier(0.35, 0, 0.25, 1) infinite;\n}\n.se-import-transfer--complete .se-import-transfer__file {\n display: none;\n}\n.se-import-transfer__done {\n position: absolute;\n right: -8px;\n bottom: -8px;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 20px;\n font-weight: 900;\n box-shadow: 0 10px 20px rgba(6, 201, 111, 0.26);\n}\n.se-import-transfer__file--one {\n animation-delay: 0s;\n}\n.se-import-transfer__file--two {\n animation-delay: 0.38s;\n}\n.se-import-transfer__file--three {\n animation-delay: 0.76s;\n}\n.se-import-transfer__file--four {\n animation-delay: 1.14s;\n}\n@keyframes se-import-source-bounce {\n 0%, 100% {\n transform: translateY(0) scale(1);\n }\n 50% {\n transform: translateY(-8px) scale(1.025);\n }\n}\n@keyframes se-import-file-fly {\n 0% {\n opacity: 0;\n transform: translate(-10px, -50%) scale(0.82) rotate(-8deg);\n }\n 12% {\n opacity: 1;\n }\n 45% {\n transform: translate(145px, calc(-50% - 18px)) scale(1.08) rotate(5deg);\n }\n 82% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: translate(330px, -50%) scale(0.9) rotate(10deg);\n }\n}\n.se-import-mirror-head {\n display: grid;\n grid-template-columns: minmax(220px, auto) minmax(180px, 1fr) auto;\n align-items: center;\n gap: 14px;\n}\n.se-import-mirror-head p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n}\n.se-import-mirror-head span {\n flex: 0 0 auto;\n color: var(--se-muted);\n font-weight: 700;\n}\n.se-import-mirror-head strong {\n color: var(--se-text);\n font-size: 14px;\n}\n.se-import-progress {\n width: 100%;\n height: 14px;\n margin-top: 0;\n overflow: hidden;\n border: 0;\n border-radius: 999px;\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-bar {\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-value {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-progress::-moz-progress-bar {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-asset-list {\n margin-top: 22px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n}\n.se-import-asset-row {\n display: grid;\n grid-template-columns: 32px minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 14px;\n min-height: 42px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-asset-row__icon {\n width: 24px;\n height: 28px;\n justify-self: end;\n object-fit: contain;\n}\n.se-import-asset-row__url {\n overflow: hidden;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-asset-row__state {\n color: #9b8cff;\n font-weight: 800;\n}\n.se-import-asset-row--done .se-import-asset-row__state,\n.se-import-asset-row--reused .se-import-asset-row__state {\n color: var(--se-green);\n}\n.se-import-asset-row--failed .se-import-asset-row__state,\n.se-import-asset-row__error {\n color: #ff8080;\n}\n.se-import-link-button {\n border: 0;\n background: transparent;\n color: #ff9ab6;\n cursor: pointer;\n font: inherit;\n font-weight: 800;\n}\n.se-import-overview {\n margin-top: 28px;\n border: 1px solid var(--se-border);\n border-radius: 12px;\n background: rgba(26, 30, 61, 0.62);\n padding: 28px;\n}\n.se-import-overview h3 {\n margin-bottom: 18px;\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-row {\n display: grid;\n grid-template-columns: 190px minmax(0, 1fr) auto;\n gap: 18px;\n align-items: center;\n min-height: 48px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n}\n.se-import-row strong {\n min-width: 0;\n overflow: hidden;\n color: var(--se-text);\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-row em {\n color: var(--se-muted);\n font-style: normal;\n}\n.se-import-review-card {\n display: flex;\n justify-content: space-between;\n gap: 18px;\n border: 1px solid var(--se-border);\n border-radius: 10px;\n background: rgba(30, 34, 71, 0.8);\n padding: 20px;\n}\n.se-import-review-card__type {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-weight: 800;\n}\n.se-import-review-card p {\n margin-top: 8px;\n color: var(--se-muted);\n line-height: 1.45;\n}\n.se-import-review-card__status {\n flex: 0 0 auto;\n color: #facc15;\n font-size: 11px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-review-bulk,\n.se-import-actions--inline {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n margin-top: 16px;\n}\n.se-import-muted {\n margin-top: 16px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-generated {\n display: grid;\n gap: 12px;\n margin-top: 18px;\n}\n.se-import-generated__title {\n font-weight: 800;\n}\n.se-import-preview {\n width: 100%;\n height: 260px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n background: repeating-conic-gradient(#1a1c20 0% 25%, #1d1f24 0% 50%) 50% / 20px 20px;\n}\n.se-import-code {\n margin-top: 16px;\n}\n.se-import-code summary {\n cursor: pointer;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-code pre {\n max-height: 220px;\n margin: 10px 0 0;\n overflow: auto;\n border-radius: 8px;\n background: rgba(0, 0, 0, 0.28);\n padding: 12px;\n color: #d8dcff;\n font-size: 12px;\n}\n.se-import-error {\n margin-top: 18px;\n border: 1px solid rgba(239, 68, 68, 0.45);\n border-radius: 8px;\n background: rgba(220, 38, 38, 0.12);\n padding: 12px;\n color: #fca5a5;\n}\n.se-import-error__title {\n font-weight: 800;\n}\n.se-import-error__hint {\n margin-top: 6px;\n white-space: pre-wrap;\n}\n.se-import-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n margin-top: 8px;\n}\nfooter.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n}\n@media (max-height: 760px) {\n footer.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n }\n}\n@media (max-width: 900px) {\n .se-import__shell {\n min-height: 0;\n padding: 24px 18px;\n }\n .se-import__content {\n min-height: 0;\n padding-top: 32px;\n }\n .se-import-stepper {\n grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));\n }\n .se-import-step__label {\n font-size: 13px;\n }\n .se-import-grid--four,\n .se-import-grid--two,\n .se-import-transfer {\n grid-template-columns: 1fr;\n }\n .se-import-transfer {\n justify-items: center;\n }\n .se-import-transfer__files {\n width: min(360px, 100%);\n }\n .se-import-option,\n .se-import-row,\n .se-import-asset-row {\n grid-template-columns: 1fr;\n }\n .se-import-mirror-head,\n .se-import-review-card {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n');
|
|
5812
5872
|
|
|
5813
5873
|
// src/assets/source_se.svg
|
|
5814
5874
|
var source_se_default = 'data:image/svg+xml,<svg width="157" height="164" viewBox="0 0 157 164" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<rect x="8.5" y="9.5" width="139" height="145" fill="%23242444" stroke="%23FF4076" stroke-width="3"/>%0A<path d="M87.1229 44.9224L89.0788 48.7235C102.041 53.3686 110.947 65.8756 110.947 79.7241C110.947 97.8858 96.1663 112.658 77.9929 112.658C59.8196 112.658 45.0457 97.8858 45.0457 79.7241C45.0457 65.8684 53.9519 53.3686 66.9143 48.7235L68.8702 44.9296C53.1725 49.0337 42 63.3222 42 79.7241C42 99.5592 58.1524 115.701 78.0001 115.701C97.8479 115.701 114 99.5592 114 79.7241C114 63.3222 102.828 49.0265 87.1229 44.9224Z" fill="url(%23paint0_linear_1424_495)"/>%0A<mask id="mask0_1424_495" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="47" y="48" width="62" height="63">%0A<path d="M77.9986 110.386C94.991 110.386 108.766 96.6196 108.766 79.638C108.766 62.6563 94.991 48.8899 77.9986 48.8899C61.0061 48.8899 47.231 62.6563 47.231 79.638C47.231 96.6196 61.0061 110.386 77.9986 110.386Z" fill="white"/>%0A</mask>%0A<g mask="url(%23mask0_1424_495)">%0A<path d="M108.825 78.9093C108.651 81.2463 105.036 90.9619 100.59 90.9619C98.7853 90.9619 98.3812 88.322 98.0853 86.3602C97.2841 89.4905 91.7629 96.2563 87.6706 96.2563C80.2295 96.2563 78.4974 80.5683 77.9921 78.4766C77.4869 80.561 75.7548 96.2563 68.3137 96.2563C64.2215 96.2563 58.7002 89.4977 57.8991 86.3602C57.6031 88.322 57.2062 90.9619 55.3947 90.9619C50.9487 90.9619 47.3328 81.2463 47.1596 78.9093C46.207 80.3158 46.2214 85.9995 47.636 89.6419C52.3561 101.795 64.1782 110.429 77.9849 110.429C91.7917 110.429 103.614 101.795 108.334 89.6419C109.749 85.9995 109.763 80.3231 108.81 78.9093H108.825Z" fill="url(%23paint1_linear_1424_495)"/>%0A<path d="M77.9988 96.2998C79.2258 98.5497 81.8961 101.918 86.4719 101.918C91.0478 101.918 94.6059 97.2014 95.7968 95.2105C95.4143 96.6097 94.642 99.6032 97.132 99.6032C102.841 99.6032 106.969 90.5798 106.969 90.5798C102.466 102.178 91.1777 110.422 77.9988 110.422C64.8199 110.422 53.532 102.178 49.0283 90.5798C49.0283 90.5798 53.1567 99.6032 58.8656 99.6032C61.3628 99.6032 60.5833 96.6021 60.2008 95.2105C61.3917 97.2014 64.8343 101.918 69.5257 101.918C74.1014 101.918 76.7646 98.5428 77.9988 96.2998Z" fill="url(%23paint2_linear_1424_495)"/>%0A<path d="M85.2523 106.419C82.4448 106.419 80.2579 105.546 77.9989 104.14C75.7399 105.539 73.553 106.419 70.7455 106.419C66.4656 106.419 65.1664 105.157 63.6147 104.003C63.658 105.474 65.1592 107.552 66.7109 108.301C70.1537 109.817 74.0221 110.422 77.9989 110.422C81.9756 110.422 85.8442 109.809 89.2868 108.301C90.8385 107.544 92.3326 105.474 92.3831 104.003C90.8313 105.157 89.5323 106.419 85.2523 106.419Z" fill="url(%23paint3_linear_1424_495)"/>%0A</g>%0A<path d="M73.8428 64.7073L69.4257 74.0622C69.2453 74.4446 69.1804 74.8773 69.2525 75.3029L70.6527 83.7562C70.696 84.0303 71.1002 84.0303 71.1435 83.7562L71.9013 79.1473C72.2116 77.2359 73.2292 75.5048 74.7522 74.3003L73.8428 64.7001V64.7073Z" fill="%23FF4800"/>%0A<path d="M82.1584 64.7073L86.5755 74.0622C86.7559 74.4446 86.8208 74.8773 86.7487 75.3029L85.3485 83.7634C85.3052 84.0376 84.9082 84.0376 84.8577 83.7634L84.0999 79.1473C83.7896 77.2359 82.7719 75.5048 81.249 74.3003L82.1584 64.7001V64.7073Z" fill="%23FF4800"/>%0A<path d="M84.5241 50.0291L78.4687 38.2867C78.2739 37.9044 77.7326 37.9044 77.5305 38.2867L71.4751 50.0219C71.2226 50.5052 71.1287 51.0606 71.2081 51.5943L74.261 73.0451L73.8063 75.0503L75.4158 79.4645C75.4519 79.5655 75.5457 79.6304 75.6468 79.6304H80.3308C80.4319 79.6304 80.5257 79.5655 80.5618 79.4645L82.1712 75.0503L81.7165 73.0451L84.7695 51.5943C84.8489 51.0534 84.7551 50.5052 84.5024 50.0219L84.5241 50.0291Z" fill="url(%23paint4_linear_1424_495)"/>%0A<path d="M77.7905 69.5107L75.6397 74.8265C75.3077 75.6488 75.2427 76.5576 75.4593 77.4159L77.7544 86.605C77.8193 86.8575 78.1802 86.8575 78.2379 86.605L80.5331 77.4159C80.7495 76.5576 80.6846 75.6488 80.3526 74.8265L78.2019 69.5107C78.1225 69.3232 77.8554 69.3232 77.7832 69.5107H77.7905Z" fill="%23FF4800"/>%0A<rect width="15" height="16" fill="%23FF4076"/>%0A<rect y="148" width="15" height="16" fill="%23FF4076"/>%0A<rect x="142" width="15" height="16" fill="%23FF4076"/>%0A<rect x="142" y="148" width="15" height="16" fill="%23FF4076"/>%0A<defs>%0A<linearGradient id="paint0_linear_1424_495" x1="78.0001" y1="24.4742" x2="78.0001" y2="138.609" gradientUnits="userSpaceOnUse">%0A<stop offset="0.3" stop-color="%2300ADFF"/>%0A<stop offset="1" stop-color="%231542FF"/>%0A</linearGradient>%0A<linearGradient id="paint1_linear_1424_495" x1="77.9993" y1="79.7965" x2="77.9993" y2="120.816" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23FCE3AD"/>%0A<stop offset="0.07" stop-color="%23FCE2A4"/>%0A<stop offset="0.19" stop-color="%23FCE08B"/>%0A<stop offset="0.33" stop-color="%23FCDD64"/>%0A<stop offset="0.48" stop-color="%23FCDA32"/>%0A<stop offset="0.66" stop-color="%23F9BC22"/>%0A<stop offset="1" stop-color="%23F57700"/>%0A</linearGradient>%0A<linearGradient id="paint2_linear_1424_495" x1="77.9988" y1="90.2913" x2="77.9988" y2="113.603" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23FCD619"/>%0A<stop offset="0.35" stop-color="%23F9B811"/>%0A<stop offset="1" stop-color="%23F57700"/>%0A</linearGradient>%0A<linearGradient id="paint3_linear_1424_495" x1="77.9989" y1="101.947" x2="77.9989" y2="112.694" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23F57700"/>%0A<stop offset="1" stop-color="%23FF4800"/>%0A</linearGradient>%0A<linearGradient id="paint4_linear_1424_495" x1="77.9996" y1="38.0054" x2="77.9996" y2="92.2167" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23E4E4E4"/>%0A<stop offset="0.88" stop-color="%23B6B8B8"/>%0A</linearGradient>%0A</defs>%0A</svg>%0A';
|
package/dist/se-import.js
CHANGED
|
@@ -1503,8 +1503,40 @@ var SE_KAPPAGEN_EVENT_TO_LUMIA_ALERT = {
|
|
|
1503
1503
|
// All three drop silently; the rest of the widget (size, spawn zone,
|
|
1504
1504
|
// per-event flags for the remaining events) still imports.
|
|
1505
1505
|
};
|
|
1506
|
+
function normalizeKappagenChatEmoteMode(mode) {
|
|
1507
|
+
const normalized = String(mode ?? "").trim().toLowerCase();
|
|
1508
|
+
if (!normalized || normalized === "off" || normalized === "false" || normalized === "none") return "off";
|
|
1509
|
+
if (normalized.includes("combo")) return "combo";
|
|
1510
|
+
return "show-all";
|
|
1511
|
+
}
|
|
1506
1512
|
function mapKappagen(widget, ctx) {
|
|
1507
1513
|
const v = widget.variables ?? {};
|
|
1514
|
+
const kappagenName = widget.name ?? widget.id ?? "unnamed widget";
|
|
1515
|
+
console.groupCollapsed("[SE Import][Kappagen raw widget]", kappagenName);
|
|
1516
|
+
console.log("Full StreamElements widget:", widget);
|
|
1517
|
+
console.log("Raw variables/settings:", widget.variables ?? null);
|
|
1518
|
+
console.log("Listeners:", widget.listeners ?? null);
|
|
1519
|
+
console.log("Events:", v.events ?? null);
|
|
1520
|
+
console.log("Events config:", v.eventsConfig ?? null);
|
|
1521
|
+
console.log("Kappagen animation/source settings:", {
|
|
1522
|
+
cheersplosions: v.cheersplosions,
|
|
1523
|
+
emotesplosion: v.emotesplosion,
|
|
1524
|
+
emotesplosiondir: v.emotesplosiondir,
|
|
1525
|
+
emotesplosionduration: v.emotesplosionduration,
|
|
1526
|
+
mode: v.mode,
|
|
1527
|
+
size: v.size,
|
|
1528
|
+
spawnzone: v.spawnzone,
|
|
1529
|
+
gif: v.gif,
|
|
1530
|
+
emoji: v.emoji,
|
|
1531
|
+
bttv: v.bttv,
|
|
1532
|
+
ffz: v.ffz,
|
|
1533
|
+
sevenTv: v.sevenTv,
|
|
1534
|
+
duration: v.duration,
|
|
1535
|
+
direction: v.direction,
|
|
1536
|
+
fullscreen: v.fullscreen,
|
|
1537
|
+
limit: v.limit
|
|
1538
|
+
});
|
|
1539
|
+
console.groupEnd();
|
|
1508
1540
|
const eventsFromNested = v.eventsConfig ? {
|
|
1509
1541
|
subscriber: v.eventsConfig.subscriber?.enabled ?? true,
|
|
1510
1542
|
follower: v.eventsConfig.follower?.enabled ?? true,
|
|
@@ -1513,9 +1545,10 @@ function mapKappagen(widget, ctx) {
|
|
|
1513
1545
|
tip: v.eventsConfig.tip?.enabled ?? true
|
|
1514
1546
|
} : null;
|
|
1515
1547
|
const events = v.events ?? eventsFromNested ?? { subscriber: true, follower: true, cheer: true, raid: true, tip: true };
|
|
1548
|
+
const chatEmoteMode = normalizeKappagenChatEmoteMode(v.mode);
|
|
1516
1549
|
const alertTriggers = Object.entries(events).filter(([, enabled]) => !!enabled).map(([seKey]) => SE_KAPPAGEN_EVENT_TO_LUMIA_ALERT[seKey]).filter((x) => !!x);
|
|
1517
1550
|
const alertEmotes = ["Kappa", "<3", "imGlitch"];
|
|
1518
|
-
|
|
1551
|
+
const unit = buildUnit(
|
|
1519
1552
|
widget,
|
|
1520
1553
|
"emotealert",
|
|
1521
1554
|
{
|
|
@@ -1535,6 +1568,9 @@ function mapKappagen(widget, ctx) {
|
|
|
1535
1568
|
animationTime: typeof v.duration === "number" ? v.duration : 5,
|
|
1536
1569
|
duration: typeof v.duration === "number" ? v.duration : 5,
|
|
1537
1570
|
useAnimatedEmotes: true,
|
|
1571
|
+
alertOn: true,
|
|
1572
|
+
chatEmotesOn: chatEmoteMode !== "off",
|
|
1573
|
+
chatEmoteMode,
|
|
1538
1574
|
alertNumberEmotes: typeof v.limit === "number" && v.limit > 0 ? v.limit : 30,
|
|
1539
1575
|
alertEmotes,
|
|
1540
1576
|
alertTriggers,
|
|
@@ -1561,6 +1597,15 @@ function mapKappagen(widget, ctx) {
|
|
|
1561
1597
|
},
|
|
1562
1598
|
ctx
|
|
1563
1599
|
);
|
|
1600
|
+
console.groupCollapsed("[SE Import][Kappagen mapped emotealert]", kappagenName);
|
|
1601
|
+
console.log("Resolved events:", events);
|
|
1602
|
+
console.log("Mapped alert triggers:", alertTriggers);
|
|
1603
|
+
console.log("Mapped chat emote mode:", chatEmoteMode);
|
|
1604
|
+
console.log("Mapped alert emotes:", alertEmotes);
|
|
1605
|
+
console.log("Mapped Emotealert unit:", unit);
|
|
1606
|
+
console.log("Mapped Emotealert content:", unit.module?.content ?? null);
|
|
1607
|
+
console.groupEnd();
|
|
1608
|
+
return unit;
|
|
1564
1609
|
}
|
|
1565
1610
|
function mapLeaderboardFromVariables(widget, currency, ctx) {
|
|
1566
1611
|
const v = widget.variables ?? {};
|
|
@@ -1753,7 +1798,9 @@ function liftSESpritesIntoTiers(types) {
|
|
|
1753
1798
|
const cat = SE_TYPE_TO_CATEGORY[seKey];
|
|
1754
1799
|
if (!cat) continue;
|
|
1755
1800
|
const variations = block?.variations ?? [];
|
|
1756
|
-
const usable = variations.filter(
|
|
1801
|
+
const usable = variations.filter(
|
|
1802
|
+
(v) => typeof (v?.preview ?? v?.src) === "string" && (v.preview ?? v.src ?? "").length > 0
|
|
1803
|
+
);
|
|
1757
1804
|
const flagged = usable.filter((v) => v.default === true);
|
|
1758
1805
|
const picked = flagged.length > 0 ? flagged : usable;
|
|
1759
1806
|
const seenAmounts = /* @__PURE__ */ new Set();
|
|
@@ -1764,7 +1811,7 @@ function liftSESpritesIntoTiers(types) {
|
|
|
1764
1811
|
seenAmounts.add(amount);
|
|
1765
1812
|
tiers.push({
|
|
1766
1813
|
minAmount: amount,
|
|
1767
|
-
imageUrl: v.src,
|
|
1814
|
+
imageUrl: v.preview ?? v.src,
|
|
1768
1815
|
scale: typeof v.cheerSize === "number" && v.cheerSize > 0 ? v.cheerSize : 1
|
|
1769
1816
|
});
|
|
1770
1817
|
}
|
|
@@ -1815,58 +1862,71 @@ function mapHypeCup(widget, ctx) {
|
|
|
1815
1862
|
const maxBodies = typeof v.recentEvents === "number" && v.recentEvents > 0 ? Math.min(300, Math.max(10, v.recentEvents)) : 80;
|
|
1816
1863
|
const duration = typeof v.duration === "number" && v.duration > 0 ? Math.min(15, Math.max(1, v.duration)) : 3;
|
|
1817
1864
|
const sprites = liftSESpritesIntoTiers(v.types);
|
|
1818
|
-
return buildUnit(
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1865
|
+
return buildUnit(
|
|
1866
|
+
widget,
|
|
1867
|
+
"tipjar",
|
|
1868
|
+
{
|
|
1869
|
+
content: {
|
|
1870
|
+
version: 1,
|
|
1871
|
+
// Phase 1 ships a single preset; SE's per-cup polygon set isn't lifted
|
|
1872
|
+
// yet (it'd require multi-cup support which we deliberately deferred).
|
|
1873
|
+
// The streamer can swap a custom cup image + wireframe via Settings.
|
|
1874
|
+
preset: "glass-mug",
|
|
1875
|
+
customCup: null,
|
|
1876
|
+
cup: {
|
|
1877
|
+
x: cupX,
|
|
1878
|
+
y: cupY,
|
|
1879
|
+
scale: 1,
|
|
1880
|
+
opacity: 1
|
|
1881
|
+
},
|
|
1882
|
+
physics: {
|
|
1883
|
+
gravity: 1,
|
|
1884
|
+
bounce,
|
|
1885
|
+
friction: 0.06,
|
|
1886
|
+
maxBodies
|
|
1887
|
+
},
|
|
1888
|
+
tokens: {
|
|
1889
|
+
defaultRadius: 26
|
|
1890
|
+
},
|
|
1891
|
+
events: categoriesFromListeners(widget.listeners),
|
|
1892
|
+
chat: {
|
|
1893
|
+
useViewerAvatars: true
|
|
1894
|
+
},
|
|
1895
|
+
display: {
|
|
1896
|
+
showWireframes: !!v.showWireframes,
|
|
1897
|
+
showEventMessages: !!v.textEnabled,
|
|
1898
|
+
messageDuration: duration
|
|
1899
|
+
},
|
|
1900
|
+
sprites,
|
|
1901
|
+
// Phase 2 defaults for goal/break — disabled by import. Streamer
|
|
1902
|
+
// can enable in Settings; SE has no equivalent so nothing to lift.
|
|
1903
|
+
goal: {
|
|
1904
|
+
active: false,
|
|
1905
|
+
currency: "tips",
|
|
1906
|
+
target: 100,
|
|
1907
|
+
current: 0,
|
|
1908
|
+
readoutTemplate: "{{current}} / {{target}}",
|
|
1909
|
+
textColor: "#ffffff",
|
|
1910
|
+
hitAt: null
|
|
1911
|
+
},
|
|
1912
|
+
break: { enabled: false, command: "!breakjar", rebuildDelay: 5e3 },
|
|
1913
|
+
// Source-side knobs without a Lumia equivalent — preserved under
|
|
1914
|
+
// the generic `importMeta` envelope for future phases (per-cup
|
|
1915
|
+
// polygons + enter/movement physics tweaks). The per-event
|
|
1916
|
+
// sprite sets were already lifted into native `sprites` above.
|
|
1917
|
+
importMeta: buildImportMeta(widget, {
|
|
1918
|
+
enterFrom: v.enterFrom ?? null,
|
|
1919
|
+
preventMovement: !!v.preventMovement,
|
|
1920
|
+
fullscreen: !!v.fullscreen,
|
|
1921
|
+
cups: v.cups ?? null
|
|
1922
|
+
})
|
|
1849
1923
|
},
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
goal: { active: false, currency: "tips", target: 100, current: 0, readoutTemplate: "{{current}} / {{target}}", textColor: "#ffffff", hitAt: null },
|
|
1854
|
-
break: { enabled: false, command: "!breakjar", rebuildDelay: 5e3 },
|
|
1855
|
-
// Source-side knobs without a Lumia equivalent — preserved under
|
|
1856
|
-
// the generic `importMeta` envelope for future phases (per-cup
|
|
1857
|
-
// polygons + enter/movement physics tweaks). The per-event
|
|
1858
|
-
// sprite sets were already lifted into native `sprites` above.
|
|
1859
|
-
importMeta: buildImportMeta(widget, {
|
|
1860
|
-
enterFrom: v.enterFrom ?? null,
|
|
1861
|
-
preventMovement: !!v.preventMovement,
|
|
1862
|
-
fullscreen: !!v.fullscreen,
|
|
1863
|
-
cups: v.cups ?? null
|
|
1864
|
-
})
|
|
1924
|
+
css: {
|
|
1925
|
+
background: "transparent"
|
|
1926
|
+
}
|
|
1865
1927
|
},
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
}
|
|
1869
|
-
}, ctx);
|
|
1928
|
+
ctx
|
|
1929
|
+
);
|
|
1870
1930
|
}
|
|
1871
1931
|
function clamp01(n) {
|
|
1872
1932
|
if (!Number.isFinite(n)) return 0.5;
|
|
@@ -4678,7 +4738,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
4678
4738
|
}
|
|
4679
4739
|
|
|
4680
4740
|
// src/se-import/ui/SEImportWizard.css
|
|
4681
|
-
styleInject('.se-import,\n.se-import * {\n box-sizing: border-box;\n}\n.se-import {\n --se-bg: #17162a;\n --se-surface: #27264a;\n --se-panel: #171b38;\n --se-panel-2: #202449;\n --se-border: rgba(116, 124, 211, 0.24);\n --se-border-strong: rgba(126, 128, 255, 0.58);\n --se-text: #f5f4ff;\n --se-muted: #bab8d2;\n --se-primary: #ff4076;\n --se-purple: #393853;\n --se-green: #06c96f;\n --se-warn: #f7a42b;\n width: 100%;\n height: 100%;\n min-width: min(680px, 100%);\n color: var(--se-text);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.se-import__shell {\n border-radius: 0;\n padding: 28px 48px 24px;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.se-import__header {\n flex: 0 0 auto;\n}\nfooter.se-import-actions {\n flex: 0 0 auto;\n}\n.se-import__header {\n display: grid;\n justify-items: center;\n gap: 42px;\n}\n.se-import__title {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n font-size: 20px;\n font-weight: 500;\n}\n.se-import-stepper {\n display: grid;\n width: min(760px, 100%);\n grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));\n}\n.se-import-step {\n position: relative;\n display: grid;\n justify-items: center;\n gap: 12px;\n min-width: 0;\n color: rgba(255, 255, 255, 0.72);\n}\n.se-import-step__label {\n color: var(--se-text);\n font-size: 18px;\n line-height: 1.1;\n}\n.se-import-step__line {\n position: absolute;\n top: 42px;\n left: 50%;\n width: 100%;\n height: 2px;\n background: rgba(255, 255, 255, 0.16);\n}\n.se-import-step:last-child .se-import-step__line {\n display: none;\n}\n.se-import-step__dot {\n z-index: 1;\n display: grid;\n width: 22px;\n height: 22px;\n place-items: center;\n border-radius: 50%;\n background: #47485e;\n color: #fff;\n font-size: 13px;\n font-weight: 700;\n line-height: 1;\n}\n.se-import-step--active .se-import-step__dot {\n background: var(--se-primary);\n}\n.se-import-step--done .se-import-step__dot {\n background: var(--se-green);\n}\n.se-import-step--done .se-import-step__line {\n background: var(--se-green);\n}\n.se-import-step--done:has(+ .se-import-step--active) .se-import-step__line {\n background:\n linear-gradient(\n 90deg,\n var(--se-green),\n var(--se-primary));\n}\n.se-import__content {\n display: grid;\n place-items: center;\n padding: 64px 0 28px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n@media (max-height: 760px) {\n .se-import__shell {\n padding: 18px 32px 16px;\n }\n .se-import__content {\n padding: 32px 0 16px;\n }\n}\n.se-import-panel {\n width: min(100%, 1080px);\n padding: 28px;\n}\n.se-import-panel--narrow {\n width: min(100%, 1140px);\n}\n.se-import-panel--medium {\n width: min(100%, 880px);\n}\n.se-import-panel--wide {\n width: min(100%, 1000px);\n}\n.se-import-panel--confirm {\n width: min(100%, 800px);\n}\n.se-import-panel h2,\n.se-import-panel h3,\n.se-import-panel p {\n margin: 0;\n}\n.se-import-panel h2 {\n font-size: 26px;\n font-weight: 700;\n line-height: 1.15;\n}\n.se-import-panel > p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n line-height: 1.45;\n}\n.se-import-field {\n margin-top: 34px;\n}\n.se-import-field .mui-ls-input {\n --ls-control-height: 66px;\n}\n.se-import-field .MuiInputLabel-root {\n color: var(--se-text);\n font-weight: 700;\n}\n.se-import-field .MuiInputLabel-root.Mui-focused {\n color: #dfe1ff;\n}\n.se-import-field .MuiInputBase-root {\n font-size: 18px;\n}\n.se-import-token-loading {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 13px;\n font-weight: 700;\n}\n.se-import-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.2);\n border-top-color: var(--se-primary);\n border-radius: 50%;\n animation: se-import-spin 800ms linear infinite;\n}\n@keyframes se-import-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.se-import-help {\n display: flex;\n gap: 18px;\n margin-top: 30px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n padding: 24px;\n color: var(--white2);\n}\n.se-import-help__icon {\n display: grid;\n width: 30px;\n height: 30px;\n flex: 0 0 auto;\n place-items: center;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n color: var(--white2);\n font-weight: 800;\n}\n.se-import-help__title {\n color: var(--se-text);\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-help__image {\n display: block;\n width: min(100%, 560px);\n height: auto;\n margin-top: 16px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n}\n.se-import-help ol {\n margin: 16px 0 0;\n padding-left: 18px;\n font-size: 15px;\n line-height: 1.7;\n}\n.se-import-help a {\n color: var(--primary);\n font-weight: 700;\n}\n.se-import-help--info {\n align-items: center;\n}\n.se-import-section-title {\n display: flex;\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n.se-import-section-title__num {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 46px;\n height: 46px;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n font-size: 1.5rem;\n font-weight: 800;\n}\n.se-import-section-title__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.se-import-section-title h3 {\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-section-title p {\n margin-top: 4px;\n color: var(--se-muted);\n font-size: 14px;\n}\n.se-import-grid {\n display: grid;\n gap: 8px;\n margin-top: 10px;\n}\n.se-import-grid--four {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.se-import-grid--stats {\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n}\n.se-import-grid--two {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.se-import-stat {\n min-height: 116px;\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n background:\n linear-gradient(\n 135deg,\n rgba(42, 47, 92, 0.9),\n rgba(33, 38, 78, 0.9));\n padding: 24px 22px;\n}\n.se-import-stat--success {\n background:\n linear-gradient(\n 135deg,\n rgba(12, 91, 86, 0.72),\n rgba(32, 65, 76, 0.8));\n border-color: rgba(19, 201, 126, 0.25);\n}\n.se-import-stat--info {\n border-color: rgba(116, 104, 255, 0.8);\n box-shadow: inset 3px 0 0 #6e76ff;\n}\n.se-import-stat--warn,\n.se-import-stat--muted {\n box-shadow: inset 3px 0 0 var(--se-warn);\n}\n.se-import-stat__label {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-stat__icon {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}\n.se-import-stat__value {\n margin-top: 12px;\n color: #fff;\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n}\n.se-import-stat__description {\n margin-top: 10px;\n color: var(--se-muted);\n font-size: 13px;\n line-height: 1.35;\n}\n.se-import-stat__sub {\n margin-top: 8px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-mode-card__icon {\n display: grid;\n width: 46px;\n height: 46px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 255, 255, 0.08);\n}\n.se-import-mode-card__icon img {\n width: 30px;\n height: 30px;\n object-fit: contain;\n}\n.se-import-mode-card__features {\n display: grid;\n gap: 6px;\n margin: 0;\n padding-left: 18px;\n}\n.se-import-overlay-progress {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n max-width: min(760px, 100%);\n width: 100%;\n gap: 14px;\n padding: 4px 2px 0;\n}\n.se-import-overlay-progress__copy {\n min-width: 0;\n color: var(--se-text);\n font-size: 13px;\n font-weight: 700;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-overlay-progress__strip,\n.se-import-overlay-progress__stack {\n display: flex;\n align-items: center;\n}\n.se-import-overlay-progress__strip {\n gap: 7px;\n}\n.se-import-overlay-progress__stack {\n margin-right: 5px;\n}\n.se-import-overlay-progress__stack--queued {\n margin-right: 0;\n margin-left: 5px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item {\n margin-left: -16px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item:first-child {\n margin-left: 0;\n}\n.se-import-overlay-progress__item {\n position: relative;\n width: 50px;\n height: 36px;\n flex: 0 0 auto;\n overflow: hidden;\n border: 1px solid var(--se-border);\n border-radius: 6px;\n background: var(--se-panel-2);\n opacity: 0.72;\n}\n.se-import-overlay-progress__item img,\n.se-import-overlay-progress__placeholder {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.se-import-overlay-progress__item--current {\n border-color: var(--se-primary);\n box-shadow: 0 0 0 1px var(--se-primary);\n opacity: 1;\n z-index: 3;\n}\n.se-import-overlay-progress__item--done {\n opacity: 1;\n}\n.se-import-overlay-progress__item--queued {\n opacity: 0.64;\n}\n.se-import-overlay-progress__more {\n display: grid;\n min-width: 28px;\n height: 24px;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n}\n.se-import-overlay-progress__check {\n position: absolute;\n right: 3px;\n bottom: 3px;\n display: grid;\n width: 16px;\n height: 16px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 11px;\n font-weight: 900;\n line-height: 1;\n}\n.se-import-option {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 18px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n background:\n linear-gradient(\n 135deg,\n rgba(35, 39, 81, 0.95),\n rgba(31, 35, 73, 0.95));\n box-shadow: inset 3px 0 0 var(--se-primary);\n cursor: pointer;\n padding: 22px;\n margin-bottom: 1rem;\n}\n.se-import-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.se-import-option__icon {\n display: grid;\n width: 40px;\n height: 40px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 64, 118, 0.12);\n}\n.se-import-option__icon img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n}\n.se-import-option__body {\n display: grid;\n gap: 8px;\n min-width: 0;\n}\n.se-import-option__title {\n font-size: 17px;\n font-weight: 800;\n}\n.se-import-option__copy {\n color: var(--se-muted);\n font-size: 14px;\n line-height: 1.45;\n}\n.se-import-option__count {\n color: #fff;\n font-size: 16px;\n}\n.se-import-option input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.se-import-toggle {\n position: relative;\n width: 48px;\n height: 28px;\n border-radius: 999px;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);\n}\n.se-import-toggle::after {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #fff;\n content: "";\n transition: transform 160ms ease;\n}\n.se-import-option input:checked + .se-import-toggle {\n background: var(--primary);\n}\n.se-import-option input:checked + .se-import-toggle::after {\n transform: translateX(20px);\n}\n.se-import-advanced {\n margin-top: 26px;\n border-radius: 10px;\n background: rgba(32, 36, 73, 0.7);\n padding: 24px;\n}\n.se-import-advanced summary {\n cursor: pointer;\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-advanced p {\n margin-top: 10px;\n color: var(--se-muted);\n}\n.se-import-transfer {\n position: relative;\n display: grid;\n width: min(720px, 100%);\n min-height: 190px;\n grid-template-columns: 180px minmax(260px, 1fr) 180px;\n align-items: center;\n gap: 28px;\n margin: 0 auto 60px;\n}\n.se-import-transfer__source {\n position: relative;\n display: grid;\n width: 160px;\n height: 160px;\n place-items: center;\n animation: se-import-source-bounce 1.8s ease-in-out infinite;\n}\n.se-import-transfer--complete .se-import-transfer__source {\n animation: none;\n}\n.se-import-transfer__source::before {\n top: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source::after {\n bottom: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source img {\n width: 192px;\n height: 192px;\n object-fit: contain;\n}\n.se-import-transfer__source--lumia {\n animation-delay: 0.22s;\n}\n.se-import-transfer__files {\n position: relative;\n height: 130px;\n}\n.se-import-transfer__file {\n position: absolute;\n top: 50%;\n left: -18px;\n width: 56px;\n height: 66px;\n object-fit: contain;\n transform: translateY(-50%);\n filter: drop-shadow(0 10px 12px rgba(8, 9, 25, 0.25));\n animation: se-import-file-fly 2.4s cubic-bezier(0.35, 0, 0.25, 1) infinite;\n}\n.se-import-transfer--complete .se-import-transfer__file {\n display: none;\n}\n.se-import-transfer__done {\n position: absolute;\n right: -8px;\n bottom: -8px;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 20px;\n font-weight: 900;\n box-shadow: 0 10px 20px rgba(6, 201, 111, 0.26);\n}\n.se-import-transfer__file--one {\n animation-delay: 0s;\n}\n.se-import-transfer__file--two {\n animation-delay: 0.38s;\n}\n.se-import-transfer__file--three {\n animation-delay: 0.76s;\n}\n.se-import-transfer__file--four {\n animation-delay: 1.14s;\n}\n@keyframes se-import-source-bounce {\n 0%, 100% {\n transform: translateY(0) scale(1);\n }\n 50% {\n transform: translateY(-8px) scale(1.025);\n }\n}\n@keyframes se-import-file-fly {\n 0% {\n opacity: 0;\n transform: translate(-10px, -50%) scale(0.82) rotate(-8deg);\n }\n 12% {\n opacity: 1;\n }\n 45% {\n transform: translate(145px, calc(-50% - 18px)) scale(1.08) rotate(5deg);\n }\n 82% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: translate(330px, -50%) scale(0.9) rotate(10deg);\n }\n}\n.se-import-mirror-head {\n display: grid;\n grid-template-columns: minmax(220px, auto) minmax(180px, 1fr) auto;\n align-items: center;\n gap: 14px;\n}\n.se-import-mirror-head p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n}\n.se-import-mirror-head span {\n flex: 0 0 auto;\n color: var(--se-muted);\n font-weight: 700;\n}\n.se-import-mirror-head strong {\n color: var(--se-text);\n font-size: 14px;\n}\n.se-import-progress {\n width: 100%;\n height: 14px;\n margin-top: 0;\n overflow: hidden;\n border: 0;\n border-radius: 999px;\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-bar {\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-value {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-progress::-moz-progress-bar {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-asset-list {\n max-height: 360px;\n margin-top: 22px;\n overflow-y: auto;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n}\n.se-import-asset-row {\n display: grid;\n grid-template-columns: 32px minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 14px;\n min-height: 42px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-asset-row__icon {\n width: 24px;\n height: 28px;\n justify-self: end;\n object-fit: contain;\n}\n.se-import-asset-row__url {\n overflow: hidden;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-asset-row__state {\n color: #9b8cff;\n font-weight: 800;\n}\n.se-import-asset-row--done .se-import-asset-row__state,\n.se-import-asset-row--reused .se-import-asset-row__state {\n color: var(--se-green);\n}\n.se-import-asset-row--failed .se-import-asset-row__state,\n.se-import-asset-row__error {\n color: #ff8080;\n}\n.se-import-link-button {\n border: 0;\n background: transparent;\n color: #ff9ab6;\n cursor: pointer;\n font: inherit;\n font-weight: 800;\n}\n.se-import-overview {\n margin-top: 28px;\n border: 1px solid var(--se-border);\n border-radius: 12px;\n background: rgba(26, 30, 61, 0.62);\n padding: 28px;\n}\n.se-import-overview h3 {\n margin-bottom: 18px;\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-row {\n display: grid;\n grid-template-columns: 190px minmax(0, 1fr) auto;\n gap: 18px;\n align-items: center;\n min-height: 48px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n}\n.se-import-row strong {\n min-width: 0;\n overflow: hidden;\n color: var(--se-text);\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-row em {\n color: var(--se-muted);\n font-style: normal;\n}\n.se-import-review-card {\n display: flex;\n justify-content: space-between;\n gap: 18px;\n border: 1px solid var(--se-border);\n border-radius: 10px;\n background: rgba(30, 34, 71, 0.8);\n padding: 20px;\n}\n.se-import-review-card__type {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-weight: 800;\n}\n.se-import-review-card p {\n margin-top: 8px;\n color: var(--se-muted);\n line-height: 1.45;\n}\n.se-import-review-card__status {\n flex: 0 0 auto;\n color: #facc15;\n font-size: 11px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-review-bulk,\n.se-import-actions--inline {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n margin-top: 16px;\n}\n.se-import-muted {\n margin-top: 16px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-generated {\n display: grid;\n gap: 12px;\n margin-top: 18px;\n}\n.se-import-generated__title {\n font-weight: 800;\n}\n.se-import-preview {\n width: 100%;\n height: 260px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n background: repeating-conic-gradient(#1a1c20 0% 25%, #1d1f24 0% 50%) 50% / 20px 20px;\n}\n.se-import-code {\n margin-top: 16px;\n}\n.se-import-code summary {\n cursor: pointer;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-code pre {\n max-height: 220px;\n margin: 10px 0 0;\n overflow: auto;\n border-radius: 8px;\n background: rgba(0, 0, 0, 0.28);\n padding: 12px;\n color: #d8dcff;\n font-size: 12px;\n}\n.se-import-error {\n margin-top: 18px;\n border: 1px solid rgba(239, 68, 68, 0.45);\n border-radius: 8px;\n background: rgba(220, 38, 38, 0.12);\n padding: 12px;\n color: #fca5a5;\n}\n.se-import-error__title {\n font-weight: 800;\n}\n.se-import-error__hint {\n margin-top: 6px;\n white-space: pre-wrap;\n}\n.se-import-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n margin-top: 8px;\n}\nfooter.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n}\n@media (max-height: 760px) {\n footer.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n }\n}\n@media (max-width: 900px) {\n .se-import__shell {\n min-height: 0;\n padding: 24px 18px;\n }\n .se-import__content {\n min-height: 0;\n padding-top: 32px;\n }\n .se-import-stepper {\n grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));\n }\n .se-import-step__label {\n font-size: 13px;\n }\n .se-import-grid--four,\n .se-import-grid--two,\n .se-import-transfer {\n grid-template-columns: 1fr;\n }\n .se-import-transfer {\n justify-items: center;\n }\n .se-import-transfer__files {\n width: min(360px, 100%);\n }\n .se-import-option,\n .se-import-row,\n .se-import-asset-row {\n grid-template-columns: 1fr;\n }\n .se-import-mirror-head,\n .se-import-review-card {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n');
|
|
4741
|
+
styleInject('.se-import,\n.se-import * {\n box-sizing: border-box;\n}\n.se-import {\n --se-bg: #17162a;\n --se-surface: #27264a;\n --se-panel: #171b38;\n --se-panel-2: #202449;\n --se-border: rgba(116, 124, 211, 0.24);\n --se-border-strong: rgba(126, 128, 255, 0.58);\n --se-text: #f5f4ff;\n --se-muted: #bab8d2;\n --se-primary: #ff4076;\n --se-purple: #393853;\n --se-green: #06c96f;\n --se-warn: #f7a42b;\n width: 100%;\n height: 100%;\n min-width: min(680px, 100%);\n color: var(--se-text);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.se-import__shell {\n border-radius: 0;\n padding: 28px 48px 24px;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n.se-import__header {\n flex: 0 0 auto;\n}\nfooter.se-import-actions {\n flex: 0 0 auto;\n}\n.se-import__header {\n display: grid;\n justify-items: center;\n gap: 42px;\n}\n.se-import__title {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n font-size: 20px;\n font-weight: 500;\n}\n.se-import-stepper {\n display: grid;\n width: min(760px, 100%);\n grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));\n}\n.se-import-step {\n position: relative;\n display: grid;\n justify-items: center;\n gap: 12px;\n min-width: 0;\n color: rgba(255, 255, 255, 0.72);\n}\n.se-import-step__label {\n color: var(--se-text);\n font-size: 18px;\n line-height: 1.1;\n}\n.se-import-step__line {\n position: absolute;\n top: 42px;\n left: 50%;\n width: 100%;\n height: 2px;\n background: rgba(255, 255, 255, 0.16);\n}\n.se-import-step:last-child .se-import-step__line {\n display: none;\n}\n.se-import-step__dot {\n z-index: 1;\n display: grid;\n width: 22px;\n height: 22px;\n place-items: center;\n border-radius: 50%;\n background: #47485e;\n color: #fff;\n font-size: 13px;\n font-weight: 700;\n line-height: 1;\n}\n.se-import-step--active .se-import-step__dot {\n background: var(--se-primary);\n}\n.se-import-step--done .se-import-step__dot {\n background: var(--se-green);\n}\n.se-import-step--done .se-import-step__line {\n background: var(--se-green);\n}\n.se-import-step--done:has(+ .se-import-step--active) .se-import-step__line {\n background:\n linear-gradient(\n 90deg,\n var(--se-green),\n var(--se-primary));\n}\n.se-import__content {\n display: grid;\n place-items: center;\n padding: 64px 0 28px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n@media (max-height: 760px) {\n .se-import__shell {\n padding: 18px 32px 16px;\n }\n .se-import__content {\n padding: 32px 0 16px;\n }\n}\n.se-import-panel {\n width: min(100%, 1080px);\n padding: 28px;\n}\n.se-import-panel--narrow {\n width: min(100%, 1140px);\n}\n.se-import-panel--medium {\n width: min(100%, 880px);\n}\n.se-import-panel--wide {\n width: min(100%, 1000px);\n}\n.se-import-panel--confirm {\n width: min(100%, 800px);\n}\n.se-import-panel h2,\n.se-import-panel h3,\n.se-import-panel p {\n margin: 0;\n}\n.se-import-panel h2 {\n font-size: 26px;\n font-weight: 700;\n line-height: 1.15;\n}\n.se-import-panel > p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n line-height: 1.45;\n}\n.se-import-field {\n margin-top: 34px;\n}\n.se-import-field .mui-ls-input {\n --ls-control-height: 66px;\n}\n.se-import-field .MuiInputLabel-root {\n color: var(--se-text);\n font-weight: 700;\n}\n.se-import-field .MuiInputLabel-root.Mui-focused {\n color: #dfe1ff;\n}\n.se-import-field .MuiInputBase-root {\n font-size: 18px;\n}\n.se-import-token-loading {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 13px;\n font-weight: 700;\n}\n.se-import-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.2);\n border-top-color: var(--se-primary);\n border-radius: 50%;\n animation: se-import-spin 800ms linear infinite;\n}\n@keyframes se-import-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.se-import-help {\n display: flex;\n gap: 18px;\n margin-top: 30px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n padding: 24px;\n color: var(--white2);\n}\n.se-import-help__icon {\n display: grid;\n width: 30px;\n height: 30px;\n flex: 0 0 auto;\n place-items: center;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n color: var(--white2);\n font-weight: 800;\n}\n.se-import-help__title {\n color: var(--se-text);\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-help__image {\n display: block;\n width: min(100%, 560px);\n height: auto;\n margin-top: 16px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n}\n.se-import-help ol {\n margin: 16px 0 0;\n padding-left: 18px;\n font-size: 15px;\n line-height: 1.7;\n}\n.se-import-help a {\n color: var(--primary);\n font-weight: 700;\n}\n.se-import-help--info {\n align-items: center;\n}\n.se-import-section-title {\n display: flex;\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n.se-import-section-title__num {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 46px;\n height: 46px;\n border: 1px solid var(--se-purple);\n border-radius: 50%;\n font-size: 1.5rem;\n font-weight: 800;\n}\n.se-import-section-title__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.se-import-section-title h3 {\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-section-title p {\n margin-top: 4px;\n color: var(--se-muted);\n font-size: 14px;\n}\n.se-import-grid {\n display: grid;\n gap: 8px;\n margin-top: 10px;\n}\n.se-import-grid--four {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.se-import-grid--stats {\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n}\n.se-import-grid--two {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.se-import-stat {\n min-height: 116px;\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n background:\n linear-gradient(\n 135deg,\n rgba(42, 47, 92, 0.9),\n rgba(33, 38, 78, 0.9));\n padding: 24px 22px;\n}\n.se-import-stat--success {\n background:\n linear-gradient(\n 135deg,\n rgba(12, 91, 86, 0.72),\n rgba(32, 65, 76, 0.8));\n border-color: rgba(19, 201, 126, 0.25);\n}\n.se-import-stat--info {\n border-color: rgba(116, 104, 255, 0.8);\n box-shadow: inset 3px 0 0 #6e76ff;\n}\n.se-import-stat--warn,\n.se-import-stat--muted {\n box-shadow: inset 3px 0 0 var(--se-warn);\n}\n.se-import-stat__label {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-stat__icon {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}\n.se-import-stat__value {\n margin-top: 12px;\n color: #fff;\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n}\n.se-import-stat__description {\n margin-top: 10px;\n color: var(--se-muted);\n font-size: 13px;\n line-height: 1.35;\n}\n.se-import-stat__sub {\n margin-top: 8px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-mode-card__icon {\n display: grid;\n width: 46px;\n height: 46px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 255, 255, 0.08);\n}\n.se-import-mode-card__icon img {\n width: 30px;\n height: 30px;\n object-fit: contain;\n}\n.se-import-mode-card__features {\n display: grid;\n gap: 6px;\n margin: 0;\n padding-left: 18px;\n}\n.se-import-overlay-progress {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n max-width: min(760px, 100%);\n width: 100%;\n gap: 14px;\n padding: 4px 2px 0;\n}\n.se-import-overlay-progress__copy {\n min-width: 0;\n color: var(--se-text);\n font-size: 13px;\n font-weight: 700;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-overlay-progress__strip,\n.se-import-overlay-progress__stack {\n display: flex;\n align-items: center;\n}\n.se-import-overlay-progress__strip {\n gap: 7px;\n}\n.se-import-overlay-progress__stack {\n margin-right: 5px;\n}\n.se-import-overlay-progress__stack--queued {\n margin-right: 0;\n margin-left: 5px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item {\n margin-left: -16px;\n}\n.se-import-overlay-progress__stack .se-import-overlay-progress__item:first-child {\n margin-left: 0;\n}\n.se-import-overlay-progress__item {\n position: relative;\n width: 50px;\n height: 36px;\n flex: 0 0 auto;\n overflow: hidden;\n border: 1px solid var(--se-border);\n border-radius: 6px;\n background: var(--se-panel-2);\n opacity: 0.72;\n}\n.se-import-overlay-progress__item img,\n.se-import-overlay-progress__placeholder {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.se-import-overlay-progress__item--current {\n border-color: var(--se-primary);\n box-shadow: 0 0 0 1px var(--se-primary);\n opacity: 1;\n z-index: 3;\n}\n.se-import-overlay-progress__item--done {\n opacity: 1;\n}\n.se-import-overlay-progress__item--queued {\n opacity: 0.64;\n}\n.se-import-overlay-progress__more {\n display: grid;\n min-width: 28px;\n height: 24px;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 12px;\n font-weight: 800;\n}\n.se-import-overlay-progress__check {\n position: absolute;\n right: 3px;\n bottom: 3px;\n display: grid;\n width: 16px;\n height: 16px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 11px;\n font-weight: 900;\n line-height: 1;\n}\n.se-import-option {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 18px;\n border: 1px solid var(--se-purple);\n border-radius: 12px;\n background:\n linear-gradient(\n 135deg,\n rgba(35, 39, 81, 0.95),\n rgba(31, 35, 73, 0.95));\n box-shadow: inset 3px 0 0 var(--se-primary);\n cursor: pointer;\n padding: 22px;\n margin-bottom: 1rem;\n}\n.se-import-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.se-import-option__icon {\n display: grid;\n width: 40px;\n height: 40px;\n place-items: center;\n border-radius: 12px;\n background: rgba(255, 64, 118, 0.12);\n}\n.se-import-option__icon img {\n width: 24px;\n height: 24px;\n object-fit: contain;\n}\n.se-import-option__body {\n display: grid;\n gap: 8px;\n min-width: 0;\n}\n.se-import-option__title {\n font-size: 17px;\n font-weight: 800;\n}\n.se-import-option__copy {\n color: var(--se-muted);\n font-size: 14px;\n line-height: 1.45;\n}\n.se-import-option__count {\n color: #fff;\n font-size: 16px;\n}\n.se-import-option input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.se-import-toggle {\n position: relative;\n width: 48px;\n height: 28px;\n border-radius: 999px;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);\n}\n.se-import-toggle::after {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #fff;\n content: "";\n transition: transform 160ms ease;\n}\n.se-import-option input:checked + .se-import-toggle {\n background: var(--primary);\n}\n.se-import-option input:checked + .se-import-toggle::after {\n transform: translateX(20px);\n}\n.se-import-advanced {\n margin-top: 26px;\n border-radius: 10px;\n background: rgba(32, 36, 73, 0.7);\n padding: 24px;\n}\n.se-import-advanced summary {\n cursor: pointer;\n font-size: 18px;\n font-weight: 700;\n}\n.se-import-advanced p {\n margin-top: 10px;\n color: var(--se-muted);\n}\n.se-import-transfer {\n position: relative;\n display: grid;\n width: min(720px, 100%);\n min-height: 190px;\n grid-template-columns: 180px minmax(260px, 1fr) 180px;\n align-items: center;\n gap: 28px;\n margin: 0 auto 60px;\n}\n.se-import-transfer__source {\n position: relative;\n display: grid;\n width: 160px;\n height: 160px;\n place-items: center;\n animation: se-import-source-bounce 1.8s ease-in-out infinite;\n}\n.se-import-transfer--complete .se-import-transfer__source {\n animation: none;\n}\n.se-import-transfer__source::before {\n top: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source::after {\n bottom: -13px;\n left: -13px;\n box-shadow: 155px 0 0 var(--se-primary);\n}\n.se-import-transfer__source img {\n width: 192px;\n height: 192px;\n object-fit: contain;\n}\n.se-import-transfer__source--lumia {\n animation-delay: 0.22s;\n}\n.se-import-transfer__files {\n position: relative;\n height: 130px;\n}\n.se-import-transfer__file {\n position: absolute;\n top: 50%;\n left: -18px;\n width: 56px;\n height: 66px;\n object-fit: contain;\n transform: translateY(-50%);\n filter: drop-shadow(0 10px 12px rgba(8, 9, 25, 0.25));\n animation: se-import-file-fly 2.4s cubic-bezier(0.35, 0, 0.25, 1) infinite;\n}\n.se-import-transfer--complete .se-import-transfer__file {\n display: none;\n}\n.se-import-transfer__done {\n position: absolute;\n right: -8px;\n bottom: -8px;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border-radius: 50%;\n background: var(--se-green);\n color: #fff;\n font-size: 20px;\n font-weight: 900;\n box-shadow: 0 10px 20px rgba(6, 201, 111, 0.26);\n}\n.se-import-transfer__file--one {\n animation-delay: 0s;\n}\n.se-import-transfer__file--two {\n animation-delay: 0.38s;\n}\n.se-import-transfer__file--three {\n animation-delay: 0.76s;\n}\n.se-import-transfer__file--four {\n animation-delay: 1.14s;\n}\n@keyframes se-import-source-bounce {\n 0%, 100% {\n transform: translateY(0) scale(1);\n }\n 50% {\n transform: translateY(-8px) scale(1.025);\n }\n}\n@keyframes se-import-file-fly {\n 0% {\n opacity: 0;\n transform: translate(-10px, -50%) scale(0.82) rotate(-8deg);\n }\n 12% {\n opacity: 1;\n }\n 45% {\n transform: translate(145px, calc(-50% - 18px)) scale(1.08) rotate(5deg);\n }\n 82% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: translate(330px, -50%) scale(0.9) rotate(10deg);\n }\n}\n.se-import-mirror-head {\n display: grid;\n grid-template-columns: minmax(220px, auto) minmax(180px, 1fr) auto;\n align-items: center;\n gap: 14px;\n}\n.se-import-mirror-head p {\n margin-top: 14px;\n color: var(--se-muted);\n font-size: 16px;\n}\n.se-import-mirror-head span {\n flex: 0 0 auto;\n color: var(--se-muted);\n font-weight: 700;\n}\n.se-import-mirror-head strong {\n color: var(--se-text);\n font-size: 14px;\n}\n.se-import-progress {\n width: 100%;\n height: 14px;\n margin-top: 0;\n overflow: hidden;\n border: 0;\n border-radius: 999px;\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-bar {\n background: rgba(255, 64, 118, 0.1);\n}\n.se-import-progress::-webkit-progress-value {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-progress::-moz-progress-bar {\n border-radius: 999px;\n background:\n linear-gradient(\n 90deg,\n #ff4076,\n #e7295f);\n}\n.se-import-asset-list {\n margin-top: 22px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n}\n.se-import-asset-row {\n display: grid;\n grid-template-columns: 32px minmax(0, 1fr) auto auto;\n align-items: center;\n gap: 14px;\n min-height: 42px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-asset-row__icon {\n width: 24px;\n height: 28px;\n justify-self: end;\n object-fit: contain;\n}\n.se-import-asset-row__url {\n overflow: hidden;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-asset-row__state {\n color: #9b8cff;\n font-weight: 800;\n}\n.se-import-asset-row--done .se-import-asset-row__state,\n.se-import-asset-row--reused .se-import-asset-row__state {\n color: var(--se-green);\n}\n.se-import-asset-row--failed .se-import-asset-row__state,\n.se-import-asset-row__error {\n color: #ff8080;\n}\n.se-import-link-button {\n border: 0;\n background: transparent;\n color: #ff9ab6;\n cursor: pointer;\n font: inherit;\n font-weight: 800;\n}\n.se-import-overview {\n margin-top: 28px;\n border: 1px solid var(--se-border);\n border-radius: 12px;\n background: rgba(26, 30, 61, 0.62);\n padding: 28px;\n}\n.se-import-overview h3 {\n margin-bottom: 18px;\n font-size: 18px;\n font-weight: 800;\n}\n.se-import-row {\n display: grid;\n grid-template-columns: 190px minmax(0, 1fr) auto;\n gap: 18px;\n align-items: center;\n min-height: 48px;\n border-top: 1px solid rgba(255, 255, 255, 0.08);\n color: var(--se-muted);\n}\n.se-import-row strong {\n min-width: 0;\n overflow: hidden;\n color: var(--se-text);\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.se-import-row em {\n color: var(--se-muted);\n font-style: normal;\n}\n.se-import-review-card {\n display: flex;\n justify-content: space-between;\n gap: 18px;\n border: 1px solid var(--se-border);\n border-radius: 10px;\n background: rgba(30, 34, 71, 0.8);\n padding: 20px;\n}\n.se-import-review-card__type {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-weight: 800;\n}\n.se-import-review-card p {\n margin-top: 8px;\n color: var(--se-muted);\n line-height: 1.45;\n}\n.se-import-review-card__status {\n flex: 0 0 auto;\n color: #facc15;\n font-size: 11px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n.se-import-review-bulk,\n.se-import-actions--inline {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n margin-top: 16px;\n}\n.se-import-muted {\n margin-top: 16px;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-generated {\n display: grid;\n gap: 12px;\n margin-top: 18px;\n}\n.se-import-generated__title {\n font-weight: 800;\n}\n.se-import-preview {\n width: 100%;\n height: 260px;\n border: 1px solid var(--se-border);\n border-radius: 8px;\n background: repeating-conic-gradient(#1a1c20 0% 25%, #1d1f24 0% 50%) 50% / 20px 20px;\n}\n.se-import-code {\n margin-top: 16px;\n}\n.se-import-code summary {\n cursor: pointer;\n color: var(--se-muted);\n font-size: 13px;\n}\n.se-import-code pre {\n max-height: 220px;\n margin: 10px 0 0;\n overflow: auto;\n border-radius: 8px;\n background: rgba(0, 0, 0, 0.28);\n padding: 12px;\n color: #d8dcff;\n font-size: 12px;\n}\n.se-import-error {\n margin-top: 18px;\n border: 1px solid rgba(239, 68, 68, 0.45);\n border-radius: 8px;\n background: rgba(220, 38, 38, 0.12);\n padding: 12px;\n color: #fca5a5;\n}\n.se-import-error__title {\n font-weight: 800;\n}\n.se-import-error__hint {\n margin-top: 6px;\n white-space: pre-wrap;\n}\n.se-import-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n margin-top: 8px;\n}\nfooter.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n}\n@media (max-height: 760px) {\n footer.se-import-actions:not(.se-import-actions--inline) {\n margin: 0;\n padding: 0;\n }\n}\n@media (max-width: 900px) {\n .se-import__shell {\n min-height: 0;\n padding: 24px 18px;\n }\n .se-import__content {\n min-height: 0;\n padding-top: 32px;\n }\n .se-import-stepper {\n grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));\n }\n .se-import-step__label {\n font-size: 13px;\n }\n .se-import-grid--four,\n .se-import-grid--two,\n .se-import-transfer {\n grid-template-columns: 1fr;\n }\n .se-import-transfer {\n justify-items: center;\n }\n .se-import-transfer__files {\n width: min(360px, 100%);\n }\n .se-import-option,\n .se-import-row,\n .se-import-asset-row {\n grid-template-columns: 1fr;\n }\n .se-import-mirror-head,\n .se-import-review-card {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n');
|
|
4682
4742
|
|
|
4683
4743
|
// src/assets/source_se.svg
|
|
4684
4744
|
var source_se_default = 'data:image/svg+xml,<svg width="157" height="164" viewBox="0 0 157 164" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<rect x="8.5" y="9.5" width="139" height="145" fill="%23242444" stroke="%23FF4076" stroke-width="3"/>%0A<path d="M87.1229 44.9224L89.0788 48.7235C102.041 53.3686 110.947 65.8756 110.947 79.7241C110.947 97.8858 96.1663 112.658 77.9929 112.658C59.8196 112.658 45.0457 97.8858 45.0457 79.7241C45.0457 65.8684 53.9519 53.3686 66.9143 48.7235L68.8702 44.9296C53.1725 49.0337 42 63.3222 42 79.7241C42 99.5592 58.1524 115.701 78.0001 115.701C97.8479 115.701 114 99.5592 114 79.7241C114 63.3222 102.828 49.0265 87.1229 44.9224Z" fill="url(%23paint0_linear_1424_495)"/>%0A<mask id="mask0_1424_495" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="47" y="48" width="62" height="63">%0A<path d="M77.9986 110.386C94.991 110.386 108.766 96.6196 108.766 79.638C108.766 62.6563 94.991 48.8899 77.9986 48.8899C61.0061 48.8899 47.231 62.6563 47.231 79.638C47.231 96.6196 61.0061 110.386 77.9986 110.386Z" fill="white"/>%0A</mask>%0A<g mask="url(%23mask0_1424_495)">%0A<path d="M108.825 78.9093C108.651 81.2463 105.036 90.9619 100.59 90.9619C98.7853 90.9619 98.3812 88.322 98.0853 86.3602C97.2841 89.4905 91.7629 96.2563 87.6706 96.2563C80.2295 96.2563 78.4974 80.5683 77.9921 78.4766C77.4869 80.561 75.7548 96.2563 68.3137 96.2563C64.2215 96.2563 58.7002 89.4977 57.8991 86.3602C57.6031 88.322 57.2062 90.9619 55.3947 90.9619C50.9487 90.9619 47.3328 81.2463 47.1596 78.9093C46.207 80.3158 46.2214 85.9995 47.636 89.6419C52.3561 101.795 64.1782 110.429 77.9849 110.429C91.7917 110.429 103.614 101.795 108.334 89.6419C109.749 85.9995 109.763 80.3231 108.81 78.9093H108.825Z" fill="url(%23paint1_linear_1424_495)"/>%0A<path d="M77.9988 96.2998C79.2258 98.5497 81.8961 101.918 86.4719 101.918C91.0478 101.918 94.6059 97.2014 95.7968 95.2105C95.4143 96.6097 94.642 99.6032 97.132 99.6032C102.841 99.6032 106.969 90.5798 106.969 90.5798C102.466 102.178 91.1777 110.422 77.9988 110.422C64.8199 110.422 53.532 102.178 49.0283 90.5798C49.0283 90.5798 53.1567 99.6032 58.8656 99.6032C61.3628 99.6032 60.5833 96.6021 60.2008 95.2105C61.3917 97.2014 64.8343 101.918 69.5257 101.918C74.1014 101.918 76.7646 98.5428 77.9988 96.2998Z" fill="url(%23paint2_linear_1424_495)"/>%0A<path d="M85.2523 106.419C82.4448 106.419 80.2579 105.546 77.9989 104.14C75.7399 105.539 73.553 106.419 70.7455 106.419C66.4656 106.419 65.1664 105.157 63.6147 104.003C63.658 105.474 65.1592 107.552 66.7109 108.301C70.1537 109.817 74.0221 110.422 77.9989 110.422C81.9756 110.422 85.8442 109.809 89.2868 108.301C90.8385 107.544 92.3326 105.474 92.3831 104.003C90.8313 105.157 89.5323 106.419 85.2523 106.419Z" fill="url(%23paint3_linear_1424_495)"/>%0A</g>%0A<path d="M73.8428 64.7073L69.4257 74.0622C69.2453 74.4446 69.1804 74.8773 69.2525 75.3029L70.6527 83.7562C70.696 84.0303 71.1002 84.0303 71.1435 83.7562L71.9013 79.1473C72.2116 77.2359 73.2292 75.5048 74.7522 74.3003L73.8428 64.7001V64.7073Z" fill="%23FF4800"/>%0A<path d="M82.1584 64.7073L86.5755 74.0622C86.7559 74.4446 86.8208 74.8773 86.7487 75.3029L85.3485 83.7634C85.3052 84.0376 84.9082 84.0376 84.8577 83.7634L84.0999 79.1473C83.7896 77.2359 82.7719 75.5048 81.249 74.3003L82.1584 64.7001V64.7073Z" fill="%23FF4800"/>%0A<path d="M84.5241 50.0291L78.4687 38.2867C78.2739 37.9044 77.7326 37.9044 77.5305 38.2867L71.4751 50.0219C71.2226 50.5052 71.1287 51.0606 71.2081 51.5943L74.261 73.0451L73.8063 75.0503L75.4158 79.4645C75.4519 79.5655 75.5457 79.6304 75.6468 79.6304H80.3308C80.4319 79.6304 80.5257 79.5655 80.5618 79.4645L82.1712 75.0503L81.7165 73.0451L84.7695 51.5943C84.8489 51.0534 84.7551 50.5052 84.5024 50.0219L84.5241 50.0291Z" fill="url(%23paint4_linear_1424_495)"/>%0A<path d="M77.7905 69.5107L75.6397 74.8265C75.3077 75.6488 75.2427 76.5576 75.4593 77.4159L77.7544 86.605C77.8193 86.8575 78.1802 86.8575 78.2379 86.605L80.5331 77.4159C80.7495 76.5576 80.6846 75.6488 80.3526 74.8265L78.2019 69.5107C78.1225 69.3232 77.8554 69.3232 77.7832 69.5107H77.7905Z" fill="%23FF4800"/>%0A<rect width="15" height="16" fill="%23FF4076"/>%0A<rect y="148" width="15" height="16" fill="%23FF4076"/>%0A<rect x="142" width="15" height="16" fill="%23FF4076"/>%0A<rect x="142" y="148" width="15" height="16" fill="%23FF4076"/>%0A<defs>%0A<linearGradient id="paint0_linear_1424_495" x1="78.0001" y1="24.4742" x2="78.0001" y2="138.609" gradientUnits="userSpaceOnUse">%0A<stop offset="0.3" stop-color="%2300ADFF"/>%0A<stop offset="1" stop-color="%231542FF"/>%0A</linearGradient>%0A<linearGradient id="paint1_linear_1424_495" x1="77.9993" y1="79.7965" x2="77.9993" y2="120.816" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23FCE3AD"/>%0A<stop offset="0.07" stop-color="%23FCE2A4"/>%0A<stop offset="0.19" stop-color="%23FCE08B"/>%0A<stop offset="0.33" stop-color="%23FCDD64"/>%0A<stop offset="0.48" stop-color="%23FCDA32"/>%0A<stop offset="0.66" stop-color="%23F9BC22"/>%0A<stop offset="1" stop-color="%23F57700"/>%0A</linearGradient>%0A<linearGradient id="paint2_linear_1424_495" x1="77.9988" y1="90.2913" x2="77.9988" y2="113.603" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23FCD619"/>%0A<stop offset="0.35" stop-color="%23F9B811"/>%0A<stop offset="1" stop-color="%23F57700"/>%0A</linearGradient>%0A<linearGradient id="paint3_linear_1424_495" x1="77.9989" y1="101.947" x2="77.9989" y2="112.694" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23F57700"/>%0A<stop offset="1" stop-color="%23FF4800"/>%0A</linearGradient>%0A<linearGradient id="paint4_linear_1424_495" x1="77.9996" y1="38.0054" x2="77.9996" y2="92.2167" gradientUnits="userSpaceOnUse">%0A<stop stop-color="%23E4E4E4"/>%0A<stop offset="0.88" stop-color="%23B6B8B8"/>%0A</linearGradient>%0A</defs>%0A</svg>%0A';
|
package/package.json
CHANGED
|
@@ -1,136 +1,136 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
2
|
+
"name": "@lumiastream/ui",
|
|
3
|
+
"version": "0.2.8-alpha.20",
|
|
4
|
+
"author": "Lumia Stream",
|
|
5
|
+
"license": "ISC",
|
|
6
|
+
"description": "Lumia UI Kit",
|
|
7
|
+
"packageManager": "npm@11.9.0",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"module": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./components": {
|
|
21
|
+
"types": "./dist/components.d.ts",
|
|
22
|
+
"import": "./dist/components.js"
|
|
23
|
+
},
|
|
24
|
+
"./LSButton": {
|
|
25
|
+
"types": "./dist/LSButton.d.ts",
|
|
26
|
+
"import": "./dist/LSButton.js"
|
|
27
|
+
},
|
|
28
|
+
"./LSCheckbox": {
|
|
29
|
+
"types": "./dist/LSCheckbox.d.ts",
|
|
30
|
+
"import": "./dist/LSCheckbox.js"
|
|
31
|
+
},
|
|
32
|
+
"./LSColorPicker": {
|
|
33
|
+
"types": "./dist/LSColorPicker.d.ts",
|
|
34
|
+
"import": "./dist/LSColorPicker.js"
|
|
35
|
+
},
|
|
36
|
+
"./LSDatePicker": {
|
|
37
|
+
"types": "./dist/LSDatePicker.d.ts",
|
|
38
|
+
"import": "./dist/LSDatePicker.js"
|
|
39
|
+
},
|
|
40
|
+
"./LSFontPicker": {
|
|
41
|
+
"types": "./dist/LSFontPicker.d.ts",
|
|
42
|
+
"import": "./dist/LSFontPicker.js"
|
|
43
|
+
},
|
|
44
|
+
"./LSInput": {
|
|
45
|
+
"types": "./dist/LSInput.d.ts",
|
|
46
|
+
"import": "./dist/LSInput.js"
|
|
47
|
+
},
|
|
48
|
+
"./LSMultiSelect": {
|
|
49
|
+
"types": "./dist/LSMultiSelect.d.ts",
|
|
50
|
+
"import": "./dist/LSMultiSelect.js"
|
|
51
|
+
},
|
|
52
|
+
"./LSRadio": {
|
|
53
|
+
"types": "./dist/LSRadio.d.ts",
|
|
54
|
+
"import": "./dist/LSRadio.js"
|
|
55
|
+
},
|
|
56
|
+
"./LSSelect": {
|
|
57
|
+
"types": "./dist/LSSelect.d.ts",
|
|
58
|
+
"import": "./dist/LSSelect.js"
|
|
59
|
+
},
|
|
60
|
+
"./LSSliderInput": {
|
|
61
|
+
"types": "./dist/LSSliderInput.d.ts",
|
|
62
|
+
"import": "./dist/LSSliderInput.js"
|
|
63
|
+
},
|
|
64
|
+
"./LSTextField": {
|
|
65
|
+
"types": "./dist/LSTextField.d.ts",
|
|
66
|
+
"import": "./dist/LSTextField.js"
|
|
67
|
+
},
|
|
68
|
+
"./LSVariableInputField": {
|
|
69
|
+
"types": "./dist/LSVariableInputField.d.ts",
|
|
70
|
+
"import": "./dist/LSVariableInputField.js"
|
|
71
|
+
},
|
|
72
|
+
"./utils": {
|
|
73
|
+
"types": "./dist/utils.d.ts",
|
|
74
|
+
"import": "./dist/utils.js"
|
|
75
|
+
},
|
|
76
|
+
"./utils/chatMedia": {
|
|
77
|
+
"types": "./dist/utils/chatMedia.d.ts",
|
|
78
|
+
"import": "./dist/utils/chatMedia.js"
|
|
79
|
+
},
|
|
80
|
+
"./se-import": {
|
|
81
|
+
"types": "./dist/se-import.d.ts",
|
|
82
|
+
"import": "./dist/se-import.js"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"scripts": {
|
|
86
|
+
"start": "storybook dev -p 6006",
|
|
87
|
+
"build": "tsup",
|
|
88
|
+
"build-storybook": "storybook build",
|
|
89
|
+
"watch": "tsup --watch",
|
|
90
|
+
"test": "vitest run",
|
|
91
|
+
"test:watch": "vitest",
|
|
92
|
+
"release": "changeset && changeset tag && npm run build && npm publish",
|
|
93
|
+
"prepublishOnly": "npm run build",
|
|
94
|
+
"postpublish": "npm cache clean --force && node ./scripts/postpublish-install.mjs"
|
|
95
|
+
},
|
|
96
|
+
"peerDependencies": {
|
|
97
|
+
"@codemirror/autocomplete": "^6.0.0",
|
|
98
|
+
"@emotion/react": "^11.14.0",
|
|
99
|
+
"@emotion/styled": "^11.14.1",
|
|
100
|
+
"@mui/icons-material": "^9.0.0",
|
|
101
|
+
"@mui/material": "^9.0.0",
|
|
102
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
103
|
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
104
|
+
"react-hook-form": "^7.62.0"
|
|
105
|
+
},
|
|
106
|
+
"devDependencies": {
|
|
107
|
+
"@codemirror/autocomplete": "^6.20.1",
|
|
108
|
+
"@emotion/react": "^11.14.0",
|
|
109
|
+
"@emotion/styled": "^11.14.1",
|
|
110
|
+
"@mui/icons-material": "^9.0.0",
|
|
111
|
+
"@mui/material": "^9.0.0",
|
|
112
|
+
"@storybook/builder-vite": "^10.2.17",
|
|
113
|
+
"@storybook/react-vite": "^10.2.17",
|
|
114
|
+
"@types/node": "^25.5.0",
|
|
115
|
+
"@types/react": "^19.2.14",
|
|
116
|
+
"@types/react-dom": "19.2.3",
|
|
117
|
+
"postcss": "^8.5.14",
|
|
118
|
+
"react": "^19.2.0",
|
|
119
|
+
"react-dom": "^19.2.0",
|
|
120
|
+
"react-hook-form": "^7.73.1",
|
|
121
|
+
"sass-embedded": "^1.99.0",
|
|
122
|
+
"storybook": "^10.2.17",
|
|
123
|
+
"tsup": "^8.5.1",
|
|
124
|
+
"typescript": "^5.9.3",
|
|
125
|
+
"vite": "^8.0.8",
|
|
126
|
+
"vitest": "^4.1.6"
|
|
127
|
+
},
|
|
128
|
+
"dependencies": {
|
|
129
|
+
"@lumiastream/lumia-translations": "1.15.7",
|
|
130
|
+
"@lumiastream/lumia-types": "^3.3.7-alpha.2",
|
|
131
|
+
"classnames": "^2.5.1",
|
|
132
|
+
"globals": "^17.4.0",
|
|
133
|
+
"nanoid": "^5.1.11",
|
|
134
|
+
"react-best-gradient-color-picker": "^3.0.14"
|
|
135
|
+
}
|
|
136
136
|
}
|