{"version":3,"file":"elements.mjs","sources":["../../../node_modules/element-internals-polyfill/dist/index.js","../../../node_modules/@nesis/lib-element/src/_Element.mjs","../../../node_modules/@nesis/lib-element/src/_constants.mjs","../../../node_modules/@nesis/lib-element/src/mixin/_FormInputMixin.mjs","../../../node_modules/@nesis/lib-element/src/_functions.mjs","../../../node_modules/@nesis/lib-element/src/_defineElement.mjs","../transpile/form/container/_form_container_mixin.mjs","../transpile/form/container/button_bar/_button_bar.html.mjs","../../../src/form/container/button_bar/_button_bar.scss","../transpile/form/container/button_bar/_ButtonBarElement.mjs","../transpile/form/container/page/_page.html.mjs","../../../src/form/container/_container.scss","../../../src/form/container/page/_page.scss","../transpile/form/container/page/_page.mjs","../transpile/form/container/section/_section.html.mjs","../../../src/form/container/section/_section.scss","../transpile/form/container/section/_section.mjs","../../../src/form/input/boolean/_boolean.scss","../transpile/form/input/boolean/_boolean.html.mjs","../transpile/form/input/boolean/_boolean.mjs","../../../src/form/input/_input.scss","../transpile/form/input/_input.html.mjs","../transpile/form/input/_constants.mjs","../transpile/form/input/date/_date.mjs","../transpile/form/input/datetime/_datetime.mjs","../transpile/form/input/email/_email.mjs","../transpile/form/input/long/_long.html.mjs","../transpile/form/input/long/_long.mjs","../transpile/form/input/number/_number.mjs","../transpile/form/input/option/_option.html.mjs","../transpile/form/input/option/_option.mjs","../transpile/form/input/_functions.mjs","../transpile/form/input/_InputOptionsMixin.mjs","../transpile/form/input/option/_functions.mjs","../../../src/form/input/option/_option_group.scss","../../../src/form/input/option/_option.scss","../transpile/form/input/option/_option_group.html.mjs","../transpile/form/input/option/_option_group.mjs","../transpile/form/input/phone/_phone.mjs","../transpile/form/input/range/_range.mjs","../../../src/form/input/rating/_rating.scss","../transpile/form/input/rating/_rating.html.mjs","../transpile/form/input/rating/_rating.mjs","../../../src/form/input/secret/_secret.scss","../transpile/form/input/secret/_secret.html.mjs","../transpile/form/input/secret/_secret.mjs","../transpile/form/input/select/_select.html.mjs","../transpile/form/input/select/_select.mjs","../transpile/form/input/text/_text.mjs","../transpile/form/input/time/_time.mjs","../transpile/form/input/url/_url.mjs","../transpile/form/actions/reset/_reset.html.mjs","../../../src/form/actions/_action.scss","../transpile/form/actions/reset/_reset.mjs","../transpile/form/actions/submit/_submit.html.mjs","../transpile/form/actions/submit/_submit.mjs","../transpile/elements.mjs"],"sourcesContent":["(function () {\n 'use strict';\n\n const refMap = new WeakMap();\n const validityMap = new WeakMap();\n const hiddenInputMap = new WeakMap();\n const internalsMap = new WeakMap();\n const validationMessageMap = new WeakMap();\n const formsMap = new WeakMap();\n const shadowHostsMap = new WeakMap();\n const formElementsMap = new WeakMap();\n const refValueMap = new WeakMap();\n const upgradeMap = new WeakMap();\n const shadowRootMap = new WeakMap();\n const validationAnchorMap = new WeakMap();\n const documentFragmentMap = new WeakMap();\n\n const observerConfig$1 = { attributes: true, attributeFilter: ['disabled'] };\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n const target = mutation.target;\n if (target.constructor['formAssociated']) {\n const isDisabled = target.hasAttribute('disabled');\n target.toggleAttribute('internals-disabled', isDisabled);\n if (isDisabled) {\n target.setAttribute('aria-disabled', 'true');\n }\n else {\n target.removeAttribute('aria-disabled');\n }\n if (target.formDisabledCallback) {\n target.formDisabledCallback.apply(target, [isDisabled]);\n }\n }\n }\n });\n const removeHiddenInputs = (internals) => {\n const hiddenInputs = hiddenInputMap.get(internals);\n hiddenInputs.forEach(hiddenInput => {\n hiddenInput.remove();\n });\n hiddenInputMap.set(internals, []);\n };\n const createHiddenInput = (ref, internals) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = ref.getAttribute('name');\n ref.after(input);\n hiddenInputMap.get(internals).push(input);\n return input;\n };\n const initRef = (ref, internals) => {\n hiddenInputMap.set(internals, []);\n const isDisabled = ref.hasAttribute('disabled');\n ref.toggleAttribute('internals-disabled', isDisabled);\n observer.observe(ref, observerConfig$1);\n };\n const initLabels = (ref, labels) => {\n if (labels.length) {\n Array.from(labels).forEach(label => label.addEventListener('click', ref.focus.bind(ref)));\n let firstLabelId = labels[0].id;\n if (!labels[0].id) {\n firstLabelId = `${labels[0].htmlFor}_Label`;\n labels[0].id = firstLabelId;\n }\n ref.setAttribute('aria-labelledby', firstLabelId);\n }\n };\n const setFormValidity = (form) => {\n const nativeControlValidity = Array.from(form.elements)\n .filter((element) => element.validity)\n .map((element) => element.validity.valid);\n const polyfilledElements = formElementsMap.get(form) || [];\n const polyfilledValidity = Array.from(polyfilledElements)\n .filter(control => control.isConnected)\n .map((control) => internalsMap.get(control).validity.valid);\n const hasInvalid = [...nativeControlValidity, ...polyfilledValidity].includes(false);\n form.toggleAttribute('internals-invalid', hasInvalid);\n form.toggleAttribute('internals-valid', !hasInvalid);\n };\n const formInputCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const formChangeCallback = (event) => {\n setFormValidity(findParentForm(event.target));\n };\n const wireSubmitLogic = (form) => {\n const SUBMIT_BUTTON_SELECTOR = ':is(:is(button, input)[type=submit], button:not([type])):not([disabled])';\n let submitButtonSelector = `${SUBMIT_BUTTON_SELECTOR}:not([form])`;\n if (form.id) {\n submitButtonSelector += `,${SUBMIT_BUTTON_SELECTOR}[form='${form.id}']`;\n }\n form.addEventListener('click', event => {\n const target = event.target;\n if (target.closest(submitButtonSelector)) {\n const elements = formElementsMap.get(form);\n if (form.noValidate) {\n return;\n }\n if (elements.size) {\n const nodes = Array.from(elements);\n const validityList = nodes\n .reverse()\n .map(node => {\n const internals = internalsMap.get(node);\n return internals.reportValidity();\n });\n if (validityList.includes(false)) {\n event.preventDefault();\n }\n }\n }\n });\n };\n const formResetCallback = (event) => {\n const elements = formElementsMap.get(event.target);\n if (elements && elements.size) {\n elements.forEach(element => {\n if (element.constructor.formAssociated && element.formResetCallback) {\n element.formResetCallback.apply(element);\n }\n });\n }\n };\n const initForm = (ref, form, internals) => {\n if (form) {\n const formElements = formElementsMap.get(form);\n if (formElements) {\n formElements.add(ref);\n }\n else {\n const initSet = new Set();\n initSet.add(ref);\n formElementsMap.set(form, initSet);\n wireSubmitLogic(form);\n form.addEventListener('reset', formResetCallback);\n form.addEventListener('input', formInputCallback);\n form.addEventListener('change', formChangeCallback);\n }\n formsMap.set(form, { ref, internals });\n if (ref.constructor['formAssociated'] && ref.formAssociatedCallback) {\n setTimeout(() => {\n ref.formAssociatedCallback.apply(ref, [form]);\n }, 0);\n }\n setFormValidity(form);\n }\n };\n const findParentForm = (elem) => {\n let parent = elem.parentNode;\n if (parent && parent.tagName !== 'FORM') {\n parent = findParentForm(parent);\n }\n return parent;\n };\n const throwIfNotFormAssociated = (ref, message, ErrorType = DOMException) => {\n if (!ref.constructor['formAssociated']) {\n throw new ErrorType(message);\n }\n };\n const overrideFormMethod = (form, returnValue, method) => {\n const elements = formElementsMap.get(form);\n if (elements && elements.size) {\n elements.forEach(element => {\n const internals = internalsMap.get(element);\n const valid = internals[method]();\n if (!valid) {\n returnValue = false;\n }\n });\n }\n return returnValue;\n };\n const upgradeInternals = (ref) => {\n if (ref.constructor['formAssociated']) {\n const internals = internalsMap.get(ref);\n const { labels, form } = internals;\n initLabels(ref, labels);\n initForm(ref, form, internals);\n }\n };\n\n const aom = {\n ariaAtomic: 'aria-atomic',\n ariaAutoComplete: 'aria-autocomplete',\n ariaBusy: 'aria-busy',\n ariaChecked: 'aria-checked',\n ariaColCount: 'aria-colcount',\n ariaColIndex: 'aria-colindex',\n ariaColSpan: 'aria-colspan',\n ariaCurrent: 'aria-current',\n ariaDisabled: 'aria-disabled',\n ariaExpanded: 'aria-expanded',\n ariaHasPopup: 'aria-haspopup',\n ariaHidden: 'aria-hidden',\n ariaKeyShortcuts: 'aria-keyshortcuts',\n ariaLabel: 'aria-label',\n ariaLevel: 'aria-level',\n ariaLive: 'aria-live',\n ariaModal: 'aria-modal',\n ariaMultiLine: 'aria-multiline',\n ariaMultiSelectable: 'aria-multiselectable',\n ariaOrientation: 'aria-orientation',\n ariaPlaceholder: 'aria-placeholder',\n ariaPosInSet: 'aria-posinset',\n ariaPressed: 'aria-pressed',\n ariaReadOnly: 'aria-readonly',\n ariaRelevant: 'aria-relevant',\n ariaRequired: 'aria-required',\n ariaRoleDescription: 'aria-roledescription',\n ariaRowCount: 'aria-rowcount',\n ariaRowIndex: 'aria-rowindex',\n ariaRowSpan: 'aria-rowspan',\n ariaSelected: 'aria-selected',\n ariaSetSize: 'aria-setsize',\n ariaSort: 'aria-sort',\n ariaValueMax: 'aria-valuemax',\n ariaValueMin: 'aria-valuemin',\n ariaValueNow: 'aria-valuenow',\n ariaValueText: 'aria-valuetext',\n role: 'role'\n };\n const initAom = (ref, internals) => {\n for (let key in aom) {\n internals[key] = null;\n let closureValue = null;\n const attributeName = aom[key];\n Object.defineProperty(internals, key, {\n get() {\n return closureValue;\n },\n set(value) {\n closureValue = value;\n if (ref.isConnected) {\n ref.setAttribute(attributeName, value);\n }\n else {\n upgradeMap.set(ref, internals);\n }\n }\n });\n }\n };\n\n class ValidityState {\n constructor() {\n this.badInput = false;\n this.customError = false;\n this.patternMismatch = false;\n this.rangeOverflow = false;\n this.rangeUnderflow = false;\n this.stepMismatch = false;\n this.tooLong = false;\n this.tooShort = false;\n this.typeMismatch = false;\n this.valid = true;\n this.valueMissing = false;\n Object.seal(this);\n }\n }\n const setValid = (validityObject) => {\n validityObject.badInput = false;\n validityObject.customError = false;\n validityObject.patternMismatch = false;\n validityObject.rangeOverflow = false;\n validityObject.rangeUnderflow = false;\n validityObject.stepMismatch = false;\n validityObject.tooLong = false;\n validityObject.tooShort = false;\n validityObject.typeMismatch = false;\n validityObject.valid = true;\n validityObject.valueMissing = false;\n return validityObject;\n };\n const reconcileValidity = (validityObject, newState, form) => {\n validityObject.valid = isValid(newState);\n Object.keys(newState).forEach(key => validityObject[key] = newState[key]);\n if (form) {\n setFormValidity(form);\n }\n return validityObject;\n };\n const isValid = (validityState) => {\n let valid = true;\n for (let key in validityState) {\n if (key !== 'valid' && validityState[key] !== false) {\n valid = false;\n }\n }\n return valid;\n };\n\n function initNode(node) {\n const internals = internalsMap.get(node);\n const { form } = internals;\n initForm(node, form, internals);\n initLabels(node, internals.labels);\n }\n function observerCallback(mutationList) {\n mutationList.forEach(mutationRecord => {\n const { addedNodes, removedNodes } = mutationRecord;\n const added = Array.from(addedNodes);\n const removed = Array.from(removedNodes);\n added.forEach(node => {\n if (internalsMap.has(node) && node.constructor['formAssociated']) {\n initNode(node);\n }\n if (upgradeMap.has(node)) {\n const internals = upgradeMap.get(node);\n const aomKeys = Object.keys(aom);\n aomKeys\n .filter(key => internals[key] !== null)\n .forEach(key => {\n node.setAttribute(aom[key], internals[key]);\n });\n upgradeMap.delete(node);\n }\n if (node.localName === 'form') {\n const formElements = formElementsMap.get(node);\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n return internalsMap.has(node) && !formElements && !formElements.has(node) ?\n NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n let current = walker.nextNode();\n while (current) {\n initNode(current);\n current = walker.nextNode();\n }\n }\n });\n removed.forEach(node => {\n const internals = internalsMap.get(node);\n if (internals && hiddenInputMap.get(internals)) {\n removeHiddenInputs(internals);\n }\n if (shadowHostsMap.has(node)) {\n const observer = shadowHostsMap.get(node);\n observer.disconnect();\n }\n });\n });\n }\n function fragmentObserverCallback(mutationList) {\n mutationList.forEach(mutation => {\n const { removedNodes } = mutation;\n removedNodes.forEach(node => {\n const observer = documentFragmentMap.get(mutation.target);\n if (internalsMap.has(node)) {\n upgradeInternals(node);\n }\n observer.disconnect();\n });\n });\n }\n const deferUpgrade = (fragment) => {\n const observer = new MutationObserver(fragmentObserverCallback);\n observer.observe(fragment, { childList: true });\n documentFragmentMap.set(fragment, observer);\n };\n new MutationObserver(observerCallback);\n const observerConfig = {\n childList: true,\n subtree: true\n };\n\n const customStateMap = new WeakMap();\n class CustomStateSet extends Set {\n static get isPolyfilled() {\n return true;\n }\n constructor(ref) {\n super();\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n customStateMap.set(this, ref);\n }\n add(state) {\n if (!/^--/.test(state) || typeof state !== 'string') {\n throw new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value ${state} must start with '--'.`);\n }\n const result = super.add(state);\n const ref = customStateMap.get(this);\n ref.toggleAttribute(`state${state}`, true);\n if (ref.part) {\n ref.part.add(`state${state}`);\n }\n return result;\n }\n clear() {\n for (let [entry] of this.entries()) {\n this.delete(entry);\n }\n super.clear();\n }\n delete(state) {\n const result = super.delete(state);\n const ref = customStateMap.get(this);\n ref.toggleAttribute(`state${state}`, false);\n if (ref.part) {\n ref.part.remove(`state${state}`);\n }\n return result;\n }\n }\n\n class ElementInternals {\n constructor(ref) {\n if (!ref || !ref.tagName || ref.tagName.indexOf('-') === -1) {\n throw new TypeError('Illegal constructor');\n }\n const rootNode = ref.getRootNode();\n const validity = new ValidityState();\n this.states = new CustomStateSet(ref);\n refMap.set(this, ref);\n validityMap.set(this, validity);\n internalsMap.set(ref, this);\n initAom(ref, this);\n initRef(ref, this);\n Object.seal(this);\n upgradeInternals(ref);\n if (rootNode instanceof DocumentFragment) {\n deferUpgrade(rootNode);\n }\n }\n static get isPolyfilled() {\n return true;\n }\n checkValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'checkValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const validity = validityMap.get(this);\n if (!validity.valid) {\n const validityEvent = new Event('invalid', {\n bubbles: false,\n cancelable: true,\n composed: false\n });\n ref.dispatchEvent(validityEvent);\n }\n return validity.valid;\n }\n get form() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'form' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n let form;\n if (ref.constructor['formAssociated'] === true) {\n form = findParentForm(ref);\n }\n return form;\n }\n get labels() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'labels' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const id = ref.getAttribute('id');\n const hostRoot = ref.getRootNode();\n if (hostRoot && id) {\n return hostRoot.querySelectorAll(`[for=\"${id}\"]`);\n }\n return [];\n }\n reportValidity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!this.willValidate) {\n return true;\n }\n const valid = this.checkValidity();\n const anchor = validationAnchorMap.get(this);\n if (anchor && !ref.constructor['formAssociated']) {\n throw new DOMException(`Failed to execute 'reportValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n }\n if (!valid && anchor) {\n ref.focus();\n anchor.focus();\n }\n return valid;\n }\n setFormValue(value) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setFormValue' on 'ElementInternals': The target element is not a form-associated custom element.`);\n removeHiddenInputs(this);\n if (value != null && !(value instanceof FormData)) {\n if (ref.getAttribute('name')) {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.value = value;\n }\n }\n else if (value != null && value instanceof FormData) {\n Array.from(value).reverse().forEach(([formDataKey, formDataValue]) => {\n if (typeof formDataValue === 'string') {\n const hiddenInput = createHiddenInput(ref, this);\n hiddenInput.name = formDataKey;\n hiddenInput.value = formDataValue;\n }\n });\n }\n refValueMap.set(ref, value);\n }\n setValidity(validityChanges, validationMessage, anchor) {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to execute 'setValidity' on 'ElementInternals': The target element is not a form-associated custom element.`);\n if (!validityChanges) {\n throw new TypeError('Failed to execute \\'setValidity\\' on \\'ElementInternals\\': 1 argument required, but only 0 present.');\n }\n validationAnchorMap.set(this, anchor);\n const validity = validityMap.get(this);\n const validityChangesObj = {};\n for (const key in validityChanges) {\n validityChangesObj[key] = validityChanges[key];\n }\n if (Object.keys(validityChangesObj).length === 0) {\n setValid(validity);\n }\n const check = { ...validity, ...validityChangesObj };\n delete check.valid;\n const { valid } = reconcileValidity(validity, check, this.form);\n if (!valid && !validationMessage) {\n throw new DOMException(`Failed to execute 'setValidity' on 'ElementInternals': The second argument should not be empty if one or more flags in the first argument are true.`);\n }\n validationMessageMap.set(this, valid ? '' : validationMessage);\n ref.toggleAttribute('internals-invalid', !valid);\n ref.toggleAttribute('internals-valid', valid);\n ref.setAttribute('aria-invalid', `${!valid}`);\n }\n get shadowRoot() {\n const ref = refMap.get(this);\n const shadowRoot = shadowRootMap.get(ref);\n if (shadowRoot) {\n return shadowRoot;\n }\n return null;\n }\n get validationMessage() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validationMessage' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n return validationMessageMap.get(this);\n }\n get validity() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'validity' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n const validity = validityMap.get(this);\n return validity;\n }\n get willValidate() {\n const ref = refMap.get(this);\n throwIfNotFormAssociated(ref, `Failed to read the 'willValidate' property from 'ElementInternals': The target element is not a form-associated custom element.`);\n if ((ref.disabled || ref.hasAttribute('disabled')) ||\n ref.hasAttribute('readonly')) {\n return false;\n }\n return true;\n }\n }\n function isElementInternalsSupported() {\n if (!window.ElementInternals) {\n return false;\n }\n class ElementInternalsFeatureDetection extends HTMLElement {\n constructor() {\n super();\n this.internals = this.attachInternals();\n }\n }\n const randomName = `element-internals-feature-detection-${Math.random().toString(36).replace(/[^a-z]+/g, '')}`;\n customElements.define(randomName, ElementInternalsFeatureDetection);\n const featureDetectionElement = new ElementInternalsFeatureDetection();\n return [\n 'shadowRoot',\n 'form',\n 'willValidate',\n 'validity',\n 'validationMessage',\n 'labels',\n 'setFormValue',\n 'setValidity',\n 'checkValidity',\n 'reportValidity'\n ].every(prop => prop in featureDetectionElement.internals);\n }\n if (!isElementInternalsSupported()) {\n window.ElementInternals = ElementInternals;\n function attachShadowObserver(...args) {\n const shadowRoot = attachShadow.apply(this, args);\n const observer = new MutationObserver(observerCallback);\n shadowRootMap.set(this, shadowRoot);\n if (window.ShadyDOM) {\n observer.observe(this, observerConfig);\n }\n else {\n observer.observe(shadowRoot, observerConfig);\n }\n shadowHostsMap.set(this, observer);\n return shadowRoot;\n }\n function checkValidityOverride(...args) {\n let returnValue = checkValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'checkValidity');\n }\n function reportValidityOverride(...args) {\n let returnValue = reportValidity.apply(this, args);\n return overrideFormMethod(this, returnValue, 'reportValidity');\n }\n HTMLElement.prototype.attachInternals = function () {\n if (this.tagName.indexOf('-') === -1) {\n throw new Error(`Failed to execute 'attachInternals' on 'HTMLElement': Unable to attach ElementInternals to non-custom elements.`);\n }\n if (internalsMap.has(this)) {\n throw new DOMException(`DOMException: Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.`);\n }\n return new ElementInternals(this);\n };\n const attachShadow = Element.prototype.attachShadow;\n Element.prototype.attachShadow = attachShadowObserver;\n const documentObserver = new MutationObserver(observerCallback);\n documentObserver.observe(document.documentElement, observerConfig);\n const checkValidity = HTMLFormElement.prototype.checkValidity;\n HTMLFormElement.prototype.checkValidity = checkValidityOverride;\n const reportValidity = HTMLFormElement.prototype.reportValidity;\n HTMLFormElement.prototype.reportValidity = reportValidityOverride;\n if (!window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n }\n }\n else if (!window.CustomStateSet) {\n window.CustomStateSet = CustomStateSet;\n const attachInternals = HTMLElement.prototype.attachInternals;\n HTMLElement.prototype.attachInternals = function (...args) {\n const internals = attachInternals.call(this, args);\n internals.states = new CustomStateSet(this);\n return internals;\n };\n }\n\n}());\n","/**\n * @public\n * @class Element\n * @description base class for all elements\n */\nexport class Element {\n #context;\n #internals;\n\n /**\n * @constructor\n * @description constructor accepts the element that wraps this instance\n * @param {HTMLElement} context of this web element instance\n * @param {ElementInternals} [internals] of element\n */\n constructor(context, internals) {\n this.#context = context;\n this.#internals = internals;\n }\n\n /**\n * @public\n * @description allows the element to access its parent html element\n * @return {HTMLElement} context wrapping this element\n */\n get context() {\n return this.#context;\n }\n\n /**\n * @public\n * @description allows child classes to access its parent html\n * element internals\n * @return {ElementInternals} internals instance or null if not set\n */\n get internals() {\n return this.#internals;\n }\n\n /**\n * @public\n * @description default connectedCallback method. called when html element is\n * added to a document\n */\n connectedCallback() {}\n\n /**\n * @public\n * @description default disconnectedCalleback method. called when html element\n * is removed from its document\n */\n disconnectedCallback() {}\n\n /**\n * @public\n * @description default shadowReadyCallback method. called during\n * construction of the html elment. use this method to get references to the\n * elements html, but do not modify the parent element.\n */\n templateReadyCallback() {}\n}\n","/**\n * @public\n * @readonly\n * @enum {string}\n * @description enumeration of allowable Element.mode values\n */\nexport const ShadowMode = Object.freeze({\n NONE: 'none',\n OPEN: 'open',\n CLOSED: 'closed',\n});\n","/* eslint max-len : \"off\" */\n/**\n * @public\n * @hideconstructor\n * @mixin\n * @description mixin for abstracting form input functionality. the goal is to\n * promote consistency, and reduce code duplication.\n * @param {class} Base class that functionality is being added to\n * @return {class}\n * @see [MDN: Mix-ins]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#mix-ins}\n * @see [MDN: Using templates and slots]{@link https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_templates_and_slots}\n * @see [Promise API]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise}\n */\nexport const FormInputMixin = (Base) => class extends Base {\n #labelEl;\n #inputEl;\n\n /**\n * @description constructor passes through arguments and binds handlers to\n * this context.\n * @param {...object} args passed through to super\n */\n constructor(...args) {\n super(...args);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n /**\n * @public\n * @instance\n * @readonly\n * @memberof FormInputMixin\n * @description gets a reference to the input component's label element\n * @return {HTMLElement} element\n */\n get labelEl() {\n return this.#labelEl;\n }\n\n /**\n * @public\n * @instance\n * @readonly\n * @memberof FormInputMixin\n * @description gets a reference to the input component's input element\n * @return {HTMLElement} element\n */\n get inputEl() {\n return this.#inputEl;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the autocomplete attribute of input\n * @type {string} newAutocomplete to set\n */\n get autocomplete() {\n return this.#inputEl.autocomplete;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set autocomplete(newAutocomplete) {\n this.#inputEl.autocomplete = newAutocomplete;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the autofocus attribute of input\n * @type {boolean} newAutofocus to set\n */\n get autofocus() {\n return this.#inputEl.autofocus;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set autofocus(newAutofocus) {\n this.#inputEl.autofocus = newAutofocus !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the checked attribute of input\n * @type {boolean} newChecked to set\n */\n get checked() {\n return this.#inputEl.checked;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set checked(newChecked) {\n this.#inputEl.checked = newChecked !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description an initial value that should be set on this input\n * @type {boolean} newDefaultChecked to set\n */\n get defaultChecked() {\n return this.#inputEl.defaultChecked;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set defaultChecked(newDefaultChecked) {\n this.#inputEl.defaultChecked = newDefaultChecked !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description an initial value that should be set on this input\n * @type {any} newDefaultValue to set\n */\n get defaultValue() {\n return this.#inputEl.defaultValue;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set defaultValue(newDefaultValue) {\n this.internals.setFormValue(newDefaultValue);\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the disabled attribute of input\n * @type {boolean} newDisabled to set\n */\n get disabled() {\n return this.#inputEl.disabled;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set disabled(newDisabled) {\n this.#inputEl.disabled = newDisabled !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the label attribute of input\n * @type {string} newLabel to set\n */\n get label() {\n return this.#labelEl.innerText;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set label(newLabel) {\n this.#labelEl.innerText = newLabel;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the max length attribute of input\n * @type {number} newMaxLength to set\n */\n get maxlength() {\n return this.#inputEl.maxlength;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set maxlength(newMaxLength) {\n this.#inputEl.maxLength = newMaxLength;\n }\n\n /**\n *@public\n * @instance\n * @memberof FormInputMixin\n * @description sets the max attribute of input\n * @type {number} newMax to set\n */\n get max() {\n return this.#inputEl.max;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set max(newMax) {\n this.#inputEl.max = newMax;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the min attribute of input\n * @type {string} newMin to set\n */\n get min() {\n return this.#inputEl.min;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set min(newMin) {\n this.#inputEl.min = newMin;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the multiple attribute of input\n * @type {boolean} newMultiple to set\n */\n get multiple() {\n return this.#inputEl.multiple;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set multiple(newMultiple) {\n this.#inputEl.multiple = newMultiple !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the name attribute of input\n * @type {string} newName to set\n */\n get name() {\n return this.#inputEl.name;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set name(newName) {\n this.#inputEl.name = newName;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the pattern attribute of input\n * @type {string} newPattern to set\n */\n get pattern() {\n return this.#inputEl.pattern;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set pattern(newPattern) {\n this.#inputEl.pattern = newPattern;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the placeholder attribute of input\n * @type {string} newPlaceholder to set\n */\n get placeholder() {\n return this.#inputEl.placeholder;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set placeholder(newPlaceholder) {\n this.#inputEl.placeholder = newPlaceholder;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the required attribute of input\n * @type {boolean} newRequired to set\n */\n get required() {\n return this.#inputEl.required;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set required(newRequired) {\n this.#inputEl.required = newRequired !== null;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the step attribute of input\n * @type {number} newStep to set\n */\n get step() {\n return this.#inputEl.step;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set step(newStep) {\n this.#inputEl.step = newStep;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description sets the value attribute of input\n * @type {any} newValue to set\n */\n get value() {\n return this.#inputEl.value;\n }\n\n /* eslint require-jsdoc: \"off\" */\n set value(newValue) {\n this.#inputEl.value = newValue;\n this.internals.setFormValue(newValue);\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description checks the validity of inputEl\n */\n checkValidity() {\n const el = this.#inputEl;\n el.checkValidity();\n this.internals.setValidity(el.validity, el.validationMessage);\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description called when element is appended to the document\n */\n connectedCallback() {\n this.checkValidity();\n this.context.tabIndex = 0; // IMPORTANT: Validation message depends on focus\n this.context.addEventListener('blur', this.handleBlur, false);\n this.#inputEl.addEventListener('change', this.handleChange, false);\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description called when element is removed from the document\n */\n disconnectedCalleback() {\n this.context.removeEventListener('blur', this.handleBlur, false);\n this.#inputEl.removeEventListener('change', this.handleChange, false);\n }\n\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description actions to take on input blur\n * @param {object} e dom event object\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Event|Event}\n */\n handleBlur(e) {\n this.checkValidity();\n // this.inputEl.blur(); doesn't do anything\n this.#inputEl.classList.add('visited');\n if (this.context.hasAttribute('value')) {\n this.context.setAttribute('value', this.#inputEl.value);\n }\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description actions to take on input change\n * @param {object} e dom event object\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Event|Event}\n */\n handleChange(e) {\n const target = e.target;\n this.value = target.value;\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description actions to take on focus event\n */\n handleFocus() {\n this.#inputEl.focus();\n this.#inputEl.classList.remove('visited');\n }\n\n /**\n * @public\n * @instance\n * @memberof FormInputMixin\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n templateReadyCallback(rootEl) {\n this.#labelEl = rootEl.querySelector('#label');\n this.#inputEl = rootEl.querySelector('#input');\n }\n};\n","/**\n * @description creates a dom Node for later cloning\n * @param {string} [css=\"\"] styles for component\n * @param {string} [html=\"\"] html for component\n * @return {Node} template\n */\nexport function createTemplate(css ='', html = '') {\n const template = document.createElement('template');\n\n template.innerHTML = `${html}`;\n return template.content;\n}\n\n\n/**\n * @description tests if the provided value is a is a primitive\n * @param {any} value to be tested\n * @return {boolean}\n */\nexport function isPrimitive(value) {\n return (value !== Object(value));\n}\n\n/**\n * @description makes shadowless custom elements mimic the behavior of shadow\n * DOM\n * @param {Element} elementThis element being slotted\n * @param {DocumentFragment} content template where slots should be inserted\n * @return {DocumentFragment} slotted content\n */\nexport function slotContent(elementThis, content) {\n // remove children from the element to reduce number of re-draws\n const fragment = document.createElement('div');\n\n fragment.append(...elementThis.children);\n\n const slots = content.querySelectorAll('slot');\n for (const slot of slots) {\n const slotName = slot.getAttribute('name');\n const slottables = (slotName) ?\n fragment.querySelectorAll(`:scope > *[slot=\"${slotName}\"]`) :\n fragment.querySelectorAll(`:scope > *:not([slot])`);\n\n if (slottables.length > 0) slot.replaceWith(...slottables);\n }\n\n return content;\n}\n","import {createTemplate, slotContent} from './_functions.mjs';\nimport {ShadowMode} from './_constants.mjs';\n\n/**\n * @public\n * @description factory method for creating custom html elements from an\n * annonymous classes. IMPORTANT: properties do not come on line until event\n * DOMContentLoaded has fired no matter how element is created. This might still\n * be that elements.mjs file isn't yet loaded. Something to test.\n * @param {class} Element of the element wrapped by this element\n */\nexport function defineElement(Element) {\n const template = createTemplate(Element.css, Element.html);\n const formAssociated = Element.formAssociated || false;\n const elementInternals = formAssociated ||\n Element.elementInternals || false;\n const mode = Element.mode || ShadowMode.NONE;\n const observedAttributes = Element.observedAttributes || [];\n const observedMethods = Element.observedMethods || [];\n const observedProperties = Element.observedProperties || [];\n\n /**\n * @public\n * @description custom HTML element that wraps any element class configured\n * by the function defineLement\n */\n window.customElements.define(\n Element.tagName.toLowerCase(), class extends HTMLElement {\n #content;\n #element;\n #shadowInitialized = false;\n\n /**\n * @public\n * @memberof defineElement~Element\n * @description optional proprty that tells the browser if this native web\n * element should participate in form activity\n * @type {boolean}\n */\n static formAssociated = formAssociated;\n\n /**\n * @public\n * @memberof defineElement~Element\n * @description list of attributes that will notify a element when\n * changed\n * @type {string[]}\n */\n static get observedAttributes() {\n return observedAttributes;\n }\n\n /**\n * @public\n * @memberof defineElement~Element\n * @description list of methods that will notify compoonent when changed\n * @type {string[]}\n */\n static get observedMethods() {\n return observedMethods;\n }\n\n /**\n * @public\n * @memberof defineElement~Element\n * @description list of properties that will notify compoonent when changed\n * @type {string[]}\n */\n static get observedProperties() {\n return observedProperties;\n }\n\n /**\n * @public\n * @constructor\n * @description creates a new instance of Element. Called by browser\n */\n constructor() {\n super();\n\n // optionally set element internals\n const internals = (elementInternals) ? this.attachInternals() : null;\n\n // create the custom element with this element as its context\n const element = Object.freeze(new Element(this, internals));\n\n // setup observed methods\n for (const observedMethod of observedMethods) {\n Object.defineProperty(this, observedMethod, {\n value: function(...args) {\n return this.#element[observedMethod](...args);\n },\n });\n }\n\n // setup observed properties\n for (const observedProperty of observedProperties) {\n Object.defineProperty(this, observedProperty, {\n get() {\n return this.#element[observedProperty];\n },\n set(value) {\n this.#element[observedProperty] = value;\n },\n });\n }\n\n // cloning is faster than creating so clone once per instance\n const content = template.cloneNode(true);\n\n // allow the element an opportunity to get its dom hooks\n element.templateReadyCallback(content);\n\n // set element content\n this.#content = content;\n\n // assign the custom element to this elements instance\n this.#element = element;\n }\n\n /**\n * @public\n * @instance\n * @memberof defineElement~Element\n * @method attributeChangedCallback\n * @description lifecycle method called by the browser when an observed\n * attribute changes\n * @param {string} name of the attribute that changed\n * @param {string} oldValue of the specified attribute\n * @param {string} newValue of the specified attribute\n */\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue !== newValue) {\n this.#element[name] = newValue;\n }\n }\n\n /**\n * @public\n * @instance\n * @memberof defineElement~Element\n * @method connectedCallback\n * @description lifecycle method called by the browser when an element is\n * added to the document\n */\n connectedCallback() {\n // call element connectedCallback first\n this.#element.connectedCallback();\n\n // IMPORTANT: only initialize the shadow root one-time\n if (!this.#shadowInitialized) {\n // append the content to the new node\n if (mode === ShadowMode.NONE) {\n this.appendChild(slotContent(this, this.#content));\n } else {\n // IMPORTANT: focus will only be called when this.tabIndex is set.\n this.addEventListener('focus', () => {\n this.focus();\n }, false);\n this.attachShadow({mode: mode}).appendChild(this.#content);\n }\n this.#shadowInitialized = true;\n }\n }\n\n /**\n * @public\n * @instance\n * @memberof defineElement~Element\n * @method disconnectedCallback\n * @description lifecycle method called by the browser when an element is\n * removed from the document\n */\n disconnectedCallback() {\n // call element disconnectedCallback first\n this.#element.disconnectedCallback();\n }\n\n /**\n * @public\n * @instance\n * @memberof defineElement~Element\n * @method focus\n * @description delegates focus to the element\n */\n focus() {\n this.#element.handleFocus();\n }\n },\n );\n}\n","import { ShadowMode } from '@nesis/lib-element';\n/**\n * @public\n * @hideconstructor\n * @mixin\n * @description mixin for abstracting form container functionality. the goal is\n * to promote consistency, and reduce code duplication.\n * @param {class} Base class that functionality is being added to\n * @return {class}\n */\n\nexport const FormContainerMixin = Base => class extends Base {\n static mode = ShadowMode.CLOSED;\n #labelEl;\n #containerEl;\n /**\n * @protected\n * @description gets a reference to the input element's label element\n * @return {HTMLElement} element\n */\n\n get labelEl() {\n return this.#labelEl;\n }\n /**\n * @description sets the label attribute of input\n * @param {string} newLabel to set\n */\n\n\n set label(newLabel) {\n this.#labelEl.innerText = newLabel;\n }\n /**\n * @protected\n * @description gets a reference to the element's container element\n * @return {HTMLElement} element\n */\n\n\n get containerEl() {\n return this.#containerEl;\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n this.#labelEl = rootEl.querySelector('#label');\n this.#containerEl = rootEl.querySelector('#container');\n }\n\n};","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n
`\n}\n ",":host {\n display: block;\n margin: 1rem;\n}\n","/* eslint new-cap: \"off\" */\nimport { Element, ShadowMode } from '@nesis/lib-element';\nimport { FormContainerMixin } from '../_form_container_mixin.mjs';\nimport html from \"./_button_bar.html.mjs\";\nimport css from \"./_button_bar.css.mjs\";\nexport class ContainerButtonBarElement extends FormContainerMixin(Element) {\n static css = css();\n static html = html();\n static mode = ShadowMode.CLOSED;\n static tagName = 'container-button-bar';\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n

\n
\n \n \n
\n
`\n}\n ",":host {\n .container {\n border: none;\n box-sizing: border-box;\n margin:0;\n min-width:0; /* fieldset width breaks without this */\n padding:0px;\n\n #label {\n font-weight: bold;\n padding:0;\n }\n #container {\n min-height: 2rem;\n }\n }\n}\n","@import '../container';\n\n:host(container-page) {\n #label {\n font-size: 2rem;\n margin: 1rem;\n }\n}\n","/* eslint new-cap: \"off\" */\nimport { Element, ShadowMode } from '@nesis/lib-element';\nimport { FormContainerMixin } from '../_form_container_mixin.mjs';\nimport html from \"./_page.html.mjs\";\nimport css from \"./_page.css.mjs\";\nexport class ContainerPageElement extends FormContainerMixin(Element) {\n static css = css();\n static html = html(); // static formAssociated = true;\n\n static mode = ShadowMode.CLOSED;\n static tagName = 'container-page';\n static observedAttributes = ['label'];\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n
\n \n
\n
`\n}\n ","@import '../container';\n\n:host {\n \n margin-bottom: 1rem;\n #label {\n font-size: 1.2rem;\n margin: 2rem 1rem 0;\n }\n #container{\n padding: 0 0.5rem;\n }\n}\n\n@media(screen and min-width:768px) {\n :host([layout=\"horizontal\"]) {\n #label {\n box-sizing: border-box;\n overflow: hidden;\n padding:0 .75rem;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n width:40%;\n }\n }\n}\n","/* eslint new-cap: \"off\" */\nimport { Element, ShadowMode } from '@nesis/lib-element';\nimport { FormContainerMixin } from '../_form_container_mixin.mjs';\nimport html from \"./_section.html.mjs\";\nimport css from \"./_section.css.mjs\";\nexport class ContainerSectionElement extends FormContainerMixin(Element) {\n static css = css();\n static html = html();\n static mode = ShadowMode.CLOSED;\n static tagName = 'container-section';\n static observedAttributes = ['label'];\n}",":host {\n .input {\n display: flex;\n flex-direction: row-reverse;\n margin: 1rem;\n outline:none;\n\n #label {\n align-self: center;\n font-size: 1.2rem;\n flex-grow: 1;\n padding: 0 .75rem;\n }\n\n #input {\n flex-shrink: 1;\n\n button {\n background-color: #fff;\n border: 1px solid #ced4da;\n box-sizing: border-box;\n padding: 0.25rem 0;\n width: 2.5rem;\n\n &:first-child {\n border-radius: .25rem 0 0 .25rem;\n border-right: none;\n }\n &:last-child { border-radius: 0 .25rem .25rem 0; }\n\n &.selected {\n color: #fff;\n background-color: black;\n border-color: black;\n font-weight: bold;\n }\n }\n }\n }\n}\n\n:host([disabled]) {\n color: rgba(59, 59, 59, 0.3) !important;\n\n .input {\n #input {\n cursor: not-allowed;\n pointer-events: all !important;\n\n button {\n color: rgba(59, 59, 59, 0.3) !important;\n cursor: not-allowed;\n border: 1px solid #ced4da !important;\n pointer-events: all !important;\n\n &.selected {\n background-color: #e9ecef;\n }\n }\n }\n }\n}\n\n:host([required]) {\n .input {\n #label:after {\n content:\"*\";\n color:red;\n margin-left:2px;\n }\n }\n}\n\n@media(screen and min-width:768px) {\n :host([layout=\"horizontal\"]) {\n .input { flex-direction: row; }\n }\n}\n","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n
\n \n
\n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"./_boolean.css.mjs\";\nimport html from \"./_boolean.html.mjs\";\n/**\n * Basic input type text\n */\n\nexport class InputBooleanElement extends FormInputMixin(Element) {\n #stateValue;\n static css = css();\n static html = html();\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-boolean';\n static observedAttributes = ['disabled', 'label', 'required', 'value'];\n /**\n * @description sets property value\n * @param {string} newValue of property\n */\n\n set value(newValue) {\n // const classList = this.inputEl.classList;\n const yesEl = this.inputEl.children[0];\n const noEl = this.inputEl.children[1];\n\n if (newValue === 'true') {\n yesEl.className = 'selected';\n noEl.className = '';\n this.#stateValue = newValue;\n } else if (newValue === 'false') {\n yesEl.className = '';\n noEl.className = 'selected';\n this.#stateValue = newValue;\n } else {\n yesEl.className = '';\n noEl.className = '';\n this.#stateValue = undefined;\n }\n\n this.internals.setFormValue(this.#stateValue);\n }\n /**\n * @description checks the validity of inputEl\n */\n\n\n checkValidity() {\n const value = this.#stateValue;\n const validity = {\n valid: true\n };\n let validityMessage = '';\n\n if (!this.context.matches(':disabled')) {\n // do not validate if disabled\n if (this.context.hasAttribute('required') && !value) {\n validity.valid = false;\n validity.valueMissing = true;\n validityMessage = 'Please fill out this field.';\n }\n\n this.internals.setValidity(validity, validityMessage);\n }\n }\n /**\n * @description handle events that toggle the value of this element\n * @param {Event} e event object\n */\n\n\n handleToggle(e) {\n if (!this.context.matches(':disabled')) {\n this.value = e.target === this.inputEl.children[0] ? 'true' : 'false';\n }\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n super.templateReadyCallback(rootEl);\n this.inputEl.addEventListener('click', this.handleToggle.bind(this), true);\n }\n\n}","/*\n * STYLE REQUIREMENTS & GOALS\n * ==========================\n * 1. minimize the number of style rules & html elements!\n * 2. input elements want to fill all the space\n * 3. labels cannot distort the size of the host unless the element covers the page\n * 4.\n *\n * STYLE ISSUES\n * =========================\n * 1. label ellisis pushes required out of view. no work around. reason to restrict label length\n */\n//@use '../../_constants.scss';\n$breakpoint-small: 768px;/* phones and small tablets; */\n\n:host {\n display: block;\n outline:none;\n\n /* child container makes margin possible with 100% inputs */\n .input {\n border: none;\n padding:0;\n position: relative;\n margin: 1rem;\n\n #label {\n box-sizing: border-box;\n display:block;\n font-size: 1.2rem;\n margin-bottom: .5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n #input {\n border: 1px solid #ced4da;\n border-radius: .25rem;\n box-shadow: none;\n box-sizing: border-box; /* keep padding from extending width past 100% */\n display:block;\n font-size: 1rem;\n padding: .75rem;\n transition: border linear 0.2s, box-shadow linear 0.2s;\n width:100%;\n\n &[type = \"date\"], /* initial decision to make dates and times statically sized */\n &[type = \"datetime-local\"],\n &[type = \"time\"] { width: initial !important; }\n\n &:focus {\n border-color: rgba(82,168,236,.8);\n box-shadow: inset 0 1px 3px rgb(0 0 0 / 10%), 0 0 8px rgb(82 168 236 / 60%);\n outline:0;\n }\n\n &.visited:invalid {\n border-color: rgba(255,0,0,.8);\n box-shadow: inset 0 1px 3px rgb(0 0 0 / 10%), 0 0 8px rgb(255 0 0 / 60%);\n outline:0;\n }\n }\n }\n}\n\n:host([disabled]) {\n color: rgba(59, 59, 59, 0.3) !important;\n\n .input {\n #input {\n cursor: not-allowed;\n pointer-events: all !important;\n }\n\n button {\n color: rgba(59, 59, 59, 0.3) !important;\n cursor: not-allowed;\n pointer-events: all !important;\n }\n }\n}\n\n:host([required]) {\n .input {\n #label:after {\n content:\"*\";\n color:red;\n margin-left:2px;\n }\n }\n}\n\n:host([style*=\"width:100%\"]) {\n .input {\n #label {\n text-overflow: visible;\n white-space: normal;\n }\n }\n}\n\n@media(screen and min-width:$breakpoint-small) {\n :host([layout=\"horizontal\"]) {\n .input {\n display: flex;\n\n > #label {\n align-self: center;\n line-height: 2.0rem;\n padding:0 .75rem;\n text-align: right;\n width:40%;\n }\n\n > #input {\n width:60%;\n }\n }\n }\n}\n\n\n\n/* Hold off on the breakpoints for a bit */\n// @media (min-width: $breakpoint-$breakpoint-small) {\n//\n// }\n","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n \n
`\n}\n ","export const NUMBER_OBSERVED_ATTRIBUTES = ['autofocus', 'disabled', 'label', 'max', 'min', 'name', 'required', 'step', 'value'];\nexport const TEXT_OBSERVED_ATTRIBUTES = ['autofocus', 'disabled', 'label', 'maxlength', 'name', 'pattern', 'placeholder', 'required', 'value'];","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { NUMBER_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputDateElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'date'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-date';\n static observedAttributes = NUMBER_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { NUMBER_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputDatetimeElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'datetime-local'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-datetime';\n static observedAttributes = NUMBER_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs'; // multiple emails may be provided by separating values with a comma\n\nconst attributes = TEXT_OBSERVED_ATTRIBUTES.slice(); // !important clone first\n\nattributes.push('multiple');\n/**\n * Basic input type text\n */\n\nexport class InputEmailElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'email'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-email';\n static observedAttributes = attributes;\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n \n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"./_long.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputLongElement extends FormInputMixin(Element) {\n static css = css();\n static html = html();\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-long';\n static observedAttributes = TEXT_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { NUMBER_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputNumberElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'number'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-number';\n static observedAttributes = NUMBER_OBSERVED_ATTRIBUTES;\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag``\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element } from '@nesis/lib-element'; // import css from './_option.scss';\n\nimport html from \"./_option.html.mjs\";\n/**\n * Basic input type text\n */\n\nexport class InputOptionElement extends Element {\n static css = ''; // imported by option group //css();\n\n static html = html();\n static tagName = 'input-option';\n static observedAttributes = ['checked', 'disabled', 'label', 'name', 'type', 'value'];\n #inputEl;\n #labelEl;\n /**\n * @description gets the value of checked\n * @return {boolean} is checked\n */\n\n get checked() {\n return this.#inputEl.checked;\n }\n /**\n * @description sets the value of checked\n * @param {string} newChecked checked value\n */\n\n\n set checked(newChecked) {\n this.#inputEl.checked = newChecked !== null;\n }\n /**\n * @description sets the value of disabled\n * @param {string} newDisabled disabled value\n */\n\n\n set disabled(newDisabled) {\n this.#inputEl.disabled = newDisabled !== null;\n }\n /**\n * @description sets the value of checked\n * @param {string} newLabel label value\n */\n\n\n set label(newLabel) {\n this.#labelEl.innerText = newLabel;\n }\n /**\n * @description sets the value of name\n * @param {string} newName name value\n */\n\n\n set name(newName) {\n this.#inputEl.name = newName;\n }\n /**\n * @description sets the type\n * @param {(checkbox|radio)} newType type\n */\n\n\n set type(newType) {\n this.#inputEl.type = newType === 'radio' ? newType : 'checkbox';\n }\n /**\n * @description gets the value of this option\n * @return {string} option value\n */\n\n\n get value() {\n return this.#inputEl.value;\n }\n /**\n * @description sets the value of option not internals\n * @param {string} newValue option value\n */\n\n\n set value(newValue) {\n this.#inputEl.value = newValue;\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n this.#labelEl = rootEl.querySelector('label > span:nth-child(1)');\n this.#inputEl = rootEl.querySelector('input');\n }\n\n}","const optionTemplate = document.createElement('option');\n/**\n * @description create an element suitable for most optional values\n * @param {string} label for the option\n * @param {boolean} selected true if should be selected by default\n * @param {string} value that will be sent to the server\n * @return {HtmlElement}\n */\n\nexport function defaultCreateCallback(label, selected, value) {\n const option = optionTemplate.cloneNode(false);\n option.value = value;\n option.innerText = label;\n option.selected = selected;\n return option;\n}","/* eslint new-cap: \"off\" */\nimport { defaultCreateCallback } from './_functions.mjs';\n/**\n * @public\n * @hideconstructor\n * @mixin\n * @description mixin for abstracting options contained by an input element\n * @param {class} Base class that functionality is being added to\n * @return {class}\n */\n\nexport const InputOptionsMixin = Base => class extends Base {\n #options = {};\n /**\n * @description create html for loaded options\n * @param {object} options to display\n */\n\n displayOptions(options) {\n this.inputEl.replaceChildren(...Object.values(options));\n }\n /**\n * @description load options from array\n * @param {array} newOptions to set\n * @param {function} [createCallback] optional function for creating an html\n * option\n */\n\n\n fromArray(newOptions, createCallback) {\n const createOption = createCallback || defaultCreateCallback;\n this.#options = {};\n this.context;\n\n for (const newOption of newOptions) {\n const label = newOption.label;\n const selected = newOption.selected === true; // when value not provided label is the value\n\n const value = newOption.value || label;\n const option = createOption(label, selected, value);\n this.#options[value] = option;\n }\n\n this.displayOptions(this.#options);\n }\n /**\n * @description load options from children\n * @param {HtmlElement} element to set\n * @param {function} [createCallback] optional function for creating an html\n * option\n */\n\n\n fromChildren(element, createCallback) {\n const createOption = createCallback || defaultCreateCallback;\n const elementChildren = element.children;\n\n if (elementChildren.length > 0) {\n this.#options = {};\n\n while (elementChildren.length > 0) {\n const child = element.removeChild(elementChildren[0]);\n const selected = child.selected;\n const label = child.innerText; // when value not provided text is the value\n\n const value = child.value || label;\n this.#options[value] = createOption(label, selected, value);\n }\n\n this.displayOptions(this.#options);\n }\n }\n /**\n * @description rebuilds the options html\n */\n\n\n refreshOptions() {\n this.displayOptions(this.#options);\n }\n /**\n * @description applies provided function to each option\n * @param {function} updateCallback optional function for updating an html\n * option\n */\n\n\n updateOptions(updateCallback) {\n if (typeof updateCallback === 'function') {\n Object.values(this.#options).forEach(updateCallback);\n }\n }\n\n};","/**\n * @description gets absolute integer value for provided argument\n * @param {string} value to parse and make positive\n * @return {number} integer or NaN\n */\nexport function absoluteInteger(value) {\n return Math.abs(parseInt(value, 10));\n}\n/**\n * @description returns the appropriate mode for the provided min and max\n * @param {number} max maximum allowed number of selections\n * @param {number} min minimum allowed number of selections\n * @return {string} radio or checkbox\n */\n\nexport function maxMinMode(max, min) {\n return max === 1 && min === 1 ? 'radio' : 'checkbox';\n}\n/**\n * @description ensures number of columns is valid\n * @param {string} newColumns columns attribute value\n * @param {number} maxColumns maximum allowed value\n * @param {number} defaultColumns fallback value for uncorrectable attribute\n * @return {number} allowed number of columns\n */\n\nexport function sanitizeNumColumns(newColumns, maxColumns, defaultColumns) {\n const numColumns = absoluteInteger(newColumns);\n const valid = !isNaN(numColumns) && numColumns <= maxColumns;\n return valid ? numColumns : defaultColumns;\n}",":host {\n\n fieldset.input {\n border: none;\n margin: 1rem;\n min-width: 0; // required to contain content\n padding: 0;\n\n legend#label {\n border-bottom: 1px solid #ced4da;\n box-sizing: border-box;\n display:block;\n font-size: 1.2rem;\n margin-bottom: .5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n }\n\n div#input {\n border:none;\n border-radius: 0;\n }\n }\n}\n:host([layout=\"horizontal\"]) {\n fieldset.input {\n legend#label {\n align-self: auto;\n }\n }\n}\n\n:host([disabled]) {\n legend#label { color: rgba(59, 59, 59, 0.3) !important; }\n}\n@media(min-width:600px) {\n\n}\n@media (min-width:768px) {\n :host([columns]) {\n .row {\n display: flex;\n flex: 1;\n gap: 1rem;\n }\n\n .column {\n // flex-basis: 50%;\n min-width: 0;\n }\n }\n\n :host([columns=\"4\"]) {\n .column {flex-basis: 25%; }\n }\n :host([columns=\"3\"]) {\n .column {flex-basis: 33.3333%; }\n .column:nth-child(4) {display: none;}\n }\n :host([columns=\"2\"]) {\n .column {flex-basis: 50%; }\n .column:nth-child(1n + 3) {display: none;}\n }\n :host([columns=\"1\"]) {\n .column {flex-basis: 100%; }\n .column:nth-child(1n + 2) {display: none;}\n }\n}\n\n@import 'option';\n","/*\n * THIS NEEDS SOME WORK STILL\n * https://www.w3schools.com/howto/howto_css_custom_checkbox.asp\n */\n\ninput-option[disabled] {\n color: rgba(59, 59, 59, 0.3) !important;\n\n .option {\n cursor: not-allowed;\n pointer-events: all !important;\n\n input:checked ~ .checkmark {\n background-color: #eee;\n border-color: #ced4da;\n }\n }\n}\n\n.option {\n display: block;\n height: 1.5rem;\n line-height: 1.25rem;\n position: relative;\n padding-left: 2rem;\n margin-bottom: .5rem;\n cursor: pointer;\n font-size: 1rem;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &:focus { // this isn't working\n border: 5px solid red;\n }\n\n .label {\n display:inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: calc(100%);\n }\n\n /* Hide the browser's default checkbox */\n input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n /* When the checkbox is checked, add a blue background */\n &:checked ~ .checkmark {\n background-color: #2196F3;\n background-color: black;\n border-color: #2196F3;\n border-color: black;\n }\n }\n\n /* Create a custom checkbox */\n .checkmark {\n border: 1px solid #ced4da;\n border-radius: .25rem;\n position: absolute;\n top: 0;\n left: 0;\n height: 1.25rem;\n width:1.25rem;\n }\n\n\n}\n\ninput-option[type=\"radio\"] {\n\n .option {\n .checkmark {\n border-radius: .75rem;\n }\n }\n}\n","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport { InputOptionsMixin } from '../_InputOptionsMixin.mjs';\nimport { absoluteInteger, maxMinMode, sanitizeNumColumns } from './_functions.mjs';\nimport css from \"./_option_group.css.mjs\";\nimport html from \"./_option_group.html.mjs\";\nconst DEFAULT_COLUMNS = 3;\nconst MAX_COLUMNS = 4;\nconst optionTemplate = document.createElement('input-option');\n/**\n * Basic input type text\n */\n\nexport class InputOptionGroupElement extends InputOptionsMixin(FormInputMixin(Element)) {\n static css = css();\n static html = html();\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-option-group';\n static observedAttributes = ['columns', 'disabled', 'label', 'max', 'min', 'name', 'required'];\n static observedProperties = ['options'];\n #disabled;\n #max;\n #min;\n #mode;\n #name;\n #numChecked;\n #numColumns;\n #required;\n /**\n * @description creates a new instance of OptionGroup\n * @param {...object} args pass through arguments\n */\n\n constructor(...args) {\n super(...args);\n this.values = [];\n this.createCallback = this.createCallback.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n /**\n * @description sets the number of columns\n * @param {string} newColumns to set\n */\n\n\n set columns(newColumns) {\n const numColumns = sanitizeNumColumns(newColumns, MAX_COLUMNS);\n\n if (numColumns !== this.#numColumns) {\n this.#numColumns = numColumns;\n this.refreshOptions();\n }\n }\n /**\n * @description sets disabled\n * @param {string} newDisabled attribute value\n */\n\n\n set disabled(newDisabled) {\n newDisabled = newDisabled !== null; // convert to boolean\n\n if (newDisabled !== this.#disabled) {\n this.#disabled = newDisabled;\n this.updateOptions(item => {\n if (this.#disabled) {\n item.setAttribute('disabled', '');\n } else {\n item.removeAttribute('disabled');\n }\n });\n }\n }\n /**\n * @description sets max number of selections\n * @param {string} newMax to set\n */\n\n\n set max(newMax) {\n newMax = absoluteInteger(newMax);\n\n if (newMax !== this.#max) {\n this.#max = newMax;\n this.mode = maxMinMode(this.#max, this.#min);\n }\n }\n /**\n * @description sets min number of selections\n * @param {string} newMin attribute value\n */\n\n\n set min(newMin) {\n newMin = absoluteInteger(newMin);\n\n if (newMin !== this.#min) {\n this.#min = newMin;\n this.mode = maxMinMode(this.#max, this.#min);\n }\n }\n /**\n * @description sets mode radio or checkbox\n * @param {string} newMode set internally based on min and max\n */\n\n\n set mode(newMode) {\n if (newMode !== this.#mode) {\n this.#mode = newMode;\n this.updateOptions(item => {\n item.setAttribute('type', this.#mode);\n });\n }\n }\n /**\n * @description sets name\n * @param {string} newName attribute value\n */\n\n\n set name(newName) {\n if (newName !== this.#name) {\n this.updateOptions(item => {\n item.setAttribute('name', this.#name);\n });\n }\n }\n /**\n * @description assigns a list of options\n * @param {string} newOptions to set\n */\n\n\n set options(newOptions) {\n this.fromArray(newOptions, this.createCallback);\n }\n /**\n * @description checks the validity of this element\n */\n\n\n checkValidity() {\n /* you will need this since its not really a input */\n const numChecked = this.values.length;\n const validity = {\n valid: true\n };\n let validityMessage = '';\n\n if (!this.context.matches(':disabled')) {\n // do not validate if disabled\n if (this.context.hasAttribute('required') && numChecked < 1) {\n validity.valid = false;\n validity.valueMissing = true;\n validityMessage = `Please select complete this field`;\n }\n\n if (numChecked < this.#min) {\n validity.valid = false;\n validity.rangeUnderflow = true;\n validityMessage = `Please select at least ${this.#min} items`;\n }\n\n if (numChecked > this.#max) {\n validity.valid = false;\n validity.rangeOverflow = true;\n validityMessage = `Please select no more than ${this.#max} items`;\n }\n }\n\n this.internals.setValidity(validity, validityMessage);\n }\n /**\n * @description create an internal option element\n * @param {string} label to be set\n * @param {boolean} selected is this item pre-selected\n * @param {string} value to be set\n * @return {HtmlElement} option\n */\n\n\n createCallback(label, selected, value) {\n const option = optionTemplate.cloneNode(false);\n\n if (this.#disabled) {\n option.setAttribute('disabled', '');\n }\n\n option.setAttribute('label', label);\n option.setAttribute('name', this.#name);\n option.setAttribute('type', this.#mode);\n option.setAttribute('value', value);\n option.addEventListener('change', this.handleChange, false); // type has to be set before adding checked\n\n if (selected) {\n this.values.push(value);\n option.setAttribute('checked', '');\n }\n\n return option;\n }\n /**\n * @description organizes options into an internal html structure. In this\n * case that means orgainzing options into columns\n * @param {array} options to display\n */\n\n\n displayOptions(options) {\n const optionValues = Object.values(options);\n const optionsPerColumn = Math.floor(optionValues.length / this.#numColumns);\n let remainder = optionValues.length % this.#numColumns; // console.log('per column:' + optionsPerColumn);\n\n let count = 0;\n let currentColumnNum = 0;\n let currentColumn = this.inputEl.children[0].children[currentColumnNum];\n currentColumn.replaceChildren();\n let remainderApplied = false;\n\n for (const option of optionValues) {\n if (count >= optionsPerColumn) {\n // check if column is full\n if (remainder > 0 && !remainderApplied) {\n // apply remainder\n remainder--;\n remainderApplied = true;\n } else {\n // move to next column\n count = 0;\n currentColumnNum++;\n currentColumn = this.inputEl.children[0].children[currentColumnNum];\n currentColumn.replaceChildren();\n remainderApplied = false;\n }\n } // assign option to a column\n\n\n currentColumn.append(option); // increment the column counter\n\n count++;\n }\n }\n /**\n * @description event handler for checking and unchecking options\n * @param {Event} e from browser\n */\n\n\n handleChange(e) {\n e.stopPropagation();\n const target = e.target;\n const value = target.value;\n\n if (target.checked) {\n this.values.push(value);\n } else {\n const index = this.values.indexOf(value);\n this.values.splice(index, 1);\n }\n\n this.internals.setFormValue(this.values.join(','));\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n super.templateReadyCallback(rootEl); // we need to force setting of attributes early to produce html structure\n\n const element = this.context;\n this.#disabled = element.hasAttribute('disabled');\n this.#max = absoluteInteger(element.getAttribute('max'));\n this.#min = absoluteInteger(element.getAttribute('min'));\n this.#mode = maxMinMode(this.#max, this.#min);\n this.#name = element.getAttribute('name') || '';\n this.#numChecked = 0;\n this.#numColumns = sanitizeNumColumns(element.getAttribute('columns'), MAX_COLUMNS, DEFAULT_COLUMNS);\n this.#required = element.hasAttribute('required'); // internalize options and set initial value\n\n this.fromChildren(this.context, this.createCallback);\n this.internals.setFormValue(this.values.join(','));\n }\n\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * THIS WILL NEED SPECIFIC ADJUSTMENT FOR PHONE DISPLAY UPDATE RULES\n */\n\nexport class InputPhoneElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'tel'\n }); // static html = 'type=\"tel\"';\n\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-phone';\n static observedAttributes = TEXT_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { NUMBER_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputRangeElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'range'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-range';\n static observedAttributes = NUMBER_OBSERVED_ATTRIBUTES;\n}",":host(input-rating) {\n\n .input {\n margin: 1rem;\n\n #label {\n box-sizing: border-box;\n display:block;\n font-size: 1.2rem;\n margin-bottom: .5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n #input.rating {\n border:none;\n padding: 0;\n\n button {\n border: none;\n background-color: transparent;\n color: #ced4da;\n\n &:before {\n content: \"\\2606\";\n font-size: 2.5em;\n }\n }\n\n &.rating-1 button:nth-child(-n+1):before {\n color:black;\n content: \"\\2605\";\n }\n &.rating-2 button:nth-child(-n+2):before {\n color:black;\n content: \"\\2605\";\n }\n &.rating-3 button:nth-child(-n+3):before {\n color:black;\n content: \"\\2605\";\n }\n &.rating-4 button:nth-child(-n+4):before {\n color:black;\n content: \"\\2605\";\n }\n &.rating-5 button:before {\n color:black;\n content: \"\\2605\";\n }\n }\n }\n}\n\n:host([disabled]) {\n .input {\n color: rgba(59, 59, 59, 0.3) !important;\n\n #input button {\n cursor: not-allowed;\n pointer-events: all !important;\n }\n }\n}\n\n:host([required]) {\n .input #label:after {\n content:\"*\";\n color:red;\n margin-left:2px;\n }\n}\n","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n
\n \n \n \n \n \n
\n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"./_rating.css.mjs\";\nimport html from \"./_rating.html.mjs\";\n/**\n * Basic input type text\n */\n\nexport class InputRatingElement extends FormInputMixin(Element) {\n #stateValue;\n static css = css();\n static html = html();\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-rating';\n static observedAttributes = ['disabled', 'label', 'name', 'required', 'value'];\n /**\n * @description an initial value that should be set on this input\n * @param {any} newDefaultValue to set\n */\n\n set defaultValue(newDefaultValue) {\n this._inputEl.className = `rating rating-${newDefaultValue}`;\n this.value = newDefaultValue;\n }\n /**\n * @description sets the value attribute of input\n * @param {any} newValue to set\n */\n\n\n set value(newValue) {\n const value = parseInt(newValue, 10);\n const newSelected = this.inputEl.children[value];\n\n for (const star of this.inputEl.children) {\n if (star === newSelected) {\n star.setAttribute('aria-selected', true);\n } else {\n star.setAttribute('aria-selected', false);\n }\n }\n\n this.inputEl.className = `rating rating-${newValue}`;\n\n if (!isNaN(value)) {\n this.#stateValue = value;\n this.internals.setFormValue(value);\n } else {\n this.#stateValue = undefined;\n this.internals.setFormValue(undefined);\n }\n }\n /**\n * @description checks the validity of inputEl\n */\n\n\n checkValidity() {\n const value = this.#stateValue;\n const validity = {\n valid: true\n };\n let validityMessage = '';\n\n if (!this.context.matches(':disabled')) {\n // do not validate if disabled\n if (this.context.hasAttribute('required') && !value) {\n validity.valid = false;\n validity.valueMissing = true;\n validityMessage = 'Please fill out this field.';\n }\n\n if (value && (isNaN(value) || value < 1 || value > 5)) {\n validity.valid = false;\n validity.badInput = true;\n validityMessage = 'Please provide a whole number between 1 and 5.';\n }\n\n this.internals.setValidity(validity, validityMessage);\n }\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n super.templateReadyCallback(rootEl);\n this.inputEl.addEventListener('click', e => {\n if (!this.context.matches(':disabled')) this.value = e.target.id;\n }, true);\n }\n\n}","@import '../input';\n\n#input[type=\"password\"] {\n letter-spacing: .5em;\n padding-right: 2.6em;\n}\n\nbutton.peak {\n height:2.6rem;\n width:2.6rem;\n position: absolute;\n bottom:0;\n right:0;\n border: none;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 1rem;\n}\n","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n \n \n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"./_secret.css.mjs\";\nimport html from \"./_secret.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs'; // secrets must never be set programically\n\nconst attributes = TEXT_OBSERVED_ATTRIBUTES.slice(); // !important clone first\n\nattributes.splice(attributes.indexOf('value'), 1);\n/**\n * Basic input type text\n */\n\nexport class InputSecretElement extends FormInputMixin(Element) {\n #toggle;\n static css = css();\n static html = html({\n type: 'password'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-secret';\n static observedAttributes = attributes;\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n templateReadyCallback(rootEl) {\n super.templateReadyCallback(rootEl);\n this.#toggle = rootEl.querySelector('button');\n this.#toggle.addEventListener('mousedown', e => {\n e.stopImmediatePropagation();\n this.inputEl.type = 'text';\n }, true);\n this.#toggle.addEventListener('mouseup', e => {\n e.stopImmediatePropagation();\n this.inputEl.type = 'password';\n }, true);\n }\n\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag`
\n \n \n
`\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport { InputOptionsMixin } from '../_InputOptionsMixin.mjs';\nimport css from \"../_input.css.mjs\";\nimport html from \"./_select.html.mjs\";\n/**\n * Basic input type text\n */\n\nexport class InputSelectElement extends InputOptionsMixin(FormInputMixin(Element)) {\n static css = css();\n static html = html();\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-select';\n static observedAttributes = ['autofocus', 'disabled', 'label', 'name', 'placeholder', 'required'];\n static observedProperties = ['options'];\n #placeholderEl;\n /**\n * @description assigns a list of options\n * @param {string} newOptions to set\n */\n\n set options(newOptions) {\n this.fromArray(newOptions);\n }\n /**\n * @description sets the placeholder attribute to the first option\n * @param {string} newPlaceholder to set\n */\n\n\n set placeholder(newPlaceholder) {\n this.inputEl.children[0].innerText = newPlaceholder;\n }\n /**\n * @description organizes options into an internal html structure. In this\n * case that means adding a placeholder/indeterminite value to the list\n * @param {array} options to display\n */\n\n\n displayOptions(options) {\n this.inputEl.replaceChildren(...Object.values(options));\n\n if (this.#placeholderEl) {\n this.inputEl.insertBefore(this.#placeholderEl, this.inputEl.children[0]);\n }\n }\n /**\n * @description called when content is ready, but before its locked behind\n * a closed shadow root\n * @param {Node} rootEl that will be appended to shadow\n */\n\n\n templateReadyCallback(rootEl) {\n super.templateReadyCallback(rootEl);\n this.#placeholderEl = this.inputEl.children[0];\n this.fromChildren(this.context);\n }\n\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputTextElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'text'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-text';\n static observedAttributes = TEXT_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { NUMBER_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputTimeElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'time'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-time';\n static observedAttributes = NUMBER_OBSERVED_ATTRIBUTES;\n}","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport css from \"../_input.css.mjs\";\nimport html from \"../_input.html.mjs\";\nimport { TEXT_OBSERVED_ATTRIBUTES } from '../_constants.mjs';\n/**\n * Basic input type text\n */\n\nexport class InputUrlElement extends FormInputMixin(Element) {\n static css = css();\n static html = html({\n type: 'url'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'input-url';\n static observedAttributes = TEXT_OBSERVED_ATTRIBUTES;\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag``\n}\n ",":host {\n display: inline-block;\n}\n\nbutton{\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1.2rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;\n}\n","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport html from \"./_reset.html.mjs\";\nimport css from \"../_action.css.mjs\";\n/**\n * Basic input type text\n */\n\nexport class ButtonResetElement extends Element {\n static css = css();\n static html = html({\n type: 'reset'\n }); // static html = 'type=\"reset\"';\n\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'action-reset';\n static observedAttributes = ['value', 'label'];\n #buttonEl;\n\n set label(newLabel) {\n this.#buttonEl.innerText = newLabel;\n }\n\n set value(newValue) {\n this.#buttonEl.value = newValue;\n }\n\n templateReadyCallback(rootEl) {\n this.#buttonEl = rootEl.querySelector('button');\n }\n\n}","export default function(props, tag) {\n tag = tag ||\n (function(strs, ...exps) {\n return strs.reduce(function(res, curr) {\n let exp = exps.shift() || '';\n return res + curr + exp;\n }, '');\n });\n return tag``\n}\n ","/* eslint new-cap: \"off\" */\nimport { Element, FormInputMixin, ShadowMode } from '@nesis/lib-element';\nimport html from \"./_submit.html.mjs\";\nimport css from \"../_action.css.mjs\";\n/**\n * Basic input type text\n */\n\nexport class ButtonSubmitElement extends Element {\n static css = css();\n static html = html({\n type: 'submit'\n });\n static formAssociated = true;\n static mode = ShadowMode.CLOSED;\n static tagName = 'action-submit';\n static observedAttributes = ['value', 'label'];\n #buttonEl;\n\n set label(newLabel) {\n this.#buttonEl.innerText = newLabel;\n }\n\n set value(newValue) {\n this.#buttonEl.value = newValue;\n }\n\n templateReadyCallback(rootEl) {\n this.#buttonEl = rootEl.querySelector('button');\n }\n\n}","import { defineElement } from '@nesis/lib-element';\nimport * as allElements from './_index.mjs';\n\nfor (const key of Object.keys(allElements)) {\n defineElement(allElements[key]);\n}"],"names":["Element","css","html","attributes","optionTemplate"],"mappings":"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"}