@lumiastream/ui 0.3.2 → 0.3.3

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 CHANGED
@@ -4196,9 +4196,11 @@ function mapGoal(widget, ctx) {
4196
4196
  source: charity ? charity.source : sourceFromListener(listener),
4197
4197
  image: "",
4198
4198
  audio: { decrement: "", increment: "", goal: "", goalFailed: "", volume: 1 },
4199
- // `null` (rather than `''`) is the cleaner contract — Goal/index.tsx:11's
4200
- // `isGoalExpired` treats any falsy as not-expired so both work at render time,
4201
- // but `null` survives JSON round-trips without ambiguity ('' vs unset).
4199
+ // `null` (rather than `''`) is the cleaner contract — `formatEndsIn`
4200
+ // in Goal/index.tsx treats both as "no deadline" so both work at
4201
+ // render time, but `null` survives JSON round-trips without
4202
+ // ambiguity ('' vs unset). The Goal module no longer hides itself
4203
+ // when the date passes; the "Ends in…" sublabel just disappears.
4202
4204
  endDate: v.endDate ?? null,
4203
4205
  goalAnimation: "",
4204
4206
  goalAnimationLoop: true,
@@ -5847,7 +5849,13 @@ var READOUT_TYPES = {
5847
5849
  // twitch_session_chat_count, so we render it as a text layer with the variable inline.
5848
5850
  "se-widget-botcounter": "twitch_session_chat_count"
5849
5851
  };
5850
- var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set(["se-widget-halloween", "se-widget-xmas", "se-widget-valentine", "se-widget-easter", "se-widget-world-cup"]);
5852
+ var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
5853
+ "se-widget-halloween",
5854
+ "se-widget-xmas",
5855
+ "se-widget-valentine",
5856
+ "se-widget-easter",
5857
+ "se-widget-world-cup"
5858
+ ]);
5851
5859
  var GOAL_TYPES = /* @__PURE__ */ new Set([
5852
5860
  "se-widget-follower-goal",
5853
5861
  "se-widget-subscriber-goal",
@@ -5858,59 +5866,212 @@ var GOAL_TYPES = /* @__PURE__ */ new Set([
5858
5866
  "se-widget-tiltify-goal",
5859
5867
  "se-widget-merch-goal"
5860
5868
  ]);
5861
- var EVENTLIST_TYPES = /* @__PURE__ */ new Set(["se-widget-event-list", "se-widget-follower-recent", "se-widget-subscriber-recent", "se-widget-cheer-recent", "se-widget-tip-recent"]);
5869
+ var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
5870
+ "se-widget-event-list",
5871
+ "se-widget-follower-recent",
5872
+ "se-widget-subscriber-recent",
5873
+ "se-widget-cheer-recent",
5874
+ "se-widget-tip-recent"
5875
+ ]);
5862
5876
  function dispatch(widget, ctx) {
5863
5877
  const t = widget.type;
5864
- console.log("[SE-IMPORT] dispatch widget", {
5865
- seType: t,
5866
- name: widget.name,
5867
- listener: widget.listener,
5868
- listeners: widget.listeners,
5869
- variableKeys: widget.variables ? Object.keys(widget.variables) : [],
5870
- hasCss: !!widget.css
5871
- });
5872
5878
  if (isWidgetFlaggedOff(t)) {
5873
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text", flaggedOff: true };
5879
+ return {
5880
+ unit: mapUnsupportedAsText(widget, ctx),
5881
+ status: "placeholder",
5882
+ lumiaType: "text",
5883
+ flaggedOff: true
5884
+ };
5874
5885
  }
5875
- if (t === "text") return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
5876
- if (t === "image") return { unit: mapImage(widget, ctx), status: "direct", lumiaType: "image" };
5877
- if (t === "video") return { unit: mapVideo(widget, ctx), status: "direct", lumiaType: "video" };
5886
+ if (t === "text")
5887
+ return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
5888
+ if (t === "image")
5889
+ return {
5890
+ unit: mapImage(widget, ctx),
5891
+ status: "direct",
5892
+ lumiaType: "image"
5893
+ };
5894
+ if (t === "video")
5895
+ return {
5896
+ unit: mapVideo(widget, ctx),
5897
+ status: "direct",
5898
+ lumiaType: "video"
5899
+ };
5878
5900
  if (t in READOUT_TYPES) {
5879
- return { unit: mapReadout(widget, READOUT_TYPES[t], ctx), status: "direct", lumiaType: "text" };
5901
+ return {
5902
+ unit: mapReadout(widget, READOUT_TYPES[t], ctx),
5903
+ status: "direct",
5904
+ lumiaType: "text"
5905
+ };
5880
5906
  }
5881
- if (GOAL_TYPES.has(t)) return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
5907
+ if (GOAL_TYPES.has(t))
5908
+ return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
5882
5909
  if ((t === "se-widget-alert-box" || t === "se-widget-alert-box-merch") && hasSECustomCode(widget)) {
5883
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text", flaggedOff: true };
5884
- }
5885
- if (t === "se-widget-alert-box") return { unit: mapAlertBox(widget, {}, ctx), status: "direct", lumiaType: "alert" };
5886
- if (t === "se-widget-alert-box-merch") return { unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx), status: "direct", lumiaType: "alert" };
5887
- if (t === "se-widget-donor-drive-alert") return { unit: mapSingleAlert(widget, "donordrive-donation", ctx), status: "direct", lumiaType: "alert" };
5888
- if (t === "se-widget-extralife-alert") return { unit: mapSingleAlert(widget, "extralife-donation", ctx), status: "direct", lumiaType: "alert" };
5889
- if (t === "se-widget-tiltify-alert") return { unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx), status: "direct", lumiaType: "alert" };
5890
- if (EVENTLIST_TYPES.has(t)) return { unit: mapEventList(widget, ctx), status: "direct", lumiaType: "eventlist" };
5891
- if (t === "se-widget-top-tippers-list") return { unit: mapViewerProfilesLeaderboard(widget, "tips", ctx), status: "direct", lumiaType: "viewerprofiles" };
5892
- if (t === "se-widget-top-cheerers-list") return { unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx), status: "direct", lumiaType: "viewerprofiles" };
5893
- if (t === "se-widget-top-gifters-list") return { unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx), status: "direct", lumiaType: "viewerprofiles" };
5894
- if (t === "se-widget-credit-roll") return { unit: mapCredits(widget, ctx), status: "partial", lumiaType: "credits" };
5895
- if (t === "se-widget-twitch-chat") return { unit: mapChatbox(widget, ctx), status: "partial", lumiaType: "chatbox" };
5896
- if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator") return { unit: mapSlideshow(widget, ctx), status: t === "se-widget-merch-products-rotator" ? "partial" : "direct", lumiaType: "slideshow" };
5897
- if (t === "se-widget-countdown") return { unit: mapTimer(widget, ctx), status: "partial", lumiaType: "timer" };
5898
- if (t === "se-widget-current-song") return { unit: mapNowPlaying(widget, ctx), status: "partial", lumiaType: "nowplaying" };
5899
- if (t === "se-widget-kappagen") return { unit: mapKappagen(widget, ctx), status: "partial", lumiaType: "emotealert" };
5900
- if (t === "se-widget-emote-wall") return { unit: mapEmoteWall(widget, ctx), status: "partial", lumiaType: "emotebox" };
5901
- if (t === "se-widget-giveaway") return { unit: mapGiveaway(widget, ctx), status: "direct", lumiaType: "raffle" };
5902
- if (t === "se-widget-media-share") return { unit: mapMediaShare(widget, ctx), status: "partial", lumiaType: "songrequest" };
5903
- if (t === "se-widget-hype-cup") return { unit: mapHypeCup(widget, ctx), status: "partial", lumiaType: "tipjar" };
5904
- if (t === "se-widget-bit-boss") return { unit: mapStreamBoss(widget, ctx), status: "partial", lumiaType: "streamboss" };
5905
- if (t === "se-widget-hype-train") return { unit: mapHypetrain(widget, ctx), status: "partial", lumiaType: "hypetrain" };
5910
+ return {
5911
+ unit: mapUnsupportedAsText(widget, ctx),
5912
+ status: "placeholder",
5913
+ lumiaType: "text",
5914
+ flaggedOff: true
5915
+ };
5916
+ }
5917
+ if (t === "se-widget-alert-box")
5918
+ return {
5919
+ unit: mapAlertBox(widget, {}, ctx),
5920
+ status: "direct",
5921
+ lumiaType: "alert"
5922
+ };
5923
+ if (t === "se-widget-alert-box-merch")
5924
+ return {
5925
+ unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx),
5926
+ status: "direct",
5927
+ lumiaType: "alert"
5928
+ };
5929
+ if (t === "se-widget-donor-drive-alert")
5930
+ return {
5931
+ unit: mapSingleAlert(widget, "donordrive-donation", ctx),
5932
+ status: "direct",
5933
+ lumiaType: "alert"
5934
+ };
5935
+ if (t === "se-widget-extralife-alert")
5936
+ return {
5937
+ unit: mapSingleAlert(widget, "extralife-donation", ctx),
5938
+ status: "direct",
5939
+ lumiaType: "alert"
5940
+ };
5941
+ if (t === "se-widget-tiltify-alert")
5942
+ return {
5943
+ unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx),
5944
+ status: "direct",
5945
+ lumiaType: "alert"
5946
+ };
5947
+ if (EVENTLIST_TYPES.has(t))
5948
+ return {
5949
+ unit: mapEventList(widget, ctx),
5950
+ status: "direct",
5951
+ lumiaType: "eventlist"
5952
+ };
5953
+ if (t === "se-widget-top-tippers-list")
5954
+ return {
5955
+ unit: mapViewerProfilesLeaderboard(widget, "tips", ctx),
5956
+ status: "direct",
5957
+ lumiaType: "viewerprofiles"
5958
+ };
5959
+ if (t === "se-widget-top-cheerers-list")
5960
+ return {
5961
+ unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx),
5962
+ status: "direct",
5963
+ lumiaType: "viewerprofiles"
5964
+ };
5965
+ if (t === "se-widget-top-gifters-list")
5966
+ return {
5967
+ unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx),
5968
+ status: "direct",
5969
+ lumiaType: "viewerprofiles"
5970
+ };
5971
+ if (t === "se-widget-credit-roll")
5972
+ return {
5973
+ unit: mapCredits(widget, ctx),
5974
+ status: "partial",
5975
+ lumiaType: "credits"
5976
+ };
5977
+ if (t === "se-widget-twitch-chat")
5978
+ return {
5979
+ unit: mapChatbox(widget, ctx),
5980
+ status: "partial",
5981
+ lumiaType: "chatbox"
5982
+ };
5983
+ if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator")
5984
+ return {
5985
+ unit: mapSlideshow(widget, ctx),
5986
+ status: t === "se-widget-merch-products-rotator" ? "partial" : "direct",
5987
+ lumiaType: "slideshow"
5988
+ };
5989
+ if (t === "se-widget-countdown")
5990
+ return {
5991
+ unit: mapTimer(widget, ctx),
5992
+ status: "partial",
5993
+ lumiaType: "timer"
5994
+ };
5995
+ if (t === "se-widget-current-song")
5996
+ return {
5997
+ unit: mapNowPlaying(widget, ctx),
5998
+ status: "partial",
5999
+ lumiaType: "nowplaying"
6000
+ };
6001
+ if (t === "se-widget-kappagen")
6002
+ return {
6003
+ unit: mapKappagen(widget, ctx),
6004
+ status: "partial",
6005
+ lumiaType: "emotealert"
6006
+ };
6007
+ if (t === "se-widget-emote-wall")
6008
+ return {
6009
+ unit: mapEmoteWall(widget, ctx),
6010
+ status: "partial",
6011
+ lumiaType: "emotebox"
6012
+ };
6013
+ if (t === "se-widget-giveaway")
6014
+ return {
6015
+ unit: mapGiveaway(widget, ctx),
6016
+ status: "direct",
6017
+ lumiaType: "raffle"
6018
+ };
6019
+ if (t === "se-widget-media-share")
6020
+ return {
6021
+ unit: mapMediaShare(widget, ctx),
6022
+ status: "partial",
6023
+ lumiaType: "songrequest"
6024
+ };
6025
+ if (t === "se-widget-hype-cup")
6026
+ return {
6027
+ unit: mapHypeCup(widget, ctx),
6028
+ status: "partial",
6029
+ lumiaType: "tipjar"
6030
+ };
6031
+ if (t === "se-widget-bit-boss")
6032
+ return {
6033
+ unit: mapStreamBoss(widget, ctx),
6034
+ status: "partial",
6035
+ lumiaType: "streamboss"
6036
+ };
6037
+ if (t === "se-widget-hype-train")
6038
+ return {
6039
+ unit: mapHypetrain(widget, ctx),
6040
+ status: "partial",
6041
+ lumiaType: "hypetrain"
6042
+ };
5906
6043
  if (t === "se-widget-custom-event-list" && isHypetrainCustomWidget(widget)) {
5907
- return { unit: mapHypetrain(widget, ctx), status: "partial", lumiaType: "hypetrain" };
6044
+ return {
6045
+ unit: mapHypetrain(widget, ctx),
6046
+ status: "partial",
6047
+ lumiaType: "hypetrain"
6048
+ };
5908
6049
  }
