diff --git a/public/script.js b/public/script.js index 40457f6cf..beba6c862 100644 --- a/public/script.js +++ b/public/script.js @@ -7003,10 +7003,10 @@ function onScenarioOverrideRemoveClick() { * @param {string} type * @param {string} inputValue - Value to set the input to. * @param {PopupOptions} options - Options for the popup. - * @typedef {{okButton?: string, rows?: number, wide?: boolean, large?: boolean, allowHorizontalScrolling?: boolean, allowVerticalScrolling?: boolean, cropAspect?: number }} PopupOptions - Options for the popup. + * @typedef {{okButton?: string, rows?: number, wide?: boolean, wider?: boolean, large?: boolean, allowHorizontalScrolling?: boolean, allowVerticalScrolling?: boolean, cropAspect?: number }} PopupOptions - Options for the popup. * @returns */ -export function callPopup(text, type, inputValue = '', { okButton, rows, wide, large, allowHorizontalScrolling, allowVerticalScrolling, cropAspect } = {}) { +export function callPopup(text, type, inputValue = '', { okButton, rows, wide, wider, large, allowHorizontalScrolling, allowVerticalScrolling, cropAspect } = {}) { function getOkButtonText() { if (['avatarToCrop'].includes(popup_type)) { return okButton ?? 'Accept'; @@ -7036,6 +7036,7 @@ export function callPopup(text, type, inputValue = '', { okButton, rows, wide, l const $shadowPopup = $('#shadow_popup'); $dialoguePopup.toggleClass('wide_dialogue_popup', !!wide) + .toggleClass('wider_dialogue_popup', !!wider) .toggleClass('large_dialogue_popup', !!large) .toggleClass('horizontal_scrolling_dialogue_popup', !!allowHorizontalScrolling) .toggleClass('vertical_scrolling_dialogue_popup', !!allowVerticalScrolling); diff --git a/public/scripts/popup.js b/public/scripts/popup.js index 7d85ef048..463435bb1 100644 --- a/public/scripts/popup.js +++ b/public/scripts/popup.js @@ -25,8 +25,9 @@ let currentPopupZIndex = POPUP_START_Z_INDEX; * @property {string|boolean?} [okButton] - Custom text for the OK button, or `true` to use the default (If set, the button will always be displayed, no matter the type of popup) * @property {string|boolean?} [cancelButton] - Custom text for the Cancel button, or `true` to use the default (If set, the button will always be displayed, no matter the type of popup) * @property {number?} [rows] - The number of rows for the input field - * @property {boolean?} [wide] - Whether to display the popup in wide mode - * @property {boolean?} [large] - Whether to display the popup in large mode + * @property {boolean?} [wide] - Whether to display the popup in wide mode (wide screen, 1/1 aspect ratio) + * @property {boolean?} [wider] - Whether to display the popup in wider mode (just wider, no height scaling) + * @property {boolean?} [large] - Whether to display the popup in large mode (90% of screen) * @property {boolean?} [allowHorizontalScrolling] - Whether to allow horizontal scrolling in the popup * @property {boolean?} [allowVerticalScrolling] - Whether to allow vertical scrolling in the popup * @property {POPUP_RESULT|number?} [defaultResult] - The default result of this popup when Enter is pressed. Can be changed from `POPUP_RESULT.AFFIRMATIVE`. @@ -68,7 +69,7 @@ export class Popup { * @param {string} [inputValue=''] - The initial value of the input field * @param {PopupOptions} [options={}] - Additional options for the popup */ - constructor(text, type, inputValue = '', { okButton = null, cancelButton = null, rows = 1, wide = false, large = false, allowHorizontalScrolling = false, allowVerticalScrolling = false, defaultResult = POPUP_RESULT.AFFIRMATIVE, customButtons = null } = {}) { + constructor(text, type, inputValue = '', { okButton = null, cancelButton = null, rows = 1, wide = false, wider = false, large = false, allowHorizontalScrolling = false, allowVerticalScrolling = false, defaultResult = POPUP_RESULT.AFFIRMATIVE, customButtons = null } = {}) { this.type = type; /**@type {HTMLTemplateElement}*/ @@ -85,6 +86,7 @@ export class Popup { this.cancel = this.dom.querySelector('.dialogue_popup_cancel'); if (wide) dlg.classList.add('wide_dialogue_popup'); + if (wider) dlg.classList.add('wider_dialogue_popup'); if (large) dlg.classList.add('large_dialogue_popup'); if (allowHorizontalScrolling) dlg.classList.add('horizontal_scrolling_dialogue_popup'); if (allowVerticalScrolling) dlg.classList.add('vertical_scrolling_dialogue_popup'); @@ -98,7 +100,7 @@ export class Popup { this.customButtonElements = this.customButtons?.map((x, index) => { /** @type {CustomPopupButton} */ const button = typeof x === 'string' ? { text: x, result: index + 2 } : x; - const buttonElement = document.createElement('button'); + const buttonElement = document.createElement('div'); buttonElement.classList.add('menu_button', 'menu_button_custom'); buttonElement.classList.add(...(button.classes ?? [])); diff --git a/public/style.css b/public/style.css index 9cbe98738..cd4b7488b 100644 --- a/public/style.css +++ b/public/style.css @@ -3065,6 +3065,10 @@ grammarly-extension { min-width: var(--sheldWidth); } +.wider_dialogue_popup { + min-width: 750px; +} + .horizontal_scrolling_dialogue_popup { overflow-x: unset !important; }