prompt(where, options) {
        let prom
        if (['string', 'number'].includes(typeof options)) {
            options = { label: options }
        }
        if (arguments.length == 1) {
            options = where
        }
        options.cancelAction ??= 'Cancel'
        if (options.label) {
            options.focus = 0 // the input should be in focus, which is first in the popup
            options.body = (options.textarea
                ? `<div class="w2ui-prompt textarea">
                     <div>${options.label}</div>
                     <textarea id="w2prompt" class="w2ui-input" ${options.attrs ?? ''}
                        data-keydown="keydown|event" data-keyup="change|event"></textarea>
                   </div>`
                : `<div class="w2ui-prompt w2ui-centered">
                     <label>${options.label}&nbsp;</label>
                     <input id="w2prompt" class="w2ui-input" ${options.attrs ?? ''}
                        data-keydown="keydown|event" data-keyup="change|event">
                   </div>`
            )
        }
        w2utils.normButtons(options, { ok: w2utils.lang('Ok'), cancel: w2utils.lang('Cancel') })
        prom = w2utils.message(where, options)
        if (prom) {
            prom.change = function(callBack) {
                prom.self.on('change.prom', callBack)
                return prom
            }
            prom
                .action(event => {
                    event.detail.self.close()
                })
                .then(event => {
                    event.detail.self.input = query(event.detail.box).find('#w2prompt').get(0)
                    query(event.detail.box)
                        .find('#w2prompt')
                        .on('keydown', event => {
                            if (event.keyCode == 13 && event.shiftKey === false) {
                                event.preventDefault()
                            }
                        })
                        .on('keyup', event => {
                            let edata = prom.self.trigger('change', { value: event.target.value, input: event.target, originalEvent: event })
                            if (event.keyCode == 13 && event.shiftKey === false) {
                                prom.self.action('Ok', event)
                            }
                            edata.finish()
                        })
                })
        }
        return prom
    }
Shows a prompt as a context message. It will use same where: { box: ... } as w2utils.message() function
but it will have options similar to w2prompt dialog

Example:
 - w2utils.prompt({
      box: '#custom',
      label: 'Enter Name',
      textarea: false,
      attrs: 'style="border: 1px solid red"'
   })
   .ok(event => console.log(event))