@record-evolution/widget-form 1.0.9 → 1.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"widget-form.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../node_modules/@lit/reactive-element/decorators/query-all.js","../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","../node_modules/@material/web/elevation/internal/elevation.js","../node_modules/@material/web/elevation/internal/elevation-styles.js","../node_modules/@material/web/elevation/elevation.js","../node_modules/@material/web/internal/controller/attachable-controller.js","../node_modules/@material/web/focus/internal/focus-ring.js","../node_modules/@material/web/focus/internal/focus-ring-styles.js","../node_modules/@material/web/focus/focus-ring.js","../node_modules/lit-html/directives/class-map.js","../node_modules/@material/web/internal/motion/animation.js","../node_modules/@material/web/ripple/internal/ripple.js","../node_modules/@material/web/ripple/internal/ripple-styles.js","../node_modules/@material/web/ripple/ripple.js","../node_modules/@material/web/internal/aria/aria.js","../node_modules/@material/web/internal/aria/delegate.js","../node_modules/@material/web/fab/internal/shared.js","../node_modules/@material/web/fab/internal/fab.js","../node_modules/@material/web/fab/internal/fab-styles.js","../node_modules/@material/web/fab/internal/forced-colors-styles.js","../node_modules/@material/web/fab/internal/shared-styles.js","../node_modules/@material/web/fab/fab.js","../node_modules/@material/web/icon/internal/icon.js","../node_modules/@material/web/icon/internal/icon-styles.js","../node_modules/@material/web/icon/icon.js","../node_modules/@material/web/divider/internal/divider.js","../node_modules/@material/web/divider/internal/divider-styles.js","../node_modules/@material/web/divider/divider.js","../node_modules/@material/web/internal/events/redispatch-event.js","../node_modules/@material/web/dialog/internal/animations.js","../node_modules/@material/web/dialog/internal/dialog.js","../node_modules/@material/web/dialog/internal/dialog-styles.js","../node_modules/@material/web/dialog/dialog.js","../node_modules/@material/web/button/internal/shared-styles.js","../node_modules/@material/web/labs/behaviors/element-internals.js","../node_modules/@material/web/internal/controller/form-submitter.js","../node_modules/@material/web/internal/events/form-label-activation.js","../node_modules/@material/web/button/internal/button.js","../node_modules/@material/web/button/internal/text-button.js","../node_modules/@material/web/button/internal/text-styles.js","../node_modules/@material/web/button/text-button.js","../node_modules/@material/web/button/internal/outlined-button.js","../node_modules/@material/web/button/internal/outlined-styles.js","../node_modules/@material/web/button/outlined-button.js","../node_modules/@material/web/button/internal/filled-button.js","../node_modules/@material/web/button/internal/filled-styles.js","../node_modules/@material/web/button/internal/shared-elevation-styles.js","../node_modules/@material/web/button/filled-button.js","../node_modules/@material/web/field/internal/field.js","../node_modules/@material/web/field/internal/outlined-field.js","../node_modules/@material/web/field/internal/outlined-styles.js","../node_modules/@material/web/field/internal/shared-styles.js","../node_modules/@material/web/field/outlined-field.js","../node_modules/lit-html/static.js","../node_modules/@material/web/textfield/internal/outlined-styles.js","../node_modules/lit-html/directives/live.js","../node_modules/lit-html/directives/style-map.js","../node_modules/@material/web/internal/controller/string-converter.js","../node_modules/@material/web/labs/behaviors/constraint-validation.js","../node_modules/@material/web/labs/behaviors/form-associated.js","../node_modules/@material/web/labs/behaviors/on-report-validity.js","../node_modules/@material/web/labs/behaviors/validators/validator.js","../node_modules/@material/web/labs/behaviors/validators/text-field-validator.js","../node_modules/@material/web/textfield/internal/text-field.js","../node_modules/@material/web/textfield/internal/outlined-text-field.js","../node_modules/@material/web/textfield/internal/shared-styles.js","../node_modules/@material/web/textfield/outlined-text-field.js","../node_modules/@material/web/labs/behaviors/validators/checkbox-validator.js","../node_modules/@material/web/checkbox/internal/checkbox.js","../node_modules/@material/web/checkbox/internal/checkbox-styles.js","../node_modules/@material/web/checkbox/checkbox.js","../node_modules/@material/web/list/internal/list-navigation-helpers.js","../node_modules/@material/web/list/internal/list-controller.js","../node_modules/@material/web/menu/internal/controllers/shared.js","../node_modules/@material/web/menu/internal/controllers/surfacePositionController.js","../node_modules/@material/web/menu/internal/controllers/typeaheadController.js","../node_modules/@material/web/menu/internal/menu.js","../node_modules/@material/web/menu/internal/menu-styles.js","../node_modules/@material/web/menu/menu.js","../node_modules/@material/web/labs/behaviors/validators/select-validator.js","../node_modules/@material/web/select/internal/shared.js","../node_modules/@material/web/select/internal/select.js","../node_modules/@material/web/select/internal/outlined-select.js","../node_modules/@material/web/select/internal/outlined-select-styles.js","../node_modules/@material/web/select/internal/shared-styles.js","../node_modules/@material/web/select/outlined-select.js","../node_modules/@material/web/menu/internal/menuitem/menu-item-styles.js","../node_modules/@material/web/labs/item/internal/item.js","../node_modules/@material/web/labs/item/internal/item-styles.js","../node_modules/@material/web/labs/item/item.js","../node_modules/@material/web/menu/internal/controllers/menuItemController.js","../node_modules/@material/web/select/internal/selectoption/selectOptionController.js","../node_modules/@material/web/select/internal/selectoption/select-option.js","../node_modules/@material/web/select/select-option.js","../../src/widget-form.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\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,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$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.0\");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.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(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=S(t,h._$AS(t,i.values),h,e)),i}class M{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??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,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 R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,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=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(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!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.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=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(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 R(this.O(l()),this.O(l()),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,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,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=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||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){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(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 R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b 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.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function n(n){return(o,r)=>{const{slot:e}=n??{},s=\"slot\"+(e?`[name=${e}]`:\":not([name])\");return t(o,r,{get(){const t=this.renderRoot?.querySelector(s);return t?.assignedNodes(n)??[]}})}}export{n as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html, LitElement } from 'lit';\n/**\n * A component for elevation.\n */\nexport class Elevation extends LitElement {\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n render() {\n return html `<span class=\"shadow\"></span>`;\n }\n}\n//# sourceMappingURL=elevation.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./elevation/internal/elevation-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host,.shadow,.shadow::before,.shadow::after{border-radius:inherit;inset:0;position:absolute;transition-duration:inherit;transition-property:inherit;transition-timing-function:inherit}:host{display:flex;pointer-events:none;transition-property:box-shadow,opacity}.shadow::before,.shadow::after{content:\"\";transition-property:box-shadow,opacity;--_level: var(--mdif1-elevation-level, 0);--_shadow-color: var(--mdif1-elevation-shadow-color, var(--mdif1-sys-color-shadow, #000))}.shadow::before{box-shadow:0px calc(1px*(clamp(0,var(--_level),1) + clamp(0,var(--_level) - 3,1) + 2*clamp(0,var(--_level) - 4,1))) calc(1px*(2*clamp(0,var(--_level),1) + clamp(0,var(--_level) - 2,1) + clamp(0,var(--_level) - 4,1))) 0px var(--_shadow-color);opacity:.3}.shadow::after{box-shadow:0px calc(1px*(clamp(0,var(--_level),1) + clamp(0,var(--_level) - 1,1) + 2*clamp(0,var(--_level) - 2,3))) calc(1px*(3*clamp(0,var(--_level),2) + 2*clamp(0,var(--_level) - 2,3))) calc(1px*(clamp(0,var(--_level),4) + 2*clamp(0,var(--_level) - 4,1))) var(--_shadow-color);opacity:.15}\n`;\n//# sourceMappingURL=elevation-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Elevation } from './internal/elevation.js';\nimport { styles } from './internal/elevation-styles.js';\n/**\n * The `<mdif1-elevation>` custom element with default styles.\n *\n * Elevation is the relative distance between two surfaces along the z-axis.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdElevation = class MdElevation extends Elevation {\n};\nMdElevation.styles = [styles];\nMdElevation = __decorate([\n customElement('mdif1-elevation')\n], MdElevation);\nexport { MdElevation };\n//# sourceMappingURL=elevation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\n/**\n * A key to retrieve an `Attachable` element's `AttachableController` from a\n * global `MutationObserver`.\n */\nconst ATTACHABLE_CONTROLLER = Symbol('attachableController');\nlet FOR_ATTRIBUTE_OBSERVER;\nif (!isServer) {\n /**\n * A global `MutationObserver` that reacts to `for` attribute changes on\n * `Attachable` elements. If the `for` attribute changes, the controller will\n * re-attach to the new referenced element.\n */\n FOR_ATTRIBUTE_OBSERVER = new MutationObserver((records) => {\n for (const record of records) {\n // When a control's `for` attribute changes, inform its\n // `AttachableController` to update to a new control.\n record.target[ATTACHABLE_CONTROLLER]?.hostConnected();\n }\n });\n}\n/**\n * A controller that provides an implementation for `Attachable` elements.\n *\n * @example\n * ```ts\n * class MyElement extends LitElement implements Attachable {\n * get control() { return this.attachableController.control; }\n *\n * private readonly attachableController = new AttachableController(\n * this,\n * (previousControl, newControl) => {\n * previousControl?.removeEventListener('click', this.handleClick);\n * newControl?.addEventListener('click', this.handleClick);\n * }\n * );\n *\n * // Implement remaining `Attachable` properties/methods that call the\n * // controller's properties/methods.\n * }\n * ```\n */\nexport class AttachableController {\n get htmlFor() {\n return this.host.getAttribute('for');\n }\n set htmlFor(htmlFor) {\n if (htmlFor === null) {\n this.host.removeAttribute('for');\n }\n else {\n this.host.setAttribute('for', htmlFor);\n }\n }\n get control() {\n if (this.host.hasAttribute('for')) {\n if (!this.htmlFor || !this.host.isConnected) {\n return null;\n }\n return this.host.getRootNode().querySelector(`#${this.htmlFor}`);\n }\n return this.currentControl || this.host.parentElement;\n }\n set control(control) {\n if (control) {\n this.attach(control);\n }\n else {\n this.detach();\n }\n }\n /**\n * Creates a new controller for an `Attachable` element.\n *\n * @param host The `Attachable` element.\n * @param onControlChange A callback with two parameters for the previous and\n * next control. An `Attachable` element may perform setup or teardown\n * logic whenever the control changes.\n */\n constructor(host, onControlChange) {\n this.host = host;\n this.onControlChange = onControlChange;\n this.currentControl = null;\n host.addController(this);\n host[ATTACHABLE_CONTROLLER] = this;\n FOR_ATTRIBUTE_OBSERVER?.observe(host, { attributeFilter: ['for'] });\n }\n attach(control) {\n if (control === this.currentControl) {\n return;\n }\n this.setCurrentControl(control);\n // When imperatively attaching, remove the `for` attribute so\n // that the attached control is used instead of a referenced one.\n this.host.removeAttribute('for');\n }\n detach() {\n this.setCurrentControl(null);\n // When imperatively detaching, add an empty `for=\"\"` attribute. This will\n // ensure the control is `null` rather than the `parentElement`.\n this.host.setAttribute('for', '');\n }\n /** @private */\n hostConnected() {\n this.setCurrentControl(this.control);\n }\n /** @private */\n hostDisconnected() {\n this.setCurrentControl(null);\n }\n setCurrentControl(control) {\n this.onControlChange(this.currentControl, control);\n this.currentControl = control;\n }\n}\n//# sourceMappingURL=attachable-controller.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { isServer, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\n/**\n * Events that the focus ring listens to.\n */\nconst EVENTS = ['focusin', 'focusout', 'pointerdown'];\n/**\n * A focus ring component.\n *\n * @fires visibility-changed {Event} Fired whenever `visible` changes.\n */\nexport class FocusRing extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Makes the focus ring visible.\n */\n this.visible = false;\n /**\n * Makes the focus ring animate inwards instead of outwards.\n */\n this.inward = false;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n /** @private */\n handleEvent(event) {\n if (event[HANDLED_BY_FOCUS_RING]) {\n // This ensures the focus ring does not activate when multiple focus rings\n // are used within a single component.\n return;\n }\n switch (event.type) {\n default:\n return;\n case 'focusin':\n this.visible = this.control?.matches(':focus-visible') ?? false;\n break;\n case 'focusout':\n case 'pointerdown':\n this.visible = false;\n break;\n }\n event[HANDLED_BY_FOCUS_RING] = true;\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n update(changed) {\n if (changed.has('visible')) {\n // This logic can be removed once the `:has` selector has been introduced\n // to Firefox. This is necessary to allow correct submenu styles.\n this.dispatchEvent(new Event('visibility-changed'));\n }\n super.update(changed);\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"visible\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"inward\", void 0);\nconst HANDLED_BY_FOCUS_RING = Symbol('handledByFocusRing');\n//# sourceMappingURL=focus-ring.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./focus/internal/focus-ring-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{animation-delay:0s,calc(var(--mdif1-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--mdif1-focus-ring-duration, 600ms)*.25),calc(var(--mdif1-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--mdif1-focus-ring-color, var(--mdif1-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--mdif1-focus-ring-shape-end-end, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) + var(--mdif1-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--mdif1-focus-ring-shape-end-start, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) + var(--mdif1-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--mdif1-focus-ring-shape-start-end, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) + var(--mdif1-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--mdif1-focus-ring-shape-start-start, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) + var(--mdif1-focus-ring-outward-offset, 2px));inset:calc(-1*var(--mdif1-focus-ring-outward-offset, 2px));outline:var(--mdif1-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--mdif1-focus-ring-shape-end-end, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) - var(--mdif1-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--mdif1-focus-ring-shape-end-start, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) - var(--mdif1-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--mdif1-focus-ring-shape-start-end, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) - var(--mdif1-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--mdif1-focus-ring-shape-start-start, var(--mdif1-focus-ring-shape, var(--mdif1-sys-shape-corner-full, 9999px))) - var(--mdif1-focus-ring-inward-offset, 0px));border:var(--mdif1-focus-ring-width, 3px) solid currentColor;inset:var(--mdif1-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--mdif1-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--mdif1-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--mdif1-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--mdif1-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}\n`;\n//# sourceMappingURL=focus-ring-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FocusRing } from './internal/focus-ring.js';\nimport { styles } from './internal/focus-ring-styles.js';\n/**\n * TODO(b/267336424): add docs\n *\n * @final\n * @suppress {visibility}\n */\nlet MdFocusRing = class MdFocusRing extends FocusRing {\n};\nMdFocusRing.styles = [styles];\nMdFocusRing = __decorate([\n customElement('mdif1-focus-ring')\n], MdFocusRing);\nexport { MdFocusRing };\n//# sourceMappingURL=focus-ring.js.map","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Easing functions to use for web animations.\n *\n * **NOTE:** `EASING.EMPHASIZED` is approximated with unknown accuracy.\n *\n * TODO(b/241113345): replace with tokens\n */\nexport const EASING = {\n STANDARD: 'cubic-bezier(0.2, 0, 0, 1)',\n STANDARD_ACCELERATE: 'cubic-bezier(.3,0,1,1)',\n STANDARD_DECELERATE: 'cubic-bezier(0,0,0,1)',\n EMPHASIZED: 'cubic-bezier(.3,0,0,1)',\n EMPHASIZED_ACCELERATE: 'cubic-bezier(.3,0,.8,.15)',\n EMPHASIZED_DECELERATE: 'cubic-bezier(.05,.7,.1,1)',\n};\n/**\n * Creates an `AnimationSignal` that can be used to cancel a previous task.\n *\n * @example\n * class MyClass {\n * private labelAnimationSignal = createAnimationSignal();\n *\n * private async animateLabel() {\n * // Start of the task. Previous tasks will be canceled.\n * const signal = this.labelAnimationSignal.start();\n *\n * // Do async work...\n * if (signal.aborted) {\n * // Use AbortSignal to check if a request was made to abort after some\n * // asynchronous work.\n * return;\n * }\n *\n * const animation = this.animate(...);\n * // Add event listeners to be notified when the task should be canceled.\n * signal.addEventListener('abort', () => {\n * animation.cancel();\n * });\n *\n * animation.addEventListener('finish', () => {\n * // Tell the signal that the current task is finished.\n * this.labelAnimationSignal.finish();\n * });\n * }\n * }\n *\n * @return An `AnimationSignal`.\n */\nexport function createAnimationSignal() {\n // The current animation's AbortController\n let animationAbortController = null;\n return {\n start() {\n // Tell the previous animation to cancel.\n animationAbortController?.abort();\n // Set up a new AbortController for the current animation.\n animationAbortController = new AbortController();\n // Provide the AbortSignal so that the caller can check aborted status\n // and add listeners.\n return animationAbortController.signal;\n },\n finish() {\n animationAbortController = null;\n },\n };\n}\n/**\n * Returns a function which can be used to throttle function calls\n * mapped to a key via a given function that should produce a promise that\n * determines the throttle amount (defaults to requestAnimationFrame).\n */\nexport function createThrottle() {\n const stack = new Set();\n return async (key = '', cb, timeout = async () => {\n await new Promise(requestAnimationFrame);\n }) => {\n if (!stack.has(key)) {\n stack.add(key);\n await timeout();\n if (stack.has(key)) {\n stack.delete(key);\n cb();\n }\n }\n };\n}\n/**\n * Parses an number in milliseconds from a css time value\n */\nexport function msFromTimeCSSValue(value) {\n const match = value.trim().match(/([\\d.]+)(\\s*s$)?/);\n const time = match?.[1];\n const seconds = match?.[2];\n return Number(time ?? 0) * (seconds ? 1000 : 1);\n}\n//# sourceMappingURL=animation.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { html, isServer, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\nimport { EASING } from '../../internal/motion/animation.js';\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nvar State;\n(function (State) {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"INACTIVE\"] = 0] = \"INACTIVE\";\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n State[State[\"TOUCH_DELAY\"] = 1] = \"TOUCH_DELAY\";\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"HOLDING\"] = 2] = \"HOLDING\";\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n State[State[\"WAITING_FOR_CLICK\"] = 3] = \"WAITING_FOR_CLICK\";\n})(State || (State = {}));\n/**\n * Events that the ripple listens to.\n */\nconst EVENTS = [\n 'click',\n 'contextmenu',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerup',\n];\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n/**\n * Used to detect if HCM is active. Events do not process during HCM when the\n * ripple is not displayed.\n */\nconst FORCED_COLORS = isServer\n ? null\n : window.matchMedia('(forced-colors: active)');\n/**\n * A ripple component.\n */\nexport class Ripple extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Disables the ripple.\n */\n this.disabled = false;\n this.hovered = false;\n this.pressed = false;\n this.rippleSize = '';\n this.rippleScale = '';\n this.initialSize = 0;\n this.state = State.INACTIVE;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n render() {\n const classes = {\n 'hovered': this.hovered,\n 'pressed': this.pressed,\n };\n return html `<div class=\"surface ${classMap(classes)}\"></div>`;\n }\n update(changedProps) {\n if (changedProps.has('disabled') && this.disabled) {\n this.hovered = false;\n this.pressed = false;\n }\n super.update(changedProps);\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerenter(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = true;\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerleave(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = false;\n // release a held mouse or pen press that moves outside the element\n if (this.state !== State.INACTIVE) {\n this.endPressAnimation();\n }\n }\n handlePointerup(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n return;\n }\n if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(this.rippleStartEvent);\n return;\n }\n }\n async handlePointerdown(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.rippleStartEvent = event;\n if (!this.isTouch(event)) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(event);\n return;\n }\n // Wait for a hold after touch delay\n this.state = State.TOUCH_DELAY;\n await new Promise((resolve) => {\n setTimeout(resolve, TOUCH_DELAY_MS);\n });\n if (this.state !== State.TOUCH_DELAY) {\n return;\n }\n this.state = State.HOLDING;\n this.startPressAnimation(event);\n }\n handleClick() {\n // Click is a MouseEvent in Firefox and Safari, so we cannot use\n // `shouldReactToEvent`\n if (this.disabled) {\n return;\n }\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPressAnimation();\n return;\n }\n if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.startPressAnimation();\n this.endPressAnimation();\n }\n }\n handlePointercancel(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.endPressAnimation();\n }\n handleContextmenu() {\n if (this.disabled) {\n return;\n }\n this.endPressAnimation();\n }\n determineRippleSize() {\n const { height, width } = this.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n // `?? 1` may be removed once `currentCSSZoom` is widely available.\n const zoom = this.currentCSSZoom ?? 1;\n const initialSize = Math.floor((maxDim * INITIAL_ORIGIN_SCALE) / zoom);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n this.initialSize = initialSize;\n // The dimensions may be altered by CSS `zoom`, which needs to be\n // compensated for in the final scale() value.\n const maybeZoomedScale = (maxRadius + softEdgeSize) / initialSize;\n this.rippleScale = `${maybeZoomedScale / zoom}`;\n this.rippleSize = `${initialSize}px`;\n }\n getNormalizedPointerEventCoords(pointerEvent) {\n const { scrollX, scrollY } = window;\n const { left, top } = this.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { pageX, pageY } = pointerEvent;\n // `?? 1` may be removed once `currentCSSZoom` is widely available.\n const zoom = this.currentCSSZoom ?? 1;\n return {\n x: (pageX - documentX) / zoom,\n y: (pageY - documentY) / zoom,\n };\n }\n getTranslationCoordinates(positionEvent) {\n const { height, width } = this.getBoundingClientRect();\n // `?? 1` may be removed once `currentCSSZoom` is widely available.\n const zoom = this.currentCSSZoom ?? 1;\n // end in the center\n const endPoint = {\n x: (width / zoom - this.initialSize) / 2,\n y: (height / zoom - this.initialSize) / 2,\n };\n let startPoint;\n if (positionEvent instanceof PointerEvent) {\n startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n }\n else {\n startPoint = {\n x: width / zoom / 2,\n y: height / zoom / 2,\n };\n }\n // center around start point\n startPoint = {\n x: startPoint.x - this.initialSize / 2,\n y: startPoint.y - this.initialSize / 2,\n };\n return { startPoint, endPoint };\n }\n startPressAnimation(positionEvent) {\n if (!this.mdRoot) {\n return;\n }\n this.pressed = true;\n this.growAnimation?.cancel();\n this.determineRippleSize();\n const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n this.growAnimation = this.mdRoot.animate({\n top: [0, 0],\n left: [0, 0],\n height: [this.rippleSize, this.rippleSize],\n width: [this.rippleSize, this.rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${this.rippleScale})`,\n ],\n }, {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING.STANDARD,\n fill: ANIMATION_FILL,\n });\n }\n async endPressAnimation() {\n this.rippleStartEvent = undefined;\n this.state = State.INACTIVE;\n const animation = this.growAnimation;\n let pressAnimationPlayState = Infinity;\n if (typeof animation?.currentTime === 'number') {\n pressAnimationPlayState = animation.currentTime;\n }\n else if (animation?.currentTime) {\n pressAnimationPlayState = animation.currentTime.to('ms').value;\n }\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.pressed = false;\n return;\n }\n await new Promise((resolve) => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n if (this.growAnimation !== animation) {\n // A new press animation was started. The old animation was canceled and\n // should not finish the pressed state.\n return;\n }\n this.pressed = false;\n }\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n shouldReactToEvent(event) {\n if (this.disabled || !event.isPrimary) {\n return false;\n }\n if (this.rippleStartEvent &&\n this.rippleStartEvent.pointerId !== event.pointerId) {\n return false;\n }\n if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n return !this.isTouch(event);\n }\n const isPrimaryButton = event.buttons === 1;\n return this.isTouch(event) || isPrimaryButton;\n }\n isTouch({ pointerType }) {\n return pointerType === 'touch';\n }\n /** @private */\n async handleEvent(event) {\n if (FORCED_COLORS?.matches) {\n // Skip event logic since the ripple is `display: none`.\n return;\n }\n switch (event.type) {\n case 'click':\n this.handleClick();\n break;\n case 'contextmenu':\n this.handleContextmenu();\n break;\n case 'pointercancel':\n this.handlePointercancel(event);\n break;\n case 'pointerdown':\n await this.handlePointerdown(event);\n break;\n case 'pointerenter':\n this.handlePointerenter(event);\n break;\n case 'pointerleave':\n this.handlePointerleave(event);\n break;\n case 'pointerup':\n this.handlePointerup(event);\n break;\n default:\n break;\n }\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], Ripple.prototype, \"disabled\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"hovered\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"pressed\", void 0);\n__decorate([\n query('.surface')\n], Ripple.prototype, \"mdRoot\", void 0);\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./ripple/internal/ripple-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:flex;margin:auto;pointer-events:none}:host([disabled]){display:none}@media(forced-colors: active){:host{display:none}}:host,.surface{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.surface{-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{content:\"\";opacity:0;position:absolute}.surface::before{background-color:var(--mdif1-ripple-hover-color, var(--mdif1-sys-color-on-surface, #1d1b20));inset:0;transition:opacity 15ms linear,background-color 15ms linear}.surface::after{background:radial-gradient(closest-side, var(--mdif1-ripple-pressed-color, var(--mdif1-sys-color-on-surface, #1d1b20)) max(100% - 70px, 65%), transparent 100%);transform-origin:center center;transition:opacity 375ms linear}.hovered::before{background-color:var(--mdif1-ripple-hover-color, var(--mdif1-sys-color-on-surface, #1d1b20));opacity:var(--mdif1-ripple-hover-opacity, 0.08)}.pressed::after{opacity:var(--mdif1-ripple-pressed-opacity, 0.12);transition-duration:105ms}\n`;\n//# sourceMappingURL=ripple-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Ripple } from './internal/ripple.js';\nimport { styles } from './internal/ripple-styles.js';\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdRipple = class MdRipple extends Ripple {\n};\nMdRipple.styles = [styles];\nMdRipple = __decorate([\n customElement('mdif1-ripple')\n], MdRipple);\nexport { MdRipple };\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Accessibility Object Model reflective aria properties.\n */\nexport const ARIA_PROPERTIES = [\n 'role',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColSpan',\n 'ariaCurrent',\n 'ariaDisabled',\n 'ariaExpanded',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n];\n/**\n * Accessibility Object Model aria attributes.\n */\nexport const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);\n/**\n * Checks if an attribute is one of the AOM aria attributes.\n *\n * @example\n * isAriaAttribute('aria-label'); // true\n *\n * @param attribute The attribute to check.\n * @return True if the attribute is an aria attribute, or false if not.\n */\nexport function isAriaAttribute(attribute) {\n return ARIA_ATTRIBUTES.includes(attribute);\n}\n/**\n * Converts an AOM aria property into its corresponding attribute.\n *\n * @example\n * ariaPropertyToAttribute('ariaLabel'); // 'aria-label'\n *\n * @param property The aria property.\n * @return The aria attribute.\n */\nexport function ariaPropertyToAttribute(property) {\n return property\n .replace('aria', 'aria-')\n // IDREF attributes also include an \"Element\" or \"Elements\" suffix\n .replace(/Elements?/g, '')\n .toLowerCase();\n}\n//# sourceMappingURL=aria.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { ARIA_PROPERTIES, ariaPropertyToAttribute, isAriaAttribute, } from './aria.js';\n// Private symbols\nconst privateIgnoreAttributeChangesFor = Symbol('privateIgnoreAttributeChangesFor');\n/**\n * Mixes in aria delegation for elements that delegate focus and aria to inner\n * shadow root elements.\n *\n * This mixin fixes invalid aria announcements with shadow roots, caused by\n * duplicate aria attributes on both the host and the inner shadow root element.\n *\n * Note: this mixin **does not yet support** ID reference attributes, such as\n * `aria-labelledby` or `aria-controls`.\n *\n * @example\n * ```ts\n * class MyButton extends mixinDelegatesAria(LitElement) {\n * static shadowRootOptions = {mode: 'open', delegatesFocus: true};\n *\n * render() {\n * return html`\n * <button aria-label=${this.ariaLabel || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * }\n * }\n * ```\n * ```html\n * <my-button aria-label=\"Plus one\">+1</my-button>\n * ```\n *\n * Use `ARIAMixinStrict` for lit analyzer strict types, such as the \"role\"\n * attribute.\n *\n * @example\n * ```ts\n * return html`\n * <button role=${(this as ARIAMixinStrict).role || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * ```\n *\n * In the future, updates to the Accessibility Object Model (AOM) will provide\n * built-in aria delegation features that will replace this mixin.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with aria delegation mixed in.\n */\nexport function mixinDelegatesAria(base) {\n var _a;\n if (isServer) {\n // Don't shift attributes when running with lit-ssr. The SSR renderer\n // implements a subset of DOM APIs, including the methods this mixin\n // overrides, causing errors. We don't need to shift on the server anyway\n // since elements will shift attributes immediately once they hydrate.\n return base;\n }\n class WithDelegatesAriaElement extends base {\n constructor() {\n super(...arguments);\n this[_a] = new Set();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!isAriaAttribute(name)) {\n super.attributeChangedCallback(name, oldValue, newValue);\n return;\n }\n if (this[privateIgnoreAttributeChangesFor].has(name)) {\n return;\n }\n // Don't trigger another `attributeChangedCallback` once we remove the\n // aria attribute from the host. We check the explicit name of the\n // attribute to ignore since `attributeChangedCallback` can be called\n // multiple times out of an expected order when hydrating an element with\n // multiple attributes.\n this[privateIgnoreAttributeChangesFor].add(name);\n this.removeAttribute(name);\n this[privateIgnoreAttributeChangesFor].delete(name);\n const dataProperty = ariaAttributeToDataProperty(name);\n if (newValue === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = newValue;\n }\n this.requestUpdate(ariaAttributeToDataProperty(name), oldValue);\n }\n getAttribute(name) {\n if (isAriaAttribute(name)) {\n return super.getAttribute(ariaAttributeToDataAttribute(name));\n }\n return super.getAttribute(name);\n }\n removeAttribute(name) {\n super.removeAttribute(name);\n if (isAriaAttribute(name)) {\n super.removeAttribute(ariaAttributeToDataAttribute(name));\n // Since `aria-*` attributes are already removed`, we need to request\n // an update because `attributeChangedCallback` will not be called.\n this.requestUpdate();\n }\n }\n }\n _a = privateIgnoreAttributeChangesFor;\n setupDelegatesAriaProperties(WithDelegatesAriaElement);\n return WithDelegatesAriaElement;\n}\n/**\n * Overrides the constructor's native `ARIAMixin` properties to ensure that\n * aria properties reflect the values that were shifted to a data attribute.\n *\n * @param ctor The `ReactiveElement` constructor to patch.\n */\nfunction setupDelegatesAriaProperties(ctor) {\n for (const ariaProperty of ARIA_PROPERTIES) {\n // The casing between ariaProperty and the dataProperty may be different.\n // ex: aria-haspopup -> ariaHasPopup\n const ariaAttribute = ariaPropertyToAttribute(ariaProperty);\n // ex: aria-haspopup -> data-aria-haspopup\n const dataAttribute = ariaAttributeToDataAttribute(ariaAttribute);\n // ex: aria-haspopup -> dataset.ariaHaspopup\n const dataProperty = ariaAttributeToDataProperty(ariaAttribute);\n // Call `ReactiveElement.createProperty()` so that the `aria-*` and `data-*`\n // attributes are added to the `static observedAttributes` array. This\n // triggers `attributeChangedCallback` for the delegates aria mixin to\n // handle.\n ctor.createProperty(ariaProperty, {\n attribute: ariaAttribute,\n noAccessor: true,\n });\n ctor.createProperty(Symbol(dataAttribute), {\n attribute: dataAttribute,\n noAccessor: true,\n });\n // Re-define the `ARIAMixin` properties to handle data attribute shifting.\n // It is safe to use `Object.defineProperty` here because the properties\n // are native and not renamed.\n // tslint:disable-next-line:ban-unsafe-reflection\n Object.defineProperty(ctor.prototype, ariaProperty, {\n configurable: true,\n enumerable: true,\n get() {\n return this.dataset[dataProperty] ?? null;\n },\n set(value) {\n const prevValue = this.dataset[dataProperty] ?? null;\n if (value === prevValue) {\n return;\n }\n if (value === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = value;\n }\n this.requestUpdate(ariaProperty, prevValue);\n },\n });\n }\n}\nfunction ariaAttributeToDataAttribute(ariaAttribute) {\n // aria-haspopup -> data-aria-haspopup\n return `data-${ariaAttribute}`;\n}\nfunction ariaAttributeToDataProperty(ariaAttribute) {\n // aria-haspopup -> dataset.ariaHaspopup\n return ariaAttribute.replace(/-\\w/, (dashLetter) => dashLetter[1].toUpperCase());\n}\n//# sourceMappingURL=delegate.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\n// Separate variable needed for closure.\nconst fabBaseClass = mixinDelegatesAria(LitElement);\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class SharedFab extends fabBaseClass {\n constructor() {\n super(...arguments);\n /**\n * The size of the FAB.\n *\n * NOTE: Branded FABs cannot be sized to `small`, and Extended FABs do not\n * have different sizes.\n */\n this.size = 'medium';\n /**\n * The text to display on the FAB.\n */\n this.label = '';\n /**\n * Lowers the FAB's elevation.\n */\n this.lowered = false;\n }\n render() {\n // Needed for closure conformance\n const { ariaLabel } = this;\n return html `\n <button\n class=\"fab ${classMap(this.getRenderClasses())}\"\n aria-label=${ariaLabel || nothing}>\n <mdif1-elevation part=\"elevation\"></mdif1-elevation>\n <mdif1-focus-ring part=\"focus-ring\"></mdif1-focus-ring>\n <mdif1-ripple class=\"ripple\"></mdif1-ripple>\n ${this.renderTouchTarget()} ${this.renderIcon()} ${this.renderLabel()}\n </button>\n `;\n }\n getRenderClasses() {\n const isExtended = !!this.label;\n return {\n 'lowered': this.lowered,\n 'small': this.size === 'small' && !isExtended,\n 'large': this.size === 'large' && !isExtended,\n 'extended': isExtended,\n };\n }\n renderTouchTarget() {\n return html `<div class=\"touch-target\"></div>`;\n }\n renderLabel() {\n return this.label ? html `<span class=\"label\">${this.label}</span>` : '';\n }\n renderIcon() {\n const { ariaLabel } = this;\n return html `<span class=\"icon\">\n <slot\n name=\"icon\"\n aria-hidden=${ariaLabel || this.label\n ? 'true'\n : nothing}>\n <span></span>\n </slot>\n </span>`;\n }\n}\n/** @nocollapse */\nSharedFab.shadowRootOptions = {\n mode: 'open',\n delegatesFocus: true,\n};\n__decorate([\n property({ reflect: true })\n], SharedFab.prototype, \"size\", void 0);\n__decorate([\n property()\n], SharedFab.prototype, \"label\", void 0);\n__decorate([\n property({ type: Boolean })\n], SharedFab.prototype, \"lowered\", void 0);\n//# sourceMappingURL=shared.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { SharedFab } from './shared.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class Fab extends SharedFab {\n constructor() {\n super(...arguments);\n /**\n * The FAB color variant to render.\n */\n this.variant = 'surface';\n }\n getRenderClasses() {\n return {\n ...super.getRenderClasses(),\n 'primary': this.variant === 'primary',\n 'secondary': this.variant === 'secondary',\n 'tertiary': this.variant === 'tertiary',\n };\n }\n}\n__decorate([\n property()\n], Fab.prototype, \"variant\", void 0);\n//# sourceMappingURL=fab.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./fab/internal/fab-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-color: var(--mdif1-fab-container-color, var(--mdif1-sys-color-surface-container-high, #ece6f0));--_container-elevation: var(--mdif1-fab-container-elevation, 3);--_container-height: var(--mdif1-fab-container-height, 56px);--_container-shadow-color: var(--mdif1-fab-container-shadow-color, var(--mdif1-sys-color-shadow, #000));--_container-width: var(--mdif1-fab-container-width, 56px);--_focus-container-elevation: var(--mdif1-fab-focus-container-elevation, 3);--_focus-icon-color: var(--mdif1-fab-focus-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-container-elevation: var(--mdif1-fab-hover-container-elevation, 4);--_hover-icon-color: var(--mdif1-fab-hover-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--mdif1-fab-hover-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--mdif1-fab-hover-state-layer-opacity, 0.08);--_icon-color: var(--mdif1-fab-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_icon-size: var(--mdif1-fab-icon-size, 24px);--_lowered-container-color: var(--mdif1-fab-lowered-container-color, var(--mdif1-sys-color-surface-container-low, #f7f2fa));--_lowered-container-elevation: var(--mdif1-fab-lowered-container-elevation, 1);--_lowered-focus-container-elevation: var(--mdif1-fab-lowered-focus-container-elevation, 1);--_lowered-hover-container-elevation: var(--mdif1-fab-lowered-hover-container-elevation, 2);--_lowered-pressed-container-elevation: var(--mdif1-fab-lowered-pressed-container-elevation, 1);--_pressed-container-elevation: var(--mdif1-fab-pressed-container-elevation, 3);--_pressed-icon-color: var(--mdif1-fab-pressed-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--mdif1-fab-pressed-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--mdif1-fab-pressed-state-layer-opacity, 0.12);--_focus-label-text-color: var(--mdif1-fab-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-label-text-color: var(--mdif1-fab-hover-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_label-text-color: var(--mdif1-fab-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_label-text-font: var(--mdif1-fab-label-text-font, var(--mdif1-sys-typescale-label-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-fab-label-text-line-height, var(--mdif1-sys-typescale-label-large-line-height, 1.25rem));--_label-text-size: var(--mdif1-fab-label-text-size, var(--mdif1-sys-typescale-label-large-size, 0.875rem));--_label-text-weight: var(--mdif1-fab-label-text-weight, var(--mdif1-sys-typescale-label-large-weight, var(--mdif1-ref-typeface-weight-medium, 500)));--_large-container-height: var(--mdif1-fab-large-container-height, 96px);--_large-container-width: var(--mdif1-fab-large-container-width, 96px);--_large-icon-size: var(--mdif1-fab-large-icon-size, 36px);--_pressed-label-text-color: var(--mdif1-fab-pressed-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_primary-container-color: var(--mdif1-fab-primary-container-color, var(--mdif1-sys-color-primary-container, #eaddff));--_primary-focus-icon-color: var(--mdif1-fab-primary-focus-icon-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-focus-label-text-color: var(--mdif1-fab-primary-focus-label-text-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-hover-icon-color: var(--mdif1-fab-primary-hover-icon-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-hover-label-text-color: var(--mdif1-fab-primary-hover-label-text-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-hover-state-layer-color: var(--mdif1-fab-primary-hover-state-layer-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-icon-color: var(--mdif1-fab-primary-icon-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-label-text-color: var(--mdif1-fab-primary-label-text-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-pressed-icon-color: var(--mdif1-fab-primary-pressed-icon-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-pressed-label-text-color: var(--mdif1-fab-primary-pressed-label-text-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_primary-pressed-state-layer-color: var(--mdif1-fab-primary-pressed-state-layer-color, var(--mdif1-sys-color-on-primary-container, #21005d));--_secondary-container-color: var(--mdif1-fab-secondary-container-color, var(--mdif1-sys-color-secondary-container, #e8def8));--_secondary-focus-icon-color: var(--mdif1-fab-secondary-focus-icon-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-focus-label-text-color: var(--mdif1-fab-secondary-focus-label-text-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-hover-icon-color: var(--mdif1-fab-secondary-hover-icon-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-hover-label-text-color: var(--mdif1-fab-secondary-hover-label-text-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-hover-state-layer-color: var(--mdif1-fab-secondary-hover-state-layer-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-icon-color: var(--mdif1-fab-secondary-icon-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-label-text-color: var(--mdif1-fab-secondary-label-text-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-pressed-icon-color: var(--mdif1-fab-secondary-pressed-icon-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-pressed-label-text-color: var(--mdif1-fab-secondary-pressed-label-text-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_secondary-pressed-state-layer-color: var(--mdif1-fab-secondary-pressed-state-layer-color, var(--mdif1-sys-color-on-secondary-container, #1d192b));--_small-container-height: var(--mdif1-fab-small-container-height, 40px);--_small-container-width: var(--mdif1-fab-small-container-width, 40px);--_small-icon-size: var(--mdif1-fab-small-icon-size, 24px);--_tertiary-container-color: var(--mdif1-fab-tertiary-container-color, var(--mdif1-sys-color-tertiary-container, #ffd8e4));--_tertiary-focus-icon-color: var(--mdif1-fab-tertiary-focus-icon-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-focus-label-text-color: var(--mdif1-fab-tertiary-focus-label-text-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-hover-icon-color: var(--mdif1-fab-tertiary-hover-icon-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-hover-label-text-color: var(--mdif1-fab-tertiary-hover-label-text-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-hover-state-layer-color: var(--mdif1-fab-tertiary-hover-state-layer-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-icon-color: var(--mdif1-fab-tertiary-icon-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-label-text-color: var(--mdif1-fab-tertiary-label-text-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-pressed-icon-color: var(--mdif1-fab-tertiary-pressed-icon-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-pressed-label-text-color: var(--mdif1-fab-tertiary-pressed-label-text-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_tertiary-pressed-state-layer-color: var(--mdif1-fab-tertiary-pressed-state-layer-color, var(--mdif1-sys-color-on-tertiary-container, #31111d));--_container-shape-start-start: var(--mdif1-fab-container-shape-start-start, var(--mdif1-fab-container-shape, var(--mdif1-sys-shape-corner-large, 16px)));--_container-shape-start-end: var(--mdif1-fab-container-shape-start-end, var(--mdif1-fab-container-shape, var(--mdif1-sys-shape-corner-large, 16px)));--_container-shape-end-end: var(--mdif1-fab-container-shape-end-end, var(--mdif1-fab-container-shape, var(--mdif1-sys-shape-corner-large, 16px)));--_container-shape-end-start: var(--mdif1-fab-container-shape-end-start, var(--mdif1-fab-container-shape, var(--mdif1-sys-shape-corner-large, 16px)));--_large-container-shape-start-start: var(--mdif1-fab-large-container-shape-start-start, var(--mdif1-fab-large-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));--_large-container-shape-start-end: var(--mdif1-fab-large-container-shape-start-end, var(--mdif1-fab-large-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));--_large-container-shape-end-end: var(--mdif1-fab-large-container-shape-end-end, var(--mdif1-fab-large-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));--_large-container-shape-end-start: var(--mdif1-fab-large-container-shape-end-start, var(--mdif1-fab-large-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));--_small-container-shape-start-start: var(--mdif1-fab-small-container-shape-start-start, var(--mdif1-fab-small-container-shape, var(--mdif1-sys-shape-corner-medium, 12px)));--_small-container-shape-start-end: var(--mdif1-fab-small-container-shape-start-end, var(--mdif1-fab-small-container-shape, var(--mdif1-sys-shape-corner-medium, 12px)));--_small-container-shape-end-end: var(--mdif1-fab-small-container-shape-end-end, var(--mdif1-fab-small-container-shape, var(--mdif1-sys-shape-corner-medium, 12px)));--_small-container-shape-end-start: var(--mdif1-fab-small-container-shape-end-start, var(--mdif1-fab-small-container-shape, var(--mdif1-sys-shape-corner-medium, 12px)));cursor:pointer}:host([size=small][touch-target=wrapper]){margin:max(0px,48px - var(--_small-container-height))}.fab{cursor:inherit}.fab .icon ::slotted(*){color:var(--_icon-color)}.fab:focus{color:var(--_focus-icon-color)}.fab:hover{color:var(--_hover-icon-color)}.fab:active{color:var(--_pressed-icon-color)}.fab.primary{background-color:var(--_primary-container-color);--mdif1-ripple-hover-color: var(--_primary-hover-state-layer-color);--mdif1-ripple-pressed-color: var(--_primary-pressed-state-layer-color)}.fab.primary .icon ::slotted(*){color:var(--_primary-icon-color)}.fab.primary:focus{color:var(--_primary-focus-icon-color)}.fab.primary:hover{color:var(--_primary-hover-icon-color)}.fab.primary:active{color:var(--_primary-pressed-icon-color)}.fab.primary .label{color:var(--_primary-label-text-color)}.fab:hover .fab.primary .label{color:var(--_primary-hover-label-text-color)}.fab:focus .fab.primary .label{color:var(--_primary-focus-label-text-color)}.fab:active .fab.primary .label{color:var(--_primary-pressed-label-text-color)}.fab.secondary{background-color:var(--_secondary-container-color);--mdif1-ripple-hover-color: var(--_secondary-hover-state-layer-color);--mdif1-ripple-pressed-color: var(--_secondary-pressed-state-layer-color)}.fab.secondary .icon ::slotted(*){color:var(--_secondary-icon-color)}.fab.secondary:focus{color:var(--_secondary-focus-icon-color)}.fab.secondary:hover{color:var(--_secondary-hover-icon-color)}.fab.secondary:active{color:var(--_secondary-pressed-icon-color)}.fab.secondary .label{color:var(--_secondary-label-text-color)}.fab:hover .fab.secondary .label{color:var(--_secondary-hover-label-text-color)}.fab:focus .fab.secondary .label{color:var(--_secondary-focus-label-text-color)}.fab:active .fab.secondary .label{color:var(--_secondary-pressed-label-text-color)}.fab.tertiary{background-color:var(--_tertiary-container-color);--mdif1-ripple-hover-color: var(--_tertiary-hover-state-layer-color);--mdif1-ripple-pressed-color: var(--_tertiary-pressed-state-layer-color)}.fab.tertiary .icon ::slotted(*){color:var(--_tertiary-icon-color)}.fab.tertiary:focus{color:var(--_tertiary-focus-icon-color)}.fab.tertiary:hover{color:var(--_tertiary-hover-icon-color)}.fab.tertiary:active{color:var(--_tertiary-pressed-icon-color)}.fab.tertiary .label{color:var(--_tertiary-label-text-color)}.fab:hover .fab.tertiary .label{color:var(--_tertiary-hover-label-text-color)}.fab:focus .fab.tertiary .label{color:var(--_tertiary-focus-label-text-color)}.fab:active .fab.tertiary .label{color:var(--_tertiary-pressed-label-text-color)}.fab.extended slot span{padding-inline-start:4px}.fab.small{width:var(--_small-container-width);height:var(--_small-container-height)}.fab.small .icon ::slotted(*){width:var(--_small-icon-size);height:var(--_small-icon-size);font-size:var(--_small-icon-size)}.fab.small,.fab.small .ripple{border-start-start-radius:var(--_small-container-shape-start-start);border-start-end-radius:var(--_small-container-shape-start-end);border-end-start-radius:var(--_small-container-shape-end-start);border-end-end-radius:var(--_small-container-shape-end-end)}.fab.small mdif1-focus-ring{--mdif1-focus-ring-shape-start-start: var(--_small-container-shape-start-start);--mdif1-focus-ring-shape-start-end: var(--_small-container-shape-start-end);--mdif1-focus-ring-shape-end-end: var(--_small-container-shape-end-end);--mdif1-focus-ring-shape-end-start: var(--_small-container-shape-end-start)}\n`;\n//# sourceMappingURL=fab-styles.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./fab/internal/forced-colors-styles.css.\nimport { css } from 'lit';\nexport const styles = css `@media(forced-colors: active){.fab{border:1px solid ButtonText}.fab.extended{padding-inline-start:15px;padding-inline-end:19px}mdif1-focus-ring{--mdif1-focus-ring-outward-offset: 3px}}\n`;\n//# sourceMappingURL=forced-colors-styles.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./fab/internal/shared-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--mdif1-ripple-hover-opacity: var(--_hover-state-layer-opacity);--mdif1-ripple-pressed-opacity: var(--_pressed-state-layer-opacity);display:inline-flex;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([size=medium][touch-target=wrapper]){margin:max(0px,48px - var(--_container-height))}:host([size=large][touch-target=wrapper]){margin:max(0px,48px - var(--_large-container-height))}.fab,.icon,.icon ::slotted(*){display:flex}.fab{align-items:center;justify-content:center;vertical-align:middle;padding:0;position:relative;height:var(--_container-height);transition-property:background-color;border-width:0px;outline:none;z-index:0;text-transform:inherit;--mdif1-elevation-level: var(--_container-elevation);--mdif1-elevation-shadow-color: var(--_container-shadow-color);background-color:var(--_container-color);--mdif1-ripple-hover-color: var(--_hover-state-layer-color);--mdif1-ripple-pressed-color: var(--_pressed-state-layer-color)}.fab.extended{width:inherit;box-sizing:border-box;padding-inline-start:16px;padding-inline-end:20px}.fab:not(.extended){width:var(--_container-width)}.fab.large{width:var(--_large-container-width);height:var(--_large-container-height)}.fab.large .icon ::slotted(*){width:var(--_large-icon-size);height:var(--_large-icon-size);font-size:var(--_large-icon-size)}.fab.large,.fab.large .ripple{border-start-start-radius:var(--_large-container-shape-start-start);border-start-end-radius:var(--_large-container-shape-start-end);border-end-start-radius:var(--_large-container-shape-end-start);border-end-end-radius:var(--_large-container-shape-end-end)}.fab.large mdif1-focus-ring{--mdif1-focus-ring-shape-start-start: var(--_large-container-shape-start-start);--mdif1-focus-ring-shape-start-end: var(--_large-container-shape-start-end);--mdif1-focus-ring-shape-end-end: var(--_large-container-shape-end-end);--mdif1-focus-ring-shape-end-start: var(--_large-container-shape-end-start)}.fab:focus{--mdif1-elevation-level: var(--_focus-container-elevation)}.fab:hover{--mdif1-elevation-level: var(--_hover-container-elevation)}.fab:active{--mdif1-elevation-level: var(--_pressed-container-elevation)}.fab.lowered{background-color:var(--_lowered-container-color);--mdif1-elevation-level: var(--_lowered-container-elevation)}.fab.lowered:focus{--mdif1-elevation-level: var(--_lowered-focus-container-elevation)}.fab.lowered:hover{--mdif1-elevation-level: var(--_lowered-hover-container-elevation)}.fab.lowered:active{--mdif1-elevation-level: var(--_lowered-pressed-container-elevation)}.fab .label{color:var(--_label-text-color)}.fab:hover .fab .label{color:var(--_hover-label-text-color)}.fab:focus .fab .label{color:var(--_focus-label-text-color)}.fab:active .fab .label{color:var(--_pressed-label-text-color)}.label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--_label-text-font);font-size:var(--_label-text-size);line-height:var(--_label-text-line-height);font-weight:var(--_label-text-weight)}.fab.extended .icon ::slotted(*){margin-inline-end:12px}.ripple{overflow:hidden}.ripple,mdif1-elevation{z-index:-1}.touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}:host([touch-target=none]) .touch-target{display:none}mdif1-elevation,.fab{transition-duration:280ms;transition-timing-function:cubic-bezier(0.2, 0, 0, 1)}.fab,.ripple{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}mdif1-focus-ring{--mdif1-focus-ring-shape-start-start: var(--_container-shape-start-start);--mdif1-focus-ring-shape-start-end: var(--_container-shape-start-end);--mdif1-focus-ring-shape-end-end: var(--_container-shape-end-end);--mdif1-focus-ring-shape-end-start: var(--_container-shape-end-start)}.icon ::slotted(*){width:var(--_icon-size);height:var(--_icon-size);font-size:var(--_icon-size)}\n`;\n//# sourceMappingURL=shared-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Fab } from './internal/fab.js';\nimport { styles } from './internal/fab-styles.js';\nimport { styles as forcedColors } from './internal/forced-colors-styles.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * @summary Floating action buttons (FABs) help people take primary actions.\n * They’re used to represent the most important action on a screen, such as\n * Create or Reply.\n *\n * @description\n * __Emphasis:__ High emphasis – For the primary, most important, or most common\n * action on a screen\n *\n * __Rationale:__ The FAB remains the default component for a screen’s primary\n * action. It comes in three sizes: small FAB, FAB, and large FAB. The extended\n * FAB’s wider format and text label give it more visual prominence than a FAB.\n * It’s often used on larger screens where a FAB would seem too small.\n *\n * __Example usages:__\n * - FAB\n * - Create\n * - Compose\n * - Extended FAB\n * - Create\n * - Compose\n * - New Thread\n * - New File\n *\n * @final\n * @suppress {visibility}\n */\nlet MdFab = class MdFab extends Fab {\n};\nMdFab.styles = [sharedStyles, styles, forcedColors];\nMdFab = __decorate([\n customElement('mdif1-fab')\n], MdFab);\nexport { MdFab };\n//# sourceMappingURL=fab.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html, LitElement } from 'lit';\n/**\n * TODO(b/265336902): add docs\n */\nexport class Icon extends LitElement {\n render() {\n return html `<slot></slot>`;\n }\n connectedCallback() {\n super.connectedCallback();\n const ariaHidden = this.getAttribute('aria-hidden');\n if (ariaHidden === 'false') {\n // Allow the user to set `aria-hidden=\"false\"` to create an icon that is\n // announced by screenreaders.\n this.removeAttribute('aria-hidden');\n return;\n }\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n}\n//# sourceMappingURL=icon.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./icon/internal/icon-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{font-size:var(--mdif1-icon-size, 24px);width:var(--mdif1-icon-size, 24px);height:var(--mdif1-icon-size, 24px);color:inherit;font-variation-settings:inherit;font-weight:400;font-family:var(--mdif1-icon-font, Material Symbols Outlined);display:inline-flex;font-style:normal;place-items:center;place-content:center;line-height:1;overflow:hidden;letter-spacing:normal;text-transform:none;user-select:none;white-space:nowrap;word-wrap:normal;flex-shrink:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}::slotted(svg){fill:currentColor}::slotted(*){height:100%;width:100%}\n`;\n//# sourceMappingURL=icon-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Icon } from './internal/icon.js';\nimport { styles } from './internal/icon-styles.js';\n/**\n * @final\n * @suppress {visibility}\n */\nlet MdIcon = class MdIcon extends Icon {\n};\n/** @nocollapse */\nMdIcon.styles = [styles];\nMdIcon = __decorate([\n customElement('mdif1-icon')\n], MdIcon);\nexport { MdIcon };\n//# sourceMappingURL=icon.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n/**\n * A divider component.\n */\nexport class Divider extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Indents the divider with equal padding on both sides.\n */\n this.inset = false;\n /**\n * Indents the divider with padding on the leading side.\n */\n this.insetStart = false;\n /**\n * Indents the divider with padding on the trailing side.\n */\n this.insetEnd = false;\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], Divider.prototype, \"inset\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, attribute: 'inset-start' })\n], Divider.prototype, \"insetStart\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, attribute: 'inset-end' })\n], Divider.prototype, \"insetEnd\", void 0);\n//# sourceMappingURL=divider.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./divider/internal/divider-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{box-sizing:border-box;color:var(--mdif1-divider-color, var(--mdif1-sys-color-outline-variant, #cac4d0));display:flex;height:var(--mdif1-divider-thickness, 1px);width:100%}:host([inset]),:host([inset-start]){padding-inline-start:16px}:host([inset]),:host([inset-end]){padding-inline-end:16px}:host::before{background:currentColor;content:\"\";height:100%;width:100%}@media(forced-colors: active){:host::before{background:CanvasText}}\n`;\n//# sourceMappingURL=divider-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Divider } from './internal/divider.js';\nimport { styles } from './internal/divider-styles.js';\n/**\n * @summary A divider is a thin line that groups content in lists and\n * containers.\n *\n * @description Dividers can reinforce tapability, such as when used to separate\n * list items or define tappable regions in an accordion.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdDivider = class MdDivider extends Divider {\n};\nMdDivider.styles = [styles];\nMdDivider = __decorate([\n customElement('mdif1-divider')\n], MdDivider);\nexport { MdDivider };\n//# sourceMappingURL=divider.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Re-dispatches an event from the provided element.\n *\n * This function is useful for forwarding non-composed events, such as `change`\n * events.\n *\n * @example\n * class MyInput extends LitElement {\n * render() {\n * return html`<input @change=${this.redispatchEvent}>`;\n * }\n *\n * protected redispatchEvent(event: Event) {\n * redispatchEvent(this, event);\n * }\n * }\n *\n * @param element The element to dispatch the event from.\n * @param event The event to re-dispatch.\n * @return Whether or not the event was dispatched (if cancelable).\n */\nexport function redispatchEvent(element, event) {\n // For bubbling events in SSR light DOM (or composed), stop their propagation\n // and dispatch the copy.\n if (event.bubbles && (!element.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = element.dispatchEvent(copy);\n if (!dispatched) {\n event.preventDefault();\n }\n return dispatched;\n}\n//# sourceMappingURL=redispatch-event.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { EASING } from '../../internal/motion/animation.js';\n/**\n * The default dialog open animation.\n */\nexport const DIALOG_DEFAULT_OPEN_ANIMATION = {\n dialog: [\n [\n // Dialog slide down\n [{ 'transform': 'translateY(-50px)' }, { 'transform': 'translateY(0)' }],\n { duration: 500, easing: EASING.EMPHASIZED },\n ],\n ],\n scrim: [\n [\n // Scrim fade in\n [{ 'opacity': 0 }, { 'opacity': 0.32 }],\n { duration: 500, easing: 'linear' },\n ],\n ],\n container: [\n [\n // Container fade in\n [{ 'opacity': 0 }, { 'opacity': 1 }],\n { duration: 50, easing: 'linear', pseudoElement: '::before' },\n ],\n [\n // Container grow\n // Note: current spec says to grow from 0dp->100% and shrink from\n // 100%->35%. We change this to 35%->100% to simplify the animation that\n // is supposed to clip content as it grows. From 0dp it's possible to see\n // text/actions appear before the container has fully grown.\n [{ 'height': '35%' }, { 'height': '100%' }],\n { duration: 500, easing: EASING.EMPHASIZED, pseudoElement: '::before' },\n ],\n ],\n headline: [\n [\n // Headline fade in\n [{ 'opacity': 0 }, { 'opacity': 0, offset: 0.2 }, { 'opacity': 1 }],\n { duration: 250, easing: 'linear', fill: 'forwards' },\n ],\n ],\n content: [\n [\n // Content fade in\n [{ 'opacity': 0 }, { 'opacity': 0, offset: 0.2 }, { 'opacity': 1 }],\n { duration: 250, easing: 'linear', fill: 'forwards' },\n ],\n ],\n actions: [\n [\n // Actions fade in\n [{ 'opacity': 0 }, { 'opacity': 0, offset: 0.5 }, { 'opacity': 1 }],\n { duration: 300, easing: 'linear', fill: 'forwards' },\n ],\n ],\n};\n/**\n * The default dialog close animation.\n */\nexport const DIALOG_DEFAULT_CLOSE_ANIMATION = {\n dialog: [\n [\n // Dialog slide up\n [{ 'transform': 'translateY(0)' }, { 'transform': 'translateY(-50px)' }],\n { duration: 150, easing: EASING.EMPHASIZED_ACCELERATE },\n ],\n ],\n scrim: [\n [\n // Scrim fade out\n [{ 'opacity': 0.32 }, { 'opacity': 0 }],\n { duration: 150, easing: 'linear' },\n ],\n ],\n container: [\n [\n // Container shrink\n [{ 'height': '100%' }, { 'height': '35%' }],\n {\n duration: 150,\n easing: EASING.EMPHASIZED_ACCELERATE,\n pseudoElement: '::before',\n },\n ],\n [\n // Container fade out\n [{ 'opacity': '1' }, { 'opacity': '0' }],\n { delay: 100, duration: 50, easing: 'linear', pseudoElement: '::before' },\n ],\n ],\n headline: [\n [\n // Headline fade out\n [{ 'opacity': 1 }, { 'opacity': 0 }],\n { duration: 100, easing: 'linear', fill: 'forwards' },\n ],\n ],\n content: [\n [\n // Content fade out\n [{ 'opacity': 1 }, { 'opacity': 0 }],\n { duration: 100, easing: 'linear', fill: 'forwards' },\n ],\n ],\n actions: [\n [\n // Actions fade out\n [{ 'opacity': 1 }, { 'opacity': 0 }],\n { duration: 100, easing: 'linear', fill: 'forwards' },\n ],\n ],\n};\n//# sourceMappingURL=animations.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../divider/divider.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { DIALOG_DEFAULT_CLOSE_ANIMATION, DIALOG_DEFAULT_OPEN_ANIMATION, } from './animations.js';\n// Separate variable needed for closure.\nconst dialogBaseClass = mixinDelegatesAria(LitElement);\n/**\n * A dialog component.\n *\n * @fires open {Event} Dispatched when the dialog is opening before any animations.\n * @fires opened {Event} Dispatched when the dialog has opened after any animations.\n * @fires close {Event} Dispatched when the dialog is closing before any animations.\n * @fires closed {Event} Dispatched when the dialog has closed after any animations.\n * @fires cancel {Event} Dispatched when the dialog has been canceled by clicking\n * on the scrim or pressing Escape.\n */\nexport class Dialog extends dialogBaseClass {\n // We do not use `delegatesFocus: true` due to a Chromium bug with\n // selecting text.\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=950357\n /**\n * Opens the dialog when set to `true` and closes it when set to `false`.\n */\n get open() {\n return this.isOpen;\n }\n set open(open) {\n if (open === this.isOpen) {\n return;\n }\n this.isOpen = open;\n if (open) {\n this.setAttribute('open', '');\n this.show();\n }\n else {\n this.removeAttribute('open');\n this.close();\n }\n }\n constructor() {\n super();\n /**\n * Skips the opening and closing animations.\n */\n this.quick = false;\n /**\n * Gets or sets the dialog's return value, usually to indicate which button\n * a user pressed to close it.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/returnValue\n */\n this.returnValue = '';\n /**\n * Disables focus trapping, which by default keeps keyboard Tab navigation\n * within the dialog.\n *\n * When disabled, after focusing the last element of a dialog, pressing Tab\n * again will release focus from the window back to the browser (such as the\n * URL bar).\n *\n * Focus trapping is recommended for accessibility, and should not typically\n * be disabled. Only turn this off if the use case of a dialog is more\n * accessible without focus trapping.\n */\n this.noFocusTrap = false;\n /**\n * Gets the opening animation for a dialog. Set to a new function to customize\n * the animation.\n */\n this.getOpenAnimation = () => DIALOG_DEFAULT_OPEN_ANIMATION;\n /**\n * Gets the closing animation for a dialog. Set to a new function to customize\n * the animation.\n */\n this.getCloseAnimation = () => DIALOG_DEFAULT_CLOSE_ANIMATION;\n this.isOpen = false;\n this.isOpening = false;\n this.isConnectedPromise = this.getIsConnectedPromise();\n this.isAtScrollTop = false;\n this.isAtScrollBottom = false;\n this.nextClickIsFromContent = false;\n // Dialogs should not be SSR'd while open, so we can just use runtime checks.\n this.hasHeadline = false;\n this.hasActions = false;\n this.hasIcon = false;\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=1512224\n // Chrome v120 has a bug where escape keys do not trigger cancels. If we get\n // a dialog \"close\" event that is triggered without a \"cancel\" after an escape\n // keydown, then we need to manually trigger our closing logic.\n //\n // This bug occurs when pressing escape to close a dialog without first\n // interacting with the dialog's content.\n //\n // Cleanup tracking:\n // https://github.com/material-components/material-web/issues/5330\n // This can be removed when full CloseWatcher support added and the above bug\n // in Chromium is fixed to fire 'cancel' with one escape press and close with\n // multiple.\n this.escapePressedWithoutCancel = false;\n // This TreeWalker is used to walk through a dialog's children to find\n // focusable elements. TreeWalker is faster than `querySelectorAll('*')`.\n // We check for isServer because there isn't a \"document\" during an SSR\n // run.\n this.treewalker = isServer\n ? null\n : document.createTreeWalker(this, NodeFilter.SHOW_ELEMENT);\n if (!isServer) {\n this.addEventListener('submit', this.handleSubmit);\n }\n }\n /**\n * Opens the dialog and fires a cancelable `open` event. After a dialog's\n * animation, an `opened` event is fired.\n *\n * Add an `autofocus` attribute to a child of the dialog that should\n * receive focus after opening.\n *\n * @return A Promise that resolves after the animation is finished and the\n * `opened` event was fired.\n */\n async show() {\n this.isOpening = true;\n // Dialogs can be opened before being attached to the DOM, so we need to\n // wait until we're connected before calling `showModal()`.\n await this.isConnectedPromise;\n await this.updateComplete;\n const dialog = this.dialog;\n // Check if already opened or if `dialog.close()` was called while awaiting.\n if (dialog.open || !this.isOpening) {\n this.isOpening = false;\n return;\n }\n const preventOpen = !this.dispatchEvent(new Event('open', { cancelable: true }));\n if (preventOpen) {\n this.open = false;\n this.isOpening = false;\n return;\n }\n // All Material dialogs are modal.\n dialog.showModal();\n this.open = true;\n // Reset scroll position if re-opening a dialog with the same content.\n if (this.scroller) {\n this.scroller.scrollTop = 0;\n }\n // Native modal dialogs ignore autofocus and instead force focus to the\n // first focusable child. Override this behavior if there is a child with\n // an autofocus attribute.\n this.querySelector('[autofocus]')?.focus();\n await this.animateDialog(this.getOpenAnimation());\n this.dispatchEvent(new Event('opened'));\n this.isOpening = false;\n }\n /**\n * Closes the dialog and fires a cancelable `close` event. After a dialog's\n * animation, a `closed` event is fired.\n *\n * @param returnValue A return value usually indicating which button was used\n * to close a dialog. If a dialog is canceled by clicking the scrim or\n * pressing Escape, it will not change the return value after closing.\n * @return A Promise that resolves after the animation is finished and the\n * `closed` event was fired.\n */\n async close(returnValue = this.returnValue) {\n this.isOpening = false;\n if (!this.isConnected) {\n // Disconnected dialogs do not fire close events or animate.\n this.open = false;\n return;\n }\n await this.updateComplete;\n const dialog = this.dialog;\n // Check if already closed or if `dialog.show()` was called while awaiting.\n if (!dialog.open || this.isOpening) {\n this.open = false;\n return;\n }\n const prevReturnValue = this.returnValue;\n this.returnValue = returnValue;\n const preventClose = !this.dispatchEvent(new Event('close', { cancelable: true }));\n if (preventClose) {\n this.returnValue = prevReturnValue;\n return;\n }\n await this.animateDialog(this.getCloseAnimation());\n dialog.close(returnValue);\n this.open = false;\n this.dispatchEvent(new Event('closed'));\n }\n connectedCallback() {\n super.connectedCallback();\n this.isConnectedPromiseResolve();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.isConnectedPromise = this.getIsConnectedPromise();\n }\n render() {\n const scrollable = this.open && !(this.isAtScrollTop && this.isAtScrollBottom);\n const classes = {\n 'has-headline': this.hasHeadline,\n 'has-actions': this.hasActions,\n 'has-icon': this.hasIcon,\n 'scrollable': scrollable,\n 'show-top-divider': scrollable && !this.isAtScrollTop,\n 'show-bottom-divider': scrollable && !this.isAtScrollBottom,\n };\n // The focus trap sentinels are only added after the dialog opens, since\n // dialog.showModal() will try to autofocus them, even with tabindex=\"-1\".\n const showFocusTrap = this.open && !this.noFocusTrap;\n const focusTrap = html `\n <div\n class=\"focus-trap\"\n tabindex=\"0\"\n aria-hidden=\"true\"\n @focus=${this.handleFocusTrapFocus}></div>\n `;\n const { ariaLabel } = this;\n return html `\n <div class=\"scrim\"></div>\n <dialog\n class=${classMap(classes)}\n aria-label=${ariaLabel || nothing}\n aria-labelledby=${this.hasHeadline ? 'headline' : nothing}\n role=${this.type === 'alert' ? 'alertdialog' : nothing}\n @cancel=${this.handleCancel}\n @click=${this.handleDialogClick}\n @close=${this.handleClose}\n @keydown=${this.handleKeydown}\n .returnValue=${this.returnValue || nothing}>\n ${showFocusTrap ? focusTrap : nothing}\n <div class=\"container\" @click=${this.handleContentClick}>\n <div class=\"headline\">\n <div class=\"icon\" aria-hidden=\"true\">\n <slot name=\"icon\" @slotchange=${this.handleIconChange}></slot>\n </div>\n <h2 id=\"headline\" aria-hidden=${!this.hasHeadline || nothing}>\n <slot\n name=\"headline\"\n @slotchange=${this.handleHeadlineChange}></slot>\n </h2>\n <mdif1-divider></mdif1-divider>\n </div>\n <div class=\"scroller\">\n <div class=\"content\">\n <div class=\"top anchor\"></div>\n <slot name=\"content\"></slot>\n <div class=\"bottom anchor\"></div>\n </div>\n </div>\n <div class=\"actions\">\n <mdif1-divider></mdif1-divider>\n <slot name=\"actions\" @slotchange=${this.handleActionsChange}></slot>\n </div>\n </div>\n ${showFocusTrap ? focusTrap : nothing}\n </dialog>\n `;\n }\n firstUpdated() {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n this.handleAnchorIntersection(entry);\n }\n }, { root: this.scroller });\n this.intersectionObserver.observe(this.topAnchor);\n this.intersectionObserver.observe(this.bottomAnchor);\n }\n handleDialogClick() {\n if (this.nextClickIsFromContent) {\n // Avoid doing a layout calculation below if we know the click came from\n // content.\n this.nextClickIsFromContent = false;\n return;\n }\n // Click originated on the backdrop. Native `<dialog>`s will not cancel,\n // but Material dialogs do.\n const preventDefault = !this.dispatchEvent(new Event('cancel', { cancelable: true }));\n if (preventDefault) {\n return;\n }\n this.close();\n }\n handleContentClick() {\n this.nextClickIsFromContent = true;\n }\n handleSubmit(event) {\n const form = event.target;\n const { submitter } = event;\n if (form.getAttribute('method') !== 'dialog' || !submitter) {\n return;\n }\n // Close reason is the submitter's value attribute, or the dialog's\n // `returnValue` if there is no attribute.\n this.close(submitter.getAttribute('value') ?? this.returnValue);\n }\n handleCancel(event) {\n if (event.target !== this.dialog) {\n // Ignore any cancel events dispatched by content.\n return;\n }\n this.escapePressedWithoutCancel = false;\n const preventDefault = !redispatchEvent(this, event);\n // We always prevent default on the original dialog event since we'll\n // animate closing it before it actually closes.\n event.preventDefault();\n if (preventDefault) {\n return;\n }\n this.close();\n }\n handleClose() {\n if (!this.escapePressedWithoutCancel) {\n return;\n }\n this.escapePressedWithoutCancel = false;\n this.dialog?.dispatchEvent(new Event('cancel', { cancelable: true }));\n }\n handleKeydown(event) {\n if (event.key !== 'Escape') {\n return;\n }\n // An escape key was pressed. If a \"close\" event fires next without a\n // \"cancel\" event first, then we know we're in the Chrome v120 bug.\n this.escapePressedWithoutCancel = true;\n // Wait a full task for the cancel/close event listeners to fire, then\n // reset the flag.\n setTimeout(() => {\n this.escapePressedWithoutCancel = false;\n });\n }\n async animateDialog(animation) {\n // Always cancel the previous animations. Animations can include `fill`\n // modes that need to be cleared when `quick` is toggled. If not, content\n // that faded out will remain hidden when a `quick` dialog re-opens after\n // previously opening and closing without `quick`.\n this.cancelAnimations?.abort();\n this.cancelAnimations = new AbortController();\n if (this.quick) {\n return;\n }\n const { dialog, scrim, container, headline, content, actions } = this;\n if (!dialog || !scrim || !container || !headline || !content || !actions) {\n return;\n }\n const { container: containerAnimate, dialog: dialogAnimate, scrim: scrimAnimate, headline: headlineAnimate, content: contentAnimate, actions: actionsAnimate, } = animation;\n const elementAndAnimation = [\n [dialog, dialogAnimate ?? []],\n [scrim, scrimAnimate ?? []],\n [container, containerAnimate ?? []],\n [headline, headlineAnimate ?? []],\n [content, contentAnimate ?? []],\n [actions, actionsAnimate ?? []],\n ];\n const animations = [];\n for (const [element, animation] of elementAndAnimation) {\n for (const animateArgs of animation) {\n const animation = element.animate(...animateArgs);\n this.cancelAnimations.signal.addEventListener('abort', () => {\n animation.cancel();\n });\n animations.push(animation);\n }\n }\n await Promise.all(animations.map((animation) => animation.finished.catch(() => {\n // Ignore intentional AbortErrors when calling `animation.cancel()`.\n })));\n }\n handleHeadlineChange(event) {\n const slot = event.target;\n this.hasHeadline = slot.assignedElements().length > 0;\n }\n handleActionsChange(event) {\n const slot = event.target;\n this.hasActions = slot.assignedElements().length > 0;\n }\n handleIconChange(event) {\n const slot = event.target;\n this.hasIcon = slot.assignedElements().length > 0;\n }\n handleAnchorIntersection(entry) {\n const { target, isIntersecting } = entry;\n if (target === this.topAnchor) {\n this.isAtScrollTop = isIntersecting;\n }\n if (target === this.bottomAnchor) {\n this.isAtScrollBottom = isIntersecting;\n }\n }\n getIsConnectedPromise() {\n return new Promise((resolve) => {\n this.isConnectedPromiseResolve = resolve;\n });\n }\n handleFocusTrapFocus(event) {\n const [firstFocusableChild, lastFocusableChild] = this.getFirstAndLastFocusableChildren();\n if (!firstFocusableChild || !lastFocusableChild) {\n // When a dialog does not have focusable children, the dialog itself\n // receives focus.\n this.dialog?.focus();\n return;\n }\n // To determine which child to focus, we need to know which focus trap\n // received focus...\n const isFirstFocusTrap = event.target === this.firstFocusTrap;\n const isLastFocusTrap = !isFirstFocusTrap;\n // ...and where the focus came from (what was previously focused).\n const focusCameFromFirstChild = event.relatedTarget === firstFocusableChild;\n const focusCameFromLastChild = event.relatedTarget === lastFocusableChild;\n // Although this is a focus trap, focus can come from outside the trap.\n // This can happen when elements are programmatically `focus()`'d. It also\n // happens when focus leaves and returns to the window, such as clicking on\n // the browser's URL bar and pressing Tab, or switching focus between\n // iframes.\n const focusCameFromOutsideDialog = !focusCameFromFirstChild && !focusCameFromLastChild;\n // Focus the dialog's first child when we reach the end of the dialog and\n // focus is moving forward. Or, when focus is moving forwards into the\n // dialog from outside of the window.\n const shouldFocusFirstChild = (isLastFocusTrap && focusCameFromLastChild) ||\n (isFirstFocusTrap && focusCameFromOutsideDialog);\n if (shouldFocusFirstChild) {\n firstFocusableChild.focus();\n return;\n }\n // Focus the dialog's last child when we reach the beginning of the dialog\n // and focus is moving backward. Or, when focus is moving backwards into the\n // dialog from outside of the window.\n const shouldFocusLastChild = (isFirstFocusTrap && focusCameFromFirstChild) ||\n (isLastFocusTrap && focusCameFromOutsideDialog);\n if (shouldFocusLastChild) {\n lastFocusableChild.focus();\n return;\n }\n // The booleans above are verbose for readability, but code executation\n // won't actually reach here.\n }\n getFirstAndLastFocusableChildren() {\n if (!this.treewalker) {\n return [null, null];\n }\n let firstFocusableChild = null;\n let lastFocusableChild = null;\n // Reset the current node back to the root host element.\n this.treewalker.currentNode = this.treewalker.root;\n while (this.treewalker.nextNode()) {\n // Cast as Element since the TreeWalker filter only accepts Elements.\n const nextChild = this.treewalker.currentNode;\n if (!isFocusable(nextChild)) {\n continue;\n }\n if (!firstFocusableChild) {\n firstFocusableChild = nextChild;\n }\n lastFocusableChild = nextChild;\n }\n // We set lastFocusableChild immediately after finding a\n // firstFocusableChild, which means the pair is either both null or both\n // non-null. Cast since TypeScript does not recognize this.\n return [firstFocusableChild, lastFocusableChild];\n }\n}\n__decorate([\n property({ type: Boolean })\n], Dialog.prototype, \"open\", null);\n__decorate([\n property({ type: Boolean })\n], Dialog.prototype, \"quick\", void 0);\n__decorate([\n property({ attribute: false })\n], Dialog.prototype, \"returnValue\", void 0);\n__decorate([\n property()\n], Dialog.prototype, \"type\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-focus-trap' })\n], Dialog.prototype, \"noFocusTrap\", void 0);\n__decorate([\n query('dialog')\n], Dialog.prototype, \"dialog\", void 0);\n__decorate([\n query('.scrim')\n], Dialog.prototype, \"scrim\", void 0);\n__decorate([\n query('.container')\n], Dialog.prototype, \"container\", void 0);\n__decorate([\n query('.headline')\n], Dialog.prototype, \"headline\", void 0);\n__decorate([\n query('.content')\n], Dialog.prototype, \"content\", void 0);\n__decorate([\n query('.actions')\n], Dialog.prototype, \"actions\", void 0);\n__decorate([\n state()\n], Dialog.prototype, \"isAtScrollTop\", void 0);\n__decorate([\n state()\n], Dialog.prototype, \"isAtScrollBottom\", void 0);\n__decorate([\n query('.scroller')\n], Dialog.prototype, \"scroller\", void 0);\n__decorate([\n query('.top.anchor')\n], Dialog.prototype, \"topAnchor\", void 0);\n__decorate([\n query('.bottom.anchor')\n], Dialog.prototype, \"bottomAnchor\", void 0);\n__decorate([\n query('.focus-trap')\n], Dialog.prototype, \"firstFocusTrap\", void 0);\n__decorate([\n state()\n], Dialog.prototype, \"hasHeadline\", void 0);\n__decorate([\n state()\n], Dialog.prototype, \"hasActions\", void 0);\n__decorate([\n state()\n], Dialog.prototype, \"hasIcon\", void 0);\nfunction isFocusable(element) {\n // Check if the element is a known built-in focusable element:\n // - <a> and <area> with `href` attributes.\n // - Form controls that are not disabled.\n // - `contenteditable` elements.\n // - Anything with a non-negative `tabindex`.\n const knownFocusableElements = ':is(button,input,select,textarea,object,:is(a,area)[href],[tabindex],[contenteditable=true])';\n const notDisabled = ':not(:disabled,[disabled])';\n const notNegativeTabIndex = ':not([tabindex^=\"-\"])';\n if (element.matches(knownFocusableElements + notDisabled + notNegativeTabIndex)) {\n return true;\n }\n const isCustomElement = element.localName.includes('-');\n if (!isCustomElement) {\n return false;\n }\n // If a custom element does not have a tabindex, it may still be focusable\n // if it delegates focus with a shadow root. We also need to check again if\n // the custom element is a disabled form control.\n if (!element.matches(notDisabled)) {\n return false;\n }\n return element.shadowRoot?.delegatesFocus ?? false;\n}\n//# sourceMappingURL=dialog.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./dialog/internal/dialog-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{border-start-start-radius:var(--mdif1-dialog-container-shape-start-start, var(--mdif1-dialog-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));border-start-end-radius:var(--mdif1-dialog-container-shape-start-end, var(--mdif1-dialog-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));border-end-end-radius:var(--mdif1-dialog-container-shape-end-end, var(--mdif1-dialog-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));border-end-start-radius:var(--mdif1-dialog-container-shape-end-start, var(--mdif1-dialog-container-shape, var(--mdif1-sys-shape-corner-extra-large, 28px)));display:contents;margin:auto;max-height:min(560px,100% - 48px);max-width:min(560px,100% - 48px);min-height:140px;min-width:280px;position:fixed;height:fit-content;width:fit-content}dialog{background:rgba(0,0,0,0);border:none;border-radius:inherit;flex-direction:column;height:inherit;margin:inherit;max-height:inherit;max-width:inherit;min-height:inherit;min-width:inherit;outline:none;overflow:visible;padding:0;width:inherit}dialog[open]{display:flex}::backdrop{background:none}.scrim{background:var(--mdif1-sys-color-scrim, #000);display:none;inset:0;opacity:32%;pointer-events:none;position:fixed;z-index:1}:host([open]) .scrim{display:flex}h2{all:unset;align-self:stretch}.headline{align-items:center;color:var(--mdif1-dialog-headline-color, var(--mdif1-sys-color-on-surface, #1d1b20));display:flex;flex-direction:column;font-family:var(--mdif1-dialog-headline-font, var(--mdif1-sys-typescale-headline-small-font, var(--mdif1-ref-typeface-brand, Roboto)));font-size:var(--mdif1-dialog-headline-size, var(--mdif1-sys-typescale-headline-small-size, 1.5rem));line-height:var(--mdif1-dialog-headline-line-height, var(--mdif1-sys-typescale-headline-small-line-height, 2rem));font-weight:var(--mdif1-dialog-headline-weight, var(--mdif1-sys-typescale-headline-small-weight, var(--mdif1-ref-typeface-weight-regular, 400)));position:relative}slot[name=headline]::slotted(*){align-items:center;align-self:stretch;box-sizing:border-box;display:flex;gap:8px;padding:24px 24px 0}.icon{display:flex}slot[name=icon]::slotted(*){color:var(--mdif1-dialog-icon-color, var(--mdif1-sys-color-secondary, #625b71));fill:currentColor;font-size:var(--mdif1-dialog-icon-size, 24px);margin-top:24px;height:var(--mdif1-dialog-icon-size, 24px);width:var(--mdif1-dialog-icon-size, 24px)}.has-icon slot[name=headline]::slotted(*){justify-content:center;padding-top:16px}.scrollable slot[name=headline]::slotted(*){padding-bottom:16px}.scrollable.has-headline slot[name=content]::slotted(*){padding-top:8px}.container{border-radius:inherit;display:flex;flex-direction:column;flex-grow:1;overflow:hidden;position:relative;transform-origin:top}.container::before{background:var(--mdif1-dialog-container-color, var(--mdif1-sys-color-surface-container-high, #ece6f0));border-radius:inherit;content:\"\";inset:0;position:absolute}.scroller{display:flex;flex:1;flex-direction:column;overflow:hidden;z-index:1}.scrollable .scroller{overflow-y:scroll}.content{color:var(--mdif1-dialog-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));font-family:var(--mdif1-dialog-supporting-text-font, var(--mdif1-sys-typescale-body-medium-font, var(--mdif1-ref-typeface-plain, Roboto)));font-size:var(--mdif1-dialog-supporting-text-size, var(--mdif1-sys-typescale-body-medium-size, 0.875rem));line-height:var(--mdif1-dialog-supporting-text-line-height, var(--mdif1-sys-typescale-body-medium-line-height, 1.25rem));flex:1;font-weight:var(--mdif1-dialog-supporting-text-weight, var(--mdif1-sys-typescale-body-medium-weight, var(--mdif1-ref-typeface-weight-regular, 400)));height:min-content;position:relative}slot[name=content]::slotted(*){box-sizing:border-box;padding:24px}.anchor{position:absolute}.top.anchor{top:0}.bottom.anchor{bottom:0}.actions{position:relative}slot[name=actions]::slotted(*){box-sizing:border-box;display:flex;gap:8px;justify-content:flex-end;padding:16px 24px 24px}.has-actions slot[name=content]::slotted(*){padding-bottom:8px}mdif1-divider{display:none;position:absolute}.has-headline.show-top-divider .headline mdif1-divider,.has-actions.show-bottom-divider .actions mdif1-divider{display:flex}.headline mdif1-divider{bottom:0}.actions mdif1-divider{top:0}@media(forced-colors: active){dialog{outline:2px solid WindowText}}\n`;\n//# sourceMappingURL=dialog-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Dialog } from './internal/dialog.js';\nimport { styles } from './internal/dialog-styles.js';\n/**\n * @summary Dialogs can require an action, communicate information, or help\n * users accomplish a task. There are two types of dialogs: basic and\n * full-screen.\n *\n * @description\n * A dialog is a modal window that appears in front of app content to provide\n * critical information or ask for a decision. Dialogs disable all app\n * functionality when they appear, and remain on screen until confirmed,\n * dismissed, or a required action has been taken.\n *\n * Dialogs are purposefully interruptive, so they should be used sparingly.\n * A less disruptive alternative is to use a menu, which provides options\n * without interrupting a user’s experience.\n *\n * On mobile devices only, complex dialogs should be displayed fullscreen.\n *\n * __Example usages:__\n * - Common use cases for basic dialogs include alerts, quick selection, and\n * confirmation.\n * - More complex dialogs may contain actions that require a series of tasks\n * to complete. One example is creating a calendar entry with the event title,\n * date, location, and time.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdDialog = class MdDialog extends Dialog {\n};\nMdDialog.styles = [styles];\nMdDialog = __decorate([\n customElement('mdif1-dialog')\n], MdDialog);\nexport { MdDialog };\n//# sourceMappingURL=dialog.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./button/internal/shared-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end);box-sizing:border-box;cursor:pointer;display:inline-flex;gap:8px;min-height:var(--_container-height);outline:none;padding-block:calc((var(--_container-height) - max(var(--_label-text-line-height),var(--_icon-size)))/2);padding-inline-start:var(--_leading-space);padding-inline-end:var(--_trailing-space);place-content:center;place-items:center;position:relative;font-family:var(--_label-text-font);font-size:var(--_label-text-size);line-height:var(--_label-text-line-height);font-weight:var(--_label-text-weight);text-overflow:ellipsis;text-wrap:nowrap;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:top;--mdif1-ripple-hover-color: var(--_hover-state-layer-color);--mdif1-ripple-pressed-color: var(--_pressed-state-layer-color);--mdif1-ripple-hover-opacity: var(--_hover-state-layer-opacity);--mdif1-ripple-pressed-opacity: var(--_pressed-state-layer-opacity)}mdif1-focus-ring{--mdif1-focus-ring-shape-start-start: var(--_container-shape-start-start);--mdif1-focus-ring-shape-start-end: var(--_container-shape-start-end);--mdif1-focus-ring-shape-end-end: var(--_container-shape-end-end);--mdif1-focus-ring-shape-end-start: var(--_container-shape-end-start)}:host(:is([disabled],[soft-disabled])){cursor:default;pointer-events:none}.button{border-radius:inherit;cursor:inherit;display:inline-flex;align-items:center;justify-content:center;border:none;outline:none;-webkit-appearance:none;vertical-align:middle;background:rgba(0,0,0,0);text-decoration:none;min-width:calc(64px - var(--_leading-space) - var(--_trailing-space));width:100%;z-index:0;height:100%;font:inherit;color:var(--_label-text-color);padding:0;gap:inherit;text-transform:inherit}.button::-moz-focus-inner{padding:0;border:0}:host(:hover) .button{color:var(--_hover-label-text-color)}:host(:focus-within) .button{color:var(--_focus-label-text-color)}:host(:active) .button{color:var(--_pressed-label-text-color)}.background{background:var(--_container-color);border-radius:inherit;inset:0;position:absolute}.label{overflow:hidden}:is(.button,.label,.label slot),.label ::slotted(*){text-overflow:inherit}:host(:is([disabled],[soft-disabled])) .label{color:var(--_disabled-label-text-color);opacity:var(--_disabled-label-text-opacity)}:host(:is([disabled],[soft-disabled])) .background{background:var(--_disabled-container-color);opacity:var(--_disabled-container-opacity)}@media(forced-colors: active){.background{border:1px solid CanvasText}:host(:is([disabled],[soft-disabled])){--_disabled-icon-color: GrayText;--_disabled-icon-opacity: 1;--_disabled-container-opacity: 1;--_disabled-label-text-color: GrayText;--_disabled-label-text-opacity: 1}}:host([has-icon]:not([trailing-icon])){padding-inline-start:var(--_with-leading-icon-leading-space);padding-inline-end:var(--_with-leading-icon-trailing-space)}:host([has-icon][trailing-icon]){padding-inline-start:var(--_with-trailing-icon-leading-space);padding-inline-end:var(--_with-trailing-icon-trailing-space)}::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;flex-shrink:0;color:var(--_icon-color);font-size:var(--_icon-size);inline-size:var(--_icon-size);block-size:var(--_icon-size)}:host(:hover) ::slotted([slot=icon]){color:var(--_hover-icon-color)}:host(:focus-within) ::slotted([slot=icon]){color:var(--_focus-icon-color)}:host(:active) ::slotted([slot=icon]){color:var(--_pressed-icon-color)}:host(:is([disabled],[soft-disabled])) ::slotted([slot=icon]){color:var(--_disabled-icon-color);opacity:var(--_disabled-icon-opacity)}.touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}:host([touch-target=wrapper]){margin:max(0px,(48px - var(--_container-height))/2) 0}:host([touch-target=none]) .touch{display:none}\n`;\n//# sourceMappingURL=shared-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A unique symbol used for protected access to an instance's\n * `ElementInternals`.\n *\n * @example\n * ```ts\n * class MyElement extends mixinElementInternals(LitElement) {\n * constructor() {\n * super();\n * this[internals].role = 'button';\n * }\n * }\n * ```\n */\nexport const internals = Symbol('internals');\n// Private symbols\nconst privateInternals = Symbol('privateInternals');\n/**\n * Mixes in an attached `ElementInternals` instance.\n *\n * This mixin is only needed when other shared code needs access to a\n * component's `ElementInternals`, such as form-associated mixins.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `WithElementInternals` mixed in.\n */\nexport function mixinElementInternals(base) {\n class WithElementInternalsElement extends base {\n get [internals]() {\n // Create internals in getter so that it can be used in methods called on\n // construction in `ReactiveElement`, such as `requestUpdate()`.\n if (!this[privateInternals]) {\n // Cast needed for closure\n this[privateInternals] = this.attachInternals();\n }\n return this[privateInternals];\n }\n }\n return WithElementInternalsElement;\n}\n//# sourceMappingURL=element-internals.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { internals, } from '../../labs/behaviors/element-internals.js';\n/**\n * Sets up an element's constructor to enable form submission. The element\n * instance should be form associated and have a `type` property.\n *\n * A click listener is added to each element instance. If the click is not\n * default prevented, it will submit the element's form, if any.\n *\n * @example\n * ```ts\n * class MyElement extends mixinElementInternals(LitElement) {\n * static {\n * setupFormSubmitter(MyElement);\n * }\n *\n * static formAssociated = true;\n *\n * type: FormSubmitterType = 'submit';\n * }\n * ```\n *\n * @param ctor The form submitter element's constructor.\n */\nexport function setupFormSubmitter(ctor) {\n if (isServer) {\n return;\n }\n ctor.addInitializer((instance) => {\n const submitter = instance;\n submitter.addEventListener('click', async (event) => {\n const { type, [internals]: elementInternals } = submitter;\n const { form } = elementInternals;\n if (!form || type === 'button') {\n return;\n }\n // Wait a full task for event bubbling to complete.\n await new Promise((resolve) => {\n setTimeout(resolve);\n });\n if (event.defaultPrevented) {\n return;\n }\n if (type === 'reset') {\n form.reset();\n return;\n }\n // form.requestSubmit(submitter) does not work with form associated custom\n // elements. This patches the dispatched submit event to add the correct\n // `submitter`.\n // See https://github.com/WICG/webcomponents/issues/814\n form.addEventListener('submit', (submitEvent) => {\n Object.defineProperty(submitEvent, 'submitter', {\n configurable: true,\n enumerable: true,\n get: () => submitter,\n });\n }, { capture: true, once: true });\n elementInternals.setFormValue(submitter.value);\n form.requestSubmit();\n });\n });\n}\n//# sourceMappingURL=form-submitter.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Dispatches a click event to the given element that triggers a native action,\n * but is not composed and therefore is not seen outside the element.\n *\n * This is useful for responding to an external click event on the host element\n * that should trigger an internal action like a button click.\n *\n * Note, a helper is provided because setting this up correctly is a bit tricky.\n * In particular, calling `click` on an element creates a composed event, which\n * is not desirable, and a manually dispatched event must specifically be a\n * `MouseEvent` to trigger a native action.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function dispatchActivationClick(element) {\n const event = new MouseEvent('click', { bubbles: true });\n element.dispatchEvent(event);\n return event;\n}\n/**\n * Returns true if the click event should trigger an activation behavior. The\n * behavior is defined by the element and is whatever it should do when\n * clicked.\n *\n * Typically when an element needs to handle a click, the click is generated\n * from within the element and an event listener within the element implements\n * the needed behavior; however, it's possible to fire a click directly\n * at the element that the element should handle. This method helps\n * distinguish these \"external\" clicks.\n *\n * An \"external\" click can be triggered in a number of ways: via a click\n * on an associated label for a form associated element, calling\n * `element.click()`, or calling\n * `element.dispatchEvent(new MouseEvent('click', ...))`.\n *\n * Also works around Firefox issue\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1804576 by squelching\n * events for a microtask after called.\n *\n * @example\n * hostClickListener = (event: MouseEvent) {\n * if (isActivationClick(event)) {\n * this.dispatchActivationClick(this.buttonElement);\n * }\n * }\n *\n */\nexport function isActivationClick(event) {\n // Event must start at the event target.\n if (event.currentTarget !== event.target) {\n return false;\n }\n // Event must not be retargeted from shadowRoot.\n if (event.composedPath()[0] !== event.target) {\n return false;\n }\n // Target must not be disabled; this should only occur for a synthetically\n // dispatched click.\n if (event.target.disabled) {\n return false;\n }\n // This is an activation if the event should not be squelched.\n return !squelchEvent(event);\n}\n// TODO(https://bugzilla.mozilla.org/show_bug.cgi?id=1804576)\n// Remove when Firefox bug is addressed.\nfunction squelchEvent(event) {\n const squelched = isSquelchingEvents;\n if (squelched) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n squelchEventsForMicrotask();\n return squelched;\n}\n// Ignore events for one microtask only.\nlet isSquelchingEvents = false;\nasync function squelchEventsForMicrotask() {\n isSquelchingEvents = true;\n // Need to pause for just one microtask.\n // tslint:disable-next-line\n await null;\n isSquelchingEvents = false;\n}\n//# sourceMappingURL=form-label-activation.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { setupFormSubmitter, } from '../../internal/controller/form-submitter.js';\nimport { dispatchActivationClick, isActivationClick, } from '../../internal/events/form-label-activation.js';\nimport { internals, mixinElementInternals, } from '../../labs/behaviors/element-internals.js';\n// Separate variable needed for closure.\nconst buttonBaseClass = mixinDelegatesAria(mixinElementInternals(LitElement));\n/**\n * A button component.\n */\nexport class Button extends buttonBaseClass {\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name) {\n this.setAttribute('name', name);\n }\n /**\n * The associated form element with which this element's value will submit.\n */\n get form() {\n return this[internals].form;\n }\n constructor() {\n super();\n /**\n * Whether or not the button is disabled.\n */\n this.disabled = false;\n /**\n * Whether or not the button is \"soft-disabled\" (disabled but still\n * focusable).\n *\n * Use this when a button needs increased visibility when disabled. See\n * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_disabled_controls\n * for more guidance on when this is needed.\n */\n this.softDisabled = false;\n /**\n * The URL that the link button points to.\n */\n this.href = '';\n /**\n * The filename to use when downloading the linked resource.\n * If not specified, the browser will determine a filename.\n * This is only applicable when the button is used as a link (`href` is set).\n */\n this.download = '';\n /**\n * Where to display the linked `href` URL for a link button. Common options\n * include `_blank` to open in a new tab.\n */\n this.target = '';\n /**\n * Whether to render the icon at the inline end of the label rather than the\n * inline start.\n *\n * _Note:_ Link buttons cannot have trailing icons.\n */\n this.trailingIcon = false;\n /**\n * Whether to display the icon or not.\n */\n this.hasIcon = false;\n /**\n * The default behavior of the button. May be \"button\", \"reset\", or \"submit\"\n * (default).\n */\n this.type = 'submit';\n /**\n * The value added to a form with the button's name when the button submits a\n * form.\n */\n this.value = '';\n if (!isServer) {\n this.addEventListener('click', this.handleClick.bind(this));\n }\n }\n focus() {\n this.buttonElement?.focus();\n }\n blur() {\n this.buttonElement?.blur();\n }\n render() {\n const isRippleDisabled = this.disabled || this.softDisabled;\n const buttonOrLink = this.href ? this.renderLink() : this.renderButton();\n // TODO(b/310046938): due to a limitation in focus ring/ripple, we can't use\n // the same ID for different elements, so we change the ID instead.\n const buttonId = this.href ? 'link' : 'button';\n return html `\n ${this.renderElevationOrOutline?.()}\n <div class=\"background\"></div>\n <mdif1-focus-ring part=\"focus-ring\" for=${buttonId}></mdif1-focus-ring>\n <mdif1-ripple\n part=\"ripple\"\n for=${buttonId}\n ?disabled=\"${isRippleDisabled}\"></mdif1-ripple>\n ${buttonOrLink}\n `;\n }\n renderButton() {\n // Needed for closure conformance\n const { ariaLabel, ariaHasPopup, ariaExpanded } = this;\n return html `<button\n id=\"button\"\n class=\"button\"\n ?disabled=${this.disabled}\n aria-disabled=${this.softDisabled || nothing}\n aria-label=\"${ariaLabel || nothing}\"\n aria-haspopup=\"${ariaHasPopup || nothing}\"\n aria-expanded=\"${ariaExpanded || nothing}\">\n ${this.renderContent()}\n </button>`;\n }\n renderLink() {\n // Needed for closure conformance\n const { ariaLabel, ariaHasPopup, ariaExpanded } = this;\n return html `<a\n id=\"link\"\n class=\"button\"\n aria-label=\"${ariaLabel || nothing}\"\n aria-haspopup=\"${ariaHasPopup || nothing}\"\n aria-expanded=\"${ariaExpanded || nothing}\"\n aria-disabled=${this.disabled || this.softDisabled || nothing}\n tabindex=\"${this.disabled && !this.softDisabled ? -1 : nothing}\"\n href=${this.href}\n download=${this.download || nothing}\n target=${this.target || nothing}\n >${this.renderContent()}\n </a>`;\n }\n renderContent() {\n const icon = html `<slot\n name=\"icon\"\n @slotchange=\"${this.handleSlotChange}\"></slot>`;\n return html `\n <span class=\"touch\"></span>\n ${this.trailingIcon ? nothing : icon}\n <span class=\"label\"><slot></slot></span>\n ${this.trailingIcon ? icon : nothing}\n `;\n }\n handleClick(event) {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.softDisabled || (this.disabled && this.href)) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n if (!isActivationClick(event) || !this.buttonElement) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.buttonElement);\n }\n handleSlotChange() {\n this.hasIcon = this.assignedIcons.length > 0;\n }\n}\n(() => {\n setupFormSubmitter(Button);\n})();\n/** @nocollapse */\nButton.formAssociated = true;\n/** @nocollapse */\nButton.shadowRootOptions = {\n mode: 'open',\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean, reflect: true })\n], Button.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'soft-disabled', reflect: true })\n], Button.prototype, \"softDisabled\", void 0);\n__decorate([\n property()\n], Button.prototype, \"href\", void 0);\n__decorate([\n property()\n], Button.prototype, \"download\", void 0);\n__decorate([\n property()\n], Button.prototype, \"target\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'trailing-icon', reflect: true })\n], Button.prototype, \"trailingIcon\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-icon', reflect: true })\n], Button.prototype, \"hasIcon\", void 0);\n__decorate([\n property()\n], Button.prototype, \"type\", void 0);\n__decorate([\n property({ reflect: true })\n], Button.prototype, \"value\", void 0);\n__decorate([\n query('.button')\n], Button.prototype, \"buttonElement\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'icon', flatten: true })\n], Button.prototype, \"assignedIcons\", void 0);\n//# sourceMappingURL=button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Button } from './button.js';\n/**\n * A text button component.\n */\nexport class TextButton extends Button {\n}\n//# sourceMappingURL=text-button.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./button/internal/text-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-height: var(--mdif1-text-button-container-height, 40px);--_disabled-label-text-color: var(--mdif1-text-button-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity: var(--mdif1-text-button-disabled-label-text-opacity, 0.38);--_focus-label-text-color: var(--mdif1-text-button-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-label-text-color: var(--mdif1-text-button-hover-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--mdif1-text-button-hover-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--mdif1-text-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--mdif1-text-button-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_label-text-font: var(--mdif1-text-button-label-text-font, var(--mdif1-sys-typescale-label-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-text-button-label-text-line-height, var(--mdif1-sys-typescale-label-large-line-height, 1.25rem));--_label-text-size: var(--mdif1-text-button-label-text-size, var(--mdif1-sys-typescale-label-large-size, 0.875rem));--_label-text-weight: var(--mdif1-text-button-label-text-weight, var(--mdif1-sys-typescale-label-large-weight, var(--mdif1-ref-typeface-weight-medium, 500)));--_pressed-label-text-color: var(--mdif1-text-button-pressed-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-state-layer-color: var(--mdif1-text-button-pressed-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--mdif1-text-button-pressed-state-layer-opacity, 0.12);--_disabled-icon-color: var(--mdif1-text-button-disabled-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-icon-opacity: var(--mdif1-text-button-disabled-icon-opacity, 0.38);--_focus-icon-color: var(--mdif1-text-button-focus-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-icon-color: var(--mdif1-text-button-hover-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_icon-color: var(--mdif1-text-button-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_icon-size: var(--mdif1-text-button-icon-size, 18px);--_pressed-icon-color: var(--mdif1-text-button-pressed-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_container-shape-start-start: var(--mdif1-text-button-container-shape-start-start, var(--mdif1-text-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-start-end: var(--mdif1-text-button-container-shape-start-end, var(--mdif1-text-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-end: var(--mdif1-text-button-container-shape-end-end, var(--mdif1-text-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-start: var(--mdif1-text-button-container-shape-end-start, var(--mdif1-text-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_leading-space: var(--mdif1-text-button-leading-space, 12px);--_trailing-space: var(--mdif1-text-button-trailing-space, 12px);--_with-leading-icon-leading-space: var(--mdif1-text-button-with-leading-icon-leading-space, 12px);--_with-leading-icon-trailing-space: var(--mdif1-text-button-with-leading-icon-trailing-space, 16px);--_with-trailing-icon-leading-space: var(--mdif1-text-button-with-trailing-icon-leading-space, 16px);--_with-trailing-icon-trailing-space: var(--mdif1-text-button-with-trailing-icon-trailing-space, 12px);--_container-color: none;--_disabled-container-color: none;--_disabled-container-opacity: 0}\n`;\n//# sourceMappingURL=text-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\nimport { TextButton } from './internal/text-button.js';\nimport { styles as textStyles } from './internal/text-styles.js';\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Low emphasis – For optional or supplementary actions with the\n * least amount of prominence\n *\n * __Rationale:__ Text buttons have less visual prominence, so should be used\n * for low emphasis actions, such as an alternative option.\n *\n * __Example usages:__\n * - Learn more\n * - View all\n * - Change account\n * - Turn on\n *\n * @final\n * @suppress {visibility}\n */\nlet MdTextButton = class MdTextButton extends TextButton {\n};\nMdTextButton.styles = [sharedStyles, textStyles];\nMdTextButton = __decorate([\n customElement('mdif1-text-button')\n], MdTextButton);\nexport { MdTextButton };\n//# sourceMappingURL=text-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { Button } from './button.js';\n/**\n * An outlined button component.\n */\nexport class OutlinedButton extends Button {\n renderElevationOrOutline() {\n return html `<div class=\"outline\"></div>`;\n }\n}\n//# sourceMappingURL=outlined-button.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./button/internal/outlined-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-height: var(--mdif1-outlined-button-container-height, 40px);--_disabled-label-text-color: var(--mdif1-outlined-button-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity: var(--mdif1-outlined-button-disabled-label-text-opacity, 0.38);--_disabled-outline-color: var(--mdif1-outlined-button-disabled-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-outline-opacity: var(--mdif1-outlined-button-disabled-outline-opacity, 0.12);--_focus-label-text-color: var(--mdif1-outlined-button-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-label-text-color: var(--mdif1-outlined-button-hover-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-color: var(--mdif1-outlined-button-hover-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--mdif1-outlined-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--mdif1-outlined-button-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_label-text-font: var(--mdif1-outlined-button-label-text-font, var(--mdif1-sys-typescale-label-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-outlined-button-label-text-line-height, var(--mdif1-sys-typescale-label-large-line-height, 1.25rem));--_label-text-size: var(--mdif1-outlined-button-label-text-size, var(--mdif1-sys-typescale-label-large-size, 0.875rem));--_label-text-weight: var(--mdif1-outlined-button-label-text-weight, var(--mdif1-sys-typescale-label-large-weight, var(--mdif1-ref-typeface-weight-medium, 500)));--_outline-color: var(--mdif1-outlined-button-outline-color, var(--mdif1-sys-color-outline, #79747e));--_outline-width: var(--mdif1-outlined-button-outline-width, 1px);--_pressed-label-text-color: var(--mdif1-outlined-button-pressed-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-outline-color: var(--mdif1-outlined-button-pressed-outline-color, var(--mdif1-sys-color-outline, #79747e));--_pressed-state-layer-color: var(--mdif1-outlined-button-pressed-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--mdif1-outlined-button-pressed-state-layer-opacity, 0.12);--_disabled-icon-color: var(--mdif1-outlined-button-disabled-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-icon-opacity: var(--mdif1-outlined-button-disabled-icon-opacity, 0.38);--_focus-icon-color: var(--mdif1-outlined-button-focus-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_hover-icon-color: var(--mdif1-outlined-button-hover-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_icon-color: var(--mdif1-outlined-button-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_icon-size: var(--mdif1-outlined-button-icon-size, 18px);--_pressed-icon-color: var(--mdif1-outlined-button-pressed-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_container-shape-start-start: var(--mdif1-outlined-button-container-shape-start-start, var(--mdif1-outlined-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-start-end: var(--mdif1-outlined-button-container-shape-start-end, var(--mdif1-outlined-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-end: var(--mdif1-outlined-button-container-shape-end-end, var(--mdif1-outlined-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-start: var(--mdif1-outlined-button-container-shape-end-start, var(--mdif1-outlined-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_leading-space: var(--mdif1-outlined-button-leading-space, 24px);--_trailing-space: var(--mdif1-outlined-button-trailing-space, 24px);--_with-leading-icon-leading-space: var(--mdif1-outlined-button-with-leading-icon-leading-space, 16px);--_with-leading-icon-trailing-space: var(--mdif1-outlined-button-with-leading-icon-trailing-space, 24px);--_with-trailing-icon-leading-space: var(--mdif1-outlined-button-with-trailing-icon-leading-space, 24px);--_with-trailing-icon-trailing-space: var(--mdif1-outlined-button-with-trailing-icon-trailing-space, 16px);--_container-color: none;--_disabled-container-color: none;--_disabled-container-opacity: 0}.outline{inset:0;border-style:solid;position:absolute;box-sizing:border-box;border-color:var(--_outline-color);border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-start-radius:var(--_container-shape-end-start);border-end-end-radius:var(--_container-shape-end-end)}:host(:active) .outline{border-color:var(--_pressed-outline-color)}:host(:is([disabled],[soft-disabled])) .outline{border-color:var(--_disabled-outline-color);opacity:var(--_disabled-outline-opacity)}@media(forced-colors: active){:host(:is([disabled],[soft-disabled])) .background{border-color:GrayText}:host(:is([disabled],[soft-disabled])) .outline{opacity:1}}.outline,mdif1-ripple{border-width:var(--_outline-width)}mdif1-ripple{inline-size:calc(100% - 2*var(--_outline-width));block-size:calc(100% - 2*var(--_outline-width));border-style:solid;border-color:rgba(0,0,0,0)}\n`;\n//# sourceMappingURL=outlined-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { OutlinedButton } from './internal/outlined-button.js';\nimport { styles as outlinedStyles } from './internal/outlined-styles.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Use an outlined button for actions that need attention but\n * aren’t the primary action, such as “See all” or “Add to cart.” This is also\n * the button to use for giving someone the opportunity to change their mind or\n * escape a flow.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\nlet MdOutlinedButton = class MdOutlinedButton extends OutlinedButton {\n};\nMdOutlinedButton.styles = [sharedStyles, outlinedStyles];\nMdOutlinedButton = __decorate([\n customElement('mdif1-outlined-button')\n], MdOutlinedButton);\nexport { MdOutlinedButton };\n//# sourceMappingURL=outlined-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../elevation/elevation.js';\nimport { html } from 'lit';\nimport { Button } from './button.js';\n/**\n * A filled button component.\n */\nexport class FilledButton extends Button {\n renderElevationOrOutline() {\n return html `<mdif1-elevation part=\"elevation\"></mdif1-elevation>`;\n }\n}\n//# sourceMappingURL=filled-button.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./button/internal/filled-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_container-color: var(--mdif1-filled-button-container-color, var(--mdif1-sys-color-primary, #6750a4));--_container-elevation: var(--mdif1-filled-button-container-elevation, 0);--_container-height: var(--mdif1-filled-button-container-height, 40px);--_container-shadow-color: var(--mdif1-filled-button-container-shadow-color, var(--mdif1-sys-color-shadow, #000));--_disabled-container-color: var(--mdif1-filled-button-disabled-container-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-container-elevation: var(--mdif1-filled-button-disabled-container-elevation, 0);--_disabled-container-opacity: var(--mdif1-filled-button-disabled-container-opacity, 0.12);--_disabled-label-text-color: var(--mdif1-filled-button-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity: var(--mdif1-filled-button-disabled-label-text-opacity, 0.38);--_focus-container-elevation: var(--mdif1-filled-button-focus-container-elevation, 0);--_focus-label-text-color: var(--mdif1-filled-button-focus-label-text-color, var(--mdif1-sys-color-on-primary, #fff));--_hover-container-elevation: var(--mdif1-filled-button-hover-container-elevation, 1);--_hover-label-text-color: var(--mdif1-filled-button-hover-label-text-color, var(--mdif1-sys-color-on-primary, #fff));--_hover-state-layer-color: var(--mdif1-filled-button-hover-state-layer-color, var(--mdif1-sys-color-on-primary, #fff));--_hover-state-layer-opacity: var(--mdif1-filled-button-hover-state-layer-opacity, 0.08);--_label-text-color: var(--mdif1-filled-button-label-text-color, var(--mdif1-sys-color-on-primary, #fff));--_label-text-font: var(--mdif1-filled-button-label-text-font, var(--mdif1-sys-typescale-label-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-filled-button-label-text-line-height, var(--mdif1-sys-typescale-label-large-line-height, 1.25rem));--_label-text-size: var(--mdif1-filled-button-label-text-size, var(--mdif1-sys-typescale-label-large-size, 0.875rem));--_label-text-weight: var(--mdif1-filled-button-label-text-weight, var(--mdif1-sys-typescale-label-large-weight, var(--mdif1-ref-typeface-weight-medium, 500)));--_pressed-container-elevation: var(--mdif1-filled-button-pressed-container-elevation, 0);--_pressed-label-text-color: var(--mdif1-filled-button-pressed-label-text-color, var(--mdif1-sys-color-on-primary, #fff));--_pressed-state-layer-color: var(--mdif1-filled-button-pressed-state-layer-color, var(--mdif1-sys-color-on-primary, #fff));--_pressed-state-layer-opacity: var(--mdif1-filled-button-pressed-state-layer-opacity, 0.12);--_disabled-icon-color: var(--mdif1-filled-button-disabled-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-icon-opacity: var(--mdif1-filled-button-disabled-icon-opacity, 0.38);--_focus-icon-color: var(--mdif1-filled-button-focus-icon-color, var(--mdif1-sys-color-on-primary, #fff));--_hover-icon-color: var(--mdif1-filled-button-hover-icon-color, var(--mdif1-sys-color-on-primary, #fff));--_icon-color: var(--mdif1-filled-button-icon-color, var(--mdif1-sys-color-on-primary, #fff));--_icon-size: var(--mdif1-filled-button-icon-size, 18px);--_pressed-icon-color: var(--mdif1-filled-button-pressed-icon-color, var(--mdif1-sys-color-on-primary, #fff));--_container-shape-start-start: var(--mdif1-filled-button-container-shape-start-start, var(--mdif1-filled-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-start-end: var(--mdif1-filled-button-container-shape-start-end, var(--mdif1-filled-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-end: var(--mdif1-filled-button-container-shape-end-end, var(--mdif1-filled-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_container-shape-end-start: var(--mdif1-filled-button-container-shape-end-start, var(--mdif1-filled-button-container-shape, var(--mdif1-sys-shape-corner-full, 9999px)));--_leading-space: var(--mdif1-filled-button-leading-space, 24px);--_trailing-space: var(--mdif1-filled-button-trailing-space, 24px);--_with-leading-icon-leading-space: var(--mdif1-filled-button-with-leading-icon-leading-space, 16px);--_with-leading-icon-trailing-space: var(--mdif1-filled-button-with-leading-icon-trailing-space, 24px);--_with-trailing-icon-leading-space: var(--mdif1-filled-button-with-trailing-icon-leading-space, 24px);--_with-trailing-icon-trailing-space: var(--mdif1-filled-button-with-trailing-icon-trailing-space, 16px)}\n`;\n//# sourceMappingURL=filled-styles.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./button/internal/shared-elevation-styles.css.\nimport { css } from 'lit';\nexport const styles = css `mdif1-elevation{transition-duration:280ms}:host(:is([disabled],[soft-disabled])) mdif1-elevation{transition:none}mdif1-elevation{--mdif1-elevation-level: var(--_container-elevation);--mdif1-elevation-shadow-color: var(--_container-shadow-color)}:host(:focus-within) mdif1-elevation{--mdif1-elevation-level: var(--_focus-container-elevation)}:host(:hover) mdif1-elevation{--mdif1-elevation-level: var(--_hover-container-elevation)}:host(:active) mdif1-elevation{--mdif1-elevation-level: var(--_pressed-container-elevation)}:host(:is([disabled],[soft-disabled])) mdif1-elevation{--mdif1-elevation-level: var(--_disabled-container-elevation)}\n`;\n//# sourceMappingURL=shared-elevation-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FilledButton } from './internal/filled-button.js';\nimport { styles as filledStyles } from './internal/filled-styles.js';\nimport { styles as sharedElevationStyles } from './internal/shared-elevation-styles.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ High emphasis – For the primary, most important, or most common\n * action on a screen\n *\n * __Rationale:__ The filled button’s contrasting surface color makes it the\n * most prominent button after the FAB. It’s used for final or unblocking\n * actions in a flow.\n *\n * __Example usages:__\n * - Save\n * - Confirm\n * - Done\n *\n * @final\n * @suppress {visibility}\n */\nlet MdFilledButton = class MdFilledButton extends FilledButton {\n};\nMdFilledButton.styles = [\n sharedStyles,\n sharedElevationStyles,\n filledStyles,\n];\nMdFilledButton = __decorate([\n customElement('mdif1-filled-button')\n], MdFilledButton);\nexport { MdFilledButton };\n//# sourceMappingURL=filled-button.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { html, LitElement, nothing, render, } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { EASING } from '../../internal/motion/animation.js';\n/**\n * A field component.\n */\nexport class Field extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.error = false;\n this.focused = false;\n this.label = '';\n this.noAsterisk = false;\n this.populated = false;\n this.required = false;\n this.resizable = false;\n this.supportingText = '';\n this.errorText = '';\n this.count = -1;\n this.max = -1;\n /**\n * Whether or not the field has leading content.\n */\n this.hasStart = false;\n /**\n * Whether or not the field has trailing content.\n */\n this.hasEnd = false;\n this.isAnimating = false;\n /**\n * When set to true, the error text's `role=\"alert\"` will be removed, then\n * re-added after an animation frame. This will re-announce an error message\n * to screen readers.\n */\n this.refreshErrorAlert = false;\n this.disableTransitions = false;\n }\n get counterText() {\n // Count and max are typed as number, but can be set to null when Lit removes\n // their attributes. These getters coerce back to a number for calculations.\n const countAsNumber = this.count ?? -1;\n const maxAsNumber = this.max ?? -1;\n // Counter does not show if count is negative, or max is negative or 0.\n if (countAsNumber < 0 || maxAsNumber <= 0) {\n return '';\n }\n return `${countAsNumber} / ${maxAsNumber}`;\n }\n get supportingOrErrorText() {\n return this.error && this.errorText ? this.errorText : this.supportingText;\n }\n /**\n * Re-announces the field's error supporting text to screen readers.\n *\n * Error text announces to screen readers anytime it is visible and changes.\n * Use the method to re-announce the message when the text has not changed,\n * but announcement is still needed (such as for `reportValidity()`).\n */\n reannounceError() {\n this.refreshErrorAlert = true;\n }\n update(props) {\n // Client-side property updates\n const isDisabledChanging = props.has('disabled') && props.get('disabled') !== undefined;\n if (isDisabledChanging) {\n this.disableTransitions = true;\n }\n // When disabling, remove focus styles if focused.\n if (this.disabled && this.focused) {\n props.set('focused', true);\n this.focused = false;\n }\n // Animate if focused or populated change.\n this.animateLabelIfNeeded({\n wasFocused: props.get('focused'),\n wasPopulated: props.get('populated'),\n });\n super.update(props);\n }\n render() {\n const floatingLabel = this.renderLabel(/*isFloating*/ true);\n const restingLabel = this.renderLabel(/*isFloating*/ false);\n const outline = this.renderOutline?.(floatingLabel);\n const classes = {\n 'disabled': this.disabled,\n 'disable-transitions': this.disableTransitions,\n 'error': this.error && !this.disabled,\n 'focused': this.focused,\n 'with-start': this.hasStart,\n 'with-end': this.hasEnd,\n 'populated': this.populated,\n 'resizable': this.resizable,\n 'required': this.required,\n 'no-label': !this.label,\n };\n return html `\n <div class=\"field ${classMap(classes)}\">\n <div class=\"container-overflow\">\n ${this.renderBackground?.()}\n <slot name=\"container\"></slot>\n ${this.renderStateLayer?.()} ${this.renderIndicator?.()} ${outline}\n <div class=\"container\">\n <div class=\"start\">\n <slot name=\"start\"></slot>\n </div>\n <div class=\"middle\">\n <div class=\"label-wrapper\">\n ${restingLabel} ${outline ? nothing : floatingLabel}\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n <div class=\"end\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </div>\n ${this.renderSupportingText()}\n </div>\n `;\n }\n updated(changed) {\n if (changed.has('supportingText') ||\n changed.has('errorText') ||\n changed.has('count') ||\n changed.has('max')) {\n this.updateSlottedAriaDescribedBy();\n }\n if (this.refreshErrorAlert) {\n // The past render cycle removed the role=\"alert\" from the error message.\n // Re-add it after an animation frame to re-announce the error.\n requestAnimationFrame(() => {\n this.refreshErrorAlert = false;\n });\n }\n if (this.disableTransitions) {\n requestAnimationFrame(() => {\n this.disableTransitions = false;\n });\n }\n }\n renderSupportingText() {\n const { supportingOrErrorText, counterText } = this;\n if (!supportingOrErrorText && !counterText) {\n return nothing;\n }\n // Always render the supporting text span so that our `space-around`\n // container puts the counter at the end.\n const start = html `<span>${supportingOrErrorText}</span>`;\n // Conditionally render counter so we don't render the extra `gap`.\n // TODO(b/244473435): add aria-label and announcements\n const end = counterText\n ? html `<span class=\"counter\">${counterText}</span>`\n : nothing;\n // Announce if there is an error and error text visible.\n // If refreshErrorAlert is true, do not announce. This will remove the\n // role=\"alert\" attribute. Another render cycle will happen after an\n // animation frame to re-add the role.\n const shouldErrorAnnounce = this.error && this.errorText && !this.refreshErrorAlert;\n const role = shouldErrorAnnounce ? 'alert' : nothing;\n return html `\n <div class=\"supporting-text\" role=${role}>${start}${end}</div>\n <slot\n name=\"aria-describedby\"\n @slotchange=${this.updateSlottedAriaDescribedBy}></slot>\n `;\n }\n updateSlottedAriaDescribedBy() {\n for (const element of this.slottedAriaDescribedBy) {\n render(html `${this.supportingOrErrorText} ${this.counterText}`, element);\n element.setAttribute('hidden', '');\n }\n }\n renderLabel(isFloating) {\n if (!this.label) {\n return nothing;\n }\n let visible;\n if (isFloating) {\n // Floating label is visible when focused/populated or when animating.\n visible = this.focused || this.populated || this.isAnimating;\n }\n else {\n // Resting label is visible when unfocused. It is never visible while\n // animating.\n visible = !this.focused && !this.populated && !this.isAnimating;\n }\n const classes = {\n 'hidden': !visible,\n 'floating': isFloating,\n 'resting': !isFloating,\n };\n // Add '*' if a label is present and the field is required\n const labelText = `${this.label}${this.required && !this.noAsterisk ? '*' : ''}`;\n return html `\n <span class=\"label ${classMap(classes)}\" aria-hidden=${!visible}\n >${labelText}</span\n >\n `;\n }\n animateLabelIfNeeded({ wasFocused, wasPopulated, }) {\n if (!this.label) {\n return;\n }\n wasFocused ??= this.focused;\n wasPopulated ??= this.populated;\n const wasFloating = wasFocused || wasPopulated;\n const shouldBeFloating = this.focused || this.populated;\n if (wasFloating === shouldBeFloating) {\n return;\n }\n this.isAnimating = true;\n this.labelAnimation?.cancel();\n // Only one label is visible at a time for clearer text rendering.\n // The floating label is visible and used during animation. At the end of\n // the animation, it will either remain visible (if floating) or hide and\n // the resting label will be shown.\n //\n // We don't use forward filling because if the dimensions of the text field\n // change (leading icon removed, density changes, etc), then the animation\n // will be inaccurate.\n //\n // Re-calculating the animation each time will prevent any visual glitches\n // from appearing.\n // TODO(b/241113345): use animation tokens\n this.labelAnimation = this.floatingLabelEl?.animate(this.getLabelKeyframes(), { duration: 150, easing: EASING.STANDARD });\n this.labelAnimation?.addEventListener('finish', () => {\n // At the end of the animation, update the visible label.\n this.isAnimating = false;\n });\n }\n getLabelKeyframes() {\n const { floatingLabelEl, restingLabelEl } = this;\n if (!floatingLabelEl || !restingLabelEl) {\n return [];\n }\n const { x: floatingX, y: floatingY, height: floatingHeight, } = floatingLabelEl.getBoundingClientRect();\n const { x: restingX, y: restingY, height: restingHeight, } = restingLabelEl.getBoundingClientRect();\n const floatingScrollWidth = floatingLabelEl.scrollWidth;\n const restingScrollWidth = restingLabelEl.scrollWidth;\n // Scale by width ratio instead of font size since letter-spacing will scale\n // incorrectly. Using the width we can better approximate the adjusted\n // scale and compensate for tracking and overflow.\n // (use scrollWidth instead of width to account for clipped labels)\n const scale = restingScrollWidth / floatingScrollWidth;\n const xDelta = restingX - floatingX;\n // The line-height of the resting and floating label are different. When\n // we move the floating label down to the resting label's position, it won't\n // exactly match because of this. We need to adjust by half of what the\n // final scaled floating label's height will be.\n const yDelta = restingY -\n floatingY +\n Math.round((restingHeight - floatingHeight * scale) / 2);\n // Create the two transforms: floating to resting (using the calculations\n // above), and resting to floating (re-setting the transform to initial\n // values).\n const restTransform = `translateX(${xDelta}px) translateY(${yDelta}px) scale(${scale})`;\n const floatTransform = `translateX(0) translateY(0) scale(1)`;\n // Constrain the floating labels width to a scaled percentage of the\n // resting label's width. This will prevent long clipped labels from\n // overflowing the container.\n const restingClientWidth = restingLabelEl.clientWidth;\n const isRestingClipped = restingScrollWidth > restingClientWidth;\n const width = isRestingClipped ? `${restingClientWidth / scale}px` : '';\n if (this.focused || this.populated) {\n return [\n { transform: restTransform, width },\n { transform: floatTransform, width },\n ];\n }\n return [\n { transform: floatTransform, width },\n { transform: restTransform, width },\n ];\n }\n getSurfacePositionClientRect() {\n return this.containerEl.getBoundingClientRect();\n }\n}\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"error\", void 0);\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"focused\", void 0);\n__decorate([\n property()\n], Field.prototype, \"label\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-asterisk' })\n], Field.prototype, \"noAsterisk\", void 0);\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"populated\", void 0);\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], Field.prototype, \"resizable\", void 0);\n__decorate([\n property({ attribute: 'supporting-text' })\n], Field.prototype, \"supportingText\", void 0);\n__decorate([\n property({ attribute: 'error-text' })\n], Field.prototype, \"errorText\", void 0);\n__decorate([\n property({ type: Number })\n], Field.prototype, \"count\", void 0);\n__decorate([\n property({ type: Number })\n], Field.prototype, \"max\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-start' })\n], Field.prototype, \"hasStart\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-end' })\n], Field.prototype, \"hasEnd\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'aria-describedby' })\n], Field.prototype, \"slottedAriaDescribedBy\", void 0);\n__decorate([\n state()\n], Field.prototype, \"isAnimating\", void 0);\n__decorate([\n state()\n], Field.prototype, \"refreshErrorAlert\", void 0);\n__decorate([\n state()\n], Field.prototype, \"disableTransitions\", void 0);\n__decorate([\n query('.label.floating')\n], Field.prototype, \"floatingLabelEl\", void 0);\n__decorate([\n query('.label.resting')\n], Field.prototype, \"restingLabelEl\", void 0);\n__decorate([\n query('.container')\n], Field.prototype, \"containerEl\", void 0);\n//# sourceMappingURL=field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html } from 'lit';\nimport { Field } from './field.js';\n/**\n * An outlined field component.\n */\nexport class OutlinedField extends Field {\n renderOutline(floatingLabel) {\n return html `\n <div class=\"outline\">\n <div class=\"outline-start\"></div>\n <div class=\"outline-notch\">\n <div class=\"outline-panel-inactive\"></div>\n <div class=\"outline-panel-active\"></div>\n <div class=\"outline-label\">${floatingLabel}</div>\n </div>\n <div class=\"outline-end\"></div>\n </div>\n `;\n }\n}\n//# sourceMappingURL=outlined-field.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./field/internal/outlined-styles.css.\nimport { css } from 'lit';\nexport const styles = css `@layer styles{:host{--_bottom-space: var(--mdif1-outlined-field-bottom-space, 16px);--_content-color: var(--mdif1-outlined-field-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_content-font: var(--mdif1-outlined-field-content-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_content-line-height: var(--mdif1-outlined-field-content-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_content-size: var(--mdif1-outlined-field-content-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_content-space: var(--mdif1-outlined-field-content-space, 16px);--_content-weight: var(--mdif1-outlined-field-content-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_disabled-content-color: var(--mdif1-outlined-field-disabled-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-content-opacity: var(--mdif1-outlined-field-disabled-content-opacity, 0.38);--_disabled-label-text-color: var(--mdif1-outlined-field-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity: var(--mdif1-outlined-field-disabled-label-text-opacity, 0.38);--_disabled-leading-content-color: var(--mdif1-outlined-field-disabled-leading-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-leading-content-opacity: var(--mdif1-outlined-field-disabled-leading-content-opacity, 0.38);--_disabled-outline-color: var(--mdif1-outlined-field-disabled-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-outline-opacity: var(--mdif1-outlined-field-disabled-outline-opacity, 0.12);--_disabled-outline-width: var(--mdif1-outlined-field-disabled-outline-width, 1px);--_disabled-supporting-text-color: var(--mdif1-outlined-field-disabled-supporting-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-supporting-text-opacity: var(--mdif1-outlined-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-content-color: var(--mdif1-outlined-field-disabled-trailing-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-trailing-content-opacity: var(--mdif1-outlined-field-disabled-trailing-content-opacity, 0.38);--_error-content-color: var(--mdif1-outlined-field-error-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-focus-content-color: var(--mdif1-outlined-field-error-focus-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-focus-label-text-color: var(--mdif1-outlined-field-error-focus-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-leading-content-color: var(--mdif1-outlined-field-error-focus-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-focus-outline-color: var(--mdif1-outlined-field-error-focus-outline-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-supporting-text-color: var(--mdif1-outlined-field-error-focus-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-trailing-content-color: var(--mdif1-outlined-field-error-focus-trailing-content-color, var(--mdif1-sys-color-error, #b3261e));--_error-hover-content-color: var(--mdif1-outlined-field-error-hover-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-hover-label-text-color: var(--mdif1-outlined-field-error-hover-label-text-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-hover-leading-content-color: var(--mdif1-outlined-field-error-hover-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-hover-outline-color: var(--mdif1-outlined-field-error-hover-outline-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-hover-supporting-text-color: var(--mdif1-outlined-field-error-hover-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-hover-trailing-content-color: var(--mdif1-outlined-field-error-hover-trailing-content-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-label-text-color: var(--mdif1-outlined-field-error-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-leading-content-color: var(--mdif1-outlined-field-error-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-outline-color: var(--mdif1-outlined-field-error-outline-color, var(--mdif1-sys-color-error, #b3261e));--_error-supporting-text-color: var(--mdif1-outlined-field-error-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-trailing-content-color: var(--mdif1-outlined-field-error-trailing-content-color, var(--mdif1-sys-color-error, #b3261e));--_focus-content-color: var(--mdif1-outlined-field-focus-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_focus-label-text-color: var(--mdif1-outlined-field-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_focus-leading-content-color: var(--mdif1-outlined-field-focus-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_focus-outline-color: var(--mdif1-outlined-field-focus-outline-color, var(--mdif1-sys-color-primary, #6750a4));--_focus-outline-width: var(--mdif1-outlined-field-focus-outline-width, 3px);--_focus-supporting-text-color: var(--mdif1-outlined-field-focus-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_focus-trailing-content-color: var(--mdif1-outlined-field-focus-trailing-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-content-color: var(--mdif1-outlined-field-hover-content-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--mdif1-outlined-field-hover-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-leading-content-color: var(--mdif1-outlined-field-hover-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-outline-color: var(--mdif1-outlined-field-hover-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-outline-width: var(--mdif1-outlined-field-hover-outline-width, 1px);--_hover-supporting-text-color: var(--mdif1-outlined-field-hover-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-trailing-content-color: var(--mdif1-outlined-field-hover-trailing-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_label-text-color: var(--mdif1-outlined-field-label-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_label-text-font: var(--mdif1-outlined-field-label-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-outlined-field-label-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_label-text-padding-bottom: var(--mdif1-outlined-field-label-text-padding-bottom, 8px);--_label-text-populated-line-height: var(--mdif1-outlined-field-label-text-populated-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_label-text-populated-size: var(--mdif1-outlined-field-label-text-populated-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_label-text-size: var(--mdif1-outlined-field-label-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_label-text-weight: var(--mdif1-outlined-field-label-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_leading-content-color: var(--mdif1-outlined-field-leading-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_leading-space: var(--mdif1-outlined-field-leading-space, 16px);--_outline-color: var(--mdif1-outlined-field-outline-color, var(--mdif1-sys-color-outline, #79747e));--_outline-label-padding: var(--mdif1-outlined-field-outline-label-padding, 4px);--_outline-width: var(--mdif1-outlined-field-outline-width, 1px);--_supporting-text-color: var(--mdif1-outlined-field-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_supporting-text-font: var(--mdif1-outlined-field-supporting-text-font, var(--mdif1-sys-typescale-body-small-font, var(--mdif1-ref-typeface-plain, Roboto)));--_supporting-text-leading-space: var(--mdif1-outlined-field-supporting-text-leading-space, 16px);--_supporting-text-line-height: var(--mdif1-outlined-field-supporting-text-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_supporting-text-size: var(--mdif1-outlined-field-supporting-text-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_supporting-text-top-space: var(--mdif1-outlined-field-supporting-text-top-space, 4px);--_supporting-text-trailing-space: var(--mdif1-outlined-field-supporting-text-trailing-space, 16px);--_supporting-text-weight: var(--mdif1-outlined-field-supporting-text-weight, var(--mdif1-sys-typescale-body-small-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_top-space: var(--mdif1-outlined-field-top-space, 16px);--_trailing-content-color: var(--mdif1-outlined-field-trailing-content-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_trailing-space: var(--mdif1-outlined-field-trailing-space, 16px);--_with-leading-content-leading-space: var(--mdif1-outlined-field-with-leading-content-leading-space, 12px);--_with-trailing-content-trailing-space: var(--mdif1-outlined-field-with-trailing-content-trailing-space, 12px);--_container-shape-start-start: var(--mdif1-outlined-field-container-shape-start-start, var(--mdif1-outlined-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-start-end: var(--mdif1-outlined-field-container-shape-start-end, var(--mdif1-outlined-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-end-end: var(--mdif1-outlined-field-container-shape-end-end, var(--mdif1-outlined-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-end-start: var(--mdif1-outlined-field-container-shape-end-start, var(--mdif1-outlined-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)))}.outline{border-color:var(--_outline-color);border-radius:inherit;display:flex;pointer-events:none;height:100%;position:absolute;width:100%;z-index:1}.outline-start::before,.outline-start::after,.outline-panel-inactive::before,.outline-panel-inactive::after,.outline-panel-active::before,.outline-panel-active::after,.outline-end::before,.outline-end::after{border:inherit;content:\"\";inset:0;position:absolute}.outline-start,.outline-end{border:inherit;border-radius:inherit;box-sizing:border-box;position:relative}.outline-start::before,.outline-start::after,.outline-end::before,.outline-end::after{border-bottom-style:solid;border-top-style:solid}.outline-start::after,.outline-end::after{opacity:0;transition:opacity 150ms cubic-bezier(0.2, 0, 0, 1)}.focused .outline-start::after,.focused .outline-end::after{opacity:1}.outline-start::before,.outline-start::after{border-inline-start-style:solid;border-inline-end-style:none;border-start-start-radius:inherit;border-start-end-radius:0;border-end-start-radius:inherit;border-end-end-radius:0;margin-inline-end:var(--_outline-label-padding)}.outline-end{flex-grow:1;margin-inline-start:calc(-1*var(--_outline-label-padding))}.outline-end::before,.outline-end::after{border-inline-start-style:none;border-inline-end-style:solid;border-start-start-radius:0;border-start-end-radius:inherit;border-end-start-radius:0;border-end-end-radius:inherit}.outline-notch{align-items:flex-start;border:inherit;display:flex;margin-inline-start:calc(-1*var(--_outline-label-padding));margin-inline-end:var(--_outline-label-padding);max-width:calc(100% - var(--_leading-space) - var(--_trailing-space));padding:0 var(--_outline-label-padding);position:relative}.no-label .outline-notch{display:none}.outline-panel-inactive,.outline-panel-active{border:inherit;border-bottom-style:solid;inset:0;position:absolute}.outline-panel-inactive::before,.outline-panel-inactive::after,.outline-panel-active::before,.outline-panel-active::after{border-top-style:solid;border-bottom:none;bottom:auto;transform:scaleX(1);transition:transform 150ms cubic-bezier(0.2, 0, 0, 1)}.outline-panel-inactive::before,.outline-panel-active::before{right:50%;transform-origin:top left}.outline-panel-inactive::after,.outline-panel-active::after{left:50%;transform-origin:top right}.populated .outline-panel-inactive::before,.populated .outline-panel-inactive::after,.populated .outline-panel-active::before,.populated .outline-panel-active::after,.focused .outline-panel-inactive::before,.focused .outline-panel-inactive::after,.focused .outline-panel-active::before,.focused .outline-panel-active::after{transform:scaleX(0)}.outline-panel-active{opacity:0;transition:opacity 150ms cubic-bezier(0.2, 0, 0, 1)}.focused .outline-panel-active{opacity:1}.outline-label{display:flex;max-width:100%;transform:translateY(calc(-100% + var(--_label-text-padding-bottom)))}.outline-start,.field:not(.with-start) .content ::slotted(*){padding-inline-start:max(var(--_leading-space),max(var(--_container-shape-start-start),var(--_container-shape-end-start)) + var(--_outline-label-padding))}.field:not(.with-start) .label-wrapper{margin-inline-start:max(var(--_leading-space),max(var(--_container-shape-start-start),var(--_container-shape-end-start)) + var(--_outline-label-padding))}.field:not(.with-end) .content ::slotted(*){padding-inline-end:max(var(--_trailing-space),max(var(--_container-shape-start-end),var(--_container-shape-end-end)))}.field:not(.with-end) .label-wrapper{margin-inline-end:max(var(--_trailing-space),max(var(--_container-shape-start-end),var(--_container-shape-end-end)))}.outline-start::before,.outline-end::before,.outline-panel-inactive,.outline-panel-inactive::before,.outline-panel-inactive::after{border-width:var(--_outline-width)}:hover .outline{border-color:var(--_hover-outline-color);color:var(--_hover-outline-color)}:hover .outline-start::before,:hover .outline-end::before,:hover .outline-panel-inactive,:hover .outline-panel-inactive::before,:hover .outline-panel-inactive::after{border-width:var(--_hover-outline-width)}.focused .outline{border-color:var(--_focus-outline-color);color:var(--_focus-outline-color)}.outline-start::after,.outline-end::after,.outline-panel-active,.outline-panel-active::before,.outline-panel-active::after{border-width:var(--_focus-outline-width)}.disabled .outline{border-color:var(--_disabled-outline-color);color:var(--_disabled-outline-color)}.disabled .outline-start,.disabled .outline-end,.disabled .outline-panel-inactive{opacity:var(--_disabled-outline-opacity)}.disabled .outline-start::before,.disabled .outline-end::before,.disabled .outline-panel-inactive,.disabled .outline-panel-inactive::before,.disabled .outline-panel-inactive::after{border-width:var(--_disabled-outline-width)}.error .outline{border-color:var(--_error-outline-color);color:var(--_error-outline-color)}.error:hover .outline{border-color:var(--_error-hover-outline-color);color:var(--_error-hover-outline-color)}.error.focused .outline{border-color:var(--_error-focus-outline-color);color:var(--_error-focus-outline-color)}.resizable .container{bottom:var(--_focus-outline-width);inset-inline-end:var(--_focus-outline-width);clip-path:inset(var(--_focus-outline-width) 0 0 var(--_focus-outline-width))}.resizable .container>*{top:var(--_focus-outline-width);inset-inline-start:var(--_focus-outline-width)}.resizable .container:dir(rtl){clip-path:inset(var(--_focus-outline-width) var(--_focus-outline-width) 0 0)}}@layer hcm{@media(forced-colors: active){.disabled .outline{border-color:GrayText;color:GrayText}.disabled :is(.outline-start,.outline-end,.outline-panel-inactive){opacity:1}}}\n`;\n//# sourceMappingURL=outlined-styles.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./field/internal/shared-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;resize:both}.field{display:flex;flex:1;flex-direction:column;writing-mode:horizontal-tb;max-width:100%}.container-overflow{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start);display:flex;height:100%;position:relative}.container{align-items:center;border-radius:inherit;display:flex;flex:1;max-height:100%;min-height:100%;min-width:min-content;position:relative}.field,.container-overflow{resize:inherit}.resizable:not(.disabled) .container{resize:inherit;overflow:hidden}.disabled{pointer-events:none}slot[name=container]{border-radius:inherit}slot[name=container]::slotted(*){border-radius:inherit;inset:0;pointer-events:none;position:absolute}@layer styles{.start,.middle,.end{display:flex;box-sizing:border-box;height:100%;position:relative}.start{color:var(--_leading-content-color)}.end{color:var(--_trailing-content-color)}.start,.end{align-items:center;justify-content:center}.with-start .start{margin-inline:var(--_with-leading-content-leading-space) var(--_content-space)}.with-end .end{margin-inline:var(--_content-space) var(--_with-trailing-content-trailing-space)}.middle{align-items:stretch;align-self:baseline;flex:1}.content{color:var(--_content-color);display:flex;flex:1;opacity:0;transition:opacity 83ms cubic-bezier(0.2, 0, 0, 1)}.no-label .content,.focused .content,.populated .content{opacity:1;transition-delay:67ms}:is(.disabled,.disable-transitions) .content{transition:none}.content ::slotted(*){all:unset;color:currentColor;font-family:var(--_content-font);font-size:var(--_content-size);line-height:var(--_content-line-height);font-weight:var(--_content-weight);width:100%;overflow-wrap:revert;white-space:revert}.content ::slotted(:not(textarea)){padding-top:var(--_top-space);padding-bottom:var(--_bottom-space)}.content ::slotted(textarea){margin-top:var(--_top-space);margin-bottom:var(--_bottom-space)}:hover .content{color:var(--_hover-content-color)}:hover .start{color:var(--_hover-leading-content-color)}:hover .end{color:var(--_hover-trailing-content-color)}.focused .content{color:var(--_focus-content-color)}.focused .start{color:var(--_focus-leading-content-color)}.focused .end{color:var(--_focus-trailing-content-color)}.disabled .content{color:var(--_disabled-content-color)}.disabled.no-label .content,.disabled.focused .content,.disabled.populated .content{opacity:var(--_disabled-content-opacity)}.disabled .start{color:var(--_disabled-leading-content-color);opacity:var(--_disabled-leading-content-opacity)}.disabled .end{color:var(--_disabled-trailing-content-color);opacity:var(--_disabled-trailing-content-opacity)}.error .content{color:var(--_error-content-color)}.error .start{color:var(--_error-leading-content-color)}.error .end{color:var(--_error-trailing-content-color)}.error:hover .content{color:var(--_error-hover-content-color)}.error:hover .start{color:var(--_error-hover-leading-content-color)}.error:hover .end{color:var(--_error-hover-trailing-content-color)}.error.focused .content{color:var(--_error-focus-content-color)}.error.focused .start{color:var(--_error-focus-leading-content-color)}.error.focused .end{color:var(--_error-focus-trailing-content-color)}}@layer hcm{@media(forced-colors: active){.disabled :is(.start,.content,.end){color:GrayText;opacity:1}}}@layer styles{.label{box-sizing:border-box;color:var(--_label-text-color);overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap;z-index:1;font-family:var(--_label-text-font);font-size:var(--_label-text-size);line-height:var(--_label-text-line-height);font-weight:var(--_label-text-weight);width:min-content}.label-wrapper{inset:0;pointer-events:none;position:absolute}.label.resting{position:absolute;top:var(--_top-space)}.label.floating{font-size:var(--_label-text-populated-size);line-height:var(--_label-text-populated-line-height);transform-origin:top left}.label.hidden{opacity:0}.no-label .label{display:none}.label-wrapper{inset:0;position:absolute;text-align:initial}:hover .label{color:var(--_hover-label-text-color)}.focused .label{color:var(--_focus-label-text-color)}.disabled .label{color:var(--_disabled-label-text-color)}.disabled .label:not(.hidden){opacity:var(--_disabled-label-text-opacity)}.error .label{color:var(--_error-label-text-color)}.error:hover .label{color:var(--_error-hover-label-text-color)}.error.focused .label{color:var(--_error-focus-label-text-color)}}@layer hcm{@media(forced-colors: active){.disabled .label:not(.hidden){color:GrayText;opacity:1}}}@layer styles{.supporting-text{color:var(--_supporting-text-color);display:flex;font-family:var(--_supporting-text-font);font-size:var(--_supporting-text-size);line-height:var(--_supporting-text-line-height);font-weight:var(--_supporting-text-weight);gap:16px;justify-content:space-between;padding-inline-start:var(--_supporting-text-leading-space);padding-inline-end:var(--_supporting-text-trailing-space);padding-top:var(--_supporting-text-top-space)}.supporting-text :nth-child(2){flex-shrink:0}:hover .supporting-text{color:var(--_hover-supporting-text-color)}.focus .supporting-text{color:var(--_focus-supporting-text-color)}.disabled .supporting-text{color:var(--_disabled-supporting-text-color);opacity:var(--_disabled-supporting-text-opacity)}.error .supporting-text{color:var(--_error-supporting-text-color)}.error:hover .supporting-text{color:var(--_error-hover-supporting-text-color)}.error.focus .supporting-text{color:var(--_error-focus-supporting-text-color)}}@layer hcm{@media(forced-colors: active){.disabled .supporting-text{color:GrayText;opacity:1}}}\n`;\n//# sourceMappingURL=shared-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { OutlinedField } from './internal/outlined-field.js';\nimport { styles as outlinedStyles } from './internal/outlined-styles.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * TODO(b/228525797): add docs\n * @final\n * @suppress {visibility}\n */\nlet MdOutlinedField = class MdOutlinedField extends OutlinedField {\n};\nMdOutlinedField.styles = [sharedStyles, outlinedStyles];\nMdOutlinedField = __decorate([\n customElement('mdif1-outlined-field')\n], MdOutlinedField);\nexport { MdOutlinedField };\n//# sourceMappingURL=outlined-field.js.map","import{html as t,svg as r,mathml as e}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst a=Symbol.for(\"\"),o=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o(i));)c+=s+r[++$],f=!0;$!==a&&u.push(i),n.push(c),$++}if($===a&&n.push(r[a]),f){const t=n.join(\"$$lit$$\");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u}return t(r,...e)},u=n(t),c=n(r),$=n(e);export{u as html,i as literal,$ as mathml,c as svg,s as unsafeStatic,n as withStatic};\n//# sourceMappingURL=static.js.map\n","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./textfield/internal/outlined-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_caret-color: var(--mdif1-outlined-text-field-caret-color, var(--mdif1-sys-color-primary, #6750a4));--_disabled-input-text-color: var(--mdif1-outlined-text-field-disabled-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-input-text-opacity: var(--mdif1-outlined-text-field-disabled-input-text-opacity, 0.38);--_disabled-label-text-color: var(--mdif1-outlined-text-field-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity: var(--mdif1-outlined-text-field-disabled-label-text-opacity, 0.38);--_disabled-leading-icon-color: var(--mdif1-outlined-text-field-disabled-leading-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-leading-icon-opacity: var(--mdif1-outlined-text-field-disabled-leading-icon-opacity, 0.38);--_disabled-outline-color: var(--mdif1-outlined-text-field-disabled-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-outline-opacity: var(--mdif1-outlined-text-field-disabled-outline-opacity, 0.12);--_disabled-outline-width: var(--mdif1-outlined-text-field-disabled-outline-width, 1px);--_disabled-supporting-text-color: var(--mdif1-outlined-text-field-disabled-supporting-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-supporting-text-opacity: var(--mdif1-outlined-text-field-disabled-supporting-text-opacity, 0.38);--_disabled-trailing-icon-color: var(--mdif1-outlined-text-field-disabled-trailing-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_disabled-trailing-icon-opacity: var(--mdif1-outlined-text-field-disabled-trailing-icon-opacity, 0.38);--_error-focus-caret-color: var(--mdif1-outlined-text-field-error-focus-caret-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-input-text-color: var(--mdif1-outlined-text-field-error-focus-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-focus-label-text-color: var(--mdif1-outlined-text-field-error-focus-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-leading-icon-color: var(--mdif1-outlined-text-field-error-focus-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-focus-outline-color: var(--mdif1-outlined-text-field-error-focus-outline-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-supporting-text-color: var(--mdif1-outlined-text-field-error-focus-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-focus-trailing-icon-color: var(--mdif1-outlined-text-field-error-focus-trailing-icon-color, var(--mdif1-sys-color-error, #b3261e));--_error-hover-input-text-color: var(--mdif1-outlined-text-field-error-hover-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-hover-label-text-color: var(--mdif1-outlined-text-field-error-hover-label-text-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-hover-leading-icon-color: var(--mdif1-outlined-text-field-error-hover-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-hover-outline-color: var(--mdif1-outlined-text-field-error-hover-outline-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-hover-supporting-text-color: var(--mdif1-outlined-text-field-error-hover-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-hover-trailing-icon-color: var(--mdif1-outlined-text-field-error-hover-trailing-icon-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_error-input-text-color: var(--mdif1-outlined-text-field-error-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_error-label-text-color: var(--mdif1-outlined-text-field-error-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-leading-icon-color: var(--mdif1-outlined-text-field-error-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_error-outline-color: var(--mdif1-outlined-text-field-error-outline-color, var(--mdif1-sys-color-error, #b3261e));--_error-supporting-text-color: var(--mdif1-outlined-text-field-error-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_error-trailing-icon-color: var(--mdif1-outlined-text-field-error-trailing-icon-color, var(--mdif1-sys-color-error, #b3261e));--_focus-input-text-color: var(--mdif1-outlined-text-field-focus-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_focus-label-text-color: var(--mdif1-outlined-text-field-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_focus-leading-icon-color: var(--mdif1-outlined-text-field-focus-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_focus-outline-color: var(--mdif1-outlined-text-field-focus-outline-color, var(--mdif1-sys-color-primary, #6750a4));--_focus-outline-width: var(--mdif1-outlined-text-field-focus-outline-width, 3px);--_focus-supporting-text-color: var(--mdif1-outlined-text-field-focus-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_focus-trailing-icon-color: var(--mdif1-outlined-text-field-focus-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-input-text-color: var(--mdif1-outlined-text-field-hover-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--mdif1-outlined-text-field-hover-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-leading-icon-color: var(--mdif1-outlined-text-field-hover-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-outline-color: var(--mdif1-outlined-text-field-hover-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_hover-outline-width: var(--mdif1-outlined-text-field-hover-outline-width, 1px);--_hover-supporting-text-color: var(--mdif1-outlined-text-field-hover-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color: var(--mdif1-outlined-text-field-hover-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_input-text-color: var(--mdif1-outlined-text-field-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_input-text-font: var(--mdif1-outlined-text-field-input-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_input-text-line-height: var(--mdif1-outlined-text-field-input-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_input-text-placeholder-color: var(--mdif1-outlined-text-field-input-text-placeholder-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_input-text-prefix-color: var(--mdif1-outlined-text-field-input-text-prefix-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_input-text-size: var(--mdif1-outlined-text-field-input-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_input-text-suffix-color: var(--mdif1-outlined-text-field-input-text-suffix-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_input-text-weight: var(--mdif1-outlined-text-field-input-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_label-text-color: var(--mdif1-outlined-text-field-label-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_label-text-font: var(--mdif1-outlined-text-field-label-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_label-text-line-height: var(--mdif1-outlined-text-field-label-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_label-text-populated-line-height: var(--mdif1-outlined-text-field-label-text-populated-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_label-text-populated-size: var(--mdif1-outlined-text-field-label-text-populated-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_label-text-size: var(--mdif1-outlined-text-field-label-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_label-text-weight: var(--mdif1-outlined-text-field-label-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_leading-icon-color: var(--mdif1-outlined-text-field-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_leading-icon-size: var(--mdif1-outlined-text-field-leading-icon-size, 24px);--_outline-color: var(--mdif1-outlined-text-field-outline-color, var(--mdif1-sys-color-outline, #79747e));--_outline-width: var(--mdif1-outlined-text-field-outline-width, 1px);--_supporting-text-color: var(--mdif1-outlined-text-field-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_supporting-text-font: var(--mdif1-outlined-text-field-supporting-text-font, var(--mdif1-sys-typescale-body-small-font, var(--mdif1-ref-typeface-plain, Roboto)));--_supporting-text-line-height: var(--mdif1-outlined-text-field-supporting-text-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_supporting-text-size: var(--mdif1-outlined-text-field-supporting-text-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_supporting-text-weight: var(--mdif1-outlined-text-field-supporting-text-weight, var(--mdif1-sys-typescale-body-small-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_trailing-icon-color: var(--mdif1-outlined-text-field-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_trailing-icon-size: var(--mdif1-outlined-text-field-trailing-icon-size, 24px);--_container-shape-start-start: var(--mdif1-outlined-text-field-container-shape-start-start, var(--mdif1-outlined-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-start-end: var(--mdif1-outlined-text-field-container-shape-start-end, var(--mdif1-outlined-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-end-end: var(--mdif1-outlined-text-field-container-shape-end-end, var(--mdif1-outlined-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_container-shape-end-start: var(--mdif1-outlined-text-field-container-shape-end-start, var(--mdif1-outlined-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_icon-input-space: var(--mdif1-outlined-text-field-icon-input-space, 16px);--_leading-space: var(--mdif1-outlined-text-field-leading-space, 16px);--_trailing-space: var(--mdif1-outlined-text-field-trailing-space, 16px);--_top-space: var(--mdif1-outlined-text-field-top-space, 16px);--_bottom-space: var(--mdif1-outlined-text-field-bottom-space, 16px);--_input-text-prefix-trailing-space: var(--mdif1-outlined-text-field-input-text-prefix-trailing-space, 2px);--_input-text-suffix-leading-space: var(--mdif1-outlined-text-field-input-text-suffix-leading-space, 2px);--_focus-caret-color: var(--mdif1-outlined-text-field-focus-caret-color, var(--mdif1-sys-color-primary, #6750a4));--_with-leading-icon-leading-space: var(--mdif1-outlined-text-field-with-leading-icon-leading-space, 12px);--_with-trailing-icon-trailing-space: var(--mdif1-outlined-text-field-with-trailing-icon-trailing-space, 12px);--mdif1-outlined-field-bottom-space: var(--_bottom-space);--mdif1-outlined-field-container-shape-end-end: var(--_container-shape-end-end);--mdif1-outlined-field-container-shape-end-start: var(--_container-shape-end-start);--mdif1-outlined-field-container-shape-start-end: var(--_container-shape-start-end);--mdif1-outlined-field-container-shape-start-start: var(--_container-shape-start-start);--mdif1-outlined-field-content-color: var(--_input-text-color);--mdif1-outlined-field-content-font: var(--_input-text-font);--mdif1-outlined-field-content-line-height: var(--_input-text-line-height);--mdif1-outlined-field-content-size: var(--_input-text-size);--mdif1-outlined-field-content-space: var(--_icon-input-space);--mdif1-outlined-field-content-weight: var(--_input-text-weight);--mdif1-outlined-field-disabled-content-color: var(--_disabled-input-text-color);--mdif1-outlined-field-disabled-content-opacity: var(--_disabled-input-text-opacity);--mdif1-outlined-field-disabled-label-text-color: var(--_disabled-label-text-color);--mdif1-outlined-field-disabled-label-text-opacity: var(--_disabled-label-text-opacity);--mdif1-outlined-field-disabled-leading-content-color: var(--_disabled-leading-icon-color);--mdif1-outlined-field-disabled-leading-content-opacity: var(--_disabled-leading-icon-opacity);--mdif1-outlined-field-disabled-outline-color: var(--_disabled-outline-color);--mdif1-outlined-field-disabled-outline-opacity: var(--_disabled-outline-opacity);--mdif1-outlined-field-disabled-outline-width: var(--_disabled-outline-width);--mdif1-outlined-field-disabled-supporting-text-color: var(--_disabled-supporting-text-color);--mdif1-outlined-field-disabled-supporting-text-opacity: var(--_disabled-supporting-text-opacity);--mdif1-outlined-field-disabled-trailing-content-color: var(--_disabled-trailing-icon-color);--mdif1-outlined-field-disabled-trailing-content-opacity: var(--_disabled-trailing-icon-opacity);--mdif1-outlined-field-error-content-color: var(--_error-input-text-color);--mdif1-outlined-field-error-focus-content-color: var(--_error-focus-input-text-color);--mdif1-outlined-field-error-focus-label-text-color: var(--_error-focus-label-text-color);--mdif1-outlined-field-error-focus-leading-content-color: var(--_error-focus-leading-icon-color);--mdif1-outlined-field-error-focus-outline-color: var(--_error-focus-outline-color);--mdif1-outlined-field-error-focus-supporting-text-color: var(--_error-focus-supporting-text-color);--mdif1-outlined-field-error-focus-trailing-content-color: var(--_error-focus-trailing-icon-color);--mdif1-outlined-field-error-hover-content-color: var(--_error-hover-input-text-color);--mdif1-outlined-field-error-hover-label-text-color: var(--_error-hover-label-text-color);--mdif1-outlined-field-error-hover-leading-content-color: var(--_error-hover-leading-icon-color);--mdif1-outlined-field-error-hover-outline-color: var(--_error-hover-outline-color);--mdif1-outlined-field-error-hover-supporting-text-color: var(--_error-hover-supporting-text-color);--mdif1-outlined-field-error-hover-trailing-content-color: var(--_error-hover-trailing-icon-color);--mdif1-outlined-field-error-label-text-color: var(--_error-label-text-color);--mdif1-outlined-field-error-leading-content-color: var(--_error-leading-icon-color);--mdif1-outlined-field-error-outline-color: var(--_error-outline-color);--mdif1-outlined-field-error-supporting-text-color: var(--_error-supporting-text-color);--mdif1-outlined-field-error-trailing-content-color: var(--_error-trailing-icon-color);--mdif1-outlined-field-focus-content-color: var(--_focus-input-text-color);--mdif1-outlined-field-focus-label-text-color: var(--_focus-label-text-color);--mdif1-outlined-field-focus-leading-content-color: var(--_focus-leading-icon-color);--mdif1-outlined-field-focus-outline-color: var(--_focus-outline-color);--mdif1-outlined-field-focus-outline-width: var(--_focus-outline-width);--mdif1-outlined-field-focus-supporting-text-color: var(--_focus-supporting-text-color);--mdif1-outlined-field-focus-trailing-content-color: var(--_focus-trailing-icon-color);--mdif1-outlined-field-hover-content-color: var(--_hover-input-text-color);--mdif1-outlined-field-hover-label-text-color: var(--_hover-label-text-color);--mdif1-outlined-field-hover-leading-content-color: var(--_hover-leading-icon-color);--mdif1-outlined-field-hover-outline-color: var(--_hover-outline-color);--mdif1-outlined-field-hover-outline-width: var(--_hover-outline-width);--mdif1-outlined-field-hover-supporting-text-color: var(--_hover-supporting-text-color);--mdif1-outlined-field-hover-trailing-content-color: var(--_hover-trailing-icon-color);--mdif1-outlined-field-label-text-color: var(--_label-text-color);--mdif1-outlined-field-label-text-font: var(--_label-text-font);--mdif1-outlined-field-label-text-line-height: var(--_label-text-line-height);--mdif1-outlined-field-label-text-populated-line-height: var(--_label-text-populated-line-height);--mdif1-outlined-field-label-text-populated-size: var(--_label-text-populated-size);--mdif1-outlined-field-label-text-size: var(--_label-text-size);--mdif1-outlined-field-label-text-weight: var(--_label-text-weight);--mdif1-outlined-field-leading-content-color: var(--_leading-icon-color);--mdif1-outlined-field-leading-space: var(--_leading-space);--mdif1-outlined-field-outline-color: var(--_outline-color);--mdif1-outlined-field-outline-width: var(--_outline-width);--mdif1-outlined-field-supporting-text-color: var(--_supporting-text-color);--mdif1-outlined-field-supporting-text-font: var(--_supporting-text-font);--mdif1-outlined-field-supporting-text-line-height: var(--_supporting-text-line-height);--mdif1-outlined-field-supporting-text-size: var(--_supporting-text-size);--mdif1-outlined-field-supporting-text-weight: var(--_supporting-text-weight);--mdif1-outlined-field-top-space: var(--_top-space);--mdif1-outlined-field-trailing-content-color: var(--_trailing-icon-color);--mdif1-outlined-field-trailing-space: var(--_trailing-space);--mdif1-outlined-field-with-leading-content-leading-space: var(--_with-leading-icon-leading-space);--mdif1-outlined-field-with-trailing-content-trailing-space: var(--_with-trailing-icon-trailing-space)}\n`;\n//# sourceMappingURL=outlined-styles.js.map","import{noChange as r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce(((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`}),\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nexport const stringConverter = {\n fromAttribute(value) {\n return value ?? '';\n },\n toAttribute(value) {\n return value || null;\n },\n};\n//# sourceMappingURL=string-converter.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property used to create a constraint validation `Validator`.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const createValidator = Symbol('createValidator');\n/**\n * A symbol property used to return an anchor for constraint validation popups.\n * Required for all `mixinConstraintValidation()` elements.\n */\nexport const getValidityAnchor = Symbol('getValidityAnchor');\n// Private symbol members, used to avoid name clashing.\nconst privateValidator = Symbol('privateValidator');\nconst privateSyncValidity = Symbol('privateSyncValidity');\nconst privateCustomValidationMessage = Symbol('privateCustomValidationMessage');\n/**\n * Mixes in constraint validation APIs for an element.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation\n * for more details.\n *\n * Implementations must provide a validator to cache and compute its validity,\n * along with a shadow root element to anchor validation popups to.\n *\n * @example\n * ```ts\n * const baseClass = mixinConstraintValidation(\n * mixinFormAssociated(mixinElementInternals(LitElement))\n * );\n *\n * class MyCheckbox extends baseClass {\n * \\@property({type: Boolean}) checked = false;\n * \\@property({type: Boolean}) required = false;\n *\n * [createValidator]() {\n * return new CheckboxValidator(() => this);\n * }\n *\n * [getValidityAnchor]() {\n * return this.renderRoot.querySelector('.root');\n * }\n * }\n * ```\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `ConstraintValidation` mixed in.\n */\nexport function mixinConstraintValidation(base) {\n var _a;\n class ConstraintValidationElement extends base {\n constructor() {\n super(...arguments);\n /**\n * Needed for Safari, see https://bugs.webkit.org/show_bug.cgi?id=261432\n * Replace with this[internals].validity.customError when resolved.\n */\n this[_a] = '';\n }\n get validity() {\n this[privateSyncValidity]();\n return this[internals].validity;\n }\n get validationMessage() {\n this[privateSyncValidity]();\n return this[internals].validationMessage;\n }\n get willValidate() {\n this[privateSyncValidity]();\n return this[internals].willValidate;\n }\n checkValidity() {\n this[privateSyncValidity]();\n return this[internals].checkValidity();\n }\n reportValidity() {\n this[privateSyncValidity]();\n return this[internals].reportValidity();\n }\n setCustomValidity(error) {\n this[privateCustomValidationMessage] = error;\n this[privateSyncValidity]();\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n this[privateSyncValidity]();\n }\n firstUpdated(changed) {\n super.firstUpdated(changed);\n // Sync the validity again when the element first renders, since the\n // validity anchor is now available.\n //\n // Elements that `delegatesFocus: true` to an `<input>` will throw an\n // error in Chrome and Safari when a form tries to submit or call\n // `form.reportValidity()`:\n // \"An invalid form control with name='' is not focusable\"\n //\n // The validity anchor MUST be provided in `internals.setValidity()` and\n // MUST be the `<input>` element rendered.\n //\n // See https://lit.dev/playground/#gist=6c26e418e0010f7a5aac15005cde8bde\n // for a reproduction.\n this[privateSyncValidity]();\n }\n [(_a = privateCustomValidationMessage, privateSyncValidity)]() {\n if (isServer) {\n return;\n }\n if (!this[privateValidator]) {\n this[privateValidator] = this[createValidator]();\n }\n const { validity, validationMessage: nonCustomValidationMessage } = this[privateValidator].getValidity();\n const customError = !!this[privateCustomValidationMessage];\n const validationMessage = this[privateCustomValidationMessage] || nonCustomValidationMessage;\n this[internals].setValidity({ ...validity, customError }, validationMessage, this[getValidityAnchor]() ?? undefined);\n }\n [createValidator]() {\n throw new Error('Implement [createValidator]');\n }\n [getValidityAnchor]() {\n throw new Error('Implement [getValidityAnchor]');\n }\n }\n return ConstraintValidationElement;\n}\n//# sourceMappingURL=constraint-validation.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { property } from 'lit/decorators.js';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property to retrieve the form value for an element.\n */\nexport const getFormValue = Symbol('getFormValue');\n/**\n * A symbol property to retrieve the form state for an element.\n */\nexport const getFormState = Symbol('getFormState');\n/**\n * Mixes in form-associated behavior for a class. This allows an element to add\n * values to `<form>` elements.\n *\n * Implementing classes should provide a `[formValue]` to return the current\n * value of the element, as well as reset and restore callbacks.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyControl extends base {\n * \\@property()\n * value = '';\n *\n * override [getFormValue]() {\n * return this.value;\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.getAttribute('value');\n * this.value = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.value = state;\n * }\n * }\n * ```\n *\n * Elements may optionally provide a `[formState]` if their values do not\n * represent the state of the component.\n *\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n *\n * class MyCheckbox extends base {\n * \\@property()\n * value = 'on';\n *\n * \\@property({type: Boolean})\n * checked = false;\n *\n * override [getFormValue]() {\n * return this.checked ? this.value : null;\n * }\n *\n * override [getFormState]() {\n * return String(this.checked);\n * }\n *\n * override formResetCallback() {\n * const defaultValue = this.hasAttribute('checked');\n * this.checked = defaultValue;\n * }\n *\n * override formStateRestoreCallback(state: string) {\n * this.checked = Boolean(state);\n * }\n * }\n * ```\n *\n * IMPORTANT: Requires declares for lit-analyzer\n * @example\n * ```ts\n * const base = mixinFormAssociated(mixinElementInternals(LitElement));\n * class MyControl extends base {\n * // Writable mixin properties for lit-html binding, needed for lit-analyzer\n * declare disabled: boolean;\n * declare name: string;\n * }\n * ```\n *\n * @param base The class to mix functionality into. The base class must use\n * `mixinElementInternals()`.\n * @return The provided class with `FormAssociated` mixed in.\n */\nexport function mixinFormAssociated(base) {\n class FormAssociatedElement extends base {\n get form() {\n return this[internals].form;\n }\n get labels() {\n return this[internals].labels;\n }\n // Use @property for the `name` and `disabled` properties to add them to the\n // `observedAttributes` array and trigger `attributeChangedCallback()`.\n //\n // We don't use Lit's default getter/setter (`noAccessor: true`) because\n // the attributes need to be updated synchronously to work with synchronous\n // form APIs, and Lit updates attributes async by default.\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name) {\n // Note: setting name to null or empty does not remove the attribute.\n this.setAttribute('name', name);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n get disabled() {\n return this.hasAttribute('disabled');\n }\n set disabled(disabled) {\n this.toggleAttribute('disabled', disabled);\n // We don't need to call `requestUpdate()` since it's called synchronously\n // in `attributeChangedCallback()`.\n }\n attributeChangedCallback(name, old, value) {\n // Manually `requestUpdate()` for `name` and `disabled` when their\n // attribute or property changes.\n // The properties update their attributes, so this callback is invoked\n // immediately when the properties are set. We call `requestUpdate()` here\n // instead of letting Lit set the properties from the attribute change.\n // That would cause the properties to re-set the attribute and invoke this\n // callback again in a loop. This leads to stale state when Lit tries to\n // determine if a property changed or not.\n if (name === 'name' || name === 'disabled') {\n // Disabled's value is only false if the attribute is missing and null.\n const oldValue = name === 'disabled' ? old !== null : old;\n // Trigger a lit update when the attribute changes.\n this.requestUpdate(name, oldValue);\n return;\n }\n super.attributeChangedCallback(name, old, value);\n }\n requestUpdate(name, oldValue, options) {\n super.requestUpdate(name, oldValue, options);\n // If any properties change, update the form value, which may have changed\n // as well.\n // Update the form value synchronously in `requestUpdate()` rather than\n // `update()` or `updated()`, which are async. This is necessary to ensure\n // that form data is updated in time for synchronous event listeners.\n this[internals].setFormValue(this[getFormValue](), this[getFormState]());\n }\n [getFormValue]() {\n // Closure does not allow abstract symbol members, so a default\n // implementation is needed.\n throw new Error('Implement [getFormValue]');\n }\n [getFormState]() {\n return this[getFormValue]();\n }\n formDisabledCallback(disabled) {\n this.disabled = disabled;\n }\n }\n /** @nocollapse */\n FormAssociatedElement.formAssociated = true;\n __decorate([\n property({ noAccessor: true })\n ], FormAssociatedElement.prototype, \"name\", null);\n __decorate([\n property({ type: Boolean, noAccessor: true })\n ], FormAssociatedElement.prototype, \"disabled\", null);\n return FormAssociatedElement;\n}\n//# sourceMappingURL=form-associated.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { internals } from './element-internals.js';\n/**\n * A symbol property used for a callback when validity has been reported.\n */\nexport const onReportValidity = Symbol('onReportValidity');\n// Private symbol members, used to avoid name clashing.\nconst privateCleanupFormListeners = Symbol('privateCleanupFormListeners');\nconst privateDoNotReportInvalid = Symbol('privateDoNotReportInvalid');\nconst privateIsSelfReportingValidity = Symbol('privateIsSelfReportingValidity');\nconst privateCallOnReportValidity = Symbol('privateCallOnReportValidity');\n/**\n * Mixes in a callback for constraint validation when validity should be\n * styled and reported to the user.\n *\n * This is commonly used in text-field-like controls that display error styles\n * and error messages.\n *\n * @example\n * ```ts\n * const baseClass = mixinOnReportValidity(\n * mixinConstraintValidation(\n * mixinFormAssociated(mixinElementInternals(LitElement)),\n * ),\n * );\n *\n * class MyField extends baseClass {\n * \\@property({type: Boolean}) error = false;\n * \\@property() errorMessage = '';\n *\n * [onReportValidity](invalidEvent: Event | null) {\n * this.error = !!invalidEvent;\n * this.errorMessage = this.validationMessage;\n *\n * // Optionally prevent platform popup from displaying\n * invalidEvent?.preventDefault();\n * }\n * }\n * ```\n *\n * @param base The class to mix functionality into.\n * @return The provided class with `OnReportValidity` mixed in.\n */\nexport function mixinOnReportValidity(base) {\n var _a, _b, _c;\n class OnReportValidityElement extends base {\n // Mixins must have a constructor with `...args: any[]`\n // tslint:disable-next-line:no-any\n constructor(...args) {\n super(...args);\n /**\n * Used to clean up event listeners when a new form is associated.\n */\n this[_a] = new AbortController();\n /**\n * Used to determine if an invalid event should report validity. Invalid\n * events from `checkValidity()` do not trigger reporting.\n */\n this[_b] = false;\n /**\n * Used to determine if the control is reporting validity from itself, or\n * if a `<form>` is causing the validity report. Forms have different\n * control focusing behavior.\n */\n this[_c] = false;\n if (isServer) {\n return;\n }\n this.addEventListener('invalid', (invalidEvent) => {\n // Listen for invalid events dispatched by a `<form>` when it tries to\n // submit and the element is invalid. We ignore events dispatched when\n // calling `checkValidity()` as well as untrusted events, since the\n // `reportValidity()` and `<form>`-dispatched events are always\n // trusted.\n if (this[privateDoNotReportInvalid] || !invalidEvent.isTrusted) {\n return;\n }\n this.addEventListener('invalid', () => {\n // A normal bubbling phase event listener. By adding it here, we\n // ensure it's the last event listener that is called during the\n // bubbling phase.\n this[privateCallOnReportValidity](invalidEvent);\n }, { once: true });\n }, {\n // Listen during the capture phase, which will happen before the\n // bubbling phase. That way, we can add a final event listener that\n // will run after other event listeners, and we can check if it was\n // default prevented. This works because invalid does not bubble.\n capture: true,\n });\n }\n checkValidity() {\n this[privateDoNotReportInvalid] = true;\n const valid = super.checkValidity();\n this[privateDoNotReportInvalid] = false;\n return valid;\n }\n reportValidity() {\n this[privateIsSelfReportingValidity] = true;\n const valid = super.reportValidity();\n // Constructor's invalid listener will handle reporting invalid events.\n if (valid) {\n this[privateCallOnReportValidity](null);\n }\n this[privateIsSelfReportingValidity] = false;\n return valid;\n }\n [(_a = privateCleanupFormListeners, _b = privateDoNotReportInvalid, _c = privateIsSelfReportingValidity, privateCallOnReportValidity)](invalidEvent) {\n // Since invalid events do not bubble to parent listeners, and because\n // our invalid listeners are added lazily after other listeners, we can\n // reliably read `defaultPrevented` synchronously without worrying\n // about waiting for another listener that could cancel it.\n const wasCanceled = invalidEvent?.defaultPrevented;\n if (wasCanceled) {\n return;\n }\n this[onReportValidity](invalidEvent);\n // If an implementation calls invalidEvent.preventDefault() to stop the\n // platform popup from displaying, focusing is also prevented, so we need\n // to manually focus.\n const implementationCanceledFocus = !wasCanceled && invalidEvent?.defaultPrevented;\n if (!implementationCanceledFocus) {\n return;\n }\n // The control should be focused when:\n // - `control.reportValidity()` is called (self-reporting).\n // - a form is reporting validity for its controls and this is the first\n // invalid control.\n if (this[privateIsSelfReportingValidity] ||\n isFirstInvalidControlInForm(this[internals].form, this)) {\n this.focus();\n }\n }\n [onReportValidity](invalidEvent) {\n throw new Error('Implement [onReportValidity]');\n }\n formAssociatedCallback(form) {\n // can't use super.formAssociatedCallback?.() due to closure\n if (super.formAssociatedCallback) {\n super.formAssociatedCallback(form);\n }\n // Clean up previous form listeners.\n this[privateCleanupFormListeners].abort();\n if (!form) {\n return;\n }\n this[privateCleanupFormListeners] = new AbortController();\n // Add a listener that fires when the form runs constraint validation and\n // the control is valid, so that it may remove its error styles.\n //\n // This happens on `form.reportValidity()` and `form.requestSubmit()`\n // (both when the submit fails and passes).\n addFormReportValidListener(this, form, () => {\n this[privateCallOnReportValidity](null);\n }, this[privateCleanupFormListeners].signal);\n }\n }\n return OnReportValidityElement;\n}\n/**\n * Add a listener that fires when a form runs constraint validation on a control\n * and it is valid. This is needed to clear previously invalid styles.\n *\n * @param control The control of the form to listen for valid events.\n * @param form The control's form that can run constraint validation.\n * @param onControlValid A listener that is called when the form runs constraint\n * validation and the control is valid.\n * @param cleanup A cleanup signal to remove the listener.\n */\nfunction addFormReportValidListener(control, form, onControlValid, cleanup) {\n const validateHooks = getFormValidateHooks(form);\n // When a form validates its controls, check if an invalid event is dispatched\n // on the control. If it is not, then inform the control to report its valid\n // state.\n let controlFiredInvalid = false;\n let cleanupInvalidListener;\n let isNextSubmitFromHook = false;\n validateHooks.addEventListener('before', () => {\n isNextSubmitFromHook = true;\n cleanupInvalidListener = new AbortController();\n controlFiredInvalid = false;\n control.addEventListener('invalid', () => {\n controlFiredInvalid = true;\n }, {\n signal: cleanupInvalidListener.signal,\n });\n }, { signal: cleanup });\n validateHooks.addEventListener('after', () => {\n isNextSubmitFromHook = false;\n cleanupInvalidListener?.abort();\n if (controlFiredInvalid) {\n return;\n }\n onControlValid();\n }, { signal: cleanup });\n // The above hooks handle imperatively submitting the form, but not\n // declaratively submitting the form. This happens when:\n // 1. A non-custom element `<button type=\"submit\">` is clicked.\n // 2. Enter is pressed on a non-custom element text editable `<input>`.\n form.addEventListener('submit', () => {\n // This submit was from `form.requestSubmit()`, which already calls the\n // listener.\n if (isNextSubmitFromHook) {\n return;\n }\n onControlValid();\n }, {\n signal: cleanup,\n });\n // Note: it is a known limitation that we cannot detect if a form tries to\n // submit declaratively, but fails to do so because an unrelated sibling\n // control failed its constraint validation.\n //\n // Since we cannot detect when that happens, a previously invalid control may\n // not clear its error styling when it becomes valid again.\n //\n // To work around this, call `form.reportValidity()` when submitting a form\n // declaratively. This can be down on the `<button type=\"submit\">`'s click or\n // the text editable `<input>`'s 'Enter' keydown.\n}\nconst FORM_VALIDATE_HOOKS = new WeakMap();\n/**\n * Get a hooks `EventTarget` that dispatches 'before' and 'after' events that\n * fire before a form runs constraint validation and immediately after it\n * finishes running constraint validation on its controls.\n *\n * This happens during `form.reportValidity()` and `form.requestSubmit()`.\n *\n * @param form The form to get or set up hooks for.\n * @return A hooks `EventTarget` to add listeners to.\n */\nfunction getFormValidateHooks(form) {\n if (!FORM_VALIDATE_HOOKS.has(form)) {\n // Patch form methods to add event listener hooks. These are needed to react\n // to form behaviors that do not dispatch events, such as a form asking its\n // controls to report their validity.\n //\n // We should only patch the methods once, since multiple controls and other\n // forces may want to patch this method. We cannot reliably clean it up if\n // there are multiple patched and re-patched methods referring holding\n // references to each other.\n //\n // Instead, we never clean up the patch but add and clean up event listeners\n // added to the hooks after the patch.\n const hooks = new EventTarget();\n FORM_VALIDATE_HOOKS.set(form, hooks);\n // Add hooks to support notifying before and after a form has run constraint\n // validation on its controls.\n // Note: `form.submit()` does not run constraint validation per spec.\n for (const methodName of ['reportValidity', 'requestSubmit']) {\n const superMethod = form[methodName];\n form[methodName] = function () {\n hooks.dispatchEvent(new Event('before'));\n const result = Reflect.apply(superMethod, this, arguments);\n hooks.dispatchEvent(new Event('after'));\n return result;\n };\n }\n }\n return FORM_VALIDATE_HOOKS.get(form);\n}\n/**\n * Checks if a control is the first invalid control in a form.\n *\n * @param form The control's form. When `null`, the control doesn't have a form\n * and the method returns true.\n * @param control The control to check.\n * @return True if there is no form or if the control is the form's first\n * invalid control.\n */\nfunction isFirstInvalidControlInForm(form, control) {\n if (!form) {\n return true;\n }\n let firstInvalidControl;\n for (const element of form.elements) {\n if (element.matches(':invalid')) {\n firstInvalidControl = element;\n break;\n }\n }\n return firstInvalidControl === control;\n}\n//# sourceMappingURL=on-report-validity.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * A class that computes and caches `ValidityStateFlags` for a component with\n * a given `State` interface.\n *\n * Cached performance before computing validity is important since constraint\n * validation must be checked frequently and synchronously when properties\n * change.\n *\n * @template State The expected interface of properties relevant to constraint\n * validation.\n */\nexport class Validator {\n /**\n * Creates a new validator.\n *\n * @param getCurrentState A callback that returns the current state of\n * constraint validation-related properties.\n */\n constructor(getCurrentState) {\n this.getCurrentState = getCurrentState;\n /**\n * The current validity state and message. This is cached and returns if\n * constraint validation state does not change.\n */\n this.currentValidity = {\n validity: {},\n validationMessage: '',\n };\n }\n /**\n * Returns the current `ValidityStateFlags` and validation message for the\n * validator.\n *\n * If the constraint validation state has not changed, this will return a\n * cached result. This is important since `getValidity()` can be called\n * frequently in response to synchronous property changes.\n *\n * @return The current validity and validation message.\n */\n getValidity() {\n const state = this.getCurrentState();\n const hasStateChanged = !this.prevState || !this.equals(this.prevState, state);\n if (!hasStateChanged) {\n return this.currentValidity;\n }\n const { validity, validationMessage } = this.computeValidity(state);\n this.prevState = this.copy(state);\n this.currentValidity = {\n validationMessage,\n validity: {\n // Change any `ValidityState` instances into `ValidityStateFlags` since\n // `ValidityState` cannot be easily `{...spread}`.\n badInput: validity.badInput,\n customError: validity.customError,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n valueMissing: validity.valueMissing,\n },\n };\n return this.currentValidity;\n }\n}\n//# sourceMappingURL=validator.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Validator } from './validator.js';\n/**\n * A validator that provides constraint validation that emulates `<input>` and\n * `<textarea>` validation.\n */\nexport class TextFieldValidator extends Validator {\n computeValidity({ state, renderedControl }) {\n let inputOrTextArea = renderedControl;\n if (isInputState(state) && !inputOrTextArea) {\n // Get cached <input> or create it.\n inputOrTextArea = this.inputControl || document.createElement('input');\n // Cache the <input> to re-use it next time.\n this.inputControl = inputOrTextArea;\n }\n else if (!inputOrTextArea) {\n // Get cached <textarea> or create it.\n inputOrTextArea =\n this.textAreaControl || document.createElement('textarea');\n // Cache the <textarea> to re-use it next time.\n this.textAreaControl = inputOrTextArea;\n }\n // Set this variable so we can check it for input-specific properties.\n const input = isInputState(state)\n ? inputOrTextArea\n : null;\n // Set input's \"type\" first, since this can change the other properties\n if (input) {\n input.type = state.type;\n }\n if (inputOrTextArea.value !== state.value) {\n // Only programmatically set the value if there's a difference. When using\n // the rendered control, the value will always be up to date. Setting the\n // property (even if it's the same string) will reset the internal <input>\n // dirty flag, making minlength and maxlength validation reset.\n inputOrTextArea.value = state.value;\n }\n inputOrTextArea.required = state.required;\n // The following IDLAttribute properties will always hydrate an attribute,\n // even if set to a the default value ('' or -1). The presence of the\n // attribute triggers constraint validation, so we must remove the attribute\n // when empty.\n if (input) {\n const inputState = state;\n if (inputState.pattern) {\n input.pattern = inputState.pattern;\n }\n else {\n input.removeAttribute('pattern');\n }\n if (inputState.min) {\n input.min = inputState.min;\n }\n else {\n input.removeAttribute('min');\n }\n if (inputState.max) {\n input.max = inputState.max;\n }\n else {\n input.removeAttribute('max');\n }\n if (inputState.step) {\n input.step = inputState.step;\n }\n else {\n input.removeAttribute('step');\n }\n }\n // Use -1 to represent no minlength and maxlength, which is what the\n // platform input returns. However, it will throw an error if you try to\n // manually set it to -1.\n //\n // While the type is `number`, it may actually be `null` at runtime.\n // `null > -1` is true since `null` coerces to `0`, so we default null and\n // undefined to -1.\n //\n // We set attributes instead of properties since setting a property may\n // throw an out of bounds error in relation to the other property.\n // Attributes will not throw errors while the state is updating.\n if ((state.minLength ?? -1) > -1) {\n inputOrTextArea.setAttribute('minlength', String(state.minLength));\n }\n else {\n inputOrTextArea.removeAttribute('minlength');\n }\n if ((state.maxLength ?? -1) > -1) {\n inputOrTextArea.setAttribute('maxlength', String(state.maxLength));\n }\n else {\n inputOrTextArea.removeAttribute('maxlength');\n }\n return {\n validity: inputOrTextArea.validity,\n validationMessage: inputOrTextArea.validationMessage,\n };\n }\n equals({ state: prev }, { state: next }) {\n // Check shared input and textarea properties\n const inputOrTextAreaEqual = prev.type === next.type &&\n prev.value === next.value &&\n prev.required === next.required &&\n prev.minLength === next.minLength &&\n prev.maxLength === next.maxLength;\n if (!isInputState(prev) || !isInputState(next)) {\n // Both are textareas, all relevant properties are equal.\n return inputOrTextAreaEqual;\n }\n // Check additional input-specific properties.\n return (inputOrTextAreaEqual &&\n prev.pattern === next.pattern &&\n prev.min === next.min &&\n prev.max === next.max &&\n prev.step === next.step);\n }\n copy({ state }) {\n // Don't hold a reference to the rendered control when copying since we\n // don't use it when checking if the state changed.\n return {\n state: isInputState(state)\n ? this.copyInput(state)\n : this.copyTextArea(state),\n renderedControl: null,\n };\n }\n copyInput(state) {\n const { type, pattern, min, max, step } = state;\n return {\n ...this.copySharedState(state),\n type,\n pattern,\n min,\n max,\n step,\n };\n }\n copyTextArea(state) {\n return {\n ...this.copySharedState(state),\n type: state.type,\n };\n }\n copySharedState({ value, required, minLength, maxLength, }) {\n return { value, required, minLength, maxLength };\n }\n}\nfunction isInputState(state) {\n return state.type !== 'textarea';\n}\n//# sourceMappingURL=text-field-validator.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { LitElement, html, nothing } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { html as staticHtml } from 'lit/static-html.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { stringConverter } from '../../internal/controller/string-converter.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { createValidator, getValidityAnchor, mixinConstraintValidation, } from '../../labs/behaviors/constraint-validation.js';\nimport { mixinElementInternals } from '../../labs/behaviors/element-internals.js';\nimport { getFormValue, mixinFormAssociated, } from '../../labs/behaviors/form-associated.js';\nimport { mixinOnReportValidity, onReportValidity, } from '../../labs/behaviors/on-report-validity.js';\nimport { TextFieldValidator } from '../../labs/behaviors/validators/text-field-validator.js';\n// Separate variable needed for closure.\nconst textFieldBaseClass = mixinDelegatesAria(mixinOnReportValidity(mixinConstraintValidation(mixinFormAssociated(mixinElementInternals(LitElement)))));\n/**\n * A text field component.\n *\n * @fires select {Event} The native `select` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select_event)\n * --bubbles\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n */\nexport class TextField extends textFieldBaseClass {\n constructor() {\n super(...arguments);\n /**\n * Gets or sets whether or not the text field is in a visually invalid state.\n *\n * This error state overrides the error state controlled by\n * `reportValidity()`.\n */\n this.error = false;\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * This error message overrides the error message displayed by\n * `reportValidity()`.\n */\n this.errorText = '';\n /**\n * The floating Material label of the textfield component. It informs the user\n * about what information is requested for a text field. It is aligned with\n * the input text, is always visible, and it floats when focused or when text\n * is entered into the textfield. This label also sets accessibilty labels,\n * but the accessible label is overriden by `aria-label`.\n *\n * Learn more about floating labels from the Material Design guidelines:\n * https://m3.material.io/components/text-fields/guidelines\n */\n this.label = '';\n /**\n * Disables the asterisk on the floating label, when the text field is\n * required.\n */\n this.noAsterisk = false;\n /**\n * Indicates that the user must specify a value for the input before the\n * owning form can be submitted and will render an error state when\n * `reportValidity()` is invoked when value is empty. Additionally the\n * floating label will render an asterisk `\"*\"` when true.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required\n */\n this.required = false;\n /**\n * The current value of the text field. It is always a string.\n */\n this.value = '';\n /**\n * An optional prefix to display before the input value.\n */\n this.prefixText = '';\n /**\n * An optional suffix to display after the input value.\n */\n this.suffixText = '';\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n */\n this.hasLeadingIcon = false;\n /**\n * Whether or not the text field has a trailing icon. Used for SSR.\n */\n this.hasTrailingIcon = false;\n /**\n * Conveys additional information below the text field, such as how it should\n * be used.\n */\n this.supportingText = '';\n /**\n * Override the input text CSS `direction`. Useful for RTL languages that use\n * LTR notation for fractions.\n */\n this.textDirection = '';\n /**\n * The number of rows to display for a `type=\"textarea\"` text field.\n * Defaults to 2.\n */\n this.rows = 2;\n /**\n * The number of cols to display for a `type=\"textarea\"` text field.\n * Defaults to 20.\n */\n this.cols = 20;\n // <input> properties\n this.inputMode = '';\n /**\n * Defines the greatest value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#max\n */\n this.max = '';\n /**\n * The maximum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength\n */\n this.maxLength = -1;\n /**\n * Defines the most negative value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#min\n */\n this.min = '';\n /**\n * The minimum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength\n */\n this.minLength = -1;\n /**\n * When true, hide the spinner for `type=\"number\"` text fields.\n */\n this.noSpinner = false;\n /**\n * A regular expression that the text field's value must match to pass\n * constraint validation.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#pattern\n */\n this.pattern = '';\n /**\n * Defines the text displayed in the textfield when it has no value. Provides\n * a brief hint to the user as to the expected type of data that should be\n * entered into the control. Unlike `label`, the placeholder is not visible\n * and does not float when the textfield has a value.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\n */\n this.placeholder = '';\n /**\n * Indicates whether or not a user should be able to edit the text field's\n * value.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#readonly\n */\n this.readOnly = false;\n /**\n * Indicates that input accepts multiple email addresses.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email#multiple\n */\n this.multiple = false;\n /**\n * Returns or sets the element's step attribute, which works with min and max\n * to limit the increments at which a numeric or date-time value can be set.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n */\n this.step = '';\n /**\n * The `<input>` type to use, defaults to \"text\". The type greatly changes how\n * the text field behaves.\n *\n * Text fields support a limited number of `<input>` types:\n *\n * - text\n * - textarea\n * - email\n * - number\n * - password\n * - search\n * - tel\n * - url\n *\n * See\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n * for more details on each input type.\n */\n this.type = 'text';\n /**\n * Describes what, if any, type of autocomplete functionality the input\n * should provide.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n this.autocomplete = '';\n /**\n * Returns true when the text field has been interacted with. Native\n * validation errors only display in response to user interactions.\n */\n this.dirty = false;\n this.focused = false;\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n this.nativeError = false;\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n this.nativeErrorText = '';\n }\n /**\n * Gets or sets the direction in which selection occurred.\n */\n get selectionDirection() {\n return this.getInputOrTextarea().selectionDirection;\n }\n set selectionDirection(value) {\n this.getInputOrTextarea().selectionDirection = value;\n }\n /**\n * Gets or sets the end position or offset of a text selection.\n */\n get selectionEnd() {\n return this.getInputOrTextarea().selectionEnd;\n }\n set selectionEnd(value) {\n this.getInputOrTextarea().selectionEnd = value;\n }\n /**\n * Gets or sets the starting position or offset of a text selection.\n */\n get selectionStart() {\n return this.getInputOrTextarea().selectionStart;\n }\n set selectionStart(value) {\n this.getInputOrTextarea().selectionStart = value;\n }\n /**\n * The text field's value as a number.\n */\n get valueAsNumber() {\n const input = this.getInput();\n if (!input) {\n return NaN;\n }\n return input.valueAsNumber;\n }\n set valueAsNumber(value) {\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.valueAsNumber = value;\n this.value = input.value;\n }\n /**\n * The text field's value as a Date.\n */\n get valueAsDate() {\n const input = this.getInput();\n if (!input) {\n return null;\n }\n return input.valueAsDate;\n }\n set valueAsDate(value) {\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.valueAsDate = value;\n this.value = input.value;\n }\n get hasError() {\n return this.error || this.nativeError;\n }\n /**\n * Selects all the text in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select\n */\n select() {\n this.getInputOrTextarea().select();\n }\n setRangeText(...args) {\n // Calling setRangeText with 1 vs 3-4 arguments has different behavior.\n // Use spread syntax and type casting to ensure correct usage.\n this.getInputOrTextarea().setRangeText(...args);\n this.value = this.getInputOrTextarea().value;\n }\n /**\n * Sets the start and end positions of a selection in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n *\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n * @param direction The direction in which the selection is performed.\n */\n setSelectionRange(start, end, direction) {\n this.getInputOrTextarea().setSelectionRange(start, end, direction);\n }\n /**\n * Shows the browser picker for an input element of type \"date\", \"time\", etc.\n *\n * For a full list of supported types, see:\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/showPicker#browser_compatibility\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/showPicker\n */\n showPicker() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.showPicker();\n }\n /**\n * Decrements the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepDown\n *\n * @param stepDecrement The number of steps to decrement, defaults to 1.\n */\n stepDown(stepDecrement) {\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.stepDown(stepDecrement);\n this.value = input.value;\n }\n /**\n * Increments the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepUp\n *\n * @param stepIncrement The number of steps to increment, defaults to 1.\n */\n stepUp(stepIncrement) {\n const input = this.getInput();\n if (!input) {\n return;\n }\n input.stepUp(stepIncrement);\n this.value = input.value;\n }\n /**\n * Reset the text field to its default value.\n */\n reset() {\n this.dirty = false;\n this.value = this.getAttribute('value') ?? '';\n this.nativeError = false;\n this.nativeErrorText = '';\n }\n attributeChangedCallback(attribute, newValue, oldValue) {\n if (attribute === 'value' && this.dirty) {\n // After user input, changing the value attribute no longer updates the\n // text field's value (until reset). This matches native <input> behavior.\n return;\n }\n super.attributeChangedCallback(attribute, newValue, oldValue);\n }\n render() {\n const classes = {\n 'disabled': this.disabled,\n 'error': !this.disabled && this.hasError,\n 'textarea': this.type === 'textarea',\n 'no-spinner': this.noSpinner,\n };\n return html `\n <span class=\"text-field ${classMap(classes)}\">\n ${this.renderField()}\n </span>\n `;\n }\n updated(changedProperties) {\n // Keep changedProperties arg so that subclasses may call it\n // If a property such as `type` changes and causes the internal <input>\n // value to change without dispatching an event, re-sync it.\n const value = this.getInputOrTextarea().value;\n if (this.value !== value) {\n // Note this is typically inefficient in updated() since it schedules\n // another update. However, it is needed for the <input> to fully render\n // before checking its value.\n this.value = value;\n }\n }\n renderField() {\n return staticHtml `<${this.fieldTag}\n class=\"field\"\n count=${this.value.length}\n ?disabled=${this.disabled}\n ?error=${this.hasError}\n error-text=${this.getErrorText()}\n ?focused=${this.focused}\n ?has-end=${this.hasTrailingIcon}\n ?has-start=${this.hasLeadingIcon}\n label=${this.label}\n ?no-asterisk=${this.noAsterisk}\n max=${this.maxLength}\n ?populated=${!!this.value}\n ?required=${this.required}\n ?resizable=${this.type === 'textarea'}\n supporting-text=${this.supportingText}\n >\n ${this.renderLeadingIcon()}\n ${this.renderInputOrTextarea()}\n ${this.renderTrailingIcon()}\n <div id=\"description\" slot=\"aria-describedby\"></div>\n <slot name=\"container\" slot=\"container\"></slot>\n </${this.fieldTag}>`;\n }\n renderLeadingIcon() {\n return html `\n <span class=\"icon leading\" slot=\"start\">\n <slot name=\"leading-icon\" @slotchange=${this.handleIconChange}></slot>\n </span>\n `;\n }\n renderTrailingIcon() {\n return html `\n <span class=\"icon trailing\" slot=\"end\">\n <slot name=\"trailing-icon\" @slotchange=${this.handleIconChange}></slot>\n </span>\n `;\n }\n renderInputOrTextarea() {\n const style = { 'direction': this.textDirection };\n const ariaLabel = this.ariaLabel || this.label || nothing;\n // lit-anaylzer `autocomplete` types are too strict\n // tslint:disable-next-line:no-any\n const autocomplete = this.autocomplete;\n // These properties may be set to null if the attribute is removed, and\n // `null > -1` is incorrectly `true`.\n const hasMaxLength = (this.maxLength ?? -1) > -1;\n const hasMinLength = (this.minLength ?? -1) > -1;\n if (this.type === 'textarea') {\n return html `\n <textarea\n class=\"input\"\n style=${styleMap(style)}\n aria-describedby=\"description\"\n aria-invalid=${this.hasError}\n aria-label=${ariaLabel}\n autocomplete=${autocomplete || nothing}\n name=${this.name || nothing}\n ?disabled=${this.disabled}\n maxlength=${hasMaxLength ? this.maxLength : nothing}\n minlength=${hasMinLength ? this.minLength : nothing}\n placeholder=${this.placeholder || nothing}\n ?readonly=${this.readOnly}\n ?required=${this.required}\n rows=${this.rows}\n cols=${this.cols}\n .value=${live(this.value)}\n @change=${this.redispatchEvent}\n @focus=${this.handleFocusChange}\n @blur=${this.handleFocusChange}\n @input=${this.handleInput}\n @select=${this.redispatchEvent}></textarea>\n `;\n }\n const prefix = this.renderPrefix();\n const suffix = this.renderSuffix();\n // TODO(b/243805848): remove `as unknown as number` and `as any` once lit\n // analyzer is fixed\n // tslint:disable-next-line:no-any\n const inputMode = this.inputMode;\n return html `\n <div class=\"input-wrapper\">\n ${prefix}\n <input\n class=\"input\"\n style=${styleMap(style)}\n aria-describedby=\"description\"\n aria-invalid=${this.hasError}\n aria-label=${ariaLabel}\n autocomplete=${autocomplete || nothing}\n name=${this.name || nothing}\n ?disabled=${this.disabled}\n inputmode=${inputMode || nothing}\n max=${(this.max || nothing)}\n maxlength=${hasMaxLength ? this.maxLength : nothing}\n min=${(this.min || nothing)}\n minlength=${hasMinLength ? this.minLength : nothing}\n pattern=${this.pattern || nothing}\n placeholder=${this.placeholder || nothing}\n ?readonly=${this.readOnly}\n ?required=${this.required}\n ?multiple=${this.multiple}\n step=${(this.step || nothing)}\n type=${this.type}\n .value=${live(this.value)}\n @change=${this.redispatchEvent}\n @focus=${this.handleFocusChange}\n @blur=${this.handleFocusChange}\n @input=${this.handleInput}\n @select=${this.redispatchEvent} />\n ${suffix}\n </div>\n `;\n }\n renderPrefix() {\n return this.renderAffix(this.prefixText, /* isSuffix */ false);\n }\n renderSuffix() {\n return this.renderAffix(this.suffixText, /* isSuffix */ true);\n }\n renderAffix(text, isSuffix) {\n if (!text) {\n return nothing;\n }\n const classes = {\n 'suffix': isSuffix,\n 'prefix': !isSuffix,\n };\n return html `<span class=\"${classMap(classes)}\">${text}</span>`;\n }\n getErrorText() {\n return this.error ? this.errorText : this.nativeErrorText;\n }\n handleFocusChange() {\n // When calling focus() or reportValidity() during change, it's possible\n // for blur to be called after the new focus event. Rather than set\n // `this.focused` to true/false on focus/blur, we always set it to whether\n // or not the input itself is focused.\n this.focused = this.inputOrTextarea?.matches(':focus') ?? false;\n }\n handleInput(event) {\n this.dirty = true;\n this.value = event.target.value;\n }\n redispatchEvent(event) {\n redispatchEvent(this, event);\n }\n getInputOrTextarea() {\n if (!this.inputOrTextarea) {\n // If the input is not yet defined, synchronously render.\n // e.g.\n // const textField = document.createElement('mdif1-outlined-text-field');\n // document.body.appendChild(textField);\n // textField.focus(); // synchronously render\n this.connectedCallback();\n this.scheduleUpdate();\n }\n if (this.isUpdatePending) {\n // If there are pending updates, synchronously perform them. This ensures\n // that constraint validation properties (like `required`) are synced\n // before interacting with input APIs that depend on them.\n this.scheduleUpdate();\n }\n return this.inputOrTextarea;\n }\n getInput() {\n if (this.type === 'textarea') {\n return null;\n }\n return this.getInputOrTextarea();\n }\n handleIconChange() {\n this.hasLeadingIcon = this.leadingIcons.length > 0;\n this.hasTrailingIcon = this.trailingIcons.length > 0;\n }\n [getFormValue]() {\n return this.value;\n }\n formResetCallback() {\n this.reset();\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n focus() {\n // Required for the case that the user slots a focusable element into the\n // leading icon slot such as an iconbutton due to how delegatesFocus works.\n this.getInputOrTextarea().focus();\n }\n [createValidator]() {\n return new TextFieldValidator(() => ({\n state: this,\n renderedControl: this.inputOrTextarea,\n }));\n }\n [getValidityAnchor]() {\n return this.inputOrTextarea;\n }\n [onReportValidity](invalidEvent) {\n // Prevent default pop-up behavior.\n invalidEvent?.preventDefault();\n const prevMessage = this.getErrorText();\n this.nativeError = !!invalidEvent;\n this.nativeErrorText = this.validationMessage;\n if (prevMessage === this.getErrorText()) {\n this.field?.reannounceError();\n }\n }\n}\n/** @nocollapse */\nTextField.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean, reflect: true })\n], TextField.prototype, \"error\", void 0);\n__decorate([\n property({ attribute: 'error-text' })\n], TextField.prototype, \"errorText\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"label\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-asterisk' })\n], TextField.prototype, \"noAsterisk\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], TextField.prototype, \"required\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"value\", void 0);\n__decorate([\n property({ attribute: 'prefix-text' })\n], TextField.prototype, \"prefixText\", void 0);\n__decorate([\n property({ attribute: 'suffix-text' })\n], TextField.prototype, \"suffixText\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-leading-icon' })\n], TextField.prototype, \"hasLeadingIcon\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-trailing-icon' })\n], TextField.prototype, \"hasTrailingIcon\", void 0);\n__decorate([\n property({ attribute: 'supporting-text' })\n], TextField.prototype, \"supportingText\", void 0);\n__decorate([\n property({ attribute: 'text-direction' })\n], TextField.prototype, \"textDirection\", void 0);\n__decorate([\n property({ type: Number })\n], TextField.prototype, \"rows\", void 0);\n__decorate([\n property({ type: Number })\n], TextField.prototype, \"cols\", void 0);\n__decorate([\n property({ reflect: true })\n], TextField.prototype, \"inputMode\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"max\", void 0);\n__decorate([\n property({ type: Number })\n], TextField.prototype, \"maxLength\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"min\", void 0);\n__decorate([\n property({ type: Number })\n], TextField.prototype, \"minLength\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-spinner' })\n], TextField.prototype, \"noSpinner\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"pattern\", void 0);\n__decorate([\n property({ reflect: true, converter: stringConverter })\n], TextField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], TextField.prototype, \"readOnly\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], TextField.prototype, \"multiple\", void 0);\n__decorate([\n property()\n], TextField.prototype, \"step\", void 0);\n__decorate([\n property({ reflect: true })\n], TextField.prototype, \"type\", void 0);\n__decorate([\n property({ reflect: true })\n], TextField.prototype, \"autocomplete\", void 0);\n__decorate([\n state()\n], TextField.prototype, \"dirty\", void 0);\n__decorate([\n state()\n], TextField.prototype, \"focused\", void 0);\n__decorate([\n state()\n], TextField.prototype, \"nativeError\", void 0);\n__decorate([\n state()\n], TextField.prototype, \"nativeErrorText\", void 0);\n__decorate([\n query('.input')\n], TextField.prototype, \"inputOrTextarea\", void 0);\n__decorate([\n query('.field')\n], TextField.prototype, \"field\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'leading-icon' })\n], TextField.prototype, \"leadingIcons\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'trailing-icon' })\n], TextField.prototype, \"trailingIcons\", void 0);\n//# sourceMappingURL=text-field.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../field/outlined-field.js';\nimport { literal } from 'lit/static-html.js';\nimport { TextField } from './text-field.js';\n/**\n * An outlined text field component\n */\nexport class OutlinedTextField extends TextField {\n constructor() {\n super(...arguments);\n this.fieldTag = literal `mdif1-outlined-field`;\n }\n}\n//# sourceMappingURL=outlined-text-field.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./textfield/internal/shared-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:inline-flex;outline:none;resize:both;text-align:start;-webkit-tap-highlight-color:rgba(0,0,0,0)}.text-field,.field{width:100%}.text-field{display:inline-flex}.field{cursor:text}.disabled .field{cursor:default}.text-field,.textarea .field{resize:inherit}slot[name=container]{border-radius:inherit}.icon{color:currentColor;display:flex;align-items:center;justify-content:center;fill:currentColor;position:relative}.icon ::slotted(*){display:flex;position:absolute}[has-start] .icon.leading{font-size:var(--_leading-icon-size);height:var(--_leading-icon-size);width:var(--_leading-icon-size)}[has-end] .icon.trailing{font-size:var(--_trailing-icon-size);height:var(--_trailing-icon-size);width:var(--_trailing-icon-size)}.input-wrapper{display:flex}.input-wrapper>*{all:inherit;padding:0}.input{caret-color:var(--_caret-color);overflow-x:hidden;text-align:inherit}.input::placeholder{color:currentColor;opacity:1}.input::-webkit-calendar-picker-indicator{display:none}.input::-webkit-search-decoration,.input::-webkit-search-cancel-button{display:none}@media(forced-colors: active){.input{background:none}}.no-spinner .input::-webkit-inner-spin-button,.no-spinner .input::-webkit-outer-spin-button{display:none}.no-spinner .input[type=number]{-moz-appearance:textfield}:focus-within .input{caret-color:var(--_focus-caret-color)}.error:focus-within .input{caret-color:var(--_error-focus-caret-color)}.text-field:not(.disabled) .prefix{color:var(--_input-text-prefix-color)}.text-field:not(.disabled) .suffix{color:var(--_input-text-suffix-color)}.text-field:not(.disabled) .input::placeholder{color:var(--_input-text-placeholder-color)}.prefix,.suffix{text-wrap:nowrap;width:min-content}.prefix{padding-inline-end:var(--_input-text-prefix-trailing-space)}.suffix{padding-inline-start:var(--_input-text-suffix-leading-space)}\n`;\n//# sourceMappingURL=shared-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../field/outlined-field.js';\nimport { customElement } from 'lit/decorators.js';\nimport { literal } from 'lit/static-html.js';\nimport { styles as outlinedStyles } from './internal/outlined-styles.js';\nimport { OutlinedTextField } from './internal/outlined-text-field.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * TODO(b/228525797): Add docs\n * @final\n * @suppress {visibility}\n */\nlet MdOutlinedTextField = class MdOutlinedTextField extends OutlinedTextField {\n constructor() {\n super(...arguments);\n this.fieldTag = literal `mdif1-outlined-field`;\n }\n};\nMdOutlinedTextField.styles = [sharedStyles, outlinedStyles];\nMdOutlinedTextField = __decorate([\n customElement('mdif1-outlined-text-field')\n], MdOutlinedTextField);\nexport { MdOutlinedTextField };\n//# sourceMappingURL=outlined-text-field.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Validator } from './validator.js';\n/**\n * A validator that provides constraint validation that emulates\n * `<input type=\"checkbox\">` validation.\n */\nexport class CheckboxValidator extends Validator {\n computeValidity(state) {\n if (!this.checkboxControl) {\n // Lazily create the platform input\n this.checkboxControl = document.createElement('input');\n this.checkboxControl.type = 'checkbox';\n }\n this.checkboxControl.checked = state.checked;\n this.checkboxControl.required = state.required;\n return {\n validity: this.checkboxControl.validity,\n validationMessage: this.checkboxControl.validationMessage,\n };\n }\n equals(prev, next) {\n return prev.checked === next.checked && prev.required === next.required;\n }\n copy({ checked, required }) {\n return { checked, required };\n }\n}\n//# sourceMappingURL=checkbox-validator.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { dispatchActivationClick, isActivationClick, } from '../../internal/events/form-label-activation.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { createValidator, getValidityAnchor, mixinConstraintValidation, } from '../../labs/behaviors/constraint-validation.js';\nimport { mixinElementInternals } from '../../labs/behaviors/element-internals.js';\nimport { getFormState, getFormValue, mixinFormAssociated, } from '../../labs/behaviors/form-associated.js';\nimport { CheckboxValidator } from '../../labs/behaviors/validators/checkbox-validator.js';\n// Separate variable needed for closure.\nconst checkboxBaseClass = mixinDelegatesAria(mixinConstraintValidation(mixinFormAssociated(mixinElementInternals(LitElement))));\n/**\n * A checkbox component.\n *\n *\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n */\nexport class Checkbox extends checkboxBaseClass {\n constructor() {\n super();\n /**\n * Whether or not the checkbox is selected.\n */\n this.checked = false;\n /**\n * Whether or not the checkbox is indeterminate.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes\n */\n this.indeterminate = false;\n /**\n * When true, require the checkbox to be selected when participating in\n * form submission.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#validation\n */\n this.required = false;\n /**\n * The value of the checkbox that is submitted with a form when selected.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value\n */\n this.value = 'on';\n this.prevChecked = false;\n this.prevDisabled = false;\n this.prevIndeterminate = false;\n if (!isServer) {\n this.addEventListener('click', (event) => {\n if (!isActivationClick(event) || !this.input) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.input);\n });\n }\n }\n update(changed) {\n if (changed.has('checked') ||\n changed.has('disabled') ||\n changed.has('indeterminate')) {\n this.prevChecked = changed.get('checked') ?? this.checked;\n this.prevDisabled = changed.get('disabled') ?? this.disabled;\n this.prevIndeterminate =\n changed.get('indeterminate') ?? this.indeterminate;\n }\n super.update(changed);\n }\n render() {\n const prevNone = !this.prevChecked && !this.prevIndeterminate;\n const prevChecked = this.prevChecked && !this.prevIndeterminate;\n const prevIndeterminate = this.prevIndeterminate;\n const isChecked = this.checked && !this.indeterminate;\n const isIndeterminate = this.indeterminate;\n const containerClasses = classMap({\n 'disabled': this.disabled,\n 'selected': isChecked || isIndeterminate,\n 'unselected': !isChecked && !isIndeterminate,\n 'checked': isChecked,\n 'indeterminate': isIndeterminate,\n 'prev-unselected': prevNone,\n 'prev-checked': prevChecked,\n 'prev-indeterminate': prevIndeterminate,\n 'prev-disabled': this.prevDisabled,\n });\n // Needed for closure conformance\n const { ariaLabel, ariaInvalid } = this;\n // Note: <input> needs to be rendered before the <svg> for\n // form.reportValidity() to work in Chrome.\n return html `\n <div class=\"container ${containerClasses}\">\n <input\n type=\"checkbox\"\n id=\"input\"\n aria-checked=${isIndeterminate ? 'mixed' : nothing}\n aria-label=${ariaLabel || nothing}\n aria-invalid=${ariaInvalid || nothing}\n ?disabled=${this.disabled}\n ?required=${this.required}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n @input=${this.handleInput}\n @change=${this.handleChange} />\n\n <div class=\"outline\"></div>\n <div class=\"background\"></div>\n <mdif1-focus-ring part=\"focus-ring\" for=\"input\"></mdif1-focus-ring>\n <mdif1-ripple for=\"input\" ?disabled=${this.disabled}></mdif1-ripple>\n <svg class=\"icon\" viewBox=\"0 0 18 18\" aria-hidden=\"true\">\n <rect class=\"mark short\" />\n <rect class=\"mark long\" />\n </svg>\n </div>\n `;\n }\n handleInput(event) {\n const target = event.target;\n this.checked = target.checked;\n this.indeterminate = target.indeterminate;\n // <input> 'input' event bubbles and is composed, don't re-dispatch it.\n }\n handleChange(event) {\n // <input> 'change' event is not composed, re-dispatch it.\n redispatchEvent(this, event);\n }\n [getFormValue]() {\n if (!this.checked || this.indeterminate) {\n return null;\n }\n return this.value;\n }\n [getFormState]() {\n return String(this.checked);\n }\n formResetCallback() {\n // The checked property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.checked = this.hasAttribute('checked');\n }\n formStateRestoreCallback(state) {\n this.checked = state === 'true';\n }\n [createValidator]() {\n return new CheckboxValidator(() => this);\n }\n [getValidityAnchor]() {\n return this.input;\n }\n}\n/** @nocollapse */\nCheckbox.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"checked\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"indeterminate\", void 0);\n__decorate([\n property({ type: Boolean })\n], Checkbox.prototype, \"required\", void 0);\n__decorate([\n property()\n], Checkbox.prototype, \"value\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevChecked\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevDisabled\", void 0);\n__decorate([\n state()\n], Checkbox.prototype, \"prevIndeterminate\", void 0);\n__decorate([\n query('input')\n], Checkbox.prototype, \"input\", void 0);\n//# sourceMappingURL=checkbox.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./checkbox/internal/checkbox-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{border-start-start-radius:var(--mdif1-checkbox-container-shape-start-start, var(--mdif1-checkbox-container-shape, 2px));border-start-end-radius:var(--mdif1-checkbox-container-shape-start-end, var(--mdif1-checkbox-container-shape, 2px));border-end-end-radius:var(--mdif1-checkbox-container-shape-end-end, var(--mdif1-checkbox-container-shape, 2px));border-end-start-radius:var(--mdif1-checkbox-container-shape-end-start, var(--mdif1-checkbox-container-shape, 2px));display:inline-flex;height:var(--mdif1-checkbox-container-size, 18px);position:relative;vertical-align:top;width:var(--mdif1-checkbox-container-size, 18px);-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer}:host([disabled]){cursor:default}:host([touch-target=wrapper]){margin:max(0px,(48px - var(--mdif1-checkbox-container-size, 18px))/2)}mdif1-focus-ring{height:44px;inset:unset;width:44px}input{appearance:none;height:48px;margin:0;opacity:0;outline:none;position:absolute;width:48px;z-index:1;cursor:inherit}:host([touch-target=none]) input{height:100%;width:100%}.container{border-radius:inherit;display:flex;height:100%;place-content:center;place-items:center;position:relative;width:100%}.outline,.background,.icon{inset:0;position:absolute}.outline,.background{border-radius:inherit}.outline{border-color:var(--mdif1-checkbox-outline-color, var(--mdif1-sys-color-on-surface-variant, #49454f));border-style:solid;border-width:var(--mdif1-checkbox-outline-width, 2px);box-sizing:border-box}.background{background-color:var(--mdif1-checkbox-selected-container-color, var(--mdif1-sys-color-primary, #6750a4))}.background,.icon{opacity:0;transition-duration:150ms,50ms;transition-property:transform,opacity;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15),linear;transform:scale(0.6)}:where(.selected) :is(.background,.icon){opacity:1;transition-duration:350ms,50ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1),linear;transform:scale(1)}mdif1-ripple{border-radius:var(--mdif1-checkbox-state-layer-shape, var(--mdif1-sys-shape-corner-full, 9999px));height:var(--mdif1-checkbox-state-layer-size, 40px);inset:unset;width:var(--mdif1-checkbox-state-layer-size, 40px);--mdif1-ripple-hover-color: var(--mdif1-checkbox-hover-state-layer-color, var(--mdif1-sys-color-on-surface, #1d1b20));--mdif1-ripple-hover-opacity: var(--mdif1-checkbox-hover-state-layer-opacity, 0.08);--mdif1-ripple-pressed-color: var(--mdif1-checkbox-pressed-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--mdif1-ripple-pressed-opacity: var(--mdif1-checkbox-pressed-state-layer-opacity, 0.12)}.selected mdif1-ripple{--mdif1-ripple-hover-color: var(--mdif1-checkbox-selected-hover-state-layer-color, var(--mdif1-sys-color-primary, #6750a4));--mdif1-ripple-hover-opacity: var(--mdif1-checkbox-selected-hover-state-layer-opacity, 0.08);--mdif1-ripple-pressed-color: var(--mdif1-checkbox-selected-pressed-state-layer-color, var(--mdif1-sys-color-on-surface, #1d1b20));--mdif1-ripple-pressed-opacity: var(--mdif1-checkbox-selected-pressed-state-layer-opacity, 0.12)}.icon{fill:var(--mdif1-checkbox-selected-icon-color, var(--mdif1-sys-color-on-primary, #fff));height:var(--mdif1-checkbox-icon-size, 18px);width:var(--mdif1-checkbox-icon-size, 18px)}.mark.short{height:2px;transition-property:transform,height;width:2px}.mark.long{height:2px;transition-property:transform,width;width:10px}.mark{animation-duration:150ms;animation-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15);transition-duration:150ms;transition-timing-function:cubic-bezier(0.3, 0, 0.8, 0.15)}.selected .mark{animation-duration:350ms;animation-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1);transition-duration:350ms;transition-timing-function:cubic-bezier(0.05, 0.7, 0.1, 1)}.checked .mark,.prev-checked.unselected .mark{transform:scaleY(-1) translate(7px, -14px) rotate(45deg)}.checked .mark.short,.prev-checked.unselected .mark.short{height:5.6568542495px}.checked .mark.long,.prev-checked.unselected .mark.long{width:11.313708499px}.indeterminate .mark,.prev-indeterminate.unselected .mark{transform:scaleY(-1) translate(4px, -10px) rotate(0deg)}.prev-unselected .mark{transition-property:none}.prev-unselected.checked .mark.long{animation-name:prev-unselected-to-checked}@keyframes prev-unselected-to-checked{from{width:0}}:where(:hover) .outline{border-color:var(--mdif1-checkbox-hover-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));border-width:var(--mdif1-checkbox-hover-outline-width, 2px)}:where(:hover) .background{background:var(--mdif1-checkbox-selected-hover-container-color, var(--mdif1-sys-color-primary, #6750a4))}:where(:hover) .icon{fill:var(--mdif1-checkbox-selected-hover-icon-color, var(--mdif1-sys-color-on-primary, #fff))}:where(:focus-within) .outline{border-color:var(--mdif1-checkbox-focus-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));border-width:var(--mdif1-checkbox-focus-outline-width, 2px)}:where(:focus-within) .background{background:var(--mdif1-checkbox-selected-focus-container-color, var(--mdif1-sys-color-primary, #6750a4))}:where(:focus-within) .icon{fill:var(--mdif1-checkbox-selected-focus-icon-color, var(--mdif1-sys-color-on-primary, #fff))}:where(:active) .outline{border-color:var(--mdif1-checkbox-pressed-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));border-width:var(--mdif1-checkbox-pressed-outline-width, 2px)}:where(:active) .background{background:var(--mdif1-checkbox-selected-pressed-container-color, var(--mdif1-sys-color-primary, #6750a4))}:where(:active) .icon{fill:var(--mdif1-checkbox-selected-pressed-icon-color, var(--mdif1-sys-color-on-primary, #fff))}:where(.disabled,.prev-disabled) :is(.background,.icon,.mark){animation-duration:0s;transition-duration:0s}:where(.disabled) .outline{border-color:var(--mdif1-checkbox-disabled-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));border-width:var(--mdif1-checkbox-disabled-outline-width, 2px);opacity:var(--mdif1-checkbox-disabled-container-opacity, 0.38)}:where(.selected.disabled) .outline{visibility:hidden}:where(.selected.disabled) .background{background:var(--mdif1-checkbox-selected-disabled-container-color, var(--mdif1-sys-color-on-surface, #1d1b20));opacity:var(--mdif1-checkbox-selected-disabled-container-opacity, 0.38)}:where(.disabled) .icon{fill:var(--mdif1-checkbox-selected-disabled-icon-color, var(--mdif1-sys-color-surface, #fef7ff))}@media(forced-colors: active){.background{background-color:CanvasText}.selected.disabled .background{background-color:GrayText;opacity:1}.outline{border-color:CanvasText}.disabled .outline{border-color:GrayText;opacity:1}.icon{fill:Canvas}}\n`;\n//# sourceMappingURL=checkbox-styles.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Checkbox } from './internal/checkbox.js';\nimport { styles } from './internal/checkbox-styles.js';\n/**\n * @summary Checkboxes allow users to select one or more items from a set.\n * Checkboxes can turn an option on or off.\n *\n * @description\n * Use checkboxes to:\n * - Select one or more options from a list\n * - Present a list containing sub-selections\n * - Turn an item on or off in a desktop environment\n *\n * @final\n * @suppress {visibility}\n */\nlet MdCheckbox = class MdCheckbox extends Checkbox {\n};\nMdCheckbox.styles = [styles];\nMdCheckbox = __decorate([\n customElement('mdif1-checkbox')\n], MdCheckbox);\nexport { MdCheckbox };\n//# sourceMappingURL=checkbox.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n */\nexport function activateFirstItem(items, isActivatable = (isItemNotDisabled)) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = getFirstActivatableItem(items, isActivatable);\n if (firstItem) {\n firstItem.tabIndex = 0;\n firstItem.focus();\n }\n return firstItem;\n}\n/**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @nocollapse\n */\nexport function activateLastItem(items, isActivatable = (isItemNotDisabled)) {\n const lastItem = getLastActivatableItem(items, isActivatable);\n if (lastItem) {\n lastItem.tabIndex = 0;\n lastItem.focus();\n }\n return lastItem;\n}\n/**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\nexport function deactivateActiveItem(items, isActivatable = (isItemNotDisabled)) {\n const activeItem = getActiveItem(items, isActivatable);\n if (activeItem) {\n activeItem.item.tabIndex = -1;\n }\n return activeItem;\n}\n/**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\nexport function getActiveItem(items, isActivatable = (isItemNotDisabled)) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.tabIndex === 0 && isActivatable(item)) {\n return {\n item,\n index: i,\n };\n }\n }\n return null;\n}\n/**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getFirstActivatableItem(items, isActivatable = (isItemNotDisabled)) {\n for (const item of items) {\n if (isActivatable(item)) {\n return item;\n }\n }\n return null;\n}\n/**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getLastActivatableItem(items, isActivatable = (isItemNotDisabled)) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (isActivatable(item)) {\n return item;\n }\n }\n return null;\n}\n/**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the next item at the end of the list is the first\n * item. Defaults to true.\n * @return The next activatable item or `null` if none are activatable.\n */\nexport function getNextItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n if (nextIndex < index && !wrap) {\n // Return if the index loops back to the beginning and not wrapping.\n return null;\n }\n const item = items[nextIndex];\n if (isActivatable(item)) {\n return item;\n }\n }\n return items[index] ? items[index] : null;\n}\n/**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the previous item at the beginning of the list is\n * the last item. Defaults to true.\n * @return The previous activatable item or `null` if none are activatable.\n */\nexport function getPrevItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n if (prevIndex > index && !wrap) {\n // Return if the index loops back to the end and not wrapping.\n return null;\n }\n const item = items[prevIndex];\n if (isActivatable(item)) {\n return item;\n }\n }\n return items[index] ? items[index] : null;\n}\n/**\n * Activates the next item and focuses it. If nothing is currently activated,\n * activates the first item.\n */\nexport function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {\n if (activeItemRecord) {\n const next = getNextItem(items, activeItemRecord.index, isActivatable, wrap);\n if (next) {\n next.tabIndex = 0;\n next.focus();\n }\n return next;\n }\n else {\n return activateFirstItem(items, isActivatable);\n }\n}\n/**\n * Activates the previous item and focuses it. If nothing is currently\n * activated, activates the last item.\n */\nexport function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {\n if (activeItemRecord) {\n const prev = getPrevItem(items, activeItemRecord.index, isActivatable, wrap);\n if (prev) {\n prev.tabIndex = 0;\n prev.focus();\n }\n return prev;\n }\n else {\n return activateLastItem(items, isActivatable);\n }\n}\n/**\n * Creates an event that requests the parent mdif1-list to deactivate all other\n * items.\n */\nexport function createDeactivateItemsEvent() {\n return new Event('deactivate-items', { bubbles: true, composed: true });\n}\n/**\n * Creates an event that requests the menu to set `tabindex=0` on the item and\n * focus it. We use this pattern because List keeps track of what element is\n * active in the List by maintaining tabindex. We do not want list items\n * to set tabindex on themselves or focus themselves so that we can organize all\n * that logic in the parent List and Menus, and list item stays as dumb as\n * possible.\n */\nexport function createRequestActivationEvent() {\n return new Event('request-activation', { bubbles: true, composed: true });\n}\n/**\n * The default `isActivatable` function, which checks if an item is not\n * disabled.\n *\n * @param item The item to check.\n * @return true if `item.disabled` is `false.\n */\nfunction isItemNotDisabled(item) {\n return !item.disabled;\n}\n//# sourceMappingURL=list-navigation-helpers.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { activateFirstItem, activateLastItem, activateNextItem, activatePreviousItem, getActiveItem, getFirstActivatableItem, } from './list-navigation-helpers.js';\n// TODO: move this file to List and make List use this\n/**\n * Default keys that trigger navigation.\n */\n// tslint:disable:enforce-name-casing Following Enum style\nexport const NavigableKeys = {\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowUp: 'ArrowUp',\n ArrowRight: 'ArrowRight',\n Home: 'Home',\n End: 'End',\n};\n/**\n * A controller that handles list keyboard navigation and item management.\n */\nexport class ListController {\n constructor(config) {\n /**\n * Handles keyboard navigation. Should be bound to the node that will act as\n * the List.\n */\n this.handleKeydown = (event) => {\n const key = event.key;\n if (event.defaultPrevented || !this.isNavigableKey(key)) {\n return;\n }\n // do not use this.items directly in upcoming calculations so we don't\n // re-query the DOM unnecessarily\n const items = this.items;\n if (!items.length) {\n return;\n }\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n event.preventDefault();\n const isRtl = this.isRtl();\n const inlinePrevious = isRtl\n ? NavigableKeys.ArrowRight\n : NavigableKeys.ArrowLeft;\n const inlineNext = isRtl\n ? NavigableKeys.ArrowLeft\n : NavigableKeys.ArrowRight;\n let nextActiveItem = null;\n switch (key) {\n // Activate the next item\n case NavigableKeys.ArrowDown:\n case inlineNext:\n nextActiveItem = activateNextItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());\n break;\n // Activate the previous item\n case NavigableKeys.ArrowUp:\n case inlinePrevious:\n nextActiveItem = activatePreviousItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());\n break;\n // Activate the first item\n case NavigableKeys.Home:\n nextActiveItem = activateFirstItem(items, this.isActivatable);\n break;\n // Activate the last item\n case NavigableKeys.End:\n nextActiveItem = activateLastItem(items, this.isActivatable);\n break;\n default:\n break;\n }\n if (nextActiveItem &&\n activeItemRecord &&\n activeItemRecord.item !== nextActiveItem) {\n // If a new item was activated, remove the tabindex of the previous\n // activated item.\n activeItemRecord.item.tabIndex = -1;\n }\n };\n /**\n * Listener to be bound to the `deactivate-items` item event.\n */\n this.onDeactivateItems = () => {\n const items = this.items;\n for (const item of items) {\n this.deactivateItem(item);\n }\n };\n /**\n * Listener to be bound to the `request-activation` item event..\n */\n this.onRequestActivation = (event) => {\n this.onDeactivateItems();\n const target = event.target;\n this.activateItem(target);\n target.focus();\n };\n /**\n * Listener to be bound to the `slotchange` event for the slot that renders\n * the items.\n */\n this.onSlotchange = () => {\n const items = this.items;\n // Whether we have encountered an item that has been activated\n let encounteredActivated = false;\n for (const item of items) {\n const isActivated = !item.disabled && item.tabIndex > -1;\n if (isActivated && !encounteredActivated) {\n encounteredActivated = true;\n item.tabIndex = 0;\n continue;\n }\n // Deactivate the rest including disabled\n item.tabIndex = -1;\n }\n if (encounteredActivated) {\n return;\n }\n const firstActivatableItem = getFirstActivatableItem(items, this.isActivatable);\n if (!firstActivatableItem) {\n return;\n }\n firstActivatableItem.tabIndex = 0;\n };\n const { isItem, getPossibleItems, isRtl, deactivateItem, activateItem, isNavigableKey, isActivatable, wrapNavigation, } = config;\n this.isItem = isItem;\n this.getPossibleItems = getPossibleItems;\n this.isRtl = isRtl;\n this.deactivateItem = deactivateItem;\n this.activateItem = activateItem;\n this.isNavigableKey = isNavigableKey;\n this.isActivatable = isActivatable;\n this.wrapNavigation = wrapNavigation ?? (() => true);\n }\n /**\n * The items being managed by the list. Additionally, attempts to see if the\n * object has a sub-item in the `.item` property.\n */\n get items() {\n const maybeItems = this.getPossibleItems();\n const items = [];\n for (const itemOrParent of maybeItems) {\n const isItem = this.isItem(itemOrParent);\n // if the item is a list item, add it to the list of items\n if (isItem) {\n items.push(itemOrParent);\n continue;\n }\n // If the item exposes an `item` property check if it is a list item.\n const subItem = itemOrParent.item;\n if (subItem && this.isItem(subItem)) {\n items.push(subItem);\n }\n }\n return items;\n }\n /**\n * Activates the next item in the list. If at the end of the list, the first\n * item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activateNextItem() {\n const items = this.items;\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n if (activeItemRecord) {\n activeItemRecord.item.tabIndex = -1;\n }\n return activateNextItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());\n }\n /**\n * Activates the previous item in the list. If at the start of the list, the\n * last item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activatePreviousItem() {\n const items = this.items;\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n if (activeItemRecord) {\n activeItemRecord.item.tabIndex = -1;\n }\n return activatePreviousItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());\n }\n}\n//# sourceMappingURL=list-controller.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Creates an event that closes any parent menus.\n */\nexport function createCloseMenuEvent(initiator, reason) {\n return new CustomEvent('close-menu', {\n bubbles: true,\n composed: true,\n detail: { initiator, reason, itemPath: [initiator] },\n });\n}\n/**\n * Creates an event that signals to the menu that it should stay open on the\n * focusout event.\n */\nexport function createStayOpenOnFocusoutEvent() {\n return new Event('stay-open-on-focusout', { bubbles: true, composed: true });\n}\n/**\n * Creates an event that signals to the menu that it should close open on the\n * focusout event.\n */\nexport function createCloseOnFocusoutEvent() {\n return new Event('close-on-focusout', { bubbles: true, composed: true });\n}\n/**\n * Creates a default close menu event used by mdif1-menu.\n */\nexport const createDefaultCloseMenuEvent = (createCloseMenuEvent);\n/**\n * Creates an event that requests the given item be selected.\n */\nexport function createDeactivateTypeaheadEvent() {\n return new Event('deactivate-typeahead', { bubbles: true, composed: true });\n}\n/**\n * Creates an event that requests the typeahead functionality of containing menu\n * be activated.\n */\nexport function createActivateTypeaheadEvent() {\n return new Event('activate-typeahead', { bubbles: true, composed: true });\n}\n/**\n * Keys that are used to navigate menus.\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const NavigableKey = {\n UP: 'ArrowUp',\n DOWN: 'ArrowDown',\n RIGHT: 'ArrowRight',\n LEFT: 'ArrowLeft',\n};\n/**\n * Keys that are used for selection in menus.\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const SelectionKey = {\n SPACE: 'Space',\n ENTER: 'Enter',\n};\n/**\n * Default close `Reason` kind values.\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const CloseReason = {\n CLICK_SELECTION: 'click-selection',\n KEYDOWN: 'keydown',\n};\n/**\n * Keys that can close menus.\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const KeydownCloseKey = {\n ESCAPE: 'Escape',\n SPACE: SelectionKey.SPACE,\n ENTER: SelectionKey.ENTER,\n};\n/**\n * Determines whether the given key code is a key code that should close the\n * menu.\n *\n * @param code The KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to close the\n * menu.\n */\nexport function isClosableKey(code) {\n return Object.values(KeydownCloseKey).some((value) => value === code);\n}\n/**\n * Determines whether the given key code is a key code that should select a menu\n * item.\n *\n * @param code They KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to select a\n * menu item.\n */\nexport function isSelectableKey(code) {\n return Object.values(SelectionKey).some((value) => value === code);\n}\n/**\n * Determines whether a target element is contained inside another element's\n * composed tree.\n *\n * @param target The potential contained element.\n * @param container The potential containing element of the target.\n * @returns Whether the target element is contained inside the container's\n * composed subtree\n */\nexport function isElementInSubtree(target, container) {\n // Dispatch a composed, bubbling event to check its path to see if the\n // newly-focused element is contained in container's subtree\n const focusEv = new Event('mdif1-contains', { bubbles: true, composed: true });\n let composedPath = [];\n const listener = (ev) => {\n composedPath = ev.composedPath();\n };\n container.addEventListener('mdif1-contains', listener);\n target.dispatchEvent(focusEv);\n container.removeEventListener('mdif1-contains', listener);\n const isContained = composedPath.length > 0;\n return isContained;\n}\n/**\n * Element to focus on when menu is first opened.\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const FocusState = {\n NONE: 'none',\n LIST_ROOT: 'list-root',\n FIRST_ITEM: 'first-item',\n LAST_ITEM: 'last-item',\n};\n//# sourceMappingURL=shared.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * An enum of supported Menu corners\n */\n// tslint:disable-next-line:enforce-name-casing We are mimicking enum style\nexport const Corner = {\n END_START: 'end-start',\n END_END: 'end-end',\n START_START: 'start-start',\n START_END: 'start-end',\n};\n/**\n * Given a surface, an anchor, corners, and some options, this surface will\n * calculate the position of a surface to align the two given corners and keep\n * the surface inside the window viewport. It also provides a StyleInfo map that\n * can be applied to the surface to handle visiblility and position.\n */\nexport class SurfacePositionController {\n /**\n * @param host The host to connect the controller to.\n * @param getProperties A function that returns the properties for the\n * controller.\n */\n constructor(host, getProperties) {\n this.host = host;\n this.getProperties = getProperties;\n // The current styles to apply to the surface.\n this.surfaceStylesInternal = {\n 'display': 'none',\n };\n // Previous values stored for change detection. Open change detection is\n // calculated separately so initialize it here.\n this.lastValues = {\n isOpen: false,\n };\n this.host.addController(this);\n }\n /**\n * The StyleInfo map to apply to the surface via Lit's stylemap\n */\n get surfaceStyles() {\n return this.surfaceStylesInternal;\n }\n /**\n * Calculates the surface's new position required so that the surface's\n * `surfaceCorner` aligns to the anchor's `anchorCorner` while keeping the\n * surface inside the window viewport. This positioning also respects RTL by\n * checking `getComputedStyle()` on the surface element.\n */\n async position() {\n const { surfaceEl, anchorEl, anchorCorner: anchorCornerRaw, surfaceCorner: surfaceCornerRaw, positioning, xOffset, yOffset, disableBlockFlip, disableInlineFlip, repositionStrategy, } = this.getProperties();\n const anchorCorner = anchorCornerRaw.toLowerCase().trim();\n const surfaceCorner = surfaceCornerRaw.toLowerCase().trim();\n if (!surfaceEl || !anchorEl) {\n return;\n }\n // Store these before we potentially resize the window with the next set of\n // lines\n const windowInnerWidth = window.innerWidth;\n const windowInnerHeight = window.innerHeight;\n const div = document.createElement('div');\n div.style.opacity = '0';\n div.style.position = 'fixed';\n div.style.display = 'block';\n div.style.inset = '0';\n document.body.appendChild(div);\n const scrollbarTestRect = div.getBoundingClientRect();\n div.remove();\n // Calculate the widths of the scrollbars in the inline and block directions\n // to account for window-relative calculations.\n const blockScrollbarHeight = window.innerHeight - scrollbarTestRect.bottom;\n const inlineScrollbarWidth = window.innerWidth - scrollbarTestRect.right;\n // Paint the surface transparently so that we can get the position and the\n // rect info of the surface.\n this.surfaceStylesInternal = {\n 'display': 'block',\n 'opacity': '0',\n };\n // Wait for it to be visible.\n this.host.requestUpdate();\n await this.host.updateComplete;\n // Safari has a bug that makes popovers render incorrectly if the node is\n // made visible + Animation Frame before calling showPopover().\n // https://bugs.webkit.org/show_bug.cgi?id=264069\n // also the cast is required due to differing TS types in Google and OSS.\n if (surfaceEl.popover &&\n surfaceEl.isConnected) {\n surfaceEl.showPopover();\n }\n const surfaceRect = surfaceEl.getSurfacePositionClientRect\n ? surfaceEl.getSurfacePositionClientRect()\n : surfaceEl.getBoundingClientRect();\n const anchorRect = anchorEl.getSurfacePositionClientRect\n ? anchorEl.getSurfacePositionClientRect()\n : anchorEl.getBoundingClientRect();\n const [surfaceBlock, surfaceInline] = surfaceCorner.split('-');\n const [anchorBlock, anchorInline] = anchorCorner.split('-');\n // LTR depends on the direction of the SURFACE not the anchor.\n const isLTR = getComputedStyle(surfaceEl).direction === 'ltr';\n /*\n * For more on inline and block dimensions, see MDN article:\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values\n *\n * ┌───── inline/blockDocumentOffset inlineScrollbarWidth\n * │ │ │\n * │ ┌─▼─────┐ │Document\n * │ ┌┼───────┴──────────────────────────────┼────────┐\n * │ ││ │ │\n * └──► ││ ┌───── inline/blockWindowOffset │ │\n * ││ │ │ ▼ │\n * ││ │ ┌─▼───┐ Window┌┐ │\n * └┤ │ ┌┼─────┴───────────────────────┼│ │\n * │ │ ││ ││ │\n * │ └──► ││ ┌──inline/blockAnchorOffset││ │\n * │ ││ │ │ ││ │\n * │ └┤ │ ┌──▼───┐ ││ │\n * │ │ │ ┌┼──────┤ ││ │\n * │ │ └─►│Anchor│ ││ │\n * │ │ └┴──────┘ ││ │\n * │ │ ││ │\n * │ │ ┌───────────────────────┼┼────┐ │\n * │ │ │ Surface ││ │ │\n * │ │ │ ││ │ │\n * │ │ │ ││ │ │\n * │ │ │ ││ │ │\n * │ │ │ ││ │ │\n * │ ┌┼─────┼───────────────────────┼│ │ │\n * │ ┌─►┴──────┼────────────────────────┘ ├┐ │\n * │ │ │ inline/blockOOBCorrection ││ │\n * │ │ │ │ ││ │\n * │ │ │ ├──►├│ │\n * │ │ │ │ ││ │\n * │ │ └────────────────────────┐▼───┼┘ │\n * │ blockScrollbarHeight └────┘ │\n * │ │\n * └───────────────────────────────────────────────┘\n */\n // Calculate the block positioning properties\n let { blockInset, blockOutOfBoundsCorrection, surfaceBlockProperty } = this.calculateBlock({\n surfaceRect,\n anchorRect,\n anchorBlock,\n surfaceBlock,\n yOffset,\n positioning,\n windowInnerHeight,\n blockScrollbarHeight,\n });\n // If the surface should be out of bounds in the block direction, flip the\n // surface and anchor corner block values and recalculate\n if (blockOutOfBoundsCorrection && !disableBlockFlip) {\n const flippedSurfaceBlock = surfaceBlock === 'start' ? 'end' : 'start';\n const flippedAnchorBlock = anchorBlock === 'start' ? 'end' : 'start';\n const flippedBlock = this.calculateBlock({\n surfaceRect,\n anchorRect,\n anchorBlock: flippedAnchorBlock,\n surfaceBlock: flippedSurfaceBlock,\n yOffset,\n positioning,\n windowInnerHeight,\n blockScrollbarHeight,\n });\n // In the case that the flipped verion would require less out of bounds\n // correcting, use the flipped corner block values\n if (blockOutOfBoundsCorrection > flippedBlock.blockOutOfBoundsCorrection) {\n blockInset = flippedBlock.blockInset;\n blockOutOfBoundsCorrection = flippedBlock.blockOutOfBoundsCorrection;\n surfaceBlockProperty = flippedBlock.surfaceBlockProperty;\n }\n }\n // Calculate the inline positioning properties\n let { inlineInset, inlineOutOfBoundsCorrection, surfaceInlineProperty } = this.calculateInline({\n surfaceRect,\n anchorRect,\n anchorInline,\n surfaceInline,\n xOffset,\n positioning,\n isLTR,\n windowInnerWidth,\n inlineScrollbarWidth,\n });\n // If the surface should be out of bounds in the inline direction, flip the\n // surface and anchor corner inline values and recalculate\n if (inlineOutOfBoundsCorrection && !disableInlineFlip) {\n const flippedSurfaceInline = surfaceInline === 'start' ? 'end' : 'start';\n const flippedAnchorInline = anchorInline === 'start' ? 'end' : 'start';\n const flippedInline = this.calculateInline({\n surfaceRect,\n anchorRect,\n anchorInline: flippedAnchorInline,\n surfaceInline: flippedSurfaceInline,\n xOffset,\n positioning,\n isLTR,\n windowInnerWidth,\n inlineScrollbarWidth,\n });\n // In the case that the flipped verion would require less out of bounds\n // correcting, use the flipped corner inline values\n if (Math.abs(inlineOutOfBoundsCorrection) >\n Math.abs(flippedInline.inlineOutOfBoundsCorrection)) {\n inlineInset = flippedInline.inlineInset;\n inlineOutOfBoundsCorrection = flippedInline.inlineOutOfBoundsCorrection;\n surfaceInlineProperty = flippedInline.surfaceInlineProperty;\n }\n }\n // If we are simply repositioning the surface back inside the viewport,\n // subtract the out of bounds correction values from the positioning.\n if (repositionStrategy === 'move') {\n blockInset = blockInset - blockOutOfBoundsCorrection;\n inlineInset = inlineInset - inlineOutOfBoundsCorrection;\n }\n this.surfaceStylesInternal = {\n 'display': 'block',\n 'opacity': '1',\n [surfaceBlockProperty]: `${blockInset}px`,\n [surfaceInlineProperty]: `${inlineInset}px`,\n };\n // In the case that we are resizing the surface to stay inside the viewport\n // we need to set height and width on the surface.\n if (repositionStrategy === 'resize') {\n // Add a height property to the styles if there is block height correction\n if (blockOutOfBoundsCorrection) {\n this.surfaceStylesInternal['height'] = `${surfaceRect.height - blockOutOfBoundsCorrection}px`;\n }\n // Add a width property to the styles if there is block height correction\n if (inlineOutOfBoundsCorrection) {\n this.surfaceStylesInternal['width'] = `${surfaceRect.width - inlineOutOfBoundsCorrection}px`;\n }\n }\n this.host.requestUpdate();\n }\n /**\n * Calculates the css property, the inset, and the out of bounds correction\n * for the surface in the block direction.\n */\n calculateBlock(config) {\n const { surfaceRect, anchorRect, anchorBlock, surfaceBlock, yOffset, positioning, windowInnerHeight, blockScrollbarHeight, } = config;\n // We use number booleans to multiply values rather than `if` / ternary\n // statements because it _heavily_ cuts down on nesting and readability\n const relativeToWindow = positioning === 'fixed' || positioning === 'document' ? 1 : 0;\n const relativeToDocument = positioning === 'document' ? 1 : 0;\n const isSurfaceBlockStart = surfaceBlock === 'start' ? 1 : 0;\n const isSurfaceBlockEnd = surfaceBlock === 'end' ? 1 : 0;\n const isOneBlockEnd = anchorBlock !== surfaceBlock ? 1 : 0;\n // Whether or not to apply the height of the anchor\n const blockAnchorOffset = isOneBlockEnd * anchorRect.height + yOffset;\n // The absolute block position of the anchor relative to window\n const blockTopLayerOffset = isSurfaceBlockStart * anchorRect.top +\n isSurfaceBlockEnd *\n (windowInnerHeight - anchorRect.bottom - blockScrollbarHeight);\n const blockDocumentOffset = isSurfaceBlockStart * window.scrollY - isSurfaceBlockEnd * window.scrollY;\n // If the surface's block would be out of bounds of the window, move it back\n // in\n const blockOutOfBoundsCorrection = Math.abs(Math.min(0, windowInnerHeight -\n blockTopLayerOffset -\n blockAnchorOffset -\n surfaceRect.height));\n // The block logical value of the surface\n const blockInset = relativeToWindow * blockTopLayerOffset +\n relativeToDocument * blockDocumentOffset +\n blockAnchorOffset;\n const surfaceBlockProperty = surfaceBlock === 'start' ? 'inset-block-start' : 'inset-block-end';\n return { blockInset, blockOutOfBoundsCorrection, surfaceBlockProperty };\n }\n /**\n * Calculates the css property, the inset, and the out of bounds correction\n * for the surface in the inline direction.\n */\n calculateInline(config) {\n const { isLTR: isLTRBool, surfaceInline, anchorInline, anchorRect, surfaceRect, xOffset, positioning, windowInnerWidth, inlineScrollbarWidth, } = config;\n // We use number booleans to multiply values rather than `if` / ternary\n // statements because it _heavily_ cuts down on nesting and readability\n const relativeToWindow = positioning === 'fixed' || positioning === 'document' ? 1 : 0;\n const relativeToDocument = positioning === 'document' ? 1 : 0;\n const isLTR = isLTRBool ? 1 : 0;\n const isRTL = isLTRBool ? 0 : 1;\n const isSurfaceInlineStart = surfaceInline === 'start' ? 1 : 0;\n const isSurfaceInlineEnd = surfaceInline === 'end' ? 1 : 0;\n const isOneInlineEnd = anchorInline !== surfaceInline ? 1 : 0;\n // Whether or not to apply the width of the anchor\n const inlineAnchorOffset = isOneInlineEnd * anchorRect.width + xOffset;\n // The inline position of the anchor relative to window in LTR\n const inlineTopLayerOffsetLTR = isSurfaceInlineStart * anchorRect.left +\n isSurfaceInlineEnd *\n (windowInnerWidth - anchorRect.right - inlineScrollbarWidth);\n // The inline position of the anchor relative to window in RTL\n const inlineTopLayerOffsetRTL = isSurfaceInlineStart *\n (windowInnerWidth - anchorRect.right - inlineScrollbarWidth) +\n isSurfaceInlineEnd * anchorRect.left;\n // The inline position of the anchor relative to window\n const inlineTopLayerOffset = isLTR * inlineTopLayerOffsetLTR + isRTL * inlineTopLayerOffsetRTL;\n // The inline position of the anchor relative to window in LTR\n const inlineDocumentOffsetLTR = isSurfaceInlineStart * window.scrollX -\n isSurfaceInlineEnd * window.scrollX;\n // The inline position of the anchor relative to window in RTL\n const inlineDocumentOffsetRTL = isSurfaceInlineEnd * window.scrollX -\n isSurfaceInlineStart * window.scrollX;\n // The inline position of the anchor relative to window\n const inlineDocumentOffset = isLTR * inlineDocumentOffsetLTR + isRTL * inlineDocumentOffsetRTL;\n // If the surface's inline would be out of bounds of the window, move it\n // back in\n const inlineOutOfBoundsCorrection = Math.abs(Math.min(0, windowInnerWidth -\n inlineTopLayerOffset -\n inlineAnchorOffset -\n surfaceRect.width));\n // The inline logical value of the surface\n const inlineInset = relativeToWindow * inlineTopLayerOffset +\n inlineAnchorOffset +\n relativeToDocument * inlineDocumentOffset;\n let surfaceInlineProperty = surfaceInline === 'start' ? 'inset-inline-start' : 'inset-inline-end';\n // There are cases where the element is RTL but the root of the page is not.\n // In these cases we want to not use logical properties.\n if (positioning === 'document' || positioning === 'fixed') {\n if ((surfaceInline === 'start' && isLTRBool) ||\n (surfaceInline === 'end' && !isLTRBool)) {\n surfaceInlineProperty = 'left';\n }\n else {\n surfaceInlineProperty = 'right';\n }\n }\n return {\n inlineInset,\n inlineOutOfBoundsCorrection,\n surfaceInlineProperty,\n };\n }\n hostUpdate() {\n this.onUpdate();\n }\n hostUpdated() {\n this.onUpdate();\n }\n /**\n * Checks whether the properties passed into the controller have changed since\n * the last positioning. If so, it will reposition if the surface is open or\n * close it if the surface should close.\n */\n async onUpdate() {\n const props = this.getProperties();\n let hasChanged = false;\n for (const [key, value] of Object.entries(props)) {\n // tslint:disable-next-line\n hasChanged = hasChanged || value !== this.lastValues[key];\n if (hasChanged)\n break;\n }\n const openChanged = this.lastValues.isOpen !== props.isOpen;\n const hasAnchor = !!props.anchorEl;\n const hasSurface = !!props.surfaceEl;\n if (hasChanged && hasAnchor && hasSurface) {\n // Only update isOpen, because if it's closed, we do not want to waste\n // time on a useless reposition calculation. So save the other \"dirty\"\n // values until next time it opens.\n this.lastValues.isOpen = props.isOpen;\n if (props.isOpen) {\n // We are going to do a reposition, so save the prop values for future\n // dirty checking.\n this.lastValues = props;\n await this.position();\n props.onOpen();\n }\n else if (openChanged) {\n await props.beforeClose();\n this.close();\n props.onClose();\n }\n }\n }\n /**\n * Hides the surface.\n */\n close() {\n this.surfaceStylesInternal = {\n 'display': 'none',\n };\n this.host.requestUpdate();\n const surfaceEl = this.getProperties().surfaceEl;\n // The following type casts are required due to differing TS types in Google\n // and open source.\n if (surfaceEl?.popover &&\n surfaceEl?.isConnected) {\n surfaceEl.hidePopover();\n }\n }\n}\n//# sourceMappingURL=surfacePositionController.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Indicies to access the TypeaheadRecord tuple type.\n */\nexport const TYPEAHEAD_RECORD = {\n INDEX: 0,\n ITEM: 1,\n TEXT: 2,\n};\n/**\n * This controller listens to `keydown` events and searches the header text of\n * an array of `MenuItem`s with the corresponding entered keys within the buffer\n * time and activates the item.\n *\n * @example\n * ```ts\n * const typeaheadController = new TypeaheadController(() => ({\n * typeaheadBufferTime: 50,\n * getItems: () => Array.from(document.querySelectorAll('mdif1-menu-item'))\n * }));\n * html`\n * <div\n * @keydown=${typeaheadController.onKeydown}\n * tabindex=\"0\"\n * class=\"activeItemText\">\n * <!-- focusable element that will receive keydown events -->\n * Apple\n * </div>\n * <div>\n * <mdif1-menu-item active header=\"Apple\"></mdif1-menu-item>\n * <mdif1-menu-item header=\"Apricot\"></mdif1-menu-item>\n * <mdif1-menu-item header=\"Banana\"></mdif1-menu-item>\n * <mdif1-menu-item header=\"Olive\"></mdif1-menu-item>\n * <mdif1-menu-item header=\"Orange\"></mdif1-menu-item>\n * </div>\n * `;\n * ```\n */\nexport class TypeaheadController {\n /**\n * @param getProperties A function that returns the options of the typeahead\n * controller:\n *\n * {\n * getItems: A function that returns an array of menu items to be searched.\n * typeaheadBufferTime: The maximum time between each keystroke to keep the\n * current type buffer alive.\n * }\n */\n constructor(getProperties) {\n this.getProperties = getProperties;\n /**\n * Array of tuples that helps with indexing.\n */\n this.typeaheadRecords = [];\n /**\n * Currently-typed text since last buffer timeout\n */\n this.typaheadBuffer = '';\n /**\n * The timeout id from the current buffer's setTimeout\n */\n this.cancelTypeaheadTimeout = 0;\n /**\n * If we are currently \"typing\"\n */\n this.isTypingAhead = false;\n /**\n * The record of the last active item.\n */\n this.lastActiveRecord = null;\n /**\n * Apply this listener to the element that will receive `keydown` events that\n * should trigger this controller.\n *\n * @param event The native browser `KeyboardEvent` from the `keydown` event.\n */\n this.onKeydown = (event) => {\n if (this.isTypingAhead) {\n this.typeahead(event);\n }\n else {\n this.beginTypeahead(event);\n }\n };\n /**\n * Ends the current typeahead and clears the buffer.\n */\n this.endTypeahead = () => {\n this.isTypingAhead = false;\n this.typaheadBuffer = '';\n this.typeaheadRecords = [];\n };\n }\n get items() {\n return this.getProperties().getItems();\n }\n get active() {\n return this.getProperties().active;\n }\n /**\n * Sets up typingahead\n */\n beginTypeahead(event) {\n if (!this.active) {\n return;\n }\n // We don't want to typeahead if the _beginning_ of the typeahead is a menu\n // navigation, or a selection. We will handle \"Space\" only if it's in the\n // middle of a typeahead\n if (event.code === 'Space' ||\n event.code === 'Enter' ||\n event.code.startsWith('Arrow') ||\n event.code === 'Escape') {\n return;\n }\n this.isTypingAhead = true;\n // Generates the record array data structure which is the index, the element\n // and a normalized header.\n this.typeaheadRecords = this.items.map((el, index) => [\n index,\n el,\n el.typeaheadText.trim().toLowerCase(),\n ]);\n this.lastActiveRecord =\n this.typeaheadRecords.find((record) => record[TYPEAHEAD_RECORD.ITEM].tabIndex === 0) ?? null;\n if (this.lastActiveRecord) {\n this.lastActiveRecord[TYPEAHEAD_RECORD.ITEM].tabIndex = -1;\n }\n this.typeahead(event);\n }\n /**\n * Performs the typeahead. Based on the normalized items and the current text\n * buffer, finds the _next_ item with matching text and activates it.\n *\n * @example\n *\n * items: Apple, Banana, Olive, Orange, Cucumber\n * buffer: ''\n * user types: o\n *\n * activates Olive\n *\n * @example\n *\n * items: Apple, Banana, Olive (active), Orange, Cucumber\n * buffer: 'o'\n * user types: l\n *\n * activates Olive\n *\n * @example\n *\n * items: Apple, Banana, Olive (active), Orange, Cucumber\n * buffer: ''\n * user types: o\n *\n * activates Orange\n *\n * @example\n *\n * items: Apple, Banana, Olive, Orange (active), Cucumber\n * buffer: ''\n * user types: o\n *\n * activates Olive\n */\n typeahead(event) {\n if (event.defaultPrevented)\n return;\n clearTimeout(this.cancelTypeaheadTimeout);\n // Stop typingahead if one of the navigation or selection keys (except for\n // Space) are pressed\n if (event.code === 'Enter' ||\n event.code.startsWith('Arrow') ||\n event.code === 'Escape') {\n this.endTypeahead();\n if (this.lastActiveRecord) {\n this.lastActiveRecord[TYPEAHEAD_RECORD.ITEM].tabIndex = -1;\n }\n return;\n }\n // If Space is pressed, prevent it from selecting and closing the menu\n if (event.code === 'Space') {\n event.preventDefault();\n }\n // Start up a new keystroke buffer timeout\n this.cancelTypeaheadTimeout = setTimeout(this.endTypeahead, this.getProperties().typeaheadBufferTime);\n this.typaheadBuffer += event.key.toLowerCase();\n const lastActiveIndex = this.lastActiveRecord\n ? this.lastActiveRecord[TYPEAHEAD_RECORD.INDEX]\n : -1;\n const numRecords = this.typeaheadRecords.length;\n /**\n * Sorting function that will resort the items starting with the given index\n *\n * @example\n *\n * this.typeaheadRecords =\n * 0: [0, <reference>, 'apple']\n * 1: [1, <reference>, 'apricot']\n * 2: [2, <reference>, 'banana']\n * 3: [3, <reference>, 'olive'] <-- lastActiveIndex\n * 4: [4, <reference>, 'orange']\n * 5: [5, <reference>, 'strawberry']\n *\n * this.typeaheadRecords.sort((a,b) => rebaseIndexOnActive(a)\n * - rebaseIndexOnActive(b)) ===\n * 0: [3, <reference>, 'olive'] <-- lastActiveIndex\n * 1: [4, <reference>, 'orange']\n * 2: [5, <reference>, 'strawberry']\n * 3: [0, <reference>, 'apple']\n * 4: [1, <reference>, 'apricot']\n * 5: [2, <reference>, 'banana']\n */\n const rebaseIndexOnActive = (record) => {\n return ((record[TYPEAHEAD_RECORD.INDEX] + numRecords - lastActiveIndex) %\n numRecords);\n };\n // records filtered and sorted / rebased around the last active index\n const matchingRecords = this.typeaheadRecords\n .filter((record) => !record[TYPEAHEAD_RECORD.ITEM].disabled &&\n record[TYPEAHEAD_RECORD.TEXT].startsWith(this.typaheadBuffer))\n .sort((a, b) => rebaseIndexOnActive(a) - rebaseIndexOnActive(b));\n // Just leave if there's nothing that matches. Native select will just\n // choose the first thing that starts with the next letter in the alphabet\n // but that's out of scope and hard to localize\n if (matchingRecords.length === 0) {\n clearTimeout(this.cancelTypeaheadTimeout);\n if (this.lastActiveRecord) {\n this.lastActiveRecord[TYPEAHEAD_RECORD.ITEM].tabIndex = -1;\n }\n this.endTypeahead();\n return;\n }\n const isNewQuery = this.typaheadBuffer.length === 1;\n let nextRecord;\n // This is likely the case that someone is trying to \"tab\" through different\n // entries that start with the same letter\n if (this.lastActiveRecord === matchingRecords[0] && isNewQuery) {\n nextRecord = matchingRecords[1] ?? matchingRecords[0];\n }\n else {\n nextRecord = matchingRecords[0];\n }\n if (this.lastActiveRecord) {\n this.lastActiveRecord[TYPEAHEAD_RECORD.ITEM].tabIndex = -1;\n }\n this.lastActiveRecord = nextRecord;\n nextRecord[TYPEAHEAD_RECORD.ITEM].tabIndex = 0;\n nextRecord[TYPEAHEAD_RECORD.ITEM].focus();\n return;\n }\n}\n//# sourceMappingURL=typeaheadController.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../elevation/elevation.js';\nimport '../../focus/focus-ring.js';\nimport { LitElement, html, isServer, nothing } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { EASING, createAnimationSignal } from '../../internal/motion/animation.js';\nimport { ListController, NavigableKeys, } from '../../list/internal/list-controller.js';\nimport { getActiveItem, getFirstActivatableItem, getLastActivatableItem, } from '../../list/internal/list-navigation-helpers.js';\nimport { FocusState, isClosableKey, isElementInSubtree, } from './controllers/shared.js';\nimport { Corner, SurfacePositionController, } from './controllers/surfacePositionController.js';\nimport { TypeaheadController } from './controllers/typeaheadController.js';\nexport { Corner } from './controllers/surfacePositionController.js';\n/**\n * The default value for the typeahead buffer time in Milliseconds.\n */\nexport const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;\nconst submenuNavKeys = new Set([\n NavigableKeys.ArrowDown,\n NavigableKeys.ArrowUp,\n NavigableKeys.Home,\n NavigableKeys.End,\n]);\nconst menuNavKeys = new Set([\n NavigableKeys.ArrowLeft,\n NavigableKeys.ArrowRight,\n ...submenuNavKeys,\n]);\n/**\n * Gets the currently focused element on the page.\n *\n * @param activeDoc The document or shadowroot from which to start the search.\n * Defaults to `window.document`\n * @return Returns the currently deeply focused element or `null` if none.\n */\nfunction getFocusedElement(activeDoc = document) {\n let activeEl = activeDoc.activeElement;\n // Check for activeElement in the case that an element with a shadow root host\n // is currently focused.\n while (activeEl && activeEl?.shadowRoot?.activeElement) {\n activeEl = activeEl.shadowRoot.activeElement;\n }\n return activeEl;\n}\n/**\n * @fires opening {Event} Fired before the opening animation begins\n * @fires opened {Event} Fired once the menu is open, after any animations\n * @fires closing {Event} Fired before the closing animation begins\n * @fires closed {Event} Fired once the menu is closed, after any animations\n */\nexport class Menu extends LitElement {\n /**\n * Whether the menu is animating upwards or downwards when opening. This is\n * helpful for calculating some animation calculations.\n */\n get openDirection() {\n const menuCornerBlock = this.menuCorner.split('-')[0];\n return menuCornerBlock === 'start' ? 'DOWN' : 'UP';\n }\n /**\n * The element which the menu should align to. If `anchor` is set to a\n * non-empty idref string, then `anchorEl` will resolve to the element with\n * the given id in the same root node. Otherwise, `null`.\n */\n get anchorElement() {\n if (this.anchor) {\n return this.getRootNode().querySelector(`#${this.anchor}`);\n }\n return this.currentAnchorElement;\n }\n set anchorElement(element) {\n this.currentAnchorElement = element;\n this.requestUpdate('anchorElement');\n }\n constructor() {\n super();\n /**\n * The ID of the element in the same root node in which the menu should align\n * to. Overrides setting `anchorElement = elementReference`.\n *\n * __NOTE__: anchor or anchorElement must either be an HTMLElement or resolve\n * to an HTMLElement in order for menu to open.\n */\n this.anchor = '';\n /**\n * Whether the positioning algorithm should calculate relative to the parent\n * of the anchor element (`absolute`), relative to the window (`fixed`), or\n * relative to the document (`document`). `popover` will use the popover API\n * to render the menu in the top-layer. If your browser does not support the\n * popover API, it will fall back to `fixed`.\n *\n * __Examples for `position = 'fixed'`:__\n *\n * - If there is no `position:relative` in the given parent tree and the\n * surface is `position:absolute`\n * - If the surface is `position:fixed`\n * - If the surface is in the \"top layer\"\n * - The anchor and the surface do not share a common `position:relative`\n * ancestor\n *\n * When using `positioning=fixed`, in most cases, the menu should position\n * itself above most other `position:absolute` or `position:fixed` elements\n * when placed inside of them. e.g. using a menu inside of an `mdif1-dialog`.\n *\n * __NOTE__: Fixed menus will not scroll with the page and will be fixed to\n * the window instead.\n *\n * __Examples for `position = 'document'`:__\n *\n * - There is no parent that creates a relative positioning context e.g.\n * `position: relative`, `position: absolute`, `transform: translate(x, y)`,\n * etc.\n * - You put the effort into hoisting the menu to the top of the DOM like the\n * end of the `<body>` to render over everything or in a top-layer.\n * - You are reusing a single `mdif1-menu` element that dynamically renders\n * content.\n *\n * __Examples for `position = 'popover'`:__\n *\n * - Your browser supports `popover`.\n * - Most cases. Once popover is in browsers, this will become the default.\n */\n this.positioning = 'absolute';\n /**\n * Skips the opening and closing animations.\n */\n this.quick = false;\n /**\n * Displays overflow content like a submenu. Not required in most cases when\n * using `positioning=\"popover\"`.\n *\n * __NOTE__: This may cause adverse effects if you set\n * `mdif1-menu {max-height:...}`\n * and have items overflowing items in the \"y\" direction.\n */\n this.hasOverflow = false;\n /**\n * Opens the menu and makes it visible. Alternative to the `.show()` and\n * `.close()` methods\n */\n this.open = false;\n /**\n * Offsets the menu's inline alignment from the anchor by the given number in\n * pixels. This value is direction aware and will follow the LTR / RTL\n * direction.\n *\n * e.g. LTR: positive -> right, negative -> left\n * RTL: positive -> left, negative -> right\n */\n this.xOffset = 0;\n /**\n * Offsets the menu's block alignment from the anchor by the given number in\n * pixels.\n *\n * e.g. positive -> down, negative -> up\n */\n this.yOffset = 0;\n /**\n * Disable the `flip` behavior that usually happens on the horizontal axis\n * when the surface would render outside the viewport.\n */\n this.noHorizontalFlip = false;\n /**\n * Disable the `flip` behavior that usually happens on the vertical axis when\n * the surface would render outside the viewport.\n */\n this.noVerticalFlip = false;\n /**\n * The max time between the keystrokes of the typeahead menu behavior before\n * it clears the typeahead buffer.\n */\n this.typeaheadDelay = DEFAULT_TYPEAHEAD_BUFFER_TIME;\n /**\n * The corner of the anchor which to align the menu in the standard logical\n * property style of <block>-<inline> e.g. `'end-start'`.\n *\n * NOTE: This value may not be respected by the menu positioning algorithm\n * if the menu would render outisde the viewport.\n * Use `no-horizontal-flip` or `no-vertical-flip` to force the usage of the value\n */\n this.anchorCorner = Corner.END_START;\n /**\n * The corner of the menu which to align the anchor in the standard logical\n * property style of <block>-<inline> e.g. `'start-start'`.\n *\n * NOTE: This value may not be respected by the menu positioning algorithm\n * if the menu would render outisde the viewport.\n * Use `no-horizontal-flip` or `no-vertical-flip` to force the usage of the value\n */\n this.menuCorner = Corner.START_START;\n /**\n * Keeps the user clicks outside the menu.\n *\n * NOTE: clicking outside may still cause focusout to close the menu so see\n * `stayOpenOnFocusout`.\n */\n this.stayOpenOnOutsideClick = false;\n /**\n * Keeps the menu open when focus leaves the menu's composed subtree.\n *\n * NOTE: Focusout behavior will stop propagation of the focusout event. Set\n * this property to true to opt-out of menu's focusout handling altogether.\n */\n this.stayOpenOnFocusout = false;\n /**\n * After closing, does not restore focus to the last focused element before\n * the menu was opened.\n */\n this.skipRestoreFocus = false;\n /**\n * The element that should be focused by default once opened.\n *\n * NOTE: When setting default focus to 'LIST_ROOT', remember to change\n * `tabindex` to `0` and change mdif1-menu's display to something other than\n * `display: contents` when necessary.\n */\n this.defaultFocus = FocusState.FIRST_ITEM;\n /**\n * Turns off navigation wrapping. By default, navigating past the end of the\n * menu items will wrap focus back to the beginning and vice versa. Use this\n * for ARIA patterns that do not wrap focus, like combobox.\n */\n this.noNavigationWrap = false;\n this.typeaheadActive = true;\n /**\n * Whether or not the current menu is a submenu and should not handle specific\n * navigation keys.\n *\n * @export\n */\n this.isSubmenu = false;\n /**\n * The event path of the last window pointerdown event.\n */\n this.pointerPath = [];\n /**\n * Whether or not the menu is repositoining due to window / document resize\n */\n this.isRepositioning = false;\n this.openCloseAnimationSignal = createAnimationSignal();\n this.listController = new ListController({\n isItem: (maybeItem) => {\n return maybeItem.hasAttribute('mdif1-menu-item');\n },\n getPossibleItems: () => this.slotItems,\n isRtl: () => getComputedStyle(this).direction === 'rtl',\n deactivateItem: (item) => {\n item.selected = false;\n item.tabIndex = -1;\n },\n activateItem: (item) => {\n item.selected = true;\n item.tabIndex = 0;\n },\n isNavigableKey: (key) => {\n if (!this.isSubmenu) {\n return menuNavKeys.has(key);\n }\n const isRtl = getComputedStyle(this).direction === 'rtl';\n // we want mdif1-submenu to handle the submenu's left/right arrow exit\n // key so it can close the menu instead of navigate the list.\n // Therefore we need to include all keys but left/right arrow close\n // key\n const arrowOpen = isRtl\n ? NavigableKeys.ArrowLeft\n : NavigableKeys.ArrowRight;\n if (key === arrowOpen) {\n return true;\n }\n return submenuNavKeys.has(key);\n },\n wrapNavigation: () => !this.noNavigationWrap,\n });\n /**\n * The element that was focused before the menu opened.\n */\n this.lastFocusedElement = null;\n /**\n * Handles typeahead navigation through the menu.\n */\n this.typeaheadController = new TypeaheadController(() => {\n return {\n getItems: () => this.items,\n typeaheadBufferTime: this.typeaheadDelay,\n active: this.typeaheadActive,\n };\n });\n this.currentAnchorElement = null;\n this.internals = \n // Cast needed for closure\n this.attachInternals();\n /**\n * Handles positioning the surface and aligning it to the anchor as well as\n * keeping it in the viewport.\n */\n this.menuPositionController = new SurfacePositionController(this, () => {\n return {\n anchorCorner: this.anchorCorner,\n surfaceCorner: this.menuCorner,\n surfaceEl: this.surfaceEl,\n anchorEl: this.anchorElement,\n positioning: this.positioning === 'popover' ? 'document' : this.positioning,\n isOpen: this.open,\n xOffset: this.xOffset,\n yOffset: this.yOffset,\n disableBlockFlip: this.noVerticalFlip,\n disableInlineFlip: this.noHorizontalFlip,\n onOpen: this.onOpened,\n beforeClose: this.beforeClose,\n onClose: this.onClosed,\n // We can't resize components that have overflow like menus with\n // submenus because the overflow-y will show menu items / content\n // outside the bounds of the menu. Popover API fixes this because each\n // submenu is hoisted to the top-layer and are not considered overflow\n // content.\n repositionStrategy: this.hasOverflow && this.positioning !== 'popover'\n ? 'move'\n : 'resize',\n };\n });\n this.onWindowResize = () => {\n if (this.isRepositioning ||\n (this.positioning !== 'document' &&\n this.positioning !== 'fixed' &&\n this.positioning !== 'popover')) {\n return;\n }\n this.isRepositioning = true;\n this.reposition();\n this.isRepositioning = false;\n };\n this.handleFocusout = async (event) => {\n const anchorEl = this.anchorElement;\n // Do not close if we focused out by clicking on the anchor element. We\n // can't assume anchor buttons can be the related target because of iOS does\n // not focus buttons.\n if (this.stayOpenOnFocusout ||\n !this.open ||\n this.pointerPath.includes(anchorEl)) {\n return;\n }\n if (event.relatedTarget) {\n // Don't close the menu if we are switching focus between menu,\n // mdif1-menu-item, and mdif1-list or if the anchor was click focused, but check\n // if length of pointerPath is 0 because that means something was at least\n // clicked (shift+tab case).\n if (isElementInSubtree(event.relatedTarget, this) ||\n (this.pointerPath.length !== 0 &&\n isElementInSubtree(event.relatedTarget, anchorEl))) {\n return;\n }\n }\n else if (this.pointerPath.includes(this)) {\n // If menu tabindex == -1 and the user clicks on the menu or a divider, we\n // want to keep the menu open.\n return;\n }\n const oldRestoreFocus = this.skipRestoreFocus;\n // allow focus to continue to the next focused object rather than returning\n this.skipRestoreFocus = true;\n this.close();\n // await for close\n await this.updateComplete;\n // return to previous behavior\n this.skipRestoreFocus = oldRestoreFocus;\n };\n /**\n * Saves the last focused element focuses the new element based on\n * `defaultFocus`, and animates open.\n */\n this.onOpened = async () => {\n this.lastFocusedElement = getFocusedElement();\n const items = this.items;\n const activeItemRecord = getActiveItem(items);\n if (activeItemRecord && this.defaultFocus !== FocusState.NONE) {\n activeItemRecord.item.tabIndex = -1;\n }\n let animationAborted = !this.quick;\n if (this.quick) {\n this.dispatchEvent(new Event('opening'));\n }\n else {\n animationAborted = !!(await this.animateOpen());\n }\n // This must come after the opening animation or else it may focus one of\n // the items before the animation has begun and causes the list to slide\n // (block-padding-of-the-menu)px at the end of the animation\n switch (this.defaultFocus) {\n case FocusState.FIRST_ITEM:\n const first = getFirstActivatableItem(items);\n if (first) {\n first.tabIndex = 0;\n first.focus();\n await first.updateComplete;\n }\n break;\n case FocusState.LAST_ITEM:\n const last = getLastActivatableItem(items);\n if (last) {\n last.tabIndex = 0;\n last.focus();\n await last.updateComplete;\n }\n break;\n case FocusState.LIST_ROOT:\n this.focus();\n break;\n default:\n case FocusState.NONE:\n // Do nothing.\n break;\n }\n if (!animationAborted) {\n this.dispatchEvent(new Event('opened'));\n }\n };\n /**\n * Animates closed.\n */\n this.beforeClose = async () => {\n this.open = false;\n if (!this.skipRestoreFocus) {\n this.lastFocusedElement?.focus?.();\n }\n if (!this.quick) {\n await this.animateClose();\n }\n };\n /**\n * Focuses the last focused element.\n */\n this.onClosed = () => {\n if (this.quick) {\n this.dispatchEvent(new Event('closing'));\n this.dispatchEvent(new Event('closed'));\n }\n };\n this.onWindowPointerdown = (event) => {\n this.pointerPath = event.composedPath();\n };\n /**\n * We cannot listen to window click because Safari on iOS will not bubble a\n * click event on window if the item clicked is not a \"clickable\" item such as\n * <body>\n */\n this.onDocumentClick = (event) => {\n if (!this.open) {\n return;\n }\n const path = event.composedPath();\n if (!this.stayOpenOnOutsideClick &&\n !path.includes(this) &&\n !path.includes(this.anchorElement)) {\n this.open = false;\n }\n };\n if (!isServer) {\n this.internals.role = 'menu';\n this.addEventListener('keydown', this.handleKeydown);\n // Capture so that we can grab the event before it reaches the menu item\n // istelf. Specifically useful for the case where typeahead encounters a\n // space and we don't want the menu item to close the menu.\n this.addEventListener('keydown', this.captureKeydown, { capture: true });\n this.addEventListener('focusout', this.handleFocusout);\n }\n }\n /**\n * The menu items associated with this menu. The items must be `MenuItem`s and\n * have both the `mdif1-menu-item` and `mdif1-list-item` attributes.\n */\n get items() {\n return this.listController.items;\n }\n willUpdate(changed) {\n if (!changed.has('open')) {\n return;\n }\n if (this.open) {\n this.removeAttribute('aria-hidden');\n return;\n }\n this.setAttribute('aria-hidden', 'true');\n }\n update(changed) {\n if (changed.has('open')) {\n if (this.open) {\n this.setUpGlobalEventListeners();\n }\n else {\n this.cleanUpGlobalEventListeners();\n }\n }\n // Firefox does not support popover. Fall-back to using fixed.\n if (changed.has('positioning') &&\n this.positioning === 'popover' &&\n // type required for Google JS conformance\n !this.showPopover) {\n this.positioning = 'fixed';\n }\n super.update(changed);\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.open) {\n this.setUpGlobalEventListeners();\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.cleanUpGlobalEventListeners();\n }\n getBoundingClientRect() {\n if (!this.surfaceEl) {\n return super.getBoundingClientRect();\n }\n return this.surfaceEl.getBoundingClientRect();\n }\n getClientRects() {\n if (!this.surfaceEl) {\n return super.getClientRects();\n }\n return this.surfaceEl.getClientRects();\n }\n render() {\n return this.renderSurface();\n }\n /**\n * Renders the positionable surface element and its contents.\n */\n renderSurface() {\n return html `\n <div\n class=\"menu ${classMap(this.getSurfaceClasses())}\"\n style=${styleMap(this.menuPositionController.surfaceStyles)}\n popover=${this.positioning === 'popover' ? 'manual' : nothing}>\n ${this.renderElevation()}\n <div class=\"items\">\n <div class=\"item-padding\"> ${this.renderMenuItems()} </div>\n </div>\n </div>\n `;\n }\n /**\n * Renders the menu items' slot\n */\n renderMenuItems() {\n return html `<slot\n @close-menu=${this.onCloseMenu}\n @deactivate-items=${this.onDeactivateItems}\n @request-activation=${this.onRequestActivation}\n @deactivate-typeahead=${this.handleDeactivateTypeahead}\n @activate-typeahead=${this.handleActivateTypeahead}\n @stay-open-on-focusout=${this.handleStayOpenOnFocusout}\n @close-on-focusout=${this.handleCloseOnFocusout}\n @slotchange=${this.listController.onSlotchange}></slot>`;\n }\n /**\n * Renders the elevation component.\n */\n renderElevation() {\n return html `<mdif1-elevation part=\"elevation\"></mdif1-elevation>`;\n }\n getSurfaceClasses() {\n return {\n open: this.open,\n fixed: this.positioning === 'fixed',\n 'has-overflow': this.hasOverflow,\n };\n }\n captureKeydown(event) {\n if (event.target === this &&\n !event.defaultPrevented &&\n isClosableKey(event.code)) {\n event.preventDefault();\n this.close();\n }\n this.typeaheadController.onKeydown(event);\n }\n /**\n * Performs the opening animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n *\n * @return A promise that resolve to `true` if the animation was aborted,\n * `false` if it was not aborted.\n */\n async animateOpen() {\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n if (!surfaceEl || !slotEl)\n return true;\n const openDirection = this.openDirection;\n this.dispatchEvent(new Event('opening'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const openingUpwards = openDirection === 'UP';\n const children = this.items;\n const FULL_DURATION = 500;\n const SURFACE_OPACITY_DURATION = 50;\n const ITEM_OPACITY_DURATION = 250;\n // We want to fit every child fade-in animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_DURATION) / children.length;\n const surfaceHeightAnimation = surfaceEl.animate([{ height: '0px' }, { height: `${height}px` }], {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED,\n });\n // When we are opening upwards, we want to make sure the last item is always\n // in view, so we need to translate it upwards the opposite direction of the\n // height animation\n const upPositionCorrectionAnimation = slotEl.animate([\n { transform: openingUpwards ? `translateY(-${height}px)` : '' },\n { transform: '' },\n ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED });\n const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 0 }, { opacity: 1 }], SURFACE_OPACITY_DURATION);\n const childrenAnimations = [];\n for (let i = 0; i < children.length; i++) {\n // If we are animating upwards, then reverse the children list.\n const directionalIndex = openingUpwards ? children.length - 1 - i : i;\n const child = children[directionalIndex];\n const animation = child.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: ITEM_OPACITY_DURATION,\n delay: DELAY_BETWEEN_ITEMS * i,\n });\n // Make them all initially hidden and then clean up at the end of each\n // animation.\n child.classList.toggle('mdif1-menu-hidden', true);\n animation.addEventListener('finish', () => {\n child.classList.toggle('mdif1-menu-hidden', false);\n });\n childrenAnimations.push([child, animation]);\n }\n let resolveAnimation = (value) => { };\n const animationFinished = new Promise((resolve) => {\n resolveAnimation = resolve;\n });\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n upPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n child.classList.toggle('mdif1-menu-hidden', false);\n animation.cancel();\n });\n resolveAnimation(true);\n });\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n this.openCloseAnimationSignal.finish();\n resolveAnimation(false);\n });\n return await animationFinished;\n }\n /**\n * Performs the closing animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n */\n animateClose() {\n let resolve;\n // This promise blocks the surface position controller from setting\n // display: none on the surface which will interfere with this animation.\n const animationEnded = new Promise((res) => {\n resolve = res;\n });\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n if (!surfaceEl || !slotEl) {\n resolve(false);\n return animationEnded;\n }\n const openDirection = this.openDirection;\n const closingDownwards = openDirection === 'UP';\n this.dispatchEvent(new Event('closing'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const children = this.items;\n const FULL_DURATION = 150;\n const SURFACE_OPACITY_DURATION = 50;\n // The surface fades away at the very end\n const SURFACE_OPACITY_DELAY = FULL_DURATION - SURFACE_OPACITY_DURATION;\n const ITEM_OPACITY_DURATION = 50;\n const ITEM_OPACITY_INITIAL_DELAY = 50;\n const END_HEIGHT_PERCENTAGE = 0.35;\n // We want to fit every child fade-out animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_INITIAL_DELAY - ITEM_OPACITY_DURATION) /\n children.length;\n // The mock has the animation shrink to 35%\n const surfaceHeightAnimation = surfaceEl.animate([\n { height: `${height}px` },\n { height: `${height * END_HEIGHT_PERCENTAGE}px` },\n ], {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED_ACCELERATE,\n });\n // When we are closing downwards, we want to make sure the last item is\n // always in view, so we need to translate it upwards the opposite direction\n // of the height animation\n const downPositionCorrectionAnimation = slotEl.animate([\n { transform: '' },\n {\n transform: closingDownwards\n ? `translateY(-${height * (1 - END_HEIGHT_PERCENTAGE)}px)`\n : '',\n },\n ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED_ACCELERATE });\n const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 1 }, { opacity: 0 }], { duration: SURFACE_OPACITY_DURATION, delay: SURFACE_OPACITY_DELAY });\n const childrenAnimations = [];\n for (let i = 0; i < children.length; i++) {\n // If the animation is closing upwards, then reverse the list of\n // children so that we animate in the opposite direction.\n const directionalIndex = closingDownwards ? i : children.length - 1 - i;\n const child = children[directionalIndex];\n const animation = child.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: ITEM_OPACITY_DURATION,\n delay: ITEM_OPACITY_INITIAL_DELAY + DELAY_BETWEEN_ITEMS * i,\n });\n // Make sure the items stay hidden at the end of each child animation.\n // We clean this up at the end of the overall animation.\n animation.addEventListener('finish', () => {\n child.classList.toggle('mdif1-menu-hidden', true);\n });\n childrenAnimations.push([child, animation]);\n }\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n downPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n animation.cancel();\n child.classList.toggle('mdif1-menu-hidden', false);\n });\n resolve(false);\n });\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n childrenAnimations.forEach(([child]) => {\n child.classList.toggle('mdif1-menu-hidden', false);\n });\n this.openCloseAnimationSignal.finish();\n this.dispatchEvent(new Event('closed'));\n resolve(true);\n });\n return animationEnded;\n }\n handleKeydown(event) {\n // At any key event, the pointer interaction is done so we need to clear our\n // cached pointerpath. This handles the case where the user clicks on the\n // anchor, and then hits shift+tab\n this.pointerPath = [];\n this.listController.handleKeydown(event);\n }\n setUpGlobalEventListeners() {\n document.addEventListener('click', this.onDocumentClick, { capture: true });\n window.addEventListener('pointerdown', this.onWindowPointerdown);\n document.addEventListener('resize', this.onWindowResize, { passive: true });\n window.addEventListener('resize', this.onWindowResize, { passive: true });\n }\n cleanUpGlobalEventListeners() {\n document.removeEventListener('click', this.onDocumentClick, {\n capture: true,\n });\n window.removeEventListener('pointerdown', this.onWindowPointerdown);\n document.removeEventListener('resize', this.onWindowResize);\n window.removeEventListener('resize', this.onWindowResize);\n }\n onCloseMenu() {\n this.close();\n }\n onDeactivateItems(event) {\n event.stopPropagation();\n this.listController.onDeactivateItems();\n }\n onRequestActivation(event) {\n event.stopPropagation();\n this.listController.onRequestActivation(event);\n }\n handleDeactivateTypeahead(event) {\n // stopPropagation so that this does not deactivate any typeaheads in menus\n // nested above it e.g. mdif1-sub-menu\n event.stopPropagation();\n this.typeaheadActive = false;\n }\n handleActivateTypeahead(event) {\n // stopPropagation so that this does not activate any typeaheads in menus\n // nested above it e.g. mdif1-sub-menu\n event.stopPropagation();\n this.typeaheadActive = true;\n }\n handleStayOpenOnFocusout(event) {\n event.stopPropagation();\n this.stayOpenOnFocusout = true;\n }\n handleCloseOnFocusout(event) {\n event.stopPropagation();\n this.stayOpenOnFocusout = false;\n }\n close() {\n this.open = false;\n const maybeSubmenu = this.slotItems;\n maybeSubmenu.forEach((item) => {\n item.close?.();\n });\n }\n show() {\n this.open = true;\n }\n /**\n * Activates the next item in the menu. If at the end of the menu, the first\n * item will be activated.\n *\n * @return The activated menu item or `null` if there are no items.\n */\n activateNextItem() {\n return this.listController.activateNextItem() ?? null;\n }\n /**\n * Activates the previous item in the menu. If at the start of the menu, the\n * last item will be activated.\n *\n * @return The activated menu item or `null` if there are no items.\n */\n activatePreviousItem() {\n return this.listController.activatePreviousItem() ?? null;\n }\n /**\n * Repositions the menu if it is open.\n *\n * Useful for the case where document or window-positioned menus have their\n * anchors moved while open.\n */\n reposition() {\n if (this.open) {\n this.menuPositionController.position();\n }\n }\n}\n__decorate([\n query('.menu')\n], Menu.prototype, \"surfaceEl\", void 0);\n__decorate([\n query('slot')\n], Menu.prototype, \"slotEl\", void 0);\n__decorate([\n property()\n], Menu.prototype, \"anchor\", void 0);\n__decorate([\n property()\n], Menu.prototype, \"positioning\", void 0);\n__decorate([\n property({ type: Boolean })\n], Menu.prototype, \"quick\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-overflow' })\n], Menu.prototype, \"hasOverflow\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], Menu.prototype, \"open\", void 0);\n__decorate([\n property({ type: Number, attribute: 'x-offset' })\n], Menu.prototype, \"xOffset\", void 0);\n__decorate([\n property({ type: Number, attribute: 'y-offset' })\n], Menu.prototype, \"yOffset\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-horizontal-flip' })\n], Menu.prototype, \"noHorizontalFlip\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-vertical-flip' })\n], Menu.prototype, \"noVerticalFlip\", void 0);\n__decorate([\n property({ type: Number, attribute: 'typeahead-delay' })\n], Menu.prototype, \"typeaheadDelay\", void 0);\n__decorate([\n property({ attribute: 'anchor-corner' })\n], Menu.prototype, \"anchorCorner\", void 0);\n__decorate([\n property({ attribute: 'menu-corner' })\n], Menu.prototype, \"menuCorner\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'stay-open-on-outside-click' })\n], Menu.prototype, \"stayOpenOnOutsideClick\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'stay-open-on-focusout' })\n], Menu.prototype, \"stayOpenOnFocusout\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'skip-restore-focus' })\n], Menu.prototype, \"skipRestoreFocus\", void 0);\n__decorate([\n property({ attribute: 'default-focus' })\n], Menu.prototype, \"defaultFocus\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-navigation-wrap' })\n], Menu.prototype, \"noNavigationWrap\", void 0);\n__decorate([\n queryAssignedElements({ flatten: true })\n], Menu.prototype, \"slotItems\", void 0);\n__decorate([\n state()\n], Menu.prototype, \"typeaheadActive\", void 0);\n//# sourceMappingURL=menu.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./menu/internal/menu-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--mdif1-elevation-level: var(--mdif1-menu-container-elevation, 2);--mdif1-elevation-shadow-color: var(--mdif1-menu-container-shadow-color, var(--mdif1-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}mdif1-focus-ring{--mdif1-focus-ring-shape: var(--mdif1-menu-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--mdif1-menu-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit;scrollbar-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--mdif1-menu-container-color, var(--mdif1-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit;scrollbar-width:inherit}.item-padding{padding-block:var(--mdif1-menu-top-space, 8px) var(--mdif1-menu-bottom-space, 8px)}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.mdif1-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(mdif1-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}\n`;\n//# sourceMappingURL=menu-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Menu } from './internal/menu.js';\nimport { styles } from './internal/menu-styles.js';\nexport { CloseReason, FocusState, } from './internal/controllers/shared.js';\nexport { Corner } from './internal/menu.js';\n/**\n * @summary Menus display a list of choices on a temporary surface.\n *\n * @description\n * Menus appear when users interact with a button, action, or other control.\n *\n * They can be opened from a variety of elements, most commonly icon buttons,\n * buttons, and text fields.\n *\n * mdif1-menu listens for the `close-menu` and `deselect-items` events.\n *\n * - `close-menu` closes the menu when dispatched from a child element.\n * - `deselect-items` deselects all of its immediate menu-item children.\n *\n * @example\n * ```html\n * <div style=\"position:relative;\">\n * <button\n * id=\"anchor\"\n * @click=${() => this.menuRef.value.show()}>\n * Click to open menu\n * </button>\n * <!--\n * `has-overflow` is required when using a submenu which overflows the\n * menu's contents.\n *\n * Additionally, `anchor` ingests an idref which do not pass through shadow\n * roots. You can also set `.anchorElement` to an element reference if\n * necessary.\n * -->\n * <mdif1-menu anchor=\"anchor\" has-overflow ${ref(menuRef)}>\n * <mdif1-menu-item headline=\"This is a headline\"></mdif1-menu-item>\n * <mdif1-sub-menu>\n * <mdif1-menu-item\n * slot=\"item\"\n * headline=\"this is a submenu item\">\n * </mdif1-menu-item>\n * <mdif1-menu slot=\"menu\">\n * <mdif1-menu-item headline=\"This is an item inside a submenu\">\n * </mdif1-menu-item>\n * </mdif1-menu>\n * </mdif1-sub-menu>\n * </mdif1-menu>\n * </div>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\nlet MdMenu = class MdMenu extends Menu {\n};\nMdMenu.styles = [styles];\nMdMenu = __decorate([\n customElement('mdif1-menu')\n], MdMenu);\nexport { MdMenu };\n//# sourceMappingURL=menu.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { html, render } from 'lit';\nimport { Validator } from './validator.js';\n/**\n * A validator that provides constraint validation that emulates `<select>`\n * validation.\n */\nexport class SelectValidator extends Validator {\n computeValidity(state) {\n if (!this.selectControl) {\n // Lazily create the platform select\n this.selectControl = document.createElement('select');\n }\n render(html `<option value=${state.value}></option>`, this.selectControl);\n this.selectControl.value = state.value;\n this.selectControl.required = state.required;\n return {\n validity: this.selectControl.validity,\n validationMessage: this.selectControl.validationMessage,\n };\n }\n equals(prev, next) {\n return prev.value === next.value && prev.required === next.required;\n }\n copy({ value, required }) {\n return { value, required };\n }\n}\n//# sourceMappingURL=select-validator.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Given a list of select options, this function will return an array of\n * SelectOptionRecords that are selected.\n *\n * @return An array of SelectOptionRecords describing the options that are\n * selected.\n */\nexport function getSelectedItems(items) {\n const selectedItemRecords = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.selected) {\n selectedItemRecords.push([item, i]);\n }\n }\n return selectedItemRecords;\n}\n//# sourceMappingURL=shared.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nvar _a;\nimport { __decorate } from \"tslib\";\nimport '../../menu/menu.js';\nimport { html, isServer, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedElements, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { html as staticHtml } from 'lit/static-html.js';\nimport { mixinDelegatesAria } from '../../internal/aria/delegate.js';\nimport { redispatchEvent } from '../../internal/events/redispatch-event.js';\nimport { createValidator, getValidityAnchor, mixinConstraintValidation, } from '../../labs/behaviors/constraint-validation.js';\nimport { mixinElementInternals } from '../../labs/behaviors/element-internals.js';\nimport { getFormValue, mixinFormAssociated, } from '../../labs/behaviors/form-associated.js';\nimport { mixinOnReportValidity, onReportValidity, } from '../../labs/behaviors/on-report-validity.js';\nimport { SelectValidator } from '../../labs/behaviors/validators/select-validator.js';\nimport { getActiveItem } from '../../list/internal/list-navigation-helpers.js';\nimport { FocusState, isElementInSubtree, isSelectableKey, } from '../../menu/internal/controllers/shared.js';\nimport { TYPEAHEAD_RECORD } from '../../menu/internal/controllers/typeaheadController.js';\nimport { DEFAULT_TYPEAHEAD_BUFFER_TIME } from '../../menu/internal/menu.js';\nimport { getSelectedItems } from './shared.js';\nconst VALUE = Symbol('value');\n// Separate variable needed for closure.\nconst selectBaseClass = mixinDelegatesAria(mixinOnReportValidity(mixinConstraintValidation(mixinFormAssociated(mixinElementInternals(LitElement)))));\n/**\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n * @fires opening {Event} Fired when the select's menu is about to open.\n * @fires opened {Event} Fired when the select's menu has finished animations\n * and opened.\n * @fires closing {Event} Fired when the select's menu is about to close.\n * @fires closed {Event} Fired when the select's menu has finished animations\n * and closed.\n */\nexport class Select extends selectBaseClass {\n /**\n * The value of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `value` setting `value` will incur a DOM query.\n */\n get value() {\n return this[VALUE];\n }\n set value(value) {\n if (isServer)\n return;\n this.lastUserSetValue = value;\n this.select(value);\n }\n get options() {\n // NOTE: this does a DOM query.\n return (this.menu?.items ?? []);\n }\n /**\n * The index of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `selectedIndex` setting `selectedIndex` will incur a\n * DOM query.\n */\n get selectedIndex() {\n // tslint:disable-next-line:enforce-name-casing\n const [_option, index] = (this.getSelectedOptions() ?? [])[0] ?? [];\n return index ?? -1;\n }\n set selectedIndex(index) {\n this.lastUserSetSelectedIndex = index;\n this.selectIndex(index);\n }\n /**\n * Returns an array of selected options.\n *\n * NOTE: mdif1-select only supports single selection.\n */\n get selectedOptions() {\n return (this.getSelectedOptions() ?? []).map(([option]) => option);\n }\n get hasError() {\n return this.error || this.nativeError;\n }\n constructor() {\n super();\n /**\n * Opens the menu synchronously with no animation.\n */\n this.quick = false;\n /**\n * Whether or not the select is required.\n */\n this.required = false;\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * This error message overrides the error message displayed by\n * `reportValidity()`.\n */\n this.errorText = '';\n /**\n * The floating label for the field.\n */\n this.label = '';\n /**\n * Disables the asterisk on the floating label, when the select is\n * required.\n */\n this.noAsterisk = false;\n /**\n * Conveys additional information below the select, such as how it should\n * be used.\n */\n this.supportingText = '';\n /**\n * Gets or sets whether or not the select is in a visually invalid state.\n *\n * This error state overrides the error state controlled by\n * `reportValidity()`.\n */\n this.error = false;\n /**\n * Whether or not the underlying mdif1-menu should be position: fixed to display\n * in a top-level manner, or position: absolute.\n *\n * position:fixed is useful for cases where select is inside of another\n * element with stacking context and hidden overflows such as `mdif1-dialog`.\n */\n this.menuPositioning = 'popover';\n /**\n * Clamps the menu-width to the width of the select.\n */\n this.clampMenuWidth = false;\n /**\n * The max time between the keystrokes of the typeahead select / menu behavior\n * before it clears the typeahead buffer.\n */\n this.typeaheadDelay = DEFAULT_TYPEAHEAD_BUFFER_TIME;\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n */\n this.hasLeadingIcon = false;\n /**\n * Text to display in the field. Only set for SSR.\n */\n this.displayText = '';\n /**\n * Whether the menu should be aligned to the start or the end of the select's\n * textbox.\n */\n this.menuAlign = 'start';\n this[_a] = '';\n /**\n * Used for initializing select when the user sets the `value` directly.\n */\n this.lastUserSetValue = null;\n /**\n * Used for initializing select when the user sets the `selectedIndex`\n * directly.\n */\n this.lastUserSetSelectedIndex = null;\n /**\n * Used for `input` and `change` event change detection.\n */\n this.lastSelectedOption = null;\n // tslint:disable-next-line:enforce-name-casing\n this.lastSelectedOptionRecords = [];\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n this.nativeError = false;\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n this.nativeErrorText = '';\n this.focused = false;\n this.open = false;\n this.defaultFocus = FocusState.NONE;\n // Have to keep track of previous open because it's state and private and thus\n // cannot be tracked in PropertyValues<this> map.\n this.prevOpen = this.open;\n this.selectWidth = 0;\n if (isServer) {\n return;\n }\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n /**\n * Selects an option given the value of the option, and updates MdSelect's\n * value.\n */\n select(value) {\n const optionToSelect = this.options.find((option) => option.value === value);\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n /**\n * Selects an option given the index of the option, and updates MdSelect's\n * value.\n */\n selectIndex(index) {\n const optionToSelect = this.options[index];\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n /**\n * Reset the select to its default value.\n */\n reset() {\n for (const option of this.options) {\n option.selected = option.hasAttribute('selected');\n }\n this.updateValueAndDisplayText();\n this.nativeError = false;\n this.nativeErrorText = '';\n }\n /** Shows the picker. If it's already open, this is a no-op. */\n showPicker() {\n this.open = true;\n }\n [(_a = VALUE, onReportValidity)](invalidEvent) {\n // Prevent default pop-up behavior.\n invalidEvent?.preventDefault();\n const prevMessage = this.getErrorText();\n this.nativeError = !!invalidEvent;\n this.nativeErrorText = this.validationMessage;\n if (prevMessage === this.getErrorText()) {\n this.field?.reannounceError();\n }\n }\n update(changed) {\n // In SSR the options will be ready to query, so try to figure out what\n // the value and display text should be.\n if (!this.hasUpdated) {\n this.initUserSelection();\n }\n // We have just opened the menu.\n // We are only able to check for the select's rect in `update()` instead of\n // having to wait for `updated()` because the menu can never be open on\n // first render since it is not settable and Lit SSR does not support click\n // events which would open the menu.\n if (this.prevOpen !== this.open && this.open) {\n const selectRect = this.getBoundingClientRect();\n this.selectWidth = selectRect.width;\n }\n this.prevOpen = this.open;\n super.update(changed);\n }\n render() {\n return html `\n <span\n class=\"select ${classMap(this.getRenderClasses())}\"\n @focusout=${this.handleFocusout}>\n ${this.renderField()} ${this.renderMenu()}\n </span>\n `;\n }\n async firstUpdated(changed) {\n await this.menu?.updateComplete;\n // If this has been handled on update already due to SSR, try again.\n if (!this.lastSelectedOptionRecords.length) {\n this.initUserSelection();\n }\n // Case for when the DOM is streaming, there are no children, and a child\n // has [selected] set on it, we need to wait for DOM to render something.\n if (!this.lastSelectedOptionRecords.length &&\n !isServer &&\n !this.options.length) {\n setTimeout(() => {\n this.updateValueAndDisplayText();\n });\n }\n super.firstUpdated(changed);\n }\n getRenderClasses() {\n return {\n 'disabled': this.disabled,\n 'error': this.error,\n 'open': this.open,\n };\n }\n renderField() {\n const ariaLabel = this.ariaLabel || this.label;\n return staticHtml `\n <${this.fieldTag}\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n part=\"field\"\n id=\"field\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-label=${ariaLabel || nothing}\n aria-describedby=\"description\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=\"listbox\"\n class=\"field\"\n label=${this.label}\n ?no-asterisk=${this.noAsterisk}\n .focused=${this.focused || this.open}\n .populated=${!!this.displayText}\n .disabled=${this.disabled}\n .required=${this.required}\n .error=${this.hasError}\n ?has-start=${this.hasLeadingIcon}\n has-end\n supporting-text=${this.supportingText}\n error-text=${this.getErrorText()}\n @keydown=${this.handleKeydown}\n @click=${this.handleClick}>\n ${this.renderFieldContent()}\n <div id=\"description\" slot=\"aria-describedby\"></div>\n </${this.fieldTag}>`;\n }\n renderFieldContent() {\n return [\n this.renderLeadingIcon(),\n this.renderLabel(),\n this.renderTrailingIcon(),\n ];\n }\n renderLeadingIcon() {\n return html `\n <span class=\"icon leading\" slot=\"start\">\n <slot name=\"leading-icon\" @slotchange=${this.handleIconChange}></slot>\n </span>\n `;\n }\n renderTrailingIcon() {\n return html `\n <span class=\"icon trailing\" slot=\"end\">\n <slot name=\"trailing-icon\" @slotchange=${this.handleIconChange}>\n <svg height=\"5\" viewBox=\"7 10 10 5\" focusable=\"false\">\n <polygon\n class=\"down\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 10 12 15 17 10\"></polygon>\n <polygon\n class=\"up\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 15 12 10 17 15\"></polygon>\n </svg>\n </slot>\n </span>\n `;\n }\n renderLabel() {\n // need to render &nbsp; so that line-height can apply and give it a\n // non-zero height\n return html `<div id=\"label\">${this.displayText || html `&nbsp;`}</div>`;\n }\n renderMenu() {\n const ariaLabel = this.label || this.ariaLabel;\n return html `<div class=\"menu-wrapper\">\n <mdif1-menu\n id=\"listbox\"\n .defaultFocus=${this.defaultFocus}\n role=\"listbox\"\n tabindex=\"-1\"\n aria-label=${ariaLabel || nothing}\n stay-open-on-focusout\n part=\"menu\"\n exportparts=\"focus-ring: menu-focus-ring\"\n anchor=\"field\"\n style=${styleMap({\n '--__menu-min-width': `${this.selectWidth}px`,\n '--__menu-max-width': this.clampMenuWidth\n ? `${this.selectWidth}px`\n : undefined,\n })}\n no-navigation-wrap\n .open=${this.open}\n .quick=${this.quick}\n .positioning=${this.menuPositioning}\n .typeaheadDelay=${this.typeaheadDelay}\n .anchorCorner=${this.menuAlign === 'start' ? 'end-start' : 'end-end'}\n .menuCorner=${this.menuAlign === 'start' ? 'start-start' : 'start-end'}\n @opening=${this.handleOpening}\n @opened=${this.redispatchEvent}\n @closing=${this.redispatchEvent}\n @closed=${this.handleClosed}\n @close-menu=${this.handleCloseMenu}\n @request-selection=${this.handleRequestSelection}\n @request-deselection=${this.handleRequestDeselection}>\n ${this.renderMenuContent()}\n </mdif1-menu>\n </div>`;\n }\n renderMenuContent() {\n return html `<slot></slot>`;\n }\n /**\n * Handles opening the select on keydown and typahead selection when the menu\n * is closed.\n */\n handleKeydown(event) {\n if (this.open || this.disabled || !this.menu) {\n return;\n }\n const typeaheadController = this.menu.typeaheadController;\n const isOpenKey = event.code === 'Space' ||\n event.code === 'ArrowDown' ||\n event.code === 'ArrowUp' ||\n event.code === 'End' ||\n event.code === 'Home' ||\n event.code === 'Enter';\n // Do not open if currently typing ahead because the user may be typing the\n // spacebar to match a word with a space\n if (!typeaheadController.isTypingAhead && isOpenKey) {\n event.preventDefault();\n this.open = true;\n // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/#kbd_label\n switch (event.code) {\n case 'Space':\n case 'ArrowDown':\n case 'Enter':\n // We will handle focusing last selected item in this.handleOpening()\n this.defaultFocus = FocusState.NONE;\n break;\n case 'End':\n this.defaultFocus = FocusState.LAST_ITEM;\n break;\n case 'ArrowUp':\n case 'Home':\n this.defaultFocus = FocusState.FIRST_ITEM;\n break;\n default:\n break;\n }\n return;\n }\n const isPrintableKey = event.key.length === 1;\n // Handles typing ahead when the menu is closed by delegating the event to\n // the underlying menu's typeaheadController\n if (isPrintableKey) {\n typeaheadController.onKeydown(event);\n event.preventDefault();\n const { lastActiveRecord } = typeaheadController;\n if (!lastActiveRecord) {\n return;\n }\n this.labelEl?.setAttribute?.('aria-live', 'polite');\n const hasChanged = this.selectItem(lastActiveRecord[TYPEAHEAD_RECORD.ITEM]);\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n }\n handleClick() {\n this.open = !this.open;\n }\n handleFocus() {\n this.focused = true;\n }\n handleBlur() {\n this.focused = false;\n }\n /**\n * Handles closing the menu when the focus leaves the select's subtree.\n */\n handleFocusout(event) {\n // Don't close the menu if we are switching focus between menu,\n // select-option, and field\n if (event.relatedTarget && isElementInSubtree(event.relatedTarget, this)) {\n return;\n }\n this.open = false;\n }\n /**\n * Gets a list of all selected select options as a list item record array.\n *\n * @return An array of selected list option records.\n */\n getSelectedOptions() {\n if (!this.menu) {\n this.lastSelectedOptionRecords = [];\n return null;\n }\n const items = this.menu.items;\n this.lastSelectedOptionRecords = getSelectedItems(items);\n return this.lastSelectedOptionRecords;\n }\n async getUpdateComplete() {\n await this.menu?.updateComplete;\n return super.getUpdateComplete();\n }\n /**\n * Gets the selected options from the DOM, and updates the value and display\n * text to the first selected option's value and headline respectively.\n *\n * @return Whether or not the selected option has changed since last update.\n */\n updateValueAndDisplayText() {\n const selectedOptions = this.getSelectedOptions() ?? [];\n // Used to determine whether or not we need to fire an input / change event\n // which fire whenever the option element changes (value or selectedIndex)\n // on user interaction.\n let hasSelectedOptionChanged = false;\n if (selectedOptions.length) {\n const [firstSelectedOption] = selectedOptions[0];\n hasSelectedOptionChanged =\n this.lastSelectedOption !== firstSelectedOption;\n this.lastSelectedOption = firstSelectedOption;\n this[VALUE] = firstSelectedOption.value;\n this.displayText = firstSelectedOption.displayText;\n }\n else {\n hasSelectedOptionChanged = this.lastSelectedOption !== null;\n this.lastSelectedOption = null;\n this[VALUE] = '';\n this.displayText = '';\n }\n return hasSelectedOptionChanged;\n }\n /**\n * Focuses and activates the last selected item upon opening, and resets other\n * active items.\n */\n async handleOpening(e) {\n this.labelEl?.removeAttribute?.('aria-live');\n this.redispatchEvent(e);\n // FocusState.NONE means we want to handle focus ourselves and focus the\n // last selected item.\n if (this.defaultFocus !== FocusState.NONE) {\n return;\n }\n const items = this.menu.items;\n const activeItem = getActiveItem(items)?.item;\n let [selectedItem] = this.lastSelectedOptionRecords[0] ?? [null];\n // This is true if the user keys through the list but clicks out of the menu\n // thus no close-menu event is fired by an item and we can't clean up in\n // handleCloseMenu.\n if (activeItem && activeItem !== selectedItem) {\n activeItem.tabIndex = -1;\n }\n // in the case that nothing is selected, focus the first item\n selectedItem = selectedItem ?? items[0];\n if (selectedItem) {\n selectedItem.tabIndex = 0;\n selectedItem.focus();\n }\n }\n redispatchEvent(e) {\n redispatchEvent(this, e);\n }\n handleClosed(e) {\n this.open = false;\n this.redispatchEvent(e);\n }\n /**\n * Determines the reason for closing, and updates the UI accordingly.\n */\n handleCloseMenu(event) {\n const reason = event.detail.reason;\n const item = event.detail.itemPath[0];\n this.open = false;\n let hasChanged = false;\n if (reason.kind === 'click-selection') {\n hasChanged = this.selectItem(item);\n }\n else if (reason.kind === 'keydown' && isSelectableKey(reason.key)) {\n hasChanged = this.selectItem(item);\n }\n else {\n // This can happen on ESC being pressed\n item.tabIndex = -1;\n item.blur();\n }\n // Dispatch interaction events since selection has been made via keyboard\n // or mouse.\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n /**\n * Selects a given option, deselects other options, and updates the UI.\n *\n * @return Whether the last selected option has changed.\n */\n selectItem(item) {\n const selectedOptions = this.getSelectedOptions() ?? [];\n selectedOptions.forEach(([option]) => {\n if (item !== option) {\n option.selected = false;\n }\n });\n item.selected = true;\n return this.updateValueAndDisplayText();\n }\n /**\n * Handles updating selection when an option element requests selection via\n * property / attribute change.\n */\n handleRequestSelection(event) {\n const requestingOptionEl = event.target;\n // No-op if this item is already selected.\n if (this.lastSelectedOptionRecords.some(([option]) => option === requestingOptionEl)) {\n return;\n }\n this.selectItem(requestingOptionEl);\n }\n /**\n * Handles updating selection when an option element requests deselection via\n * property / attribute change.\n */\n handleRequestDeselection(event) {\n const requestingOptionEl = event.target;\n // No-op if this item is not even in the list of tracked selected items.\n if (!this.lastSelectedOptionRecords.some(([option]) => option === requestingOptionEl)) {\n return;\n }\n this.updateValueAndDisplayText();\n }\n /**\n * Attempts to initialize the selected option from user-settable values like\n * SSR, setting `value`, or `selectedIndex` at startup.\n */\n initUserSelection() {\n // User has set `.value` directly, but internals have not yet booted up.\n if (this.lastUserSetValue && !this.lastSelectedOptionRecords.length) {\n this.select(this.lastUserSetValue);\n // User has set `.selectedIndex` directly, but internals have not yet\n // booted up.\n }\n else if (this.lastUserSetSelectedIndex !== null &&\n !this.lastSelectedOptionRecords.length) {\n this.selectIndex(this.lastUserSetSelectedIndex);\n // Regular boot up!\n }\n else {\n this.updateValueAndDisplayText();\n }\n }\n handleIconChange() {\n this.hasLeadingIcon = this.leadingIcons.length > 0;\n }\n /**\n * Dispatches the `input` and `change` events.\n */\n dispatchInteractionEvents() {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }\n getErrorText() {\n return this.error ? this.errorText : this.nativeErrorText;\n }\n [getFormValue]() {\n return this.value;\n }\n formResetCallback() {\n this.reset();\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n click() {\n this.field?.click();\n }\n [createValidator]() {\n return new SelectValidator(() => this);\n }\n [getValidityAnchor]() {\n return this.field;\n }\n}\n/** @nocollapse */\nSelect.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean })\n], Select.prototype, \"quick\", void 0);\n__decorate([\n property({ type: Boolean })\n], Select.prototype, \"required\", void 0);\n__decorate([\n property({ type: String, attribute: 'error-text' })\n], Select.prototype, \"errorText\", void 0);\n__decorate([\n property()\n], Select.prototype, \"label\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'no-asterisk' })\n], Select.prototype, \"noAsterisk\", void 0);\n__decorate([\n property({ type: String, attribute: 'supporting-text' })\n], Select.prototype, \"supportingText\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], Select.prototype, \"error\", void 0);\n__decorate([\n property({ attribute: 'menu-positioning' })\n], Select.prototype, \"menuPositioning\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'clamp-menu-width' })\n], Select.prototype, \"clampMenuWidth\", void 0);\n__decorate([\n property({ type: Number, attribute: 'typeahead-delay' })\n], Select.prototype, \"typeaheadDelay\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'has-leading-icon' })\n], Select.prototype, \"hasLeadingIcon\", void 0);\n__decorate([\n property({ attribute: 'display-text' })\n], Select.prototype, \"displayText\", void 0);\n__decorate([\n property({ attribute: 'menu-align' })\n], Select.prototype, \"menuAlign\", void 0);\n__decorate([\n property()\n], Select.prototype, \"value\", null);\n__decorate([\n property({ type: Number, attribute: 'selected-index' })\n], Select.prototype, \"selectedIndex\", null);\n__decorate([\n state()\n], Select.prototype, \"nativeError\", void 0);\n__decorate([\n state()\n], Select.prototype, \"nativeErrorText\", void 0);\n__decorate([\n state()\n], Select.prototype, \"focused\", void 0);\n__decorate([\n state()\n], Select.prototype, \"open\", void 0);\n__decorate([\n state()\n], Select.prototype, \"defaultFocus\", void 0);\n__decorate([\n query('.field')\n], Select.prototype, \"field\", void 0);\n__decorate([\n query('mdif1-menu')\n], Select.prototype, \"menu\", void 0);\n__decorate([\n query('#label')\n], Select.prototype, \"labelEl\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'leading-icon', flatten: true })\n], Select.prototype, \"leadingIcons\", void 0);\n//# sourceMappingURL=select.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport '../../field/outlined-field.js';\nimport { literal } from 'lit/static-html.js';\nimport { Select } from './select.js';\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class OutlinedSelect extends Select {\n constructor() {\n super(...arguments);\n this.fieldTag = literal `mdif1-outlined-field`;\n }\n}\n//# sourceMappingURL=outlined-select.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./select/internal/outlined-select-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{--_text-field-disabled-input-text-color: var(--mdif1-outlined-select-text-field-disabled-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-input-text-opacity: var(--mdif1-outlined-select-text-field-disabled-input-text-opacity, 0.38);--_text-field-disabled-label-text-color: var(--mdif1-outlined-select-text-field-disabled-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-label-text-opacity: var(--mdif1-outlined-select-text-field-disabled-label-text-opacity, 0.38);--_text-field-disabled-leading-icon-color: var(--mdif1-outlined-select-text-field-disabled-leading-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-leading-icon-opacity: var(--mdif1-outlined-select-text-field-disabled-leading-icon-opacity, 0.38);--_text-field-disabled-outline-color: var(--mdif1-outlined-select-text-field-disabled-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-outline-opacity: var(--mdif1-outlined-select-text-field-disabled-outline-opacity, 0.12);--_text-field-disabled-outline-width: var(--mdif1-outlined-select-text-field-disabled-outline-width, 1px);--_text-field-disabled-supporting-text-color: var(--mdif1-outlined-select-text-field-disabled-supporting-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-supporting-text-opacity: var(--mdif1-outlined-select-text-field-disabled-supporting-text-opacity, 0.38);--_text-field-disabled-trailing-icon-color: var(--mdif1-outlined-select-text-field-disabled-trailing-icon-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-disabled-trailing-icon-opacity: var(--mdif1-outlined-select-text-field-disabled-trailing-icon-opacity, 0.38);--_text-field-error-focus-input-text-color: var(--mdif1-outlined-select-text-field-error-focus-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-error-focus-label-text-color: var(--mdif1-outlined-select-text-field-error-focus-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-focus-leading-icon-color: var(--mdif1-outlined-select-text-field-error-focus-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-error-focus-outline-color: var(--mdif1-outlined-select-text-field-error-focus-outline-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-focus-supporting-text-color: var(--mdif1-outlined-select-text-field-error-focus-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-focus-trailing-icon-color: var(--mdif1-outlined-select-text-field-error-focus-trailing-icon-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-hover-input-text-color: var(--mdif1-outlined-select-text-field-error-hover-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-error-hover-label-text-color: var(--mdif1-outlined-select-text-field-error-hover-label-text-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_text-field-error-hover-leading-icon-color: var(--mdif1-outlined-select-text-field-error-hover-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-error-hover-outline-color: var(--mdif1-outlined-select-text-field-error-hover-outline-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_text-field-error-hover-supporting-text-color: var(--mdif1-outlined-select-text-field-error-hover-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-hover-trailing-icon-color: var(--mdif1-outlined-select-text-field-error-hover-trailing-icon-color, var(--mdif1-sys-color-on-error-container, #410e0b));--_text-field-error-input-text-color: var(--mdif1-outlined-select-text-field-error-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-error-label-text-color: var(--mdif1-outlined-select-text-field-error-label-text-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-leading-icon-color: var(--mdif1-outlined-select-text-field-error-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-error-outline-color: var(--mdif1-outlined-select-text-field-error-outline-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-supporting-text-color: var(--mdif1-outlined-select-text-field-error-supporting-text-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-error-trailing-icon-color: var(--mdif1-outlined-select-text-field-error-trailing-icon-color, var(--mdif1-sys-color-error, #b3261e));--_text-field-focus-input-text-color: var(--mdif1-outlined-select-text-field-focus-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-focus-label-text-color: var(--mdif1-outlined-select-text-field-focus-label-text-color, var(--mdif1-sys-color-primary, #6750a4));--_text-field-focus-leading-icon-color: var(--mdif1-outlined-select-text-field-focus-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-focus-outline-color: var(--mdif1-outlined-select-text-field-focus-outline-color, var(--mdif1-sys-color-primary, #6750a4));--_text-field-focus-outline-width: var(--mdif1-outlined-select-text-field-focus-outline-width, 3px);--_text-field-focus-supporting-text-color: var(--mdif1-outlined-select-text-field-focus-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-focus-trailing-icon-color: var(--mdif1-outlined-select-text-field-focus-trailing-icon-color, var(--mdif1-sys-color-primary, #6750a4));--_text-field-hover-input-text-color: var(--mdif1-outlined-select-text-field-hover-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-hover-label-text-color: var(--mdif1-outlined-select-text-field-hover-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-hover-leading-icon-color: var(--mdif1-outlined-select-text-field-hover-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-hover-outline-color: var(--mdif1-outlined-select-text-field-hover-outline-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-hover-outline-width: var(--mdif1-outlined-select-text-field-hover-outline-width, 1px);--_text-field-hover-supporting-text-color: var(--mdif1-outlined-select-text-field-hover-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-hover-trailing-icon-color: var(--mdif1-outlined-select-text-field-hover-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-input-text-color: var(--mdif1-outlined-select-text-field-input-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));--_text-field-input-text-font: var(--mdif1-outlined-select-text-field-input-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_text-field-input-text-line-height: var(--mdif1-outlined-select-text-field-input-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_text-field-input-text-size: var(--mdif1-outlined-select-text-field-input-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_text-field-input-text-weight: var(--mdif1-outlined-select-text-field-input-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_text-field-label-text-color: var(--mdif1-outlined-select-text-field-label-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-label-text-font: var(--mdif1-outlined-select-text-field-label-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));--_text-field-label-text-line-height: var(--mdif1-outlined-select-text-field-label-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));--_text-field-label-text-populated-line-height: var(--mdif1-outlined-select-text-field-label-text-populated-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_text-field-label-text-populated-size: var(--mdif1-outlined-select-text-field-label-text-populated-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_text-field-label-text-size: var(--mdif1-outlined-select-text-field-label-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));--_text-field-label-text-weight: var(--mdif1-outlined-select-text-field-label-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_text-field-leading-icon-color: var(--mdif1-outlined-select-text-field-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-leading-icon-size: var(--mdif1-outlined-select-text-field-leading-icon-size, 24px);--_text-field-outline-color: var(--mdif1-outlined-select-text-field-outline-color, var(--mdif1-sys-color-outline, #79747e));--_text-field-outline-width: var(--mdif1-outlined-select-text-field-outline-width, 1px);--_text-field-supporting-text-color: var(--mdif1-outlined-select-text-field-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-supporting-text-font: var(--mdif1-outlined-select-text-field-supporting-text-font, var(--mdif1-sys-typescale-body-small-font, var(--mdif1-ref-typeface-plain, Roboto)));--_text-field-supporting-text-line-height: var(--mdif1-outlined-select-text-field-supporting-text-line-height, var(--mdif1-sys-typescale-body-small-line-height, 1rem));--_text-field-supporting-text-size: var(--mdif1-outlined-select-text-field-supporting-text-size, var(--mdif1-sys-typescale-body-small-size, 0.75rem));--_text-field-supporting-text-weight: var(--mdif1-outlined-select-text-field-supporting-text-weight, var(--mdif1-sys-typescale-body-small-weight, var(--mdif1-ref-typeface-weight-regular, 400)));--_text-field-trailing-icon-color: var(--mdif1-outlined-select-text-field-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f));--_text-field-trailing-icon-size: var(--mdif1-outlined-select-text-field-trailing-icon-size, 24px);--_text-field-container-shape-start-start: var(--mdif1-outlined-select-text-field-container-shape-start-start, var(--mdif1-outlined-select-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_text-field-container-shape-start-end: var(--mdif1-outlined-select-text-field-container-shape-start-end, var(--mdif1-outlined-select-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_text-field-container-shape-end-end: var(--mdif1-outlined-select-text-field-container-shape-end-end, var(--mdif1-outlined-select-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--_text-field-container-shape-end-start: var(--mdif1-outlined-select-text-field-container-shape-end-start, var(--mdif1-outlined-select-text-field-container-shape, var(--mdif1-sys-shape-corner-extra-small, 4px)));--mdif1-outlined-field-container-shape-end-end: var(--_text-field-container-shape-end-end);--mdif1-outlined-field-container-shape-end-start: var(--_text-field-container-shape-end-start);--mdif1-outlined-field-container-shape-start-end: var(--_text-field-container-shape-start-end);--mdif1-outlined-field-container-shape-start-start: var(--_text-field-container-shape-start-start);--mdif1-outlined-field-content-color: var(--_text-field-input-text-color);--mdif1-outlined-field-content-font: var(--_text-field-input-text-font);--mdif1-outlined-field-content-line-height: var(--_text-field-input-text-line-height);--mdif1-outlined-field-content-size: var(--_text-field-input-text-size);--mdif1-outlined-field-content-weight: var(--_text-field-input-text-weight);--mdif1-outlined-field-disabled-content-color: var(--_text-field-disabled-input-text-color);--mdif1-outlined-field-disabled-content-opacity: var(--_text-field-disabled-input-text-opacity);--mdif1-outlined-field-disabled-label-text-color: var(--_text-field-disabled-label-text-color);--mdif1-outlined-field-disabled-label-text-opacity: var(--_text-field-disabled-label-text-opacity);--mdif1-outlined-field-disabled-leading-content-color: var(--_text-field-disabled-leading-icon-color);--mdif1-outlined-field-disabled-leading-content-opacity: var(--_text-field-disabled-leading-icon-opacity);--mdif1-outlined-field-disabled-outline-color: var(--_text-field-disabled-outline-color);--mdif1-outlined-field-disabled-outline-opacity: var(--_text-field-disabled-outline-opacity);--mdif1-outlined-field-disabled-outline-width: var(--_text-field-disabled-outline-width);--mdif1-outlined-field-disabled-supporting-text-color: var(--_text-field-disabled-supporting-text-color);--mdif1-outlined-field-disabled-supporting-text-opacity: var(--_text-field-disabled-supporting-text-opacity);--mdif1-outlined-field-disabled-trailing-content-color: var(--_text-field-disabled-trailing-icon-color);--mdif1-outlined-field-disabled-trailing-content-opacity: var(--_text-field-disabled-trailing-icon-opacity);--mdif1-outlined-field-error-content-color: var(--_text-field-error-input-text-color);--mdif1-outlined-field-error-focus-content-color: var(--_text-field-error-focus-input-text-color);--mdif1-outlined-field-error-focus-label-text-color: var(--_text-field-error-focus-label-text-color);--mdif1-outlined-field-error-focus-leading-content-color: var(--_text-field-error-focus-leading-icon-color);--mdif1-outlined-field-error-focus-outline-color: var(--_text-field-error-focus-outline-color);--mdif1-outlined-field-error-focus-supporting-text-color: var(--_text-field-error-focus-supporting-text-color);--mdif1-outlined-field-error-focus-trailing-content-color: var(--_text-field-error-focus-trailing-icon-color);--mdif1-outlined-field-error-hover-content-color: var(--_text-field-error-hover-input-text-color);--mdif1-outlined-field-error-hover-label-text-color: var(--_text-field-error-hover-label-text-color);--mdif1-outlined-field-error-hover-leading-content-color: var(--_text-field-error-hover-leading-icon-color);--mdif1-outlined-field-error-hover-outline-color: var(--_text-field-error-hover-outline-color);--mdif1-outlined-field-error-hover-supporting-text-color: var(--_text-field-error-hover-supporting-text-color);--mdif1-outlined-field-error-hover-trailing-content-color: var(--_text-field-error-hover-trailing-icon-color);--mdif1-outlined-field-error-label-text-color: var(--_text-field-error-label-text-color);--mdif1-outlined-field-error-leading-content-color: var(--_text-field-error-leading-icon-color);--mdif1-outlined-field-error-outline-color: var(--_text-field-error-outline-color);--mdif1-outlined-field-error-supporting-text-color: var(--_text-field-error-supporting-text-color);--mdif1-outlined-field-error-trailing-content-color: var(--_text-field-error-trailing-icon-color);--mdif1-outlined-field-focus-content-color: var(--_text-field-focus-input-text-color);--mdif1-outlined-field-focus-label-text-color: var(--_text-field-focus-label-text-color);--mdif1-outlined-field-focus-leading-content-color: var(--_text-field-focus-leading-icon-color);--mdif1-outlined-field-focus-outline-color: var(--_text-field-focus-outline-color);--mdif1-outlined-field-focus-outline-width: var(--_text-field-focus-outline-width);--mdif1-outlined-field-focus-supporting-text-color: var(--_text-field-focus-supporting-text-color);--mdif1-outlined-field-focus-trailing-content-color: var(--_text-field-focus-trailing-icon-color);--mdif1-outlined-field-hover-content-color: var(--_text-field-hover-input-text-color);--mdif1-outlined-field-hover-label-text-color: var(--_text-field-hover-label-text-color);--mdif1-outlined-field-hover-leading-content-color: var(--_text-field-hover-leading-icon-color);--mdif1-outlined-field-hover-outline-color: var(--_text-field-hover-outline-color);--mdif1-outlined-field-hover-outline-width: var(--_text-field-hover-outline-width);--mdif1-outlined-field-hover-supporting-text-color: var(--_text-field-hover-supporting-text-color);--mdif1-outlined-field-hover-trailing-content-color: var(--_text-field-hover-trailing-icon-color);--mdif1-outlined-field-label-text-color: var(--_text-field-label-text-color);--mdif1-outlined-field-label-text-font: var(--_text-field-label-text-font);--mdif1-outlined-field-label-text-line-height: var(--_text-field-label-text-line-height);--mdif1-outlined-field-label-text-populated-line-height: var(--_text-field-label-text-populated-line-height);--mdif1-outlined-field-label-text-populated-size: var(--_text-field-label-text-populated-size);--mdif1-outlined-field-label-text-size: var(--_text-field-label-text-size);--mdif1-outlined-field-label-text-weight: var(--_text-field-label-text-weight);--mdif1-outlined-field-leading-content-color: var(--_text-field-leading-icon-color);--mdif1-outlined-field-outline-color: var(--_text-field-outline-color);--mdif1-outlined-field-outline-width: var(--_text-field-outline-width);--mdif1-outlined-field-supporting-text-color: var(--_text-field-supporting-text-color);--mdif1-outlined-field-supporting-text-font: var(--_text-field-supporting-text-font);--mdif1-outlined-field-supporting-text-line-height: var(--_text-field-supporting-text-line-height);--mdif1-outlined-field-supporting-text-size: var(--_text-field-supporting-text-size);--mdif1-outlined-field-supporting-text-weight: var(--_text-field-supporting-text-weight);--mdif1-outlined-field-trailing-content-color: var(--_text-field-trailing-icon-color)}[has-start] .icon.leading{font-size:var(--_text-field-leading-icon-size);height:var(--_text-field-leading-icon-size);width:var(--_text-field-leading-icon-size)}.icon.trailing{font-size:var(--_text-field-trailing-icon-size);height:var(--_text-field-trailing-icon-size);width:var(--_text-field-trailing-icon-size)}\n`;\n//# sourceMappingURL=outlined-select-styles.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./select/internal/shared-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{color:unset;min-width:210px;display:flex}.field{cursor:default;outline:none}.select{position:relative;flex-direction:column}.icon.trailing svg,.icon ::slotted(*){fill:currentColor}.icon ::slotted(*){width:inherit;height:inherit;font-size:inherit}.icon slot{display:flex;height:100%;width:100%;align-items:center;justify-content:center}.icon.trailing :is(.up,.down){opacity:0;transition:opacity 75ms linear 75ms}.select:not(.open) .down,.select.open .up{opacity:1}.field,.select,mdif1-menu{min-width:inherit;width:inherit;max-width:inherit;display:flex}mdif1-menu{min-width:var(--__menu-min-width);max-width:var(--__menu-max-width, inherit)}.menu-wrapper{width:0px;height:0px;max-width:inherit}mdif1-menu ::slotted(:not[disabled]){cursor:pointer}.field,.select{width:100%}:host{display:inline-flex}:host([disabled]){pointer-events:none}\n`;\n//# sourceMappingURL=shared-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { OutlinedSelect } from './internal/outlined-select.js';\nimport { styles } from './internal/outlined-select-styles.js';\nimport { styles as sharedStyles } from './internal/shared-styles.js';\n/**\n * @summary\n * Select menus display a list of choices on temporary surfaces and display the\n * currently selected menu item above the menu.\n *\n * @description\n * The select component allows users to choose a value from a fixed list of\n * available options. Composed of an interactive anchor button and a menu, it is\n * analogous to the native HTML `<select>` element. This is the \"outlined\"\n * variant.\n *\n * @example\n * ```html\n * <mdif1-outlined-select label=\"fruits\">\n * <!-- An empty selected option will give select an \"un-filled\" state -->\n * <mdif1-select-option selected></mdif1-select-option>\n * <mdif1-select-option value=\"apple\" headline=\"Apple\"></mdif1-select-option>\n * <mdif1-select-option value=\"banana\" headline=\"Banana\"></mdif1-select-option>\n * <mdif1-select-option value=\"kiwi\" headline=\"Kiwi\"></mdif1-select-option>\n * <mdif1-select-option value=\"orange\" headline=\"Orange\"></mdif1-select-option>\n * <mdif1-select-option value=\"tomato\" headline=\"Tomato\"></mdif1-select-option>\n * </mdif1-outlined-select>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\nlet MdOutlinedSelect = class MdOutlinedSelect extends OutlinedSelect {\n};\nMdOutlinedSelect.styles = [sharedStyles, styles];\nMdOutlinedSelect = __decorate([\n customElement('mdif1-outlined-select')\n], MdOutlinedSelect);\nexport { MdOutlinedSelect };\n//# sourceMappingURL=outlined-select.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./menu/internal/menuitem/menu-item-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:flex;--mdif1-ripple-hover-color: var(--mdif1-menu-item-hover-state-layer-color, var(--mdif1-sys-color-on-surface, #1d1b20));--mdif1-ripple-hover-opacity: var(--mdif1-menu-item-hover-state-layer-opacity, 0.08);--mdif1-ripple-pressed-color: var(--mdif1-menu-item-pressed-state-layer-color, var(--mdif1-sys-color-on-surface, #1d1b20));--mdif1-ripple-pressed-opacity: var(--mdif1-menu-item-pressed-state-layer-opacity, 0.12)}:host([disabled]){opacity:var(--mdif1-menu-item-disabled-opacity, 0.3);pointer-events:none}mdif1-focus-ring{z-index:1;--mdif1-focus-ring-shape: 8px}a,button,li{background:none;border:none;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.list-item:not(.disabled){cursor:pointer}[slot=container]{pointer-events:none}mdif1-ripple{border-radius:inherit}mdif1-item{border-radius:inherit;flex:1;color:var(--mdif1-menu-item-label-text-color, var(--mdif1-sys-color-on-surface, #1d1b20));font-family:var(--mdif1-menu-item-label-text-font, var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto)));font-size:var(--mdif1-menu-item-label-text-size, var(--mdif1-sys-typescale-body-large-size, 1rem));line-height:var(--mdif1-menu-item-label-text-line-height, var(--mdif1-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--mdif1-menu-item-label-text-weight, var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400)));min-height:var(--mdif1-menu-item-one-line-container-height, 56px);padding-top:var(--mdif1-menu-item-top-space, 12px);padding-bottom:var(--mdif1-menu-item-bottom-space, 12px);padding-inline-start:var(--mdif1-menu-item-leading-space, 16px);padding-inline-end:var(--mdif1-menu-item-trailing-space, 16px)}mdif1-item[multiline]{min-height:var(--mdif1-menu-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--mdif1-menu-item-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));font-family:var(--mdif1-menu-item-supporting-text-font, var(--mdif1-sys-typescale-body-medium-font, var(--mdif1-ref-typeface-plain, Roboto)));font-size:var(--mdif1-menu-item-supporting-text-size, var(--mdif1-sys-typescale-body-medium-size, 0.875rem));line-height:var(--mdif1-menu-item-supporting-text-line-height, var(--mdif1-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--mdif1-menu-item-supporting-text-weight, var(--mdif1-sys-typescale-body-medium-weight, var(--mdif1-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--mdif1-menu-item-trailing-supporting-text-color, var(--mdif1-sys-color-on-surface-variant, #49454f));font-family:var(--mdif1-menu-item-trailing-supporting-text-font, var(--mdif1-sys-typescale-label-small-font, var(--mdif1-ref-typeface-plain, Roboto)));font-size:var(--mdif1-menu-item-trailing-supporting-text-size, var(--mdif1-sys-typescale-label-small-size, 0.6875rem));line-height:var(--mdif1-menu-item-trailing-supporting-text-line-height, var(--mdif1-sys-typescale-label-small-line-height, 1rem));font-weight:var(--mdif1-menu-item-trailing-supporting-text-weight, var(--mdif1-sys-typescale-label-small-weight, var(--mdif1-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--mdif1-menu-item-leading-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--mdif1-menu-item-trailing-icon-color, var(--mdif1-sys-color-on-surface-variant, #49454f))}.list-item{background-color:var(--mdif1-menu-item-container-color, transparent)}.list-item.selected{background-color:var(--mdif1-menu-item-selected-container-color, var(--mdif1-sys-color-secondary-container, #e8def8))}.selected:not(.disabled) ::slotted(*){color:var(--mdif1-menu-item-selected-label-text-color, var(--mdif1-sys-color-on-secondary-container, #1d192b))}@media(forced-colors: active){:host([disabled]),:host([disabled]) slot{color:GrayText;opacity:1}.list-item{position:relative}.list-item.selected::before{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;border:3px double CanvasText}}\n`;\n//# sourceMappingURL=menu-item-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { html, LitElement } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\n/**\n * An item layout component.\n */\nexport class Item extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Only needed for SSR.\n *\n * Add this attribute when an item has two lines to avoid a Flash Of Unstyled\n * Content. This attribute is not needed for single line items or items with\n * three or more lines.\n */\n this.multiline = false;\n }\n render() {\n return html `\n <slot name=\"container\"></slot>\n <slot class=\"non-text\" name=\"start\"></slot>\n <div class=\"text\">\n <slot name=\"overline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n class=\"default-slot\"\n @slotchange=${this.handleTextSlotChange}></slot>\n <slot name=\"headline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n name=\"supporting-text\"\n @slotchange=${this.handleTextSlotChange}></slot>\n </div>\n <slot class=\"non-text\" name=\"trailing-supporting-text\"></slot>\n <slot class=\"non-text\" name=\"end\"></slot>\n `;\n }\n handleTextSlotChange() {\n // Check if there's more than one text slot with content. If so, the item is\n // multiline, which has a different min-height than single line items.\n let isMultiline = false;\n let slotsWithContent = 0;\n for (const slot of this.textSlots) {\n if (slotHasContent(slot)) {\n slotsWithContent += 1;\n }\n if (slotsWithContent > 1) {\n isMultiline = true;\n break;\n }\n }\n this.multiline = isMultiline;\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], Item.prototype, \"multiline\", void 0);\n__decorate([\n queryAll('.text slot')\n], Item.prototype, \"textSlots\", void 0);\nfunction slotHasContent(slot) {\n for (const node of slot.assignedNodes({ flatten: true })) {\n // Assume there's content if there's an element slotted in\n const isElement = node.nodeType === Node.ELEMENT_NODE;\n // If there's only text nodes for the default slot, check if there's\n // non-whitespace.\n const isTextWithContent = node.nodeType === Node.TEXT_NODE && node.textContent?.match(/\\S/);\n if (isElement || isTextWithContent) {\n return true;\n }\n }\n return false;\n}\n//# sourceMappingURL=item.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./labs/item/internal/item-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{color:var(--mdif1-sys-color-on-surface, #1d1b20);font-family:var(--mdif1-sys-typescale-body-large-font, var(--mdif1-ref-typeface-plain, Roboto));font-size:var(--mdif1-sys-typescale-body-large-size, 1rem);font-weight:var(--mdif1-sys-typescale-body-large-weight, var(--mdif1-ref-typeface-weight-regular, 400));line-height:var(--mdif1-sys-typescale-body-large-line-height, 1.5rem);align-items:center;box-sizing:border-box;display:flex;gap:16px;min-height:56px;overflow:hidden;padding:12px 16px;position:relative;text-overflow:ellipsis}:host([multiline]){min-height:72px}[name=overline]{color:var(--mdif1-sys-color-on-surface-variant, #49454f);font-family:var(--mdif1-sys-typescale-label-small-font, var(--mdif1-ref-typeface-plain, Roboto));font-size:var(--mdif1-sys-typescale-label-small-size, 0.6875rem);font-weight:var(--mdif1-sys-typescale-label-small-weight, var(--mdif1-ref-typeface-weight-medium, 500));line-height:var(--mdif1-sys-typescale-label-small-line-height, 1rem)}[name=supporting-text]{color:var(--mdif1-sys-color-on-surface-variant, #49454f);font-family:var(--mdif1-sys-typescale-body-medium-font, var(--mdif1-ref-typeface-plain, Roboto));font-size:var(--mdif1-sys-typescale-body-medium-size, 0.875rem);font-weight:var(--mdif1-sys-typescale-body-medium-weight, var(--mdif1-ref-typeface-weight-regular, 400));line-height:var(--mdif1-sys-typescale-body-medium-line-height, 1.25rem)}[name=trailing-supporting-text]{color:var(--mdif1-sys-color-on-surface-variant, #49454f);font-family:var(--mdif1-sys-typescale-label-small-font, var(--mdif1-ref-typeface-plain, Roboto));font-size:var(--mdif1-sys-typescale-label-small-size, 0.6875rem);font-weight:var(--mdif1-sys-typescale-label-small-weight, var(--mdif1-ref-typeface-weight-medium, 500));line-height:var(--mdif1-sys-typescale-label-small-line-height, 1rem)}[name=container]::slotted(*){inset:0;position:absolute}.default-slot{display:inline}.default-slot,.text ::slotted(*){overflow:hidden;text-overflow:ellipsis}.text{display:flex;flex:1;flex-direction:column;overflow:hidden}\n`;\n//# sourceMappingURL=item-styles.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Item } from './internal/item.js';\nimport { styles } from './internal/item-styles.js';\n/**\n * An item layout component that can be used inside list items to give them\n * their customizable structure.\n *\n * `<mdif1-item>` does not have any functionality, which must be added by the\n * component using it.\n *\n * All text will wrap unless `white-space: nowrap` is set on the item or any of\n * its children.\n *\n * Slots available:\n * - `<default>`: The headline, or custom content.\n * - `headline`: The first line.\n * - `supporting-text`: Supporting text lines underneath the headline.\n * - `trailing-supporting-text`: A small text snippet at the end of the item.\n * - `start`: Any leading content, such as icons, avatars, or checkboxes.\n * - `end`: Any trailing content, such as icons and buttons.\n * - `container`: Background container content, intended for adding additional\n * styles, such as ripples or focus rings.\n *\n * @example\n * ```html\n * <mdif1-item>Single line</mdif1-item>\n *\n * <mdif1-item>\n * <div class=\"custom-content\">...</div>\n * </mdif1-item>\n *\n * <!-- Classic 1 to 3+ line list items -->\n * <mdif1-item>\n * <mdif1-icon slot=\"start\">image</mdif1-icon>\n * <div slot=\"overline\">Overline</div>\n * <div slot=\"headline\">Headline</div>\n * <div=\"supporting-text\">Supporting text</div>\n * <div=\"trailing-supporting-text\">Trailing</div>\n * <mdif1-icon slot=\"end\">image</mdif1-icon>\n * </mdif1-item>\n * ```\n *\n * When wrapping `<mdif1-item>`, forward the available slots to use the same slot\n * structure for the wrapping component (this is what `<mdif1-list-item>` does).\n *\n * @example\n * ```html\n * <mdif1-item>\n * <slot></slot>\n * <slot name=\"overline\" slot=\"overline\"></slot>\n * <slot name=\"headline\" slot=\"headline\"></slot>\n * <slot name=\"supporting-text\" slot=\"supporting-text\"></slot>\n * <slot name=\"trailing-supporting-text\"\n * slot=\"trailing-supporting-text\"></slot>\n * <slot name=\"start\" slot=\"start\"></slot>\n * <slot name=\"end\" slot=\"end\"></slot>\n * </mdif1-item>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\nlet MdItem = class MdItem extends Item {\n};\nMdItem.styles = [styles];\nMdItem = __decorate([\n customElement('mdif1-item')\n], MdItem);\nexport { MdItem };\n//# sourceMappingURL=item.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { CloseReason, createDefaultCloseMenuEvent, isClosableKey, } from './shared.js';\n/**\n * A controller that provides most functionality of an element that implements\n * the MenuItem interface.\n */\nexport class MenuItemController {\n /**\n * @param host The MenuItem in which to attach this controller to.\n * @param config The object that configures this controller's behavior.\n */\n constructor(host, config) {\n this.host = host;\n this.internalTypeaheadText = null;\n /**\n * Bind this click listener to the interactive element. Handles closing the\n * menu.\n */\n this.onClick = () => {\n if (this.host.keepOpen)\n return;\n this.host.dispatchEvent(createDefaultCloseMenuEvent(this.host, {\n kind: CloseReason.CLICK_SELECTION,\n }));\n };\n /**\n * Bind this click listener to the interactive element. Handles closing the\n * menu.\n */\n this.onKeydown = (event) => {\n // Check if the interactive element is an anchor tag. If so, click it.\n if (this.host.href && event.code === 'Enter') {\n const interactiveElement = this.getInteractiveElement();\n if (interactiveElement instanceof HTMLAnchorElement) {\n interactiveElement.click();\n }\n }\n if (event.defaultPrevented)\n return;\n // If the host has keepOpen = true we should ignore clicks & Space/Enter,\n // however we always maintain the ability to close a menu with a explicit\n // `escape` keypress.\n const keyCode = event.code;\n if (this.host.keepOpen && keyCode !== 'Escape')\n return;\n if (isClosableKey(keyCode)) {\n event.preventDefault();\n this.host.dispatchEvent(createDefaultCloseMenuEvent(this.host, {\n kind: CloseReason.KEYDOWN,\n key: keyCode,\n }));\n }\n };\n this.getHeadlineElements = config.getHeadlineElements;\n this.getSupportingTextElements = config.getSupportingTextElements;\n this.getDefaultElements = config.getDefaultElements;\n this.getInteractiveElement = config.getInteractiveElement;\n this.host.addController(this);\n }\n /**\n * The text that is selectable via typeahead. If not set, defaults to the\n * innerText of the item slotted into the `\"headline\"` slot, and if there are\n * no slotted elements into headline, then it checks the _default_ slot, and\n * then the `\"supporting-text\"` slot if nothing is in _default_.\n */\n get typeaheadText() {\n if (this.internalTypeaheadText !== null) {\n return this.internalTypeaheadText;\n }\n const headlineElements = this.getHeadlineElements();\n const textParts = [];\n headlineElements.forEach((headlineElement) => {\n if (headlineElement.textContent && headlineElement.textContent.trim()) {\n textParts.push(headlineElement.textContent.trim());\n }\n });\n // If there are no headline elements, check the default slot's text content\n if (textParts.length === 0) {\n this.getDefaultElements().forEach((defaultElement) => {\n if (defaultElement.textContent && defaultElement.textContent.trim()) {\n textParts.push(defaultElement.textContent.trim());\n }\n });\n }\n // If there are no headline nor default slot elements, check the\n //supporting-text slot's text content\n if (textParts.length === 0) {\n this.getSupportingTextElements().forEach((supportingTextElement) => {\n if (supportingTextElement.textContent &&\n supportingTextElement.textContent.trim()) {\n textParts.push(supportingTextElement.textContent.trim());\n }\n });\n }\n return textParts.join(' ');\n }\n /**\n * The recommended tag name to render as the list item.\n */\n get tagName() {\n const type = this.host.type;\n switch (type) {\n case 'link':\n return 'a';\n case 'button':\n return 'button';\n default:\n case 'menuitem':\n case 'option':\n return 'li';\n }\n }\n /**\n * The recommended role of the menu item.\n */\n get role() {\n return this.host.type === 'option' ? 'option' : 'menuitem';\n }\n hostConnected() {\n this.host.toggleAttribute('mdif1-menu-item', true);\n }\n hostUpdate() {\n if (this.host.href) {\n this.host.type = 'link';\n }\n }\n /**\n * Use to set the typeaheadText when it changes.\n */\n setTypeaheadText(text) {\n this.internalTypeaheadText = text;\n }\n}\n//# sourceMappingURL=menuItemController.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { MenuItemController, } from '../../../menu/internal/controllers/menuItemController.js';\n/**\n * Creates an event fired by a SelectOption to request selection from mdif1-select.\n * Typically fired after `selected` changes from `false` to `true`.\n */\nexport function createRequestSelectionEvent() {\n return new Event('request-selection', {\n bubbles: true,\n composed: true,\n });\n}\n/**\n * Creates an event fired by a SelectOption to request deselection from\n * mdif1-select. Typically fired after `selected` changes from `true` to `false`.\n */\nexport function createRequestDeselectionEvent() {\n return new Event('request-deselection', {\n bubbles: true,\n composed: true,\n });\n}\n/**\n * A controller that provides most functionality and mdif1-select compatibility for\n * an element that implements the SelectOption interface.\n */\nexport class SelectOptionController {\n /**\n * The recommended role of the select option.\n */\n get role() {\n return this.menuItemController.role;\n }\n /**\n * The text that is selectable via typeahead. If not set, defaults to the\n * innerText of the item slotted into the `\"headline\"` slot, and if there are\n * no slotted elements into headline, then it checks the _default_ slot, and\n * then the `\"supporting-text\"` slot if nothing is in _default_.\n */\n get typeaheadText() {\n return this.menuItemController.typeaheadText;\n }\n setTypeaheadText(text) {\n this.menuItemController.setTypeaheadText(text);\n }\n /**\n * The text that is displayed in the select field when selected. If not set,\n * defaults to the textContent of the item slotted into the `\"headline\"` slot,\n * and if there are no slotted elements into headline, then it checks the\n * _default_ slot, and then the `\"supporting-text\"` slot if nothing is in\n * _default_.\n */\n get displayText() {\n if (this.internalDisplayText !== null) {\n return this.internalDisplayText;\n }\n return this.menuItemController.typeaheadText;\n }\n setDisplayText(text) {\n this.internalDisplayText = text;\n }\n /**\n * @param host The SelectOption in which to attach this controller to.\n * @param config The object that configures this controller's behavior.\n */\n constructor(host, config) {\n this.host = host;\n this.internalDisplayText = null;\n this.firstUpdate = true;\n /**\n * Bind this click listener to the interactive element. Handles closing the\n * menu.\n */\n this.onClick = () => {\n this.menuItemController.onClick();\n };\n /**\n * Bind this click listener to the interactive element. Handles closing the\n * menu.\n */\n this.onKeydown = (e) => {\n this.menuItemController.onKeydown(e);\n };\n this.lastSelected = this.host.selected;\n this.menuItemController = new MenuItemController(host, config);\n host.addController(this);\n }\n hostUpdate() {\n if (this.lastSelected !== this.host.selected) {\n this.host.ariaSelected = this.host.selected ? 'true' : 'false';\n }\n }\n hostUpdated() {\n // Do not dispatch event on first update / boot-up.\n if (this.lastSelected !== this.host.selected && !this.firstUpdate) {\n // This section is really useful for when the user sets selected on the\n // option programmatically. Most other cases (click and keyboard) are\n // handled by mdif1-select because it needs to coordinate the\n // single-selection behavior.\n if (this.host.selected) {\n this.host.dispatchEvent(createRequestSelectionEvent());\n }\n else {\n this.host.dispatchEvent(createRequestDeselectionEvent());\n }\n }\n this.lastSelected = this.host.selected;\n this.firstUpdate = false;\n }\n}\n//# sourceMappingURL=selectOptionController.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport '../../../focus/focus-ring.js';\nimport '../../../labs/item/item.js';\nimport '../../../ripple/ripple.js';\nimport { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedElements, queryAssignedNodes, } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { mixinDelegatesAria } from '../../../internal/aria/delegate.js';\nimport { SelectOptionController } from './selectOptionController.js';\n// Separate variable needed for closure.\nconst selectOptionBaseClass = mixinDelegatesAria(LitElement);\n/**\n * @fires close-menu {CustomEvent<{initiator: SelectOption, reason: Reason, itemPath: SelectOption[]}>}\n * Closes the encapsulating menu on closable interaction. --bubbles --composed\n * @fires request-selection {Event} Requests the parent mdif1-select to select this\n * element (and deselect others if single-selection) when `selected` changed to\n * `true`. --bubbles --composed\n * @fires request-deselection {Event} Requests the parent mdif1-select to deselect\n * this element when `selected` changed to `false`. --bubbles --composed\n */\nexport class SelectOptionEl extends selectOptionBaseClass {\n constructor() {\n super(...arguments);\n /**\n * Disables the item and makes it non-selectable and non-interactive.\n */\n this.disabled = false;\n /**\n * READONLY: self-identifies as a menu item and sets its identifying attribute\n */\n this.isMenuItem = true;\n /**\n * Sets the item in the selected visual state when a submenu is opened.\n */\n this.selected = false;\n /**\n * Form value of the option.\n */\n this.value = '';\n this.type = 'option';\n this.selectOptionController = new SelectOptionController(this, {\n getHeadlineElements: () => {\n return this.headlineElements;\n },\n getSupportingTextElements: () => {\n return this.supportingTextElements;\n },\n getDefaultElements: () => {\n return this.defaultElements;\n },\n getInteractiveElement: () => this.listItemRoot,\n });\n }\n /**\n * The text that is selectable via typeahead. If not set, defaults to the\n * innerText of the item slotted into the `\"headline\"` slot.\n */\n get typeaheadText() {\n return this.selectOptionController.typeaheadText;\n }\n set typeaheadText(text) {\n this.selectOptionController.setTypeaheadText(text);\n }\n /**\n * The text that is displayed in the select field when selected. If not set,\n * defaults to the textContent of the item slotted into the `\"headline\"` slot.\n */\n get displayText() {\n return this.selectOptionController.displayText;\n }\n set displayText(text) {\n this.selectOptionController.setDisplayText(text);\n }\n render() {\n return this.renderListItem(html `\n <mdif1-item>\n <div slot=\"container\">\n ${this.renderRipple()} ${this.renderFocusRing()}\n </div>\n <slot name=\"start\" slot=\"start\"></slot>\n <slot name=\"end\" slot=\"end\"></slot>\n ${this.renderBody()}\n </mdif1-item>\n `);\n }\n /**\n * Renders the root list item.\n *\n * @param content the child content of the list item.\n */\n renderListItem(content) {\n return html `\n <li\n id=\"item\"\n tabindex=${this.disabled ? -1 : 0}\n role=${this.selectOptionController.role}\n aria-label=${this.ariaLabel || nothing}\n aria-selected=${this.ariaSelected || nothing}\n aria-checked=${this.ariaChecked || nothing}\n aria-expanded=${this.ariaExpanded || nothing}\n aria-haspopup=${this.ariaHasPopup || nothing}\n class=\"list-item ${classMap(this.getRenderClasses())}\"\n @click=${this.selectOptionController.onClick}\n @keydown=${this.selectOptionController.onKeydown}\n >${content}</li\n >\n `;\n }\n /**\n * Handles rendering of the ripple element.\n */\n renderRipple() {\n return html ` <mdif1-ripple\n part=\"ripple\"\n for=\"item\"\n ?disabled=${this.disabled}></mdif1-ripple>`;\n }\n /**\n * Handles rendering of the focus ring.\n */\n renderFocusRing() {\n return html ` <mdif1-focus-ring\n part=\"focus-ring\"\n for=\"item\"\n inward></mdif1-focus-ring>`;\n }\n /**\n * Classes applied to the list item root.\n */\n getRenderClasses() {\n return {\n 'disabled': this.disabled,\n 'selected': this.selected,\n };\n }\n /**\n * Handles rendering the headline and supporting text.\n */\n renderBody() {\n return html `\n <slot></slot>\n <slot name=\"overline\" slot=\"overline\"></slot>\n <slot name=\"headline\" slot=\"headline\"></slot>\n <slot name=\"supporting-text\" slot=\"supporting-text\"></slot>\n <slot\n name=\"trailing-supporting-text\"\n slot=\"trailing-supporting-text\"></slot>\n `;\n }\n focus() {\n // TODO(b/300334509): needed for some cases where delegatesFocus doesn't\n // work programmatically like in FF and select-option\n this.listItemRoot?.focus();\n }\n}\n/** @nocollapse */\nSelectOptionEl.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: Boolean, reflect: true })\n], SelectOptionEl.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, attribute: 'mdif1-menu-item', reflect: true })\n], SelectOptionEl.prototype, \"isMenuItem\", void 0);\n__decorate([\n property({ type: Boolean })\n], SelectOptionEl.prototype, \"selected\", void 0);\n__decorate([\n property()\n], SelectOptionEl.prototype, \"value\", void 0);\n__decorate([\n query('.list-item')\n], SelectOptionEl.prototype, \"listItemRoot\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'headline' })\n], SelectOptionEl.prototype, \"headlineElements\", void 0);\n__decorate([\n queryAssignedElements({ slot: 'supporting-text' })\n], SelectOptionEl.prototype, \"supportingTextElements\", void 0);\n__decorate([\n queryAssignedNodes({ slot: '' })\n], SelectOptionEl.prototype, \"defaultElements\", void 0);\n__decorate([\n property({ attribute: 'typeahead-text' })\n], SelectOptionEl.prototype, \"typeaheadText\", null);\n__decorate([\n property({ attribute: 'display-text' })\n], SelectOptionEl.prototype, \"displayText\", null);\n//# sourceMappingURL=select-option.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from '../menu/internal/menuitem/menu-item-styles.js';\nimport { SelectOptionEl } from './internal/selectoption/select-option.js';\n/**\n * @summary\n * Select menus display a list of choices on temporary surfaces and display the\n * currently selected menu item above the menu.\n *\n * @description\n * The select component allows users to choose a value from a fixed list of\n * available options. Composed of an interactive anchor button and a menu, it is\n * analogous to the native HTML `<select>` element. This is the option that\n * can be placed inside of an mdif1-select.\n *\n * This component is a subclass of `mdif1-menu-item` and can accept the same slots,\n * properties, and events as `mdif1-menu-item`.\n *\n * @example\n * ```html\n * <mdif1-outlined-select label=\"fruits\">\n * <!-- An empty selected option will give select an \"un-filled\" state -->\n * <mdif1-select-option selected></mdif1-select-option>\n * <mdif1-select-option value=\"apple\" headline=\"Apple\"></mdif1-select-option>\n * <mdif1-select-option value=\"banana\" headline=\"Banana\"></mdif1-select-option>\n * <mdif1-select-option value=\"kiwi\" headline=\"Kiwi\"></mdif1-select-option>\n * <mdif1-select-option value=\"orange\" headline=\"Orange\"></mdif1-select-option>\n * <mdif1-select-option value=\"tomato\" headline=\"Tomato\"></mdif1-select-option>\n * </mdif1-outlined-select>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\nlet MdSelectOption = class MdSelectOption extends SelectOptionEl {\n};\nMdSelectOption.styles = [styles];\nMdSelectOption = __decorate([\n customElement('mdif1-select-option')\n], MdSelectOption);\nexport { MdSelectOption };\n//# sourceMappingURL=select-option.js.map","import { html, css, LitElement, PropertyValues, nothing } from 'lit'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { property, state, customElement, query } from 'lit/decorators.js'\nimport { InputData, FormFields } from './definition-schema.js'\n\nimport '@material/web/fab/fab.js'\nimport '@material/web/icon/icon.js'\nimport '@material/web/dialog/dialog.js'\n\nimport '@material/web/button/text-button.js'\nimport '@material/web/button/outlined-button.js'\nimport '@material/web/button/filled-button.js'\nimport '@material/web/textfield/outlined-text-field.js'\nimport '@material/web/checkbox/checkbox.js'\nimport '@material/web/select/outlined-select.js'\nimport '@material/web/select/select-option.js'\n// import 'lit-flatpickr'\n\nimport type { MdDialog } from '@material/web/dialog/dialog.js'\n\ntype Column = Exclude<InputData['formFields'], undefined>[number]\ntype Theme = {\n theme_name: string\n theme_object: any\n}\n@customElement('widget-form-versionplaceholder')\nexport class WidgetForm extends LitElement {\n @property({ type: Object })\n inputData?: InputData\n\n @property({ type: Object })\n theme?: Theme\n\n @state() private themeBgColor?: string\n @state() private themeTitleColor?: string\n @state() private themeSubtitleColor?: string\n\n @state() dialogOpen: boolean = false\n\n @query('mdif1-dialog') dialog!: MdDialog\n\n version: string = 'versionplaceholder'\n\n update(changedProperties: Map<string, any>) {\n if (changedProperties.has('theme')) {\n this.registerTheme(this.theme)\n }\n\n super.update(changedProperties)\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.registerTheme(this.theme)\n }\n\n registerTheme(theme?: Theme) {\n const cssTextColor = getComputedStyle(this).getPropertyValue('--re-text-color').trim()\n const cssBgColor = getComputedStyle(this).getPropertyValue('--re-tile-background-color').trim()\n this.themeBgColor = cssBgColor || this.theme?.theme_object?.backgroundColor\n this.themeTitleColor = cssTextColor || this.theme?.theme_object?.title?.textStyle?.color\n this.themeSubtitleColor =\n cssTextColor || this.theme?.theme_object?.title?.subtextStyle?.color || this.themeTitleColor\n }\n\n openFormDialog() {\n this.dialogOpen = true\n }\n\n handleFormSubmit(event: Event) {\n event.preventDefault()\n const form = event.target as HTMLFormElement\n const formData = new FormData(form)\n const data = Object.fromEntries((formData as any).entries())\n\n const submitData = this.inputData?.formFields?.map((field, i) => {\n return {\n swarm_app_databackend_key: field.targetColumn?.swarm_app_databackend_key,\n table_name: field.targetColumn?.tablename,\n column_name: field.targetColumn?.column,\n value: this.formatValue(\n data[`column-${i}`] || field.defaultValue || '',\n field.type ?? 'textfield'\n )\n }\n })\n this.dispatchEvent(\n new CustomEvent('data-submit', {\n detail: submitData,\n bubbles: false,\n composed: false\n })\n )\n form.reset()\n this.dialogOpen = false\n }\n\n formatValue(value: string, type: string): any {\n switch (type) {\n case 'numberfield':\n return parseFloat(value)\n case 'checkbox':\n return value === 'on' ? true : false\n default:\n return value\n }\n }\n\n renderTextField(field: Column, i: number) {\n return html`\n <mdif1-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n .type=\"${field.type === 'numberfield' ? 'number' : 'text'}\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n .pattern=\"${field.validation ?? ''}\"\n supporting-text=${field.description ?? ''}\n validation-message=\"${field.validationMessage ?? 'Invalid input'}\"\n ?required=${field.required && !field.defaultValue}\n ></mdif1-outlined-text-field>\n `\n }\n\n renderNumberField(field: Column, i: number) {\n return html`\n <mdif1-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n style=\"width: 200px;\"\n type=\"number\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n step=\"any\"\n min=${field.min ?? ''}\n max=${field.max ?? ''}\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></mdif1-outlined-text-field>\n `\n }\n\n renderCheckbox(field: Column, i: number) {\n return html`\n <div class=\"checkbox-container\">\n <mdif1-checkbox\n name=\"column-${i}\"\n aria-label=${field.label ?? ''}\n ?checked=${field.defaultValue === 'true'}\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></mdif1-checkbox>\n <label class=\"label\"> ${field.label} </label>\n </div>\n `\n }\n\n renderTextArea(field: Column, i: number) {\n return html`\n <mdif1-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n type=\"textarea\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n rows=\"3\"\n ?required=${field.required && !field.defaultValue}\n supporting-text=${field.description ?? ''}\n ></mdif1-outlined-text-field>\n `\n }\n\n renderDropdown(field: Column, i: number) {\n return html`\n <label class=\"label\">\n ${field.label}\n <mdif1-outlined-select\n name=\"column-${i}\"\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n >\n ${repeat(\n field.values ?? [],\n (val) => val.value,\n (val) => {\n return html`\n <mdif1-select-option\n .value=\"${val.value ?? ''}\"\n ?selected=\"${val.value === field.defaultValue}\"\n >\n ${val.displayLabel}\n </mdif1-select-option>\n `\n }\n )}\n </mdif1-outlined-select>\n </label>\n `\n }\n\n renderDateTimeField(field: Column, i: number) {\n // return html`\n // <label id=\"x\" class=\"label\"> ${field.label} </label>\n // <lit-flatpickr\n // .name=\"column-${i}\"\n // .label=\"${field.label ?? ''}\"\n // allowInput\n // enableTime\n // mode=\"single\"\n // dateFormat=\"Y-m-d H:i:S\"\n // altFormat=\"Y-m-d H:i:S\"\n // time_24hr\n // .defaultDate=\"${field.defaultValue}\"\n // showMonths=\"1\"\n // weekNumbers\n // >\n // <input />\n // </lit-flatpickr>\n // `\n\n return html`\n <mdif1-outlined-text-field\n .name=\"column-${i}\"\n style=\"width: 200px;\"\n .label=\"${field.label ?? ''}\"\n type=\"datetime-local\"\n .value=\"${field.defaultValue ?? ''}\"\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></mdif1-outlined-text-field>\n `\n }\n\n cancelEdit(event: Event) {\n this.dialogOpen = false\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n box-sizing: border-box;\n position: relative;\n margin: auto;\n }\n\n .edit-fab {\n --mdif1-fab-icon-color: white;\n --mdif1-fab-container-color: #007bff;\n --mdif1-fab-label-text-color: white;\n position: absolute;\n bottom: 24px;\n right: 24px;\n z-index: 10;\n }\n\n .paging:not([active]) {\n display: none !important;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n padding: 16px;\n box-sizing: border-box;\n overflow: auto;\n }\n\n .form-actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 16px;\n }\n\n h3 {\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 16px 0px 0px 16px;\n box-sizing: border-box;\n }\n p {\n margin: 10px 0 16px 0;\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding-left: 16px;\n box-sizing: border-box;\n }\n\n /* The dialog classes */\n .form {\n min-width: 80%;\n }\n\n .form [slot='header'] {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n }\n\n .form .headline {\n flex: 1;\n }\n\n .form-content,\n .form-row {\n display: flex;\n gap: 8px;\n }\n\n .form-content {\n flex-direction: column;\n gap: 24px;\n }\n\n .form-row > * {\n flex: 1;\n }\n\n .checkbox-container {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .label {\n display: flex;\n flex-direction: column;\n }\n\n mdif1-outlined-select {\n flex: 1;\n }\n\n mdif1-dialog {\n overflow: visible;\n }\n\n lit-flatpickr {\n z-index: 1000;\n }\n\n .header {\n display: flex;\n align-items: center;\n --mdif1-fab-icon-color: white;\n --mdif1-fab-container-color: #007bff;\n --mdif1-fab-label-text-color: white;\n }\n `\n\n render() {\n return html`\n <div class=\"header\">\n ${this.inputData?.formButton\n ? html`\n <mdif1-fab\n aria-label=\"Add\"\n style=\"margin-left: 16px; --mdif1-fab-container-color: ${this.theme\n ?.theme_object?.color[0] ?? '#9064f7'}\"\n @click=${this.openFormDialog}\n >\n <mdif1-icon slot=\"icon\">add</mdif1-icon>\n </mdif1-fab>\n `\n : nothing}\n <header>\n <h3 class=\"paging\" ?active=${this.inputData?.title}>${this.inputData?.title}</h3>\n <p class=\"paging\" ?active=${this.inputData?.subTitle}>${this.inputData?.subTitle}</p>\n </header>\n </div>\n ${!this.inputData?.formButton\n ? html`\n <div class=\"wrapper\">\n ${this.renderForm()}\n <div class=\"form-actions\">\n <mdif1-outlined-button form=\"form\" value=\"cancel\" type=\"reset\"\n >Reset</mdif1-outlined-button\n >\n <mdif1-filled-button form=\"form\" value=\"submit\" type=\"submit\" autofocus\n >Submit</mdif1-filled-button\n >\n </div>\n </div>\n `\n : html`\n <mdif1-dialog\n aria-label=\"${this.inputData?.title ?? 'Data Entry'}\"\n class=\"form\"\n quick\n ?open=${this.dialogOpen}\n @cancel=${(event: any) => {\n event.preventDefault()\n }}\n @keydown=${(event: any) => {\n if (event.key === 'Escape') event.preventDefault()\n }}\n @closed=${() => (this.dialogOpen = false)}\n >\n <div slot=\"headline\">${this.inputData?.title ?? 'Data Entry'}</div>\n ${this.renderForm()}\n <div slot=\"actions\">\n <mdif1-outlined-button form=\"form\" value=\"cancel\" type=\"reset\"\n >Cancel</mdif1-outlined-button\n >\n <mdif1-filled-button form=\"form\" value=\"submit\" type=\"submit\" autofocus\n >Submit</mdif1-filled-button\n >\n </div>\n </mdif1-dialog>\n `}\n `\n }\n\n renderForm() {\n return html`\n <form\n id=\"form\"\n slot=\"content\"\n method=\"dialog\"\n class=\"form-content\"\n @submit=${this.handleFormSubmit}\n @reset=${this.cancelEdit}\n >\n ${repeat(\n this.inputData?.formFields?.filter((field) => !field.hiddenField) ?? [],\n (field, i) => i,\n (field, i) => {\n switch (field.type) {\n case 'textfield':\n return this.renderTextField(field, i)\n case 'numberfield':\n return this.renderNumberField(field, i)\n case 'datetime':\n return this.renderDateTimeField(field, i)\n case 'textarea':\n return this.renderTextArea(field, i)\n case 'dropdown':\n return this.renderDropdown(field, i)\n case 'checkbox':\n return this.renderCheckbox(field, i)\n }\n }\n )}\n </form>\n `\n }\n}\n"],"names":["__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","SuppressedError","error","suppressed","message","e","Error","name","t","globalThis","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n","constructor","_$cssResult$","cssText","styleSheet","get","replaceSync","set","toString","css","reduce","S","adoptStyles","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","cssRules","is","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","JSCompiler_renameProperty","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","notEqual","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createMarker","createComment","iterator","v","_","m","RegExp","g","$","_$litType$","strings","values","x","T","for","E","A","createTreeWalker","P","V","getTemplateHtml","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","Z","litHtmlPolyfillSupport","litHtmlVersions","B","render","renderBefore","_$litPart$","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","_$Ct","_$Ci","insertPart","_$AQ","setChildPartValue","setCommittedValue","generateMap","dt","ut","w","customElements","define","standardProperty","kind","init","querySelector","createDocumentFragment","querySelectorAll","slot","selector","assignedElements","filter","matches","assignedNodes","Elevation","html","MdElevation","customElement","ATTACHABLE_CONTROLLER","FOR_ATTRIBUTE_OBSERVER","MutationObserver","records","record","AttachableController","htmlFor","control","getRootNode","currentControl","parentElement","attach","detach","onControlChange","observe","attributeFilter","setCurrentControl","EVENTS","FocusRing","visible","inward","attachableController","bind","event","HANDLED_BY_FOCUS_RING","prev","next","changed","dispatchEvent","Event","property","MdFocusRing","join","st","nt","classList","EASING","STANDARD","STANDARD_ACCELERATE","EMPHASIZED","EMPHASIZED_ACCELERATE","createAnimationSignal","animationAbortController","start","abort","AbortController","signal","finish","PRESS_GROW_MS","MINIMUM_PRESS_MS","INITIAL_ORIGIN_SCALE","PADDING","SOFT_EDGE_MINIMUM_SIZE","SOFT_EDGE_CONTAINER_RATIO","PRESS_PSEUDO","ANIMATION_FILL","State","TOUCH_DELAY_MS","FORCED_COLORS","window","matchMedia","Ripple","disabled","hovered","pressed","rippleSize","rippleScale","initialSize","INACTIVE","classes","classMap","changedProps","handlePointerenter","shouldReactToEvent","handlePointerleave","endPressAnimation","handlePointerup","HOLDING","WAITING_FOR_CLICK","TOUCH_DELAY","startPressAnimation","rippleStartEvent","handlePointerdown","isTouch","resolve","setTimeout","handleClick","handlePointercancel","handleContextmenu","determineRippleSize","height","width","getBoundingClientRect","maxDim","max","softEdgeSize","zoom","currentCSSZoom","floor","hypotenuse","sqrt","maxRadius","maybeZoomedScale","getNormalizedPointerEventCoords","pointerEvent","scrollX","scrollY","left","top","documentX","documentY","pageX","pageY","getTranslationCoordinates","positionEvent","endPoint","startPoint","PointerEvent","mdRoot","growAnimation","cancel","translateStart","translateEnd","animate","transform","pseudoElement","duration","easing","undefined","animation","pressAnimationPlayState","Infinity","currentTime","to","value","isPrimary","pointerId","isPrimaryButton","buttons","pointerType","query","MdRipple","ARIA_PROPERTIES","ARIA_ATTRIBUTES","ariaPropertyToAttribute","isAriaAttribute","includes","replace","privateIgnoreAttributeChangesFor","mixinDelegatesAria","base","WithDelegatesAriaElement","_a","oldValue","newValue","dataProperty","ariaAttributeToDataProperty","dataset","ariaAttributeToDataAttribute","setupDelegatesAriaProperties","ariaProperty","ariaAttribute","dataAttribute","prevValue","dashLetter","toUpperCase","fabBaseClass","SharedFab","label","lowered","ariaLabel","getRenderClasses","nothing","renderTouchTarget","renderIcon","renderLabel","isExtended","delegatesFocus","Fab","variant","MdFab","sharedStyles","forcedColors","Icon","ariaHidden","MdIcon","Divider","inset","insetStart","insetEnd","MdDivider","redispatchEvent","bubbles","composed","stopPropagation","copy","construct","dispatched","preventDefault","DIALOG_DEFAULT_OPEN_ANIMATION","dialog","scrim","container","headline","offset","actions","DIALOG_DEFAULT_CLOSE_ANIMATION","delay","dialogBaseClass","Dialog","open","isOpen","show","close","quick","returnValue","noFocusTrap","getOpenAnimation","getCloseAnimation","isOpening","isConnectedPromise","getIsConnectedPromise","isAtScrollTop","isAtScrollBottom","nextClickIsFromContent","hasHeadline","hasActions","hasIcon","escapePressedWithoutCancel","treewalker","NodeFilter","SHOW_ELEMENT","handleSubmit","preventOpen","cancelable","showModal","scroller","scrollTop","focus","animateDialog","prevReturnValue","preventClose","isConnectedPromiseResolve","scrollable","showFocusTrap","focusTrap","handleFocusTrapFocus","handleCancel","handleDialogClick","handleClose","handleKeydown","handleContentClick","handleIconChange","handleHeadlineChange","handleActionsChange","intersectionObserver","IntersectionObserver","entries","entry","handleAnchorIntersection","root","topAnchor","bottomAnchor","form","submitter","cancelAnimations","containerAnimate","dialogAnimate","scrimAnimate","headlineAnimate","contentAnimate","actionsAnimate","elementAndAnimation","animations","animateArgs","all","finished","catch","isIntersecting","firstFocusableChild","lastFocusableChild","getFirstAndLastFocusableChildren","isFirstFocusTrap","firstFocusTrap","isLastFocusTrap","focusCameFromFirstChild","relatedTarget","focusCameFromLastChild","focusCameFromOutsideDialog","shouldFocusFirstChild","shouldFocusLastChild","nextChild","isFocusable","knownFocusableElements","notDisabled","notNegativeTabIndex","isCustomElement","localName","MdDialog","internals","privateInternals","mixinElementInternals","WithElementInternalsElement","attachInternals","setupFormSubmitter","instance","elementInternals","defaultPrevented","reset","submitEvent","setFormValue","requestSubmit","dispatchActivationClick","MouseEvent","isActivationClick","currentTarget","composedPath","squelchEvent","squelched","isSquelchingEvents","stopImmediatePropagation","squelchEventsForMicrotask","buttonBaseClass","Button","softDisabled","href","download","trailingIcon","buttonElement","blur","isRippleDisabled","buttonOrLink","renderLink","renderButton","buttonId","renderElevationOrOutline","ariaHasPopup","ariaExpanded","renderContent","icon","handleSlotChange","assignedIcons","formAssociated","queryAssignedElements","flatten","TextButton","MdTextButton","textStyles","OutlinedButton","MdOutlinedButton","outlinedStyles","FilledButton","MdFilledButton","sharedElevationStyles","filledStyles","Field","focused","noAsterisk","populated","required","resizable","supportingText","errorText","count","hasStart","hasEnd","isAnimating","refreshErrorAlert","disableTransitions","counterText","countAsNumber","maxAsNumber","supportingOrErrorText","reannounceError","props","isDisabledChanging","animateLabelIfNeeded","wasFocused","wasPopulated","floatingLabel","restingLabel","outline","renderOutline","renderBackground","renderStateLayer","renderIndicator","renderSupportingText","updateSlottedAriaDescribedBy","requestAnimationFrame","end","shouldErrorAnnounce","role","slottedAriaDescribedBy","isFloating","labelText","wasFloating","shouldBeFloating","labelAnimation","floatingLabelEl","getLabelKeyframes","restingLabelEl","floatingX","floatingY","floatingHeight","restingX","restingY","restingHeight","floatingScrollWidth","scrollWidth","restingScrollWidth","scale","xDelta","yDelta","round","restTransform","floatTransform","restingClientWidth","clientWidth","isRestingClipped","getSurfacePositionClientRect","containerEl","OutlinedField","MdOutlinedField","_$litStatic$","literal","raw","style","ft","removeProperty","setProperty","stringConverter","createValidator","getValidityAnchor","privateValidator","privateSyncValidity","privateCustomValidationMessage","mixinConstraintValidation","ConstraintValidationElement","validity","validationMessage","willValidate","checkValidity","reportValidity","setCustomValidity","nonCustomValidationMessage","getValidity","customError","setValidity","getFormValue","getFormState","mixinFormAssociated","FormAssociatedElement","labels","old","formDisabledCallback","onReportValidity","privateCleanupFormListeners","privateDoNotReportInvalid","privateIsSelfReportingValidity","privateCallOnReportValidity","mixinOnReportValidity","OnReportValidityElement","args","_b","_c","invalidEvent","isTrusted","valid","wasCanceled","implementationCanceledFocus","isFirstInvalidControlInForm","formAssociatedCallback","addFormReportValidListener","onControlValid","cleanup","validateHooks","getFormValidateHooks","controlFiredInvalid","cleanupInvalidListener","isNextSubmitFromHook","FORM_VALIDATE_HOOKS","hooks","EventTarget","methodName","superMethod","result","apply","firstInvalidControl","elements","Validator","getCurrentState","currentValidity","hasStateChanged","prevState","equals","computeValidity","badInput","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing","TextFieldValidator","renderedControl","inputOrTextArea","isInputState","inputControl","textAreaControl","input","inputState","pattern","min","step","minLength","maxLength","inputOrTextAreaEqual","copyInput","copyTextArea","copySharedState","textFieldBaseClass","TextField","prefixText","suffixText","hasLeadingIcon","hasTrailingIcon","textDirection","rows","cols","inputMode","noSpinner","placeholder","readOnly","multiple","autocomplete","dirty","nativeError","nativeErrorText","selectionDirection","getInputOrTextarea","selectionEnd","selectionStart","valueAsNumber","getInput","NaN","valueAsDate","hasError","select","setRangeText","setSelectionRange","direction","showPicker","stepDown","stepDecrement","stepUp","stepIncrement","renderField","changedProperties","staticHtml","fieldTag","getErrorText","renderLeadingIcon","renderInputOrTextarea","renderTrailingIcon","hasMaxLength","hasMinLength","styleMap","live","handleFocusChange","handleInput","prefix","renderPrefix","suffix","renderSuffix","renderAffix","text","isSuffix","inputOrTextarea","leadingIcons","trailingIcons","formResetCallback","formStateRestoreCallback","prevMessage","field","OutlinedTextField","MdOutlinedTextField","CheckboxValidator","checkboxControl","checked","checkboxBaseClass","Checkbox","indeterminate","prevChecked","prevDisabled","prevIndeterminate","prevNone","isChecked","isIndeterminate","containerClasses","ariaInvalid","handleChange","MdCheckbox","activateFirstItem","items","isActivatable","isItemNotDisabled","firstItem","getFirstActivatableItem","tabIndex","activateLastItem","lastItem","getLastActivatableItem","getActiveItem","item","getNextItem","wrap","nextIndex","getPrevItem","prevIndex","activateNextItem","activeItemRecord","activatePreviousItem","NavigableKeys","ArrowDown","ArrowLeft","ArrowUp","ArrowRight","Home","End","ListController","config","isNavigableKey","isRtl","inlinePrevious","inlineNext","nextActiveItem","wrapNavigation","onDeactivateItems","deactivateItem","onRequestActivation","activateItem","onSlotchange","encounteredActivated","isActivated","firstActivatableItem","isItem","getPossibleItems","maybeItems","itemOrParent","subItem","createCloseMenuEvent","initiator","reason","CustomEvent","detail","itemPath","createDefaultCloseMenuEvent","SelectionKey","SPACE","ENTER","CloseReason","CLICK_SELECTION","KEYDOWN","KeydownCloseKey","ESCAPE","isClosableKey","code","some","isSelectableKey","isElementInSubtree","focusEv","listener","ev","isContained","FocusState","NONE","LIST_ROOT","FIRST_ITEM","LAST_ITEM","Corner","END_START","END_END","START_START","SurfacePositionController","getProperties","surfaceStylesInternal","lastValues","surfaceStyles","position","surfaceEl","anchorEl","anchorCorner","anchorCornerRaw","surfaceCorner","surfaceCornerRaw","positioning","xOffset","yOffset","disableBlockFlip","disableInlineFlip","repositionStrategy","trim","windowInnerWidth","innerWidth","windowInnerHeight","innerHeight","div","opacity","display","body","scrollbarTestRect","blockScrollbarHeight","bottom","inlineScrollbarWidth","right","popover","showPopover","surfaceRect","anchorRect","surfaceBlock","surfaceInline","anchorBlock","anchorInline","isLTR","getComputedStyle","blockInset","blockOutOfBoundsCorrection","surfaceBlockProperty","calculateBlock","flippedSurfaceBlock","flippedAnchorBlock","flippedBlock","inlineInset","inlineOutOfBoundsCorrection","surfaceInlineProperty","calculateInline","flippedSurfaceInline","flippedAnchorInline","flippedInline","abs","relativeToWindow","relativeToDocument","isSurfaceBlockStart","isSurfaceBlockEnd","isOneBlockEnd","blockAnchorOffset","blockTopLayerOffset","blockDocumentOffset","isLTRBool","isRTL","isSurfaceInlineStart","isSurfaceInlineEnd","isOneInlineEnd","inlineAnchorOffset","inlineTopLayerOffsetLTR","inlineTopLayerOffsetRTL","inlineTopLayerOffset","inlineDocumentOffsetLTR","inlineDocumentOffsetRTL","inlineDocumentOffset","onUpdate","openChanged","hasAnchor","hasSurface","onOpen","beforeClose","onClose","hidePopover","TYPEAHEAD_RECORD","INDEX","ITEM","TEXT","TypeaheadController","typeaheadRecords","typaheadBuffer","cancelTypeaheadTimeout","isTypingAhead","lastActiveRecord","onKeydown","typeahead","beginTypeahead","endTypeahead","getItems","active","typeaheadText","find","clearTimeout","typeaheadBufferTime","lastActiveIndex","numRecords","rebaseIndexOnActive","matchingRecords","sort","isNewQuery","nextRecord","DEFAULT_TYPEAHEAD_BUFFER_TIME","submenuNavKeys","menuNavKeys","getFocusedElement","activeDoc","activeEl","activeElement","Menu","openDirection","menuCornerBlock","menuCorner","anchorElement","anchor","currentAnchorElement","hasOverflow","noHorizontalFlip","noVerticalFlip","typeaheadDelay","stayOpenOnOutsideClick","stayOpenOnFocusout","skipRestoreFocus","defaultFocus","noNavigationWrap","typeaheadActive","isSubmenu","pointerPath","isRepositioning","openCloseAnimationSignal","listController","maybeItem","slotItems","selected","arrowOpen","lastFocusedElement","typeaheadController","menuPositionController","onOpened","onClosed","onWindowResize","reposition","handleFocusout","oldRestoreFocus","animationAborted","animateOpen","first","last","animateClose","onWindowPointerdown","onDocumentClick","path","captureKeydown","setUpGlobalEventListeners","cleanUpGlobalEventListeners","getClientRects","renderSurface","getSurfaceClasses","renderElevation","renderMenuItems","onCloseMenu","handleDeactivateTypeahead","handleActivateTypeahead","handleStayOpenOnFocusout","handleCloseOnFocusout","fixed","slotEl","toggle","offsetHeight","openingUpwards","children","FULL_DURATION","SURFACE_OPACITY_DURATION","ITEM_OPACITY_DURATION","DELAY_BETWEEN_ITEMS","surfaceHeightAnimation","upPositionCorrectionAnimation","surfaceOpacityAnimation","childrenAnimations","directionalIndex","child","resolveAnimation","animationFinished","animationEnded","res","closingDownwards","SURFACE_OPACITY_DELAY","ITEM_OPACITY_INITIAL_DELAY","END_HEIGHT_PERCENTAGE","downPositionCorrectionAnimation","maybeSubmenu","MdMenu","SelectValidator","selectControl","getSelectedItems","selectedItemRecords","VALUE","selectBaseClass","Select","lastUserSetValue","menu","selectedIndex","_option","getSelectedOptions","lastUserSetSelectedIndex","selectIndex","selectedOptions","option","menuPositioning","clampMenuWidth","displayText","menuAlign","lastSelectedOption","lastSelectedOptionRecords","prevOpen","selectWidth","handleFocus","handleBlur","optionToSelect","selectItem","updateValueAndDisplayText","initUserSelection","selectRect","renderMenu","renderFieldContent","handleOpening","handleClosed","handleCloseMenu","handleRequestSelection","handleRequestDeselection","renderMenuContent","isOpenKey","isPrintableKey","labelEl","dispatchInteractionEvents","hasSelectedOptionChanged","firstSelectedOption","activeItem","selectedItem","requestingOptionEl","click","OutlinedSelect","MdOutlinedSelect","Item","multiline","handleTextSlotChange","isMultiline","slotsWithContent","textSlots","slotHasContent","queryAll","node","isElement","Node","ELEMENT_NODE","isTextWithContent","TEXT_NODE","match","MdItem","MenuItemController","internalTypeaheadText","onClick","keepOpen","interactiveElement","getInteractiveElement","HTMLAnchorElement","keyCode","getHeadlineElements","getSupportingTextElements","getDefaultElements","headlineElements","textParts","headlineElement","defaultElement","supportingTextElement","setTypeaheadText","createRequestSelectionEvent","createRequestDeselectionEvent","SelectOptionController","menuItemController","internalDisplayText","setDisplayText","firstUpdate","lastSelected","ariaSelected","selectOptionBaseClass","SelectOptionEl","isMenuItem","selectOptionController","supportingTextElements","defaultElements","listItemRoot","renderListItem","renderRipple","renderFocusRing","renderBody","ariaChecked","queryAssignedNodes","MdSelectOption","repeat"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107]}
1
+ {"version":3,"file":"widget-form.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../src/widget-form.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,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$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.0\");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.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(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=S(t,h._$AS(t,i.values),h,e)),i}class M{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??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,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 R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,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=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(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!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.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=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(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 R(this.O(l()),this.O(l()),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,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,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=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||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){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(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 R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b 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.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { html, css, LitElement, PropertyValues, nothing } from 'lit'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { property, state, customElement, query } from 'lit/decorators.js'\nimport { InputData, FormFields } from './definition-schema.js'\n\nimport '@material/web/fab/fab.js'\nimport '@material/web/icon/icon.js'\nimport '@material/web/dialog/dialog.js'\n\nimport '@material/web/button/text-button.js'\nimport '@material/web/button/outlined-button.js'\nimport '@material/web/button/filled-button.js'\nimport '@material/web/textfield/outlined-text-field.js'\nimport '@material/web/checkbox/checkbox.js'\nimport '@material/web/select/outlined-select.js'\nimport '@material/web/select/select-option.js'\n\nimport type { MdDialog } from '@material/web/dialog/dialog.js'\n\ntype Column = Exclude<InputData['formFields'], undefined>[number]\ntype Theme = {\n theme_name: string\n theme_object: any\n}\n@customElement('widget-form-versionplaceholder')\nexport class WidgetForm extends LitElement {\n @property({ type: Object })\n inputData?: InputData\n\n @property({ type: Object })\n theme?: Theme\n\n @state() private themeBgColor?: string\n @state() private themeTitleColor?: string\n @state() private themeSubtitleColor?: string\n\n @state() dialogOpen: boolean = false\n\n @query('md-dialog') dialog!: MdDialog\n\n version: string = 'versionplaceholder'\n\n update(changedProperties: Map<string, any>) {\n if (changedProperties.has('theme')) {\n this.registerTheme(this.theme)\n }\n\n super.update(changedProperties)\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.registerTheme(this.theme)\n }\n\n registerTheme(theme?: Theme) {\n const cssTextColor = getComputedStyle(this).getPropertyValue('--re-text-color').trim()\n const cssBgColor = getComputedStyle(this).getPropertyValue('--re-tile-background-color').trim()\n this.themeBgColor = cssBgColor || this.theme?.theme_object?.backgroundColor\n this.themeTitleColor = cssTextColor || this.theme?.theme_object?.title?.textStyle?.color\n this.themeSubtitleColor =\n cssTextColor || this.theme?.theme_object?.title?.subtextStyle?.color || this.themeTitleColor\n }\n\n openFormDialog() {\n this.dialogOpen = true\n }\n\n handleFormSubmit(event: Event) {\n event.preventDefault()\n const form = event.target as HTMLFormElement\n const formData = new FormData(form)\n const data = Object.fromEntries((formData as any).entries())\n\n const submitData = this.inputData?.formFields?.map((field, i) => {\n return {\n swarm_app_databackend_key: field.targetColumn?.swarm_app_databackend_key,\n table_name: field.targetColumn?.tablename,\n column_name: field.targetColumn?.column,\n value: this.formatValue(\n data[`column-${i}`] || field.defaultValue || '',\n field.type ?? 'textfield'\n )\n }\n })\n this.dispatchEvent(\n new CustomEvent('data-submit', {\n detail: submitData,\n bubbles: false,\n composed: false\n })\n )\n form.reset()\n this.dialogOpen = false\n }\n\n formatValue(value: string, type: string): any {\n switch (type) {\n case 'numberfield':\n return parseFloat(value)\n case 'checkbox':\n return value === 'on' ? true : false\n default:\n return value\n }\n }\n\n renderTextField(field: Column, i: number) {\n return html`\n <md-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n .type=\"${field.type === 'numberfield' ? 'number' : 'text'}\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n .pattern=\"${field.validation ?? ''}\"\n supporting-text=${field.description ?? ''}\n validation-message=\"${field.validationMessage ?? 'Invalid input'}\"\n ?required=${field.required && !field.defaultValue}\n ></md-outlined-text-field>\n `\n }\n\n renderNumberField(field: Column, i: number) {\n return html`\n <md-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n style=\"width: 200px;\"\n type=\"number\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n step=\"any\"\n min=${field.min ?? ''}\n max=${field.max ?? ''}\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></md-outlined-text-field>\n `\n }\n\n renderCheckbox(field: Column, i: number) {\n return html`\n <div class=\"checkbox-container\">\n <md-checkbox\n name=\"column-${i}\"\n aria-label=${field.label ?? ''}\n ?checked=${field.defaultValue === 'true'}\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></md-checkbox>\n <label class=\"label\"> ${field.label} </label>\n </div>\n `\n }\n\n renderTextArea(field: Column, i: number) {\n return html`\n <md-outlined-text-field\n .name=\"column-${i}\"\n .label=\"${field.label ?? ''}\"\n type=\"textarea\"\n .placeholder=\"${field.defaultValue ?? ''}\"\n rows=\"3\"\n ?required=${field.required && !field.defaultValue}\n supporting-text=${field.description ?? ''}\n ></md-outlined-text-field>\n `\n }\n\n renderDropdown(field: Column, i: number) {\n return html`\n <label class=\"label\">\n ${field.label}\n <md-outlined-select\n name=\"column-${i}\"\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n >\n ${repeat(\n field.values ?? [],\n (val) => val.value,\n (val) => {\n return html`\n <md-select-option\n .value=\"${val.value ?? ''}\"\n ?selected=\"${val.value === field.defaultValue}\"\n >\n ${val.displayLabel}\n </md-select-option>\n `\n }\n )}\n </md-outlined-select>\n </label>\n `\n }\n\n renderDateTimeField(field: Column, i: number) {\n return html`\n <md-outlined-text-field\n .name=\"column-${i}\"\n style=\"width: 200px;\"\n .label=\"${field.label ?? ''}\"\n type=\"datetime-local\"\n .value=\"${field.defaultValue ?? ''}\"\n supporting-text=${field.description ?? ''}\n ?required=${field.required && !field.defaultValue}\n ></md-outlined-text-field>\n `\n }\n\n cancelEdit(event: Event) {\n this.dialogOpen = false\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n box-sizing: border-box;\n position: relative;\n margin: auto;\n }\n\n .edit-fab {\n --md-fab-icon-color: white;\n --md-fab-container-color: #007bff;\n --md-fab-label-text-color: white;\n position: absolute;\n bottom: 24px;\n right: 24px;\n z-index: 10;\n }\n\n .paging:not([active]) {\n display: none !important;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n padding: 16px;\n box-sizing: border-box;\n overflow: auto;\n }\n\n .form-actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 16px;\n }\n\n h3 {\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 16px 0px 0px 16px;\n box-sizing: border-box;\n }\n p {\n margin: 10px 0 16px 0;\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding-left: 16px;\n box-sizing: border-box;\n }\n\n /* The dialog classes */\n .form {\n min-width: 80%;\n }\n\n .form [slot='header'] {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n }\n\n .form .headline {\n flex: 1;\n }\n\n .form-content,\n .form-row {\n display: flex;\n gap: 8px;\n }\n\n .form-content {\n flex-direction: column;\n gap: 24px;\n }\n\n .form-row > * {\n flex: 1;\n }\n\n .checkbox-container {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .label {\n display: flex;\n flex-direction: column;\n }\n\n md-outlined-select {\n flex: 1;\n }\n\n md-dialog {\n overflow: visible;\n }\n\n .header {\n display: flex;\n align-items: center;\n --md-fab-icon-color: white;\n --md-fab-container-color: #007bff;\n --md-fab-label-text-color: white;\n }\n `\n\n render() {\n return html`\n <div class=\"header\">\n ${this.inputData?.formButton\n ? html`\n <md-fab\n aria-label=\"Add\"\n style=\"margin-left: 16px; --md-fab-container-color: ${this.theme?.theme_object\n ?.color[0] ?? '#9064f7'}\"\n @click=${this.openFormDialog}\n >\n <md-icon slot=\"icon\">add</md-icon>\n </md-fab>\n `\n : nothing}\n <header>\n <h3 class=\"paging\" ?active=${this.inputData?.title}>${this.inputData?.title}</h3>\n <p class=\"paging\" ?active=${this.inputData?.subTitle}>${this.inputData?.subTitle}</p>\n </header>\n </div>\n ${!this.inputData?.formButton\n ? html`\n <div class=\"wrapper\">\n ${this.renderForm()}\n <div class=\"form-actions\">\n <md-outlined-button form=\"form\" value=\"cancel\" type=\"reset\"\n >Reset</md-outlined-button\n >\n <md-filled-button form=\"form\" value=\"submit\" type=\"submit\" autofocus\n >Submit</md-filled-button\n >\n </div>\n </div>\n `\n : html`\n <md-dialog\n aria-label=\"${this.inputData?.title ?? 'Data Entry'}\"\n class=\"form\"\n quick\n ?open=${this.dialogOpen}\n @cancel=${(event: any) => {\n event.preventDefault()\n }}\n @keydown=${(event: any) => {\n if (event.key === 'Escape') event.preventDefault()\n }}\n @closed=${() => (this.dialogOpen = false)}\n >\n <div slot=\"headline\">${this.inputData?.title ?? 'Data Entry'}</div>\n ${this.renderForm()}\n <div slot=\"actions\">\n <md-outlined-button form=\"form\" value=\"cancel\" type=\"reset\"\n >Cancel</md-outlined-button\n >\n <md-filled-button form=\"form\" value=\"submit\" type=\"submit\" autofocus\n >Submit</md-filled-button\n >\n </div>\n </md-dialog>\n `}\n `\n }\n\n renderForm() {\n return html`\n <form\n id=\"form\"\n slot=\"content\"\n method=\"dialog\"\n class=\"form-content\"\n @submit=${this.handleFormSubmit}\n @reset=${this.cancelEdit}\n >\n ${repeat(\n this.inputData?.formFields?.filter((field) => !field.hiddenField) ?? [],\n (field, i) => i,\n (field, i) => {\n switch (field.type) {\n case 'textfield':\n return this.renderTextField(field, i)\n case 'numberfield':\n return this.renderNumberField(field, i)\n case 'datetime':\n return this.renderDateTimeField(field, i)\n case 'textarea':\n return this.renderTextArea(field, i)\n case 'dropdown':\n return this.renderDropdown(field, i)\n case 'checkbox':\n return this.renderCheckbox(field, i)\n }\n }\n )}\n </form>\n `\n }\n}\n"],"names":["t","e","s","o","n$3","r","n","i","S","c","h","a","l","p","d","u","f","b","y$1","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M$1","R","z","M","Z","j","B","w","WidgetForm","LitElement","changedProperties","_changedProperties","theme","cssTextColor","cssBgColor","event","form","formData","data","submitData","field","value","type","html","repeat","val","nothing","css","__decorateClass","property","state","query","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}