govuk_publishing_components 17.20.0 → 17.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +8 -0
  3. data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +15 -5
  4. data/app/views/govuk_publishing_components/components/docs/subscription-links.yml +13 -2
  5. data/lib/govuk_publishing_components/version.rb +1 -1
  6. data/node_modules/accessible-autocomplete/package.json +1 -1
  7. data/node_modules/graceful-fs/package.json +13 -13
  8. data/node_modules/graceful-fs/polyfills.js +17 -11
  9. data/node_modules/hosted-git-info/CHANGELOG.md +40 -0
  10. data/node_modules/hosted-git-info/git-host-info.js +5 -3
  11. data/node_modules/hosted-git-info/git-host.js +35 -10
  12. data/node_modules/hosted-git-info/index.js +17 -15
  13. data/node_modules/hosted-git-info/package.json +40 -30
  14. data/node_modules/lru-cache/LICENSE +15 -0
  15. data/node_modules/lru-cache/README.md +166 -0
  16. data/node_modules/lru-cache/index.js +334 -0
  17. data/node_modules/lru-cache/package.json +108 -0
  18. data/node_modules/pkg-conf/package.json +1 -1
  19. data/node_modules/preact/debug.js +630 -2
  20. data/node_modules/preact/debug.js.map +1 -1
  21. data/node_modules/preact/debug/dist/debug.js +2 -0
  22. data/node_modules/preact/debug/dist/debug.js.map +1 -0
  23. data/node_modules/preact/debug/dist/debug.mjs +681 -0
  24. data/node_modules/preact/debug/dist/debug.mjs.map +1 -0
  25. data/node_modules/preact/debug/dist/debug.module.js +2 -0
  26. data/node_modules/preact/debug/dist/debug.module.js.map +1 -0
  27. data/node_modules/preact/debug/dist/debug.umd.js +2 -0
  28. data/node_modules/preact/debug/dist/debug.umd.js.map +1 -0
  29. data/node_modules/preact/debug/index.js +2 -1
  30. data/node_modules/preact/dist/preact.d.ts +808 -3
  31. data/node_modules/preact/dist/preact.dev.js +727 -727
  32. data/node_modules/preact/dist/preact.dev.js.map +1 -1
  33. data/node_modules/preact/dist/preact.js +1 -1
  34. data/node_modules/preact/dist/preact.js.flow +3 -3
  35. data/node_modules/preact/dist/preact.js.map +1 -1
  36. data/node_modules/preact/dist/preact.min.js +1 -1
  37. data/node_modules/preact/dist/preact.min.js.map +1 -1
  38. data/node_modules/preact/dist/preact.mjs +724 -724
  39. data/node_modules/preact/dist/preact.mjs.map +1 -1
  40. data/node_modules/preact/dist/preact.umd.js +751 -0
  41. data/node_modules/preact/dist/preact.umd.js.map +1 -0
  42. data/node_modules/preact/package.json +43 -26
  43. data/node_modules/preact/src/preact.d.ts +808 -3
  44. data/node_modules/preact/src/preact.js.flow +3 -3
  45. data/node_modules/preact/src/util.js +1 -1
  46. data/node_modules/yallist/LICENSE +15 -0
  47. data/node_modules/yallist/README.md +204 -0
  48. data/node_modules/yallist/iterator.js +8 -0
  49. data/node_modules/yallist/package.json +97 -0
  50. data/node_modules/yallist/yallist.js +376 -0
  51. metadata +21 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.mjs","sources":["../src/devtools/custom.js","../src/debug.js","../src/devtools/renderer.js","../src/devtools/index.js","../src/index.js"],"sourcesContent":["import { Fragment } from 'preact';\n\n/**\n * Get the type/category of a vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').NodeType}\n */\nexport function getNodeType(vnode) {\n\tif (vnode.type===Fragment) return 'Wrapper';\n\telse if (typeof vnode.type==='function') return 'Composite';\n\telse if (typeof vnode.type==='string') return 'Native';\n\treturn 'Text';\n}\n\n/**\n * Get human readable name of the component/dom element\n * @param {import('../internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type===Fragment) return 'Fragment';\n\telse if (typeof vnode.type==='function') return vnode.type.displayName || vnode.type.name;\n\telse if (typeof vnode.type==='string') return vnode.type;\n\treturn '#text';\n}\n\n/**\n * Deeply mutate a property by walking down an array of property keys\n * @param {object} obj\n * @param {Array<string | number>} path\n * @param {any} value\n */\nexport function setIn(obj, path, value) {\n\tlet last = path.pop();\n\tlet parent = path.reduce((acc, attr) => acc ? acc[attr] : null, obj);\n\tif (parent) {\n\t\tparent[last] = value;\n\t}\n}\n\n/**\n * Get devtools compatible data from vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').DevtoolData}\n */\nexport function getData(vnode) {\n\tlet c = vnode._component;\n\n\t/** @type {import('../internal').DevtoolsUpdater | null} */\n\tlet updater = null;\n\n\tif (c!=null) {\n\t\t// These functions will be called when the user changes state, props or\n\t\t// context values via the devtools ui panel\n\t\tupdater = {\n\t\t\tsetState: c.setState.bind(c),\n\t\t\tforceUpdate: c.forceUpdate.bind(c),\n\t\t\tsetInState(path, value) {\n\t\t\t\tc.setState(prev => {\n\t\t\t\t\tsetIn(prev, path, value);\n\t\t\t\t\treturn prev;\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInProps(path, value) {\n\t\t\t\tsetIn(vnode.props, path, value);\n\t\t\t\tc.setState({});\n\t\t\t},\n\t\t\tsetInContext(path, value) {\n\t\t\t\tsetIn(c.context, path, value);\n\t\t\t\tc.setState({});\n\t\t\t}\n\t\t};\n\t}\n\n\tlet children = getChildren(vnode);\n\n\tlet duration = vnode.endTime - vnode.startTime;\n\treturn {\n\t\tnodeType: getNodeType(vnode),\n\t\ttype: vnode.type,\n\t\tname: getDisplayName(vnode),\n\t\tref: vnode.ref || null,\n\t\tkey: vnode.key || null,\n\t\tupdater,\n\t\ttext: vnode.text,\n\t\tstate: c!=null ? c.state : null,\n\t\tprops: vnode.props,\n\t\t// The devtools inline text children if they are the only child\n\t\tchildren: vnode.text==null\n\t\t\t? children!=null && children.length==1 && children[0].text!=null\n\t\t\t\t? children[0].text\n\t\t\t\t: children\n\t\t\t: null,\n\t\tpublicInstance: getInstance(vnode),\n\t\tmemoizedInteractions: [],\n\n\t\t// Profiler data\n\t\tactualDuration: duration,\n\t\tactualStartTime: vnode.startTime,\n\t\ttreeBaseDuration: duration\n\t};\n}\n\n/**\n * Get all rendered vnode children as an array. Moreover we need to filter\n * out `null` or other falsy children.\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').VNode[]}\n */\nexport function getChildren(vnode) {\n\tlet c = vnode._component;\n\n\tif (c==null) {\n\t\treturn vnode._children!=null ? vnode._children.filter(Boolean) : [];\n\t}\n\n\treturn !Array.isArray(c._prevVNode) && c._prevVNode!=null\n\t\t? [c._prevVNode]\n\t\t: null;\n}\n\n/**\n * Check if a vnode is a root node\n * @param {import('../internal').VNode} vnode\n * @returns {boolean}\n */\nexport function isRoot(vnode) {\n\t// Timings of root vnodes will never be set\n\treturn vnode.type===Fragment && vnode.endTime==-1;\n}\n\n/**\n * Cache a vnode by its instance and retrieve previous vnodes by the next\n * instance.\n *\n * We need this to be able to identify the previous vnode of a given instance.\n * For components we want to check if we already rendered it and use the class\n * instance as key. For html elements we use the dom node as key.\n *\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').Component | import('../internal').PreactElement | Text | null}\n */\nexport function getInstance(vnode) {\n\t// Use the parent element as instance for root nodes\n\tif (isRoot(vnode)) {\n\t\t// Edge case: When the tree only consists of components that have not rendered\n\t\t// anything into the DOM we revert to using the vnode as instance.\n\t\treturn vnode._children.length > 0 && vnode._children[0]._dom!=null\n\t\t\t? /** @type {import('../internal').PreactElement | null} */\n\t\t\t(vnode._children[0]._dom.parentNode)\n\t\t\t: vnode;\n\t}\n\tif (vnode._component!=null) return vnode._component;\n\tif (vnode.type===Fragment) return vnode.props;\n\treturn vnode._dom;\n}\n\n/**\n * Compare two objects\n * @param {object} a\n * @param {object} b\n * @param {boolean} [isProps]\n * @returns {boolean}\n */\nexport function shallowEqual(a, b, isProps) {\n\tif (a==null || b==null) return false;\n\n\tfor (let key in a) {\n\t\tif (isProps && key=='children' && b[key]!=null) continue;\n\t\tif (a[key]!==b[key]) return false;\n\t}\n\n\tif (Object.keys(a).length!==Object.keys(b).length) return false;\n\treturn true;\n}\n\n/**\n * Check if a vnode was actually updated\n * @param {import('../internal').VNode} next\n * @param {import('../internal').VNode} prev\n * @returns {boolean}\n */\nexport function hasDataChanged(prev, next) {\n\treturn (prev.props !== next.props && !shallowEqual(prev.props, next.props, true))\n\t\t|| (prev._component!=null &&\n\t\t\t!shallowEqual(next._component._prevState, next._component.state))\n\t\t|| prev._dom !== next._dom\n\t\t|| prev.ref !== next.ref;\n}\n\n/**\n * Check if a the profiling data ahs changed between vnodes\n * @param {import('../internal').VNode} next\n * @param {import('../internal').VNode} prev\n * @returns {boolean}\n */\nexport function hasProfileDataChanged(prev, next) {\n\treturn prev.startTime!==next.startTime || prev.endTime!==next.endTime;\n}\n","import { checkPropTypes } from 'prop-types';\nimport { getDisplayName } from './devtools/custom';\nimport { options, toChildArray } from 'preact';\n\nexport function initDebug() {\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options.diff;\n\n\toptions.diff = vnode => {\n\t\tlet { type, props } = vnode;\n\t\tlet children = props && props.children;\n\n\t\tif (type===undefined) {\n\t\t\tthrow new Error('Undefined component passed to createElement()\\n'+serializeVNode(vnode));\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref!==undefined &&\n\t\t\ttypeof vnode.ref!=='function' &&\n\t\t\ttypeof vnode.ref!=='object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\tserializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type==='function' && vnode.type.propTypes) {\n\t\t\tcheckPropTypes(vnode.type.propTypes, vnode.props, getDisplayName(vnode), serializeVNode(vnode));\n\t\t}\n\n\t\tlet keys = [];\n\t\tfor (let deepChild of toChildArray(children)) {\n\t\t\tif (!deepChild || deepChild.key==null) continue;\n\n\t\t\tlet key = deepChild.key;\n\n\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t);\n\n\t\t\t\t// Break early to not spam the console\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tkeys.push(key);\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n}\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tif (props) {\n\t\tfor (let prop in props) {\n\t\t\tif (props.hasOwnProperty(prop) && prop!=='children') {\n\t\t\t\tlet value = props[prop];\n\n\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t}\n\n\t\t\t\tvalue = Object(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${children && children.length\n\t\t? '>..</'+name+'>'\n\t\t: ' />'}`;\n}\n","import { getData, getChildren, getInstance, hasProfileDataChanged, hasDataChanged, isRoot } from './custom';\n\n/**\n * Custom renderer tailored for Preact. It converts updated vnode trees\n * to events the devtools can understand.\n * @class Renderer\n */\nexport class Renderer {\n\tconstructor(hook, rid) {\n\n\t\t/** @type {string} */\n\t\tthis.rid = rid;\n\t\tthis.hook = hook;\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tthis.pending = [];\n\n\t\t/**\n\t\t * Store the instance of a vnode. This will be later used to decide if a\n\t\t * vnode needs to be mounted or updated. For components the instance refers\n\t\t * to the actuall class instance whereas for dom nodes it refers to the\n\t\t * underlying dom element.\n\t\t * @type {WeakMap<import('../internal').Component | import('../internal').PreactElement | HTMLElement | Text, import('../internal').VNode>}\n\t\t */\n\t\tthis.inst2vnode = new WeakMap();\n\t\tthis.connected = false;\n\t}\n\n\t/**\n\t * Mark the connection status as ready so that we can proceed\n\t * to actually flush events.\n\t */\n\tmarkConnected() {\n\t\tthis.connected = true;\n\t\tthis.flushPendingEvents();\n\t}\n\n\t/**\n\t * Flush all queued events\n\t */\n\tflushPendingEvents() {\n\t\tif (!this.connected) return;\n\n\t\tlet events = this.pending;\n\t\tthis.pending = [];\n\t\tfor (let i = 0; i < events.length; i++) {\n\t\t\tlet event = events[i];\n\t\t\tthis.hook.emit(event.type, event);\n\t\t}\n\t}\n\n\t/**\n\t * Recursively mount a vnode tree. Note that the devtools expectes the tree to\n\t * be mounted from the bottom up, otherwise the order will be messed up.\n\t * Therefore we mount children prior to mounting the vnode itself.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tmount(vnode) {\n\t\tthis.inst2vnode.set(getInstance(vnode), vnode);\n\t\tlet data = getData(vnode);\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tlet work = [{\n\t\t\tinternalInstance: vnode,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'mount'\n\t\t}];\n\n\t\t// Children must be mounted first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tlet stack = data.children.slice();\n\t\t\tlet item;\n\t\t\twhile ((item = stack.pop())!=null) {\n\t\t\t\tlet children = getChildren(item);\n\t\t\t\tstack.push(...children);\n\n\t\t\t\tthis.inst2vnode.set(getInstance(item), item);\n\n\t\t\t\tlet data = getData(item);\n\n\t\t\t\twork.push({\n\t\t\t\t\tinternalInstance: item,\n\t\t\t\t\tdata,\n\t\t\t\t\trenderer: this.rid,\n\t\t\t\t\ttype: 'mount'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = work.length; --i>=0;) {\n\t\t\tthis.pending.push(work[i]);\n\t\t}\n\n\t\t// Special event if we have a root\n\t\tif (isRoot(vnode)) {\n\t\t\tthis.pending.push({\n\t\t\t\tinternalInstance: vnode,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'root'\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Update a vnode tree\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tupdate(vnode) {\n\t\tlet data = getData(vnode);\n\n\t\t// Children must be updated first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tfor (let i = 0; i < data.children.length; i++) {\n\t\t\t\tlet child = data.children[i];\n\t\t\t\tlet inst = getInstance(child);\n\n\t\t\t\tlet prevChild = this.inst2vnode.get(inst);\n\t\t\t\tif (prevChild==null) this.mount(child);\n\t\t\t\telse this.update(child);\n\n\t\t\t\t// Mutate child to keep referential equality intact\n\t\t\t\tdata.children[i] = this.inst2vnode.get(inst);\n\t\t\t}\n\t\t}\n\n\t\tlet prev = this.inst2vnode.get(data.publicInstance);\n\n\t\t// The `updateProfileTimes` event is a faster version of `updated` and\n\t\t// is processed much quicker inside the devtools extension.\n\t\tif (!hasDataChanged(prev, vnode) && hasProfileDataChanged(prev, vnode)) {\n\t\t\tthis.pending.push({\n\t\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t\t// vnode/fiber shape.\n\t\t\t\tinternalInstance: prev,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'updateProfileTimes'\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t// vnode/fiber shape.\n\t\t\tinternalInstance: prev,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'update'\n\t\t});\n\t}\n\n\t/**\n\t * Pass a rendered tree to the devtools. At this point elements have already\n\t * unmounted, so we don't need to check for removals and only update vs mount\n\t * instead.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberRoot(vnode) {\n\t\tlet inst = getInstance(vnode);\n\n\t\tif (this.inst2vnode.has(inst)) this.update(vnode);\n\t\telse this.mount(vnode);\n\n\t\t// The devtools checks via the existance of this property if the devtools\n\t\t// profiler should be enabled or not. If it is missing from the first root\n\t\t// node the \"Profiler\" tab won't show up.\n\t\t/** @type {import('../internal').VNode} */\n\t\tlet root = null;\n\t\tif (isRoot(vnode)) {\n\n\t\t\t/** @type {*} */\n\t\t\t(vnode).treeBaseDuration = 0;\n\t\t\troot = vnode;\n\t\t}\n\t\telse {\n\t\t\t// \"rootCommitted\" always needs the actual root node for the profiler\n\t\t\t// to be able to collect timings. The `_ancestorComponent` property will\n\t\t\t// point to a vnode for a root node.\n\t\t\troot = vnode._component;\n\t\t\twhile (root._ancestorComponent!=null) {\n\t\t\t\troot = root._ancestorComponent;\n\t\t\t}\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: root,\n\t\t\trenderer: this.rid,\n\t\t\tdata: getData(root),\n\t\t\ttype: 'rootCommitted'\n\t\t});\n\n\t\tthis.flushPendingEvents();\n\t\treturn vnode;\n\t}\n\n\t/**\n\t * Unmount a vnode recursively. Contrary to mounting or updating unmounting needs\n\t * to push the events in parent-first order. Because `options.unmount` is\n\t * already fired in parent-first order we don't need to traverse anything here.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberUnmount(vnode) {\n\t\tlet inst = getInstance(vnode);\n\t\tthis.inst2vnode.delete(inst);\n\n\t\t// Special case when unmounting a root (most prominently caused by webpack's\n\t\t// `hot-module-reloading`). If this happens we need to unmount the virtual\n\t\t// `Fragment` we're wrapping around each root just for the devtools.\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: vnode,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'unmount'\n\t\t});\n\t}\n\n\t/**\n\t * Get the dom element by a vnode\n\t * @param {import('../internal').VNode} vnode\n\t * @returns {import('../internal').PreactElement | Text}\n\t */\n\tgetNativeFromReactElement(vnode) {\n\t\treturn vnode._dom;\n\t}\n\n\t/**\n\t * Get a vnode by a dom element\n\t * @param {import('../internal').PreactElement | Text} dom\n\t * @returns {import('../internal').VNode | null}\n\t */\n\tgetReactElementFromNative(dom) {\n\t\treturn this.inst2vnode.get(dom) || null;\n\t}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\twalkTree() {}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\tcleanup() {}\n}\n","import { options, Component, Fragment } from 'preact';\nimport { Renderer } from './renderer';\n\n/**\n * Wrap function with generic error logging\n *\n * @param {*} fn\n * @returns\n */\nfunction catchErrors(fn) {\n\treturn function(arg) {\n\t\ttry {\n\t\t\treturn fn(arg);\n\t\t}\n\t\tcatch (e) {\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error('The react devtools encountered an error');\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error(e); // eslint-disable-line no-console\n\t\t}\n\t};\n}\n\n/* istanbul ignore next */\nlet noop = () => undefined;\n\nexport function initDevTools() {\n\t// This global variable is injected by the devtools\n\t/** @type {import('../internal').DevtoolsWindow} */\n\tlet hook = (window).__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\tif (hook==null) return;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitRoot = noop;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitUnmount = noop;\n\n\t// Initialize our custom renderer\n\tlet rid = Math.random().toString(16).slice(2);\n\tlet preactRenderer = new Renderer(hook, rid);\n\n\tcatchErrors(() => {\n\t\tlet isDev = false;\n\t\ttry {\n\t\t\tisDev = process.env.NODE_ENV!=='production';\n\t\t}\n\t\tcatch (e) {}\n\n\t\t// Tell devtools which bundle type we run in\n\t\twindow.parent.postMessage({\n\t\t\tsource: 'react-devtools-detector',\n\t\t\treactBuildType: /* istanbul ignore next */ isDev\n\t\t\t\t? 'development'\n\t\t\t\t: 'production'\n\t\t}, '*');\n\n\t\tlet renderer = {\n\t\t\tbundleType: /* istanbul ignore next */ isDev ? 1 : 0,\n\t\t\tversion: '16.5.2',\n\t\t\trendererPackageName: 'preact',\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindHostInstanceByFiber(vnode) {\n\t\t\t\treturn vnode._dom;\n\t\t\t},\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindFiberByHostInstance(instance) {\n\t\t\t\treturn preactRenderer.inst2vnode.get(instance) || null;\n\t\t\t}\n\t\t};\n\n\t\thook._renderers[rid] = renderer;\n\n\t\t// We can't bring our own `attachRenderer` function therefore we simply\n\t\t// prevent the devtools from overwriting our custom renderer by creating\n\t\t// a noop setter.\n\t\tObject.defineProperty(hook.helpers, rid, {\n\t\t\tget: () => preactRenderer,\n\t\t\tset: () => {\n\t\t\t\tif (!preactRenderer.connected) {\n\t\t\t\t\thelpers.markConnected();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tlet helpers = hook.helpers[rid];\n\n\t\t// Tell the devtools that we are ready to start\n\t\thook.emit('renderer-attached', {\n\t\t\tid: rid,\n\t\t\trenderer,\n\t\t\thelpers\n\t\t});\n\n\t\tonCommitRoot = catchErrors(root => {\n\t\t\t// Empty root\n\t\t\tif (root.type===Fragment && root._children.length==0) return;\n\n\t\t\tlet roots = hook.getFiberRoots(rid);\n\t\t\troot = helpers.handleCommitFiberRoot(root);\n\t\t\tif (!roots.has(root)) roots.add(root);\n\t\t});\n\n\t\tonCommitUnmount = catchErrors(vnode => {\n\t\t\thook.onCommitFiberUnmount(rid, vnode);\n\t\t});\n\t})();\n\n\t// Store (possible) previous hooks so that we don't overwrite them\n\tlet prevVNodeHook = options.vnode;\n\tlet prevCommitRoot = options.commit;\n\tlet prevBeforeUnmount = options.unmount;\n\tlet prevBeforeDiff = options.diff;\n\tlet prevAfterDiff = options.diffed;\n\n\toptions.vnode = (vnode) => {\n\t\t// Tiny performance improvement by initializing fields as doubles\n\t\t// from the start. `performance.now()` will always return a double.\n\t\t// See https://github.com/facebook/react/issues/14365\n\t\t// and https://slidr.io/bmeurer/javascript-engine-fundamentals-the-good-the-bad-and-the-ugly\n\t\tvnode.startTime = NaN;\n\t\tvnode.endTime = NaN;\n\n\t\tvnode.startTime = 0;\n\t\tvnode.endTime = -1;\n\t\tif (prevVNodeHook) prevVNodeHook(vnode);\n\t};\n\n\toptions.diff = (vnode) => {\n\t\tvnode.startTime = now();\n\t\tif (prevBeforeDiff!=null) prevBeforeDiff(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tvnode.endTime = now();\n\t\tif (prevAfterDiff!=null) prevAfterDiff(vnode);\n\t};\n\n\toptions.commit = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevCommitRoot!=null) prevCommitRoot(vnode);\n\n\t\t// These cases are already handled by `unmount`\n\t\tif (vnode==null) return;\n\t\tonCommitRoot(vnode);\n\t});\n\n\toptions.unmount = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevBeforeUnmount!=null) prevBeforeUnmount(vnode);\n\t\tonCommitUnmount(vnode);\n\t});\n\n\t// Inject tracking into setState\n\tconst setState = Component.prototype.setState;\n\tComponent.prototype.setState = function(update, callback) {\n\t\t// Duplicated in setState() but doesn't matter due to the guard.\n\t\tlet s = (this._nextState!==this.state && this._nextState) || (this._nextState = Object.assign({}, this.state));\n\n\t\t// Needed in order to check if state has changed after the tree has been committed:\n\t\tthis._prevState = Object.assign({}, s);\n\n\t\treturn setState.call(this, update, callback);\n\t};\n}\n\n/**\n * Get current timestamp in ms. Used for profiling.\n * @returns {number}\n */\nexport let now = Date.now;\n\ntry {\n\t/* istanbul ignore else */\n\tnow = performance.now.bind(performance);\n}\ncatch (e) {}\n","import { initDebug } from './debug';\nimport { initDevTools } from './devtools';\n\nif (process.env.NODE_ENV==='development') {\n\tinitDebug();\n\tinitDevTools();\n}\n"],"names":["getNodeType","vnode","type","Fragment","getDisplayName","displayName","name","setIn","obj","path","value","last","pop","parent","reduce","acc","attr","getData","c","_component","updater","setState","bind","forceUpdate","setInState","prev","setInProps","props","setInContext","context","children","getChildren","duration","endTime","startTime","nodeType","ref","key","text","state","length","publicInstance","getInstance","memoizedInteractions","actualDuration","actualStartTime","treeBaseDuration","_children","filter","Boolean","Array","isArray","_prevVNode","isRoot","_dom","parentNode","shallowEqual","a","b","isProps","let","Object","keys","hasDataChanged","next","_prevState","hasProfileDataChanged","initDebug","oldBeforeDiff","options","diff","undefined","Error","serializeVNode","propTypes","checkPropTypes","toChildArray","deepChild","indexOf","console","error","push","attrs","prop","hasOwnProperty","toString","prototype","call","JSON","stringify","Renderer","constructor","hook","rid","pending","inst2vnode","WeakMap","connected","markConnected","flushPendingEvents","events","i","event","emit","mount","set","data","work","renderer","stack","slice","item","update","child","inst","prevChild","get","handleCommitFiberRoot","has","root","_ancestorComponent","handleCommitFiberUnmount","delete","getNativeFromReactElement","getReactElementFromNative","dom","walkTree","cleanup","catchErrors","fn","arg","e","noop","initDevTools","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","onCommitRoot","onCommitUnmount","Math","random","preactRenderer","isDev","process","env","NODE_ENV","postMessage","source","reactBuildType","bundleType","version","rendererPackageName","findHostInstanceByFiber","findFiberByHostInstance","instance","_renderers","defineProperty","helpers","id","roots","getFiberRoots","add","onCommitFiberUnmount","prevVNodeHook","prevCommitRoot","commit","prevBeforeUnmount","unmount","prevBeforeDiff","prevAfterDiff","diffed","NaN","now","Component","callback","s","_nextState","assign","Date","performance"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{Component as n,Fragment as e,options as t}from"preact";var r={};function o(n){return n.type===e?"Wrapper":"function"==typeof n.type?"Composite":"string"==typeof n.type?"Native":"Text"}function i(n){return n.type===e?"Fragment":"function"==typeof n.type?n.type.displayName||n.type.name:"string"==typeof n.type?n.type:"#text"}function a(n,e,t){var r=e.pop(),o=e.reduce(function(n,e){return n?n[e]:null},n);o&&(o[r]=t)}function u(e){var t=e.__c,r=null;null!=t&&t instanceof n&&(r={setState:t.setState.bind(t),forceUpdate:t.forceUpdate.bind(t),setInState:function(n,e){t.setState(function(t){return a(t,n,e),t})},setInProps:function(n,r){a(e.props,n,r),t.setState({})},setInContext:function(n,e){a(t.context,n,e),t.setState({})}});var u=l(e),s=e.endTime-e.startTime;return{nodeType:o(e),type:e.type,name:i(e),ref:e.ref||null,key:e.key||null,updater:r,text:null===e.type?e.props:null,state:null!=t&&t instanceof n?t.state:null,props:e.props,children:null!==e.type?null!=u&&1==u.length&&null===u[0].type?u[0].props:u:null,publicInstance:c(e),memoizedInteractions:[],actualDuration:s,actualStartTime:e.startTime,treeBaseDuration:s}}function l(n){return null==n.__c?null!=n.__k?n.__k.filter(Boolean):[]:null!=n.__k?n.__k.filter(Boolean):null}function s(n){return n.type===e&&null===n.__p}function c(n){return s(n)?n.__k.length>0&&null!=n.__k[0]&&null!=n.__k[0].__e?n.__k[0].__e.parentNode:n:null!=n.__c?n.__c:n.type===e?n.props:n.__e}function f(n,e,t){if(null==n||null==e)return!1;for(var r in n)if((!t||"children"!=r||null==e[r])&&n[r]!==e[r])return!1;return Object.keys(n).length===Object.keys(e).length}function d(n){var e=n.props,t=i(n),r="";if(e)for(var o in e)if(e.hasOwnProperty(o)&&"children"!==o){var a=e[o];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+o+"="+JSON.stringify(a)}var u=e.children;return"<"+t+r+(u&&u.length?">..</"+t+">":" />")}var h=function(n,e){this.rid=e,this.hook=n,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function p(n){return function(e){try{return n(e)}catch(n){console.error("The react devtools encountered an error"),console.error(n)}}}h.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},h.prototype.flushPendingEvents=function(){if(this.connected){var n=this.pending;this.pending=[];for(var e=0;e<n.length;e++){var t=n[e];this.hook.emit(t.type,t)}}},h.prototype.mount=function(n){this.inst2vnode.set(c(n),n);var e=u(n),t=[{internalInstance:n,data:e,renderer:this.rid,type:"mount"}];if(Array.isArray(e.children))for(var r,o=e.children.slice();null!=(r=o.pop());){var i=l(r);o.push.apply(o,i),this.inst2vnode.set(c(r),r);var a=u(r);t.push({internalInstance:r,data:a,renderer:this.rid,type:"mount"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);s(n)&&this.pending.push({internalInstance:n,data:e,renderer:this.rid,type:"root"})},h.prototype.update=function(n){var e=u(n);if(Array.isArray(e.children))for(var t=0;t<e.children.length;t++){var r=e.children[t],o=c(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),e.children[t]=this.inst2vnode.get(o)}var i=this.inst2vnode.get(e.publicInstance);!function(n,e){return n.props!==e.props&&!f(n.props,e.props,!0)||null!=n.__c&&!f(e.__c.__u,e.__c.state)||n.__e!==e.__e||n.ref!==e.ref}(i,n)?this.pending.push({internalInstance:i,data:e,renderer:this.rid,type:"updateProfileTimes"}):this.pending.push({internalInstance:i,data:e,renderer:this.rid,type:"update"})},h.prototype.handleCommitFiberRoot=function(n){var e=c(n);this.inst2vnode.has(e)?this.update(n):this.mount(n);var t=null;if(s(n))n.treeBaseDuration=0,t=n;else for(t=n;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:u(t),type:"rootCommitted"}),this.flushPendingEvents(),n},h.prototype.handleCommitFiberUnmount=function(n){var e=c(n);this.inst2vnode.delete(e),this.pending.push({internalInstance:n,renderer:this.rid,type:"unmount"})},h.prototype.getNativeFromReactElement=function(n){return n.__e},h.prototype.getReactElementFromNative=function(n){return this.inst2vnode.get(n)||null},h.prototype.walkTree=function(){},h.prototype.cleanup=function(){};var v=function(){},y=Date.now;try{y=performance.now.bind(performance)}catch(n){}"development"===process.env.NODE_ENV&&(function(){var n=t.__b,e=t.diffed,o=t.vnode,a=t.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};t.__e=function(n,e,t){if(e&&e.__c&&"function"==typeof n.then){var r=n;n=new Error("Missing Suspense. The throwing component was: "+i(e));for(var o=e;o;o=o.__p)if(o.__c&&o.__c.t){n=r;break}}a(n,e,t)},t.__p=function(n,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var t;switch(e.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error("\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived "+e+" instead: render(<"+(n.type.name||n.type)+" />, "+e+");\n\t\t")},t.__b=function(e){if(null!=e){var t,o,a,l,s=e.type,c=function n(e){return e?"function"==typeof e.type?n(e.__p):e:{}}(e.__p);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+d(e));if(null!=s&&"object"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var f="Did you accidentally pass a JSX literal as JSX twice?\n\n let My"+i(s)+" = "+d(s)+";\n let vnode = <My"+i(s)+" />;\n\nThis usually happens when you export a JSX literal and not the component.";throw new Error("Invalid type passed to createElement(): "+s+"\n\n"+f+"\n")}throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"thead"!==s||"table"===c.type?"tr"===s&&"thead"!==c.type&&"tfoot"!==c.type&&"tbody"!==c.type&&"table"!==c.type?console.error("Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent."+d(e)):"td"===s&&"tr"!==c.type?console.error("Improper nesting of table.Your <td> should have a <tr> parent."+d(e)):"th"===s&&"tr"!==c.type&&console.error("Improper nesting of table.Your <th> should have a <tr>."+d(e)):console.error("Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent."+d(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+d(e));if("string"==typeof e.type)for(var h in e.props)if("o"===h[0]&&"n"===h[1]&&"function"!=typeof e.props[h]&&null!=e.props[h])throw new Error("Component's \""+h+'" property should be a function, but got ['+typeof e.props[h]+"] instead\n"+d(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&!u.lazyPropTypes[e.type]){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var v=e.type();u.lazyPropTypes[e.type]=!0,console.warn(p+"Component wrapped in lazy() is "+(v.type.displayName||v.type.name))}catch(n){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}t=e.type.propTypes,o=e.props,a=i(e),l=d(e),Object.keys(t).forEach(function(n){var e;try{e=t[n](o,n,l,a,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(n){e=n}!e||e.message in r||(r[e.message]=!0,console.error("Failed "+a+" type: "+e.message))})}n&&n(e)}},t.__h=function(n){if(!n)throw new Error("Hook can only be invoked from render methods.")};var l=function(n,e){return{get:function(){throw new Error("getting vnode."+n+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+n+" is not allowed, "+e)}}},s={nodeName:l("nodeName","use vnode.type"),attributes:l("attributes","use vnode.props"),children:l("children","use vnode.props.children")};t.vnode=function(n){var e,t;n.props&&n.props.i&&(e=n.props.i,delete n.props.i),n.props&&n.props.u&&(t=n.props.u,delete n.props.u),n.u=t,n.i=e,Object.defineProperties(n,s),o&&o(n)},t.diffed=function(n){if(null!=n){if(n.__c&&n.__c.l){var t=n.__c.l;t.s.forEach(function(e){!e.h||e.p&&Array.isArray(e.p)||console.warn("In "+(n.type.name||n.type)+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.")}),t.v.length>0&&t.v.forEach(function(e){e.p&&Array.isArray(e.p)||u.useEffect[n.type]||(u.useEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(n.type.name||n.type)+"."))}),t.m.length>0&&t.m.forEach(function(e){e.p&&Array.isArray(e.p)||u.useLayoutEffect[n.type]||(u.useLayoutEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useLayoutEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(n.type.name||n.type)+"."))})}if(null!=n.__k)for(var r=[],o=0;o<n.__k.length;o++){var i=n.__k[o];if(i&&null!=i.key){var a=i.key;if(-1!==r.indexOf(a)){console.error('Following component has two or more children with the same key attribute: "'+a+'". This may cause glitches and misbehavior in rendering process. Component: \n\n'+d(n));break}r.push(a)}}e&&e(n)}}}(),function(){var r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=r){var o=v,i=v,a=Math.random().toString(16).slice(2),u=new h(r,a);p(function(){var n=!1;try{n="production"!==process.env.NODE_ENV}catch(n){}window.parent.postMessage({source:"react-devtools-detector",reactBuildType:n?"development":"production"},"*");var t={bundleType:n?1:0,version:"16.5.2",rendererPackageName:"preact",findHostInstanceByFiber:function(n){return n.__e},findFiberByHostInstance:function(n){return u.inst2vnode.get(n)||null}};r._renderers[a]=t,Object.defineProperty(r.helpers,a,{get:function(){return u},set:function(){u.connected||l.markConnected()}});var l=r.helpers[a];r.emit("renderer-attached",{id:a,renderer:t,helpers:l}),o=p(function(n){if(n.type!==e||0!=n.__k.length){var t=r.getFiberRoots(a);n=l.handleCommitFiberRoot(n),t.has(n)||t.add(n)}}),i=p(function(n){r.onCommitFiberUnmount(a,n)})})();var l=t.vnode,s=t.__c,c=t.unmount,f=t.__b,d=t.diffed;t.vnode=function(n){n.startTime=NaN,n.endTime=NaN,n.startTime=0,n.endTime=-1,l&&l(n)},t.__b=function(n){n.startTime=y(),null!=f&&f(n)},t.diffed=function(n){n.endTime=y(),null!=d&&d(n)},t.__c=p(function(n){null!=s&&s(n),null!=n&&o(n)}),t.unmount=p(function(n){null!=c&&c(n),i(n)});var m=n.prototype.setState;n.prototype.setState=function(n,e){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),m.call(this,n,e)}}}());
2
+ //# sourceMappingURL=debug.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.module.js","sources":["../src/check-props.js","../src/devtools/custom.js","../src/debug.js","../src/devtools/renderer.js","../src/devtools/index.js","../src/index.js","../src/constants.js"],"sourcesContent":["const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\nexport function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\tObject.keys(typeSpecs).forEach((typeSpecName) => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t\t}\n\t\tcatch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(`Failed ${location} type: ${error.message}${getStack && getStack() || ''}`);\n\t\t}\n\t});\n}\n","import { Component, Fragment } from 'preact';\n\n/**\n * Get the type/category of a vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').NodeType}\n */\nexport function getNodeType(vnode) {\n\tif (vnode.type===Fragment) return 'Wrapper';\n\telse if (typeof vnode.type==='function') return 'Composite';\n\telse if (typeof vnode.type==='string') return 'Native';\n\treturn 'Text';\n}\n\n/**\n * Get human readable name of the component/dom element\n * @param {import('../internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type===Fragment) return 'Fragment';\n\telse if (typeof vnode.type==='function') return vnode.type.displayName || vnode.type.name;\n\telse if (typeof vnode.type==='string') return vnode.type;\n\treturn '#text';\n}\n\n/**\n * Deeply mutate a property by walking down an array of property keys\n * @param {object} obj\n * @param {Array<string | number>} path\n * @param {any} value\n */\nexport function setIn(obj, path, value) {\n\tlet last = path.pop();\n\tlet parent = path.reduce((acc, attr) => acc ? acc[attr] : null, obj);\n\tif (parent) {\n\t\tparent[last] = value;\n\t}\n}\n\n/**\n * Get devtools compatible data from vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').DevtoolData}\n */\nexport function getData(vnode) {\n\tlet c = vnode._component;\n\n\t/** @type {import('../internal').DevtoolsUpdater | null} */\n\tlet updater = null;\n\n\tif (c!=null && c instanceof Component) {\n\t\t// These functions will be called when the user changes state, props or\n\t\t// context values via the devtools ui panel\n\t\tupdater = {\n\t\t\tsetState: c.setState.bind(c),\n\t\t\tforceUpdate: c.forceUpdate.bind(c),\n\t\t\tsetInState(path, value) {\n\t\t\t\tc.setState(prev => {\n\t\t\t\t\tsetIn(prev, path, value);\n\t\t\t\t\treturn prev;\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInProps(path, value) {\n\t\t\t\tsetIn(vnode.props, path, value);\n\t\t\t\tc.setState({});\n\t\t\t},\n\t\t\tsetInContext(path, value) {\n\t\t\t\tsetIn(c.context, path, value);\n\t\t\t\tc.setState({});\n\t\t\t}\n\t\t};\n\t}\n\n\tlet children = getChildren(vnode);\n\n\tlet duration = vnode.endTime - vnode.startTime;\n\treturn {\n\t\tnodeType: getNodeType(vnode),\n\t\ttype: vnode.type,\n\t\tname: getDisplayName(vnode),\n\t\tref: vnode.ref || null,\n\t\tkey: vnode.key || null,\n\t\tupdater,\n\t\ttext: vnode.type===null ? vnode.props : null,\n\t\tstate: c!=null && c instanceof Component ? c.state : null,\n\t\tprops: vnode.props,\n\t\t// The devtools inline text children if they are the only child\n\t\tchildren: vnode.type!==null\n\t\t\t? children!=null && children.length==1 && children[0].type===null\n\t\t\t\t? children[0].props\n\t\t\t\t: children\n\t\t\t: null,\n\t\tpublicInstance: getInstance(vnode),\n\t\tmemoizedInteractions: [],\n\n\t\t// Profiler data\n\t\tactualDuration: duration,\n\t\tactualStartTime: vnode.startTime,\n\t\ttreeBaseDuration: duration\n\t};\n}\n\n/**\n * Get all rendered vnode children as an array. Moreover we need to filter\n * out `null` or other falsy children.\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').VNode[]}\n */\nexport function getChildren(vnode) {\n\tif (vnode._component==null) {\n\t\treturn vnode._children!=null ? vnode._children.filter(Boolean) : [];\n\t}\n\n\treturn vnode._children != null ? vnode._children.filter(Boolean) : null;\n}\n\n/**\n * Check if a vnode is a root node\n * @param {import('../internal').VNode} vnode\n * @returns {boolean}\n */\nexport function isRoot(vnode) {\n\t// Timings of root vnodes will never be set\n\treturn vnode.type===Fragment && vnode._parent === null;\n}\n\n/**\n * Cache a vnode by its instance and retrieve previous vnodes by the next\n * instance.\n *\n * We need this to be able to identify the previous vnode of a given instance.\n * For components we want to check if we already rendered it and use the class\n * instance as key. For html elements we use the dom node as key.\n *\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').Component | import('../internal').PreactElement | Text | null}\n */\nexport function getInstance(vnode) {\n\t// Use the parent element as instance for root nodes\n\tif (isRoot(vnode)) {\n\t\t// Edge case: When the tree only consists of components that have not rendered\n\t\t// anything into the DOM we revert to using the vnode as instance.\n\t\treturn vnode._children.length > 0 && vnode._children[0]!=null && vnode._children[0]._dom!=null\n\t\t\t? /** @type {import('../internal').PreactElement | null} */\n\t\t\t(vnode._children[0]._dom.parentNode)\n\t\t\t: vnode;\n\t}\n\tif (vnode._component!=null) return vnode._component;\n\tif (vnode.type===Fragment) return vnode.props;\n\treturn vnode._dom;\n}\n\n/**\n * Compare two objects\n * @param {object} a\n * @param {object} b\n * @param {boolean} [isProps]\n * @returns {boolean}\n */\nexport function shallowEqual(a, b, isProps) {\n\tif (a==null || b==null) return false;\n\n\tfor (let key in a) {\n\t\tif (isProps && key=='children' && b[key]!=null) continue;\n\t\tif (a[key]!==b[key]) return false;\n\t}\n\n\tif (Object.keys(a).length!==Object.keys(b).length) return false;\n\treturn true;\n}\n\n/**\n * Check if a vnode was actually updated\n * @param {import('../internal').VNode} next\n * @param {import('../internal').VNode} prev\n * @returns {boolean}\n */\nexport function hasDataChanged(prev, next) {\n\treturn (prev.props !== next.props && !shallowEqual(prev.props, next.props, true))\n\t\t|| (prev._component!=null &&\n\t\t\t!shallowEqual(next._component._prevState, next._component.state))\n\t\t|| prev._dom !== next._dom\n\t\t|| prev.ref !== next.ref;\n}\n","import { checkPropTypes } from './check-props';\nimport { getDisplayName } from './devtools/custom';\nimport { options } from 'preact';\nimport { ELEMENT_NODE, DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE } from './constants';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type === 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tconst warnedComponents = { useEffect: {}, useLayoutEffect: {}, lazyPropTypes: {} };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then === 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error('Missing Suspense. The throwing component was: ' + getDisplayName(vnode));\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error('Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.');\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE: isValid = true; break;\n\t\t\tdefault: isValid = false;\n\t\t}\n\t\tif (!isValid) throw new Error(`\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived ${parentNode} instead: render(<${vnode.type.name || vnode.type} />, ${parentNode});\n\t\t`);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (vnode == null) { return; }\n\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type===undefined) {\n\t\t\tthrow new Error('Undefined component passed to createElement()\\n\\n'+\n\t\t\t'You likely forgot to export your component or might have mixed up default and named imports'+\n\t\t\tserializeVNode(vnode));\n\t\t}\n\t\telse if (type!=null && typeof type==='object') {\n\t\t\tif (type._lastDomChild!==undefined && type._dom!==undefined) {\n\t\t\t\tlet info = 'Did you accidentally pass a JSX literal as JSX twice?\\n\\n'+\n\t\t\t\t' let My'+getDisplayName(type)+' = '+serializeVNode(type)+';\\n'+\n\t\t\t\t' let vnode = <My'+getDisplayName(type)+' />;\\n\\n'+\n\t\t\t\t'This usually happens when you export a JSX literal and not the component.';\n\t\t\t\tthrow new Error('Invalid type passed to createElement(): '+type+'\\n\\n'+info+'\\n');\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid type passed to createElement(): '+(Array.isArray(type) ? 'array' : type));\n\t\t}\n\n\t\tif ((type==='thead' || type==='tfoot' || type==='thead') && parentVNode.type!=='table') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <thead/tbody/tfoot> should have a <table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (\n\t\t\ttype==='tr' && (\n\t\t\t\tparentVNode.type!=='thead' &&\n\t\t\t\tparentVNode.type!=='tfoot' &&\n\t\t\t\tparentVNode.type!=='tbody' &&\n\t\t\t\tparentVNode.type!=='table'\n\t\t\t)) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <tr> should have a <thead/tbody/tfoot/table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='td' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t\t'Your <td> should have a <tr> parent.'\n\t\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='th' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <th> should have a <tr>.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref!==undefined &&\n\t\t\ttypeof vnode.ref!=='function' &&\n\t\t\ttypeof vnode.ref!=='object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\tserializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type==='string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (key[0]==='o' && key[1]==='n' && typeof vnode.props[key]!=='function' && vnode.props[key]!=null) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type==='function' && vnode.type.propTypes) {\n\t\t\tif (vnode.type.displayName === 'Lazy' && !warnedComponents.lazyPropTypes[vnode.type]) {\n\t\t\t\tconst m = 'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes[vnode.type] = true;\n\t\t\t\t\tconsole.warn(m + 'Component wrapped in lazy() is ' + (lazyVNode.type.displayName || lazyVNode.type.name));\n\t\t\t\t}\n\t\t\t\tcatch (promise) {\n\t\t\t\t\tconsole.warn(m + 'We will log the wrapped component\\'s name once it is loaded.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(vnode.type.propTypes, vnode.props, getDisplayName(vnode), serializeVNode(vnode));\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = (comp) => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\toptions.vnode = (vnode) => {\n\t\tlet source, self;\n\t\tif (vnode.props && vnode.props.__source) {\n\t\t\tsource = vnode.props.__source;\n\t\t\tdelete vnode.props.__source;\n\t\t}\n\t\tif (vnode.props && vnode.props.__self) {\n\t\t\tself = vnode.props.__self;\n\t\t\tdelete vnode.props.__self;\n\t\t}\n\t\tvnode.__self = self;\n\t\tvnode.__source = source;\n\t\tObject.defineProperties(vnode, deprecatedAttributes);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tif (vnode == null) { return; }\n\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tlet hooks = vnode._component.__hooks;\n\t\t\thooks._list.forEach(hook => {\n\t\t\t\tif (hook._callback && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`In ${vnode.type.name || vnode.type} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (hooks._pendingEffects.length > 0) {\n\t\t\t\thooks._pendingEffects.forEach((effect) => {\n\t\t\t\t\tif ((!effect._args || !Array.isArray(effect._args)) && !warnedComponents.useEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (hooks._pendingLayoutEffects.length > 0) {\n\t\t\t\thooks._pendingLayoutEffects.forEach((layoutEffect) => {\n\t\t\t\t\tif ((!layoutEffect._args || !Array.isArray(layoutEffect._args)) && !warnedComponents.useLayoutEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useLayoutEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key==null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n}\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tif (props) {\n\t\tfor (let prop in props) {\n\t\t\tif (props.hasOwnProperty(prop) && prop!=='children') {\n\t\t\t\tlet value = props[prop];\n\n\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t}\n\n\t\t\t\tvalue = Object(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${children && children.length\n\t\t? '>..</'+name+'>'\n\t\t: ' />'}`;\n}\n","import { getData, getChildren, getInstance, hasDataChanged, isRoot } from './custom';\n\n/**\n * Custom renderer tailored for Preact. It converts updated vnode trees\n * to events the devtools can understand.\n * @class Renderer\n */\nexport class Renderer {\n\tconstructor(hook, rid) {\n\n\t\t/** @type {string} */\n\t\tthis.rid = rid;\n\t\tthis.hook = hook;\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tthis.pending = [];\n\n\t\t/**\n\t\t * Store the instance of a vnode. This will be later used to decide if a\n\t\t * vnode needs to be mounted or updated. For components the instance refers\n\t\t * to the actuall class instance whereas for dom nodes it refers to the\n\t\t * underlying dom element.\n\t\t * @type {WeakMap<import('../internal').Component | import('../internal').PreactElement | HTMLElement | Text, import('../internal').VNode>}\n\t\t */\n\t\tthis.inst2vnode = new WeakMap();\n\t\tthis.connected = false;\n\t}\n\n\t/**\n\t * Mark the connection status as ready so that we can proceed\n\t * to actually flush events.\n\t */\n\tmarkConnected() {\n\t\tthis.connected = true;\n\t\tthis.flushPendingEvents();\n\t}\n\n\t/**\n\t * Flush all queued events\n\t */\n\tflushPendingEvents() {\n\t\tif (!this.connected) return;\n\n\t\tlet events = this.pending;\n\t\tthis.pending = [];\n\t\tfor (let i = 0; i < events.length; i++) {\n\t\t\tlet event = events[i];\n\t\t\tthis.hook.emit(event.type, event);\n\t\t}\n\t}\n\n\t/**\n\t * Recursively mount a vnode tree. Note that the devtools expectes the tree to\n\t * be mounted from the bottom up, otherwise the order will be messed up.\n\t * Therefore we mount children prior to mounting the vnode itself.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tmount(vnode) {\n\t\tthis.inst2vnode.set(getInstance(vnode), vnode);\n\t\tlet data = getData(vnode);\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tlet work = [{\n\t\t\tinternalInstance: vnode,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'mount'\n\t\t}];\n\n\t\t// Children must be mounted first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tlet stack = data.children.slice();\n\t\t\tlet item;\n\t\t\twhile ((item = stack.pop())!=null) {\n\t\t\t\tlet children = getChildren(item);\n\t\t\t\tstack.push(...children);\n\n\t\t\t\tthis.inst2vnode.set(getInstance(item), item);\n\n\t\t\t\tlet data = getData(item);\n\n\t\t\t\twork.push({\n\t\t\t\t\tinternalInstance: item,\n\t\t\t\t\tdata,\n\t\t\t\t\trenderer: this.rid,\n\t\t\t\t\ttype: 'mount'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = work.length; --i>=0;) {\n\t\t\tthis.pending.push(work[i]);\n\t\t}\n\n\t\t// Special event if we have a root\n\t\tif (isRoot(vnode)) {\n\t\t\tthis.pending.push({\n\t\t\t\tinternalInstance: vnode,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'root'\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Update a vnode tree\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tupdate(vnode) {\n\t\tlet data = getData(vnode);\n\n\t\t// Children must be updated first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tfor (let i = 0; i < data.children.length; i++) {\n\t\t\t\tlet child = data.children[i];\n\t\t\t\tlet inst = getInstance(child);\n\n\t\t\t\tlet prevChild = this.inst2vnode.get(inst);\n\t\t\t\tif (prevChild==null) this.mount(child);\n\t\t\t\telse this.update(child);\n\n\t\t\t\t// Mutate child to keep referential equality intact\n\t\t\t\tdata.children[i] = this.inst2vnode.get(inst);\n\t\t\t}\n\t\t}\n\n\t\tlet prev = this.inst2vnode.get(data.publicInstance);\n\n\t\t// The `updateProfileTimes` event is a faster version of `updated` and\n\t\t// is processed much quicker inside the devtools extension.\n\t\tif (!hasDataChanged(prev, vnode)) {\n\t\t\t// Always assume profiling data has changed. When we skip an event here\n\t\t\t// the devtools element picker will somehow break.\n\t\t\tthis.pending.push({\n\t\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t\t// vnode/fiber shape.\n\t\t\t\tinternalInstance: prev,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'updateProfileTimes'\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t// vnode/fiber shape.\n\t\t\tinternalInstance: prev,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'update'\n\t\t});\n\t}\n\n\t/**\n\t * Pass a rendered tree to the devtools. At this point elements have already\n\t * unmounted, so we don't need to check for removals and only update vs mount\n\t * instead.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberRoot(vnode) {\n\t\tlet inst = getInstance(vnode);\n\n\t\tif (this.inst2vnode.has(inst)) this.update(vnode);\n\t\telse this.mount(vnode);\n\n\t\t// The devtools checks via the existance of this property if the devtools\n\t\t// profiler should be enabled or not. If it is missing from the first root\n\t\t// node the \"Profiler\" tab won't show up.\n\t\t/** @type {import('../internal').VNode} */\n\t\tlet root = null;\n\t\tif (isRoot(vnode)) {\n\n\t\t\t/** @type {*} */\n\t\t\t(vnode).treeBaseDuration = 0;\n\t\t\troot = vnode;\n\t\t}\n\t\telse {\n\t\t\t// \"rootCommitted\" always needs the actual root node for the profiler\n\t\t\t// to be able to collect timings. The `_parent` property will\n\t\t\t// point to a vnode for a root node.\n\t\t\troot = vnode;\n\t\t\twhile (root._parent!=null) {\n\t\t\t\troot = root._parent;\n\t\t\t}\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: root,\n\t\t\trenderer: this.rid,\n\t\t\tdata: getData(root),\n\t\t\ttype: 'rootCommitted'\n\t\t});\n\n\t\tthis.flushPendingEvents();\n\t\treturn vnode;\n\t}\n\n\t/**\n\t * Unmount a vnode recursively. Contrary to mounting or updating unmounting needs\n\t * to push the events in parent-first order. Because `options.unmount` is\n\t * already fired in parent-first order we don't need to traverse anything here.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberUnmount(vnode) {\n\t\tlet inst = getInstance(vnode);\n\t\tthis.inst2vnode.delete(inst);\n\n\t\t// Special case when unmounting a root (most prominently caused by webpack's\n\t\t// `hot-module-reloading`). If this happens we need to unmount the virtual\n\t\t// `Fragment` we're wrapping around each root just for the devtools.\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: vnode,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'unmount'\n\t\t});\n\t}\n\n\t/**\n\t * Get the dom element by a vnode\n\t * @param {import('../internal').VNode} vnode\n\t * @returns {import('../internal').PreactElement | Text}\n\t */\n\tgetNativeFromReactElement(vnode) {\n\t\treturn vnode._dom;\n\t}\n\n\t/**\n\t * Get a vnode by a dom element\n\t * @param {import('../internal').PreactElement | Text} dom\n\t * @returns {import('../internal').VNode | null}\n\t */\n\tgetReactElementFromNative(dom) {\n\t\treturn this.inst2vnode.get(dom) || null;\n\t}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\twalkTree() {}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\tcleanup() {}\n}\n","import { options, Component, Fragment } from 'preact';\nimport { Renderer } from './renderer';\n\n/**\n * Wrap function with generic error logging\n *\n * @param {*} fn\n * @returns\n */\nfunction catchErrors(fn) {\n\treturn function(arg) {\n\t\ttry {\n\t\t\treturn fn(arg);\n\t\t}\n\t\tcatch (e) {\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error('The react devtools encountered an error');\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error(e); // eslint-disable-line no-console\n\t\t}\n\t};\n}\n\n/* istanbul ignore next */\nlet noop = () => undefined;\n\nexport function initDevTools() {\n\t// This global variable is injected by the devtools\n\t/** @type {import('../internal').DevtoolsWindow} */\n\tlet hook = (window).__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\tif (hook==null) return;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitRoot = noop;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitUnmount = noop;\n\n\t// Initialize our custom renderer\n\tlet rid = Math.random().toString(16).slice(2);\n\tlet preactRenderer = new Renderer(hook, rid);\n\n\tcatchErrors(() => {\n\t\tlet isDev = false;\n\t\ttry {\n\t\t\tisDev = process.env.NODE_ENV!=='production';\n\t\t}\n\t\tcatch (e) {}\n\n\t\t// Tell devtools which bundle type we run in\n\t\twindow.parent.postMessage({\n\t\t\tsource: 'react-devtools-detector',\n\t\t\treactBuildType: /* istanbul ignore next */ isDev\n\t\t\t\t? 'development'\n\t\t\t\t: 'production'\n\t\t}, '*');\n\n\t\tlet renderer = {\n\t\t\tbundleType: /* istanbul ignore next */ isDev ? 1 : 0,\n\t\t\tversion: '16.5.2',\n\t\t\trendererPackageName: 'preact',\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindHostInstanceByFiber(vnode) {\n\t\t\t\treturn vnode._dom;\n\t\t\t},\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindFiberByHostInstance(instance) {\n\t\t\t\treturn preactRenderer.inst2vnode.get(instance) || null;\n\t\t\t}\n\t\t};\n\n\t\thook._renderers[rid] = renderer;\n\n\t\t// We can't bring our own `attachRenderer` function therefore we simply\n\t\t// prevent the devtools from overwriting our custom renderer by creating\n\t\t// a noop setter.\n\t\tObject.defineProperty(hook.helpers, rid, {\n\t\t\tget: () => preactRenderer,\n\t\t\tset: () => {\n\t\t\t\tif (!preactRenderer.connected) {\n\t\t\t\t\thelpers.markConnected();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tlet helpers = hook.helpers[rid];\n\n\t\t// Tell the devtools that we are ready to start\n\t\thook.emit('renderer-attached', {\n\t\t\tid: rid,\n\t\t\trenderer,\n\t\t\thelpers\n\t\t});\n\n\t\tonCommitRoot = catchErrors(root => {\n\t\t\t// Empty root\n\t\t\tif (root.type===Fragment && root._children.length==0) return;\n\n\t\t\tlet roots = hook.getFiberRoots(rid);\n\t\t\troot = helpers.handleCommitFiberRoot(root);\n\t\t\tif (!roots.has(root)) roots.add(root);\n\t\t});\n\n\t\tonCommitUnmount = catchErrors(vnode => {\n\t\t\thook.onCommitFiberUnmount(rid, vnode);\n\t\t});\n\t})();\n\n\t// Store (possible) previous hooks so that we don't overwrite them\n\tlet prevVNodeHook = options.vnode;\n\tlet prevCommitRoot = options._commit;\n\tlet prevBeforeUnmount = options.unmount;\n\tlet prevBeforeDiff = options._diff;\n\tlet prevAfterDiff = options.diffed;\n\n\toptions.vnode = (vnode) => {\n\t\t// Tiny performance improvement by initializing fields as doubles\n\t\t// from the start. `performance.now()` will always return a double.\n\t\t// See https://github.com/facebook/react/issues/14365\n\t\t// and https://slidr.io/bmeurer/javascript-engine-fundamentals-the-good-the-bad-and-the-ugly\n\t\tvnode.startTime = NaN;\n\t\tvnode.endTime = NaN;\n\n\t\tvnode.startTime = 0;\n\t\tvnode.endTime = -1;\n\t\tif (prevVNodeHook) prevVNodeHook(vnode);\n\t};\n\n\toptions._diff = (vnode) => {\n\t\tvnode.startTime = now();\n\t\tif (prevBeforeDiff!=null) prevBeforeDiff(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tvnode.endTime = now();\n\t\tif (prevAfterDiff!=null) prevAfterDiff(vnode);\n\t};\n\n\toptions._commit = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevCommitRoot!=null) prevCommitRoot(vnode);\n\n\t\t// These cases are already handled by `unmount`\n\t\tif (vnode==null) return;\n\t\tonCommitRoot(vnode);\n\t});\n\n\toptions.unmount = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevBeforeUnmount!=null) prevBeforeUnmount(vnode);\n\t\tonCommitUnmount(vnode);\n\t});\n\n\t// Inject tracking into setState\n\tconst setState = Component.prototype.setState;\n\tComponent.prototype.setState = function(update, callback) {\n\t\t// Duplicated in setState() but doesn't matter due to the guard.\n\t\tlet s = (this._nextState!==this.state && this._nextState) || (this._nextState = Object.assign({}, this.state));\n\n\t\t// Needed in order to check if state has changed after the tree has been committed:\n\t\tthis._prevState = Object.assign({}, s);\n\n\t\treturn setState.call(this, update, callback);\n\t};\n}\n\n/**\n * Get current timestamp in ms. Used for profiling.\n * @returns {number}\n */\nexport let now = Date.now;\n\ntry {\n\t/* istanbul ignore else */\n\tnow = performance.now.bind(performance);\n}\ncatch (e) {}\n","import { initDebug } from './debug';\nimport { initDevTools } from './devtools';\n\nif (process.env.NODE_ENV==='development') {\n\tinitDebug();\n\tinitDevTools();\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n"],"names":["const","loggedTypeFailures","getNodeType","vnode","type","Fragment","getDisplayName","displayName","name","setIn","obj","path","value","last","pop","parent","reduce","acc","attr","getData","c","_component","updater","Component","setState","bind","forceUpdate","setInState","prev","setInProps","props","setInContext","context","children","getChildren","duration","endTime","startTime","nodeType","ref","key","text","state","length","publicInstance","getInstance","memoizedInteractions","actualDuration","actualStartTime","treeBaseDuration","_children","filter","Boolean","isRoot","_parent","_dom","parentNode","shallowEqual","a","b","isProps","let","Object","keys","serializeVNode","attrs","prop","hasOwnProperty","toString","prototype","call","JSON","stringify","Renderer","constructor","hook","rid","pending","inst2vnode","WeakMap","connected","catchErrors","fn","arg","e","console","error","markConnected","flushPendingEvents","this","events","i","event","emit","mount","set","data","work","renderer","Array","isArray","item","stack","slice","push","update","child","inst","get","next","_prevState","hasDataChanged","handleCommitFiberRoot","has","root","handleCommitFiberUnmount","delete","getNativeFromReactElement","getReactElementFromNative","dom","walkTree","cleanup","noop","now","Date","performance","process","env","NODE_ENV","oldBeforeDiff","options","_diff","oldDiffed","diffed","oldVnode","oldCatchError","_catchError","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","oldVNode","then","promise","Error","_childDidSuspend","_root","isValid","typeSpecs","values","location","componentName","parentVNode","getClosestDomNodeParent","undefined","_lastDomChild","info","propTypes","m","lazyVNode","warn","forEach","typeSpecName","message","_hook","comp","property","err","deprecatedAttributes","nodeName","attributes","source","self","__source","__self","defineProperties","__hooks","hooks","_list","_callback","_args","_pendingEffects","effect","_pendingLayoutEffects","layoutEffect","indexOf","initDebug","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","onCommitRoot","onCommitUnmount","Math","random","preactRenderer","isDev","postMessage","reactBuildType","bundleType","version","rendererPackageName","findHostInstanceByFiber","findFiberByHostInstance","instance","_renderers","defineProperty","helpers","id","roots","getFiberRoots","add","onCommitFiberUnmount","prevVNodeHook","prevCommitRoot","_commit","prevBeforeUnmount","unmount","prevBeforeDiff","prevAfterDiff","NaN","callback","s","_nextState","assign","initDevTools"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("preact")):"function"==typeof define&&define.amd?define(["preact"],n):n(e.preact)}(this,function(e){var n={};function t(n){return n.type===e.Fragment?"Wrapper":"function"==typeof n.type?"Composite":"string"==typeof n.type?"Native":"Text"}function r(n){return n.type===e.Fragment?"Fragment":"function"==typeof n.type?n.type.displayName||n.type.name:"string"==typeof n.type?n.type:"#text"}function o(e,n,t){var r=n.pop(),o=n.reduce(function(e,n){return e?e[n]:null},e);o&&(o[r]=t)}function i(n){var i=n.__c,u=null;null!=i&&i instanceof e.Component&&(u={setState:i.setState.bind(i),forceUpdate:i.forceUpdate.bind(i),setInState:function(e,n){i.setState(function(t){return o(t,e,n),t})},setInProps:function(e,t){o(n.props,e,t),i.setState({})},setInContext:function(e,n){o(i.context,e,n),i.setState({})}});var s=a(n),c=n.endTime-n.startTime;return{nodeType:t(n),type:n.type,name:r(n),ref:n.ref||null,key:n.key||null,updater:u,text:null===n.type?n.props:null,state:null!=i&&i instanceof e.Component?i.state:null,props:n.props,children:null!==n.type?null!=s&&1==s.length&&null===s[0].type?s[0].props:s:null,publicInstance:l(n),memoizedInteractions:[],actualDuration:c,actualStartTime:n.startTime,treeBaseDuration:c}}function a(e){return null==e.__c?null!=e.__k?e.__k.filter(Boolean):[]:null!=e.__k?e.__k.filter(Boolean):null}function u(n){return n.type===e.Fragment&&null===n.__p}function l(n){return u(n)?n.__k.length>0&&null!=n.__k[0]&&null!=n.__k[0].__e?n.__k[0].__e.parentNode:n:null!=n.__c?n.__c:n.type===e.Fragment?n.props:n.__e}function s(e,n,t){if(null==e||null==n)return!1;for(var r in e)if((!t||"children"!=r||null==n[r])&&e[r]!==n[r])return!1;return Object.keys(e).length===Object.keys(n).length}function c(e){var n=e.props,t=r(e),o="";if(n)for(var i in n)if(n.hasOwnProperty(i)&&"children"!==i){var a=n[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),o+=" "+i+"="+JSON.stringify(a)}var u=n.children;return"<"+t+o+(u&&u.length?">..</"+t+">":" />")}var f=function(e,n){this.rid=n,this.hook=e,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function d(e){return function(n){try{return e(n)}catch(e){console.error("The react devtools encountered an error"),console.error(e)}}}f.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},f.prototype.flushPendingEvents=function(){if(this.connected){var e=this.pending;this.pending=[];for(var n=0;n<e.length;n++){var t=e[n];this.hook.emit(t.type,t)}}},f.prototype.mount=function(e){this.inst2vnode.set(l(e),e);var n=i(e),t=[{internalInstance:e,data:n,renderer:this.rid,type:"mount"}];if(Array.isArray(n.children))for(var r,o=n.children.slice();null!=(r=o.pop());){var s=a(r);o.push.apply(o,s),this.inst2vnode.set(l(r),r);var c=i(r);t.push({internalInstance:r,data:c,renderer:this.rid,type:"mount"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);u(e)&&this.pending.push({internalInstance:e,data:n,renderer:this.rid,type:"root"})},f.prototype.update=function(e){var n=i(e);if(Array.isArray(n.children))for(var t=0;t<n.children.length;t++){var r=n.children[t],o=l(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),n.children[t]=this.inst2vnode.get(o)}var a=this.inst2vnode.get(n.publicInstance);!function(e,n){return e.props!==n.props&&!s(e.props,n.props,!0)||null!=e.__c&&!s(n.__c.__u,n.__c.state)||e.__e!==n.__e||e.ref!==n.ref}(a,e)?this.pending.push({internalInstance:a,data:n,renderer:this.rid,type:"updateProfileTimes"}):this.pending.push({internalInstance:a,data:n,renderer:this.rid,type:"update"})},f.prototype.handleCommitFiberRoot=function(e){var n=l(e);this.inst2vnode.has(n)?this.update(e):this.mount(e);var t=null;if(u(e))e.treeBaseDuration=0,t=e;else for(t=e;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:i(t),type:"rootCommitted"}),this.flushPendingEvents(),e},f.prototype.handleCommitFiberUnmount=function(e){var n=l(e);this.inst2vnode.delete(n),this.pending.push({internalInstance:e,renderer:this.rid,type:"unmount"})},f.prototype.getNativeFromReactElement=function(e){return e.__e},f.prototype.getReactElementFromNative=function(e){return this.inst2vnode.get(e)||null},f.prototype.walkTree=function(){},f.prototype.cleanup=function(){};var h=function(){},p=Date.now;try{p=performance.now.bind(performance)}catch(e){}"development"===process.env.NODE_ENV&&(function(){var t=e.options.__b,o=e.options.diffed,i=e.options.vnode,a=e.options.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};e.options.__e=function(e,n,t){if(n&&n.__c&&"function"==typeof e.then){var o=e;e=new Error("Missing Suspense. The throwing component was: "+r(n));for(var i=n;i;i=i.__p)if(i.__c&&i.__c.t){e=o;break}}a(e,n,t)},e.options.__p=function(e,n){if(!n)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var t;switch(n.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error("\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived "+n+" instead: render(<"+(e.type.name||e.type)+" />, "+n+");\n\t\t")},e.options.__b=function(e){if(null!=e){var o,i,a,l,s=e.type,f=function e(n){return n?"function"==typeof n.type?e(n.__p):n:{}}(e.__p);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+c(e));if(null!=s&&"object"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var d="Did you accidentally pass a JSX literal as JSX twice?\n\n let My"+r(s)+" = "+c(s)+";\n let vnode = <My"+r(s)+" />;\n\nThis usually happens when you export a JSX literal and not the component.";throw new Error("Invalid type passed to createElement(): "+s+"\n\n"+d+"\n")}throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"thead"!==s||"table"===f.type?"tr"===s&&"thead"!==f.type&&"tfoot"!==f.type&&"tbody"!==f.type&&"table"!==f.type?console.error("Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent."+c(e)):"td"===s&&"tr"!==f.type?console.error("Improper nesting of table.Your <td> should have a <tr> parent."+c(e)):"th"===s&&"tr"!==f.type&&console.error("Improper nesting of table.Your <th> should have a <tr>."+c(e)):console.error("Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent."+c(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+c(e));if("string"==typeof e.type)for(var h in e.props)if("o"===h[0]&&"n"===h[1]&&"function"!=typeof e.props[h]&&null!=e.props[h])throw new Error("Component's \""+h+'" property should be a function, but got ['+typeof e.props[h]+"] instead\n"+c(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&!u.lazyPropTypes[e.type]){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var v=e.type();u.lazyPropTypes[e.type]=!0,console.warn(p+"Component wrapped in lazy() is "+(v.type.displayName||v.type.name))}catch(e){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}o=e.type.propTypes,i=e.props,a=r(e),l=c(e),Object.keys(o).forEach(function(e){var t;try{t=o[e](i,e,l,a,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){t=e}!t||t.message in n||(n[t.message]=!0,console.error("Failed "+a+" type: "+t.message))})}t&&t(e)}},e.options.__h=function(e){if(!e)throw new Error("Hook can only be invoked from render methods.")};var l=function(e,n){return{get:function(){throw new Error("getting vnode."+e+" is deprecated, "+n)},set:function(){throw new Error("setting vnode."+e+" is not allowed, "+n)}}},s={nodeName:l("nodeName","use vnode.type"),attributes:l("attributes","use vnode.props"),children:l("children","use vnode.props.children")};e.options.vnode=function(e){var n,t;e.props&&e.props.i&&(n=e.props.i,delete e.props.i),e.props&&e.props.u&&(t=e.props.u,delete e.props.u),e.u=t,e.i=n,Object.defineProperties(e,s),i&&i(e)},e.options.diffed=function(e){if(null!=e){if(e.__c&&e.__c.l){var n=e.__c.l;n.s.forEach(function(n){!n.h||n.p&&Array.isArray(n.p)||console.warn("In "+(e.type.name||e.type)+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.")}),n.v.length>0&&n.v.forEach(function(n){n.p&&Array.isArray(n.p)||u.useEffect[e.type]||(u.useEffect[e.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(e.type.name||e.type)+"."))}),n.m.length>0&&n.m.forEach(function(n){n.p&&Array.isArray(n.p)||u.useLayoutEffect[e.type]||(u.useLayoutEffect[e.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useLayoutEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(e.type.name||e.type)+"."))})}if(null!=e.__k)for(var t=[],r=0;r<e.__k.length;r++){var i=e.__k[r];if(i&&null!=i.key){var a=i.key;if(-1!==t.indexOf(a)){console.error('Following component has two or more children with the same key attribute: "'+a+'". This may cause glitches and misbehavior in rendering process. Component: \n\n'+c(e));break}t.push(a)}}o&&o(e)}}}(),function(){var n=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=n){var t=h,r=h,o=Math.random().toString(16).slice(2),i=new f(n,o);d(function(){var a=!1;try{a="production"!==process.env.NODE_ENV}catch(e){}window.parent.postMessage({source:"react-devtools-detector",reactBuildType:a?"development":"production"},"*");var u={bundleType:a?1:0,version:"16.5.2",rendererPackageName:"preact",findHostInstanceByFiber:function(e){return e.__e},findFiberByHostInstance:function(e){return i.inst2vnode.get(e)||null}};n._renderers[o]=u,Object.defineProperty(n.helpers,o,{get:function(){return i},set:function(){i.connected||l.markConnected()}});var l=n.helpers[o];n.emit("renderer-attached",{id:o,renderer:u,helpers:l}),t=d(function(t){if(t.type!==e.Fragment||0!=t.__k.length){var r=n.getFiberRoots(o);t=l.handleCommitFiberRoot(t),r.has(t)||r.add(t)}}),r=d(function(e){n.onCommitFiberUnmount(o,e)})})();var a=e.options.vnode,u=e.options.__c,l=e.options.unmount,s=e.options.__b,c=e.options.diffed;e.options.vnode=function(e){e.startTime=NaN,e.endTime=NaN,e.startTime=0,e.endTime=-1,a&&a(e)},e.options.__b=function(e){e.startTime=p(),null!=s&&s(e)},e.options.diffed=function(e){e.endTime=p(),null!=c&&c(e)},e.options.__c=d(function(e){null!=u&&u(e),null!=e&&t(e)}),e.options.unmount=d(function(e){null!=l&&l(e),r(e)});var v=e.Component.prototype.setState;e.Component.prototype.setState=function(e,n){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),v.call(this,e,n)}}}())});
2
+ //# sourceMappingURL=debug.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.umd.js","sources":["../src/check-props.js","../src/devtools/custom.js","../src/debug.js","../src/devtools/renderer.js","../src/devtools/index.js","../src/index.js","../src/constants.js"],"sourcesContent":["const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\nexport function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\tObject.keys(typeSpecs).forEach((typeSpecName) => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t\t}\n\t\tcatch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(`Failed ${location} type: ${error.message}${getStack && getStack() || ''}`);\n\t\t}\n\t});\n}\n","import { Component, Fragment } from 'preact';\n\n/**\n * Get the type/category of a vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').NodeType}\n */\nexport function getNodeType(vnode) {\n\tif (vnode.type===Fragment) return 'Wrapper';\n\telse if (typeof vnode.type==='function') return 'Composite';\n\telse if (typeof vnode.type==='string') return 'Native';\n\treturn 'Text';\n}\n\n/**\n * Get human readable name of the component/dom element\n * @param {import('../internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type===Fragment) return 'Fragment';\n\telse if (typeof vnode.type==='function') return vnode.type.displayName || vnode.type.name;\n\telse if (typeof vnode.type==='string') return vnode.type;\n\treturn '#text';\n}\n\n/**\n * Deeply mutate a property by walking down an array of property keys\n * @param {object} obj\n * @param {Array<string | number>} path\n * @param {any} value\n */\nexport function setIn(obj, path, value) {\n\tlet last = path.pop();\n\tlet parent = path.reduce((acc, attr) => acc ? acc[attr] : null, obj);\n\tif (parent) {\n\t\tparent[last] = value;\n\t}\n}\n\n/**\n * Get devtools compatible data from vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').DevtoolData}\n */\nexport function getData(vnode) {\n\tlet c = vnode._component;\n\n\t/** @type {import('../internal').DevtoolsUpdater | null} */\n\tlet updater = null;\n\n\tif (c!=null && c instanceof Component) {\n\t\t// These functions will be called when the user changes state, props or\n\t\t// context values via the devtools ui panel\n\t\tupdater = {\n\t\t\tsetState: c.setState.bind(c),\n\t\t\tforceUpdate: c.forceUpdate.bind(c),\n\t\t\tsetInState(path, value) {\n\t\t\t\tc.setState(prev => {\n\t\t\t\t\tsetIn(prev, path, value);\n\t\t\t\t\treturn prev;\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInProps(path, value) {\n\t\t\t\tsetIn(vnode.props, path, value);\n\t\t\t\tc.setState({});\n\t\t\t},\n\t\t\tsetInContext(path, value) {\n\t\t\t\tsetIn(c.context, path, value);\n\t\t\t\tc.setState({});\n\t\t\t}\n\t\t};\n\t}\n\n\tlet children = getChildren(vnode);\n\n\tlet duration = vnode.endTime - vnode.startTime;\n\treturn {\n\t\tnodeType: getNodeType(vnode),\n\t\ttype: vnode.type,\n\t\tname: getDisplayName(vnode),\n\t\tref: vnode.ref || null,\n\t\tkey: vnode.key || null,\n\t\tupdater,\n\t\ttext: vnode.type===null ? vnode.props : null,\n\t\tstate: c!=null && c instanceof Component ? c.state : null,\n\t\tprops: vnode.props,\n\t\t// The devtools inline text children if they are the only child\n\t\tchildren: vnode.type!==null\n\t\t\t? children!=null && children.length==1 && children[0].type===null\n\t\t\t\t? children[0].props\n\t\t\t\t: children\n\t\t\t: null,\n\t\tpublicInstance: getInstance(vnode),\n\t\tmemoizedInteractions: [],\n\n\t\t// Profiler data\n\t\tactualDuration: duration,\n\t\tactualStartTime: vnode.startTime,\n\t\ttreeBaseDuration: duration\n\t};\n}\n\n/**\n * Get all rendered vnode children as an array. Moreover we need to filter\n * out `null` or other falsy children.\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').VNode[]}\n */\nexport function getChildren(vnode) {\n\tif (vnode._component==null) {\n\t\treturn vnode._children!=null ? vnode._children.filter(Boolean) : [];\n\t}\n\n\treturn vnode._children != null ? vnode._children.filter(Boolean) : null;\n}\n\n/**\n * Check if a vnode is a root node\n * @param {import('../internal').VNode} vnode\n * @returns {boolean}\n */\nexport function isRoot(vnode) {\n\t// Timings of root vnodes will never be set\n\treturn vnode.type===Fragment && vnode._parent === null;\n}\n\n/**\n * Cache a vnode by its instance and retrieve previous vnodes by the next\n * instance.\n *\n * We need this to be able to identify the previous vnode of a given instance.\n * For components we want to check if we already rendered it and use the class\n * instance as key. For html elements we use the dom node as key.\n *\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').Component | import('../internal').PreactElement | Text | null}\n */\nexport function getInstance(vnode) {\n\t// Use the parent element as instance for root nodes\n\tif (isRoot(vnode)) {\n\t\t// Edge case: When the tree only consists of components that have not rendered\n\t\t// anything into the DOM we revert to using the vnode as instance.\n\t\treturn vnode._children.length > 0 && vnode._children[0]!=null && vnode._children[0]._dom!=null\n\t\t\t? /** @type {import('../internal').PreactElement | null} */\n\t\t\t(vnode._children[0]._dom.parentNode)\n\t\t\t: vnode;\n\t}\n\tif (vnode._component!=null) return vnode._component;\n\tif (vnode.type===Fragment) return vnode.props;\n\treturn vnode._dom;\n}\n\n/**\n * Compare two objects\n * @param {object} a\n * @param {object} b\n * @param {boolean} [isProps]\n * @returns {boolean}\n */\nexport function shallowEqual(a, b, isProps) {\n\tif (a==null || b==null) return false;\n\n\tfor (let key in a) {\n\t\tif (isProps && key=='children' && b[key]!=null) continue;\n\t\tif (a[key]!==b[key]) return false;\n\t}\n\n\tif (Object.keys(a).length!==Object.keys(b).length) return false;\n\treturn true;\n}\n\n/**\n * Check if a vnode was actually updated\n * @param {import('../internal').VNode} next\n * @param {import('../internal').VNode} prev\n * @returns {boolean}\n */\nexport function hasDataChanged(prev, next) {\n\treturn (prev.props !== next.props && !shallowEqual(prev.props, next.props, true))\n\t\t|| (prev._component!=null &&\n\t\t\t!shallowEqual(next._component._prevState, next._component.state))\n\t\t|| prev._dom !== next._dom\n\t\t|| prev.ref !== next.ref;\n}\n","import { checkPropTypes } from './check-props';\nimport { getDisplayName } from './devtools/custom';\nimport { options } from 'preact';\nimport { ELEMENT_NODE, DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE } from './constants';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type === 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tconst warnedComponents = { useEffect: {}, useLayoutEffect: {}, lazyPropTypes: {} };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then === 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error('Missing Suspense. The throwing component was: ' + getDisplayName(vnode));\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error('Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.');\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE: isValid = true; break;\n\t\t\tdefault: isValid = false;\n\t\t}\n\t\tif (!isValid) throw new Error(`\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived ${parentNode} instead: render(<${vnode.type.name || vnode.type} />, ${parentNode});\n\t\t`);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (vnode == null) { return; }\n\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type===undefined) {\n\t\t\tthrow new Error('Undefined component passed to createElement()\\n\\n'+\n\t\t\t'You likely forgot to export your component or might have mixed up default and named imports'+\n\t\t\tserializeVNode(vnode));\n\t\t}\n\t\telse if (type!=null && typeof type==='object') {\n\t\t\tif (type._lastDomChild!==undefined && type._dom!==undefined) {\n\t\t\t\tlet info = 'Did you accidentally pass a JSX literal as JSX twice?\\n\\n'+\n\t\t\t\t' let My'+getDisplayName(type)+' = '+serializeVNode(type)+';\\n'+\n\t\t\t\t' let vnode = <My'+getDisplayName(type)+' />;\\n\\n'+\n\t\t\t\t'This usually happens when you export a JSX literal and not the component.';\n\t\t\t\tthrow new Error('Invalid type passed to createElement(): '+type+'\\n\\n'+info+'\\n');\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid type passed to createElement(): '+(Array.isArray(type) ? 'array' : type));\n\t\t}\n\n\t\tif ((type==='thead' || type==='tfoot' || type==='thead') && parentVNode.type!=='table') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <thead/tbody/tfoot> should have a <table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (\n\t\t\ttype==='tr' && (\n\t\t\t\tparentVNode.type!=='thead' &&\n\t\t\t\tparentVNode.type!=='tfoot' &&\n\t\t\t\tparentVNode.type!=='tbody' &&\n\t\t\t\tparentVNode.type!=='table'\n\t\t\t)) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <tr> should have a <thead/tbody/tfoot/table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='td' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t\t'Your <td> should have a <tr> parent.'\n\t\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='th' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <th> should have a <tr>.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref!==undefined &&\n\t\t\ttypeof vnode.ref!=='function' &&\n\t\t\ttypeof vnode.ref!=='object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\tserializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type==='string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (key[0]==='o' && key[1]==='n' && typeof vnode.props[key]!=='function' && vnode.props[key]!=null) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type==='function' && vnode.type.propTypes) {\n\t\t\tif (vnode.type.displayName === 'Lazy' && !warnedComponents.lazyPropTypes[vnode.type]) {\n\t\t\t\tconst m = 'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes[vnode.type] = true;\n\t\t\t\t\tconsole.warn(m + 'Component wrapped in lazy() is ' + (lazyVNode.type.displayName || lazyVNode.type.name));\n\t\t\t\t}\n\t\t\t\tcatch (promise) {\n\t\t\t\t\tconsole.warn(m + 'We will log the wrapped component\\'s name once it is loaded.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(vnode.type.propTypes, vnode.props, getDisplayName(vnode), serializeVNode(vnode));\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = (comp) => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\toptions.vnode = (vnode) => {\n\t\tlet source, self;\n\t\tif (vnode.props && vnode.props.__source) {\n\t\t\tsource = vnode.props.__source;\n\t\t\tdelete vnode.props.__source;\n\t\t}\n\t\tif (vnode.props && vnode.props.__self) {\n\t\t\tself = vnode.props.__self;\n\t\t\tdelete vnode.props.__self;\n\t\t}\n\t\tvnode.__self = self;\n\t\tvnode.__source = source;\n\t\tObject.defineProperties(vnode, deprecatedAttributes);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tif (vnode == null) { return; }\n\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tlet hooks = vnode._component.__hooks;\n\t\t\thooks._list.forEach(hook => {\n\t\t\t\tif (hook._callback && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`In ${vnode.type.name || vnode.type} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (hooks._pendingEffects.length > 0) {\n\t\t\t\thooks._pendingEffects.forEach((effect) => {\n\t\t\t\t\tif ((!effect._args || !Array.isArray(effect._args)) && !warnedComponents.useEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (hooks._pendingLayoutEffects.length > 0) {\n\t\t\t\thooks._pendingLayoutEffects.forEach((layoutEffect) => {\n\t\t\t\t\tif ((!layoutEffect._args || !Array.isArray(layoutEffect._args)) && !warnedComponents.useLayoutEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useLayoutEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key==null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n}\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tif (props) {\n\t\tfor (let prop in props) {\n\t\t\tif (props.hasOwnProperty(prop) && prop!=='children') {\n\t\t\t\tlet value = props[prop];\n\n\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t}\n\n\t\t\t\tvalue = Object(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${children && children.length\n\t\t? '>..</'+name+'>'\n\t\t: ' />'}`;\n}\n","import { getData, getChildren, getInstance, hasDataChanged, isRoot } from './custom';\n\n/**\n * Custom renderer tailored for Preact. It converts updated vnode trees\n * to events the devtools can understand.\n * @class Renderer\n */\nexport class Renderer {\n\tconstructor(hook, rid) {\n\n\t\t/** @type {string} */\n\t\tthis.rid = rid;\n\t\tthis.hook = hook;\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tthis.pending = [];\n\n\t\t/**\n\t\t * Store the instance of a vnode. This will be later used to decide if a\n\t\t * vnode needs to be mounted or updated. For components the instance refers\n\t\t * to the actuall class instance whereas for dom nodes it refers to the\n\t\t * underlying dom element.\n\t\t * @type {WeakMap<import('../internal').Component | import('../internal').PreactElement | HTMLElement | Text, import('../internal').VNode>}\n\t\t */\n\t\tthis.inst2vnode = new WeakMap();\n\t\tthis.connected = false;\n\t}\n\n\t/**\n\t * Mark the connection status as ready so that we can proceed\n\t * to actually flush events.\n\t */\n\tmarkConnected() {\n\t\tthis.connected = true;\n\t\tthis.flushPendingEvents();\n\t}\n\n\t/**\n\t * Flush all queued events\n\t */\n\tflushPendingEvents() {\n\t\tif (!this.connected) return;\n\n\t\tlet events = this.pending;\n\t\tthis.pending = [];\n\t\tfor (let i = 0; i < events.length; i++) {\n\t\t\tlet event = events[i];\n\t\t\tthis.hook.emit(event.type, event);\n\t\t}\n\t}\n\n\t/**\n\t * Recursively mount a vnode tree. Note that the devtools expectes the tree to\n\t * be mounted from the bottom up, otherwise the order will be messed up.\n\t * Therefore we mount children prior to mounting the vnode itself.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tmount(vnode) {\n\t\tthis.inst2vnode.set(getInstance(vnode), vnode);\n\t\tlet data = getData(vnode);\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tlet work = [{\n\t\t\tinternalInstance: vnode,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'mount'\n\t\t}];\n\n\t\t// Children must be mounted first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tlet stack = data.children.slice();\n\t\t\tlet item;\n\t\t\twhile ((item = stack.pop())!=null) {\n\t\t\t\tlet children = getChildren(item);\n\t\t\t\tstack.push(...children);\n\n\t\t\t\tthis.inst2vnode.set(getInstance(item), item);\n\n\t\t\t\tlet data = getData(item);\n\n\t\t\t\twork.push({\n\t\t\t\t\tinternalInstance: item,\n\t\t\t\t\tdata,\n\t\t\t\t\trenderer: this.rid,\n\t\t\t\t\ttype: 'mount'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = work.length; --i>=0;) {\n\t\t\tthis.pending.push(work[i]);\n\t\t}\n\n\t\t// Special event if we have a root\n\t\tif (isRoot(vnode)) {\n\t\t\tthis.pending.push({\n\t\t\t\tinternalInstance: vnode,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'root'\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Update a vnode tree\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tupdate(vnode) {\n\t\tlet data = getData(vnode);\n\n\t\t// Children must be updated first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tfor (let i = 0; i < data.children.length; i++) {\n\t\t\t\tlet child = data.children[i];\n\t\t\t\tlet inst = getInstance(child);\n\n\t\t\t\tlet prevChild = this.inst2vnode.get(inst);\n\t\t\t\tif (prevChild==null) this.mount(child);\n\t\t\t\telse this.update(child);\n\n\t\t\t\t// Mutate child to keep referential equality intact\n\t\t\t\tdata.children[i] = this.inst2vnode.get(inst);\n\t\t\t}\n\t\t}\n\n\t\tlet prev = this.inst2vnode.get(data.publicInstance);\n\n\t\t// The `updateProfileTimes` event is a faster version of `updated` and\n\t\t// is processed much quicker inside the devtools extension.\n\t\tif (!hasDataChanged(prev, vnode)) {\n\t\t\t// Always assume profiling data has changed. When we skip an event here\n\t\t\t// the devtools element picker will somehow break.\n\t\t\tthis.pending.push({\n\t\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t\t// vnode/fiber shape.\n\t\t\t\tinternalInstance: prev,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'updateProfileTimes'\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t// vnode/fiber shape.\n\t\t\tinternalInstance: prev,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'update'\n\t\t});\n\t}\n\n\t/**\n\t * Pass a rendered tree to the devtools. At this point elements have already\n\t * unmounted, so we don't need to check for removals and only update vs mount\n\t * instead.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberRoot(vnode) {\n\t\tlet inst = getInstance(vnode);\n\n\t\tif (this.inst2vnode.has(inst)) this.update(vnode);\n\t\telse this.mount(vnode);\n\n\t\t// The devtools checks via the existance of this property if the devtools\n\t\t// profiler should be enabled or not. If it is missing from the first root\n\t\t// node the \"Profiler\" tab won't show up.\n\t\t/** @type {import('../internal').VNode} */\n\t\tlet root = null;\n\t\tif (isRoot(vnode)) {\n\n\t\t\t/** @type {*} */\n\t\t\t(vnode).treeBaseDuration = 0;\n\t\t\troot = vnode;\n\t\t}\n\t\telse {\n\t\t\t// \"rootCommitted\" always needs the actual root node for the profiler\n\t\t\t// to be able to collect timings. The `_parent` property will\n\t\t\t// point to a vnode for a root node.\n\t\t\troot = vnode;\n\t\t\twhile (root._parent!=null) {\n\t\t\t\troot = root._parent;\n\t\t\t}\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: root,\n\t\t\trenderer: this.rid,\n\t\t\tdata: getData(root),\n\t\t\ttype: 'rootCommitted'\n\t\t});\n\n\t\tthis.flushPendingEvents();\n\t\treturn vnode;\n\t}\n\n\t/**\n\t * Unmount a vnode recursively. Contrary to mounting or updating unmounting needs\n\t * to push the events in parent-first order. Because `options.unmount` is\n\t * already fired in parent-first order we don't need to traverse anything here.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberUnmount(vnode) {\n\t\tlet inst = getInstance(vnode);\n\t\tthis.inst2vnode.delete(inst);\n\n\t\t// Special case when unmounting a root (most prominently caused by webpack's\n\t\t// `hot-module-reloading`). If this happens we need to unmount the virtual\n\t\t// `Fragment` we're wrapping around each root just for the devtools.\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: vnode,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'unmount'\n\t\t});\n\t}\n\n\t/**\n\t * Get the dom element by a vnode\n\t * @param {import('../internal').VNode} vnode\n\t * @returns {import('../internal').PreactElement | Text}\n\t */\n\tgetNativeFromReactElement(vnode) {\n\t\treturn vnode._dom;\n\t}\n\n\t/**\n\t * Get a vnode by a dom element\n\t * @param {import('../internal').PreactElement | Text} dom\n\t * @returns {import('../internal').VNode | null}\n\t */\n\tgetReactElementFromNative(dom) {\n\t\treturn this.inst2vnode.get(dom) || null;\n\t}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\twalkTree() {}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\tcleanup() {}\n}\n","import { options, Component, Fragment } from 'preact';\nimport { Renderer } from './renderer';\n\n/**\n * Wrap function with generic error logging\n *\n * @param {*} fn\n * @returns\n */\nfunction catchErrors(fn) {\n\treturn function(arg) {\n\t\ttry {\n\t\t\treturn fn(arg);\n\t\t}\n\t\tcatch (e) {\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error('The react devtools encountered an error');\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error(e); // eslint-disable-line no-console\n\t\t}\n\t};\n}\n\n/* istanbul ignore next */\nlet noop = () => undefined;\n\nexport function initDevTools() {\n\t// This global variable is injected by the devtools\n\t/** @type {import('../internal').DevtoolsWindow} */\n\tlet hook = (window).__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\tif (hook==null) return;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitRoot = noop;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitUnmount = noop;\n\n\t// Initialize our custom renderer\n\tlet rid = Math.random().toString(16).slice(2);\n\tlet preactRenderer = new Renderer(hook, rid);\n\n\tcatchErrors(() => {\n\t\tlet isDev = false;\n\t\ttry {\n\t\t\tisDev = process.env.NODE_ENV!=='production';\n\t\t}\n\t\tcatch (e) {}\n\n\t\t// Tell devtools which bundle type we run in\n\t\twindow.parent.postMessage({\n\t\t\tsource: 'react-devtools-detector',\n\t\t\treactBuildType: /* istanbul ignore next */ isDev\n\t\t\t\t? 'development'\n\t\t\t\t: 'production'\n\t\t}, '*');\n\n\t\tlet renderer = {\n\t\t\tbundleType: /* istanbul ignore next */ isDev ? 1 : 0,\n\t\t\tversion: '16.5.2',\n\t\t\trendererPackageName: 'preact',\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindHostInstanceByFiber(vnode) {\n\t\t\t\treturn vnode._dom;\n\t\t\t},\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindFiberByHostInstance(instance) {\n\t\t\t\treturn preactRenderer.inst2vnode.get(instance) || null;\n\t\t\t}\n\t\t};\n\n\t\thook._renderers[rid] = renderer;\n\n\t\t// We can't bring our own `attachRenderer` function therefore we simply\n\t\t// prevent the devtools from overwriting our custom renderer by creating\n\t\t// a noop setter.\n\t\tObject.defineProperty(hook.helpers, rid, {\n\t\t\tget: () => preactRenderer,\n\t\t\tset: () => {\n\t\t\t\tif (!preactRenderer.connected) {\n\t\t\t\t\thelpers.markConnected();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tlet helpers = hook.helpers[rid];\n\n\t\t// Tell the devtools that we are ready to start\n\t\thook.emit('renderer-attached', {\n\t\t\tid: rid,\n\t\t\trenderer,\n\t\t\thelpers\n\t\t});\n\n\t\tonCommitRoot = catchErrors(root => {\n\t\t\t// Empty root\n\t\t\tif (root.type===Fragment && root._children.length==0) return;\n\n\t\t\tlet roots = hook.getFiberRoots(rid);\n\t\t\troot = helpers.handleCommitFiberRoot(root);\n\t\t\tif (!roots.has(root)) roots.add(root);\n\t\t});\n\n\t\tonCommitUnmount = catchErrors(vnode => {\n\t\t\thook.onCommitFiberUnmount(rid, vnode);\n\t\t});\n\t})();\n\n\t// Store (possible) previous hooks so that we don't overwrite them\n\tlet prevVNodeHook = options.vnode;\n\tlet prevCommitRoot = options._commit;\n\tlet prevBeforeUnmount = options.unmount;\n\tlet prevBeforeDiff = options._diff;\n\tlet prevAfterDiff = options.diffed;\n\n\toptions.vnode = (vnode) => {\n\t\t// Tiny performance improvement by initializing fields as doubles\n\t\t// from the start. `performance.now()` will always return a double.\n\t\t// See https://github.com/facebook/react/issues/14365\n\t\t// and https://slidr.io/bmeurer/javascript-engine-fundamentals-the-good-the-bad-and-the-ugly\n\t\tvnode.startTime = NaN;\n\t\tvnode.endTime = NaN;\n\n\t\tvnode.startTime = 0;\n\t\tvnode.endTime = -1;\n\t\tif (prevVNodeHook) prevVNodeHook(vnode);\n\t};\n\n\toptions._diff = (vnode) => {\n\t\tvnode.startTime = now();\n\t\tif (prevBeforeDiff!=null) prevBeforeDiff(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tvnode.endTime = now();\n\t\tif (prevAfterDiff!=null) prevAfterDiff(vnode);\n\t};\n\n\toptions._commit = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevCommitRoot!=null) prevCommitRoot(vnode);\n\n\t\t// These cases are already handled by `unmount`\n\t\tif (vnode==null) return;\n\t\tonCommitRoot(vnode);\n\t});\n\n\toptions.unmount = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevBeforeUnmount!=null) prevBeforeUnmount(vnode);\n\t\tonCommitUnmount(vnode);\n\t});\n\n\t// Inject tracking into setState\n\tconst setState = Component.prototype.setState;\n\tComponent.prototype.setState = function(update, callback) {\n\t\t// Duplicated in setState() but doesn't matter due to the guard.\n\t\tlet s = (this._nextState!==this.state && this._nextState) || (this._nextState = Object.assign({}, this.state));\n\n\t\t// Needed in order to check if state has changed after the tree has been committed:\n\t\tthis._prevState = Object.assign({}, s);\n\n\t\treturn setState.call(this, update, callback);\n\t};\n}\n\n/**\n * Get current timestamp in ms. Used for profiling.\n * @returns {number}\n */\nexport let now = Date.now;\n\ntry {\n\t/* istanbul ignore else */\n\tnow = performance.now.bind(performance);\n}\ncatch (e) {}\n","import { initDebug } from './debug';\nimport { initDevTools } from './devtools';\n\nif (process.env.NODE_ENV==='development') {\n\tinitDebug();\n\tinitDevTools();\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n"],"names":["const","loggedTypeFailures","getNodeType","vnode","type","Fragment","getDisplayName","displayName","name","setIn","obj","path","value","last","pop","parent","reduce","acc","attr","getData","c","_component","updater","Component","setState","bind","forceUpdate","setInState","prev","setInProps","props","setInContext","context","children","getChildren","duration","endTime","startTime","nodeType","ref","key","text","state","length","publicInstance","getInstance","memoizedInteractions","actualDuration","actualStartTime","treeBaseDuration","_children","filter","Boolean","isRoot","_parent","_dom","parentNode","shallowEqual","a","b","isProps","let","Object","keys","serializeVNode","attrs","prop","hasOwnProperty","toString","prototype","call","JSON","stringify","Renderer","constructor","hook","rid","pending","inst2vnode","WeakMap","connected","catchErrors","fn","arg","e","console","error","markConnected","flushPendingEvents","this","events","i","event","emit","mount","set","data","work","renderer","Array","isArray","item","stack","slice","push","update","child","inst","get","next","_prevState","hasDataChanged","handleCommitFiberRoot","has","root","handleCommitFiberUnmount","delete","getNativeFromReactElement","getReactElementFromNative","dom","walkTree","cleanup","noop","now","Date","performance","process","env","NODE_ENV","oldBeforeDiff","options","_diff","oldDiffed","diffed","oldVnode","oldCatchError","_catchError","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","oldVNode","then","promise","Error","_childDidSuspend","_root","isValid","typeSpecs","values","location","componentName","parentVNode","getClosestDomNodeParent","undefined","_lastDomChild","info","propTypes","m","lazyVNode","warn","forEach","typeSpecName","message","_hook","comp","property","err","deprecatedAttributes","nodeName","attributes","source","self","__source","__self","defineProperties","__hooks","hooks","_list","_callback","_args","_pendingEffects","effect","_pendingLayoutEffects","layoutEffect","indexOf","initDebug","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","onCommitRoot","onCommitUnmount","Math","random","preactRenderer","isDev","postMessage","reactBuildType","bundleType","version","rendererPackageName","findHostInstanceByFiber","findFiberByHostInstance","instance","_renderers","defineProperty","helpers","id","roots","getFiberRoots","add","onCommitFiberUnmount","prevVNodeHook","prevCommitRoot","_commit","prevBeforeUnmount","unmount","prevBeforeDiff","prevAfterDiff","NaN","callback","s","_nextState","assign","initDevTools"],"mappings":"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"}
@@ -15,10 +15,11 @@ if (process.env.NODE_ENV === 'development') {
15
15
  if (
16
16
  attributes && attributes.ref !== void 0 &&
17
17
  typeof attributes.ref !== 'function' &&
18
+ typeof attributes.ref !== 'object' &&
18
19
  !('$$typeof' in vnode) // allow string refs when preact-compat is installed
19
20
  ) {
20
21
  throw new Error(
21
- `Component's "ref" property should be a function,` +
22
+ `Component's "ref" property should be a function or createRef() object,` +
22
23
  ` but [${typeof attributes.ref}] passed\n` + serializeVNode(vnode)
23
24
  );
24
25
  }
@@ -3,7 +3,9 @@ export as namespace preact;
3
3
 
4
4
  declare namespace preact {
5
5
  type Key = string | number;
6
- type Ref<T> = (instance: T) => void;
6
+ type RefObject<T> = { current?: T | null };
7
+ type RefCallback<T> = (instance: T | null) => void;
8
+ type Ref<T> = RefObject<T> | RefCallback<T>;
7
9
  type ComponentChild = VNode<any> | object | string | number | boolean | null;
8
10
  type ComponentChildren = ComponentChild[] | ComponentChild;
9
11
 
@@ -93,12 +95,41 @@ declare namespace preact {
93
95
  context: any;
94
96
  base?: HTMLElement;
95
97
 
96
- setState<K extends keyof S>(state: Pick<S, K>, callback?: () => void): void;
97
- setState<K extends keyof S>(fn: (prevState: S, props: P) => Pick<S, K>, callback?: () => void): void;
98
+ // From https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e836acc75a78cf0655b5dfdbe81d69fdd4d8a252/types/react/index.d.ts#L402
99
+ // // We MUST keep setState() as a unified signature because it allows proper checking of the method return type.
100
+ // // See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18365#issuecomment-351013257
101
+ // // Also, the ` | S` allows intellisense to not be dumbisense
102
+ setState<K extends keyof S>(
103
+ state: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null),
104
+ callback?: () => void
105
+ ): void;
98
106
 
99
107
  forceUpdate(callback?: () => void): void;
100
108
 
101
109
  abstract render(props?: RenderableProps<P>, state?: Readonly<S>, context?: any): ComponentChild;
110
+
111
+ // Add these variables to avoid descendants shadowing them (some from properties.json for minification)
112
+ private __key;
113
+ private __ref;
114
+ private _component;
115
+ private _dirty;
116
+ private _disable;
117
+ private nextBase;
118
+ private prevContext;
119
+ private prevProps;
120
+ private prevState;
121
+ private __d;
122
+ private __x;
123
+ private __l;
124
+ private __h;
125
+ private __k;
126
+ private __r;
127
+ private __n;
128
+ private __b;
129
+ private __c;
130
+ private __p;
131
+ private __s;
132
+ private __u;
102
133
  }
103
134
 
104
135
  function h(
@@ -115,6 +146,7 @@ declare namespace preact {
115
146
  function render(node: ComponentChild, parent: Element | Document | ShadowRoot | DocumentFragment, mergeWith?: Element): Element;
116
147
  function rerender(): void;
117
148
  function cloneElement(element: JSX.Element, props: any, ...children: ComponentChildren[]): JSX.Element;
149
+ function createRef<T=any>(): RefObject<T>;
118
150
 
119
151
  var options: {
120
152
  syncComponentUpdates?: boolean;
@@ -122,6 +154,778 @@ declare namespace preact {
122
154
  vnode?: (vnode: VNode<any>) => void;
123
155
  event?: (event: Event) => Event;
124
156
  };
157
+
158
+ namespace JSX {
159
+ interface Element extends preact.VNode<any> {
160
+ }
161
+
162
+ interface ElementClass extends preact.Component<any, any> {
163
+ }
164
+
165
+ interface ElementAttributesProperty {
166
+ props: any;
167
+ }
168
+
169
+ interface ElementChildrenAttribute {
170
+ children: any;
171
+ }
172
+
173
+ type LibraryManagedAttributes<Component, Props> =
174
+ Component extends { defaultProps: infer Defaults }
175
+ ? Defaultize<Props, Defaults>
176
+ : Props;
177
+
178
+ interface SVGAttributes extends HTMLAttributes {
179
+ accentHeight?: number | string;
180
+ accumulate?: "none" | "sum";
181
+ additive?: "replace" | "sum";
182
+ alignmentBaseline?: "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit";
183
+ allowReorder?: "no" | "yes";
184
+ alphabetic?: number | string;
185
+ amplitude?: number | string;
186
+ arabicForm?: "initial" | "medial" | "terminal" | "isolated";
187
+ ascent?: number | string;
188
+ attributeName?: string;
189
+ attributeType?: string;
190
+ autoReverse?: number | string;
191
+ azimuth?: number | string;
192
+ baseFrequency?: number | string;
193
+ baselineShift?: number | string;
194
+ baseProfile?: number | string;
195
+ bbox?: number | string;
196
+ begin?: number | string;
197
+ bias?: number | string;
198
+ by?: number | string;
199
+ calcMode?: number | string;
200
+ capHeight?: number | string;
201
+ clip?: number | string;
202
+ clipPath?: string;
203
+ clipPathUnits?: number | string;
204
+ clipRule?: number | string;
205
+ colorInterpolation?: number | string;
206
+ colorInterpolationFilters?: "auto" | "sRGB" | "linearRGB" | "inherit";
207
+ colorProfile?: number | string;
208
+ colorRendering?: number | string;
209
+ contentScriptType?: number | string;
210
+ contentStyleType?: number | string;
211
+ cursor?: number | string;
212
+ cx?: number | string;
213
+ cy?: number | string;
214
+ d?: string;
215
+ decelerate?: number | string;
216
+ descent?: number | string;
217
+ diffuseConstant?: number | string;
218
+ direction?: number | string;
219
+ display?: number | string;
220
+ divisor?: number | string;
221
+ dominantBaseline?: number | string;
222
+ dur?: number | string;
223
+ dx?: number | string;
224
+ dy?: number | string;
225
+ edgeMode?: number | string;
226
+ elevation?: number | string;
227
+ enableBackground?: number | string;
228
+ end?: number | string;
229
+ exponent?: number | string;
230
+ externalResourcesRequired?: number | string;
231
+ fill?: string;
232
+ fillOpacity?: number | string;
233
+ fillRule?: "nonzero" | "evenodd" | "inherit";
234
+ filter?: string;
235
+ filterRes?: number | string;
236
+ filterUnits?: number | string;
237
+ floodColor?: number | string;
238
+ floodOpacity?: number | string;
239
+ focusable?: number | string;
240
+ fontFamily?: string;
241
+ fontSize?: number | string;
242
+ fontSizeAdjust?: number | string;
243
+ fontStretch?: number | string;
244
+ fontStyle?: number | string;
245
+ fontVariant?: number | string;
246
+ fontWeight?: number | string;
247
+ format?: number | string;
248
+ from?: number | string;
249
+ fx?: number | string;
250
+ fy?: number | string;
251
+ g1?: number | string;
252
+ g2?: number | string;
253
+ glyphName?: number | string;
254
+ glyphOrientationHorizontal?: number | string;
255
+ glyphOrientationVertical?: number | string;
256
+ glyphRef?: number | string;
257
+ gradientTransform?: string;
258
+ gradientUnits?: string;
259
+ hanging?: number | string;
260
+ horizAdvX?: number | string;
261
+ horizOriginX?: number | string;
262
+ ideographic?: number | string;
263
+ imageRendering?: number | string;
264
+ in2?: number | string;
265
+ in?: string;
266
+ intercept?: number | string;
267
+ k1?: number | string;
268
+ k2?: number | string;
269
+ k3?: number | string;
270
+ k4?: number | string;
271
+ k?: number | string;
272
+ kernelMatrix?: number | string;
273
+ kernelUnitLength?: number | string;
274
+ kerning?: number | string;
275
+ keyPoints?: number | string;
276
+ keySplines?: number | string;
277
+ keyTimes?: number | string;
278
+ lengthAdjust?: number | string;
279
+ letterSpacing?: number | string;
280
+ lightingColor?: number | string;
281
+ limitingConeAngle?: number | string;
282
+ local?: number | string;
283
+ markerEnd?: string;
284
+ markerHeight?: number | string;
285
+ markerMid?: string;
286
+ markerStart?: string;
287
+ markerUnits?: number | string;
288
+ markerWidth?: number | string;
289
+ mask?: string;
290
+ maskContentUnits?: number | string;
291
+ maskUnits?: number | string;
292
+ mathematical?: number | string;
293
+ mode?: number | string;
294
+ numOctaves?: number | string;
295
+ offset?: number | string;
296
+ opacity?: number | string;
297
+ operator?: number | string;
298
+ order?: number | string;
299
+ orient?: number | string;
300
+ orientation?: number | string;
301
+ origin?: number | string;
302
+ overflow?: number | string;
303
+ overlinePosition?: number | string;
304
+ overlineThickness?: number | string;
305
+ paintOrder?: number | string;
306
+ panose1?: number | string;
307
+ pathLength?: number | string;
308
+ patternContentUnits?: string;
309
+ patternTransform?: number | string;
310
+ patternUnits?: string;
311
+ pointerEvents?: number | string;
312
+ points?: string;
313
+ pointsAtX?: number | string;
314
+ pointsAtY?: number | string;
315
+ pointsAtZ?: number | string;
316
+ preserveAlpha?: number | string;
317
+ preserveAspectRatio?: string;
318
+ primitiveUnits?: number | string;
319
+ r?: number | string;
320
+ radius?: number | string;
321
+ refX?: number | string;
322
+ refY?: number | string;
323
+ renderingIntent?: number | string;
324
+ repeatCount?: number | string;
325
+ repeatDur?: number | string;
326
+ requiredExtensions?: number | string;
327
+ requiredFeatures?: number | string;
328
+ restart?: number | string;
329
+ result?: string;
330
+ rotate?: number | string;
331
+ rx?: number | string;
332
+ ry?: number | string;
333
+ scale?: number | string;
334
+ seed?: number | string;
335
+ shapeRendering?: number | string;
336
+ slope?: number | string;
337
+ spacing?: number | string;
338
+ specularConstant?: number | string;
339
+ specularExponent?: number | string;
340
+ speed?: number | string;
341
+ spreadMethod?: string;
342
+ startOffset?: number | string;
343
+ stdDeviation?: number | string;
344
+ stemh?: number | string;
345
+ stemv?: number | string;
346
+ stitchTiles?: number | string;
347
+ stopColor?: string;
348
+ stopOpacity?: number | string;
349
+ strikethroughPosition?: number | string;
350
+ strikethroughThickness?: number | string;
351
+ string?: number | string;
352
+ stroke?: string;
353
+ strokeDasharray?: string | number;
354
+ strokeDashoffset?: string | number;
355
+ strokeLinecap?: "butt" | "round" | "square" | "inherit";
356
+ strokeLinejoin?: "miter" | "round" | "bevel" | "inherit";
357
+ strokeMiterlimit?: string;
358
+ strokeOpacity?: number | string;
359
+ strokeWidth?: number | string;
360
+ surfaceScale?: number | string;
361
+ systemLanguage?: number | string;
362
+ tableValues?: number | string;
363
+ targetX?: number | string;
364
+ targetY?: number | string;
365
+ textAnchor?: string;
366
+ textDecoration?: number | string;
367
+ textLength?: number | string;
368
+ textRendering?: number | string;
369
+ to?: number | string;
370
+ transform?: string;
371
+ u1?: number | string;
372
+ u2?: number | string;
373
+ underlinePosition?: number | string;
374
+ underlineThickness?: number | string;
375
+ unicode?: number | string;
376
+ unicodeBidi?: number | string;
377
+ unicodeRange?: number | string;
378
+ unitsPerEm?: number | string;
379
+ vAlphabetic?: number | string;
380
+ values?: string;
381
+ vectorEffect?: number | string;
382
+ version?: string;
383
+ vertAdvY?: number | string;
384
+ vertOriginX?: number | string;
385
+ vertOriginY?: number | string;
386
+ vHanging?: number | string;
387
+ vIdeographic?: number | string;
388
+ viewBox?: string;
389
+ viewTarget?: number | string;
390
+ visibility?: number | string;
391
+ vMathematical?: number | string;
392
+ widths?: number | string;
393
+ wordSpacing?: number | string;
394
+ writingMode?: number | string;
395
+ x1?: number | string;
396
+ x2?: number | string;
397
+ x?: number | string;
398
+ xChannelSelector?: string;
399
+ xHeight?: number | string;
400
+ xlinkActuate?: string;
401
+ xlinkArcrole?: string;
402
+ xlinkHref?: string;
403
+ xlinkRole?: string;
404
+ xlinkShow?: string;
405
+ xlinkTitle?: string;
406
+ xlinkType?: string;
407
+ xmlBase?: string;
408
+ xmlLang?: string;
409
+ xmlns?: string;
410
+ xmlnsXlink?: string;
411
+ xmlSpace?: string;
412
+ y1?: number | string;
413
+ y2?: number | string;
414
+ y?: number | string;
415
+ yChannelSelector?: string;
416
+ z?: number | string;
417
+ zoomAndPan?: string;
418
+ }
419
+
420
+ interface PathAttributes {
421
+ d: string;
422
+ }
423
+
424
+ interface EventHandler<E extends Event> {
425
+ (event: E): void;
426
+ }
427
+
428
+ type ClipboardEventHandler = EventHandler<ClipboardEvent>;
429
+ type CompositionEventHandler = EventHandler<CompositionEvent>;
430
+ type DragEventHandler = EventHandler<DragEvent>;
431
+ type FocusEventHandler = EventHandler<FocusEvent>;
432
+ type KeyboardEventHandler = EventHandler<KeyboardEvent>;
433
+ type MouseEventHandler = EventHandler<MouseEvent>;
434
+ type TouchEventHandler = EventHandler<TouchEvent>;
435
+ type UIEventHandler = EventHandler<UIEvent>;
436
+ type WheelEventHandler = EventHandler<WheelEvent>;
437
+ type AnimationEventHandler = EventHandler<AnimationEvent>;
438
+ type TransitionEventHandler = EventHandler<TransitionEvent>;
439
+ type GenericEventHandler = EventHandler<Event>;
440
+ type PointerEventHandler = EventHandler<PointerEvent>;
441
+
442
+ interface DOMAttributes extends preact.PreactDOMAttributes {
443
+ // Image Events
444
+ onLoad?: GenericEventHandler;
445
+ onError?: GenericEventHandler;
446
+ onLoadCapture?: GenericEventHandler;
447
+
448
+ // Clipboard Events
449
+ onCopy?: ClipboardEventHandler;
450
+ onCopyCapture?: ClipboardEventHandler;
451
+ onCut?: ClipboardEventHandler;
452
+ onCutCapture?: ClipboardEventHandler;
453
+ onPaste?: ClipboardEventHandler;
454
+ onPasteCapture?: ClipboardEventHandler;
455
+
456
+ // Composition Events
457
+ onCompositionEnd?: CompositionEventHandler;
458
+ onCompositionEndCapture?: CompositionEventHandler;
459
+ onCompositionStart?: CompositionEventHandler;
460
+ onCompositionStartCapture?: CompositionEventHandler;
461
+ onCompositionUpdate?: CompositionEventHandler;
462
+ onCompositionUpdateCapture?: CompositionEventHandler;
463
+
464
+ // Focus Events
465
+ onFocus?: FocusEventHandler;
466
+ onFocusCapture?: FocusEventHandler;
467
+ onBlur?: FocusEventHandler;
468
+ onBlurCapture?: FocusEventHandler;
469
+
470
+ // Form Events
471
+ onChange?: GenericEventHandler;
472
+ onChangeCapture?: GenericEventHandler;
473
+ onInput?: GenericEventHandler;
474
+ onInputCapture?: GenericEventHandler;
475
+ onSearch?: GenericEventHandler;
476
+ onSearchCapture?: GenericEventHandler;
477
+ onSubmit?: GenericEventHandler;
478
+ onSubmitCapture?: GenericEventHandler;
479
+ onInvalid?: GenericEventHandler;
480
+
481
+ // Keyboard Events
482
+ onKeyDown?: KeyboardEventHandler;
483
+ onKeyDownCapture?: KeyboardEventHandler;
484
+ onKeyPress?: KeyboardEventHandler;
485
+ onKeyPressCapture?: KeyboardEventHandler;
486
+ onKeyUp?: KeyboardEventHandler;
487
+ onKeyUpCapture?: KeyboardEventHandler;
488
+
489
+ // Media Events
490
+ onAbort?: GenericEventHandler;
491
+ onAbortCapture?: GenericEventHandler;
492
+ onCanPlay?: GenericEventHandler;
493
+ onCanPlayCapture?: GenericEventHandler;
494
+ onCanPlayThrough?: GenericEventHandler;
495
+ onCanPlayThroughCapture?: GenericEventHandler;
496
+ onDurationChange?: GenericEventHandler;
497
+ onDurationChangeCapture?: GenericEventHandler;
498
+ onEmptied?: GenericEventHandler;
499
+ onEmptiedCapture?: GenericEventHandler;
500
+ onEncrypted?: GenericEventHandler;
501
+ onEncryptedCapture?: GenericEventHandler;
502
+ onEnded?: GenericEventHandler;
503
+ onEndedCapture?: GenericEventHandler;
504
+ onLoadedData?: GenericEventHandler;
505
+ onLoadedDataCapture?: GenericEventHandler;
506
+ onLoadedMetadata?: GenericEventHandler;
507
+ onLoadedMetadataCapture?: GenericEventHandler;
508
+ onLoadStart?: GenericEventHandler;
509
+ onLoadStartCapture?: GenericEventHandler;
510
+ onPause?: GenericEventHandler;
511
+ onPauseCapture?: GenericEventHandler;
512
+ onPlay?: GenericEventHandler;
513
+ onPlayCapture?: GenericEventHandler;
514
+ onPlaying?: GenericEventHandler;
515
+ onPlayingCapture?: GenericEventHandler;
516
+ onProgress?: GenericEventHandler;
517
+ onProgressCapture?: GenericEventHandler;
518
+ onRateChange?: GenericEventHandler;
519
+ onRateChangeCapture?: GenericEventHandler;
520
+ onSeeked?: GenericEventHandler;
521
+ onSeekedCapture?: GenericEventHandler;
522
+ onSeeking?: GenericEventHandler;
523
+ onSeekingCapture?: GenericEventHandler;
524
+ onStalled?: GenericEventHandler;
525
+ onStalledCapture?: GenericEventHandler;
526
+ onSuspend?: GenericEventHandler;
527
+ onSuspendCapture?: GenericEventHandler;
528
+ onTimeUpdate?: GenericEventHandler;
529
+ onTimeUpdateCapture?: GenericEventHandler;
530
+ onVolumeChange?: GenericEventHandler;
531
+ onVolumeChangeCapture?: GenericEventHandler;
532
+ onWaiting?: GenericEventHandler;
533
+ onWaitingCapture?: GenericEventHandler;
534
+
535
+ // MouseEvents
536
+ onClick?: MouseEventHandler;
537
+ onClickCapture?: MouseEventHandler;
538
+ onContextMenu?: MouseEventHandler;
539
+ onContextMenuCapture?: MouseEventHandler;
540
+ onDblClick?: MouseEventHandler;
541
+ onDblClickCapture?: MouseEventHandler;
542
+ onDrag?: DragEventHandler;
543
+ onDragCapture?: DragEventHandler;
544
+ onDragEnd?: DragEventHandler;
545
+ onDragEndCapture?: DragEventHandler;
546
+ onDragEnter?: DragEventHandler;
547
+ onDragEnterCapture?: DragEventHandler;
548
+ onDragExit?: DragEventHandler;
549
+ onDragExitCapture?: DragEventHandler;
550
+ onDragLeave?: DragEventHandler;
551
+ onDragLeaveCapture?: DragEventHandler;
552
+ onDragOver?: DragEventHandler;
553
+ onDragOverCapture?: DragEventHandler;
554
+ onDragStart?: DragEventHandler;
555
+ onDragStartCapture?: DragEventHandler;
556
+ onDrop?: DragEventHandler;
557
+ onDropCapture?: DragEventHandler;
558
+ onMouseDown?: MouseEventHandler;
559
+ onMouseDownCapture?: MouseEventHandler;
560
+ onMouseEnter?: MouseEventHandler;
561
+ onMouseEnterCapture?: MouseEventHandler;
562
+ onMouseLeave?: MouseEventHandler;
563
+ onMouseLeaveCapture?: MouseEventHandler;
564
+ onMouseMove?: MouseEventHandler;
565
+ onMouseMoveCapture?: MouseEventHandler;
566
+ onMouseOut?: MouseEventHandler;
567
+ onMouseOutCapture?: MouseEventHandler;
568
+ onMouseOver?: MouseEventHandler;
569
+ onMouseOverCapture?: MouseEventHandler;
570
+ onMouseUp?: MouseEventHandler;
571
+ onMouseUpCapture?: MouseEventHandler;
572
+
573
+ // Selection Events
574
+ onSelect?: GenericEventHandler;
575
+ onSelectCapture?: GenericEventHandler;
576
+
577
+ // Touch Events
578
+ onTouchCancel?: TouchEventHandler;
579
+ onTouchCancelCapture?: TouchEventHandler;
580
+ onTouchEnd?: TouchEventHandler;
581
+ onTouchEndCapture?: TouchEventHandler;
582
+ onTouchMove?: TouchEventHandler;
583
+ onTouchMoveCapture?: TouchEventHandler;
584
+ onTouchStart?: TouchEventHandler;
585
+ onTouchStartCapture?: TouchEventHandler;
586
+
587
+ // Pointer Events
588
+ onPointerOver?: PointerEventHandler;
589
+ onPointerOverCapture?: PointerEventHandler;
590
+ onPointerEnter?: PointerEventHandler;
591
+ onPointerEnterCapture?: PointerEventHandler;
592
+ onPointerDown?: PointerEventHandler;
593
+ onPointerDownCapture?: PointerEventHandler;
594
+ onPointerMove?: PointerEventHandler;
595
+ onPointerMoveCapture?: PointerEventHandler;
596
+ onPointerUp?: PointerEventHandler;
597
+ onPointerUpCapture?: PointerEventHandler;
598
+ onPointerCancel?: PointerEventHandler;
599
+ onPointerCancelCapture?: PointerEventHandler;
600
+ onPointerOut?: PointerEventHandler;
601
+ onPointerOutCapture?: PointerEventHandler;
602
+ onPointerLeave?: PointerEventHandler;
603
+ onPointerLeaveCapture?: PointerEventHandler;
604
+ onGotPointerCapture?: PointerEventHandler;
605
+ onGotPointerCaptureCapture?: PointerEventHandler;
606
+ onLostPointerCapture?: PointerEventHandler;
607
+ onLostPointerCaptureCapture?: PointerEventHandler;
608
+
609
+ // UI Events
610
+ onScroll?: UIEventHandler;
611
+ onScrollCapture?: UIEventHandler;
612
+
613
+ // Wheel Events
614
+ onWheel?: WheelEventHandler;
615
+ onWheelCapture?: WheelEventHandler;
616
+
617
+ // Animation Events
618
+ onAnimationStart?: AnimationEventHandler;
619
+ onAnimationStartCapture?: AnimationEventHandler;
620
+ onAnimationEnd?: AnimationEventHandler;
621
+ onAnimationEndCapture?: AnimationEventHandler;
622
+ onAnimationIteration?: AnimationEventHandler;
623
+ onAnimationIterationCapture?: AnimationEventHandler;
624
+
625
+ // Transition Events
626
+ onTransitionEnd?: TransitionEventHandler;
627
+ onTransitionEndCapture?: TransitionEventHandler;
628
+ }
629
+
630
+ interface HTMLAttributes extends preact.PreactHTMLAttributes, DOMAttributes {
631
+ // Standard HTML Attributes
632
+ accept?: string;
633
+ acceptCharset?: string;
634
+ accessKey?: string;
635
+ action?: string;
636
+ allowFullScreen?: boolean;
637
+ allowTransparency?: boolean;
638
+ alt?: string;
639
+ async?: boolean;
640
+ autocomplete?: string;
641
+ autofocus?: boolean;
642
+ autoPlay?: boolean;
643
+ capture?: boolean;
644
+ cellPadding?: number | string;
645
+ cellSpacing?: number | string;
646
+ charSet?: string;
647
+ challenge?: string;
648
+ checked?: boolean;
649
+ class?: string;
650
+ className?: string;
651
+ cols?: number;
652
+ colSpan?: number;
653
+ content?: string;
654
+ contentEditable?: boolean;
655
+ contextMenu?: string;
656
+ controls?: boolean;
657
+ controlsList?: string;
658
+ coords?: string;
659
+ crossOrigin?: string;
660
+ data?: string;
661
+ dateTime?: string;
662
+ default?: boolean;
663
+ defer?: boolean;
664
+ dir?: string;
665
+ disabled?: boolean;
666
+ download?: any;
667
+ draggable?: boolean;
668
+ encType?: string;
669
+ form?: string;
670
+ formAction?: string;
671
+ formEncType?: string;
672
+ formMethod?: string;
673
+ formNoValidate?: boolean;
674
+ formTarget?: string;
675
+ frameBorder?: number | string;
676
+ headers?: string;
677
+ height?: number | string;
678
+ hidden?: boolean;
679
+ high?: number;
680
+ href?: string;
681
+ hrefLang?: string;
682
+ for?: string;
683
+ httpEquiv?: string;
684
+ icon?: string;
685
+ id?: string;
686
+ inputMode?: string;
687
+ integrity?: string;
688
+ is?: string;
689
+ keyParams?: string;
690
+ keyType?: string;
691
+ kind?: string;
692
+ label?: string;
693
+ lang?: string;
694
+ list?: string;
695
+ loop?: boolean;
696
+ low?: number;
697
+ manifest?: string;
698
+ marginHeight?: number;
699
+ marginWidth?: number;
700
+ max?: number | string;
701
+ maxLength?: number;
702
+ media?: string;
703
+ mediaGroup?: string;
704
+ method?: string;
705
+ min?: number | string;
706
+ minLength?: number;
707
+ multiple?: boolean;
708
+ muted?: boolean;
709
+ name?: string;
710
+ noValidate?: boolean;
711
+ open?: boolean;
712
+ optimum?: number;
713
+ pattern?: string;
714
+ placeholder?: string;
715
+ playsInline?: boolean;
716
+ poster?: string;
717
+ preload?: string;
718
+ radioGroup?: string;
719
+ readOnly?: boolean;
720
+ rel?: string;
721
+ required?: boolean;
722
+ role?: string;
723
+ rows?: number;
724
+ rowSpan?: number;
725
+ sandbox?: string;
726
+ scope?: string;
727
+ scoped?: boolean;
728
+ scrolling?: string;
729
+ seamless?: boolean;
730
+ selected?: boolean;
731
+ shape?: string;
732
+ size?: number;
733
+ sizes?: string;
734
+ slot?: string;
735
+ span?: number;
736
+ spellcheck?: boolean;
737
+ src?: string;
738
+ srcset?: string;
739
+ srcDoc?: string;
740
+ srcLang?: string;
741
+ srcSet?: string;
742
+ start?: number;
743
+ step?: number | string;
744
+ style?: any;
745
+ summary?: string;
746
+ tabIndex?: number;
747
+ target?: string;
748
+ title?: string;
749
+ type?: string;
750
+ useMap?: string;
751
+ value?: string | string[] | number;
752
+ width?: number | string;
753
+ wmode?: string;
754
+ wrap?: string;
755
+
756
+ // RDFa Attributes
757
+ about?: string;
758
+ datatype?: string;
759
+ inlist?: any;
760
+ prefix?: string;
761
+ property?: string;
762
+ resource?: string;
763
+ typeof?: string;
764
+ vocab?: string;
765
+ }
766
+
767
+ interface IntrinsicElements {
768
+ // HTML
769
+ a: HTMLAttributes;
770
+ abbr: HTMLAttributes;
771
+ address: HTMLAttributes;
772
+ area: HTMLAttributes;
773
+ article: HTMLAttributes;
774
+ aside: HTMLAttributes;
775
+ audio: HTMLAttributes;
776
+ b: HTMLAttributes;
777
+ base: HTMLAttributes;
778
+ bdi: HTMLAttributes;
779
+ bdo: HTMLAttributes;
780
+ big: HTMLAttributes;
781
+ blockquote: HTMLAttributes;
782
+ body: HTMLAttributes;
783
+ br: HTMLAttributes;
784
+ button: HTMLAttributes;
785
+ canvas: HTMLAttributes;
786
+ caption: HTMLAttributes;
787
+ cite: HTMLAttributes;
788
+ code: HTMLAttributes;
789
+ col: HTMLAttributes;
790
+ colgroup: HTMLAttributes;
791
+ data: HTMLAttributes;
792
+ datalist: HTMLAttributes;
793
+ dd: HTMLAttributes;
794
+ del: HTMLAttributes;
795
+ details: HTMLAttributes;
796
+ dfn: HTMLAttributes;
797
+ dialog: HTMLAttributes;
798
+ div: HTMLAttributes;
799
+ dl: HTMLAttributes;
800
+ dt: HTMLAttributes;
801
+ em: HTMLAttributes;
802
+ embed: HTMLAttributes;
803
+ fieldset: HTMLAttributes;
804
+ figcaption: HTMLAttributes;
805
+ figure: HTMLAttributes;
806
+ footer: HTMLAttributes;
807
+ form: HTMLAttributes;
808
+ h1: HTMLAttributes;
809
+ h2: HTMLAttributes;
810
+ h3: HTMLAttributes;
811
+ h4: HTMLAttributes;
812
+ h5: HTMLAttributes;
813
+ h6: HTMLAttributes;
814
+ head: HTMLAttributes;
815
+ header: HTMLAttributes;
816
+ hr: HTMLAttributes;
817
+ html: HTMLAttributes;
818
+ i: HTMLAttributes;
819
+ iframe: HTMLAttributes;
820
+ img: HTMLAttributes;
821
+ input: HTMLAttributes;
822
+ ins: HTMLAttributes;
823
+ kbd: HTMLAttributes;
824
+ keygen: HTMLAttributes;
825
+ label: HTMLAttributes;
826
+ legend: HTMLAttributes;
827
+ li: HTMLAttributes;
828
+ link: HTMLAttributes;
829
+ main: HTMLAttributes;
830
+ map: HTMLAttributes;
831
+ mark: HTMLAttributes;
832
+ menu: HTMLAttributes;
833
+ menuitem: HTMLAttributes;
834
+ meta: HTMLAttributes;
835
+ meter: HTMLAttributes;
836
+ nav: HTMLAttributes;
837
+ noscript: HTMLAttributes;
838
+ object: HTMLAttributes;
839
+ ol: HTMLAttributes;
840
+ optgroup: HTMLAttributes;
841
+ option: HTMLAttributes;
842
+ output: HTMLAttributes;
843
+ p: HTMLAttributes;
844
+ param: HTMLAttributes;
845
+ picture: HTMLAttributes;
846
+ pre: HTMLAttributes;
847
+ progress: HTMLAttributes;
848
+ q: HTMLAttributes;
849
+ rp: HTMLAttributes;
850
+ rt: HTMLAttributes;
851
+ ruby: HTMLAttributes;
852
+ s: HTMLAttributes;
853
+ samp: HTMLAttributes;
854
+ script: HTMLAttributes;
855
+ section: HTMLAttributes;
856
+ select: HTMLAttributes;
857
+ slot: HTMLAttributes;
858
+ small: HTMLAttributes;
859
+ source: HTMLAttributes;
860
+ span: HTMLAttributes;
861
+ strong: HTMLAttributes;
862
+ style: HTMLAttributes;
863
+ sub: HTMLAttributes;
864
+ summary: HTMLAttributes;
865
+ sup: HTMLAttributes;
866
+ table: HTMLAttributes;
867
+ tbody: HTMLAttributes;
868
+ td: HTMLAttributes;
869
+ textarea: HTMLAttributes;
870
+ tfoot: HTMLAttributes;
871
+ th: HTMLAttributes;
872
+ thead: HTMLAttributes;
873
+ time: HTMLAttributes;
874
+ title: HTMLAttributes;
875
+ tr: HTMLAttributes;
876
+ track: HTMLAttributes;
877
+ u: HTMLAttributes;
878
+ ul: HTMLAttributes;
879
+ "var": HTMLAttributes;
880
+ video: HTMLAttributes;
881
+ wbr: HTMLAttributes;
882
+
883
+ //SVG
884
+ svg: SVGAttributes;
885
+ animate: SVGAttributes;
886
+ circle: SVGAttributes;
887
+ clipPath: SVGAttributes;
888
+ defs: SVGAttributes;
889
+ desc: SVGAttributes;
890
+ ellipse: SVGAttributes;
891
+ feBlend: SVGAttributes;
892
+ feColorMatrix: SVGAttributes;
893
+ feComponentTransfer: SVGAttributes;
894
+ feComposite: SVGAttributes;
895
+ feConvolveMatrix: SVGAttributes;
896
+ feDiffuseLighting: SVGAttributes;
897
+ feDisplacementMap: SVGAttributes;
898
+ feFlood: SVGAttributes;
899
+ feGaussianBlur: SVGAttributes;
900
+ feImage: SVGAttributes;
901
+ feMerge: SVGAttributes;
902
+ feMergeNode: SVGAttributes;
903
+ feMorphology: SVGAttributes;
904
+ feOffset: SVGAttributes;
905
+ feSpecularLighting: SVGAttributes;
906
+ feTile: SVGAttributes;
907
+ feTurbulence: SVGAttributes;
908
+ filter: SVGAttributes;
909
+ foreignObject: SVGAttributes;
910
+ g: SVGAttributes;
911
+ image: SVGAttributes;
912
+ line: SVGAttributes;
913
+ linearGradient: SVGAttributes;
914
+ marker: SVGAttributes;
915
+ mask: SVGAttributes;
916
+ path: SVGAttributes;
917
+ pattern: SVGAttributes;
918
+ polygon: SVGAttributes;
919
+ polyline: SVGAttributes;
920
+ radialGradient: SVGAttributes;
921
+ rect: SVGAttributes;
922
+ stop: SVGAttributes;
923
+ symbol: SVGAttributes;
924
+ text: SVGAttributes;
925
+ tspan: SVGAttributes;
926
+ use: SVGAttributes;
927
+ }
928
+ }
125
929
  }
126
930
 
127
931
  type Defaultize<Props, Defaults> =
@@ -865,6 +1669,7 @@ declare global {
865
1669
  circle: SVGAttributes;
866
1670
  clipPath: SVGAttributes;
867
1671
  defs: SVGAttributes;
1672
+ desc: SVGAttributes;
868
1673
  ellipse: SVGAttributes;
869
1674
  feBlend: SVGAttributes;
870
1675
  feColorMatrix: SVGAttributes;