5909
- if (t === "se-widget-custom-event-list") return { unit: mapCustom(widget, ctx), status: "partial", lumiaType: "custom" };
5910
- if (t === "se-widget-snow") return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
5911
- if (t === "se-widget-halloween-2019") return { unit: mapSlideshow(widget, ctx), status: "direct", lumiaType: "slideshow" };
5912
- if (SEASONAL_IMAGE_TYPES.has(t)) return { unit: mapImage(widget, ctx), status: "direct", lumiaType: "image" };
5913
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text" };
6050
+ if (t === "se-widget-custom-event-list")
6051
+ return {
6052
+ unit: mapCustom(widget, ctx),
6053
+ status: "partial",
6054
+ lumiaType: "custom"
6055
+ };
6056
+ if (t === "se-widget-snow")
6057
+ return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
6058
+ if (t === "se-widget-halloween-2019")
6059
+ return {
6060
+ unit: mapSlideshow(widget, ctx),
6061
+ status: "direct",
6062
+ lumiaType: "slideshow"
6063
+ };
6064
+ if (SEASONAL_IMAGE_TYPES.has(t))
6065
+ return {
6066
+ unit: mapImage(widget, ctx),
6067
+ status: "direct",
6068
+ lumiaType: "image"
6069
+ };
6070
+ return {
6071
+ unit: mapUnsupportedAsText(widget, ctx),
6072
+ status: "placeholder",
6073
+ lumiaType: "text"
6074
+ };
5914
6075
  }
