@m3e/web 2.1.1 → 2.1.2

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.
Files changed (262) hide show
  1. package/dist/all.js +605 -1296
  2. package/dist/all.js.map +1 -1
  3. package/dist/all.min.js +54 -114
  4. package/dist/all.min.js.map +1 -1
  5. package/dist/app-bar.js +2 -34
  6. package/dist/app-bar.js.map +1 -1
  7. package/dist/app-bar.min.js +1 -1
  8. package/dist/app-bar.min.js.map +1 -1
  9. package/dist/autocomplete.js +17 -40
  10. package/dist/autocomplete.js.map +1 -1
  11. package/dist/autocomplete.min.js +1 -1
  12. package/dist/autocomplete.min.js.map +1 -1
  13. package/dist/avatar.js +1 -28
  14. package/dist/avatar.js.map +1 -1
  15. package/dist/avatar.min.js +1 -1
  16. package/dist/avatar.min.js.map +1 -1
  17. package/dist/badge.js +1 -39
  18. package/dist/badge.js.map +1 -1
  19. package/dist/badge.min.js +1 -1
  20. package/dist/badge.min.js.map +1 -1
  21. package/dist/bottom-sheet.js +22 -58
  22. package/dist/bottom-sheet.js.map +1 -1
  23. package/dist/bottom-sheet.min.js +1 -1
  24. package/dist/bottom-sheet.min.js.map +1 -1
  25. package/dist/button-group.js +2 -34
  26. package/dist/button-group.js.map +1 -1
  27. package/dist/button-group.min.js +1 -1
  28. package/dist/button-group.min.js.map +1 -1
  29. package/dist/button.js +2 -34
  30. package/dist/button.js.map +1 -1
  31. package/dist/button.min.js +1 -1
  32. package/dist/button.min.js.map +1 -1
  33. package/dist/card.js +4 -34
  34. package/dist/card.js.map +1 -1
  35. package/dist/card.min.js +1 -1
  36. package/dist/card.min.js.map +1 -1
  37. package/dist/checkbox.js +2 -34
  38. package/dist/checkbox.js.map +1 -1
  39. package/dist/checkbox.min.js +1 -1
  40. package/dist/checkbox.min.js.map +1 -1
  41. package/dist/chips.js +2 -40
  42. package/dist/chips.js.map +1 -1
  43. package/dist/chips.min.js +1 -1
  44. package/dist/chips.min.js.map +1 -1
  45. package/dist/core-a11y.js +1 -39
  46. package/dist/core-a11y.js.map +1 -1
  47. package/dist/core-a11y.min.js +4 -4
  48. package/dist/core-a11y.min.js.map +1 -1
  49. package/dist/core-anchoring.js +164 -177
  50. package/dist/core-anchoring.js.map +1 -1
  51. package/dist/core-anchoring.min.js +1 -1
  52. package/dist/core-anchoring.min.js.map +1 -1
  53. package/dist/core-bidi.js +1 -31
  54. package/dist/core-bidi.js.map +1 -1
  55. package/dist/core-bidi.min.js +2 -3
  56. package/dist/core-bidi.min.js.map +1 -1
  57. package/dist/core.js +53 -40
  58. package/dist/core.js.map +1 -1
  59. package/dist/core.min.js +1 -1
  60. package/dist/core.min.js.map +1 -1
  61. package/dist/css-custom-data.json +517 -512
  62. package/dist/custom-elements.json +5201 -4336
  63. package/dist/dialog.js +3 -41
  64. package/dist/dialog.js.map +1 -1
  65. package/dist/dialog.min.js +1 -1
  66. package/dist/dialog.min.js.map +1 -1
  67. package/dist/divider.js +1 -28
  68. package/dist/divider.js.map +1 -1
  69. package/dist/divider.min.js +1 -1
  70. package/dist/divider.min.js.map +1 -1
  71. package/dist/drawer-container.js +18 -48
  72. package/dist/drawer-container.js.map +1 -1
  73. package/dist/drawer-container.min.js +1 -1
  74. package/dist/drawer-container.min.js.map +1 -1
  75. package/dist/expansion-panel.js +8 -41
  76. package/dist/expansion-panel.js.map +1 -1
  77. package/dist/expansion-panel.min.js +1 -1
  78. package/dist/expansion-panel.min.js.map +1 -1
  79. package/dist/fab-menu.js +3 -47
  80. package/dist/fab-menu.js.map +1 -1
  81. package/dist/fab-menu.min.js +1 -1
  82. package/dist/fab-menu.min.js.map +1 -1
  83. package/dist/fab.js +1 -33
  84. package/dist/fab.js.map +1 -1
  85. package/dist/fab.min.js +1 -1
  86. package/dist/fab.min.js.map +1 -1
  87. package/dist/form-field.js +19 -49
  88. package/dist/form-field.js.map +1 -1
  89. package/dist/form-field.min.js +3 -4
  90. package/dist/form-field.min.js.map +1 -1
  91. package/dist/heading.js +1 -28
  92. package/dist/heading.js.map +1 -1
  93. package/dist/heading.min.js +1 -1
  94. package/dist/heading.min.js.map +1 -1
  95. package/dist/html-custom-data.json +192 -171
  96. package/dist/icon-button.js +2 -34
  97. package/dist/icon-button.js.map +1 -1
  98. package/dist/icon-button.min.js +1 -1
  99. package/dist/icon-button.min.js.map +1 -1
  100. package/dist/icon.js +1 -28
  101. package/dist/icon.js.map +1 -1
  102. package/dist/icon.min.js +1 -1
  103. package/dist/icon.min.js.map +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.min.js +7 -0
  106. package/dist/index.min.js.map +1 -0
  107. package/dist/list.js +17 -46
  108. package/dist/list.js.map +1 -1
  109. package/dist/list.min.js +1 -1
  110. package/dist/list.min.js.map +1 -1
  111. package/dist/loading-indicator.js +8 -31
  112. package/dist/loading-indicator.js.map +1 -1
  113. package/dist/loading-indicator.min.js +1 -1
  114. package/dist/loading-indicator.min.js.map +1 -1
  115. package/dist/menu.js +3 -47
  116. package/dist/menu.js.map +1 -1
  117. package/dist/menu.min.js +1 -1
  118. package/dist/menu.min.js.map +1 -1
  119. package/dist/nav-bar.js +3 -41
  120. package/dist/nav-bar.js.map +1 -1
  121. package/dist/nav-bar.min.js +1 -1
  122. package/dist/nav-bar.min.js.map +1 -1
  123. package/dist/nav-menu.js +2 -40
  124. package/dist/nav-menu.js.map +1 -1
  125. package/dist/nav-menu.min.js +1 -1
  126. package/dist/nav-menu.min.js.map +1 -1
  127. package/dist/nav-rail.js +1 -33
  128. package/dist/nav-rail.js.map +1 -1
  129. package/dist/nav-rail.min.js +1 -1
  130. package/dist/nav-rail.min.js.map +1 -1
  131. package/dist/option.js +3 -59
  132. package/dist/option.js.map +1 -1
  133. package/dist/option.min.js +1 -1
  134. package/dist/option.min.js.map +1 -1
  135. package/dist/paginator.js +2 -34
  136. package/dist/paginator.js.map +1 -1
  137. package/dist/paginator.min.js +2 -3
  138. package/dist/paginator.min.js.map +1 -1
  139. package/dist/progress-indicator.js +41 -63
  140. package/dist/progress-indicator.js.map +1 -1
  141. package/dist/progress-indicator.min.js +32 -32
  142. package/dist/progress-indicator.min.js.map +1 -1
  143. package/dist/radio-group.js +1 -39
  144. package/dist/radio-group.js.map +1 -1
  145. package/dist/radio-group.min.js +1 -1
  146. package/dist/radio-group.min.js.map +1 -1
  147. package/dist/segmented-button.js +2 -40
  148. package/dist/segmented-button.js.map +1 -1
  149. package/dist/segmented-button.min.js +1 -1
  150. package/dist/segmented-button.min.js.map +1 -1
  151. package/dist/select.js +16 -40
  152. package/dist/select.js.map +1 -1
  153. package/dist/select.min.js +1 -1
  154. package/dist/select.min.js.map +1 -1
  155. package/dist/shape.js +1 -28
  156. package/dist/shape.js.map +1 -1
  157. package/dist/shape.min.js +1 -1
  158. package/dist/shape.min.js.map +1 -1
  159. package/dist/slide-group.js +9 -42
  160. package/dist/slide-group.js.map +1 -1
  161. package/dist/slide-group.min.js +1 -1
  162. package/dist/slide-group.min.js.map +1 -1
  163. package/dist/slider.js +1 -39
  164. package/dist/slider.js.map +1 -1
  165. package/dist/slider.min.js +1 -1
  166. package/dist/slider.min.js.map +1 -1
  167. package/dist/snackbar.js +2 -40
  168. package/dist/snackbar.js.map +1 -1
  169. package/dist/snackbar.min.js +1 -1
  170. package/dist/snackbar.min.js.map +1 -1
  171. package/dist/split-button.js +1 -39
  172. package/dist/split-button.js.map +1 -1
  173. package/dist/split-button.min.js +1 -1
  174. package/dist/split-button.min.js.map +1 -1
  175. package/dist/src/autocomplete/AutocompleteElement.d.ts +6 -0
  176. package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
  177. package/dist/src/bottom-sheet/BottomSheetElement.d.ts +3 -3
  178. package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
  179. package/dist/src/card/CardElement.d.ts +1 -0
  180. package/dist/src/card/CardElement.d.ts.map +1 -1
  181. package/dist/src/card/styles/CardVariantToken.d.ts +1 -1
  182. package/dist/src/card/styles/CardVariantToken.d.ts.map +1 -1
  183. package/dist/src/core/anchoring/FloatingPanelElement.d.ts +6 -3
  184. package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -1
  185. package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts +3 -0
  186. package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts.map +1 -0
  187. package/dist/src/core/anchoring/index.d.ts +1 -0
  188. package/dist/src/core/anchoring/index.d.ts.map +1 -1
  189. package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts +15 -0
  190. package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts.map +1 -0
  191. package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts +11 -0
  192. package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts.map +1 -0
  193. package/dist/src/core/shared/mixins/index.d.ts +2 -0
  194. package/dist/src/core/shared/mixins/index.d.ts.map +1 -1
  195. package/dist/src/drawer-container/DrawerContainerElement.d.ts +4 -2
  196. package/dist/src/drawer-container/DrawerContainerElement.d.ts.map +1 -1
  197. package/dist/src/expansion-panel/ExpansionPanelElement.d.ts +3 -1
  198. package/dist/src/expansion-panel/ExpansionPanelElement.d.ts.map +1 -1
  199. package/dist/src/fab-menu/FabMenuElement.d.ts +1 -3
  200. package/dist/src/fab-menu/FabMenuElement.d.ts.map +1 -1
  201. package/dist/src/form-field/FormFieldElement.d.ts +4 -2
  202. package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
  203. package/dist/src/list/ActionListElement.d.ts.map +1 -1
  204. package/dist/src/list/ListItemElement.d.ts +3 -1
  205. package/dist/src/list/ListItemElement.d.ts.map +1 -1
  206. package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts +3 -1
  207. package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts.map +1 -1
  208. package/dist/src/menu/MenuElement.d.ts +1 -3
  209. package/dist/src/menu/MenuElement.d.ts.map +1 -1
  210. package/dist/src/nav-bar/NavBarElement.d.ts +1 -1
  211. package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
  212. package/dist/src/option/OptionPanelElement.d.ts +0 -4
  213. package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
  214. package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts +2 -0
  215. package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts.map +1 -1
  216. package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts +2 -0
  217. package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts.map +1 -1
  218. package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts +1 -1
  219. package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts.map +1 -1
  220. package/dist/src/select/SelectElement.d.ts +6 -0
  221. package/dist/src/select/SelectElement.d.ts.map +1 -1
  222. package/dist/src/slide-group/SlideGroupElement.d.ts +5 -1
  223. package/dist/src/slide-group/SlideGroupElement.d.ts.map +1 -1
  224. package/dist/src/stepper/StepperElement.d.ts +1 -1
  225. package/dist/src/stepper/StepperElement.d.ts.map +1 -1
  226. package/dist/src/toc/TocElement.d.ts +1 -1
  227. package/dist/src/toc/TocElement.d.ts.map +1 -1
  228. package/dist/src/tooltip/TooltipElementBase.d.ts +3 -1
  229. package/dist/src/tooltip/TooltipElementBase.d.ts.map +1 -1
  230. package/dist/stepper.js +3 -41
  231. package/dist/stepper.js.map +1 -1
  232. package/dist/stepper.min.js +1 -1
  233. package/dist/stepper.min.js.map +1 -1
  234. package/dist/switch.js +1 -33
  235. package/dist/switch.js.map +1 -1
  236. package/dist/switch.min.js +1 -1
  237. package/dist/switch.min.js.map +1 -1
  238. package/dist/tabs.js +1 -39
  239. package/dist/tabs.js.map +1 -1
  240. package/dist/tabs.min.js +1 -1
  241. package/dist/tabs.min.js.map +1 -1
  242. package/dist/textarea-autosize.js +1 -39
  243. package/dist/textarea-autosize.js.map +1 -1
  244. package/dist/textarea-autosize.min.js +2 -3
  245. package/dist/textarea-autosize.min.js.map +1 -1
  246. package/dist/theme.js +1 -39
  247. package/dist/theme.js.map +1 -1
  248. package/dist/theme.min.js +19 -19
  249. package/dist/theme.min.js.map +1 -1
  250. package/dist/toc.js +4 -42
  251. package/dist/toc.js.map +1 -1
  252. package/dist/toc.min.js +1 -1
  253. package/dist/toc.min.js.map +1 -1
  254. package/dist/toolbar.js +1 -39
  255. package/dist/toolbar.js.map +1 -1
  256. package/dist/toolbar.min.js +1 -1
  257. package/dist/toolbar.min.js.map +1 -1
  258. package/dist/tooltip.js +15 -46
  259. package/dist/tooltip.js.map +1 -1
  260. package/dist/tooltip.min.js +1 -1
  261. package/dist/tooltip.min.js.map +1 -1
  262. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-sheet.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../src/bottom-sheet/BottomSheetActionElement.ts","../../src/bottom-sheet/BottomSheetElement.ts","../../src/bottom-sheet/BottomSheetTriggerElement.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","import { ActionElementBase, customElement } from \"@m3e/web/core\";\r\n\r\n/**\r\n * An element, nested within a clickable element, used to close a parenting bottom sheet.\r\n * @tag m3e-bottom-sheet-action\r\n *\r\n * @slot - Renders the content of the action.\r\n */\r\n@customElement(\"m3e-bottom-sheet-action\")\r\nexport class M3eBottomSheetActionElement extends ActionElementBase {\r\n /** @inheritdoc */\r\n protected override _onClick(): void {\r\n this.closest(\"m3e-bottom-sheet\")?.hide();\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet-action\": M3eBottomSheetActionElement;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, nothing, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport {\r\n addCustomState,\r\n AttachInternals,\r\n customElement,\r\n computeCssSize,\r\n deleteCustomState,\r\n DesignToken,\r\n EventAttribute,\r\n focusWhenReady,\r\n hasAssignedNodes,\r\n hasCustomState,\r\n prefersReducedMotion,\r\n ResizeController,\r\n ScrollLockController,\r\n setCustomState,\r\n spaceSeparatedStringConverter,\r\n VelocityTracker,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { isModifierAllowed, M3eInteractivityChecker } from \"@m3e/web/core/a11y\";\r\nimport \"@m3e/web/core/a11y\";\r\n\r\n/**\r\n * A sheet used to show secondary content anchored to the bottom of the screen.\r\n *\r\n * @description\r\n * The `m3e-bottom-sheet` component implements a Material 3 bottom sheet with\r\n * gesture‑driven resizing, detent snapping, and adaptive motion. It behaves as\r\n * a heavy surface: transitions use non‑bouncy, decelerating motion.\r\n *\r\n * The sheet supports direct manipulation through vertical drag gestures.\r\n * Movement below an 8px threshold is ignored to ensure reliable tap‑to‑cycle\r\n * behavior on the handle. Once activated, dragging updates the sheet height\r\n * with friction near the minimum height to prevent abrupt collapse.\r\n *\r\n * When detents are defined, the sheet snaps to the nearest detent on release.\r\n * If hideable, downward gestures may dismiss the sheet using either velocity\r\n * or a small distance threshold below the collapsed detent. When no detents\r\n * are present, the sheet behaves as a simple open/hidden surface with a\r\n * bottom‑measured hide threshold.\r\n *\r\n * @example\r\n * The following example shows a modal bottom sheet with a drag handle,\r\n * three detents (`fit`, `half`, and `full`), and an action list. The sheet\r\n * is opened using a dedicated `m3e-bottom-sheet-trigger` associated by ID.\r\n * ```html\r\n * <m3e-button>\r\n * <m3e-bottom-sheet-trigger for=\"bottomSheet\">\r\n * Open Bottom sheet\r\n * </m3e-bottom-sheet-trigger>\r\n * </m3e-button>\r\n *\r\n * <m3e-bottom-sheet id=\"bottomSheet\" modal handle hideable detents=\"fit half full\">\r\n * <m3e-action-list>\r\n * <m3e-list-action autofocus>\r\n * <m3e-bottom-sheet-action>Google Keep</m3e-bottom-sheet-action>\r\n * <span slot=\"supporting-text\">Add to a note</span>\r\n * </m3e-list-action>\r\n * <m3e-list-action>\r\n * <m3e-bottom-sheet-action>Google Docs</m3e-bottom-sheet-action>\r\n * <span slot=\"supporting-text\">Embed in a document</span>\r\n * </m3e-list-action>\r\n * </m3e-action-list>\r\n * </m3e-bottom-sheet>\r\n * ```\r\n *\r\n * @tag m3e-bottom-sheet\r\n *\r\n * @slot - Renders the content of the sheet.\r\n * @slot header - Renders the header of the sheet.\r\n *\r\n * @attr detent - The zero‑based index of the detent the sheet should open to.\r\n * @attr detents - Detents (discrete height states) the sheet can snap to.\r\n * @attr handle - Whether to display a drag handle and enable the top region of the sheet as a gesture surface for dragging between detents.\r\n * @attr handle-label - The accessible label given to the drag handle.\r\n * @attr hideable - Whether the bottom sheet can hide when its swiped down.\r\n * @attr hide-friction - The friction coefficient to hide the sheet, or set it to the next closest expanded detent.\r\n * @attr modal - Whether the bottom sheet behaves as modal.\r\n * @attr open - Whether the bottom sheet is open.\r\n *\r\n * @fires opening - Emitted when the sheet begins to open.\r\n * @fires opened - Emitted when the sheet has opened.\r\n * @fires cancel - Emitted when the sheet is cancelled.\r\n * @fires closing - Emitted when the sheet begins to close.\r\n * @fires closed - Emitted when the sheet has closed.\r\n *\r\n * @cssprop --m3e-bottom-sheet-width - The width of the sheet.\r\n * @cssprop --m3e-bottom-sheet-max-width - The maximum width of the sheet.\r\n * @cssprop --m3e-bottom-sheet-container-color - The background color of the sheet container.\r\n * @cssprop --m3e-bottom-sheet-elevation - The elevation level when not modal.\r\n * @cssprop --m3e-bottom-sheet-modal-elevation - The elevation level when modal.\r\n * @cssprop --m3e-bottom-sheet-full-elevation - The elevation level when full height.\r\n * @cssprop --m3e-bottom-sheet-z-index - The z-index of the non-modal sheet.\r\n * @cssprop --m3e-bottom-sheet-minimized-container-shape - The border radius when minimized.\r\n * @cssprop --m3e-bottom-sheet-container-shape - The border radius of the sheet container.\r\n * @cssprop --m3e-bottom-sheet-full-container-shape - The border radius when full height.\r\n * @cssprop --m3e-bottom-sheet-scrim-color - The color of the scrim overlay.\r\n * @cssprop --m3e-bottom-sheet-scrim-opacity - The opacity of the scrim overlay.\r\n * @cssprop --m3e-bottom-sheet-peek-height - The visible height when minimized.\r\n * @cssprop --m3e-bottom-sheet-compact-top-space - The top space in compact mode.\r\n * @cssprop --m3e-bottom-sheet-top-space - The top space in standard mode.\r\n * @cssprop --m3e-bottom-sheet-padding-block - The vertical padding.\r\n * @cssprop --m3e-bottom-sheet-padding-inline - The horizontal padding.\r\n * @cssprop --m3e-bottom-sheet-handle-container-height - The height of the drag handle container.\r\n * @cssprop --m3e-bottom-sheet-handle-width - The width of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-height - The height of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-shape - The border radius of the handle.\r\n * @cssprop --m3e-bottom-sheet-handle-color - The color of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-focus-ring-offset - The offset of the focus ring around the handle.\r\n * @cssprop --m3e-bottom-sheet-color - The foreground (text) color of the sheet.\r\n * @cssprop --m3e-bottom-sheet-content-font-size - Font size for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-font-weight - Font weight for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-line-height - Line height for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-tracking - Letter spacing (tracking) for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-header-font-size - Font size for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-font-weight - Font weight for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-line-height - Line height for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-tracking - Letter spacing (tracking) for the sheet header.\r\n */\r\n@customElement(\"m3e-bottom-sheet\")\r\nexport class M3eBottomSheetElement extends EventAttribute(\r\n AttachInternals(LitElement),\r\n \"opening\",\r\n \"opened\",\r\n \"cancel\",\r\n \"closing\",\r\n \"closed\",\r\n) {\r\n static {\r\n if (typeof window !== \"undefined\") {\r\n const lightDomStyle = new CSSStyleSheet();\r\n lightDomStyle.replaceSync(\r\n css`\r\n @property --_bottom-sheet-height {\r\n syntax: \"<length>\";\r\n inherits: false;\r\n initial-value: 50vh;\r\n }\r\n m3e-bottom-sheet > [slot=\"header\"] {\r\n margin-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n margin-inline: var(--m3e-bottom-sheet-padding-inline, 1rem);\r\n }\r\n `.toString(),\r\n );\r\n document.adoptedStyleSheets.push(lightDomStyle);\r\n }\r\n }\r\n\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: fixed;\r\n left: 50%;\r\n top: calc(100vh - var(--_bottom-sheet-height));\r\n margin: 0;\r\n padding: 0;\r\n outline: none;\r\n overflow: hidden;\r\n border: none;\r\n box-sizing: border-box;\r\n width: var(--m3e-bottom-sheet-width, 100%);\r\n max-width: var(--m3e-bottom-sheet-max-width, 40rem);\r\n height: var(--_bottom-sheet-height);\r\n color: var(--m3e-bottom-sheet-color, ${DesignToken.color.onSurface});\r\n background-color: var(--m3e-bottom-sheet-container-color, ${DesignToken.color.surfaceContainerLow});\r\n }\r\n :host(:not(:state(-no-animate))) {\r\n transition: ${unsafeCSS(\r\n `transform ${DesignToken.motion.duration.medium2} ${DesignToken.motion.easing.standardDecelerate},\r\n border-radius ${DesignToken.motion.duration.medium2} ${DesignToken.motion.easing.standard}`,\r\n )};\r\n }\r\n :host(:not([modal]):not(:state(-full))) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host([modal]:not(:state(-full))) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-modal-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host(:state(-full)) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-full-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host(:not([modal])) {\r\n z-index: var(--m3e-bottom-sheet-z-index, 10);\r\n }\r\n :host(:not([modal]):not([open])),\r\n :host([modal]:not(:popover-open)) {\r\n border-radius: var(--m3e-bottom-sheet-minimized-container-shape, ${DesignToken.shape.corner.none});\r\n transform: translateX(-50%) translateY(100%);\r\n }\r\n :host(:not([modal])[open]:not(:state(-full))),\r\n :host([modal]:not(:state(-full)):popover-open) {\r\n border-radius: var(--m3e-bottom-sheet-container-shape, ${DesignToken.shape.corner.extraLargeTop});\r\n }\r\n :host(:not([modal])[open]:state(-full)),\r\n :host([modal]:state(-full):popover-open) {\r\n border-radius: var(--m3e-bottom-sheet-full-container-shape, ${DesignToken.shape.corner.extraLargeTop});\r\n }\r\n :host(:not([modal])[open]),\r\n :host([modal]:popover-open) {\r\n transform: translateX(-50%) translateY(0);\r\n }\r\n :host([modal]:not(:state(-no-animate)))::backdrop {\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n :host([modal]:popover-open)::backdrop {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-bottom-sheet-scrim-color, ${DesignToken.color.scrim}) var(--m3e-bottom-sheet-scrim-opacity, 32%),\r\n transparent\r\n );\r\n }\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop {\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n @starting-style {\r\n :host([modal]:popover-open)::backdrop {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-bottom-sheet-scrim-color, ${DesignToken.color.scrim}) 0%,\r\n transparent\r\n );\r\n }\r\n }\r\n .base {\r\n display: flex;\r\n border-radius: inherit;\r\n flex-direction: column;\r\n height: 100%;\r\n --_bottom-sheet-peek-height: var(--m3e-bottom-sheet-peek-height, 0);\r\n --_bottom-sheet-top-space: var(--m3e-bottom-sheet-compact-top-space, 4.5rem);\r\n }\r\n @media (max-height: 640px) {\r\n .base {\r\n --_bottom-sheet-top-space: var(--m3e-bottom-sheet-top-space, 3.5rem);\r\n }\r\n }\r\n .body {\r\n flex: 1 1 auto;\r\n overflow-y: auto;\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n padding-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n padding-inline: var(--m3e-bottom-sheet-padding-inline, 1rem);\r\n font-size: var(--m3e-bottom-sheet-content-font-size, ${DesignToken.typescale.standard.body.medium.fontSize});\r\n font-weight: var(\r\n --m3e-bottom-sheet-content-font-weight,\r\n ${DesignToken.typescale.standard.body.medium.fontWeight}\r\n );\r\n line-height: var(\r\n --m3e-bottom-sheet-content-line-height,\r\n ${DesignToken.typescale.standard.body.medium.lineHeight}\r\n );\r\n letter-spacing: var(--m3e-bottom-sheet-content-tracking, ${DesignToken.typescale.standard.body.medium.tracking});\r\n }\r\n .content {\r\n height: fit-content;\r\n }\r\n :host(:not([handle])) .header {\r\n display: none;\r\n }\r\n :host(:not([handle])) .body,\r\n .header {\r\n border-top-left-radius: inherit;\r\n border-top-right-radius: inherit;\r\n padding-block-start: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n font-size: var(--m3e-bottom-sheet-header-font-size, ${DesignToken.typescale.standard.title.large.fontSize});\r\n font-weight: var(--m3e-bottom-sheet-header-font-weight, ${DesignToken.typescale.standard.title.large.fontWeight});\r\n line-height: var(--m3e-bottom-sheet-header-line-height, ${DesignToken.typescale.standard.title.large.lineHeight});\r\n letter-spacing: var(--m3e-bottom-sheet-header-tracking, ${DesignToken.typescale.standard.title.large.tracking});\r\n }\r\n .header {\r\n cursor: grab;\r\n touch-action: none;\r\n outline: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n box-sizing: border-box;\r\n flex: none;\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 3rem;\r\n --m3e-app-bar-container-color: var(--m3e-bottom-sheet-container-color, ${DesignToken.color.surfaceContainerLow});\r\n }\r\n .handle-row {\r\n position: relative;\r\n flex: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 1;\r\n visibility: visible;\r\n height: var(--m3e-bottom-sheet-handle-container-height, 1.5rem);\r\n }\r\n :host(:not(:state(-no-animate))) .handle-row {\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n padding ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n height ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n .handle {\r\n position: relative;\r\n width: var(--m3e-bottom-sheet-handle-width, 2rem);\r\n height: var(--m3e-bottom-sheet-handle-height, 4px);\r\n border-radius: var(--m3e-bottom-sheet-handle-shape, ${DesignToken.shape.corner.full});\r\n background-color: var(--m3e-bottom-sheet-handle-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n .handle-touch {\r\n position: absolute;\r\n aspect-ratio: 1 / 1;\r\n height: 3rem;\r\n left: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2));\r\n right: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2));\r\n top: calc(\r\n 0px - calc(\r\n calc(3rem - var(--m3e-bottom-sheet-handle-container-height, 1.5rem)) - calc(\r\n var(--m3e-bottom-sheet-handle-height, 4px) / 2\r\n )\r\n )\r\n );\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:not(:state(-no-animate))),\r\n :host([modal]:not(:state(-no-animate)))::backdrop,\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop,\r\n :host(:not(:state(-no-animate))) .handle-row {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host([modal]:not(:state(-no-animate)))::backdrop,\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop {\r\n transition: none;\r\n }\r\n .base {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: CanvasText;\r\n }\r\n .handle {\r\n background-color: ButtonText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ private static __openSheet?: M3eBottomSheetElement;\r\n\r\n /** @private */ readonly #documentClickHandler = (e: Event) => this.#handleDocumentClick(e);\r\n /** @private */ readonly #documentKeyDownHandler = (e: KeyboardEvent) => this.#handleDocumentKeyDown(e);\r\n /** @private */ readonly #windowResizeHandler = () => this.#handleWindowResize();\r\n /** @private */ readonly #inerts = new Array<HTMLElement>();\r\n /** @private */ readonly #velocityTracker = new VelocityTracker();\r\n /** @private */ readonly #scrollLockController = new ScrollLockController(this);\r\n\r\n /** @private */\r\n readonly #resizeController = new ResizeController(this, {\r\n target: null,\r\n skipInitial: true,\r\n callback: (x) => this.#handleSectionResize(x),\r\n });\r\n\r\n /** @private */ #trigger: Element | null = null;\r\n /** @private */ #dragState?: { startY: number; startHeight: number; maxHeight: number; minHeight: number };\r\n /** @private */ #dragged = false;\r\n /** @private */ #activeDetent = 0;\r\n /** @private */ #requestDetent?: number;\r\n /** @private */ #cachedContentHeight = 0;\r\n /** @private */ #cachedHeaderHeight = 0;\r\n /** @private */ #snapAnimation?: Animation;\r\n\r\n /**\r\n * Whether the bottom sheet behaves as modal.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) modal = false;\r\n\r\n /**\r\n * Whether the bottom sheet is open.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) open = false;\r\n\r\n /**\r\n * Whether to display a drag handle and enable the top region of the sheet as a gesture\r\n * surface for dragging between detents.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) handle = false;\r\n\r\n /**\r\n * The accessible label given to the drag handle.\r\n * @default \"Drag handle\"\r\n */\r\n @property({ attribute: \"handle-label\" }) handleLabel = \"Drag handle\";\r\n\r\n /**\r\n * Detents (discrete height states) the sheet can snap to.\r\n * @default []\r\n */\r\n @property({ attribute: \"detents\", converter: spaceSeparatedStringConverter }) detents: string[] = [];\r\n\r\n /**\r\n * The zero‑based index of the detent the sheet should open to.\r\n * @default 0\r\n */\r\n @property({ type: Number }) detent = 0;\r\n\r\n /**\r\n * Whether the bottom sheet can hide when its swiped down.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) hideable = false;\r\n\r\n /**\r\n * The friction coefficient to hide the sheet, or set it to the next closest expanded detent.\r\n * @default 0.5\r\n */\r\n @property({ attribute: \"hide-friction\", type: Number }) hideFriction = 0.5;\r\n\r\n /**\r\n * Shows the sheet.\r\n * @param {number} detent The zero‑based index of the detent the sheet should open to.\r\n */\r\n show(detent: number = this.detent): void {\r\n if (!this.open) {\r\n this.#requestDetent = detent;\r\n this.open = true;\r\n } else if (detent !== undefined && this.#activeDetent !== detent) {\r\n this.#snapToDetent(detent);\r\n }\r\n }\r\n\r\n /** Hides the sheet. */\r\n hide(): void {\r\n this.open = false;\r\n }\r\n\r\n /**\r\n * Toggles the opened state of the sheet.\r\n * @param {number} detent The zero‑based index of the detent the sheet should open to.\r\n */\r\n toggle(detent?: number): void {\r\n if (this.open) {\r\n this.hide();\r\n } else {\r\n this.show(detent);\r\n }\r\n }\r\n\r\n /** Moves the sheet to the next detent. */\r\n cycle(): void {\r\n if (!this.open) {\r\n this.show();\r\n } else if (this.detents.length > 0) {\r\n if (this.#activeDetent < this.detents.length - 1) {\r\n this.#activeDetent++;\r\n this.#snapToDetent(this.#activeDetent);\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n addCustomState(this, \"-no-animate\");\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"modal\")) {\r\n this.role = this.modal ? \"dialog\" : \"region\";\r\n this.ariaModal = this.modal ? \"true\" : null;\r\n this.popover = this.modal ? \"manual\" : null;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n const content = this.shadowRoot?.querySelector<HTMLElement>(\".content\");\r\n if (content) {\r\n this.#cachedContentHeight = content.clientHeight;\r\n this.#resizeController.observe(content);\r\n }\r\n\r\n const header = this.shadowRoot?.querySelector<HTMLElement>(\".header\");\r\n if (header) {\r\n this.#cachedHeaderHeight = header.clientHeight;\r\n this.#resizeController.observe(header);\r\n }\r\n\r\n deleteCustomState(this, \"-no-animate\");\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"open\")) {\r\n if (this.open) {\r\n if (!this.dispatchEvent(new Event(\"opening\", { cancelable: true }))) {\r\n this.open = false;\r\n return;\r\n }\r\n\r\n // Only one sheet can be open at a time.\r\n if (M3eBottomSheetElement.__openSheet !== this) {\r\n M3eBottomSheetElement.__openSheet?.hide();\r\n }\r\n M3eBottomSheetElement.__openSheet = this;\r\n\r\n this.inert = false;\r\n\r\n window.addEventListener(\"resize\", this.#windowResizeHandler);\r\n\r\n // If there are detents (regardless of handle) open to the requested, default (or first) detent.\r\n // Otherwise, open to fit unless its greater than half.\r\n\r\n if (this.detents.length > 0) {\r\n this.#activeDetent = Math.min(Math.max(0, this.#requestDetent ?? this.detent), this.detents.length - 1);\r\n this.#updateHeight(this.#computeDetentHeight(this.detents[this.#activeDetent]));\r\n } else {\r\n this.#updateHeight(Math.min(this.#computeDetentHeight(\"fit\"), this.#computeDetentHeight(\"half\")));\r\n }\r\n this.#requestDetent = undefined;\r\n } else {\r\n if (!this.dispatchEvent(new Event(\"closing\", { cancelable: true }))) {\r\n this.open = true;\r\n return;\r\n }\r\n\r\n // The following ensures layout is stable so that first tab isn't \"skipped\"\r\n requestAnimationFrame(() => (this.inert = true));\r\n\r\n window.removeEventListener(\"resize\", this.#windowResizeHandler);\r\n\r\n if (M3eBottomSheetElement.__openSheet === this) {\r\n M3eBottomSheetElement.__openSheet = undefined;\r\n }\r\n }\r\n\r\n if (this.modal) {\r\n if (this.open) {\r\n this.#trigger = document.activeElement;\r\n this.#applyInert();\r\n this.#scrollLockController.lock();\r\n this.showPopover();\r\n requestAnimationFrame(() => {\r\n document.addEventListener(\"click\", this.#documentClickHandler);\r\n document.addEventListener(\"keydown\", this.#documentKeyDownHandler);\r\n });\r\n\r\n let focusable: HTMLElement | null | undefined = this.querySelector<HTMLElement>(\"[autofocus]\");\r\n if (!focusable || !M3eInteractivityChecker.isFocusable(focusable)) {\r\n focusable = this.shadowRoot?.querySelector(\".handle\");\r\n }\r\n if (focusable) {\r\n focusWhenReady(focusable);\r\n }\r\n } else {\r\n this.#snapToHeight(0).then(() => {\r\n this.#restoreInert();\r\n this.#scrollLockController.unlock();\r\n document.removeEventListener(\"click\", this.#documentClickHandler);\r\n document.removeEventListener(\"keydown\", this.#documentKeyDownHandler);\r\n this.hidePopover();\r\n if (this.#trigger instanceof HTMLElement) {\r\n this.#trigger.focus();\r\n }\r\n this.#trigger = null;\r\n });\r\n }\r\n }\r\n\r\n this.dispatchEvent(new Event(this.open ? \"opened\" : \"closed\"));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<m3e-focus-trap ?disabled=\"${!this.modal}\">\r\n <div class=\"base\">\r\n <m3e-elevation class=\"elevation\"></m3e-elevation>\r\n <div\r\n class=\"header\"\r\n @pointerdown=\"${this.#handleHeaderPointerDown}\"\r\n @pointermove=\"${this.#handleHeaderPointerMove}\"\r\n @pointerup=\"${this.#handleHeaderPointerUp}\"\r\n >\r\n ${this.handle\r\n ? html`<div class=\"handle-row\">\r\n <div\r\n id=\"handle\"\r\n class=\"handle\"\r\n role=\"button\"\r\n aria-label=\"${this.handleLabel}\"\r\n tabindex=\"0\"\r\n @click=\"${this.#handleDragHandleClick}\"\r\n @keydown=\"${this.#handleDragHandleKeyDown}\"\r\n >\r\n <m3e-focus-ring class=\"focus-ring\" for=\"handle\"></m3e-focus-ring>\r\n <div class=\"handle-touch\" aria-hidden=\"true\"></div>\r\n </div>\r\n </div>`\r\n : nothing}\r\n <slot name=\"header\" @slotchange=\"${this.#handleHeaderSlotChange}\"></slot>\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </m3e-focus-trap>`;\r\n }\r\n\r\n /** @private */\r\n #handleHeaderSlotChange(e: Event): void {\r\n setCustomState(this, \"has-header\", hasAssignedNodes(e.target as HTMLSlotElement));\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerDown(e: PointerEvent): void {\r\n if (e.target instanceof HTMLElement && M3eInteractivityChecker.isFocusable(e.target)) {\r\n return;\r\n }\r\n\r\n (<HTMLElement>e.target).setPointerCapture(e.pointerId);\r\n (<HTMLElement>e.target).style.cursor = \"grabbing\";\r\n\r\n this.#velocityTracker.reset();\r\n this.#velocityTracker.add(e.clientY);\r\n\r\n this.#dragState = {\r\n startY: e.clientY,\r\n startHeight: this.clientHeight,\r\n maxHeight: this.#computeMaxHeight(),\r\n minHeight: this.#computeMinHeight(),\r\n };\r\n this.#dragged = false;\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerMove(e: PointerEvent): void {\r\n if (!this.#dragState) {\r\n return;\r\n }\r\n\r\n const minDragThreshold = 8;\r\n if (Math.abs(e.clientY - this.#dragState.startY) <= minDragThreshold) {\r\n // Ignore movement under threshold\r\n return;\r\n }\r\n\r\n (e.getCoalescedEvents?.() ?? [e]).forEach((x) => this.#velocityTracker.add(x.clientY, e.timeStamp));\r\n\r\n let newHeight = this.#dragState.startHeight - (e.clientY - this.#dragState.startY);\r\n if (newHeight < this.#dragState.minHeight) {\r\n const overshoot = (this.#dragState.minHeight - newHeight) * this.hideFriction;\r\n newHeight = this.#dragState.minHeight - overshoot;\r\n }\r\n\r\n this.#updateHeight(Math.min(this.#dragState.maxHeight, newHeight));\r\n this.#dragged = true;\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerUp(e: PointerEvent): void {\r\n if (!this.#dragState) return;\r\n\r\n try {\r\n (<HTMLElement>e.target).releasePointerCapture(e.pointerId);\r\n (<HTMLElement>e.target).style.cursor = \"\";\r\n\r\n if (!this.#dragged) return;\r\n\r\n const significantVelocityThreshold = e.pointerType === \"touch\" ? 1200 : 500;\r\n const velocity = this.#velocityTracker.getVelocity();\r\n\r\n this.#velocityTracker.reset();\r\n\r\n if (this.hideable && velocity >= significantVelocityThreshold) {\r\n if (this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))) {\r\n this.hide();\r\n }\r\n } else if (Math.abs(velocity) >= significantVelocityThreshold) {\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextHigherDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n }\r\n } else {\r\n this.#snapToHeight(this.#computeDetentHeight(\"full\"));\r\n }\r\n } else {\r\n const hideDistanceThreshold = 20;\r\n if (this.hideable) {\r\n const collapsed = this.#dragState.minHeight;\r\n if (this.clientHeight < collapsed - hideDistanceThreshold) {\r\n this.hide();\r\n return;\r\n }\r\n }\r\n\r\n if (this.detents.length > 0) {\r\n this.#snapToDetent(this.#getClosestDetent());\r\n } else if (this.clientHeight < this.#dragState.minHeight) {\r\n this.#snapToHeight(this.#dragState.minHeight);\r\n }\r\n }\r\n } finally {\r\n this.#dragState = undefined;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDocumentClick(e: Event): void {\r\n if (\r\n this.open &&\r\n this.modal &&\r\n !e.composedPath().includes(this) &&\r\n this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))\r\n ) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDocumentKeyDown(e: KeyboardEvent): void {\r\n if (this.open && this.modal && e.key === \"Escape\" && !e.shiftKey && !e.ctrlKey) {\r\n e.preventDefault();\r\n\r\n if (this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))) {\r\n this.hide();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleWindowResize(): void {\r\n if (this.detents.length > 0 && this.detents[this.#activeDetent] === \"half\") {\r\n this.#updateHeight(this.#computeDetentHeight(\"half\"));\r\n return;\r\n }\r\n\r\n const maxHeight = this.#computeMaxHeight();\r\n if (hasCustomState(this, \"-full\")) {\r\n this.#updateHeight(maxHeight);\r\n } else if (this.clientHeight > maxHeight) {\r\n this.#updateHeight(maxHeight);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDragHandleClick(): void {\r\n if (!this.#dragged) {\r\n this.cycle();\r\n }\r\n this.#dragged = false;\r\n }\r\n\r\n /** @private */\r\n #handleDragHandleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented || !isModifierAllowed(e)) return;\r\n\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextHigherDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n }\r\n } else {\r\n this.#snapToHeight(this.#computeDetentHeight(\"full\"));\r\n }\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextLowerDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #getNextHigherDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let nextHeight = Infinity;\r\n let nextDetent = this.#activeDetent;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === this.#activeDetent) continue;\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n if (detentHeight > currentHeight && detentHeight < nextHeight) {\r\n nextHeight = detentHeight;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextLowerDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let nextHeight = -Infinity;\r\n let nextDetent = this.#activeDetent;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === this.#activeDetent) continue;\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n if (detentHeight < currentHeight && detentHeight > nextHeight) {\r\n nextHeight = detentHeight;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getClosestDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let closestDetent = this.#activeDetent;\r\n let closestDistance = Infinity;\r\n\r\n for (let i = 0; i < this.detents.length; i++) {\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n const distance = Math.abs(currentHeight - detentHeight);\r\n\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestDetent = i;\r\n }\r\n }\r\n return closestDetent;\r\n }\r\n\r\n /** @private */\r\n #computeDetentHeight(detent: string): number {\r\n switch (detent) {\r\n case \"collapsed\":\r\n return this.#computeMinHeight();\r\n case \"half\":\r\n return this.#computeMaxHeight() * 0.5;\r\n case \"full\":\r\n return this.#computeMaxHeight();\r\n case \"fit\":\r\n return this.#computeFitHeight();\r\n }\r\n\r\n if (detent.endsWith(\"%\")) {\r\n return this.#computeMaxHeight() * (parseFloat(detent) / 100);\r\n }\r\n\r\n if (detent.endsWith(\"px\")) {\r\n return parseFloat(detent);\r\n }\r\n\r\n return this.#computeMinHeight();\r\n }\r\n\r\n /** @private */\r\n #computeMaxHeight(): number {\r\n const base = this.shadowRoot?.querySelector<HTMLElement>(\".base\");\r\n return window.innerHeight - (base ? computeCssSize(base, \"var(--_bottom-sheet-top-space)\") : 0);\r\n }\r\n\r\n /** @private */\r\n #computeMinHeight(): number {\r\n return this.detents.includes(\"fit\") && !this.detents.includes(\"collapsed\")\r\n ? this.#computeFitHeight()\r\n : this.#computePeekHeight();\r\n }\r\n\r\n /** @private */\r\n #computePeekHeight(): number {\r\n const base = this.shadowRoot?.querySelector<HTMLElement>(\".base\");\r\n return this.#cachedHeaderHeight + (base ? computeCssSize(base, \"var(--_bottom-sheet-peek-height)\") : 0);\r\n }\r\n\r\n /** @private */\r\n #computeFitHeight(): number {\r\n const body = this.shadowRoot?.querySelector<HTMLElement>(\".body\");\r\n if (!body) {\r\n return 0;\r\n }\r\n\r\n const bodyStyle = getComputedStyle(body);\r\n return (\r\n this.#cachedHeaderHeight +\r\n this.#cachedContentHeight +\r\n parseFloat(bodyStyle.paddingBlockStart) +\r\n parseFloat(bodyStyle.paddingBlockEnd)\r\n );\r\n }\r\n\r\n /** @private */\r\n #handleSectionResize(entries: ResizeObserverEntry[]): void {\r\n const oldCachedContentHeight = this.#cachedContentHeight;\r\n const oldCachedHeaderHeight = this.#cachedHeaderHeight;\r\n\r\n for (const entry of entries) {\r\n if (entry.target.classList.contains(\"content\")) {\r\n this.#cachedContentHeight = (<ResizeObserverSize>(\r\n (Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0] : entry.borderBoxSize)\r\n )).blockSize;\r\n } else if (entry.target.classList.contains(\"header\")) {\r\n this.#cachedHeaderHeight = (<ResizeObserverSize>(\r\n (Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0] : entry.borderBoxSize)\r\n )).blockSize;\r\n }\r\n }\r\n\r\n if (\r\n this.open &&\r\n this.detents.length > 0 &&\r\n (oldCachedContentHeight !== this.#cachedContentHeight || oldCachedHeaderHeight !== this.#cachedHeaderHeight)\r\n ) {\r\n switch (this.detents[this.#activeDetent]) {\r\n case \"fit\":\r\n this.#updateHeight(this.#computeFitHeight());\r\n break;\r\n\r\n case \"collapsed\":\r\n this.#updateHeight(this.#computeMinHeight());\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #snapToDetent(detent: number): void {\r\n if (detent >= 0 && detent < this.detents.length) {\r\n this.#activeDetent = detent;\r\n this.#snapToHeight(this.#computeDetentHeight(this.detents[detent]));\r\n }\r\n }\r\n\r\n /** @private */\r\n async #snapToHeight(height: number): Promise<void> {\r\n if (this.#snapAnimation) {\r\n this.#updateHeight(this.clientHeight);\r\n this.#snapAnimation?.cancel();\r\n this.#snapAnimation = undefined;\r\n }\r\n\r\n if (!prefersReducedMotion()) {\r\n this.#snapAnimation = this.animate(\r\n [{ \"--_bottom-sheet-height\": `${this.clientHeight}px` }, { \"--_bottom-sheet-height\": `${height}px` }],\r\n {\r\n duration: 250,\r\n easing: \"cubic-bezier(0.2, 0.0, 0, 1.0)\",\r\n },\r\n );\r\n this.#snapAnimation.onfinish = () => {\r\n this.#updateHeight(height);\r\n this.#snapAnimation = undefined;\r\n };\r\n await this.#snapAnimation.finished;\r\n } else {\r\n this.#updateHeight(height);\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateHeight(height: number): void {\r\n this.style.setProperty(\"--_bottom-sheet-height\", `${height}px`);\r\n setCustomState(this, \"-full\", height === this.#computeMaxHeight());\r\n const content = this.shadowRoot?.querySelector<HTMLElement>(\".content\");\r\n if (content) {\r\n content.inert = height <= this.#computePeekHeight();\r\n }\r\n }\r\n\r\n /** @private */\r\n #applyInert() {\r\n this.#inerts.length = 0;\r\n\r\n for (\r\n let current: Node = this as Node;\r\n current.parentNode && current.parentNode !== document.documentElement;\r\n current = current.parentNode\r\n ) {\r\n for (const sibling of current.parentNode.children) {\r\n if (sibling instanceof HTMLElement && sibling !== current && !sibling.inert) {\r\n sibling.inert = true;\r\n this.#inerts.push(sibling);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #restoreInert(): void {\r\n this.#inerts.forEach((x) => (x.inert = false));\r\n this.#inerts.length = 0;\r\n }\r\n}\r\n\r\ninterface M3eBottomSheetElementEventMap extends HTMLElementEventMap {\r\n opening: Event;\r\n opened: Event;\r\n closing: Event;\r\n closed: Event;\r\n cancel: Event;\r\n}\r\n\r\nexport interface M3eBottomSheetElement {\r\n addEventListener<K extends keyof M3eBottomSheetElementEventMap>(\r\n type: K,\r\n listener: (this: M3eBottomSheetElement, ev: M3eBottomSheetElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eBottomSheetElementEventMap>(\r\n type: K,\r\n listener: (this: M3eBottomSheetElement, ev: M3eBottomSheetElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet\": M3eBottomSheetElement;\r\n }\r\n}\r\n","import { property } from \"lit/decorators.js\";\r\n\r\nimport { ActionElementBase, customElement, HtmlFor } from \"@m3e/web/core\";\r\nimport { addAriaReferencedId, removeAriaReferencedId } from \"@m3e/web/core/a11y\";\r\n\r\nimport { M3eBottomSheetElement } from \"./BottomSheetElement\";\r\n\r\n/**\r\n * An element, nested within a clickable element, used to trigger a bottom sheet.\r\n * @tag m3e-bottom-sheet-trigger\r\n *\r\n * @slot - Renders the content of the trigger.\r\n *\r\n * @attr detent - The zero‑based index of the detent the sheet should open to.\r\n * @attr secondary - Marks this trigger as a secondary trigger for accessibility. Secondary triggers do not receive ARIA ownership.\r\n */\r\n@customElement(\"m3e-bottom-sheet-trigger\")\r\nexport class M3eBottomSheetTriggerElement extends HtmlFor(ActionElementBase) {\r\n /**\r\n * The zero‑based index of the detent the sheet should open to.\r\n * @default undefined\r\n */\r\n @property({ type: Number }) detent?: number;\r\n\r\n /**\r\n * Marks this trigger as a secondary trigger for accessibility. Secondary triggers do not receive ARIA ownership.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) secondary = false;\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n if (control instanceof M3eBottomSheetElement) {\r\n super.attach(control);\r\n\r\n if (this.parentElement) {\r\n if (!control.modal) {\r\n if (!this.secondary) {\r\n this.parentElement.ariaExpanded = \"false\";\r\n addAriaReferencedId(this.parentElement, \"aria-controls\", control.id);\r\n if (this.parentElement.id) {\r\n addAriaReferencedId(control, \"aria-labelledby\", this.parentElement.id);\r\n }\r\n }\r\n } else {\r\n this.parentElement.ariaHasPopup = \"dialog\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control && this.parentElement && !this.secondary) {\r\n removeAriaReferencedId(this.parentElement, \"aria-controls\", this.control.id);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _onClick(): void {\r\n if (this.control instanceof M3eBottomSheetElement) {\r\n if (this.control.modal) {\r\n this.control.show(this.detent);\r\n } else {\r\n this.control.toggle(this.detent);\r\n if (!this.secondary && this.parentElement) {\r\n this.parentElement.ariaExpanded = `${this.control.open}`;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet-trigger\": M3eBottomSheetTriggerElement;\r\n }\r\n}\r\n"],"names":["__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","M3eBottomSheetActionElement","ActionElementBase","_onClick","closest","hide","customElement","M3eBottomSheetElement","EventAttribute","AttachInternals","LitElement","constructor","_M3eBottomSheetElement_documentClickHandler","_M3eBottomSheetElement_documentKeyDownHandler","_M3eBottomSheetElement_windowResizeHandler","_M3eBottomSheetElement_instances","_M3eBottomSheetElement_handleWindowResize","_M3eBottomSheetElement_inerts","Array","_M3eBottomSheetElement_velocityTracker","VelocityTracker","_M3eBottomSheetElement_scrollLockController","ScrollLockController","_M3eBottomSheetElement_resizeController","ResizeController","skipInitial","callback","x","_M3eBottomSheetElement_handleSectionResize","_M3eBottomSheetElement_trigger","_M3eBottomSheetElement_dragState","_M3eBottomSheetElement_dragged","_M3eBottomSheetElement_activeDetent","_M3eBottomSheetElement_requestDetent","_M3eBottomSheetElement_cachedContentHeight","_M3eBottomSheetElement_cachedHeaderHeight","_M3eBottomSheetElement_snapAnimation","modal","open","handle","handleLabel","detents","detent","hideable","hideFriction","show","undefined","_M3eBottomSheetElement_snapToDetent","toggle","cycle","_a","connectedCallback","addCustomState","update","changedProperties","role","ariaModal","popover","firstUpdated","_changedProperties","content","shadowRoot","querySelector","clientHeight","observe","header","deleteCustomState","updated","dispatchEvent","Event","cancelable","M3eBottomSheetElement_1","__openSheet","inert","window","addEventListener","Math","min","max","_M3eBottomSheetElement_updateHeight","_M3eBottomSheetElement_computeDetentHeight","requestAnimationFrame","removeEventListener","document","activeElement","_M3eBottomSheetElement_applyInert","lock","showPopover","focusable","M3eInteractivityChecker","isFocusable","focusWhenReady","_M3eBottomSheetElement_snapToHeight","then","_M3eBottomSheetElement_restoreInert","unlock","hidePopover","HTMLElement","focus","render","html","_M3eBottomSheetElement_handleHeaderPointerDown","_M3eBottomSheetElement_handleHeaderPointerMove","_M3eBottomSheetElement_handleHeaderPointerUp","_M3eBottomSheetElement_handleDragHandleClick","_M3eBottomSheetElement_handleDragHandleKeyDown","nothing","_M3eBottomSheetElement_handleHeaderSlotChange","setCustomState","hasAssignedNodes","setPointerCapture","pointerId","style","cursor","reset","add","clientY","startY","startHeight","maxHeight","_M3eBottomSheetElement_computeMaxHeight","minHeight","_M3eBottomSheetElement_computeMinHeight","minDragThreshold","abs","getCoalescedEvents","forEach","timeStamp","newHeight","overshoot","releasePointerCapture","significantVelocityThreshold","pointerType","velocity","getVelocity","nextDetent","hideDistanceThreshold","collapsed","_M3eBottomSheetElement_getClosestDetent","composedPath","includes","shiftKey","ctrlKey","preventDefault","hasCustomState","defaultPrevented","isModifierAllowed","currentHeight","nextHeight","Infinity","detentHeight","closestDetent","closestDistance","distance","_M3eBottomSheetElement_computeFitHeight","endsWith","parseFloat","base","innerHeight","computeCssSize","body","bodyStyle","getComputedStyle","paddingBlockStart","paddingBlockEnd","entries","oldCachedContentHeight","oldCachedHeaderHeight","entry","classList","contains","isArray","borderBoxSize","blockSize","height","cancel","prefersReducedMotion","animate","duration","easing","onfinish","finished","setProperty","_M3eBottomSheetElement_computePeekHeight","current","parentNode","documentElement","sibling","children","push","lightDomStyle","CSSStyleSheet","replaceSync","css","toString","adoptedStyleSheets","styles","DesignToken","color","onSurface","surfaceContainerLow","unsafeCSS","motion","medium2","standardDecelerate","standard","elevation","level1","shape","corner","none","extraLargeTop","short3","scrim","long2","scrollbar","thinWidth","typescale","medium","fontSize","fontWeight","lineHeight","tracking","title","large","full","onSurfaceVariant","property","type","Boolean","reflect","prototype","attribute","converter","spaceSeparatedStringConverter","Number","M3eBottomSheetTriggerElement","HtmlFor","secondary","attach","control","parentElement","ariaExpanded","addAriaReferencedId","id","ariaHasPopup","detach","removeAriaReferencedId"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"bottom-sheet.js","sources":["../../src/bottom-sheet/BottomSheetActionElement.ts","../../src/bottom-sheet/BottomSheetElement.ts","../../src/bottom-sheet/BottomSheetTriggerElement.ts"],"sourcesContent":["import { ActionElementBase, customElement } from \"@m3e/web/core\";\r\n\r\n/**\r\n * An element, nested within a clickable element, used to close a parenting bottom sheet.\r\n * @tag m3e-bottom-sheet-action\r\n *\r\n * @slot - Renders the content of the action.\r\n */\r\n@customElement(\"m3e-bottom-sheet-action\")\r\nexport class M3eBottomSheetActionElement extends ActionElementBase {\r\n /** @inheritdoc */\r\n protected override _onClick(): void {\r\n this.closest(\"m3e-bottom-sheet\")?.hide();\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet-action\": M3eBottomSheetActionElement;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, nothing, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n customElement,\r\n computeCssSize,\r\n DesignToken,\r\n EventAttribute,\r\n focusWhenReady,\r\n hasAssignedNodes,\r\n hasCustomState,\r\n prefersReducedMotion,\r\n ResizeController,\r\n ScrollLockController,\r\n setCustomState,\r\n spaceSeparatedStringConverter,\r\n VelocityTracker,\r\n SuppressInitialAnimation,\r\n ReconnectedCallback,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { isModifierAllowed, M3eInteractivityChecker } from \"@m3e/web/core/a11y\";\r\nimport \"@m3e/web/core/a11y\";\r\n\r\n/**\r\n * A sheet used to show secondary content anchored to the bottom of the screen.\r\n *\r\n * @description\r\n * The `m3e-bottom-sheet` component implements a Material 3 bottom sheet with\r\n * gesture‑driven resizing, detent snapping, and adaptive motion. It behaves as\r\n * a heavy surface: transitions use non‑bouncy, decelerating motion.\r\n *\r\n * The sheet supports direct manipulation through vertical drag gestures.\r\n * Movement below an 8px threshold is ignored to ensure reliable tap‑to‑cycle\r\n * behavior on the handle. Once activated, dragging updates the sheet height\r\n * with friction near the minimum height to prevent abrupt collapse.\r\n *\r\n * When detents are defined, the sheet snaps to the nearest detent on release.\r\n * If hideable, downward gestures may dismiss the sheet using either velocity\r\n * or a small distance threshold below the collapsed detent. When no detents\r\n * are present, the sheet behaves as a simple open/hidden surface with a\r\n * bottom‑measured hide threshold.\r\n *\r\n * @example\r\n * The following example shows a modal bottom sheet with a drag handle,\r\n * three detents (`fit`, `half`, and `full`), and an action list. The sheet\r\n * is opened using a dedicated `m3e-bottom-sheet-trigger` associated by ID.\r\n * ```html\r\n * <m3e-button>\r\n * <m3e-bottom-sheet-trigger for=\"bottomSheet\">\r\n * Open Bottom sheet\r\n * </m3e-bottom-sheet-trigger>\r\n * </m3e-button>\r\n *\r\n * <m3e-bottom-sheet id=\"bottomSheet\" modal handle hideable detents=\"fit half full\">\r\n * <m3e-action-list>\r\n * <m3e-list-action autofocus>\r\n * <m3e-bottom-sheet-action>Google Keep</m3e-bottom-sheet-action>\r\n * <span slot=\"supporting-text\">Add to a note</span>\r\n * </m3e-list-action>\r\n * <m3e-list-action>\r\n * <m3e-bottom-sheet-action>Google Docs</m3e-bottom-sheet-action>\r\n * <span slot=\"supporting-text\">Embed in a document</span>\r\n * </m3e-list-action>\r\n * </m3e-action-list>\r\n * </m3e-bottom-sheet>\r\n * ```\r\n *\r\n * @tag m3e-bottom-sheet\r\n *\r\n * @slot - Renders the content of the sheet.\r\n * @slot header - Renders the header of the sheet.\r\n *\r\n * @attr detent - The zero‑based index of the detent the sheet should open to.\r\n * @attr detents - Detents (discrete height states) the sheet can snap to.\r\n * @attr handle - Whether to display a drag handle and enable the top region of the sheet as a gesture surface for dragging between detents.\r\n * @attr handle-label - The accessible label given to the drag handle.\r\n * @attr hideable - Whether the bottom sheet can hide when its swiped down.\r\n * @attr hide-friction - The friction coefficient to hide the sheet, or set it to the next closest expanded detent.\r\n * @attr modal - Whether the bottom sheet behaves as modal.\r\n * @attr open - Whether the bottom sheet is open.\r\n *\r\n * @fires opening - Emitted when the sheet begins to open.\r\n * @fires opened - Emitted when the sheet has opened.\r\n * @fires cancel - Emitted when the sheet is cancelled.\r\n * @fires closing - Emitted when the sheet begins to close.\r\n * @fires closed - Emitted when the sheet has closed.\r\n *\r\n * @cssprop --m3e-bottom-sheet-width - The width of the sheet.\r\n * @cssprop --m3e-bottom-sheet-max-width - The maximum width of the sheet.\r\n * @cssprop --m3e-bottom-sheet-container-color - The background color of the sheet container.\r\n * @cssprop --m3e-bottom-sheet-elevation - The elevation level when not modal.\r\n * @cssprop --m3e-bottom-sheet-modal-elevation - The elevation level when modal.\r\n * @cssprop --m3e-bottom-sheet-full-elevation - The elevation level when full height.\r\n * @cssprop --m3e-bottom-sheet-z-index - The z-index of the non-modal sheet.\r\n * @cssprop --m3e-bottom-sheet-minimized-container-shape - The border radius when minimized.\r\n * @cssprop --m3e-bottom-sheet-container-shape - The border radius of the sheet container.\r\n * @cssprop --m3e-bottom-sheet-full-container-shape - The border radius when full height.\r\n * @cssprop --m3e-bottom-sheet-scrim-color - The color of the scrim overlay.\r\n * @cssprop --m3e-bottom-sheet-scrim-opacity - The opacity of the scrim overlay.\r\n * @cssprop --m3e-bottom-sheet-peek-height - The visible height when minimized.\r\n * @cssprop --m3e-bottom-sheet-compact-top-space - The top space in compact mode.\r\n * @cssprop --m3e-bottom-sheet-top-space - The top space in standard mode.\r\n * @cssprop --m3e-bottom-sheet-padding-block - The vertical padding.\r\n * @cssprop --m3e-bottom-sheet-padding-inline - The horizontal padding.\r\n * @cssprop --m3e-bottom-sheet-handle-container-height - The height of the drag handle container.\r\n * @cssprop --m3e-bottom-sheet-handle-width - The width of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-height - The height of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-shape - The border radius of the handle.\r\n * @cssprop --m3e-bottom-sheet-handle-color - The color of the drag handle.\r\n * @cssprop --m3e-bottom-sheet-handle-focus-ring-offset - The offset of the focus ring around the handle.\r\n * @cssprop --m3e-bottom-sheet-color - The foreground (text) color of the sheet.\r\n * @cssprop --m3e-bottom-sheet-content-font-size - Font size for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-font-weight - Font weight for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-line-height - Line height for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-content-tracking - Letter spacing (tracking) for the sheet content.\r\n * @cssprop --m3e-bottom-sheet-header-font-size - Font size for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-font-weight - Font weight for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-line-height - Line height for the sheet header.\r\n * @cssprop --m3e-bottom-sheet-header-tracking - Letter spacing (tracking) for the sheet header.\r\n */\r\n@customElement(\"m3e-bottom-sheet\")\r\nexport class M3eBottomSheetElement extends EventAttribute(\r\n ReconnectedCallback(SuppressInitialAnimation(AttachInternals(LitElement))),\r\n \"opening\",\r\n \"opened\",\r\n \"cancel\",\r\n \"closing\",\r\n \"closed\",\r\n) {\r\n static {\r\n if (typeof window !== \"undefined\") {\r\n const lightDomStyle = new CSSStyleSheet();\r\n lightDomStyle.replaceSync(\r\n css`\r\n @property --_bottom-sheet-height {\r\n syntax: \"<length>\";\r\n inherits: false;\r\n initial-value: 50vh;\r\n }\r\n m3e-bottom-sheet > [slot=\"header\"] {\r\n margin-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n margin-inline: var(--m3e-bottom-sheet-padding-inline, 1rem);\r\n }\r\n `.toString(),\r\n );\r\n document.adoptedStyleSheets.push(lightDomStyle);\r\n }\r\n }\r\n\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: fixed;\r\n left: 50%;\r\n top: calc(100vh - var(--_bottom-sheet-height));\r\n margin: 0;\r\n padding: 0;\r\n outline: none;\r\n overflow: hidden;\r\n border: none;\r\n box-sizing: border-box;\r\n width: var(--m3e-bottom-sheet-width, 100%);\r\n max-width: var(--m3e-bottom-sheet-max-width, 40rem);\r\n height: var(--_bottom-sheet-height);\r\n color: var(--m3e-bottom-sheet-color, ${DesignToken.color.onSurface});\r\n background-color: var(--m3e-bottom-sheet-container-color, ${DesignToken.color.surfaceContainerLow});\r\n }\r\n :host(:not(:state(-no-animate))) {\r\n transition: ${unsafeCSS(\r\n `transform ${DesignToken.motion.duration.medium2} ${DesignToken.motion.easing.standardDecelerate},\r\n border-radius ${DesignToken.motion.duration.medium2} ${DesignToken.motion.easing.standard}`,\r\n )};\r\n }\r\n :host(:not([modal]):not(:state(-full))) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host([modal]:not(:state(-full))) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-modal-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host(:state(-full)) .elevation {\r\n --m3e-elevation-level: var(--m3e-bottom-sheet-full-elevation, ${DesignToken.elevation.level1});\r\n }\r\n :host(:not([modal])) {\r\n z-index: var(--m3e-bottom-sheet-z-index, 10);\r\n }\r\n :host(:not([modal]):not([open])),\r\n :host([modal]:not(:popover-open)) {\r\n border-radius: var(--m3e-bottom-sheet-minimized-container-shape, ${DesignToken.shape.corner.none});\r\n transform: translateX(-50%) translateY(100%);\r\n }\r\n :host(:not([modal])[open]:not(:state(-full))),\r\n :host([modal]:not(:state(-full)):popover-open) {\r\n border-radius: var(--m3e-bottom-sheet-container-shape, ${DesignToken.shape.corner.extraLargeTop});\r\n }\r\n :host(:not([modal])[open]:state(-full)),\r\n :host([modal]:state(-full):popover-open) {\r\n border-radius: var(--m3e-bottom-sheet-full-container-shape, ${DesignToken.shape.corner.extraLargeTop});\r\n }\r\n :host(:not([modal])[open]),\r\n :host([modal]:popover-open) {\r\n transform: translateX(-50%) translateY(0);\r\n }\r\n :host([modal]:not(:state(-no-animate)))::backdrop {\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n :host([modal]:popover-open)::backdrop {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-bottom-sheet-scrim-color, ${DesignToken.color.scrim}) var(--m3e-bottom-sheet-scrim-opacity, 32%),\r\n transparent\r\n );\r\n }\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop {\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n @starting-style {\r\n :host([modal]:popover-open)::backdrop {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-bottom-sheet-scrim-color, ${DesignToken.color.scrim}) 0%,\r\n transparent\r\n );\r\n }\r\n }\r\n .base {\r\n display: flex;\r\n border-radius: inherit;\r\n flex-direction: column;\r\n height: 100%;\r\n --_bottom-sheet-peek-height: var(--m3e-bottom-sheet-peek-height, 0);\r\n --_bottom-sheet-top-space: var(--m3e-bottom-sheet-compact-top-space, 4.5rem);\r\n }\r\n @media (max-height: 640px) {\r\n .base {\r\n --_bottom-sheet-top-space: var(--m3e-bottom-sheet-top-space, 3.5rem);\r\n }\r\n }\r\n .body {\r\n flex: 1 1 auto;\r\n overflow-y: auto;\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n padding-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n padding-inline: var(--m3e-bottom-sheet-padding-inline, 1rem);\r\n font-size: var(--m3e-bottom-sheet-content-font-size, ${DesignToken.typescale.standard.body.medium.fontSize});\r\n font-weight: var(\r\n --m3e-bottom-sheet-content-font-weight,\r\n ${DesignToken.typescale.standard.body.medium.fontWeight}\r\n );\r\n line-height: var(\r\n --m3e-bottom-sheet-content-line-height,\r\n ${DesignToken.typescale.standard.body.medium.lineHeight}\r\n );\r\n letter-spacing: var(--m3e-bottom-sheet-content-tracking, ${DesignToken.typescale.standard.body.medium.tracking});\r\n }\r\n .content {\r\n height: fit-content;\r\n }\r\n :host(:not([handle])) .header {\r\n display: none;\r\n }\r\n :host(:not([handle])) .body,\r\n .header {\r\n border-top-left-radius: inherit;\r\n border-top-right-radius: inherit;\r\n padding-block-start: var(--m3e-bottom-sheet-padding-block, 0.5rem);\r\n font-size: var(--m3e-bottom-sheet-header-font-size, ${DesignToken.typescale.standard.title.large.fontSize});\r\n font-weight: var(--m3e-bottom-sheet-header-font-weight, ${DesignToken.typescale.standard.title.large.fontWeight});\r\n line-height: var(--m3e-bottom-sheet-header-line-height, ${DesignToken.typescale.standard.title.large.lineHeight});\r\n letter-spacing: var(--m3e-bottom-sheet-header-tracking, ${DesignToken.typescale.standard.title.large.tracking});\r\n }\r\n .header {\r\n cursor: grab;\r\n touch-action: none;\r\n outline: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n box-sizing: border-box;\r\n flex: none;\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 3rem;\r\n --m3e-app-bar-container-color: var(--m3e-bottom-sheet-container-color, ${DesignToken.color.surfaceContainerLow});\r\n }\r\n .handle-row {\r\n position: relative;\r\n flex: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 1;\r\n visibility: visible;\r\n height: var(--m3e-bottom-sheet-handle-container-height, 1.5rem);\r\n }\r\n :host(:not(:state(-no-animate))) .handle-row {\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n padding ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n height ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n .handle {\r\n position: relative;\r\n width: var(--m3e-bottom-sheet-handle-width, 2rem);\r\n height: var(--m3e-bottom-sheet-handle-height, 4px);\r\n border-radius: var(--m3e-bottom-sheet-handle-shape, ${DesignToken.shape.corner.full});\r\n background-color: var(--m3e-bottom-sheet-handle-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n .handle-touch {\r\n position: absolute;\r\n aspect-ratio: 1 / 1;\r\n height: 3rem;\r\n left: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2));\r\n right: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2));\r\n top: calc(\r\n 0px - calc(\r\n calc(3rem - var(--m3e-bottom-sheet-handle-container-height, 1.5rem)) - calc(\r\n var(--m3e-bottom-sheet-handle-height, 4px) / 2\r\n )\r\n )\r\n );\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:not(:state(-no-animate))),\r\n :host([modal]:not(:state(-no-animate)))::backdrop,\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop,\r\n :host(:not(:state(-no-animate))) .handle-row {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host([modal]:not(:state(-no-animate)))::backdrop,\r\n :host([modal]:popover-open:not(:state(-no-animate)))::backdrop {\r\n transition: none;\r\n }\r\n .base {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: CanvasText;\r\n }\r\n .handle {\r\n background-color: ButtonText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ private static __openSheet?: M3eBottomSheetElement;\r\n\r\n /** @private */ readonly #documentClickHandler = (e: Event) => this.#handleDocumentClick(e);\r\n /** @private */ readonly #documentKeyDownHandler = (e: KeyboardEvent) => this.#handleDocumentKeyDown(e);\r\n /** @private */ readonly #windowResizeHandler = () => this.#handleWindowResize();\r\n /** @private */ readonly #inerts = new Array<HTMLElement>();\r\n /** @private */ readonly #velocityTracker = new VelocityTracker();\r\n /** @private */ readonly #scrollLockController = new ScrollLockController(this);\r\n\r\n /** @private */\r\n readonly #resizeController = new ResizeController(this, {\r\n target: null,\r\n skipInitial: true,\r\n callback: (x) => this.#handleSectionResize(x),\r\n });\r\n\r\n /** @private */ #trigger: Element | null = null;\r\n /** @private */ #dragState?: { startY: number; startHeight: number; maxHeight: number; minHeight: number };\r\n /** @private */ #dragged = false;\r\n /** @private */ #activeDetent = 0;\r\n /** @private */ #requestDetent?: number;\r\n /** @private */ #cachedContentHeight = 0;\r\n /** @private */ #cachedHeaderHeight = 0;\r\n /** @private */ #snapAnimation?: Animation;\r\n\r\n /**\r\n * Whether the bottom sheet behaves as modal.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) modal = false;\r\n\r\n /**\r\n * Whether the bottom sheet is open.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) open = false;\r\n\r\n /**\r\n * Whether to display a drag handle and enable the top region of the sheet as a gesture\r\n * surface for dragging between detents.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) handle = false;\r\n\r\n /**\r\n * The accessible label given to the drag handle.\r\n * @default \"Drag handle\"\r\n */\r\n @property({ attribute: \"handle-label\" }) handleLabel = \"Drag handle\";\r\n\r\n /**\r\n * Detents (discrete height states) the sheet can snap to.\r\n * @default []\r\n */\r\n @property({ attribute: \"detents\", converter: spaceSeparatedStringConverter }) detents: string[] = [];\r\n\r\n /**\r\n * The zero‑based index of the detent the sheet should open to.\r\n * @default 0\r\n */\r\n @property({ type: Number }) detent = 0;\r\n\r\n /**\r\n * Whether the bottom sheet can hide when its swiped down.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) hideable = false;\r\n\r\n /**\r\n * The friction coefficient to hide the sheet, or set it to the next closest expanded detent.\r\n * @default 0.5\r\n */\r\n @property({ attribute: \"hide-friction\", type: Number }) hideFriction = 0.5;\r\n\r\n /**\r\n * Shows the sheet.\r\n * @param {number} detent The zero‑based index of the detent the sheet should open to.\r\n */\r\n show(detent: number = this.detent): void {\r\n if (!this.open) {\r\n this.#requestDetent = detent;\r\n this.open = true;\r\n } else if (detent !== undefined && this.#activeDetent !== detent) {\r\n this.#snapToDetent(detent);\r\n }\r\n }\r\n\r\n /** Hides the sheet. */\r\n hide(): void {\r\n this.open = false;\r\n }\r\n\r\n /**\r\n * Toggles the opened state of the sheet.\r\n * @param {number} detent The zero‑based index of the detent the sheet should open to.\r\n */\r\n toggle(detent?: number): void {\r\n if (this.open) {\r\n this.hide();\r\n } else {\r\n this.show(detent);\r\n }\r\n }\r\n\r\n /** Moves the sheet to the next detent. */\r\n cycle(): void {\r\n if (!this.open) {\r\n this.show();\r\n } else if (this.detents.length > 0) {\r\n if (this.#activeDetent < this.detents.length - 1) {\r\n this.#activeDetent++;\r\n this.#snapToDetent(this.#activeDetent);\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"modal\")) {\r\n this.role = this.modal ? \"dialog\" : \"region\";\r\n this.ariaModal = this.modal ? \"true\" : null;\r\n this.popover = this.modal ? \"manual\" : null;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override reconnectedCallback(): void {\r\n super.reconnectedCallback();\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"open\")) {\r\n if (this.open) {\r\n if (!this.dispatchEvent(new Event(\"opening\", { cancelable: true }))) {\r\n this.open = false;\r\n return;\r\n }\r\n\r\n // Only one sheet can be open at a time.\r\n if (M3eBottomSheetElement.__openSheet !== this) {\r\n M3eBottomSheetElement.__openSheet?.hide();\r\n }\r\n M3eBottomSheetElement.__openSheet = this;\r\n\r\n this.inert = false;\r\n\r\n window.addEventListener(\"resize\", this.#windowResizeHandler);\r\n\r\n // If there are detents (regardless of handle) open to the requested, default (or first) detent.\r\n // Otherwise, open to fit unless its greater than half.\r\n\r\n if (this.detents.length > 0) {\r\n this.#activeDetent = Math.min(Math.max(0, this.#requestDetent ?? this.detent), this.detents.length - 1);\r\n this.#updateHeight(this.#computeDetentHeight(this.detents[this.#activeDetent]));\r\n } else {\r\n this.#updateHeight(Math.min(this.#computeDetentHeight(\"fit\"), this.#computeDetentHeight(\"half\")));\r\n }\r\n this.#requestDetent = undefined;\r\n } else {\r\n if (!this.dispatchEvent(new Event(\"closing\", { cancelable: true }))) {\r\n this.open = true;\r\n return;\r\n }\r\n\r\n // The following ensures layout is stable so that first tab isn't \"skipped\"\r\n requestAnimationFrame(() => (this.inert = true));\r\n\r\n window.removeEventListener(\"resize\", this.#windowResizeHandler);\r\n\r\n if (M3eBottomSheetElement.__openSheet === this) {\r\n M3eBottomSheetElement.__openSheet = undefined;\r\n }\r\n }\r\n\r\n if (this.modal) {\r\n if (this.open) {\r\n this.#trigger = document.activeElement;\r\n this.#applyInert();\r\n this.#scrollLockController.lock();\r\n this.showPopover();\r\n requestAnimationFrame(() => {\r\n document.addEventListener(\"click\", this.#documentClickHandler);\r\n document.addEventListener(\"keydown\", this.#documentKeyDownHandler);\r\n });\r\n\r\n let focusable: HTMLElement | null | undefined = this.querySelector<HTMLElement>(\"[autofocus]\");\r\n if (!focusable || !M3eInteractivityChecker.isFocusable(focusable)) {\r\n focusable = this.shadowRoot?.querySelector(\".handle\");\r\n }\r\n if (focusable) {\r\n focusWhenReady(focusable);\r\n }\r\n } else {\r\n this.#snapToHeight(0).then(() => {\r\n this.#restoreInert();\r\n this.#scrollLockController.unlock();\r\n document.removeEventListener(\"click\", this.#documentClickHandler);\r\n document.removeEventListener(\"keydown\", this.#documentKeyDownHandler);\r\n this.hidePopover();\r\n if (this.#trigger instanceof HTMLElement) {\r\n this.#trigger.focus();\r\n }\r\n this.#trigger = null;\r\n });\r\n }\r\n }\r\n\r\n this.dispatchEvent(new Event(this.open ? \"opened\" : \"closed\"));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<m3e-focus-trap ?disabled=\"${!this.modal}\">\r\n <div class=\"base\">\r\n <m3e-elevation class=\"elevation\"></m3e-elevation>\r\n <div\r\n class=\"header\"\r\n @pointerdown=\"${this.#handleHeaderPointerDown}\"\r\n @pointermove=\"${this.#handleHeaderPointerMove}\"\r\n @pointerup=\"${this.#handleHeaderPointerUp}\"\r\n >\r\n ${this.handle\r\n ? html`<div class=\"handle-row\">\r\n <div\r\n id=\"handle\"\r\n class=\"handle\"\r\n role=\"button\"\r\n aria-label=\"${this.handleLabel}\"\r\n tabindex=\"0\"\r\n @click=\"${this.#handleDragHandleClick}\"\r\n @keydown=\"${this.#handleDragHandleKeyDown}\"\r\n >\r\n <m3e-focus-ring class=\"focus-ring\" for=\"handle\"></m3e-focus-ring>\r\n <div class=\"handle-touch\" aria-hidden=\"true\"></div>\r\n </div>\r\n </div>`\r\n : nothing}\r\n <slot name=\"header\" @slotchange=\"${this.#handleHeaderSlotChange}\"></slot>\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </m3e-focus-trap>`;\r\n }\r\n\r\n /** @private */\r\n #initialize(): void {\r\n const content = this.shadowRoot?.querySelector<HTMLElement>(\".content\");\r\n if (content) {\r\n this.#cachedContentHeight = content.clientHeight;\r\n this.#resizeController.observe(content);\r\n }\r\n\r\n const header = this.shadowRoot?.querySelector<HTMLElement>(\".header\");\r\n if (header) {\r\n this.#cachedHeaderHeight = header.clientHeight;\r\n this.#resizeController.observe(header);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleHeaderSlotChange(e: Event): void {\r\n setCustomState(this, \"has-header\", hasAssignedNodes(e.target as HTMLSlotElement));\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerDown(e: PointerEvent): void {\r\n if (e.target instanceof HTMLElement && M3eInteractivityChecker.isFocusable(e.target)) {\r\n return;\r\n }\r\n\r\n (<HTMLElement>e.target).setPointerCapture(e.pointerId);\r\n (<HTMLElement>e.target).style.cursor = \"grabbing\";\r\n\r\n this.#velocityTracker.reset();\r\n this.#velocityTracker.add(e.clientY);\r\n\r\n this.#dragState = {\r\n startY: e.clientY,\r\n startHeight: this.clientHeight,\r\n maxHeight: this.#computeMaxHeight(),\r\n minHeight: this.#computeMinHeight(),\r\n };\r\n this.#dragged = false;\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerMove(e: PointerEvent): void {\r\n if (!this.#dragState) {\r\n return;\r\n }\r\n\r\n const minDragThreshold = 8;\r\n if (Math.abs(e.clientY - this.#dragState.startY) <= minDragThreshold) {\r\n // Ignore movement under threshold\r\n return;\r\n }\r\n\r\n (e.getCoalescedEvents?.() ?? [e]).forEach((x) => this.#velocityTracker.add(x.clientY, e.timeStamp));\r\n\r\n let newHeight = this.#dragState.startHeight - (e.clientY - this.#dragState.startY);\r\n if (newHeight < this.#dragState.minHeight) {\r\n const overshoot = (this.#dragState.minHeight - newHeight) * this.hideFriction;\r\n newHeight = this.#dragState.minHeight - overshoot;\r\n }\r\n\r\n this.#updateHeight(Math.min(this.#dragState.maxHeight, newHeight));\r\n this.#dragged = true;\r\n }\r\n\r\n /** @private */\r\n #handleHeaderPointerUp(e: PointerEvent): void {\r\n if (!this.#dragState) return;\r\n\r\n try {\r\n (<HTMLElement>e.target).releasePointerCapture(e.pointerId);\r\n (<HTMLElement>e.target).style.cursor = \"\";\r\n\r\n if (!this.#dragged) return;\r\n\r\n const significantVelocityThreshold = e.pointerType === \"touch\" ? 1200 : 500;\r\n const velocity = this.#velocityTracker.getVelocity();\r\n\r\n this.#velocityTracker.reset();\r\n\r\n if (this.hideable && velocity >= significantVelocityThreshold) {\r\n if (this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))) {\r\n this.hide();\r\n }\r\n } else if (Math.abs(velocity) >= significantVelocityThreshold) {\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextHigherDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n }\r\n } else {\r\n this.#snapToHeight(this.#computeDetentHeight(\"full\"));\r\n }\r\n } else {\r\n const hideDistanceThreshold = 20;\r\n if (this.hideable) {\r\n const collapsed = this.#dragState.minHeight;\r\n if (this.clientHeight < collapsed - hideDistanceThreshold) {\r\n this.hide();\r\n return;\r\n }\r\n }\r\n\r\n if (this.detents.length > 0) {\r\n this.#snapToDetent(this.#getClosestDetent());\r\n } else if (this.clientHeight < this.#dragState.minHeight) {\r\n this.#snapToHeight(this.#dragState.minHeight);\r\n }\r\n }\r\n } finally {\r\n this.#dragState = undefined;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDocumentClick(e: Event): void {\r\n if (\r\n this.open &&\r\n this.modal &&\r\n !e.composedPath().includes(this) &&\r\n this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))\r\n ) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDocumentKeyDown(e: KeyboardEvent): void {\r\n if (this.open && this.modal && e.key === \"Escape\" && !e.shiftKey && !e.ctrlKey) {\r\n e.preventDefault();\r\n\r\n if (this.dispatchEvent(new Event(\"cancel\", { cancelable: true }))) {\r\n this.hide();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleWindowResize(): void {\r\n if (this.detents.length > 0 && this.detents[this.#activeDetent] === \"half\") {\r\n this.#updateHeight(this.#computeDetentHeight(\"half\"));\r\n return;\r\n }\r\n\r\n const maxHeight = this.#computeMaxHeight();\r\n if (hasCustomState(this, \"-full\")) {\r\n this.#updateHeight(maxHeight);\r\n } else if (this.clientHeight > maxHeight) {\r\n this.#updateHeight(maxHeight);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDragHandleClick(): void {\r\n if (!this.#dragged) {\r\n this.cycle();\r\n }\r\n this.#dragged = false;\r\n }\r\n\r\n /** @private */\r\n #handleDragHandleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented || !isModifierAllowed(e)) return;\r\n\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextHigherDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n }\r\n } else {\r\n this.#snapToHeight(this.#computeDetentHeight(\"full\"));\r\n }\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (this.detents.length > 0) {\r\n const nextDetent = this.#getNextLowerDetent();\r\n if (nextDetent !== this.#activeDetent) {\r\n this.#snapToDetent(nextDetent);\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n } else if (this.hideable) {\r\n this.hide();\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #getNextHigherDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let nextHeight = Infinity;\r\n let nextDetent = this.#activeDetent;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === this.#activeDetent) continue;\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n if (detentHeight > currentHeight && detentHeight < nextHeight) {\r\n nextHeight = detentHeight;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextLowerDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let nextHeight = -Infinity;\r\n let nextDetent = this.#activeDetent;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === this.#activeDetent) continue;\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n if (detentHeight < currentHeight && detentHeight > nextHeight) {\r\n nextHeight = detentHeight;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getClosestDetent(): number {\r\n const currentHeight = this.clientHeight;\r\n let closestDetent = this.#activeDetent;\r\n let closestDistance = Infinity;\r\n\r\n for (let i = 0; i < this.detents.length; i++) {\r\n const detentHeight = this.#computeDetentHeight(this.detents[i]);\r\n const distance = Math.abs(currentHeight - detentHeight);\r\n\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestDetent = i;\r\n }\r\n }\r\n return closestDetent;\r\n }\r\n\r\n /** @private */\r\n #computeDetentHeight(detent: string): number {\r\n switch (detent) {\r\n case \"collapsed\":\r\n return this.#computeMinHeight();\r\n case \"half\":\r\n return this.#computeMaxHeight() * 0.5;\r\n case \"full\":\r\n return this.#computeMaxHeight();\r\n case \"fit\":\r\n return this.#computeFitHeight();\r\n }\r\n\r\n if (detent.endsWith(\"%\")) {\r\n return this.#computeMaxHeight() * (parseFloat(detent) / 100);\r\n }\r\n\r\n if (detent.endsWith(\"px\")) {\r\n return parseFloat(detent);\r\n }\r\n\r\n return this.#computeMinHeight();\r\n }\r\n\r\n /** @private */\r\n #computeMaxHeight(): number {\r\n const base = this.shadowRoot?.querySelector<HTMLElement>(\".base\");\r\n return window.innerHeight - (base ? computeCssSize(base, \"var(--_bottom-sheet-top-space)\") : 0);\r\n }\r\n\r\n /** @private */\r\n #computeMinHeight(): number {\r\n return this.detents.includes(\"fit\") && !this.detents.includes(\"collapsed\")\r\n ? this.#computeFitHeight()\r\n : this.#computePeekHeight();\r\n }\r\n\r\n /** @private */\r\n #computePeekHeight(): number {\r\n const base = this.shadowRoot?.querySelector<HTMLElement>(\".base\");\r\n return this.#cachedHeaderHeight + (base ? computeCssSize(base, \"var(--_bottom-sheet-peek-height)\") : 0);\r\n }\r\n\r\n /** @private */\r\n #computeFitHeight(): number {\r\n const body = this.shadowRoot?.querySelector<HTMLElement>(\".body\");\r\n if (!body) {\r\n return 0;\r\n }\r\n\r\n const bodyStyle = getComputedStyle(body);\r\n return (\r\n this.#cachedHeaderHeight +\r\n this.#cachedContentHeight +\r\n parseFloat(bodyStyle.paddingBlockStart) +\r\n parseFloat(bodyStyle.paddingBlockEnd)\r\n );\r\n }\r\n\r\n /** @private */\r\n #handleSectionResize(entries: ResizeObserverEntry[]): void {\r\n const oldCachedContentHeight = this.#cachedContentHeight;\r\n const oldCachedHeaderHeight = this.#cachedHeaderHeight;\r\n\r\n for (const entry of entries) {\r\n if (entry.target.classList.contains(\"content\")) {\r\n this.#cachedContentHeight = (<ResizeObserverSize>(\r\n (Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0] : entry.borderBoxSize)\r\n )).blockSize;\r\n } else if (entry.target.classList.contains(\"header\")) {\r\n this.#cachedHeaderHeight = (<ResizeObserverSize>(\r\n (Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0] : entry.borderBoxSize)\r\n )).blockSize;\r\n }\r\n }\r\n\r\n if (\r\n this.open &&\r\n this.detents.length > 0 &&\r\n (oldCachedContentHeight !== this.#cachedContentHeight || oldCachedHeaderHeight !== this.#cachedHeaderHeight)\r\n ) {\r\n switch (this.detents[this.#activeDetent]) {\r\n case \"fit\":\r\n this.#updateHeight(this.#computeFitHeight());\r\n break;\r\n\r\n case \"collapsed\":\r\n this.#updateHeight(this.#computeMinHeight());\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #snapToDetent(detent: number): void {\r\n if (detent >= 0 && detent < this.detents.length) {\r\n this.#activeDetent = detent;\r\n this.#snapToHeight(this.#computeDetentHeight(this.detents[detent]));\r\n }\r\n }\r\n\r\n /** @private */\r\n async #snapToHeight(height: number): Promise<void> {\r\n if (this.#snapAnimation) {\r\n this.#updateHeight(this.clientHeight);\r\n this.#snapAnimation?.cancel();\r\n this.#snapAnimation = undefined;\r\n }\r\n\r\n if (!prefersReducedMotion()) {\r\n this.#snapAnimation = this.animate(\r\n [{ \"--_bottom-sheet-height\": `${this.clientHeight}px` }, { \"--_bottom-sheet-height\": `${height}px` }],\r\n {\r\n duration: 250,\r\n easing: \"cubic-bezier(0.2, 0.0, 0, 1.0)\",\r\n },\r\n );\r\n this.#snapAnimation.onfinish = () => {\r\n this.#updateHeight(height);\r\n this.#snapAnimation = undefined;\r\n };\r\n await this.#snapAnimation.finished;\r\n } else {\r\n this.#updateHeight(height);\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateHeight(height: number): void {\r\n this.style.setProperty(\"--_bottom-sheet-height\", `${height}px`);\r\n setCustomState(this, \"-full\", height === this.#computeMaxHeight());\r\n const content = this.shadowRoot?.querySelector<HTMLElement>(\".content\");\r\n if (content) {\r\n content.inert = height <= this.#computePeekHeight();\r\n }\r\n }\r\n\r\n /** @private */\r\n #applyInert() {\r\n this.#inerts.length = 0;\r\n\r\n for (\r\n let current: Node = this as Node;\r\n current.parentNode && current.parentNode !== document.documentElement;\r\n current = current.parentNode\r\n ) {\r\n for (const sibling of current.parentNode.children) {\r\n if (sibling instanceof HTMLElement && sibling !== current && !sibling.inert) {\r\n sibling.inert = true;\r\n this.#inerts.push(sibling);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #restoreInert(): void {\r\n this.#inerts.forEach((x) => (x.inert = false));\r\n this.#inerts.length = 0;\r\n }\r\n}\r\n\r\ninterface M3eBottomSheetElementEventMap extends HTMLElementEventMap {\r\n opening: Event;\r\n opened: Event;\r\n closing: Event;\r\n closed: Event;\r\n cancel: Event;\r\n}\r\n\r\nexport interface M3eBottomSheetElement {\r\n addEventListener<K extends keyof M3eBottomSheetElementEventMap>(\r\n type: K,\r\n listener: (this: M3eBottomSheetElement, ev: M3eBottomSheetElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eBottomSheetElementEventMap>(\r\n type: K,\r\n listener: (this: M3eBottomSheetElement, ev: M3eBottomSheetElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet\": M3eBottomSheetElement;\r\n }\r\n}\r\n","import { property } from \"lit/decorators.js\";\r\n\r\nimport { ActionElementBase, customElement, HtmlFor } from \"@m3e/web/core\";\r\nimport { addAriaReferencedId, removeAriaReferencedId } from \"@m3e/web/core/a11y\";\r\n\r\nimport { M3eBottomSheetElement } from \"./BottomSheetElement\";\r\n\r\n/**\r\n * An element, nested within a clickable element, used to trigger a bottom sheet.\r\n * @tag m3e-bottom-sheet-trigger\r\n *\r\n * @slot - Renders the content of the trigger.\r\n *\r\n * @attr detent - The zero‑based index of the detent the sheet should open to.\r\n * @attr secondary - Marks this trigger as a secondary trigger for accessibility. Secondary triggers do not receive ARIA ownership.\r\n */\r\n@customElement(\"m3e-bottom-sheet-trigger\")\r\nexport class M3eBottomSheetTriggerElement extends HtmlFor(ActionElementBase) {\r\n /**\r\n * The zero‑based index of the detent the sheet should open to.\r\n * @default undefined\r\n */\r\n @property({ type: Number }) detent?: number;\r\n\r\n /**\r\n * Marks this trigger as a secondary trigger for accessibility. Secondary triggers do not receive ARIA ownership.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) secondary = false;\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n if (control instanceof M3eBottomSheetElement) {\r\n super.attach(control);\r\n\r\n if (this.parentElement) {\r\n if (!control.modal) {\r\n if (!this.secondary) {\r\n this.parentElement.ariaExpanded = \"false\";\r\n addAriaReferencedId(this.parentElement, \"aria-controls\", control.id);\r\n if (this.parentElement.id) {\r\n addAriaReferencedId(control, \"aria-labelledby\", this.parentElement.id);\r\n }\r\n }\r\n } else {\r\n this.parentElement.ariaHasPopup = \"dialog\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control && this.parentElement && !this.secondary) {\r\n removeAriaReferencedId(this.parentElement, \"aria-controls\", this.control.id);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _onClick(): void {\r\n if (this.control instanceof M3eBottomSheetElement) {\r\n if (this.control.modal) {\r\n this.control.show(this.detent);\r\n } else {\r\n this.control.toggle(this.detent);\r\n if (!this.secondary && this.parentElement) {\r\n this.parentElement.ariaExpanded = `${this.control.open}`;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-bottom-sheet-trigger\": M3eBottomSheetTriggerElement;\r\n }\r\n}\r\n"],"names":["M3eBottomSheetActionElement","ActionElementBase","_onClick","closest","hide","__decorate","customElement","M3eBottomSheetElement","M3eBottomSheetElement_1","EventAttribute","ReconnectedCallback","SuppressInitialAnimation","AttachInternals","LitElement","constructor","_M3eBottomSheetElement_documentClickHandler","set","e","__classPrivateFieldGet","call","_M3eBottomSheetElement_documentKeyDownHandler","_M3eBottomSheetElement_windowResizeHandler","_M3eBottomSheetElement_instances","_M3eBottomSheetElement_handleWindowResize","_M3eBottomSheetElement_inerts","Array","_M3eBottomSheetElement_velocityTracker","VelocityTracker","_M3eBottomSheetElement_scrollLockController","ScrollLockController","_M3eBottomSheetElement_resizeController","ResizeController","target","skipInitial","callback","x","_M3eBottomSheetElement_handleSectionResize","_M3eBottomSheetElement_trigger","_M3eBottomSheetElement_dragState","_M3eBottomSheetElement_dragged","_M3eBottomSheetElement_activeDetent","_M3eBottomSheetElement_requestDetent","_M3eBottomSheetElement_cachedContentHeight","_M3eBottomSheetElement_cachedHeaderHeight","_M3eBottomSheetElement_snapAnimation","modal","open","handle","handleLabel","detents","detent","hideable","hideFriction","show","__classPrivateFieldSet","undefined","_M3eBottomSheetElement_snapToDetent","toggle","cycle","length","_a","update","changedProperties","has","role","ariaModal","popover","reconnectedCallback","_M3eBottomSheetElement_initialize","firstUpdated","_changedProperties","updated","dispatchEvent","Event","cancelable","__openSheet","inert","window","addEventListener","Math","min","max","_M3eBottomSheetElement_updateHeight","_M3eBottomSheetElement_computeDetentHeight","requestAnimationFrame","removeEventListener","document","activeElement","_M3eBottomSheetElement_applyInert","lock","showPopover","focusable","querySelector","M3eInteractivityChecker","isFocusable","shadowRoot","focusWhenReady","_M3eBottomSheetElement_snapToHeight","then","_M3eBottomSheetElement_restoreInert","unlock","hidePopover","HTMLElement","focus","render","html","_M3eBottomSheetElement_handleHeaderPointerDown","_M3eBottomSheetElement_handleHeaderPointerMove","_M3eBottomSheetElement_handleHeaderPointerUp","_M3eBottomSheetElement_handleDragHandleClick","_M3eBottomSheetElement_handleDragHandleKeyDown","nothing","_M3eBottomSheetElement_handleHeaderSlotChange","content","clientHeight","observe","header","setCustomState","hasAssignedNodes","setPointerCapture","pointerId","style","cursor","reset","add","clientY","startY","startHeight","maxHeight","_M3eBottomSheetElement_computeMaxHeight","minHeight","_M3eBottomSheetElement_computeMinHeight","minDragThreshold","abs","getCoalescedEvents","forEach","timeStamp","newHeight","overshoot","releasePointerCapture","significantVelocityThreshold","pointerType","velocity","getVelocity","nextDetent","hideDistanceThreshold","collapsed","_M3eBottomSheetElement_getClosestDetent","composedPath","includes","key","shiftKey","ctrlKey","preventDefault","hasCustomState","defaultPrevented","isModifierAllowed","currentHeight","nextHeight","Infinity","i","detentHeight","closestDetent","closestDistance","distance","_M3eBottomSheetElement_computeFitHeight","endsWith","parseFloat","base","innerHeight","computeCssSize","body","bodyStyle","getComputedStyle","paddingBlockStart","paddingBlockEnd","entries","oldCachedContentHeight","oldCachedHeaderHeight","entry","classList","contains","isArray","borderBoxSize","blockSize","height","cancel","prefersReducedMotion","animate","duration","easing","onfinish","finished","setProperty","_M3eBottomSheetElement_computePeekHeight","current","parentNode","documentElement","sibling","children","push","lightDomStyle","CSSStyleSheet","replaceSync","css","toString","adoptedStyleSheets","styles","DesignToken","color","onSurface","surfaceContainerLow","unsafeCSS","motion","medium2","standardDecelerate","standard","elevation","level1","shape","corner","none","extraLargeTop","short3","scrim","long2","scrollbar","thinWidth","typescale","medium","fontSize","fontWeight","lineHeight","tracking","title","large","full","onSurfaceVariant","property","type","Boolean","reflect","prototype","attribute","converter","spaceSeparatedStringConverter","Number","M3eBottomSheetTriggerElement","HtmlFor","secondary","attach","control","parentElement","ariaExpanded","addAriaReferencedId","id","ariaHasPopup","detach","removeAriaReferencedId"],"mappings":";;;;;;;;;;;AAEA;;;;;AAKG;AAEI,IAAMA,2BAA2B,GAAjC,MAAMA,2BAA4B,SAAQC,iBAAiB,CAAA;AAChE;AACmBC,EAAAA,QAAQA,GAAA;IACzB,IAAI,CAACC,OAAO,CAAC,kBAAkB,CAAC,EAAEC,IAAI,EAAE;AAC1C,EAAA;;AAJWJ,2BAA2B,GAAAK,UAAA,CAAA,CADvCC,aAAa,CAAC,yBAAyB,CAAC,CAC5B,EAAAN,2BAA2B,CAKvC;;;;ACYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGG;AAEI,IAAMO,qBAAqB,GAAAC,uBAAA,GAA3B,MAAMD,qBAAsB,SAAQE,cAAc,CACvDC,mBAAmB,CAACC,wBAAwB,CAACC,eAAe,CAACC,UAAU,CAAC,CAAC,CAAC,EAC1E,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAA;AAPMC,EAAAA,WAAAA,GAAA;;;AA6OL;IAAyBC,2CAAA,CAAAC,GAAA,CAAA,IAAA,EAAyBC,CAAQ,IAAKC,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,EAAsBF,CAAC,CAAC,CAAA;AAC3F;IAAyBG,6CAAA,CAAAJ,GAAA,CAAA,IAAA,EAA2BC,CAAgB,IAAKC,sBAAA,CAAA,IAAI,sFAAuB,CAAAC,IAAA,CAA3B,IAAI,EAAwBF,CAAC,CAAC,CAAA;AACvG;IAAyBI,0CAAA,CAAAL,GAAA,CAAA,IAAA,EAAuB,MAAME,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAC,yCAAA,CAAoB,CAAAJ,IAAA,CAAxB,IAAI,CAAsB,CAAA;AAChF;IAAyBK,6BAAA,CAAAR,GAAA,CAAA,IAAA,EAAU,IAAIS,KAAK,EAAe,CAAA;AAC3D;IAAyBC,sCAAA,CAAAV,GAAA,CAAA,IAAA,EAAmB,IAAIW,eAAe,EAAE,CAAA;AACjE;IAAyBC,2CAAA,CAAAZ,GAAA,CAAA,IAAA,EAAwB,IAAIa,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAE/E;IACSC,uCAAA,CAAAd,GAAA,CAAA,IAAA,EAAoB,IAAIe,gBAAgB,CAAC,IAAI,EAAE;AACtDC,MAAAA,MAAM,EAAE,IAAI;AACZC,MAAAA,WAAW,EAAE,IAAI;AACjBC,MAAAA,QAAQ,EAAGC,CAAC,IAAKjB,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAc,0CAAA,CAAqB,CAAAjB,IAAA,CAAzB,IAAI,EAAsBgB,CAAC;AAC7C,KAAA,CAAC,CAAA;AAEF;AAAgBE,IAAAA,8BAAA,CAAArB,GAAA,CAAA,IAAA,EAA2B,IAAI,CAAA;AAC/C;AAAgBsB,IAAAA,gCAAA,CAAAtB,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAChB;AAAgBuB,IAAAA,8BAAA,CAAAvB,GAAA,CAAA,IAAA,EAAW,KAAK,CAAA;AAChC;AAAgBwB,IAAAA,mCAAA,CAAAxB,GAAA,CAAA,IAAA,EAAgB,CAAC,CAAA;AACjC;AAAgByB,IAAAA,oCAAA,CAAAzB,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAChB;AAAgB0B,IAAAA,0CAAA,CAAA1B,GAAA,CAAA,IAAA,EAAuB,CAAC,CAAA;AACxC;AAAgB2B,IAAAA,yCAAA,CAAA3B,GAAA,CAAA,IAAA,EAAsB,CAAC,CAAA;AACvC;AAAgB4B,IAAAA,oCAAA,CAAA5B,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAEhB;;;AAGG;IACyC,IAAA,CAAA6B,KAAK,GAAG,KAAK;AAEzD;;;AAGG;IACyC,IAAA,CAAAC,IAAI,GAAG,KAAK;AAExD;;;;AAIG;IAC0B,IAAA,CAAAC,MAAM,GAAG,KAAK;AAE3C;;;AAGG;IACsC,IAAA,CAAAC,WAAW,GAAG,aAAa;AAEpE;;;AAGG;IAC2E,IAAA,CAAAC,OAAO,GAAa,EAAE;AAEpG;;;AAGG;IACyB,IAAA,CAAAC,MAAM,GAAG,CAAC;AAEtC;;;AAGG;IACyC,IAAA,CAAAC,QAAQ,GAAG,KAAK;AAE5D;;;AAGG;IACqD,IAAA,CAAAC,YAAY,GAAG,GAAG;AAulB5E,EAAA;AArlBE;;;AAGG;AACHC,EAAAA,IAAIA,CAACH,MAAA,GAAiB,IAAI,CAACA,MAAM,EAAA;AAC/B,IAAA,IAAI,CAAC,IAAI,CAACJ,IAAI,EAAE;MACdQ,sBAAA,CAAA,IAAI,EAAAb,oCAAA,EAAkBS,MAAM,EAAA,GAAA,CAAA;MAC5B,IAAI,CAACJ,IAAI,GAAG,IAAI;AAClB,IAAA,CAAC,MAAM,IAAII,MAAM,KAAKK,SAAS,IAAIrC,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,KAAKU,MAAM,EAAE;AAChEhC,MAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkC,mCAAA,CAAc,CAAArC,IAAA,CAAlB,IAAI,EAAe+B,MAAM,CAAC;AAC5B,IAAA;AACF,EAAA;AAEA;AACA9C,EAAAA,IAAIA,GAAA;IACF,IAAI,CAAC0C,IAAI,GAAG,KAAK;AACnB,EAAA;AAEA;;;AAGG;EACHW,MAAMA,CAACP,MAAe,EAAA;IACpB,IAAI,IAAI,CAACJ,IAAI,EAAE;MACb,IAAI,CAAC1C,IAAI,EAAE;AACb,IAAA,CAAC,MAAM;AACL,MAAA,IAAI,CAACiD,IAAI,CAACH,MAAM,CAAC;AACnB,IAAA;AACF,EAAA;AAEA;AACAQ,EAAAA,KAAKA,GAAA;;AACH,IAAA,IAAI,CAAC,IAAI,CAACZ,IAAI,EAAE;MACd,IAAI,CAACO,IAAI,EAAE;IACb,CAAC,MAAM,IAAI,IAAI,CAACJ,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAClC,MAAA,IAAIzC,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,GAAG,IAAI,CAACS,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;QAChDL,sBAAA,CAAA,IAAA,EAAAd,mCAAA,GAAAoB,EAAA,GAAA1C,sBAAA,CAAA,IAAA,EAAAsB,mCAAA,EAAA,GAAA,CAAkB,EAAlBoB,IAAoB,EAAAA,EAAA,OAAA;QACpB1C,sBAAA,CAAA,IAAI,6EAAc,CAAAC,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,CAAC;AACxC,MAAA,CAAC,MAAM,IAAI,IAAI,CAACW,QAAQ,EAAE;QACxB,IAAI,CAAC/C,IAAI,EAAE;AACb,MAAA;AACF,IAAA,CAAC,MAAM;MACL,IAAI,CAACA,IAAI,EAAE;AACb,IAAA;AACF,EAAA;AAEA;EACmByD,MAAMA,CAACC,iBAAuC,EAAA;AAC/D,IAAA,KAAK,CAACD,MAAM,CAACC,iBAAiB,CAAC;AAE/B,IAAA,IAAIA,iBAAiB,CAACC,GAAG,CAAC,OAAO,CAAC,EAAE;MAClC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACnB,KAAK,GAAG,QAAQ,GAAG,QAAQ;MAC5C,IAAI,CAACoB,SAAS,GAAG,IAAI,CAACpB,KAAK,GAAG,MAAM,GAAG,IAAI;MAC3C,IAAI,CAACqB,OAAO,GAAG,IAAI,CAACrB,KAAK,GAAG,QAAQ,GAAG,IAAI;AAC7C,IAAA;AACF,EAAA;AAEA;AACSsB,EAAAA,mBAAmBA,GAAA;IAC1B,KAAK,CAACA,mBAAmB,EAAE;AAC3BjD,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA8C,iCAAA,CAAY,CAAAjD,IAAA,CAAhB,IAAI,CAAc;AACpB,EAAA;AAEA;EACSkD,YAAYA,CAACC,kBAAkC,EAAA;AACtD,IAAA,KAAK,CAACD,YAAY,CAACC,kBAAkB,CAAC;AACtCpD,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA8C,iCAAA,CAAY,CAAAjD,IAAA,CAAhB,IAAI,CAAc;AACpB,EAAA;AAEA;EACmBoD,OAAOA,CAACD,kBAAkC,EAAA;AAC3D,IAAA,KAAK,CAACC,OAAO,CAACD,kBAAkB,CAAC;AAEjC,IAAA,IAAIA,kBAAkB,CAACP,GAAG,CAAC,MAAM,CAAC,EAAE;MAClC,IAAI,IAAI,CAACjB,IAAI,EAAE;QACb,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC,IAAIC,KAAK,CAAC,SAAS,EAAE;AAAEC,UAAAA,UAAU,EAAE;SAAM,CAAC,CAAC,EAAE;UACnE,IAAI,CAAC5B,IAAI,GAAG,KAAK;AACjB,UAAA;AACF,QAAA;AAEA;AACA,QAAA,IAAItC,uBAAqB,CAACmE,WAAW,KAAK,IAAI,EAAE;AAC9CnE,UAAAA,uBAAqB,CAACmE,WAAW,EAAEvE,IAAI,EAAE;AAC3C,QAAA;QACAI,uBAAqB,CAACmE,WAAW,GAAG,IAAI;QAExC,IAAI,CAACC,KAAK,GAAG,KAAK;AAElBC,QAAAA,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAE5D,sBAAA,CAAA,IAAI,EAAAG,0CAAA,EAAA,GAAA,CAAqB,CAAC;AAE5D;AACA;AAEA,QAAA,IAAI,IAAI,CAAC4B,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAC3BL,UAAAA,sBAAA,CAAA,IAAI,EAAAd,mCAAA,EAAiBuC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE/D,uBAAA,IAAI,EAAAuB,oCAAA,EAAA,GAAA,CAAe,IAAI,IAAI,CAACS,MAAM,CAAC,EAAE,IAAI,CAACD,OAAO,CAACU,MAAM,GAAG,CAAC,CAAC,MAAA;AACvGzC,UAAAA,sBAAA,CAAA,IAAI,6EAAc,CAAAC,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,EAAsB,IAAI,CAAC8B,OAAO,CAAC/B,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,CAAC,CAAC,CAAC;AACjF,QAAA,CAAC,MAAM;UACLtB,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAe4D,IAAI,CAACC,GAAG,CAAC9D,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,KAAK,CAAC,EAAED,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,MAAM,CAAC,CAAC,CAAC;AACnG,QAAA;QACAmC,sBAAA,CAAA,IAAI,EAAAb,oCAAA,EAAkBc,SAAS,EAAA,GAAA,CAAA;AACjC,MAAA,CAAC,MAAM;QACL,IAAI,CAAC,IAAI,CAACiB,aAAa,CAAC,IAAIC,KAAK,CAAC,SAAS,EAAE;AAAEC,UAAAA,UAAU,EAAE;SAAM,CAAC,CAAC,EAAE;UACnE,IAAI,CAAC5B,IAAI,GAAG,IAAI;AAChB,UAAA;AACF,QAAA;AAEA;AACAsC,QAAAA,qBAAqB,CAAC,MAAO,IAAI,CAACR,KAAK,GAAG,IAAK,CAAC;AAEhDC,QAAAA,MAAM,CAACQ,mBAAmB,CAAC,QAAQ,EAAEnE,sBAAA,CAAA,IAAI,EAAAG,0CAAA,EAAA,GAAA,CAAqB,CAAC;AAE/D,QAAA,IAAIb,uBAAqB,CAACmE,WAAW,KAAK,IAAI,EAAE;UAC9CnE,uBAAqB,CAACmE,WAAW,GAAGpB,SAAS;AAC/C,QAAA;AACF,MAAA;MAEA,IAAI,IAAI,CAACV,KAAK,EAAE;QACd,IAAI,IAAI,CAACC,IAAI,EAAE;UACbQ,sBAAA,CAAA,IAAI,EAAAjB,8BAAA,EAAYiD,QAAQ,CAACC,aAAa,MAAA;AACtCrE,UAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkE,iCAAA,CAAY,CAAArE,IAAA,CAAhB,IAAI,CAAc;UAClBD,sBAAA,CAAA,IAAI,EAAAU,2CAAA,EAAA,GAAA,CAAsB,CAAC6D,IAAI,EAAE;UACjC,IAAI,CAACC,WAAW,EAAE;AAClBN,UAAAA,qBAAqB,CAAC,MAAK;AACzBE,YAAAA,QAAQ,CAACR,gBAAgB,CAAC,OAAO,EAAE5D,sBAAA,CAAA,IAAI,EAAAH,2CAAA,EAAA,GAAA,CAAsB,CAAC;AAC9DuE,YAAAA,QAAQ,CAACR,gBAAgB,CAAC,SAAS,EAAE5D,sBAAA,CAAA,IAAI,EAAAE,6CAAA,EAAA,GAAA,CAAwB,CAAC;AACpE,UAAA,CAAC,CAAC;AAEF,UAAA,IAAIuE,SAAS,GAAmC,IAAI,CAACC,aAAa,CAAc,aAAa,CAAC;UAC9F,IAAI,CAACD,SAAS,IAAI,CAACE,uBAAuB,CAACC,WAAW,CAACH,SAAS,CAAC,EAAE;YACjEA,SAAS,GAAG,IAAI,CAACI,UAAU,EAAEH,aAAa,CAAC,SAAS,CAAC;AACvD,UAAA;AACA,UAAA,IAAID,SAAS,EAAE;YACbK,cAAc,CAACL,SAAS,CAAC;AAC3B,UAAA;AACF,QAAA,CAAC,MAAM;AACLzE,UAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2E,mCAAA,CAAc,CAAA9E,IAAA,CAAlB,IAAI,EAAe,CAAC,CAAC,CAAC+E,IAAI,CAAC,MAAK;AAC9BhF,YAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6E,mCAAA,CAAc,CAAAhF,IAAA,CAAlB,IAAI,CAAgB;YACpBD,sBAAA,CAAA,IAAI,EAAAU,2CAAA,EAAA,GAAA,CAAsB,CAACwE,MAAM,EAAE;AACnCd,YAAAA,QAAQ,CAACD,mBAAmB,CAAC,OAAO,EAAEnE,sBAAA,CAAA,IAAI,EAAAH,2CAAA,EAAA,GAAA,CAAsB,CAAC;AACjEuE,YAAAA,QAAQ,CAACD,mBAAmB,CAAC,SAAS,EAAEnE,sBAAA,CAAA,IAAI,EAAAE,6CAAA,EAAA,GAAA,CAAwB,CAAC;YACrE,IAAI,CAACiF,WAAW,EAAE;YAClB,IAAInF,uBAAA,IAAI,EAAAmB,8BAAA,EAAA,GAAA,CAAS,YAAYiE,WAAW,EAAE;cACxCpF,sBAAA,CAAA,IAAI,EAAAmB,8BAAA,EAAA,GAAA,CAAS,CAACkE,KAAK,EAAE;AACvB,YAAA;YACAjD,sBAAA,CAAA,IAAI,EAAAjB,8BAAA,EAAY,IAAI,EAAA,GAAA,CAAA;AACtB,UAAA,CAAC,CAAC;AACJ,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,CAACmC,aAAa,CAAC,IAAIC,KAAK,CAAC,IAAI,CAAC3B,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAChE,IAAA;AACF,EAAA;AAEA;AACmB0D,EAAAA,MAAMA,GAAA;AACvB,IAAA,OAAOC,IAAI,CAAA,2BAAA,EAA8B,CAAC,IAAI,CAAC5D,KAAK,0GAK9B3B,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAoF,8CAAA,CAAyB,mBAC7BxF,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAqF,8CAAA,CAAyB,iBAC/BzF,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAsF,4CAAA,CAAuB,KAEvC,IAAI,CAAC7D,MAAM,GACT0D,IAAI,CAAA,kFAAA,EAKc,IAAI,CAACzD,WAAW,CAAA,uBAAA,EAEpB9B,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAuF,4CAAA,CAAuB,CAAA,YAAA,EACzB3F,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAwF,8CAAA,CAAyB,CAAA,kIAAA,CAKtC,GACPC,OAAO,CAAA,iCAAA,EACwB7F,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA0F,6CAAA,CAAwB,CAAA,sGAAA,CAQnD;AACpB,EAAA;;;;;;;;;;;;;;;;;;;EAIE,MAAMC,OAAO,GAAG,IAAI,CAAClB,UAAU,EAAEH,aAAa,CAAc,UAAU,CAAC;AACvE,EAAA,IAAIqB,OAAO,EAAE;IACX3D,sBAAA,CAAA,IAAI,EAAAZ,0CAAA,EAAwBuE,OAAO,CAACC,YAAY,MAAA;IAChDhG,sBAAA,CAAA,IAAI,EAAAY,uCAAA,EAAA,GAAA,CAAkB,CAACqF,OAAO,CAACF,OAAO,CAAC;AACzC,EAAA;EAEA,MAAMG,MAAM,GAAG,IAAI,CAACrB,UAAU,EAAEH,aAAa,CAAc,SAAS,CAAC;AACrE,EAAA,IAAIwB,MAAM,EAAE;IACV9D,sBAAA,CAAA,IAAI,EAAAX,yCAAA,EAAuByE,MAAM,CAACF,YAAY,MAAA;IAC9ChG,sBAAA,CAAA,IAAI,EAAAY,uCAAA,EAAA,GAAA,CAAkB,CAACqF,OAAO,CAACC,MAAM,CAAC;AACxC,EAAA;AACF,CAAC;uGAGuBnG,CAAQ,EAAA;EAC9BoG,cAAc,CAAC,IAAI,EAAE,YAAY,EAAEC,gBAAgB,CAACrG,CAAC,CAACe,MAAyB,CAAC,CAAC;AACnF,CAAC;yGAGwBf,CAAe,EAAA;AACtC,EAAA,IAAIA,CAAC,CAACe,MAAM,YAAYsE,WAAW,IAAIT,uBAAuB,CAACC,WAAW,CAAC7E,CAAC,CAACe,MAAM,CAAC,EAAE;AACpF,IAAA;AACF,EAAA;EAEcf,CAAC,CAACe,MAAO,CAACuF,iBAAiB,CAACtG,CAAC,CAACuG,SAAS,CAAC;AACxCvG,EAAAA,CAAC,CAACe,MAAO,CAACyF,KAAK,CAACC,MAAM,GAAG,UAAU;EAEjDxG,sBAAA,CAAA,IAAI,EAAAQ,sCAAA,EAAA,GAAA,CAAiB,CAACiG,KAAK,EAAE;AAC7BzG,EAAAA,sBAAA,CAAA,IAAI,8CAAiB,CAAC0G,GAAG,CAAC3G,CAAC,CAAC4G,OAAO,CAAC;AAEpCvE,EAAAA,sBAAA,CAAA,IAAI,EAAAhB,gCAAA,EAAc;IAChBwF,MAAM,EAAE7G,CAAC,CAAC4G,OAAO;IACjBE,WAAW,EAAE,IAAI,CAACb,YAAY;AAC9Bc,IAAAA,SAAS,EAAE9G,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAkB,CAAA9G,IAAA,CAAtB,IAAI,CAAoB;AACnC+G,IAAAA,SAAS,EAAEhH,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6G,uCAAA,CAAkB,CAAAhH,IAAA,CAAtB,IAAI;GAChB,EAAA,GAAA,CAAA;EACDmC,sBAAA,CAAA,IAAI,EAAAf,8BAAA,EAAY,KAAK,EAAA,GAAA,CAAA;AACvB,CAAC;yGAGwBtB,CAAe,EAAA;EACtC,IAAI,CAACC,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,EAAE;AACpB,IAAA;AACF,EAAA;EAEA,MAAM8F,gBAAgB,GAAG,CAAC;EAC1B,IAAIrD,IAAI,CAACsD,GAAG,CAACpH,CAAC,CAAC4G,OAAO,GAAG3G,sBAAA,CAAA,IAAI,wCAAW,CAAC4G,MAAM,CAAC,IAAIM,gBAAgB,EAAE;AACpE;AACA,IAAA;AACF,EAAA;AAEA,EAAA,CAACnH,CAAC,CAACqH,kBAAkB,IAAI,IAAI,CAACrH,CAAC,CAAC,EAAEsH,OAAO,CAAEpG,CAAC,IAAKjB,sBAAA,CAAA,IAAI,EAAAQ,sCAAA,EAAA,GAAA,CAAiB,CAACkG,GAAG,CAACzF,CAAC,CAAC0F,OAAO,EAAE5G,CAAC,CAACuH,SAAS,CAAC,CAAC;EAEnG,IAAIC,SAAS,GAAGvH,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAACyF,WAAW,IAAI9G,CAAC,CAAC4G,OAAO,GAAG3G,sBAAA,CAAA,IAAI,wCAAW,CAAC4G,MAAM,CAAC;AAClF,EAAA,IAAIW,SAAS,GAAGvH,sBAAA,CAAA,IAAI,wCAAW,CAACgH,SAAS,EAAE;AACzC,IAAA,MAAMQ,SAAS,GAAG,CAACxH,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAAC4F,SAAS,GAAGO,SAAS,IAAI,IAAI,CAACrF,YAAY;AAC7EqF,IAAAA,SAAS,GAAGvH,uBAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAAC4F,SAAS,GAAGQ,SAAS;AACnD,EAAA;AAEAxH,EAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAe4D,IAAI,CAACC,GAAG,CAAC9D,sBAAA,CAAA,IAAI,wCAAW,CAAC8G,SAAS,EAAES,SAAS,CAAC,CAAC;EAClEnF,sBAAA,CAAA,IAAI,EAAAf,8BAAA,EAAY,IAAI,EAAA,GAAA,CAAA;AACtB,CAAC;qGAGsBtB,CAAe,EAAA;EACpC,IAAI,CAACC,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,EAAE;EAEtB,IAAI;IACYrB,CAAC,CAACe,MAAO,CAAC2G,qBAAqB,CAAC1H,CAAC,CAACuG,SAAS,CAAC;AAC5CvG,IAAAA,CAAC,CAACe,MAAO,CAACyF,KAAK,CAACC,MAAM,GAAG,EAAE;IAEzC,IAAI,CAACxG,sBAAA,CAAA,IAAI,EAAAqB,8BAAA,EAAA,GAAA,CAAS,EAAE;IAEpB,MAAMqG,4BAA4B,GAAG3H,CAAC,CAAC4H,WAAW,KAAK,OAAO,GAAG,IAAI,GAAG,GAAG;AAC3E,IAAA,MAAMC,QAAQ,GAAG5H,sBAAA,CAAA,IAAI,8CAAiB,CAAC6H,WAAW,EAAE;IAEpD7H,sBAAA,CAAA,IAAI,EAAAQ,sCAAA,EAAA,GAAA,CAAiB,CAACiG,KAAK,EAAE;AAE7B,IAAA,IAAI,IAAI,CAACxE,QAAQ,IAAI2F,QAAQ,IAAIF,4BAA4B,EAAE;MAC7D,IAAI,IAAI,CAACpE,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;AAAEC,QAAAA,UAAU,EAAE;OAAM,CAAC,CAAC,EAAE;QACjE,IAAI,CAACtE,IAAI,EAAE;AACb,MAAA;IACF,CAAC,MAAM,IAAI2E,IAAI,CAACsD,GAAG,CAACS,QAAQ,CAAC,IAAIF,4BAA4B,EAAE;AAC7D,MAAA,IAAI,IAAI,CAAC3F,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAA,MAAMqF,UAAU,GAAG9H,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,CAAuB;QAC9C,IAAI6H,UAAU,KAAK9H,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,EAAE;AACrCtB,UAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkC,mCAAA,CAAc,CAAArC,IAAA,CAAlB,IAAI,EAAe6H,UAAU,CAAC;AAChC,QAAA;AACF,MAAA,CAAC,MAAM;AACL9H,QAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2E,mCAAA,CAAc,CAAA9E,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,MAAM,CAAC,CAAC;AACvD,MAAA;AACF,IAAA,CAAC,MAAM;MACL,MAAM8H,qBAAqB,GAAG,EAAE;MAChC,IAAI,IAAI,CAAC9F,QAAQ,EAAE;QACjB,MAAM+F,SAAS,GAAGhI,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAAC4F,SAAS;AAC3C,QAAA,IAAI,IAAI,CAAChB,YAAY,GAAGgC,SAAS,GAAGD,qBAAqB,EAAE;UACzD,IAAI,CAAC7I,IAAI,EAAE;AACX,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,IAAI,CAAC6C,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAC3BzC,QAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkC,mCAAA,CAAc,CAAArC,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6H,uCAAA,CAAkB,CAAAhI,IAAA,CAAtB,IAAI,CAAoB,CAAC;AAC9C,MAAA,CAAC,MAAM,IAAI,IAAI,CAAC+F,YAAY,GAAGhG,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAAC4F,SAAS,EAAE;QACxDhH,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2E,mCAAA,CAAc,CAAA9E,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAoB,gCAAA,EAAA,GAAA,CAAW,CAAC4F,SAAS,CAAC;AAC/C,MAAA;AACF,IAAA;AACF,EAAA,CAAC,SAAS;IACR5E,sBAAA,CAAA,IAAI,EAAAhB,gCAAA,EAAciB,SAAS,EAAA,GAAA,CAAA;AAC7B,EAAA;AACF,CAAC;iGAGoBtC,CAAQ,EAAA;AAC3B,EAAA,IACE,IAAI,CAAC6B,IAAI,IACT,IAAI,CAACD,KAAK,IACV,CAAC5B,CAAC,CAACmI,YAAY,EAAE,CAACC,QAAQ,CAAC,IAAI,CAAC,IAChC,IAAI,CAAC7E,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;AAAEC,IAAAA,UAAU,EAAE;GAAM,CAAC,CAAC,EAC7D;IACA,IAAI,CAACtE,IAAI,EAAE;AACb,EAAA;AACF,CAAC;qGAGsBa,CAAgB,EAAA;EACrC,IAAI,IAAI,CAAC6B,IAAI,IAAI,IAAI,CAACD,KAAK,IAAI5B,CAAC,CAACqI,GAAG,KAAK,QAAQ,IAAI,CAACrI,CAAC,CAACsI,QAAQ,IAAI,CAACtI,CAAC,CAACuI,OAAO,EAAE;IAC9EvI,CAAC,CAACwI,cAAc,EAAE;IAElB,IAAI,IAAI,CAACjF,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;AAAEC,MAAAA,UAAU,EAAE;KAAM,CAAC,CAAC,EAAE;MACjE,IAAI,CAACtE,IAAI,EAAE;AACb,IAAA;AACF,EAAA;AACF,CAAC;;EAIC,IAAI,IAAI,CAAC6C,OAAO,CAACU,MAAM,GAAG,CAAC,IAAI,IAAI,CAACV,OAAO,CAAC/B,uBAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,CAAC,KAAK,MAAM,EAAE;AAC1EtB,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,MAAM,CAAC,CAAC;AACrD,IAAA;AACF,EAAA;AAEA,EAAA,MAAM6G,SAAS,GAAG9G,sBAAA,CAAA,IAAI,iFAAkB,CAAAC,IAAA,CAAtB,IAAI,CAAoB;AAC1C,EAAA,IAAIuI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACjCxI,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAe6G,SAAS,CAAC;AAC/B,EAAA,CAAC,MAAM,IAAI,IAAI,CAACd,YAAY,GAAGc,SAAS,EAAE;AACxC9G,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAe6G,SAAS,CAAC;AAC/B,EAAA;AACF,CAAC;;EAIC,IAAI,CAAC9G,sBAAA,CAAA,IAAI,EAAAqB,8BAAA,EAAA,GAAA,CAAS,EAAE;IAClB,IAAI,CAACmB,KAAK,EAAE;AACd,EAAA;EACAJ,sBAAA,CAAA,IAAI,EAAAf,8BAAA,EAAY,KAAK,EAAA,GAAA,CAAA;AACvB,CAAC;yGAGwBtB,CAAgB,EAAA;EACvC,IAAIA,CAAC,CAAC0I,gBAAgB,IAAI,CAACC,iBAAiB,CAAC3I,CAAC,CAAC,EAAE;EAEjD,QAAQA,CAAC,CAACqI,GAAG;AACX,IAAA,KAAK,IAAI;AACT,IAAA,KAAK,SAAS;MACZrI,CAAC,CAACwI,cAAc,EAAE;AAClB,MAAA,IAAI,IAAI,CAACxG,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAA,MAAMqF,UAAU,GAAG9H,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,CAAuB;QAC9C,IAAI6H,UAAU,KAAK9H,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,EAAE;AACrCtB,UAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkC,mCAAA,CAAc,CAAArC,IAAA,CAAlB,IAAI,EAAe6H,UAAU,CAAC;AAChC,QAAA;AACF,MAAA,CAAC,MAAM;AACL9H,QAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2E,mCAAA,CAAc,CAAA9E,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,MAAM,CAAC,CAAC;AACvD,MAAA;AACA,MAAA;AAEF,IAAA,KAAK,MAAM;AACX,IAAA,KAAK,WAAW;MACdF,CAAC,CAACwI,cAAc,EAAE;AAClB,MAAA,IAAI,IAAI,CAACxG,OAAO,CAACU,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAA,MAAMqF,UAAU,GAAG9H,sBAAA,CAAA,IAAI,mFAAoB,CAAAC,IAAA,CAAxB,IAAI,CAAsB;QAC7C,IAAI6H,UAAU,KAAK9H,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,EAAE;AACrCtB,UAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAAkC,mCAAA,CAAc,CAAArC,IAAA,CAAlB,IAAI,EAAe6H,UAAU,CAAC;AAChC,QAAA,CAAC,MAAM,IAAI,IAAI,CAAC7F,QAAQ,EAAE;UACxB,IAAI,CAAC/C,IAAI,EAAE;AACb,QAAA;AACF,MAAA,CAAC,MAAM,IAAI,IAAI,CAAC+C,QAAQ,EAAE;QACxB,IAAI,CAAC/C,IAAI,EAAE;AACb,MAAA;AAEA,MAAA;AACJ;AACF,CAAC;;AAIC,EAAA,MAAMyJ,aAAa,GAAG,IAAI,CAAC3C,YAAY;EACvC,IAAI4C,UAAU,GAAGC,QAAQ;EACzB,IAAIf,UAAU,GAAG9H,sBAAA,CAAA,IAAI,2CAAc;AACnC,EAAA,KAAK,IAAI8I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC/G,OAAO,CAACU,MAAM,EAAEqG,CAAC,EAAE,EAAE;IAC5C,IAAIA,CAAC,KAAK9I,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,EAAE;IAC9B,MAAMyH,YAAY,GAAG/I,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,EAAsB,IAAI,CAAC8B,OAAO,CAAC+G,CAAC,CAAC,CAAC;AAC/D,IAAA,IAAIC,YAAY,GAAGJ,aAAa,IAAII,YAAY,GAAGH,UAAU,EAAE;AAC7DA,MAAAA,UAAU,GAAGG,YAAY;AACzBjB,MAAAA,UAAU,GAAGgB,CAAC;AAChB,IAAA;AACF,EAAA;AACA,EAAA,OAAOhB,UAAU;AACnB,CAAC;;AAIC,EAAA,MAAMa,aAAa,GAAG,IAAI,CAAC3C,YAAY;EACvC,IAAI4C,UAAU,GAAG,CAACC,QAAQ;EAC1B,IAAIf,UAAU,GAAG9H,sBAAA,CAAA,IAAI,2CAAc;AACnC,EAAA,KAAK,IAAI8I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC/G,OAAO,CAACU,MAAM,EAAEqG,CAAC,EAAE,EAAE;IAC5C,IAAIA,CAAC,KAAK9I,sBAAA,CAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,EAAE;IAC9B,MAAMyH,YAAY,GAAG/I,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,EAAsB,IAAI,CAAC8B,OAAO,CAAC+G,CAAC,CAAC,CAAC;AAC/D,IAAA,IAAIC,YAAY,GAAGJ,aAAa,IAAII,YAAY,GAAGH,UAAU,EAAE;AAC7DA,MAAAA,UAAU,GAAGG,YAAY;AACzBjB,MAAAA,UAAU,GAAGgB,CAAC;AAChB,IAAA;AACF,EAAA;AACA,EAAA,OAAOhB,UAAU;AACnB,CAAC;;AAIC,EAAA,MAAMa,aAAa,GAAG,IAAI,CAAC3C,YAAY;EACvC,IAAIgD,aAAa,GAAGhJ,sBAAA,CAAA,IAAI,2CAAc;EACtC,IAAIiJ,eAAe,GAAGJ,QAAQ;AAE9B,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC/G,OAAO,CAACU,MAAM,EAAEqG,CAAC,EAAE,EAAE;IAC5C,MAAMC,YAAY,GAAG/I,sBAAA,CAAA,IAAI,oFAAqB,CAAAC,IAAA,CAAzB,IAAI,EAAsB,IAAI,CAAC8B,OAAO,CAAC+G,CAAC,CAAC,CAAC;IAC/D,MAAMI,QAAQ,GAAGrF,IAAI,CAACsD,GAAG,CAACwB,aAAa,GAAGI,YAAY,CAAC;IAEvD,IAAIG,QAAQ,GAAGD,eAAe,EAAE;AAC9BA,MAAAA,eAAe,GAAGC,QAAQ;AAC1BF,MAAAA,aAAa,GAAGF,CAAC;AACnB,IAAA;AACF,EAAA;AACA,EAAA,OAAOE,aAAa;AACtB,CAAC;iGAGoBhH,MAAc,EAAA;AACjC,EAAA,QAAQA,MAAM;AACZ,IAAA,KAAK,WAAW;AACd,MAAA,OAAOhC,uBAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6G,uCAAA,CAAkB,CAAAhH,IAAA,CAAtB,IAAI,CAAoB;AACjC,IAAA,KAAK,MAAM;AACT,MAAA,OAAOD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAkB,CAAA9G,IAAA,CAAtB,IAAI,CAAoB,GAAG,GAAG;AACvC,IAAA,KAAK,MAAM;AACT,MAAA,OAAOD,uBAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAkB,CAAA9G,IAAA,CAAtB,IAAI,CAAoB;AACjC,IAAA,KAAK,KAAK;AACR,MAAA,OAAOD,uBAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA+I,uCAAA,CAAkB,CAAAlJ,IAAA,CAAtB,IAAI,CAAoB;AACnC;AAEA,EAAA,IAAI+B,MAAM,CAACoH,QAAQ,CAAC,GAAG,CAAC,EAAE;IACxB,OAAOpJ,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAkB,CAAA9G,IAAA,CAAtB,IAAI,CAAoB,IAAIoJ,UAAU,CAACrH,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAA;AAEA,EAAA,IAAIA,MAAM,CAACoH,QAAQ,CAAC,IAAI,CAAC,EAAE;IACzB,OAAOC,UAAU,CAACrH,MAAM,CAAC;AAC3B,EAAA;AAEA,EAAA,OAAOhC,uBAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6G,uCAAA,CAAkB,CAAAhH,IAAA,CAAtB,IAAI,CAAoB;AACjC,CAAC;;EAIC,MAAMqJ,IAAI,GAAG,IAAI,CAACzE,UAAU,EAAEH,aAAa,CAAc,OAAO,CAAC;AACjE,EAAA,OAAOf,MAAM,CAAC4F,WAAW,IAAID,IAAI,GAAGE,cAAc,CAACF,IAAI,EAAE,gCAAgC,CAAC,GAAG,CAAC,CAAC;AACjG,CAAC;;EAIC,OAAO,IAAI,CAACvH,OAAO,CAACoG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAACpG,OAAO,CAACoG,QAAQ,CAAC,WAAW,CAAC,GACtEnI,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA+I,uCAAA,CAAkB,CAAAlJ,IAAA,CAAtB,IAAI,CAAoB,GACxBD,sBAAA,CAAA,IAAI,kFAAmB,CAAAC,IAAA,CAAvB,IAAI,CAAqB;AAC/B,CAAC;;EAIC,MAAMqJ,IAAI,GAAG,IAAI,CAACzE,UAAU,EAAEH,aAAa,CAAc,OAAO,CAAC;AACjE,EAAA,OAAO1E,sBAAA,CAAA,IAAI,EAAAyB,yCAAA,EAAA,GAAA,CAAoB,IAAI6H,IAAI,GAAGE,cAAc,CAACF,IAAI,EAAE,kCAAkC,CAAC,GAAG,CAAC,CAAC;AACzG,CAAC;;EAIC,MAAMG,IAAI,GAAG,IAAI,CAAC5E,UAAU,EAAEH,aAAa,CAAc,OAAO,CAAC;EACjE,IAAI,CAAC+E,IAAI,EAAE;AACT,IAAA,OAAO,CAAC;AACV,EAAA;AAEA,EAAA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,IAAI,CAAC;AACxC,EAAA,OACEzJ,sBAAA,CAAA,IAAI,EAAAyB,yCAAA,EAAA,GAAA,CAAoB,GACxBzB,sBAAA,CAAA,IAAI,EAAAwB,0CAAA,EAAA,GAAA,CAAqB,GACzB6H,UAAU,CAACK,SAAS,CAACE,iBAAiB,CAAC,GACvCP,UAAU,CAACK,SAAS,CAACG,eAAe,CAAC;AAEzC,CAAC;iGAGoBC,OAA8B,EAAA;EACjD,MAAMC,sBAAsB,GAAG/J,sBAAA,CAAA,IAAI,kDAAqB;EACxD,MAAMgK,qBAAqB,GAAGhK,sBAAA,CAAA,IAAI,iDAAoB;AAEtD,EAAA,KAAK,MAAMiK,KAAK,IAAIH,OAAO,EAAE;IAC3B,IAAIG,KAAK,CAACnJ,MAAM,CAACoJ,SAAS,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC9C/H,MAAAA,sBAAA,CAAA,IAAI,EAAAZ,0CAAA,EAA6C,CAC9CjB,KAAK,CAAC6J,OAAO,CAACH,KAAK,CAACI,aAAa,CAAC,GAAGJ,KAAK,CAACI,aAAa,CAAC,CAAC,CAAC,GAAGJ,KAAK,CAACI,aAAa,EACjFC,SAAS,MAAA;AACd,IAAA,CAAC,MAAM,IAAIL,KAAK,CAACnJ,MAAM,CAACoJ,SAAS,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACpD/H,MAAAA,sBAAA,CAAA,IAAI,EAAAX,yCAAA,EAA4C,CAC7ClB,KAAK,CAAC6J,OAAO,CAACH,KAAK,CAACI,aAAa,CAAC,GAAGJ,KAAK,CAACI,aAAa,CAAC,CAAC,CAAC,GAAGJ,KAAK,CAACI,aAAa,EACjFC,SAAS,MAAA;AACd,IAAA;AACF,EAAA;AAEA,EAAA,IACE,IAAI,CAAC1I,IAAI,IACT,IAAI,CAACG,OAAO,CAACU,MAAM,GAAG,CAAC,KACtBsH,sBAAsB,KAAK/J,sBAAA,CAAA,IAAI,EAAAwB,0CAAA,EAAA,GAAA,CAAqB,IAAIwI,qBAAqB,KAAKhK,sBAAA,CAAA,IAAI,EAAAyB,yCAAA,EAAA,GAAA,CAAoB,CAAC,EAC5G;AACA,IAAA,QAAQ,IAAI,CAACM,OAAO,CAAC/B,uBAAA,IAAI,EAAAsB,mCAAA,EAAA,GAAA,CAAc,CAAC;AACtC,MAAA,KAAK,KAAK;AACRtB,QAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA+I,uCAAA,CAAkB,CAAAlJ,IAAA,CAAtB,IAAI,CAAoB,CAAC;AAC5C,QAAA;AAEF,MAAA,KAAK,WAAW;AACdD,QAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6G,uCAAA,CAAkB,CAAAhH,IAAA,CAAtB,IAAI,CAAoB,CAAC;AAC5C,QAAA;AACJ;AACF,EAAA;AACF,CAAC;mFAGa+B,MAAc,EAAA;EAC1B,IAAIA,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAG,IAAI,CAACD,OAAO,CAACU,MAAM,EAAE;IAC/CL,sBAAA,CAAA,IAAI,EAAAd,mCAAA,EAAiBU,MAAM,EAAA,GAAA,CAAA;AAC3BhC,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2E,mCAAA,CAAc,CAAA9E,IAAA,CAAlB,IAAI,EAAeD,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA6D,0CAAA,CAAqB,CAAAhE,IAAA,CAAzB,IAAI,EAAsB,IAAI,CAAC8B,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC;AACrE,EAAA;AACF,CAAC;;AAGD,mDAAoBuI,MAAc,EAAA;EAChC,IAAIvK,sBAAA,CAAA,IAAI,EAAA0B,oCAAA,EAAA,GAAA,CAAe,EAAE;AACvB1B,IAAAA,sBAAA,CAAA,IAAI,6EAAc,CAAAC,IAAA,CAAlB,IAAI,EAAe,IAAI,CAAC+F,YAAY,CAAC;IACrChG,sBAAA,CAAA,IAAI,EAAA0B,oCAAA,EAAA,GAAA,CAAe,EAAE8I,MAAM,EAAE;IAC7BpI,sBAAA,CAAA,IAAI,EAAAV,oCAAA,EAAkBW,SAAS,EAAA,GAAA,CAAA;AACjC,EAAA;AAEA,EAAA,IAAI,CAACoI,oBAAoB,EAAE,EAAE;IAC3BrI,sBAAA,CAAA,IAAI,EAAAV,oCAAA,EAAkB,IAAI,CAACgJ,OAAO,CAChC,CAAC;AAAE,MAAA,wBAAwB,EAAE,CAAA,EAAG,IAAI,CAAC1E,YAAY,CAAA,EAAA;AAAI,KAAE,EAAE;MAAE,wBAAwB,EAAE,GAAGuE,MAAM,CAAA,EAAA;AAAI,KAAE,CAAC,EACrG;AACEI,MAAAA,QAAQ,EAAE,GAAG;AACbC,MAAAA,MAAM,EAAE;KACT,CACF,MAAA;IACD5K,sBAAA,CAAA,IAAI,EAAA0B,oCAAA,EAAA,GAAA,CAAe,CAACmJ,QAAQ,GAAG,MAAK;AAClC7K,MAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAesK,MAAM,CAAC;MAC1BnI,sBAAA,CAAA,IAAI,EAAAV,oCAAA,EAAkBW,SAAS,EAAA,GAAA,CAAA;IACjC,CAAC;IACD,MAAMrC,sBAAA,CAAA,IAAI,EAAA0B,oCAAA,EAAA,GAAA,CAAe,CAACoJ,QAAQ;AACpC,EAAA,CAAC,MAAM;AACL9K,IAAAA,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4D,mCAAA,CAAc,CAAA/D,IAAA,CAAlB,IAAI,EAAesK,MAAM,CAAC;AAC5B,EAAA;AACF,CAAC;mFAGaA,MAAc,EAAA;EAC1B,IAAI,CAAChE,KAAK,CAACwE,WAAW,CAAC,wBAAwB,EAAE,CAAA,EAAGR,MAAM,CAAA,EAAA,CAAI,CAAC;EAC/DpE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAEoE,MAAM,KAAKvK,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAkB,CAAA9G,IAAA,CAAtB,IAAI,CAAoB,CAAC;EAClE,MAAM8F,OAAO,GAAG,IAAI,CAAClB,UAAU,EAAEH,aAAa,CAAc,UAAU,CAAC;AACvE,EAAA,IAAIqB,OAAO,EAAE;AACXA,IAAAA,OAAO,CAACrC,KAAK,GAAG6G,MAAM,IAAIvK,sBAAA,CAAA,IAAI,EAAAI,gCAAA,EAAA,GAAA,EAAA4K,wCAAA,CAAmB,CAAA/K,IAAA,CAAvB,IAAI,CAAqB;AACrD,EAAA;AACF,CAAC;;EAICD,sBAAA,CAAA,IAAI,EAAAM,6BAAA,EAAA,GAAA,CAAQ,CAACmC,MAAM,GAAG,CAAC;EAEvB,KACE,IAAIwI,OAAO,GAAS,IAAY,EAChCA,OAAO,CAACC,UAAU,IAAID,OAAO,CAACC,UAAU,KAAK9G,QAAQ,CAAC+G,eAAe,EACrEF,OAAO,GAAGA,OAAO,CAACC,UAAU,EAC5B;IACA,KAAK,MAAME,OAAO,IAAIH,OAAO,CAACC,UAAU,CAACG,QAAQ,EAAE;AACjD,MAAA,IAAID,OAAO,YAAYhG,WAAW,IAAIgG,OAAO,KAAKH,OAAO,IAAI,CAACG,OAAO,CAAC1H,KAAK,EAAE;QAC3E0H,OAAO,CAAC1H,KAAK,GAAG,IAAI;QACpB1D,sBAAA,CAAA,IAAI,EAAAM,6BAAA,EAAA,GAAA,CAAQ,CAACgL,IAAI,CAACF,OAAO,CAAC;AAC5B,MAAA;AACF,IAAA;AACF,EAAA;AACF,CAAC;;AAICpL,EAAAA,sBAAA,CAAA,IAAI,EAAAM,6BAAA,EAAA,GAAA,CAAQ,CAAC+G,OAAO,CAAEpG,CAAC,IAAMA,CAAC,CAACyC,KAAK,GAAG,KAAM,CAAC;EAC9C1D,sBAAA,CAAA,IAAI,EAAAM,6BAAA,EAAA,GAAA,CAAQ,CAACmC,MAAM,GAAG,CAAC;AACzB,CAAC;AAj4BD,CAAA,MAAA;AACE,EAAA,IAAI,OAAOkB,MAAM,KAAK,WAAW,EAAE;AACjC,IAAA,MAAM4H,aAAa,GAAG,IAAIC,aAAa,EAAE;IACzCD,aAAa,CAACE,WAAW,CACvBC,GAAG,8QAUF,CAACC,QAAQ,EAAE,CACb;AACDvH,IAAAA,QAAQ,CAACwH,kBAAkB,CAACN,IAAI,CAACC,aAAa,CAAC;AACjD,EAAA;AACF,CAAC,GAAA;AAED;AACgBlM,qBAAA,CAAAwM,MAAM,GAAmBH,GAAG,gXAeDI,WAAW,CAACC,KAAK,CAACC,SAAS,CAAA,6DAAA,EACNF,WAAW,CAACC,KAAK,CAACE,mBAAmB,CAAA,oDAAA,EAGnFC,SAAS,CACrB,CAAA,UAAA,EAAaJ,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACyB,OAAO,CAAA,CAAA,EAAIN,WAAW,CAACK,MAAM,CAACvB,MAAM,CAACyB,kBAAkB,CAAA;AAChF,sBAAA,EAAAP,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACyB,OAAO,CAAA,CAAA,EAAIN,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,EAAE,CAC5F,CAAA,kHAAA,EAG0DR,WAAW,CAACS,SAAS,CAACC,MAAM,CAAA,mHAAA,EAGtBV,WAAW,CAACS,SAAS,CAACC,MAAM,CAAA,qGAAA,EAG7BV,WAAW,CAACS,SAAS,CAACC,MAAM,sNAOzBV,WAAW,CAACW,KAAK,CAACC,MAAM,CAACC,IAAI,CAAA,0MAAA,EAKvCb,WAAW,CAACW,KAAK,CAACC,MAAM,CAACE,aAAa,CAAA,qJAAA,EAIjCd,WAAW,CAACW,KAAK,CAACC,MAAM,CAACE,aAAa,CAAA,4KAAA,EAOtFV,SAAS,CACrB,CAAA,iBAAA,EAAoBJ,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,IAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AAClF,gBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACrE,mBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA,eAAA,CAAiB,CACvG,yHAKuCR,WAAW,CAACC,KAAK,CAACe,KAAK,CAAA,4IAAA,EAKjDZ,SAAS,CACrB,CAAA,iBAAA,EAAoBJ,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACoC,KAAK,IAAIjB,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACjF,gBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACoC,KAAK,CAAA,CAAA,EAAIjB,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACpE,mBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACoC,KAAK,CAAA,CAAA,EAAIjB,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA,eAAA,CAAiB,CACtG,CAAA,wIAAA,EAMyCR,WAAW,CAACC,KAAK,CAACe,KAAK,CAAA,6aAAA,EAqB9ChB,WAAW,CAACkB,SAAS,CAACC,SAAS,sBAC/BnB,WAAW,CAACkB,SAAS,CAACjB,KAAK,CAAA,uLAAA,EAGSD,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAAC7C,IAAI,CAAC0D,MAAM,CAACC,QAAQ,CAAA,6DAAA,EAGtGtB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAAC7C,IAAI,CAAC0D,MAAM,CAACE,UAAU,iEAIrDvB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAAC7C,IAAI,CAAC0D,MAAM,CAACG,UAAU,CAAA,6DAAA,EAEExB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAAC7C,IAAI,CAAC0D,MAAM,CAACI,QAAQ,CAAA,0TAAA,EAaxDzB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAACkB,KAAK,CAACC,KAAK,CAACL,QAAQ,CAAA,2DAAA,EAC/CtB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAACkB,KAAK,CAACC,KAAK,CAACJ,UAAU,CAAA,2DAAA,EACrDvB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAACkB,KAAK,CAACC,KAAK,CAACH,UAAU,8DACrDxB,WAAW,CAACoB,SAAS,CAACZ,QAAQ,CAACkB,KAAK,CAACC,KAAK,CAACF,QAAQ,CAAA,sSAAA,EAapCzB,WAAW,CAACC,KAAK,CAACE,mBAAmB,CAAA,+QAAA,EAahGC,SAAS,CACrB,CAAA,QAAA,EAAWJ,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACzE,gBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACzE,eAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA;AACpE,mBAAA,EAAAR,WAAW,CAACK,MAAM,CAACxB,QAAQ,CAACkC,MAAM,CAAA,CAAA,EAAIf,WAAW,CAACK,MAAM,CAACvB,MAAM,CAAC0B,QAAQ,CAAA,eAAA,CAAiB,CACvG,CAAA,6LAAA,EAMqDR,WAAW,CAACW,KAAK,CAACC,MAAM,CAACgB,IAAI,CAAA,0DAAA,EAC1B5B,WAAW,CAACC,KAAK,CAAC4B,gBAAgB,CAAA,+6BAAA,CAtKzE;AA2OsBxO,UAAA,CAAA,CAA3CyO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEC,OAAO;AAAEC,EAAAA,OAAO,EAAE;AAAI,CAAE,CAAC,CAAe,EAAA1O,qBAAA,CAAA2O,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMd7O,UAAA,CAAA,CAA3CyO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEC,OAAO;AAAEC,EAAAA,OAAO,EAAE;AAAI,CAAE,CAAC,CAAc,EAAA1O,qBAAA,CAAA2O,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAO5B7O,UAAA,CAAA,CAA5ByO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEC;CAAS,CAAC,CAAgB,EAAAzO,qBAAA,CAAA2O,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMH7O,UAAA,CAAA,CAAxCyO,QAAQ,CAAC;AAAEK,EAAAA,SAAS,EAAE;CAAgB,CAAC,CAA6B,EAAA5O,qBAAA,CAAA2O,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMS7O,UAAA,CAAA,CAA7EyO,QAAQ,CAAC;AAAEK,EAAAA,SAAS,EAAE,SAAS;AAAEC,EAAAA,SAAS,EAAEC;AAA6B,CAAE,CAAC,CAAwB,EAAA9O,qBAAA,CAAA2O,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMzE7O,UAAA,CAAA,CAA3ByO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEO;CAAQ,CAAC,CAAY,EAAA/O,qBAAA,CAAA2O,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMK7O,UAAA,CAAA,CAA3CyO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEC,OAAO;AAAEC,EAAAA,OAAO,EAAE;AAAI,CAAE,CAAC,CAAkB,EAAA1O,qBAAA,CAAA2O,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAML7O,UAAA,CAAA,CAAvDyO,QAAQ,CAAC;AAAEK,EAAAA,SAAS,EAAE,eAAe;AAAEJ,EAAAA,IAAI,EAAEO;AAAM,CAAE,CAAC,CAAoB,EAAA/O,qBAAA,CAAA2O,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAnThE3O,qBAAqB,GAAAC,uBAAA,GAAAH,UAAA,CAAA,CADjCC,aAAa,CAAC,kBAAkB,CAAC,CACrB,EAAAC,qBAAqB,CA04BjC;;AC//BD;;;;;;;;AAQG;AAEI,IAAMgP,4BAA4B,GAAlC,MAAMA,4BAA6B,SAAQC,OAAO,CAACvP,iBAAiB,CAAC,CAAA;AAArEa,EAAAA,WAAAA,GAAA;;AAOL;;;AAGG;IAC0B,IAAA,CAAA2O,SAAS,GAAG,KAAK;AA4ChD,EAAA;AA1CE;EACSC,MAAMA,CAACC,OAAoB,EAAA;IAClC,IAAIA,OAAO,YAAYpP,qBAAqB,EAAE;AAC5C,MAAA,KAAK,CAACmP,MAAM,CAACC,OAAO,CAAC;MAErB,IAAI,IAAI,CAACC,aAAa,EAAE;AACtB,QAAA,IAAI,CAACD,OAAO,CAAC9M,KAAK,EAAE;AAClB,UAAA,IAAI,CAAC,IAAI,CAAC4M,SAAS,EAAE;AACnB,YAAA,IAAI,CAACG,aAAa,CAACC,YAAY,GAAG,OAAO;YACzCC,mBAAmB,CAAC,IAAI,CAACF,aAAa,EAAE,eAAe,EAAED,OAAO,CAACI,EAAE,CAAC;AACpE,YAAA,IAAI,IAAI,CAACH,aAAa,CAACG,EAAE,EAAE;cACzBD,mBAAmB,CAACH,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAACC,aAAa,CAACG,EAAE,CAAC;AACxE,YAAA;AACF,UAAA;AACF,QAAA,CAAC,MAAM;AACL,UAAA,IAAI,CAACH,aAAa,CAACI,YAAY,GAAG,QAAQ;AAC5C,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEA;AACSC,EAAAA,MAAMA,GAAA;AACb,IAAA,IAAI,IAAI,CAACN,OAAO,IAAI,IAAI,CAACC,aAAa,IAAI,CAAC,IAAI,CAACH,SAAS,EAAE;AACzDS,MAAAA,sBAAsB,CAAC,IAAI,CAACN,aAAa,EAAE,eAAe,EAAE,IAAI,CAACD,OAAO,CAACI,EAAE,CAAC;AAC9E,IAAA;IACA,KAAK,CAACE,MAAM,EAAE;AAChB,EAAA;AAEA;AACmB/P,EAAAA,QAAQA,GAAA;AACzB,IAAA,IAAI,IAAI,CAACyP,OAAO,YAAYpP,qBAAqB,EAAE;AACjD,MAAA,IAAI,IAAI,CAACoP,OAAO,CAAC9M,KAAK,EAAE;QACtB,IAAI,CAAC8M,OAAO,CAACtM,IAAI,CAAC,IAAI,CAACH,MAAM,CAAC;AAChC,MAAA,CAAC,MAAM;QACL,IAAI,CAACyM,OAAO,CAAClM,MAAM,CAAC,IAAI,CAACP,MAAM,CAAC;QAChC,IAAI,CAAC,IAAI,CAACuM,SAAS,IAAI,IAAI,CAACG,aAAa,EAAE;UACzC,IAAI,CAACA,aAAa,CAACC,YAAY,GAAG,CAAA,EAAG,IAAI,CAACF,OAAO,CAAC7M,IAAI,CAAA,CAAE;AAC1D,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;;AAjD4BzC,UAAA,CAAA,CAA3ByO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEO;CAAQ,CAAC,CAAiB,EAAAC,4BAAA,CAAAL,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMf7O,UAAA,CAAA,CAA5ByO,QAAQ,CAAC;AAAEC,EAAAA,IAAI,EAAEC;CAAS,CAAC,CAAmB,EAAAO,4BAAA,CAAAL,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAXpCK,4BAA4B,GAAAlP,UAAA,CAAA,CADxCC,aAAa,CAAC,0BAA0B,CAAC,CAC7B,EAAAiP,4BAA4B,CAuDxC;;;;"}
