UNPKG

401 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/constants.js","../src/options.js","../src/create-element.js","../src/component.js","../src/create-context.js","../src/util.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/render.js","../src/clone-element.js","../src/diff/catch-error.js","../../node_modules/classnames/index.js","../utils/omit.js","../utils/get-styled-component.js","../pill-icon.js","../icon.js","../button.js","../logo.js","../transition-in.js","../crate.js","../full-screen-overlay.js","../inputs.js","../drug-box.js","../links.js","../check-mark.js","../drawer.js","../src/index.js","../src/PureComponent.js","../src/memo.js","../src/forwardRef.js","../src/Children.js","../src/suspense.js","../src/suspense-list.js","../src/portals.js","../src/scheduler.js","../portal.js","../shield.js","../dialog.js","../../node_modules/milliseconds/milliseconds.js","../footer.js","../utils/throttle.js","../env-tag.js","../app-layout.js","../../node_modules/tryit/tryit.js","../utils/ls.js","../utils/cookie.js","../utils/token-writer.js","../bundles/token.js","../bundles/layout-ui.js","../utils/decimals.js","../plus-minus.js","../signature.js","../signature-box.js","../utils/question.js","../utils/smart-suggestion-utils.js","../suggestions-box.js","../utils/env.js","../form-fields.js","idb-keyval.js(original)","../utils/drug-cache.js","../utils/fetch-drug-autocomplete.js","../drug-lookup-ui.js","../medication-field.js","../multi-medication-entry-field.js","../question.js","../form.js","../index.js","../colors.js","section.js","component-code.js","../utils/get-prop-variants.js","introspect.js","dialog-section.js","drugbox-section.js","form-section.js","sections.js","../../package.json","layout.js","index.js","../../node_modules/parcel/src/builtins/hmr-runtime.js"],"names":["options","isValidElement","rerenderQueue","defer","prevDebounce","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","push","defaultProps","undefined","createVNode","original","vnode","constructor","createRef","current","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","process","debounceRendering","queue","sort","a","b","some","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","value","unmount","applyRef","tmp","toChildArray","out","nextDom","sibDom","outer","appendChild","nextSibling","insertBefore","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","useCapture","o","cssText","replace","toLowerCase","slice","_listeners","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","setAttribute","removeAttribute","event","newVNode","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","prototype","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","call","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","firstChild","checked","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","error","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout","keysToDelete","copy","Object","forEach","alwaysPassThroughProps","args","tagName","baseClasses","fn","passThroughProps","renderChildren","defaults","propsToRemove","allOptionValues","keys","reduce","result","filter","includes","componentFn","incomingProps","finalTagName","className","combinedStyle","renderedChildren","definition","customIcons","pill","Pill","Icon","icon","size","rest","px","styles","fontSize","width","height","Custom","preventDefault","Button","pressed","variant","onContextMenu","tiny","large","disabled","primary","stop","classes","join","TapIconButton","color","LogoDark","LogoTextOnly","fill","LogoLightMark","LogoLight","transitionIn","Wrapped","TransitionIn","firstRender","LogoCrate","Page","transitions","PageCrateHeading","PageCrate","title","backgroundColor","shadowExists","wide","noShadow","res","unshift","MessagePageCrate","loading","warning","success","iconClasses","colorClasses","iconComp","FullScreenOverlayWrapper","FullScreenOverlay","inputClasses","Input","Select","Textarea","DrugBox","highlight","highlighted","supportEmail","Link","SupportLink","CheckMark","label","isComplete","onClick","cardStyles","backfaceVisibility","webkitBackfaceVisibility","top","left","FlipContainer","front","back","flipped","direction","perspective","axis","rotateZero","rotateFlipped","position","transition","transformStyle","webkitTransformStyle","transformOrigin","webkitTransformOrigin","transform","webkitTransform","zIndex","FlipIcon","complete","DrawerLink","active","completeness","DrawerLinkContainer","hidden","Drawer","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","getHookState","index","hooks","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","action","nextValue","useEffect","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","useImperativeHandle","createHandle","concat","factory","useCallback","useContext","useDebugValue","formatter","useErrorBoundary","errState","err","flushAfterPaintEffects","invokeCleanup","invokeEffect","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","previousComponent","hook","comp","oldArgs","newArgs","arg","f","shallowDiffers","PureComponent","p","memo","comparer","shouldUpdate","nextProps","updateRef","Memoed","displayName","isReactComponent","isPureReactComponent","oldDiffHook","REACT_FORWARD_SYMBOL","Symbol","for","forwardRef","Forwarded","clone","$$typeof","mapFn","map","Children","count","only","normalized","toArray","oldCatchError","Suspense","_suspenders","suspended","lazy","loader","prom","Lazy","exports","default","SuspenseList","_next","_map","promise","suspendingVNode","suspendingComponent","resolved","onResolved","onSuspensionComplete","suspendedVNode","removeOriginal","detachedParent","originalParent","pop","wasHydrating","detachedComponent","detachedClone","effect","fallback","list","delete","revealOrder","ContextProvider","Portal","_this","container","_container","_temp","before","createPortal","delegated","get","unsuspend","wrappedUnsuspend","Map","reverse","set","REACT_ELEMENT_TYPE","CAMEL_PROPS","onChangeInputType","parent","textContent","preactRender","preactHydrate","defineProperty","configurable","v","writable","oldEventHook","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","persist","nativeEvent","classNameDescriptor","class","oldVNodeHook","multiple","selected","enumerable","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_NormalPriority","unstable_LowPriority","unstable_IdlePriority","unstable_runWithPriority","priority","unstable_now","performance","now","Date","version","createFactory","element","preactCloneElement","apply","unmountComponentAtNode","findDOMNode","unstable_batchedUpdates","StrictMode","into","querySelector","Shield","Dialog","doClose","forceChoice","bottom","minHeight","minWidth","maxHeight","right","currentYear","getFullYear","getUpdatedText","updatedDate","ms","weeks","date","getMonth","getDate","linkClasses","Footer","privacyUrl","termsUrl","privacyUpdatedDate","hideLinks","extra","updateText","throttle","delay","classMap","dev","stage","env","padding","borderBottomLeftRadius","toUpperCase","DrawerContentWrapper","handleScroll","updateScrolledDown","scrolledDown","scrollTop","passive","AppLayout","drawerScrolledDown","drawerOpen","screenIsWide","drawerEnabled","drawerContent","statusBarContent","extraContent","extraFooterContent","drawerWidth","mainContent","doCloseDrawer","hideFooter","logoHref","logoOnClick","preventScroll","drawerAlwaysVisible","useFloatingDrawer","showShield","floatingDrawerHidden","leftMarginStyles","marginLeft","body","classList","add","remove","drawerHeaderHeightPx","logoClasses","pointer","paddingTop","paddingBottom","setLocalStorageItem","item","localStorage","setItem","getLocalStorageItem","getItem","deleteLocalStorageItem","clearLocalStorage","debug","clear","writeCookie","maxAge","expires","secure","domain","cookieData","location","hostname","Math","floor","toGMTString","cookieString","cookie","readCookie","split","find","parts","trim","deleteCookie","createTokenWriter","writeToken","token","days","readToken","valueFromLS","valueFromCookie","clearToken","UPDATED","CLEARED","createTokenBundle","opts","getReducer","initial","payload","selectAuthToken","selectIsSignedIn","doReceiveToken","dispatch","doClearToken","DRAWER_OPENED","DRAWER_CLOSED","layoutUiBundle","beeping","selectDrawerIsOpen","layoutUi","doOpenDrawer","getNumberOfDecimals","num","postDecimalString","roundToDecimal","number","precision","factor","pow","round","roundToPrecision","decimalString","toString","numberOfDigitsBeforePeriod","actualPrecision","max","ensureDecimals","targetDecimals","numberOfDecimals","numberToAdd","floatInputRE","leadingZerosWithDecimalRE","leadingZerosNoDecimalRE","periodRE","cleanDecimalInput","str","matches","match","HOLD_DELAY","ITERATION_DELAY","getPlusMinusButton","runIt","onPress","holdStart","stopImmediatePropagation","iterate","iterationTimer","iterationDelay","holdDuration","holdTimer","holdDelay","charAt","mr2","PlusButton","MinusButton","IncrementorButtons","displayValue","updateValue","step","Infinity","min","showStep","unit","displayValueClasses","startingValue","targetNumberOfDecimals","valueToShow","stepDown","stepUp","effectiveValue","AnimatedPath","getTotalLength","path","animate","transitionDuration","transitionDelay","transitionProperty","strokeDashoffset","strokeDasharray","SignatureInput","mouseMove","mouseEnd","mouseDown","mouseUp","mouseLeave","touchStart","touchMove","touchEnd","calculateCanvasInfo","renderCanvas","break","reset","canvas","getContext","window","getBoundingClientRect","canvasInfo","clientX","clientY","x","y","buttons","appendCoord","layerX","layerY","adjusted","adjustCoord","drawing","touch","touches","isStylus","touchType","clearRect","marginFromEdge","marginFromBottom","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","fillStyle","Path2D","font","fillText","close","innerWidth","mouseCancel","choice","val","qs","questions","testComplete","decorateFormItem","required","completenessTest","isRequired","errorMessage","textAppended","existing","newPhrase","cleaned","withoutText","phraseToRemove","getAsArray","Boolean","addCommaSeparatedItem","newItem","removeCommaSeparatedItem","toRemove","getAutoPopulatedValue","suggestions","totalSuggestions","firstSuggestionEntry","firstScore","score","secondScore","scoreDiff","confidenceValue","phrase","buildSuggestionList","matchingSuggestion","autoSuggestType","buildQuestionList","config","suggestionsByField","addQuestion","deleting","hasOwnProperty","question","suggestionsDeleting","choices","toggleExpand","expanded","removeSuggestion","dn","suggestion","fw6","global","navigator","ua","IS_IOS","IS_CHROME","vendor","noOp","Label","explicitOptional","subLabel","orange","subLabelWarning","red","subLabelError","Function","separator","stringToArray","arrayToString","arr","SelectButtons","open","handleButtonPress","handleOtherPress","focus","choiceValues","isPressed","allowDeselect","isMultiButton","values","UpdateValue","unknownRemoved","every","showOtherInput","getOtherInputVisible","getPressed","showOther","target","identity","autoCompleteFallback","InputField","autocomplete","autofocus","inputClassName","clean","cleanRe","hasError","onChange","onInput","id","placeholder","inputmode","inputWidth","DecimalInputField","modifiedItem","TextareaField","IncrementButtonField","fieldSpecificProps","passOn","SignatureField","editing","signatureLineName","getAll","drugData","dbValues","fetchDrug","fetch","json","idGroup","getDrugName","found","fetchDrugAutocomplete","term","encodeURIComponent","parsed","resultsById","approximateGroup","candidate","rxcui","ids","all","names","status","MedicationInput","prevProps","prevState","results","toSet","drug","resultsClassName","optsForTerm","hasOptsForTerm","noResults","isEmpty","showMessage","showResults","drugLookupStatus","drugName","drugSelected","focusOnInput","MedicationEntryField","originalState","input","valueIsEmptyArray","drugs","itemCopy","modifiedItemForLabel","addDrug","newVal","fieldMap","longText","medications","MultiMedicationEntryField","medication","signature","incrementor","Question","MatchedComponent","fields","onSubmit","updateObj","getUpdates","colors","black","gray","silver","white","gold","yellow","purple","pink","green","navy","blue","code","addDimension","category","JSON","parse","stringify","propVariants","deduped","propArray","serializeProps","buffer","prop","componentString","content","variants","buff","Container","DrugBoxSection","_","FormsSection","field","updates","processedFields","textWithSuggestions","alert","fieldName","ColorSection","ButtonSection","LinkSection","LogoSection","InputSection","IconSection","MessagePageCrateSection","module","guessEnv","host","isScreenWide","activeHash","toggleDrawerOpen","toggleDrawerEnabled","handleResize","handleHashChange","hash","isWide","sections","section","cookieHelper","getElementById","OVERLAY_ID","OldModule","bundle","Module","moduleName","hot","hotData","_acceptCallbacks","_disposeCallbacks","accept","dispose","checkedAssets","assetsToAccept","isParcelRequire","WebSocket","protocol","ws","onmessage","assets","asset","didAccept","hmrAcceptCheck","parcelRequire","generated","js","console","hmrApply","hmrAcceptRun","reload","onclose","log","removeErrorOverlay","message","stack","overlay","createErrorOverlay","stackTrace","innerText","getParents","modules","parents","k","d","dep","deps","cached","cache"],"mappings":"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","file":"demo-site.e31bb0bc.js","sourceRoot":"../component-library/demo-site","sourcesContent":["export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError,\n\t_vnodeId: 0\n};\n\nexport default options;\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++options._vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (typeof childVNode == 'string' || typeof childVNode == 'number') {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children != null && // Can be null if childVNode suspended\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren =\n\t\t\texcessDomChildren && EMPTY_ARR.slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tdom.firstChild,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default (obj, keysToDelete = []) => {\n const copy = Object.assign({}, obj)\n keysToDelete.forEach(key => {\n delete copy[key]\n })\n return copy\n}\n","import { h } from 'preact'\nimport cn from 'classnames'\nimport omit from './omit'\n\nconst alwaysPassThroughProps = ['disabled']\n\nexport default args => {\n const {\n tagName = 'div',\n baseClasses = '',\n options = {},\n style,\n fn,\n passThroughProps = [],\n defaultProps,\n renderChildren\n } = args\n\n const defaults = Object.assign({}, defaultProps)\n const propsToRemove = ['className', 'tagName']\n\n const allOptionValues = Object.keys(options).reduce((result, key) => {\n const value = options[key]\n if (typeof value !== 'object') {\n defaults[key] = value\n propsToRemove.push(key)\n result.push(value)\n } else {\n result.push(...value)\n }\n return result\n }, [])\n\n propsToRemove.push(\n ...allOptionValues.filter(\n key =>\n !passThroughProps.includes(key) && !alwaysPassThroughProps.includes(key)\n )\n )\n\n const componentFn = incomingProps => {\n const props = Object.assign({}, defaults, incomingProps)\n const finalTagName = props.tagName || tagName\n const passThroughProps = omit(props, propsToRemove)\n const className = cn(baseClasses, fn && fn(props), props.className)\n const combinedStyle = Object.assign({}, style, props.style)\n const renderedChildren = renderChildren\n ? renderChildren(props)\n : props.children\n\n return h(\n finalTagName,\n Object.assign({ className, style: combinedStyle }, passThroughProps),\n renderedChildren\n )\n }\n\n componentFn.definition = args\n\n return componentFn\n}\n","import { h } from 'preact'\n\nexport default props => (\n <svg viewBox=\"0 0 24 24\" {...props}>\n <path\n d=\"M20 12c0-2.2-2-4-4.5-4h-9C4 8 2 9.8 2 12s2 4 4.5 4h9c2.5 0 4.5-1.8 4.5-4zm-9.5 2.1V9.9h5.7c1.3.4 2 1 2 2.1 0 1-.7 1.7-2 2.1h-5.7z\"\n fill-rule=\"nonzero\"\n />\n </svg>\n)\n","import { h } from 'preact'\nimport cn from 'classnames'\nimport omit from './utils/omit'\nimport Pill from './pill-icon'\n\nconst customIcons = {\n pill: Pill\n}\n\nexport const Icon = props => {\n const { icon, size, className, style } = props\n const rest = omit(props, ['icon', 'size', 'className'])\n const px = `${size || 24}px`\n const styles = Object.assign({}, style, {\n fontSize: px,\n width: px,\n height: px\n })\n const Custom = customIcons[icon]\n return (\n <i\n {...rest}\n style={styles}\n className={cn('dib', { 'material-icons': !Custom }, className)}\n >\n {Custom ? <Custom /> : icon}\n </i>\n )\n}\n","/** @jsx h */\nimport { h } from 'preact'\nimport getComponent from './utils/get-styled-component'\nimport { Icon } from './icon'\n\nconst preventDefault = e => {\n e.preventDefault()\n}\n\nexport const Button = getComponent({\n tagName: 'button',\n baseClasses: 'br2 ba',\n options: {\n size: ['tiny', 'large'],\n pressed: ['pressed'],\n variant: ['primary', 'stop', 'disabled']\n },\n defaultProps: {\n onContextMenu: preventDefault\n },\n fn: ({ tiny, large, disabled, pressed, primary, stop }) => {\n let classes = ['bn']\n // handle sizes\n if (tiny) {\n classes.push('pa1')\n } else if (large) {\n classes.push('pa3 fw6')\n } else {\n classes.push('pa2')\n }\n\n // if disabled stop here\n if (disabled) {\n classes.push('mid-gray bg-light-gray not-allowed')\n return classes.join(' ')\n }\n\n // pointer class\n classes.push('pointer')\n\n if (pressed) {\n classes.push('shadow-3')\n } else {\n classes.push('shadow-2')\n }\n\n if (stop) {\n classes.push('white bg-red')\n }\n if (primary) {\n classes.push('dark-blue bg-light-blue')\n }\n if (!stop && !primary) {\n classes.push('dark-blue')\n if (pressed) {\n classes.push('bg-lightest-blue')\n } else {\n classes.push('bg-white')\n }\n }\n\n return classes.join(' ')\n }\n})\n\nexport const TapIconButton = getComponent({\n baseClasses:\n 'button-reset pointer pa0 ma0 bn bg-transparent flex items-center justify-center',\n style: {\n width: '40px',\n height: '40px'\n },\n options: {\n icon: ['icon'],\n color: ['color']\n },\n renderChildren: ({ icon, color }) => [\n <Icon key={icon} icon={icon} color={color} size=\"28\" />\n ]\n})\n","import { h } from 'preact'\nimport omit from './utils/omit'\n\nexport const LogoDark = props => (\n <svg viewBox=\"0 0 521 104\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M143.234 40.272l-2.684 12.564h7.236l-2.685-12.564h-1.867zm-10.113 22.017l5.951-26.451h10.192l5.951 26.451h-5.368l-1.05-4.785h-9.258l-1.05 4.785h-5.368zm30.574 0h-5.213v-19.45h5.174v1.089c1.763-1.036 3.384-1.555 4.863-1.555 2.592 0 4.382.765 5.368 2.295.985 1.53 1.478 3.89 1.478 7.08v10.541h-5.213V51.903c0-1.659-.194-2.885-.583-3.676-.389-.79-1.167-1.187-2.334-1.187a8.839 8.839 0 0 0-3.073.545l-.467.155v14.549m27.462-11.476c0-1.556-.247-2.638-.739-3.247-.493-.609-1.355-.915-2.586-.915-1.232 0-2.101.319-2.607.953-.505.636-.772 1.706-.797 3.209h6.729zm-5.738 6.555c.61.532 1.485.798 2.626.798 2.412 0 4.564-.079 6.458-.233l1.089-.118.078 3.851c-2.982.727-5.679 1.089-8.091 1.089-2.931 0-5.057-.777-6.38-2.333-1.322-1.556-1.984-4.085-1.984-7.586 0-6.975 2.866-10.463 8.597-10.463 5.653 0 8.48 2.931 8.48 8.791l-.389 3.617h-11.436c.025 1.193.343 2.056.952 2.587zm28.767-9.666c-3.216-.414-5.466-.623-6.749-.623-1.284 0-2.114.117-2.49.35-.376.234-.564.604-.564 1.109s.253.856.759 1.05c.506.195 1.801.48 3.89.856 2.087.376 3.572.992 4.453 1.848.882.855 1.323 2.244 1.323 4.162 0 4.201-2.606 6.301-7.819 6.301-1.711 0-3.786-.233-6.223-.7l-1.245-.233.155-4.357c3.216.416 5.452.622 6.71.622s2.114-.122 2.568-.368c.453-.247.681-.617.681-1.109s-.24-.856-.72-1.089c-.48-.233-1.725-.519-3.734-.856-2.011-.337-3.508-.908-4.493-1.712-.986-.803-1.478-2.237-1.478-4.298 0-2.062.7-3.618 2.1-4.669 1.4-1.049 3.202-1.575 5.407-1.575 1.53 0 3.617.248 6.262.74l1.284.233-.077 4.318m15.364-.429h-4.784v7.975c0 .778.019 1.33.058 1.653.039.325.181.603.428.837.246.233.629.349 1.147.349l2.957-.077.234 4.162c-1.738.389-3.061.583-3.968.583-2.334 0-3.929-.525-4.785-1.575-.855-1.05-1.284-2.989-1.284-5.815v-8.092h-2.294v-4.434h2.294v-5.406h5.213v5.406h4.784v4.434m8.791 15.016h-5.212V35.06h5.212v8.712c1.789-.933 3.397-1.399 4.824-1.399 2.593 0 4.382.765 5.367 2.295.987 1.53 1.48 3.89 1.48 7.08v10.541h-5.213V51.864c0-1.634-.195-2.846-.584-3.637-.388-.79-1.167-1.187-2.334-1.187a10.28 10.28 0 0 0-3.034.467l-.506.156v14.626m27.463-11.476c0-1.556-.247-2.638-.739-3.247-.493-.609-1.355-.915-2.587-.915-1.231 0-2.1.319-2.607.953-.505.636-.771 1.706-.797 3.209h6.73zm-5.737 6.555c.608.532 1.483.798 2.625.798 2.413 0 4.564-.079 6.457-.233l1.089-.118.078 3.851c-2.982.727-5.678 1.089-8.091 1.089-2.931 0-5.056-.777-6.379-2.333-1.323-1.556-1.985-4.085-1.985-7.586 0-6.975 2.866-10.463 8.598-10.463 5.653 0 8.48 2.931 8.48 8.791l-.389 3.617h-11.437c.026 1.193.344 2.056.954 2.587zm28.765-9.666c-3.216-.414-5.465-.623-6.749-.623-1.283 0-2.114.117-2.489.35-.377.234-.565.604-.565 1.109s.253.856.759 1.05c.506.195 1.802.48 3.89.856 2.087.376 3.572.992 4.454 1.848.881.855 1.323 2.244 1.323 4.162 0 4.201-2.606 6.301-7.819 6.301-1.712 0-3.786-.233-6.224-.7l-1.245-.233.156-4.357c3.215.416 5.452.622 6.71.622 1.257 0 2.113-.122 2.567-.368.454-.247.681-.617.681-1.109s-.24-.856-.719-1.089c-.481-.233-1.726-.519-3.735-.856-2.01-.337-3.508-.908-4.492-1.712-.986-.803-1.479-2.237-1.479-4.298 0-2.062.7-3.618 2.101-4.669 1.4-1.049 3.202-1.575 5.407-1.575 1.529 0 3.617.248 6.263.74l1.283.233-.078 4.318m4.589 14.587h5.213v-19.45h-5.213v19.45zm0-21.939h5.213v-5.29h-5.213v5.29zm16.377 13.692c-1.453.13-2.179.908-2.179 2.334 0 1.427.636 2.14 1.907 2.14.985 0 2.061-.156 3.228-.467l.583-.156v-4.162l-3.539.311zm8.752-5.134v8.091c.052.622.156 1.057.311 1.303.156.247.48.421.973.525l-.156 3.928c-1.322 0-2.379-.09-3.17-.272-.791-.181-1.589-.544-2.392-1.089-1.867.908-3.774 1.361-5.718 1.361-4.021 0-6.03-2.125-6.03-6.379 0-2.074.558-3.545 1.673-4.415 1.115-.869 2.826-1.381 5.135-1.536l4.161-.312v-1.205c0-.804-.181-1.355-.543-1.654-.364-.297-.948-.447-1.751-.447l-7.313.312-.156-3.619c2.775-.751 5.413-1.127 7.916-1.127 2.502 0 4.304.519 5.408 1.555 1.101 1.038 1.652 2.698 1.652 4.98zm22.406 12.953c-2.749.596-5.226.894-7.429.894-2.205 0-3.968-.272-5.291-.816-1.322-.545-2.36-1.413-3.112-2.606-.753-1.193-1.271-2.594-1.556-4.202-.285-1.607-.428-3.63-.428-6.068 0-5.108.719-8.667 2.159-10.678 1.44-2.009 4.091-3.015 7.955-3.015 2.229 0 4.81.351 7.741 1.051l-.156 4.279c-2.567-.389-4.7-.584-6.399-.584-1.698 0-2.911.228-3.637.681-.726.454-1.264 1.316-1.614 2.587-.35 1.271-.524 3.436-.524 6.496 0 3.061.355 5.18 1.068 6.36.713 1.18 2.14 1.77 4.279 1.77 2.14 0 4.416-.181 6.827-.545l.117 4.396m9.296.428h-5.212V35.06h5.212v8.712c1.79-.933 3.397-1.399 4.824-1.399 2.593 0 4.383.765 5.368 2.295.986 1.53 1.479 3.89 1.479 7.08v10.541h-5.213V51.864c0-1.634-.194-2.846-.583-3.637-.389-.79-1.167-1.187-2.335-1.187a10.28 10.28 0 0 0-3.034.467l-.506.156v14.626m22.639-8.247c-1.452.13-2.178.908-2.178 2.334 0 1.427.636 2.14 1.907 2.14.985 0 2.061-.156 3.228-.467l.583-.156v-4.162l-3.54.311zm8.753-5.134v8.091c.052.622.156 1.057.312 1.303.154.247.479.421.972.525l-.155 3.928c-1.323 0-2.38-.09-3.171-.272-.791-.181-1.589-.544-2.392-1.089-1.868.908-3.774 1.361-5.719 1.361-4.02 0-6.029-2.125-6.029-6.379 0-2.074.558-3.545 1.672-4.415 1.115-.869 2.827-1.381 5.136-1.536l4.161-.312v-1.205c0-.804-.181-1.355-.544-1.654-.363-.297-.947-.447-1.751-.447l-7.312.312-.156-3.619c2.775-.751 5.413-1.127 7.917-1.127 2.501 0 4.304.519 5.406 1.555 1.102 1.038 1.653 2.698 1.653 4.98zm5.173 13.381v-19.45h5.173v2.062c2.179-1.297 4.254-2.139 6.224-2.528v5.251c-2.1.441-3.902.895-5.406 1.361l-.779.272v13.032h-5.212m25.44-15.016h-4.785v7.975c0 .778.02 1.33.059 1.653.039.325.181.603.428.837.246.233.628.349 1.148.349l2.957-.077.232 4.162c-1.737.389-3.06.583-3.968.583-2.333 0-3.929-.525-4.784-1.575-.856-1.05-1.284-2.989-1.284-5.815v-8.092h-2.295v-4.434h2.295v-5.406h5.212v5.406h4.785v4.434m3.579 15.016h5.212v-19.45h-5.212v19.45zm0-21.939h5.212v-5.29h-5.212v5.29zm15.443 21.939h-5.213v-19.45h5.174v1.089c1.763-1.036 3.383-1.555 4.863-1.555 2.592 0 4.381.765 5.367 2.295.985 1.53 1.478 3.89 1.478 7.08v10.541h-5.213V51.903c0-1.659-.193-2.885-.583-3.676-.389-.79-1.167-1.187-2.334-1.187a8.833 8.833 0 0 0-3.072.545l-.467.155v14.549m20.966-12.934c0 1.906.992 2.859 2.975 2.859 1.985 0 2.976-.953 2.976-2.859 0-1.906-.991-2.859-2.976-2.859-1.983 0-2.975.953-2.975 2.859zm-.312 15.929c0 1.115 1.368 1.673 4.104 1.673 2.736 0 4.105-.648 4.105-1.945 0-.7-.234-1.148-.701-1.343-.467-.193-1.452-.304-2.956-.33l-3.501-.272c-.7.7-1.051 1.439-1.051 2.217zm13.46-.564c0 2.217-.856 3.858-2.567 4.921-1.712 1.063-4.026 1.595-6.944 1.595s-5.161-.389-6.73-1.168c-1.569-.777-2.353-2.191-2.353-4.239 0-1.634.934-3.178 2.801-4.629-.96-.648-1.439-1.634-1.439-2.956 0-.519.389-1.375 1.167-2.568l.349-.545c-1.763-1.27-2.645-3.144-2.645-5.621 0-2.476.746-4.271 2.238-5.387 1.49-1.115 3.467-1.673 5.932-1.673 1.114 0 2.217.13 3.305.389l.623.117 6.263-.194v4.162l-2.918-.234c.57.882.856 1.764.856 2.646 0 2.593-.661 4.382-1.983 5.368-1.323.986-3.398 1.478-6.224 1.478a7.363 7.363 0 0 1-1.595-.156c-.26.675-.389 1.225-.389 1.653 0 .428.219.72.661.875.441.156 1.478.248 3.113.273 3.266.026 5.496.461 6.69 1.303 1.192.843 1.789 2.373 1.789 4.59z\"\n fill=\"#FFF\"\n />\n <path\n d=\"M520.01 50.187a3.51 3.51 0 0 1-3.5 3.5h-39.956a3.51 3.51 0 0 1-3.5-3.5V38.571a3.51 3.51 0 0 1 3.5-3.5h39.956a3.51 3.51 0 0 1 3.5 3.5v11.616\"\n fill=\"#6CC4CA\"\n />\n <path\n fill=\"#173140\"\n d=\"M477.476 49.241h2.801v-3.228h-2.801zm8.734-9.958c.673 0 1.536.104 2.586.312l.525.116-.078 2.061c-1.024-.103-1.782-.155-2.275-.155-.894 0-1.488.192-1.779.574-.292.382-.437 1.105-.437 2.168 0 1.064.145 1.793.437 2.189.291.395.891.593 1.798.593l2.256-.156.078 2.081c-1.387.273-2.444.409-3.17.409-1.439 0-2.473-.405-3.102-1.216-.63-.81-.943-2.11-.943-3.9 0-1.789.323-3.082.972-3.88.649-.797 1.692-1.196 3.132-1.196m7.497 7.274c.266.467.743.7 1.43.7.686 0 1.164-.233 1.429-.7.266-.467.399-1.199.399-2.198 0-.998-.133-1.724-.399-2.178-.265-.453-.743-.681-1.429-.681-.687 0-1.164.228-1.43.681-.265.454-.398 1.18-.398 2.178 0 .999.133 1.731.398 2.198zm-2.013-5.941c.687-.889 1.835-1.333 3.443-1.333s2.755.444 3.443 1.333c.687.888 1.03 2.135 1.03 3.743 0 3.411-1.491 5.116-4.473 5.116-2.982 0-4.473-1.705-4.473-5.116 0-1.608.343-2.855 1.03-3.743zm12.428 8.625h-2.606v-9.724h2.587v.545c.895-.519 1.659-.779 2.295-.779 1.05 0 1.861.305 2.431.914 1.193-.609 2.282-.914 3.268-.914 1.283 0 2.175.373 2.674 1.119.499.745.749 1.935.749 3.568v5.271h-2.607v-5.193c0-.829-.09-1.442-.271-1.838-.182-.395-.545-.593-1.09-.593-.415 0-.921.091-1.516.273l-.293.096c.052.973.078 1.712.078 2.218v5.037h-2.606v-4.998c0-.96-.085-1.637-.253-2.033-.168-.395-.538-.593-1.108-.593a4.29 4.29 0 0 0-1.498.273l-.234.077v7.274\"\n />\n <path\n d=\"M36.159 103.665c-.72 0-1.448-.14-2.143-.433C14.026 94.818-.01 75.049-.01 52S14.026 9.182 34.016.768a5.508 5.508 0 0 1 2.143-.433c1.74 0 3.433.821 4.504 2.298l9.633 13.287C32.674 18.476 19.093 33.681 19.093 52s13.581 33.524 31.203 36.081l-9.633 13.286a5.565 5.565 0 0 1-4.504 2.298m38.791 0a5.563 5.563 0 0 1-4.504-2.298l-9.633-13.286C78.435 85.524 92.016 70.319 92.016 52c0-18.319-13.581-33.524-31.203-36.08l9.633-13.287A5.563 5.563 0 0 1 74.95.335c.719 0 1.448.14 2.143.433C97.083 9.182 111.119 28.951 111.119 52s-14.036 42.818-34.026 51.232a5.511 5.511 0 0 1-2.143.433\"\n fill=\"#4486A0\"\n />\n <path\n d=\"M58.348 19.319L70.446 2.633a5.56 5.56 0 0 1 6.659-1.86 55.435 55.435 0 0 1 11.57 6.61L65.124 40.479c-5.264 7.396-13.876 7.396-19.139 0L22.434 7.383A55.453 55.453 0 0 1 34.003.773a5.562 5.562 0 0 1 6.66 1.86L52.76 19.319c1.378 1.9 4.21 1.9 5.588 0m0 65.362l12.098 16.686a5.56 5.56 0 0 0 6.659 1.86 55.435 55.435 0 0 0 11.57-6.61L65.124 63.521c-5.264-7.396-13.876-7.396-19.139 0L22.434 96.617a55.453 55.453 0 0 0 11.569 6.61 5.562 5.562 0 0 0 6.66-1.86L52.76 84.681c1.378-1.9 4.21-1.9 5.588 0\"\n fill=\"#6CC4CA\"\n />\n </g>\n </svg>\n)\n\nexport const LogoTextOnly = props => {\n let { fill } = props\n if (!fill) {\n fill = '#fff'\n }\n return (\n <svg\n width=\"333\"\n height=\"37\"\n viewBox=\"0 0 333 37\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...omit(props, ['fill'])}\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.2 5.3L7.6 17.8h7.2L12 5.3h-1.9.1zm-10 22L6.1.8h10.2l6 26.5h-5.5l-1-4.8H6.5l-1 4.8H0h.2zm30.5 0h-5.2V7.8h5.2V9c1.7-1 3.3-1.5 4.8-1.5 2.6 0 4.4.7 5.4 2.3a13 13 0 0 1 1.5 7v10.6h-5.2V16.9c0-1.7-.2-2.9-.6-3.7-.4-.8-1.2-1.2-2.4-1.2-1 0-2 .2-3 .6l-.5.1v14.6zm27.5-11.5c0-1.5-.3-2.6-.8-3.2-.5-.6-1.3-1-2.6-1-1.2 0-2 .4-2.6 1-.5.6-.7 1.7-.8 3.2h6.8zm-5.8 6.6a4 4 0 0 0 2.6.8c2.5 0 4.6-.1 6.5-.3h1l.2 3.8c-3 .7-5.7 1-8.1 1-3 0-5-.7-6.4-2.3-1.3-1.5-2-4-2-7.6 0-7 2.9-10.4 8.6-10.4 5.7 0 8.5 2.9 8.5 8.8l-.4 3.6H51.5c0 1.2.3 2 1 2.6h-.1zm28.8-9.7c-3.2-.4-5.5-.6-6.8-.6-1.2 0-2 .1-2.5.3-.3.3-.5.6-.5 1.1 0 .5.2.9.7 1 .5.3 1.8.6 4 1 2 .3 3.5 1 4.4 1.8.9.8 1.3 2.2 1.3 4.2 0 4.2-2.6 6.3-7.8 6.3-2 0-4.2-.3-6.2-.7l-1.3-.3.2-4.3c3.2.4 5.4.6 6.7.6 1.3 0 2.1-.1 2.6-.4.4-.2.6-.6.6-1s-.2-1-.7-1.2a20 20 0 0 0-3.7-.8c-2-.4-3.5-1-4.5-1.7-1-.9-1.5-2.3-1.5-4.3 0-2.1.7-3.7 2.1-4.7 1.4-1 3.2-1.6 5.4-1.6 1.5 0 3.6.3 6.3.8l1.3.2-.1 4.3zm15.4-.4h-4.8v9.6c0 .3.2.6.5.8.2.3.6.4 1.1.4h3l.2 4c-1.7.5-3 .7-4 .7-2.3 0-4-.6-4.8-1.6-.8-1-1.2-3-1.2-5.8v-8.1h-2.3V7.8h2.3V2.4h5.2v5.4h4.8v4.5zm8.7 15h-5.2V0h5.2v8.7a10 10 0 0 1 4.9-1.4c2.6 0 4.3.7 5.3 2.3a13 13 0 0 1 1.5 7v10.6h-5.2V16.9c0-1.7-.2-2.9-.6-3.7-.4-.8-1.2-1.2-2.3-1.2-1 0-2 .2-3 .5l-.6.2v14.6zm27.5-11.5c0-1.5-.2-2.6-.7-3.2-.5-.6-1.4-1-2.6-1-1.3 0-2.1.4-2.6 1s-.8 1.7-.8 3.2h6.7zm-5.7 6.6c.6.5 1.4.8 2.6.8 2.4 0 4.6-.1 6.4-.3h1.1l.1 3.8c-3 .7-5.7 1-8 1-3 0-5.1-.7-6.5-2.3-1.3-1.5-2-4-2-7.6 0-7 3-10.4 8.7-10.4 5.6 0 8.4 2.9 8.4 8.8l-.4 3.6h-11.4c0 1.2.4 2 1 2.6zm28.7-9.7c-3.2-.4-5.4-.6-6.7-.6-1.3 0-2.1.1-2.5.3-.4.3-.6.6-.6 1.1 0 .5.3.9.8 1 .5.3 1.8.6 3.9 1 2 .3 3.6 1 4.4 1.8 1 .8 1.4 2.2 1.4 4.2 0 4.2-2.7 6.3-7.9 6.3-2 0-4.2-.3-6.2-.7l-1.2-.3.1-4.3c3.2.4 5.5.6 6.7.6a6 6 0 0 0 2.6-.4c.5-.2.7-.6.7-1s-.3-1-.7-1.2c-.5-.2-1.8-.5-3.8-.8-2-.4-3.5-1-4.5-1.7-1-.9-1.4-2.3-1.4-4.3 0-2.1.7-3.7 2-4.7 1.5-1 3.3-1.6 5.5-1.6 1.5 0 3.6.3 6.2.8l1.3.2v4.3h-.1zm4.6 14.6h5.2V7.8h-5.2v19.5zm0-22h5.2V.1h-5.2v5.2zM176.8 19c-1.5.2-2.2 1-2.2 2.4s.7 2.1 2 2.1c1 0 2-.1 3.2-.5l.5-.1v-4.2l-3.5.3zm8.7-5v8c.1.6.2 1 .4 1.3.1.2.4.4 1 .5l-.2 4c-1.3 0-2.4-.1-3.2-.3-.8-.2-1.6-.6-2.4-1.1a13 13 0 0 1-5.7 1.4c-4 0-6-2.2-6-6.4 0-2.1.5-3.6 1.6-4.4 1.5-1 3.3-1.6 5.2-1.6l4.1-.3V14c0-.8-.1-1.3-.5-1.6a3 3 0 0 0-1.8-.5l-7.3.3-.1-3.6c2.7-.8 5.4-1.1 7.9-1.1s4.3.5 5.4 1.5c1.1 1 1.6 2.7 1.6 5zM208 26.8c-2.8.6-5.3.9-7.5.9s-4-.3-5.3-.9a6.5 6.5 0 0 1-3-2.6c-.8-1.2-1.3-2.6-1.6-4.2-.3-1.6-.5-3.6-.5-6 0-5.1.8-8.7 2.2-10.7 1.4-2 4-3 8-3 2.2 0 4.8.3 7.7 1l-.2 4.3c-2.5-.4-4.7-.6-6.4-.6-1.7 0-2.9.2-3.6.7-.7.5-1.3 1.3-1.6 2.6-.4 1.3-.5 3.4-.5 6.5 0 3 .3 5.2 1 6.3.7 1.2 2.2 1.8 4.3 1.8 2.2 0 4.4-.2 6.8-.5l.2 4.4zm9.3.4H212V0h5.3v8.7c1.7-1 3.3-1.4 4.8-1.4 2.6 0 4.4.7 5.3 2.3a13 13 0 0 1 1.5 7v10.6h-5.2V16.9c0-1.7-.2-2.9-.6-3.7-.4-.8-1.1-1.2-2.3-1.2-1 0-2 .2-3 .5l-.5.2v14.6-.1zm22.6-8.2c-1.5.2-2.2 1-2.2 2.4s.6 2.1 2 2.1c.9 0 2-.1 3.1-.5l.6-.1v-4.2l-3.5.3zm8.7-5v8c.1.6.2 1 .4 1.3.1.2.4.4 1 .5l-.2 4c-1.4 0-2.4-.1-3.2-.3-.8-.2-1.6-.6-2.4-1.1a13 13 0 0 1-5.7 1.4c-4 0-6-2.2-6-6.4 0-2.1.5-3.6 1.6-4.4 1.5-1 3.3-1.6 5.2-1.6l4.1-.3V14c0-.8-.1-1.3-.5-1.6a3 3 0 0 0-1.8-.5l-7.3.3-.1-3.6c2.7-.8 5.4-1.1 7.9-1.1s4.3.5 5.4 1.5c1 1 1.6 2.7 1.6 5zm5.2 13.3V7.8h5.2V10c2.2-1.3 4.2-2.1 6.2-2.5v5.2l-5.4 1.4-.8.3v13h-5.2v-.1zm25.5-14.9h-4.8V22c0 .3.2.6.5.8.2.3.6.4 1.1.4h3l.2 4c-1.7.5-3 .7-4 .7-2.3 0-3.9-.6-4.8-1.6-.8-1-1.2-3-1.2-5.8v-8.1H267V7.9h2.3V2.5h5.2v5.4h4.8v4.5zm3.5 15h5.2V7.8h-5.2v19.6zm0-22h5.2V.2h-5.2v5.2zm15.5 22H293V7.8h5.1V9c1.8-1 3.4-1.5 4.9-1.5 2.6 0 4.4.7 5.4 2.3 1 1.5 1.4 3.9 1.4 7v10.6h-5.2V16.9c0-1.7-.2-2.9-.5-3.7-.4-.8-1.2-1.2-2.4-1.2-1 0-2 .2-3 .6l-.5.1v14.6l.1.1zm20.9-13.1c0 2 1 3 3 3 1.9 0 2.9-1 2.9-3 0-1.9-1-2.8-3-2.8s-3 1-3 2.9l.1-.1zm-.4 16c0 1.1 1.4 1.7 4.1 1.7 2.8 0 4.1-.7 4.1-2 0-.7-.2-1.1-.7-1.3-.4-.2-1.4-.3-3-.4l-3.4-.2a3 3 0 0 0-1 2.2h-.1zm13.5-.6c0 2.2-.9 3.9-2.6 5-1.7 1-4 1.5-7 1.5s-5-.4-6.6-1.1c-1.6-.8-2.4-2.2-2.4-4.3 0-1.6 1-3.1 2.8-4.6-1-.6-1.4-1.6-1.4-3 0-.5.3-1.3 1.1-2.5l.4-.6a6.5 6.5 0 0 1-2.7-5.6c0-2.5.8-4.3 2.3-5.4a9.7 9.7 0 0 1 5.9-1.6c1.1 0 2.2 0 3.3.3l.6.2 6.3-.2v4.1l-3-.2a5 5 0 0 1 1 2.6c0 2.6-.7 4.4-2 5.4a10.8 10.8 0 0 1-7.9 1.3l-.4 1.7c0 .4.3.7.7.9.4.1 1.5.2 3.1.2 3.3 0 5.5.5 6.7 1.3 1.2.9 1.8 2.4 1.8 4.6z\"\n fill=\"#fff\"\n />\n </svg>\n )\n}\n\nexport const LogoLightMark = props => (\n <svg viewBox=\"0 0 112 104\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19.103 51.6638C19.103 33.3448 32.684 18.1398 50.305 15.5828L40.673 2.29676C39.9378 1.28176 38.881 0.545149 37.6743 0.206577C36.4676 -0.131995 35.1819 -0.0526371 34.026 0.431761C14.035 8.84576 0 28.6148 0 51.6638C0 74.7128 14.035 94.4818 34.026 102.896C36.403 103.896 39.158 103.119 40.673 101.031L50.305 87.7448C32.684 85.1878 19.103 69.9828 19.103 51.6638ZM70.456 2.29676L60.823 15.5828C78.445 18.1398 92.026 33.3448 92.026 51.6638C92.026 69.9828 78.445 85.1878 60.823 87.7448L70.456 101.031C71.1912 102.046 72.248 102.782 73.4547 103.121C74.6614 103.46 75.9471 103.38 77.103 102.896C97.093 94.4818 111.129 74.7128 111.129 51.6638C111.129 28.6148 97.093 8.84576 77.103 0.431761C75.9471 -0.0526371 74.6614 -0.131995 73.4547 0.206577C72.248 0.545149 71.1912 1.28176 70.456 2.29676\"\n fill=\"#173140\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M58.358 18.9828L70.456 2.29676C71.193 1.28052 72.2522 0.543581 73.4612 0.205864C74.6703 -0.131853 75.9581 -0.0504734 77.115 0.436761C81.2234 2.16687 85.1081 4.38624 88.685 7.04676L65.134 40.1428C59.87 47.5388 51.258 47.5388 45.995 40.1428L22.444 7.04676C26.0206 4.38645 29.905 2.1671 34.013 0.436761C35.1701 -0.0503619 36.458 -0.131685 37.6672 0.206017C38.8764 0.543718 39.9357 1.28058 40.673 2.29676L52.77 18.9828C54.148 20.8828 56.98 20.8828 58.358 18.9828ZM58.358 84.3448L70.456 101.031C71.193 102.047 72.2522 102.784 73.4612 103.122C74.6703 103.459 75.9581 103.378 77.115 102.891C81.2234 101.161 85.1081 98.9413 88.685 96.2808L65.134 63.1848C59.87 55.7888 51.258 55.7888 45.995 63.1848L22.444 96.2808C26.0206 98.9411 29.905 101.16 34.013 102.891C35.1701 103.378 36.458 103.459 37.6672 103.121C38.8764 102.784 39.9357 102.047 40.673 101.031L52.77 84.3448C54.148 82.4448 56.98 82.4448 58.358 84.3448Z\"\n fill=\"#6CC4CA\"\n />\n </svg>\n)\n\nexport const LogoLight = props => (\n <svg viewBox=\"0 0 521 104\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M143.234 40.272l-2.684 12.564h7.236l-2.685-12.564h-1.867zm-10.113 22.017l5.951-26.451h10.192l5.951 26.451h-5.368l-1.05-4.785h-9.258l-1.05 4.785h-5.368zm30.574 0h-5.213v-19.45h5.174v1.089c1.763-1.036 3.384-1.555 4.863-1.555 2.592 0 4.382.765 5.368 2.295.985 1.53 1.478 3.89 1.478 7.08v10.541h-5.213V51.903c0-1.659-.194-2.885-.583-3.676-.389-.79-1.167-1.187-2.334-1.187a8.839 8.839 0 0 0-3.073.545l-.467.155v14.549m27.462-11.476c0-1.556-.247-2.638-.739-3.247-.493-.609-1.355-.915-2.586-.915-1.232 0-2.101.319-2.607.953-.505.636-.772 1.706-.797 3.209h6.729zm-5.738 6.555c.61.532 1.485.798 2.626.798 2.412 0 4.564-.079 6.457-.233l1.09-.118.078 3.851c-2.982.727-5.679 1.089-8.091 1.089-2.931 0-5.057-.777-6.38-2.333-1.323-1.556-1.984-4.085-1.984-7.586 0-6.975 2.866-10.463 8.597-10.463 5.653 0 8.48 2.931 8.48 8.791l-.389 3.617h-11.436c.025 1.193.343 2.056.952 2.587zm28.767-9.666c-3.216-.414-5.466-.623-6.749-.623-1.284 0-2.114.117-2.49.35-.376.234-.564.604-.564 1.109s.253.856.759 1.05c.505.195 1.801.48 3.89.856 2.087.376 3.572.992 4.453 1.848.882.855 1.323 2.244 1.323 4.162 0 4.201-2.606 6.301-7.819 6.301-1.711 0-3.786-.233-6.223-.7l-1.245-.233.155-4.357c3.216.416 5.452.622 6.71.622s2.114-.122 2.568-.368c.453-.247.681-.617.681-1.109s-.24-.856-.72-1.089c-.48-.233-1.725-.519-3.734-.856-2.011-.337-3.508-.908-4.493-1.712-.986-.803-1.479-2.237-1.479-4.298 0-2.062.701-3.618 2.101-4.669 1.4-1.049 3.202-1.575 5.407-1.575 1.53 0 3.617.248 6.262.74l1.284.233-.077 4.318m15.364-.429h-4.784v7.975c0 .778.019 1.33.058 1.653.039.325.181.603.427.837.247.233.63.349 1.148.349l2.956-.077.235 4.162c-1.738.389-3.061.583-3.968.583-2.334 0-3.929-.525-4.785-1.575-.856-1.05-1.284-2.989-1.284-5.815v-8.092h-2.294v-4.434h2.294v-5.406h5.213v5.406h4.784v4.434m8.791 15.016h-5.212V35.06h5.212v8.712c1.789-.933 3.397-1.399 4.824-1.399 2.593 0 4.382.765 5.367 2.295.987 1.53 1.48 3.89 1.48 7.08v10.541h-5.213V51.864c0-1.634-.195-2.846-.584-3.637-.388-.79-1.167-1.187-2.334-1.187a10.28 10.28 0 0 0-3.034.467l-.506.156v14.626m27.463-11.476c0-1.556-.247-2.638-.739-3.247-.493-.609-1.356-.915-2.587-.915s-2.101.319-2.607.953c-.505.636-.771 1.706-.797 3.209h6.73zm-5.737 6.555c.608.532 1.483.798 2.625.798 2.412 0 4.564-.079 6.457-.233l1.089-.118.078 3.851c-2.982.727-5.678 1.089-8.091 1.089-2.931 0-5.056-.777-6.379-2.333-1.323-1.556-1.985-4.085-1.985-7.586 0-6.975 2.866-10.463 8.598-10.463 5.653 0 8.48 2.931 8.48 8.791l-.389 3.617h-11.437c.026 1.193.344 2.056.954 2.587zm28.765-9.666c-3.216-.414-5.465-.623-6.749-.623-1.283 0-2.114.117-2.489.35-.377.234-.565.604-.565 1.109s.253.856.759 1.05c.506.195 1.802.48 3.89.856 2.087.376 3.572.992 4.454 1.848.881.855 1.323 2.244 1.323 4.162 0 4.201-2.606 6.301-7.819 6.301-1.712 0-3.786-.233-6.224-.7l-1.245-.233.156-4.357c3.215.416 5.452.622 6.71.622 1.257 0 2.113-.122 2.567-.368.454-.247.681-.617.681-1.109s-.24-.856-.719-1.089c-.481-.233-1.726-.519-3.735-.856-2.01-.337-3.508-.908-4.493-1.712-.985-.803-1.478-2.237-1.478-4.298 0-2.062.7-3.618 2.101-4.669 1.399-1.049 3.202-1.575 5.407-1.575 1.529 0 3.617.248 6.262.74l1.284.233-.078 4.318m4.589 14.587h5.213v-19.45h-5.213v19.45zm0-21.939h5.213v-5.29h-5.213v5.29zm16.377 13.692c-1.453.13-2.179.908-2.179 2.334 0 1.427.636 2.14 1.907 2.14.985 0 2.061-.156 3.228-.467l.583-.156v-4.162l-3.539.311zm8.752-5.134v8.091c.052.622.156 1.057.311 1.303.156.247.48.421.973.525l-.156 3.928c-1.322 0-2.379-.09-3.17-.272-.791-.181-1.589-.544-2.392-1.089-1.867.908-3.774 1.361-5.719 1.361-4.02 0-6.029-2.125-6.029-6.379 0-2.074.558-3.545 1.673-4.415 1.115-.869 2.826-1.381 5.135-1.536l4.161-.312v-1.205c0-.804-.181-1.355-.544-1.654-.363-.297-.947-.447-1.75-.447l-7.313.312-.156-3.619c2.775-.751 5.413-1.127 7.916-1.127 2.502 0 4.304.519 5.407 1.555 1.102 1.038 1.653 2.698 1.653 4.98zm22.406 12.953c-2.749.596-5.226.894-7.429.894-2.205 0-3.968-.272-5.291-.816-1.322-.545-2.36-1.413-3.112-2.606-.753-1.193-1.271-2.594-1.556-4.202-.285-1.607-.428-3.63-.428-6.068 0-5.108.719-8.667 2.159-10.678 1.44-2.009 4.091-3.015 7.955-3.015 2.229 0 4.809.351 7.741 1.051l-.156 4.279c-2.568-.389-4.7-.584-6.399-.584-1.698 0-2.911.228-3.637.681-.726.454-1.264 1.316-1.615 2.587-.349 1.271-.523 3.436-.523 6.496 0 3.061.355 5.18 1.068 6.36.713 1.18 2.14 1.77 4.279 1.77 2.14 0 4.416-.181 6.827-.545l.117 4.396m9.296.428h-5.212V35.06h5.212v8.712c1.79-.933 3.397-1.399 4.824-1.399 2.593 0 4.382.765 5.368 2.295.986 1.53 1.479 3.89 1.479 7.08v10.541h-5.213V51.864c0-1.634-.194-2.846-.584-3.637-.388-.79-1.167-1.187-2.334-1.187a10.28 10.28 0 0 0-3.034.467l-.506.156v14.626m22.639-8.247c-1.452.13-2.178.908-2.178 2.334 0 1.427.636 2.14 1.907 2.14.984 0 2.061-.156 3.228-.467l.583-.156v-4.162l-3.54.311zm8.753-5.134v8.091c.052.622.156 1.057.312 1.303.154.247.479.421.972.525l-.156 3.928c-1.322 0-2.379-.09-3.17-.272-.791-.181-1.589-.544-2.393-1.089-1.867.908-3.773 1.361-5.718 1.361-4.02 0-6.029-2.125-6.029-6.379 0-2.074.558-3.545 1.672-4.415 1.115-.869 2.827-1.381 5.136-1.536l4.161-.312v-1.205c0-.804-.181-1.355-.544-1.654-.363-.297-.947-.447-1.751-.447l-7.312.312-.157-3.619c2.776-.751 5.414-1.127 7.917-1.127 2.502 0 4.305.519 5.407 1.555 1.102 1.038 1.653 2.698 1.653 4.98zm5.173 13.381v-19.45h5.173v2.062c2.179-1.297 4.254-2.139 6.224-2.528v5.251c-2.1.441-3.902.895-5.406 1.361l-.779.272v13.032h-5.212m25.44-15.016h-4.785v7.975c0 .778.02 1.33.059 1.653.039.325.181.603.428.837.246.233.628.349 1.147.349l2.957-.077.233 4.162c-1.737.389-3.06.583-3.968.583-2.333 0-3.929-.525-4.785-1.575-.855-1.05-1.283-2.989-1.283-5.815v-8.092h-2.295v-4.434h2.295v-5.406h5.212v5.406h4.785v4.434m3.578 15.016h5.213v-19.45h-5.213v19.45zm0-21.939h5.213v-5.29h-5.213v5.29zm15.444 21.939h-5.213v-19.45h5.174v1.089c1.763-1.036 3.383-1.555 4.863-1.555 2.592 0 4.381.765 5.367 2.295.985 1.53 1.478 3.89 1.478 7.08v10.541h-5.213V51.903c0-1.659-.193-2.885-.583-3.676-.389-.79-1.167-1.187-2.334-1.187a8.833 8.833 0 0 0-3.072.545l-.467.155v14.549m20.966-12.934c0 1.906.992 2.859 2.975 2.859 1.985 0 2.976-.953 2.976-2.859 0-1.906-.991-2.859-2.976-2.859-1.983 0-2.975.953-2.975 2.859zm-.312 15.929c0 1.115 1.368 1.673 4.104 1.673 2.736 0 4.105-.648 4.105-1.945 0-.7-.234-1.148-.701-1.343-.467-.193-1.452-.304-2.956-.33l-3.501-.272c-.7.7-1.051 1.439-1.051 2.217zm13.46-.564c0 2.217-.856 3.858-2.567 4.921-1.712 1.063-4.026 1.595-6.944 1.595s-5.161-.389-6.73-1.168c-1.569-.777-2.353-2.191-2.353-4.239 0-1.634.934-3.178 2.801-4.629-.96-.648-1.439-1.634-1.439-2.956 0-.519.389-1.375 1.167-2.568l.349-.545c-1.763-1.27-2.645-3.144-2.645-5.621 0-2.476.746-4.271 2.238-5.387 1.49-1.115 3.467-1.673 5.932-1.673 1.114 0 2.217.13 3.305.389l.623.117 6.263-.194v4.162l-2.918-.234c.57.882.856 1.764.856 2.646 0 2.593-.661 4.382-1.983 5.368-1.323.986-3.398 1.478-6.224 1.478a7.363 7.363 0 0 1-1.595-.156c-.26.675-.389 1.225-.389 1.653 0 .428.219.72.661.875.441.156 1.478.248 3.113.273 3.266.026 5.496.461 6.69 1.303 1.192.843 1.789 2.373 1.789 4.59zm54.617-14.533a3.51 3.51 0 0 1-3.5 3.5h-39.956a3.51 3.51 0 0 1-3.5-3.5V38.571a3.51 3.51 0 0 1 3.5-3.5h39.956a3.51 3.51 0 0 1 3.5 3.5v11.616\"\n fill=\"#162E3E\"\n />\n <path\n fill=\"#FFF\"\n d=\"M477.476 49.241h2.801v-3.228h-2.801zm8.733-9.958c.674 0 1.537.104 2.587.312l.525.116-.078 2.061c-1.024-.103-1.782-.155-2.275-.155-.894 0-1.488.192-1.78.574-.291.382-.437 1.105-.437 2.168 0 1.064.146 1.793.437 2.189.292.395.892.593 1.799.593l2.256-.156.078 2.081c-1.387.273-2.444.409-3.17.409-1.439 0-2.473-.405-3.102-1.216-.63-.81-.943-2.11-.943-3.9 0-1.789.323-3.082.972-3.88.649-.797 1.692-1.196 3.131-1.196m7.498 7.274c.266.467.743.7 1.43.7.686 0 1.164-.233 1.429-.7.266-.467.399-1.199.399-2.198 0-.998-.133-1.724-.399-2.178-.265-.453-.743-.681-1.429-.681-.687 0-1.164.228-1.43.681-.265.454-.398 1.18-.398 2.178 0 .999.133 1.731.398 2.198zm-2.013-5.941c.687-.889 1.835-1.333 3.443-1.333s2.755.444 3.443 1.333c.687.888 1.03 2.135 1.03 3.743 0 3.411-1.491 5.116-4.473 5.116-2.982 0-4.473-1.705-4.473-5.116 0-1.608.343-2.855 1.03-3.743zm12.428 8.625h-2.606v-9.724h2.587v.545c.895-.519 1.659-.779 2.295-.779 1.05 0 1.861.305 2.431.914 1.192-.609 2.282-.914 3.268-.914 1.283 0 2.174.373 2.674 1.119.499.745.749 1.935.749 3.568v5.271h-2.607v-5.193c0-.829-.09-1.442-.271-1.838-.183-.395-.545-.593-1.09-.593-.415 0-.921.091-1.516.273l-.293.096c.052.973.078 1.712.078 2.218v5.037h-2.606v-4.998c0-.96-.085-1.637-.253-2.033-.169-.395-.538-.593-1.108-.593a4.29 4.29 0 0 0-1.498.273l-.234.077v7.274\"\n />\n <path\n d=\"M19.093 52c0-18.319 13.581-33.524 31.202-36.081L40.663 2.633A5.556 5.556 0 0 0 34.016.768C14.025 9.182-.01 28.951-.01 52s14.035 42.818 34.026 51.232c2.377 1 5.132.223 6.647-1.865l9.632-13.286C32.674 85.524 19.093 70.319 19.093 52M70.446 2.633l-9.633 13.286C78.435 18.476 92.016 33.681 92.016 52c0 18.319-13.581 33.524-31.203 36.081l9.633 13.286a5.556 5.556 0 0 0 6.647 1.865c19.99-8.414 34.026-28.183 34.026-51.232S97.083 9.182 77.093.768a5.556 5.556 0 0 0-6.647 1.865\"\n fill=\"#173140\"\n />\n <path\n d=\"M58.348 19.319L70.446 2.633a5.56 5.56 0 0 1 6.659-1.86 55.435 55.435 0 0 1 11.57 6.61L65.124 40.479c-5.264 7.396-13.876 7.396-19.139 0L22.434 7.383A55.453 55.453 0 0 1 34.003.773a5.562 5.562 0 0 1 6.66 1.86L52.76 19.319c1.378 1.9 4.21 1.9 5.588 0m0 65.362l12.098 16.686a5.56 5.56 0 0 0 6.659 1.86 55.435 55.435 0 0 0 11.57-6.61L65.124 63.521c-5.264-7.396-13.876-7.396-19.139 0L22.434 96.617a55.453 55.453 0 0 0 11.569 6.61 5.562 5.562 0 0 0 6.66-1.86L52.76 84.681c1.378-1.9 4.21-1.9 5.588 0\"\n fill=\"#6CC4CA\"\n />\n </g>\n </svg>\n)\n","/** @jsx h */\nimport { Component, h } from 'preact'\n\nexport const transitionIn = Wrapped => {\n class TransitionIn extends Component {\n constructor(props) {\n super(props)\n this.state = {\n firstRender: true\n }\n }\n\n componentDidMount() {\n setTimeout(() => {\n this.setState({ firstRender: false })\n }, 0)\n }\n\n render() {\n return (\n <Wrapped\n {...Object.assign(\n { firstRender: this.state.firstRender },\n this.props\n )}\n />\n )\n }\n }\n\n return TransitionIn\n}\n","import { h } from 'preact'\nimport cn from 'classnames'\nimport { LogoLight } from './logo'\nimport getComponent from './utils/get-styled-component'\nimport { transitionIn } from './transition-in'\nimport omit from './utils/omit'\nimport { Icon } from './icon'\n\nexport const LogoCrate = () => (\n <div className=\"mw6 mv3 ph3 pt2 pb3 center br2\">\n <div className=\"w-60\">\n <a href=\"/\">\n <LogoLight />\n </a>\n </div>\n </div>\n)\n\nexport const Page = transitionIn(\n getComponent({\n baseClasses: 'transition',\n options: { transitions: ['firstRender'] },\n fn: ({ firstRender }) => (firstRender ? 'o-0 translate-y' : 'o-100')\n })\n)\n\nexport const PageCrateHeading = getComponent({\n baseClasses: 'mt1 mb3',\n tagName: 'h3'\n})\n\nexport const PageCrate = getComponent({\n baseClasses: 'no-print-padding mv3 pa3 center br2',\n options: {\n title: '',\n backgroundColor: 'white',\n width: ['wide'],\n shadowExists: ['noShadow']\n },\n fn: ({ wide, backgroundColor, noShadow }) =>\n cn(wide ? 'mw7' : 'mw6', `bg-${backgroundColor}`, {\n 'shadow-1': !noShadow\n }),\n renderChildren: ({ title, children }) => {\n const res = [children]\n if (title) {\n res.unshift(<PageCrateHeading>{title}</PageCrateHeading>)\n }\n return res\n }\n})\n\nexport const MessagePageCrate = props => {\n const { loading, error, warning, success, children } = props\n const rest = omit(props, [\n 'loading',\n 'error',\n 'warning',\n 'success',\n 'children'\n ])\n let icon = null\n let iconClasses = null\n let backgroundColor = 'white'\n let colorClasses = null\n if (loading) {\n icon = 'autorenew'\n iconClasses = 'spin-animation'\n }\n if (error) {\n icon = 'error'\n backgroundColor = 'red'\n colorClasses = 'black'\n }\n if (warning) {\n icon = 'warning'\n backgroundColor = 'orange'\n colorClasses = 'black'\n }\n if (success) {\n icon = 'check'\n backgroundColor = 'light-blue'\n colorClasses = 'black'\n }\n const iconComp = (loading || error || warning || success) && (\n <Icon className={cn('f3 mr3', iconClasses)} size=\"40\" icon={icon} />\n )\n\n return (\n <PageCrate backgroundColor={backgroundColor} {...rest}>\n <div className={cn('flex items-center min-h3 f4', colorClasses)}>\n {iconComp}\n {children}\n </div>\n </PageCrate>\n )\n}\n","import { h } from 'preact'\nimport getComponent from './utils/get-styled-component'\nimport omit from './utils/omit'\n\nexport const FullScreenOverlayWrapper = getComponent({\n baseClasses:\n 'fixed top-0 left-0 z-999 w-100 h-100 bg-gray flex items-center dark-blue'\n})\n\nexport const FullScreenOverlay = props => (\n <FullScreenOverlayWrapper {...omit(props, ['children'])}>\n <div className=\"center ph2 ph4-m\">{props.children}</div>\n </FullScreenOverlayWrapper>\n)\n","import getComponent from './utils/get-styled-component'\n\nexport const inputClasses = 'pa2 input-reset bg-white ba b--gray br2'\n\nexport const Input = getComponent({\n baseClasses: inputClasses,\n tagName: 'input'\n})\n\nexport const Select = getComponent({\n baseClasses: inputClasses,\n tagName: 'select'\n})\n\nexport const Textarea = getComponent({\n baseClasses: inputClasses,\n tagName: 'textarea'\n})\n","import getComponent from './utils/get-styled-component'\n\nexport const DrugBox = getComponent({\n baseClasses: 'pv2 ph2 br2 ba b--light-gray bg-near-white',\n options: {\n highlight: ['highlighted']\n },\n fn: ({ highlighted }) => (highlighted ? 'bg-lightest-blue' : 'bg-near-white')\n})\n","import { h } from 'preact'\nimport getComponent from './utils/get-styled-component'\n\nconst supportEmail = 'support@anesthesiacharting.com'\n\nexport const Link = getComponent({\n baseClasses: 'link dark-blue underline hover-light-blue',\n tagName: 'a'\n})\n\nexport const SupportLink = props => (\n <Link href={`mailto:${supportEmail}`} {...props}>\n {supportEmail}\n </Link>\n)\n","import { h } from 'preact'\nimport { Icon } from './icon'\nimport cn from 'classnames'\n\nexport const CheckMark = ({ className, name, label, isComplete, onClick }) => (\n <label\n htmlFor={name}\n className={cn('flex items-center mb2', className)}\n data-e2e=\"checkMark\"\n >\n <input\n onClick={() => onClick(name)}\n className=\"checkbox o-0\"\n id={name}\n checked={isComplete}\n type=\"checkbox\"\n />\n {isComplete && <Icon className=\"light-blue\" size=\"40\" icon=\"check_box\" />}\n {!isComplete && <Icon size=\"40\" icon=\"check_box_outline_blank\" />}\n <span className=\"ml2\">{label || name}</span>\n </label>\n)\n","/** @jsx h */\nimport getComponent from './utils/get-styled-component'\nimport { h } from 'preact'\nimport { Icon } from './icon'\nimport cn from 'classnames'\n\nconst cardStyles = {\n backfaceVisibility: 'hidden',\n webkitBackfaceVisibility: 'hidden',\n top: '0',\n left: '0'\n}\n\nexport const FlipContainer = ({\n front,\n back,\n flipped,\n height,\n width,\n className,\n style,\n direction = 'vertical',\n perspective = '100px',\n ...rest\n}) => {\n const axis = direction === 'vertical' ? 'X' : 'Y'\n const rotateZero = `rotate${axis}(0deg)`\n const rotateFlipped = `rotate${axis}(180deg)`\n return (\n <div\n {...rest}\n className={className}\n style={Object.assign(\n {\n position: 'relative',\n perspective,\n width,\n height\n },\n style\n )}\n >\n <div\n style={{\n transition: '0.6s',\n transformStyle: 'preserve-3d',\n webkitTransformStyle: 'preserve-3d',\n position: 'relative',\n transformOrigin: 'center',\n webkitTransformOrigin: 'center',\n width: '100%',\n height: '100%',\n transform: !flipped ? rotateFlipped : '',\n webkitTransform: !flipped ? rotateFlipped : ''\n }}\n >\n <div\n style={Object.assign({}, cardStyles, {\n transform: rotateFlipped,\n webkitTransform: rotateFlipped,\n width: '100%',\n height: '100%',\n position: 'relative'\n })}\n >\n {front}\n </div>\n <div\n style={Object.assign({}, cardStyles, {\n zIndex: 2,\n transform: rotateZero,\n webkitTransform: rotateZero,\n width: '100%',\n height: '100%',\n position: 'absolute'\n })}\n >\n {back}\n </div>\n </div>\n </div>\n )\n}\n\nexport const FlipIcon = getComponent({\n options: {\n complete: ['complete'],\n icon: ['icon']\n },\n renderChildren: ({ icon, complete }) => {\n return [\n <FlipContainer\n key=\"flipContainer\"\n width=\"20px\"\n height=\"20px\"\n flipped={complete}\n front={<Icon size=\"20\" icon={icon} />}\n back={<Icon className=\"light-blue\" size=\"20\" icon=\"check_circle\" />}\n />\n ]\n }\n})\n\nexport const DrawerLink = getComponent({\n tagName: 'a',\n baseClasses: 'link pv1 mt1 f5 fw3 flex items-center',\n options: {\n active: ['active'],\n disabled: ['disabled'],\n completeness: ['complete']\n },\n fn: ({ active, disabled }) =>\n cn({\n 'light-blue': active,\n 'mid-gray not-allowed': disabled,\n 'white hover-moon-gray': !active && !disabled\n }),\n renderChildren: ({ icon, title, complete }) => [\n <FlipIcon key=\"flipIcon\" icon={icon} complete={complete} />,\n <span key=\"span\" data-e2e={`${title}Nav`} className={icon ? 'pl2' : null}>\n {title}\n </span>\n ]\n})\n\nexport const DrawerLinkContainer = getComponent({\n baseClasses: 'link db pt2 pl3 f4',\n options: {\n completeness: ['complete'],\n title: ['title']\n },\n renderChildren: ({ complete, title, children }) => [\n <div key={title} className=\"flex items-center\">\n <Icon\n className={cn('light-blue pr2', {\n hidden: !complete\n })}\n size=\"20\"\n icon=\"check_circle\"\n />\n <h3 className=\"fw3 f6 ma0 ttu mid-gray bb b--mid-gray pb2 pt1 relative flex-grow-1\">\n {title}\n </h3>\n </div>,\n <div key={title + 'children'}>{children}</div>\n ]\n})\n\nexport const Drawer = getComponent({\n baseClasses: 'bg-dark-blue white fixed top-0 vh-100 overflow-x-hidden'\n})\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n/**\n * Keep track of the previous component so that we can set\n * `currentComponent` to `null` and throw when a hook is invoked\n * outside of render\n * @type {import('./internal').Component}\n */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n\tcurrentComponent = previousComponent;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.forEach(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent.componentWillUnmount =\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { _vnode: vnode, _container: container });\n}\n","// This file includes experimental React APIs exported from the \"scheduler\"\n// npm package. Despite being explicitely marked as unstable some libraries\n// already make use of them. This file is not a full replacement for the\n// scheduler package, but includes the necessary shims to make those libraries\n// work with Preact.\n\nexport const unstable_ImmediatePriority = 1;\nexport const unstable_UserBlockingPriority = 2;\nexport const unstable_NormalPriority = 3;\nexport const unstable_LowPriority = 4;\nexport const unstable_IdlePriority = 5;\n\n/**\n * @param {number} priority\n * @param {() => void} callback\n */\nexport function unstable_runWithPriority(priority, callback) {\n\treturn callback();\n}\n\nexport const unstable_now =\n\ttypeof performance === 'object' && typeof performance.now === 'function'\n\t\t? performance.now.bind(performance)\n\t\t: () => Date.now();\n","import { createPortal } from 'preact/compat'\n\nexport const Portal = ({ into, children }) => {\n const container = document.querySelector(into)\n return createPortal(children, container)\n}\n","import getComponent from './utils/get-styled-component'\nimport { transitionIn } from './transition-in'\n\nexport const Shield = transitionIn(\n getComponent({\n baseClasses: 'fixed transition w-100 h-100 top-0 left-0 bg-blue o-50',\n options: { transitions: ['firstRender'] },\n fn: ({ firstRender }) => (firstRender ? 'o-0' : '')\n })\n)\n","import { h } from 'preact'\nimport cn from 'classnames'\nimport { Icon } from './icon'\nimport omit from './utils/omit'\nimport { Portal } from './portal'\nimport { Shield } from './shield'\n\nexport const Dialog = incomingProps => {\n const {\n className,\n title,\n doClose,\n forceChoice,\n style,\n bottom,\n children\n } = incomingProps\n const props = omit(incomingProps, [\n 'className',\n 'title',\n 'doClose',\n 'forceChoice',\n 'style',\n 'children',\n 'bottom'\n ])\n return (\n <Portal into=\"body\">\n <div className=\"fixed z-999 vh-100 w-100 top-0 left-0 flex items-center justify-center\">\n <Shield onClick={forceChoice ? null : doClose} />\n <dialog\n open\n style={Object.assign(\n {\n minHeight: '150px',\n minWidth: '300px',\n width: '600px',\n // this is important for iOS\n maxHeight: 'calc(100vh - 120px)'\n },\n style\n )}\n className={cn(\n 'ph2 pt2 pb1 bg-white bn br3 shadow-2 z-999 relative flex flex-column',\n className\n )}\n {...props}\n >\n <div className=\"w-100 pt1 ph1\">\n {!forceChoice && (\n // this is just a spacer\n <div className=\"fr\" style={{ width: '44px', height: '10px' }}>\n <button\n onClick={doClose}\n style={{ top: '-16px', right: '-4px' }}\n className=\"button-reset bn bg-transparent relative pa3\"\n >\n <Icon icon=\"close\" />\n </button>\n </div>\n )}\n {title && <h3 className=\"mt0 mb2\">{title}</h3>}\n </div>\n <div className=\"pa1 prevent-overscroll overflow-y-scroll w-100 overflow-x-hidden\">\n {children}\n </div>\n <div className=\"ph1 pv2\">{bottom}</div>\n </dialog>\n </div>\n </Portal>\n )\n}\n","function calc(m) {\n return function(n) { return Math.round(n * m); };\n};\nmodule.exports = {\n seconds: calc(1e3),\n minutes: calc(6e4),\n hours: calc(36e5),\n days: calc(864e5),\n weeks: calc(6048e5),\n months: calc(26298e5),\n years: calc(315576e5)\n};\n","import { h } from 'preact'\nimport ms from 'milliseconds'\nconst currentYear = new Date().getFullYear()\n\nconst getUpdatedText = updatedDate => {\n if (Date.now() - updatedDate < ms.weeks(2)) {\n const date = new Date(updatedDate)\n return `${date.getMonth() + 1}/${date.getDate()}/${(\n date.getFullYear() + ''\n ).slice(2)}`\n }\n}\n\nconst linkClasses = 'link f6 gray no-underline underline-hover'\n\nexport const Footer = ({\n privacyUrl = 'https://legal.anesthesiacharting.com/privacy',\n termsUrl = 'https://legal.anesthesiacharting.com/terms',\n version,\n privacyUpdatedDate,\n hideLinks,\n extra\n}) => {\n const updateText = privacyUpdatedDate && getUpdatedText(privacyUpdatedDate)\n return (\n <footer className=\"pt2 pb3 tc f6 gray mb7\">\n &copy; {currentYear} I.V. Enterprises LLC {version && `v${version}`}{' '}\n {!hideLinks && (\n <div className=\"mt1 no-print\">\n <a className={linkClasses} href={termsUrl} rel=\"noopener\">\n terms\n </a>\n {' | '}\n <a className={linkClasses} href={privacyUrl} rel=\"noopener\">\n privacy\n </a>\n {updateText && ` (updated ${updateText})`}\n </div>\n )}\n {extra}\n </footer>\n )\n}\n","export const throttle = (callback, delay) => {\n let timeout = null\n const fn = (...args) => {\n if (!timeout) {\n timeout = setTimeout(function () {\n callback(...args)\n clearTimeout(timeout)\n timeout = null\n }, delay)\n }\n }\n fn()\n return fn\n}\n","import { h } from 'preact'\nimport cn from 'classnames'\n\nconst classMap = {\n dev: 'bg-yellow black',\n stage: 'bg-green black'\n}\n\nconst fallback = 'bg-red white'\n\nexport default ({ env }) => {\n if (!env || env === 'prod') {\n return null\n }\n return (\n <div\n style={{\n right: '0px',\n top: '0px',\n padding: '4px',\n fontSize: '10px',\n borderBottomLeftRadius: '4px'\n }}\n className={cn(\n 'absolute z-999 br--bottom-left fw6',\n classMap[env] || fallback\n )}\n >\n {env.toUpperCase()}\n </div>\n )\n}\n","/** @jsx h */\nimport cn from 'classnames'\nimport { h, Component } from 'preact'\nimport { LogoDark, LogoTextOnly } from './logo'\nimport { Drawer } from './drawer'\nimport { Shield } from './shield'\nimport { Footer } from './footer'\nimport { TapIconButton } from './button'\nimport omit from './utils/omit'\nimport { throttle } from './utils/throttle'\nimport EnvTag from './env-tag'\n\nclass DrawerContentWrapper extends Component {\n constructor(props) {\n super(props)\n this.handleScroll = throttle(this.handleScroll.bind(this), 200)\n }\n\n handleScroll() {\n if (!this.base) {\n return\n }\n const { updateScrolledDown, scrolledDown } = this.props\n const { scrollTop } = this.base\n if (scrollTop === 0 && scrolledDown) {\n updateScrolledDown(false)\n }\n if (!scrolledDown && scrollTop > 0) {\n updateScrolledDown(true)\n }\n }\n\n componentDidMount() {\n this.base.addEventListener('scroll', this.handleScroll, { passive: true })\n }\n\n componentWillUnMount() {\n this.base.removeEventListener('scroll', this.handleScroll, {\n passive: true\n })\n }\n\n render({ style, children }) {\n return (\n <div className=\"v-scroll h-100 w-100\" style={style}>\n {children}\n </div>\n )\n }\n}\n\nexport class AppLayout extends Component {\n constructor(props) {\n super(props)\n this.state = {\n drawerScrolledDown: false\n }\n this.updateScrolledDown = this.updateScrolledDown.bind(this)\n }\n\n updateScrolledDown(scrolledDown) {\n this.setState({ drawerScrolledDown: scrolledDown })\n }\n\n render(props, { drawerScrolledDown }) {\n const {\n drawerOpen,\n screenIsWide,\n drawerEnabled,\n drawerContent,\n statusBarContent,\n extraContent,\n extraFooterContent,\n drawerWidth = 256,\n mainContent,\n doCloseDrawer,\n hideFooter,\n version,\n logoHref,\n logoOnClick,\n preventScroll,\n env\n } = props\n\n const rest = omit(props, [\n 'drawerOpen',\n 'screenIsWide',\n 'drawerEnabled',\n 'drawerContent',\n 'statusBarContent',\n 'extraContent',\n 'drawerWidth',\n 'mainContent',\n 'doCloseDrawer',\n 'hideFooter',\n 'version',\n 'logoHref',\n 'logoOnClick',\n 'preventScroll',\n 'extraFooterContent'\n ])\n\n const drawerAlwaysVisible = drawerEnabled && screenIsWide\n const useFloatingDrawer = drawerEnabled && !screenIsWide\n const showShield = useFloatingDrawer && drawerOpen\n const floatingDrawerHidden = useFloatingDrawer && !drawerOpen\n\n const leftMarginStyles = drawerAlwaysVisible\n ? {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: `${drawerWidth}px`\n }\n : {\n width: '100%'\n }\n\n if (showShield || preventScroll) {\n document.body.classList.add('overflow-hidden')\n } else {\n document.body.classList.remove('overflow-hidden')\n }\n\n const drawerHeaderHeightPx = (drawerAlwaysVisible ? 80 : 60) + 'px'\n\n const logoClasses = cn({ pointer: logoHref || logoOnClick })\n\n return (\n <div className=\"bg-near-white dark-blue sans-serif min-vh-100\" {...rest}>\n {statusBarContent && (\n <div\n className=\"sticky no-print top-0 bg-light-gray z-1 shadow-1\"\n style={leftMarginStyles}\n >\n {statusBarContent}\n </div>\n )}\n\n {drawerEnabled && (\n <Drawer\n aria-hidden={floatingDrawerHidden}\n className={useFloatingDrawer ? 'z-4 transition' : ''}\n style={{\n width: `${drawerWidth}px`,\n transform: floatingDrawerHidden\n ? `translateX(${-drawerWidth}px)`\n : null\n }}\n >\n <div\n className={cn(\n 'absolute left-0 bg-dark-blue z-1 top-0 pa2 pa3-l',\n { 'shadow-1': drawerScrolledDown }\n )}\n style={{\n width: `${drawerWidth}px`,\n height: drawerHeaderHeightPx\n }}\n >\n <EnvTag env={env} />\n {screenIsWide && (\n <a\n className={cn('db link white', logoClasses)}\n href={logoHref}\n onClick={logoOnClick}\n >\n <LogoDark />\n </a>\n )}\n {!screenIsWide && (\n <div className=\"flex items-center justify-between\">\n <TapIconButton\n icon=\"close\"\n color=\"white\"\n className=\"flex-shrink-0\"\n onClick={e => {\n e.preventDefault()\n doCloseDrawer()\n }}\n />\n <a\n className={logoClasses}\n href={logoHref}\n onClick={logoOnClick}\n >\n <LogoTextOnly\n className=\"mh3\"\n style={{ paddingTop: '6px', width: '168px' }}\n />\n </a>\n </div>\n )}\n </div>\n <DrawerContentWrapper\n scrolledDown={drawerScrolledDown}\n updateScrolledDown={this.updateScrolledDown}\n style={{\n paddingTop: drawerHeaderHeightPx,\n paddingBottom: '120px'\n }}\n >\n {drawerContent}\n </DrawerContentWrapper>\n </Drawer>\n )}\n {showShield && (\n <Shield\n className=\"z-3 dn-l\"\n onClick={() => doCloseDrawer && doCloseDrawer()}\n />\n )}\n <main\n style={leftMarginStyles}\n className=\"bg-nearly-white overflow-x-hidden\"\n >\n {mainContent}\n {hideFooter !== true && (\n <Footer version={version} extra={extraFooterContent} />\n )}\n </main>\n {extraContent}\n </div>\n )\n }\n}\n","// tryit\n// Simple, re-usuable try-catch, this is a performance optimization\n// and provides a cleaner API.\nmodule.exports = function (fn, cb) {\n var err;\n\n try {\n fn();\n } catch (e) {\n err = e;\n }\n\n if (cb) cb(err || null);\n};\n","import tryIt from 'tryit'\n\nexport const setLocalStorageItem = (item, value) =>\n tryIt(() => localStorage.setItem(item, value))\nexport const getLocalStorageItem = item => {\n let result\n tryIt(() => {\n result = localStorage.getItem(item)\n })\n return result\n}\nexport const deleteLocalStorageItem = item =>\n tryIt(() => delete localStorage[item])\nexport const clearLocalStorage = () =>\n tryIt(() => {\n const debug = localStorage.debug\n localStorage.clear()\n if (debug) {\n localStorage.debug = debug\n }\n })\n","export const writeCookie = (\n item,\n value,\n { maxAge, expires, secure = false, domain } = {}\n) => {\n const cookieData = {\n [item]: value,\n domain: domain || location.hostname,\n path: '/',\n secure\n }\n\n if (location.hostname === 'localhost') {\n cookieData.secure = false\n }\n\n if (maxAge) {\n cookieData['max-age'] = Math.floor(maxAge / 1000) // convert to seconds\n } else if (expires) {\n cookieData.expires = expires.toGMTString()\n }\n\n const cookieString = Object.keys(cookieData)\n .reduce((result, key) => {\n const value = cookieData[key]\n if (typeof value === 'boolean') {\n if (value === true) {\n result.push(key)\n }\n } else {\n result.push(`${key}=${value}`)\n }\n return result\n }, [])\n .join(';')\n\n document.cookie = cookieString\n}\n\nexport const readCookie = name => {\n let value = null\n document.cookie.split(';').find(item => {\n const parts = item.split('=')\n const key = parts[0].trim()\n if (key === name) {\n value = parts[1].trim()\n return true\n }\n })\n return value\n}\n\nexport const deleteCookie = (item, domain) =>\n writeCookie(item, '', { expires: new Date(0), domain })\n","import ms from 'milliseconds'\nimport { readCookie, writeCookie, deleteCookie } from './cookie'\nimport { getLocalStorageItem, deleteLocalStorageItem } from './ls'\n\nexport const createTokenWriter = ({ name = 'token', domain }) => {\n const writeToken = token => {\n writeCookie(name, token, { maxAge: ms.days(180), secure: true, domain })\n }\n\n const readToken = () => {\n const valueFromLS = getLocalStorageItem('token')\n const valueFromCookie = readCookie(name)\n if (valueFromLS && valueFromLS !== valueFromCookie) {\n writeToken(valueFromLS)\n deleteLocalStorageItem('token')\n }\n return valueFromCookie || valueFromLS\n }\n\n const clearToken = () => deleteCookie(name, domain)\n\n return {\n writeToken,\n readToken,\n clearToken\n }\n}\n","import { createTokenWriter } from '../utils/token-writer'\nimport { clearLocalStorage } from '../utils/ls'\n\nconst UPDATED = 'TOKEN_UPDATED'\nconst CLEARED = 'TOKEN_CLEARED'\n\nexport const createTokenBundle = opts => {\n const { readToken, writeToken, clearToken } = createTokenWriter(opts)\n return {\n name: 'token',\n getReducer: () => {\n const initial = {\n token: readToken()\n }\n return (state = initial, { type, payload }) => {\n if (type === UPDATED) {\n return Object.assign({}, state, { token: payload })\n }\n if (type === CLEARED) {\n return Object.assign({}, state, { token: null })\n }\n return state\n }\n },\n selectAuthToken: state => state.token.token,\n selectIsSignedIn: state => !!state.token.token,\n doReceiveToken: token => ({ dispatch }) => {\n writeToken(token)\n dispatch({ type: UPDATED, payload: token })\n },\n doClearToken: () => ({ dispatch }) => {\n clearToken()\n clearLocalStorage()\n dispatch({ type: CLEARED })\n }\n }\n}\n","const DRAWER_OPENED = 'DRAWER_OPENED'\nconst DRAWER_CLOSED = 'DRAWER_CLOSED'\n\nexport const layoutUiBundle = {\n name: 'layoutUi',\n reducer: (state = { drawerOpen: false, beeping: null }, { type }) => {\n if (type === DRAWER_OPENED) {\n return Object.assign({}, state, { drawerOpen: true })\n }\n if (type === DRAWER_CLOSED) {\n return Object.assign({}, state, { drawerOpen: false })\n }\n\n return state\n },\n selectDrawerIsOpen: state => state.layoutUi.drawerOpen,\n doOpenDrawer: () => ({ type: DRAWER_OPENED }),\n doCloseDrawer: () => ({ type: DRAWER_CLOSED })\n}\n","export const getNumberOfDecimals = num => {\n const postDecimalString = (num + '').split('.')[1]\n return postDecimalString ? postDecimalString.length : 0\n}\n\nexport const roundToDecimal = (number, precision) => {\n const factor = Math.pow(10, precision)\n return Math.round(number * factor) / factor\n}\n\nexport const roundToPrecision = (number, precision) => {\n const decimalString = roundToDecimal(number, precision).toString()\n const numberOfDigitsBeforePeriod = decimalString.split('.')[0].length\n const actualPrecision = Math.max(precision - numberOfDigitsBeforePeriod, 0)\n return roundToDecimal(number, actualPrecision)\n}\n\nexport const ensureDecimals = (number, targetDecimals = 0) => {\n const numberOfDecimals = getNumberOfDecimals(number)\n let numberToAdd = targetDecimals - numberOfDecimals\n if (!numberToAdd) {\n return number\n }\n let result = number + (numberOfDecimals === 0 ? '.' : '')\n\n while (numberToAdd--) {\n result += '0'\n }\n\n return result\n}\n\nconst floatInputRE = /[^0-9.]/g\nconst leadingZerosWithDecimalRE = /^0{2,}\\./g\nconst leadingZerosNoDecimalRE = /^0{1,}[1-9]/g\nconst periodRE = /\\./g\n\nexport const cleanDecimalInput = str => {\n let matches = 0\n return (\n str\n // removes invalid characters anywhere\n .replace(floatInputRE, '')\n // removes leading zeros if there's more than one before a decimal '00.123'\n .replace(leadingZerosWithDecimalRE, '0.')\n // removes leading zeros if there's no decimal\n .replace(leadingZerosNoDecimalRE, match => match.slice(-1))\n // removes all but first decimal\n .replace(periodRE, () => (matches++ > 0 ? '' : '.'))\n )\n}\n","import { h, Component } from 'preact'\nimport cn from 'classnames'\nimport { Icon, Button } from './'\nimport {\n getNumberOfDecimals,\n ensureDecimals,\n roundToDecimal\n} from './utils/decimals'\n\nconst HOLD_DELAY = 180\nconst ITERATION_DELAY = 90\n\nconst getPlusMinusButton = icon =>\n class extends Component {\n constructor(props) {\n super(props)\n this.runIt = this.runIt.bind(this)\n this.onClick = this.onClick.bind(this)\n this.onPress = this.onPress.bind(this)\n this.clear = this.clear.bind(this)\n this.holdStart = false\n }\n\n runIt() {\n const { onClick, disabled } = this.props\n if (onClick && !disabled) {\n onClick()\n }\n }\n\n componentDidMount() {\n if (this.base && this.base.addEventListener) {\n this.base.addEventListener('touchstart', this.onPress)\n this.base.addEventListener('touchend', this.clear)\n this.base.addEventListener('touchcancel', this.clear)\n }\n }\n\n componentWillUnmount() {\n if (this.base && this.base.removeEventListener) {\n this.base.removeEventListener('touchstart', this.onPress)\n this.base.removeEventListener('touchend', this.clear)\n this.base.removeEventListener('touchcancel', this.clear)\n }\n }\n\n onClick(e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n this.clear()\n this.runIt()\n }\n\n onPress() {\n const iterate = () => {\n clearTimeout(this.iterationTimer)\n let delay = this.props.iterationDelay || ITERATION_DELAY\n const holdDuration = Date.now() - this.holdStart\n if (holdDuration > 4000) {\n delay = delay * 0.4\n } else if (holdDuration > 2000) {\n delay = delay * 0.5\n }\n this.iterationTimer = setTimeout(() => {\n if (this.holdStart && !this.props.disabled) {\n this.runIt()\n iterate()\n }\n }, delay)\n }\n this.holdTimer = setTimeout(() => {\n this.holdStart = Date.now()\n iterate()\n }, this.props.holdDelay || HOLD_DELAY)\n }\n\n clear() {\n clearTimeout(this.holdTimer)\n clearTimeout(this.iterationTimer)\n this.holdStart = false\n }\n\n render() {\n const { className, disabled, name } = this.props\n\n return (\n <Button\n data-e2e={`${name || ''}${icon.charAt(0).toUpperCase()}${icon.slice(\n 1\n )}Button`}\n type=\"button\"\n onContextMenu={e => {\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }}\n onClick={this.onClick}\n onMouseUp={this.clear}\n onMouseLeave={this.clear}\n onMouseDown={this.onPress}\n disabled={disabled}\n className={cn('ba br2 pa2 mv1', { mr2: icon === 'add' }, className)}\n >\n <div className=\"flex items-center\">\n <Icon size=\"18\" icon={icon} />\n {this.props.children}\n </div>\n </Button>\n )\n }\n }\n\nexport const PlusButton = getPlusMinusButton('add')\nexport const MinusButton = getPlusMinusButton('remove')\n\nexport const IncrementorButtons = ({\n displayValue,\n updateValue,\n step = 1,\n max = Infinity,\n min = 0,\n className = '',\n width = '200px',\n showStep = true,\n unit = '',\n displayValueClasses = 'f4',\n value,\n startingValue,\n formatter,\n name,\n style\n}) => {\n const targetNumberOfDecimals = getNumberOfDecimals(step)\n let valueToShow = displayValue != null ? displayValue : value\n if (!valueToShow) {\n valueToShow =\n targetNumberOfDecimals === 0\n ? value\n : ensureDecimals(value, targetNumberOfDecimals)\n }\n\n if (formatter) {\n valueToShow = formatter(valueToShow)\n }\n\n let stepDown = step\n let stepUp = step\n\n const effectiveValue = value != null ? value : startingValue\n\n return (\n <div\n className={`flex items-center justify-between ${className}`}\n style={{ width, ...style }}\n >\n <div data-e2e={`${name}Value`} className={`dib ${displayValueClasses}`}>\n {valueToShow}\n {unit && ` ${unit}`}\n </div>\n <div>\n <PlusButton\n name={name}\n disabled={effectiveValue + stepUp > max}\n onClick={() =>\n updateValue(\n roundToDecimal(effectiveValue + stepUp, targetNumberOfDecimals)\n )\n }\n >\n {showStep ? step : null}\n </PlusButton>\n <MinusButton\n name={name}\n disabled={effectiveValue - stepDown < min}\n onClick={() =>\n updateValue(\n roundToDecimal(effectiveValue - stepDown, targetNumberOfDecimals)\n )\n }\n >\n {showStep ? step : null}\n </MinusButton>\n </div>\n </div>\n )\n}\n","import { h, Component } from 'preact'\n\nclass AnimatedPath extends Component {\n constructor(props) {\n super(props)\n this.state = {\n firstRender: true,\n length: 0\n }\n }\n\n componentDidMount() {\n setTimeout(() => {\n const length = Math.round(this.base.getTotalLength())\n this.setState({ length })\n setTimeout(() => {\n this.setState({ firstRender: false })\n }, 100)\n }, 100)\n }\n\n render({ path, animate }, { firstRender, length }) {\n if (!animate) {\n return <path d={path} fill=\"none\" stroke=\"black\" stroke-width=\"5\" />\n }\n\n return (\n <path\n key={length ? 'real' : 'fake'}\n d={path}\n fill=\"none\"\n stroke={length ? 'black' : 'none'}\n stroke-width=\"5\"\n style={{\n transitionDuration: '1s',\n transitionDelay: '.25s',\n transitionProperty: 'stroke-dashoffset',\n strokeDashoffset: firstRender ? length : 0,\n strokeDasharray: length\n }}\n />\n )\n }\n}\n\nexport default ({ path, width = '100', animate, ...rest }) => (\n <svg width={width} height={width / 2} viewBox=\"0 0 800 400\" {...rest}>\n <AnimatedPath key={path.slice(0, 10)} path={path} animate={animate} />\n </svg>\n)\n","import { h, Component } from 'preact'\nimport { Button } from './'\n\nconst height = 300\n\nclass SignatureInput extends Component {\n constructor(props) {\n super(props)\n this.mouseMove = this.mouseMove.bind(this)\n this.mouseEnd = this.mouseEnd.bind(this)\n this.mouseDown = this.mouseDown.bind(this)\n this.mouseUp = this.mouseUp.bind(this)\n this.mouseLeave = this.mouseLeave.bind(this)\n\n this.touchStart = this.touchStart.bind(this)\n this.touchMove = this.touchMove.bind(this)\n this.touchEnd = this.touchEnd.bind(this)\n\n this.calculateCanvasInfo = this.calculateCanvasInfo.bind(this)\n this.renderCanvas = this.renderCanvas.bind(this)\n }\n\n reset() {\n this.path = ''\n this.break = true\n }\n\n componentDidMount() {\n this.reset()\n this.canvas = this.base.querySelector('canvas')\n this.ctx = this.canvas.getContext('2d')\n\n window.addEventListener('resize', this.calculateCanvasInfo, {\n passive: true\n })\n window.addEventListener('scroll', this.calculateCanvasInfo, {\n passive: true\n })\n\n document.addEventListener('mouseup', this.mouseUp)\n document.addEventListener('touchmove', this.touchMove)\n document.addEventListener('touchend', this.touchEnd)\n document.addEventListener('touchcancel', this.touchEnd)\n\n this.canvas.addEventListener('touchstart', this.touchStart)\n\n this.calculateCanvasInfo()\n this.renderCanvas()\n }\n\n calculateCanvasInfo() {\n const { top, left, width, height } = this.canvas.getBoundingClientRect()\n\n this.canvasInfo = {\n left,\n top,\n height,\n width\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.calculateCanvasInfo, {\n passive: true\n })\n window.removeEventListener('scroll', this.calculateCanvasInfo, {\n passive: true\n })\n\n document.removeEventListener('mouseup', this.mouseUp)\n document.removeEventListener('touchmove', this.touchMove)\n document.removeEventListener('touchend', this.touchEnd)\n document.removeEventListener('touchcancel', this.touchEnd)\n\n this.canvas &&\n this.canvas.removeEventListener('touchstart', this.touchStart)\n }\n\n adjustCoord(clientX, clientY) {\n const { left, top, height, width } = this.canvasInfo\n const x = clientX - left\n const y = clientY - top\n\n if (x < 0 || x > width) {\n return null\n }\n if (y < 0 || y > height) {\n return null\n }\n return { x, y }\n }\n\n appendCoord(x, y) {\n this.path += ` ${x},${y}`\n requestAnimationFrame(this.renderCanvas)\n }\n\n mouseDown(e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n }\n\n mouseLeave(e) {\n if (e.buttons === 1) {\n this.appendCoord(e.layerX, e.layerY)\n this.break = true\n }\n }\n\n mouseUp() {\n this.break = true\n }\n\n mouseEnd(e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n this.break = true\n }\n\n mouseMove(e) {\n e.preventDefault()\n e.stopImmediatePropagation()\n if (e.buttons === 1) {\n if (this.break) {\n this.break = false\n this.path += ' M'\n }\n const adjusted = this.adjustCoord(e.clientX, e.clientY)\n if (adjusted) {\n this.appendCoord(adjusted.x, adjusted.y)\n } else {\n this.break = true\n }\n }\n }\n\n touchStart(e) {\n this.drawing = true\n this.path += ' M'\n // this prevents to \"M\"s next to each other if\n // there's a touch start without a touch move\n this.touchMove(e)\n e.preventDefault()\n }\n\n touchMove(e) {\n if (this.drawing) {\n const touch = e.touches[0]\n const isStylus = touch.touchType === 'stylus'\n const adjusted = this.adjustCoord(\n touch.clientX + (isStylus ? 0 : -20),\n touch.clientY + (isStylus ? 0 : -10)\n )\n\n if (adjusted) {\n this.appendCoord(adjusted.x, adjusted.y)\n } else {\n this.break = true\n }\n }\n }\n\n touchEnd() {\n this.break = true\n }\n\n renderCanvas() {\n const { ctx } = this\n const { width, height } = this.canvas\n\n ctx.clearRect(0, 0, width, height)\n\n const marginFromEdge = width * 0.1\n const marginFromBottom = 80\n\n // signature line\n ctx.beginPath()\n ctx.moveTo(marginFromEdge, height - marginFromBottom)\n ctx.lineTo(width - marginFromEdge, height - marginFromBottom)\n ctx.strokeStyle = '#ddd'\n ctx.lineWidth = 2\n ctx.stroke()\n\n ctx.strokeStyle = '#000'\n ctx.lineWidth = 1\n ctx.fillStyle = '#000'\n\n if (this.path) {\n ctx.stroke(new Path2D(this.path))\n }\n\n if (this.props.name) {\n ctx.font = '18px sans-serif'\n ctx.fillText(\n this.props.name,\n marginFromEdge,\n height - (marginFromBottom - 25)\n )\n }\n }\n\n shouldComponentUpdate() {\n return false\n }\n\n render({ updateValue, close }) {\n return (\n <div className=\"top-0 left-0 fixed bg-gray w-100 h-100 z-9999 flex items-center justify-center\">\n <div data-e2e=\"signatureBox\">\n <canvas\n data-e2e=\"signaturePad\"\n className=\"bg-white ba\"\n width={Math.min(window.innerWidth - 10, 660)}\n height={height}\n onMouseMove={this.mouseMove}\n onMouseDown={this.mouseDown}\n onMouseCancel={this.mouseCancel}\n onMouseLeave={this.mouseLeave}\n />\n <div className=\"flex items-center justify-between mt2\">\n <Button\n primary\n large\n data-e2e=\"signatureSaveButton\"\n onClick={() => {\n updateValue(this.path.trim())\n }}\n type=\"button\"\n >\n Save\n </Button>\n <div>\n <Button\n large\n onClick={() => {\n this.reset()\n this.renderCanvas()\n }}\n className=\"mr2\"\n type=\"button\"\n >\n Clear\n </Button>\n <Button\n large\n onClick={() => {\n this.reset()\n this.renderCanvas()\n close()\n }}\n data-e2e=\"cancelSignatureButton\"\n type=\"button\"\n >\n Cancel\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n }\n}\n\nexport default SignatureInput\n","export const choice = (name, val, qs) => {\n if (Array.isArray(val) && !qs) {\n qs = val\n val = name\n }\n const result = { name, val: typeof val !== 'undefined' ? val : name }\n if (qs) {\n result.questions = qs\n }\n return result\n}\n\nconst testComplete = value =>\n typeof value === 'string' ? !!value : value != null\n\nexport const decorateFormItem = (item, value) => {\n const { test, required, completenessTest } = item\n const isRequired = required !== false\n const errorMessage = test && test(value)\n const isComplete =\n !isRequired ||\n (!errorMessage &&\n (completenessTest ? completenessTest(value) : testComplete(value)))\n\n return { ...item, value, errorMessage, isComplete, isRequired }\n}\n","import { decorateFormItem } from './question'\n\nexport const textAppended = (existing, newPhrase) => {\n if (!existing) {\n return newPhrase\n }\n let cleaned = existing.trim()\n if (cleaned.slice(-1)[0] !== '.') {\n cleaned = cleaned + '.'\n }\n return `${cleaned} ${newPhrase}`\n}\n\nexport const withoutText = (existing = '', phraseToRemove) =>\n existing.replace(phraseToRemove, '').replace(' ', ' ').trim()\n\nconst getAsArray = (existing = '') =>\n existing\n .split(',')\n .map(item => item.trim())\n .filter(Boolean)\n\nexport const addCommaSeparatedItem = (existing, newItem) =>\n [...getAsArray(existing), newItem].join(', ')\n\nexport const removeCommaSeparatedItem = (existing, toRemove) =>\n getAsArray(existing)\n .filter(item => item !== toRemove)\n .join(', ')\n\nexport const getAutoPopulatedValue = suggestions => {\n const totalSuggestions = suggestions.length\n if (!totalSuggestions) {\n return ''\n }\n const firstSuggestionEntry = suggestions[0]\n const firstScore = firstSuggestionEntry.score\n\n if (firstScore < 3) {\n return ''\n }\n\n const secondScore = (suggestions[1] && suggestions[1].score) || 0\n const scoreDiff = firstScore - secondScore\n const confidenceValue = scoreDiff / (firstScore + secondScore)\n\n return confidenceValue > 0.7 ? firstSuggestionEntry.phrase : ''\n}\n\nexport const buildSuggestionList = (\n matchingSuggestion,\n value,\n autoSuggestType\n) =>\n matchingSuggestion && autoSuggestType\n ? matchingSuggestion.slice(0, 5).map(({ phrase }) => {\n let pressed\n\n if (autoSuggestType === 'single') {\n pressed = value && value.trim() === phrase\n } else {\n pressed = value && value.includes(phrase)\n }\n\n return {\n phrase,\n pressed\n }\n })\n : null\n\nexport const buildQuestionList = (config, data, suggestionsByField) => {\n const result = []\n const addQuestion = item => {\n const { suggestions, deleting } = suggestionsByField[item.name] || {}\n\n let value\n if (data.hasOwnProperty(item.name)) {\n value = data[item.name]\n } else if (item.autoSuggestType && suggestions) {\n value = getAutoPopulatedValue(suggestions)\n }\n\n const question = Object.assign({}, decorateFormItem(item, value), {\n value,\n suggestions: buildSuggestionList(\n suggestions,\n value,\n item.autoSuggestType\n ),\n suggestionsDeleting: !!deleting\n })\n result.push(question)\n if (question.choices) {\n question.choices.forEach(({ val, questions }) => {\n if (question.value === val && questions) {\n questions.forEach(addQuestion)\n }\n })\n }\n }\n config.forEach(addQuestion)\n return result\n}\n","import { h, Component } from 'preact'\nimport { Button } from './'\nimport cn from 'classnames'\nimport {\n textAppended,\n withoutText,\n removeCommaSeparatedItem,\n addCommaSeparatedItem\n} from './utils/smart-suggestion-utils'\nimport { Icon } from './'\n\nexport default class extends Component {\n constructor(props) {\n super(props)\n this.toggleExpand = this.toggleExpand.bind(this)\n this.state = {\n expanded: true\n }\n }\n\n toggleExpand() {\n this.setState({ expanded: !this.state.expanded })\n }\n\n render(\n {\n autoSuggestType,\n name,\n value,\n suggestions,\n suggestionsDeleting,\n updateValue,\n removeSuggestion\n },\n { expanded }\n ) {\n return (\n <div\n className=\"fw3 pa2 bg-near-white br2 shadow-inset\"\n data-e2e={`smartSuggestions:${name}`}\n >\n <div className=\"f6\">SmartSuggestions™</div>\n <div className={cn('overflow-y-scroll', { dn: !expanded })}>\n {suggestionsDeleting && (\n <div\n className=\"flex items-center pv2\"\n data-e2e=\"smartSuggestionsUpdating\"\n >\n <Icon icon=\"autorenew\" className=\"spin mr2\" size={16} />\n Updating...\n </div>\n )}\n {!suggestionsDeleting &&\n suggestions.map(suggestion => {\n const { pressed, phrase } = suggestion\n\n return (\n <label\n data-e2e=\"suggestionPhrase\"\n key={phrase}\n className={cn('flex items-center ph1 pv2', {\n fw6: pressed\n })}\n >\n <input\n onChange={e => {\n e.preventDefault()\n if (autoSuggestType === 'sentence') {\n updateValue(\n pressed\n ? withoutText(value, phrase)\n : textAppended(value, phrase)\n )\n } else if (autoSuggestType === 'multiple') {\n updateValue(\n pressed\n ? removeCommaSeparatedItem(value, phrase)\n : addCommaSeparatedItem(value, phrase)\n )\n } else if (autoSuggestType === 'single') {\n updateValue(pressed ? '' : phrase)\n }\n }}\n type=\"checkbox\"\n checked={suggestion.pressed}\n className=\"mr2 flex-shrink-0\"\n style={{ width: '15px', height: '15px' }}\n />\n <span className=\"lh-solid\">{suggestion.phrase}</span>\n <Button\n tiny\n className=\"flex ml2\"\n onClick={e => {\n e.preventDefault()\n e.stopImmediatePropagation()\n removeSuggestion(name, suggestion.phrase)\n }}\n type=\"button\"\n >\n <Icon icon=\"close\" size={12} />\n </Button>\n </label>\n )\n })}\n </div>\n </div>\n )\n }\n}\n","if (typeof window === 'undefined') {\n // eslint-disable-next-line\n global.window = global\n}\nconst navigator = (window && window.navigator) || {}\nconst ua = (navigator && navigator.ua) || ''\nexport const IS_IOS = /iPad|iPhone|iPod/.test(ua)\nexport const IS_CHROME =\n /Chrome/.test(ua) && /Google Inc/.test(navigator.vendor)\n","import { h, Component } from 'preact'\nimport cn from 'classnames'\nimport { IncrementorButtons } from './plus-minus'\nimport Signature from './signature'\nimport SignatureBox from './signature-box'\nimport { Button, Input, inputClasses, Textarea, Icon } from '.'\nimport SuggestionsBox from './suggestions-box'\nimport { IS_CHROME } from './utils/env'\nimport { cleanDecimalInput } from './utils/decimals'\nconst noOp = () => {}\n\nexport const Label = ({ item, updateValue, removeSuggestion }) => {\n const isRequired = item.required !== false\n\n return (\n <label className=\"db fw6 lh-copy f5 mb1\" htmlFor={item.name}>\n <div className=\"flex-shrink-0\">\n <div className=\"flex items-center\">\n {item.label}\n {isRequired && item.isComplete && (\n <Icon className=\"ml2 light-blue\" icon=\"check\" size=\"18\" />\n )}\n {isRequired && !item.isComplete && (\n <span className=\"fw3 red ml2\">(required)</span>\n )}\n {!isRequired && item.explicitOptional && (\n <span className=\"fw3 gray ml2\">(optional)</span>\n )}\n </div>\n {item.subLabel && (\n <div\n className={cn('fw3 f6', {\n orange: item.subLabelWarning,\n red: item.subLabelError\n })}\n >\n {item.subLabel instanceof Function\n ? item.subLabel(item)\n : item.subLabel}\n </div>\n )}\n </div>\n {item.buttons && (\n <div>\n {item.buttons.map(val => (\n <Button\n key={val}\n type=\"button\"\n data-e2e={`${item.name}InputButton:${val}`}\n className=\"mr2 ml0 mt2\"\n pressed={item.value === val}\n onClick={e => {\n e.preventDefault()\n updateValue(val)\n }}\n >\n {val}\n </Button>\n ))}\n </div>\n )}\n {item.suggestions && (\n <SuggestionsBox\n removeSuggestion={removeSuggestion}\n name={item.name}\n value={item.value}\n autoSuggestType={item.autoSuggestType}\n updateValue={updateValue}\n suggestions={item.suggestions}\n suggestionsDeleting={item.suggestionsDeleting}\n />\n )}\n </label>\n )\n}\n\nconst separator = ', '\nconst stringToArray = str => (str ? str.toString().split(separator) : [])\nconst arrayToString = arr => arr.filter(Boolean).join(separator)\n\nexport class SelectButtons extends Component {\n constructor(props) {\n super(props)\n this.state = { open: false }\n this.handleButtonPress = this.handleButtonPress.bind(this)\n this.handleOtherPress = this.handleOtherPress.bind(this)\n this.open = () => {\n if (!this.state.open) {\n this.setState({ open: true })\n }\n setTimeout(() => {\n this.base.querySelector('input').focus()\n }, 200)\n }\n this.close = () => this.setState({ open: false })\n\n this.choiceValues = props.item.choices.reduce((res, choice) => {\n res[choice.val] = true\n return res\n }, {})\n }\n\n handleButtonPress(val, isPressed) {\n const { item, allowDeselect, updateValue } = this.props\n const isMultiButton = item.type === 'multiButton'\n const { value } = item\n\n if (!isMultiButton) {\n this.close()\n if (isPressed && allowDeselect === false) {\n return\n }\n updateValue(isPressed ? null : val)\n } else {\n const values = stringToArray(value)\n const index = values.indexOf(val)\n if (index === -1) {\n values.push(val)\n } else {\n values.splice(index, 1)\n }\n this.UpdateValue(arrayToString(values))\n }\n }\n\n handleOtherPress(isPressed) {\n const { item, updateValue } = this.props\n const isMultiButton = item.type === 'multiButton'\n\n if (!isMultiButton) {\n if (isPressed) {\n this.close()\n updateValue(null)\n } else {\n this.open()\n updateValue('')\n }\n } else {\n const values = stringToArray(this.props.item.value)\n\n if (isPressed) {\n this.close()\n const unknownRemoved = values.reduce((res, val) => {\n if (this.choiceValues[val]) {\n res.push(val)\n }\n return res\n }, [])\n updateValue(arrayToString(unknownRemoved))\n } else {\n values.push('')\n updateValue(arrayToString(values))\n this.open()\n }\n }\n }\n\n getPressed(val) {\n const { value, type } = this.props.item\n const isMultiButton = type === 'multiButton'\n\n // if there are no unusual circumstances, we just want an exact match\n if (!isMultiButton) {\n return value === val\n }\n\n return value != null && value.toString().includes(val)\n }\n\n getOtherInputVisible() {\n return (\n // either its explicitly open\n this.state.open ||\n // or it contains something outside of known options\n // this is important for first load (since we may not have state yet)\n !stringToArray(this.props.item.value).every(val => this.choiceValues[val])\n )\n }\n\n render({ item, updateValue, ...rest }) {\n const showOtherInput = this.getOtherInputVisible()\n const { value } = item\n return (\n <div {...rest}>\n {item.label && <Label item={item} updateValue={updateValue} />}\n <div data-e2e={`${item.name}InputButtons`}>\n {item.choices.map(choice => {\n let { name, val } = choice\n const pressed = this.getPressed(val)\n return (\n <Button\n key={val}\n pressed={pressed}\n className=\"mr2 mv1 items-base\"\n data-e2e={`${item.name}InputButton:${val}`}\n data-state={pressed ? 'pressed' : 'unpressed'}\n type=\"button\"\n onClick={() => this.handleButtonPress(val, pressed)}\n >\n {name}\n </Button>\n )\n })}\n {item.showOther && (\n <Button\n key=\"other\"\n pressed={showOtherInput}\n data-state={showOtherInput ? 'pressed' : 'unpressed'}\n className=\"mr2 mv1 items-base\"\n type=\"button\"\n onClick={() => this.handleOtherPress(showOtherInput)}\n data-e2e={`${item.name}InputButton:other`}\n >\n Other\n </Button>\n )}\n {item.showOther && showOtherInput && (\n <Input\n className=\"mv1 w-100 border-box\"\n name={`${item.name}Other`}\n value={value}\n onInput={e => updateValue(e.target.value)}\n />\n )}\n </div>\n </div>\n )\n }\n}\n\nconst identity = res => res\n\nconst autoCompleteFallback = IS_CHROME ? 'new-password' : 'none'\n\nexport const InputField = ({\n item,\n updateValue,\n autocomplete = autoCompleteFallback,\n autofocus,\n className = '',\n inputClassName = 'w-100',\n removeSuggestion,\n ...rest\n}) => {\n const type = item.type || 'text'\n let clean = item.clean\n const { value, cleanRe } = item\n if (!clean && cleanRe) {\n clean = val => val.replace(cleanRe, '')\n }\n if (!clean) {\n clean = identity\n }\n const update = e => updateValue(clean(e.target.value))\n const hasError = !!item.errorMessage\n return (\n <div className={`w-100 ${className}`} {...rest}>\n {item.label && (\n <Label\n item={item}\n updateValue={updateValue}\n removeSuggestion={removeSuggestion}\n />\n )}\n <Input\n {...{\n className: cn(\n 'mv1',\n {\n 'bg-washed-red': hasError\n },\n inputClassName\n ),\n name: item.name,\n onChange: item.onInput ? noOp : update,\n onInput: item.onInput ? update : noOp,\n id: item.name,\n placeholder: item.placeholder,\n type,\n value,\n autocomplete,\n autofocus,\n inputmode: item.inputmode || null,\n 'data-e2e': `${item.name}Input`,\n 'data-has-error': hasError ? true : null,\n style: item.inputWidth ? { width: item.inputWidth } : null\n }}\n />\n </div>\n )\n}\n\nexport const DecimalInputField = ({ item, updateValue, ...rest }) => {\n const modifiedItem = {\n type: 'number',\n onInput: true,\n inputmode: 'decimal',\n clean: cleanDecimalInput,\n required: false,\n ...item\n }\n return <InputField updateValue={updateValue} item={modifiedItem} {...rest} />\n}\n\nexport const TextareaField = ({ item, updateValue, removeSuggestion }) => (\n <div className=\"mb2\">\n <Label\n item={item}\n updateValue={updateValue}\n removeSuggestion={removeSuggestion}\n />\n <Textarea\n {...{\n className: cn('w-100', item.size === 'large' ? 'h5' : 'h4'),\n name: item.name,\n onChange: item.onInput ? noOp : e => updateValue(e.target.value),\n onInput: item.onInput ? e => updateValue(e.target.value) : noOp,\n value: item.value,\n id: item.name,\n 'data-e2e': `${item.name}Input`\n }}\n />\n </div>\n)\n\nexport const IncrementButtonField = ({\n item,\n displayValue,\n updateValue,\n step = 1,\n max = Infinity,\n min = 0,\n width,\n unit = '',\n showStep = true,\n formatter,\n className\n}) => {\n const { name, value, fieldSpecificProps } = item\n\n const passOn = {\n formatter,\n width,\n updateValue,\n displayValue,\n step,\n showStep,\n max,\n min,\n unit,\n name,\n value: value != null ? value : fieldSpecificProps.startingValue,\n ...(fieldSpecificProps || {})\n }\n\n return (\n <div className={cn(className)}>\n <Label item={item} />\n <div>\n <IncrementorButtons {...passOn} />\n </div>\n </div>\n )\n}\n\nexport class SignatureField extends Component {\n constructor(props) {\n super(props)\n this.state = { editing: false }\n }\n render({ item, updateValue }, { editing }) {\n const { value } = item\n return (\n <div>\n {item.label && <Label item={item} />}\n <div>\n {!editing && value && (\n <Signature width=\"200\" path={value} className={inputClasses} />\n )}\n {!editing && (\n <Button\n type=\"button\"\n className=\"db mv2\"\n onClick={() => this.setState({ editing: true })}\n >\n {value ? 'Change' : 'Add Signature'}\n </Button>\n )}\n {editing && (\n <SignatureBox\n name={item.signatureLineName}\n close={() => this.setState({ editing: false })}\n updateValue={val => {\n updateValue(val)\n this.setState({ editing: false })\n }}\n />\n )}\n </div>\n </div>\n )\n }\n}\n","// copied and pasted in to make sure it becomes a local require\n// and gets compiled to es5 by microbundle/buble too\nclass Store {\n constructor(dbName = 'keyval-store', storeName = 'keyval') {\n this.storeName = storeName\n this._dbp = new Promise((resolve, reject) => {\n const openreq = indexedDB.open(dbName, 1)\n openreq.onerror = () => reject(openreq.error)\n openreq.onsuccess = () => resolve(openreq.result)\n // First time setup: create an empty object store\n openreq.onupgradeneeded = () => {\n openreq.result.createObjectStore(storeName)\n }\n })\n }\n _withIDBStore(type, callback) {\n return this._dbp.then(\n db =>\n new Promise((resolve, reject) => {\n const transaction = db.transaction(this.storeName, type)\n transaction.oncomplete = () => resolve()\n transaction.onabort = transaction.onerror = () =>\n reject(transaction.error)\n callback(transaction.objectStore(this.storeName))\n })\n )\n }\n}\nlet store\nfunction getDefaultStore() {\n if (!store) store = new Store()\n return store\n}\nfunction get(key, store = getDefaultStore()) {\n let req\n return store\n ._withIDBStore('readonly', store => {\n req = store.get(key)\n })\n .then(() => req.result)\n}\nfunction set(key, value, store = getDefaultStore()) {\n return store._withIDBStore('readwrite', store => {\n store.put(value, key)\n })\n}\nfunction del(key, store = getDefaultStore()) {\n return store._withIDBStore('readwrite', store => {\n store.delete(key)\n })\n}\nfunction clear(store = getDefaultStore()) {\n return store._withIDBStore('readwrite', store => {\n store.clear()\n })\n}\nfunction keys(store = getDefaultStore()) {\n const keys = []\n return store\n ._withIDBStore('readonly', store => {\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\n // And openKeyCursor isn't supported by Safari.\n ;(store.openKeyCursor || store.openCursor).call(\n store\n ).onsuccess = function() {\n if (!this.result) return\n keys.push(this.result.key)\n this.result.continue()\n }\n })\n .then(() => keys)\n}\n\nexport { Store, get, set, del, clear, keys }\n","import { getConfiguredCache } from 'money-clip'\n\nconst { set, get, getAll } = getConfiguredCache({\n maxAge: Infinity,\n version: 1,\n name: 'drug-name-cache'\n})\n\nconst drugData = {}\n\ngetAll().then(dbValues => {\n Object.assign(drugData, dbValues)\n})\n\nconst fetchDrug = id =>\n fetch(`https://rxnav.nlm.nih.gov/REST/rxcui/${id}.json`)\n .then(res => res.json())\n .then(drugData => drugData.idGroup.name)\n\nexport const getDrugName = id => {\n let found = drugData[id]\n if (found) {\n return Promise.resolve(found)\n }\n return get(id).then(res => {\n if (res) {\n drugData[id] = res\n return res\n }\n return fetchDrug(id).then(res => {\n if (res) {\n drugData[id] = res\n set(id, res)\n return res\n }\n })\n })\n}\n","import { getDrugName } from './drug-cache'\n\nexport const fetchDrugAutocomplete = term =>\n fetch(\n `https://rxnav.nlm.nih.gov/REST/approximateTerm.json?maxEntries=4&term=${encodeURIComponent(\n term\n )}`\n )\n .then(res => res.json())\n .then(parsed => {\n const resultsById = (parsed.approximateGroup.candidate || []).reduce(\n (result, item) => {\n const id = item.rxcui\n if (!result[id]) {\n result[id] = { id, score: item.score }\n }\n return result\n },\n {}\n )\n return Object.keys(resultsById)\n })\n .then(ids =>\n Promise.all(ids.map(getDrugName))\n .then(names => names.map((name, index) => ({ id: ids[index], name })))\n .then(matches => matches.filter(item => !!item.name))\n )\n","import { h } from 'preact'\nimport { Icon } from './'\n\nexport default ({ status, term }) => {\n if (status === 'noResults') {\n return (\n <span className=\"flex items-center mv1\">\n <Icon className=\"f3 mr2\" size=\"18\" icon=\"warning\" />\n <span>No results for \"{term}\"</span>\n </span>\n )\n }\n if (status === 'searching') {\n return (\n <span className=\"flex items-center mv1\">\n <Icon className=\"f3 spin-animation mr2\" size=\"18\" icon=\"autorenew\" />\n <span>Searching</span>\n </span>\n )\n }\n if (status === 'ready') {\n return (\n <span className=\"flex items-center mv1\">\n <Icon className=\"f3 mr2\" size=\"18\" icon=\"info\" />\n <span>Suggestions will appear here</span>\n </span>\n )\n }\n return null\n}\n","import { h, Component, Fragment } from 'preact'\nimport cn from 'classnames'\nimport tryIt from 'tryit'\nimport { fetchDrugAutocomplete } from './utils/fetch-drug-autocomplete'\nimport { Label } from './form-fields'\nimport { Input, Button, Icon } from './'\nimport DrugLookupUI from './drug-lookup-ui'\n\nclass MedicationInput extends Component {\n constructor(props) {\n super(props)\n this.state = {\n term: '',\n loading: false\n }\n }\n\n componentDidMount() {\n setTimeout(() => {\n tryIt(() => {\n this.base.querySelector('input').focus()\n })\n }, 100)\n }\n\n componentDidUpdate(prevProps, prevState) {\n const term = this.state.term\n if (term && term !== prevState.term) {\n this.setState({ loading: true })\n fetchDrugAutocomplete(term).then(results => {\n if (term === this.state.term) {\n const toSet = { [`term_${term}`]: results, loading: false }\n this.setState(toSet)\n }\n })\n }\n }\n\n drugSelected(drug) {\n const { updateValue } = this.props\n updateValue(drug)\n this.setState({ term: '', [`term_${this.state.term}`]: undefined })\n }\n\n focusOnInput() {\n this.base.querySelector('input').focus()\n }\n\n render(\n { item, updateValue, className, resultsClassName },\n { term, loading }\n ) {\n const optsForTerm = this.state[`term_${term}`]\n const hasOptsForTerm = optsForTerm && optsForTerm.length > 0\n const noResults = !loading && term && !hasOptsForTerm\n const isEmpty = !term && !loading\n\n const showMessage = noResults || isEmpty || loading\n const showResults = hasOptsForTerm && !showMessage\n\n let drugLookupStatus\n\n if (noResults) {\n drugLookupStatus = 'noResults'\n } else if (isEmpty) {\n drugLookupStatus = 'ready'\n } else if (loading) {\n drugLookupStatus = 'searching'\n }\n\n const drugName = item.value && item.value.name\n\n return (\n <div className={className}>\n <Label item={item} updateValue={updateValue} />\n {!drugName && (\n <Fragment>\n <Input\n className=\"w-100 border-box mv1\"\n value={term}\n data-e2e={`${item.name}Input`}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.preventDefault()\n if (optsForTerm && optsForTerm.length > 0) {\n this.drugSelected(optsForTerm[0])\n }\n }\n }}\n onInput={e => {\n const term = e.target.value || ''\n this.setState({ term })\n }}\n />\n {showResults && (\n <div key=\"opts\" className={cn(resultsClassName)}>\n {optsForTerm.map(drug => (\n <Button\n key={drug.name}\n className=\"mr2 mv1\"\n type=\"button\"\n data-e2e={`${item.name}SuggestionButton`}\n onClick={e => {\n e.preventDefault()\n this.drugSelected(drug)\n }}\n >\n {drug.name}\n </Button>\n ))}\n </div>\n )}\n <div>\n <DrugLookupUI term={term} status={drugLookupStatus} />\n </div>\n </Fragment>\n )}\n {drugName && (\n <div>\n {drugName}{' '}\n <Button\n className=\"mr2 mb2\"\n type=\"button\"\n tiny\n stop\n data-e2e=\"drugRemoveButton\"\n onClick={e => {\n e.preventDefault()\n updateValue('')\n setTimeout(() => this.focusOnInput(), 200)\n }}\n >\n <span className=\"flex items-center\">\n <Icon className=\"mr2\" icon=\"delete\" size=\"16\" />\n <span className=\"mr1\">remove</span>\n </span>\n </Button>\n </div>\n )}\n </div>\n )\n }\n}\n\nexport default MedicationInput\n","import { h, Component } from 'preact'\nimport { fetchDrugAutocomplete } from './utils/fetch-drug-autocomplete'\nimport { Label } from './form-fields'\nimport { Input, Button, Icon } from './'\nimport DrugLookupUI from './drug-lookup-ui'\n\nclass MedicationEntryField extends Component {\n constructor(props) {\n super(props)\n this.focusOnInput = this.focusOnInput.bind(this)\n this.originalState = {\n term: '',\n loading: false\n }\n this.state = Object.assign({}, this.originalState)\n }\n\n componentDidUpdate(prevProps, prevState) {\n const term = this.state.term\n if (term !== prevState.term && term) {\n this.setState({ loading: true })\n fetchDrugAutocomplete(term).then(results => {\n this.setState({ [`term_${term}`]: results, loading: false })\n })\n }\n }\n\n focusOnInput() {\n const input = this.base && this.base.querySelector('input')\n if (input) {\n input.focus()\n }\n }\n\n addDrug(drug) {\n const { item, updateValue } = this.props\n const { value } = item\n const valueIsEmptyArray = typeof value === 'string'\n const drugs = value && !valueIsEmptyArray ? value : []\n const copy = drugs.slice()\n copy.push(drug)\n updateValue(copy)\n this.setState({ term: '', [`term_${this.state.term}`]: undefined })\n }\n\n render() {\n const { item, updateValue } = this.props\n const { loading } = this.state\n const { value } = item\n const { term } = this.state\n const optsForTerm = this.state[`term_${term}`]\n const valueIsEmptyArray = Array.isArray(value) && !value.length\n const itemCopy = Object.assign({}, item)\n delete itemCopy.subLabel\n const modifiedItemForLabel = value ? { ...item, buttons: null } : item\n\n let drugLookupStatus\n\n if (term && optsForTerm && !optsForTerm.length) {\n drugLookupStatus = 'noResults'\n } else if (\n !term &&\n (!optsForTerm || optsForTerm.length === 0) &&\n !value.length\n ) {\n drugLookupStatus = 'ready'\n } else if (loading) {\n drugLookupStatus = 'searching'\n }\n return (\n <div>\n <div>\n <Label\n item={modifiedItemForLabel}\n updateValue={val => {\n if (val === 'none') {\n updateValue([])\n }\n }}\n />\n {!valueIsEmptyArray && (\n <Input\n style={{ width: 'calc(100% - 18px)' }}\n value={term}\n data-e2e={`${item.name}Input`}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.preventDefault()\n if (optsForTerm && optsForTerm.length > 0) {\n this.addDrug(optsForTerm[0])\n }\n }\n }}\n onInput={e => {\n const term = e.target.value || ''\n this.setState({ term })\n }}\n />\n )}\n </div>\n\n {optsForTerm && optsForTerm.length > 0 && (\n <div key=\"opts\" className=\"overflow-x-scroll nowrap pv2\">\n {optsForTerm.map(drug => (\n <Button\n key={drug.name}\n className=\"mr2\"\n type=\"button\"\n data-e2e={`${item.name}SuggestionButton`}\n onClick={e => {\n e.preventDefault()\n this.addDrug(drug)\n this.focusOnInput()\n }}\n >\n {drug.name}\n </Button>\n ))}\n </div>\n )}\n\n <DrugLookupUI term={term} status={drugLookupStatus} />\n\n <div className=\"mb2\">\n {valueIsEmptyArray && (\n <Button\n type=\"button\"\n className=\"mb2\"\n onClick={e => {\n e.preventDefault()\n updateValue(null)\n }}\n >\n <span className=\"flex items-center\">\n none <Icon className=\"ml2\" icon=\"close\" size=\"24\" />\n </span>\n </Button>\n )}\n {value && !valueIsEmptyArray && value.length !== 0 && (\n <div>\n <div className=\"mb2 fw3 f6 pt2\">Chosen Medications:</div>\n {value.map(drug => (\n <div key={drug.name}>\n {drug.name}{' '}\n <Button\n className=\"mr2 mb2\"\n type=\"button\"\n tiny\n stop\n data-e2e=\"drugRemoveButton\"\n onClick={e => {\n e.preventDefault()\n const newVal = value.filter(item => item.id !== drug.id)\n updateValue(newVal)\n }}\n >\n <span className=\"flex items-center\">\n <Icon className=\"mr2\" icon=\"delete\" size=\"16\" />\n <span className=\"mr1\">remove</span>\n </span>\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n }\n}\n\nexport default MedicationEntryField\n","import { h } from 'preact'\nimport {\n SelectButtons,\n TextareaField,\n InputField,\n SignatureField,\n IncrementButtonField\n} from './form-fields'\nimport MedicationInput from './medication-field'\nimport MultiMedicationEntryField from './multi-medication-entry-field'\n\nconst fieldMap = {\n choices: SelectButtons,\n longText: TextareaField,\n medications: MultiMedicationEntryField,\n medication: MedicationInput,\n signature: SignatureField,\n incrementor: IncrementButtonField\n}\n\nexport const Question = ({ item, updateValue, removeSuggestion }) => {\n if (item.hidden) {\n return null\n }\n\n const MatchedComponent = fieldMap[item.type] || InputField\n const props = {\n item,\n updateValue,\n removeSuggestion,\n ...(item.fieldSpecificProps || {})\n }\n\n return <MatchedComponent {...props} />\n}\n","import { h } from 'preact'\nimport { Question } from './question'\n\nexport default ({\n bottom,\n fields,\n onSubmit,\n updateValue,\n removeSuggestion,\n ...rest\n}) => (\n <form\n onSubmit={e => {\n e.preventDefault()\n onSubmit()\n }}\n {...rest}\n >\n {fields.map(item => (\n <Question\n key={item.name}\n item={item}\n updateValue={val => {\n let updateObj = { [item.name]: val }\n if (item.getUpdates) {\n updateObj = item.getUpdates(val)\n }\n updateValue(updateObj)\n }}\n removeSuggestion={removeSuggestion}\n />\n ))}\n {bottom}\n </form>\n)\n","export * from './button'\nexport * from './logo'\nexport * from './crate'\nexport * from './full-screen-overlay'\nexport * from './inputs'\nexport * from './icon'\nexport * from './drug-box'\nexport * from './links'\nexport * from './check-mark'\nexport * from './transition-in'\nexport * from './drawer'\nexport * from './dialog'\nexport * from './app-layout'\nexport * from './shield'\nexport * from './portal'\nexport { default as getStyledComponent } from './utils/get-styled-component'\nexport { default as omit } from './utils/omit'\nexport * from './utils/ls'\nexport * from './utils/cookie'\nexport * from './utils/token-writer'\nexport * from './utils/throttle'\nexport * from './bundles/token'\nexport * from './footer'\nexport * from './bundles/layout-ui'\nexport * from './question'\nexport { default as Form } from './form'\nexport * from './form-fields'\n","export const colors = {\n black: '#000',\n 'near-black': '#111',\n 'dark-gray': '#333',\n 'mid-gray': '#5b7385',\n gray: '#a1afba',\n silver: '#999',\n 'light-silver': '#aaa',\n 'moon-gray': '#ccc',\n 'light-gray': '#d0d7dc',\n 'near-white': '#dbe1e5',\n white: '#fff',\n 'black-90': 'rgba(0, 0, 0, 0.9)',\n 'black-80': 'rgba(0, 0, 0, 0.8)',\n 'black-70': 'rgba(0, 0, 0, 0.7)',\n 'black-60': 'rgba(0, 0, 0, 0.6)',\n 'black-50': 'rgba(0, 0, 0, 0.5)',\n 'black-40': 'rgba(0, 0, 0, 0.4)',\n 'black-30': 'rgba(0, 0, 0, 0.3)',\n 'black-20': 'rgba(0, 0, 0, 0.2)',\n 'black-10': 'rgba(0, 0, 0, 0.1)',\n 'black-05': 'rgba(0, 0, 0, 0.05)',\n 'black-025': 'rgba(0, 0, 0, 0.025)',\n 'black-0125': 'rgba(0, 0, 0, 0.0125)',\n 'white-90': 'rgba(255, 255, 255, 0.9)',\n 'white-80': 'rgba(255, 255, 255, 0.8)',\n 'white-70': 'rgba(255, 255, 255, 0.7)',\n 'white-60': 'rgba(255, 255, 255, 0.6)',\n 'white-50': 'rgba(255, 255, 255, 0.5)',\n 'white-40': 'rgba(255, 255, 255, 0.4)',\n 'white-30': 'rgba(255, 255, 255, 0.3)',\n 'white-20': 'rgba(255, 255, 255, 0.2)',\n 'white-10': 'rgba(255, 255, 255, 0.1)',\n 'white-05': 'rgba(255, 255, 255, 0.05)',\n 'white-025': 'rgba(255, 255, 255, 0.025)',\n 'white-0125': 'rgba(255, 255, 255, 0.0125)',\n 'dark-red': '#e7040f',\n red: '#ff0000',\n 'light-red': '#ff725c',\n orange: '#ff6300',\n gold: '#ffb700',\n yellow: '#ffd700',\n 'light-yellow': '#fbf1a9',\n purple: '#5e2ca5',\n 'light-purple': '#a463f2',\n 'dark-pink': '#d5008f',\n 'hot-pink': '#ff41b4',\n pink: '#ff80cc',\n 'light-pink': '#ffa3d7',\n 'dark-green': '#19a974',\n green: '#0fdd83',\n 'light-green': '#9eebcf',\n navy: '#357edd',\n 'dark-blue': '#133651',\n blue: '#1f566f',\n 'light-blue': '#53d6e4',\n 'lightest-blue': '#bcebf1',\n 'washed-blue': '#f6fffe',\n 'washed-green': '#e8fdf5',\n 'washed-yellow': '#fffceb',\n 'washed-red': '#ffdfdf'\n}\n","import { h } from 'preact'\nimport { PageCrate } from '../crate'\n\nexport default ({ title, children }) => (\n <PageCrate wide title={title}>\n {children}\n </PageCrate>\n)\n","import { h } from 'preact'\n\nexport default ({ name, code, children }) => (\n <div className=\"bg-white pv3 br3 mt3\">\n <h3 className=\"mt0\">{name}</h3>\n <div className=\"fw6 mv2\">Code:</div>\n <code className=\"light-blue dib bg-black-90 pa2 br2 overflow-x-auto w-100\">\n <pre className=\"ma0 f6\">{code}</pre>\n </code>\n <div className=\"fw6 mv2\">Output:</div>\n <div>{children}</div>\n </div>\n)\n","export default definition => {\n const result = []\n\n const addDimension = (category, options) => {\n const values = ['default', ...options]\n if (!result.length) {\n result.push(...values.map(value => ({ [category]: value })))\n return\n }\n\n values.forEach((value, i) => {\n if (i === 0) {\n result.forEach(item => {\n item[category] = value\n })\n } else {\n const copy = JSON.parse(JSON.stringify(result))\n copy.forEach(item => {\n item[category] = value\n })\n result.push(...copy)\n }\n })\n }\n\n Object.keys(definition).forEach(key => {\n addDimension(key, definition[key])\n })\n\n // remove defaults\n const propVariants = result.map(item => {\n const props = {}\n Object.keys(item).forEach(key => {\n const value = item[key]\n if (value !== 'default') {\n props[value] = true\n }\n })\n return props\n })\n\n const results = {}\n\n propVariants.forEach(props => {\n results[Object.keys(props).sort().join(',')] = true\n })\n\n const deduped = Object.keys(results).map(key => key.split(','))\n\n return deduped.map(propArray => {\n return propArray.reduce((result, item) => {\n if (item) {\n result[item] = true\n }\n return result\n }, {})\n })\n}\n","import { h } from 'preact'\nimport ComponentCode from './component-code'\nimport getPropVariants from '../utils/get-prop-variants'\n\nconst serializeProps = props => {\n if (!props) {\n return ''\n }\n return Object.keys(props).reduce((buffer, prop) => {\n const value = props[prop]\n return `${buffer} ${prop}${value === true ? '' : `=\"${value}\"`}`\n }, '')\n}\n\nconst componentString = (name, props, content) =>\n `<${name}${serializeProps(props)}${content ? `>${content}</${name}` : ` />`}`\n\nexport default ({ Component, children, name }) => {\n const { options = {} } = Component.definition\n const variants = getPropVariants(options)\n\n const code = variants.reduce(\n (buff, props) => buff + componentString(name, props, children) + '\\n',\n ''\n )\n\n return (\n <ComponentCode name={name} code={code}>\n {variants.map(props => (\n <Component\n key={name}\n title={componentString(name, props, children)}\n {...Object.assign({}, props, { children })}\n className=\"mr2 mb2\"\n />\n ))}\n </ComponentCode>\n )\n}\n","import { h, Component } from 'preact'\nimport Section from './section'\nimport ComponentCode from './component-code'\nimport { Dialog } from './../dialog'\nimport { Button } from '../button'\n\nclass Container extends Component {\n constructor(props) {\n super(props)\n this.state = {\n open: false\n }\n this.open = () => this.setState({ open: true })\n this.close = () => this.setState({ open: false })\n }\n\n render(props, { open }) {\n return (\n <Section title=\"Dialog\">\n <ComponentCode\n name=\"Dialog\"\n code={`<Dialog doClose={this.close} title=\"A Dialog\">\n Hello there\n</Dialog>`}\n >\n <Button onClick={this.open}>Open</Button>\n {open && (\n <Dialog\n doClose={this.close}\n title=\"A Dialog with a really, really, ridiculously long title\"\n bottom={\n <div>\n <Button onClick={this.close}>Done</Button>\n </div>\n }\n >\n Hello there\n <p>long thing</p>\n <p>long thing</p>\n <Button>Some button</Button>\n </Dialog>\n )}\n </ComponentCode>\n </Section>\n )\n }\n}\n\nexport default Container\n","import { h, Component } from 'preact'\nimport { DrugBox, FlipContainer } from '../'\nimport Section from './section'\nimport ComponentCode from './component-code'\n\nexport class DrugBoxSection extends Component {\n constructor(props) {\n super(props)\n this.state = {\n flipped: false\n }\n }\n\n render(_, { flipped }) {\n return (\n <Section title=\"DrugBox\">\n <ComponentCode\n name=\"DrugBox FlipContainer\"\n code={`<FlipContainer\n direction=\"horizontal\"\n perspective=\"2000px\"\n front={\n <DrugBox style={{ width: '200px' }}>\n <div>\n <p>Hi front</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </div>\n </DrugBox>\n }\n back={\n <DrugBox style={{ width: '200px', height: '100%' }}>\n <p>Hi back</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </DrugBox>\n }\n width=\"200px\"\n flipped={flipped}\n/>`}\n >\n <button onClick={() => this.setState({ flipped: !flipped })}>\n flip\n </button>\n <div className=\"flex items-center justify-between\">\n <FlipContainer\n data-e2e=\"flipcontainer\"\n className=\"bg-blue\"\n direction=\"horizontal\"\n perspective=\"2000px\"\n front={\n <DrugBox>\n <div>\n <p>Hi front</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </div>\n </DrugBox>\n }\n back={\n <DrugBox style={{ height: '100%' }}>\n <p>Hi back</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </DrugBox>\n }\n width=\"calc(50% - 8px)\"\n flipped={flipped}\n />\n <FlipContainer\n direction=\"horizontal\"\n perspective=\"2000px\"\n front={\n <DrugBox>\n <div>\n <p>Hi front</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </div>\n </DrugBox>\n }\n back={\n <DrugBox style={{ height: '100%' }}>\n <p>Hi back</p>\n <p>Stuff</p>\n <p>Stuff</p>\n <p>Stuff</p>\n </DrugBox>\n }\n width=\"calc(50% - 8px)\"\n flipped={flipped}\n />\n </div>\n </ComponentCode>\n </Section>\n )\n }\n}\n","import { h, Component } from 'preact'\nimport { Form } from '../'\nimport Section from './section'\nimport ComponentCode from './component-code'\nimport { choice } from '../utils/question'\nimport { buildQuestionList } from '../utils/smart-suggestion-utils'\nimport { Button } from '../button'\n\nconst fields = [\n {\n name: 'text',\n label: 'This is the \"label\"',\n subLabel: 'this is the subLabel',\n onInput: true\n },\n {\n name: 'textWithSuggestions',\n label: 'This one has smart suggestions',\n subLabel: 'this is the subLabel',\n autoSuggestType: 'single',\n onInput: true\n },\n {\n name: 'medications',\n label: 'Multi-medication',\n type: 'medications'\n },\n {\n name: 'medication',\n label: 'Single Medication',\n type: 'medication'\n },\n {\n name: 'signature',\n label: 'Signature',\n type: 'signature',\n signatureLineName: 'Someone'\n },\n {\n label: 'Incrementor Field',\n name: 'incrementor',\n type: 'incrementor',\n fieldSpecificProps: {\n showStep: false,\n width: '140px',\n min: -5,\n max: 5\n },\n test: val => (val < 1 ? 'value has to be more than zero' : '')\n },\n {\n label: 'Secured By',\n name: 'securedWith',\n type: 'choices',\n choices: [choice('Tape'), choice('Tegaderm')],\n showOther: true\n }\n]\n\nexport class FormsSection extends Component {\n constructor(props) {\n super(props)\n this.state = {\n incrementor: 0\n }\n fields.forEach(field => {\n if (!this.state.hasOwnProperty(field.name)) {\n this.state[field.name] = ''\n }\n })\n }\n\n updateValue(updates) {\n this.setState(updates, () => {})\n }\n\n render(_, state) {\n const processedFields = buildQuestionList(fields, this.state, {\n textWithSuggestions: {\n suggestions: [\n {\n score: 2,\n phrase: 'Jsjsj'\n }\n ],\n deleting: false\n }\n })\n return (\n <Section title=\"Forms\">\n <ComponentCode\n name=\"Form\"\n code={`<Form\n autocomplete=\"off\"\n onSubmit={() => {\n !state.missingItems && alert('finished')\n }}\n updateValue={updates => this.updateValue(updates)}\n removeSuggestion={(fieldName, suggestion) =>\n alert(\\`removeSuggestion(\"\\${fieldName}\", \"\\${suggestion}\")\\`)\n }\n fields={processedFields}\n bottom={\n <div>\n <Button>Submit</Button>\n </div>\n }\n/>`}\n >\n <Form\n autocomplete=\"off\"\n onSubmit={() => {\n alert('submit called')\n }}\n updateValue={updates => this.updateValue(updates)}\n removeSuggestion={(fieldName, suggestion) =>\n alert(`removeSuggestion(\"${fieldName}\", \"${suggestion}\")`)\n }\n fields={processedFields}\n bottom={\n <div className=\"mv3\">\n <Button primary large type=\"submit\">\n Submit\n </Button>\n </div>\n }\n />\n\n <div className=\"f7\">\n Form Definition:\n <pre>\n <code className=\"f7\">\n {JSON.stringify(processedFields, null, 2)}\n </code>\n </pre>\n Form state:\n <pre>\n <code className=\"f7\">{JSON.stringify(state, null, 2)}</code>\n </pre>\n </div>\n </ComponentCode>\n </Section>\n )\n }\n}\n","import { h } from 'preact'\nimport {\n Link,\n SupportLink,\n Button,\n LogoDark,\n LogoLight,\n Input,\n Select,\n Textarea,\n TooltipButton,\n Icon,\n MessagePageCrate\n} from '../'\nimport { colors } from '../colors'\nimport Section from './section'\nimport ComponentCode from './component-code'\nimport Introspect from './introspect'\nimport { CheckMark } from '../check-mark'\n\nexport const ColorSection = () => (\n <Section title=\"Colors\">\n <div className=\"flex flex-wrap items-center\">\n {Object.keys(colors).map(name => (\n <div key={name} className=\"mb2 mr2\">\n <div className={`ba b--light-gray mb1 w4 h2 bg-${name}`}></div>\n <div className=\"f7\">{name}</div>\n </div>\n ))}\n </div>\n </Section>\n)\n\nexport const ButtonSection = () => (\n <Section title=\"Buttons\">\n <Introspect Component={Button} name=\"Button\" children=\"Button\" />\n </Section>\n)\n\nexport const LinkSection = () => (\n <Section title=\"Links\">\n <ComponentCode name=\"Link\" code={`<Link href='something'>hi</Link>`}>\n <Link href=\"something\">Some text</Link>\n </ComponentCode>\n <ComponentCode name=\"SupportLink\" code={`<SupportLink />`}>\n <SupportLink />\n </ComponentCode>\n </Section>\n)\n\nexport const LogoSection = () => (\n <Section title=\"Logos\">\n <ComponentCode name=\"LogoLight\" code={`<LogoLight className=\"w5\" />`}>\n <LogoLight className=\"w5\" />\n </ComponentCode>\n <ComponentCode\n name=\"LogoDark\"\n code={`<div className=\"bg-dark-blue pa3 w5\">\n <LogoDark />\n</div>`}\n >\n <div className=\"bg-dark-blue pa3 w5\">\n <LogoDark />\n </div>\n </ComponentCode>\n </Section>\n)\n\nexport const InputSection = () => (\n <Section title=\"Inputs\">\n <ComponentCode name=\"Input\" code={`<Input />`}>\n <Input />\n </ComponentCode>\n <ComponentCode\n name=\"Select\"\n code={`<Select>\n <option>option 1</option>\n <option>option 2</option>\n</Select>`}\n >\n <Select>\n <option>option 1</option>\n <option>option 2</option>\n </Select>\n </ComponentCode>\n <ComponentCode name=\"Textarea\" code={`<Textarea />`}>\n <Textarea />\n </ComponentCode>\n <ComponentCode name=\"TooltipButton\" code={`<TooltipButton />`}>\n <TooltipButton text=\"some content\">Stuff goes here</TooltipButton>\n </ComponentCode>\n <ComponentCode name=\"CheckMark\" code={`<CheckMark />`}>\n <CheckMark name=\"name\" label=\"something\" />\n </ComponentCode>\n </Section>\n)\n\nexport const IconSection = () => (\n <Section title=\"Icons\">\n <ComponentCode\n name=\"Icon\"\n code={`<Icon icon=\"pill\" />\n<Icon icon=\"close\" />`}\n >\n <Icon icon=\"pill\" />\n <Icon icon=\"close\" />\n </ComponentCode>\n </Section>\n)\n\nexport const MessagePageCrateSection = () => (\n <Section title=\"Message Page Crate\">\n <ComponentCode\n name=\"MessagePageCrate\"\n code={`<MessagePageCrate loading>Loading</MessagePageCrate>\n<MessagePageCrate warning>Uh oh!</MessagePageCrate>\n<MessagePageCrate error>Aw Crap!</MessagePageCrate>`}\n >\n <MessagePageCrate>Hello there!</MessagePageCrate>\n <MessagePageCrate noShadow wide loading>\n Loading\n </MessagePageCrate>\n <MessagePageCrate warning wide>\n Uh oh!\n </MessagePageCrate>\n <MessagePageCrate error>Aw Crap!</MessagePageCrate>\n <MessagePageCrate success>Success!</MessagePageCrate>\n </ComponentCode>\n </Section>\n)\n\nexport { default as DialogSection } from './dialog-section'\n\nexport { DrugBoxSection } from './drugbox-section'\n\nexport * from './form-section'\n","module.exports = {\n \"name\": \"ac-patterns\",\n \"version\": \"2.2.7\",\n \"author\": \"Henrik Joreteg <henrik@joreteg.com> (joreteg.com)\",\n \"browserslist\": [\n \"defaults\",\n \"safari 11\"\n ],\n \"dependencies\": {\n \"classnames\": \"2.2.6\",\n \"milliseconds\": \"1.0.3\",\n \"money-clip\": \"3.0.3\",\n \"preact\": \"10.5.12\",\n \"tryit\": \"1.0.3\"\n },\n \"devDependencies\": {\n \"@babel/cli\": \"7.12.10\",\n \"@babel/core\": \"7.12.10\",\n \"@babel/preset-env\": \"7.12.11\",\n \"@henrikjoreteg/babel-preset-preact\": \"1.0.0\",\n \"babel-eslint\": \"10.1.0\",\n \"cpy-cli\": \"^3.1.1\",\n \"eslint\": \"7.19.0\",\n \"eslint-plugin-react\": \"7.22.0\",\n \"fixpack\": \"4.0.0\",\n \"parcel\": \"1.12.4\",\n \"prettier\": \"2.2.1\",\n \"redux-bundler\": \"28.0.0\",\n \"redux-bundler-preact\": \"2.0.1\",\n \"tachyons-cli\": \"1.3.3\"\n },\n \"files\": [\n \"dist\"\n ],\n \"keywords\": [],\n \"license\": \"MIT\",\n \"main\": \"dist/index.node.js\",\n \"module\": \"dist/index.js\",\n \"prettier\": {\n \"semi\": false,\n \"singleQuote\": true,\n \"trailingComma\": \"none\",\n \"arrowParens\": \"avoid\"\n },\n \"scripts\": {\n \"build\": \"npm run build-module && npm run build-css && npm run build-umd\",\n \"build-css\": \"cd tachyons-ac && npm run build && cd .. && cpy tachyons-ac/css/tachyons.css dist/\",\n \"build-module\": \"babel component-library --out-dir dist\",\n \"build-site\": \"parcel build component-library/demo-site/index.html -d site --public-url / --no-minify\",\n \"build-umd\": \"parcel build component-library/index.js --out-file dist/index.node.js --no-source-maps\",\n \"format\": \"prettier --write .\",\n \"lint\": \"eslint ./component-library --fix\",\n \"prepublishOnly\": \"npm run build\",\n \"start\": \"parcel component-library/demo-site/index.html -d dist --public-url / --port 3000\",\n \"static\": \"fixpack && npm run format && npm run lint\"\n }\n}\n;","import { h, Component } from 'preact'\nimport * as sections from './sections'\nimport { DrawerLink, DrawerLinkContainer } from '../drawer'\nimport { Page } from '../crate'\nimport { AppLayout } from '../app-layout'\nimport { version } from '../../package.json'\nimport { LogoLightMark } from '../logo'\nimport { TapIconButton } from '../button'\n\nconst guessEnv = () => {\n const { host } = window.location\n if (host.includes('dev')) {\n return 'dev'\n }\n if (host.includes('stage')) {\n return 'stage'\n }\n if (host.includes('localhost')) {\n return 'local'\n }\n return 'prod'\n}\n\nexport default class extends Component {\n constructor(props) {\n super(props)\n this.state = {\n screenIsWide: this.isScreenWide(),\n drawerOpen: false,\n drawerEnabled: true,\n activeHash: ''\n }\n this.toggleDrawerOpen = this.toggleDrawerOpen.bind(this)\n this.toggleDrawerEnabled = this.toggleDrawerEnabled.bind(this)\n this.handleResize = this.handleResize.bind(this)\n this.handleHashChange = this.handleHashChange.bind(this)\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize, { passive: true })\n window.addEventListener('hashchange', this.handleHashChange)\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize, { passive: true })\n }\n\n handleHashChange() {\n this.setState({ activeHash: location.hash })\n }\n\n toggleDrawerOpen() {\n this.setState({ drawerOpen: !this.state.drawerOpen })\n }\n\n toggleDrawerEnabled() {\n this.setState({ drawerEnabled: !this.state.drawerEnabled })\n }\n\n handleResize() {\n const isWide = this.isScreenWide()\n if (isWide !== this.state.screenIsWide) {\n this.setState({ screenIsWide: isWide })\n }\n }\n\n isScreenWide() {\n return window.innerWidth > 960\n }\n\n render(_, { screenIsWide, drawerEnabled, drawerOpen, activeHash }) {\n return (\n <AppLayout\n version={version}\n env={guessEnv()}\n doCloseDrawer={this.toggleDrawerOpen}\n doOpenDrawer={this.toggleDrawerOpen}\n screenIsWide={screenIsWide}\n drawerEnabled={drawerEnabled}\n drawerOpen={drawerOpen}\n mainContent={\n <Page className=\"ph3\">\n {Object.keys(sections)\n .sort()\n .map(section => {\n const Component = sections[section]\n return (\n <div key={section} id={section}>\n <Component key={section} />\n </div>\n )\n })}\n </Page>\n }\n statusBarContent={\n <div className=\"pa2 flex items-center\">\n <TapIconButton\n icon=\"menu\"\n onClick={this.toggleDrawerOpen}\n className=\"dn-l\"\n />\n <LogoLightMark className=\"dn-l ml2\" style={{ width: '30px' }} />\n <h2 className=\"pv0 mv2 f4 ml2\">Pattern Library</h2>\n </div>\n }\n drawerContent={\n <div>\n <DrawerLinkContainer title=\"Components\">\n {Object.keys(sections).map(section => (\n <DrawerLink\n key={section}\n icon=\"polymer\"\n href={`#${section}`}\n onClick={this.toggleDrawerOpen}\n title={section}\n complete={activeHash === `#${section}`}\n />\n ))}\n </DrawerLinkContainer>\n </div>\n }\n />\n )\n }\n}\n","import { h, render } from 'preact'\nimport Layout from './layout'\n\nimport * as cookie from '../utils/token-writer'\n\nwindow.cookieHelper = cookie\n\nrender(\n <div id=\"app\">\n <Layout />\n </div>,\n document.body,\n document.getElementById('app')\n)\n\n// if (module.hot) {\n// module.hot.dispose(() => {\n// document.getElementById('app').innerHTML = ''\n// })\n// }\n","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '<div style=\"background: black; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; opacity: 0.85; font-family: Menlo, Consolas, monospace; z-index: 9999;\">' +\n '<span style=\"background: red; padding: 2px 4px; border-radius: 2px;\">ERROR</span>' +\n '<span style=\"top: 2px; margin-left: 5px; position: relative;\">🚨</span>' +\n '<div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">' + message.innerHTML + '</div>' +\n '<pre>' + stackTrace.innerHTML + '</pre>' +\n '</div>'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]}
\No newline at end of file