5915
6076
  function recordCoverage(coverage, result, seType) {
5916
6077
  const existing = coverage.mappings.find((m) => m.seType === seType);
@@ -5918,7 +6079,12 @@ function recordCoverage(coverage, result, seType) {
5918
6079
  existing.count += 1;
5919
6080
  return;
5920
6081
  }
5921
- coverage.mappings.push({ seType, lumiaType: result.lumiaType, status: result.status, count: 1 });
6082
+ coverage.mappings.push({
6083
+ seType,
6084
+ lumiaType: result.lumiaType,
6085
+ status: result.status,
6086
+ count: 1
6087
+ });
5922
6088
  }
5923
6089
 
5924
6090
  // src/se-import/assets.ts
@@ -9003,17 +9169,6 @@ function importSEBootstrap(bootstrap) {
9003
9169
  notes: []
9004
9170
  };
9005
9171
  const provider = readBootstrapProvider(bootstrap);
9006
- console.log("[SE-IMPORT] bootstrap received", {
9007
- overlayId: seOverlay?._id,
9008
- name: seOverlay?.name,
9009
- canvas: {
9010
- width: seOverlay?.settings?.width,
9011
- height: seOverlay?.settings?.height
9012
- },
9013
- widgetCount: widgets.length,
9014
- widgetTypes: widgets.map((w) => w.type),
9015
- provider
9016
- });
9017
9172
  const importCanvas = {
9018
9173
  width: seOverlay?.settings?.width ?? 1920,
9019
9174
  height: seOverlay?.settings?.height ?? 1080
@@ -9165,12 +9320,6 @@ function importSEBootstrap(bootstrap) {
9165
9320
  layers_count: layers.length,
9166
9321
  hasFullSettings: true
9167
9322
  };
9168
- console.log("[SE-IMPORT] import complete", {
9169
- overlayName: overlay.name,
9170
- layerCount: overlay.layers_count,
9171
- coverage,
9172
- reviewItemCount: reviewItems.length
9173
- });
9174
9323
  return { overlay, coverage, reviewItems };
9175
9324
  }