@@ -3,5 +3,5 @@
3
3
  * Copyright (c) 2025 matraic
4
4
  * See LICENSE file in the project root for full license text.
5
5
  */
6
- import{customElement as t,ActionElementBase as e,EventAttribute as i,AttachInternals as o,VelocityTracker as s,ScrollLockController as n,ResizeController as a,addCustomState as h,deleteCustomState as r,focusWhenReady as l,DesignToken as c,spaceSeparatedStringConverter as d,setCustomState as m,hasAssignedNodes as p,hasCustomState as f,computeCssSize as u,prefersReducedMotion as b,HtmlFor as g}from"@m3e/web/core";import{LitElement as v,nothing as y,html as w,css as k,unsafeCSS as $}from"lit";import{property as x}from"lit/decorators.js";import{M3eInteractivityChecker as E,isModifierAllowed as S,addAriaReferencedId as H,removeAriaReferencedId as M}from"@m3e/web/core/a11y";function _(t,e,i,o){var s,n=arguments.length,a=n<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,o);else for(var h=t.length-1;h>=0;h--)(s=t[h])&&(a=(n<3?s(a):n>3?s(e,i,a):s(e,i))||a);return n>3&&a&&Object.defineProperty(e,i,a),a}function z(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)}function W(t,e,i,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,i):s?s.value=i:e.set(t,i),i}"function"==typeof SuppressedError&&SuppressedError;let L=class extends e{_onClick(){this.closest("m3e-bottom-sheet")?.hide()}};var B,C,P,T,F,q,R,Y,A,D,j,N,U,I,O,K,V,X,G,J,Q,Z,tt,et,it,ot,st,nt,at,ht,rt,lt,ct,dt,mt,pt,ft,ut,bt,gt;L=_([t("m3e-bottom-sheet-action")],L);let vt=gt=class extends(i(o(v),"opening","opened","cancel","closing","closed")){constructor(){super(...arguments),B.add(this),C.set(this,t=>z(this,B,"m",Q).call(this,t)),P.set(this,t=>z(this,B,"m",Z).call(this,t)),T.set(this,()=>z(this,B,"m",tt).call(this)),F.set(this,new Array),q.set(this,new s),R.set(this,new n(this)),Y.set(this,new a(this,{target:null,skipInitial:!0,callback:t=>z(this,B,"m",dt).call(this,t)})),A.set(this,null),D.set(this,void 0),j.set(this,!1),N.set(this,0),U.set(this,void 0),I.set(this,0),O.set(this,0),K.set(this,void 0),this.modal=!1,this.open=!1,this.handle=!1,this.handleLabel="Drag handle",this.detents=[],this.detent=0,this.hideable=!1,this.hideFriction=.5}show(t=this.detent){this.open?void 0!==t&&z(this,N,"f")!==t&&z(this,B,"m",mt).call(this,t):(W(this,U,t,"f"),this.open=!0)}hide(){this.open=!1}toggle(t){this.open?this.hide():this.show(t)}cycle(){var t;this.open?this.detents.length>0?z(this,N,"f")<this.detents.length-1?(W(this,N,(t=z(this,N,"f"),++t),"f"),z(this,B,"m",mt).call(this,z(this,N,"f"))):this.hideable&&this.hide():this.hide():this.show()}connectedCallback(){super.connectedCallback(),h(this,"-no-animate")}update(t){super.update(t),t.has("modal")&&(this.role=this.modal?"dialog":"region",this.ariaModal=this.modal?"true":null,this.popover=this.modal?"manual":null)}firstUpdated(t){super.firstUpdated(t);const e=this.shadowRoot?.querySelector(".content");e&&(W(this,I,e.clientHeight,"f"),z(this,Y,"f").observe(e));const i=this.shadowRoot?.querySelector(".header");i&&(W(this,O,i.clientHeight,"f"),z(this,Y,"f").observe(i)),r(this,"-no-animate")}updated(t){if(super.updated(t),t.has("open")){if(this.open){if(!this.dispatchEvent(new Event("opening",{cancelable:!0})))return void(this.open=!1);gt.__openSheet!==this&&gt.__openSheet?.hide(),gt.__openSheet=this,this.inert=!1,window.addEventListener("resize",z(this,T,"f")),this.detents.length>0?(W(this,N,Math.min(Math.max(0,z(this,U,"f")??this.detent),this.detents.length-1),"f"),z(this,B,"m",ft).call(this,z(this,B,"m",at).call(this,this.detents[z(this,N,"f")]))):z(this,B,"m",ft).call(this,Math.min(z(this,B,"m",at).call(this,"fit"),z(this,B,"m",at).call(this,"half"))),W(this,U,void 0,"f")}else{if(!this.dispatchEvent(new Event("closing",{cancelable:!0})))return void(this.open=!0);requestAnimationFrame(()=>this.inert=!0),window.removeEventListener("resize",z(this,T,"f")),gt.__openSheet===this&&(gt.__openSheet=void 0)}if(this.modal)if(this.open){W(this,A,document.activeElement,"f"),z(this,B,"m",ut).call(this),z(this,R,"f").lock(),this.showPopover(),requestAnimationFrame(()=>{document.addEventListener("click",z(this,C,"f")),document.addEventListener("keydown",z(this,P,"f"))});let t=this.querySelector("[autofocus]");t&&E.isFocusable(t)||(t=this.shadowRoot?.querySelector(".handle")),t&&l(t)}else z(this,B,"m",pt).call(this,0).then(()=>{z(this,B,"m",bt).call(this),z(this,R,"f").unlock(),document.removeEventListener("click",z(this,C,"f")),document.removeEventListener("keydown",z(this,P,"f")),this.hidePopover(),z(this,A,"f")instanceof HTMLElement&&z(this,A,"f").focus(),W(this,A,null,"f")});this.dispatchEvent(new Event(this.open?"opened":"closed"))}}render(){return w`<m3e-focus-trap ?disabled="${!this.modal}"><div class="base"><m3e-elevation class="elevation"></m3e-elevation><div class="header" @pointerdown="${z(this,B,"m",X)}" @pointermove="${z(this,B,"m",G)}" @pointerup="${z(this,B,"m",J)}">${this.handle?w`<div class="handle-row"><div id="handle" class="handle" role="button" aria-label="${this.handleLabel}" tabindex="0" @click="${z(this,B,"m",et)}" @keydown="${z(this,B,"m",it)}"><m3e-focus-ring class="focus-ring" for="handle"></m3e-focus-ring><div class="handle-touch" aria-hidden="true"></div></div></div>`:y}<slot name="header" @slotchange="${z(this,B,"m",V)}"></slot></div><div class="body"><div class="content"><slot></slot></div></div></div></m3e-focus-trap>`}};C=new WeakMap,P=new WeakMap,T=new WeakMap,F=new WeakMap,q=new WeakMap,R=new WeakMap,Y=new WeakMap,A=new WeakMap,D=new WeakMap,j=new WeakMap,N=new WeakMap,U=new WeakMap,I=new WeakMap,O=new WeakMap,K=new WeakMap,B=new WeakSet,V=function(t){m(this,"has-header",p(t.target))},X=function(t){t.target instanceof HTMLElement&&E.isFocusable(t.target)||(t.target.setPointerCapture(t.pointerId),t.target.style.cursor="grabbing",z(this,q,"f").reset(),z(this,q,"f").add(t.clientY),W(this,D,{startY:t.clientY,startHeight:this.clientHeight,maxHeight:z(this,B,"m",ht).call(this),minHeight:z(this,B,"m",rt).call(this)},"f"),W(this,j,!1,"f"))},G=function(t){if(!z(this,D,"f"))return;if(Math.abs(t.clientY-z(this,D,"f").startY)<=8)return;(t.getCoalescedEvents?.()??[t]).forEach(e=>z(this,q,"f").add(e.clientY,t.timeStamp));let e=z(this,D,"f").startHeight-(t.clientY-z(this,D,"f").startY);if(e<z(this,D,"f").minHeight){const t=(z(this,D,"f").minHeight-e)*this.hideFriction;e=z(this,D,"f").minHeight-t}z(this,B,"m",ft).call(this,Math.min(z(this,D,"f").maxHeight,e)),W(this,j,!0,"f")},J=function(t){if(z(this,D,"f"))try{if(t.target.releasePointerCapture(t.pointerId),t.target.style.cursor="",!z(this,j,"f"))return;const e="touch"===t.pointerType?1200:500,i=z(this,q,"f").getVelocity();if(z(this,q,"f").reset(),this.hideable&&i>=e)this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide();else if(Math.abs(i)>=e)if(this.detents.length>0){const t=z(this,B,"m",ot).call(this);t!==z(this,N,"f")&&z(this,B,"m",mt).call(this,t)}else z(this,B,"m",pt).call(this,z(this,B,"m",at).call(this,"full"));else{const t=20;if(this.hideable){const e=z(this,D,"f").minHeight;if(this.clientHeight<e-t)return void this.hide()}this.detents.length>0?z(this,B,"m",mt).call(this,z(this,B,"m",nt).call(this)):this.clientHeight<z(this,D,"f").minHeight&&z(this,B,"m",pt).call(this,z(this,D,"f").minHeight)}}finally{W(this,D,void 0,"f")}},Q=function(t){this.open&&this.modal&&!t.composedPath().includes(this)&&this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide()},Z=function(t){this.open&&this.modal&&"Escape"===t.key&&!t.shiftKey&&!t.ctrlKey&&(t.preventDefault(),this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide())},tt=function(){if(this.detents.length>0&&"half"===this.detents[z(this,N,"f")])return void z(this,B,"m",ft).call(this,z(this,B,"m",at).call(this,"half"));const t=z(this,B,"m",ht).call(this);(f(this,"-full")||this.clientHeight>t)&&z(this,B,"m",ft).call(this,t)},et=function(){z(this,j,"f")||this.cycle(),W(this,j,!1,"f")},it=function(t){if(!t.defaultPrevented&&S(t))switch(t.key){case"Up":case"ArrowUp":if(t.preventDefault(),this.detents.length>0){const t=z(this,B,"m",ot).call(this);t!==z(this,N,"f")&&z(this,B,"m",mt).call(this,t)}else z(this,B,"m",pt).call(this,z(this,B,"m",at).call(this,"full"));break;case"Down":case"ArrowDown":if(t.preventDefault(),this.detents.length>0){const t=z(this,B,"m",st).call(this);t!==z(this,N,"f")?z(this,B,"m",mt).call(this,t):this.hideable&&this.hide()}else this.hideable&&this.hide()}},ot=function(){const t=this.clientHeight;let e=1/0,i=z(this,N,"f");for(let o=0;o<this.detents.length;o++){if(o===z(this,N,"f"))continue;const s=z(this,B,"m",at).call(this,this.detents[o]);s>t&&s<e&&(e=s,i=o)}return i},st=function(){const t=this.clientHeight;let e=-1/0,i=z(this,N,"f");for(let o=0;o<this.detents.length;o++){if(o===z(this,N,"f"))continue;const s=z(this,B,"m",at).call(this,this.detents[o]);s<t&&s>e&&(e=s,i=o)}return i},nt=function(){const t=this.clientHeight;let e=z(this,N,"f"),i=1/0;for(let o=0;o<this.detents.length;o++){const s=z(this,B,"m",at).call(this,this.detents[o]),n=Math.abs(t-s);n<i&&(i=n,e=o)}return e},at=function(t){switch(t){case"collapsed":return z(this,B,"m",rt).call(this);case"half":return.5*z(this,B,"m",ht).call(this);case"full":return z(this,B,"m",ht).call(this);case"fit":return z(this,B,"m",ct).call(this)}return t.endsWith("%")?z(this,B,"m",ht).call(this)*(parseFloat(t)/100):t.endsWith("px")?parseFloat(t):z(this,B,"m",rt).call(this)},ht=function(){const t=this.shadowRoot?.querySelector(".base");return window.innerHeight-(t?u(t,"var(--_bottom-sheet-top-space)"):0)},rt=function(){return this.detents.includes("fit")&&!this.detents.includes("collapsed")?z(this,B,"m",ct).call(this):z(this,B,"m",lt).call(this)},lt=function(){const t=this.shadowRoot?.querySelector(".base");return z(this,O,"f")+(t?u(t,"var(--_bottom-sheet-peek-height)"):0)},ct=function(){const t=this.shadowRoot?.querySelector(".body");if(!t)return 0;const e=getComputedStyle(t);return z(this,O,"f")+z(this,I,"f")+parseFloat(e.paddingBlockStart)+parseFloat(e.paddingBlockEnd)},dt=function(t){const e=z(this,I,"f"),i=z(this,O,"f");for(const e of t)e.target.classList.contains("content")?W(this,I,(Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize).blockSize,"f"):e.target.classList.contains("header")&&W(this,O,(Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize).blockSize,"f");if(this.open&&this.detents.length>0&&(e!==z(this,I,"f")||i!==z(this,O,"f")))switch(this.detents[z(this,N,"f")]){case"fit":z(this,B,"m",ft).call(this,z(this,B,"m",ct).call(this));break;case"collapsed":z(this,B,"m",ft).call(this,z(this,B,"m",rt).call(this))}},mt=function(t){t>=0&&t<this.detents.length&&(W(this,N,t,"f"),z(this,B,"m",pt).call(this,z(this,B,"m",at).call(this,this.detents[t])))},pt=async function(t){z(this,K,"f")&&(z(this,B,"m",ft).call(this,this.clientHeight),z(this,K,"f")?.cancel(),W(this,K,void 0,"f")),b()?z(this,B,"m",ft).call(this,t):(W(this,K,this.animate([{"--_bottom-sheet-height":`${this.clientHeight}px`},{"--_bottom-sheet-height":`${t}px`}],{duration:250,easing:"cubic-bezier(0.2, 0.0, 0, 1.0)"}),"f"),z(this,K,"f").onfinish=()=>{z(this,B,"m",ft).call(this,t),W(this,K,void 0,"f")},await z(this,K,"f").finished)},ft=function(t){this.style.setProperty("--_bottom-sheet-height",`${t}px`),m(this,"-full",t===z(this,B,"m",ht).call(this));const e=this.shadowRoot?.querySelector(".content");e&&(e.inert=t<=z(this,B,"m",lt).call(this))},ut=function(){z(this,F,"f").length=0;for(let t=this;t.parentNode&&t.parentNode!==document.documentElement;t=t.parentNode)for(const e of t.parentNode.children)e instanceof HTMLElement&&e!==t&&!e.inert&&(e.inert=!0,z(this,F,"f").push(e))},bt=function(){z(this,F,"f").forEach(t=>t.inert=!1),z(this,F,"f").length=0},(()=>{if("undefined"!=typeof window){const t=new CSSStyleSheet;t.replaceSync(k`@property --_bottom-sheet-height { syntax: "<length>"; inherits: false; initial-value: 50vh; } m3e-bottom-sheet > [slot="header"] { margin-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem); margin-inline: var(--m3e-bottom-sheet-padding-inline, 1rem); }</length>`.toString()),document.adoptedStyleSheets.push(t)}})(),vt.styles=k`:host { display: block; position: fixed; left: 50%; top: calc(100vh - var(--_bottom-sheet-height)); margin: 0; padding: 0; outline: none; overflow: hidden; border: none; box-sizing: border-box; width: var(--m3e-bottom-sheet-width, 100%); max-width: var(--m3e-bottom-sheet-max-width, 40rem); height: var(--_bottom-sheet-height); color: var(--m3e-bottom-sheet-color, ${c.color.onSurface}); background-color: var(--m3e-bottom-sheet-container-color, ${c.color.surfaceContainerLow}); } :host(:not(:state(-no-animate))) { transition: ${$(`transform ${c.motion.duration.medium2} ${c.motion.easing.standardDecelerate},\n border-radius ${c.motion.duration.medium2} ${c.motion.easing.standard}`)}; } :host(:not([modal]):not(:state(-full))) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-elevation, ${c.elevation.level1}); } :host([modal]:not(:state(-full))) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-modal-elevation, ${c.elevation.level1}); } :host(:state(-full)) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-full-elevation, ${c.elevation.level1}); } :host(:not([modal])) { z-index: var(--m3e-bottom-sheet-z-index, 10); } :host(:not([modal]):not([open])), :host([modal]:not(:popover-open)) { border-radius: var(--m3e-bottom-sheet-minimized-container-shape, ${c.shape.corner.none}); transform: translateX(-50%) translateY(100%); } :host(:not([modal])[open]:not(:state(-full))), :host([modal]:not(:state(-full)):popover-open) { border-radius: var(--m3e-bottom-sheet-container-shape, ${c.shape.corner.extraLargeTop}); } :host(:not([modal])[open]:state(-full)), :host([modal]:state(-full):popover-open) { border-radius: var(--m3e-bottom-sheet-full-container-shape, ${c.shape.corner.extraLargeTop}); } :host(:not([modal])[open]), :host([modal]:popover-open) { transform: translateX(-50%) translateY(0); } :host([modal]:not(:state(-no-animate)))::backdrop { transition: ${$(`background-color ${c.motion.duration.short3} ${c.motion.easing.standard}, \n overlay ${c.motion.duration.short3} ${c.motion.easing.standard} allow-discrete,\n visibility ${c.motion.duration.short3} ${c.motion.easing.standard} allow-discrete`)}; } :host([modal]:popover-open)::backdrop { background-color: color-mix( in srgb, var(--m3e-bottom-sheet-scrim-color, ${c.color.scrim}) var(--m3e-bottom-sheet-scrim-opacity, 32%), transparent ); } :host([modal]:popover-open:not(:state(-no-animate)))::backdrop { transition: ${$(`background-color ${c.motion.duration.long2} ${c.motion.easing.standard}, \n overlay ${c.motion.duration.long2} ${c.motion.easing.standard} allow-discrete,\n visibility ${c.motion.duration.long2} ${c.motion.easing.standard} allow-discrete`)}; } @starting-style { :host([modal]:popover-open)::backdrop { background-color: color-mix( in srgb, var(--m3e-bottom-sheet-scrim-color, ${c.color.scrim}) 0%, transparent ); } } .base { display: flex; border-radius: inherit; flex-direction: column; height: 100%; --_bottom-sheet-peek-height: var(--m3e-bottom-sheet-peek-height, 0); --_bottom-sheet-top-space: var(--m3e-bottom-sheet-compact-top-space, 4.5rem); } @media (max-height: 640px) { .base { --_bottom-sheet-top-space: var(--m3e-bottom-sheet-top-space, 3.5rem); } } .body { flex: 1 1 auto; overflow-y: auto; scrollbar-width: ${c.scrollbar.thinWidth}; scrollbar-color: ${c.scrollbar.color}; padding-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem); padding-inline: var(--m3e-bottom-sheet-padding-inline, 1rem); font-size: var(--m3e-bottom-sheet-content-font-size, ${c.typescale.standard.body.medium.fontSize}); font-weight: var( --m3e-bottom-sheet-content-font-weight, ${c.typescale.standard.body.medium.fontWeight} ); line-height: var( --m3e-bottom-sheet-content-line-height, ${c.typescale.standard.body.medium.lineHeight} ); letter-spacing: var(--m3e-bottom-sheet-content-tracking, ${c.typescale.standard.body.medium.tracking}); } .content { height: fit-content; } :host(:not([handle])) .header { display: none; } :host(:not([handle])) .body, .header { border-top-left-radius: inherit; border-top-right-radius: inherit; padding-block-start: var(--m3e-bottom-sheet-padding-block, 0.5rem); font-size: var(--m3e-bottom-sheet-header-font-size, ${c.typescale.standard.title.large.fontSize}); font-weight: var(--m3e-bottom-sheet-header-font-weight, ${c.typescale.standard.title.large.fontWeight}); line-height: var(--m3e-bottom-sheet-header-line-height, ${c.typescale.standard.title.large.lineHeight}); letter-spacing: var(--m3e-bottom-sheet-header-tracking, ${c.typescale.standard.title.large.tracking}); } .header { cursor: grab; touch-action: none; outline: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); box-sizing: border-box; flex: none; display: flex; flex-direction: column; min-height: 3rem; --m3e-app-bar-container-color: var(--m3e-bottom-sheet-container-color, ${c.color.surfaceContainerLow}); } .handle-row { position: relative; flex: none; display: flex; align-items: center; justify-content: center; opacity: 1; visibility: visible; height: var(--m3e-bottom-sheet-handle-container-height, 1.5rem); } :host(:not(:state(-no-animate))) .handle-row { transition: ${$(`opacity ${c.motion.duration.short3} ${c.motion.easing.standard},\n padding ${c.motion.duration.short3} ${c.motion.easing.standard},\n height ${c.motion.duration.short3} ${c.motion.easing.standard},\n visibility ${c.motion.duration.short3} ${c.motion.easing.standard} allow-discrete`)}; } .handle { position: relative; width: var(--m3e-bottom-sheet-handle-width, 2rem); height: var(--m3e-bottom-sheet-handle-height, 4px); border-radius: var(--m3e-bottom-sheet-handle-shape, ${c.shape.corner.full}); background-color: var(--m3e-bottom-sheet-handle-color, ${c.color.onSurfaceVariant}); } .handle-touch { position: absolute; aspect-ratio: 1 / 1; height: 3rem; left: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2)); right: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2)); top: calc( 0px - calc( calc(3rem - var(--m3e-bottom-sheet-handle-container-height, 1.5rem)) - calc( var(--m3e-bottom-sheet-handle-height, 4px) / 2 ) ) ); } @media (prefers-reduced-motion) { :host(:not(:state(-no-animate))), :host([modal]:not(:state(-no-animate)))::backdrop, :host([modal]:popover-open:not(:state(-no-animate)))::backdrop, :host(:not(:state(-no-animate))) .handle-row { transition: none; } } @media (forced-colors: active) { :host([modal]:not(:state(-no-animate)))::backdrop, :host([modal]:popover-open:not(:state(-no-animate)))::backdrop { transition: none; } .base { border-style: solid; border-width: 1px; border-color: CanvasText; } .handle { background-color: ButtonText; } }`,_([x({type:Boolean,reflect:!0})],vt.prototype,"modal",void 0),_([x({type:Boolean,reflect:!0})],vt.prototype,"open",void 0),_([x({type:Boolean})],vt.prototype,"handle",void 0),_([x({attribute:"handle-label"})],vt.prototype,"handleLabel",void 0),_([x({attribute:"detents",converter:d})],vt.prototype,"detents",void 0),_([x({type:Number})],vt.prototype,"detent",void 0),_([x({type:Boolean,reflect:!0})],vt.prototype,"hideable",void 0),_([x({attribute:"hide-friction",type:Number})],vt.prototype,"hideFriction",void 0),vt=gt=_([t("m3e-bottom-sheet")],vt);let yt=class extends(g(e)){constructor(){super(...arguments),this.secondary=!1}attach(t){t instanceof vt&&(super.attach(t),this.parentElement&&(t.modal?this.parentElement.ariaHasPopup="dialog":this.secondary||(this.parentElement.ariaExpanded="false",H(this.parentElement,"aria-controls",t.id),this.parentElement.id&&H(t,"aria-labelledby",this.parentElement.id))))}detach(){this.control&&this.parentElement&&!this.secondary&&M(this.parentElement,"aria-controls",this.control.id),super.detach()}_onClick(){this.control instanceof vt&&(this.control.modal?this.control.show(this.detent):(this.control.toggle(this.detent),!this.secondary&&this.parentElement&&(this.parentElement.ariaExpanded=`${this.control.open}`)))}};_([x({type:Number})],yt.prototype,"detent",void 0),_([x({type:Boolean})],yt.prototype,"secondary",void 0),yt=_([t("m3e-bottom-sheet-trigger")],yt);export{L as M3eBottomSheetActionElement,vt as M3eBottomSheetElement,yt as M3eBottomSheetTriggerElement};
6
+ import{__decorate as t,__classPrivateFieldGet as e,__classPrivateFieldSet as i}from"tslib";import{customElement as o,ActionElementBase as s,EventAttribute as n,ReconnectedCallback as a,SuppressInitialAnimation as h,AttachInternals as l,VelocityTracker as r,ScrollLockController as d,ResizeController as c,focusWhenReady as m,setCustomState as p,hasAssignedNodes as f,hasCustomState as u,computeCssSize as b,prefersReducedMotion as g,DesignToken as v,spaceSeparatedStringConverter as y,HtmlFor as w}from"@m3e/web/core";import{LitElement as k,nothing as $,html as x,css as E,unsafeCSS as S}from"lit";import{property as H}from"lit/decorators.js";import{M3eInteractivityChecker as M,isModifierAllowed as _,addAriaReferencedId as z,removeAriaReferencedId as W}from"@m3e/web/core/a11y";let L=class extends s{_onClick(){this.closest("m3e-bottom-sheet")?.hide()}};var B,C,F,q,Y,A,P,T,D,N,R,U,I,j,K,V,X,G,J,O,Q,Z,tt,et,it,ot,st,nt,at,ht,lt,rt,dt,ct,mt,pt,ft,ut,bt,gt,vt;L=t([o("m3e-bottom-sheet-action")],L);let yt=vt=class extends(n(a(h(l(k))),"opening","opened","cancel","closing","closed")){constructor(){super(...arguments),B.add(this),C.set(this,t=>e(this,B,"m",Z).call(this,t)),F.set(this,t=>e(this,B,"m",tt).call(this,t)),q.set(this,()=>e(this,B,"m",et).call(this)),Y.set(this,new Array),A.set(this,new r),P.set(this,new d(this)),T.set(this,new c(this,{target:null,skipInitial:!0,callback:t=>e(this,B,"m",mt).call(this,t)})),D.set(this,null),N.set(this,void 0),R.set(this,!1),U.set(this,0),I.set(this,void 0),j.set(this,0),K.set(this,0),V.set(this,void 0),this.modal=!1,this.open=!1,this.handle=!1,this.handleLabel="Drag handle",this.detents=[],this.detent=0,this.hideable=!1,this.hideFriction=.5}show(t=this.detent){this.open?void 0!==t&&e(this,U,"f")!==t&&e(this,B,"m",pt).call(this,t):(i(this,I,t,"f"),this.open=!0)}hide(){this.open=!1}toggle(t){this.open?this.hide():this.show(t)}cycle(){var t;this.open?this.detents.length>0?e(this,U,"f")<this.detents.length-1?(i(this,U,(t=e(this,U,"f"),++t),"f"),e(this,B,"m",pt).call(this,e(this,U,"f"))):this.hideable&&this.hide():this.hide():this.show()}update(t){super.update(t),t.has("modal")&&(this.role=this.modal?"dialog":"region",this.ariaModal=this.modal?"true":null,this.popover=this.modal?"manual":null)}reconnectedCallback(){super.reconnectedCallback(),e(this,B,"m",X).call(this)}firstUpdated(t){super.firstUpdated(t),e(this,B,"m",X).call(this)}updated(t){if(super.updated(t),t.has("open")){if(this.open){if(!this.dispatchEvent(new Event("opening",{cancelable:!0})))return void(this.open=!1);vt.__openSheet!==this&&vt.__openSheet?.hide(),vt.__openSheet=this,this.inert=!1,window.addEventListener("resize",e(this,q,"f")),this.detents.length>0?(i(this,U,Math.min(Math.max(0,e(this,I,"f")??this.detent),this.detents.length-1),"f"),e(this,B,"m",ut).call(this,e(this,B,"m",ht).call(this,this.detents[e(this,U,"f")]))):e(this,B,"m",ut).call(this,Math.min(e(this,B,"m",ht).call(this,"fit"),e(this,B,"m",ht).call(this,"half"))),i(this,I,void 0,"f")}else{if(!this.dispatchEvent(new Event("closing",{cancelable:!0})))return void(this.open=!0);requestAnimationFrame(()=>this.inert=!0),window.removeEventListener("resize",e(this,q,"f")),vt.__openSheet===this&&(vt.__openSheet=void 0)}if(this.modal)if(this.open){i(this,D,document.activeElement,"f"),e(this,B,"m",bt).call(this),e(this,P,"f").lock(),this.showPopover(),requestAnimationFrame(()=>{document.addEventListener("click",e(this,C,"f")),document.addEventListener("keydown",e(this,F,"f"))});let t=this.querySelector("[autofocus]");t&&M.isFocusable(t)||(t=this.shadowRoot?.querySelector(".handle")),t&&m(t)}else e(this,B,"m",ft).call(this,0).then(()=>{e(this,B,"m",gt).call(this),e(this,P,"f").unlock(),document.removeEventListener("click",e(this,C,"f")),document.removeEventListener("keydown",e(this,F,"f")),this.hidePopover(),e(this,D,"f")instanceof HTMLElement&&e(this,D,"f").focus(),i(this,D,null,"f")});this.dispatchEvent(new Event(this.open?"opened":"closed"))}}render(){return x`<m3e-focus-trap ?disabled="${!this.modal}"><div class="base"><m3e-elevation class="elevation"></m3e-elevation><div class="header" @pointerdown="${e(this,B,"m",J)}" @pointermove="${e(this,B,"m",O)}" @pointerup="${e(this,B,"m",Q)}">${this.handle?x`<div class="handle-row"><div id="handle" class="handle" role="button" aria-label="${this.handleLabel}" tabindex="0" @click="${e(this,B,"m",it)}" @keydown="${e(this,B,"m",ot)}"><m3e-focus-ring class="focus-ring" for="handle"></m3e-focus-ring><div class="handle-touch" aria-hidden="true"></div></div></div>`:$}<slot name="header" @slotchange="${e(this,B,"m",G)}"></slot></div><div class="body"><div class="content"><slot></slot></div></div></div></m3e-focus-trap>`}};C=new WeakMap,F=new WeakMap,q=new WeakMap,Y=new WeakMap,A=new WeakMap,P=new WeakMap,T=new WeakMap,D=new WeakMap,N=new WeakMap,R=new WeakMap,U=new WeakMap,I=new WeakMap,j=new WeakMap,K=new WeakMap,V=new WeakMap,B=new WeakSet,X=function(){const t=this.shadowRoot?.querySelector(".content");t&&(i(this,j,t.clientHeight,"f"),e(this,T,"f").observe(t));const o=this.shadowRoot?.querySelector(".header");o&&(i(this,K,o.clientHeight,"f"),e(this,T,"f").observe(o))},G=function(t){p(this,"has-header",f(t.target))},J=function(t){t.target instanceof HTMLElement&&M.isFocusable(t.target)||(t.target.setPointerCapture(t.pointerId),t.target.style.cursor="grabbing",e(this,A,"f").reset(),e(this,A,"f").add(t.clientY),i(this,N,{startY:t.clientY,startHeight:this.clientHeight,maxHeight:e(this,B,"m",lt).call(this),minHeight:e(this,B,"m",rt).call(this)},"f"),i(this,R,!1,"f"))},O=function(t){if(!e(this,N,"f"))return;if(Math.abs(t.clientY-e(this,N,"f").startY)<=8)return;(t.getCoalescedEvents?.()??[t]).forEach(i=>e(this,A,"f").add(i.clientY,t.timeStamp));let o=e(this,N,"f").startHeight-(t.clientY-e(this,N,"f").startY);if(o<e(this,N,"f").minHeight){const t=(e(this,N,"f").minHeight-o)*this.hideFriction;o=e(this,N,"f").minHeight-t}e(this,B,"m",ut).call(this,Math.min(e(this,N,"f").maxHeight,o)),i(this,R,!0,"f")},Q=function(t){if(e(this,N,"f"))try{if(t.target.releasePointerCapture(t.pointerId),t.target.style.cursor="",!e(this,R,"f"))return;const i="touch"===t.pointerType?1200:500,o=e(this,A,"f").getVelocity();if(e(this,A,"f").reset(),this.hideable&&o>=i)this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide();else if(Math.abs(o)>=i)if(this.detents.length>0){const t=e(this,B,"m",st).call(this);t!==e(this,U,"f")&&e(this,B,"m",pt).call(this,t)}else e(this,B,"m",ft).call(this,e(this,B,"m",ht).call(this,"full"));else{const t=20;if(this.hideable){const i=e(this,N,"f").minHeight;if(this.clientHeight<i-t)return void this.hide()}this.detents.length>0?e(this,B,"m",pt).call(this,e(this,B,"m",at).call(this)):this.clientHeight<e(this,N,"f").minHeight&&e(this,B,"m",ft).call(this,e(this,N,"f").minHeight)}}finally{i(this,N,void 0,"f")}},Z=function(t){this.open&&this.modal&&!t.composedPath().includes(this)&&this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide()},tt=function(t){this.open&&this.modal&&"Escape"===t.key&&!t.shiftKey&&!t.ctrlKey&&(t.preventDefault(),this.dispatchEvent(new Event("cancel",{cancelable:!0}))&&this.hide())},et=function(){if(this.detents.length>0&&"half"===this.detents[e(this,U,"f")])return void e(this,B,"m",ut).call(this,e(this,B,"m",ht).call(this,"half"));const t=e(this,B,"m",lt).call(this);(u(this,"-full")||this.clientHeight>t)&&e(this,B,"m",ut).call(this,t)},it=function(){e(this,R,"f")||this.cycle(),i(this,R,!1,"f")},ot=function(t){if(!t.defaultPrevented&&_(t))switch(t.key){case"Up":case"ArrowUp":if(t.preventDefault(),this.detents.length>0){const t=e(this,B,"m",st).call(this);t!==e(this,U,"f")&&e(this,B,"m",pt).call(this,t)}else e(this,B,"m",ft).call(this,e(this,B,"m",ht).call(this,"full"));break;case"Down":case"ArrowDown":if(t.preventDefault(),this.detents.length>0){const t=e(this,B,"m",nt).call(this);t!==e(this,U,"f")?e(this,B,"m",pt).call(this,t):this.hideable&&this.hide()}else this.hideable&&this.hide()}},st=function(){const t=this.clientHeight;let i=1/0,o=e(this,U,"f");for(let s=0;s<this.detents.length;s++){if(s===e(this,U,"f"))continue;const n=e(this,B,"m",ht).call(this,this.detents[s]);n>t&&n<i&&(i=n,o=s)}return o},nt=function(){const t=this.clientHeight;let i=-1/0,o=e(this,U,"f");for(let s=0;s<this.detents.length;s++){if(s===e(this,U,"f"))continue;const n=e(this,B,"m",ht).call(this,this.detents[s]);n<t&&n>i&&(i=n,o=s)}return o},at=function(){const t=this.clientHeight;let i=e(this,U,"f"),o=1/0;for(let s=0;s<this.detents.length;s++){const n=e(this,B,"m",ht).call(this,this.detents[s]),a=Math.abs(t-n);a<o&&(o=a,i=s)}return i},ht=function(t){switch(t){case"collapsed":return e(this,B,"m",rt).call(this);case"half":return.5*e(this,B,"m",lt).call(this);case"full":return e(this,B,"m",lt).call(this);case"fit":return e(this,B,"m",ct).call(this)}return t.endsWith("%")?e(this,B,"m",lt).call(this)*(parseFloat(t)/100):t.endsWith("px")?parseFloat(t):e(this,B,"m",rt).call(this)},lt=function(){const t=this.shadowRoot?.querySelector(".base");return window.innerHeight-(t?b(t,"var(--_bottom-sheet-top-space)"):0)},rt=function(){return this.detents.includes("fit")&&!this.detents.includes("collapsed")?e(this,B,"m",ct).call(this):e(this,B,"m",dt).call(this)},dt=function(){const t=this.shadowRoot?.querySelector(".base");return e(this,K,"f")+(t?b(t,"var(--_bottom-sheet-peek-height)"):0)},ct=function(){const t=this.shadowRoot?.querySelector(".body");if(!t)return 0;const i=getComputedStyle(t);return e(this,K,"f")+e(this,j,"f")+parseFloat(i.paddingBlockStart)+parseFloat(i.paddingBlockEnd)},mt=function(t){const o=e(this,j,"f"),s=e(this,K,"f");for(const e of t)e.target.classList.contains("content")?i(this,j,(Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize).blockSize,"f"):e.target.classList.contains("header")&&i(this,K,(Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize).blockSize,"f");if(this.open&&this.detents.length>0&&(o!==e(this,j,"f")||s!==e(this,K,"f")))switch(this.detents[e(this,U,"f")]){case"fit":e(this,B,"m",ut).call(this,e(this,B,"m",ct).call(this));break;case"collapsed":e(this,B,"m",ut).call(this,e(this,B,"m",rt).call(this))}},pt=function(t){t>=0&&t<this.detents.length&&(i(this,U,t,"f"),e(this,B,"m",ft).call(this,e(this,B,"m",ht).call(this,this.detents[t])))},ft=async function(t){e(this,V,"f")&&(e(this,B,"m",ut).call(this,this.clientHeight),e(this,V,"f")?.cancel(),i(this,V,void 0,"f")),g()?e(this,B,"m",ut).call(this,t):(i(this,V,this.animate([{"--_bottom-sheet-height":`${this.clientHeight}px`},{"--_bottom-sheet-height":`${t}px`}],{duration:250,easing:"cubic-bezier(0.2, 0.0, 0, 1.0)"}),"f"),e(this,V,"f").onfinish=()=>{e(this,B,"m",ut).call(this,t),i(this,V,void 0,"f")},await e(this,V,"f").finished)},ut=function(t){this.style.setProperty("--_bottom-sheet-height",`${t}px`),p(this,"-full",t===e(this,B,"m",lt).call(this));const i=this.shadowRoot?.querySelector(".content");i&&(i.inert=t<=e(this,B,"m",dt).call(this))},bt=function(){e(this,Y,"f").length=0;for(let t=this;t.parentNode&&t.parentNode!==document.documentElement;t=t.parentNode)for(const i of t.parentNode.children)i instanceof HTMLElement&&i!==t&&!i.inert&&(i.inert=!0,e(this,Y,"f").push(i))},gt=function(){e(this,Y,"f").forEach(t=>t.inert=!1),e(this,Y,"f").length=0},(()=>{if("undefined"!=typeof window){const t=new CSSStyleSheet;t.replaceSync(E`@property --_bottom-sheet-height { syntax: "<length>"; inherits: false; initial-value: 50vh; } m3e-bottom-sheet > [slot="header"] { margin-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem); margin-inline: var(--m3e-bottom-sheet-padding-inline, 1rem); }</length>`.toString()),document.adoptedStyleSheets.push(t)}})(),yt.styles=E`:host { display: block; position: fixed; left: 50%; top: calc(100vh - var(--_bottom-sheet-height)); margin: 0; padding: 0; outline: none; overflow: hidden; border: none; box-sizing: border-box; width: var(--m3e-bottom-sheet-width, 100%); max-width: var(--m3e-bottom-sheet-max-width, 40rem); height: var(--_bottom-sheet-height); color: var(--m3e-bottom-sheet-color, ${v.color.onSurface}); background-color: var(--m3e-bottom-sheet-container-color, ${v.color.surfaceContainerLow}); } :host(:not(:state(-no-animate))) { transition: ${S(`transform ${v.motion.duration.medium2} ${v.motion.easing.standardDecelerate},\n border-radius ${v.motion.duration.medium2} ${v.motion.easing.standard}`)}; } :host(:not([modal]):not(:state(-full))) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-elevation, ${v.elevation.level1}); } :host([modal]:not(:state(-full))) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-modal-elevation, ${v.elevation.level1}); } :host(:state(-full)) .elevation { --m3e-elevation-level: var(--m3e-bottom-sheet-full-elevation, ${v.elevation.level1}); } :host(:not([modal])) { z-index: var(--m3e-bottom-sheet-z-index, 10); } :host(:not([modal]):not([open])), :host([modal]:not(:popover-open)) { border-radius: var(--m3e-bottom-sheet-minimized-container-shape, ${v.shape.corner.none}); transform: translateX(-50%) translateY(100%); } :host(:not([modal])[open]:not(:state(-full))), :host([modal]:not(:state(-full)):popover-open) { border-radius: var(--m3e-bottom-sheet-container-shape, ${v.shape.corner.extraLargeTop}); } :host(:not([modal])[open]:state(-full)), :host([modal]:state(-full):popover-open) { border-radius: var(--m3e-bottom-sheet-full-container-shape, ${v.shape.corner.extraLargeTop}); } :host(:not([modal])[open]), :host([modal]:popover-open) { transform: translateX(-50%) translateY(0); } :host([modal]:not(:state(-no-animate)))::backdrop { transition: ${S(`background-color ${v.motion.duration.short3} ${v.motion.easing.standard}, \n overlay ${v.motion.duration.short3} ${v.motion.easing.standard} allow-discrete,\n visibility ${v.motion.duration.short3} ${v.motion.easing.standard} allow-discrete`)}; } :host([modal]:popover-open)::backdrop { background-color: color-mix( in srgb, var(--m3e-bottom-sheet-scrim-color, ${v.color.scrim}) var(--m3e-bottom-sheet-scrim-opacity, 32%), transparent ); } :host([modal]:popover-open:not(:state(-no-animate)))::backdrop { transition: ${S(`background-color ${v.motion.duration.long2} ${v.motion.easing.standard}, \n overlay ${v.motion.duration.long2} ${v.motion.easing.standard} allow-discrete,\n visibility ${v.motion.duration.long2} ${v.motion.easing.standard} allow-discrete`)}; } @starting-style { :host([modal]:popover-open)::backdrop { background-color: color-mix( in srgb, var(--m3e-bottom-sheet-scrim-color, ${v.color.scrim}) 0%, transparent ); } } .base { display: flex; border-radius: inherit; flex-direction: column; height: 100%; --_bottom-sheet-peek-height: var(--m3e-bottom-sheet-peek-height, 0); --_bottom-sheet-top-space: var(--m3e-bottom-sheet-compact-top-space, 4.5rem); } @media (max-height: 640px) { .base { --_bottom-sheet-top-space: var(--m3e-bottom-sheet-top-space, 3.5rem); } } .body { flex: 1 1 auto; overflow-y: auto; scrollbar-width: ${v.scrollbar.thinWidth}; scrollbar-color: ${v.scrollbar.color}; padding-block-end: var(--m3e-bottom-sheet-padding-block, 0.5rem); padding-inline: var(--m3e-bottom-sheet-padding-inline, 1rem); font-size: var(--m3e-bottom-sheet-content-font-size, ${v.typescale.standard.body.medium.fontSize}); font-weight: var( --m3e-bottom-sheet-content-font-weight, ${v.typescale.standard.body.medium.fontWeight} ); line-height: var( --m3e-bottom-sheet-content-line-height, ${v.typescale.standard.body.medium.lineHeight} ); letter-spacing: var(--m3e-bottom-sheet-content-tracking, ${v.typescale.standard.body.medium.tracking}); } .content { height: fit-content; } :host(:not([handle])) .header { display: none; } :host(:not([handle])) .body, .header { border-top-left-radius: inherit; border-top-right-radius: inherit; padding-block-start: var(--m3e-bottom-sheet-padding-block, 0.5rem); font-size: var(--m3e-bottom-sheet-header-font-size, ${v.typescale.standard.title.large.fontSize}); font-weight: var(--m3e-bottom-sheet-header-font-weight, ${v.typescale.standard.title.large.fontWeight}); line-height: var(--m3e-bottom-sheet-header-line-height, ${v.typescale.standard.title.large.lineHeight}); letter-spacing: var(--m3e-bottom-sheet-header-tracking, ${v.typescale.standard.title.large.tracking}); } .header { cursor: grab; touch-action: none; outline: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); box-sizing: border-box; flex: none; display: flex; flex-direction: column; min-height: 3rem; --m3e-app-bar-container-color: var(--m3e-bottom-sheet-container-color, ${v.color.surfaceContainerLow}); } .handle-row { position: relative; flex: none; display: flex; align-items: center; justify-content: center; opacity: 1; visibility: visible; height: var(--m3e-bottom-sheet-handle-container-height, 1.5rem); } :host(:not(:state(-no-animate))) .handle-row { transition: ${S(`opacity ${v.motion.duration.short3} ${v.motion.easing.standard},\n padding ${v.motion.duration.short3} ${v.motion.easing.standard},\n height ${v.motion.duration.short3} ${v.motion.easing.standard},\n visibility ${v.motion.duration.short3} ${v.motion.easing.standard} allow-discrete`)}; } .handle { position: relative; width: var(--m3e-bottom-sheet-handle-width, 2rem); height: var(--m3e-bottom-sheet-handle-height, 4px); border-radius: var(--m3e-bottom-sheet-handle-shape, ${v.shape.corner.full}); background-color: var(--m3e-bottom-sheet-handle-color, ${v.color.onSurfaceVariant}); } .handle-touch { position: absolute; aspect-ratio: 1 / 1; height: 3rem; left: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2)); right: calc(0px - calc(calc(3rem - var(--m3e-bottom-sheet-handle-width, 2rem)) / 2)); top: calc( 0px - calc( calc(3rem - var(--m3e-bottom-sheet-handle-container-height, 1.5rem)) - calc( var(--m3e-bottom-sheet-handle-height, 4px) / 2 ) ) ); } @media (prefers-reduced-motion) { :host(:not(:state(-no-animate))), :host([modal]:not(:state(-no-animate)))::backdrop, :host([modal]:popover-open:not(:state(-no-animate)))::backdrop, :host(:not(:state(-no-animate))) .handle-row { transition: none; } } @media (forced-colors: active) { :host([modal]:not(:state(-no-animate)))::backdrop, :host([modal]:popover-open:not(:state(-no-animate)))::backdrop { transition: none; } .base { border-style: solid; border-width: 1px; border-color: CanvasText; } .handle { background-color: ButtonText; } }`,t([H({type:Boolean,reflect:!0})],yt.prototype,"modal",void 0),t([H({type:Boolean,reflect:!0})],yt.prototype,"open",void 0),t([H({type:Boolean})],yt.prototype,"handle",void 0),t([H({attribute:"handle-label"})],yt.prototype,"handleLabel",void 0),t([H({attribute:"detents",converter:y})],yt.prototype,"detents",void 0),t([H({type:Number})],yt.prototype,"detent",void 0),t([H({type:Boolean,reflect:!0})],yt.prototype,"hideable",void 0),t([H({attribute:"hide-friction",type:Number})],yt.prototype,"hideFriction",void 0),yt=vt=t([o("m3e-bottom-sheet")],yt);let wt=class extends(w(s)){constructor(){super(...arguments),this.secondary=!1}attach(t){t instanceof yt&&(super.attach(t),this.parentElement&&(t.modal?this.parentElement.ariaHasPopup="dialog":this.secondary||(this.parentElement.ariaExpanded="false",z(this.parentElement,"aria-controls",t.id),this.parentElement.id&&z(t,"aria-labelledby",this.parentElement.id))))}detach(){this.control&&this.parentElement&&!this.secondary&&W(this.parentElement,"aria-controls",this.control.id),super.detach()}_onClick(){this.control instanceof yt&&(this.control.modal?this.control.show(this.detent):(this.control.toggle(this.detent),!this.secondary&&this.parentElement&&(this.parentElement.ariaExpanded=`${this.control.open}`)))}};t([H({type:Number})],wt.prototype,"detent",void 0),t([H({type:Boolean})],wt.prototype,"secondary",void 0),wt=t([o("m3e-bottom-sheet-trigger")],wt);export{L as M3eBottomSheetActionElement,yt as M3eBottomSheetElement,wt as M3eBottomSheetTriggerElement};
7
7
  //# sourceMappingURL=bottom-sheet.min.js.map