capacitor-extended-dialog 0.0.12 → 0.0.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst ExtendedDialog = registerPlugin('ExtendedDialog', {\n web: () => import('./web').then((m) => new m.ExtendedDialogWeb()),\n});\nexport * from './definitions';\nexport { ExtendedDialog };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class ExtendedDialogWeb extends WebPlugin {\n async alert(options) {\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n window.alert(message);\n }\n async confirm(options) {\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n const result = window.confirm(message);\n return { value: result };\n }\n async prompt(options) {\n var _a;\n // Note: focusInput option is ignored on web as window.prompt() handles focus automatically\n // and does not provide programmatic control over keyboard/focus behavior\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n const result = window.prompt(message, (_a = options.inputText) !== null && _a !== void 0 ? _a : '');\n return {\n value: result !== null && result !== void 0 ? result : '',\n cancelled: result === null,\n };\n }\n async singleSelect(options) {\n return new Promise((resolve) => {\n var _a, _b, _c;\n const overlay = this.createOverlay();\n const dialog = this.createDialogContainer(options.title, options.message, options);\n const optionsContainer = document.createElement('div');\n optionsContainer.style.cssText = 'max-height: 300px; overflow-y: auto; margin: 16px 0;';\n let selectedValue = (_a = options.selectedValue) !== null && _a !== void 0 ? _a : null;\n options.options.forEach((option) => {\n const label = document.createElement('label');\n label.style.cssText =\n 'display: flex; align-items: center; padding: 12px 0; cursor: pointer; border-bottom: 1px solid #e0e0e0;';\n const radio = document.createElement('input');\n radio.type = 'radio';\n radio.name = 'singleSelect';\n radio.value = option.value;\n radio.checked = option.value === selectedValue;\n radio.style.cssText = 'margin-right: 12px; width: 20px; height: 20px;';\n radio.addEventListener('change', () => {\n selectedValue = option.value;\n });\n const text = document.createElement('span');\n text.textContent = option.label;\n text.style.cssText = 'font-size: 16px;';\n label.appendChild(radio);\n label.appendChild(text);\n optionsContainer.appendChild(label);\n });\n dialog.appendChild(optionsContainer);\n const buttonContainer = this.createButtonContainer(options.contentButtonSpacing);\n const cancelButton = this.createButton((_b = options.cancelButtonTitle) !== null && _b !== void 0 ? _b : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ value: null, cancelled: true });\n }, options);\n const okButton = this.createButton((_c = options.okButtonTitle) !== null && _c !== void 0 ? _c : 'OK', true, () => {\n this.removeOverlay(overlay);\n resolve({ value: selectedValue, cancelled: false });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(okButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n async multiSelect(options) {\n return new Promise((resolve) => {\n var _a, _b, _c;\n const overlay = this.createOverlay();\n const dialog = this.createDialogContainer(options.title, options.message, options);\n const optionsContainer = document.createElement('div');\n optionsContainer.style.cssText = 'max-height: 300px; overflow-y: auto; margin: 16px 0;';\n const selectedValues = new Set((_a = options.selectedValues) !== null && _a !== void 0 ? _a : []);\n options.options.forEach((option) => {\n const label = document.createElement('label');\n label.style.cssText =\n 'display: flex; align-items: center; padding: 12px 0; cursor: pointer; border-bottom: 1px solid #e0e0e0;';\n const checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n checkbox.value = option.value;\n checkbox.checked = selectedValues.has(option.value);\n checkbox.style.cssText = 'margin-right: 12px; width: 20px; height: 20px;';\n checkbox.addEventListener('change', () => {\n if (checkbox.checked) {\n selectedValues.add(option.value);\n }\n else {\n selectedValues.delete(option.value);\n }\n });\n const text = document.createElement('span');\n text.textContent = option.label;\n text.style.cssText = 'font-size: 16px;';\n label.appendChild(checkbox);\n label.appendChild(text);\n optionsContainer.appendChild(label);\n });\n dialog.appendChild(optionsContainer);\n const buttonContainer = this.createButtonContainer(options.contentButtonSpacing);\n const cancelButton = this.createButton((_b = options.cancelButtonTitle) !== null && _b !== void 0 ? _b : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ values: [], cancelled: true });\n }, options);\n const okButton = this.createButton((_c = options.okButtonTitle) !== null && _c !== void 0 ? _c : 'OK', true, () => {\n this.removeOverlay(overlay);\n resolve({ values: Array.from(selectedValues), cancelled: false });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(okButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n createOverlay() {\n const overlay = document.createElement('div');\n overlay.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n `;\n return overlay;\n }\n createDialogContainer(title, message, styleOptions) {\n var _a, _b, _c, _d, _e;\n const dialog = document.createElement('div');\n const bgColor = (_a = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: 16px;\n padding: 24px;\n min-width: 300px;\n max-width: 400px;\n max-height: 80vh;\n overflow-y: auto;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n `;\n if (title) {\n const titleEl = document.createElement('h2');\n titleEl.textContent = title;\n const titleFontSize = (_b = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.titleFontSize) !== null && _b !== void 0 ? _b : 20;\n const titleColor = (_c = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.titleColor) !== null && _c !== void 0 ? _c : 'inherit';\n titleEl.style.cssText = `margin: 0 0 8px 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor};`;\n dialog.appendChild(titleEl);\n }\n if (message) {\n const messageEl = document.createElement('p');\n messageEl.textContent = message;\n const messageFontSize = (_d = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.messageFontSize) !== null && _d !== void 0 ? _d : 14;\n const messageColor = (_e = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.messageColor) !== null && _e !== void 0 ? _e : '#666';\n messageEl.style.cssText = `margin: 0; font-size: ${messageFontSize}px; color: ${messageColor};`;\n dialog.appendChild(messageEl);\n }\n return dialog;\n }\n createButtonContainer(contentButtonSpacing) {\n const container = document.createElement('div');\n const spacing = contentButtonSpacing !== null && contentButtonSpacing !== void 0 ? contentButtonSpacing : 24;\n container.style.cssText = `display: flex; justify-content: flex-end; gap: 8px; margin-top: ${spacing}px;`;\n return container;\n }\n createButton(text, primary, onClick, styleOptions) {\n var _a, _b, _c;\n const button = document.createElement('button');\n button.textContent = text;\n const fontSize = (_a = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.buttonFontSize) !== null && _a !== void 0 ? _a : 14;\n const primaryColor = (_b = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.buttonColor) !== null && _b !== void 0 ? _b : '#6750A4';\n const cancelColor = (_c = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.cancelButtonColor) !== null && _c !== void 0 ? _c : '#6750A4';\n button.style.cssText = `\n padding: 10px 24px;\n border-radius: 8px;\n font-size: ${fontSize}px;\n font-weight: 500;\n cursor: pointer;\n border: none;\n ${primary ? `background: ${primaryColor}; color: white;` : `background: transparent; color: ${cancelColor};`}\n `;\n button.addEventListener('click', onClick);\n return button;\n }\n removeOverlay(overlay) {\n overlay.remove();\n }\n async sheet(options) {\n return new Promise((resolve) => {\n var _a, _b, _c, _d;\n const overlay = this.createOverlay();\n const dialog = this.createSheetDialogContainer(options);\n // Header section with logo and title\n const headerSection = document.createElement('div');\n headerSection.style.cssText = 'display: flex; flex-direction: column; align-items: center; margin-bottom: 24px;';\n if (options.headerLogo) {\n const headerLogo = document.createElement('img');\n headerLogo.src = options.headerLogo;\n // Apply corner radius (default 8px, -1 for circle)\n const radiusPx = options.headerLogoCornerRadius;\n let borderRadius;\n if (radiusPx !== undefined && radiusPx < 0) {\n // -1 means full circle\n borderRadius = '50%';\n }\n else {\n borderRadius = `${radiusPx !== null && radiusPx !== void 0 ? radiusPx : 8}px`;\n }\n headerLogo.style.cssText = `width: 48px; height: 48px; object-fit: contain; margin-bottom: 12px; border-radius: ${borderRadius};`;\n headerLogo.onerror = () => {\n headerLogo.style.display = 'none';\n };\n headerSection.appendChild(headerLogo);\n }\n const titleEl = document.createElement('h2');\n titleEl.textContent = options.title;\n const titleFontSize = (_a = options.titleFontSize) !== null && _a !== void 0 ? _a : 20;\n const titleColor = (_b = options.titleColor) !== null && _b !== void 0 ? _b : 'inherit';\n titleEl.style.cssText = `margin: 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor}; text-align: center;`;\n headerSection.appendChild(titleEl);\n dialog.appendChild(headerSection);\n // Rows container\n const rowsContainer = document.createElement('div');\n rowsContainer.style.cssText = 'display: flex; flex-direction: column; gap: 0; margin-bottom: 24px;';\n options.rows.forEach((row, index) => {\n var _a, _b;\n const rowEl = document.createElement('div');\n rowEl.style.cssText = `\n display: flex;\n align-items: center;\n padding: 16px 0;\n ${index < options.rows.length - 1 ? 'border-bottom: 1px solid #e0e0e0;' : ''}\n `;\n if (row.logo) {\n const rowLogo = document.createElement('img');\n rowLogo.src = row.logo;\n rowLogo.style.cssText =\n 'width: 24px; height: 24px; object-fit: contain; margin-right: 12px; border-radius: 4px; flex-shrink: 0;';\n rowLogo.onerror = () => {\n rowLogo.style.display = 'none';\n };\n rowEl.appendChild(rowLogo);\n }\n const rowTitle = document.createElement('span');\n rowTitle.textContent = row.title;\n const messageFontSize = (_a = options.messageFontSize) !== null && _a !== void 0 ? _a : 16;\n const messageColor = (_b = options.messageColor) !== null && _b !== void 0 ? _b : '#333';\n rowTitle.style.cssText = `font-size: ${messageFontSize}px; color: ${messageColor}; flex: 1;`;\n rowEl.appendChild(rowTitle);\n if (row.value) {\n const rowValue = document.createElement('span');\n rowValue.textContent = row.value;\n rowValue.style.cssText = `font-size: ${messageFontSize}px; color: #666; text-align: right; margin-left: 12px;`;\n rowEl.appendChild(rowValue);\n }\n rowsContainer.appendChild(rowEl);\n });\n dialog.appendChild(rowsContainer);\n // For sheets with ≤4 rows and no explicit spacing, add extra spacing to reach ~50% viewport height\n let sheetSpacing = options.contentButtonSpacing;\n if (sheetSpacing === undefined && options.rows.length <= 4) {\n const targetHeight = window.innerHeight * 0.5;\n // Estimate content: padding(48) + header(~80) + rows(~49 each) + buttons(~44) + default spacing(24)\n const estimatedHeight = 48 + 80 + options.rows.length * 49 + 44 + 24;\n if (targetHeight > estimatedHeight) {\n sheetSpacing = 24 + (targetHeight - estimatedHeight);\n }\n }\n // Button container\n const buttonContainer = this.createButtonContainer(sheetSpacing);\n const cancelButton = this.createButton((_c = options.cancelButtonTitle) !== null && _c !== void 0 ? _c : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: false });\n }, options);\n const confirmButton = this.createButton((_d = options.confirmButtonTitle) !== null && _d !== void 0 ? _d : 'Confirm', true, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: true });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(confirmButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n async messageSheet(options) {\n return new Promise((resolve) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const overlay = this.createOverlay();\n const dialog = this.createMessageSheetDialogContainer(options);\n const content = document.createElement('div');\n content.style.cssText = 'display: flex; flex-direction: column; flex: 1 1 auto; overflow-y: auto;';\n if (options.headerLogo) {\n const headerLogo = document.createElement('img');\n headerLogo.src = options.headerLogo;\n const logoSize = options.mode === 'fullscreen' ? 64 : 48;\n // Apply corner radius (default 8px, -1 for circle)\n const radiusPx = options.headerLogoCornerRadius;\n let borderRadius;\n if (radiusPx !== undefined && radiusPx < 0) {\n // -1 means full circle\n borderRadius = '50%';\n }\n else {\n borderRadius = `${radiusPx !== null && radiusPx !== void 0 ? radiusPx : 8}px`;\n }\n headerLogo.style.cssText = `width: ${logoSize}px; height: ${logoSize}px; object-fit: contain; margin: 0 auto 16px auto; border-radius: ${borderRadius};`;\n headerLogo.onerror = () => {\n headerLogo.style.display = 'none';\n };\n content.appendChild(headerLogo);\n }\n const titleEl = document.createElement('h2');\n titleEl.textContent = options.title;\n const titleFontSize = (_a = options.titleFontSize) !== null && _a !== void 0 ? _a : 20;\n const titleColor = (_b = options.titleColor) !== null && _b !== void 0 ? _b : 'inherit';\n titleEl.style.cssText = `margin: 0 0 16px 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor}; text-align: center;`;\n content.appendChild(titleEl);\n const messageEl = document.createElement('p');\n messageEl.textContent = options.message;\n const messageFontSize = (_c = options.messageFontSize) !== null && _c !== void 0 ? _c : 16;\n const messageColor = (_d = options.messageColor) !== null && _d !== void 0 ? _d : '#666';\n messageEl.style.cssText = `margin: 0; font-size: ${messageFontSize}px; color: ${messageColor}; white-space: pre-wrap; word-break: break-word;`;\n const messageContainer = document.createElement('div');\n messageContainer.style.cssText =\n 'background: #E5E5EA; border-radius: 12px; padding: 16px; margin: 0;';\n messageContainer.appendChild(messageEl);\n content.appendChild(messageContainer);\n dialog.appendChild(content);\n const spacing = (_e = options.contentButtonSpacing) !== null && _e !== void 0 ? _e : 24;\n const buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = `display: flex; flex-direction: column; gap: 12px; margin-top: ${spacing}px;`;\n const confirmButton = this.createButton((_f = options.confirmButtonTitle) !== null && _f !== void 0 ? _f : 'Confirm', true, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: true });\n }, options);\n const cancelButton = this.createButton((_g = options.cancelButtonTitle) !== null && _g !== void 0 ? _g : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: false });\n }, options);\n buttonContainer.appendChild(confirmButton);\n buttonContainer.appendChild(cancelButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n createSheetDialogContainer(options) {\n var _a;\n const dialog = document.createElement('div');\n const bgColor = (_a = options.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: 16px;\n padding: 24px;\n min-width: 320px;\n max-width: 420px;\n max-height: 80vh;\n overflow-y: auto;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n `;\n return dialog;\n }\n createMessageSheetDialogContainer(options) {\n var _a;\n const dialog = document.createElement('div');\n const bgColor = (_a = options.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n const isFullscreen = options.mode === 'fullscreen';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: ${isFullscreen ? '0' : '16px'};\n padding: 24px;\n width: ${isFullscreen ? '100%' : 'min(90vw, 420px)'};\n height: ${isFullscreen ? '100%' : 'auto'};\n max-height: ${isFullscreen ? '100vh' : '80vh'};\n display: flex;\n flex-direction: column;\n box-shadow: ${isFullscreen ? 'none' : '0 4px 24px rgba(0, 0, 0, 0.2)'};\n `;\n return dialog;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst ExtendedDialog = registerPlugin('ExtendedDialog', {\n web: () => import('./web').then((m) => new m.ExtendedDialogWeb()),\n});\nexport * from './definitions';\nexport { ExtendedDialog };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class ExtendedDialogWeb extends WebPlugin {\n async alert(options) {\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n window.alert(message);\n }\n async confirm(options) {\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n const result = window.confirm(message);\n return { value: result };\n }\n async prompt(options) {\n var _a;\n // Note: focusInput option is ignored on web as window.prompt() handles focus automatically\n // and does not provide programmatic control over keyboard/focus behavior\n const message = options.title ? `${options.title}\\n\\n${options.message}` : options.message;\n const result = window.prompt(message, (_a = options.inputText) !== null && _a !== void 0 ? _a : '');\n return {\n value: result !== null && result !== void 0 ? result : '',\n cancelled: result === null,\n };\n }\n async singleSelect(options) {\n return new Promise((resolve) => {\n var _a, _b, _c;\n const overlay = this.createOverlay();\n const dialog = this.createDialogContainer(options.title, options.message, options);\n const optionsContainer = document.createElement('div');\n optionsContainer.style.cssText = 'max-height: 300px; overflow-y: auto; margin: 16px 0;';\n let selectedValue = (_a = options.selectedValue) !== null && _a !== void 0 ? _a : null;\n options.options.forEach((option) => {\n const label = document.createElement('label');\n label.style.cssText =\n 'display: flex; align-items: center; padding: 12px 0; cursor: pointer; border-bottom: 1px solid #e0e0e0;';\n const radio = document.createElement('input');\n radio.type = 'radio';\n radio.name = 'singleSelect';\n radio.value = option.value;\n radio.checked = option.value === selectedValue;\n radio.style.cssText = 'margin-right: 12px; width: 20px; height: 20px;';\n radio.addEventListener('change', () => {\n selectedValue = option.value;\n });\n const text = document.createElement('span');\n text.textContent = option.label;\n text.style.cssText = 'font-size: 16px;';\n label.appendChild(radio);\n label.appendChild(text);\n optionsContainer.appendChild(label);\n });\n dialog.appendChild(optionsContainer);\n const buttonContainer = this.createButtonContainer(options.contentButtonSpacing);\n const cancelButton = this.createButton((_b = options.cancelButtonTitle) !== null && _b !== void 0 ? _b : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ value: null, cancelled: true });\n }, options);\n const okButton = this.createButton((_c = options.okButtonTitle) !== null && _c !== void 0 ? _c : 'OK', true, () => {\n this.removeOverlay(overlay);\n resolve({ value: selectedValue, cancelled: false });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(okButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n async multiSelect(options) {\n return new Promise((resolve) => {\n var _a, _b, _c;\n const overlay = this.createOverlay();\n const dialog = this.createDialogContainer(options.title, options.message, options);\n const optionsContainer = document.createElement('div');\n optionsContainer.style.cssText = 'max-height: 300px; overflow-y: auto; margin: 16px 0;';\n const selectedValues = new Set((_a = options.selectedValues) !== null && _a !== void 0 ? _a : []);\n options.options.forEach((option) => {\n const label = document.createElement('label');\n label.style.cssText =\n 'display: flex; align-items: center; padding: 12px 0; cursor: pointer; border-bottom: 1px solid #e0e0e0;';\n const checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n checkbox.value = option.value;\n checkbox.checked = selectedValues.has(option.value);\n checkbox.style.cssText = 'margin-right: 12px; width: 20px; height: 20px;';\n checkbox.addEventListener('change', () => {\n if (checkbox.checked) {\n selectedValues.add(option.value);\n }\n else {\n selectedValues.delete(option.value);\n }\n });\n const text = document.createElement('span');\n text.textContent = option.label;\n text.style.cssText = 'font-size: 16px;';\n label.appendChild(checkbox);\n label.appendChild(text);\n optionsContainer.appendChild(label);\n });\n dialog.appendChild(optionsContainer);\n const buttonContainer = this.createButtonContainer(options.contentButtonSpacing);\n const cancelButton = this.createButton((_b = options.cancelButtonTitle) !== null && _b !== void 0 ? _b : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ values: [], cancelled: true });\n }, options);\n const okButton = this.createButton((_c = options.okButtonTitle) !== null && _c !== void 0 ? _c : 'OK', true, () => {\n this.removeOverlay(overlay);\n resolve({ values: Array.from(selectedValues), cancelled: false });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(okButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n createOverlay() {\n const overlay = document.createElement('div');\n overlay.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n `;\n return overlay;\n }\n createDialogContainer(title, message, styleOptions) {\n var _a, _b, _c, _d, _e;\n const dialog = document.createElement('div');\n const bgColor = (_a = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: 16px;\n padding: 24px;\n min-width: 300px;\n max-width: 400px;\n max-height: 80vh;\n overflow-y: auto;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n `;\n if (title) {\n const titleEl = document.createElement('h2');\n titleEl.textContent = title;\n const titleFontSize = (_b = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.titleFontSize) !== null && _b !== void 0 ? _b : 20;\n const titleColor = (_c = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.titleColor) !== null && _c !== void 0 ? _c : 'inherit';\n titleEl.style.cssText = `margin: 0 0 8px 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor};`;\n dialog.appendChild(titleEl);\n }\n if (message) {\n const messageEl = document.createElement('p');\n messageEl.textContent = message;\n const messageFontSize = (_d = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.messageFontSize) !== null && _d !== void 0 ? _d : 14;\n const messageColor = (_e = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.messageColor) !== null && _e !== void 0 ? _e : '#666';\n messageEl.style.cssText = `margin: 0; font-size: ${messageFontSize}px; color: ${messageColor};`;\n dialog.appendChild(messageEl);\n }\n return dialog;\n }\n createButtonContainer(contentButtonSpacing) {\n const container = document.createElement('div');\n const spacing = contentButtonSpacing !== null && contentButtonSpacing !== void 0 ? contentButtonSpacing : 24;\n container.style.cssText = `display: flex; justify-content: flex-end; gap: 8px; margin-top: ${spacing}px;`;\n return container;\n }\n createButton(text, primary, onClick, styleOptions) {\n var _a, _b, _c;\n const button = document.createElement('button');\n button.textContent = text;\n const fontSize = (_a = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.buttonFontSize) !== null && _a !== void 0 ? _a : 14;\n const primaryColor = (_b = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.buttonColor) !== null && _b !== void 0 ? _b : '#6750A4';\n const cancelColor = (_c = styleOptions === null || styleOptions === void 0 ? void 0 : styleOptions.cancelButtonColor) !== null && _c !== void 0 ? _c : '#6750A4';\n button.style.cssText = `\n padding: 10px 24px;\n border-radius: 8px;\n font-size: ${fontSize}px;\n font-weight: 500;\n cursor: pointer;\n border: none;\n ${primary ? `background: ${primaryColor}; color: white;` : `background: transparent; color: ${cancelColor};`}\n `;\n button.addEventListener('click', onClick);\n return button;\n }\n removeOverlay(overlay) {\n overlay.remove();\n }\n async sheet(options) {\n return new Promise((resolve) => {\n var _a, _b, _c, _d, _e, _f;\n const overlay = this.createOverlay();\n const dialog = this.createSheetDialogContainer(options);\n // Header section with logo and title\n const headerSection = document.createElement('div');\n headerSection.style.cssText = 'display: flex; flex-direction: column; align-items: center; margin-bottom: 24px;';\n if (options.headerLogo) {\n const headerLogo = document.createElement('img');\n headerLogo.src = options.headerLogo;\n // Apply corner radius (default 8px, -1 for circle)\n const radiusPx = options.headerLogoCornerRadius;\n let borderRadius;\n if (radiusPx !== undefined && radiusPx < 0) {\n // -1 means full circle\n borderRadius = '50%';\n }\n else {\n borderRadius = `${radiusPx !== null && radiusPx !== void 0 ? radiusPx : 8}px`;\n }\n headerLogo.style.cssText = `width: 48px; height: 48px; object-fit: contain; margin-bottom: 12px; border-radius: ${borderRadius};`;\n headerLogo.onerror = () => {\n headerLogo.style.display = 'none';\n };\n headerSection.appendChild(headerLogo);\n }\n const titleEl = document.createElement('h2');\n titleEl.textContent = options.title;\n const titleFontSize = (_a = options.titleFontSize) !== null && _a !== void 0 ? _a : 20;\n const titleColor = (_b = options.titleColor) !== null && _b !== void 0 ? _b : 'inherit';\n titleEl.style.cssText = `margin: 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor}; text-align: center;`;\n headerSection.appendChild(titleEl);\n if (options.subtitle) {\n const subtitleEl = document.createElement('p');\n subtitleEl.textContent = options.subtitle;\n const subtitleFontSize = (_c = options.messageFontSize) !== null && _c !== void 0 ? _c : 14;\n const subtitleColor = (_d = options.messageColor) !== null && _d !== void 0 ? _d : '#666';\n subtitleEl.style.cssText = `margin: 4px 0 0 0; font-size: ${subtitleFontSize}px; font-weight: 400; color: ${subtitleColor}; text-align: center;`;\n headerSection.appendChild(subtitleEl);\n }\n dialog.appendChild(headerSection);\n // Rows container\n const rowsContainer = document.createElement('div');\n rowsContainer.style.cssText = 'display: flex; flex-direction: column; gap: 0; margin-bottom: 24px;';\n options.rows.forEach((row, index) => {\n var _a, _b;\n const rowEl = document.createElement('div');\n rowEl.style.cssText = `\n display: flex;\n align-items: center;\n padding: 16px 0;\n ${index < options.rows.length - 1 ? 'border-bottom: 1px solid #e0e0e0;' : ''}\n `;\n if (row.logo) {\n const rowLogo = document.createElement('img');\n rowLogo.src = row.logo;\n rowLogo.style.cssText =\n 'width: 24px; height: 24px; object-fit: contain; margin-right: 12px; border-radius: 4px; flex-shrink: 0;';\n rowLogo.onerror = () => {\n rowLogo.style.display = 'none';\n };\n rowEl.appendChild(rowLogo);\n }\n const rowTitle = document.createElement('span');\n rowTitle.textContent = row.title;\n const messageFontSize = (_a = options.messageFontSize) !== null && _a !== void 0 ? _a : 16;\n const messageColor = (_b = options.messageColor) !== null && _b !== void 0 ? _b : '#333';\n rowTitle.style.cssText = `font-size: ${messageFontSize}px; color: ${messageColor}; flex: 1;`;\n rowEl.appendChild(rowTitle);\n if (row.value) {\n const rowValue = document.createElement('span');\n rowValue.textContent = row.value;\n rowValue.style.cssText = `font-size: ${messageFontSize}px; color: #666; text-align: right; margin-left: 12px;`;\n rowEl.appendChild(rowValue);\n }\n rowsContainer.appendChild(rowEl);\n });\n dialog.appendChild(rowsContainer);\n // For sheets with ≤4 rows and no explicit spacing, add extra spacing to reach ~50% viewport height\n let sheetSpacing = options.contentButtonSpacing;\n if (sheetSpacing === undefined && options.rows.length <= 4) {\n const targetHeight = window.innerHeight * 0.5;\n // Estimate content: padding(48) + header(~80) + rows(~49 each) + buttons(~44) + default spacing(24)\n const estimatedHeight = 48 + 80 + options.rows.length * 49 + 44 + 24;\n if (targetHeight > estimatedHeight) {\n sheetSpacing = 24 + (targetHeight - estimatedHeight);\n }\n }\n // Button container\n const buttonContainer = this.createButtonContainer(sheetSpacing);\n const cancelButton = this.createButton((_e = options.cancelButtonTitle) !== null && _e !== void 0 ? _e : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: false });\n }, options);\n const confirmButton = this.createButton((_f = options.confirmButtonTitle) !== null && _f !== void 0 ? _f : 'Confirm', true, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: true });\n }, options);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.appendChild(confirmButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n async messageSheet(options) {\n return new Promise((resolve) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const overlay = this.createOverlay();\n const dialog = this.createMessageSheetDialogContainer(options);\n const content = document.createElement('div');\n content.style.cssText = 'display: flex; flex-direction: column; flex: 1 1 auto; overflow-y: auto;';\n if (options.headerLogo) {\n const headerLogo = document.createElement('img');\n headerLogo.src = options.headerLogo;\n const logoSize = options.mode === 'fullscreen' ? 64 : 48;\n // Apply corner radius (default 8px, -1 for circle)\n const radiusPx = options.headerLogoCornerRadius;\n let borderRadius;\n if (radiusPx !== undefined && radiusPx < 0) {\n // -1 means full circle\n borderRadius = '50%';\n }\n else {\n borderRadius = `${radiusPx !== null && radiusPx !== void 0 ? radiusPx : 8}px`;\n }\n headerLogo.style.cssText = `width: ${logoSize}px; height: ${logoSize}px; object-fit: contain; margin: 0 auto 16px auto; border-radius: ${borderRadius};`;\n headerLogo.onerror = () => {\n headerLogo.style.display = 'none';\n };\n content.appendChild(headerLogo);\n }\n const titleEl = document.createElement('h2');\n titleEl.textContent = options.title;\n const titleFontSize = (_a = options.titleFontSize) !== null && _a !== void 0 ? _a : 20;\n const titleColor = (_b = options.titleColor) !== null && _b !== void 0 ? _b : 'inherit';\n titleEl.style.cssText = `margin: 0 0 ${options.subtitle ? '4px' : '16px'} 0; font-size: ${titleFontSize}px; font-weight: 600; color: ${titleColor}; text-align: center;`;\n content.appendChild(titleEl);\n if (options.subtitle) {\n const subtitleEl = document.createElement('p');\n subtitleEl.textContent = options.subtitle;\n const subtitleFontSize = (_c = options.messageFontSize) !== null && _c !== void 0 ? _c : 14;\n const subtitleColor = (_d = options.messageColor) !== null && _d !== void 0 ? _d : '#666';\n subtitleEl.style.cssText = `margin: 0 0 16px 0; font-size: ${subtitleFontSize}px; font-weight: 400; color: ${subtitleColor}; text-align: center;`;\n content.appendChild(subtitleEl);\n }\n const messageEl = document.createElement('p');\n messageEl.textContent = options.message;\n const messageFontSize = (_e = options.messageFontSize) !== null && _e !== void 0 ? _e : 16;\n const messageColor = (_f = options.messageColor) !== null && _f !== void 0 ? _f : '#666';\n messageEl.style.cssText = `margin: 0; font-size: ${messageFontSize}px; color: ${messageColor}; white-space: pre-wrap; word-break: break-word;`;\n const messageContainer = document.createElement('div');\n messageContainer.style.cssText = 'background: #E5E5EA; border-radius: 12px; padding: 16px; margin: 0;';\n messageContainer.appendChild(messageEl);\n content.appendChild(messageContainer);\n dialog.appendChild(content);\n const spacing = (_g = options.contentButtonSpacing) !== null && _g !== void 0 ? _g : 24;\n const buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = `display: flex; flex-direction: column; gap: 12px; margin-top: ${spacing}px;`;\n const confirmButton = this.createButton((_h = options.confirmButtonTitle) !== null && _h !== void 0 ? _h : 'Confirm', true, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: true });\n }, options);\n const cancelButton = this.createButton((_j = options.cancelButtonTitle) !== null && _j !== void 0 ? _j : 'Cancel', false, () => {\n this.removeOverlay(overlay);\n resolve({ confirmed: false });\n }, options);\n buttonContainer.appendChild(confirmButton);\n buttonContainer.appendChild(cancelButton);\n dialog.appendChild(buttonContainer);\n overlay.appendChild(dialog);\n document.body.appendChild(overlay);\n });\n }\n createSheetDialogContainer(options) {\n var _a;\n const dialog = document.createElement('div');\n const bgColor = (_a = options.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: 16px;\n padding: 24px;\n min-width: 320px;\n max-width: 420px;\n max-height: 80vh;\n overflow-y: auto;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n `;\n return dialog;\n }\n createMessageSheetDialogContainer(options) {\n var _a;\n const dialog = document.createElement('div');\n const bgColor = (_a = options.backgroundColor) !== null && _a !== void 0 ? _a : 'white';\n const isFullscreen = options.mode === 'fullscreen';\n dialog.style.cssText = `\n background: ${bgColor};\n border-radius: ${isFullscreen ? '0' : '16px'};\n padding: 24px;\n width: ${isFullscreen ? '100%' : 'min(90vw, 420px)'};\n height: ${isFullscreen ? '100%' : 'auto'};\n max-height: ${isFullscreen ? '100vh' : '80vh'};\n display: flex;\n flex-direction: column;\n box-shadow: ${isFullscreen ? 'none' : '0 4px 24px rgba(0, 0, 0, 0.2)'};\n `;\n return dialog;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
@@ -422,6 +422,7 @@ public struct DialogStyleOptions {
422
422
 
423
423
  public func showSheet(
424
424
  title: String,
425
+ subtitle: String?,
425
426
  headerLogo: String?,
426
427
  rows: [[String: String]],
427
428
  confirmButtonTitle: String?,
@@ -437,15 +438,16 @@ public struct DialogStyleOptions {
437
438
  }
438
439
 
439
440
  if fullscreen {
440
- self.showFullScreenSheet(title: title, headerLogo: headerLogo, rows: sheetRows, confirmButtonTitle: confirmButtonTitle, cancelButtonTitle: cancelButtonTitle, styleOptions: styleOptions, callback: callback)
441
+ self.showFullScreenSheet(title: title, subtitle: subtitle, headerLogo: headerLogo, rows: sheetRows, confirmButtonTitle: confirmButtonTitle, cancelButtonTitle: cancelButtonTitle, styleOptions: styleOptions, callback: callback)
441
442
  } else {
442
- self.showBasicSheet(title: title, headerLogo: headerLogo, rows: sheetRows, confirmButtonTitle: confirmButtonTitle, cancelButtonTitle: cancelButtonTitle, styleOptions: styleOptions, callback: callback)
443
+ self.showBasicSheet(title: title, subtitle: subtitle, headerLogo: headerLogo, rows: sheetRows, confirmButtonTitle: confirmButtonTitle, cancelButtonTitle: cancelButtonTitle, styleOptions: styleOptions, callback: callback)
443
444
  }
444
445
  }
445
446
  }
446
447
 
447
448
  public func showMessageSheet(
448
449
  title: String,
450
+ subtitle: String?,
449
451
  message: String,
450
452
  headerLogo: String?,
451
453
  confirmButtonTitle: String?,
@@ -470,6 +472,7 @@ public struct DialogStyleOptions {
470
472
  )
471
473
  vc.sheetCallback = callback
472
474
  vc.headerLogo = headerLogo
475
+ vc.subtitle = subtitle
473
476
 
474
477
  if fullscreen {
475
478
  self.presentFullScreen(vc)
@@ -479,7 +482,7 @@ public struct DialogStyleOptions {
479
482
  }
480
483
  }
481
484
 
482
- private func showBasicSheet(title: String, headerLogo: String?, rows: [SheetRow], confirmButtonTitle: String?, cancelButtonTitle: String?, styleOptions: DialogStyleOptions?, callback: @escaping SheetCallback) {
485
+ private func showBasicSheet(title: String, subtitle: String?, headerLogo: String?, rows: [SheetRow], confirmButtonTitle: String?, cancelButtonTitle: String?, styleOptions: DialogStyleOptions?, callback: @escaping SheetCallback) {
483
486
  // Use FullScreenDialogViewController in sheet presentation mode for basic sheet
484
487
  let vc = FullScreenDialogViewController(
485
488
  dialogType: .sheet,
@@ -496,11 +499,12 @@ public struct DialogStyleOptions {
496
499
  )
497
500
  vc.sheetCallback = callback
498
501
  vc.headerLogo = headerLogo
502
+ vc.subtitle = subtitle
499
503
  vc.sheetRows = rows
500
504
  presentBasicSheet(vc)
501
505
  }
502
506
 
503
- private func showFullScreenSheet(title: String, headerLogo: String?, rows: [SheetRow], confirmButtonTitle: String?, cancelButtonTitle: String?, styleOptions: DialogStyleOptions?, callback: @escaping SheetCallback) {
507
+ private func showFullScreenSheet(title: String, subtitle: String?, headerLogo: String?, rows: [SheetRow], confirmButtonTitle: String?, cancelButtonTitle: String?, styleOptions: DialogStyleOptions?, callback: @escaping SheetCallback) {
504
508
  let vc = FullScreenDialogViewController(
505
509
  dialogType: .sheet,
506
510
  dialogTitle: title,
@@ -516,6 +520,7 @@ public struct DialogStyleOptions {
516
520
  )
517
521
  vc.sheetCallback = callback
518
522
  vc.headerLogo = headerLogo
523
+ vc.subtitle = subtitle
519
524
  vc.sheetRows = rows
520
525
  presentFullScreen(vc)
521
526
  }
@@ -188,6 +188,7 @@ public class ExtendedDialogPlugin: CAPPlugin, CAPBridgedPlugin {
188
188
  call.reject("rows is required")
189
189
  return
190
190
  }
191
+ let subtitle = call.getString("subtitle")
191
192
  let headerLogo = call.getString("headerLogo")
192
193
  let confirmButtonTitle = call.getString("confirmButtonTitle")
193
194
  let cancelButtonTitle = call.getString("cancelButtonTitle")
@@ -197,6 +198,7 @@ public class ExtendedDialogPlugin: CAPPlugin, CAPBridgedPlugin {
197
198
 
198
199
  implementation.showSheet(
199
200
  title: title,
201
+ subtitle: subtitle,
200
202
  headerLogo: headerLogo,
201
203
  rows: rowsArray,
202
204
  confirmButtonTitle: confirmButtonTitle,
@@ -217,6 +219,7 @@ public class ExtendedDialogPlugin: CAPPlugin, CAPBridgedPlugin {
217
219
  call.reject("message is required")
218
220
  return
219
221
  }
222
+ let subtitle = call.getString("subtitle")
220
223
  let headerLogo = call.getString("headerLogo")
221
224
  let confirmButtonTitle = call.getString("confirmButtonTitle")
222
225
  let cancelButtonTitle = call.getString("cancelButtonTitle")
@@ -226,6 +229,7 @@ public class ExtendedDialogPlugin: CAPPlugin, CAPBridgedPlugin {
226
229
 
227
230
  implementation.showMessageSheet(
228
231
  title: title,
232
+ subtitle: subtitle,
229
233
  message: message,
230
234
  headerLogo: headerLogo,
231
235
  confirmButtonTitle: confirmButtonTitle,
@@ -24,6 +24,7 @@ public class FullScreenDialogViewController: UIViewController {
24
24
  // MARK: - Sheet Properties
25
25
 
26
26
  var headerLogo: String?
27
+ var subtitle: String?
27
28
  var sheetRows: [SheetRow]?
28
29
 
29
30
  // MARK: - Properties
@@ -656,7 +657,27 @@ public class FullScreenDialogViewController: UIViewController {
656
657
  sheetTitleLabel.textColor = titleColor
657
658
  }
658
659
  sheetContainer.addArrangedSubview(sheetTitleLabel)
659
- sheetContainer.setCustomSpacing(24, after: sheetTitleLabel)
660
+
661
+ if let subtitleText = subtitle, !subtitleText.isEmpty {
662
+ sheetContainer.setCustomSpacing(4, after: sheetTitleLabel)
663
+
664
+ let subtitleLabel = UILabel()
665
+ subtitleLabel.translatesAutoresizingMaskIntoConstraints = false
666
+ subtitleLabel.text = subtitleText
667
+ let subtitleFontSize = styleOptions?.messageFontSize ?? 14
668
+ subtitleLabel.font = .systemFont(ofSize: subtitleFontSize, weight: .regular)
669
+ subtitleLabel.textAlignment = .center
670
+ subtitleLabel.numberOfLines = 0
671
+ if let messageColor = styleOptions?.messageColor {
672
+ subtitleLabel.textColor = messageColor
673
+ } else {
674
+ subtitleLabel.textColor = .secondaryLabel
675
+ }
676
+ sheetContainer.addArrangedSubview(subtitleLabel)
677
+ sheetContainer.setCustomSpacing(24, after: subtitleLabel)
678
+ } else {
679
+ sheetContainer.setCustomSpacing(24, after: sheetTitleLabel)
680
+ }
660
681
 
661
682
  // Rows container with rounded background
662
683
  let rowsBackground = UIView()
@@ -770,7 +791,27 @@ public class FullScreenDialogViewController: UIViewController {
770
791
  sheetTitleLabel.textColor = titleColor
771
792
  }
772
793
  sheetContainer.addArrangedSubview(sheetTitleLabel)
773
- sheetContainer.setCustomSpacing(16, after: sheetTitleLabel)
794
+
795
+ if let subtitleText = subtitle, !subtitleText.isEmpty {
796
+ sheetContainer.setCustomSpacing(4, after: sheetTitleLabel)
797
+
798
+ let subtitleLabel = UILabel()
799
+ subtitleLabel.translatesAutoresizingMaskIntoConstraints = false
800
+ subtitleLabel.text = subtitleText
801
+ let subtitleFontSize = styleOptions?.messageFontSize ?? 14
802
+ subtitleLabel.font = .systemFont(ofSize: subtitleFontSize, weight: .regular)
803
+ subtitleLabel.textAlignment = .center
804
+ subtitleLabel.numberOfLines = 0
805
+ if let messageColor = styleOptions?.messageColor {
806
+ subtitleLabel.textColor = messageColor
807
+ } else {
808
+ subtitleLabel.textColor = .secondaryLabel
809
+ }
810
+ sheetContainer.addArrangedSubview(subtitleLabel)
811
+ sheetContainer.setCustomSpacing(16, after: subtitleLabel)
812
+ } else {
813
+ sheetContainer.setCustomSpacing(16, after: sheetTitleLabel)
814
+ }
774
815
 
775
816
  // Message container with background
776
817
  let messageBackground = UIView()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-extended-dialog",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Show native dialogs and sheets in Capacitor with Material 3 and Liquid Glass UI",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",