9176
9325
  function applyReviewAction(result, moduleId, action, payload) {
package/dist/se-import.js CHANGED
@@ -1081,9 +1081,11 @@ function mapGoal(widget, ctx) {
1081
1081
  source: charity ? charity.source : sourceFromListener(listener),
1082
1082
  image: "",
1083
1083
  audio: { decrement: "", increment: "", goal: "", goalFailed: "", volume: 1 },
1084
- // `null` (rather than `''`) is the cleaner contract — Goal/index.tsx:11's
1085
- // `isGoalExpired` treats any falsy as not-expired so both work at render time,
1086
- // but `null` survives JSON round-trips without ambiguity ('' vs unset).
1084
+ // `null` (rather than `''`) is the cleaner contract — `formatEndsIn`
1085
+ // in Goal/index.tsx treats both as "no deadline" so both work at
1086
+ // render time, but `null` survives JSON round-trips without
1087
+ // ambiguity ('' vs unset). The Goal module no longer hides itself
1088
+ // when the date passes; the "Ends in…" sublabel just disappears.
1087
1089
  endDate: v.endDate ?? null,
1088
1090
  goalAnimation: "",
1089
1091
  goalAnimationLoop: true,
@@ -2732,7 +2734,13 @@ var READOUT_TYPES = {
2732
2734
  // twitch_session_chat_count, so we render it as a text layer with the variable inline.
2733
2735
  "se-widget-botcounter": "twitch_session_chat_count"
2734
2736
  };
2735
- var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set(["se-widget-halloween", "se-widget-xmas", "se-widget-valentine", "se-widget-easter", "se-widget-world-cup"]);
2737
+ var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
2738
+ "se-widget-halloween",
2739
+ "se-widget-xmas",
2740
+ "se-widget-valentine",
2741
+ "se-widget-easter",
2742
+ "se-widget-world-cup"
2743
+ ]);
2736
2744
  var GOAL_TYPES = /* @__PURE__ */ new Set([
2737
2745
  "se-widget-follower-goal",
2738
2746
  "se-widget-subscriber-goal",
@@ -2743,59 +2751,212 @@ var GOAL_TYPES = /* @__PURE__ */ new Set([
2743
2751
  "se-widget-tiltify-goal",
2744
2752
  "se-widget-merch-goal"
2745
2753
  ]);
2746
- var EVENTLIST_TYPES = /* @__PURE__ */ new Set(["se-widget-event-list", "se-widget-follower-recent", "se-widget-subscriber-recent", "se-widget-cheer-recent", "se-widget-tip-recent"]);
2754
+ var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
2755
+ "se-widget-event-list",
2756
+ "se-widget-follower-recent",
2757
+ "se-widget-subscriber-recent",
2758
+ "se-widget-cheer-recent",
2759
+ "se-widget-tip-recent"
2760
+ ]);
2747
2761
  function dispatch(widget, ctx) {
2748
2762
  const t = widget.type;
2749
- console.log("[SE-IMPORT] dispatch widget", {
2750
- seType: t,
2751
- name: widget.name,
2752
- listener: widget.listener,
2753
- listeners: widget.listeners,
2754
- variableKeys: widget.variables ? Object.keys(widget.variables) : [],
2755
- hasCss: !!widget.css
2756
- });
2757
2763
  if (isWidgetFlaggedOff(t)) {
2758
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text", flaggedOff: true };
2764
+ return {
2765
+ unit: mapUnsupportedAsText(widget, ctx),
2766
+ status: "placeholder",
2767
+ lumiaType: "text",
2768
+ flaggedOff: true
2769
+ };
2759
2770
  }
2760
- if (t === "text") return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
2761
- if (t === "image") return { unit: mapImage(widget, ctx), status: "direct", lumiaType: "image" };
2762
- if (t === "video") return { unit: mapVideo(widget, ctx), status: "direct", lumiaType: "video" };
2771
+ if (t === "text")
2772
+ return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
2773
+ if (t === "image")
2774
+ return {
2775
+ unit: mapImage(widget, ctx),
2776
+ status: "direct",
2777
+ lumiaType: "image"
2778
+ };
2779
+ if (t === "video")
2780
+ return {
2781
+ unit: mapVideo(widget, ctx),
2782
+ status: "direct",
2783
+ lumiaType: "video"
2784
+ };
2763
2785
  if (t in READOUT_TYPES) {
2764
- return { unit: mapReadout(widget, READOUT_TYPES[t], ctx), status: "direct", lumiaType: "text" };
2786
+ return {
2787
+ unit: mapReadout(widget, READOUT_TYPES[t], ctx),
2788
+ status: "direct",
2789
+ lumiaType: "text"
2790
+ };
2765
2791
  }
2766
- if (GOAL_TYPES.has(t)) return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
2792
+ if (GOAL_TYPES.has(t))
2793
+ return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
2767
2794
  if ((t === "se-widget-alert-box" || t === "se-widget-alert-box-merch") && hasSECustomCode(widget)) {
2768
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text", flaggedOff: true };
2795
+ return {
2796
+ unit: mapUnsupportedAsText(widget, ctx),
2797
+ status: "placeholder",
2798
+ lumiaType: "text",
2799
+ flaggedOff: true
2800
+ };
2769
2801
  }
2770
- if (t === "se-widget-alert-box") return { unit: mapAlertBox(widget, {}, ctx), status: "direct", lumiaType: "alert" };
2771
- if (t === "se-widget-alert-box-merch") return { unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx), status: "direct", lumiaType: "alert" };
2772
- if (t === "se-widget-donor-drive-alert") return { unit: mapSingleAlert(widget, "donordrive-donation", ctx), status: "direct", lumiaType: "alert" };
2773
- if (t === "se-widget-extralife-alert") return { unit: mapSingleAlert(widget, "extralife-donation", ctx), status: "direct", lumiaType: "alert" };
2774
- if (t === "se-widget-tiltify-alert") return { unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx), status: "direct", lumiaType: "alert" };
2775
- if (EVENTLIST_TYPES.has(t)) return { unit: mapEventList(widget, ctx), status: "direct", lumiaType: "eventlist" };
2776
- if (t === "se-widget-top-tippers-list") return { unit: mapViewerProfilesLeaderboard(widget, "tips", ctx), status: "direct", lumiaType: "viewerprofiles" };
2777
- if (t === "se-widget-top-cheerers-list") return { unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx), status: "direct", lumiaType: "viewerprofiles" };
2778
- if (t === "se-widget-top-gifters-list") return { unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx), status: "direct", lumiaType: "viewerprofiles" };
2779
- if (t === "se-widget-credit-roll") return { unit: mapCredits(widget, ctx), status: "partial", lumiaType: "credits" };
2780
- if (t === "se-widget-twitch-chat") return { unit: mapChatbox(widget, ctx), status: "partial", lumiaType: "chatbox" };
2781
- if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator") return { unit: mapSlideshow(widget, ctx), status: t === "se-widget-merch-products-rotator" ? "partial" : "direct", lumiaType: "slideshow" };
2782
- if (t === "se-widget-countdown") return { unit: mapTimer(widget, ctx), status: "partial", lumiaType: "timer" };
2783
- if (t === "se-widget-current-song") return { unit: mapNowPlaying(widget, ctx), status: "partial", lumiaType: "nowplaying" };
2784
- if (t === "se-widget-kappagen") return { unit: mapKappagen(widget, ctx), status: "partial", lumiaType: "emotealert" };
2785
- if (t === "se-widget-emote-wall") return { unit: mapEmoteWall(widget, ctx), status: "partial", lumiaType: "emotebox" };
2786
- if (t === "se-widget-giveaway") return { unit: mapGiveaway(widget, ctx), status: "direct", lumiaType: "raffle" };
2787
- if (t === "se-widget-media-share") return { unit: mapMediaShare(widget, ctx), status: "partial", lumiaType: "songrequest" };
2788
- if (t === "se-widget-hype-cup") return { unit: mapHypeCup(widget, ctx), status: "partial", lumiaType: "tipjar" };
2789
- if (t === "se-widget-bit-boss") return { unit: mapStreamBoss(widget, ctx), status: "partial", lumiaType: "streamboss" };
2790
- if (t === "se-widget-hype-train") return { unit: mapHypetrain(widget, ctx), status: "partial", lumiaType: "hypetrain" };
2802
+ if (t === "se-widget-alert-box")
2803
+ return {
2804
+ unit: mapAlertBox(widget, {}, ctx),
2805
+ status: "direct",
2806
+ lumiaType: "alert"
2807
+ };
2808
+ if (t === "se-widget-alert-box-merch")
2809
+ return {
2810
+ unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx),
2811
+ status: "direct",
2812
+ lumiaType: "alert"
2813
+ };
2814
+ if (t === "se-widget-donor-drive-alert")
2815
+ return {
2816
+ unit: mapSingleAlert(widget, "donordrive-donation", ctx),
2817
+ status: "direct",
2818
+ lumiaType: "alert"
2819
+ };
2820
+ if (t === "se-widget-extralife-alert")
2821
+ return {
2822
+ unit: mapSingleAlert(widget, "extralife-donation", ctx),
2823
+ status: "direct",
2824
+ lumiaType: "alert"
2825
+ };
2826
+ if (t === "se-widget-tiltify-alert")
2827
+ return {
2828
+ unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx),
2829
+ status: "direct",
2830
+ lumiaType: "alert"
2831
+ };
2832
+ if (EVENTLIST_TYPES.has(t))
2833
+ return {
2834
+ unit: mapEventList(widget, ctx),
2835
+ status: "direct",
2836
+ lumiaType: "eventlist"
2837
+ };
2838
+ if (t === "se-widget-top-tippers-list")
2839
+ return {
2840
+ unit: mapViewerProfilesLeaderboard(widget, "tips", ctx),
2841
+ status: "direct",
2842
+ lumiaType: "viewerprofiles"
2843
+ };
2844
+ if (t === "se-widget-top-cheerers-list")
2845
+ return {
2846
+ unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx),
2847
+ status: "direct",
2848
+ lumiaType: "viewerprofiles"
2849
+ };
2850
+ if (t === "se-widget-top-gifters-list")
2851
+ return {
2852
+ unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx),
2853
+ status: "direct",
2854
+ lumiaType: "viewerprofiles"
2855
+ };
2856
+ if (t === "se-widget-credit-roll")
2857
+ return {
2858
+ unit: mapCredits(widget, ctx),
2859
+ status: "partial",
2860
+ lumiaType: "credits"
2861
+ };
2862
+ if (t === "se-widget-twitch-chat")
2863
+ return {
2864
+ unit: mapChatbox(widget, ctx),
2865
+ status: "partial",
2866
+ lumiaType: "chatbox"
2867
+ };
2868
+ if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator")
2869
+ return {
2870
+ unit: mapSlideshow(widget, ctx),
2871
+ status: t === "se-widget-merch-products-rotator" ? "partial" : "direct",
2872
+ lumiaType: "slideshow"
2873
+ };
2874
+ if (t === "se-widget-countdown")
2875
+ return {
2876
+ unit: mapTimer(widget, ctx),
2877
+ status: "partial",
2878
+ lumiaType: "timer"
2879
+ };
2880
+ if (t === "se-widget-current-song")
2881
+ return {
2882
+ unit: mapNowPlaying(widget, ctx),
2883
+ status: "partial",
2884
+ lumiaType: "nowplaying"
2885
+ };
2886
+ if (t === "se-widget-kappagen")
2887
+ return {
2888
+ unit: mapKappagen(widget, ctx),
2889
+ status: "partial",
2890
+ lumiaType: "emotealert"
2891
+ };
2892
+ if (t === "se-widget-emote-wall")
2893
+ return {
2894
+ unit: mapEmoteWall(widget, ctx),
2895
+ status: "partial",
2896
+ lumiaType: "emotebox"
2897
+ };
2898
+ if (t === "se-widget-giveaway")
2899
+ return {
2900
+ unit: mapGiveaway(widget, ctx),
2901
+ status: "direct",
2902
+ lumiaType: "raffle"
2903
+ };
2904
+ if (t === "se-widget-media-share")
2905
+ return {
2906
+ unit: mapMediaShare(widget, ctx),
2907
+ status: "partial",
2908
+ lumiaType: "songrequest"
2909
+ };
2910
+ if (t === "se-widget-hype-cup")
2911
+ return {
2912
+ unit: mapHypeCup(widget, ctx),
2913
+ status: "partial",
2914
+ lumiaType: "tipjar"
2915
+ };
2916
+ if (t === "se-widget-bit-boss")
2917
+ return {
2918
+ unit: mapStreamBoss(widget, ctx),
2919
+ status: "partial",
2920
+ lumiaType: "streamboss"
2921
+ };
2922
+ if (t === "se-widget-hype-train")
2923
+ return {
2924
+ unit: mapHypetrain(widget, ctx),
2925
+ status: "partial",
2926
+ lumiaType: "hypetrain"
2927
+ };
2791
2928
  if (t === "se-widget-custom-event-list" && isHypetrainCustomWidget(widget)) {
2792
- return { unit: mapHypetrain(widget, ctx), status: "partial", lumiaType: "hypetrain" };
2929
+ return {
2930
+ unit: mapHypetrain(widget, ctx),
2931
+ status: "partial",
2932
+ lumiaType: "hypetrain"
2933
+ };
2793
2934
  }
