@lumiastream/ui 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChatMessageItem.js +1 -1
- package/dist/ChatboxPanel.js +1 -1
- package/dist/EventList.js +1 -1
- package/dist/EventListItem.js +1 -1
- package/dist/GoalsList.js +1 -1
- package/dist/LSButton.js +1 -1
- package/dist/LSCheckbox.js +1 -1
- package/dist/LSColorPicker.js +1 -1
- package/dist/LSDatePicker.js +1 -1
- package/dist/LSFontPicker.js +1 -1
- package/dist/LSInput.js +1 -1
- package/dist/LSMultiSelect.js +1 -1
- package/dist/LSRadio.js +1 -1
- package/dist/LSSelect.js +1 -1
- package/dist/LSSliderInput.js +1 -1
- package/dist/LSSwitch.js +1 -1
- package/dist/LSTextField.js +1 -1
- package/dist/LSVariableInputField.d.ts +6 -0
- package/dist/LSVariableInputField.js +382 -81
- package/dist/ModActivityLog.js +1 -1
- package/dist/ModQueueItem.js +1 -1
- package/dist/ModQueueList.js +1 -1
- package/dist/ModalChrome.js +1 -1
- package/dist/PlatformIcon.js +1 -1
- package/dist/ShortcutDockGrid.js +1 -1
- package/dist/SongRequestList.js +1 -1
- package/dist/StreamStatusPanel.js +1 -1
- package/dist/ViewersList.js +1 -1
- package/dist/WidgetChrome.js +1 -1
- package/dist/components.js +704 -401
- package/dist/index.js +1017 -714
- package/dist/se-import.js +1015 -712
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// src/lumia-ui.css
|
|
24
|
-
styleInject(".ls-color-picker,\n.ls-color-picker *,\n.mui-multi-select,\n.mui-multi-select *,\n.ls-multi-select-value,\n.ls-multi-select-value *,\n.ls-variable-picker,\n.ls-variable-picker *,\n.ls-variable-token,\n.ls-variable-token *,\n.ls-font-picker,\n.ls-font-picker *,\n.mui-ls-input,\n.mui-ls-input * {\n box-sizing: border-box;\n}\n.ls-color-picker button,\n.mui-multi-select button {\n font: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n}\n.ls-color-picker__preview {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n text-transform: uppercase;\n user-select: none;\n}\n.mui-ls-button.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.45;\n background-color: var(--separator, #0a0821);\n cursor: not-allowed;\n}\n.mui-ls-button {\n border-radius: var(--radius, 1rem);\n padding: 0.375rem 1.5rem;\n text-transform: uppercase;\n}\n.mui-ls-button.MuiButton-sizeSmall {\n padding: 0.25rem 1rem;\n}\n.mui-ls-button.MuiButton-sizeLarge {\n padding: 0.625rem 2rem;\n}\n.mui-ls-button--extended {\n padding-inline: 3rem;\n}\n.mui-ls-button.MuiButton-containedPrimary,\n.mui-ls-button.Mui-disabled.MuiButton-containedPrimary {\n background: var(--primary, #ff4076);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.Mui-disabled.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.4;\n}\n.mui-ls-button.MuiButton-outlinedPrimary {\n color: var(--primary, #ff4076);\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-button.MuiButton-outlinedPrimary:hover {\n border-color: var(--primary, #ff4076);\n background-color: color-mix(in srgb, var(--primary, #ff4076) 12%, transparent);\n}\n.mui-ls-button.MuiButton-outlinedSecondary {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--secondary, #535395);\n}\n.mui-ls-button.MuiButton-outlinedSecondary.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n opacity: 0.5;\n}\n.mui-ls-button.MuiButton-outlinedSecondary:hover {\n border-color: var(--secondary, #535395);\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button.MuiButton-containedError {\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-outlinedError {\n color: var(--error, #fd5454);\n border-color: var(--error, #fd5454);\n}\n.mui-ls-button.MuiButton-outlinedError:hover {\n border-color: var(--error, #fd5454);\n background-color: color-mix(in srgb, var(--error, #fd5454) 12%, transparent);\n}\n.mui-ls-button--neutral.mui-ls-button--contained {\n background-color: var(--neutralDark4, var(--cardborder, #393853));\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-button--neutral.mui-ls-button--contained:hover {\n background-color: color-mix(in srgb, var(--neutralDark4, var(--cardborder, #393853)) 82%, var(--neutralLight1, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--outlined {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: transparent;\n}\n.mui-ls-button--neutral.mui-ls-button--outlined:hover {\n border-color: var(--neutralLight3, var(--grey, #9392a1));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button--neutral.mui-ls-button--text {\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--text:hover {\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button svg {\n max-height: 24px;\n max-width: 24px;\n}\n.mui-ls-input,\n.ls-font-picker,\n.ls-color-picker__input {\n width: 100%;\n}\n.mui-ls-input,\n.mui-ls-select-form-control,\n.mui-multi-select,\n.ls-font-picker,\n.mui-ls-slider-input-root {\n --ls-control-height: 55px;\n}\n.mui-ls-input .MuiOutlinedInput-root,\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-input .MuiOutlinedInput-notchedOutline,\n.mui-ls-select.MuiOutlinedInput-root,\n.mui-ls-select .MuiOutlinedInput-notchedOutline,\n.mui-multi-select .mui-ls-select.MuiOutlinedInput-root,\n.mui-multi-select .mui-ls-select .MuiOutlinedInput-notchedOutline,\n.ls-font-picker .MuiOutlinedInput-root,\n.ls-font-picker .MuiInputBase-root,\n.ls-font-picker .MuiOutlinedInput-notchedOutline,\n.ls-color-picker__input .MuiOutlinedInput-root,\n.ls-color-picker__input .MuiInputBase-root,\n.ls-color-picker__input .MuiOutlinedInput-notchedOutline {\n border-radius: var(--radius) !important;\n}\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-select.MuiInputBase-root,\n.mui-multi-select .mui-ls-select.MuiInputBase-root,\n.ls-font-picker .MuiInputBase-root {\n min-height: var(--ls-control-height);\n}\n.mui-ls-input.small .MuiInputBase-root {\n min-height: 25px;\n}\n.mui-ls-input.medium .MuiInputBase-root {\n min-height: 35px;\n}\n.mui-ls-input.noMinHeight .MuiInputBase-root {\n min-height: unset;\n}\n.mui-ls-date-picker input[type=datetime-local]::-webkit-calendar-picker-indicator {\n cursor: pointer;\n opacity: 0.9;\n filter: invert(1);\n}\n.mui-ls-select .MuiSelect-select,\n.mui-multi-select .MuiSelect-select {\n display: flex;\n min-height: calc(var(--ls-control-height) - 2px);\n align-items: center;\n box-sizing: border-box;\n border-radius: var(--radius);\n}\n.mui-multi-select .MuiSelect-select {\n min-width: 0;\n}\n.MuiSvgIcon-root svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-input .MuiSvgIcon-root svg path {\n fill: currentcolor;\n stroke: currentcolor;\n}\n.mui-ls-input .MuiInputLabel-root,\n.mui-ls-select-form-control .MuiInputLabel-root {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n line-height: 1;\n}\n.mui-ls-input .MuiInputLabel-root svg,\n.mui-ls-select-form-control .MuiInputLabel-root svg {\n display: block;\n flex: 0 0 auto;\n}\n.mui-ls-input input::placeholder,\n.mui-ls-input textarea::placeholder {\n color: var(--neutralLight3, var(--grey, #9392a1));\n opacity: 0.55;\n font-style: italic;\n}\n.mui-ls-input .MuiInputBase-input,\n.mui-ls-input .MuiInputAdornment-root,\n.mui-ls-input .MuiSvgIcon-root,\n.mui-ls-input .MuiFormHelperText-root {\n color: var(--neutralLight1, var(--white, #fff));\n opacity: 1;\n}\n.mui-ls-input .Mui-focused .MuiOutlinedInput-notchedOutline,\n.mui-ls-input .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: var(--primary, #ff4076) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-paper,\n.ls-variable-autocomplete-paper {\n border: 1px solid var(--neutralDark4, var(--cardborder, #393853)) !important;\n border-radius: var(--radius, 1rem) !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n box-shadow: 0 16px 32px rgba(0, 0, 0, 0.32) !important;\n overflow: hidden !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-listbox,\n.ls-variable-autocomplete-listbox {\n padding: 0.25rem 0 !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupLabel,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupLabel {\n position: sticky;\n top: 0;\n z-index: 1;\n min-height: 32px;\n padding: 0.45rem 1rem 0.25rem !important;\n background: var(--neutralDark1, var(--background, #18162f)) !important;\n color: var(--neutralLight3, var(--grey, #9392a1)) !important;\n font-size: 0.75rem !important;\n font-weight: 700 !important;\n letter-spacing: 0 !important;\n line-height: 1.2 !important;\n text-transform: uppercase;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupUl,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupUl {\n padding: 0 !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option {\n display: flex !important;\n min-height: 44px !important;\n align-items: center !important;\n padding: 0.625rem 1rem !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n font-size: 1rem !important;\n line-height: 1.35 !important;\n cursor: pointer !important;\n transition: background-color 120ms ease, color 120ms ease !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option > *,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option > * {\n min-width: 0;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[aria-selected=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[aria-selected=true] {\n background: var( --cardHover, var(--transwhite, rgba(255, 255, 255, 0.05)) ) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-option {\n gap: 0.75rem;\n}\n.ls-variable-option__thumb {\n width: 40px;\n height: 40px;\n flex: 0 0 40px;\n border-radius: var(--radius, 1rem);\n object-fit: cover;\n}\n.ls-variable-option__thumb--placeholder {\n background: var(--neutralDark4, var(--cardborder, #393853));\n}\n.ls-variable-option__body {\n min-width: 0;\n}\n.ls-variable-option__label {\n color: var(--neutralLight1, var(--white, #fff));\n font-weight: 500;\n line-height: 1.25;\n}\n.ls-variable-option__helper {\n margin-top: 0.125rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.875rem;\n line-height: 1.25;\n}\n.ls-variable-autocomplete-popup-indicator,\n.ls-variable-autocomplete-popup-indicator.MuiIconButton-root,\n.ls-variable-autocomplete-popup-indicator svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popup-indicator svg path {\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker .MuiInputLabel-root .MuiSvgIcon-root,\n.ls-color-picker .MuiInputLabel-root svg,\n.ls-color-picker .MuiInputLabel-root svg path,\n.ls-color-picker__gradient button,\n.ls-color-picker__gradient button svg,\n.ls-color-picker__gradient button svg path,\n.ls-color-picker__gradient button svg line,\n.ls-color-picker__gradient button svg polyline,\n.ls-color-picker__gradient button svg polygon,\n.ls-color-picker__gradient button svg circle,\n.ls-color-picker__gradient button svg rect {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__gradient button[aria-pressed=true] svg,\n.ls-color-picker__gradient button[aria-selected=true] svg,\n.ls-color-picker__gradient button[data-active=true] svg,\n.ls-color-picker__gradient button[aria-pressed=true] svg *,\n.ls-color-picker__gradient button[aria-selected=true] svg *,\n.ls-color-picker__gradient button[data-active=true] svg * {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__picker--inline {\n max-height: none !important;\n}\n.ls-color-picker__gradient {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-input-adornment,\n.ls-variable-input-adornment.MuiInputAdornment-root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n min-width: 24px;\n margin-left: 0.35rem;\n border-radius: var(--radius, 1rem);\n background: var(--primary, #ff4076) !important;\n color: var(--alwayswhite, var(--white, #fff)) !important;\n font-weight: 800;\n line-height: 1;\n letter-spacing: 0;\n cursor: pointer;\n user-select: none;\n}\n.ls-variable-input-adornment svg,\n.ls-variable-input-adornment path {\n color: currentcolor !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-variable-input-adornment:hover,\n.ls-variable-input-adornment.MuiInputAdornment-root:hover {\n filter: brightness(1.08);\n}\n.ls-variable-input-adornment:active,\n.ls-variable-input-adornment.MuiInputAdornment-root:active {\n filter: brightness(0.96);\n}\n.mui-ls-slider-input-root {\n width: 100%;\n}\n.mui-ls-slider-input-fieldset {\n position: relative;\n min-width: 0;\n width: 100%;\n min-height: var(--ls-control-height);\n margin: 0;\n border: 2px solid var(--neutralDark4, var(--cardborder, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0 0.875rem 0.5rem 0.875rem;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-slider-input-fieldset:hover {\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-slider-input-legend {\n display: block;\n width: auto;\n max-width: calc(100% - 1rem);\n margin: 0;\n padding: 0 0.25rem;\n color: var(--neutralLight1, var(--white, #fff));\n font-size: 0.875rem;\n line-height: 1.1;\n white-space: nowrap;\n}\n.mui-ls-slider-input-row {\n display: flex;\n min-width: 0;\n min-height: calc(var(--ls-control-height) - 14px);\n align-items: center;\n gap: 1rem;\n}\n.mui-ls-slider-input-row--slider {\n flex-wrap: nowrap;\n}\n.mui-ls-slider-input-row--input {\n justify-content: stretch;\n}\n.mui-ls-slider-input-value.mui-ls-input {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiFormControl-root,\n.mui-ls-slider-input-value.mui-ls-input .MuiTextField-root {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiInputBase-root {\n min-height: 36px;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiOutlinedInput-notchedOutline {\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n}\n.mui-ls-slider-input-helper {\n display: block;\n margin-top: 0.25rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.75rem;\n line-height: 1.25;\n}\n.ls-multi-select-value {\n display: flex;\n width: 100%;\n min-width: 0;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n white-space: nowrap;\n}\n.ls-multi-select-value__label {\n min-width: 0;\n flex: 1 1 0%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-multi-select-value__count {\n flex-shrink: 0;\n white-space: nowrap;\n}\n.ls-color-picker__preview {\n position: relative;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n padding: 0;\n border: 1px solid color-mix(in srgb, #fff 25%, transparent);\n border-radius: var(--radius, 1rem);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);\n color: transparent;\n line-height: 0;\n}\n.ls-color-picker__preview:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-color-picker__preview:focus {\n outline: none;\n}\n.ls-color-picker__preview:focus-visible {\n box-shadow:\n 0 0 0 2px var(--primary, #ff4076),\n 0 0 0 4px var(--neutralDark1, #1b1a28),\n 0 0 0 1px rgba(0, 0, 0, 0.25);\n}\n.ls-color-picker__gradient circle,\n.ls-color-picker__gradient polyline {\n stroke: #fff !important;\n}\n.ls-variable-picker {\n --variable-custom-color: var(--customVariables, #69ffd2);\n --variable-function-color: var( --functionVariables, var(--semanticPurple, #b489ff) );\n --variable-normal-color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n display: flex;\n width: 92vw;\n max-width: 1100px;\n min-height: 50vh;\n max-height: 55vh;\n flex-direction: column;\n overflow: hidden;\n padding: 1rem;\n}\n.ls-variable-picker__field {\n margin: 0 0 0.75rem;\n border: 1px solid color-mix(in srgb, var(--primary, #ff4076) 42%, var(--neutralDark4, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0.5rem;\n}\n.ls-variable-picker__legend {\n padding-inline: 0.375rem;\n color: var(--primary, #ff4076);\n font-size: 0.75rem;\n font-weight: 700;\n}\n.ls-variable-picker__intro {\n margin-bottom: 1rem;\n color: var(--neutralLight2, #cac9d5);\n}\n.ls-variable-picker__header,\n.ls-variable-picker__row {\n display: grid;\n grid-template-columns: minmax(300px, 1.5fr) 1fr 1fr;\n gap: 2rem;\n}\n.ls-variable-picker__header {\n margin-bottom: 0.25rem;\n padding-inline: 0.25rem;\n padding-right: 1.7rem;\n color: var(--neutralLight3, #9392a1);\n}\n.ls-variable-picker__list {\n height: 100%;\n overflow: auto;\n padding-right: 1rem;\n}\n.ls-variable-picker__row {\n cursor: pointer;\n align-items: start;\n border-bottom: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 70%, transparent);\n padding: 1rem 0.25rem;\n}\n.ls-variable-picker__row--no-border {\n border-bottom: 0;\n}\n.ls-variable-picker__token-cell {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-variable-picker__expand-toggle,\n.ls-variable-picker__expand-spacer {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n}\n.ls-variable-picker__expand-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 75%, transparent);\n border-radius: var(--radius, 1rem);\n padding: 0;\n background: var(--neutralDark3, var(--containerbackground, #1f1f3a));\n color: var(--neutralLight2, #cac9d5);\n transition:\n background-color 140ms ease,\n border-color 140ms ease,\n color 140ms ease,\n transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle:hover {\n border-color: var(--primary, #ff4076);\n background: color-mix(in srgb, var(--primary, #ff4076) 16%, var(--neutralDark3, #1f1f3a));\n color: var(--neutralLight1, #fff);\n}\n.ls-variable-picker__expand-toggle svg {\n transform: rotate(-90deg);\n transition: transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle--expanded svg {\n transform: rotate(0deg);\n}\n.ls-variable-picker__row:active {\n opacity: 0.8;\n}\n.ls-variable-picker__description {\n max-width: 600px;\n overflow-wrap: break-word;\n line-height: 1.25;\n word-break: break-all;\n}\n.ls-variable-picker__value {\n min-width: 0;\n}\n.ls-variable-picker__value-input {\n width: 100%;\n min-width: 0;\n cursor: text;\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n caret-color: transparent;\n font: inherit;\n font-size: 1rem;\n line-height: 1.25;\n outline: 0;\n padding: 0;\n text-overflow: ellipsis;\n}\n.ls-variable-picker__value-input:focus {\n outline: 0;\n}\n.ls-variable-picker__value-input::selection {\n background: color-mix(in srgb, var(--primary, #ff4076) 45%, transparent);\n color: var(--alwayswhite, var(--white, #fff));\n}\n.ls-variable-token {\n display: flex;\n min-width: 0;\n align-items: center;\n}\n.ls-variable-token--suggested {\n color: var(--suggestedVariables, #ffb469);\n}\n.ls-variable-token--custom {\n color: var(--customVariables, #69ffd2);\n}\n.ls-variable-token--function {\n color: var(--functionVariables, var(--semanticPurple, #b489ff));\n}\n.ls-variable-token--system {\n color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n}\n.ls-variable-token__name {\n min-width: 0;\n word-break: break-all;\n}\n.ls-variable-token__badge {\n display: inline-flex;\n margin-left: 0.5rem;\n flex-shrink: 0;\n align-items: center;\n border: 1px solid currentcolor;\n border-radius: var(--radius, 1rem);\n padding-inline: 0.25rem;\n padding-block: 0;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n text-transform: uppercase;\n}\n.ls-chat-message {\n position: relative;\n font-size: 0.95em;\n line-height: 1.4;\n color: var(--white, var(--neutralLight1, #fff));\n overflow-wrap: break-word;\n word-break: break-word;\n}\n.ls-chat-message img {\n display: inline-block;\n}\n.ls-chat-message__reply {\n display: block;\n margin-bottom: 0.15em;\n font-size: 0.82em;\n color: var(--white2, var(--neutralLight3, #9392a1));\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-chat-message__avatar-prefix {\n vertical-align: middle;\n}\n.ls-chat-message__avatar {\n width: 1.3em;\n height: 1.3em;\n border-radius: 9999px;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site {\n display: inline-block;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site img,\n.ls-chat-message__site svg {\n width: 1.2em;\n height: 1.2em;\n vertical-align: middle;\n}\n.ls-chat-message__time {\n margin-right: 0.35em;\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__badges {\n vertical-align: middle;\n}\n.ls-chat-message__badges img {\n height: 1.05em;\n vertical-align: middle;\n margin-right: 0.25em;\n}\n.ls-chat-message__username {\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__username--clickable {\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n font: inherit;\n}\n.ls-chat-message__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-viewerslist__username--clickable,\n.ls-eventlist-item__username--clickable {\n cursor: pointer;\n}\n.ls-viewerslist__username--clickable:hover,\n.ls-eventlist-item__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-chat-message__text {\n vertical-align: middle;\n}\n.ls-chat-message__text img {\n vertical-align: middle;\n}\n.ls-chat-message__actions {\n position: absolute;\n top: 0;\n right: 0;\n}\n.ls-chat-message__modbar {\n display: flex;\n overflow: hidden;\n border-radius: 0.75rem;\n background-color: var(--separator, #0a0821);\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0.5rem;\n cursor: pointer;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn:hover {\n background-color: var(--cardborder, var(--neutralDark4, #393853));\n}\n.ls-chat-message__modbtn--danger:hover {\n color: var(--error, #fd5454);\n}\n.ls-chat-message__menu-icon {\n display: flex;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-eventlist-item {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n gap: 1em;\n border: 1px solid var(--cardborder, var(--neutralDark4, #393853));\n border-left: 4px solid var(--primary, #ff4076);\n border-radius: 1em;\n background-color: var(--cardbackground, var(--neutralDark2, #211d3e));\n color: var(--white, var(--neutralLight1, #fff));\n padding: 1em;\n line-height: 1.35;\n}\n.ls-eventlist-item__main {\n display: flex;\n flex-direction: column;\n gap: 0.2em;\n min-width: 0;\n}\n.ls-eventlist-item__identity {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__avatar,\n.ls-eventlist-item__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n overflow: hidden;\n}\n.ls-eventlist-item__avatar {\n border-radius: 1em;\n background-color: var(--background, transparent);\n}\n.ls-eventlist-item__avatar img,\n.ls-eventlist-item__icon img,\n.ls-eventlist-item__icon svg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.ls-eventlist-item__username {\n min-width: 0;\n font-weight: 700;\n font-size: 0.875em;\n word-break: break-all;\n}\n.ls-eventlist-item__body {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__message {\n min-width: 0;\n word-break: break-all;\n}\n.ls-eventlist-item__usermessage {\n min-width: 0;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-eventlist-item__time {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.875em;\n white-space: nowrap;\n}\n.ls-eventlist-item__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: center;\n gap: 0.5em;\n flex-shrink: 0;\n}\n.ls-modqueue-item {\n display: flex;\n align-items: stretch;\n gap: 0.5rem;\n border-radius: 1rem;\n background-color: color-mix(in srgb, var(--secondary, #535395) 20%, transparent);\n padding: 0.5rem;\n}\n.ls-modqueue-item__preview {\n display: flex;\n height: 4rem;\n width: 4rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n color: var(--primary, #ff4076);\n font-size: 1.75rem;\n line-height: 1;\n}\n.ls-modqueue-item__preview > * {\n display: flex;\n max-height: 100%;\n max-width: 100%;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n.ls-modqueue-item__preview img,\n.ls-modqueue-item__preview svg {\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n}\n.ls-modqueue-item__body {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n justify-content: flex-start;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item__head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n flex-wrap: wrap;\n}\n.ls-modqueue-item__avatar {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n border: 1px solid var(--separator, #322c52);\n}\n.ls-modqueue-item__username {\n font-weight: 700;\n color: var(--white, var(--neutralLight1, #fff));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 12rem;\n}\n.ls-modqueue-item__command {\n display: inline-flex;\n align-items: center;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n padding: 0.05rem 0.5rem;\n font-size: 0.8125rem;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modqueue-item__message {\n font-size: 0.875rem;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-modqueue-item__actions {\n display: flex;\n flex-shrink: 0;\n align-items: flex-start;\n gap: 0.5rem;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn {\n padding: 0;\n border-radius: 0.5rem;\n transition: opacity 300ms ease;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn:hover {\n background-color: transparent;\n opacity: 0.7;\n}\n.ls-modqueue-item__action-icon {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n}\n.ls-modlog {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modlog__toolbar {\n display: flex;\n justify-content: flex-end;\n}\n.ls-modlog__clear {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n border: 0;\n border-radius: 0.75rem;\n background: transparent;\n padding: 0.25rem 0.625rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n cursor: pointer;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-modlog__clear:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 8%, transparent);\n color: var(--white, #fff);\n}\n.ls-modlog__empty {\n display: flex;\n height: 100%;\n flex: 1;\n align-items: center;\n justify-content: center;\n border-radius: 1rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modlog__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.375rem;\n overflow: auto;\n}\n.ls-modlog__row {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n border-radius: 0.625rem;\n border-left: 3px solid var(--ls-modlog-accent, var(--primary, #ff4076));\n padding: 0.5rem 0.625rem;\n font-size: 0.8125rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n background-image: linear-gradient(var(--ls-modlog-bar, transparent), var(--ls-modlog-bar, transparent));\n}\n.ls-modlog__head {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-modlog__avatar {\n height: 1.25rem;\n width: 1.25rem;\n border-radius: 9999px;\n}\n.ls-modlog__title {\n display: inline-flex;\n align-items: center;\n border-radius: 0.375rem;\n padding: 0.05rem 0.4rem;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--ls-modlog-accent, var(--primary, #ff4076));\n background-color: color-mix(in srgb, var(--ls-modlog-accent, #ff4076) 18%, transparent);\n}\n.ls-modlog__time {\n margin-left: auto;\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.6875rem;\n font-variant-numeric: tabular-nums;\n}\n.ls-modlog__message {\n word-break: break-word;\n overflow-wrap: anywhere;\n line-height: 1.35;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__addbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-songreq__addbar .ls-songreq__addinput {\n flex: 1;\n}\n.ls-songreq__empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__now {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.75rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n}\n.ls-songreq__art {\n height: 3.5rem;\n width: 3.5rem;\n flex-shrink: 0;\n border-radius: 0.75rem;\n object-fit: cover;\n}\n.ls-songreq__nowbody {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.1rem;\n}\n.ls-songreq__title {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__artist {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__requester {\n overflow: hidden;\n font-size: 0.6875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__progress {\n margin-top: 0.375rem;\n height: 0.375rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-songreq__progressbar {\n height: 100%;\n border-radius: 9999px;\n background-color: var(--success, #1db954);\n transition: width 1000ms linear;\n}\n.ls-songreq__controls {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-songreq__btn {\n display: inline-flex;\n height: 2rem;\n width: 2rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.625rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background: transparent;\n font-size: 0.875rem;\n line-height: 1;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 120ms ease, color 120ms ease;\n}\n.ls-songreq__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-songreq__queue {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n.ls-songreq__queuehead {\n margin-bottom: 0.25rem;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__queuelist {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n overflow: auto;\n}\n.ls-songreq__queueempty {\n padding: 0.5rem 0.25rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.75rem;\n padding: 0.375rem 0.5rem;\n transition: background-color 120ms ease;\n}\n.ls-songreq__item:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-songreq__itemart {\n height: 2.25rem;\n width: 2.25rem;\n flex-shrink: 0;\n border-radius: 0.5rem;\n object-fit: cover;\n}\n.ls-songreq__itembody {\n min-width: 0;\n flex: 1;\n}\n.ls-songreq__itemtitle {\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__itemmeta {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__remove {\n flex-shrink: 0;\n cursor: pointer;\n border: 0;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: color 120ms ease;\n}\n.ls-songreq__remove:hover {\n color: var(--error, #fd5454);\n}\n.ls-modqueue {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-modqueue__search-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n margin-right: 0.5rem;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n}\n.ls-modqueue__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__empty-icon {\n font-size: 1.875rem;\n}\n.ls-modqueue__bulk {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.ls-modqueue .ls-modqueue__bulk-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.5rem;\n border: 1px solid currentcolor;\n background: transparent;\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n transition: opacity 120ms ease;\n}\n.ls-modqueue .ls-modqueue__bulk-btn:hover {\n opacity: 0.7;\n}\n.ls-modqueue .ls-modqueue__bulk-btn--deny {\n color: var(--error, #fd5454);\n}\n.ls-modqueue .ls-modqueue__bulk-btn--approve {\n color: var(--success, #7ed187);\n}\n.ls-modqueue__bulk-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n}\n.ls-modqueue__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-modqueue__readonly {\n font-size: 0.625rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__search-slot {\n flex-shrink: 0;\n}\n.ls-chatbox {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-chatbox__viewport {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.ls-chatbox__list {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow-y: auto;\n padding: 0.75rem;\n}\n.ls-chatbox__jump {\n position: absolute;\n bottom: 0.75rem;\n right: 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n border-radius: 9999px;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n padding: 0.5rem 0.75rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n backdrop-filter: blur(4px);\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-chatbox__jump:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-chatbox__jump-arrow {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-chatbox__jump-arrow--up {\n transform: rotate(180deg);\n}\n.ls-chatbox__jump-badge {\n margin-left: 0.25rem;\n border-radius: 9999px;\n background-color: var(--primary, #ff4076);\n padding: 0.125rem 0.5rem;\n font-size: 0.625rem;\n font-weight: 600;\n color: var(--alwayswhite, #fff);\n}\n.ls-chatbox__sendbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n padding: 0 0.75rem 0.75rem;\n}\n.ls-chatbox__sendbar .ls-chatbox__input {\n flex: 2 1 0%;\n min-width: 100px;\n width: 100%;\n}\n.ls-chatbox__sendbar .ls-chatbox__platform {\n flex: 1 1 0%;\n min-width: 7.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__chatas {\n flex: 0 1 auto;\n min-width: 5.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__send {\n height: 55px;\n flex-shrink: 0;\n}\n.ls-panel {\n --ls-panel-padding: 0.75rem;\n display: flex;\n flex-direction: column;\n border-radius: 1rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: var(--ls-panel-bg, #1b1834);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.55);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-panel__clickaway {\n position: fixed;\n inset: 0;\n z-index: 20;\n}\n.ls-panel__header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: var(--ls-panel-padding) var(--ls-panel-padding) 0.5rem;\n}\n.ls-panel__title {\n min-width: 0;\n font-size: 1rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-panel__title--label {\n font-size: 0.75rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-panel__header-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-panel__close {\n display: flex;\n height: 1.5rem;\n width: 1.5rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.5rem;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-panel__close:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-panel__body {\n min-height: 0;\n flex: 1;\n overflow: auto;\n padding: 0 var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-panel--no-header .ls-panel__body {\n padding-top: var(--ls-panel-padding);\n}\n.ls-panel__footer {\n flex-shrink: 0;\n padding: 0.5rem var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-modal {\n position: fixed;\n inset: 0;\n z-index: 2000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n}\n.ls-modal--absolute {\n position: absolute;\n}\n.ls-modal__backdrop {\n position: absolute;\n inset: 0;\n background-color: color-mix(in srgb, var(--ls-modal-backdrop, var(--separator, #0a0821)) 75%, transparent);\n backdrop-filter: blur(4px);\n}\n.ls-modal__card {\n position: relative;\n width: 100%;\n max-width: var(--ls-modal-max-width, min(560px, 92vw));\n max-height: 85vh;\n}\n.ls-modal__card--fit {\n width: auto;\n}\n.ls-modal__card--center .ls-panel__body {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog {\n margin-top: 0.5rem;\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog__card {\n position: relative;\n z-index: 10;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n border-radius: 1rem;\n outline: none;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-dialog__card--pad {\n padding: 1rem;\n}\n.ls-dialog__card--full {\n border-radius: 0;\n}\n.ls-dialog__top {\n display: flex;\n width: 100%;\n align-items: flex-start;\n justify-content: space-between;\n}\n.ls-dialog__top--full {\n margin-top: 2rem;\n}\n.ls-dialog__top-side {\n flex: 1;\n}\n.ls-dialog__title {\n font-size: 1.25rem;\n color: var(--white, #fff);\n}\n.ls-dialog__close {\n display: flex;\n flex: 1;\n justify-content: flex-end;\n user-select: none;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-dialog__close-btn {\n display: flex;\n cursor: pointer;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-dialog__close-label {\n cursor: pointer;\n font-size: 1rem;\n font-weight: 700;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-dialog__body {\n display: flex;\n width: 100%;\n flex: 1;\n min-height: 0;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n overflow: auto;\n}\n.ls-dialog__bottom {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding-bottom: 1rem;\n}\n.ls-eventlist {\n display: flex;\n height: 100%;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n line-height: 1.35;\n}\n.ls-eventlist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5em;\n overflow-y: auto;\n}\n.ls-eventlist__row {\n flex-shrink: 0;\n animation: ls-eventlist-enter 250ms ease;\n}\n.ls-eventlist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75em;\n border-radius: 1em;\n padding: 1em;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-eventlist__empty-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 1.875em;\n}\n.ls-eventlist__empty-icon img,\n.ls-eventlist__empty-icon svg {\n width: 1.6em;\n height: 1.6em;\n}\n@keyframes ls-eventlist-enter {\n from {\n opacity: 0;\n transform: translateX(-1.5em);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.ls-streamstatus {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: auto;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-streamstatus--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__status {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.625rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__indicator {\n position: relative;\n display: inline-flex;\n height: 0.75rem;\n width: 0.75rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__indicator-ping {\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--success, #7ed187) 60%, transparent);\n animation: ls-streamstatus-ping 1.2s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n@keyframes ls-streamstatus-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ls-streamstatus__indicator-dot {\n position: relative;\n height: 0.75rem;\n width: 0.75rem;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__indicator-dot--online {\n background-color: var(--success, #7ed187);\n}\n.ls-streamstatus__status-body {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n.ls-streamstatus__status-label {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__status-sublabel {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__overview {\n display: flex;\n flex-shrink: 0;\n align-items: stretch;\n gap: 0.5rem;\n}\n.ls-streamstatus__total {\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__total-value {\n font-size: 1.875rem;\n font-weight: 700;\n line-height: 1;\n color: var(--primary, #ff4076);\n}\n.ls-streamstatus__total-label {\n margin-top: 0.25rem;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platforms {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n gap: 0.25rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__platforms-empty {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-streamstatus__platform-info {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n}\n.ls-streamstatus__platform-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__platform-icon img,\n.ls-streamstatus__platform-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-streamstatus__platform-dot {\n height: 0.5rem;\n width: 0.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-streamstatus__platform-value {\n flex-shrink: 0;\n font-size: 0.75rem;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stats {\n display: grid;\n flex-shrink: 0;\n grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));\n gap: 0.5rem;\n}\n.ls-streamstatus__stat {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 0.125rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__stat-head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-streamstatus__stat-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__stat-icon img,\n.ls-streamstatus__stat-icon svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-streamstatus__stat-actions {\n display: inline-flex;\n margin-left: auto;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-value {\n overflow: hidden;\n font-size: 1.125rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stat-trendrow {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-trendrow svg {\n width: 10px;\n flex-shrink: 0;\n}\n.ls-streamstatus__stat-label {\n min-width: 0;\n overflow: hidden;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__stat-sub {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-viewerslist__head {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-viewerslist__count {\n flex-shrink: 0;\n font-size: 0.875rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-viewerslist__search {\n min-width: 0;\n flex: 1;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--black, #000) 20%, transparent);\n padding: 0.375rem 0.75rem;\n font-size: 0.8125rem;\n color: var(--white, #fff);\n outline: none;\n}\n.ls-viewerslist__search:focus {\n border-color: var(--primary, #ff4076);\n}\n.ls-viewerslist__search::placeholder {\n color: color-mix(in srgb, var(--grey, var(--neutralLight3, #9392a1)) 60%, transparent);\n}\n.ls-viewerslist__search-slot {\n min-width: 0;\n flex: 1;\n}\n.ls-viewerslist__hint {\n flex-shrink: 0;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty-icon {\n font-size: 1.875rem;\n}\n.ls-viewerslist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.125rem;\n overflow: auto;\n}\n.ls-viewerslist__group {\n margin-top: 0.375rem;\n flex-shrink: 0;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__group:first-child {\n margin-top: 0;\n}\n.ls-viewerslist__viewer {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.5rem;\n padding: 0.25rem 0.375rem;\n transition: background-color 120ms ease;\n}\n.ls-viewerslist__viewer:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-viewerslist__avatar {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n object-fit: cover;\n}\n.ls-viewerslist__platform {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__platform img,\n.ls-viewerslist__platform svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-viewerslist__username {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-viewerslist__badges {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-viewerslist__actions {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-shortcutdock,\n.ls-shortcutdock * {\n box-sizing: border-box;\n}\n.ls-shortcutdock {\n display: grid;\n width: 100%;\n align-content: start;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-shortcutdock--disabled {\n opacity: 0.55;\n}\n.ls-shortcutdock__empty {\n grid-column: 1 / -1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n text-align: center;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-shortcutdock__cell {\n position: relative;\n min-width: 0;\n}\n.ls-shortcutdock__btn {\n display: flex;\n height: 100%;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 12%, transparent);\n background-color: transparent;\n padding: 0.25rem;\n font: inherit;\n color: var(--white, #fff);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent) !important;\n transition:\n background-color 150ms ease,\n border-color 150ms ease,\n opacity 150ms ease;\n}\n.ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 7%, transparent);\n}\n.ls-shortcutdock__btn--selected,\n.ls-shortcutdock__btn--selected:hover {\n border-color: var(--primary, #ff4076);\n}\n.ls-shortcutdock__btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn {\n cursor: default;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-shortcutdock__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.15rem;\n line-height: 1;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__icon {\n font-size: 1.5rem;\n}\n.ls-shortcutdock__btn-image {\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n border-radius: 0.375rem;\n object-fit: cover;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__btn-image {\n width: 2rem;\n height: 2rem;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__btn-image {\n width: 60%;\n height: 60%;\n border-radius: 0.5rem;\n}\n.ls-shortcutdock__label {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n padding-inline: 0.125rem;\n text-align: center;\n font-size: 0.625rem;\n font-weight: 600;\n line-height: 1.2;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-shortcutdock__btn--icon-only {\n font-size: clamp(1rem, 1.4vw, 1.5rem);\n font-weight: 700;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon {\n width: 100%;\n height: 100%;\n font-size: inherit;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon svg {\n width: 60%;\n height: 60%;\n}\n.ls-shortcutdock__remove {\n position: absolute;\n top: -0.375rem;\n right: -0.375rem;\n z-index: 1;\n display: flex;\n height: 1.25rem;\n width: 1.25rem;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: none;\n border-radius: 9999px;\n background-color: var(--error, #fd5454);\n padding: 0;\n font: inherit;\n font-size: 0.75rem;\n line-height: 1;\n color: var(--white, #fff);\n box-shadow: 0 1px 3px color-mix(in srgb, var(--black, #000) 30%, transparent);\n transition: opacity 120ms ease;\n}\n.ls-shortcutdock__remove:hover {\n opacity: 0.8;\n}\n.ls-shortcutdock__add {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px dashed color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background: transparent;\n padding: 0.25rem;\n font: inherit;\n font-size: 1.5rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: border-color 150ms ease, color 150ms ease;\n}\n.ls-shortcutdock__add:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 40%, transparent);\n color: var(--white, #fff);\n}\n.ls-goals,\n.ls-goals * {\n box-sizing: border-box;\n}\n.ls-goals {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 1rem;\n}\n.ls-goals__empty {\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__head {\n display: flex;\n align-items: baseline;\n gap: 0.375rem;\n font-size: 0.875rem;\n}\n.ls-goals__icon {\n display: flex;\n align-self: center;\n align-items: center;\n line-height: 1;\n}\n.ls-goals__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n color: var(--white, #fff);\n}\n.ls-goals__value {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__target {\n opacity: 0.6;\n}\n.ls-goals__bar {\n margin-top: 0.375rem;\n height: 0.625rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-goals__fill {\n height: 100%;\n border-radius: 9999px;\n background-image:\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--ls-goals-accent, var(--primary, #ff4076)) 80%, transparent),\n var(--ls-goals-accent, var(--primary, #ff4076)));\n transition: width 700ms ease-out;\n}\n.ls-goals__percent {\n flex-shrink: 0;\n min-width: 2.75rem;\n text-align: right;\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n color: var(--ls-goals-accent, var(--primary, #ff4076));\n}\n.ls-platform-icon {\n display: inline-block;\n height: 1.15em;\n width: auto;\n max-width: 1.5em;\n vertical-align: middle;\n object-fit: contain;\n}\n.ls-chatbox__platform-option {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n}\n.ls-shortcutdock__btn--colored {\n border-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 70%, transparent);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent);\n}\n.ls-shortcutdock__btn--colored:hover {\n border-color: var(--ls-shortcutdock-accent, var(--white, #fff));\n background-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 12%, transparent);\n}\n.ls-widget {\n position: relative;\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n border-radius: var(--radius, 1rem);\n border: 1px solid color-mix(in srgb, var(--cardborder, #393853) 50%, transparent);\n background-image: var(--gradientBg, linear-gradient(180deg, #1b1834 0%, #151230 100%));\n background-color: var(--background, #151230);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-widget__header {\n position: relative;\n display: flex;\n min-height: 2.75rem;\n width: 100%;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n padding-inline: 0.5rem;\n}\n.ls-widget__side {\n display: flex;\n z-index: 10;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-widget__side--right {\n margin-left: auto;\n}\n.ls-widget__title {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 600;\n letter-spacing: 0.025em;\n white-space: nowrap;\n}\n.ls-widget__btn {\n display: flex;\n height: 2rem;\n width: 2rem;\n flex-shrink: 0;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.375rem;\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n color: color-mix(in srgb, var(--white, #fff) 70%, transparent);\n font: inherit;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-widget__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-widget__btn--active {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 20%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn--active:hover {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 30%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-widget__body {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n overflow: auto;\n}\n");
|
|
24
|
+
styleInject(".ls-color-picker,\n.ls-color-picker *,\n.mui-multi-select,\n.mui-multi-select *,\n.ls-multi-select-value,\n.ls-multi-select-value *,\n.ls-variable-picker,\n.ls-variable-picker *,\n.ls-variable-token,\n.ls-variable-token *,\n.ls-font-picker,\n.ls-font-picker *,\n.mui-ls-input,\n.mui-ls-input * {\n box-sizing: border-box;\n}\n.ls-color-picker button,\n.mui-multi-select button {\n font: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n}\n.ls-color-picker__preview {\n appearance: none;\n -webkit-appearance: none;\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n text-transform: uppercase;\n user-select: none;\n}\n.mui-ls-button.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.45;\n background-color: var(--separator, #0a0821);\n cursor: not-allowed;\n}\n.mui-ls-button {\n border-radius: var(--radius, 1rem);\n padding: 0.375rem 1.5rem;\n text-transform: uppercase;\n}\n.mui-ls-button.MuiButton-sizeSmall {\n padding: 0.25rem 1rem;\n}\n.mui-ls-button.MuiButton-sizeLarge {\n padding: 0.625rem 2rem;\n}\n.mui-ls-button--extended {\n padding-inline: 3rem;\n}\n.mui-ls-button.MuiButton-containedPrimary,\n.mui-ls-button.Mui-disabled.MuiButton-containedPrimary {\n background: var(--primary, #ff4076);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.Mui-disabled.MuiButton-containedSecondary {\n background-color: var(--secondary, #535395);\n color: var(--neutralLight2, var(--white2, #cac9d5));\n opacity: 0.4;\n}\n.mui-ls-button.MuiButton-outlinedPrimary {\n color: var(--primary, #ff4076);\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-button.MuiButton-outlinedPrimary:hover {\n border-color: var(--primary, #ff4076);\n background-color: color-mix(in srgb, var(--primary, #ff4076) 12%, transparent);\n}\n.mui-ls-button.MuiButton-outlinedSecondary {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--secondary, #535395);\n}\n.mui-ls-button.MuiButton-outlinedSecondary.Mui-disabled {\n color: var(--neutralLight2, var(--white2, #cac9d5));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n opacity: 0.5;\n}\n.mui-ls-button.MuiButton-outlinedSecondary:hover {\n border-color: var(--secondary, #535395);\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button.MuiButton-containedError {\n color: var(--alwayswhite, #fff) !important;\n}\n.mui-ls-button.MuiButton-outlinedError {\n color: var(--error, #fd5454);\n border-color: var(--error, #fd5454);\n}\n.mui-ls-button.MuiButton-outlinedError:hover {\n border-color: var(--error, #fd5454);\n background-color: color-mix(in srgb, var(--error, #fd5454) 12%, transparent);\n}\n.mui-ls-button--neutral.mui-ls-button--contained {\n background-color: var(--neutralDark4, var(--cardborder, #393853));\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-button--neutral.mui-ls-button--contained:hover {\n background-color: color-mix(in srgb, var(--neutralDark4, var(--cardborder, #393853)) 82%, var(--neutralLight1, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--outlined {\n color: var(--neutralLight1, var(--white, #fff));\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n background-color: transparent;\n}\n.mui-ls-button--neutral.mui-ls-button--outlined:hover {\n border-color: var(--neutralLight3, var(--grey, #9392a1));\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button--neutral.mui-ls-button--text {\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-button--neutral.mui-ls-button--text:hover {\n background-color: var(--transwhite, rgba(255, 255, 255, 0.05));\n}\n.mui-ls-button svg {\n max-height: 24px;\n max-width: 24px;\n}\n.mui-ls-input,\n.ls-font-picker,\n.ls-color-picker__input {\n width: 100%;\n}\n.mui-ls-input,\n.mui-ls-select-form-control,\n.mui-multi-select,\n.ls-font-picker,\n.mui-ls-slider-input-root {\n --ls-control-height: 55px;\n}\n.mui-ls-input .MuiOutlinedInput-root,\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-input .MuiOutlinedInput-notchedOutline,\n.mui-ls-select.MuiOutlinedInput-root,\n.mui-ls-select .MuiOutlinedInput-notchedOutline,\n.mui-multi-select .mui-ls-select.MuiOutlinedInput-root,\n.mui-multi-select .mui-ls-select .MuiOutlinedInput-notchedOutline,\n.ls-font-picker .MuiOutlinedInput-root,\n.ls-font-picker .MuiInputBase-root,\n.ls-font-picker .MuiOutlinedInput-notchedOutline,\n.ls-color-picker__input .MuiOutlinedInput-root,\n.ls-color-picker__input .MuiInputBase-root,\n.ls-color-picker__input .MuiOutlinedInput-notchedOutline {\n border-radius: var(--radius) !important;\n}\n.mui-ls-input .MuiInputBase-root,\n.mui-ls-select.MuiInputBase-root,\n.mui-multi-select .mui-ls-select.MuiInputBase-root,\n.ls-font-picker .MuiInputBase-root {\n min-height: var(--ls-control-height);\n}\n.mui-ls-input.small .MuiInputBase-root {\n min-height: 25px;\n}\n.mui-ls-input.medium .MuiInputBase-root {\n min-height: 35px;\n}\n.mui-ls-input.noMinHeight .MuiInputBase-root {\n min-height: unset;\n}\n.mui-ls-date-picker input[type=datetime-local]::-webkit-calendar-picker-indicator {\n cursor: pointer;\n opacity: 0.9;\n filter: invert(1);\n}\n.mui-ls-select .MuiSelect-select,\n.mui-multi-select .MuiSelect-select {\n display: flex;\n min-height: calc(var(--ls-control-height) - 2px);\n align-items: center;\n box-sizing: border-box;\n border-radius: var(--radius);\n}\n.mui-multi-select .MuiSelect-select {\n min-width: 0;\n}\n.MuiSvgIcon-root svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.mui-ls-input .MuiSvgIcon-root svg path {\n fill: currentcolor;\n stroke: currentcolor;\n}\n.mui-ls-input .MuiInputLabel-root,\n.mui-ls-select-form-control .MuiInputLabel-root {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n line-height: 1;\n}\n.mui-ls-input .MuiInputLabel-root svg,\n.mui-ls-select-form-control .MuiInputLabel-root svg {\n display: block;\n flex: 0 0 auto;\n}\n.mui-ls-input input::placeholder,\n.mui-ls-input textarea::placeholder {\n color: var(--neutralLight3, var(--grey, #9392a1));\n opacity: 0.55;\n font-style: italic;\n}\n.mui-ls-input .MuiInputBase-input,\n.mui-ls-input .MuiInputAdornment-root,\n.mui-ls-input .MuiSvgIcon-root,\n.mui-ls-input .MuiFormHelperText-root {\n color: var(--neutralLight1, var(--white, #fff));\n opacity: 1;\n}\n.mui-ls-input .Mui-focused .MuiOutlinedInput-notchedOutline,\n.mui-ls-input .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: var(--primary, #ff4076) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-paper,\n.ls-variable-autocomplete-paper {\n border: 1px solid var(--neutralDark4, var(--cardborder, #393853)) !important;\n border-radius: var(--radius, 1rem) !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n box-shadow: 0 16px 32px rgba(0, 0, 0, 0.32) !important;\n overflow: hidden !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-listbox,\n.ls-variable-autocomplete-listbox {\n padding: 0.25rem 0 !important;\n background: var(--neutralDark2, var(--cardbackground, #211f45)) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupLabel,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupLabel {\n position: sticky;\n top: 0;\n z-index: 1;\n min-height: 32px;\n padding: 0.45rem 1rem 0.25rem !important;\n background: var(--neutralDark1, var(--background, #18162f)) !important;\n color: var(--neutralLight3, var(--grey, #9392a1)) !important;\n font-size: 0.75rem !important;\n font-weight: 700 !important;\n letter-spacing: 0 !important;\n line-height: 1.2 !important;\n text-transform: uppercase;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-groupUl,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-groupUl {\n padding: 0 !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option {\n display: flex !important;\n min-height: 44px !important;\n align-items: center !important;\n padding: 0.625rem 1rem !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n font-size: 1rem !important;\n line-height: 1.35 !important;\n cursor: pointer !important;\n transition: background-color 120ms ease, color 120ms ease !important;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option > *,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option > * {\n min-width: 0;\n}\n.ls-variable-autocomplete-popper .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-popper .MuiAutocomplete-option[aria-selected=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option:hover,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option.Mui-focused,\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[data-focus=true],\n.ls-variable-autocomplete-listbox .MuiAutocomplete-option[aria-selected=true] {\n background: var( --cardHover, var(--transwhite, rgba(255, 255, 255, 0.05)) ) !important;\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-option {\n gap: 0.75rem;\n}\n.ls-variable-option__thumb {\n width: 40px;\n height: 40px;\n flex: 0 0 40px;\n border-radius: var(--radius, 1rem);\n object-fit: cover;\n}\n.ls-variable-option__thumb--placeholder {\n background: var(--neutralDark4, var(--cardborder, #393853));\n}\n.ls-variable-option__body {\n min-width: 0;\n}\n.ls-variable-option__label {\n color: var(--neutralLight1, var(--white, #fff));\n font-weight: 500;\n line-height: 1.25;\n}\n.ls-variable-option__helper {\n margin-top: 0.125rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.875rem;\n line-height: 1.25;\n}\n.ls-variable-autocomplete-popup-indicator,\n.ls-variable-autocomplete-popup-indicator.MuiIconButton-root,\n.ls-variable-autocomplete-popup-indicator svg {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-autocomplete-popup-indicator svg path {\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker .MuiInputLabel-root .MuiSvgIcon-root,\n.ls-color-picker .MuiInputLabel-root svg,\n.ls-color-picker .MuiInputLabel-root svg path,\n.ls-color-picker__gradient button,\n.ls-color-picker__gradient button svg,\n.ls-color-picker__gradient button svg path,\n.ls-color-picker__gradient button svg line,\n.ls-color-picker__gradient button svg polyline,\n.ls-color-picker__gradient button svg polygon,\n.ls-color-picker__gradient button svg circle,\n.ls-color-picker__gradient button svg rect {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__gradient button[aria-pressed=true] svg,\n.ls-color-picker__gradient button[aria-selected=true] svg,\n.ls-color-picker__gradient button[data-active=true] svg,\n.ls-color-picker__gradient button[aria-pressed=true] svg *,\n.ls-color-picker__gradient button[aria-selected=true] svg *,\n.ls-color-picker__gradient button[data-active=true] svg * {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-color-picker__picker--inline {\n max-height: none !important;\n}\n.ls-color-picker__gradient {\n color: var(--neutralLight1, var(--white, #fff)) !important;\n}\n.ls-variable-input-adornment,\n.ls-variable-input-adornment.MuiInputAdornment-root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n min-width: 24px;\n margin-left: 0.35rem;\n border-radius: var(--radius, 1rem);\n background: var(--primary, #ff4076) !important;\n color: var(--alwayswhite, var(--white, #fff)) !important;\n font-weight: 800;\n line-height: 1;\n letter-spacing: 0;\n cursor: pointer;\n user-select: none;\n}\n.ls-variable-input-adornment svg,\n.ls-variable-input-adornment path {\n color: currentcolor !important;\n fill: currentcolor !important;\n stroke: currentcolor !important;\n}\n.ls-variable-input-adornment:hover,\n.ls-variable-input-adornment.MuiInputAdornment-root:hover {\n filter: brightness(1.08);\n}\n.ls-variable-input-adornment:active,\n.ls-variable-input-adornment.MuiInputAdornment-root:active {\n filter: brightness(0.96);\n}\n.mui-ls-slider-input-root {\n width: 100%;\n}\n.mui-ls-slider-input-fieldset {\n position: relative;\n min-width: 0;\n width: 100%;\n min-height: var(--ls-control-height);\n margin: 0;\n border: 2px solid var(--neutralDark4, var(--cardborder, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0 0.875rem 0.5rem 0.875rem;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n}\n.mui-ls-slider-input-fieldset:hover {\n border-color: var(--primary, #ff4076);\n}\n.mui-ls-slider-input-legend {\n display: block;\n width: auto;\n max-width: calc(100% - 1rem);\n margin: 0;\n padding: 0 0.25rem;\n color: var(--neutralLight1, var(--white, #fff));\n font-size: 0.875rem;\n line-height: 1.1;\n white-space: nowrap;\n}\n.mui-ls-slider-input-row {\n display: flex;\n min-width: 0;\n min-height: calc(var(--ls-control-height) - 14px);\n align-items: center;\n gap: 1rem;\n}\n.mui-ls-slider-input-row--slider {\n flex-wrap: nowrap;\n}\n.mui-ls-slider-input-row--input {\n justify-content: stretch;\n}\n.mui-ls-slider-input-value.mui-ls-input {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiFormControl-root,\n.mui-ls-slider-input-value.mui-ls-input .MuiTextField-root {\n margin: 0;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiInputBase-root {\n min-height: 36px;\n}\n.mui-ls-slider-input-value.mui-ls-input .MuiOutlinedInput-notchedOutline {\n border-color: var(--neutralDark4, var(--cardborder, #393853));\n}\n.mui-ls-slider-input-helper {\n display: block;\n margin-top: 0.25rem;\n color: var(--neutralLight3, var(--grey, #9392a1));\n font-size: 0.75rem;\n line-height: 1.25;\n}\n.ls-multi-select-value {\n display: flex;\n width: 100%;\n min-width: 0;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n white-space: nowrap;\n}\n.ls-multi-select-value__label {\n min-width: 0;\n flex: 1 1 0%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-multi-select-value__count {\n flex-shrink: 0;\n white-space: nowrap;\n}\n.ls-color-picker__preview {\n position: relative;\n display: inline-block;\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n padding: 0;\n border: 1px solid color-mix(in srgb, #fff 25%, transparent);\n border-radius: var(--radius, 1rem);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);\n color: transparent;\n line-height: 0;\n}\n.ls-color-picker__preview:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-color-picker__preview:focus {\n outline: none;\n}\n.ls-color-picker__preview:focus-visible {\n box-shadow:\n 0 0 0 2px var(--primary, #ff4076),\n 0 0 0 4px var(--neutralDark1, #1b1a28),\n 0 0 0 1px rgba(0, 0, 0, 0.25);\n}\n.ls-color-picker__gradient circle,\n.ls-color-picker__gradient polyline {\n stroke: #fff !important;\n}\n.ls-variable-picker {\n --variable-custom-color: var(--customVariables, #69ffd2);\n --variable-function-color: var( --functionVariables, var(--semanticPurple, #b489ff) );\n --variable-normal-color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n display: flex;\n width: 92vw;\n max-width: 1100px;\n min-height: 50vh;\n max-height: 55vh;\n flex-direction: column;\n overflow: hidden;\n padding: 1rem;\n}\n.ls-variable-picker__field {\n margin: 0 0 0.75rem;\n border: 1px solid color-mix(in srgb, var(--primary, #ff4076) 42%, var(--neutralDark4, #393853));\n border-radius: var(--radius, 1rem);\n padding: 0.5rem;\n}\n.ls-variable-picker__legend {\n padding-inline: 0.375rem;\n color: var(--primary, #ff4076);\n font-size: 0.75rem;\n font-weight: 700;\n}\n.ls-variable-picker__intro {\n margin-bottom: 1rem;\n color: var(--neutralLight2, #cac9d5);\n}\n.ls-variable-picker__header,\n.ls-variable-picker__row {\n display: grid;\n grid-template-columns: minmax(300px, 1.5fr) 1fr 1fr;\n gap: 2rem;\n}\n.ls-variable-picker__header {\n margin-bottom: 0.25rem;\n padding-inline: 0.25rem;\n padding-right: 1.7rem;\n color: var(--neutralLight3, #9392a1);\n}\n.ls-variable-picker__list {\n height: 100%;\n overflow: auto;\n padding-right: 1rem;\n}\n.ls-variable-picker__row {\n cursor: pointer;\n align-items: start;\n border-bottom: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 70%, transparent);\n padding: 1rem 0.25rem;\n}\n.ls-variable-picker__row--no-border {\n border-bottom: 0;\n}\n.ls-variable-picker__token-cell {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-variable-picker__expand-toggle,\n.ls-variable-picker__expand-spacer {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n}\n.ls-variable-picker__expand-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--neutralDark4, #393853) 75%, transparent);\n border-radius: var(--radius, 1rem);\n padding: 0;\n background: var(--neutralDark3, var(--containerbackground, #1f1f3a));\n color: var(--neutralLight2, #cac9d5);\n transition:\n background-color 140ms ease,\n border-color 140ms ease,\n color 140ms ease,\n transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle:hover {\n border-color: var(--primary, #ff4076);\n background: color-mix(in srgb, var(--primary, #ff4076) 16%, var(--neutralDark3, #1f1f3a));\n color: var(--neutralLight1, #fff);\n}\n.ls-variable-picker__expand-toggle svg {\n transform: rotate(-90deg);\n transition: transform 140ms ease;\n}\n.ls-variable-picker__expand-toggle--expanded svg {\n transform: rotate(0deg);\n}\n.ls-variable-picker__row:active {\n opacity: 0.8;\n}\n.ls-variable-picker__description {\n max-width: 600px;\n overflow-wrap: break-word;\n line-height: 1.25;\n word-break: break-all;\n}\n.ls-variable-picker__row.ls-variable-picker__example-description {\n display: block;\n cursor: default;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--neutralLight2, #cac9d5);\n overflow-wrap: break-word;\n line-height: 1.35;\n}\n.ls-variable-picker__row.ls-variable-picker__example-description:active {\n opacity: 1;\n}\n.ls-variable-picker__value {\n min-width: 0;\n}\n.ls-variable-picker__value-input {\n width: 100%;\n min-width: 0;\n cursor: text;\n overflow: hidden;\n border: 0;\n background: transparent;\n color: var(--neutralLight1, var(--white, #fff));\n caret-color: transparent;\n font: inherit;\n font-size: 1rem;\n line-height: 1.25;\n outline: 0;\n padding: 0;\n text-overflow: ellipsis;\n}\n.ls-variable-picker__value-input:focus {\n outline: 0;\n}\n.ls-variable-picker__value-input::selection {\n background: color-mix(in srgb, var(--primary, #ff4076) 45%, transparent);\n color: var(--alwayswhite, var(--white, #fff));\n}\n.ls-variable-token {\n display: flex;\n min-width: 0;\n align-items: center;\n}\n.ls-variable-token--suggested {\n color: var(--suggestedVariables, #ffb469);\n}\n.ls-variable-token--custom {\n color: var(--customVariables, #69ffd2);\n}\n.ls-variable-token--function {\n color: var(--functionVariables, var(--semanticPurple, #b489ff));\n}\n.ls-variable-token--system {\n color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n}\n.ls-variable-highlight__layer {\n position: absolute;\n margin: 0;\n border: 0;\n box-sizing: border-box;\n overflow: hidden;\n pointer-events: none;\n background: transparent;\n color: inherit;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n z-index: 0;\n}\n.ls-variable-highlight__token {\n border-radius: 4px;\n}\n.ls-variable-highlight__token--custom {\n color: var(--customVariables, #69ffd2);\n background: color-mix(in srgb, var(--customVariables, #69ffd2) 16%, transparent);\n}\n.ls-variable-highlight__token--function {\n color: var(--functionVariables, var(--semanticPurple, #b489ff));\n background: color-mix(in srgb, var(--functionVariables, var(--semanticPurple, #b489ff)) 16%, transparent);\n}\n.ls-variable-highlight__token--system {\n color: var(--normalVariables, var(--semanticBlue, #65b8ff));\n background: color-mix(in srgb, var(--normalVariables, var(--semanticBlue, #65b8ff)) 16%, transparent);\n}\n.ls-variable-highlight__tooltip {\n position: fixed;\n z-index: 2000;\n transform: translate(-50%, -100%);\n margin-top: -8px;\n max-width: 320px;\n padding: 6px 10px;\n border-radius: 8px;\n background: var(--neutralDark1, #171628);\n border: 1px solid var(--neutralDark4, #393853);\n color: var(--neutralLight2, #cac9d5);\n font-size: 0.75rem;\n line-height: 1.3;\n pointer-events: none;\n box-shadow: 0 4px 14px rgb(0 0 0 / 40%);\n}\n.ls-variable-token__name {\n min-width: 0;\n word-break: break-all;\n}\n.ls-variable-token__badge {\n display: inline-flex;\n margin-left: 0.5rem;\n flex-shrink: 0;\n align-items: center;\n border: 1px solid currentcolor;\n border-radius: var(--radius, 1rem);\n padding-inline: 0.25rem;\n padding-block: 0;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n text-transform: uppercase;\n}\n.ls-chat-message {\n position: relative;\n font-size: 0.95em;\n line-height: 1.4;\n color: var(--white, var(--neutralLight1, #fff));\n overflow-wrap: break-word;\n word-break: break-word;\n}\n.ls-chat-message img {\n display: inline-block;\n}\n.ls-chat-message__reply {\n display: block;\n margin-bottom: 0.15em;\n font-size: 0.82em;\n color: var(--white2, var(--neutralLight3, #9392a1));\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-chat-message__avatar-prefix {\n vertical-align: middle;\n}\n.ls-chat-message__avatar {\n width: 1.3em;\n height: 1.3em;\n border-radius: 9999px;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site {\n display: inline-block;\n vertical-align: middle;\n margin-right: 0.35em;\n}\n.ls-chat-message__site img,\n.ls-chat-message__site svg {\n width: 1.2em;\n height: 1.2em;\n vertical-align: middle;\n}\n.ls-chat-message__time {\n margin-right: 0.35em;\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__badges {\n vertical-align: middle;\n}\n.ls-chat-message__badges img {\n height: 1.05em;\n vertical-align: middle;\n margin-right: 0.25em;\n}\n.ls-chat-message__username {\n font-weight: 700;\n vertical-align: middle;\n}\n.ls-chat-message__username--clickable {\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n font: inherit;\n}\n.ls-chat-message__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-viewerslist__username--clickable,\n.ls-eventlist-item__username--clickable {\n cursor: pointer;\n}\n.ls-viewerslist__username--clickable:hover,\n.ls-eventlist-item__username--clickable:hover {\n text-decoration: underline;\n}\n.ls-chat-message__text {\n vertical-align: middle;\n}\n.ls-chat-message__text img {\n vertical-align: middle;\n}\n.ls-chat-message__actions {\n position: absolute;\n top: 0;\n right: 0;\n}\n.ls-chat-message__modbar {\n display: flex;\n overflow: hidden;\n border-radius: 0.75rem;\n background-color: var(--separator, #0a0821);\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0.5rem;\n cursor: pointer;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition-duration: 300ms;\n}\n.ls-chat-message__modbtn:hover {\n background-color: var(--cardborder, var(--neutralDark4, #393853));\n}\n.ls-chat-message__modbtn--danger:hover {\n color: var(--error, #fd5454);\n}\n.ls-chat-message__menu-icon {\n display: flex;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-eventlist-item {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n gap: 1em;\n border: 1px solid var(--cardborder, var(--neutralDark4, #393853));\n border-left: 4px solid var(--primary, #ff4076);\n border-radius: 1em;\n background-color: var(--cardbackground, var(--neutralDark2, #211d3e));\n color: var(--white, var(--neutralLight1, #fff));\n padding: 1em;\n line-height: 1.35;\n}\n.ls-eventlist-item__main {\n display: flex;\n flex-direction: column;\n gap: 0.2em;\n min-width: 0;\n}\n.ls-eventlist-item__identity {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__avatar,\n.ls-eventlist-item__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n overflow: hidden;\n}\n.ls-eventlist-item__avatar {\n border-radius: 1em;\n background-color: var(--background, transparent);\n}\n.ls-eventlist-item__avatar img,\n.ls-eventlist-item__icon img,\n.ls-eventlist-item__icon svg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.ls-eventlist-item__username {\n min-width: 0;\n font-weight: 700;\n font-size: 0.875em;\n word-break: break-all;\n}\n.ls-eventlist-item__body {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 0.75em;\n row-gap: 0.35em;\n min-width: 0;\n}\n.ls-eventlist-item__message {\n min-width: 0;\n word-break: break-all;\n}\n.ls-eventlist-item__usermessage {\n min-width: 0;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-eventlist-item__time {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.875em;\n white-space: nowrap;\n}\n.ls-eventlist-item__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: center;\n gap: 0.5em;\n flex-shrink: 0;\n}\n.ls-modqueue-item {\n display: flex;\n align-items: stretch;\n gap: 0.5rem;\n border-radius: 1rem;\n background-color: color-mix(in srgb, var(--secondary, #535395) 20%, transparent);\n padding: 0.5rem;\n}\n.ls-modqueue-item__preview {\n display: flex;\n height: 4rem;\n width: 4rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n color: var(--primary, #ff4076);\n font-size: 1.75rem;\n line-height: 1;\n}\n.ls-modqueue-item__preview > * {\n display: flex;\n max-height: 100%;\n max-width: 100%;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n.ls-modqueue-item__preview img,\n.ls-modqueue-item__preview svg {\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n}\n.ls-modqueue-item__body {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n justify-content: flex-start;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item__head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n flex-wrap: wrap;\n}\n.ls-modqueue-item__avatar {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n border: 1px solid var(--separator, #322c52);\n}\n.ls-modqueue-item__username {\n font-weight: 700;\n color: var(--white, var(--neutralLight1, #fff));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 12rem;\n}\n.ls-modqueue-item__command {\n display: inline-flex;\n align-items: center;\n border-radius: 1rem;\n background-color: var(--separator, #0a0821);\n padding: 0.05rem 0.5rem;\n font-size: 0.8125rem;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modqueue-item__message {\n font-size: 0.875rem;\n font-style: italic;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n word-break: break-all;\n}\n.ls-modqueue-item__actions {\n display: flex;\n flex-shrink: 0;\n align-items: flex-start;\n gap: 0.5rem;\n padding-top: 0.25rem;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn {\n padding: 0;\n border-radius: 0.5rem;\n transition: opacity 300ms ease;\n}\n.ls-modqueue-item .ls-modqueue-item__iconbtn:hover {\n background-color: transparent;\n opacity: 0.7;\n}\n.ls-modqueue-item__action-icon {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n}\n.ls-modlog {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-modlog__toolbar {\n display: flex;\n justify-content: flex-end;\n}\n.ls-modlog__clear {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n border: 0;\n border-radius: 0.75rem;\n background: transparent;\n padding: 0.25rem 0.625rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n cursor: pointer;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-modlog__clear:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 8%, transparent);\n color: var(--white, #fff);\n}\n.ls-modlog__empty {\n display: flex;\n height: 100%;\n flex: 1;\n align-items: center;\n justify-content: center;\n border-radius: 1rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modlog__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.375rem;\n overflow: auto;\n}\n.ls-modlog__row {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n border-radius: 0.625rem;\n border-left: 3px solid var(--ls-modlog-accent, var(--primary, #ff4076));\n padding: 0.5rem 0.625rem;\n font-size: 0.8125rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n background-image: linear-gradient(var(--ls-modlog-bar, transparent), var(--ls-modlog-bar, transparent));\n}\n.ls-modlog__head {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-modlog__avatar {\n height: 1.25rem;\n width: 1.25rem;\n border-radius: 9999px;\n}\n.ls-modlog__title {\n display: inline-flex;\n align-items: center;\n border-radius: 0.375rem;\n padding: 0.05rem 0.4rem;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--ls-modlog-accent, var(--primary, #ff4076));\n background-color: color-mix(in srgb, var(--ls-modlog-accent, #ff4076) 18%, transparent);\n}\n.ls-modlog__time {\n margin-left: auto;\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n font-size: 0.6875rem;\n font-variant-numeric: tabular-nums;\n}\n.ls-modlog__message {\n word-break: break-word;\n overflow-wrap: anywhere;\n line-height: 1.35;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-songreq--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__addbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-songreq__addbar .ls-songreq__addinput {\n flex: 1;\n}\n.ls-songreq__empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__now {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.75rem;\n background-color: var(--separator, var(--neutralDark2, #1b1834));\n}\n.ls-songreq__art {\n height: 3.5rem;\n width: 3.5rem;\n flex-shrink: 0;\n border-radius: 0.75rem;\n object-fit: cover;\n}\n.ls-songreq__nowbody {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.1rem;\n}\n.ls-songreq__title {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__artist {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__requester {\n overflow: hidden;\n font-size: 0.6875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__progress {\n margin-top: 0.375rem;\n height: 0.375rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-songreq__progressbar {\n height: 100%;\n border-radius: 9999px;\n background-color: var(--success, #1db954);\n transition: width 1000ms linear;\n}\n.ls-songreq__controls {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-songreq__btn {\n display: inline-flex;\n height: 2rem;\n width: 2rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.625rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background: transparent;\n font-size: 0.875rem;\n line-height: 1;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 120ms ease, color 120ms ease;\n}\n.ls-songreq__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-songreq__queue {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n.ls-songreq__queuehead {\n margin-bottom: 0.25rem;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__queuelist {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.25rem;\n overflow: auto;\n}\n.ls-songreq__queueempty {\n padding: 0.5rem 0.25rem;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.75rem;\n padding: 0.375rem 0.5rem;\n transition: background-color 120ms ease;\n}\n.ls-songreq__item:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-songreq__itemart {\n height: 2.25rem;\n width: 2.25rem;\n flex-shrink: 0;\n border-radius: 0.5rem;\n object-fit: cover;\n}\n.ls-songreq__itembody {\n min-width: 0;\n flex: 1;\n}\n.ls-songreq__itemtitle {\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-songreq__itemmeta {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-songreq__remove {\n flex-shrink: 0;\n cursor: pointer;\n border: 0;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: color 120ms ease;\n}\n.ls-songreq__remove:hover {\n color: var(--error, #fd5454);\n}\n.ls-modqueue {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-modqueue__search-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n margin-right: 0.5rem;\n color: var(--white2, var(--neutralLight2, #cac9d5));\n}\n.ls-modqueue__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__empty-icon {\n font-size: 1.875rem;\n}\n.ls-modqueue__bulk {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.ls-modqueue .ls-modqueue__bulk-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.5rem;\n border: 1px solid currentcolor;\n background: transparent;\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n transition: opacity 120ms ease;\n}\n.ls-modqueue .ls-modqueue__bulk-btn:hover {\n opacity: 0.7;\n}\n.ls-modqueue .ls-modqueue__bulk-btn--deny {\n color: var(--error, #fd5454);\n}\n.ls-modqueue .ls-modqueue__bulk-btn--approve {\n color: var(--success, #7ed187);\n}\n.ls-modqueue__bulk-icon {\n height: 1rem;\n width: 1rem;\n flex-shrink: 0;\n}\n.ls-modqueue__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-modqueue__readonly {\n font-size: 0.625rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-modqueue__search-slot {\n flex-shrink: 0;\n}\n.ls-chatbox {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-chatbox__viewport {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.ls-chatbox__list {\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow-y: auto;\n padding: 0.75rem;\n}\n.ls-chatbox__jump {\n position: absolute;\n bottom: 0.75rem;\n right: 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n border-radius: 9999px;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n padding: 0.5rem 0.75rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n backdrop-filter: blur(4px);\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-chatbox__jump:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-chatbox__jump-arrow {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-chatbox__jump-arrow--up {\n transform: rotate(180deg);\n}\n.ls-chatbox__jump-badge {\n margin-left: 0.25rem;\n border-radius: 9999px;\n background-color: var(--primary, #ff4076);\n padding: 0.125rem 0.5rem;\n font-size: 0.625rem;\n font-weight: 600;\n color: var(--alwayswhite, #fff);\n}\n.ls-chatbox__sendbar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n padding: 0 0.75rem 0.75rem;\n}\n.ls-chatbox__sendbar .ls-chatbox__input {\n flex: 2 1 0%;\n min-width: 100px;\n width: 100%;\n}\n.ls-chatbox__sendbar .ls-chatbox__platform {\n flex: 1 1 0%;\n min-width: 7.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__chatas {\n flex: 0 1 auto;\n min-width: 5.5rem;\n height: 55px;\n}\n.ls-chatbox__sendbar .ls-chatbox__send {\n height: 55px;\n flex-shrink: 0;\n}\n.ls-panel {\n --ls-panel-padding: 0.75rem;\n display: flex;\n flex-direction: column;\n border-radius: 1rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: var(--ls-panel-bg, #1b1834);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.55);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-panel__clickaway {\n position: fixed;\n inset: 0;\n z-index: 20;\n}\n.ls-panel__header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: var(--ls-panel-padding) var(--ls-panel-padding) 0.5rem;\n}\n.ls-panel__title {\n min-width: 0;\n font-size: 1rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-panel__title--label {\n font-size: 0.75rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-panel__header-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-panel__close {\n display: flex;\n height: 1.5rem;\n width: 1.5rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.5rem;\n background: transparent;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-panel__close:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-panel__body {\n min-height: 0;\n flex: 1;\n overflow: auto;\n padding: 0 var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-panel--no-header .ls-panel__body {\n padding-top: var(--ls-panel-padding);\n}\n.ls-panel__footer {\n flex-shrink: 0;\n padding: 0.5rem var(--ls-panel-padding) var(--ls-panel-padding);\n}\n.ls-modal {\n position: fixed;\n inset: 0;\n z-index: 2000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n}\n.ls-modal--absolute {\n position: absolute;\n}\n.ls-modal__backdrop {\n position: absolute;\n inset: 0;\n background-color: color-mix(in srgb, var(--ls-modal-backdrop, var(--separator, #0a0821)) 75%, transparent);\n backdrop-filter: blur(4px);\n}\n.ls-modal__card {\n position: relative;\n width: 100%;\n max-width: var(--ls-modal-max-width, min(560px, 92vw));\n max-height: 85vh;\n}\n.ls-modal__card--fit {\n width: auto;\n}\n.ls-modal__card--center .ls-panel__body {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog {\n margin-top: 0.5rem;\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n}\n.ls-dialog__card {\n position: relative;\n z-index: 10;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n overflow: hidden;\n border-radius: 1rem;\n outline: none;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-dialog__card--pad {\n padding: 1rem;\n}\n.ls-dialog__card--full {\n border-radius: 0;\n}\n.ls-dialog__top {\n display: flex;\n width: 100%;\n align-items: flex-start;\n justify-content: space-between;\n}\n.ls-dialog__top--full {\n margin-top: 2rem;\n}\n.ls-dialog__top-side {\n flex: 1;\n}\n.ls-dialog__title {\n font-size: 1.25rem;\n color: var(--white, #fff);\n}\n.ls-dialog__close {\n display: flex;\n flex: 1;\n justify-content: flex-end;\n user-select: none;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-dialog__close-btn {\n display: flex;\n cursor: pointer;\n align-items: center;\n gap: 0.5rem;\n}\n.ls-dialog__close-label {\n cursor: pointer;\n font-size: 1rem;\n font-weight: 700;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-dialog__body {\n display: flex;\n width: 100%;\n flex: 1;\n min-height: 0;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n overflow: auto;\n}\n.ls-dialog__bottom {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding-bottom: 1rem;\n}\n.ls-eventlist {\n display: flex;\n height: 100%;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n color: var(--white, var(--neutralLight1, #fff));\n line-height: 1.35;\n}\n.ls-eventlist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.5em;\n overflow-y: auto;\n}\n.ls-eventlist__row {\n flex-shrink: 0;\n animation: ls-eventlist-enter 250ms ease;\n}\n.ls-eventlist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75em;\n border-radius: 1em;\n padding: 1em;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-eventlist__empty-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 1.875em;\n}\n.ls-eventlist__empty-icon img,\n.ls-eventlist__empty-icon svg {\n width: 1.6em;\n height: 1.6em;\n}\n@keyframes ls-eventlist-enter {\n from {\n opacity: 0;\n transform: translateX(-1.5em);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.ls-streamstatus {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.75rem;\n overflow: auto;\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-streamstatus--empty {\n align-items: center;\n justify-content: center;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__status {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.625rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__indicator {\n position: relative;\n display: inline-flex;\n height: 0.75rem;\n width: 0.75rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__indicator-ping {\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--success, #7ed187) 60%, transparent);\n animation: ls-streamstatus-ping 1.2s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n@keyframes ls-streamstatus-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ls-streamstatus__indicator-dot {\n position: relative;\n height: 0.75rem;\n width: 0.75rem;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__indicator-dot--online {\n background-color: var(--success, #7ed187);\n}\n.ls-streamstatus__status-body {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n.ls-streamstatus__status-label {\n overflow: hidden;\n font-size: 0.875rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__status-sublabel {\n overflow: hidden;\n font-size: 0.75rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__overview {\n display: flex;\n flex-shrink: 0;\n align-items: stretch;\n gap: 0.5rem;\n}\n.ls-streamstatus__total {\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n justify-content: center;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__total-value {\n font-size: 1.875rem;\n font-weight: 700;\n line-height: 1;\n color: var(--primary, #ff4076);\n}\n.ls-streamstatus__total-label {\n margin-top: 0.25rem;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platforms {\n display: flex;\n min-width: 0;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n gap: 0.25rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__platforms-empty {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-streamstatus__platform-info {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n gap: 0.375rem;\n font-size: 0.75rem;\n color: color-mix(in srgb, var(--white, #fff) 80%, transparent);\n}\n.ls-streamstatus__platform-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__platform-icon img,\n.ls-streamstatus__platform-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-streamstatus__platform-dot {\n height: 0.5rem;\n width: 0.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n background-color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__platform-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ls-streamstatus__platform-value {\n flex-shrink: 0;\n font-size: 0.75rem;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stats {\n display: grid;\n flex-shrink: 0;\n grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));\n gap: 0.5rem;\n}\n.ls-streamstatus__stat {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 0.125rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 5%, transparent);\n border-radius: 1rem;\n padding: 0.5rem 0.75rem;\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-streamstatus__stat-head {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n.ls-streamstatus__stat-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n}\n.ls-streamstatus__stat-icon img,\n.ls-streamstatus__stat-icon svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-streamstatus__stat-actions {\n display: inline-flex;\n margin-left: auto;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-value {\n overflow: hidden;\n font-size: 1.125rem;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--white, #fff);\n}\n.ls-streamstatus__stat-trendrow {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-streamstatus__stat-trendrow svg {\n width: 10px;\n flex-shrink: 0;\n}\n.ls-streamstatus__stat-label {\n min-width: 0;\n overflow: hidden;\n font-size: 0.6875rem;\n letter-spacing: 0.05em;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-streamstatus__stat-sub {\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n.ls-viewerslist__head {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n.ls-viewerslist__count {\n flex-shrink: 0;\n font-size: 0.875rem;\n font-weight: 700;\n color: var(--white, #fff);\n}\n.ls-viewerslist__search {\n min-width: 0;\n flex: 1;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--black, #000) 20%, transparent);\n padding: 0.375rem 0.75rem;\n font-size: 0.8125rem;\n color: var(--white, #fff);\n outline: none;\n}\n.ls-viewerslist__search:focus {\n border-color: var(--primary, #ff4076);\n}\n.ls-viewerslist__search::placeholder {\n color: color-mix(in srgb, var(--grey, var(--neutralLight3, #9392a1)) 60%, transparent);\n}\n.ls-viewerslist__search-slot {\n min-width: 0;\n flex: 1;\n}\n.ls-viewerslist__hint {\n flex-shrink: 0;\n font-size: 0.75rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty {\n display: flex;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n text-align: center;\n color: var(--white2, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__empty-icon {\n font-size: 1.875rem;\n}\n.ls-viewerslist__list {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n gap: 0.125rem;\n overflow: auto;\n}\n.ls-viewerslist__group {\n margin-top: 0.375rem;\n flex-shrink: 0;\n padding: 0 0.25rem;\n font-size: 0.6875rem;\n font-weight: 700;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__group:first-child {\n margin-top: 0;\n}\n.ls-viewerslist__viewer {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.5rem;\n padding: 0.25rem 0.375rem;\n transition: background-color 120ms ease;\n}\n.ls-viewerslist__viewer:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 4%, transparent);\n}\n.ls-viewerslist__avatar {\n height: 1.5rem;\n width: 1.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n object-fit: cover;\n}\n.ls-viewerslist__platform {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-viewerslist__platform img,\n.ls-viewerslist__platform svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n.ls-viewerslist__username {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-viewerslist__badges {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-viewerslist__actions {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-shortcutdock,\n.ls-shortcutdock * {\n box-sizing: border-box;\n}\n.ls-shortcutdock {\n display: grid;\n width: 100%;\n align-content: start;\n gap: 0.5rem;\n overflow: auto;\n}\n.ls-shortcutdock--disabled {\n opacity: 0.55;\n}\n.ls-shortcutdock__empty {\n grid-column: 1 / -1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n text-align: center;\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-shortcutdock__cell {\n position: relative;\n min-width: 0;\n}\n.ls-shortcutdock__btn {\n display: flex;\n height: 100%;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px solid color-mix(in srgb, var(--white, #fff) 12%, transparent);\n background-color: transparent;\n padding: 0.25rem;\n font: inherit;\n color: var(--white, #fff);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent) !important;\n transition:\n background-color 150ms ease,\n border-color 150ms ease,\n opacity 150ms ease;\n}\n.ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 7%, transparent);\n}\n.ls-shortcutdock__btn--selected,\n.ls-shortcutdock__btn--selected:hover {\n border-color: var(--primary, #ff4076);\n}\n.ls-shortcutdock__btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn {\n cursor: default;\n}\n.ls-shortcutdock--readonly .ls-shortcutdock__btn:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n background-color: color-mix(in srgb, var(--white, #fff) 3%, transparent);\n}\n.ls-shortcutdock__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.15rem;\n line-height: 1;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__icon {\n font-size: 1.5rem;\n}\n.ls-shortcutdock__btn-image {\n width: 1.5rem;\n height: 1.5rem;\n flex-shrink: 0;\n border-radius: 0.375rem;\n object-fit: cover;\n}\n.ls-shortcutdock__btn--lg .ls-shortcutdock__btn-image {\n width: 2rem;\n height: 2rem;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__btn-image {\n width: 60%;\n height: 60%;\n border-radius: 0.5rem;\n}\n.ls-shortcutdock__label {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n padding-inline: 0.125rem;\n text-align: center;\n font-size: 0.625rem;\n font-weight: 600;\n line-height: 1.2;\n color: color-mix(in srgb, var(--white, #fff) 90%, transparent);\n}\n.ls-shortcutdock__btn--icon-only {\n font-size: clamp(1rem, 1.4vw, 1.5rem);\n font-weight: 700;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon {\n width: 100%;\n height: 100%;\n font-size: inherit;\n}\n.ls-shortcutdock__btn--icon-only .ls-shortcutdock__icon svg {\n width: 60%;\n height: 60%;\n}\n.ls-shortcutdock__remove {\n position: absolute;\n top: -0.375rem;\n right: -0.375rem;\n z-index: 1;\n display: flex;\n height: 1.25rem;\n width: 1.25rem;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: none;\n border-radius: 9999px;\n background-color: var(--error, #fd5454);\n padding: 0;\n font: inherit;\n font-size: 0.75rem;\n line-height: 1;\n color: var(--white, #fff);\n box-shadow: 0 1px 3px color-mix(in srgb, var(--black, #000) 30%, transparent);\n transition: opacity 120ms ease;\n}\n.ls-shortcutdock__remove:hover {\n opacity: 0.8;\n}\n.ls-shortcutdock__add {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0.75rem;\n border: 1px dashed color-mix(in srgb, var(--white, #fff) 20%, transparent);\n background: transparent;\n padding: 0.25rem;\n font: inherit;\n font-size: 1.5rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n transition: border-color 150ms ease, color 150ms ease;\n}\n.ls-shortcutdock__add:hover {\n border-color: color-mix(in srgb, var(--white, #fff) 40%, transparent);\n color: var(--white, #fff);\n}\n.ls-goals,\n.ls-goals * {\n box-sizing: border-box;\n}\n.ls-goals {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 1rem;\n}\n.ls-goals__empty {\n font-size: 0.875rem;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__head {\n display: flex;\n align-items: baseline;\n gap: 0.375rem;\n font-size: 0.875rem;\n}\n.ls-goals__icon {\n display: flex;\n align-self: center;\n align-items: center;\n line-height: 1;\n}\n.ls-goals__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n color: var(--white, #fff);\n}\n.ls-goals__value {\n flex-shrink: 0;\n color: var(--grey, var(--neutralLight3, #9392a1));\n}\n.ls-goals__target {\n opacity: 0.6;\n}\n.ls-goals__bar {\n margin-top: 0.375rem;\n height: 0.625rem;\n width: 100%;\n overflow: hidden;\n border-radius: 9999px;\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n}\n.ls-goals__fill {\n height: 100%;\n border-radius: 9999px;\n background-image:\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--ls-goals-accent, var(--primary, #ff4076)) 80%, transparent),\n var(--ls-goals-accent, var(--primary, #ff4076)));\n transition: width 700ms ease-out;\n}\n.ls-goals__percent {\n flex-shrink: 0;\n min-width: 2.75rem;\n text-align: right;\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n color: var(--ls-goals-accent, var(--primary, #ff4076));\n}\n.ls-platform-icon {\n display: inline-block;\n height: 1.15em;\n width: auto;\n max-width: 1.5em;\n vertical-align: middle;\n object-fit: contain;\n}\n.ls-chatbox__platform-option {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n}\n.ls-shortcutdock__btn--colored {\n border-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 70%, transparent);\n box-shadow: inset 0 -2px 0 var(--ls-shortcutdock-accent-soft, transparent);\n}\n.ls-shortcutdock__btn--colored:hover {\n border-color: var(--ls-shortcutdock-accent, var(--white, #fff));\n background-color: color-mix(in srgb, var(--ls-shortcutdock-accent, var(--white, #fff)) 12%, transparent);\n}\n.ls-widget {\n position: relative;\n display: flex;\n height: 100%;\n flex-direction: column;\n overflow: hidden;\n border-radius: var(--radius, 1rem);\n border: 1px solid color-mix(in srgb, var(--cardborder, #393853) 50%, transparent);\n background-image: var(--gradientBg, linear-gradient(180deg, #1b1834 0%, #151230 100%));\n background-color: var(--background, #151230);\n color: var(--white, var(--neutralLight1, #fff));\n}\n.ls-widget__header {\n position: relative;\n display: flex;\n min-height: 2.75rem;\n width: 100%;\n flex-shrink: 0;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid color-mix(in srgb, var(--white, #fff) 10%, transparent);\n padding-inline: 0.5rem;\n}\n.ls-widget__side {\n display: flex;\n z-index: 10;\n align-items: center;\n gap: 0.25rem;\n}\n.ls-widget__side--right {\n margin-left: auto;\n}\n.ls-widget__title {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 600;\n letter-spacing: 0.025em;\n white-space: nowrap;\n}\n.ls-widget__btn {\n display: flex;\n height: 2rem;\n width: 2rem;\n flex-shrink: 0;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.375rem;\n background-color: color-mix(in srgb, var(--white, #fff) 5%, transparent);\n color: color-mix(in srgb, var(--white, #fff) 70%, transparent);\n font: inherit;\n transition: background-color 150ms ease, color 150ms ease;\n}\n.ls-widget__btn:hover {\n background-color: color-mix(in srgb, var(--white, #fff) 10%, transparent);\n color: var(--white, #fff);\n}\n.ls-widget__btn--active {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 20%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn--active:hover {\n background-color: color-mix(in srgb, var(--primary, #ff4076) 30%, transparent);\n color: var(--primary, #ff4076);\n}\n.ls-widget__btn svg {\n height: 1rem;\n width: 1rem;\n}\n.ls-widget__body {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n overflow: auto;\n}\n");
|
|
25
25
|
|
|
26
26
|
// src/components/LSButton/LSButton.tsx
|
|
27
27
|
import Button from "@mui/material/Button";
|
|
@@ -1124,24 +1124,230 @@ import Search from "@mui/icons-material/Search";
|
|
|
1124
1124
|
import KeyboardArrowDown2 from "@mui/icons-material/KeyboardArrowDown";
|
|
1125
1125
|
import Tooltip2 from "@mui/material/Tooltip";
|
|
1126
1126
|
import {
|
|
1127
|
-
Fragment as
|
|
1127
|
+
Fragment as Fragment4,
|
|
1128
1128
|
createContext,
|
|
1129
1129
|
forwardRef as forwardRef7,
|
|
1130
1130
|
useCallback as useCallback2,
|
|
1131
1131
|
useContext,
|
|
1132
|
+
useEffect as useEffect5,
|
|
1133
|
+
useMemo as useMemo4,
|
|
1134
|
+
useRef as useRef4,
|
|
1135
|
+
useState as useState5
|
|
1136
|
+
} from "react";
|
|
1137
|
+
|
|
1138
|
+
// src/components/LSVariableInputField/VariableHighlightOverlay.tsx
|
|
1139
|
+
import {
|
|
1140
|
+
Fragment as Fragment2,
|
|
1132
1141
|
useEffect as useEffect4,
|
|
1142
|
+
useLayoutEffect,
|
|
1133
1143
|
useMemo as useMemo3,
|
|
1134
1144
|
useRef as useRef3,
|
|
1135
1145
|
useState as useState4
|
|
1136
1146
|
} from "react";
|
|
1147
|
+
import { createPortal } from "react-dom";
|
|
1137
1148
|
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1149
|
+
var TOKEN_RE = /\{\{[^{}]+\}\}/g;
|
|
1150
|
+
var COPIED_STYLE_PROPS = [
|
|
1151
|
+
"fontFamily",
|
|
1152
|
+
"fontSize",
|
|
1153
|
+
"fontWeight",
|
|
1154
|
+
"fontStyle",
|
|
1155
|
+
"fontVariant",
|
|
1156
|
+
"letterSpacing",
|
|
1157
|
+
"wordSpacing",
|
|
1158
|
+
"textTransform",
|
|
1159
|
+
"textIndent",
|
|
1160
|
+
"lineHeight",
|
|
1161
|
+
"tabSize",
|
|
1162
|
+
"paddingTop",
|
|
1163
|
+
"paddingRight",
|
|
1164
|
+
"paddingBottom",
|
|
1165
|
+
"paddingLeft",
|
|
1166
|
+
"direction"
|
|
1167
|
+
];
|
|
1168
|
+
var tokenClass = (type) => {
|
|
1169
|
+
if (type === "func") return "ls-variable-highlight__token--function";
|
|
1170
|
+
if (type === "system") return "ls-variable-highlight__token--system";
|
|
1171
|
+
return "ls-variable-highlight__token--custom";
|
|
1172
|
+
};
|
|
1173
|
+
var parseSegments = (value, classify, describe) => {
|
|
1174
|
+
const segments = [];
|
|
1175
|
+
let last = 0;
|
|
1176
|
+
let match;
|
|
1177
|
+
TOKEN_RE.lastIndex = 0;
|
|
1178
|
+
while ((match = TOKEN_RE.exec(value)) != null) {
|
|
1179
|
+
if (match.index > last) {
|
|
1180
|
+
segments.push({ text: value.slice(last, match.index), token: false });
|
|
1181
|
+
}
|
|
1182
|
+
const raw = match[0];
|
|
1183
|
+
const base = raw.slice(2, -2).split("=")[0].trim();
|
|
1184
|
+
segments.push({ text: raw, token: true, type: classify(base), desc: describe(base) });
|
|
1185
|
+
last = match.index + raw.length;
|
|
1186
|
+
}
|
|
1187
|
+
if (last < value.length) {
|
|
1188
|
+
segments.push({ text: value.slice(last), token: false });
|
|
1189
|
+
}
|
|
1190
|
+
return segments;
|
|
1191
|
+
};
|
|
1192
|
+
var VariableHighlightOverlay = ({
|
|
1193
|
+
inputEl,
|
|
1194
|
+
value,
|
|
1195
|
+
multiline,
|
|
1196
|
+
classify,
|
|
1197
|
+
describe
|
|
1198
|
+
}) => {
|
|
1199
|
+
const layerRef = useRef3(null);
|
|
1200
|
+
const textColorRef = useRef3("");
|
|
1201
|
+
const [tooltip, setTooltip] = useState4(null);
|
|
1202
|
+
const segments = useMemo3(
|
|
1203
|
+
() => parseSegments(value, classify, describe),
|
|
1204
|
+
[value, classify, describe]
|
|
1205
|
+
);
|
|
1206
|
+
const hasTokens = useMemo3(() => segments.some((segment) => segment.token), [segments]);
|
|
1207
|
+
useLayoutEffect(() => {
|
|
1208
|
+
const layer = layerRef.current;
|
|
1209
|
+
if (!inputEl || !layer || !hasTokens) {
|
|
1210
|
+
return;
|
|
1211
|
+
}
|
|
1212
|
+
const sync = () => {
|
|
1213
|
+
const computed = getComputedStyle(inputEl);
|
|
1214
|
+
for (const prop of COPIED_STYLE_PROPS) {
|
|
1215
|
+
layer.style[prop] = computed[prop];
|
|
1216
|
+
}
|
|
1217
|
+
const isTransparent = computed.color === "rgba(0, 0, 0, 0)" || computed.color === "transparent";
|
|
1218
|
+
if (!isTransparent) {
|
|
1219
|
+
textColorRef.current = computed.color;
|
|
1220
|
+
}
|
|
1221
|
+
layer.style.color = isTransparent ? textColorRef.current || computed.color : computed.color;
|
|
1222
|
+
layer.style.whiteSpace = multiline ? "pre-wrap" : "pre";
|
|
1223
|
+
layer.style.top = `${inputEl.offsetTop}px`;
|
|
1224
|
+
layer.style.left = `${inputEl.offsetLeft}px`;
|
|
1225
|
+
layer.style.width = `${inputEl.offsetWidth}px`;
|
|
1226
|
+
layer.style.height = `${inputEl.offsetHeight}px`;
|
|
1227
|
+
layer.scrollTop = inputEl.scrollTop;
|
|
1228
|
+
layer.scrollLeft = inputEl.scrollLeft;
|
|
1229
|
+
};
|
|
1230
|
+
sync();
|
|
1231
|
+
const onScroll = () => {
|
|
1232
|
+
layer.scrollTop = inputEl.scrollTop;
|
|
1233
|
+
layer.scrollLeft = inputEl.scrollLeft;
|
|
1234
|
+
};
|
|
1235
|
+
inputEl.addEventListener("scroll", onScroll);
|
|
1236
|
+
const observer = new ResizeObserver(sync);
|
|
1237
|
+
observer.observe(inputEl);
|
|
1238
|
+
window.addEventListener("resize", sync);
|
|
1239
|
+
return () => {
|
|
1240
|
+
inputEl.removeEventListener("scroll", onScroll);
|
|
1241
|
+
observer.disconnect();
|
|
1242
|
+
window.removeEventListener("resize", sync);
|
|
1243
|
+
};
|
|
1244
|
+
}, [inputEl, multiline, hasTokens, segments]);
|
|
1245
|
+
useLayoutEffect(() => {
|
|
1246
|
+
if (!inputEl || !hasTokens) {
|
|
1247
|
+
return;
|
|
1248
|
+
}
|
|
1249
|
+
const style = inputEl.style;
|
|
1250
|
+
const prev = {
|
|
1251
|
+
color: style.color,
|
|
1252
|
+
caretColor: style.caretColor,
|
|
1253
|
+
fill: style.webkitTextFillColor,
|
|
1254
|
+
position: style.position,
|
|
1255
|
+
zIndex: style.zIndex
|
|
1256
|
+
};
|
|
1257
|
+
const computed = getComputedStyle(inputEl);
|
|
1258
|
+
if (computed.color !== "rgba(0, 0, 0, 0)" && computed.color !== "transparent") {
|
|
1259
|
+
textColorRef.current = computed.color;
|
|
1260
|
+
}
|
|
1261
|
+
style.caretColor = computed.color;
|
|
1262
|
+
style.color = "transparent";
|
|
1263
|
+
style.webkitTextFillColor = "transparent";
|
|
1264
|
+
if (computed.position === "static") {
|
|
1265
|
+
style.position = "relative";
|
|
1266
|
+
}
|
|
1267
|
+
style.zIndex = "1";
|
|
1268
|
+
return () => {
|
|
1269
|
+
style.color = prev.color;
|
|
1270
|
+
style.caretColor = prev.caretColor;
|
|
1271
|
+
style.webkitTextFillColor = prev.fill;
|
|
1272
|
+
style.position = prev.position;
|
|
1273
|
+
style.zIndex = prev.zIndex;
|
|
1274
|
+
};
|
|
1275
|
+
}, [inputEl, hasTokens]);
|
|
1276
|
+
useEffect4(() => {
|
|
1277
|
+
if (!inputEl || !hasTokens) {
|
|
1278
|
+
setTooltip(null);
|
|
1279
|
+
return;
|
|
1280
|
+
}
|
|
1281
|
+
const onMove = (event) => {
|
|
1282
|
+
const layer = layerRef.current;
|
|
1283
|
+
if (!layer) {
|
|
1284
|
+
return;
|
|
1285
|
+
}
|
|
1286
|
+
const spans = layer.querySelectorAll(".ls-variable-highlight__token");
|
|
1287
|
+
for (const span of Array.from(spans)) {
|
|
1288
|
+
const desc = span.getAttribute("data-desc");
|
|
1289
|
+
if (!desc) {
|
|
1290
|
+
continue;
|
|
1291
|
+
}
|
|
1292
|
+
for (const rect of Array.from(span.getClientRects())) {
|
|
1293
|
+
if (event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom) {
|
|
1294
|
+
setTooltip({ text: desc, top: rect.top, left: rect.left + rect.width / 2 });
|
|
1295
|
+
return;
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
setTooltip(null);
|
|
1300
|
+
};
|
|
1301
|
+
const onLeave = () => setTooltip(null);
|
|
1302
|
+
const el = inputEl;
|
|
1303
|
+
el.addEventListener("mousemove", onMove);
|
|
1304
|
+
el.addEventListener("mouseleave", onLeave);
|
|
1305
|
+
return () => {
|
|
1306
|
+
el.removeEventListener("mousemove", onMove);
|
|
1307
|
+
el.removeEventListener("mouseleave", onLeave);
|
|
1308
|
+
};
|
|
1309
|
+
}, [inputEl, hasTokens, segments]);
|
|
1310
|
+
if (!inputEl?.parentElement || !hasTokens) {
|
|
1311
|
+
return null;
|
|
1312
|
+
}
|
|
1313
|
+
return /* @__PURE__ */ jsxs5(Fragment3, { children: [
|
|
1314
|
+
createPortal(
|
|
1315
|
+
/* @__PURE__ */ jsx13("div", { ref: layerRef, "aria-hidden": true, className: "ls-variable-highlight__layer", children: segments.map(
|
|
1316
|
+
(segment, index) => segment.token ? /* @__PURE__ */ jsx13(
|
|
1317
|
+
"span",
|
|
1318
|
+
{
|
|
1319
|
+
"data-desc": segment.desc || void 0,
|
|
1320
|
+
className: `ls-variable-highlight__token ${tokenClass(segment.type ?? "custom")}`,
|
|
1321
|
+
children: segment.text
|
|
1322
|
+
},
|
|
1323
|
+
index
|
|
1324
|
+
) : /* @__PURE__ */ jsx13(Fragment2, { children: segment.text }, index)
|
|
1325
|
+
) }),
|
|
1326
|
+
inputEl.parentElement
|
|
1327
|
+
),
|
|
1328
|
+
tooltip ? createPortal(
|
|
1329
|
+
/* @__PURE__ */ jsx13(
|
|
1330
|
+
"div",
|
|
1331
|
+
{
|
|
1332
|
+
className: "ls-variable-highlight__tooltip",
|
|
1333
|
+
style: { top: tooltip.top, left: tooltip.left },
|
|
1334
|
+
children: tooltip.text
|
|
1335
|
+
}
|
|
1336
|
+
),
|
|
1337
|
+
document.body
|
|
1338
|
+
) : null
|
|
1339
|
+
] });
|
|
1340
|
+
};
|
|
1341
|
+
|
|
1342
|
+
// src/components/LSVariableInputField/LSVariableInputField.tsx
|
|
1343
|
+
import { Fragment as Fragment5, jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1138
1344
|
import { createElement } from "react";
|
|
1139
1345
|
var LSVariableInputContext = createContext({});
|
|
1140
1346
|
var LSVariableInputProvider = ({
|
|
1141
1347
|
children,
|
|
1142
1348
|
value
|
|
1143
1349
|
}) => {
|
|
1144
|
-
return /* @__PURE__ */
|
|
1350
|
+
return /* @__PURE__ */ jsx14(LSVariableInputContext.Provider, { value, children });
|
|
1145
1351
|
};
|
|
1146
1352
|
var DEFAULT_FUNCTION_VARIABLES = [
|
|
1147
1353
|
"sum_variables",
|
|
@@ -1399,6 +1605,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1399
1605
|
$renderOption,
|
|
1400
1606
|
allowedVariableOrigin,
|
|
1401
1607
|
systemVariables: systemVariablesProp,
|
|
1608
|
+
variableExamples: variableExamplesProp,
|
|
1402
1609
|
functionVariables: functionVariablesProp,
|
|
1403
1610
|
translate,
|
|
1404
1611
|
onVariableTranslationsNeeded,
|
|
@@ -1407,50 +1614,75 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1407
1614
|
} = props;
|
|
1408
1615
|
const t = translate ?? context.translate ?? defaultTranslate;
|
|
1409
1616
|
const rawSystemVariables = systemVariablesProp ?? context.systemVariables ?? {};
|
|
1410
|
-
const
|
|
1617
|
+
const variableExamples = variableExamplesProp ?? context.variableExamples ?? {};
|
|
1618
|
+
const variableRecords = useMemo4(
|
|
1411
1619
|
() => normalizeVariableRecords(rawSystemVariables),
|
|
1412
1620
|
[rawSystemVariables]
|
|
1413
1621
|
);
|
|
1414
|
-
const functionVariables =
|
|
1622
|
+
const functionVariables = useMemo4(
|
|
1415
1623
|
() => functionVariablesProp ?? context.functionVariables ?? DEFAULT_FUNCTION_VARIABLES,
|
|
1416
1624
|
[context.functionVariables, functionVariablesProp]
|
|
1417
1625
|
);
|
|
1418
1626
|
const requestTranslations = onVariableTranslationsNeeded ?? context.onVariableTranslationsNeeded;
|
|
1419
1627
|
const isOriginConnected = isOriginConnectedProp ?? context.isOriginConnected;
|
|
1420
1628
|
const translationKeyExists = translationKeyExistsProp ?? context.translationKeyExists;
|
|
1421
|
-
const containerRef =
|
|
1422
|
-
const variableId =
|
|
1423
|
-
const [showVariables, setShowVariables] =
|
|
1424
|
-
const [searchQuery, setSearchQuery] =
|
|
1425
|
-
const functionVariableSet =
|
|
1629
|
+
const containerRef = useRef4(null);
|
|
1630
|
+
const variableId = useRef4(`variable-input-${name ?? "field"}`);
|
|
1631
|
+
const [showVariables, setShowVariables] = useState5(false);
|
|
1632
|
+
const [searchQuery, setSearchQuery] = useState5("");
|
|
1633
|
+
const functionVariableSet = useMemo4(
|
|
1426
1634
|
() => new Set(functionVariables),
|
|
1427
1635
|
[functionVariables]
|
|
1428
1636
|
);
|
|
1429
|
-
const
|
|
1637
|
+
const [inputEl, setInputEl] = useState5(null);
|
|
1638
|
+
const mergedInputRef = useCallback2(
|
|
1639
|
+
(node) => {
|
|
1640
|
+
setInputEl(node ?? null);
|
|
1641
|
+
if (typeof ref === "function") {
|
|
1642
|
+
ref(node);
|
|
1643
|
+
} else if (ref) {
|
|
1644
|
+
ref.current = node;
|
|
1645
|
+
}
|
|
1646
|
+
},
|
|
1647
|
+
[ref]
|
|
1648
|
+
);
|
|
1649
|
+
const currentVariableValue = useMemo4(() => {
|
|
1650
|
+
if (typeof value !== "string") return null;
|
|
1651
|
+
const match = value.trim().match(/^\{\{([^{}=]+)\}\}$/);
|
|
1652
|
+
if (!match) return null;
|
|
1653
|
+
const key = match[1].trim();
|
|
1654
|
+
if (functionVariableSet.has(key)) return null;
|
|
1655
|
+
const record = variableRecords[key];
|
|
1656
|
+
if (!record || record.isFunction) return null;
|
|
1657
|
+
const { displayValue, fullValue } = getVariableValueDisplay(record.value);
|
|
1658
|
+
if (displayValue === "" || displayValue == null) return null;
|
|
1659
|
+
return { displayValue, fullValue };
|
|
1660
|
+
}, [value, variableRecords, functionVariableSet]);
|
|
1661
|
+
const allowedVariableDefinitions = useMemo4(
|
|
1430
1662
|
() => normalizeAllowedDefinitions(allowedVariables),
|
|
1431
1663
|
[allowedVariables]
|
|
1432
1664
|
);
|
|
1433
|
-
const allowedVariableDefinitionLookup =
|
|
1665
|
+
const allowedVariableDefinitionLookup = useMemo4(() => {
|
|
1434
1666
|
const lookup = /* @__PURE__ */ new Map();
|
|
1435
1667
|
allowedVariableDefinitions.forEach(
|
|
1436
1668
|
(definition) => lookup.set(definition.name, definition)
|
|
1437
1669
|
);
|
|
1438
1670
|
return lookup;
|
|
1439
1671
|
}, [allowedVariableDefinitions]);
|
|
1440
|
-
const allowedVariableNames =
|
|
1672
|
+
const allowedVariableNames = useMemo4(
|
|
1441
1673
|
() => allowedVariableDefinitions.map((definition) => definition.name),
|
|
1442
1674
|
[allowedVariableDefinitions]
|
|
1443
1675
|
);
|
|
1444
|
-
const [filteredAllowedVariables, setFilteredAllowedVariables] =
|
|
1445
|
-
const [filteredSystemVariables, setFilteredSystemVariables] =
|
|
1446
|
-
const [expandedPaths, setExpandedPaths] =
|
|
1676
|
+
const [filteredAllowedVariables, setFilteredAllowedVariables] = useState5(allowedVariableDefinitions);
|
|
1677
|
+
const [filteredSystemVariables, setFilteredSystemVariables] = useState5([]);
|
|
1678
|
+
const [expandedPaths, setExpandedPaths] = useState5(
|
|
1447
1679
|
() => /* @__PURE__ */ new Set()
|
|
1448
1680
|
);
|
|
1449
|
-
const [autoExpandPaths, setAutoExpandPaths] =
|
|
1681
|
+
const [autoExpandPaths, setAutoExpandPaths] = useState5(
|
|
1450
1682
|
() => /* @__PURE__ */ new Set()
|
|
1451
1683
|
);
|
|
1452
1684
|
const shouldRenderPicker = !hideVariables && showVariables;
|
|
1453
|
-
const systemVariableValueTrees =
|
|
1685
|
+
const systemVariableValueTrees = useMemo4(() => {
|
|
1454
1686
|
const map = /* @__PURE__ */ new Map();
|
|
1455
1687
|
if (!shouldRenderPicker) return map;
|
|
1456
1688
|
Object.values(variableRecords).forEach((variable) => {
|
|
@@ -1460,7 +1692,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1460
1692
|
});
|
|
1461
1693
|
return map;
|
|
1462
1694
|
}, [shouldRenderPicker, variableRecords]);
|
|
1463
|
-
const allowedExampleTrees =
|
|
1695
|
+
const allowedExampleTrees = useMemo4(() => {
|
|
1464
1696
|
const map = /* @__PURE__ */ new Map();
|
|
1465
1697
|
if (!shouldRenderPicker) return map;
|
|
1466
1698
|
allowedVariableDefinitions.forEach((definition) => {
|
|
@@ -1470,7 +1702,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1470
1702
|
});
|
|
1471
1703
|
return map;
|
|
1472
1704
|
}, [allowedVariableDefinitions, shouldRenderPicker]);
|
|
1473
|
-
|
|
1705
|
+
useEffect5(() => {
|
|
1474
1706
|
requestTranslations?.();
|
|
1475
1707
|
}, [requestTranslations]);
|
|
1476
1708
|
const isPathExpanded = useCallback2(
|
|
@@ -1537,7 +1769,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1537
1769
|
},
|
|
1538
1770
|
[namespaceHas, t]
|
|
1539
1771
|
);
|
|
1540
|
-
const knownOrigins =
|
|
1772
|
+
const knownOrigins = useMemo4(() => {
|
|
1541
1773
|
return Array.from(
|
|
1542
1774
|
new Set(
|
|
1543
1775
|
Object.values(variableRecords).map(
|
|
@@ -1684,7 +1916,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1684
1916
|
},
|
|
1685
1917
|
[allowedExampleTrees, getAllowedVariableRecord, systemVariableValueTrees]
|
|
1686
1918
|
);
|
|
1687
|
-
|
|
1919
|
+
useEffect5(() => {
|
|
1688
1920
|
if (!shouldRenderPicker) {
|
|
1689
1921
|
return;
|
|
1690
1922
|
}
|
|
@@ -1824,7 +2056,23 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1824
2056
|
onChange?.(currentValue ? `${currentValue}${newValue}` : newValue);
|
|
1825
2057
|
};
|
|
1826
2058
|
const insertVariable = (variable) => {
|
|
1827
|
-
|
|
2059
|
+
const token = `{{${variable}}}`;
|
|
2060
|
+
const el = inputEl;
|
|
2061
|
+
if (el && typeof value === "string" && el.selectionStart != null) {
|
|
2062
|
+
const start = el.selectionStart;
|
|
2063
|
+
const end = el.selectionEnd ?? start;
|
|
2064
|
+
onChange?.(`${value.slice(0, start)}${token}${value.slice(end)}`);
|
|
2065
|
+
const caret = start + token.length;
|
|
2066
|
+
requestAnimationFrame(() => {
|
|
2067
|
+
try {
|
|
2068
|
+
el.focus();
|
|
2069
|
+
el.setSelectionRange(caret, caret);
|
|
2070
|
+
} catch {
|
|
2071
|
+
}
|
|
2072
|
+
});
|
|
2073
|
+
} else {
|
|
2074
|
+
appendValue(token);
|
|
2075
|
+
}
|
|
1828
2076
|
setShowVariables(false);
|
|
1829
2077
|
};
|
|
1830
2078
|
const handleFilterOptions = (options, params) => {
|
|
@@ -1832,13 +2080,13 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1832
2080
|
afterFilter?.(filtered);
|
|
1833
2081
|
return filtered;
|
|
1834
2082
|
};
|
|
1835
|
-
const renderVariableToken = (variableName, variableType, isSuggested = false) => /* @__PURE__ */
|
|
2083
|
+
const renderVariableToken = (variableName, variableType, isSuggested = false) => /* @__PURE__ */ jsxs6(
|
|
1836
2084
|
"div",
|
|
1837
2085
|
{
|
|
1838
2086
|
className: `ls-variable-token ${getVariableColorClass(variableType, isSuggested)}`,
|
|
1839
2087
|
children: [
|
|
1840
|
-
/* @__PURE__ */
|
|
1841
|
-
variableType === "func" && /* @__PURE__ */
|
|
2088
|
+
/* @__PURE__ */ jsx14("span", { className: "ls-variable-token__name", children: `{{${variableName}}}` }),
|
|
2089
|
+
variableType === "func" && /* @__PURE__ */ jsx14(
|
|
1842
2090
|
"span",
|
|
1843
2091
|
{
|
|
1844
2092
|
className: "ls-variable-token__badge",
|
|
@@ -1849,7 +2097,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1849
2097
|
]
|
|
1850
2098
|
}
|
|
1851
2099
|
);
|
|
1852
|
-
const renderExpandToggle = (path, expanded) => /* @__PURE__ */
|
|
2100
|
+
const renderExpandToggle = (path, expanded) => /* @__PURE__ */ jsx14(
|
|
1853
2101
|
"button",
|
|
1854
2102
|
{
|
|
1855
2103
|
type: "button",
|
|
@@ -1860,15 +2108,15 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1860
2108
|
className: `ls-variable-picker__expand-toggle${expanded ? " ls-variable-picker__expand-toggle--expanded" : ""}`,
|
|
1861
2109
|
"aria-label": expanded ? "Collapse" : "Expand",
|
|
1862
2110
|
"aria-expanded": expanded,
|
|
1863
|
-
children: /* @__PURE__ */
|
|
2111
|
+
children: /* @__PURE__ */ jsx14(KeyboardArrowDown2, { style: { width: 16, height: 16 } })
|
|
1864
2112
|
}
|
|
1865
2113
|
);
|
|
1866
|
-
const renderExpandSpacer = () => /* @__PURE__ */
|
|
2114
|
+
const renderExpandSpacer = () => /* @__PURE__ */ jsx14("span", { className: "ls-variable-picker__expand-spacer", "aria-hidden": true });
|
|
1867
2115
|
const getVariableValuePreview = (variableValue) => {
|
|
1868
2116
|
const { displayValue, fullValue } = getVariableValueDisplay(variableValue);
|
|
1869
2117
|
return { displayValue, fullValue };
|
|
1870
2118
|
};
|
|
1871
|
-
const renderVariableValueInput = (displayValue, fullValue) => /* @__PURE__ */
|
|
2119
|
+
const renderVariableValueInput = (displayValue, fullValue) => /* @__PURE__ */ jsx14(
|
|
1872
2120
|
"input",
|
|
1873
2121
|
{
|
|
1874
2122
|
className: "ls-variable-picker__value-input",
|
|
@@ -1885,8 +2133,8 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1885
2133
|
const fullToken = `${rootToken}.${node.relativePath}`;
|
|
1886
2134
|
const expanded = node.isExpandable && isPathExpanded(fullToken);
|
|
1887
2135
|
const { displayValue, fullValue } = getVariableValuePreview(node.value);
|
|
1888
|
-
return /* @__PURE__ */
|
|
1889
|
-
/* @__PURE__ */
|
|
2136
|
+
return /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
2137
|
+
/* @__PURE__ */ jsxs6(
|
|
1890
2138
|
"div",
|
|
1891
2139
|
{
|
|
1892
2140
|
className: "ls-variable-picker__row ls-variable-picker__row--child",
|
|
@@ -1895,31 +2143,57 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1895
2143
|
else insertVariable(fullToken);
|
|
1896
2144
|
},
|
|
1897
2145
|
children: [
|
|
1898
|
-
/* @__PURE__ */
|
|
2146
|
+
/* @__PURE__ */ jsxs6(
|
|
1899
2147
|
"div",
|
|
1900
2148
|
{
|
|
1901
2149
|
className: "ls-variable-picker__token-cell",
|
|
1902
2150
|
style: { paddingLeft: `${node.depth * 1.25}rem` },
|
|
1903
2151
|
children: [
|
|
1904
2152
|
node.isExpandable ? renderExpandToggle(fullToken, expanded) : renderExpandSpacer(),
|
|
1905
|
-
/* @__PURE__ */
|
|
2153
|
+
/* @__PURE__ */ jsx14(
|
|
1906
2154
|
"div",
|
|
1907
2155
|
{
|
|
1908
2156
|
className: `ls-variable-token ${CHILD_VARIABLE_COLOR_CLASS}`,
|
|
1909
|
-
children: /* @__PURE__ */
|
|
2157
|
+
children: /* @__PURE__ */ jsx14("span", { className: "ls-variable-token__name", children: `{{${fullToken}}}` })
|
|
1910
2158
|
}
|
|
1911
2159
|
)
|
|
1912
2160
|
]
|
|
1913
2161
|
}
|
|
1914
2162
|
),
|
|
1915
|
-
/* @__PURE__ */
|
|
1916
|
-
/* @__PURE__ */
|
|
2163
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__description", children: node.displayKey }),
|
|
2164
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__value", title: fullValue, children: renderVariableValueInput(displayValue, fullValue) })
|
|
1917
2165
|
]
|
|
1918
2166
|
}
|
|
1919
2167
|
),
|
|
1920
2168
|
expanded && renderValueChildRows(rootToken, node.children)
|
|
1921
2169
|
] }, fullToken);
|
|
1922
2170
|
});
|
|
2171
|
+
const renderExampleChildRows = (variable, examples) => /* @__PURE__ */ jsxs6(Fragment5, { children: [
|
|
2172
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__row ls-variable-picker__row--child ls-variable-picker__example-description", children: getSystemVariableDescription(variable) }),
|
|
2173
|
+
examples.map((example) => /* @__PURE__ */ jsxs6(
|
|
2174
|
+
"div",
|
|
2175
|
+
{
|
|
2176
|
+
className: "ls-variable-picker__row ls-variable-picker__row--child",
|
|
2177
|
+
onClick: () => insertVariable(example.snippet),
|
|
2178
|
+
children: [
|
|
2179
|
+
/* @__PURE__ */ jsxs6(
|
|
2180
|
+
"div",
|
|
2181
|
+
{
|
|
2182
|
+
className: "ls-variable-picker__token-cell",
|
|
2183
|
+
style: { paddingLeft: "1.25rem" },
|
|
2184
|
+
children: [
|
|
2185
|
+
renderExpandSpacer(),
|
|
2186
|
+
/* @__PURE__ */ jsx14("div", { className: `ls-variable-token ${CHILD_VARIABLE_COLOR_CLASS}`, children: /* @__PURE__ */ jsx14("span", { className: "ls-variable-token__name", children: `{{${example.snippet}}}` }) })
|
|
2187
|
+
]
|
|
2188
|
+
}
|
|
2189
|
+
),
|
|
2190
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__description", children: example.label }),
|
|
2191
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__value" })
|
|
2192
|
+
]
|
|
2193
|
+
},
|
|
2194
|
+
example.snippet
|
|
2195
|
+
))
|
|
2196
|
+
] });
|
|
1923
2197
|
const toOptionLabelString = (input) => {
|
|
1924
2198
|
if (typeof input === "string") return input;
|
|
1925
2199
|
if (typeof input === "number" || typeof input === "boolean" || typeof input === "bigint")
|
|
@@ -1971,7 +2245,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1971
2245
|
isSelected ? "ls-variable-option--selected" : ""
|
|
1972
2246
|
].filter(Boolean).join(" ")
|
|
1973
2247
|
},
|
|
1974
|
-
thumb ? /* @__PURE__ */
|
|
2248
|
+
thumb ? /* @__PURE__ */ jsx14(
|
|
1975
2249
|
"img",
|
|
1976
2250
|
{
|
|
1977
2251
|
src: thumb,
|
|
@@ -1979,24 +2253,24 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
1979
2253
|
alt: ""
|
|
1980
2254
|
}
|
|
1981
2255
|
) : null,
|
|
1982
|
-
/* @__PURE__ */
|
|
1983
|
-
/* @__PURE__ */
|
|
1984
|
-
helperText ? /* @__PURE__ */
|
|
2256
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-option__body", children: [
|
|
2257
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-option__label", children: resolveOptionLabel(opt) }),
|
|
2258
|
+
helperText ? /* @__PURE__ */ jsx14("div", { className: "ls-variable-option__helper", children: helperText }) : null
|
|
1985
2259
|
] })
|
|
1986
2260
|
);
|
|
1987
2261
|
};
|
|
1988
2262
|
const showSuggestedSection = shouldRenderPicker && allowedVariableNames.length > 0 && filteredAllowedVariables.length > 0;
|
|
1989
|
-
const pickerBody = shouldRenderPicker ? /* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
1991
|
-
/* @__PURE__ */
|
|
2263
|
+
const pickerBody = shouldRenderPicker ? /* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker ls-variable-picker--three-col", children: [
|
|
2264
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker__intro", children: [
|
|
2265
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__intro-text", children: t(
|
|
1992
2266
|
"overlay-variables.variables-description",
|
|
1993
2267
|
"Use variables that will automatically be replaced before sending out the text"
|
|
1994
2268
|
) }),
|
|
1995
|
-
/* @__PURE__ */
|
|
2269
|
+
/* @__PURE__ */ jsx14(
|
|
1996
2270
|
LSInput,
|
|
1997
2271
|
{
|
|
1998
2272
|
autoFocus: true,
|
|
1999
|
-
startAdornment: /* @__PURE__ */
|
|
2273
|
+
startAdornment: /* @__PURE__ */ jsx14(Search, { style: { color: "#fff", width: 20, height: 20 } }),
|
|
2000
2274
|
placeholder: t("common.search", "Search"),
|
|
2001
2275
|
value: searchQuery,
|
|
2002
2276
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
@@ -2004,14 +2278,14 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2004
2278
|
}
|
|
2005
2279
|
)
|
|
2006
2280
|
] }),
|
|
2007
|
-
/* @__PURE__ */
|
|
2008
|
-
/* @__PURE__ */
|
|
2009
|
-
/* @__PURE__ */
|
|
2010
|
-
/* @__PURE__ */
|
|
2281
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker__header", children: [
|
|
2282
|
+
/* @__PURE__ */ jsx14("div", { style: { paddingLeft: "2.2rem" }, children: t("commands.variable", "Variable") }),
|
|
2283
|
+
/* @__PURE__ */ jsx14("div", { children: t("commands.description", "Description") }),
|
|
2284
|
+
/* @__PURE__ */ jsx14("div", { children: t("common.value", "Value") })
|
|
2011
2285
|
] }),
|
|
2012
|
-
/* @__PURE__ */
|
|
2013
|
-
showSuggestedSection && /* @__PURE__ */
|
|
2014
|
-
/* @__PURE__ */
|
|
2286
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker__list", children: [
|
|
2287
|
+
showSuggestedSection && /* @__PURE__ */ jsxs6("fieldset", { className: "ls-variable-picker__field", children: [
|
|
2288
|
+
/* @__PURE__ */ jsx14("legend", { className: "ls-variable-picker__legend", children: t("commands.suggested-variables", "Suggested Variables") }),
|
|
2015
2289
|
filteredAllowedVariables.map((definition, idx) => {
|
|
2016
2290
|
const variableType = getAllowedVariableVisualType(
|
|
2017
2291
|
definition.name
|
|
@@ -2024,8 +2298,8 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2024
2298
|
const expanded = expandable && isPathExpanded(definition.name);
|
|
2025
2299
|
const isLast = idx === filteredAllowedVariables.length - 1;
|
|
2026
2300
|
const rowCls = `ls-variable-picker__row${isLast && !expanded ? " ls-variable-picker__row--no-border" : ""}`;
|
|
2027
|
-
return /* @__PURE__ */
|
|
2028
|
-
/* @__PURE__ */
|
|
2301
|
+
return /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
2302
|
+
/* @__PURE__ */ jsxs6(
|
|
2029
2303
|
"div",
|
|
2030
2304
|
{
|
|
2031
2305
|
className: rowCls,
|
|
@@ -2035,12 +2309,12 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2035
2309
|
else insertVariable(definition.name);
|
|
2036
2310
|
},
|
|
2037
2311
|
children: [
|
|
2038
|
-
/* @__PURE__ */
|
|
2312
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker__token-cell", children: [
|
|
2039
2313
|
expandable ? renderExpandToggle(definition.name, expanded) : renderExpandSpacer(),
|
|
2040
2314
|
renderVariableToken(definition.name, variableType, true)
|
|
2041
2315
|
] }),
|
|
2042
|
-
/* @__PURE__ */
|
|
2043
|
-
/* @__PURE__ */
|
|
2316
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__description", children: getAllowedVariableDescription(definition.name) }),
|
|
2317
|
+
/* @__PURE__ */ jsx14(
|
|
2044
2318
|
"div",
|
|
2045
2319
|
{
|
|
2046
2320
|
className: "ls-variable-picker__value",
|
|
@@ -2061,11 +2335,12 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2061
2335
|
variable.value
|
|
2062
2336
|
);
|
|
2063
2337
|
const rootToken = variable.example ?? variable.name;
|
|
2338
|
+
const examples = variableExamples[variable.name] ?? [];
|
|
2064
2339
|
const tree = systemVariableValueTrees.get(variable.name);
|
|
2065
|
-
const expandable = !!tree && tree.length > 0;
|
|
2340
|
+
const expandable = examples.length > 0 || !!tree && tree.length > 0;
|
|
2066
2341
|
const expanded = expandable && isPathExpanded(rootToken);
|
|
2067
|
-
return /* @__PURE__ */
|
|
2068
|
-
/* @__PURE__ */
|
|
2342
|
+
return /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
2343
|
+
/* @__PURE__ */ jsxs6(
|
|
2069
2344
|
"div",
|
|
2070
2345
|
{
|
|
2071
2346
|
className: "ls-variable-picker__row",
|
|
@@ -2074,21 +2349,21 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2074
2349
|
else insertVariable(rootToken);
|
|
2075
2350
|
},
|
|
2076
2351
|
children: [
|
|
2077
|
-
/* @__PURE__ */
|
|
2352
|
+
/* @__PURE__ */ jsxs6("div", { className: "ls-variable-picker__token-cell", children: [
|
|
2078
2353
|
expandable ? renderExpandToggle(rootToken, expanded) : renderExpandSpacer(),
|
|
2079
2354
|
renderVariableToken(variable.name, variableType)
|
|
2080
2355
|
] }),
|
|
2081
|
-
/* @__PURE__ */
|
|
2082
|
-
/* @__PURE__ */
|
|
2356
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__description", children: getSystemVariableDescription(variable) }),
|
|
2357
|
+
/* @__PURE__ */ jsx14("div", { className: "ls-variable-picker__value", title: fullValue, children: renderVariableValueInput(displayValue, fullValue) })
|
|
2083
2358
|
]
|
|
2084
2359
|
}
|
|
2085
2360
|
),
|
|
2086
|
-
expanded && tree && renderValueChildRows(rootToken, tree)
|
|
2361
|
+
expanded && (examples.length > 0 ? renderExampleChildRows(variable, examples) : tree && renderValueChildRows(rootToken, tree))
|
|
2087
2362
|
] }, variable.name);
|
|
2088
2363
|
})
|
|
2089
2364
|
] })
|
|
2090
2365
|
] }) : null;
|
|
2091
|
-
const textField = (params = {}) => /* @__PURE__ */
|
|
2366
|
+
const textField = (params = {}) => /* @__PURE__ */ jsx14(
|
|
2092
2367
|
VariableInputTextField,
|
|
2093
2368
|
{
|
|
2094
2369
|
t,
|
|
@@ -2111,11 +2386,12 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2111
2386
|
inputProps,
|
|
2112
2387
|
allowedVariables,
|
|
2113
2388
|
showVariableIcon: !hideVariables && (!isAutoComplete || allowedVariableDefinitions.length > 0),
|
|
2114
|
-
|
|
2389
|
+
currentValue: currentVariableValue,
|
|
2390
|
+
ref: mergedInputRef
|
|
2115
2391
|
}
|
|
2116
2392
|
);
|
|
2117
|
-
return /* @__PURE__ */
|
|
2118
|
-
/* @__PURE__ */
|
|
2393
|
+
return /* @__PURE__ */ jsxs6(Fragment5, { children: [
|
|
2394
|
+
/* @__PURE__ */ jsx14(
|
|
2119
2395
|
Popover,
|
|
2120
2396
|
{
|
|
2121
2397
|
anchorEl: containerRef.current,
|
|
@@ -2141,7 +2417,7 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2141
2417
|
children: pickerBody
|
|
2142
2418
|
}
|
|
2143
2419
|
),
|
|
2144
|
-
isAutoComplete ? /* @__PURE__ */
|
|
2420
|
+
isAutoComplete ? /* @__PURE__ */ jsx14(
|
|
2145
2421
|
Autocomplete2,
|
|
2146
2422
|
{
|
|
2147
2423
|
disableClearable: true,
|
|
@@ -2237,7 +2513,17 @@ var LSVariableInputField = forwardRef7((props, ref) => {
|
|
|
2237
2513
|
onClose: onPopupClose,
|
|
2238
2514
|
renderInput: (params) => textField(params)
|
|
2239
2515
|
}
|
|
2240
|
-
) : textField()
|
|
2516
|
+
) : textField(),
|
|
2517
|
+
!hideVariables && typeof value === "string" ? /* @__PURE__ */ jsx14(
|
|
2518
|
+
VariableHighlightOverlay,
|
|
2519
|
+
{
|
|
2520
|
+
inputEl,
|
|
2521
|
+
value,
|
|
2522
|
+
multiline,
|
|
2523
|
+
classify: getAllowedVariableVisualType,
|
|
2524
|
+
describe: getAllowedVariableDescription
|
|
2525
|
+
}
|
|
2526
|
+
) : null
|
|
2241
2527
|
] });
|
|
2242
2528
|
});
|
|
2243
2529
|
LSVariableInputField.displayName = "LSVariableInputField";
|
|
@@ -2261,15 +2547,16 @@ var VariableInputTextField = forwardRef7(
|
|
|
2261
2547
|
clickedVariableIcon,
|
|
2262
2548
|
params = {},
|
|
2263
2549
|
containerRef,
|
|
2264
|
-
showVariableIcon
|
|
2550
|
+
showVariableIcon,
|
|
2551
|
+
currentValue
|
|
2265
2552
|
}, ref) => {
|
|
2266
2553
|
const inputPropsSlotInput = inputProps?.slotProps?.input ?? {};
|
|
2267
2554
|
const paramsSlotInput = params?.slotProps?.input ?? {};
|
|
2268
2555
|
const explicitStartAdornment = inputProps?.startAdornment;
|
|
2269
|
-
const resolvedExplicitStartAdornment = explicitStartAdornment ? /* @__PURE__ */
|
|
2556
|
+
const resolvedExplicitStartAdornment = explicitStartAdornment ? /* @__PURE__ */ jsx14(InputAdornment2, { position: "start", children: explicitStartAdornment }) : void 0;
|
|
2270
2557
|
const startAdornment = paramsSlotInput.startAdornment ?? inputPropsSlotInput.startAdornment ?? resolvedExplicitStartAdornment;
|
|
2271
2558
|
const endAdornment = paramsSlotInput.endAdornment ?? inputPropsSlotInput.endAdornment;
|
|
2272
|
-
return /* @__PURE__ */
|
|
2559
|
+
return /* @__PURE__ */ jsx14(
|
|
2273
2560
|
LSTextField,
|
|
2274
2561
|
{
|
|
2275
2562
|
id,
|
|
@@ -2297,9 +2584,25 @@ var VariableInputTextField = forwardRef7(
|
|
|
2297
2584
|
...inputPropsSlotInput,
|
|
2298
2585
|
...paramsSlotInput,
|
|
2299
2586
|
startAdornment,
|
|
2300
|
-
endAdornment: /* @__PURE__ */
|
|
2587
|
+
endAdornment: /* @__PURE__ */ jsxs6(Fragment5, { children: [
|
|
2301
2588
|
endAdornment ?? null,
|
|
2302
|
-
|
|
2589
|
+
currentValue ? /* @__PURE__ */ jsx14(Tooltip2, { title: currentValue.fullValue, children: /* @__PURE__ */ jsx14(
|
|
2590
|
+
InputAdornment2,
|
|
2591
|
+
{
|
|
2592
|
+
position: "end",
|
|
2593
|
+
className: "ls-variable-input-current-value",
|
|
2594
|
+
style: {
|
|
2595
|
+
maxWidth: 120,
|
|
2596
|
+
overflow: "hidden",
|
|
2597
|
+
textOverflow: "ellipsis",
|
|
2598
|
+
whiteSpace: "nowrap",
|
|
2599
|
+
opacity: 0.6,
|
|
2600
|
+
fontSize: "0.75em"
|
|
2601
|
+
},
|
|
2602
|
+
children: currentValue.displayValue
|
|
2603
|
+
}
|
|
2604
|
+
) }) : null,
|
|
2605
|
+
showVariableIcon ? /* @__PURE__ */ jsx14(Tooltip2, { title: t("chatbot.allowed-variables", "Allowed Variables"), children: /* @__PURE__ */ jsx14(
|
|
2303
2606
|
InputAdornment2,
|
|
2304
2607
|
{
|
|
2305
2608
|
position: "end",
|
|
@@ -2320,7 +2623,7 @@ var VariableInputTextField = forwardRef7(
|
|
|
2320
2623
|
VariableInputTextField.displayName = "VariableInputTextField";
|
|
2321
2624
|
|
|
2322
2625
|
// src/components/ChatMessageItem/ChatMessageItem.tsx
|
|
2323
|
-
import { useState as
|
|
2626
|
+
import { useState as useState6 } from "react";
|
|
2324
2627
|
import ListItemIcon from "@mui/material/ListItemIcon";
|
|
2325
2628
|
import ListItemText from "@mui/material/ListItemText";
|
|
2326
2629
|
import Menu from "@mui/material/Menu";
|
|
@@ -2356,7 +2659,7 @@ var twitter_default = 'data:image/svg+xml,<svg width="400" height="400" viewBox=
|
|
|
2356
2659
|
var youtube_default = 'data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M12.5612 5H12.6669C13.643 5.00347 18.5892 5.03817 19.9229 5.38749C20.3261 5.4941 20.6935 5.7019 20.9884 5.99013C21.2833 6.27836 21.4953 6.63692 21.6033 7.02998C21.7233 7.46952 21.8076 8.05133 21.8646 8.65166L21.8765 8.77195L21.9026 9.0727L21.9121 9.19298C21.9893 10.2502 21.9988 11.2403 22 11.4566V11.5434C21.9988 11.7678 21.9882 12.825 21.9026 13.9262L21.8931 14.0476L21.8825 14.1679C21.823 14.8295 21.7352 15.4865 21.6033 15.97C21.4957 16.3632 21.2837 16.722 20.9888 17.0102C20.6939 17.2985 20.3262 17.5062 19.9229 17.6125C18.5454 17.9734 13.3093 17.9988 12.5837 18H12.4151C12.0481 18 10.5304 17.9931 8.93906 17.9399L8.73717 17.9329L8.63385 17.9283L8.43078 17.9202L8.2277 17.9121C6.90949 17.8554 5.65423 17.764 5.07589 17.6114C4.67269 17.5052 4.30522 17.2976 4.0103 17.0096C3.71538 16.7215 3.50335 16.363 3.39546 15.97C3.26364 15.4877 3.17576 14.8295 3.11638 14.1679L3.10688 14.0464L3.09738 13.9262C3.03877 13.1424 3.00629 12.357 3 11.5711V11.43C3.00238 11.1813 3.01188 10.3219 3.076 9.37343L3.08432 9.25429L3.08788 9.19415L3.09738 9.07385L3.12351 8.77311L3.13538 8.65281C3.19239 8.0525 3.27671 7.46952 3.39665 7.03115C3.50435 6.63792 3.7163 6.27919 4.01124 5.99091C4.30617 5.70263 4.67374 5.49494 5.07707 5.38865C5.65541 5.23828 6.91069 5.14574 8.22889 5.08791L8.43078 5.07981L8.63503 5.07287L8.73717 5.0694L8.94024 5.0613C10.0705 5.02549 11.2011 5.00544 12.332 5.00116H12.5612V5ZM10.6005 8.71297V14.2859L15.5372 11.5006L10.6005 8.71297Z" fill="%23FF0000"/>%0A</svg>%0A';
|
|
2357
2660
|
|
|
2358
2661
|
// src/components/PlatformIcon/PlatformIcon.tsx
|
|
2359
|
-
import { jsx as
|
|
2662
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
2360
2663
|
var PLATFORM_ICON_URLS = {
|
|
2361
2664
|
twitch: twitch_default,
|
|
2362
2665
|
youtube: youtube_default,
|
|
@@ -2381,28 +2684,28 @@ function PlatformIcon({ platform, fallback = true, size, className, title, style
|
|
|
2381
2684
|
return null;
|
|
2382
2685
|
}
|
|
2383
2686
|
const sizeStyle = size !== void 0 ? { height: typeof size === "number" ? `${size}px` : size } : void 0;
|
|
2384
|
-
return /* @__PURE__ */
|
|
2687
|
+
return /* @__PURE__ */ jsx15("img", { className: classNames6("ls-platform-icon", className), src: url, alt: "", title: title ?? (platform ? String(platform) : void 0), style: { ...sizeStyle, ...style } });
|
|
2385
2688
|
}
|
|
2386
2689
|
PlatformIcon.displayName = "PlatformIcon";
|
|
2387
2690
|
|
|
2388
2691
|
// src/components/ChatMessageItem/modActionIcons.tsx
|
|
2389
|
-
import { jsx as
|
|
2390
|
-
var DeleteIcon = () => /* @__PURE__ */
|
|
2692
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2693
|
+
var DeleteIcon = () => /* @__PURE__ */ jsx16("svg", { width: "15", height: "15", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2391
2694
|
"path",
|
|
2392
2695
|
{
|
|
2393
2696
|
d: "M14.375 2.7H11.875V1.2C11.875 0.538125 11.3145 0 10.625 0H4.375C3.68555 0 3.125 0.538125 3.125 1.2V2.7H0.625C0.279297 2.7 0 2.96813 0 3.3V3.9C0 3.9825 0.0703125 4.05 0.15625 4.05H1.33594L1.81836 13.8563C1.84961 14.4956 2.40039 15 3.06641 15H11.9336C12.6016 15 13.1504 14.4975 13.1816 13.8563L13.6641 4.05H14.8438C14.9297 4.05 15 3.9825 15 3.9V3.3C15 2.96813 14.7207 2.7 14.375 2.7ZM10.4688 2.7H4.53125V1.35H10.4688V2.7Z",
|
|
2394
2697
|
fill: "currentColor"
|
|
2395
2698
|
}
|
|
2396
2699
|
) });
|
|
2397
|
-
var CopyIcon = () => /* @__PURE__ */
|
|
2398
|
-
/* @__PURE__ */
|
|
2700
|
+
var CopyIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2701
|
+
/* @__PURE__ */ jsx16(
|
|
2399
2702
|
"path",
|
|
2400
2703
|
{
|
|
2401
2704
|
d: "M11.3569 12.0002H2.78544C2.61494 12.0002 2.45143 11.9325 2.33087 11.8119C2.21031 11.6914 2.14258 11.5278 2.14258 11.3574V2.57164C2.14258 2.45797 2.18773 2.34896 2.2681 2.26859C2.34848 2.18822 2.45749 2.14307 2.57115 2.14307H11.3569C11.5274 2.14307 11.6909 2.2108 11.8114 2.33135C11.932 2.45191 11.9997 2.61543 11.9997 2.78592V11.3574C11.9997 11.5278 11.932 11.6914 11.8114 11.8119C11.6909 11.9325 11.5274 12.0002 11.3569 12.0002Z",
|
|
2402
2705
|
fill: "currentColor"
|
|
2403
2706
|
}
|
|
2404
2707
|
),
|
|
2405
|
-
/* @__PURE__ */
|
|
2708
|
+
/* @__PURE__ */ jsx16(
|
|
2406
2709
|
"path",
|
|
2407
2710
|
{
|
|
2408
2711
|
d: "M2.14286 1.28571H9.85714V0.642857C9.85714 0.472361 9.78941 0.308848 9.66885 0.188289C9.54829 0.0677294 9.38478 0 9.21428 0H0.75C0.551088 0 0.360322 0.0790177 0.21967 0.21967C0.0790177 0.360322 0 0.551088 0 0.75V9.21428C0 9.38478 0.0677294 9.54829 0.188289 9.66885C0.308848 9.78941 0.472361 9.85714 0.642857 9.85714H1.28571V2.14286C1.28571 1.91553 1.37602 1.69751 1.53677 1.53677C1.69751 1.37602 1.91553 1.28571 2.14286 1.28571Z",
|
|
@@ -2410,18 +2713,18 @@ var CopyIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "12", height: "12", v
|
|
|
2410
2713
|
}
|
|
2411
2714
|
)
|
|
2412
2715
|
] });
|
|
2413
|
-
var PinOnIcon = () => /* @__PURE__ */
|
|
2414
|
-
var PinOffIcon = () => /* @__PURE__ */
|
|
2716
|
+
var PinOnIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16("path", { d: "M10.6667 7.99992V2.66659H11.3333V1.33325H4.66667V2.66659H5.33333V7.99992L4 9.33325V10.6666H7.46667V14.6666H8.53333V10.6666H12V9.33325L10.6667 7.99992Z", fill: "currentColor" }) });
|
|
2717
|
+
var PinOffIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2415
2718
|
"path",
|
|
2416
2719
|
{
|
|
2417
2720
|
d: "M10.6667 7.99992V2.66659H11.3333V1.33325H4.66667V2.66659H5.33333V7.99992L4 9.33325V10.6666H7.46667V14.6666H8.53333V10.6666H12V9.33325L10.6667 7.99992ZM5.86667 9.33325L6.66667 8.53325V2.66659H9.33333V8.53325L10.1333 9.33325H5.86667Z",
|
|
2418
2721
|
fill: "currentColor"
|
|
2419
2722
|
}
|
|
2420
2723
|
) });
|
|
2421
|
-
var TranslateIcon = () => /* @__PURE__ */
|
|
2422
|
-
/* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2424
|
-
/* @__PURE__ */
|
|
2724
|
+
var TranslateIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 107 107", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2725
|
+
/* @__PURE__ */ jsxs7("g", { clipPath: "url(#ls-chat-translate-clip)", children: [
|
|
2726
|
+
/* @__PURE__ */ jsx16("path", { d: "M34.9975 45.927L32.605 53H26.5L36.741 25.5H43.803L54 53H47.5815L45.189 45.927H34.9975ZM43.9845 41.879L40.25 30.758H39.9805L36.246 41.879H43.9845Z", fill: "currentColor" }),
|
|
2727
|
+
/* @__PURE__ */ jsx16(
|
|
2425
2728
|
"path",
|
|
2426
2729
|
{
|
|
2427
2730
|
d: "M10 20C10 17.0826 11.1589 14.2847 13.2218 12.2218C15.2847 10.1589 18.0826 9 21 9H59.5C62.4174 9 65.2153 10.1589 67.2782 12.2218C69.3411 14.2847 70.5 17.0826 70.5 20V36.5H87C89.9174 36.5 92.7153 37.6589 94.7782 39.7218C96.8411 41.7847 98 44.5826 98 47.5V86C98 88.9174 96.8411 91.7153 94.7782 93.7782C92.7153 95.8411 89.9174 97 87 97H48.5C45.5826 97 42.7847 95.8411 40.7218 93.7782C38.6589 91.7153 37.5 88.9174 37.5 86V69.5H21C18.0826 69.5 15.2847 68.3411 13.2218 66.2782C11.1589 64.2153 10 61.4174 10 58.5V20ZM21 14.5C19.5413 14.5 18.1424 15.0795 17.1109 16.1109C16.0795 17.1424 15.5 18.5413 15.5 20V58.5C15.5 59.9587 16.0795 61.3576 17.1109 62.3891C18.1424 63.4205 19.5413 64 21 64H59.5C60.9587 64 62.3576 63.4205 63.3891 62.3891C64.4205 61.3576 65 59.9587 65 58.5V20C65 18.5413 64.4205 17.1424 63.3891 16.1109C62.3576 15.0795 60.9587 14.5 59.5 14.5H21ZM60.259 69.4725C61.3187 71.1262 62.4737 72.6772 63.724 74.1255C59.61 77.288 54.5225 79.631 48.5 81.2315C49.479 82.425 50.9805 84.724 51.5525 86C57.74 84.0255 62.9925 81.358 67.4255 77.783C71.699 81.4405 76.99 84.1905 83.5405 85.879C84.272 84.482 85.8175 82.1775 87 80.984C80.8125 79.5925 75.6865 77.167 71.49 73.922C75.2355 69.8135 78.211 64.8415 80.4055 58.7585H87V53H70.5V58.7585H74.7075C72.9585 63.4005 70.6375 67.2615 67.7115 70.4735C66.9028 69.613 66.1409 68.7097 65.429 67.7675C63.8757 68.76 62.098 69.3463 60.259 69.4725Z",
|
|
@@ -2429,17 +2732,17 @@ var TranslateIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "1
|
|
|
2429
2732
|
}
|
|
2430
2733
|
)
|
|
2431
2734
|
] }),
|
|
2432
|
-
/* @__PURE__ */
|
|
2735
|
+
/* @__PURE__ */ jsx16("defs", { children: /* @__PURE__ */ jsx16("clipPath", { id: "ls-chat-translate-clip", children: /* @__PURE__ */ jsx16("rect", { width: "88", height: "88", fill: "#fff", transform: "translate(10 9)" }) }) })
|
|
2433
2736
|
] });
|
|
2434
|
-
var BanUserIcon = () => /* @__PURE__ */
|
|
2435
|
-
/* @__PURE__ */
|
|
2737
|
+
var BanUserIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 107 107", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2738
|
+
/* @__PURE__ */ jsx16(
|
|
2436
2739
|
"path",
|
|
2437
2740
|
{
|
|
2438
2741
|
d: "M71.333 62.417C72.1697 62.417 73.0017 62.465 73.8252 62.5576C65.2189 65.3659 59 73.4561 59 83C59 88.8767 61.3585 94.202 65.1797 98.083H13.375V84.708C13.3751 78.7961 15.724 73.1267 19.9043 68.9463C24.0848 64.7658 29.7549 62.417 35.667 62.417H71.333ZM53.5 8.91699C60.0033 8.91699 66.2403 11.5001 70.8389 16.0986C75.4374 20.6972 78.0205 26.9342 78.0205 33.4375C78.0205 39.9408 75.4374 46.1778 70.8389 50.7764C66.2403 55.3749 60.0033 57.958 53.5 57.958C46.9967 57.958 40.7597 55.3749 36.1611 50.7764C31.5626 46.1778 28.9795 39.9408 28.9795 33.4375C28.9795 26.9342 31.5626 20.6972 36.1611 16.0986C40.7597 11.5001 46.9967 8.91699 53.5 8.91699Z",
|
|
2439
2742
|
fill: "currentColor"
|
|
2440
2743
|
}
|
|
2441
2744
|
),
|
|
2442
|
-
/* @__PURE__ */
|
|
2745
|
+
/* @__PURE__ */ jsx16(
|
|
2443
2746
|
"path",
|
|
2444
2747
|
{
|
|
2445
2748
|
d: "M72.4414 77.9153C71.0064 79.9384 70.3336 82.4041 70.5422 84.8757C70.7508 87.3473 71.8274 89.6654 73.5814 91.4193C75.3353 93.1732 77.6533 94.2498 80.1249 94.4584C82.5965 94.6671 85.0622 93.9943 87.0853 92.5592L72.4414 77.9153ZM74.9159 75.4426L89.5598 90.0865C90.9949 88.0634 91.6677 85.5977 91.4591 83.126C91.2504 80.6544 90.1738 78.3364 88.4199 76.5825C86.666 74.8286 84.348 73.752 81.8764 73.5433C79.4047 73.3347 76.939 74.0075 74.9159 75.4426ZM71.101 93.9014C68.4752 91.2759 66.9999 87.7148 66.9998 84.0015C66.9996 80.2882 68.4745 76.727 71.1001 74.1012C73.7256 71.4754 77.2868 70.0002 81 70C84.7133 69.9998 88.2745 71.4748 90.9003 74.1003C93.5259 76.7259 95.0009 80.2869 95.0009 84C95.0009 87.7131 93.5259 91.2741 90.9003 93.8997C88.2748 96.5252 84.7137 98.0003 81.0006 98.0003C77.2875 98.0003 73.7265 96.5252 71.101 93.8997V93.9014Z",
|
|
@@ -2447,15 +2750,15 @@ var BanUserIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16"
|
|
|
2447
2750
|
}
|
|
2448
2751
|
)
|
|
2449
2752
|
] });
|
|
2450
|
-
var TimeoutUserIcon = () => /* @__PURE__ */
|
|
2451
|
-
/* @__PURE__ */
|
|
2753
|
+
var TimeoutUserIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 107 108", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2754
|
+
/* @__PURE__ */ jsx16(
|
|
2452
2755
|
"path",
|
|
2453
2756
|
{
|
|
2454
2757
|
d: "M71.333 62.917C72.1697 62.917 73.0017 62.965 73.8252 63.0576C65.2189 65.8659 59 73.9561 59 83.5C59 89.3767 61.3585 94.702 65.1797 98.583H13.375V85.208C13.3751 79.2961 15.724 73.6267 19.9043 69.4463C24.0848 65.2658 29.7549 62.917 35.667 62.917H71.333ZM53.5 9.41699C60.0033 9.41699 66.2403 12.0001 70.8389 16.5986C75.4374 21.1972 78.0205 27.4342 78.0205 33.9375C78.0205 40.4408 75.4374 46.6778 70.8389 51.2764C66.2403 55.8749 60.0033 58.458 53.5 58.458C46.9967 58.458 40.7597 55.8749 36.1611 51.2764C31.5626 46.6778 28.9795 40.4408 28.9795 33.9375C28.9795 27.4342 31.5626 21.1972 36.1611 16.5986C40.7597 12.0001 46.9967 9.41699 53.5 9.41699Z",
|
|
2455
2758
|
fill: "currentColor"
|
|
2456
2759
|
}
|
|
2457
2760
|
),
|
|
2458
|
-
/* @__PURE__ */
|
|
2761
|
+
/* @__PURE__ */ jsx16(
|
|
2459
2762
|
"path",
|
|
2460
2763
|
{
|
|
2461
2764
|
d: "M81.1936 70.3225C88.8545 70.3225 95.0646 76.5325 95.0646 84.1935C95.0646 91.8544 88.8545 98.0644 81.1936 98.0644C73.5327 98.0644 67.3226 91.8544 67.3226 84.1935C67.3226 76.5325 73.5327 70.3225 81.1936 70.3225ZM81.1936 75.8709C80.8257 75.8709 80.4729 76.017 80.2128 76.2772C79.9526 76.5373 79.8065 76.8901 79.8065 77.258V84.1935C79.8066 84.5613 79.9528 84.9141 80.2129 85.1742L84.3742 89.3354C84.6358 89.5881 84.9862 89.7279 85.3499 89.7248C85.7136 89.7216 86.0615 89.5757 86.3187 89.3185C86.5758 89.0614 86.7217 88.7135 86.7249 88.3498C86.728 87.9861 86.5882 87.6357 86.3356 87.3741L82.5807 83.6192V77.258C82.5807 76.8901 82.4346 76.5373 82.1744 76.2772C81.9143 76.017 81.5615 75.8709 81.1936 75.8709Z",
|
|
@@ -2463,22 +2766,22 @@ var TimeoutUserIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height:
|
|
|
2463
2766
|
}
|
|
2464
2767
|
)
|
|
2465
2768
|
] });
|
|
2466
|
-
var MenuDotsIcon = () => /* @__PURE__ */
|
|
2467
|
-
/* @__PURE__ */
|
|
2769
|
+
var MenuDotsIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 3 19", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2770
|
+
/* @__PURE__ */ jsx16(
|
|
2468
2771
|
"path",
|
|
2469
2772
|
{
|
|
2470
2773
|
d: "M1.47273 0.727539C1.90909 0.727539 2.27273 0.854812 2.56364 1.10936C2.85455 1.373 3 1.7639 3 2.28209C3 2.80027 2.85455 3.19118 2.56364 3.45481C2.27273 3.72754 1.90909 3.8639 1.47273 3.8639C1.05455 3.8639 0.704544 3.72754 0.422727 3.45481C0.140909 3.19118 -2.265e-08 2.80027 0 2.28209C2.265e-08 1.7639 0.140909 1.373 0.422728 1.10936C0.704544 0.854812 1.05455 0.727539 1.47273 0.727539Z",
|
|
2471
2774
|
fill: "currentColor"
|
|
2472
2775
|
}
|
|
2473
2776
|
),
|
|
2474
|
-
/* @__PURE__ */
|
|
2777
|
+
/* @__PURE__ */ jsx16(
|
|
2475
2778
|
"path",
|
|
2476
2779
|
{
|
|
2477
2780
|
d: "M1.47273 7.86426C1.90909 7.86426 2.27273 7.99152 2.56364 8.2461C2.85455 8.50974 3 8.90064 3 9.4188C3 9.93702 2.85455 10.3279 2.56364 10.5916C2.27273 10.8643 1.90909 11.0006 1.47273 11.0006C1.05455 11.0006 0.704544 10.8643 0.422727 10.5916C0.140909 10.3279 -2.265e-08 9.93702 0 9.4188C2.26506e-08 8.90064 0.140909 8.50974 0.422727 8.2461C0.704544 7.99152 1.05455 7.86426 1.47273 7.86426Z",
|
|
2478
2781
|
fill: "currentColor"
|
|
2479
2782
|
}
|
|
2480
2783
|
),
|
|
2481
|
-
/* @__PURE__ */
|
|
2784
|
+
/* @__PURE__ */ jsx16(
|
|
2482
2785
|
"path",
|
|
2483
2786
|
{
|
|
2484
2787
|
d: "M1.47273 15C1.90909 15 2.27273 15.1273 2.56364 15.3818C2.85455 15.6454 3 16.0363 3 16.5545C3 17.0727 2.85455 17.4636 2.56364 17.7272C2.27273 18 1.90909 18.1363 1.47273 18.1363C1.05455 18.1363 0.704544 18 0.422727 17.7272C0.140909 17.4636 -2.26494e-08 17.0727 0 16.5545C2.26515e-08 16.0363 0.140909 15.6454 0.422727 15.3818C0.704544 15.1273 1.05455 15 1.47273 15Z",
|
|
@@ -2486,7 +2789,7 @@ var MenuDotsIcon = () => /* @__PURE__ */ jsxs6("svg", { width: "16", height: "16
|
|
|
2486
2789
|
}
|
|
2487
2790
|
)
|
|
2488
2791
|
] });
|
|
2489
|
-
var ShoutoutIcon = () => /* @__PURE__ */
|
|
2792
|
+
var ShoutoutIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 100 100", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2490
2793
|
"path",
|
|
2491
2794
|
{
|
|
2492
2795
|
fillRule: "evenodd",
|
|
@@ -2495,7 +2798,7 @@ var ShoutoutIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16
|
|
|
2495
2798
|
fill: "currentColor"
|
|
2496
2799
|
}
|
|
2497
2800
|
) });
|
|
2498
|
-
var VipIcon = () => /* @__PURE__ */
|
|
2801
|
+
var VipIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2499
2802
|
"path",
|
|
2500
2803
|
{
|
|
2501
2804
|
fillRule: "evenodd",
|
|
@@ -2504,14 +2807,14 @@ var VipIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "16", vi
|
|
|
2504
2807
|
fill: "currentColor"
|
|
2505
2808
|
}
|
|
2506
2809
|
) });
|
|
2507
|
-
var RemoveVipIcon = () => /* @__PURE__ */
|
|
2810
|
+
var RemoveVipIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2508
2811
|
"path",
|
|
2509
2812
|
{
|
|
2510
2813
|
d: "M17.9995 13C18.6561 13 19.3069 13.1296 19.9136 13.3809C20.5201 13.6321 21.0714 14.0006 21.5356 14.4648C21.9998 14.9291 22.3684 15.4804 22.6196 16.0869C22.8708 16.6934 22.9995 17.3435 22.9995 18C22.9995 18.6565 22.8708 19.3066 22.6196 19.9131C22.3684 20.5196 21.9998 21.0709 21.5356 21.5352C21.0714 21.9994 20.5201 22.3679 19.9136 22.6191C19.3069 22.8704 18.6561 23 17.9995 23C16.6736 22.9999 15.4019 22.4727 14.4644 21.5352C13.5268 20.5975 12.9995 19.326 12.9995 18C12.9995 16.674 13.5268 15.4025 14.4644 14.4648C15.4019 13.5273 16.6736 13.0001 17.9995 13ZM17.4204 3C17.7449 3.00004 18.0649 3.07933 18.3521 3.23047C18.6392 3.38169 18.8852 3.60063 19.0688 3.86816L19.1558 4.00781L22.4897 9.83984C22.6933 10.1958 22.7828 10.6063 22.7456 11.0146C22.7083 11.4229 22.5462 11.8098 22.2817 12.123L22.1675 12.2461L21.3745 13.0381C20.413 12.3829 19.2507 12 17.9995 12C14.686 12.0003 11.9995 14.6864 11.9995 18C11.9995 19.2515 12.3832 20.4134 13.0386 21.375L12.8853 21.5293C12.6676 21.7469 12.3771 21.8767 12.0698 21.8936C11.7625 21.9103 11.4593 21.8127 11.2192 21.6201L11.1167 21.5303L1.8335 12.2461C1.54369 11.9563 1.35037 11.5842 1.27881 11.1807C1.20728 10.777 1.26145 10.3611 1.43408 9.98926L1.51221 9.83887L4.84521 4.00684C5.00627 3.72505 5.23356 3.48685 5.50732 3.3125C5.78107 3.13819 6.09308 3.03263 6.4165 3.00586L6.57959 3H17.4204ZM15.2222 18.5557H20.7778V17.4443H15.2222V18.5557ZM16.0034 8.9873C15.8707 8.98848 15.7396 9.01695 15.6177 9.06934C15.4957 9.12174 15.3847 9.19748 15.2925 9.29297L11.9995 12.5859L8.70654 9.29297C8.51904 9.10565 8.26456 9 7.99951 9C7.73453 9.00013 7.47989 9.10561 7.29248 9.29297C7.10516 9.48047 7.00049 9.73495 7.00049 10C7.00049 10.265 7.10516 10.5195 7.29248 10.707L11.1157 14.5303C11.2318 14.6464 11.3703 14.7379 11.522 14.8008C11.6734 14.8635 11.8356 14.8964 11.9995 14.8965C12.1636 14.8965 12.3264 14.8636 12.478 14.8008C12.6297 14.7379 12.7682 14.6464 12.8843 14.5303L16.7065 10.707C16.802 10.6149 16.8787 10.5047 16.9312 10.3828C16.9836 10.2608 17.0111 10.1289 17.0122 9.99609C17.0133 9.86355 16.9881 9.73207 16.938 9.60938C16.8877 9.48649 16.8131 9.37416 16.7192 9.28027C16.6255 9.18657 16.5138 9.11273 16.3911 9.0625C16.2682 9.01223 16.1362 8.98615 16.0034 8.9873Z",
|
|
2511
2814
|
fill: "currentColor"
|
|
2512
2815
|
}
|
|
2513
2816
|
) });
|
|
2514
|
-
var ModeratorIcon = () => /* @__PURE__ */
|
|
2817
|
+
var ModeratorIcon = () => /* @__PURE__ */ jsx16("svg", { width: "16", height: "16", viewBox: "0 0 20 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx16(
|
|
2515
2818
|
"path",
|
|
2516
2819
|
{
|
|
2517
2820
|
fillRule: "evenodd",
|
|
@@ -2522,7 +2825,7 @@ var ModeratorIcon = () => /* @__PURE__ */ jsx15("svg", { width: "16", height: "1
|
|
|
2522
2825
|
) });
|
|
2523
2826
|
|
|
2524
2827
|
// src/components/ChatMessageItem/ChatMessageItem.tsx
|
|
2525
|
-
import { jsx as
|
|
2828
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2526
2829
|
var DEFAULT_MOD_ACTION_LABELS = {
|
|
2527
2830
|
delete: "Delete Message",
|
|
2528
2831
|
copy: "Copy to clipboard",
|
|
@@ -2547,7 +2850,7 @@ function ModActionButton({
|
|
|
2547
2850
|
onClick,
|
|
2548
2851
|
children
|
|
2549
2852
|
}) {
|
|
2550
|
-
return /* @__PURE__ */
|
|
2853
|
+
return /* @__PURE__ */ jsx17(Tooltip3, { title, placement, children: /* @__PURE__ */ jsx17(
|
|
2551
2854
|
"span",
|
|
2552
2855
|
{
|
|
2553
2856
|
className: classNames7("ls-chat-message__modbtn", { "ls-chat-message__modbtn--danger": danger }),
|
|
@@ -2590,11 +2893,11 @@ function ChatMessageItem({
|
|
|
2590
2893
|
onMouseEnter,
|
|
2591
2894
|
onMouseLeave
|
|
2592
2895
|
}) {
|
|
2593
|
-
const [hovered, setHovered] =
|
|
2594
|
-
const [menuPosition, setMenuPosition] =
|
|
2595
|
-
const [menuAnchorEl, setMenuAnchorEl] =
|
|
2896
|
+
const [hovered, setHovered] = useState6(false);
|
|
2897
|
+
const [menuPosition, setMenuPosition] = useState6(null);
|
|
2898
|
+
const [menuAnchorEl, setMenuAnchorEl] = useState6(null);
|
|
2596
2899
|
const name = displayname || username;
|
|
2597
|
-
const siteIcon = platformIcon ?? (platform ? /* @__PURE__ */
|
|
2900
|
+
const siteIcon = platformIcon ?? (platform ? /* @__PURE__ */ jsx17(PlatformIcon, { platform }) : null);
|
|
2598
2901
|
const has = (action) => Boolean(modActions?.includes(action));
|
|
2599
2902
|
const label = (action) => modActionLabels?.[action] ?? DEFAULT_MOD_ACTION_LABELS[action];
|
|
2600
2903
|
const vipAction = isVip ? "remove-vip" : "add-vip";
|
|
@@ -2621,7 +2924,7 @@ function ChatMessageItem({
|
|
|
2621
2924
|
setMenuPosition((prev) => prev === null ? { top: event.clientY - 4, left: event.clientX - 2 } : null);
|
|
2622
2925
|
}
|
|
2623
2926
|
};
|
|
2624
|
-
const menuItem = (action, icon) => has(action) ? /* @__PURE__ */
|
|
2927
|
+
const menuItem = (action, icon) => has(action) ? /* @__PURE__ */ jsxs8(
|
|
2625
2928
|
MenuItem2,
|
|
2626
2929
|
{
|
|
2627
2930
|
onClick: () => {
|
|
@@ -2629,31 +2932,31 @@ function ChatMessageItem({
|
|
|
2629
2932
|
closeMenu();
|
|
2630
2933
|
},
|
|
2631
2934
|
children: [
|
|
2632
|
-
/* @__PURE__ */
|
|
2633
|
-
/* @__PURE__ */
|
|
2935
|
+
/* @__PURE__ */ jsx17(ListItemIcon, { children: /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__menu-icon", children: icon }) }),
|
|
2936
|
+
/* @__PURE__ */ jsx17(ListItemText, { children: label(action) })
|
|
2634
2937
|
]
|
|
2635
2938
|
},
|
|
2636
2939
|
action
|
|
2637
2940
|
) : null;
|
|
2638
|
-
const builtInActions = hasVisibleModActions && hovered && !actions ? /* @__PURE__ */
|
|
2639
|
-
has("delete") && /* @__PURE__ */
|
|
2640
|
-
has("pin") && /* @__PURE__ */
|
|
2941
|
+
const builtInActions = hasVisibleModActions && hovered && !actions ? /* @__PURE__ */ jsxs8("span", { className: "ls-chat-message__modbar", children: [
|
|
2942
|
+
has("delete") && /* @__PURE__ */ jsx17(ModActionButton, { title: label("delete"), placement: modActionsTooltipPlacement, danger: true, onClick: () => fire("delete"), children: /* @__PURE__ */ jsx17(DeleteIcon, {}) }),
|
|
2943
|
+
has("pin") && /* @__PURE__ */ jsx17(
|
|
2641
2944
|
ModActionButton,
|
|
2642
2945
|
{
|
|
2643
2946
|
title: label(isPinned ? "unpin" : "pin"),
|
|
2644
2947
|
placement: modActionsTooltipPlacement,
|
|
2645
2948
|
onClick: () => fire(isPinned ? "unpin" : "pin"),
|
|
2646
|
-
children: isPinned ? /* @__PURE__ */
|
|
2949
|
+
children: isPinned ? /* @__PURE__ */ jsx17(PinOffIcon, {}) : /* @__PURE__ */ jsx17(PinOnIcon, {})
|
|
2647
2950
|
}
|
|
2648
2951
|
),
|
|
2649
|
-
has("copy") && /* @__PURE__ */
|
|
2650
|
-
has("translate") && /* @__PURE__ */
|
|
2651
|
-
has("ban") && !isSelf && /* @__PURE__ */
|
|
2652
|
-
has("timeout") && /* @__PURE__ */
|
|
2653
|
-
hasOverflowMenuItems && /* @__PURE__ */
|
|
2952
|
+
has("copy") && /* @__PURE__ */ jsx17(ModActionButton, { title: label("copy"), placement: modActionsTooltipPlacement, onClick: () => fire("copy"), children: /* @__PURE__ */ jsx17(CopyIcon, {}) }),
|
|
2953
|
+
has("translate") && /* @__PURE__ */ jsx17(ModActionButton, { title: label("translate"), placement: modActionsTooltipPlacement, onClick: () => fire("translate"), children: /* @__PURE__ */ jsx17(TranslateIcon, {}) }),
|
|
2954
|
+
has("ban") && !isSelf && /* @__PURE__ */ jsx17(ModActionButton, { title: label("ban"), placement: modActionsTooltipPlacement, onClick: () => fire("ban"), children: /* @__PURE__ */ jsx17(BanUserIcon, {}) }),
|
|
2955
|
+
has("timeout") && /* @__PURE__ */ jsx17(ModActionButton, { title: label("timeout"), placement: modActionsTooltipPlacement, onClick: () => fire("timeout"), children: /* @__PURE__ */ jsx17(TimeoutUserIcon, {}) }),
|
|
2956
|
+
hasOverflowMenuItems && /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__modbtn", onClick: handleMenuOpen, children: /* @__PURE__ */ jsx17(MenuDotsIcon, {}) })
|
|
2654
2957
|
] }) : null;
|
|
2655
2958
|
const actionsNode = actions ?? builtInActions;
|
|
2656
|
-
return /* @__PURE__ */
|
|
2959
|
+
return /* @__PURE__ */ jsxs8(
|
|
2657
2960
|
"div",
|
|
2658
2961
|
{
|
|
2659
2962
|
className: classNames7("ls-chat-message", className),
|
|
@@ -2672,13 +2975,13 @@ function ChatMessageItem({
|
|
|
2672
2975
|
onMouseLeave?.();
|
|
2673
2976
|
},
|
|
2674
2977
|
children: [
|
|
2675
|
-
reply ? /* @__PURE__ */
|
|
2676
|
-
showAvatar && avatarPrefix ? /* @__PURE__ */
|
|
2677
|
-
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */
|
|
2678
|
-
siteIcon ? /* @__PURE__ */
|
|
2679
|
-
showTimestamp && timestamp ? /* @__PURE__ */
|
|
2680
|
-
showBadges && badges ? /* @__PURE__ */
|
|
2681
|
-
onUsernameClick ? /* @__PURE__ */
|
|
2978
|
+
reply ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__reply", children: reply }) : null,
|
|
2979
|
+
showAvatar && avatarPrefix ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__avatar-prefix", children: avatarPrefix }) : null,
|
|
2980
|
+
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */ jsx17("img", { className: "ls-chat-message__avatar", src: avatar || fallbackAvatar, alt: "" }) : null,
|
|
2981
|
+
siteIcon ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__site", children: siteIcon }) : null,
|
|
2982
|
+
showTimestamp && timestamp ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__time", children: timestamp }) : null,
|
|
2983
|
+
showBadges && badges ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__badges", children: badges }) : null,
|
|
2984
|
+
onUsernameClick ? /* @__PURE__ */ jsxs8(
|
|
2682
2985
|
"button",
|
|
2683
2986
|
{
|
|
2684
2987
|
type: "button",
|
|
@@ -2693,14 +2996,14 @@ function ChatMessageItem({
|
|
|
2693
2996
|
":"
|
|
2694
2997
|
]
|
|
2695
2998
|
}
|
|
2696
|
-
) : /* @__PURE__ */
|
|
2999
|
+
) : /* @__PURE__ */ jsxs8("span", { className: "ls-chat-message__username", style: color ? { color } : void 0, children: [
|
|
2697
3000
|
name,
|
|
2698
3001
|
":"
|
|
2699
3002
|
] }),
|
|
2700
3003
|
" ",
|
|
2701
|
-
/* @__PURE__ */
|
|
2702
|
-
actionsNode ? /* @__PURE__ */
|
|
2703
|
-
onModAction && hasOverflowMenuItems ? /* @__PURE__ */
|
|
3004
|
+
/* @__PURE__ */ jsx17("span", { className: "ls-chat-message__text", children: message }),
|
|
3005
|
+
actionsNode ? /* @__PURE__ */ jsx17("span", { className: "ls-chat-message__actions", children: actionsNode }) : null,
|
|
3006
|
+
onModAction && hasOverflowMenuItems ? /* @__PURE__ */ jsxs8(
|
|
2704
3007
|
Menu,
|
|
2705
3008
|
{
|
|
2706
3009
|
open: modMenuAnchor === "element" ? menuAnchorEl !== null : menuPosition !== null,
|
|
@@ -2711,10 +3014,10 @@ function ChatMessageItem({
|
|
|
2711
3014
|
anchorOrigin: modMenuAnchor === "element" ? { vertical: "bottom", horizontal: "right" } : void 0,
|
|
2712
3015
|
transformOrigin: modMenuAnchor === "element" ? { vertical: "top", horizontal: "right" } : void 0,
|
|
2713
3016
|
children: [
|
|
2714
|
-
menuItem("shoutout", /* @__PURE__ */
|
|
2715
|
-
menuItem(vipAction, isVip ? /* @__PURE__ */
|
|
2716
|
-
menuItem(moderatorAction, /* @__PURE__ */
|
|
2717
|
-
menuItem("unban", /* @__PURE__ */
|
|
3017
|
+
menuItem("shoutout", /* @__PURE__ */ jsx17(ShoutoutIcon, {})),
|
|
3018
|
+
menuItem(vipAction, isVip ? /* @__PURE__ */ jsx17(RemoveVipIcon, {}) : /* @__PURE__ */ jsx17(VipIcon, {})),
|
|
3019
|
+
menuItem(moderatorAction, /* @__PURE__ */ jsx17(ModeratorIcon, {})),
|
|
3020
|
+
menuItem("unban", /* @__PURE__ */ jsx17(BanUserIcon, {}))
|
|
2718
3021
|
]
|
|
2719
3022
|
}
|
|
2720
3023
|
) : null
|
|
@@ -2725,16 +3028,16 @@ function ChatMessageItem({
|
|
|
2725
3028
|
ChatMessageItem.displayName = "ChatMessageItem";
|
|
2726
3029
|
|
|
2727
3030
|
// src/components/ChatboxPanel/ChatboxPanel.tsx
|
|
2728
|
-
import { useEffect as
|
|
3031
|
+
import { useEffect as useEffect6, useRef as useRef6, useState as useState8 } from "react";
|
|
2729
3032
|
import MenuItem3 from "@mui/material/MenuItem";
|
|
2730
3033
|
import classNames8 from "classnames";
|
|
2731
3034
|
|
|
2732
3035
|
// src/components/ChatboxPanel/useAutoScroll.ts
|
|
2733
|
-
import { useCallback as useCallback3, useRef as
|
|
3036
|
+
import { useCallback as useCallback3, useRef as useRef5, useState as useState7 } from "react";
|
|
2734
3037
|
var useAutoScroll = (threshold = 24, options) => {
|
|
2735
|
-
const containerRef =
|
|
2736
|
-
const shouldAutoScrollRef =
|
|
2737
|
-
const [isAtBottom, setIsAtBottom] =
|
|
3038
|
+
const containerRef = useRef5(null);
|
|
3039
|
+
const shouldAutoScrollRef = useRef5(true);
|
|
3040
|
+
const [isAtBottom, setIsAtBottom] = useState7(true);
|
|
2738
3041
|
const reverse = options?.reverse ?? false;
|
|
2739
3042
|
const isNearBottom = useCallback3(() => {
|
|
2740
3043
|
if (!containerRef.current) return true;
|
|
@@ -2770,7 +3073,7 @@ var useAutoScroll = (threshold = 24, options) => {
|
|
|
2770
3073
|
};
|
|
2771
3074
|
|
|
2772
3075
|
// src/components/ChatboxPanel/ChatboxPanel.tsx
|
|
2773
|
-
import { jsx as
|
|
3076
|
+
import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2774
3077
|
function ChatboxPanel({
|
|
2775
3078
|
children,
|
|
2776
3079
|
messageCount,
|
|
@@ -2802,24 +3105,24 @@ function ChatboxPanel({
|
|
|
2802
3105
|
className
|
|
2803
3106
|
}) {
|
|
2804
3107
|
const { containerRef, isAtBottom, onScroll, scrollToBottom } = useAutoScroll(24, { reverse });
|
|
2805
|
-
const [unreadCount, setUnreadCount] =
|
|
2806
|
-
const [internalValue, setInternalValue] =
|
|
2807
|
-
const prevCountRef =
|
|
2808
|
-
const prevLastKeyRef =
|
|
2809
|
-
const hasInitializedRef =
|
|
3108
|
+
const [unreadCount, setUnreadCount] = useState8(0);
|
|
3109
|
+
const [internalValue, setInternalValue] = useState8("");
|
|
3110
|
+
const prevCountRef = useRef6(0);
|
|
3111
|
+
const prevLastKeyRef = useRef6(null);
|
|
3112
|
+
const hasInitializedRef = useRef6(false);
|
|
2810
3113
|
const lineHeight = Math.round(fontSize * 1.35);
|
|
2811
3114
|
const isControlled = sendValue !== void 0 || onSendValueChange !== void 0;
|
|
2812
3115
|
const inputValue = (isControlled ? sendValue : internalValue) ?? "";
|
|
2813
|
-
|
|
3116
|
+
useEffect6(() => {
|
|
2814
3117
|
scrollToBottom(true);
|
|
2815
3118
|
}, [scrollToBottom]);
|
|
2816
|
-
|
|
3119
|
+
useEffect6(() => {
|
|
2817
3120
|
scrollToBottom();
|
|
2818
3121
|
}, [messageCount, lastMessageKey, scrollToBottom]);
|
|
2819
|
-
|
|
3122
|
+
useEffect6(() => {
|
|
2820
3123
|
scrollToBottom(true);
|
|
2821
3124
|
}, [reverse, scrollToBottom]);
|
|
2822
|
-
|
|
3125
|
+
useEffect6(() => {
|
|
2823
3126
|
const prevCount = prevCountRef.current;
|
|
2824
3127
|
const prevLastKey = prevLastKeyRef.current;
|
|
2825
3128
|
const nextLastKey = lastMessageKey === void 0 || lastMessageKey === null ? null : String(lastMessageKey);
|
|
@@ -2843,7 +3146,7 @@ function ChatboxPanel({
|
|
|
2843
3146
|
setUnreadCount((count) => count + delta);
|
|
2844
3147
|
}
|
|
2845
3148
|
}, [messageCount, lastMessageKey, isAtBottom]);
|
|
2846
|
-
|
|
3149
|
+
useEffect6(() => {
|
|
2847
3150
|
if (isAtBottom && unreadCount !== 0) {
|
|
2848
3151
|
setUnreadCount(0);
|
|
2849
3152
|
}
|
|
@@ -2863,9 +3166,9 @@ function ChatboxPanel({
|
|
|
2863
3166
|
setInternalValue("");
|
|
2864
3167
|
}
|
|
2865
3168
|
};
|
|
2866
|
-
return /* @__PURE__ */
|
|
2867
|
-
/* @__PURE__ */
|
|
2868
|
-
/* @__PURE__ */
|
|
3169
|
+
return /* @__PURE__ */ jsxs9("div", { className: classNames8("ls-chatbox", className), id, children: [
|
|
3170
|
+
/* @__PURE__ */ jsxs9("div", { className: "ls-chatbox__viewport", children: [
|
|
3171
|
+
/* @__PURE__ */ jsx18(
|
|
2869
3172
|
"div",
|
|
2870
3173
|
{
|
|
2871
3174
|
className: "ls-chatbox__list",
|
|
@@ -2880,7 +3183,7 @@ function ChatboxPanel({
|
|
|
2880
3183
|
children
|
|
2881
3184
|
}
|
|
2882
3185
|
),
|
|
2883
|
-
!isAtBottom && /* @__PURE__ */
|
|
3186
|
+
!isAtBottom && /* @__PURE__ */ jsxs9(
|
|
2884
3187
|
"button",
|
|
2885
3188
|
{
|
|
2886
3189
|
type: "button",
|
|
@@ -2890,7 +3193,7 @@ function ChatboxPanel({
|
|
|
2890
3193
|
setUnreadCount(0);
|
|
2891
3194
|
},
|
|
2892
3195
|
children: [
|
|
2893
|
-
/* @__PURE__ */
|
|
3196
|
+
/* @__PURE__ */ jsxs9(
|
|
2894
3197
|
"svg",
|
|
2895
3198
|
{
|
|
2896
3199
|
className: classNames8("ls-chatbox__jump-arrow", { "ls-chatbox__jump-arrow--up": reverse }),
|
|
@@ -2903,19 +3206,19 @@ function ChatboxPanel({
|
|
|
2903
3206
|
strokeLinecap: "round",
|
|
2904
3207
|
strokeLinejoin: "round",
|
|
2905
3208
|
children: [
|
|
2906
|
-
/* @__PURE__ */
|
|
2907
|
-
/* @__PURE__ */
|
|
3209
|
+
/* @__PURE__ */ jsx18("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
3210
|
+
/* @__PURE__ */ jsx18("polyline", { points: "19 12 12 19 5 12" })
|
|
2908
3211
|
]
|
|
2909
3212
|
}
|
|
2910
3213
|
),
|
|
2911
3214
|
jumpToLatestLabel,
|
|
2912
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
3215
|
+
unreadCount > 0 && /* @__PURE__ */ jsx18("span", { className: "ls-chatbox__jump-badge", children: unreadCount > 99 ? "99+" : unreadCount })
|
|
2913
3216
|
]
|
|
2914
3217
|
}
|
|
2915
3218
|
)
|
|
2916
3219
|
] }),
|
|
2917
|
-
showSendBar && onSend ? /* @__PURE__ */
|
|
2918
|
-
/* @__PURE__ */
|
|
3220
|
+
showSendBar && onSend ? /* @__PURE__ */ jsxs9("div", { className: "ls-chatbox__sendbar", children: [
|
|
3221
|
+
/* @__PURE__ */ jsx18(
|
|
2919
3222
|
LSInput,
|
|
2920
3223
|
{
|
|
2921
3224
|
className: "ls-chatbox__input",
|
|
@@ -2928,7 +3231,7 @@ function ChatboxPanel({
|
|
|
2928
3231
|
}
|
|
2929
3232
|
}
|
|
2930
3233
|
),
|
|
2931
|
-
hasPlatformSelect ? /* @__PURE__ */
|
|
3234
|
+
hasPlatformSelect ? /* @__PURE__ */ jsxs9(
|
|
2932
3235
|
LSSelect,
|
|
2933
3236
|
{
|
|
2934
3237
|
className: "ls-chatbox__platform",
|
|
@@ -2937,15 +3240,15 @@ function ChatboxPanel({
|
|
|
2937
3240
|
displayEmpty: true,
|
|
2938
3241
|
onChange: (e) => onPlatformChange?.(String(e.target.value)),
|
|
2939
3242
|
children: [
|
|
2940
|
-
allPlatformsLabel != null && /* @__PURE__ */
|
|
2941
|
-
platforms?.map((option) => /* @__PURE__ */
|
|
2942
|
-
/* @__PURE__ */
|
|
3243
|
+
allPlatformsLabel != null && /* @__PURE__ */ jsx18(MenuItem3, { value: "", children: allPlatformsLabel }),
|
|
3244
|
+
platforms?.map((option) => /* @__PURE__ */ jsx18(MenuItem3, { value: option.value, children: /* @__PURE__ */ jsxs9("span", { className: "ls-chatbox__platform-option", children: [
|
|
3245
|
+
/* @__PURE__ */ jsx18(PlatformIcon, { platform: option.value, fallback: false }),
|
|
2943
3246
|
option.label
|
|
2944
3247
|
] }) }, option.value))
|
|
2945
3248
|
]
|
|
2946
3249
|
}
|
|
2947
3250
|
) : null,
|
|
2948
|
-
onChatAsChange ? /* @__PURE__ */
|
|
3251
|
+
onChatAsChange ? /* @__PURE__ */ jsxs9(
|
|
2949
3252
|
LSSelect,
|
|
2950
3253
|
{
|
|
2951
3254
|
className: "ls-chatbox__chatas",
|
|
@@ -2953,12 +3256,12 @@ function ChatboxPanel({
|
|
|
2953
3256
|
value: chatAs ?? "self",
|
|
2954
3257
|
onChange: (e) => onChatAsChange(e.target.value === "bot" ? "bot" : "self"),
|
|
2955
3258
|
children: [
|
|
2956
|
-
/* @__PURE__ */
|
|
2957
|
-
/* @__PURE__ */
|
|
3259
|
+
/* @__PURE__ */ jsx18(MenuItem3, { value: "self", children: chatAsSelfLabel }),
|
|
3260
|
+
/* @__PURE__ */ jsx18(MenuItem3, { value: "bot", children: chatAsBotLabel })
|
|
2958
3261
|
]
|
|
2959
3262
|
}
|
|
2960
3263
|
) : null,
|
|
2961
|
-
/* @__PURE__ */
|
|
3264
|
+
/* @__PURE__ */ jsx18(
|
|
2962
3265
|
LSButton,
|
|
2963
3266
|
{
|
|
2964
3267
|
className: "ls-chatbox__send",
|
|
@@ -2977,7 +3280,7 @@ ChatboxPanel.displayName = "ChatboxPanel";
|
|
|
2977
3280
|
import Fade from "@mui/material/Fade";
|
|
2978
3281
|
import Modal from "@mui/material/Modal";
|
|
2979
3282
|
import classNames9 from "classnames";
|
|
2980
|
-
import { jsx as
|
|
3283
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2981
3284
|
var DIMENSIONS = {
|
|
2982
3285
|
small: { width: "30%", height: "30%" },
|
|
2983
3286
|
longS: { width: "50%", height: "30%" },
|
|
@@ -2988,15 +3291,15 @@ var DIMENSIONS = {
|
|
|
2988
3291
|
tall: { width: "40%", height: "70%" },
|
|
2989
3292
|
full: { width: "100%", height: "calc(100% - 1rem)" }
|
|
2990
3293
|
};
|
|
2991
|
-
var DefaultCloseIcon = () => /* @__PURE__ */
|
|
2992
|
-
/* @__PURE__ */
|
|
2993
|
-
/* @__PURE__ */
|
|
2994
|
-
/* @__PURE__ */
|
|
3294
|
+
var DefaultCloseIcon = () => /* @__PURE__ */ jsxs10("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", "aria-hidden": "true", children: [
|
|
3295
|
+
/* @__PURE__ */ jsx19("circle", { cx: "12", cy: "12", r: "10" }),
|
|
3296
|
+
/* @__PURE__ */ jsx19("line", { x1: "9", y1: "9", x2: "15", y2: "15", strokeLinecap: "round" }),
|
|
3297
|
+
/* @__PURE__ */ jsx19("line", { x1: "15", y1: "9", x2: "9", y2: "15", strokeLinecap: "round" })
|
|
2995
3298
|
] });
|
|
2996
3299
|
var DialogChrome = ({ children, overlayProps, closeIcon, ...props }) => {
|
|
2997
3300
|
const modalBackground = overlayProps?.background ? overlayProps.background : !overlayProps?.noBackground ? "var(--gradientBg, var(--background, #151230))" : void 0;
|
|
2998
3301
|
const dimensions = overlayProps?.size && DIMENSIONS[overlayProps.size] || { width: "90%", height: "90%" };
|
|
2999
|
-
return /* @__PURE__ */
|
|
3302
|
+
return /* @__PURE__ */ jsx19(
|
|
3000
3303
|
Modal,
|
|
3001
3304
|
{
|
|
3002
3305
|
disableEnforceFocus: true,
|
|
@@ -3007,7 +3310,7 @@ var DialogChrome = ({ children, overlayProps, closeIcon, ...props }) => {
|
|
|
3007
3310
|
},
|
|
3008
3311
|
className: "ls-dialog",
|
|
3009
3312
|
style: { ...props.style, zIndex: `${props.zIndex ? props.zIndex : "2500"} !important` },
|
|
3010
|
-
children: /* @__PURE__ */
|
|
3313
|
+
children: /* @__PURE__ */ jsx19(Fade, { in: props.open, children: /* @__PURE__ */ jsxs10(
|
|
3011
3314
|
"div",
|
|
3012
3315
|
{
|
|
3013
3316
|
className: classNames9("ls-dialog__card", {
|
|
@@ -3022,22 +3325,22 @@ var DialogChrome = ({ children, overlayProps, closeIcon, ...props }) => {
|
|
|
3022
3325
|
},
|
|
3023
3326
|
title: "",
|
|
3024
3327
|
children: [
|
|
3025
|
-
!props.$hideTop && /* @__PURE__ */
|
|
3328
|
+
!props.$hideTop && /* @__PURE__ */ jsxs10(
|
|
3026
3329
|
"div",
|
|
3027
3330
|
{
|
|
3028
3331
|
className: classNames9("ls-dialog__top", { "ls-dialog__top--full": overlayProps?.size === "full" }),
|
|
3029
3332
|
style: { padding: props.$noPadTitle ? "0" : "1rem" },
|
|
3030
3333
|
children: [
|
|
3031
|
-
/* @__PURE__ */
|
|
3032
|
-
/* @__PURE__ */
|
|
3033
|
-
props.hideClose ? /* @__PURE__ */
|
|
3034
|
-
/* @__PURE__ */
|
|
3035
|
-
closeIcon ?? /* @__PURE__ */
|
|
3334
|
+
/* @__PURE__ */ jsx19("div", { className: "ls-dialog__top-side", children: props.$leftText }),
|
|
3335
|
+
/* @__PURE__ */ jsx19("div", { className: "ls-dialog__title", role: "heading", children: props.title }),
|
|
3336
|
+
props.hideClose ? /* @__PURE__ */ jsx19("div", { className: "ls-dialog__top-side" }) : /* @__PURE__ */ jsx19("div", { className: "ls-dialog__close", children: /* @__PURE__ */ jsxs10("span", { onClick: props.close, className: "ls-dialog__close-btn", children: [
|
|
3337
|
+
/* @__PURE__ */ jsx19("div", { className: "ls-dialog__close-label", children: props.closeLabel }),
|
|
3338
|
+
closeIcon ?? /* @__PURE__ */ jsx19(DefaultCloseIcon, {})
|
|
3036
3339
|
] }) })
|
|
3037
3340
|
]
|
|
3038
3341
|
}
|
|
3039
3342
|
),
|
|
3040
|
-
/* @__PURE__ */
|
|
3343
|
+
/* @__PURE__ */ jsx19(
|
|
3041
3344
|
"div",
|
|
3042
3345
|
{
|
|
3043
3346
|
className: classNames9("ls-dialog__body", props.containerClass),
|
|
@@ -3045,9 +3348,9 @@ var DialogChrome = ({ children, overlayProps, closeIcon, ...props }) => {
|
|
|
3045
3348
|
children
|
|
3046
3349
|
}
|
|
3047
3350
|
),
|
|
3048
|
-
!props.$hideBottom && /* @__PURE__ */
|
|
3049
|
-
/* @__PURE__ */
|
|
3050
|
-
props.showTest && /* @__PURE__ */
|
|
3351
|
+
!props.$hideBottom && /* @__PURE__ */ jsxs10("div", { className: "ls-dialog__bottom", children: [
|
|
3352
|
+
/* @__PURE__ */ jsx19(LSButton, { style: props.buttonStyle && props.buttonStyle, color: props.color, label: props.saveLabel, onClick: props.save, disabled: props.saveDisabled }),
|
|
3353
|
+
props.showTest && /* @__PURE__ */ jsx19(LSButton, { color: "secondary", label: props.testLabel, onClick: props.test, disabled: props.testDisabled })
|
|
3051
3354
|
] })
|
|
3052
3355
|
]
|
|
3053
3356
|
}
|
|
@@ -3062,7 +3365,7 @@ import classNames11 from "classnames";
|
|
|
3062
3365
|
|
|
3063
3366
|
// src/components/ModalChrome/PanelChrome.tsx
|
|
3064
3367
|
import classNames10 from "classnames";
|
|
3065
|
-
import { Fragment as
|
|
3368
|
+
import { Fragment as Fragment6, jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3066
3369
|
function PanelChrome({
|
|
3067
3370
|
title,
|
|
3068
3371
|
titleVariant = "heading",
|
|
@@ -3079,20 +3382,20 @@ function PanelChrome({
|
|
|
3079
3382
|
}) {
|
|
3080
3383
|
const hasHeader = Boolean(title || headerActions || onClose && showClose);
|
|
3081
3384
|
const mergedStyle = padding ? { ...style, ["--ls-panel-padding"]: padding } : style;
|
|
3082
|
-
const panel = /* @__PURE__ */
|
|
3083
|
-
hasHeader ? /* @__PURE__ */
|
|
3084
|
-
title ? /* @__PURE__ */
|
|
3085
|
-
/* @__PURE__ */
|
|
3385
|
+
const panel = /* @__PURE__ */ jsxs11("div", { className: classNames10("ls-panel", { "ls-panel--no-header": !hasHeader }, className), style: mergedStyle, children: [
|
|
3386
|
+
hasHeader ? /* @__PURE__ */ jsxs11("div", { className: "ls-panel__header", children: [
|
|
3387
|
+
title ? /* @__PURE__ */ jsx20("span", { className: classNames10("ls-panel__title", { "ls-panel__title--label": titleVariant === "label" }), children: title }) : /* @__PURE__ */ jsx20("span", {}),
|
|
3388
|
+
/* @__PURE__ */ jsxs11("span", { className: "ls-panel__header-actions", children: [
|
|
3086
3389
|
headerActions,
|
|
3087
|
-
onClose && showClose ? /* @__PURE__ */
|
|
3390
|
+
onClose && showClose ? /* @__PURE__ */ jsx20("button", { type: "button", className: "ls-panel__close", onClick: onClose, "aria-label": "Close", children: "\u2715" }) : null
|
|
3088
3391
|
] })
|
|
3089
3392
|
] }) : null,
|
|
3090
|
-
/* @__PURE__ */
|
|
3091
|
-
footer ? /* @__PURE__ */
|
|
3393
|
+
/* @__PURE__ */ jsx20("div", { className: classNames10("ls-panel__body", bodyClassName), children }),
|
|
3394
|
+
footer ? /* @__PURE__ */ jsx20("div", { className: "ls-panel__footer", children: footer }) : null
|
|
3092
3395
|
] });
|
|
3093
3396
|
if (onClickAway) {
|
|
3094
|
-
return /* @__PURE__ */
|
|
3095
|
-
/* @__PURE__ */
|
|
3397
|
+
return /* @__PURE__ */ jsxs11(Fragment6, { children: [
|
|
3398
|
+
/* @__PURE__ */ jsx20("div", { className: "ls-panel__clickaway", onClick: onClickAway }),
|
|
3096
3399
|
panel
|
|
3097
3400
|
] });
|
|
3098
3401
|
}
|
|
@@ -3101,7 +3404,7 @@ function PanelChrome({
|
|
|
3101
3404
|
PanelChrome.displayName = "PanelChrome";
|
|
3102
3405
|
|
|
3103
3406
|
// src/components/ModalChrome/ModalChrome.tsx
|
|
3104
|
-
import { jsx as
|
|
3407
|
+
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3105
3408
|
function ModalChrome({
|
|
3106
3409
|
open = true,
|
|
3107
3410
|
onClose,
|
|
@@ -3126,9 +3429,9 @@ function ModalChrome({
|
|
|
3126
3429
|
return null;
|
|
3127
3430
|
}
|
|
3128
3431
|
const mergedCardStyle = maxWidth ? { ...cardStyle, ["--ls-modal-max-width"]: maxWidth } : cardStyle;
|
|
3129
|
-
return /* @__PURE__ */
|
|
3130
|
-
/* @__PURE__ */
|
|
3131
|
-
/* @__PURE__ */
|
|
3432
|
+
return /* @__PURE__ */ jsxs12("div", { className: classNames11("ls-modal", { "ls-modal--absolute": position === "absolute" }, className), role: "dialog", "aria-modal": "true", children: [
|
|
3433
|
+
/* @__PURE__ */ jsx21("div", { className: classNames11("ls-modal__backdrop", backdropClassName), onClick: onClose }),
|
|
3434
|
+
/* @__PURE__ */ jsx21(
|
|
3132
3435
|
PanelChrome,
|
|
3133
3436
|
{
|
|
3134
3437
|
className: classNames11(
|
|
@@ -3154,20 +3457,20 @@ ModalChrome.displayName = "ModalChrome";
|
|
|
3154
3457
|
|
|
3155
3458
|
// src/components/WidgetChrome/WidgetChrome.tsx
|
|
3156
3459
|
import classNames12 from "classnames";
|
|
3157
|
-
import { jsx as
|
|
3460
|
+
import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3158
3461
|
function WidgetChromeButton({ active, buttonRef, className, children, ...rest }) {
|
|
3159
|
-
return /* @__PURE__ */
|
|
3462
|
+
return /* @__PURE__ */ jsx22("button", { ref: buttonRef, type: "button", className: classNames12("ls-widget__btn", { "ls-widget__btn--active": active }, className), ...rest, children });
|
|
3160
3463
|
}
|
|
3161
3464
|
WidgetChromeButton.displayName = "WidgetChromeButton";
|
|
3162
3465
|
function WidgetChrome({ title, leftActions, rightActions, headerExtra, showHeader = true, className, headerClassName, bodyClassName, style, id, children }) {
|
|
3163
|
-
return /* @__PURE__ */
|
|
3164
|
-
showHeader ? /* @__PURE__ */
|
|
3165
|
-
/* @__PURE__ */
|
|
3166
|
-
/* @__PURE__ */
|
|
3167
|
-
/* @__PURE__ */
|
|
3466
|
+
return /* @__PURE__ */ jsxs13("div", { className: classNames12("ls-widget", className), style, id, children: [
|
|
3467
|
+
showHeader ? /* @__PURE__ */ jsxs13("div", { className: classNames12("ls-widget__header", headerClassName), children: [
|
|
3468
|
+
/* @__PURE__ */ jsx22("div", { className: "ls-widget__side", children: leftActions }),
|
|
3469
|
+
/* @__PURE__ */ jsx22("div", { className: "ls-widget__title", children: /* @__PURE__ */ jsx22("span", { children: title }) }),
|
|
3470
|
+
/* @__PURE__ */ jsx22("div", { className: "ls-widget__side ls-widget__side--right", children: rightActions }),
|
|
3168
3471
|
headerExtra
|
|
3169
3472
|
] }) : null,
|
|
3170
|
-
/* @__PURE__ */
|
|
3473
|
+
/* @__PURE__ */ jsx22("div", { className: classNames12("ls-widget__body", bodyClassName), children })
|
|
3171
3474
|
] });
|
|
3172
3475
|
}
|
|
3173
3476
|
WidgetChrome.displayName = "WidgetChrome";
|
|
@@ -3176,9 +3479,9 @@ WidgetChrome.displayName = "WidgetChrome";
|
|
|
3176
3479
|
import classNames13 from "classnames";
|
|
3177
3480
|
|
|
3178
3481
|
// src/components/EventList/EventTypeIcon.tsx
|
|
3179
|
-
import { jsx as
|
|
3482
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
3180
3483
|
var createEventIcon = (def) => {
|
|
3181
|
-
const Icon = (props) => /* @__PURE__ */
|
|
3484
|
+
const Icon = (props) => /* @__PURE__ */ jsx23("svg", { width: def.width, height: def.height, viewBox: def.viewBox, fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: def.paths.map((path, index) => /* @__PURE__ */ jsx23("path", { fill: "currentColor", ...path }, index)) });
|
|
3182
3485
|
return Icon;
|
|
3183
3486
|
};
|
|
3184
3487
|
var EVENT_TYPE_FALLBACK_ICON = createEventIcon({ width: "77", height: "77", viewBox: "0 0 77 77", paths: [{ d: "M32.0348 67.8488C32.2317 68.9076 33.1257 69.6727 34.166 69.6727H41.7175C42.9162 69.6727 43.8879 68.6655 43.8879 67.4232C43.8879 66.1808 42.9162 65.1736 41.7175 65.1736H35.9581L35.8144 64.4007H43.1152C44.2884 64.4007 45.2493 63.4344 45.2847 62.219C45.5196 54.1506 48.6247 48.8606 51.9394 43.5096C52.0669 43.3038 52.1949 43.0976 52.3233 42.8909C55.5088 37.7611 58.9 32.3001 58.9 24.5131C58.9 17.6282 56.2649 12.4215 52.2565 8.9757C48.3033 5.57735 43.149 4 38.1777 4C28.6499 4 18 11.1793 18 24.739C18 31.851 21.089 38.0439 24.0565 43.3454C24.5114 44.1581 24.9596 44.943 25.3964 45.7078C26.4256 47.5099 27.3909 49.2003 28.229 50.8789C29.4122 53.2488 30.2139 55.3578 30.4727 57.3163C30.6216 58.4425 31.5576 59.2766 32.6541 59.2603C33.7507 59.244 34.6633 58.3825 34.7809 57.2524C34.9706 55.4309 35.9174 53.2643 37.4928 50.7048C38.8347 48.5248 40.4985 46.2646 42.2571 43.8756C42.5436 43.4864 42.8327 43.0937 43.1233 42.6975C45.1598 39.9201 47.2572 36.9825 48.8406 34.0308C50.417 31.0923 51.6027 27.9286 51.6027 24.7014C51.6027 20.79 50.1716 17.467 47.6813 15.1412C45.2141 12.8368 41.8546 11.6443 38.1777 11.6443C30.9242 11.6443 25.2973 17.6891 25.2973 24.7014C25.2973 26.7539 25.6936 29.8348 26.7508 32.4851C27.7593 35.0129 29.7798 38.0597 33.4218 38.0597C35.1995 38.0597 36.6557 37.3883 37.738 36.2561C38.7611 35.1859 39.3371 33.826 39.6795 32.5814C40.3187 30.2583 40.3144 27.6507 40.3121 26.2771C40.312 26.1997 40.3118 26.1263 40.3118 26.057C40.3118 24.8147 39.3401 23.8075 38.1414 23.8075C36.9427 23.8075 35.971 24.8147 35.971 26.057L35.971 26.1579C35.9713 27.6034 35.9717 29.6519 35.5051 31.3476C35.2712 32.1976 34.969 32.7605 34.6545 33.0895C34.3992 33.3566 34.0583 33.5607 33.4218 33.5607C32.5619 33.5607 31.6054 32.8794 30.7623 30.766C29.968 28.7751 29.6382 26.3016 29.6382 24.7014C29.6382 20.1907 33.3053 16.1434 38.1777 16.1434C40.9631 16.1434 43.231 17.0409 44.7754 18.4834C46.2969 19.9044 47.2619 21.9851 47.2619 24.7014C47.2619 26.8215 46.469 29.1934 45.0468 31.8445C43.6316 34.4825 41.7105 37.1887 39.6673 39.9752C39.3877 40.3564 39.1055 40.7396 38.8222 41.1243C37.0726 43.5001 35.2818 45.9317 33.8333 48.2851C33.4508 48.9065 33.0824 49.5373 32.7382 50.1753C32.5285 49.7174 32.3096 49.2626 32.0842 48.8112C31.1862 47.0126 30.1213 45.1476 29.064 43.2961C28.6415 42.5561 28.2201 41.8183 27.8112 41.0877C24.861 35.817 22.3408 30.5434 22.3408 24.739C22.3408 14.1984 30.497 8.49902 38.1777 8.49902C42.3191 8.49902 46.4406 9.82125 49.4853 12.4386C52.4747 15.0085 54.5592 18.9335 54.5592 24.5131C54.5592 30.9585 51.7975 35.4143 48.5022 40.7311C48.4306 40.8466 48.3587 40.9625 48.2866 41.0789C45.1891 46.0794 41.8063 51.7178 41.0743 59.9017H33.1858C32.5382 59.9017 31.9245 60.2014 31.5122 60.7189C31.0998 61.2365 30.932 61.9178 31.0546 62.5769L32.0348 67.8488Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M41.1547 70.6428C41.1547 72.7023 39.6065 73.2035 37.6967 73.2035C35.7868 73.2035 34.2386 72.7023 34.2386 70.6428H41.1547Z" }, { d: "M45.3289 28.7231C45.4774 28.3343 45.2937 27.8944 44.9186 27.7405L42.3201 26.6745C41.945 26.5206 41.5206 26.7111 41.3721 27.0998C41.2237 27.4886 41.4074 27.9285 41.7825 28.0823L44.381 29.1484C44.7561 29.3022 45.1805 29.1118 45.3289 28.7231Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M31.4505 29.2716C31.6184 29.6518 32.0518 29.819 32.4186 29.6451L34.96 28.44C35.3268 28.2661 35.4881 27.8169 35.3203 27.4367C35.1525 27.0565 34.7191 26.8893 34.3522 27.0632L31.8109 28.2682C31.444 28.4422 31.2827 28.8914 31.4505 29.2716Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M35.3 24.9243C35.4287 24.528 35.223 24.0987 34.8407 23.9653L32.1921 23.0417C31.8098 22.9084 31.3955 23.1215 31.2669 23.5178C31.1382 23.9141 31.3439 24.3434 31.7262 24.4768L34.3748 25.4004C34.7571 25.5337 35.1714 25.3206 35.3 24.9243Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M36.7911 23.1649C37.1695 23.0199 37.3629 22.5845 37.223 22.1923L36.2535 19.474C36.1137 19.0818 35.6936 18.8814 35.3152 19.0263C34.9368 19.1713 34.7434 19.6067 34.8833 19.9989L35.8528 22.7173C35.9926 23.1094 36.4127 23.3098 36.7911 23.1649Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M39.5322 23.0163C39.911 23.1602 40.3305 22.9585 40.4693 22.5659L41.4314 19.8448C41.5702 19.4522 41.3757 19.0173 40.9969 18.8735C40.6181 18.7296 40.1986 18.9313 40.0598 19.3238L39.0977 22.045C38.9589 22.4376 39.1534 22.8724 39.5322 23.0163Z", fillRule: "evenodd", clipRule: "evenodd" }, { d: "M41.3214 24.7192C41.4951 25.0965 41.9311 25.2564 42.2952 25.0763L44.8173 23.8284C45.1813 23.6483 45.3356 23.1964 45.1618 22.8191C44.988 22.4418 44.552 22.2819 44.1879 22.4621L41.6659 23.7099C41.3018 23.89 41.1476 24.3419 41.3214 24.7192Z", fillRule: "evenodd", clipRule: "evenodd" }] });
|
|
@@ -3206,12 +3509,12 @@ var EVENT_TYPE_ICONS = {
|
|
|
3206
3509
|
};
|
|
3207
3510
|
function EventTypeIcon({ type, ...props }) {
|
|
3208
3511
|
const Icon = (type != null ? EVENT_TYPE_ICONS[String(type).trim().toLowerCase()] : void 0) ?? EVENT_TYPE_FALLBACK_ICON;
|
|
3209
|
-
return /* @__PURE__ */
|
|
3512
|
+
return /* @__PURE__ */ jsx23(Icon, { ...props });
|
|
3210
3513
|
}
|
|
3211
3514
|
EventTypeIcon.displayName = "EventTypeIcon";
|
|
3212
3515
|
|
|
3213
3516
|
// src/components/EventListItem/EventListItem.tsx
|
|
3214
|
-
import { jsx as
|
|
3517
|
+
import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3215
3518
|
function EventListItem({
|
|
3216
3519
|
username,
|
|
3217
3520
|
message,
|
|
@@ -3231,7 +3534,7 @@ function EventListItem({
|
|
|
3231
3534
|
onUsernameClick,
|
|
3232
3535
|
className
|
|
3233
3536
|
}) {
|
|
3234
|
-
const resolvedAlertIcon = alertIcon ?? (eventType !== void 0 ? /* @__PURE__ */
|
|
3537
|
+
const resolvedAlertIcon = alertIcon ?? (eventType !== void 0 ? /* @__PURE__ */ jsx24(EventTypeIcon, { type: eventType }) : null);
|
|
3235
3538
|
const style = {};
|
|
3236
3539
|
if (accentColor) {
|
|
3237
3540
|
style.borderLeftColor = accentColor;
|
|
@@ -3239,10 +3542,10 @@ function EventListItem({
|
|
|
3239
3542
|
if (colorFullBackground && accentColor) {
|
|
3240
3543
|
style.backgroundColor = `color-mix(in srgb, ${accentColor} 22%, var(--cardbackground, var(--neutralDark2, #211d3e)))`;
|
|
3241
3544
|
}
|
|
3242
|
-
return /* @__PURE__ */
|
|
3243
|
-
/* @__PURE__ */
|
|
3244
|
-
/* @__PURE__ */
|
|
3245
|
-
/* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsxs14("div", { className: classNames13("ls-eventlist-item", className), style, children: [
|
|
3546
|
+
/* @__PURE__ */ jsxs14("div", { className: "ls-eventlist-item__main", children: [
|
|
3547
|
+
/* @__PURE__ */ jsxs14("div", { className: "ls-eventlist-item__identity", children: [
|
|
3548
|
+
/* @__PURE__ */ jsx24(
|
|
3246
3549
|
"span",
|
|
3247
3550
|
{
|
|
3248
3551
|
className: classNames13("ls-eventlist-item__username", { "ls-eventlist-item__username--clickable": onUsernameClick }),
|
|
@@ -3258,9 +3561,9 @@ function EventListItem({
|
|
|
3258
3561
|
children: username
|
|
3259
3562
|
}
|
|
3260
3563
|
),
|
|
3261
|
-
platformIcon ? /* @__PURE__ */
|
|
3262
|
-
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */
|
|
3263
|
-
resolvedAlertIcon ? /* @__PURE__ */
|
|
3564
|
+
platformIcon ? /* @__PURE__ */ jsx24("span", { className: "ls-eventlist-item__icon", children: platformIcon }) : null,
|
|
3565
|
+
showAvatar && (avatar || fallbackAvatar) ? /* @__PURE__ */ jsx24("span", { className: "ls-eventlist-item__avatar", children: /* @__PURE__ */ jsx24("img", { src: avatar || fallbackAvatar, alt: "" }) }) : null,
|
|
3566
|
+
resolvedAlertIcon ? /* @__PURE__ */ jsx24(
|
|
3264
3567
|
"span",
|
|
3265
3568
|
{
|
|
3266
3569
|
className: "ls-eventlist-item__icon",
|
|
@@ -3269,25 +3572,25 @@ function EventListItem({
|
|
|
3269
3572
|
}
|
|
3270
3573
|
) : null
|
|
3271
3574
|
] }),
|
|
3272
|
-
/* @__PURE__ */
|
|
3273
|
-
message ? /* @__PURE__ */
|
|
3274
|
-
showMessage && userMessage ? /* @__PURE__ */
|
|
3575
|
+
/* @__PURE__ */ jsxs14("div", { className: "ls-eventlist-item__body", children: [
|
|
3576
|
+
message ? /* @__PURE__ */ jsx24("span", { className: "ls-eventlist-item__message", children: message }) : null,
|
|
3577
|
+
showMessage && userMessage ? /* @__PURE__ */ jsxs14("span", { className: "ls-eventlist-item__usermessage", children: [
|
|
3275
3578
|
"\u201C",
|
|
3276
3579
|
userMessage,
|
|
3277
3580
|
"\u201D"
|
|
3278
3581
|
] }) : null
|
|
3279
3582
|
] }),
|
|
3280
|
-
showTimestamp && timestamp ? /* @__PURE__ */
|
|
3583
|
+
showTimestamp && timestamp ? /* @__PURE__ */ jsx24("span", { className: "ls-eventlist-item__time", children: timestamp }) : null
|
|
3281
3584
|
] }),
|
|
3282
|
-
actions ? /* @__PURE__ */
|
|
3585
|
+
actions ? /* @__PURE__ */ jsx24("div", { className: "ls-eventlist-item__actions", children: actions }) : null
|
|
3283
3586
|
] });
|
|
3284
3587
|
}
|
|
3285
3588
|
EventListItem.displayName = "EventListItem";
|
|
3286
3589
|
|
|
3287
3590
|
// src/components/EventList/EventList.tsx
|
|
3288
|
-
import { useEffect as
|
|
3591
|
+
import { useEffect as useEffect7, useRef as useRef7 } from "react";
|
|
3289
3592
|
import classNames14 from "classnames";
|
|
3290
|
-
import { jsx as
|
|
3593
|
+
import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3291
3594
|
var PIN_THRESHOLD = 24;
|
|
3292
3595
|
function EventList({
|
|
3293
3596
|
items,
|
|
@@ -3309,9 +3612,9 @@ function EventList({
|
|
|
3309
3612
|
endReachedThreshold = 24,
|
|
3310
3613
|
className
|
|
3311
3614
|
}) {
|
|
3312
|
-
const listRef =
|
|
3313
|
-
const pinnedRef =
|
|
3314
|
-
|
|
3615
|
+
const listRef = useRef7(null);
|
|
3616
|
+
const pinnedRef = useRef7(true);
|
|
3617
|
+
useEffect7(() => {
|
|
3315
3618
|
const el = listRef.current;
|
|
3316
3619
|
if (!autoScroll || !el || !pinnedRef.current) {
|
|
3317
3620
|
return;
|
|
@@ -3331,17 +3634,17 @@ function EventList({
|
|
|
3331
3634
|
onEndReached();
|
|
3332
3635
|
}
|
|
3333
3636
|
};
|
|
3334
|
-
return /* @__PURE__ */
|
|
3335
|
-
emptyIcon ? /* @__PURE__ */
|
|
3336
|
-
/* @__PURE__ */
|
|
3337
|
-
] }) : /* @__PURE__ */
|
|
3637
|
+
return /* @__PURE__ */ jsx25("div", { className: classNames14("ls-eventlist", className), id, children: items.length === 0 ? /* @__PURE__ */ jsxs15("div", { className: classNames14("ls-eventlist__empty", emptyClassName), children: [
|
|
3638
|
+
emptyIcon ? /* @__PURE__ */ jsx25("span", { className: "ls-eventlist__empty-icon", children: emptyIcon }) : null,
|
|
3639
|
+
/* @__PURE__ */ jsx25("span", { children: emptyText })
|
|
3640
|
+
] }) : /* @__PURE__ */ jsx25(
|
|
3338
3641
|
"div",
|
|
3339
3642
|
{
|
|
3340
3643
|
className: "ls-eventlist__list",
|
|
3341
3644
|
ref: listRef,
|
|
3342
3645
|
onScroll: handleScroll,
|
|
3343
3646
|
style: itemGap != null ? { gap: typeof itemGap === "number" ? `${itemGap}px` : itemGap } : void 0,
|
|
3344
|
-
children: items.map((item) => /* @__PURE__ */
|
|
3647
|
+
children: items.map((item) => /* @__PURE__ */ jsx25("div", { className: "ls-eventlist__row", children: /* @__PURE__ */ jsx25(
|
|
3345
3648
|
EventListItem,
|
|
3346
3649
|
{
|
|
3347
3650
|
username: item.username,
|
|
@@ -3350,7 +3653,7 @@ function EventList({
|
|
|
3350
3653
|
avatar: item.avatar,
|
|
3351
3654
|
fallbackAvatar: item.fallbackAvatar ?? fallbackAvatar,
|
|
3352
3655
|
timestamp: item.timestamp,
|
|
3353
|
-
platformIcon: showPlatformIcons ? item.platformIcon ?? (item.platform ? /* @__PURE__ */
|
|
3656
|
+
platformIcon: showPlatformIcons ? item.platformIcon ?? (item.platform ? /* @__PURE__ */ jsx25(PlatformIcon, { platform: item.platform }) : void 0) : void 0,
|
|
3354
3657
|
alertIcon: item.alertIcon,
|
|
3355
3658
|
eventType: item.eventType,
|
|
3356
3659
|
accentColor: item.accentColor,
|
|
@@ -3370,7 +3673,7 @@ EventList.displayName = "EventList";
|
|
|
3370
3673
|
// src/components/StreamStatusPanel/StreamStatusPanel.tsx
|
|
3371
3674
|
import Tooltip4 from "@mui/material/Tooltip";
|
|
3372
3675
|
import classNames15 from "classnames";
|
|
3373
|
-
import { Fragment as
|
|
3676
|
+
import { Fragment as Fragment7, jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3374
3677
|
var LS_INFO_TOOLTIP_SX = {
|
|
3375
3678
|
backgroundColor: "#1b1834",
|
|
3376
3679
|
border: "1px solid #393853",
|
|
@@ -3383,8 +3686,8 @@ var LS_INFO_TOOLTIP_SX = {
|
|
|
3383
3686
|
boxShadow: "0 10px 30px rgba(0, 0, 0, 0.45)"
|
|
3384
3687
|
};
|
|
3385
3688
|
var formatStatValue = (value) => value >= 1e3 ? `${value.toString().slice(0, -3)} K` : value.toString();
|
|
3386
|
-
var TrendUpArrow = () => /* @__PURE__ */
|
|
3387
|
-
var TrendDownArrow = () => /* @__PURE__ */
|
|
3689
|
+
var TrendUpArrow = () => /* @__PURE__ */ jsx26("svg", { viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx26("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.50059 8C3.36798 8 3.2408 7.94732 3.14704 7.85355C3.05327 7.75978 3.00059 7.63261 3.00059 7.5L3.00059 1.707L0.854589 3.854C0.808102 3.90049 0.752912 3.93736 0.692173 3.96252C0.631433 3.98768 0.566333 4.00063 0.500589 4.00063C0.434845 4.00063 0.369745 3.98768 0.309006 3.96252C0.248266 3.93736 0.193077 3.90049 0.146589 3.854C0.100101 3.80751 0.0632247 3.75232 0.0380658 3.69158C0.0129069 3.63084 -4.20509e-05 3.56574 -4.20451e-05 3.5C-4.20394e-05 3.43426 0.012907 3.36916 0.0380658 3.30842C0.0632247 3.24768 0.100101 3.19249 0.146589 3.146L3.14659 0.146C3.19304 0.0994364 3.24821 0.0624939 3.30896 0.0372874C3.3697 0.0120808 3.43482 -0.000893905 3.50059 -0.000893899C3.56636 -0.000893893 3.63148 0.0120809 3.69222 0.0372874C3.75297 0.062494 3.80814 0.0994365 3.85459 0.146L6.85459 3.146C6.90108 3.19249 6.93795 3.24768 6.96311 3.30842C6.98827 3.36916 7.00122 3.43426 7.00122 3.5C7.00122 3.56574 6.98827 3.63084 6.96311 3.69158C6.93795 3.75232 6.90108 3.80751 6.85459 3.854C6.7607 3.94789 6.63336 4.00063 6.50059 4.00063C6.43485 4.00063 6.36975 3.98768 6.30901 3.96252C6.24827 3.93736 6.19308 3.90049 6.14659 3.854L4.00059 1.707L4.00059 7.5C4.00059 7.63261 3.94791 7.75978 3.85414 7.85355C3.76037 7.94732 3.6332 8 3.50059 8Z", fill: "currentColor" }) });
|
|
3690
|
+
var TrendDownArrow = () => /* @__PURE__ */ jsx26("svg", { viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx26("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.50063 0C3.63324 0 3.76042 0.0526785 3.85419 0.146447C3.94795 0.240215 4.00063 0.367392 4.00063 0.5L4.00063 6.293L6.14663 4.146C6.19312 4.09951 6.24831 4.06264 6.30905 4.03748C6.36979 4.01232 6.43489 3.99937 6.50063 3.99937C6.56638 3.99937 6.63148 4.01232 6.69222 4.03748C6.75295 4.06264 6.80814 4.09951 6.85463 4.146C6.90112 4.19249 6.938 4.24768 6.96316 4.30842C6.98831 4.36916 7.00126 4.43426 7.00126 4.5C7.00126 4.56574 6.98831 4.63084 6.96316 4.69158C6.938 4.75232 6.90112 4.80751 6.85463 4.854L3.85463 7.854C3.80819 7.90056 3.75301 7.93751 3.69227 7.96271C3.63152 7.98792 3.5664 8.00089 3.50063 8.00089C3.43486 8.00089 3.36974 7.98792 3.309 7.96271C3.24825 7.93751 3.19308 7.90056 3.14663 7.854L0.146632 4.854C0.100144 4.80751 0.0632674 4.75232 0.0381083 4.69158C0.0129493 4.63084 0 4.56574 0 4.5C0 4.43426 0.0129493 4.36916 0.0381083 4.30842C0.0632674 4.24768 0.100144 4.19249 0.146632 4.146C0.240518 4.05211 0.367856 3.99937 0.500632 3.99937C0.566376 3.99937 0.631476 4.01232 0.692215 4.03748C0.752955 4.06264 0.808144 4.09951 0.854632 4.146L3.00063 6.293L3.00063 0.5C3.00063 0.367392 3.05331 0.240215 3.14708 0.146447C3.24085 0.0526785 3.36802 0 3.50063 0Z", fill: "currentColor" }) });
|
|
3388
3691
|
function StreamStatusPanel({
|
|
3389
3692
|
online = false,
|
|
3390
3693
|
statusLabel,
|
|
@@ -3407,62 +3710,62 @@ function StreamStatusPanel({
|
|
|
3407
3710
|
const hasPlatforms = platforms != null;
|
|
3408
3711
|
const hasStats = stats.length > 0;
|
|
3409
3712
|
if (!hasStatus && !hasTotal && !hasPlatforms && !hasStats) {
|
|
3410
|
-
return /* @__PURE__ */
|
|
3713
|
+
return /* @__PURE__ */ jsx26("div", { className: classNames15("ls-streamstatus", "ls-streamstatus--empty", className), id, children: emptyText });
|
|
3411
3714
|
}
|
|
3412
|
-
return /* @__PURE__ */
|
|
3413
|
-
hasStatus ? /* @__PURE__ */
|
|
3414
|
-
/* @__PURE__ */
|
|
3415
|
-
online ? /* @__PURE__ */
|
|
3416
|
-
/* @__PURE__ */
|
|
3715
|
+
return /* @__PURE__ */ jsxs16("div", { className: classNames15("ls-streamstatus", className), id, children: [
|
|
3716
|
+
hasStatus ? /* @__PURE__ */ jsx26("div", { className: "ls-streamstatus__status", children: statusSlot ?? /* @__PURE__ */ jsxs16(Fragment7, { children: [
|
|
3717
|
+
/* @__PURE__ */ jsxs16("span", { className: "ls-streamstatus__indicator", children: [
|
|
3718
|
+
online ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__indicator-ping" }) : null,
|
|
3719
|
+
/* @__PURE__ */ jsx26("span", { className: classNames15("ls-streamstatus__indicator-dot", { "ls-streamstatus__indicator-dot--online": online }) })
|
|
3417
3720
|
] }),
|
|
3418
|
-
/* @__PURE__ */
|
|
3419
|
-
/* @__PURE__ */
|
|
3420
|
-
statusSublabel != null ? /* @__PURE__ */
|
|
3721
|
+
/* @__PURE__ */ jsxs16("span", { className: "ls-streamstatus__status-body", children: [
|
|
3722
|
+
/* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__status-label", children: statusLabel }),
|
|
3723
|
+
statusSublabel != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__status-sublabel", children: statusSublabel }) : null
|
|
3421
3724
|
] })
|
|
3422
3725
|
] }) }) : null,
|
|
3423
|
-
hasTotal || hasPlatforms ? /* @__PURE__ */
|
|
3424
|
-
hasTotal ? /* @__PURE__ */
|
|
3425
|
-
/* @__PURE__ */
|
|
3426
|
-
totalLabel != null ? /* @__PURE__ */
|
|
3726
|
+
hasTotal || hasPlatforms ? /* @__PURE__ */ jsxs16("div", { className: "ls-streamstatus__overview", children: [
|
|
3727
|
+
hasTotal ? /* @__PURE__ */ jsxs16("div", { className: "ls-streamstatus__total", children: [
|
|
3728
|
+
/* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__total-value", style: totalAccentColor ? { color: totalAccentColor } : void 0, children: totalValue }),
|
|
3729
|
+
totalLabel != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__total-label", children: totalLabel }) : null
|
|
3427
3730
|
] }) : null,
|
|
3428
|
-
hasPlatforms ? /* @__PURE__ */
|
|
3429
|
-
/* @__PURE__ */
|
|
3430
|
-
platform.icon != null ? /* @__PURE__ */
|
|
3731
|
+
hasPlatforms ? /* @__PURE__ */ jsx26("div", { className: "ls-streamstatus__platforms", children: platforms.length === 0 ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__platforms-empty", children: platformsEmptyText }) : platforms.map((platform) => /* @__PURE__ */ jsxs16("div", { className: "ls-streamstatus__platform", children: [
|
|
3732
|
+
/* @__PURE__ */ jsxs16("span", { className: "ls-streamstatus__platform-info", children: [
|
|
3733
|
+
platform.icon != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__platform-icon", children: platform.icon }) : getPlatformIconUrl(String(platform.id)) ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__platform-icon", children: /* @__PURE__ */ jsx26(PlatformIcon, { platform: String(platform.id) }) }) : /* @__PURE__ */ jsx26(
|
|
3431
3734
|
"span",
|
|
3432
3735
|
{
|
|
3433
3736
|
className: "ls-streamstatus__platform-dot",
|
|
3434
3737
|
style: platform.accentColor ? { backgroundColor: platform.accentColor } : void 0
|
|
3435
3738
|
}
|
|
3436
3739
|
),
|
|
3437
|
-
/* @__PURE__ */
|
|
3740
|
+
/* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__platform-label", children: platform.label })
|
|
3438
3741
|
] }),
|
|
3439
|
-
/* @__PURE__ */
|
|
3742
|
+
/* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__platform-value", children: platform.value })
|
|
3440
3743
|
] }, platform.id)) }) : null
|
|
3441
3744
|
] }) : null,
|
|
3442
|
-
hasStats ? /* @__PURE__ */
|
|
3745
|
+
hasStats ? /* @__PURE__ */ jsx26(
|
|
3443
3746
|
"div",
|
|
3444
3747
|
{
|
|
3445
3748
|
className: "ls-streamstatus__stats",
|
|
3446
3749
|
style: statsColumns ? { gridTemplateColumns: `repeat(${statsColumns}, minmax(0, 1fr))` } : void 0,
|
|
3447
3750
|
children: stats.map((stat) => {
|
|
3448
|
-
const label = stat.label != null ? /* @__PURE__ */
|
|
3751
|
+
const label = stat.label != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__stat-label", children: stat.label }) : null;
|
|
3449
3752
|
const showHead = stat.icon != null || stat.actions != null || statsLabelPosition === "top" && label != null;
|
|
3450
3753
|
const displayValue = typeof stat.value === "number" ? formatStatValue(stat.value) : stat.value;
|
|
3451
3754
|
const trend = typeof stat.value === "number" && stat.previousValue != null ? stat.value - stat.previousValue >= 0 ? "up" : "down" : void 0;
|
|
3452
|
-
const node = /* @__PURE__ */
|
|
3453
|
-
showHead ? /* @__PURE__ */
|
|
3454
|
-
stat.icon != null ? /* @__PURE__ */
|
|
3755
|
+
const node = /* @__PURE__ */ jsxs16("div", { className: "ls-streamstatus__stat", style: stat.tooltip != null ? { cursor: "help" } : void 0, children: [
|
|
3756
|
+
showHead ? /* @__PURE__ */ jsxs16("div", { className: "ls-streamstatus__stat-head", children: [
|
|
3757
|
+
stat.icon != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__stat-icon", children: stat.icon }) : null,
|
|
3455
3758
|
statsLabelPosition === "top" ? label : null,
|
|
3456
|
-
stat.actions != null ? /* @__PURE__ */
|
|
3759
|
+
stat.actions != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__stat-actions", children: stat.actions }) : null
|
|
3457
3760
|
] }) : null,
|
|
3458
|
-
/* @__PURE__ */
|
|
3761
|
+
/* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__stat-value", style: stat.accentColor ? { color: stat.accentColor } : void 0, children: trend ? /* @__PURE__ */ jsxs16("span", { className: "ls-streamstatus__stat-trendrow", children: [
|
|
3459
3762
|
displayValue,
|
|
3460
|
-
trend === "up" ? /* @__PURE__ */
|
|
3763
|
+
trend === "up" ? /* @__PURE__ */ jsx26(TrendUpArrow, {}) : /* @__PURE__ */ jsx26(TrendDownArrow, {})
|
|
3461
3764
|
] }) : displayValue }),
|
|
3462
3765
|
statsLabelPosition === "bottom" ? label : null,
|
|
3463
|
-
stat.sub != null ? /* @__PURE__ */
|
|
3766
|
+
stat.sub != null ? /* @__PURE__ */ jsx26("span", { className: "ls-streamstatus__stat-sub", children: stat.sub }) : null
|
|
3464
3767
|
] }, stat.id);
|
|
3465
|
-
return stat.tooltip != null ? /* @__PURE__ */
|
|
3768
|
+
return stat.tooltip != null ? /* @__PURE__ */ jsx26(Tooltip4, { title: stat.tooltip, placement: "top", enterDelay: 120, slotProps: { tooltip: { sx: LS_INFO_TOOLTIP_SX } }, children: node }, stat.id) : node;
|
|
3466
3769
|
})
|
|
3467
3770
|
}
|
|
3468
3771
|
) : null
|
|
@@ -3472,9 +3775,9 @@ StreamStatusPanel.displayName = "StreamStatusPanel";
|
|
|
3472
3775
|
|
|
3473
3776
|
// src/components/ViewersList/ViewersList.tsx
|
|
3474
3777
|
import * as React from "react";
|
|
3475
|
-
import { useMemo as
|
|
3778
|
+
import { useMemo as useMemo5, useState as useState9 } from "react";
|
|
3476
3779
|
import classNames16 from "classnames";
|
|
3477
|
-
import { jsx as
|
|
3780
|
+
import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3478
3781
|
function ViewersList({
|
|
3479
3782
|
viewers,
|
|
3480
3783
|
groups,
|
|
@@ -3491,13 +3794,13 @@ function ViewersList({
|
|
|
3491
3794
|
id,
|
|
3492
3795
|
className
|
|
3493
3796
|
}) {
|
|
3494
|
-
const [query, setQuery] =
|
|
3797
|
+
const [query, setQuery] = useState9("");
|
|
3495
3798
|
const internalSearch = showSearch && !searchSlot;
|
|
3496
|
-
const filtered =
|
|
3799
|
+
const filtered = useMemo5(
|
|
3497
3800
|
() => internalSearch && query ? viewers.filter((viewer) => viewer.username.toLowerCase().includes(query.toLowerCase())) : viewers,
|
|
3498
3801
|
[internalSearch, viewers, query]
|
|
3499
3802
|
);
|
|
3500
|
-
const sections =
|
|
3803
|
+
const sections = useMemo5(() => {
|
|
3501
3804
|
if (!groups || groups.length === 0) {
|
|
3502
3805
|
return [{ key: "", viewers: filtered }];
|
|
3503
3806
|
}
|
|
@@ -3507,25 +3810,25 @@ function ViewersList({
|
|
|
3507
3810
|
return [...grouped, { key: "", viewers: rest }].filter((section) => section.viewers.length > 0);
|
|
3508
3811
|
}, [groups, filtered]);
|
|
3509
3812
|
const showHead = countLabel != null || searchSlot != null || internalSearch;
|
|
3510
|
-
return /* @__PURE__ */
|
|
3511
|
-
showHead ? /* @__PURE__ */
|
|
3512
|
-
countLabel != null ? /* @__PURE__ */
|
|
3513
|
-
searchSlot ? /* @__PURE__ */
|
|
3514
|
-
internalSearch ? /* @__PURE__ */
|
|
3813
|
+
return /* @__PURE__ */ jsxs17("div", { className: classNames16("ls-viewerslist", className), id, children: [
|
|
3814
|
+
showHead ? /* @__PURE__ */ jsxs17("div", { className: "ls-viewerslist__head", children: [
|
|
3815
|
+
countLabel != null ? /* @__PURE__ */ jsx27("span", { className: "ls-viewerslist__count", children: countLabel }) : null,
|
|
3816
|
+
searchSlot ? /* @__PURE__ */ jsx27("div", { className: "ls-viewerslist__search-slot", children: searchSlot }) : null,
|
|
3817
|
+
internalSearch ? /* @__PURE__ */ jsx27("input", { className: "ls-viewerslist__search", value: query, placeholder: searchPlaceholder, onChange: (e) => setQuery(e.target.value) }) : null
|
|
3515
3818
|
] }) : null,
|
|
3516
|
-
hint != null ? /* @__PURE__ */
|
|
3517
|
-
filtered.length === 0 ? /* @__PURE__ */
|
|
3518
|
-
emptyIcon ? /* @__PURE__ */
|
|
3519
|
-
/* @__PURE__ */
|
|
3520
|
-
] }) : /* @__PURE__ */
|
|
3521
|
-
section.label != null ? /* @__PURE__ */
|
|
3819
|
+
hint != null ? /* @__PURE__ */ jsx27("div", { className: "ls-viewerslist__hint", children: hint }) : null,
|
|
3820
|
+
filtered.length === 0 ? /* @__PURE__ */ jsxs17("div", { className: "ls-viewerslist__empty", children: [
|
|
3821
|
+
emptyIcon ? /* @__PURE__ */ jsx27("span", { className: "ls-viewerslist__empty-icon", children: emptyIcon }) : null,
|
|
3822
|
+
/* @__PURE__ */ jsx27("span", { children: emptyText })
|
|
3823
|
+
] }) : /* @__PURE__ */ jsx27("div", { className: "ls-viewerslist__list", children: sections.map((section) => /* @__PURE__ */ jsxs17(React.Fragment, { children: [
|
|
3824
|
+
section.label != null ? /* @__PURE__ */ jsx27("div", { className: "ls-viewerslist__group", children: section.label }) : null,
|
|
3522
3825
|
section.viewers.map((viewer) => {
|
|
3523
3826
|
const avatarSrc = viewer.avatar || viewer.fallbackAvatar || fallbackAvatar;
|
|
3524
|
-
const platformIcon = viewer.platformIcon ?? (viewer.platform ? /* @__PURE__ */
|
|
3525
|
-
return /* @__PURE__ */
|
|
3526
|
-
showAvatars && avatarSrc ? /* @__PURE__ */
|
|
3527
|
-
platformIcon != null ? /* @__PURE__ */
|
|
3528
|
-
/* @__PURE__ */
|
|
3827
|
+
const platformIcon = viewer.platformIcon ?? (viewer.platform ? /* @__PURE__ */ jsx27(PlatformIcon, { platform: viewer.platform }) : null);
|
|
3828
|
+
return /* @__PURE__ */ jsxs17("div", { className: "ls-viewerslist__viewer", children: [
|
|
3829
|
+
showAvatars && avatarSrc ? /* @__PURE__ */ jsx27("img", { className: "ls-viewerslist__avatar", src: avatarSrc, alt: "" }) : null,
|
|
3830
|
+
platformIcon != null ? /* @__PURE__ */ jsx27("span", { className: "ls-viewerslist__platform", children: platformIcon }) : null,
|
|
3831
|
+
/* @__PURE__ */ jsx27(
|
|
3529
3832
|
"span",
|
|
3530
3833
|
{
|
|
3531
3834
|
className: classNames16("ls-viewerslist__username", { "ls-viewerslist__username--clickable": onUsernameClick }),
|
|
@@ -3542,8 +3845,8 @@ function ViewersList({
|
|
|
3542
3845
|
children: viewer.username
|
|
3543
3846
|
}
|
|
3544
3847
|
),
|
|
3545
|
-
viewer.badges != null ? /* @__PURE__ */
|
|
3546
|
-
viewer.actions != null ? /* @__PURE__ */
|
|
3848
|
+
viewer.badges != null ? /* @__PURE__ */ jsx27("span", { className: "ls-viewerslist__badges", children: viewer.badges }) : null,
|
|
3849
|
+
viewer.actions != null ? /* @__PURE__ */ jsx27("span", { className: "ls-viewerslist__actions", children: viewer.actions }) : null
|
|
3547
3850
|
] }, viewer.id);
|
|
3548
3851
|
})
|
|
3549
3852
|
] }, section.key || "__ungrouped")) })
|
|
@@ -3553,7 +3856,7 @@ ViewersList.displayName = "ViewersList";
|
|
|
3553
3856
|
|
|
3554
3857
|
// src/components/ShortcutDockGrid/ShortcutDockGrid.tsx
|
|
3555
3858
|
import classNames17 from "classnames";
|
|
3556
|
-
import { Fragment as
|
|
3859
|
+
import { Fragment as Fragment9, jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3557
3860
|
var softAccent = (color) => /^#[0-9a-fA-F]{6}$/.test(color) ? `${color}66` : color;
|
|
3558
3861
|
function ShortcutDockGrid({
|
|
3559
3862
|
buttons,
|
|
@@ -3576,7 +3879,7 @@ function ShortcutDockGrid({
|
|
|
3576
3879
|
className
|
|
3577
3880
|
}) {
|
|
3578
3881
|
const showAdd = editMode && Boolean(onAdd);
|
|
3579
|
-
return /* @__PURE__ */
|
|
3882
|
+
return /* @__PURE__ */ jsxs18(
|
|
3580
3883
|
"div",
|
|
3581
3884
|
{
|
|
3582
3885
|
className: classNames17(
|
|
@@ -3590,7 +3893,7 @@ function ShortcutDockGrid({
|
|
|
3590
3893
|
gridAutoRows: rowHeight ? `${rowHeight}px` : "auto"
|
|
3591
3894
|
},
|
|
3592
3895
|
children: [
|
|
3593
|
-
buttons.length === 0 && !showAdd && emptyText != null ? /* @__PURE__ */
|
|
3896
|
+
buttons.length === 0 && !showAdd && emptyText != null ? /* @__PURE__ */ jsx28("div", { className: "ls-shortcutdock__empty", children: emptyText }) : null,
|
|
3594
3897
|
buttons.map((button) => {
|
|
3595
3898
|
const large = (button.w ?? 1) > 1 || (button.h ?? 1) > 1;
|
|
3596
3899
|
const selected = selectedId != null && selectedId === button.id;
|
|
@@ -3601,7 +3904,7 @@ function ShortcutDockGrid({
|
|
|
3601
3904
|
...rowHeight ? {} : { minHeight: minButtonSize },
|
|
3602
3905
|
...colored ? { ["--ls-shortcutdock-accent"]: button.color, ["--ls-shortcutdock-accent-soft"]: softAccent(button.color) } : {}
|
|
3603
3906
|
};
|
|
3604
|
-
const node = /* @__PURE__ */
|
|
3907
|
+
const node = /* @__PURE__ */ jsx28(
|
|
3605
3908
|
"button",
|
|
3606
3909
|
{
|
|
3607
3910
|
type: "button",
|
|
@@ -3617,18 +3920,18 @@ function ShortcutDockGrid({
|
|
|
3617
3920
|
onTrigger?.(button.id);
|
|
3618
3921
|
}
|
|
3619
3922
|
},
|
|
3620
|
-
children: button.content ?? /* @__PURE__ */
|
|
3621
|
-
button.image ? /* @__PURE__ */
|
|
3622
|
-
button.label != null ? /* @__PURE__ */
|
|
3923
|
+
children: button.content ?? /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
3924
|
+
button.image ? /* @__PURE__ */ jsx28("img", { className: "ls-shortcutdock__btn-image", src: button.image, alt: "" }) : button.icon != null ? /* @__PURE__ */ jsx28("span", { className: "ls-shortcutdock__icon", children: button.icon }) : null,
|
|
3925
|
+
button.label != null ? /* @__PURE__ */ jsx28("span", { className: "ls-shortcutdock__label", children: button.label }) : null
|
|
3623
3926
|
] })
|
|
3624
3927
|
}
|
|
3625
3928
|
);
|
|
3626
|
-
return /* @__PURE__ */
|
|
3929
|
+
return /* @__PURE__ */ jsxs18("div", { className: "ls-shortcutdock__cell", style: cellStyle, title: button.title, children: [
|
|
3627
3930
|
renderButton ? renderButton(button, node) : node,
|
|
3628
|
-
editMode && onRemove ? /* @__PURE__ */
|
|
3931
|
+
editMode && onRemove ? /* @__PURE__ */ jsx28("button", { type: "button", className: "ls-shortcutdock__remove", title: removeTitle, onClick: () => onRemove(button.id), children: "\u2715" }) : null
|
|
3629
3932
|
] }, button.id);
|
|
3630
3933
|
}),
|
|
3631
|
-
showAdd ? /* @__PURE__ */
|
|
3934
|
+
showAdd ? /* @__PURE__ */ jsx28(
|
|
3632
3935
|
"button",
|
|
3633
3936
|
{
|
|
3634
3937
|
type: "button",
|
|
@@ -3648,7 +3951,7 @@ ShortcutDockGrid.displayName = "ShortcutDockGrid";
|
|
|
3648
3951
|
// src/components/GoalsList/GoalsList.tsx
|
|
3649
3952
|
import Tooltip5 from "@mui/material/Tooltip";
|
|
3650
3953
|
import classNames18 from "classnames";
|
|
3651
|
-
import { Fragment as
|
|
3954
|
+
import { Fragment as Fragment10, jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3652
3955
|
var GOAL_TOOLTIP_SX = {
|
|
3653
3956
|
backgroundColor: "#1b1834",
|
|
3654
3957
|
border: "1px solid #393853",
|
|
@@ -3672,32 +3975,32 @@ var resolvePercent = (goal) => {
|
|
|
3672
3975
|
};
|
|
3673
3976
|
function GoalsList({ goals, formatValue, showPercent = true, emptyText = "No goal data yet", id, className }) {
|
|
3674
3977
|
const fmt = (value, goal) => formatValue ? formatValue(value, goal) : value;
|
|
3675
|
-
return /* @__PURE__ */
|
|
3978
|
+
return /* @__PURE__ */ jsx29("div", { className: classNames18("ls-goals", className), id, children: goals.length === 0 ? /* @__PURE__ */ jsx29("div", { className: "ls-goals__empty", children: emptyText }) : goals.map((goal) => {
|
|
3676
3979
|
const percent = resolvePercent(goal);
|
|
3677
3980
|
const rowStyle = {
|
|
3678
3981
|
...goal.accentColor ? { ["--ls-goals-accent"]: goal.accentColor } : {},
|
|
3679
3982
|
...goal.tooltip != null ? { cursor: "help" } : {}
|
|
3680
3983
|
};
|
|
3681
|
-
const node = /* @__PURE__ */
|
|
3682
|
-
/* @__PURE__ */
|
|
3683
|
-
goal.icon != null ? /* @__PURE__ */
|
|
3684
|
-
/* @__PURE__ */
|
|
3685
|
-
/* @__PURE__ */
|
|
3984
|
+
const node = /* @__PURE__ */ jsxs19("div", { className: "ls-goals__row", style: rowStyle, children: [
|
|
3985
|
+
/* @__PURE__ */ jsxs19("div", { className: "ls-goals__head", children: [
|
|
3986
|
+
goal.icon != null ? /* @__PURE__ */ jsx29("span", { className: "ls-goals__icon", children: goal.icon }) : null,
|
|
3987
|
+
/* @__PURE__ */ jsx29("span", { className: "ls-goals__label", children: goal.label }),
|
|
3988
|
+
/* @__PURE__ */ jsx29("span", { className: "ls-goals__value", children: goal.valueText ?? /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
3686
3989
|
fmt(goal.current ?? 0, goal),
|
|
3687
3990
|
" ",
|
|
3688
|
-
/* @__PURE__ */
|
|
3991
|
+
/* @__PURE__ */ jsxs19("span", { className: "ls-goals__target", children: [
|
|
3689
3992
|
"/ ",
|
|
3690
3993
|
fmt(goal.target ?? 0, goal)
|
|
3691
3994
|
] })
|
|
3692
3995
|
] }) }),
|
|
3693
|
-
showPercent ? /* @__PURE__ */
|
|
3996
|
+
showPercent ? /* @__PURE__ */ jsxs19("span", { className: "ls-goals__percent", children: [
|
|
3694
3997
|
percent,
|
|
3695
3998
|
"%"
|
|
3696
3999
|
] }) : null
|
|
3697
4000
|
] }),
|
|
3698
|
-
/* @__PURE__ */
|
|
4001
|
+
/* @__PURE__ */ jsx29("div", { className: "ls-goals__bar", children: /* @__PURE__ */ jsx29("div", { className: "ls-goals__fill", style: { width: `${percent}%` } }) })
|
|
3699
4002
|
] }, goal.id);
|
|
3700
|
-
return goal.tooltip != null ? /* @__PURE__ */
|
|
4003
|
+
return goal.tooltip != null ? /* @__PURE__ */ jsx29(Tooltip5, { title: goal.tooltip, placement: "top", enterDelay: 120, slotProps: { tooltip: { sx: GOAL_TOOLTIP_SX } }, children: node }, goal.id) : node;
|
|
3701
4004
|
}) });
|
|
3702
4005
|
}
|
|
3703
4006
|
GoalsList.displayName = "GoalsList";
|
|
@@ -3707,11 +4010,11 @@ import IconButton from "@mui/material/IconButton";
|
|
|
3707
4010
|
import classNames19 from "classnames";
|
|
3708
4011
|
|
|
3709
4012
|
// src/components/ModQueueItem/icons.tsx
|
|
3710
|
-
import { jsx as
|
|
4013
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3711
4014
|
function CrossBoxIcon({ className }) {
|
|
3712
|
-
return /* @__PURE__ */
|
|
3713
|
-
/* @__PURE__ */
|
|
3714
|
-
/* @__PURE__ */
|
|
4015
|
+
return /* @__PURE__ */ jsxs20("svg", { className, width: "21", height: "21", viewBox: "0 0 21 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4016
|
+
/* @__PURE__ */ jsx30("rect", { x: "0.484367", y: "0.509025", width: "19.6005", height: "19.6005", rx: "3.43645", stroke: "#E76E6E", strokeWidth: "0.763655" }),
|
|
4017
|
+
/* @__PURE__ */ jsx30(
|
|
3715
4018
|
"path",
|
|
3716
4019
|
{
|
|
3717
4020
|
d: "M14.3571 7.71806L12.8756 6.23657L10.2843 8.82791L7.69292 6.23657L6.21143 7.71806L8.80276 10.3094L6.21143 12.9007L7.69292 14.3822L10.2843 11.7909L12.8756 14.3822L14.3571 12.9007L11.7657 10.3094L14.3571 7.71806Z",
|
|
@@ -3721,9 +4024,9 @@ function CrossBoxIcon({ className }) {
|
|
|
3721
4024
|
] });
|
|
3722
4025
|
}
|
|
3723
4026
|
function TickBoxIcon({ className }) {
|
|
3724
|
-
return /* @__PURE__ */
|
|
3725
|
-
/* @__PURE__ */
|
|
3726
|
-
/* @__PURE__ */
|
|
4027
|
+
return /* @__PURE__ */ jsxs20("svg", { className, width: "22", height: "21", viewBox: "0 0 22 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4028
|
+
/* @__PURE__ */ jsx30("rect", { x: "0.381828", y: "0.381828", width: "21.2296", height: "19.855", rx: "3.43645", stroke: "#93F0A2", strokeWidth: "0.763655" }),
|
|
4029
|
+
/* @__PURE__ */ jsx30(
|
|
3727
4030
|
"path",
|
|
3728
4031
|
{
|
|
3729
4032
|
d: "M14.8908 5.49829L9.85209 12.1414L6.87311 9.16455L5.49854 10.5391L10.0798 15.1203L16.4952 6.87287L14.8908 5.49829Z",
|
|
@@ -3734,7 +4037,7 @@ function TickBoxIcon({ className }) {
|
|
|
3734
4037
|
}
|
|
3735
4038
|
|
|
3736
4039
|
// src/components/ModQueueItem/ModQueueItem.tsx
|
|
3737
|
-
import { Fragment as
|
|
4040
|
+
import { Fragment as Fragment11, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3738
4041
|
function ModQueueItem({
|
|
3739
4042
|
username,
|
|
3740
4043
|
avatar,
|
|
@@ -3747,12 +4050,12 @@ function ModQueueItem({
|
|
|
3747
4050
|
onDeny,
|
|
3748
4051
|
className
|
|
3749
4052
|
}) {
|
|
3750
|
-
return /* @__PURE__ */
|
|
3751
|
-
icon ? /* @__PURE__ */
|
|
3752
|
-
/* @__PURE__ */
|
|
3753
|
-
/* @__PURE__ */
|
|
3754
|
-
avatar || fallbackAvatar ? /* @__PURE__ */
|
|
3755
|
-
username ? /* @__PURE__ */
|
|
4053
|
+
return /* @__PURE__ */ jsxs21("div", { className: classNames19("ls-modqueue-item", className), children: [
|
|
4054
|
+
icon ? /* @__PURE__ */ jsx31("div", { className: "ls-modqueue-item__preview", children: icon }) : null,
|
|
4055
|
+
/* @__PURE__ */ jsxs21("div", { className: "ls-modqueue-item__body", children: [
|
|
4056
|
+
/* @__PURE__ */ jsxs21("div", { className: "ls-modqueue-item__head", children: [
|
|
4057
|
+
avatar || fallbackAvatar ? /* @__PURE__ */ jsx31("img", { className: "ls-modqueue-item__avatar", src: avatar || fallbackAvatar, alt: "" }) : null,
|
|
4058
|
+
username ? /* @__PURE__ */ jsx31(
|
|
3756
4059
|
"span",
|
|
3757
4060
|
{
|
|
3758
4061
|
className: "ls-modqueue-item__username",
|
|
@@ -3760,31 +4063,31 @@ function ModQueueItem({
|
|
|
3760
4063
|
children: username
|
|
3761
4064
|
}
|
|
3762
4065
|
) : null,
|
|
3763
|
-
command ? /* @__PURE__ */
|
|
4066
|
+
command ? /* @__PURE__ */ jsx31("span", { className: "ls-modqueue-item__command", children: command }) : null
|
|
3764
4067
|
] }),
|
|
3765
|
-
message ? /* @__PURE__ */
|
|
4068
|
+
message ? /* @__PURE__ */ jsxs21("div", { className: "ls-modqueue-item__message", children: [
|
|
3766
4069
|
"\u201C",
|
|
3767
4070
|
message,
|
|
3768
4071
|
"\u201D"
|
|
3769
4072
|
] }) : null
|
|
3770
4073
|
] }),
|
|
3771
|
-
/* @__PURE__ */
|
|
3772
|
-
/* @__PURE__ */
|
|
3773
|
-
/* @__PURE__ */
|
|
4074
|
+
/* @__PURE__ */ jsx31("div", { className: "ls-modqueue-item__actions", children: actions ?? /* @__PURE__ */ jsxs21(Fragment11, { children: [
|
|
4075
|
+
/* @__PURE__ */ jsx31(IconButton, { className: "ls-modqueue-item__iconbtn", disableRipple: true, onClick: onDeny, "aria-label": "Deny", children: /* @__PURE__ */ jsx31(CrossBoxIcon, { className: "ls-modqueue-item__action-icon" }) }),
|
|
4076
|
+
/* @__PURE__ */ jsx31(IconButton, { className: "ls-modqueue-item__iconbtn", disableRipple: true, onClick: onApprove, "aria-label": "Approve", children: /* @__PURE__ */ jsx31(TickBoxIcon, { className: "ls-modqueue-item__action-icon" }) })
|
|
3774
4077
|
] }) })
|
|
3775
4078
|
] });
|
|
3776
4079
|
}
|
|
3777
4080
|
ModQueueItem.displayName = "ModQueueItem";
|
|
3778
4081
|
|
|
3779
4082
|
// src/components/ModQueueList/ModQueueList.tsx
|
|
3780
|
-
import { useMemo as
|
|
4083
|
+
import { useMemo as useMemo6, useState as useState10 } from "react";
|
|
3781
4084
|
import ButtonBase from "@mui/material/ButtonBase";
|
|
3782
4085
|
import classNames20 from "classnames";
|
|
3783
4086
|
|
|
3784
4087
|
// src/components/ModQueueList/icons.tsx
|
|
3785
|
-
import { jsx as
|
|
4088
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3786
4089
|
function SearchIcon({ className }) {
|
|
3787
|
-
return /* @__PURE__ */
|
|
4090
|
+
return /* @__PURE__ */ jsx32("svg", { className, width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx32(
|
|
3788
4091
|
"path",
|
|
3789
4092
|
{
|
|
3790
4093
|
fillRule: "evenodd",
|
|
@@ -3795,24 +4098,24 @@ function SearchIcon({ className }) {
|
|
|
3795
4098
|
) });
|
|
3796
4099
|
}
|
|
3797
4100
|
function EmptyModQueueIcon({ className }) {
|
|
3798
|
-
return /* @__PURE__ */
|
|
3799
|
-
/* @__PURE__ */
|
|
4101
|
+
return /* @__PURE__ */ jsxs22("svg", { className, width: "39", height: "39", viewBox: "0 0 39 39", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4102
|
+
/* @__PURE__ */ jsx32(
|
|
3800
4103
|
"path",
|
|
3801
4104
|
{
|
|
3802
4105
|
d: "M17.8486 23.9297C17.8487 26.2984 19.0186 28.5764 20.8398 30H11V26.25C11.002 24.8582 11.5559 23.5242 12.54 22.54C13.5242 21.5559 14.8582 21.0019 16.25 21H17.8486V23.9297Z",
|
|
3803
4106
|
fill: "#CAC9D5"
|
|
3804
4107
|
}
|
|
3805
4108
|
),
|
|
3806
|
-
/* @__PURE__ */
|
|
4109
|
+
/* @__PURE__ */ jsx32(
|
|
3807
4110
|
"path",
|
|
3808
4111
|
{
|
|
3809
4112
|
d: "M24.9043 19.7451C24.6452 20.2749 24.5 20.8705 24.5 21.5C24.5 23.3373 25.7389 24.8844 27.4268 25.3535C26.8965 27.1804 25.5079 28.7064 23.75 29.1641C21.4908 28.5758 19.84 26.2235 19.8398 23.7354V21.0205L23.75 19.2109L24.9043 19.7451Z",
|
|
3810
4113
|
fill: "#CAC9D5"
|
|
3811
4114
|
}
|
|
3812
4115
|
),
|
|
3813
|
-
/* @__PURE__ */
|
|
3814
|
-
/* @__PURE__ */
|
|
3815
|
-
/* @__PURE__ */
|
|
4116
|
+
/* @__PURE__ */ jsx32("path", { d: "M30.5908 18.3184L28.2861 21.0459H30.5908V22.4092H26.5V21.0459L28.8115 18.3184H26.5V16.9541H30.5908V18.3184Z", fill: "#CAC9D5" }),
|
|
4117
|
+
/* @__PURE__ */ jsx32("path", { d: "M36.0459 15.5908L33.7412 18.3184H36.0459V19.6816H31.9541V18.3184L34.2656 15.5908H31.9541V14.2275H36.0459V15.5908Z", fill: "#CAC9D5" }),
|
|
4118
|
+
/* @__PURE__ */ jsx32(
|
|
3816
4119
|
"path",
|
|
3817
4120
|
{
|
|
3818
4121
|
d: "M18.5 9C19.5384 9 20.5536 9.30789 21.417 9.88477C22.2802 10.4616 22.9532 11.282 23.3506 12.2412C23.7478 13.2004 23.852 14.2561 23.6494 15.2744C23.4468 16.2928 22.9461 17.2278 22.2119 17.9619C21.8356 18.3383 21.4066 18.6536 20.9404 18.8984L20.248 19.2002C20.0129 19.2832 19.771 19.3504 19.5244 19.3994C18.5062 19.602 17.4504 19.4978 16.4912 19.1006C15.5319 18.7032 14.7117 18.0302 14.1348 17.167C13.5579 16.3036 13.25 15.2884 13.25 14.25C13.25 12.8576 13.8035 11.5227 14.7881 10.5381C15.7726 9.55352 17.1076 9 18.5 9Z",
|
|
@@ -3823,7 +4126,7 @@ function EmptyModQueueIcon({ className }) {
|
|
|
3823
4126
|
}
|
|
3824
4127
|
|
|
3825
4128
|
// src/components/ModQueueList/ModQueueList.tsx
|
|
3826
|
-
import { Fragment as
|
|
4129
|
+
import { Fragment as Fragment12, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3827
4130
|
var matches = (item, q) => {
|
|
3828
4131
|
if (!q) {
|
|
3829
4132
|
return true;
|
|
@@ -3851,7 +4154,7 @@ function ModQueueList({
|
|
|
3851
4154
|
onDeny,
|
|
3852
4155
|
className
|
|
3853
4156
|
}) {
|
|
3854
|
-
const [internalQuery, setInternalQuery] =
|
|
4157
|
+
const [internalQuery, setInternalQuery] = useState10("");
|
|
3855
4158
|
const query = searchValue !== void 0 ? searchValue : internalQuery;
|
|
3856
4159
|
const handleSearchChange = (value) => {
|
|
3857
4160
|
if (searchValue === void 0) {
|
|
@@ -3860,33 +4163,33 @@ function ModQueueList({
|
|
|
3860
4163
|
onSearchChange?.(value);
|
|
3861
4164
|
};
|
|
3862
4165
|
const internalSearch = showSearch && !searchSlot;
|
|
3863
|
-
const filtered =
|
|
3864
|
-
return /* @__PURE__ */
|
|
3865
|
-
searchSlot ? /* @__PURE__ */
|
|
4166
|
+
const filtered = useMemo6(() => internalSearch ? items.filter((item) => matches(item, query)) : items, [internalSearch, items, query]);
|
|
4167
|
+
return /* @__PURE__ */ jsxs23("div", { className: classNames20("ls-modqueue", className), id, children: [
|
|
4168
|
+
searchSlot ? /* @__PURE__ */ jsx33("div", { className: "ls-modqueue__search-slot", children: searchSlot }) : showSearch ? /* @__PURE__ */ jsx33("div", { className: "ls-modqueue__search-slot", children: /* @__PURE__ */ jsx33(
|
|
3866
4169
|
LSInput,
|
|
3867
4170
|
{
|
|
3868
4171
|
size: "small",
|
|
3869
4172
|
placeholder: searchPlaceholder,
|
|
3870
|
-
startAdornment: /* @__PURE__ */
|
|
4173
|
+
startAdornment: /* @__PURE__ */ jsx33(SearchIcon, { className: "ls-modqueue__search-icon" }),
|
|
3871
4174
|
value: query,
|
|
3872
4175
|
onChange: (e) => handleSearchChange(String(e.target.value ?? ""))
|
|
3873
4176
|
}
|
|
3874
4177
|
) }) : null,
|
|
3875
|
-
filtered.length === 0 ? /* @__PURE__ */
|
|
3876
|
-
/* @__PURE__ */
|
|
3877
|
-
/* @__PURE__ */
|
|
3878
|
-
] }) : /* @__PURE__ */
|
|
3879
|
-
canModerate && (onDeny || onApprove) ? /* @__PURE__ */
|
|
3880
|
-
onDeny ? /* @__PURE__ */
|
|
3881
|
-
/* @__PURE__ */
|
|
4178
|
+
filtered.length === 0 ? /* @__PURE__ */ jsxs23("div", { className: "ls-modqueue__empty", children: [
|
|
4179
|
+
/* @__PURE__ */ jsx33("span", { className: "ls-modqueue__empty-icon", children: emptyIcon ?? /* @__PURE__ */ jsx33(EmptyModQueueIcon, {}) }),
|
|
4180
|
+
/* @__PURE__ */ jsx33("span", { children: emptyText })
|
|
4181
|
+
] }) : /* @__PURE__ */ jsxs23(Fragment12, { children: [
|
|
4182
|
+
canModerate && (onDeny || onApprove) ? /* @__PURE__ */ jsxs23("div", { className: "ls-modqueue__bulk", children: [
|
|
4183
|
+
onDeny ? /* @__PURE__ */ jsxs23(ButtonBase, { className: "ls-modqueue__bulk-btn ls-modqueue__bulk-btn--deny", disableRipple: true, onClick: () => onDeny("all"), children: [
|
|
4184
|
+
/* @__PURE__ */ jsx33(CrossBoxIcon, { className: "ls-modqueue__bulk-icon" }),
|
|
3882
4185
|
denyAllLabel
|
|
3883
4186
|
] }) : null,
|
|
3884
|
-
onApprove ? /* @__PURE__ */
|
|
3885
|
-
/* @__PURE__ */
|
|
4187
|
+
onApprove ? /* @__PURE__ */ jsxs23(ButtonBase, { className: "ls-modqueue__bulk-btn ls-modqueue__bulk-btn--approve", disableRipple: true, onClick: () => onApprove("all"), children: [
|
|
4188
|
+
/* @__PURE__ */ jsx33(TickBoxIcon, { className: "ls-modqueue__bulk-icon" }),
|
|
3886
4189
|
approveAllLabel
|
|
3887
4190
|
] }) : null
|
|
3888
4191
|
] }) : null,
|
|
3889
|
-
/* @__PURE__ */
|
|
4192
|
+
/* @__PURE__ */ jsx33("div", { className: "ls-modqueue__list", children: filtered.map((item) => /* @__PURE__ */ jsx33(
|
|
3890
4193
|
ModQueueItem,
|
|
3891
4194
|
{
|
|
3892
4195
|
icon: item.icon,
|
|
@@ -3897,7 +4200,7 @@ function ModQueueList({
|
|
|
3897
4200
|
message: showMessages ? item.message : void 0,
|
|
3898
4201
|
onApprove: () => onApprove?.(item.id),
|
|
3899
4202
|
onDeny: () => onDeny?.(item.id),
|
|
3900
|
-
actions: item.actions ?? (canModerate ? void 0 : /* @__PURE__ */
|
|
4203
|
+
actions: item.actions ?? (canModerate ? void 0 : /* @__PURE__ */ jsx33("span", { className: "ls-modqueue__readonly", children: "read-only" }))
|
|
3901
4204
|
},
|
|
3902
4205
|
item.id
|
|
3903
4206
|
)) })
|
|
@@ -3907,30 +4210,30 @@ function ModQueueList({
|
|
|
3907
4210
|
ModQueueList.displayName = "ModQueueList";
|
|
3908
4211
|
|
|
3909
4212
|
// src/components/ModActivityLog/ModActivityLog.tsx
|
|
3910
|
-
import { useEffect as
|
|
4213
|
+
import { useEffect as useEffect8, useRef as useRef8 } from "react";
|
|
3911
4214
|
import classNames21 from "classnames";
|
|
3912
|
-
import { jsx as
|
|
4215
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3913
4216
|
function ModActivityLog({ logs, emptyText, onClear, clearLabel = "Clear logs", autoScroll, className }) {
|
|
3914
|
-
const listRef =
|
|
3915
|
-
|
|
4217
|
+
const listRef = useRef8(null);
|
|
4218
|
+
useEffect8(() => {
|
|
3916
4219
|
if (autoScroll && listRef.current) {
|
|
3917
4220
|
listRef.current.scrollTop = listRef.current.scrollHeight;
|
|
3918
4221
|
}
|
|
3919
4222
|
}, [logs, autoScroll]);
|
|
3920
|
-
return /* @__PURE__ */
|
|
3921
|
-
onClear && logs.length > 0 ? /* @__PURE__ */
|
|
3922
|
-
logs.length === 0 ? /* @__PURE__ */
|
|
4223
|
+
return /* @__PURE__ */ jsxs24("div", { className: classNames21("ls-modlog", className), children: [
|
|
4224
|
+
onClear && logs.length > 0 ? /* @__PURE__ */ jsx34("div", { className: "ls-modlog__toolbar", children: /* @__PURE__ */ jsx34("button", { type: "button", className: "ls-modlog__clear", onClick: onClear, children: clearLabel }) }) : null,
|
|
4225
|
+
logs.length === 0 ? /* @__PURE__ */ jsx34("div", { className: "ls-modlog__empty", children: emptyText ?? "No activity yet" }) : /* @__PURE__ */ jsx34("div", { className: "ls-modlog__list", ref: listRef, children: logs.map((log, i) => {
|
|
3923
4226
|
const rowStyle = {
|
|
3924
4227
|
...log.tabColor ? { ["--ls-modlog-accent"]: log.tabColor } : {},
|
|
3925
4228
|
...log.barColor ? { ["--ls-modlog-bar"]: log.barColor } : {}
|
|
3926
4229
|
};
|
|
3927
|
-
return /* @__PURE__ */
|
|
3928
|
-
/* @__PURE__ */
|
|
3929
|
-
log.avatar ? /* @__PURE__ */
|
|
3930
|
-
log.title ? /* @__PURE__ */
|
|
3931
|
-
log.time ? /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsxs24("div", { className: "ls-modlog__row", style: rowStyle, children: [
|
|
4231
|
+
/* @__PURE__ */ jsxs24("div", { className: "ls-modlog__head", children: [
|
|
4232
|
+
log.avatar ? /* @__PURE__ */ jsx34("img", { className: "ls-modlog__avatar", src: log.avatar, alt: "" }) : null,
|
|
4233
|
+
log.title ? /* @__PURE__ */ jsx34("span", { className: "ls-modlog__title", children: log.title }) : null,
|
|
4234
|
+
log.time ? /* @__PURE__ */ jsx34("span", { className: "ls-modlog__time", children: log.time }) : null
|
|
3932
4235
|
] }),
|
|
3933
|
-
log.message ? /* @__PURE__ */
|
|
4236
|
+
log.message ? /* @__PURE__ */ jsx34("div", { className: "ls-modlog__message", children: log.message }) : null
|
|
3934
4237
|
] }, log.id ?? i);
|
|
3935
4238
|
}) })
|
|
3936
4239
|
] });
|
|
@@ -3938,9 +4241,9 @@ function ModActivityLog({ logs, emptyText, onClear, clearLabel = "Clear logs", a
|
|
|
3938
4241
|
ModActivityLog.displayName = "ModActivityLog";
|
|
3939
4242
|
|
|
3940
4243
|
// src/components/SongRequestList/SongRequestList.tsx
|
|
3941
|
-
import { useState as
|
|
4244
|
+
import { useState as useState11 } from "react";
|
|
3942
4245
|
import classNames22 from "classnames";
|
|
3943
|
-
import { jsx as
|
|
4246
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3944
4247
|
function SongRequestList({
|
|
3945
4248
|
nowPlaying,
|
|
3946
4249
|
progress = 0,
|
|
@@ -3959,7 +4262,7 @@ function SongRequestList({
|
|
|
3959
4262
|
emptyText,
|
|
3960
4263
|
className
|
|
3961
4264
|
}) {
|
|
3962
|
-
const [addValue, setAddValue] =
|
|
4265
|
+
const [addValue, setAddValue] = useState11("");
|
|
3963
4266
|
const submitAdd = () => {
|
|
3964
4267
|
const query = addValue.trim();
|
|
3965
4268
|
if (!query || addDisabled || !onAddSong) {
|
|
@@ -3968,8 +4271,8 @@ function SongRequestList({
|
|
|
3968
4271
|
onAddSong(query);
|
|
3969
4272
|
setAddValue("");
|
|
3970
4273
|
};
|
|
3971
|
-
const addBar = onAddSong ? /* @__PURE__ */
|
|
3972
|
-
/* @__PURE__ */
|
|
4274
|
+
const addBar = onAddSong ? /* @__PURE__ */ jsxs25("div", { className: "ls-songreq__addbar", children: [
|
|
4275
|
+
/* @__PURE__ */ jsx35(
|
|
3973
4276
|
LSInput,
|
|
3974
4277
|
{
|
|
3975
4278
|
className: "ls-songreq__addinput",
|
|
@@ -3985,51 +4288,51 @@ function SongRequestList({
|
|
|
3985
4288
|
}
|
|
3986
4289
|
}
|
|
3987
4290
|
),
|
|
3988
|
-
/* @__PURE__ */
|
|
4291
|
+
/* @__PURE__ */ jsx35(LSButton, { size: "small", label: addLabel, disabled: addDisabled || !addValue.trim(), onClick: submitAdd })
|
|
3989
4292
|
] }) : null;
|
|
3990
4293
|
if (!nowPlaying) {
|
|
3991
4294
|
if (!addBar) {
|
|
3992
|
-
return /* @__PURE__ */
|
|
4295
|
+
return /* @__PURE__ */ jsx35("div", { className: classNames22("ls-songreq", "ls-songreq--empty", className), children: emptyText ?? "Nothing playing" });
|
|
3993
4296
|
}
|
|
3994
|
-
return /* @__PURE__ */
|
|
4297
|
+
return /* @__PURE__ */ jsxs25("div", { className: classNames22("ls-songreq", className), children: [
|
|
3995
4298
|
addBar,
|
|
3996
|
-
/* @__PURE__ */
|
|
4299
|
+
/* @__PURE__ */ jsx35("div", { className: "ls-songreq__empty", children: emptyText ?? "Nothing playing" })
|
|
3997
4300
|
] });
|
|
3998
4301
|
}
|
|
3999
4302
|
const clampedProgress = Math.min(100, Math.max(0, progress));
|
|
4000
|
-
return /* @__PURE__ */
|
|
4303
|
+
return /* @__PURE__ */ jsxs25("div", { className: classNames22("ls-songreq", className), children: [
|
|
4001
4304
|
addBar,
|
|
4002
|
-
/* @__PURE__ */
|
|
4003
|
-
showArt && nowPlaying.art ? /* @__PURE__ */
|
|
4004
|
-
/* @__PURE__ */
|
|
4005
|
-
/* @__PURE__ */
|
|
4006
|
-
nowPlaying.artist ? /* @__PURE__ */
|
|
4007
|
-
showRequester && nowPlaying.requester ? /* @__PURE__ */
|
|
4305
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__now", children: [
|
|
4306
|
+
showArt && nowPlaying.art ? /* @__PURE__ */ jsx35("img", { className: "ls-songreq__art", src: nowPlaying.art, alt: "" }) : null,
|
|
4307
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__nowbody", children: [
|
|
4308
|
+
/* @__PURE__ */ jsx35("div", { className: "ls-songreq__title", children: nowPlaying.title }),
|
|
4309
|
+
nowPlaying.artist ? /* @__PURE__ */ jsx35("div", { className: "ls-songreq__artist", children: nowPlaying.artist }) : null,
|
|
4310
|
+
showRequester && nowPlaying.requester ? /* @__PURE__ */ jsxs25("div", { className: "ls-songreq__requester", children: [
|
|
4008
4311
|
"requested by ",
|
|
4009
4312
|
nowPlaying.requester
|
|
4010
4313
|
] }) : null,
|
|
4011
|
-
/* @__PURE__ */
|
|
4314
|
+
/* @__PURE__ */ jsx35("div", { className: "ls-songreq__progress", children: /* @__PURE__ */ jsx35("div", { className: "ls-songreq__progressbar", style: { width: `${clampedProgress}%` } }) })
|
|
4012
4315
|
] }),
|
|
4013
|
-
/* @__PURE__ */
|
|
4014
|
-
onPlayPause ? /* @__PURE__ */
|
|
4015
|
-
onSkip ? /* @__PURE__ */
|
|
4316
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__controls", children: [
|
|
4317
|
+
onPlayPause ? /* @__PURE__ */ jsx35("button", { type: "button", className: "ls-songreq__btn", onClick: onPlayPause, title: isPlaying ? "Pause" : "Play", "aria-label": isPlaying ? "Pause" : "Play", children: isPlaying ? "\u23F8" : "\u25B6" }) : null,
|
|
4318
|
+
onSkip ? /* @__PURE__ */ jsx35("button", { type: "button", className: "ls-songreq__btn", onClick: onSkip, title: "Skip", "aria-label": "Skip", children: "\u23ED" }) : null
|
|
4016
4319
|
] })
|
|
4017
4320
|
] }),
|
|
4018
|
-
showQueue ? /* @__PURE__ */
|
|
4019
|
-
/* @__PURE__ */
|
|
4321
|
+
showQueue ? /* @__PURE__ */ jsxs25("div", { className: "ls-songreq__queue", children: [
|
|
4322
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__queuehead", children: [
|
|
4020
4323
|
"Up next \xB7 ",
|
|
4021
4324
|
queue.length
|
|
4022
4325
|
] }),
|
|
4023
|
-
/* @__PURE__ */
|
|
4024
|
-
showArt && item.art ? /* @__PURE__ */
|
|
4025
|
-
/* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4027
|
-
/* @__PURE__ */
|
|
4326
|
+
/* @__PURE__ */ jsx35("div", { className: "ls-songreq__queuelist", children: queue.length === 0 ? /* @__PURE__ */ jsx35("div", { className: "ls-songreq__queueempty", children: "Queue is empty" }) : queue.map((item) => /* @__PURE__ */ jsxs25("div", { className: "ls-songreq__item", children: [
|
|
4327
|
+
showArt && item.art ? /* @__PURE__ */ jsx35("img", { className: "ls-songreq__itemart", src: item.art, alt: "" }) : null,
|
|
4328
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__itembody", children: [
|
|
4329
|
+
/* @__PURE__ */ jsx35("div", { className: "ls-songreq__itemtitle", children: item.title }),
|
|
4330
|
+
/* @__PURE__ */ jsxs25("div", { className: "ls-songreq__itemmeta", children: [
|
|
4028
4331
|
item.artist,
|
|
4029
4332
|
showRequester && item.requester ? ` \xB7 ${item.requester}` : ""
|
|
4030
4333
|
] })
|
|
4031
4334
|
] }),
|
|
4032
|
-
onRemove ? /* @__PURE__ */
|
|
4335
|
+
onRemove ? /* @__PURE__ */ jsx35("button", { type: "button", className: "ls-songreq__remove", onClick: () => onRemove(item.id), title: "Remove", "aria-label": "Remove", children: "\u2715" }) : null
|
|
4033
4336
|
] }, item.id)) })
|
|
4034
4337
|
] }) : null
|
|
4035
4338
|
] });
|
|
@@ -9688,17 +9991,17 @@ async function diagnoseSEAuth(jwt) {
|
|
|
9688
9991
|
}
|
|
9689
9992
|
|
|
9690
9993
|
// src/se-import/ui/SEImportWizard.tsx
|
|
9691
|
-
import { useCallback as useCallback4, useEffect as
|
|
9994
|
+
import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo8, useRef as useRef9, useState as useState13 } from "react";
|
|
9692
9995
|
|
|
9693
9996
|
// src/se-import/ui/MarketplacePicker.tsx
|
|
9694
|
-
import { useEffect as
|
|
9695
|
-
import { jsx as
|
|
9997
|
+
import { useEffect as useEffect9, useMemo as useMemo7, useState as useState12 } from "react";
|
|
9998
|
+
import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9696
9999
|
function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed, onPick, onCancel }) {
|
|
9697
|
-
const candidateIds =
|
|
9698
|
-
const [candidates, setCandidates] =
|
|
9699
|
-
const [activeId, setActiveId] =
|
|
9700
|
-
const [activeLayerId, setActiveLayerId] =
|
|
9701
|
-
|
|
10000
|
+
const candidateIds = useMemo7(() => getMarketplaceCandidates(seWidgetType), [seWidgetType]);
|
|
10001
|
+
const [candidates, setCandidates] = useState12(() => candidateIds.map((id) => ({ id, loading: true })));
|
|
10002
|
+
const [activeId, setActiveId] = useState12(candidateIds[0] ?? null);
|
|
10003
|
+
const [activeLayerId, setActiveLayerId] = useState12(null);
|
|
10004
|
+
useEffect9(() => {
|
|
9702
10005
|
let cancelled = false;
|
|
9703
10006
|
candidateIds.forEach(async (id) => {
|
|
9704
10007
|
try {
|
|
@@ -9715,8 +10018,8 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
9715
10018
|
};
|
|
9716
10019
|
}, [candidateIds, fetchMarketplaceOverlay]);
|
|
9717
10020
|
const activeCandidate = candidates.find((c) => c.id === activeId);
|
|
9718
|
-
const activeLayers =
|
|
9719
|
-
|
|
10021
|
+
const activeLayers = useMemo7(() => activeCandidate?.overlay ? listTransplantableLayers(activeCandidate.overlay) : [], [activeCandidate?.overlay]);
|
|
10022
|
+
useEffect9(() => {
|
|
9720
10023
|
if (activeLayers.length > 0 && !activeLayerId) {
|
|
9721
10024
|
setActiveLayerId(activeLayers[0].id);
|
|
9722
10025
|
}
|
|
@@ -9728,24 +10031,24 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
9728
10031
|
onPick(transplant);
|
|
9729
10032
|
};
|
|
9730
10033
|
if (candidateIds.length === 0) {
|
|
9731
|
-
return /* @__PURE__ */
|
|
9732
|
-
/* @__PURE__ */
|
|
9733
|
-
/* @__PURE__ */
|
|
10034
|
+
return /* @__PURE__ */ jsxs26("div", { className: "ui-flex-column ui-gap-2", style: { padding: 16 }, children: [
|
|
10035
|
+
/* @__PURE__ */ jsx36("div", { style: { fontWeight: 600 }, children: "No marketplace replacements yet" }),
|
|
10036
|
+
/* @__PURE__ */ jsxs26("div", { style: { fontSize: 13, opacity: 0.8 }, children: [
|
|
9734
10037
|
"No curated marketplace overlays are listed for ",
|
|
9735
|
-
/* @__PURE__ */
|
|
10038
|
+
/* @__PURE__ */ jsx36("code", { children: seWidgetType }),
|
|
9736
10039
|
" yet. Use AI generation or skip the widget for now."
|
|
9737
10040
|
] }),
|
|
9738
|
-
/* @__PURE__ */
|
|
10041
|
+
/* @__PURE__ */ jsx36("div", { className: "ui-flex-row", style: { marginTop: 8 }, children: /* @__PURE__ */ jsx36(LSButton, { type: "button", color: "secondary", onClick: onCancel, label: "Close" }) })
|
|
9739
10042
|
] });
|
|
9740
10043
|
}
|
|
9741
|
-
return /* @__PURE__ */
|
|
9742
|
-
/* @__PURE__ */
|
|
9743
|
-
/* @__PURE__ */
|
|
10044
|
+
return /* @__PURE__ */ jsxs26("div", { className: "ui-flex-column ui-gap-2", style: { padding: 16, minHeight: 420 }, children: [
|
|
10045
|
+
/* @__PURE__ */ jsx36("div", { style: { fontWeight: 600, fontSize: 16 }, children: "Pick a marketplace replacement" }),
|
|
10046
|
+
/* @__PURE__ */ jsxs26("div", { style: { fontSize: 13, opacity: 0.8 }, children: [
|
|
9744
10047
|
"Replacing ",
|
|
9745
|
-
/* @__PURE__ */
|
|
10048
|
+
/* @__PURE__ */ jsx36("code", { children: seWidgetType }),
|
|
9746
10049
|
" with a layer from a curated Lumia Marketplace overlay."
|
|
9747
10050
|
] }),
|
|
9748
|
-
/* @__PURE__ */
|
|
10051
|
+
/* @__PURE__ */ jsx36("div", { className: "ui-flex-row ui-gap-2", style: { flexWrap: "wrap", marginTop: 4 }, children: candidates.map((c) => /* @__PURE__ */ jsx36(
|
|
9749
10052
|
LSButton,
|
|
9750
10053
|
{
|
|
9751
10054
|
type: "button",
|
|
@@ -9758,37 +10061,37 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
9758
10061
|
},
|
|
9759
10062
|
c.id
|
|
9760
10063
|
)) }),
|
|
9761
|
-
activeCandidate?.error && /* @__PURE__ */
|
|
10064
|
+
activeCandidate?.error && /* @__PURE__ */ jsxs26("div", { style: { padding: 12, borderRadius: 6, background: "rgba(220,38,38,0.15)", color: "#fecaca", fontSize: 13 }, children: [
|
|
9762
10065
|
"Failed to load overlay #",
|
|
9763
10066
|
activeCandidate.id,
|
|
9764
10067
|
": ",
|
|
9765
10068
|
activeCandidate.error
|
|
9766
10069
|
] }),
|
|
9767
|
-
activeCandidate?.loading && /* @__PURE__ */
|
|
9768
|
-
activeCandidate?.overlay && /* @__PURE__ */
|
|
9769
|
-
/* @__PURE__ */
|
|
9770
|
-
/* @__PURE__ */
|
|
9771
|
-
activeLayers.map((l) => /* @__PURE__ */
|
|
10070
|
+
activeCandidate?.loading && /* @__PURE__ */ jsx36("div", { style: { padding: 12, fontSize: 13, opacity: 0.8 }, children: "Loading overlay\u2026" }),
|
|
10071
|
+
activeCandidate?.overlay && /* @__PURE__ */ jsxs26("div", { className: "ui-flex-row ui-gap-2", style: { alignItems: "stretch" }, children: [
|
|
10072
|
+
/* @__PURE__ */ jsxs26("div", { style: { flex: "0 0 200px", display: "flex", flexDirection: "column", gap: 4, maxHeight: 320, overflowY: "auto" }, children: [
|
|
10073
|
+
/* @__PURE__ */ jsx36("div", { style: { fontSize: 12, fontWeight: 600, opacity: 0.8 }, children: "Layers" }),
|
|
10074
|
+
activeLayers.map((l) => /* @__PURE__ */ jsx36(
|
|
9772
10075
|
LSButton,
|
|
9773
10076
|
{
|
|
9774
10077
|
type: "button",
|
|
9775
10078
|
color: l.id === activeLayerId ? "primary" : "secondary",
|
|
9776
10079
|
style: { justifyContent: "flex-start", textAlign: "left" },
|
|
9777
10080
|
onClick: () => setActiveLayerId(l.id),
|
|
9778
|
-
label: /* @__PURE__ */
|
|
9779
|
-
/* @__PURE__ */
|
|
9780
|
-
/* @__PURE__ */
|
|
10081
|
+
label: /* @__PURE__ */ jsxs26("div", { style: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: [
|
|
10082
|
+
/* @__PURE__ */ jsx36("div", { style: { fontSize: 12, fontWeight: 600 }, children: l.label }),
|
|
10083
|
+
/* @__PURE__ */ jsx36("div", { style: { fontSize: 10, opacity: 0.7 }, children: l.type })
|
|
9781
10084
|
] })
|
|
9782
10085
|
},
|
|
9783
10086
|
l.id
|
|
9784
10087
|
)),
|
|
9785
|
-
activeLayers.length === 0 && /* @__PURE__ */
|
|
10088
|
+
activeLayers.length === 0 && /* @__PURE__ */ jsx36("div", { style: { fontSize: 12, opacity: 0.7 }, children: "No transplantable layers." })
|
|
9786
10089
|
] }),
|
|
9787
|
-
/* @__PURE__ */
|
|
10090
|
+
/* @__PURE__ */ jsx36("div", { style: { flex: 1, minHeight: 240, background: "rgba(0,0,0,0.3)", borderRadius: 6, overflow: "hidden" }, children: /* @__PURE__ */ jsx36(ActiveLayerPreview, { overlay: activeCandidate.overlay, layerId: activeLayerId, CustomEmbed }) })
|
|
9788
10091
|
] }),
|
|
9789
|
-
/* @__PURE__ */
|
|
9790
|
-
/* @__PURE__ */
|
|
9791
|
-
/* @__PURE__ */
|
|
10092
|
+
/* @__PURE__ */ jsxs26("div", { className: "ui-flex-row ui-gap-2", style: { marginTop: 12, justifyContent: "flex-end" }, children: [
|
|
10093
|
+
/* @__PURE__ */ jsx36(LSButton, { type: "button", color: "secondary", variant: "outlined", onClick: onCancel, label: "Cancel" }),
|
|
10094
|
+
/* @__PURE__ */ jsx36(
|
|
9792
10095
|
LSButton,
|
|
9793
10096
|
{
|
|
9794
10097
|
type: "button",
|
|
@@ -9802,13 +10105,13 @@ function MarketplacePicker({ seWidgetType, fetchMarketplaceOverlay, CustomEmbed,
|
|
|
9802
10105
|
] });
|
|
9803
10106
|
}
|
|
9804
10107
|
function ActiveLayerPreview({ overlay, layerId, CustomEmbed }) {
|
|
9805
|
-
if (!layerId) return /* @__PURE__ */
|
|
10108
|
+
if (!layerId) return /* @__PURE__ */ jsx36("div", { style: { padding: 16, fontSize: 12, opacity: 0.7 }, children: "Select a layer to preview." });
|
|
9806
10109
|
const module = overlay.settings?.modules?.[layerId];
|
|
9807
|
-
if (!module) return /* @__PURE__ */
|
|
10110
|
+
if (!module) return /* @__PURE__ */ jsx36("div", { style: { padding: 16, fontSize: 12, opacity: 0.7 }, children: "Layer not found." });
|
|
9808
10111
|
const type = module.settings?.type;
|
|
9809
10112
|
if (type === "custom" && module.content && CustomEmbed) {
|
|
9810
10113
|
const c = module.content;
|
|
9811
|
-
return /* @__PURE__ */
|
|
10114
|
+
return /* @__PURE__ */ jsx36(
|
|
9812
10115
|
CustomEmbed,
|
|
9813
10116
|
{
|
|
9814
10117
|
codeId: c.codeId ?? layerId,
|
|
@@ -9819,11 +10122,11 @@ function ActiveLayerPreview({ overlay, layerId, CustomEmbed }) {
|
|
|
9819
10122
|
}
|
|
9820
10123
|
);
|
|
9821
10124
|
}
|
|
9822
|
-
return /* @__PURE__ */
|
|
9823
|
-
/* @__PURE__ */
|
|
9824
|
-
/* @__PURE__ */
|
|
10125
|
+
return /* @__PURE__ */ jsxs26("div", { style: { padding: 16, fontSize: 12 }, children: [
|
|
10126
|
+
/* @__PURE__ */ jsx36("div", { style: { fontWeight: 600, marginBottom: 8 }, children: module.settings?.title ?? type }),
|
|
10127
|
+
/* @__PURE__ */ jsxs26("div", { style: { opacity: 0.8 }, children: [
|
|
9825
10128
|
"Preview not available for module type ",
|
|
9826
|
-
/* @__PURE__ */
|
|
10129
|
+
/* @__PURE__ */ jsx36("code", { children: String(type) }),
|
|
9827
10130
|
'. Click "Use this layer" to transplant it anyway.'
|
|
9828
10131
|
] })
|
|
9829
10132
|
] });
|
|
@@ -10959,7 +11262,7 @@ var custom_widget_default = 'data:image/svg+xml,<svg width="16" height="16" view
|
|
|
10959
11262
|
var assets_default = 'data:image/svg+xml,<svg width="48" height="59" viewBox="0 0 48 59" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M47.6196 24.5513V41.5869C47.6196 42.3399 47.3199 43.0622 46.7862 43.5946C46.2525 44.1271 45.5285 44.426 44.7738 44.4261H27.6978C26.9431 44.426 26.2191 44.1271 25.6854 43.5946C25.1518 43.0622 24.8521 42.3399 24.8521 41.5869V18.8726C24.8521 18.1197 25.1517 17.3974 25.6854 16.8649C26.2191 16.3325 26.9431 16.0335 27.6978 16.0335H39.0818L47.6196 24.5513ZM32.7518 30.6559C32.3012 30.6559 31.8691 30.8348 31.5504 31.1534C31.2317 31.4721 31.0525 31.9044 31.0525 32.3551V36.9898C31.0525 37.4405 31.2317 37.8728 31.5504 38.1915C31.8691 38.5101 32.3012 38.689 32.7518 38.6891H38.0045C38.4552 38.6891 38.8876 38.5102 39.2063 38.1915C39.525 37.8728 39.7038 37.4405 39.7038 36.9898V36.0049L41.8168 37.8866C42.3143 38.3295 43.1027 37.976 43.1027 37.3092V31.8083C43.1027 31.1409 42.3143 30.788 41.8168 31.2309L39.7038 33.1126V32.3551C39.7038 31.9044 39.525 31.4721 39.2063 31.1534C38.8876 30.8347 38.4552 30.6559 38.0045 30.6559H32.7518ZM37.6589 25.9711H45.485L37.6589 18.163V25.9711Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7675 8.51781V25.5534C22.7675 26.3064 22.4678 27.0287 21.9341 27.5611C21.4004 28.0936 20.6765 28.3925 19.9217 28.3926H2.84579C2.09106 28.3925 1.36706 28.0936 0.833383 27.5611C0.299704 27.0287 0 26.3064 0 25.5534V2.83914C3.46516e-05 2.08616 0.299694 1.36386 0.833383 0.831425C1.36706 0.298996 2.09106 4.12048e-05 2.84579 0H14.2297L22.7675 8.51781ZM15.5614 14.0434C15.4739 14.0241 15.383 14.0247 15.2956 14.045L9.28308 15.4475C9.1509 15.4784 9.03315 15.5534 8.94878 15.6597C8.86444 15.766 8.81842 15.8978 8.81843 16.0335V21.3474C8.45759 21.2198 8.06549 21.2104 7.6989 21.3203C7.33226 21.4304 7.01003 21.6543 6.77901 21.9596C6.54799 22.2648 6.42011 22.6357 6.4138 23.0184C6.4075 23.4012 6.52298 23.776 6.74378 24.0886C6.96461 24.4013 7.27932 24.6355 7.64215 24.7576C8.00495 24.8797 8.39716 24.8834 8.76206 24.7678C9.12698 24.6522 9.44546 24.4232 9.67178 24.1145C9.8981 23.8057 10.0205 23.433 10.0209 23.0501V18.9157L14.831 17.7934V20.1445C14.47 20.0168 14.0778 20.0074 13.7111 20.1174C13.3444 20.2275 13.0222 20.4514 12.7912 20.7567C12.5603 21.0619 12.4326 21.4328 12.4264 21.8155C12.4201 22.1983 12.5358 22.5734 12.7567 22.8861C12.9777 23.1987 13.2923 23.4328 13.6551 23.5547C14.018 23.6766 14.4105 23.6799 14.7754 23.5641C15.1403 23.4483 15.459 23.2193 15.6851 22.9104C15.9112 22.6015 16.0333 22.2288 16.0335 21.8461C16.0335 21.8032 16.032 21.7605 16.0292 21.7184C16.032 21.694 16.0335 21.6697 16.0335 21.6456V14.6306C16.0335 14.5401 16.013 14.4506 15.9736 14.3691C15.9343 14.2876 15.8769 14.216 15.8061 14.1597L15.8022 14.1569C15.7315 14.1017 15.649 14.0628 15.5614 14.0434ZM12.8068 9.93757H20.633L12.8068 2.12945V9.93757Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7445 43.2905C13.0784 43.2905 14.0388 43.2912 14.7699 43.3896C15.4894 43.4863 15.9266 43.6711 16.2504 43.9951C16.5743 44.3193 16.7591 44.7569 16.8559 45.4763C16.9544 46.2074 16.9554 47.1675 16.9554 48.5014V49.9043C16.9554 51.2383 16.9547 52.1987 16.8563 52.9298C16.7595 53.6493 16.5748 54.0865 16.2508 54.4102C15.9265 54.7342 15.489 54.9189 14.7695 55.0158C14.0385 55.1142 13.0784 55.1152 11.7445 55.1152H10.3415C9.00759 55.1152 8.04722 55.1145 7.31607 55.0162C6.59659 54.9194 6.1594 54.7346 5.83564 54.4106C5.51168 54.0864 5.32694 53.6489 5.23007 52.9294C5.13166 52.1984 5.13065 51.2382 5.13065 49.9043V48.5014C5.13065 47.1675 5.13135 46.2071 5.22968 45.4759C5.32646 44.7565 5.51124 44.3193 5.83524 43.9955C6.15948 43.6715 6.597 43.4868 7.31646 43.3899C8.04751 43.2915 9.00765 43.2905 10.3415 43.2905H11.7445ZM8.28842 47.459C7.82545 47.4976 7.44577 47.7298 7.10626 48.0027C6.82149 48.2321 6.50307 48.5428 6.13274 48.9124V49.9043C6.13274 50.2663 6.13329 50.5964 6.1347 50.8943L6.91641 50.1126C7.40027 49.6287 7.72283 49.3081 7.98583 49.0956C8.24538 48.8866 8.35792 48.8607 8.40703 48.8572C8.53557 48.8463 8.66468 48.8708 8.78007 48.9285C8.82286 48.9502 8.91773 49.0156 9.08187 49.3074C9.2474 49.602 9.42752 50.0201 9.69683 50.6485L9.73402 50.7358L9.74615 50.7624C9.85061 51.0064 9.94729 51.2321 10.044 51.4102C10.1458 51.5961 10.2932 51.8195 10.5416 51.9731C10.8341 52.1543 11.1831 52.2215 11.5221 52.1622C11.8097 52.111 12.0292 51.959 12.1927 51.8244C12.3484 51.6953 12.5226 51.5211 12.7106 51.3331L12.7313 51.3124C13.0294 51.0143 13.2231 50.8212 13.3823 50.6872C13.5351 50.5582 13.6068 50.5273 13.6461 50.5154C13.7783 50.4755 13.9194 50.4755 14.0516 50.5154C14.0909 50.5273 14.1626 50.5582 14.3155 50.6872C14.4747 50.8212 14.6682 51.0141 14.9668 51.3128L15.9141 52.26C15.9464 51.7564 15.9519 51.1304 15.9533 50.3146L15.9392 50.3009C15.6656 50.0273 15.4301 49.7914 15.2197 49.6139C14.9973 49.4266 14.7552 49.2617 14.4564 49.172C14.0602 49.0525 13.6375 49.0525 13.2413 49.172C12.9425 49.2624 12.7011 49.4266 12.478 49.6139C12.2676 49.7913 12.0321 50.0278 11.7593 50.3013L11.739 50.3208C11.5237 50.5355 11.3971 50.6618 11.2982 50.7424L11.2841 50.7546L11.2759 50.7385C11.2149 50.6263 11.1434 50.4625 11.0234 50.1827L10.9862 50.0958L10.9706 50.0594C10.7209 49.4772 10.5113 48.9874 10.3044 48.6184C10.0904 48.239 9.82392 47.8819 9.40873 47.6743C9.06229 47.5007 8.67451 47.4263 8.28842 47.459ZM14.1996 44.9941C13.6185 44.9941 13.1474 45.4652 13.1474 46.0463C13.1474 46.6274 13.6185 47.0985 14.1996 47.0985C14.7807 47.0985 15.2518 46.6274 15.2518 46.0463C15.2518 45.4652 14.7807 44.9941 14.1996 44.9941Z" fill="white"/>%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7675 38.5807V55.6163C22.7675 56.3693 22.4678 57.0915 21.9341 57.624C21.4004 58.1564 20.6765 58.4554 19.9217 58.4554H2.84579C2.09106 58.4554 1.36706 58.1564 0.833383 57.624C0.299704 57.0915 0 56.3693 0 55.6163V32.902C3.46516e-05 32.149 0.299694 31.4267 0.833383 30.8943C1.36706 30.3619 2.09106 30.0629 2.84579 30.0629H14.2297L22.7675 38.5807ZM10.3415 42.4888C9.03021 42.4888 8.00652 42.488 7.2096 42.5953C6.40115 42.7042 5.76631 42.9309 5.26843 43.4283C4.77051 43.9259 4.54419 44.5607 4.43544 45.3691C4.32825 46.1661 4.32897 47.1901 4.32897 48.5014V49.9043C4.32897 51.2157 4.32816 52.2394 4.43544 53.0363C4.54428 53.8447 4.77099 54.4796 5.26843 54.9774C5.766 55.4754 6.40083 55.7017 7.20921 55.8104C8.00621 55.9176 9.03026 55.9169 10.3415 55.9169H11.7445C13.0558 55.9169 14.0795 55.9177 14.8764 55.8104C15.6849 55.7016 16.3197 55.4749 16.8176 54.9774C17.3155 54.4799 17.5418 53.845 17.6506 53.0367C17.7578 52.2397 17.757 51.2156 17.757 49.9043V48.5014C17.757 47.1901 17.7578 46.1664 17.6506 45.3695C17.5417 44.561 17.315 43.9262 16.8176 43.4283C16.32 42.9304 15.6852 42.7041 14.8768 42.5953C14.0798 42.4881 13.0557 42.4888 11.7445 42.4888H10.3415ZM12.8068 40.0004H20.633L12.8068 32.1923V40.0004Z" fill="white"/>%0A</svg>%0A';
|
|
10960
11263
|
|
|
10961
11264
|
// src/se-import/ui/jwtInstructions.ts
|
|
10962
|
-
import { Fragment as
|
|
11265
|
+
import { Fragment as Fragment13, createElement as createElement2 } from "react";
|
|
10963
11266
|
|
|
10964
11267
|
// src/assets/png/streamElements_copy_jwt.png
|
|
10965
11268
|
var streamElements_copy_jwt_default = "data:image/png;base64,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ypP/UqSnMHP00Uejb9++uPvuu/H333/bfqHwwsGnWMq+GzlypBWdKEBtbap77/MzRdNoHP90CoPMyqUoRHF+0qRJVkC777771sq45vEUeB0hy4F9yW0b8q9n+znhr7rqKuy77762LIrGo0aNwgEHHGAnP0Uz2uzsueeeuPXWW202P8Xo2bNn28xaPoXwyiuvYLfddsPtt99uRdwJEybg6aeftmIZ602R78ADD7RBB4rRf/75J1588UU77hTC7r//fnz99de2DPpKcXzuueceaxFC64kVK1bgzTfftAEe9glFZGZzM+u1adOmNnjA8/Fc1WH7eTwzu1kHXniffPIJvvjiCyuuUgy96aabbDtofdSlSxd89NFH9ny0Gdp///1te1hf9hX7lXOFdRs6bBh85kbw3Xff4Y033rBzijeVRx991D4F0bNnT3vOqVOn2vpRROR4nnHGGbZfmY0+f/58K35SIGRbWQf22zfffIPPPvvM1rH6teGsUcA5QluOJUuWWKGU+7MObCOFUta/T58+tv9Znx9//NEK69XbzCdauL22NvNmx7nJc40ePdpeH6w/7arYD6wjzx3t3cV5yvnFJxk4VkuXLsXPP/2EcUa05vzh8R07dMAQc7Nl4IdiNu9XFLQdeC3wSSD24cyZM219o6OlvK57mvvI6aY/yQ8//IBffvnFtpHn5vF8moKLiXCe/f777/j222/tdsJ5dNxxx9m5TRGYbeMTNewfCtGHHXYYfv75Z/vOYBX7hvWjYN21a1fMmDHDjn30Ncn+4rXDMeI85zvnPP9R6dixI6ZMmWLPwUAH5z/bw39oGAlmP3COs0z2F+c6x5njM8zMNY4tg2Wff/65PQ//AWIbeM0w6MPyGDx5++23qwJeLJdjx76j6M+5RVsalsMAIK97Bi1//fVX21ec35wnbDf76c4777TXT7du3ew1yX9XHCGdfcAAIuHc5lzi3OE2ls99eW+yc8L8xn4677zzbOY92/nee+9VBU42NBaO9RjHok2bNjbAyuO5nW3i2Hxvxp9Z+iyf97K33nrLXgtsE/txr732sk8msV95/P/+97+quVD9Hlzb3KxLllRCCCGEEEIIIcSODv+m33vvvW2SHf9ep47Az9RQqKdQ6yH8e576IzUKagjUPPn3O1/UEatrrBuLo19VZ7MEekecp3hKQYzZ1vRVZyZnTdng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";
|
|
@@ -10971,7 +11274,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
10971
11274
|
return [
|
|
10972
11275
|
{
|
|
10973
11276
|
content: createElement2(
|
|
10974
|
-
|
|
11277
|
+
Fragment13,
|
|
10975
11278
|
null,
|
|
10976
11279
|
"Open ",
|
|
10977
11280
|
createElement2(
|
|
@@ -10984,7 +11287,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
10984
11287
|
},
|
|
10985
11288
|
{
|
|
10986
11289
|
content: createElement2(
|
|
10987
|
-
|
|
11290
|
+
Fragment13,
|
|
10988
11291
|
null,
|
|
10989
11292
|
createElement2("img", {
|
|
10990
11293
|
src: streamElementsCopyJwt,
|
|
@@ -11001,7 +11304,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
11001
11304
|
},
|
|
11002
11305
|
{
|
|
11003
11306
|
content: createElement2(
|
|
11004
|
-
|
|
11307
|
+
Fragment13,
|
|
11005
11308
|
null,
|
|
11006
11309
|
"When you're done, click ",
|
|
11007
11310
|
createElement2("strong", null, "Revoke"),
|
|
@@ -11012,7 +11315,7 @@ function getJwtInstructionSteps({ pasteHint = "above" } = {}) {
|
|
|
11012
11315
|
}
|
|
11013
11316
|
|
|
11014
11317
|
// src/se-import/ui/SEImportWizard.tsx
|
|
11015
|
-
import { Fragment as
|
|
11318
|
+
import { Fragment as Fragment14, jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
11016
11319
|
function buildOverlaySaveBody(result, name, preview) {
|
|
11017
11320
|
return {
|
|
11018
11321
|
name: name.trim() || result.overlay.name,
|
|
@@ -11090,9 +11393,9 @@ function panelClass(extra) {
|
|
|
11090
11393
|
return ["se-import-panel", extra].filter(Boolean).join(" ");
|
|
11091
11394
|
}
|
|
11092
11395
|
function ErrorPanel({ message, hint }) {
|
|
11093
|
-
return /* @__PURE__ */
|
|
11094
|
-
/* @__PURE__ */
|
|
11095
|
-
hint && /* @__PURE__ */
|
|
11396
|
+
return /* @__PURE__ */ jsxs27("div", { className: "se-import-error", children: [
|
|
11397
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-error__title", children: message }),
|
|
11398
|
+
hint && /* @__PURE__ */ jsx37("div", { className: "se-import-error__hint", children: hint })
|
|
11096
11399
|
] });
|
|
11097
11400
|
}
|
|
11098
11401
|
function Field({
|
|
@@ -11102,7 +11405,7 @@ function Field({
|
|
|
11102
11405
|
placeholder,
|
|
11103
11406
|
disabled
|
|
11104
11407
|
}) {
|
|
11105
|
-
return /* @__PURE__ */
|
|
11408
|
+
return /* @__PURE__ */ jsx37("div", { className: "se-import-field", children: /* @__PURE__ */ jsx37(
|
|
11106
11409
|
LSInput,
|
|
11107
11410
|
{
|
|
11108
11411
|
label,
|
|
@@ -11114,7 +11417,7 @@ function Field({
|
|
|
11114
11417
|
) });
|
|
11115
11418
|
}
|
|
11116
11419
|
function ProgressBar({ value, max }) {
|
|
11117
|
-
return /* @__PURE__ */
|
|
11420
|
+
return /* @__PURE__ */ jsx37("progress", { className: "se-import-progress", value: max > 0 ? value : 0, max: max || 1 });
|
|
11118
11421
|
}
|
|
11119
11422
|
function StatusCard({
|
|
11120
11423
|
label,
|
|
@@ -11124,18 +11427,18 @@ function StatusCard({
|
|
|
11124
11427
|
icon,
|
|
11125
11428
|
tone = "neutral"
|
|
11126
11429
|
}) {
|
|
11127
|
-
return /* @__PURE__ */
|
|
11128
|
-
/* @__PURE__ */
|
|
11129
|
-
icon && /* @__PURE__ */
|
|
11130
|
-
/* @__PURE__ */
|
|
11430
|
+
return /* @__PURE__ */ jsxs27("div", { className: `se-import-stat se-import-stat--${tone}`, children: [
|
|
11431
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-stat__label", children: [
|
|
11432
|
+
icon && /* @__PURE__ */ jsx37("img", { src: icon, alt: "", className: "se-import-stat__icon" }),
|
|
11433
|
+
/* @__PURE__ */ jsx37("span", { children: label })
|
|
11131
11434
|
] }),
|
|
11132
|
-
/* @__PURE__ */
|
|
11133
|
-
description && /* @__PURE__ */
|
|
11134
|
-
sub && /* @__PURE__ */
|
|
11435
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-stat__value", children: value }),
|
|
11436
|
+
description && /* @__PURE__ */ jsx37("div", { className: "se-import-stat__description", children: description }),
|
|
11437
|
+
sub && /* @__PURE__ */ jsx37("div", { className: "se-import-stat__sub", children: sub })
|
|
11135
11438
|
] });
|
|
11136
11439
|
}
|
|
11137
11440
|
function CoverageCards({ coverage }) {
|
|
11138
|
-
const byStatus =
|
|
11441
|
+
const byStatus = useMemo8(() => {
|
|
11139
11442
|
const acc = { direct: 0, partial: 0, template: 0, placeholder: 0 };
|
|
11140
11443
|
for (const item of coverage.mappings) acc[item.status] += item.count;
|
|
11141
11444
|
return acc;
|
|
@@ -11172,7 +11475,7 @@ function CoverageCards({ coverage }) {
|
|
|
11172
11475
|
}
|
|
11173
11476
|
].filter((card) => card.value > 0);
|
|
11174
11477
|
if (cards.length === 0) return null;
|
|
11175
|
-
return /* @__PURE__ */
|
|
11478
|
+
return /* @__PURE__ */ jsx37("div", { className: "se-import-grid se-import-grid--stats", children: cards.map((card) => /* @__PURE__ */ jsx37(
|
|
11176
11479
|
StatusCard,
|
|
11177
11480
|
{
|
|
11178
11481
|
label: card.label,
|
|
@@ -11192,7 +11495,7 @@ function CustomOverlayPreview({
|
|
|
11192
11495
|
width,
|
|
11193
11496
|
height
|
|
11194
11497
|
}) {
|
|
11195
|
-
const srcdoc =
|
|
11498
|
+
const srcdoc = useMemo8(() => {
|
|
11196
11499
|
const safeData = JSON.stringify(data ?? {});
|
|
11197
11500
|
const safeJs = (js || "").replace(/<\/script>/gi, "<\\/script>");
|
|
11198
11501
|
const safeHtml = (html || "").replace(/<\/script>/gi, "<\\/script>");
|
|
@@ -11209,7 +11512,7 @@ ${safeJs}
|
|
|
11209
11512
|
})().catch(__seImportShowError);
|
|
11210
11513
|
</script></body></html>`;
|
|
11211
11514
|
}, [html, css, js, data]);
|
|
11212
|
-
return /* @__PURE__ */
|
|
11515
|
+
return /* @__PURE__ */ jsx37(
|
|
11213
11516
|
"iframe",
|
|
11214
11517
|
{
|
|
11215
11518
|
title: "ai-preview",
|
|
@@ -11226,11 +11529,11 @@ function StepHeader({
|
|
|
11226
11529
|
title,
|
|
11227
11530
|
subtitle
|
|
11228
11531
|
}) {
|
|
11229
|
-
return /* @__PURE__ */
|
|
11230
|
-
/* @__PURE__ */
|
|
11231
|
-
/* @__PURE__ */
|
|
11232
|
-
/* @__PURE__ */
|
|
11233
|
-
subtitle && /* @__PURE__ */
|
|
11532
|
+
return /* @__PURE__ */ jsxs27("div", { className: "se-import-section-title", children: [
|
|
11533
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-section-title__num", children: number }),
|
|
11534
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-section-title__content", children: [
|
|
11535
|
+
/* @__PURE__ */ jsx37("h3", { children: title }),
|
|
11536
|
+
subtitle && /* @__PURE__ */ jsx37("p", { children: subtitle })
|
|
11234
11537
|
] })
|
|
11235
11538
|
] });
|
|
11236
11539
|
}
|
|
@@ -11260,7 +11563,7 @@ function ModeCard({
|
|
|
11260
11563
|
icon,
|
|
11261
11564
|
onClick
|
|
11262
11565
|
}) {
|
|
11263
|
-
return /* @__PURE__ */
|
|
11566
|
+
return /* @__PURE__ */ jsxs27(
|
|
11264
11567
|
"button",
|
|
11265
11568
|
{
|
|
11266
11569
|
type: "button",
|
|
@@ -11291,8 +11594,8 @@ function ModeCard({
|
|
|
11291
11594
|
e.currentTarget.style.transform = "translateY(0)";
|
|
11292
11595
|
},
|
|
11293
11596
|
children: [
|
|
11294
|
-
icon && /* @__PURE__ */
|
|
11295
|
-
/* @__PURE__ */
|
|
11597
|
+
icon && /* @__PURE__ */ jsx37("span", { className: "se-import-mode-card__icon", children: /* @__PURE__ */ jsx37("img", { src: icon, alt: "" }) }),
|
|
11598
|
+
/* @__PURE__ */ jsx37(
|
|
11296
11599
|
"div",
|
|
11297
11600
|
{
|
|
11298
11601
|
style: {
|
|
@@ -11303,7 +11606,7 @@ function ModeCard({
|
|
|
11303
11606
|
children: title
|
|
11304
11607
|
}
|
|
11305
11608
|
),
|
|
11306
|
-
/* @__PURE__ */
|
|
11609
|
+
/* @__PURE__ */ jsx37(
|
|
11307
11610
|
"div",
|
|
11308
11611
|
{
|
|
11309
11612
|
style: {
|
|
@@ -11315,7 +11618,7 @@ function ModeCard({
|
|
|
11315
11618
|
children: body
|
|
11316
11619
|
}
|
|
11317
11620
|
),
|
|
11318
|
-
caveat && /* @__PURE__ */
|
|
11621
|
+
caveat && /* @__PURE__ */ jsx37("div", { style: { fontSize: 12, color: "var(--se-muted)", marginTop: "auto" }, children: caveat })
|
|
11319
11622
|
]
|
|
11320
11623
|
}
|
|
11321
11624
|
);
|
|
@@ -11325,8 +11628,8 @@ function StepModePicker({
|
|
|
11325
11628
|
onChooseUrl,
|
|
11326
11629
|
onOpenFullImport
|
|
11327
11630
|
}) {
|
|
11328
|
-
return /* @__PURE__ */
|
|
11329
|
-
/* @__PURE__ */
|
|
11631
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11632
|
+
/* @__PURE__ */ jsx37(
|
|
11330
11633
|
StepHeader,
|
|
11331
11634
|
{
|
|
11332
11635
|
number: 1,
|
|
@@ -11334,7 +11637,7 @@ function StepModePicker({
|
|
|
11334
11637
|
subtitle: "Pick a starting point. You can change your mind from the Back button on the next step."
|
|
11335
11638
|
}
|
|
11336
11639
|
),
|
|
11337
|
-
/* @__PURE__ */
|
|
11640
|
+
/* @__PURE__ */ jsxs27(
|
|
11338
11641
|
"div",
|
|
11339
11642
|
{
|
|
11340
11643
|
style: {
|
|
@@ -11344,38 +11647,38 @@ function StepModePicker({
|
|
|
11344
11647
|
marginTop: onOpenFullImport ? 18 : 8
|
|
11345
11648
|
},
|
|
11346
11649
|
children: [
|
|
11347
|
-
onOpenFullImport && /* @__PURE__ */
|
|
11650
|
+
onOpenFullImport && /* @__PURE__ */ jsx37(
|
|
11348
11651
|
ModeCard,
|
|
11349
11652
|
{
|
|
11350
11653
|
title: "Move your full StreamElements setup",
|
|
11351
11654
|
icon: source_se_default,
|
|
11352
|
-
body: /* @__PURE__ */
|
|
11353
|
-
/* @__PURE__ */
|
|
11354
|
-
/* @__PURE__ */
|
|
11655
|
+
body: /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
11656
|
+
/* @__PURE__ */ jsx37("div", { style: { marginBottom: 12 }, children: "Open the dedicated Lumia Stream import page for counters, commands, loyalty, timers, tips, and activity." }),
|
|
11657
|
+
/* @__PURE__ */ jsx37("ul", { className: "se-import-mode-card__features", children: FULL_IMPORT_FEATURES.map((feat) => /* @__PURE__ */ jsx37("li", { children: feat }, feat)) })
|
|
11355
11658
|
] }),
|
|
11356
11659
|
onClick: onOpenFullImport
|
|
11357
11660
|
}
|
|
11358
11661
|
),
|
|
11359
|
-
/* @__PURE__ */
|
|
11662
|
+
/* @__PURE__ */ jsx37(
|
|
11360
11663
|
ModeCard,
|
|
11361
11664
|
{
|
|
11362
11665
|
primary: true,
|
|
11363
11666
|
title: "Import a single overlay",
|
|
11364
11667
|
icon: assets_default,
|
|
11365
|
-
body: /* @__PURE__ */
|
|
11668
|
+
body: /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
11366
11669
|
"Paste a single overlay's public preview URL to bring just that overlay over.",
|
|
11367
|
-
/* @__PURE__ */
|
|
11670
|
+
/* @__PURE__ */ jsx37("div", { style: { marginTop: 10, color: "var(--se-muted)" }, children: "No login required \u2014 perfect for trying one overlay before deciding whether to migrate your whole account." })
|
|
11368
11671
|
] }),
|
|
11369
11672
|
onClick: onChooseUrl
|
|
11370
11673
|
}
|
|
11371
11674
|
),
|
|
11372
|
-
!onOpenFullImport && /* @__PURE__ */
|
|
11675
|
+
!onOpenFullImport && /* @__PURE__ */ jsx37(
|
|
11373
11676
|
ModeCard,
|
|
11374
11677
|
{
|
|
11375
11678
|
title: "Import everything from StreamElements",
|
|
11376
|
-
body: /* @__PURE__ */
|
|
11377
|
-
/* @__PURE__ */
|
|
11378
|
-
/* @__PURE__ */
|
|
11679
|
+
body: /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
11680
|
+
/* @__PURE__ */ jsx37("div", { style: { marginBottom: 10 }, children: "Connect once and bring over your entire SE setup:" }),
|
|
11681
|
+
/* @__PURE__ */ jsx37(
|
|
11379
11682
|
"ul",
|
|
11380
11683
|
{
|
|
11381
11684
|
style: {
|
|
@@ -11385,7 +11688,7 @@ function StepModePicker({
|
|
|
11385
11688
|
gap: 6,
|
|
11386
11689
|
fontSize: 13
|
|
11387
11690
|
},
|
|
11388
|
-
children: JWT_FEATURES.map((feat) => /* @__PURE__ */
|
|
11691
|
+
children: JWT_FEATURES.map((feat) => /* @__PURE__ */ jsx37("li", { children: feat }, feat))
|
|
11389
11692
|
}
|
|
11390
11693
|
)
|
|
11391
11694
|
] }),
|
|
@@ -11408,8 +11711,8 @@ function StepConnect({
|
|
|
11408
11711
|
setSelectedChannelId,
|
|
11409
11712
|
onUseUrl
|
|
11410
11713
|
}) {
|
|
11411
|
-
return /* @__PURE__ */
|
|
11412
|
-
/* @__PURE__ */
|
|
11714
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--narrow"), children: [
|
|
11715
|
+
/* @__PURE__ */ jsx37(
|
|
11413
11716
|
StepHeader,
|
|
11414
11717
|
{
|
|
11415
11718
|
number: 1,
|
|
@@ -11417,7 +11720,7 @@ function StepConnect({
|
|
|
11417
11720
|
subtitle: "Paste your StreamElements JWT to import overlays, live counters, chat commands, loyalty points, watch time, and recent events. The token is read in your browser only. Lumia never sends it to our servers."
|
|
11418
11721
|
}
|
|
11419
11722
|
),
|
|
11420
|
-
/* @__PURE__ */
|
|
11723
|
+
/* @__PURE__ */ jsx37(
|
|
11421
11724
|
Field,
|
|
11422
11725
|
{
|
|
11423
11726
|
label: "StreamElements JWT",
|
|
@@ -11427,16 +11730,16 @@ function StepConnect({
|
|
|
11427
11730
|
disabled: busy
|
|
11428
11731
|
}
|
|
11429
11732
|
),
|
|
11430
|
-
busy && /* @__PURE__ */
|
|
11431
|
-
/* @__PURE__ */
|
|
11432
|
-
/* @__PURE__ */
|
|
11733
|
+
busy && /* @__PURE__ */ jsxs27("div", { className: "se-import-token-loading", "aria-live": "polite", children: [
|
|
11734
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-spinner" }),
|
|
11735
|
+
/* @__PURE__ */ jsx37("span", { children: "Checking your token and loading StreamElements data." })
|
|
11433
11736
|
] }),
|
|
11434
|
-
channels && channels.length > 1 && /* @__PURE__ */
|
|
11435
|
-
/* @__PURE__ */
|
|
11436
|
-
/* @__PURE__ */
|
|
11437
|
-
/* @__PURE__ */
|
|
11438
|
-
/* @__PURE__ */
|
|
11439
|
-
/* @__PURE__ */
|
|
11737
|
+
channels && channels.length > 1 && /* @__PURE__ */ jsxs27("div", { className: "se-import-help se-import-help--info", children: [
|
|
11738
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__icon", children: "i" }),
|
|
11739
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
11740
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__title", children: "Pick a channel" }),
|
|
11741
|
+
/* @__PURE__ */ jsx37("p", { children: "This account has multiple StreamElements channels. Choose which one to import from." }),
|
|
11742
|
+
/* @__PURE__ */ jsx37("div", { style: { display: "grid", gap: 8, marginTop: 12 }, children: channels.map((c) => /* @__PURE__ */ jsxs27(
|
|
11440
11743
|
"label",
|
|
11441
11744
|
{
|
|
11442
11745
|
style: {
|
|
@@ -11450,7 +11753,7 @@ function StepConnect({
|
|
|
11450
11753
|
cursor: "pointer"
|
|
11451
11754
|
},
|
|
11452
11755
|
children: [
|
|
11453
|
-
/* @__PURE__ */
|
|
11756
|
+
/* @__PURE__ */ jsx37(
|
|
11454
11757
|
"input",
|
|
11455
11758
|
{
|
|
11456
11759
|
type: "radio",
|
|
@@ -11459,7 +11762,7 @@ function StepConnect({
|
|
|
11459
11762
|
onChange: () => setSelectedChannelId(c._id)
|
|
11460
11763
|
}
|
|
11461
11764
|
),
|
|
11462
|
-
c.avatar && /* @__PURE__ */
|
|
11765
|
+
c.avatar && /* @__PURE__ */ jsx37(
|
|
11463
11766
|
"img",
|
|
11464
11767
|
{
|
|
11465
11768
|
src: c.avatar,
|
|
@@ -11469,9 +11772,9 @@ function StepConnect({
|
|
|
11469
11772
|
style: { borderRadius: "50%" }
|
|
11470
11773
|
}
|
|
11471
11774
|
),
|
|
11472
|
-
/* @__PURE__ */
|
|
11473
|
-
/* @__PURE__ */
|
|
11474
|
-
/* @__PURE__ */
|
|
11775
|
+
/* @__PURE__ */ jsxs27("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
11776
|
+
/* @__PURE__ */ jsx37("span", { style: { fontWeight: 700 }, children: c.displayName ?? c.username }),
|
|
11777
|
+
/* @__PURE__ */ jsxs27("span", { style: { fontSize: 12, color: "var(--se-muted)" }, children: [
|
|
11475
11778
|
c.provider,
|
|
11476
11779
|
" \xB7 ",
|
|
11477
11780
|
c.username
|
|
@@ -11483,17 +11786,17 @@ function StepConnect({
|
|
|
11483
11786
|
)) })
|
|
11484
11787
|
] })
|
|
11485
11788
|
] }),
|
|
11486
|
-
/* @__PURE__ */
|
|
11487
|
-
/* @__PURE__ */
|
|
11488
|
-
/* @__PURE__ */
|
|
11489
|
-
/* @__PURE__ */
|
|
11490
|
-
/* @__PURE__ */
|
|
11789
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-help", children: [
|
|
11790
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__icon", children: "i" }),
|
|
11791
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
11792
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__title", children: "How to find your JWT" }),
|
|
11793
|
+
/* @__PURE__ */ jsx37("ol", { children: getJwtInstructionSteps({ pasteHint: "above" }).map((step, i) => /* @__PURE__ */ jsx37("li", { children: step.content }, i)) })
|
|
11491
11794
|
] })
|
|
11492
11795
|
] }),
|
|
11493
|
-
/* @__PURE__ */
|
|
11796
|
+
/* @__PURE__ */ jsxs27("div", { style: { marginTop: 16, fontSize: 13, color: "var(--se-muted)" }, children: [
|
|
11494
11797
|
"Prefer to import just a single overlay without logging in?",
|
|
11495
11798
|
" ",
|
|
11496
|
-
/* @__PURE__ */
|
|
11799
|
+
/* @__PURE__ */ jsx37(
|
|
11497
11800
|
"a",
|
|
11498
11801
|
{
|
|
11499
11802
|
href: "#",
|
|
@@ -11507,7 +11810,7 @@ function StepConnect({
|
|
|
11507
11810
|
),
|
|
11508
11811
|
"."
|
|
11509
11812
|
] }),
|
|
11510
|
-
error && /* @__PURE__ */
|
|
11813
|
+
error && /* @__PURE__ */ jsx37(ErrorPanel, { message: error.message, hint: error.hint })
|
|
11511
11814
|
] });
|
|
11512
11815
|
}
|
|
11513
11816
|
function StepPickOverlay({
|
|
@@ -11524,8 +11827,8 @@ function StepPickOverlay({
|
|
|
11524
11827
|
const total = overlays?.length ?? 0;
|
|
11525
11828
|
const allSelected = total > 0 && selectedCount === total;
|
|
11526
11829
|
const hasAnySelected = selectedCount > 0;
|
|
11527
|
-
return /* @__PURE__ */
|
|
11528
|
-
/* @__PURE__ */
|
|
11830
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
11831
|
+
/* @__PURE__ */ jsx37(
|
|
11529
11832
|
StepHeader,
|
|
11530
11833
|
{
|
|
11531
11834
|
number: 2,
|
|
@@ -11533,23 +11836,23 @@ function StepPickOverlay({
|
|
|
11533
11836
|
subtitle: `Select one or more StreamElements overlays from your account. Each selected overlay will be created as a separate Lumia overlay. ${total > 0 ? `${total} overlay${total === 1 ? "" : "s"} on this channel.` : ""}`
|
|
11534
11837
|
}
|
|
11535
11838
|
),
|
|
11536
|
-
loading && /* @__PURE__ */
|
|
11537
|
-
/* @__PURE__ */
|
|
11538
|
-
/* @__PURE__ */
|
|
11839
|
+
loading && /* @__PURE__ */ jsxs27("div", { className: "se-import-help se-import-help--info", children: [
|
|
11840
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__icon", children: "\u2026" }),
|
|
11841
|
+
/* @__PURE__ */ jsx37("div", { children: "Fetching your StreamElements overlays." })
|
|
11539
11842
|
] }),
|
|
11540
|
-
error && /* @__PURE__ */
|
|
11541
|
-
/* @__PURE__ */
|
|
11542
|
-
/* @__PURE__ */
|
|
11843
|
+
error && /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
11844
|
+
/* @__PURE__ */ jsx37(ErrorPanel, { message: error.message, hint: error.hint }),
|
|
11845
|
+
/* @__PURE__ */ jsx37("div", { style: { marginTop: 12 }, children: /* @__PURE__ */ jsx37(LSButton, { type: "button", color: "secondary", onClick: onRetry, label: "Retry" }) })
|
|
11543
11846
|
] }),
|
|
11544
|
-
!loading && !error && overlays && overlays.length === 0 && /* @__PURE__ */
|
|
11545
|
-
/* @__PURE__ */
|
|
11546
|
-
/* @__PURE__ */
|
|
11547
|
-
/* @__PURE__ */
|
|
11548
|
-
/* @__PURE__ */
|
|
11847
|
+
!loading && !error && overlays && overlays.length === 0 && /* @__PURE__ */ jsxs27("div", { className: "se-import-help se-import-help--info", children: [
|
|
11848
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__icon", children: "i" }),
|
|
11849
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
11850
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__title", children: "No overlays found" }),
|
|
11851
|
+
/* @__PURE__ */ jsx37("p", { children: "This StreamElements account doesn't have any overlays yet. Create one in the SE dashboard, or use the legacy preview URL flow from the Connect step." })
|
|
11549
11852
|
] })
|
|
11550
11853
|
] }),
|
|
11551
|
-
!loading && !error && overlays && overlays.length > 0 && /* @__PURE__ */
|
|
11552
|
-
/* @__PURE__ */
|
|
11854
|
+
!loading && !error && overlays && overlays.length > 0 && /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
11855
|
+
/* @__PURE__ */ jsxs27(
|
|
11553
11856
|
"div",
|
|
11554
11857
|
{
|
|
11555
11858
|
className: "se-import-actions se-import-actions--inline",
|
|
@@ -11561,7 +11864,7 @@ function StepPickOverlay({
|
|
|
11561
11864
|
display: "flex"
|
|
11562
11865
|
},
|
|
11563
11866
|
children: [
|
|
11564
|
-
/* @__PURE__ */
|
|
11867
|
+
/* @__PURE__ */ jsxs27(
|
|
11565
11868
|
"label",
|
|
11566
11869
|
{
|
|
11567
11870
|
style: {
|
|
@@ -11573,7 +11876,7 @@ function StepPickOverlay({
|
|
|
11573
11876
|
fontWeight: 600
|
|
11574
11877
|
},
|
|
11575
11878
|
children: [
|
|
11576
|
-
/* @__PURE__ */
|
|
11879
|
+
/* @__PURE__ */ jsx37(
|
|
11577
11880
|
LSCheckbox,
|
|
11578
11881
|
{
|
|
11579
11882
|
checked: allSelected,
|
|
@@ -11582,7 +11885,7 @@ function StepPickOverlay({
|
|
|
11582
11885
|
size: "small"
|
|
11583
11886
|
}
|
|
11584
11887
|
),
|
|
11585
|
-
/* @__PURE__ */
|
|
11888
|
+
/* @__PURE__ */ jsxs27("span", { children: [
|
|
11586
11889
|
allSelected ? "Deselect all" : "Select all",
|
|
11587
11890
|
" (",
|
|
11588
11891
|
selectedCount,
|
|
@@ -11593,11 +11896,11 @@ function StepPickOverlay({
|
|
|
11593
11896
|
]
|
|
11594
11897
|
}
|
|
11595
11898
|
),
|
|
11596
|
-
/* @__PURE__ */
|
|
11899
|
+
/* @__PURE__ */ jsx37("span", { style: { fontSize: 13, color: "var(--se-muted)" }, children: hasAnySelected ? selectedCount > 1 ? `${selectedCount} overlays selected. Each will be created as its own Lumia overlay.` : "1 overlay selected. It will open the full review flow." : "Click overlays below to select them." })
|
|
11597
11900
|
]
|
|
11598
11901
|
}
|
|
11599
11902
|
),
|
|
11600
|
-
/* @__PURE__ */
|
|
11903
|
+
/* @__PURE__ */ jsx37(
|
|
11601
11904
|
"div",
|
|
11602
11905
|
{
|
|
11603
11906
|
className: "se-import-grid",
|
|
@@ -11608,7 +11911,7 @@ function StepPickOverlay({
|
|
|
11608
11911
|
},
|
|
11609
11912
|
children: overlays.map((o) => {
|
|
11610
11913
|
const selected = selectedIds.has(o._id);
|
|
11611
|
-
return /* @__PURE__ */
|
|
11914
|
+
return /* @__PURE__ */ jsxs27(
|
|
11612
11915
|
"label",
|
|
11613
11916
|
{
|
|
11614
11917
|
style: {
|
|
@@ -11623,7 +11926,7 @@ function StepPickOverlay({
|
|
|
11623
11926
|
transition: "border-color 120ms, background 120ms"
|
|
11624
11927
|
},
|
|
11625
11928
|
children: [
|
|
11626
|
-
/* @__PURE__ */
|
|
11929
|
+
/* @__PURE__ */ jsx37(
|
|
11627
11930
|
LSCheckbox,
|
|
11628
11931
|
{
|
|
11629
11932
|
checked: selected,
|
|
@@ -11637,7 +11940,7 @@ function StepPickOverlay({
|
|
|
11637
11940
|
}
|
|
11638
11941
|
}
|
|
11639
11942
|
),
|
|
11640
|
-
o.preview ? /* @__PURE__ */
|
|
11943
|
+
o.preview ? /* @__PURE__ */ jsx37(
|
|
11641
11944
|
"img",
|
|
11642
11945
|
{
|
|
11643
11946
|
src: o.preview,
|
|
@@ -11651,7 +11954,7 @@ function StepPickOverlay({
|
|
|
11651
11954
|
},
|
|
11652
11955
|
loading: "lazy"
|
|
11653
11956
|
}
|
|
11654
|
-
) : /* @__PURE__ */
|
|
11957
|
+
) : /* @__PURE__ */ jsx37(
|
|
11655
11958
|
"div",
|
|
11656
11959
|
{
|
|
11657
11960
|
style: {
|
|
@@ -11662,7 +11965,7 @@ function StepPickOverlay({
|
|
|
11662
11965
|
}
|
|
11663
11966
|
}
|
|
11664
11967
|
),
|
|
11665
|
-
/* @__PURE__ */
|
|
11968
|
+
/* @__PURE__ */ jsx37(
|
|
11666
11969
|
"div",
|
|
11667
11970
|
{
|
|
11668
11971
|
style: {
|
|
@@ -11675,7 +11978,7 @@ function StepPickOverlay({
|
|
|
11675
11978
|
children: o.name ?? "Unnamed overlay"
|
|
11676
11979
|
}
|
|
11677
11980
|
),
|
|
11678
|
-
/* @__PURE__ */
|
|
11981
|
+
/* @__PURE__ */ jsxs27(
|
|
11679
11982
|
"div",
|
|
11680
11983
|
{
|
|
11681
11984
|
style: {
|
|
@@ -11689,7 +11992,7 @@ function StepPickOverlay({
|
|
|
11689
11992
|
]
|
|
11690
11993
|
}
|
|
11691
11994
|
),
|
|
11692
|
-
o.updatedAt && /* @__PURE__ */
|
|
11995
|
+
o.updatedAt && /* @__PURE__ */ jsxs27(
|
|
11693
11996
|
"div",
|
|
11694
11997
|
{
|
|
11695
11998
|
style: {
|
|
@@ -11720,8 +12023,8 @@ function StepURL({
|
|
|
11720
12023
|
busy,
|
|
11721
12024
|
onSwitchToJwt
|
|
11722
12025
|
}) {
|
|
11723
|
-
return /* @__PURE__ */
|
|
11724
|
-
/* @__PURE__ */
|
|
12026
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--narrow"), children: [
|
|
12027
|
+
/* @__PURE__ */ jsx37(
|
|
11725
12028
|
StepHeader,
|
|
11726
12029
|
{
|
|
11727
12030
|
number: 1,
|
|
@@ -11729,7 +12032,7 @@ function StepURL({
|
|
|
11729
12032
|
subtitle: "StreamElements (classic or Element). The wizard auto-detects which one you pasted."
|
|
11730
12033
|
}
|
|
11731
12034
|
),
|
|
11732
|
-
/* @__PURE__ */
|
|
12035
|
+
/* @__PURE__ */ jsx37(
|
|
11733
12036
|
LSInput,
|
|
11734
12037
|
{
|
|
11735
12038
|
label: "Overlay URL",
|
|
@@ -11739,15 +12042,15 @@ function StepURL({
|
|
|
11739
12042
|
disabled: busy
|
|
11740
12043
|
}
|
|
11741
12044
|
),
|
|
11742
|
-
/* @__PURE__ */
|
|
11743
|
-
/* @__PURE__ */
|
|
11744
|
-
/* @__PURE__ */
|
|
11745
|
-
/* @__PURE__ */
|
|
11746
|
-
/* @__PURE__ */
|
|
11747
|
-
/* @__PURE__ */
|
|
12045
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-help", children: [
|
|
12046
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__icon", children: "i" }),
|
|
12047
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
12048
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-help__title", children: "How to find the overlay URL" }),
|
|
12049
|
+
/* @__PURE__ */ jsxs27("ol", { children: [
|
|
12050
|
+
/* @__PURE__ */ jsxs27("li", { children: [
|
|
11748
12051
|
"Open",
|
|
11749
12052
|
" ",
|
|
11750
|
-
/* @__PURE__ */
|
|
12053
|
+
/* @__PURE__ */ jsx37(
|
|
11751
12054
|
"a",
|
|
11752
12055
|
{
|
|
11753
12056
|
href: "https://streamelements.com/dashboard/overlays",
|
|
@@ -11758,14 +12061,14 @@ function StepURL({
|
|
|
11758
12061
|
),
|
|
11759
12062
|
"."
|
|
11760
12063
|
] }),
|
|
11761
|
-
/* @__PURE__ */
|
|
11762
|
-
/* @__PURE__ */
|
|
11763
|
-
/* @__PURE__ */
|
|
12064
|
+
/* @__PURE__ */ jsx37("li", { children: "Click the overlay you want to bring over." }),
|
|
12065
|
+
/* @__PURE__ */ jsx37("li", { children: "Click Copy URL in the top right of the editor." }),
|
|
12066
|
+
/* @__PURE__ */ jsx37("li", { children: "Paste it above." })
|
|
11764
12067
|
] })
|
|
11765
12068
|
] })
|
|
11766
12069
|
] }),
|
|
11767
|
-
error && /* @__PURE__ */
|
|
11768
|
-
error?.editorUrl && onSwitchToJwt && /* @__PURE__ */
|
|
12070
|
+
error && /* @__PURE__ */ jsx37(ErrorPanel, { message: error.message, hint: error.hint }),
|
|
12071
|
+
error?.editorUrl && onSwitchToJwt && /* @__PURE__ */ jsx37("div", { style: { marginTop: 12 }, children: /* @__PURE__ */ jsx37(
|
|
11769
12072
|
LSButton,
|
|
11770
12073
|
{
|
|
11771
12074
|
type: "button",
|
|
@@ -11830,15 +12133,15 @@ function StepDiscovery({
|
|
|
11830
12133
|
description: "Remote media files Lumia can mirror into local storage."
|
|
11831
12134
|
}
|
|
11832
12135
|
].filter((card) => card.value > 0);
|
|
11833
|
-
return /* @__PURE__ */
|
|
11834
|
-
/* @__PURE__ */
|
|
12136
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
12137
|
+
/* @__PURE__ */ jsx37(
|
|
11835
12138
|
StepHeader,
|
|
11836
12139
|
{
|
|
11837
12140
|
number: 2,
|
|
11838
12141
|
title: overlayCount > 1 ? "Here's what we found in your overlays" : "Here's what we found in your overlay"
|
|
11839
12142
|
}
|
|
11840
12143
|
),
|
|
11841
|
-
topCards.length > 0 && /* @__PURE__ */
|
|
12144
|
+
topCards.length > 0 && /* @__PURE__ */ jsx37("div", { className: "se-import-grid se-import-grid--stats", children: topCards.map((card) => /* @__PURE__ */ jsx37(
|
|
11842
12145
|
StatusCard,
|
|
11843
12146
|
{
|
|
11844
12147
|
label: card.label,
|
|
@@ -11848,8 +12151,8 @@ function StepDiscovery({
|
|
|
11848
12151
|
},
|
|
11849
12152
|
card.key
|
|
11850
12153
|
)) }),
|
|
11851
|
-
/* @__PURE__ */
|
|
11852
|
-
reviewCount > 0 && /* @__PURE__ */
|
|
12154
|
+
/* @__PURE__ */ jsx37(CoverageCards, { coverage: result.coverage }),
|
|
12155
|
+
reviewCount > 0 && /* @__PURE__ */ jsx37("div", { className: "se-import-grid se-import-grid--two", children: /* @__PURE__ */ jsx37(
|
|
11853
12156
|
StatusCard,
|
|
11854
12157
|
{
|
|
11855
12158
|
label: "Review choices",
|
|
@@ -11867,19 +12170,19 @@ function StepOptions({
|
|
|
11867
12170
|
assetCount,
|
|
11868
12171
|
hideName = false
|
|
11869
12172
|
}) {
|
|
11870
|
-
return /* @__PURE__ */
|
|
11871
|
-
/* @__PURE__ */
|
|
11872
|
-
/* @__PURE__ */
|
|
11873
|
-
/* @__PURE__ */
|
|
11874
|
-
/* @__PURE__ */
|
|
11875
|
-
/* @__PURE__ */
|
|
11876
|
-
/* @__PURE__ */
|
|
12173
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--medium"), children: [
|
|
12174
|
+
/* @__PURE__ */ jsx37(StepHeader, { number: 3, title: "Options", subtitle: "Choose how to handle your assets" }),
|
|
12175
|
+
/* @__PURE__ */ jsxs27("label", { className: `se-import-option ${assetCount === 0 ? "se-import-option--disabled" : ""}`, children: [
|
|
12176
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-option__icon", children: /* @__PURE__ */ jsx37("img", { src: assets_default, alt: "" }) }),
|
|
12177
|
+
/* @__PURE__ */ jsxs27("span", { className: "se-import-option__body", children: [
|
|
12178
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-option__title", children: "Mirror StreamElements assets to Lumia storage" }),
|
|
12179
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-option__copy", children: "Downloads every cdn.streamelements.com URL referenced in the overlay, uploads it to your Lumia asset library, then rewrites the URLs." })
|
|
11877
12180
|
] }),
|
|
11878
|
-
/* @__PURE__ */
|
|
12181
|
+
/* @__PURE__ */ jsxs27("span", { className: "se-import-option__count", children: [
|
|
11879
12182
|
assetCount,
|
|
11880
12183
|
" files"
|
|
11881
12184
|
] }),
|
|
11882
|
-
/* @__PURE__ */
|
|
12185
|
+
/* @__PURE__ */ jsx37(
|
|
11883
12186
|
"input",
|
|
11884
12187
|
{
|
|
11885
12188
|
type: "checkbox",
|
|
@@ -11888,9 +12191,9 @@ function StepOptions({
|
|
|
11888
12191
|
onChange: (e) => setOptions({ ...options, mirrorAssets: e.target.checked })
|
|
11889
12192
|
}
|
|
11890
12193
|
),
|
|
11891
|
-
/* @__PURE__ */
|
|
12194
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-toggle" })
|
|
11892
12195
|
] }),
|
|
11893
|
-
!hideName && /* @__PURE__ */
|
|
12196
|
+
!hideName && /* @__PURE__ */ jsx37(
|
|
11894
12197
|
LSInput,
|
|
11895
12198
|
{
|
|
11896
12199
|
label: "Overlay name",
|
|
@@ -11915,15 +12218,15 @@ function fileTypeIcon(url) {
|
|
|
11915
12218
|
return img_default;
|
|
11916
12219
|
}
|
|
11917
12220
|
function AssetTransferAnimation({ complete }) {
|
|
11918
|
-
return /* @__PURE__ */
|
|
12221
|
+
return /* @__PURE__ */ jsxs27(
|
|
11919
12222
|
"div",
|
|
11920
12223
|
{
|
|
11921
12224
|
className: `se-import-transfer ${complete ? "se-import-transfer--complete" : ""}`,
|
|
11922
12225
|
"aria-hidden": "true",
|
|
11923
12226
|
children: [
|
|
11924
|
-
/* @__PURE__ */
|
|
11925
|
-
/* @__PURE__ */
|
|
11926
|
-
/* @__PURE__ */
|
|
12227
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-transfer__source se-import-transfer__source--se", children: /* @__PURE__ */ jsx37("img", { src: source_se_default, alt: "" }) }),
|
|
12228
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-transfer__files", children: [
|
|
12229
|
+
/* @__PURE__ */ jsx37(
|
|
11927
12230
|
"img",
|
|
11928
12231
|
{
|
|
11929
12232
|
className: "se-import-transfer__file se-import-transfer__file--one",
|
|
@@ -11931,7 +12234,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
11931
12234
|
alt: ""
|
|
11932
12235
|
}
|
|
11933
12236
|
),
|
|
11934
|
-
/* @__PURE__ */
|
|
12237
|
+
/* @__PURE__ */ jsx37(
|
|
11935
12238
|
"img",
|
|
11936
12239
|
{
|
|
11937
12240
|
className: "se-import-transfer__file se-import-transfer__file--two",
|
|
@@ -11939,7 +12242,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
11939
12242
|
alt: ""
|
|
11940
12243
|
}
|
|
11941
12244
|
),
|
|
11942
|
-
/* @__PURE__ */
|
|
12245
|
+
/* @__PURE__ */ jsx37(
|
|
11943
12246
|
"img",
|
|
11944
12247
|
{
|
|
11945
12248
|
className: "se-import-transfer__file se-import-transfer__file--three",
|
|
@@ -11947,7 +12250,7 @@ function AssetTransferAnimation({ complete }) {
|
|
|
11947
12250
|
alt: ""
|
|
11948
12251
|
}
|
|
11949
12252
|
),
|
|
11950
|
-
/* @__PURE__ */
|
|
12253
|
+
/* @__PURE__ */ jsx37(
|
|
11951
12254
|
"img",
|
|
11952
12255
|
{
|
|
11953
12256
|
className: "se-import-transfer__file se-import-transfer__file--four",
|
|
@@ -11956,9 +12259,9 @@ function AssetTransferAnimation({ complete }) {
|
|
|
11956
12259
|
}
|
|
11957
12260
|
)
|
|
11958
12261
|
] }),
|
|
11959
|
-
/* @__PURE__ */
|
|
11960
|
-
/* @__PURE__ */
|
|
11961
|
-
complete && /* @__PURE__ */
|
|
12262
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-transfer__source se-import-transfer__source--lumia", children: [
|
|
12263
|
+
/* @__PURE__ */ jsx37("img", { src: source_lumia_default, alt: "" }),
|
|
12264
|
+
complete && /* @__PURE__ */ jsx37("span", { className: "se-import-transfer__done", children: "\u2713" })
|
|
11962
12265
|
] })
|
|
11963
12266
|
]
|
|
11964
12267
|
}
|
|
@@ -11977,8 +12280,8 @@ function StepMirror({
|
|
|
11977
12280
|
const percent = rows.length > 0 ? Math.round(completed / rows.length * 100) : 100;
|
|
11978
12281
|
const complete = !running && completed >= rows.length;
|
|
11979
12282
|
const summary = running ? `Downloading... (${done + reused + keptOnCdn}/${rows.length})` : `Finished. ${done} mirrored${reused ? `, ${reused} reused` : ""}${keptOnCdn ? `, ${keptOnCdn} kept on CDN` : ""}${failed ? `, ${failed} failed` : ""}.`;
|
|
11980
|
-
return /* @__PURE__ */
|
|
11981
|
-
/* @__PURE__ */
|
|
12283
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--wide"), children: [
|
|
12284
|
+
/* @__PURE__ */ jsx37(
|
|
11982
12285
|
StepHeader,
|
|
11983
12286
|
{
|
|
11984
12287
|
number: 4,
|
|
@@ -11986,20 +12289,20 @@ function StepMirror({
|
|
|
11986
12289
|
subtitle: "We're downloading your assets from StreamElements and preparing them for import."
|
|
11987
12290
|
}
|
|
11988
12291
|
),
|
|
11989
|
-
/* @__PURE__ */
|
|
11990
|
-
/* @__PURE__ */
|
|
11991
|
-
/* @__PURE__ */
|
|
11992
|
-
/* @__PURE__ */
|
|
11993
|
-
/* @__PURE__ */
|
|
12292
|
+
/* @__PURE__ */ jsx37(AssetTransferAnimation, { complete }),
|
|
12293
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-mirror-head", children: [
|
|
12294
|
+
/* @__PURE__ */ jsx37("span", { children: summary }),
|
|
12295
|
+
/* @__PURE__ */ jsx37(ProgressBar, { value: completed, max: rows.length }),
|
|
12296
|
+
/* @__PURE__ */ jsxs27("strong", { children: [
|
|
11994
12297
|
percent,
|
|
11995
12298
|
"%"
|
|
11996
12299
|
] })
|
|
11997
12300
|
] }),
|
|
11998
|
-
/* @__PURE__ */
|
|
11999
|
-
/* @__PURE__ */
|
|
12000
|
-
/* @__PURE__ */
|
|
12001
|
-
/* @__PURE__ */
|
|
12002
|
-
row.state === "failed" && /* @__PURE__ */
|
|
12301
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-asset-list", children: rows.map((row, index) => /* @__PURE__ */ jsxs27("div", { className: `se-import-asset-row se-import-asset-row--${row.state}`, children: [
|
|
12302
|
+
/* @__PURE__ */ jsx37("img", { className: "se-import-asset-row__icon", src: fileTypeIcon(row.url), alt: "" }),
|
|
12303
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-asset-row__url", title: row.url, children: row.url }),
|
|
12304
|
+
/* @__PURE__ */ jsx37("span", { className: "se-import-asset-row__state", children: mirrorLabel(row.state) }),
|
|
12305
|
+
row.state === "failed" && /* @__PURE__ */ jsx37(
|
|
12003
12306
|
LSButton,
|
|
12004
12307
|
{
|
|
12005
12308
|
type: "button",
|
|
@@ -12011,7 +12314,7 @@ function StepMirror({
|
|
|
12011
12314
|
label: "Retry"
|
|
12012
12315
|
}
|
|
12013
12316
|
),
|
|
12014
|
-
row.error && /* @__PURE__ */
|
|
12317
|
+
row.error && /* @__PURE__ */ jsx37("span", { className: "se-import-asset-row__error", children: row.error })
|
|
12015
12318
|
] }, row.url)) })
|
|
12016
12319
|
] });
|
|
12017
12320
|
}
|
|
@@ -12034,8 +12337,8 @@ function StepReview({
|
|
|
12034
12337
|
remainingCount,
|
|
12035
12338
|
marketplaceAvailable
|
|
12036
12339
|
}) {
|
|
12037
|
-
return /* @__PURE__ */
|
|
12038
|
-
/* @__PURE__ */
|
|
12340
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--medium"), children: [
|
|
12341
|
+
/* @__PURE__ */ jsx37(
|
|
12039
12342
|
StepHeader,
|
|
12040
12343
|
{
|
|
12041
12344
|
number: 4,
|
|
@@ -12043,21 +12346,21 @@ function StepReview({
|
|
|
12043
12346
|
subtitle: "Choose how to handle this unsupported StreamElements widget"
|
|
12044
12347
|
}
|
|
12045
12348
|
),
|
|
12046
|
-
/* @__PURE__ */
|
|
12047
|
-
/* @__PURE__ */
|
|
12048
|
-
/* @__PURE__ */
|
|
12049
|
-
/* @__PURE__ */
|
|
12349
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-review-card", children: [
|
|
12350
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
12351
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-review-card__type", children: item.seWidget.type }),
|
|
12352
|
+
/* @__PURE__ */ jsx37("p", { children: item.reason })
|
|
12050
12353
|
] }),
|
|
12051
|
-
/* @__PURE__ */
|
|
12354
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-review-card__status", children: item.flaggedOff ? "Auto-import disabled" : item.status })
|
|
12052
12355
|
] }),
|
|
12053
12356
|
remainingCount > 1 && /* Bulk-action row — shortcut to wrap up the review step when there are still
|
|
12054
12357
|
several unactioned widgets and the user doesn't want to walk each one. */
|
|
12055
|
-
/* @__PURE__ */
|
|
12056
|
-
/* @__PURE__ */
|
|
12358
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-review-bulk", children: [
|
|
12359
|
+
/* @__PURE__ */ jsxs27("span", { children: [
|
|
12057
12360
|
remainingCount,
|
|
12058
12361
|
" remaining"
|
|
12059
12362
|
] }),
|
|
12060
|
-
/* @__PURE__ */
|
|
12363
|
+
/* @__PURE__ */ jsx37(
|
|
12061
12364
|
LSButton,
|
|
12062
12365
|
{
|
|
12063
12366
|
type: "button",
|
|
@@ -12067,7 +12370,7 @@ function StepReview({
|
|
|
12067
12370
|
label: "Keep all placeholders"
|
|
12068
12371
|
}
|
|
12069
12372
|
),
|
|
12070
|
-
/* @__PURE__ */
|
|
12373
|
+
/* @__PURE__ */ jsx37(
|
|
12071
12374
|
LSButton,
|
|
12072
12375
|
{
|
|
12073
12376
|
type: "button",
|
|
@@ -12078,12 +12381,12 @@ function StepReview({
|
|
|
12078
12381
|
}
|
|
12079
12382
|
)
|
|
12080
12383
|
] }),
|
|
12081
|
-
state === "generating" && /* @__PURE__ */
|
|
12082
|
-
state === "generated" && generated && /* @__PURE__ */
|
|
12083
|
-
/* @__PURE__ */
|
|
12384
|
+
state === "generating" && /* @__PURE__ */ jsx37("div", { className: "se-import-muted", children: "Generating with AI. This can take 30-90 seconds." }),
|
|
12385
|
+
state === "generated" && generated && /* @__PURE__ */ jsxs27("div", { className: "se-import-generated", children: [
|
|
12386
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-generated__title", children: "Preview" }),
|
|
12084
12387
|
(() => {
|
|
12085
12388
|
const landing = getAILandingBounds(item.seWidget, canvas);
|
|
12086
|
-
return /* @__PURE__ */
|
|
12389
|
+
return /* @__PURE__ */ jsx37(
|
|
12087
12390
|
CustomOverlayPreview,
|
|
12088
12391
|
{
|
|
12089
12392
|
html: generated.html ?? "",
|
|
@@ -12095,9 +12398,9 @@ function StepReview({
|
|
|
12095
12398
|
}
|
|
12096
12399
|
);
|
|
12097
12400
|
})(),
|
|
12098
|
-
/* @__PURE__ */
|
|
12099
|
-
/* @__PURE__ */
|
|
12100
|
-
/* @__PURE__ */
|
|
12401
|
+
/* @__PURE__ */ jsxs27("details", { className: "se-import-code", children: [
|
|
12402
|
+
/* @__PURE__ */ jsx37("summary", { children: "Generated code" }),
|
|
12403
|
+
/* @__PURE__ */ jsx37("pre", { children: JSON.stringify(
|
|
12101
12404
|
{
|
|
12102
12405
|
html: generated.html ?? "",
|
|
12103
12406
|
css: generated.css ?? "",
|
|
@@ -12108,15 +12411,15 @@ function StepReview({
|
|
|
12108
12411
|
) })
|
|
12109
12412
|
] })
|
|
12110
12413
|
] }),
|
|
12111
|
-
error && /* @__PURE__ */
|
|
12112
|
-
/* @__PURE__ */
|
|
12113
|
-
/* @__PURE__ */
|
|
12114
|
-
/* @__PURE__ */
|
|
12414
|
+
error && /* @__PURE__ */ jsx37(ErrorPanel, { message: error }),
|
|
12415
|
+
/* @__PURE__ */ jsxs27("details", { className: "se-import-code", children: [
|
|
12416
|
+
/* @__PURE__ */ jsx37("summary", { children: "Original StreamElements config" }),
|
|
12417
|
+
/* @__PURE__ */ jsx37("pre", { children: JSON.stringify(item.seWidget.variables ?? {}, null, 2) })
|
|
12115
12418
|
] }),
|
|
12116
|
-
/* @__PURE__ */
|
|
12117
|
-
/* @__PURE__ */
|
|
12118
|
-
/* @__PURE__ */
|
|
12119
|
-
/* @__PURE__ */
|
|
12419
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-actions se-import-actions--inline", children: state === "generated" ? /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
12420
|
+
/* @__PURE__ */ jsx37(LSButton, { type: "button", color: "secondary", onClick: onRetry, label: "Try again" }),
|
|
12421
|
+
/* @__PURE__ */ jsx37(LSButton, { type: "button", color: "secondary", onClick: onSkip, label: "Skip this widget" }),
|
|
12422
|
+
/* @__PURE__ */ jsx37(
|
|
12120
12423
|
LSButton,
|
|
12121
12424
|
{
|
|
12122
12425
|
type: "button",
|
|
@@ -12125,8 +12428,8 @@ function StepReview({
|
|
|
12125
12428
|
label: "Use this and continue"
|
|
12126
12429
|
}
|
|
12127
12430
|
)
|
|
12128
|
-
] }) : /* @__PURE__ */
|
|
12129
|
-
!item.flaggedOff && /* @__PURE__ */
|
|
12431
|
+
] }) : /* @__PURE__ */ jsxs27(Fragment14, { children: [
|
|
12432
|
+
!item.flaggedOff && /* @__PURE__ */ jsx37(
|
|
12130
12433
|
LSButton,
|
|
12131
12434
|
{
|
|
12132
12435
|
type: "button",
|
|
@@ -12136,7 +12439,7 @@ function StepReview({
|
|
|
12136
12439
|
label: "Keep placeholder"
|
|
12137
12440
|
}
|
|
12138
12441
|
),
|
|
12139
|
-
/* @__PURE__ */
|
|
12442
|
+
/* @__PURE__ */ jsx37(
|
|
12140
12443
|
LSButton,
|
|
12141
12444
|
{
|
|
12142
12445
|
type: "button",
|
|
@@ -12146,7 +12449,7 @@ function StepReview({
|
|
|
12146
12449
|
label: "Skip"
|
|
12147
12450
|
}
|
|
12148
12451
|
),
|
|
12149
|
-
marketplaceAvailable && /* @__PURE__ */
|
|
12452
|
+
marketplaceAvailable && /* @__PURE__ */ jsx37(
|
|
12150
12453
|
LSButton,
|
|
12151
12454
|
{
|
|
12152
12455
|
type: "button",
|
|
@@ -12156,7 +12459,7 @@ function StepReview({
|
|
|
12156
12459
|
label: "Pick from Marketplace"
|
|
12157
12460
|
}
|
|
12158
12461
|
),
|
|
12159
|
-
/* @__PURE__ */
|
|
12462
|
+
/* @__PURE__ */ jsx37(
|
|
12160
12463
|
LSButton,
|
|
12161
12464
|
{
|
|
12162
12465
|
type: "button",
|
|
@@ -12167,7 +12470,7 @@ function StepReview({
|
|
|
12167
12470
|
}
|
|
12168
12471
|
)
|
|
12169
12472
|
] }) }),
|
|
12170
|
-
item.flaggedOff && !marketplaceAvailable && state !== "generated" && /* @__PURE__ */
|
|
12473
|
+
item.flaggedOff && !marketplaceAvailable && state !== "generated" && /* @__PURE__ */ jsx37("div", { className: "se-import-muted", children: "No curated Marketplace replacement is configured for this widget yet." })
|
|
12171
12474
|
] });
|
|
12172
12475
|
}
|
|
12173
12476
|
var CUSTOM_WIDGET_TABS = [
|
|
@@ -12181,10 +12484,10 @@ var CUSTOM_WIDGET_TABS = [
|
|
|
12181
12484
|
];
|
|
12182
12485
|
function CustomWidgetCard({ widget }) {
|
|
12183
12486
|
const tabs = CUSTOM_WIDGET_TABS.filter(({ key }) => widget[key].trim().length > 0);
|
|
12184
|
-
const [activeKey, setActiveKey] =
|
|
12185
|
-
const [copied, setCopied] =
|
|
12487
|
+
const [activeKey, setActiveKey] = useState13(tabs[0]?.key ?? "js");
|
|
12488
|
+
const [copied, setCopied] = useState13(false);
|
|
12186
12489
|
const value = widget[activeKey] ?? "";
|
|
12187
|
-
|
|
12490
|
+
useEffect10(() => setCopied(false), [activeKey]);
|
|
12188
12491
|
const handleCopy = useCallback4(() => {
|
|
12189
12492
|
void navigator.clipboard?.writeText(value).then(
|
|
12190
12493
|
() => setCopied(true),
|
|
@@ -12192,9 +12495,9 @@ function CustomWidgetCard({ widget }) {
|
|
|
12192
12495
|
);
|
|
12193
12496
|
}, [value]);
|
|
12194
12497
|
if (tabs.length === 0) return null;
|
|
12195
|
-
return /* @__PURE__ */
|
|
12196
|
-
/* @__PURE__ */
|
|
12197
|
-
/* @__PURE__ */
|
|
12498
|
+
return /* @__PURE__ */ jsxs27("div", { className: "se-import-cw", children: [
|
|
12499
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-cw__title", children: widget.title }),
|
|
12500
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-cw__tabs", role: "tablist", children: tabs.map(({ key, label }) => /* @__PURE__ */ jsx37(
|
|
12198
12501
|
"button",
|
|
12199
12502
|
{
|
|
12200
12503
|
type: "button",
|
|
@@ -12206,18 +12509,18 @@ function CustomWidgetCard({ widget }) {
|
|
|
12206
12509
|
},
|
|
12207
12510
|
key
|
|
12208
12511
|
)) }),
|
|
12209
|
-
/* @__PURE__ */
|
|
12210
|
-
/* @__PURE__ */
|
|
12211
|
-
/* @__PURE__ */
|
|
12512
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-cw__body", children: [
|
|
12513
|
+
/* @__PURE__ */ jsx37("button", { type: "button", className: "se-import-cw__copy", onClick: handleCopy, children: copied ? "Copied!" : "Copy" }),
|
|
12514
|
+
/* @__PURE__ */ jsx37("pre", { className: "se-import-cw__code", children: value })
|
|
12212
12515
|
] })
|
|
12213
12516
|
] });
|
|
12214
12517
|
}
|
|
12215
12518
|
function CustomWidgetReview({ widgets }) {
|
|
12216
12519
|
if (widgets.length === 0) return null;
|
|
12217
|
-
return /* @__PURE__ */
|
|
12218
|
-
/* @__PURE__ */
|
|
12219
|
-
/* @__PURE__ */
|
|
12220
|
-
widgets.map((widget, index) => /* @__PURE__ */
|
|
12520
|
+
return /* @__PURE__ */ jsxs27("div", { className: "se-import-cw-review", children: [
|
|
12521
|
+
/* @__PURE__ */ jsx37("h3", { children: "Custom widgets" }),
|
|
12522
|
+
/* @__PURE__ */ jsx37("p", { className: "se-import-cw-review__hint", children: widgets.length === 1 ? "This overlay includes a custom-code widget. Copy any field and paste it straight into the StreamElements editor \u2014 values are shown exactly as StreamElements stores them, with no escaping." : `This overlay includes ${widgets.length} custom-code widgets. Copy any field and paste it straight into the StreamElements editor \u2014 values are shown exactly as StreamElements stores them, with no escaping.` }),
|
|
12523
|
+
widgets.map((widget, index) => /* @__PURE__ */ jsx37(CustomWidgetCard, { widget }, `${widget.title}-${index}`))
|
|
12221
12524
|
] });
|
|
12222
12525
|
}
|
|
12223
12526
|
function StepConfirm({
|
|
@@ -12241,21 +12544,21 @@ function StepConfirm({
|
|
|
12241
12544
|
},
|
|
12242
12545
|
{}
|
|
12243
12546
|
);
|
|
12244
|
-
return /* @__PURE__ */
|
|
12245
|
-
/* @__PURE__ */
|
|
12246
|
-
/* @__PURE__ */
|
|
12247
|
-
/* @__PURE__ */
|
|
12248
|
-
/* @__PURE__ */
|
|
12547
|
+
return /* @__PURE__ */ jsxs27("div", { className: panelClass("se-import-panel--confirm"), children: [
|
|
12548
|
+
/* @__PURE__ */ jsx37(StepHeader, { number: 5, title: "Confirm", subtitle: "Review and confirm your import" }),
|
|
12549
|
+
/* @__PURE__ */ jsxs27("div", { className: "se-import-overview", children: [
|
|
12550
|
+
/* @__PURE__ */ jsx37("h3", { children: "Overview" }),
|
|
12551
|
+
/* @__PURE__ */ jsx37(
|
|
12249
12552
|
Row,
|
|
12250
12553
|
{
|
|
12251
12554
|
label: overlayCount > 1 ? "Overlays to create" : "Overlay",
|
|
12252
12555
|
value: overlayCount > 1 ? `${overlayCount}` : options.name || result.overlay.name
|
|
12253
12556
|
}
|
|
12254
12557
|
),
|
|
12255
|
-
/* @__PURE__ */
|
|
12256
|
-
/* @__PURE__ */
|
|
12257
|
-
/* @__PURE__ */
|
|
12258
|
-
/* @__PURE__ */
|
|
12558
|
+
/* @__PURE__ */ jsx37(Row, { label: "Layers imported", value: `${layerCount}` }),
|
|
12559
|
+
/* @__PURE__ */ jsx37(Row, { label: "Widgets", value: `${widgets}` }),
|
|
12560
|
+
/* @__PURE__ */ jsx37(Row, { label: "Alerts", value: `${alertCount}` }),
|
|
12561
|
+
/* @__PURE__ */ jsx37(
|
|
12259
12562
|
Row,
|
|
12260
12563
|
{
|
|
12261
12564
|
label: "Assets to import",
|
|
@@ -12263,25 +12566,25 @@ function StepConfirm({
|
|
|
12263
12566
|
meta: options.mirrorAssets ? `Mirrored to Lumia storage (${mirrored})` : "Skipped"
|
|
12264
12567
|
}
|
|
12265
12568
|
),
|
|
12266
|
-
/* @__PURE__ */
|
|
12569
|
+
/* @__PURE__ */ jsx37(
|
|
12267
12570
|
Row,
|
|
12268
12571
|
{
|
|
12269
12572
|
label: "Import behavior",
|
|
12270
12573
|
value: options.mirrorAssets ? "Mirror assets and rewrite URLs" : "Keep original asset URLs"
|
|
12271
12574
|
}
|
|
12272
12575
|
),
|
|
12273
|
-
reviewBuckets.generated ? /* @__PURE__ */
|
|
12274
|
-
reviewBuckets.skipped ? /* @__PURE__ */
|
|
12275
|
-
reviewBuckets.kept ? /* @__PURE__ */
|
|
12576
|
+
reviewBuckets.generated ? /* @__PURE__ */ jsx37(Row, { label: "Generated with AI", value: `${reviewBuckets.generated}` }) : null,
|
|
12577
|
+
reviewBuckets.skipped ? /* @__PURE__ */ jsx37(Row, { label: "Skipped", value: `${reviewBuckets.skipped}` }) : null,
|
|
12578
|
+
reviewBuckets.kept ? /* @__PURE__ */ jsx37(Row, { label: "Kept as placeholder", value: `${reviewBuckets.kept}` }) : null
|
|
12276
12579
|
] }),
|
|
12277
|
-
isAdmin && result.customWidgets && result.customWidgets.length > 0 && /* @__PURE__ */
|
|
12580
|
+
isAdmin && result.customWidgets && result.customWidgets.length > 0 && /* @__PURE__ */ jsx37(CustomWidgetReview, { widgets: result.customWidgets })
|
|
12278
12581
|
] });
|
|
12279
12582
|
}
|
|
12280
12583
|
function Row({ label, value, meta }) {
|
|
12281
|
-
return /* @__PURE__ */
|
|
12282
|
-
/* @__PURE__ */
|
|
12283
|
-
/* @__PURE__ */
|
|
12284
|
-
meta && /* @__PURE__ */
|
|
12584
|
+
return /* @__PURE__ */ jsxs27("div", { className: "se-import-row", children: [
|
|
12585
|
+
/* @__PURE__ */ jsx37("span", { children: label }),
|
|
12586
|
+
/* @__PURE__ */ jsx37("strong", { children: value }),
|
|
12587
|
+
meta && /* @__PURE__ */ jsx37("em", { children: meta })
|
|
12285
12588
|
] });
|
|
12286
12589
|
}
|
|
12287
12590
|
function SEImportWizard({
|
|
@@ -12307,47 +12610,47 @@ function SEImportWizard({
|
|
|
12307
12610
|
CustomEmbed,
|
|
12308
12611
|
isAdmin
|
|
12309
12612
|
} = bindings;
|
|
12310
|
-
const [step, setStep] =
|
|
12613
|
+
const [step, setStep] = useState13(
|
|
12311
12614
|
initialStep ?? (initialUrl ? "url" : initialJwt ? "connect" : "mode")
|
|
12312
12615
|
);
|
|
12313
|
-
const [entryMode, setEntryMode] =
|
|
12616
|
+
const [entryMode, setEntryMode] = useState13(
|
|
12314
12617
|
initialStep === "url" ? "url" : initialStep === "connect" ? "jwt" : initialUrl ? "url" : initialJwt ? "jwt" : null
|
|
12315
12618
|
);
|
|
12316
|
-
const [jwt, setJwt] =
|
|
12317
|
-
const [seClient, setSeClient] =
|
|
12318
|
-
const [channels, setChannels] =
|
|
12319
|
-
const [selectedChannelId, setSelectedChannelId] =
|
|
12320
|
-
const [connectError, setConnectError] =
|
|
12321
|
-
const [connecting, setConnecting] =
|
|
12322
|
-
const [overlayList, setOverlayList] =
|
|
12619
|
+
const [jwt, setJwt] = useState13(initialJwt);
|
|
12620
|
+
const [seClient, setSeClient] = useState13(null);
|
|
12621
|
+
const [channels, setChannels] = useState13(null);
|
|
12622
|
+
const [selectedChannelId, setSelectedChannelId] = useState13(null);
|
|
12623
|
+
const [connectError, setConnectError] = useState13(null);
|
|
12624
|
+
const [connecting, setConnecting] = useState13(false);
|
|
12625
|
+
const [overlayList, setOverlayList] = useState13(
|
|
12323
12626
|
initialOverlayList?.length ? initialOverlayList : null
|
|
12324
12627
|
);
|
|
12325
|
-
const [overlaysLoading, setOverlaysLoading] =
|
|
12326
|
-
const [overlaysError, setOverlaysError] =
|
|
12327
|
-
const [selectedOverlayIds, setSelectedOverlayIds] =
|
|
12328
|
-
const [activeOverlaySummaries, setActiveOverlaySummaries] =
|
|
12329
|
-
const [activeOverlayPreview, setActiveOverlayPreview] =
|
|
12330
|
-
const [url, setUrl] =
|
|
12331
|
-
const [loadError, setLoadError] =
|
|
12332
|
-
const [loading, setLoading] =
|
|
12333
|
-
const [result, setResult] =
|
|
12334
|
-
const [batchImports, setBatchImports] =
|
|
12335
|
-
const [originalReviewItems, setOriginalReviewItems] =
|
|
12336
|
-
const [options, setOptions] =
|
|
12628
|
+
const [overlaysLoading, setOverlaysLoading] = useState13(false);
|
|
12629
|
+
const [overlaysError, setOverlaysError] = useState13(null);
|
|
12630
|
+
const [selectedOverlayIds, setSelectedOverlayIds] = useState13(/* @__PURE__ */ new Set());
|
|
12631
|
+
const [activeOverlaySummaries, setActiveOverlaySummaries] = useState13([]);
|
|
12632
|
+
const [activeOverlayPreview, setActiveOverlayPreview] = useState13();
|
|
12633
|
+
const [url, setUrl] = useState13(initialUrl);
|
|
12634
|
+
const [loadError, setLoadError] = useState13(null);
|
|
12635
|
+
const [loading, setLoading] = useState13(false);
|
|
12636
|
+
const [result, setResult] = useState13(null);
|
|
12637
|
+
const [batchImports, setBatchImports] = useState13([]);
|
|
12638
|
+
const [originalReviewItems, setOriginalReviewItems] = useState13([]);
|
|
12639
|
+
const [options, setOptions] = useState13({
|
|
12337
12640
|
mirrorAssets: true,
|
|
12338
12641
|
name: ""
|
|
12339
12642
|
});
|
|
12340
|
-
const [mirrorRows, setMirrorRows] =
|
|
12341
|
-
const [mirrorRunning, setMirrorRunning] =
|
|
12342
|
-
const [rowStates, setRowStates] =
|
|
12343
|
-
const [reviewIndex, setReviewIndex] =
|
|
12344
|
-
const [importing, setImporting] =
|
|
12345
|
-
const [marketplacePickerOpen, setMarketplacePickerOpen] =
|
|
12346
|
-
const mirrorStartedRef =
|
|
12347
|
-
const mirrorAbortRef =
|
|
12348
|
-
const initialOverlayImportStartedRef =
|
|
12349
|
-
const filenameCacheRef =
|
|
12350
|
-
const [assetUrls, setAssetUrls] =
|
|
12643
|
+
const [mirrorRows, setMirrorRows] = useState13([]);
|
|
12644
|
+
const [mirrorRunning, setMirrorRunning] = useState13(false);
|
|
12645
|
+
const [rowStates, setRowStates] = useState13({});
|
|
12646
|
+
const [reviewIndex, setReviewIndex] = useState13(0);
|
|
12647
|
+
const [importing, setImporting] = useState13(false);
|
|
12648
|
+
const [marketplacePickerOpen, setMarketplacePickerOpen] = useState13(false);
|
|
12649
|
+
const mirrorStartedRef = useRef9(false);
|
|
12650
|
+
const mirrorAbortRef = useRef9(null);
|
|
12651
|
+
const initialOverlayImportStartedRef = useRef9(false);
|
|
12652
|
+
const filenameCacheRef = useRef9(/* @__PURE__ */ new Map());
|
|
12653
|
+
const [assetUrls, setAssetUrls] = useState13([]);
|
|
12351
12654
|
const currentItem = originalReviewItems[reviewIndex];
|
|
12352
12655
|
const currentRow = currentItem ? rowStates[currentItem.moduleId] ?? { state: "pending" } : void 0;
|
|
12353
12656
|
const handleConnect = useCallback4(async () => {
|
|
@@ -12394,7 +12697,7 @@ function SEImportWizard({
|
|
|
12394
12697
|
setConnecting(false);
|
|
12395
12698
|
}
|
|
12396
12699
|
}, [bindings, initialJwt, jwt]);
|
|
12397
|
-
|
|
12700
|
+
useEffect10(() => {
|
|
12398
12701
|
if (initialJwt.trim() && step === "connect" && !seClient && !connecting && !connectError)
|
|
12399
12702
|
void handleConnect();
|
|
12400
12703
|
}, [connectError, connecting, handleConnect, initialJwt, seClient, step]);
|
|
@@ -12555,7 +12858,7 @@ function SEImportWizard({
|
|
|
12555
12858
|
loadBootstrapAndKickoff,
|
|
12556
12859
|
loadSelectedOverlaysAndKickoff
|
|
12557
12860
|
]);
|
|
12558
|
-
|
|
12861
|
+
useEffect10(() => {
|
|
12559
12862
|
if (initialOverlayImportStartedRef.current || !seClient || !initialOverlayIds?.length || !overlayList || overlaysLoading || loading)
|
|
12560
12863
|
return;
|
|
12561
12864
|
const availableIds = new Set(overlayList.map((overlay) => overlay._id));
|
|
@@ -12837,20 +13140,20 @@ function SEImportWizard({
|
|
|
12837
13140
|
},
|
|
12838
13141
|
[applyRewrite, mirrorRows, processAssetRow]
|
|
12839
13142
|
);
|
|
12840
|
-
|
|
13143
|
+
useEffect10(() => {
|
|
12841
13144
|
if (step === "mirror" && !mirrorStartedRef.current) {
|
|
12842
13145
|
mirrorStartedRef.current = true;
|
|
12843
13146
|
void runMirror();
|
|
12844
13147
|
}
|
|
12845
13148
|
}, [step, runMirror]);
|
|
12846
|
-
|
|
13149
|
+
useEffect10(() => {
|
|
12847
13150
|
return () => {
|
|
12848
13151
|
setJwt("");
|
|
12849
13152
|
setSeClient(null);
|
|
12850
13153
|
mirrorAbortRef.current?.abort();
|
|
12851
13154
|
};
|
|
12852
13155
|
}, []);
|
|
12853
|
-
|
|
13156
|
+
useEffect10(() => {
|
|
12854
13157
|
if (step === "pick" && seClient && overlayList === null && !overlaysLoading) {
|
|
12855
13158
|
void loadOverlayList(seClient);
|
|
12856
13159
|
}
|
|
@@ -13079,7 +13382,7 @@ function SEImportWizard({
|
|
|
13079
13382
|
activeOverlayPreview,
|
|
13080
13383
|
resolveOverlayThumbnailUrl
|
|
13081
13384
|
]);
|
|
13082
|
-
const visibleSteps =
|
|
13385
|
+
const visibleSteps = useMemo8(() => {
|
|
13083
13386
|
const showMirrorStep = options.mirrorAssets && (assetUrls.length > 0 || mirrorRows.length > 0 || step === "mirror");
|
|
13084
13387
|
if (step === "mode") return [];
|
|
13085
13388
|
const onUrlFlow = entryMode === "url" || step === "url";
|
|
@@ -13174,21 +13477,21 @@ function SEImportWizard({
|
|
|
13174
13477
|
return false;
|
|
13175
13478
|
})();
|
|
13176
13479
|
const activeIndex = visibleSteps.findIndex((item) => item.key === step);
|
|
13177
|
-
return /* @__PURE__ */
|
|
13178
|
-
visibleSteps.length > 0 && /* @__PURE__ */
|
|
13480
|
+
return /* @__PURE__ */ jsx37("div", { className: "se-import", children: /* @__PURE__ */ jsxs27("div", { className: "se-import__shell", children: [
|
|
13481
|
+
visibleSteps.length > 0 && /* @__PURE__ */ jsx37("header", { className: "se-import__header", children: /* @__PURE__ */ jsx37("div", { className: "se-import-stepper", children: visibleSteps.map((item, index) => /* @__PURE__ */ jsxs27(
|
|
13179
13482
|
"div",
|
|
13180
13483
|
{
|
|
13181
13484
|
className: stepClass(index < activeIndex, index === activeIndex),
|
|
13182
13485
|
children: [
|
|
13183
|
-
/* @__PURE__ */
|
|
13184
|
-
/* @__PURE__ */
|
|
13185
|
-
/* @__PURE__ */
|
|
13486
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-step__label", children: item.label }),
|
|
13487
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-step__line" }),
|
|
13488
|
+
/* @__PURE__ */ jsx37("div", { className: "se-import-step__dot", children: index < activeIndex ? "\u2713" : index + 1 })
|
|
13186
13489
|
]
|
|
13187
13490
|
},
|
|
13188
13491
|
item.key
|
|
13189
13492
|
)) }) }),
|
|
13190
|
-
/* @__PURE__ */
|
|
13191
|
-
step === "mode" && /* @__PURE__ */
|
|
13493
|
+
/* @__PURE__ */ jsxs27("main", { className: "se-import__content", children: [
|
|
13494
|
+
step === "mode" && /* @__PURE__ */ jsx37(
|
|
13192
13495
|
StepModePicker,
|
|
13193
13496
|
{
|
|
13194
13497
|
onChooseJwt: () => {
|
|
@@ -13202,7 +13505,7 @@ function SEImportWizard({
|
|
|
13202
13505
|
onOpenFullImport: bindings.onOpenFullImport
|
|
13203
13506
|
}
|
|
13204
13507
|
),
|
|
13205
|
-
step === "connect" && /* @__PURE__ */
|
|
13508
|
+
step === "connect" && /* @__PURE__ */ jsx37(
|
|
13206
13509
|
StepConnect,
|
|
13207
13510
|
{
|
|
13208
13511
|
jwt,
|
|
@@ -13218,7 +13521,7 @@ function SEImportWizard({
|
|
|
13218
13521
|
}
|
|
13219
13522
|
}
|
|
13220
13523
|
),
|
|
13221
|
-
step === "pick" && /* @__PURE__ */
|
|
13524
|
+
step === "pick" && /* @__PURE__ */ jsx37(
|
|
13222
13525
|
StepPickOverlay,
|
|
13223
13526
|
{
|
|
13224
13527
|
overlays: overlayList,
|
|
@@ -13231,7 +13534,7 @@ function SEImportWizard({
|
|
|
13231
13534
|
onRetry: () => seClient && void loadOverlayList(seClient)
|
|
13232
13535
|
}
|
|
13233
13536
|
),
|
|
13234
|
-
step === "url" && /* @__PURE__ */
|
|
13537
|
+
step === "url" && /* @__PURE__ */ jsx37(
|
|
13235
13538
|
StepURL,
|
|
13236
13539
|
{
|
|
13237
13540
|
url,
|
|
@@ -13245,7 +13548,7 @@ function SEImportWizard({
|
|
|
13245
13548
|
}
|
|
13246
13549
|
}
|
|
13247
13550
|
),
|
|
13248
|
-
step === "discovery" && result && /* @__PURE__ */
|
|
13551
|
+
step === "discovery" && result && /* @__PURE__ */ jsx37(
|
|
13249
13552
|
StepDiscovery,
|
|
13250
13553
|
{
|
|
13251
13554
|
result,
|
|
@@ -13253,7 +13556,7 @@ function SEImportWizard({
|
|
|
13253
13556
|
overlayCount: Math.max(1, activeOverlaySummaries.length)
|
|
13254
13557
|
}
|
|
13255
13558
|
),
|
|
13256
|
-
step === "options" && /* @__PURE__ */
|
|
13559
|
+
step === "options" && /* @__PURE__ */ jsx37(
|
|
13257
13560
|
StepOptions,
|
|
13258
13561
|
{
|
|
13259
13562
|
options,
|
|
@@ -13262,8 +13565,8 @@ function SEImportWizard({
|
|
|
13262
13565
|
hideName: activeOverlaySummaries.length > 1
|
|
13263
13566
|
}
|
|
13264
13567
|
),
|
|
13265
|
-
step === "mirror" && /* @__PURE__ */
|
|
13266
|
-
step === "review" && currentItem && result && !marketplacePickerOpen && /* @__PURE__ */
|
|
13568
|
+
step === "mirror" && /* @__PURE__ */ jsx37(StepMirror, { rows: mirrorRows, running: mirrorRunning, onRetry: retryMirrorRow }),
|
|
13569
|
+
step === "review" && currentItem && result && !marketplacePickerOpen && /* @__PURE__ */ jsx37(
|
|
13267
13570
|
StepReview,
|
|
13268
13571
|
{
|
|
13269
13572
|
item: currentItem,
|
|
@@ -13290,7 +13593,7 @@ function SEImportWizard({
|
|
|
13290
13593
|
marketplaceAvailable: hasMarketplaceCandidates(currentItem.seWidget.type)
|
|
13291
13594
|
}
|
|
13292
13595
|
),
|
|
13293
|
-
step === "review" && currentItem && marketplacePickerOpen && /* @__PURE__ */
|
|
13596
|
+
step === "review" && currentItem && marketplacePickerOpen && /* @__PURE__ */ jsx37("div", { className: panelClass("se-import-panel--wide"), children: /* @__PURE__ */ jsx37(
|
|
13294
13597
|
MarketplacePicker,
|
|
13295
13598
|
{
|
|
13296
13599
|
seWidgetType: currentItem.seWidget.type,
|
|
@@ -13300,7 +13603,7 @@ function SEImportWizard({
|
|
|
13300
13603
|
onCancel: () => setMarketplacePickerOpen(false)
|
|
13301
13604
|
}
|
|
13302
13605
|
) }),
|
|
13303
|
-
step === "confirm" && result && /* @__PURE__ */
|
|
13606
|
+
step === "confirm" && result && /* @__PURE__ */ jsx37(
|
|
13304
13607
|
StepConfirm,
|
|
13305
13608
|
{
|
|
13306
13609
|
result,
|
|
@@ -13312,8 +13615,8 @@ function SEImportWizard({
|
|
|
13312
13615
|
}
|
|
13313
13616
|
)
|
|
13314
13617
|
] }),
|
|
13315
|
-
/* @__PURE__ */
|
|
13316
|
-
step !== "mode" && /* @__PURE__ */
|
|
13618
|
+
/* @__PURE__ */ jsxs27("footer", { className: "se-import-actions", children: [
|
|
13619
|
+
step !== "mode" && /* @__PURE__ */ jsx37(
|
|
13317
13620
|
LSButton,
|
|
13318
13621
|
{
|
|
13319
13622
|
type: "button",
|
|
@@ -13324,7 +13627,7 @@ function SEImportWizard({
|
|
|
13324
13627
|
label: "Back"
|
|
13325
13628
|
}
|
|
13326
13629
|
),
|
|
13327
|
-
step !== "mode" && /* @__PURE__ */
|
|
13630
|
+
step !== "mode" && /* @__PURE__ */ jsx37(
|
|
13328
13631
|
LSButton,
|
|
13329
13632
|
{
|
|
13330
13633
|
type: "button",
|