solid-ui 3.1.0 → 3.1.1-test.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -4
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.esm.js +546 -0
- package/dist/components/button/index.esm.js.map +1 -0
- package/dist/components/button/index.esm.min.js +268 -0
- package/dist/components/button/index.esm.min.js.map +1 -0
- package/dist/components/button/index.js +428 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button/index.min.js +257 -0
- package/dist/components/button/index.min.js.map +1 -0
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.esm.js +953 -0
- package/dist/components/combobox/index.esm.js.map +1 -0
- package/dist/components/combobox/index.esm.min.js +339 -0
- package/dist/components/combobox/index.esm.min.js.map +1 -0
- package/dist/components/combobox/index.js +782 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/combobox/index.min.js +328 -0
- package/dist/components/combobox/index.min.js.map +1 -0
- package/dist/components/footer/index.d.ts +1 -1
- package/dist/components/footer/index.esm.js +105 -63
- package/dist/components/footer/index.esm.js.map +1 -1
- package/dist/components/footer/index.esm.min.js +4 -4
- package/dist/components/footer/index.esm.min.js.map +1 -1
- package/dist/components/footer/index.js +103 -52
- package/dist/components/footer/index.js.map +1 -1
- package/dist/components/footer/index.min.js +8 -8
- package/dist/components/footer/index.min.js.map +1 -1
- package/dist/components/header/index.d.ts +1 -1
- package/dist/components/header/index.esm.js +1405 -1363
- package/dist/components/header/index.esm.js.map +1 -1
- package/dist/components/header/index.esm.min.js +857 -815
- package/dist/components/header/index.esm.min.js.map +1 -1
- package/dist/components/header/index.js +61 -19
- package/dist/components/header/index.js.map +1 -1
- package/dist/components/header/index.min.js +53 -11
- package/dist/components/header/index.min.js.map +1 -1
- package/dist/components/loginButton/index.d.ts +1 -1
- package/dist/components/loginButton/index.esm.js +50 -8
- package/dist/components/loginButton/index.esm.js.map +1 -1
- package/dist/components/loginButton/index.esm.min.js +60 -18
- package/dist/components/loginButton/index.esm.min.js.map +1 -1
- package/dist/components/loginButton/index.js +49 -7
- package/dist/components/loginButton/index.js.map +1 -1
- package/dist/components/loginButton/index.min.js +58 -16
- package/dist/components/loginButton/index.min.js.map +1 -1
- package/dist/components/photoCapture/index.d.ts +1 -0
- package/dist/components/photoCapture/index.esm.js +966 -0
- package/dist/components/photoCapture/index.esm.js.map +1 -0
- package/dist/components/photoCapture/index.esm.min.js +304 -0
- package/dist/components/photoCapture/index.esm.min.js.map +1 -0
- package/dist/components/photoCapture/index.js +848 -0
- package/dist/components/photoCapture/index.js.map +1 -0
- package/dist/components/photoCapture/index.min.js +293 -0
- package/dist/components/photoCapture/index.min.js.map +1 -0
- package/dist/components/select/index.d.ts +1 -0
- package/dist/components/select/index.esm.js +939 -0
- package/dist/components/select/index.esm.js.map +1 -0
- package/dist/components/select/index.esm.min.js +370 -0
- package/dist/components/select/index.esm.min.js.map +1 -0
- package/dist/components/select/index.js +771 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/index.min.js +359 -0
- package/dist/components/select/index.min.js.map +1 -0
- package/dist/components/signupButton/index.d.ts +1 -1
- package/dist/components/signupButton/index.esm.js +2 -2
- package/dist/components/signupButton/index.esm.js.map +1 -1
- package/dist/components/signupButton/index.esm.min.js +2 -2
- package/dist/components/signupButton/index.esm.min.js.map +1 -1
- package/dist/components/signupButton/index.js +2 -2
- package/dist/components/signupButton/index.js.map +1 -1
- package/dist/components/signupButton/index.min.js.map +1 -1
- package/dist/login/login.d.ts.map +1 -1
- package/dist/login/login.js +12 -2
- package/dist/login/login.js.map +1 -1
- package/dist/matrix/matrix.js.map +1 -1
- package/dist/solid-ui.esm.js +103 -61
- package/dist/solid-ui.esm.js.map +1 -1
- package/dist/solid-ui.esm.min.js +6 -6
- package/dist/solid-ui.esm.min.js.map +1 -1
- package/dist/solid-ui.js +102 -51
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +9 -9
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/tabs.js +2 -2
- package/dist/tabs.js.map +1 -1
- package/dist/v2/components/actions/button/Button.d.ts +97 -0
- package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
- package/dist/v2/components/actions/button/Button.js +325 -0
- package/dist/v2/components/actions/button/Button.js.map +1 -0
- package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
- package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
- package/dist/v2/components/actions/button/Button.test.js +117 -0
- package/dist/v2/components/actions/button/Button.test.js.map +1 -0
- package/dist/v2/components/actions/button/index.d.ts +8 -0
- package/dist/v2/components/actions/button/index.d.ts.map +1 -0
- package/dist/v2/components/actions/button/index.js +7 -0
- package/dist/v2/components/actions/button/index.js.map +1 -0
- package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
- package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.js +46 -4
- package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
- package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
- package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
- package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
- package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
- package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
- package/dist/v2/components/auth/loginButton/index.js.map +1 -0
- package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
- package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
- package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
- package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
- package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
- package/dist/v2/components/auth/signupButton/index.js.map +1 -0
- package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
- package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
- package/dist/v2/components/forms/combobox/Combobox.js +506 -0
- package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
- package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
- package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
- package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
- package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
- package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
- package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
- package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
- package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
- package/dist/v2/components/forms/combobox/index.d.ts +3 -0
- package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
- package/dist/v2/components/forms/combobox/index.js +7 -0
- package/dist/v2/components/forms/combobox/index.js.map +1 -0
- package/dist/v2/components/forms/select/Select.d.ts +68 -0
- package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
- package/dist/v2/components/forms/select/Select.js +499 -0
- package/dist/v2/components/forms/select/Select.js.map +1 -0
- package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
- package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
- package/dist/v2/components/forms/select/Select.test.js +168 -0
- package/dist/v2/components/forms/select/Select.test.js.map +1 -0
- package/dist/v2/components/forms/select/index.d.ts +3 -0
- package/dist/v2/components/forms/select/index.d.ts.map +1 -0
- package/dist/v2/components/forms/select/index.js +7 -0
- package/dist/v2/components/forms/select/index.js.map +1 -0
- package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
- package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
- package/dist/v2/components/forms/shared/downArrow.js +10 -0
- package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
- package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
- package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
- package/dist/v2/components/forms/shared/keyboard.js +56 -0
- package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
- package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
- package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
- package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
- package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
- package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
- package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
- package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
- package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
- package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
- package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
- package/dist/v2/components/forms/shared/optionTypes.js +2 -0
- package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
- package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
- package/dist/v2/components/{footer → layout/footer}/Footer.js +1 -1
- package/dist/v2/components/layout/footer/Footer.js.map +1 -0
- package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
- package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
- package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
- package/dist/v2/components/layout/footer/index.js.map +1 -0
- package/dist/v2/components/{header → layout/header}/Header.d.ts +2 -2
- package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
- package/dist/v2/components/{header → layout/header}/Header.js +5 -5
- package/dist/v2/components/layout/header/Header.js.map +1 -0
- package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
- package/dist/v2/components/layout/header/header.test.js.map +1 -0
- package/dist/v2/components/layout/header/index.d.ts.map +1 -0
- package/dist/v2/components/layout/header/index.js.map +1 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
- package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
- package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
- package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
- package/dist/v2/components/media/photoCapture/index.js +7 -0
- package/dist/v2/components/media/photoCapture/index.js.map +1 -0
- package/dist/versionInfo.js +13 -13
- package/dist/widgets/buttons.d.ts +1 -0
- package/dist/widgets/buttons.d.ts.map +1 -1
- package/dist/widgets/buttons.js +15 -2
- package/dist/widgets/buttons.js.map +1 -1
- package/package.json +111 -45
- package/dist/v2/components/footer/Footer.d.ts.map +0 -1
- package/dist/v2/components/footer/Footer.js.map +0 -1
- package/dist/v2/components/footer/Footer.test.d.ts.map +0 -1
- package/dist/v2/components/footer/Footer.test.js.map +0 -1
- package/dist/v2/components/footer/index.d.ts.map +0 -1
- package/dist/v2/components/footer/index.js.map +0 -1
- package/dist/v2/components/header/Header.d.ts.map +0 -1
- package/dist/v2/components/header/Header.js.map +0 -1
- package/dist/v2/components/header/header.test.d.ts.map +0 -1
- package/dist/v2/components/header/header.test.js.map +0 -1
- package/dist/v2/components/header/index.d.ts.map +0 -1
- package/dist/v2/components/header/index.js.map +0 -1
- package/dist/v2/components/loginButton/LoginButton.d.ts.map +0 -1
- package/dist/v2/components/loginButton/LoginButton.js.map +0 -1
- package/dist/v2/components/loginButton/LoginButton.test.d.ts.map +0 -1
- package/dist/v2/components/loginButton/LoginButton.test.js.map +0 -1
- package/dist/v2/components/loginButton/downArrow.d.ts.map +0 -1
- package/dist/v2/components/loginButton/downArrow.js.map +0 -1
- package/dist/v2/components/loginButton/index.d.ts.map +0 -1
- package/dist/v2/components/loginButton/index.js.map +0 -1
- package/dist/v2/components/signupButton/SignupButton.d.ts.map +0 -1
- package/dist/v2/components/signupButton/SignupButton.js.map +0 -1
- package/dist/v2/components/signupButton/SignupButton.test.d.ts.map +0 -1
- package/dist/v2/components/signupButton/SignupButton.test.js.map +0 -1
- package/dist/v2/components/signupButton/index.d.ts.map +0 -1
- package/dist/v2/components/signupButton/index.js.map +0 -1
- /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.d.ts +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.d.ts +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.js +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.d.ts +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.js +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/index.d.ts +0 -0
- /package/dist/v2/components/{loginButton → auth/loginButton}/index.js +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.d.ts +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.js +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.d.ts +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.js +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/index.d.ts +0 -0
- /package/dist/v2/components/{signupButton → auth/signupButton}/index.js +0 -0
- /package/dist/v2/components/{footer → layout/footer}/Footer.d.ts +0 -0
- /package/dist/v2/components/{footer → layout/footer}/Footer.test.d.ts +0 -0
- /package/dist/v2/components/{footer → layout/footer}/Footer.test.js +0 -0
- /package/dist/v2/components/{footer → layout/footer}/index.d.ts +0 -0
- /package/dist/v2/components/{footer → layout/footer}/index.js +0 -0
- /package/dist/v2/components/{header → layout/header}/header.test.d.ts +0 -0
- /package/dist/v2/components/{header → layout/header}/header.test.js +0 -0
- /package/dist/v2/components/{header → layout/header}/index.d.ts +0 -0
- /package/dist/v2/components/{header → layout/header}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/photoCapture/index.js","mappings":"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gBAAgB,EAAE;MAAEF,KAAK,EAAE;IAAK;EAClC,CAAC;EAED,OAAOG,MAAM,GAAGvC,CAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;EA2BOwC,MAAM,GAAgB,IAAI;EAC1BC,OAAO,GAAuB,IAAI;EACzBC,UAAU;EACnBC,eAAe,GAA2B,IAAI;EACrCC,eAAe,GAAIC,KAAY,IAAK;IACnD,MAAMC,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","sources":["webpack://solid-ui/./node_modules/@lit/reactive-element/css-tag.js","webpack://solid-ui/./node_modules/@lit/reactive-element/reactive-element.js","webpack://solid-ui/./node_modules/lit-html/lit-html.js","webpack://solid-ui/./node_modules/lit-element/lit-element.js","webpack://solid-ui/./node_modules/lit/index.js","webpack://solid-ui/./src/v2/components/media/photoCapture/PhotoCapture.ts","webpack://solid-ui/./src/v2/components/media/photoCapture/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.2\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import\"@lit/reactive-element\";import\"lit-html\";export*from\"lit-element/lit-element.js\";export*from\"lit-html/is-server.js\";\n//# sourceMappingURL=index.js.map\n","import { LitElement, css, html, nothing, type PropertyValues } from 'lit'\n/* The original code was written by Sir Tim Berners-Lee. It was made into a\nweb component by AI Model GPT-5.4\nPrompt: Take the code from src/media/media-capture.ts and make it a\nweb component. Make it work in forms as well as not. Make it\nconfigurable and follow LoginButton. */\nexport interface PhotoCapturedDetail {\n file: File\n blob: Blob\n objectUrl: string\n contentType: string\n}\n\nexport interface PhotoCaptureErrorDetail {\n error: unknown\n message: string\n}\n\nexport interface PhotoCaptureOpenChangeDetail {\n open: boolean\n}\n\nexport interface PhotoCaptureValueDetail {\n value: File | null\n}\n\ntype PresentationMode = 'inline' | 'dialog'\ntype ThemeMode = 'light' | 'dark'\n\nconst DEFAULT_CAPTURE_FORMAT = 'image/png'\n\nexport class PhotoCapture extends LitElement {\n static formAssociated = true\n\n static properties = {\n label: { type: String, reflect: true },\n heading: { type: String, reflect: true },\n captureLabel: { type: String, attribute: 'capture-label', reflect: true },\n confirmLabel: { type: String, attribute: 'confirm-label', reflect: true },\n retakeLabel: { type: String, attribute: 'retake-label', reflect: true },\n cancelLabel: { type: String, attribute: 'cancel-label', reflect: true },\n presentation: { type: String, reflect: true },\n theme: { type: String, reflect: true },\n facingMode: { type: String, attribute: 'facing-mode', reflect: true },\n constraints: { type: String, reflect: true },\n captureFormat: { type: String, attribute: 'capture-format', reflect: true },\n captureQuality: { type: Number, attribute: 'capture-quality' },\n open: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n name: { type: String, reflect: true },\n required: { type: Boolean, reflect: true },\n showTrigger: { type: Boolean, attribute: 'show-trigger', reflect: true },\n showCancelButton: { type: Boolean, attribute: 'show-cancel-button', reflect: true },\n autoCloseOnCapture: { type: Boolean, attribute: 'auto-close-on-capture' },\n fileNamePrefix: { type: String, attribute: 'file-name-prefix', reflect: true },\n value: { attribute: false },\n mediaConstraints: { attribute: false },\n _errorMessage: { state: true },\n _previewUrl: { state: true },\n _startingPreview: { state: true }\n }\n\n static styles = css`\n :host {\n display: block;\n --photo-capture-trigger-background: var(--lavender-900, #7c4cff);\n --photo-capture-trigger-text: var(--color-header-text, #ffffff);\n --photo-capture-surface: var(--color-background, #ffffff);\n --photo-capture-text: var(--gray-900, #101828);\n --photo-capture-muted-text: var(--gray-600, #4a5565);\n --photo-capture-border: var(--gray-200, #e5e7eb);\n --photo-capture-hover: var(--gray-100, #f3f4f6);\n --photo-capture-shadow: var(--box-shadow-sm, 0 1px 4px rgba(0, 0, 0, 0.12));\n --photo-capture-overlay: rgba(0, 0, 0, 0.6);\n --photo-capture-frame-max-width: 260px;\n --photo-capture-radius: 8px;\n --photo-capture-button-radius: var(--border-radius-base, 0.3125rem);\n --photo-capture-gap: var(--spacing-2xs, 0.625rem);\n color: var(--photo-capture-text);\n box-sizing: border-box;\n }\n\n :host([theme='dark']) {\n --photo-capture-surface: var(--gray-900, #111827);\n --photo-capture-text: var(--white, #ffffff);\n --photo-capture-muted-text: var(--gray-300, #d1d5dc);\n --photo-capture-border: var(--gray-700, #364153);\n --photo-capture-hover: rgba(255, 255, 255, 0.08);\n --photo-capture-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);\n }\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n .trigger-button,\n .action-button,\n .cancel-button,\n .close-button {\n font: inherit;\n cursor: pointer;\n }\n\n .trigger-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 35px;\n padding: 0.5rem 0.9rem;\n border: none;\n border-radius: var(--photo-capture-button-radius);\n background: var(--photo-capture-trigger-background);\n color: var(--photo-capture-trigger-text);\n transition: transform 0.2s ease;\n }\n\n .trigger-button:active {\n transform: translateY(1px);\n }\n\n .trigger-button:disabled,\n .action-button:disabled,\n .cancel-button:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n }\n\n .inline-root[hidden] {\n display: none;\n }\n\n .dialog {\n border: none;\n padding: 0;\n background: transparent;\n outline: none;\n overflow: visible;\n max-width: none;\n max-height: none;\n }\n\n .dialog::backdrop {\n background: var(--photo-capture-overlay);\n }\n\n .panel {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--photo-capture-gap);\n width: min(100%, 340px);\n padding: 1rem;\n border: 1px solid var(--photo-capture-border);\n border-radius: var(--photo-capture-radius);\n background: var(--photo-capture-surface);\n color: var(--photo-capture-text);\n box-shadow: var(--photo-capture-shadow);\n }\n\n .panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n width: 100%;\n }\n\n .panel-heading {\n margin: 0;\n font-size: 1rem;\n font-weight: 700;\n line-height: 1.4;\n }\n\n .close-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.75rem;\n height: 1.75rem;\n padding: 0;\n border: none;\n border-radius: 999px;\n background: transparent;\n color: var(--photo-capture-muted-text);\n font-size: 1.125rem;\n line-height: 1;\n }\n\n .close-button:hover,\n .close-button:focus-visible,\n .action-button:hover,\n .action-button:focus-visible,\n .cancel-button:hover,\n .cancel-button:focus-visible {\n background: var(--photo-capture-hover);\n }\n\n .viewport {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 200px;\n border-radius: 0.5rem;\n overflow: hidden;\n background: color-mix(in srgb, var(--photo-capture-surface) 92%, #000 8%);\n }\n\n .viewport video,\n .viewport img {\n display: block;\n width: 100%;\n max-width: var(--photo-capture-frame-max-width);\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n object-fit: cover;\n }\n\n .status {\n width: 100%;\n text-align: center;\n color: var(--photo-capture-muted-text);\n font-size: 0.875rem;\n }\n\n .status.error {\n color: var(--color-error, #b00020);\n }\n\n .actions {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n gap: var(--photo-capture-gap);\n width: 100%;\n }\n\n .action-button,\n .cancel-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: 0.45rem 0.85rem;\n border-radius: var(--photo-capture-button-radius);\n border: 1px solid var(--photo-capture-border);\n background: var(--photo-capture-surface);\n color: var(--photo-capture-text);\n font-size: var(--font-size-xxs, 0.75rem);\n font-weight: var(--font-weight-xbold, 700);\n line-height: 1.5;\n }\n\n .action-button--primary {\n background: var(--photo-capture-trigger-background);\n color: var(--photo-capture-trigger-text);\n border-color: transparent;\n }\n `\n\n declare label: string\n declare heading: string\n declare captureLabel: string\n declare confirmLabel: string\n declare retakeLabel: string\n declare cancelLabel: string\n declare presentation: PresentationMode\n declare theme: ThemeMode\n declare facingMode: string\n declare constraints: string\n declare captureFormat: string\n declare captureQuality?: number\n declare open: boolean\n declare disabled: boolean\n declare name: string\n declare required: boolean\n declare showTrigger: boolean\n declare showCancelButton: boolean\n declare autoCloseOnCapture: boolean\n declare fileNamePrefix: string\n declare mediaConstraints?: MediaStreamConstraints\n declare _errorMessage: string\n declare _previewUrl: string\n declare _startingPreview: boolean\n\n private _value: File | null = null\n private _stream: MediaStream | null = null\n private readonly _internals: ElementInternals | null\n private _associatedForm: HTMLFormElement | null = null\n private readonly _handleFormData = (event: Event) => {\n const formData = (event as Event & { formData?: FormData }).formData\n if (!formData || !this.name || !this.value || this.disabled) return\n formData.append(this.name, this.value, this.value.name)\n }\n\n private readonly _handleFormReset = () => {\n this._clearValue({ emitEvents: false })\n if (this.open) {\n this._queuePreviewStart()\n }\n }\n\n private get _supportsFormInternals (): boolean {\n return !!this._internals && typeof this._internals.setFormValue === 'function'\n }\n\n constructor () {\n super()\n this.label = 'Take Photo'\n this.heading = 'Take a photo'\n this.captureLabel = 'Take Photo'\n this.confirmLabel = 'Use Photo'\n this.retakeLabel = 'Retake'\n this.cancelLabel = 'Cancel'\n this.presentation = 'inline'\n this.theme = 'light'\n this.facingMode = 'user'\n this.constraints = ''\n this.captureFormat = DEFAULT_CAPTURE_FORMAT\n this.captureQuality = undefined\n this.open = false\n this.disabled = false\n this.name = ''\n this.required = false\n this.showTrigger = false\n this.showCancelButton = true\n this.autoCloseOnCapture = false\n this.fileNamePrefix = ''\n this.mediaConstraints = undefined\n this._errorMessage = ''\n this._previewUrl = ''\n this._startingPreview = false\n this._internals = typeof this.attachInternals === 'function' ? this.attachInternals() : null\n }\n\n get value (): File | null {\n return this._value\n }\n\n set value (nextValue: File | null) {\n const normalizedValue = nextValue instanceof File ? nextValue : null\n const previousValue = this._value\n if (previousValue === normalizedValue) return\n\n this._value = normalizedValue\n this._syncPreviewFromValue(normalizedValue)\n this._syncFormValue()\n this._syncValidity()\n this.requestUpdate('value', previousValue)\n }\n\n get form (): HTMLFormElement | null {\n return (this._supportsFormInternals ? this._internals?.form : null) ?? this._associatedForm\n }\n\n get validationMessage (): string {\n return (typeof this._internals?.validationMessage === 'string' ? this._internals.validationMessage : '') || (this.required && !this.value ? 'Please capture a photo.' : '')\n }\n\n get willValidate (): boolean {\n return typeof this._internals?.willValidate === 'boolean' ? this._internals.willValidate : !this.disabled\n }\n\n checkValidity (): boolean {\n if (this._internals && typeof this._internals.checkValidity === 'function') {\n return this._internals.checkValidity()\n }\n return !(this.required && !this.value)\n }\n\n reportValidity (): boolean {\n if (this._internals && typeof this._internals.reportValidity === 'function') {\n return this._internals.reportValidity()\n }\n return this.checkValidity()\n }\n\n connectedCallback () {\n super.connectedCallback()\n this._syncAssociatedForm()\n this._syncFormValue()\n this._syncValidity()\n }\n\n disconnectedCallback () {\n this._syncAssociatedForm(null)\n this._stopStream()\n this._revokePreviewUrl()\n super.disconnectedCallback()\n }\n\n formResetCallback () {\n this._handleFormReset()\n }\n\n formDisabledCallback (disabled: boolean) {\n this.disabled = disabled\n }\n\n protected updated (changed: PropertyValues<this>) {\n this._syncAssociatedForm()\n\n if (this.presentation === 'dialog') {\n const dialog = this.shadowRoot?.querySelector('dialog') as HTMLDialogElement | null\n if (dialog) {\n if (this.open && !dialog.open) {\n dialog.showModal()\n } else if (!this.open && dialog.open) {\n dialog.close()\n }\n }\n }\n\n if (changed.has('open') && !this.open) {\n this._stopStream()\n }\n\n if (\n this.open &&\n !this.value &&\n !this._stream &&\n !this._startingPreview &&\n (changed.has('open') || changed.has('presentation') || changed.has('_previewUrl') || changed.has('value'))\n ) {\n this._queuePreviewStart()\n }\n\n if (changed.has('name') || changed.has('disabled') || changed.has('value')) {\n this._syncFormValue()\n }\n\n if (changed.has('required') || changed.has('disabled') || changed.has('value')) {\n this._syncValidity()\n }\n\n if (this._stream) {\n const video = this.shadowRoot?.querySelector('video.capture-preview') as HTMLVideoElement | null\n if (video && video.srcObject !== this._stream) {\n video.srcObject = this._stream\n }\n }\n }\n\n private _setOpen (open: boolean) {\n if (this.open === open) return\n this.open = open\n this.dispatchEvent(new CustomEvent<PhotoCaptureOpenChangeDetail>('open-change', {\n detail: { open },\n bubbles: true,\n composed: true\n }))\n }\n\n private _emitError (error: unknown, message = 'Unable to access the camera') {\n this._errorMessage = message\n this.dispatchEvent(new CustomEvent<PhotoCaptureErrorDetail>('error', {\n detail: { error, message },\n bubbles: true,\n composed: true\n }))\n }\n\n private _syncAssociatedForm (nextForm = this.closest('form') as HTMLFormElement | null) {\n if (this._associatedForm === nextForm) return\n\n if (this._associatedForm) {\n this._associatedForm.removeEventListener('formdata', this._handleFormData)\n this._associatedForm.removeEventListener('reset', this._handleFormReset)\n }\n\n this._associatedForm = nextForm\n\n if (this._associatedForm && !this._supportsFormInternals) {\n this._associatedForm.addEventListener('formdata', this._handleFormData)\n this._associatedForm.addEventListener('reset', this._handleFormReset)\n }\n }\n\n private _syncFormValue () {\n if (!this._supportsFormInternals) return\n const internals = this._internals\n if (!internals) return\n if (this.disabled || !this.name || !this.value) {\n internals.setFormValue(null)\n return\n }\n internals.setFormValue(this.value)\n }\n\n private _syncValidity () {\n if (!this._internals || !this._supportsFormInternals || typeof this._internals.setValidity !== 'function') return\n if (this.disabled || !this.required || this.value) {\n this._internals.setValidity({})\n return\n }\n this._internals.setValidity({ valueMissing: true }, 'Please capture a photo.')\n }\n\n private _syncPreviewFromValue (file: File | null) {\n this._revokePreviewUrl()\n if (!file) return\n this._stopStream()\n this._previewUrl = URL.createObjectURL(file)\n }\n\n private _clearValue (options: { emitEvents: boolean }) {\n this.value = null\n this._errorMessage = ''\n if (options.emitEvents) {\n this._dispatchValueEvents()\n }\n }\n\n private _dispatchValueEvents () {\n const detail = { value: this.value }\n this.dispatchEvent(new CustomEvent<PhotoCaptureValueDetail>('input', {\n detail,\n bubbles: true,\n composed: true\n }))\n this.dispatchEvent(new CustomEvent<PhotoCaptureValueDetail>('change', {\n detail,\n bubbles: true,\n composed: true\n }))\n }\n\n private _fileExtensionForMimeType (mimeType: string): string {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg'\n case 'image/webp':\n return 'webp'\n case 'image/gif':\n return 'gif'\n default:\n return 'png'\n }\n }\n\n private _createFileFromBlob (blob: Blob): File {\n const contentType = blob.type || this.captureFormat || DEFAULT_CAPTURE_FORMAT\n const extension = this._fileExtensionForMimeType(contentType)\n const safePrefix = (this.fileNamePrefix || this.name || 'photo').trim() || 'photo'\n return new File([blob], `${safePrefix}-${Date.now()}.${extension}`, { type: contentType })\n }\n\n private _queuePreviewStart () {\n this._startPreview().catch(() => undefined)\n }\n\n private _resolveMediaConstraints (): MediaStreamConstraints {\n if (this.mediaConstraints) {\n return this.mediaConstraints\n }\n if (this.constraints) {\n try {\n return JSON.parse(this.constraints) as MediaStreamConstraints\n } catch (error) {\n throw new Error(`Invalid constraints JSON: ${(error as Error).message}`)\n }\n }\n\n return {\n video: this.facingMode\n ? { facingMode: { ideal: this.facingMode } }\n : true\n }\n }\n\n private async _startPreview () {\n if (!this.open || this.value || this._startingPreview) return\n if (!navigator.mediaDevices?.getUserMedia) {\n this._emitError(new Error('navigator.mediaDevices.getUserMedia not available'), 'Camera access is not available in this browser')\n return\n }\n\n this._startingPreview = true\n this._errorMessage = ''\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia(this._resolveMediaConstraints())\n if (!this.open) {\n stream.getTracks().forEach(track => track.stop())\n return\n }\n this._stream = stream\n this.requestUpdate()\n await this.updateComplete\n const video = this.shadowRoot?.querySelector('video.capture-preview') as HTMLVideoElement | null\n if (video) {\n video.srcObject = stream\n await video.play?.().catch(() => undefined)\n }\n } catch (error) {\n this._emitError(error, (error as Error)?.message || 'Unable to start the camera preview')\n } finally {\n this._startingPreview = false\n }\n }\n\n private _stopStream () {\n if (!this._stream) return\n this._stream.getTracks().forEach(track => track.stop())\n this._stream = null\n const video = this.shadowRoot?.querySelector('video.capture-preview') as HTMLVideoElement | null\n if (video) {\n video.srcObject = null\n }\n }\n\n private _revokePreviewUrl () {\n if (this._previewUrl) {\n URL.revokeObjectURL(this._previewUrl)\n }\n this._previewUrl = ''\n }\n\n private async _captureSnapshot () {\n const video = this.shadowRoot?.querySelector('video.capture-preview') as HTMLVideoElement | null\n if (!video) return\n\n const width = video.videoWidth || video.clientWidth || 640\n const height = video.videoHeight || video.clientHeight || 480\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n if (!context) {\n this._emitError(new Error('Canvas 2D context unavailable'), 'Unable to capture a photo in this browser')\n return\n }\n\n context.drawImage(video, 0, 0, width, height)\n\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, this.captureFormat || DEFAULT_CAPTURE_FORMAT, this.captureQuality)\n })\n\n if (!blob) {\n this._emitError(new Error('Camera snapshot failed'), 'Unable to create an image from the current camera frame')\n return\n }\n\n this.value = this._createFileFromBlob(blob)\n this._errorMessage = ''\n }\n\n private async _retakePhoto () {\n this._clearValue({ emitEvents: true })\n await this._startPreview()\n }\n\n private _confirmPhoto () {\n if (!this.value || !this._previewUrl) return\n\n this._dispatchValueEvents()\n\n this.dispatchEvent(new CustomEvent<PhotoCapturedDetail>('photo-captured', {\n detail: {\n file: this.value,\n blob: this.value,\n objectUrl: this._previewUrl,\n contentType: this.value.type || this.captureFormat || DEFAULT_CAPTURE_FORMAT\n },\n bubbles: true,\n composed: true\n }))\n\n if (this.autoCloseOnCapture) {\n this._setOpen(false)\n }\n }\n\n private _handleCancel () {\n this._stopStream()\n this._clearValue({ emitEvents: false })\n this._setOpen(false)\n this.dispatchEvent(new CustomEvent('cancel', {\n bubbles: true,\n composed: true\n }))\n }\n\n private _openCapture () {\n if (this.disabled) return\n this._setOpen(true)\n }\n\n private _renderViewport () {\n if (this._previewUrl) {\n return html`<img class=\"capture-preview\" part=\"preview-image\" src=\"${this._previewUrl}\" alt=\"Captured photo preview\" />`\n }\n\n return html`<video class=\"capture-preview\" part=\"preview-video\" autoplay playsinline muted></video>`\n }\n\n private _renderStatus () {\n if (this._errorMessage) {\n return html`<div class=\"status error\" part=\"error-message\">${this._errorMessage}</div>`\n }\n\n if (this._startingPreview) {\n return html`<div class=\"status\" part=\"status-message\">Opening camera…</div>`\n }\n\n if (!this.value) {\n return html`<div class=\"status\" part=\"status-message\">Preview the camera and take a photo when ready.</div>`\n }\n\n return html`<div class=\"status\" part=\"status-message\">Review the photo before confirming it.</div>`\n }\n\n private _renderActions () {\n return html`\n <div class=\"actions\" part=\"actions\">\n ${this.showCancelButton\n ? html`\n <button\n class=\"cancel-button\"\n part=\"cancel-button\"\n type=\"button\"\n @click=\"${this._handleCancel}\"\n >${this.cancelLabel}</button>\n `\n : nothing}\n\n ${this.value\n ? html`\n <button\n class=\"action-button\"\n part=\"retake-button\"\n type=\"button\"\n @click=\"${this._retakePhoto}\"\n >${this.retakeLabel}</button>\n <button\n class=\"action-button action-button--primary\"\n part=\"confirm-button\"\n type=\"button\"\n @click=\"${this._confirmPhoto}\"\n >${this.confirmLabel}</button>\n `\n : html`\n <button\n class=\"action-button action-button--primary\"\n part=\"capture-button\"\n type=\"button\"\n ?disabled=\"${this._startingPreview || !this._stream}\"\n @click=\"${this._captureSnapshot}\"\n >${this.captureLabel}</button>\n `}\n </div>\n `\n }\n\n private _renderPanel () {\n return html`\n <div class=\"panel\" part=\"panel\">\n <div class=\"panel-header\" part=\"header\">\n <h2 class=\"panel-heading\" part=\"heading\"><slot name=\"heading\">${this.heading}</slot></h2>\n ${this.showCancelButton\n ? html`\n <button\n class=\"close-button\"\n part=\"close-button\"\n type=\"button\"\n aria-label=\"${this.cancelLabel}\"\n @click=\"${this._handleCancel}\"\n >×</button>\n `\n : nothing}\n </div>\n <div class=\"viewport\" part=\"viewport\">${this._renderViewport()}</div>\n ${this._renderStatus()}\n ${this._renderActions()}\n </div>\n `\n }\n\n render () {\n const trigger = this.showTrigger || this.presentation === 'dialog'\n\n return html`\n ${trigger\n ? html`\n <button\n class=\"trigger-button\"\n part=\"trigger-button\"\n type=\"button\"\n ?disabled=\"${this.disabled}\"\n @click=\"${this._openCapture}\"\n ><slot>${this.label}</slot></button>\n `\n : nothing}\n\n ${this.presentation === 'dialog'\n ? html`\n <dialog\n class=\"dialog\"\n part=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"${this.heading}\"\n @cancel=\"${(event: Event) => { event.preventDefault(); this._handleCancel() }}\"\n @click=\"${(event: MouseEvent) => {\n if (event.target === event.currentTarget) {\n this._handleCancel()\n }\n }}\"\n >\n ${this.open ? this._renderPanel() : nothing}\n </dialog>\n `\n : html`\n <div class=\"inline-root\" part=\"inline-root\" ?hidden=\"${!this.open}\">\n ${this.open ? this._renderPanel() : nothing}\n </div>\n `}\n `\n }\n}\n","import { PhotoCapture } from './PhotoCapture'\n\nexport { PhotoCapture }\n\nconst PHOTO_CAPTURE_TAG_NAME = 'solid-ui-photo-capture'\n\nif (!customElements.get(PHOTO_CAPTURE_TAG_NAME)) {\n customElements.define(PHOTO_CAPTURE_TAG_NAME, PhotoCapture)\n}\n"],"names":["LitElement","css","html","nothing","DEFAULT_CAPTURE_FORMAT","PhotoCapture","formAssociated","properties","label","type","String","reflect","heading","captureLabel","attribute","confirmLabel","retakeLabel","cancelLabel","presentation","theme","facingMode","constraints","captureFormat","captureQuality","Number","open","Boolean","disabled","name","required","showTrigger","showCancelButton","autoCloseOnCapture","fileNamePrefix","value","mediaConstraints","_errorMessage","state","_previewUrl","_startingPreview","styles","_value","_stream","_internals","_associatedForm","_handleFormData","event","formData","append","_handleFormReset","_clearValue","emitEvents","_queuePreviewStart","_supportsFormInternals","setFormValue","constructor","undefined","attachInternals","nextValue","normalizedValue","File","previousValue","_syncPreviewFromValue","_syncFormValue","_syncValidity","requestUpdate","form","validationMessage","willValidate","checkValidity","reportValidity","connectedCallback","_syncAssociatedForm","disconnectedCallback","_stopStream","_revokePreviewUrl","formResetCallback","formDisabledCallback","updated","changed","dialog","shadowRoot","querySelector","showModal","close","has","video","srcObject","_setOpen","dispatchEvent","CustomEvent","detail","bubbles","composed","_emitError","error","message","nextForm","closest","removeEventListener","addEventListener","internals","setValidity","valueMissing","file","URL","createObjectURL","options","_dispatchValueEvents","_fileExtensionForMimeType","mimeType","_createFileFromBlob","blob","contentType","extension","safePrefix","trim","Date","now","_startPreview","catch","_resolveMediaConstraints","JSON","parse","Error","ideal","navigator","mediaDevices","getUserMedia","stream","getTracks","forEach","track","stop","updateComplete","play","revokeObjectURL","_captureSnapshot","width","videoWidth","clientWidth","height","videoHeight","clientHeight","canvas","document","createElement","context","getContext","drawImage","Promise","resolve","toBlob","_retakePhoto","_confirmPhoto","objectUrl","_handleCancel","_openCapture","_renderViewport","_renderStatus","_renderActions","_renderPanel","render","trigger","preventDefault","target","currentTarget","PHOTO_CAPTURE_TAG_NAME","customElements","get","define"],"sourceRoot":""}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
(()=>{"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2019 Google LLC
|
|
5
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),i=new WeakMap;class r{constructor(t,e,i){if(this._$cssResult$=!0,i!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=i.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&i.set(s,t))}return t}toString(){return this.cssText}}const o=(t,...e)=>{const i=1===t.length?t[0]:e.reduce((e,s,i)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[i+1],t[0]);return new r(i,t,s)},a=(s,i)=>{if(e)s.adoptedStyleSheets=i.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of i){const i=document.createElement("style"),r=t.litNonce;void 0!==r&&i.setAttribute("nonce",r),i.textContent=e.cssText,s.appendChild(i)}},n=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return(t=>new r("string"==typeof t?t:t+"",void 0,s))(e)})(t):t,{is:h,defineProperty:l,getOwnPropertyDescriptor:c,getOwnPropertyNames:p,getOwnPropertySymbols:d,getPrototypeOf:u}=Object,_=globalThis,m=_.trustedTypes,v=m?m.emptyScript:"",g=_.reactiveElementPolyfillSupport,f=(t,e)=>t,b={toAttribute(t,e){switch(e){case Boolean:t=t?v:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let s=t;switch(e){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},$=(t,e)=>!h(t,e),y={attribute:!0,type:String,converter:b,reflect:!1,useDefault:!1,hasChanged:$};Symbol.metadata??=Symbol("metadata"),_.litPropertyMetadata??=new WeakMap;class w extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=y){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),i=this.getPropertyDescriptor(t,s,e);void 0!==i&&l(this.prototype,t,i)}}static getPropertyDescriptor(t,e,s){const{get:i,set:r}=c(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get:i,set(e){const o=i?.call(this);r?.call(this,e),this.requestUpdate(t,o,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(f("elementProperties")))return;const t=u(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(f("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(f("properties"))){const t=this.properties,e=[...p(t),...d(t)];for(const s of e)this.createProperty(s,t[s])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,s]of e)this.elementProperties.set(t,s)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const s=this._$Eu(t,e);void 0!==s&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(n(t))}else void 0!==t&&e.push(n(t));return e}static _$Eu(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return a(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){const s=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,s);if(void 0!==i&&!0===s.reflect){const r=(void 0!==s.converter?.toAttribute?s.converter:b).toAttribute(e,s.type);this._$Em=t,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$Em=null}}_$AK(t,e){const s=this.constructor,i=s._$Eh.get(t);if(void 0!==i&&this._$Em!==i){const t=s.getPropertyOptions(i),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:b;this._$Em=i;const o=r.fromAttribute(e,t.type);this[i]=o??this._$Ej?.get(i)??o,this._$Em=null}}requestUpdate(t,e,s,i=!1,r){if(void 0!==t){const o=this.constructor;if(!1===i&&(r=this[t]),s??=o.getPropertyOptions(t),!((s.hasChanged??$)(r,e)||s.useDefault&&s.reflect&&r===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,s))))return;this.C(t,e,s)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:i,wrapped:r},o){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),!0!==r||void 0!==o)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),!0===i&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,s]of t){const{wrapped:t}=s,i=this[e];!0!==t||this._$AL.has(e)||void 0===i||this.C(e,void 0,s,i)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(e)):this._$EM()}catch(e){throw t=!1,this._$EM(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}w.elementStyles=[],w.shadowRootOptions={mode:"open"},w[f("elementProperties")]=new Map,w[f("finalized")]=new Map,g?.({ReactiveElement:w}),(_.reactiveElementVersions??=[]).push("2.1.2");
|
|
8
|
+
/**
|
|
9
|
+
* @license
|
|
10
|
+
* Copyright 2017 Google LLC
|
|
11
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
12
|
+
*/
|
|
13
|
+
const A=globalThis,E=t=>t,S=A.trustedTypes,x=S?S.createPolicy("lit-html",{createHTML:t=>t}):void 0,C="$lit$",P=`lit$${Math.random().toFixed(9).slice(2)}$`,k="?"+P,U=`<${k}>`,M=document,O=()=>M.createComment(""),F=t=>null===t||"object"!=typeof t&&"function"!=typeof t,R=Array.isArray,T=t=>R(t)||"function"==typeof t?.[Symbol.iterator],V="[ \t\n\f\r]",N=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,H=/-->/g,L=/>/g,j=RegExp(`>|${V}(?:([^\\s"'>=/]+)(${V}*=${V}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),D=/'/g,B=/"/g,q=/^(?:script|style|textarea|title)$/i,z=t=>(e,...s)=>({_$litType$:t,strings:e,values:s}),I=z(1),W=(z(2),z(3),Symbol.for("lit-noChange")),J=Symbol.for("lit-nothing"),Q=new WeakMap,K=M.createTreeWalker(M,129);function Z(t,e){if(!R(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==x?x.createHTML(e):e}const Y=(t,e)=>{const s=t.length-1,i=[];let r,o=2===e?"<svg>":3===e?"<math>":"",a=N;for(let e=0;e<s;e++){const s=t[e];let n,h,l=-1,c=0;for(;c<s.length&&(a.lastIndex=c,h=a.exec(s),null!==h);)c=a.lastIndex,a===N?"!--"===h[1]?a=H:void 0!==h[1]?a=L:void 0!==h[2]?(q.test(h[2])&&(r=RegExp("</"+h[2],"g")),a=j):void 0!==h[3]&&(a=j):a===j?">"===h[0]?(a=r??N,l=-1):void 0===h[1]?l=-2:(l=a.lastIndex-h[2].length,n=h[1],a=void 0===h[3]?j:'"'===h[3]?B:D):a===B||a===D?a=j:a===H||a===L?a=N:(a=j,r=void 0);const p=a===j&&t[e+1].startsWith("/>")?" ":"";o+=a===N?s+U:l>=0?(i.push(n),s.slice(0,l)+C+s.slice(l)+P+p):s+P+(-2===l?e:p)}return[Z(t,o+(t[s]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),i]};class G{constructor({strings:t,_$litType$:e},s){let i;this.parts=[];let r=0,o=0;const a=t.length-1,n=this.parts,[h,l]=Y(t,e);if(this.el=G.createElement(h,s),K.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(i=K.nextNode())&&n.length<a;){if(1===i.nodeType){if(i.hasAttributes())for(const t of i.getAttributeNames())if(t.endsWith(C)){const e=l[o++],s=i.getAttribute(t).split(P),a=/([.?@])?(.*)/.exec(e);n.push({type:1,index:r,name:a[2],strings:s,ctor:"."===a[1]?it:"?"===a[1]?rt:"@"===a[1]?ot:st}),i.removeAttribute(t)}else t.startsWith(P)&&(n.push({type:6,index:r}),i.removeAttribute(t));if(q.test(i.tagName)){const t=i.textContent.split(P),e=t.length-1;if(e>0){i.textContent=S?S.emptyScript:"";for(let s=0;s<e;s++)i.append(t[s],O()),K.nextNode(),n.push({type:2,index:++r});i.append(t[e],O())}}}else if(8===i.nodeType)if(i.data===k)n.push({type:2,index:r});else{let t=-1;for(;-1!==(t=i.data.indexOf(P,t+1));)n.push({type:7,index:r}),t+=P.length-1}r++}}static createElement(t,e){const s=M.createElement("template");return s.innerHTML=t,s}}function X(t,e,s=t,i){if(e===W)return e;let r=void 0!==i?s._$Co?.[i]:s._$Cl;const o=F(e)?void 0:e._$litDirective$;return r?.constructor!==o&&(r?._$AO?.(!1),void 0===o?r=void 0:(r=new o(t),r._$AT(t,s,i)),void 0!==i?(s._$Co??=[])[i]=r:s._$Cl=r),void 0!==r&&(e=X(t,r._$AS(t,e.values),r,i)),e}class tt{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:s}=this._$AD,i=(t?.creationScope??M).importNode(e,!0);K.currentNode=i;let r=K.nextNode(),o=0,a=0,n=s[0];for(;void 0!==n;){if(o===n.index){let e;2===n.type?e=new et(r,r.nextSibling,this,t):1===n.type?e=new n.ctor(r,n.name,n.strings,this,t):6===n.type&&(e=new at(r,this,t)),this._$AV.push(e),n=s[++a]}o!==n?.index&&(r=K.nextNode(),o++)}return K.currentNode=M,i}p(t){let e=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class et{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,i){this.type=2,this._$AH=J,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=X(this,t,e),F(t)?t===J||null==t||""===t?(this._$AH!==J&&this._$AR(),this._$AH=J):t!==this._$AH&&t!==W&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):T(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==J&&F(this._$AH)?this._$AA.nextSibling.data=t:this.T(M.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:s}=t,i="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=G.createElement(Z(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(e);else{const t=new tt(i,this),s=t.u(this.options);t.p(e),this.T(s),this._$AH=t}}_$AC(t){let e=Q.get(t.strings);return void 0===e&&Q.set(t.strings,e=new G(t)),e}k(t){R(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,i=0;for(const r of t)i===e.length?e.push(s=new et(this.O(O()),this.O(O()),this,this.options)):s=e[i],s._$AI(r),i++;i<e.length&&(this._$AR(s&&s._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){const e=E(t).nextSibling;E(t).remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class st{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,i,r){this.type=1,this._$AH=J,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=r,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=J}_$AI(t,e=this,s,i){const r=this.strings;let o=!1;if(void 0===r)t=X(this,t,e,0),o=!F(t)||t!==this._$AH&&t!==W,o&&(this._$AH=t);else{const i=t;let a,n;for(t=r[0],a=0;a<r.length-1;a++)n=X(this,i[s+a],e,a),n===W&&(n=this._$AH[a]),o||=!F(n)||n!==this._$AH[a],n===J?t=J:t!==J&&(t+=(n??"")+r[a+1]),this._$AH[a]=n}o&&!i&&this.j(t)}j(t){t===J?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class it extends st{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===J?void 0:t}}class rt extends st{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==J)}}class ot extends st{constructor(t,e,s,i,r){super(t,e,s,i,r),this.type=5}_$AI(t,e=this){if((t=X(this,t,e,0)??J)===W)return;const s=this._$AH,i=t===J&&s!==J||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,r=t!==J&&(s===J||i);i&&this.element.removeEventListener(this.name,this,s),r&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class at{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){X(this,t)}}const nt=A.litHtmlPolyfillSupport;nt?.(G,et),(A.litHtmlVersions??=[]).push("3.3.2");const ht=globalThis;class lt extends w{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,s)=>{const i=s?.renderBefore??e;let r=i._$litPart$;if(void 0===r){const t=s?.renderBefore??null;i._$litPart$=r=new et(e.insertBefore(O(),t),t,void 0,s??{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return W}}lt._$litElement$=!0,lt.finalized=!0,ht.litElementHydrateSupport?.({LitElement:lt});const ct=ht.litElementPolyfillSupport;ct?.({LitElement:lt});(ht.litElementVersions??=[]).push("4.2.2");const pt="image/png";class dt extends lt{static formAssociated=!0;static properties={label:{type:String,reflect:!0},heading:{type:String,reflect:!0},captureLabel:{type:String,attribute:"capture-label",reflect:!0},confirmLabel:{type:String,attribute:"confirm-label",reflect:!0},retakeLabel:{type:String,attribute:"retake-label",reflect:!0},cancelLabel:{type:String,attribute:"cancel-label",reflect:!0},presentation:{type:String,reflect:!0},theme:{type:String,reflect:!0},facingMode:{type:String,attribute:"facing-mode",reflect:!0},constraints:{type:String,reflect:!0},captureFormat:{type:String,attribute:"capture-format",reflect:!0},captureQuality:{type:Number,attribute:"capture-quality"},open:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},name:{type:String,reflect:!0},required:{type:Boolean,reflect:!0},showTrigger:{type:Boolean,attribute:"show-trigger",reflect:!0},showCancelButton:{type:Boolean,attribute:"show-cancel-button",reflect:!0},autoCloseOnCapture:{type:Boolean,attribute:"auto-close-on-capture"},fileNamePrefix:{type:String,attribute:"file-name-prefix",reflect:!0},value:{attribute:!1},mediaConstraints:{attribute:!1},_errorMessage:{state:!0},_previewUrl:{state:!0},_startingPreview:{state:!0}};static styles=o`
|
|
14
|
+
:host {
|
|
15
|
+
display: block;
|
|
16
|
+
--photo-capture-trigger-background: var(--lavender-900, #7c4cff);
|
|
17
|
+
--photo-capture-trigger-text: var(--color-header-text, #ffffff);
|
|
18
|
+
--photo-capture-surface: var(--color-background, #ffffff);
|
|
19
|
+
--photo-capture-text: var(--gray-900, #101828);
|
|
20
|
+
--photo-capture-muted-text: var(--gray-600, #4a5565);
|
|
21
|
+
--photo-capture-border: var(--gray-200, #e5e7eb);
|
|
22
|
+
--photo-capture-hover: var(--gray-100, #f3f4f6);
|
|
23
|
+
--photo-capture-shadow: var(--box-shadow-sm, 0 1px 4px rgba(0, 0, 0, 0.12));
|
|
24
|
+
--photo-capture-overlay: rgba(0, 0, 0, 0.6);
|
|
25
|
+
--photo-capture-frame-max-width: 260px;
|
|
26
|
+
--photo-capture-radius: 8px;
|
|
27
|
+
--photo-capture-button-radius: var(--border-radius-base, 0.3125rem);
|
|
28
|
+
--photo-capture-gap: var(--spacing-2xs, 0.625rem);
|
|
29
|
+
color: var(--photo-capture-text);
|
|
30
|
+
box-sizing: border-box;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:host([theme='dark']) {
|
|
34
|
+
--photo-capture-surface: var(--gray-900, #111827);
|
|
35
|
+
--photo-capture-text: var(--white, #ffffff);
|
|
36
|
+
--photo-capture-muted-text: var(--gray-300, #d1d5dc);
|
|
37
|
+
--photo-capture-border: var(--gray-700, #364153);
|
|
38
|
+
--photo-capture-hover: rgba(255, 255, 255, 0.08);
|
|
39
|
+
--photo-capture-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
*, *::before, *::after {
|
|
43
|
+
box-sizing: border-box;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.trigger-button,
|
|
47
|
+
.action-button,
|
|
48
|
+
.cancel-button,
|
|
49
|
+
.close-button {
|
|
50
|
+
font: inherit;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.trigger-button {
|
|
55
|
+
display: inline-flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
min-height: 35px;
|
|
59
|
+
padding: 0.5rem 0.9rem;
|
|
60
|
+
border: none;
|
|
61
|
+
border-radius: var(--photo-capture-button-radius);
|
|
62
|
+
background: var(--photo-capture-trigger-background);
|
|
63
|
+
color: var(--photo-capture-trigger-text);
|
|
64
|
+
transition: transform 0.2s ease;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.trigger-button:active {
|
|
68
|
+
transform: translateY(1px);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.trigger-button:disabled,
|
|
72
|
+
.action-button:disabled,
|
|
73
|
+
.cancel-button:disabled {
|
|
74
|
+
opacity: 0.55;
|
|
75
|
+
cursor: not-allowed;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.inline-root[hidden] {
|
|
79
|
+
display: none;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.dialog {
|
|
83
|
+
border: none;
|
|
84
|
+
padding: 0;
|
|
85
|
+
background: transparent;
|
|
86
|
+
outline: none;
|
|
87
|
+
overflow: visible;
|
|
88
|
+
max-width: none;
|
|
89
|
+
max-height: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.dialog::backdrop {
|
|
93
|
+
background: var(--photo-capture-overlay);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.panel {
|
|
97
|
+
position: relative;
|
|
98
|
+
display: flex;
|
|
99
|
+
flex-direction: column;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: var(--photo-capture-gap);
|
|
102
|
+
width: min(100%, 340px);
|
|
103
|
+
padding: 1rem;
|
|
104
|
+
border: 1px solid var(--photo-capture-border);
|
|
105
|
+
border-radius: var(--photo-capture-radius);
|
|
106
|
+
background: var(--photo-capture-surface);
|
|
107
|
+
color: var(--photo-capture-text);
|
|
108
|
+
box-shadow: var(--photo-capture-shadow);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.panel-header {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
justify-content: space-between;
|
|
115
|
+
gap: 0.5rem;
|
|
116
|
+
width: 100%;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.panel-heading {
|
|
120
|
+
margin: 0;
|
|
121
|
+
font-size: 1rem;
|
|
122
|
+
font-weight: 700;
|
|
123
|
+
line-height: 1.4;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.close-button {
|
|
127
|
+
display: inline-flex;
|
|
128
|
+
align-items: center;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
width: 1.75rem;
|
|
131
|
+
height: 1.75rem;
|
|
132
|
+
padding: 0;
|
|
133
|
+
border: none;
|
|
134
|
+
border-radius: 999px;
|
|
135
|
+
background: transparent;
|
|
136
|
+
color: var(--photo-capture-muted-text);
|
|
137
|
+
font-size: 1.125rem;
|
|
138
|
+
line-height: 1;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.close-button:hover,
|
|
142
|
+
.close-button:focus-visible,
|
|
143
|
+
.action-button:hover,
|
|
144
|
+
.action-button:focus-visible,
|
|
145
|
+
.cancel-button:hover,
|
|
146
|
+
.cancel-button:focus-visible {
|
|
147
|
+
background: var(--photo-capture-hover);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.viewport {
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
width: 100%;
|
|
155
|
+
min-height: 200px;
|
|
156
|
+
border-radius: 0.5rem;
|
|
157
|
+
overflow: hidden;
|
|
158
|
+
background: color-mix(in srgb, var(--photo-capture-surface) 92%, #000 8%);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.viewport video,
|
|
162
|
+
.viewport img {
|
|
163
|
+
display: block;
|
|
164
|
+
width: 100%;
|
|
165
|
+
max-width: var(--photo-capture-frame-max-width);
|
|
166
|
+
height: auto;
|
|
167
|
+
border-radius: 0.5rem;
|
|
168
|
+
margin: 0 auto;
|
|
169
|
+
object-fit: cover;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.status {
|
|
173
|
+
width: 100%;
|
|
174
|
+
text-align: center;
|
|
175
|
+
color: var(--photo-capture-muted-text);
|
|
176
|
+
font-size: 0.875rem;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.status.error {
|
|
180
|
+
color: var(--color-error, #b00020);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.actions {
|
|
184
|
+
display: flex;
|
|
185
|
+
align-items: center;
|
|
186
|
+
justify-content: center;
|
|
187
|
+
flex-wrap: wrap;
|
|
188
|
+
gap: var(--photo-capture-gap);
|
|
189
|
+
width: 100%;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.action-button,
|
|
193
|
+
.cancel-button {
|
|
194
|
+
display: inline-flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
justify-content: center;
|
|
197
|
+
min-height: 2.25rem;
|
|
198
|
+
padding: 0.45rem 0.85rem;
|
|
199
|
+
border-radius: var(--photo-capture-button-radius);
|
|
200
|
+
border: 1px solid var(--photo-capture-border);
|
|
201
|
+
background: var(--photo-capture-surface);
|
|
202
|
+
color: var(--photo-capture-text);
|
|
203
|
+
font-size: var(--font-size-xxs, 0.75rem);
|
|
204
|
+
font-weight: var(--font-weight-xbold, 700);
|
|
205
|
+
line-height: 1.5;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.action-button--primary {
|
|
209
|
+
background: var(--photo-capture-trigger-background);
|
|
210
|
+
color: var(--photo-capture-trigger-text);
|
|
211
|
+
border-color: transparent;
|
|
212
|
+
}
|
|
213
|
+
`;_value=null;_stream=null;_internals;_associatedForm=null;_handleFormData=t=>{const e=t.formData;e&&this.name&&this.value&&!this.disabled&&e.append(this.name,this.value,this.value.name)};_handleFormReset=()=>{this._clearValue({emitEvents:!1}),this.open&&this._queuePreviewStart()};get _supportsFormInternals(){return!!this._internals&&"function"==typeof this._internals.setFormValue}constructor(){super(),this.label="Take Photo",this.heading="Take a photo",this.captureLabel="Take Photo",this.confirmLabel="Use Photo",this.retakeLabel="Retake",this.cancelLabel="Cancel",this.presentation="inline",this.theme="light",this.facingMode="user",this.constraints="",this.captureFormat=pt,this.captureQuality=void 0,this.open=!1,this.disabled=!1,this.name="",this.required=!1,this.showTrigger=!1,this.showCancelButton=!0,this.autoCloseOnCapture=!1,this.fileNamePrefix="",this.mediaConstraints=void 0,this._errorMessage="",this._previewUrl="",this._startingPreview=!1,this._internals="function"==typeof this.attachInternals?this.attachInternals():null}get value(){return this._value}set value(t){const e=t instanceof File?t:null,s=this._value;s!==e&&(this._value=e,this._syncPreviewFromValue(e),this._syncFormValue(),this._syncValidity(),this.requestUpdate("value",s))}get form(){return(this._supportsFormInternals?this._internals?.form:null)??this._associatedForm}get validationMessage(){return("string"==typeof this._internals?.validationMessage?this._internals.validationMessage:"")||(this.required&&!this.value?"Please capture a photo.":"")}get willValidate(){return"boolean"==typeof this._internals?.willValidate?this._internals.willValidate:!this.disabled}checkValidity(){return this._internals&&"function"==typeof this._internals.checkValidity?this._internals.checkValidity():!(this.required&&!this.value)}reportValidity(){return this._internals&&"function"==typeof this._internals.reportValidity?this._internals.reportValidity():this.checkValidity()}connectedCallback(){super.connectedCallback(),this._syncAssociatedForm(),this._syncFormValue(),this._syncValidity()}disconnectedCallback(){this._syncAssociatedForm(null),this._stopStream(),this._revokePreviewUrl(),super.disconnectedCallback()}formResetCallback(){this._handleFormReset()}formDisabledCallback(t){this.disabled=t}updated(t){if(this._syncAssociatedForm(),"dialog"===this.presentation){const t=this.shadowRoot?.querySelector("dialog");t&&(this.open&&!t.open?t.showModal():!this.open&&t.open&&t.close())}if(t.has("open")&&!this.open&&this._stopStream(),!this.open||this.value||this._stream||this._startingPreview||!(t.has("open")||t.has("presentation")||t.has("_previewUrl")||t.has("value"))||this._queuePreviewStart(),(t.has("name")||t.has("disabled")||t.has("value"))&&this._syncFormValue(),(t.has("required")||t.has("disabled")||t.has("value"))&&this._syncValidity(),this._stream){const t=this.shadowRoot?.querySelector("video.capture-preview");t&&t.srcObject!==this._stream&&(t.srcObject=this._stream)}}_setOpen(t){this.open!==t&&(this.open=t,this.dispatchEvent(new CustomEvent("open-change",{detail:{open:t},bubbles:!0,composed:!0})))}_emitError(t,e="Unable to access the camera"){this._errorMessage=e,this.dispatchEvent(new CustomEvent("error",{detail:{error:t,message:e},bubbles:!0,composed:!0}))}_syncAssociatedForm(t=this.closest("form")){this._associatedForm!==t&&(this._associatedForm&&(this._associatedForm.removeEventListener("formdata",this._handleFormData),this._associatedForm.removeEventListener("reset",this._handleFormReset)),this._associatedForm=t,this._associatedForm&&!this._supportsFormInternals&&(this._associatedForm.addEventListener("formdata",this._handleFormData),this._associatedForm.addEventListener("reset",this._handleFormReset)))}_syncFormValue(){if(!this._supportsFormInternals)return;const t=this._internals;t&&(!this.disabled&&this.name&&this.value?t.setFormValue(this.value):t.setFormValue(null))}_syncValidity(){this._internals&&this._supportsFormInternals&&"function"==typeof this._internals.setValidity&&(this.disabled||!this.required||this.value?this._internals.setValidity({}):this._internals.setValidity({valueMissing:!0},"Please capture a photo."))}_syncPreviewFromValue(t){this._revokePreviewUrl(),t&&(this._stopStream(),this._previewUrl=URL.createObjectURL(t))}_clearValue(t){this.value=null,this._errorMessage="",t.emitEvents&&this._dispatchValueEvents()}_dispatchValueEvents(){const t={value:this.value};this.dispatchEvent(new CustomEvent("input",{detail:t,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:t,bubbles:!0,composed:!0}))}_fileExtensionForMimeType(t){switch(t){case"image/jpeg":return"jpg";case"image/webp":return"webp";case"image/gif":return"gif";default:return"png"}}_createFileFromBlob(t){const e=t.type||this.captureFormat||pt,s=this._fileExtensionForMimeType(e),i=(this.fileNamePrefix||this.name||"photo").trim()||"photo";return new File([t],`${i}-${Date.now()}.${s}`,{type:e})}_queuePreviewStart(){this._startPreview().catch(()=>{})}_resolveMediaConstraints(){if(this.mediaConstraints)return this.mediaConstraints;if(this.constraints)try{return JSON.parse(this.constraints)}catch(t){throw new Error(`Invalid constraints JSON: ${t.message}`)}return{video:!this.facingMode||{facingMode:{ideal:this.facingMode}}}}async _startPreview(){if(this.open&&!this.value&&!this._startingPreview)if(navigator.mediaDevices?.getUserMedia){this._startingPreview=!0,this._errorMessage="";try{const t=await navigator.mediaDevices.getUserMedia(this._resolveMediaConstraints());if(!this.open)return void t.getTracks().forEach(t=>t.stop());this._stream=t,this.requestUpdate(),await this.updateComplete;const e=this.shadowRoot?.querySelector("video.capture-preview");e&&(e.srcObject=t,await(e.play?.().catch(()=>{})))}catch(t){this._emitError(t,t?.message||"Unable to start the camera preview")}finally{this._startingPreview=!1}}else this._emitError(new Error("navigator.mediaDevices.getUserMedia not available"),"Camera access is not available in this browser")}_stopStream(){if(!this._stream)return;this._stream.getTracks().forEach(t=>t.stop()),this._stream=null;const t=this.shadowRoot?.querySelector("video.capture-preview");t&&(t.srcObject=null)}_revokePreviewUrl(){this._previewUrl&&URL.revokeObjectURL(this._previewUrl),this._previewUrl=""}async _captureSnapshot(){const t=this.shadowRoot?.querySelector("video.capture-preview");if(!t)return;const e=t.videoWidth||t.clientWidth||640,s=t.videoHeight||t.clientHeight||480,i=document.createElement("canvas");i.width=e,i.height=s;const r=i.getContext("2d");if(!r)return void this._emitError(new Error("Canvas 2D context unavailable"),"Unable to capture a photo in this browser");r.drawImage(t,0,0,e,s);const o=await new Promise(t=>{i.toBlob(t,this.captureFormat||pt,this.captureQuality)});o?(this.value=this._createFileFromBlob(o),this._errorMessage=""):this._emitError(new Error("Camera snapshot failed"),"Unable to create an image from the current camera frame")}async _retakePhoto(){this._clearValue({emitEvents:!0}),await this._startPreview()}_confirmPhoto(){this.value&&this._previewUrl&&(this._dispatchValueEvents(),this.dispatchEvent(new CustomEvent("photo-captured",{detail:{file:this.value,blob:this.value,objectUrl:this._previewUrl,contentType:this.value.type||this.captureFormat||pt},bubbles:!0,composed:!0})),this.autoCloseOnCapture&&this._setOpen(!1))}_handleCancel(){this._stopStream(),this._clearValue({emitEvents:!1}),this._setOpen(!1),this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))}_openCapture(){this.disabled||this._setOpen(!0)}_renderViewport(){return this._previewUrl?I`<img class="capture-preview" part="preview-image" src="${this._previewUrl}" alt="Captured photo preview" />`:I`<video class="capture-preview" part="preview-video" autoplay playsinline muted></video>`}_renderStatus(){return this._errorMessage?I`<div class="status error" part="error-message">${this._errorMessage}</div>`:this._startingPreview?I`<div class="status" part="status-message">Opening camera…</div>`:this.value?I`<div class="status" part="status-message">Review the photo before confirming it.</div>`:I`<div class="status" part="status-message">Preview the camera and take a photo when ready.</div>`}_renderActions(){return I`
|
|
214
|
+
<div class="actions" part="actions">
|
|
215
|
+
${this.showCancelButton?I`
|
|
216
|
+
<button
|
|
217
|
+
class="cancel-button"
|
|
218
|
+
part="cancel-button"
|
|
219
|
+
type="button"
|
|
220
|
+
@click="${this._handleCancel}"
|
|
221
|
+
>${this.cancelLabel}</button>
|
|
222
|
+
`:J}
|
|
223
|
+
|
|
224
|
+
${this.value?I`
|
|
225
|
+
<button
|
|
226
|
+
class="action-button"
|
|
227
|
+
part="retake-button"
|
|
228
|
+
type="button"
|
|
229
|
+
@click="${this._retakePhoto}"
|
|
230
|
+
>${this.retakeLabel}</button>
|
|
231
|
+
<button
|
|
232
|
+
class="action-button action-button--primary"
|
|
233
|
+
part="confirm-button"
|
|
234
|
+
type="button"
|
|
235
|
+
@click="${this._confirmPhoto}"
|
|
236
|
+
>${this.confirmLabel}</button>
|
|
237
|
+
`:I`
|
|
238
|
+
<button
|
|
239
|
+
class="action-button action-button--primary"
|
|
240
|
+
part="capture-button"
|
|
241
|
+
type="button"
|
|
242
|
+
?disabled="${this._startingPreview||!this._stream}"
|
|
243
|
+
@click="${this._captureSnapshot}"
|
|
244
|
+
>${this.captureLabel}</button>
|
|
245
|
+
`}
|
|
246
|
+
</div>
|
|
247
|
+
`}_renderPanel(){return I`
|
|
248
|
+
<div class="panel" part="panel">
|
|
249
|
+
<div class="panel-header" part="header">
|
|
250
|
+
<h2 class="panel-heading" part="heading"><slot name="heading">${this.heading}</slot></h2>
|
|
251
|
+
${this.showCancelButton?I`
|
|
252
|
+
<button
|
|
253
|
+
class="close-button"
|
|
254
|
+
part="close-button"
|
|
255
|
+
type="button"
|
|
256
|
+
aria-label="${this.cancelLabel}"
|
|
257
|
+
@click="${this._handleCancel}"
|
|
258
|
+
>×</button>
|
|
259
|
+
`:J}
|
|
260
|
+
</div>
|
|
261
|
+
<div class="viewport" part="viewport">${this._renderViewport()}</div>
|
|
262
|
+
${this._renderStatus()}
|
|
263
|
+
${this._renderActions()}
|
|
264
|
+
</div>
|
|
265
|
+
`}render(){const t=this.showTrigger||"dialog"===this.presentation;return I`
|
|
266
|
+
${t?I`
|
|
267
|
+
<button
|
|
268
|
+
class="trigger-button"
|
|
269
|
+
part="trigger-button"
|
|
270
|
+
type="button"
|
|
271
|
+
?disabled="${this.disabled}"
|
|
272
|
+
@click="${this._openCapture}"
|
|
273
|
+
><slot>${this.label}</slot></button>
|
|
274
|
+
`:J}
|
|
275
|
+
|
|
276
|
+
${"dialog"===this.presentation?I`
|
|
277
|
+
<dialog
|
|
278
|
+
class="dialog"
|
|
279
|
+
part="dialog"
|
|
280
|
+
aria-modal="true"
|
|
281
|
+
aria-label="${this.heading}"
|
|
282
|
+
@cancel="${t=>{t.preventDefault(),this._handleCancel()}}"
|
|
283
|
+
@click="${t=>{t.target===t.currentTarget&&this._handleCancel()}}"
|
|
284
|
+
>
|
|
285
|
+
${this.open?this._renderPanel():J}
|
|
286
|
+
</dialog>
|
|
287
|
+
`:I`
|
|
288
|
+
<div class="inline-root" part="inline-root" ?hidden="${!this.open}">
|
|
289
|
+
${this.open?this._renderPanel():J}
|
|
290
|
+
</div>
|
|
291
|
+
`}
|
|
292
|
+
`}}const ut="solid-ui-photo-capture";customElements.get(ut)||customElements.define(ut,dt)})();
|
|
293
|
+
//# sourceMappingURL=index.min.js.map
|