2794
- if (t === "se-widget-custom-event-list") return { unit: mapCustom(widget, ctx), status: "partial", lumiaType: "custom" };
2795
- if (t === "se-widget-snow") return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
2796
- if (t === "se-widget-halloween-2019") return { unit: mapSlideshow(widget, ctx), status: "direct", lumiaType: "slideshow" };
2797
- if (SEASONAL_IMAGE_TYPES.has(t)) return { unit: mapImage(widget, ctx), status: "direct", lumiaType: "image" };
2798
- return { unit: mapUnsupportedAsText(widget, ctx), status: "placeholder", lumiaType: "text" };
2935
+ if (t === "se-widget-custom-event-list")
2936
+ return {
2937
+ unit: mapCustom(widget, ctx),
2938
+ status: "partial",
2939
+ lumiaType: "custom"
2940
+ };
2941
+ if (t === "se-widget-snow")
2942
+ return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
2943
+ if (t === "se-widget-halloween-2019")
2944
+ return {
2945
+ unit: mapSlideshow(widget, ctx),
2946
+ status: "direct",
2947
+ lumiaType: "slideshow"
2948
+ };
2949
+ if (SEASONAL_IMAGE_TYPES.has(t))
2950
+ return {
2951
+ unit: mapImage(widget, ctx),
2952
+ status: "direct",
2953
+ lumiaType: "image"
2954
+ };
2955
+ return {
2956
+ unit: mapUnsupportedAsText(widget, ctx),
2957
+ status: "placeholder",
2958
+ lumiaType: "text"
2959
+ };
2799
2960
  }
2800
2961
  function recordCoverage(coverage, result, seType) {
2801
2962
  const existing = coverage.mappings.find((m) => m.seType === seType);
@@ -2803,7 +2964,12 @@ function recordCoverage(coverage, result, seType) {
2803
2964
  existing.count += 1;
2804
2965
  return;
2805
2966
  }
2806
- coverage.mappings.push({ seType, lumiaType: result.lumiaType, status: result.status, count: 1 });
2967
+ coverage.mappings.push({
2968
+ seType,
2969
+ lumiaType: result.lumiaType,
2970
+ status: result.status,
2971
+ count: 1
2972
+ });
2807
2973
  }
2808
2974
 
2809
2975
  // src/se-import/assets.ts
@@ -7873,17 +8039,6 @@ function importSEBootstrap(bootstrap) {
7873
8039
  notes: []
7874
8040
  };
7875
8041
  const provider = readBootstrapProvider(bootstrap);
7876
- console.log("[SE-IMPORT] bootstrap received", {
7877
- overlayId: seOverlay?._id,
7878
- name: seOverlay?.name,
7879
- canvas: {
7880
- width: seOverlay?.settings?.width,
7881
- height: seOverlay?.settings?.height
7882
- },
7883
- widgetCount: widgets.length,
7884
- widgetTypes: widgets.map((w) => w.type),
7885
- provider
7886
- });
7887
8042
  const importCanvas = {
7888
8043
  width: seOverlay?.settings?.width ?? 1920,
7889
8044
  height: seOverlay?.settings?.height ?? 1080
@@ -8035,12 +8190,6 @@ function importSEBootstrap(bootstrap) {
8035
8190
  layers_count: layers.length,
8036
8191
  hasFullSettings: true
8037
8192
  };
8038
- console.log("[SE-IMPORT] import complete", {
8039
- overlayName: overlay.name,
8040
- layerCount: overlay.layers_count,
8041
- coverage,
8042
- reviewItemCount: reviewItems.length
8043
- });
8044
8193
  return { overlay, coverage, reviewItems };
8045
8194
  }
8046
8195
  function applyReviewAction(result, moduleId, action, payload) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/ui",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "author": "Lumia Stream",
5
5
  "license": "ISC",
6
6
  "description": "Lumia UI Kit",