@awc-ui/core 1.0.0-beta.5 → 1.0.0-beta.6

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 (36) hide show
  1. package/dist/cjs/md-button_6.cjs.entry.js +17 -2
  2. package/dist/cjs/md-button_6.cjs.entry.js.map +1 -1
  3. package/dist/collection/components/md-button/md-button.js +17 -2
  4. package/dist/collection/components/md-button/md-button.js.map +1 -1
  5. package/dist/components/md-button.js +1 -1
  6. package/dist/components/md-date-picker.js +1 -1
  7. package/dist/components/md-dialog.js +1 -1
  8. package/dist/components/md-multi-select.js +1 -1
  9. package/dist/components/md-snackbar.js +1 -1
  10. package/dist/components/md-step.js +1 -1
  11. package/dist/components/md-stepper.js +1 -1
  12. package/dist/components/md-time-picker.js +1 -1
  13. package/dist/components/{p-C1RN8YA1.js → p-BTgac9TA.js} +2 -2
  14. package/dist/components/p-BTgac9TA.js.map +1 -0
  15. package/dist/components-csr/md-button.js +1 -1
  16. package/dist/components-csr/md-date-picker.js +1 -1
  17. package/dist/components-csr/md-dialog.js +1 -1
  18. package/dist/components-csr/md-multi-select.js +1 -1
  19. package/dist/components-csr/md-snackbar.js +1 -1
  20. package/dist/components-csr/md-step.js +1 -1
  21. package/dist/components-csr/md-stepper.js +1 -1
  22. package/dist/components-csr/md-time-picker.js +1 -1
  23. package/dist/components-csr/{p-GG1ZMEng.js → p-QF3B4ODr.js} +2 -2
  24. package/dist/components-csr/p-QF3B4ODr.js.map +1 -0
  25. package/dist/esm/md-button_6.entry.js +17 -2
  26. package/dist/esm/md-button_6.entry.js.map +1 -1
  27. package/dist/md3/md3.esm.js +1 -1
  28. package/dist/md3/p-e661754b.entry.js +2 -0
  29. package/dist/md3/p-e661754b.entry.js.map +1 -0
  30. package/hydrate/index.js +17 -2
  31. package/hydrate/index.mjs +17 -2
  32. package/package.json +2 -2
  33. package/dist/components/p-C1RN8YA1.js.map +0 -1
  34. package/dist/components-csr/p-GG1ZMEng.js.map +0 -1
  35. package/dist/md3/p-6b841f69.entry.js +0 -2
  36. package/dist/md3/p-6b841f69.entry.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{p as i,H as t,c as e,h as r,d as a,t as s}from"./p-B7GMP_JD.js";import{g as n}from"./p-DWxN44zD.js";import{d as o}from"./p-GG1ZMEng.js";import{d}from"./p-BkJQKHGR.js";import{d as l}from"./p-DoHRoVfM.js";import{d as c}from"./p-Dqk-0zEP.js";const h=()=>`:host{--_trigger-color:var(--md-time-picker-trigger-color, var(--md-sys-color-on-surface, #1c1b1f));--_trigger-outline-color:var(--md-time-picker-trigger-outline-color, var(--md-sys-color-outline, #79747e));--_trigger-hover-color:var(--md-time-picker-trigger-hover-color, var(--md-sys-color-on-surface, #1c1b1f));--_trigger-focus-color:var(--md-time-picker-trigger-focus-color, var(--md-sys-color-primary, #6750a4));--_trigger-icon-color:var(--md-time-picker-trigger-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_dialog-color:var(--md-time-picker-dialog-color, var(--md-sys-color-surface-container-high, #ece6f0));--_dialog-on-color:var(--md-time-picker-dialog-on-color, var(--md-sys-color-on-surface, #1c1b1f));--_dialog-shape:var(--md-time-picker-dialog-shape, var(--md-sys-shape-corner-extra-large, 28px));--_dialog-elevation:var(--md-time-picker-dialog-elevation, var(--md-sys-elevation-3, 0 4px 8px 3px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.3)));--_scrim-color:var(--md-time-picker-scrim-color, rgba(0, 0, 0, 0.32));--_headline-color:var(--md-time-picker-headline-color, var(--md-sys-color-on-surface-variant, #49454f));--_time-display-shape:var( --md-time-picker-input-shape, var(--md-time-picker-time-display-shape, var(--md-sys-shape-corner-small, 8px)) );--_period-bg:var(--md-time-picker-period-bg, transparent);--_period-color:var(--md-time-picker-period-color, var(--md-sys-color-on-surface, #1c1b1f));--_period-active-bg:var(--md-time-picker-period-active-bg, var(--md-sys-color-tertiary-container, #ffd8e4));--_period-active-color:var(--md-time-picker-period-active-color, var(--md-sys-color-on-tertiary-container, #370b1e));--_period-outline-color:var(--md-time-picker-period-outline-color, var(--md-sys-color-outline, #79747e));--_dial-bg:var(--md-time-picker-dial-bg, var(--md-sys-color-surface-container-highest, #e6e0e9));--_dial-number-color:var(--md-time-picker-dial-number-color, var(--md-sys-color-on-surface, #1c1b1f));--_dial-number-active-color:var(--md-time-picker-dial-number-active-color, var(--md-sys-color-on-primary, #ffffff));--_dial-hand-color:var(--md-time-picker-dial-hand-color, var(--md-sys-color-primary, #6750a4));--_dial-target-size:var(--md-time-picker-dial-target-size, 48px);--_input-bg:var(--md-time-picker-input-bg, var(--md-sys-color-surface-container-highest, #e6e0e9));--_input-color:var(--md-time-picker-input-color, var(--md-sys-color-on-surface, #1c1b1f));--_input-outline-color:var(--md-time-picker-input-outline-color, transparent);--_input-active-outline-color:var(--md-time-picker-input-active-outline-color, var(--md-sys-color-primary, #6750a4));--_input-error-color:var(--md-time-picker-input-error-color, var(--md-sys-color-error, #b3261e));--_input-hint-color:var(--md-time-picker-input-hint-color, var(--md-sys-color-on-surface-variant, #49454f));--_action-color:var(--md-time-picker-action-color, var(--md-sys-color-primary, #6750a4));--_action-primary-color:var(--md-time-picker-action-primary-color, var(--md-sys-color-primary, #6750a4));--_toggle-icon-color:var(--md-time-picker-toggle-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_dialog-padding:var(--md-time-picker-dialog-padding, var(--md-sys-spacing-inset-xl, 24px));--_dialog-min-width:var(--md-time-picker-dialog-min-width, 328px);--_dialog-horizontal-width-12h:var(--md-time-picker-dialog-horizontal-width-12h, 572px);--_dialog-horizontal-width-24h:var(--md-time-picker-dialog-horizontal-width-24h, 608px);--_dialog-enter-duration:var(--md-time-picker-dialog-enter-duration, var(--md-sys-motion-duration-long2, 500ms));--_mode-swap-duration:var(--md-time-picker-mode-swap-duration, var(--md-sys-motion-duration-long1, 450ms));--_motion-easing:var(--md-time-picker-motion-easing, var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)));--_trigger-min-width:var(--md-time-picker-trigger-min-width, 240px);--_trigger-icon-size:var(--md-time-picker-trigger-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_trigger-shape:var(--md-time-picker-trigger-shape, var(--md-sys-shape-corner-extra-small, 4px));--_headline-font-size:var(--md-time-picker-headline-font-size, max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px)));--_headline-font-weight:var(--md-time-picker-headline-font-weight, var(--md-sys-typescale-label-medium-font-weight, 500));--_headline-spacing:var(--md-time-picker-headline-spacing, max(4px, calc(20px + var(--md-sys-density-scale, 0) * 2px)));--_input-height:var(--md-time-picker-input-height, calc(var(--_input-font-size) * 1.6));--_input-width:var(--md-time-picker-input-width, calc(var(--_input-height) * 4 / 3));--_input-border-width:var(--md-time-picker-input-border-width, 2px);--_input-font-size:var(--md-time-picker-input-font-size, max(32px, calc(45px + var(--md-sys-density-scale, 0) * 2px)));--_input-font-weight:var(--md-time-picker-input-font-weight, var(--md-sys-typescale-display-medium-font-weight, 400));--_input-active-bg:var(--md-time-picker-input-active-bg, var(--md-sys-color-primary-container, #eaddff));--_input-active-color:var(--md-time-picker-input-active-color, var(--md-sys-color-on-primary-container, #21005d));--_input-separator-color:var(--md-time-picker-input-separator-color, var(--_dialog-on-color));--_input-separator-width:var(--md-time-picker-input-separator-width, 24px);--_input-hint-gap:var(--md-time-picker-input-hint-gap, var(--md-sys-spacing-gap-xs, 4px));--_input-hover-opacity:var(--md-time-picker-input-hover-opacity, 8%);--_period-shape:var(--md-time-picker-period-shape, var(--md-sys-shape-corner-small, 8px));--_period-outline-width:var(--md-time-picker-period-outline-width, 1px);--_period-vertical-width:var(--md-time-picker-period-vertical-width, 52px);--_period-vertical-height:var(--md-time-picker-period-vertical-height, 80px);--_period-vertical-height-input:var(--md-time-picker-period-vertical-height-input, 72px);--_period-horizontal-width:var(--md-time-picker-period-horizontal-width, 216px);--_period-horizontal-height:var(--md-time-picker-period-horizontal-height, 38px);--_period-font-size:var(--md-time-picker-period-font-size, max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px)));--_period-font-weight:var(--md-time-picker-period-font-weight, 500);--_period-hover-opacity:var(--md-time-picker-period-hover-opacity, 8%);--_dial-size:var(--md-time-picker-dial-size, 256px);--_dial-center-size:var(--md-time-picker-dial-center-size, 8px);--_dial-hand-width:var(--md-time-picker-dial-hand-width, 2px);--_dial-number-font-size:var(--md-time-picker-dial-number-font-size, max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px)));--_dial-number-font-weight:var(--md-time-picker-dial-number-font-weight, var(--md-sys-typescale-body-large-font-weight, 400));--_dial-number-active-font-weight:var(--md-time-picker-dial-number-active-font-weight, 500);--_footer-gap:var(--md-time-picker-footer-gap, var(--md-sys-spacing-gap-sm, 8px));--_actions-gap:var(--md-time-picker-actions-gap, var(--md-sys-spacing-gap-sm, 8px));--_action-shape:var(--md-time-picker-action-shape, var(--md-sys-shape-corner-full, 9999px));--_action-confirm-bg:var(--md-time-picker-action-confirm-bg, transparent);--_action-cancel-bg:var(--md-time-picker-action-cancel-bg, transparent);--_toggle-bg:var(--md-time-picker-toggle-bg, transparent);--_toggle-icon-size:var(--md-time-picker-toggle-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_toggle-shape:var(--md-time-picker-toggle-shape, var(--md-sys-shape-corner-full, 9999px));display:inline-block;position:relative;font-family:var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif);color:var(--_dialog-on-color)}:host([hide-trigger]){display:contents}:host([disabled]){cursor:not-allowed}.md-time-picker__field{min-inline-size:var(--_trigger-min-width);display:inline-flex;inline-size:auto;cursor:pointer;--md-text-field-label-color:var(--_trigger-icon-color);--md-text-field-input-color:var(--_trigger-color);--md-text-field-outline-color:var(--_trigger-outline-color);--md-text-field-active-indicator-color:var(--_trigger-focus-color);--md-text-field-icon-color:var(--_trigger-icon-color);--md-text-field-container-shape:var(--_trigger-shape)}.md-time-picker__field--disabled{cursor:not-allowed}.md-time-picker__field-icon{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;font-size:var(--_trigger-icon-size);line-height:1;color:var(--_trigger-icon-color);flex-shrink:0}.md-time-picker__field:hover:not(.md-time-picker__field--disabled) .md-time-picker__field-icon{color:var(--_trigger-hover-color)}:host(.md-time-picker--open) .md-time-picker__field{--md-text-field-active-indicator-color:var(--_trigger-focus-color);--md-text-field-icon-color:var(--_trigger-focus-color)}.md-time-picker__scrim{position:fixed;inset:0;z-index:var(--md-sys-z-index-popup, 1000);display:flex;align-items:center;justify-content:center;background:var(--_scrim-color);padding:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-scrim-in var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) forwards;box-sizing:border-box}@keyframes md-time-picker-scrim-in{from{opacity:0}to{opacity:1}}.md-time-picker__dialog{background:var(--_dialog-color);color:var(--_dialog-on-color);border-radius:var(--_dialog-shape);box-shadow:var(--_dialog-elevation);padding:var(--_dialog-padding);width:min(var(--_dialog-min-width), calc(100vw - 48px));max-block-size:calc(100vh - 48px);max-block-size:calc(100dvh - 48px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;animation:md-time-picker-dialog-in var(--_dialog-enter-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__dialog--input{width:min(var(--_dialog-min-width), calc(100vw - 48px))}.md-time-picker__dialog--horizontal{width:min(var(--_dialog-horizontal-width-12h), calc(100vw - 48px))}:host(.md-time-picker--format-24h) .md-time-picker__dialog--horizontal{width:min(var(--_dialog-horizontal-width-24h), calc(100vw - 48px))}@keyframes md-time-picker-dialog-in{from{opacity:0;transform:translateY(12px) scale(0.88)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes md-time-picker-mode-in{from{opacity:0;transform:translateY(8px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}.md-time-picker__headline{font-size:var(--_headline-font-size);font-weight:var(--_headline-font-weight);letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);line-height:var(--md-sys-typescale-label-medium-line-height, 16px);color:var(--_headline-color);text-transform:none;margin-block-end:var(--_headline-spacing);text-align:start}.md-time-picker__body{display:flex;flex-direction:column}.md-time-picker__body--horizontal{flex-direction:row;align-items:flex-start;column-gap:52px}.md-time-picker__time-area{display:flex;flex-direction:column;flex:0 0 auto}.md-time-picker__body--horizontal .md-time-picker__dial-wrap{flex:0 0 auto}.md-time-picker__body--horizontal .md-time-picker__input-area{margin-block-end:0}.md-time-picker__body--horizontal .md-time-picker__period--horizontal{margin-block-start:var(--md-sys-spacing-inset-lg, 16px);margin-block-end:0;margin-inline:0}.md-time-picker__period{display:inline-flex;border:var(--_period-outline-width) solid var(--_period-outline-color);box-sizing:border-box}.md-time-picker__period--vertical{flex-direction:column;border-radius:var(--_period-shape);margin-inline-start:var(--md-sys-spacing-inset-md, 12px);inline-size:var(--_period-vertical-width);block-size:var(--_period-vertical-height)}.md-time-picker__input-area .md-time-picker__period--vertical{block-size:var(--_period-vertical-height-input)}.md-time-picker__period--horizontal{flex-direction:row;border-radius:var(--_period-shape);margin-block-start:var(--md-sys-spacing-inset-md, 12px);margin-block-end:var(--md-sys-spacing-inset-xl, 24px);margin-inline:auto;inline-size:var(--_period-horizontal-width);block-size:var(--_period-horizontal-height);align-self:center}.md-time-picker__period-btn{flex:1 1 0;background:var(--_period-bg);color:var(--_period-color);border:none;font:inherit;font-size:var(--_period-font-size);font-weight:var(--_period-font-weight);letter-spacing:0.1px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;position:relative;overflow:hidden;transition:background-color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-time-picker__period-btn-label{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center}.md-time-picker__period--vertical .md-time-picker__period-btn{block-size:50%}.md-time-picker__period--horizontal .md-time-picker__period-btn{inline-size:50%;block-size:100%}.md-time-picker__period-btn:hover{background:color-mix(in srgb, var(--_period-color) var(--_period-hover-opacity), transparent)}.md-time-picker__period-btn--active{background:var(--_period-active-bg);color:var(--_period-active-color)}.md-time-picker__period-btn--active:hover{background:color-mix(in srgb, var(--_period-active-color) var(--_period-hover-opacity), var(--_period-active-bg))}.md-time-picker__period-btn:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625b71);outline-offset:2px;z-index:1}.md-time-picker__period--vertical .md-time-picker__period-btn--am{border-block-end:var(--_period-outline-width) solid var(--_period-outline-color);border-start-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-start-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--vertical .md-time-picker__period-btn--pm{border-end-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--horizontal .md-time-picker__period-btn--am{border-inline-end:var(--_period-outline-width) solid var(--_period-outline-color);border-start-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-start-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--horizontal .md-time-picker__period-btn--pm{border-start-end-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__dial-wrap{display:flex;justify-content:center;align-items:center;margin-block-end:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-mode-in var(--_mode-swap-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__dial{position:relative;width:var(--_dial-size);height:var(--_dial-size);background:var(--_dial-bg);border-radius:50%;touch-action:none;user-select:none;cursor:pointer;box-sizing:border-box}:host([disabled]) .md-time-picker__dial{pointer-events:none;opacity:0.38}.md-time-picker__dial-center{position:absolute;width:var(--_dial-center-size);height:var(--_dial-center-size);border-radius:50%;background:var(--_dial-hand-color);left:50%;top:50%;transform:translate(-50%, -50%);z-index:2}.md-time-picker__dial-hand{position:absolute;left:50%;top:auto;bottom:50%;width:0;height:50%;background:transparent;transform-origin:50% 100%;transform:rotate(0deg);transition:transform 200ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));pointer-events:none;z-index:1}.md-time-picker__dial-hand-line{position:absolute;left:50%;top:auto;bottom:0;width:var(--_dial-hand-width);height:var(--md-time-picker-hand-length, var(--_hand-length-dynamic, 100%));background:var(--_dial-hand-color);transform:translateX(-50%)}.md-time-picker__dial-hand-tip{position:absolute;left:50%;top:calc(100% - var(--md-time-picker-hand-length, var(--_hand-length-dynamic, 100%)));bottom:auto;width:var(--_dial-target-size);height:var(--_dial-target-size);background:var(--_dial-hand-color);border-radius:50%;transform:translate(-50%, -50%)}.md-time-picker__dial-hand-dot{display:none}.md-time-picker__dial-number{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:var(--_dial-target-size);height:var(--_dial-target-size);margin-left:calc(-1 * var(--_dial-target-size) / 2);margin-top:calc(-1 * var(--_dial-target-size) / 2);border-radius:50%;font-family:var(--md-sys-typescale-body-large-font-family, var(--md-sys-typescale-body-large-font, inherit));font-size:var(--_dial-number-font-size);font-weight:var(--_dial-number-font-weight);line-height:1;letter-spacing:0;color:var(--_dial-number-color);pointer-events:none;user-select:none;z-index:2;transition:color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));font-variant-numeric:tabular-nums}.md-time-picker__dial-number--inner{color:var(--_dial-number-color);opacity:1}.md-time-picker__dial-number--active{color:var(--_dial-number-active-color);font-weight:var(--_dial-number-active-font-weight);opacity:1}.md-time-picker__input-area{margin-block-end:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-mode-in var(--_mode-swap-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__input-time{display:flex;align-items:flex-start;justify-content:center;gap:0}.md-time-picker__input-group{display:flex;flex-direction:column;align-items:center;gap:var(--_input-hint-gap)}.md-time-picker__input{font-family:inherit;font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:1;letter-spacing:var(--md-sys-typescale-display-medium-letter-spacing, 0);background:var(--_input-bg);color:var(--_input-color);border:var(--_input-border-width) solid var(--_input-outline-color);border-radius:var(--_time-display-shape);padding-block:0;padding-inline:16px;inline-size:var(--_input-width);block-size:var(--_input-height);text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;box-sizing:border-box}.md-time-picker__input::-webkit-outer-spin-button,.md-time-picker__input::-webkit-inner-spin-button{appearance:none;margin:0}.md-time-picker__input:hover{background:color-mix(in srgb, var(--_input-color) var(--_input-hover-opacity), var(--_input-bg))}.md-time-picker__input:focus{outline:none;background:var(--_input-bg);border-color:var(--_input-active-outline-color)}.md-time-picker__input--active{background:var(--_input-active-bg);color:var(--_input-active-color);border-color:transparent}.md-time-picker__input--active:focus{background:var(--_input-active-bg);color:var(--_input-active-color);border-color:var(--_input-active-outline-color)}.md-time-picker__input--active:hover{background:color-mix( in srgb, var(--_input-active-color) var(--_input-hover-opacity), var(--_input-active-bg) )}.md-time-picker__input--error,.md-time-picker__input--error:focus{border-color:var(--_input-error-color);color:var(--_input-error-color)}.md-time-picker__input-separator{font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:1;color:var(--_input-separator-color);display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_input-separator-width);block-size:var(--_input-height);align-self:flex-start}.md-time-picker__input-hint{font-size:var(--md-sys-typescale-body-small-font-size, 12px);letter-spacing:var(--md-sys-typescale-body-small-letter-spacing, 0.4px);color:var(--_input-hint-color)}.md-time-picker__input--error~.md-time-picker__input-hint{color:var(--_input-error-color)}.md-time-picker__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--_footer-gap)}.md-time-picker__toggle-mode{--md-icon-button-color:var(--_toggle-icon-color);--md-icon-button-icon-color:var(--_toggle-icon-color);--md-icon-button-icon-size:var(--_toggle-icon-size);--md-icon-button-container-color:var(--_toggle-bg);--md-icon-button-container-shape:var(--_toggle-shape)}.md-time-picker__actions{display:inline-flex;align-items:center;gap:var(--_actions-gap)}.md-time-picker__action-btn{--md-button-label-color:var(--_action-color);--md-button-container-color:var(--_action-cancel-bg);--md-button-container-shape:var(--_action-shape)}.md-time-picker__action-btn--primary{--md-button-label-color:var(--_action-primary-color);--md-button-container-color:var(--_action-confirm-bg);--md-button-container-shape:var(--_action-shape)}@media (prefers-reduced-motion: reduce){.md-time-picker__scrim,.md-time-picker__dialog,.md-time-picker__dial-wrap,.md-time-picker__input-area,.md-time-picker__dial-hand,.md-time-picker__period-btn,.md-time-picker__dial-number,.md-time-picker__input{animation:none !important;transition:none !important}}.md-time-picker__sr-status{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media (forced-colors: active){.md-time-picker__dialog{border:1px solid CanvasText}.md-time-picker__period,.md-time-picker__input,.md-time-picker__dial{border:1px solid CanvasText}.md-time-picker__input:hover,.md-time-picker__period-btn:hover{background:Canvas;color:CanvasText;forced-color-adjust:none}.md-time-picker__input:focus{background:Canvas;color:CanvasText;border-color:Highlight;forced-color-adjust:none}.md-time-picker__input--active,.md-time-picker__input--active:hover,.md-time-picker__input--active:focus,.md-time-picker__period-btn--active,.md-time-picker__period-btn--active:hover,.md-time-picker__dial-hand-line,.md-time-picker__dial-hand-tip,.md-time-picker__dial-center{background:Highlight;color:HighlightText;forced-color-adjust:none}.md-time-picker__input--error,.md-time-picker__input--error:focus,.md-time-picker__input--error:hover{background:Canvas;border-color:LinkText;color:LinkText;forced-color-adjust:none}.md-time-picker__period-btn:focus-visible{outline-color:Highlight}.md-time-picker__period--vertical .md-time-picker__period-btn--am{border-block-end-color:CanvasText}.md-time-picker__period--horizontal .md-time-picker__period-btn--am{border-inline-end-color:CanvasText}.md-time-picker__period-btn md-ripple{display:none}}:host-context([data-theme='dark']){--_scrim-color:var(--md-time-picker-scrim-color, rgba(0, 0, 0, 0.6))}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}:host([hidden]){display:none !important}`;const m=[];let p="";let u=0;const _=i(class i extends t{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdChange=e(this,"mdChange",7);this.mdInput=e(this,"mdInput",7);this.mdOpen=e(this,"mdOpen",7);this.mdClose=e(this,"mdClose",7);this.mdCancel=e(this,"mdCancel",7);this.mdModeChange=e(this,"mdModeChange",7);this.mdValidityChange=e(this,"mdValidityChange",5);this.internals=this.attachInternals();this.variant="input";this.format="12h";this.value="";this.name="";this.min="";this.max="";this.required=false;this.label="Select time";this.headline="";this.headlineInputLabel="Enter time";this.headlineDialLabel="Select time";this.valueMissingLabel="Please select a time.";this.rangeUnderflowLabel="Please select a time at or after {min}.";this.rangeOverflowLabel="Please select a time at or before {max}.";this.rangeOutsideLabel="Please select a time at or after {min} or at or before {max}.";this.disabled=false;this.open=false;this.minuteStep=1;this.cancelLabel="Cancel";this.okLabel="OK";this.hideTrigger=false;this.amLabel="AM";this.pmLabel="PM";this.hourLabel="Hour";this.minuteLabel="Minute";this.toggleDialLabel="Toggle dial picker";this.toggleInputLabel="Toggle keyboard input";this.periodLabel="Period";this.periodLayout="vertical";this.orientation="vertical";this.responsive=false;this.density=0;this.isOpen=false;this.mode="dial";this.selecting="hour";this.draftHours=12;this.draftMinutes=0;this.hourInputValue="";this.minuteInputValue="";this.hourInputError=false;this.minuteInputError=false;this.viewportWidth=0;this.viewportHeight=0;this.formDisabled=false;this.committedHours=12;this.committedMinutes=0;this.committedValue="";this.defaultValue="";this.isDragging=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;this.previousFocus=null;this.openSeq=0;this.uid=Math.random().toString(36).slice(2,11);this.headlineId=`md-time-picker-headline-${this.uid}`;this.hourCumulativeAngle=0;this.minuteCumulativeAngle=0;this.lastHandMode=null;this.lastValidityKey=null;this.lastInputEmitKey=-1;this.openPicker=()=>{if(this.isDisabled||this.isOpen)return;this.previousFocus=i.deepActiveElement();this.sampleViewport();this.attachOpenEnvironment();this.draftHours=this.committedHours;this.draftMinutes=this.committedMinutes;this.lastInputEmitKey=this.draftHours*60+this.draftMinutes;this.selecting="hour";this.mode=this.effectiveVariant;this.hourInputValue=String(this.displayHour);this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");this.hourInputError=false;this.minuteInputError=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;this.hourCumulativeAngle=0;this.minuteCumulativeAngle=0;this.lastHandMode=null;this.openSeq=++u;this.isOpen=true;this.open=true;this.mdOpen.emit();requestAnimationFrame((()=>this.focusInitial()))};this.closePicker=()=>{if(!this.isOpen)return;this.isOpen=false;this.open=false;this.detachOpenEnvironment();this.mdClose.emit();this.restoreFocusAfterClose()};this.cancel=()=>{if(!this.isOpen)return;this.draftHours=this.committedHours;this.draftMinutes=this.committedMinutes;this.mdCancel.emit();this.closePicker()};this.confirm=()=>{if(this.isDisabled)return;this.commitInputs();if(this.hourInputError||this.minuteInputError)return;this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;const i=this.buildChangeDetail(this.draftHours,this.draftMinutes);this.committedValue=i.value;this.value=i.value;this.updateFormValue();this.mdChange.emit(i);this.closePicker()};this.setSelecting=i=>{this.selecting=i};this.togglePeriod=i=>{if(this.format==="24h")return;if(this.period===i)return;if(i==="AM"&&this.draftHours>=12)this.draftHours-=12;else if(i==="PM"&&this.draftHours<12)this.draftHours+=12;this.emitInputIfChanged();this.syncInputsFromDraft()};this.onPeriodKeyDown=i=>{if(this.format==="24h")return;const t=i.key;const e=t==="ArrowLeft"||t==="ArrowRight"||t==="ArrowUp"||t==="ArrowDown"||t==="Home"||t==="End";if(!e&&t!==" "&&t!=="Spacebar")return;i.preventDefault();let r;if(t==="Home")r="AM";else if(t==="End")r="PM";else if(t===" "||t==="Spacebar")r=this.period;else r=this.period==="AM"?"PM":"AM";this.togglePeriod(r);requestAnimationFrame((()=>{const i=this.el.shadowRoot;if(!i)return;const t=i.querySelector(r==="AM"?'[part="period-am"]':'[part="period-pm"]');t?.focus()}))};this.toggleMode=()=>{const i=this.mode;this.mode=this.mode==="dial"?"input":"dial";this.mdModeChange.emit({mode:this.mode,previousMode:i});this.selecting="hour";this.hourInputValue=String(this.displayHour);this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");this.hourInputError=false;this.minuteInputError=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;requestAnimationFrame((()=>{this.syncInputFields();this.focusInputSelectingAll(this.hourInputEl)}))};this.bindHourInput=i=>{if(!i){this.hourInputSeeded=false;this.hourInputEl=undefined;return}this.hourInputEl=i;if(!this.hourInputSeeded){i.value=this.hourInputValue;this.hourInputSeeded=true}};this.bindMinuteInput=i=>{if(!i){this.minuteInputSeeded=false;this.minuteInputEl=undefined;return}this.minuteInputEl=i;if(!this.minuteInputSeeded){i.value=this.minuteInputValue;this.minuteInputSeeded=true}};this.applyDialPointer=i=>{const t=this.dialPointFromEvent(i);if(!t)return;const{angle:e,distance:r,radius:a}=t;if(this.selecting==="hour"){const i=Math.round(e/30)%12;if(this.format==="12h"){const t=i===0?12:i;this.setHour24FromDisplay(t,this.period)}else{const t=r<a*.66;if(t){this.draftHours=i===0?0:12+i}else{this.draftHours=i===0?12:i}}}else{const i=Math.max(1,Math.min(30,this.minuteStep||1));let t=Math.round(e/6);t=Math.round(t/i)*i%60;this.draftMinutes=t}this.emitInputIfChanged();this.syncInputsFromDraft()};this.onDialPointerDown=i=>{if(this.isDisabled)return;i.preventDefault();this.isDragging=true;i.currentTarget?.setPointerCapture?.(i.pointerId);this.applyDialPointer(i)};this.onDialPointerMove=i=>{if(!this.isDragging)return;this.applyDialPointer(i)};this.onDialPointerUp=i=>{if(!this.isDragging)return;this.isDragging=false;i.currentTarget?.releasePointerCapture?.(i.pointerId);if(this.selecting==="hour"){this.selecting="minute";requestAnimationFrame((()=>{this.focusInputSelectingAll(this.minuteInputEl)}))}};this.onHostKeyDown=i=>{if(!this.isOpen)return;if(i.key==="Escape"){i.preventDefault();i.stopPropagation();this.cancel()}};this.commitInputs=()=>{this.applyInputsToDraft("both")};this.onHourInput=i=>{const t=i.target;const e=t.value.replace(/\D/g,"").slice(0,2);if(t.value!==e)t.value=e;this.hourInputValue=e;this.applyInputsToDraft("hour")};this.onMinuteInput=i=>{const t=i.target;const e=t.value.replace(/\D/g,"").slice(0,2);if(t.value!==e)t.value=e;this.minuteInputValue=e;this.applyInputsToDraft("minute")};this.onHourBlur=()=>{if(this.hourInputEl)this.hourInputValue=this.hourInputEl.value;this.commitInputs();if(!this.hourInputError&&parseInt(this.hourInputValue,10)===this.displayHour){this.hourInputValue=String(this.displayHour);if(this.hourInputEl)this.hourInputEl.value=this.hourInputValue}};this.onMinuteBlur=()=>{if(this.minuteInputEl)this.minuteInputValue=this.minuteInputEl.value;this.commitInputs();if(!this.minuteInputError&&parseInt(this.minuteInputValue,10)===this.draftMinutes){this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.minuteInputEl)this.minuteInputEl.value=this.minuteInputValue}};this.onInputKeyDown=i=>{if(i.key==="Enter"){i.preventDefault();if(this.hourInputEl)this.hourInputValue=this.hourInputEl.value;if(this.minuteInputEl)this.minuteInputValue=this.minuteInputEl.value;this.confirm();return}if(i.key==="ArrowUp"||i.key==="ArrowDown"){const t=i.target;const e=t===this.hourInputEl||t?.classList?.contains("md-time-picker__input-hour")===true;const r=t===this.minuteInputEl||t?.classList?.contains("md-time-picker__input-minute")===true;if(!e&&!r)return;i.preventDefault();this.bumpFocusedInput(i.key==="ArrowUp"?1:-1,e?"hour":"minute")}};this.onTriggerClick=i=>{if(this.isDisabled)return;i.preventDefault();this.openPicker()};this.onTriggerKeyDown=i=>{if(this.isDisabled)return;if(i.key==="Enter"||i.key===" "||i.key==="Spacebar"){i.preventDefault();i.stopPropagation();this.openPicker()}}}componentWillLoad(){if(!this.parseValueInto(this.value)){this.value=""}else if(this.value){this.value=this.toIso(this.draftHours,this.draftMinutes)}this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;this.committedValue=this.value;this.defaultValue=this.value;this.hourInputValue=String(this.computeDisplayHour(this.draftHours));this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.responsive)this.sampleViewport();this.mode=this.effectiveVariant;if(this.open&&!this.disabled){this.isOpen=true;this.selecting="hour"}else if(this.open&&this.disabled){this.open=false}this.updateFormValue()}componentDidLoad(){this.updateValidity();if(this.isOpen){this.openSeq=++u;this.previousFocus=i.deepActiveElement();this.attachOpenEnvironment();this.mdOpen.emit();requestAnimationFrame((()=>this.focusInitial()))}}connectedCallback(){if(this.isOpen)this.attachOpenEnvironment()}disconnectedCallback(){this.detachOpenEnvironment()}formResetCallback(){this.value=this.defaultValue;this.updateFormValue()}formDisabledCallback(i){this.formDisabled=i;if(i&&this.isOpen)this.cancel()}formStateRestoreCallback(i){if(typeof i==="string")this.value=i}handleVariantChange(i){if(!this.isOpen)this.mode=i}handleValueChange(i){let t;if(i===""){this.parseValueInto("");t=""}else if(this.parseValueInto(i)){t=this.toIso(this.draftHours,this.draftMinutes)}else{this.parseValueInto("");t=""}if(t!==i){this.value=t;return}this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;this.committedValue=i;if(this.isOpen){this.syncInputsFromDraft();this.lastInputEmitKey=this.draftHours*60+this.draftMinutes}else{this.hourInputValue=String(this.computeDisplayHour(this.draftHours));this.minuteInputValue=String(this.draftMinutes).padStart(2,"0")}this.updateFormValue()}handleConstraintChange(){this.updateValidity()}handleDisabledChange(i){if(i&&this.isOpen)this.cancel()}handleResponsiveChange(t){if(!this.isOpen)return;if(t){this.sampleViewport();this.attachViewportListener();if(this.mode==="dial"&&this.viewportHeight>0&&this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT){this.mode="input"}}else{this.detachViewportListener()}}handleOpenPropChange(i){if(i&&!this.isOpen){this.openPicker()}else if(!i&&this.isOpen){this.closePicker()}}emitValidityChange(){const i=n(this.internals);const t=`${i.valid}|${i.validationMessage}`;if(this.lastValidityKey===t)return;const e=this.lastValidityKey!==null;this.lastValidityKey=t;if(e)this.mdValidityChange.emit(i)}async show(){this.openPicker()}async hide(){this.cancel()}async checkValidity(){if(typeof this.internals?.checkValidity!=="function")return true;return this.internals.checkValidity()}async reportValidity(){if(typeof this.internals?.reportValidity!=="function")return true;return this.internals.reportValidity()}async getValidity(){const i=this.internals?.validity;if(!i)return{valid:true,validationMessage:""};return{valid:i.valid,valueMissing:i.valueMissing,rangeUnderflow:i.rangeUnderflow,rangeOverflow:i.rangeOverflow,validationMessage:this.internals.validationMessage}}parseValueInto(i){if(!i){this.draftHours=12;this.draftMinutes=0;return true}const t=/^(\d{1,2}):(\d{2})$/.exec(i);if(!t)return false;const e=parseInt(t[1],10);const r=parseInt(t[2],10);if(e<0||e>23||r<0||r>59)return false;this.draftHours=e;this.draftMinutes=r;return true}get isDisabled(){return this.disabled||this.formDisabled}parseHHMM(i){const t=/^(\d{1,2}):(\d{2})$/.exec(i||"");if(!t)return null;const e=parseInt(t[1],10);const r=parseInt(t[2],10);if(e>23||r>59)return null;return e*60+r}toIso(i,t){return`${String(i).padStart(2,"0")}:${String(t).padStart(2,"0")}`}emitInputIfChanged(){if(!this.isOpen)return;const i=this.draftHours*60+this.draftMinutes;if(i===this.lastInputEmitKey)return;this.lastInputEmitKey=i;this.mdInput.emit(this.buildChangeDetail(this.draftHours,this.draftMinutes))}buildChangeDetail(i,t){const e=this.toIso(i,t);const r=`${e}:00`;const a=new Date;a.setHours(i,t,0,0);return{value:e,iso:r,isoDateTime:a.toISOString(),date:a,hours:i,minutes:t,period:i>=12?"PM":"AM"}}get period(){return this.draftHours>=12?"PM":"AM"}computeDisplayHour(i){if(this.format==="24h")return i;if(i===0)return 12;if(i>12)return i-12;return i}get displayHour(){return this.computeDisplayHour(this.draftHours)}setHour24FromDisplay(i,t){let e;if(this.format==="24h"){e=(i%24+24)%24}else{const r=i===0?12:i;if(r===12)e=t==="AM"?0:12;else e=t==="AM"?r:r+12}this.draftHours=e}formatDisplayTime(i,t){if(this.format==="24h"){return`${String(i).padStart(2,"0")}:${String(t).padStart(2,"0")}`}const e=i>=12?this.pmLabel:this.amLabel;const r=i===0?12:i>12?i-12:i;return`${r}:${String(t).padStart(2,"0")} ${e}`}focusInitial(){const i=this.el.shadowRoot;if(!i)return;this.syncInputFields();this.focusInputSelectingAll(this.hourInputEl)}focusInputSelectingAll(i){if(!i)return;i.focus();this.selectInputContents(i)}attachOpenEnvironment(){if(typeof document==="undefined"||this.docKeyHandler)return;if(!m.includes(this))m.push(this);if(document.body){if(m.length===1){p=document.body.style.overflow}document.body.style.overflow="hidden"}this.docKeyHandler=t=>{if(!this.isOpen)return;if(!i.isTopmostOpen(this))return;if(t.key==="Escape"){t.preventDefault();t.stopImmediatePropagation();this.cancel()}else if(t.key==="Tab"){this.trapFocus(t)}};document.addEventListener("keydown",this.docKeyHandler,true);this.attachViewportListener()}detachOpenEnvironment(){if(typeof document!=="undefined"&&this.docKeyHandler){document.removeEventListener("keydown",this.docKeyHandler,true);this.docKeyHandler=undefined;const i=m.indexOf(this);if(i!==-1)m.splice(i,1);if(document.body&&m.length===0){document.body.style.overflow=p}}this.detachViewportListener()}static isTopmostOpen(i){let t=null;for(const i of m){if(!t||i.openSeq>t.openSeq)t=i}return t===i}static deepActiveElement(){if(typeof document==="undefined")return null;let i=document.activeElement;while(i?.shadowRoot?.activeElement)i=i.shadowRoot.activeElement;return i??null}static composedContains(i,t){let e=t;while(e){if(e===i)return true;e=e instanceof ShadowRoot?e.host:e.parentNode}return false}restoreFocusAfterClose(){const t=this.previousFocus;this.previousFocus=null;const e=!!t&&t.isConnected&&typeof t.focus==="function"&&(typeof document==="undefined"||t!==document.body);if(e&&!i.composedContains(this.el,t)){t.focus();const e=i.deepActiveElement();if(e&&i.composedContains(t,e))return}if(this.isDisabled)return;if(this.triggerFieldEl)this.focusTrigger()}focusTrigger(){const i=this.triggerFieldEl;if(!i)return;if(typeof i.setFocus==="function")void i.setFocus();else i.focus?.()}dialogFocusables(){const i=this.el.shadowRoot?.querySelector(".md-time-picker__dialog");if(!i)return[];const t=Array.from(i.querySelectorAll("input, button, md-button, md-icon-button, [tabindex]"));return t.filter((i=>!i.hasAttribute("disabled")&&i.getAttribute("tabindex")!=="-1"))}focusItem(i){const t=i;if(typeof t.setFocus==="function"){void t.setFocus();return}const e=i.shadowRoot?.querySelector("button, input, [tabindex]");const r=e??i;r.focus();if(r instanceof HTMLInputElement)this.selectInputContents(r)}trapFocus(t){const e=this.dialogFocusables();if(!e.length)return;const r=i.deepActiveElement();const a=r?e.findIndex((t=>i.composedContains(t,r))):-1;const s=!t.shiftKey;if(a===-1){t.preventDefault();this.focusItem(e[s?0:e.length-1]);return}if(s&&a===e.length-1){t.preventDefault();this.focusItem(e[0])}else if(!s&&a===0){t.preventDefault();this.focusItem(e[e.length-1])}}sampleViewport(){if(typeof window==="undefined")return;this.viewportWidth=window.innerWidth||0;this.viewportHeight=window.innerHeight||0}attachViewportListener(){if(!this.responsive||typeof window==="undefined")return;if(this.viewportResizeHandler)return;let t=0;this.viewportResizeHandler=()=>{if(t)cancelAnimationFrame(t);t=requestAnimationFrame((()=>{this.sampleViewport();if(this.mode==="dial"&&this.viewportHeight>0&&this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT){this.mode="input"}t=0}))};window.addEventListener("resize",this.viewportResizeHandler,{passive:true});window.addEventListener("orientationchange",this.viewportResizeHandler,{passive:true})}detachViewportListener(){if(typeof window==="undefined")return;if(!this.viewportResizeHandler)return;window.removeEventListener("resize",this.viewportResizeHandler);window.removeEventListener("orientationchange",this.viewportResizeHandler);this.viewportResizeHandler=undefined}updateFormValue(){try{this.internals?.setFormValue(this.committedValue??"")}catch{}this.updateValidity()}updateValidity(){if(typeof this.internals?.setValidity!=="function")return;const i=this.triggerFieldEl;const t=(t,e)=>{if(e&&i)this.internals.setValidity(t,e,i);else if(e)this.internals.setValidity(t,e);else this.internals.setValidity(t)};const e=this.parseHHMM(this.committedValue);const r=this.parseHHMM(this.min);const a=this.parseHHMM(this.max);const s=i=>i.replace(/\{min\}/g,this.min).replace(/\{max\}/g,this.max);try{if(this.required&&e===null){t({valueMissing:true},this.valueMissingLabel)}else if(e!==null&&r!==null&&a!==null&&r>a){if(e<r&&e>a){t({rangeUnderflow:true,rangeOverflow:true},s(this.rangeOutsideLabel))}else{t({})}}else if(e!==null&&r!==null&&e<r){t({rangeUnderflow:true},s(this.rangeUnderflowLabel))}else if(e!==null&&a!==null&&e>a){t({rangeOverflow:true},s(this.rangeOverflowLabel))}else{t({})}}catch{}this.emitValidityChange()}syncInputFields(){if(this.hourInputEl)this.hourInputEl.value=String(this.displayHour);if(this.minuteInputEl)this.minuteInputEl.value=String(this.draftMinutes).padStart(2,"0")}syncInputsFromDraft(){const t=String(this.displayHour);const e=String(this.draftMinutes).padStart(2,"0");this.hourInputValue=t;this.minuteInputValue=e;this.hourInputError=false;this.minuteInputError=false;if(this.hourInputEl&&this.hourInputEl.value!==t){this.hourInputEl.value=t;if(i.deepActiveElement()===this.hourInputEl){this.selectInputContents(this.hourInputEl)}}if(this.minuteInputEl&&this.minuteInputEl.value!==e){this.minuteInputEl.value=e;if(i.deepActiveElement()===this.minuteInputEl){this.selectInputContents(this.minuteInputEl)}}}dialPointFromEvent(i){if(!this.dialEl)return null;const t=this.dialEl.getBoundingClientRect();const e=t.left+t.width/2;const r=t.top+t.height/2;const a=i.clientX-e;const s=i.clientY-r;const n=Math.hypot(a,s);let o=Math.atan2(s,a)*(180/Math.PI);o=(o+90+360)%360;return{angle:o,distance:n,radius:t.width/2}}applyInputsToDraft(i){const t=parseInt(this.hourInputValue,10);const e=parseInt(this.minuteInputValue,10);const r=this.format==="24h"?0:1;const a=this.format==="24h"?23:12;const s=!isNaN(t)&&t>=r&&t<=a;const n=!isNaN(e)&&e>=0&&e<=59;if(i==="hour"||i==="both")this.hourInputError=!s;if(i==="minute"||i==="both")this.minuteInputError=!n;if(s&&n){this.draftMinutes=e;this.setHour24FromDisplay(t,this.period);this.emitInputIfChanged();return true}return false}get hourValueNow(){const i=parseInt(this.hourInputValue,10);return Number.isNaN(i)?this.displayHour:i}get minuteValueNow(){const i=parseInt(this.minuteInputValue,10);return Number.isNaN(i)?this.draftMinutes:i}bumpFocusedInput(i,t){if(t==="hour"){const t=this.hourInputError?this.displayHour:this.hourValueNow;if(this.format==="24h"){this.draftHours=((t+i)%24+24)%24}else{const e=t;let r=e+i;if(r>12)r=1;else if(r<1)r=12;this.setHour24FromDisplay(r,this.period)}this.hourInputError=false;this.hourInputValue=String(this.displayHour);if(this.hourInputEl){this.hourInputEl.value=this.hourInputValue;this.selectInputContents(this.hourInputEl)}}else{const t=Math.max(1,Math.min(30,this.minuteStep||1));const e=this.minuteInputError?this.draftMinutes:this.minuteValueNow;const r=Math.round(e/t)*t;this.draftMinutes=((r+i*t)%60+60)%60;this.minuteInputError=false;this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.minuteInputEl){this.minuteInputEl.value=this.minuteInputValue;this.selectInputContents(this.minuteInputEl)}}this.emitInputIfChanged()}selectInputContents(i){if(typeof i.select!=="function")return;try{i.select()}catch{}}renderTrigger(){if(this.hideTrigger)return null;const i=this.committedValue?this.formatDisplayTime(this.committedHours,this.committedMinutes):"";const t=i?`${this.label}, ${i}`:this.label;return r("md-text-field",{class:{"md-time-picker__field":true,"md-time-picker__field--disabled":this.isDisabled,"md-time-picker__field--filled":!!i,"md-time-picker__field--open":this.isOpen},variant:"outlined",readOnly:true,label:this.label,value:i,disabled:this.isDisabled,required:this.required,part:"trigger","aria-haspopup":"dialog","aria-expanded":String(this.isOpen),"aria-label":t,appearFocused:this.isOpen,ref:i=>{this.triggerFieldEl=i},onClick:this.onTriggerClick,onKeyDown:this.onTriggerKeyDown},r("span",{slot:"leading-icon",class:"md-time-picker__field-icon material-symbols-outlined",part:"trigger-icon","aria-hidden":"true"},"schedule"))}get effectivePeriodLayout(){if(this.mode==="input")return"vertical";if(this.effectiveOrientation==="horizontal"&&this.mode==="dial")return"horizontal";return this.periodLayout}get effectiveVariant(){if(!this.responsive)return this.variant;if(!this.viewportHeight)return this.variant;if(this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT)return"input";return this.variant}get effectiveOrientation(){if(!this.responsive)return this.orientation;if(!this.viewportWidth||!this.viewportHeight)return this.orientation;if(this.mode!=="dial")return this.orientation;if(this.orientation==="vertical"&&this.viewportWidth>=i.ADAPTIVE_LANDSCAPE_WIDTH&&this.viewportWidth>this.viewportHeight){return"horizontal"}if(this.orientation==="horizontal"&&this.viewportWidth<i.ADAPTIVE_DEMOTE_WIDTH){return"vertical"}return this.orientation}renderPeriodToggle(){const i=this.period;const t=this.effectivePeriodLayout==="horizontal";return r("div",{class:{"md-time-picker__period":true,"md-time-picker__period--vertical":!t,"md-time-picker__period--horizontal":t},role:"radiogroup","aria-label":this.periodLabel,"aria-orientation":t?"horizontal":"vertical",onKeyDown:this.onPeriodKeyDown,part:"period-toggle"},r("button",{type:"button",class:{"md-time-picker__period-btn":true,"md-time-picker__period-btn--am":true,"md-time-picker__period-btn--active":i==="AM"},role:"radio","aria-checked":String(i==="AM"),tabindex:i==="AM"?0:-1,onClick:()=>this.togglePeriod("AM"),part:"period-am"},r("md-ripple",{disabled:this.isDisabled,part:"period-am-ripple"}),r("span",{class:"md-time-picker__period-btn-label"},this.amLabel)),r("button",{type:"button",class:{"md-time-picker__period-btn":true,"md-time-picker__period-btn--pm":true,"md-time-picker__period-btn--active":i==="PM"},role:"radio","aria-checked":String(i==="PM"),tabindex:i==="PM"?0:-1,onClick:()=>this.togglePeriod("PM"),part:"period-pm"},r("md-ripple",{disabled:this.isDisabled,part:"period-pm-ripple"}),r("span",{class:"md-time-picker__period-btn-label"},this.pmLabel)))}advanceHandAngle(i,t){if(this.lastHandMode!==i){this.lastHandMode=i;if(i==="hour"){this.hourCumulativeAngle=t;return t}this.minuteCumulativeAngle=t;return t}const e=i==="hour"?this.hourCumulativeAngle:this.minuteCumulativeAngle;const r=((t-e)%360+540)%360-180;const a=e+r;if(i==="hour")this.hourCumulativeAngle=a;else this.minuteCumulativeAngle=a;return a}renderDial(){const i=this.selecting==="hour";const t=50;const e=.8;const a=.52;let s=0;let n=e;if(i){if(this.format==="12h"){const i=this.displayHour===12?0:this.displayHour;s=i*30}else{const i=this.draftHours;if(i===0){s=0;n=a}else if(i>=1&&i<=12){s=(i===12?0:i)*30}else{s=(i-12)*30;n=a}}}else{s=this.draftMinutes*6}const o=this.advanceHandAngle(i?"hour":"minute",s);return r("div",{class:"md-time-picker__dial-wrap",part:"dial-wrap"},r("div",{class:{"md-time-picker__dial":true,"md-time-picker__dial--minute":!i,"md-time-picker__dial--24h-hour":i&&this.format==="24h"},ref:i=>this.dialEl=i,onPointerDown:this.onDialPointerDown,onPointerMove:this.onDialPointerMove,onPointerUp:this.onDialPointerUp,onPointerCancel:this.onDialPointerUp,role:"presentation",part:"dial"},r("div",{class:"md-time-picker__dial-hand",style:{transform:`rotate(${o}deg)`,["--_hand-length-dynamic"]:`${n*100}%`},"aria-hidden":"true",part:"dial-hand"},r("span",{class:"md-time-picker__dial-hand-dot","aria-hidden":"true"}),r("span",{class:"md-time-picker__dial-hand-line","aria-hidden":"true"}),r("span",{class:"md-time-picker__dial-hand-tip","aria-hidden":"true"})),r("span",{class:"md-time-picker__dial-center","aria-hidden":"true"}),i?this.renderHourNumbers(t,e,a):this.renderMinuteNumbers(t,e)))}renderHourNumbers(i,t,e){const r=[];if(this.format==="12h"){for(let i=0;i<12;i++){const t=i===0?"12":String(i);r.push({label:t,angle:i*30,inner:false,value:i===0?12:i})}}else{for(let i=0;i<12;i++){const t=i===0?"12":String(i);r.push({label:t,angle:i*30,inner:false,value:i===0?12:i})}for(let i=0;i<12;i++){const t=i===0?"00":String(12+i);r.push({label:t,angle:i*30,inner:true,value:i===0?0:12+i})}}return r.map((r=>this.renderDialNumber(r.label,r.angle,r.inner,this.isHourActive(r.value),i,t,e,r.value)))}isHourActive(i){if(this.format==="12h"){return this.displayHour===i}return this.draftHours===i}renderMinuteNumbers(i,t){const e=[];for(let i=0;i<12;i++){const t=i*5;e.push({label:String(t).padStart(2,"0"),angle:t*6,value:t})}return e.map((e=>this.renderDialNumber(e.label,e.angle,false,this.draftMinutes===e.value,i,t,t,e.value)))}renderDialNumber(i,t,e,a,s,n,o,d){const l=e?s*o:s*n;const c=(t-90)*Math.PI/180;const h=50+Math.cos(c)*l;const m=50+Math.sin(c)*l;return r("span",{class:{"md-time-picker__dial-number":true,"md-time-picker__dial-number--inner":e,"md-time-picker__dial-number--active":a},style:{left:`${h}%`,top:`${m}%`},"data-value":String(d),"aria-hidden":"true"},i)}renderInputs(i=true){const t=this.selecting==="hour";return r("div",{class:"md-time-picker__input-area",part:"input-area"},r("div",{class:"md-time-picker__input-time"},r("div",{class:"md-time-picker__input-group"},r("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:{"md-time-picker__input":true,"md-time-picker__input-hour":true,"md-time-picker__input--active":t,"md-time-picker__input--error":this.hourInputError},maxLength:2,ref:this.bindHourInput,role:"spinbutton","aria-valuemin":this.format==="24h"?0:1,"aria-valuemax":this.format==="24h"?23:12,"aria-valuenow":this.hourInputError?undefined:this.hourValueNow,"aria-label":this.hourLabel,"aria-invalid":String(this.hourInputError),onInput:this.onHourInput,onFocus:()=>this.setSelecting("hour"),onBlur:this.onHourBlur,onKeyDown:this.onInputKeyDown,part:"input-hour"}),r("span",{class:"md-time-picker__input-hint"},this.hourLabel)),r("span",{class:"md-time-picker__input-separator","aria-hidden":"true"},":"),r("div",{class:"md-time-picker__input-group"},r("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:{"md-time-picker__input":true,"md-time-picker__input-minute":true,"md-time-picker__input--active":!t,"md-time-picker__input--error":this.minuteInputError},maxLength:2,ref:this.bindMinuteInput,role:"spinbutton","aria-valuemin":0,"aria-valuemax":59,"aria-valuenow":this.minuteInputError?undefined:this.minuteValueNow,"aria-label":this.minuteLabel,"aria-invalid":String(this.minuteInputError),onInput:this.onMinuteInput,onFocus:()=>this.setSelecting("minute"),onBlur:this.onMinuteBlur,onKeyDown:this.onInputKeyDown,part:"input-minute"}),r("span",{class:"md-time-picker__input-hint"},this.minuteLabel)),this.format==="12h"&&i&&this.renderPeriodToggle()))}renderDialog(){if(!this.isOpen)return null;const i=this.mode==="input";const t=!i&&this.effectiveOrientation==="horizontal";const e=this.effectivePeriodLayout;const a=this.headline||(i?this.headlineInputLabel:this.headlineDialLabel);const s=!i&&this.format==="12h"&&e==="horizontal";const n=i?null:r("div",{class:"md-time-picker__time-area",part:"time-area"},this.renderInputs(!s),s&&this.renderPeriodToggle());return r("div",{class:"md-time-picker__scrim",part:"scrim",onClick:i=>{if(i.target===i.currentTarget)this.cancel()}},r("div",{class:{"md-time-picker__dialog":true,"md-time-picker__dialog--dial":!i,"md-time-picker__dialog--input":i,"md-time-picker__dialog--horizontal":t,"md-time-picker__dialog--vertical":!t},role:"dialog","aria-modal":"true","aria-labelledby":this.headlineId,part:"dialog"},r("div",{class:"md-time-picker__headline",id:this.headlineId,part:"headline"},a),r("span",{class:"md-time-picker__sr-status","aria-live":"polite"},this.selecting==="hour"?this.hourLabel:this.minuteLabel),r("div",{class:{"md-time-picker__body":true,"md-time-picker__body--horizontal":t},part:"body"},n,i?this.renderInputs():this.renderDial()),r("div",{class:"md-time-picker__footer",part:"footer"},r("md-icon-button",{class:"md-time-picker__toggle-mode",variant:"standard",size:"sm",icon:i?"schedule":"keyboard","aria-label":i?this.toggleDialLabel:this.toggleInputLabel,onMdClick:this.toggleMode,part:"toggle-mode"}),r("div",{class:"md-time-picker__actions",part:"actions"},r("md-button",{class:"md-time-picker__action-btn",variant:"text",size:"sm",onMdClick:this.cancel,part:"cancel-button"},this.cancelLabel),r("md-button",{class:"md-time-picker__action-btn md-time-picker__action-btn--primary",variant:"text",size:"sm",onMdClick:this.confirm,part:"confirm-button"},this.okLabel)))))}render(){return r(a,{key:"fc26ef95beb41a122de3db24febbe9635c2381ec",class:{"md-time-picker":true,[`md-time-picker--${this.variant}`]:true,[`md-time-picker--format-${this.format}`]:true,"md-time-picker--open":this.isOpen,"md-time-picker--disabled":this.isDisabled},onKeyDown:this.onHostKeyDown},this.renderTrigger(),this.renderDialog())}static get formAssociated(){return true}get el(){return this}static get watchers(){return{variant:[{handleVariantChange:0}],value:[{handleValueChange:0}],min:[{handleConstraintChange:0}],max:[{handleConstraintChange:0}],required:[{handleConstraintChange:0}],valueMissingLabel:[{handleConstraintChange:0}],rangeUnderflowLabel:[{handleConstraintChange:0}],rangeOverflowLabel:[{handleConstraintChange:0}],rangeOutsideLabel:[{handleConstraintChange:0}],disabled:[{handleDisabledChange:0}],responsive:[{handleResponsiveChange:0}],open:[{handleOpenPropChange:0}]}}static get style(){return h()}},[65,"md-time-picker",{variant:[1],format:[1],value:[1537],name:[513],min:[1],max:[1],required:[516],label:[1],headline:[1],headlineInputLabel:[1,"headline-input-label"],headlineDialLabel:[1,"headline-dial-label"],valueMissingLabel:[1,"value-missing-label"],rangeUnderflowLabel:[1,"range-underflow-label"],rangeOverflowLabel:[1,"range-overflow-label"],rangeOutsideLabel:[1,"range-outside-label"],disabled:[516],open:[1540],minuteStep:[2,"minute-step"],cancelLabel:[1,"cancel-label"],okLabel:[1,"ok-label"],hideTrigger:[516,"hide-trigger"],amLabel:[1,"am-label"],pmLabel:[1,"pm-label"],hourLabel:[1,"hour-label"],minuteLabel:[1,"minute-label"],toggleDialLabel:[1,"toggle-dial-label"],toggleInputLabel:[1,"toggle-input-label"],periodLabel:[1,"period-label"],periodLayout:[1,"period-layout"],orientation:[1],responsive:[4],density:[514],isOpen:[32],mode:[32],selecting:[32],draftHours:[32],draftMinutes:[32],hourInputValue:[32],minuteInputValue:[32],hourInputError:[32],minuteInputError:[32],viewportWidth:[32],viewportHeight:[32],formDisabled:[32],show:[64],hide:[64],checkValidity:[64],reportValidity:[64],getValidity:[64]},undefined,{variant:[{handleVariantChange:0}],value:[{handleValueChange:0}],min:[{handleConstraintChange:0}],max:[{handleConstraintChange:0}],required:[{handleConstraintChange:0}],valueMissingLabel:[{handleConstraintChange:0}],rangeUnderflowLabel:[{handleConstraintChange:0}],rangeOverflowLabel:[{handleConstraintChange:0}],rangeOutsideLabel:[{handleConstraintChange:0}],disabled:[{handleDisabledChange:0}],responsive:[{handleResponsiveChange:0}],open:[{handleOpenPropChange:0}]}]);_.ADAPTIVE_MIN_DIAL_HEIGHT=460;_.ADAPTIVE_LANDSCAPE_WIDTH=720;_.ADAPTIVE_DEMOTE_WIDTH=620;function f(){if(typeof customElements==="undefined"){return}const i=["md-time-picker","md-button","md-icon-button","md-ripple","md-text-field"];i.forEach((i=>{switch(i){case"md-time-picker":if(!customElements.get(s(i))){customElements.define(s(i),_)}break;case"md-button":if(!customElements.get(s(i))){o()}break;case"md-icon-button":if(!customElements.get(s(i))){d()}break;case"md-ripple":if(!customElements.get(s(i))){l()}break;case"md-text-field":if(!customElements.get(s(i))){c()}break}}))}f();const g=_;const v=f;export{g as MdTimePicker,v as defineCustomElement};
1
+ import{p as i,H as t,c as e,h as r,d as a,t as s}from"./p-B7GMP_JD.js";import{g as n}from"./p-DWxN44zD.js";import{d as o}from"./p-QF3B4ODr.js";import{d}from"./p-BkJQKHGR.js";import{d as l}from"./p-DoHRoVfM.js";import{d as c}from"./p-Dqk-0zEP.js";const h=()=>`:host{--_trigger-color:var(--md-time-picker-trigger-color, var(--md-sys-color-on-surface, #1c1b1f));--_trigger-outline-color:var(--md-time-picker-trigger-outline-color, var(--md-sys-color-outline, #79747e));--_trigger-hover-color:var(--md-time-picker-trigger-hover-color, var(--md-sys-color-on-surface, #1c1b1f));--_trigger-focus-color:var(--md-time-picker-trigger-focus-color, var(--md-sys-color-primary, #6750a4));--_trigger-icon-color:var(--md-time-picker-trigger-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_dialog-color:var(--md-time-picker-dialog-color, var(--md-sys-color-surface-container-high, #ece6f0));--_dialog-on-color:var(--md-time-picker-dialog-on-color, var(--md-sys-color-on-surface, #1c1b1f));--_dialog-shape:var(--md-time-picker-dialog-shape, var(--md-sys-shape-corner-extra-large, 28px));--_dialog-elevation:var(--md-time-picker-dialog-elevation, var(--md-sys-elevation-3, 0 4px 8px 3px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.3)));--_scrim-color:var(--md-time-picker-scrim-color, rgba(0, 0, 0, 0.32));--_headline-color:var(--md-time-picker-headline-color, var(--md-sys-color-on-surface-variant, #49454f));--_time-display-shape:var( --md-time-picker-input-shape, var(--md-time-picker-time-display-shape, var(--md-sys-shape-corner-small, 8px)) );--_period-bg:var(--md-time-picker-period-bg, transparent);--_period-color:var(--md-time-picker-period-color, var(--md-sys-color-on-surface, #1c1b1f));--_period-active-bg:var(--md-time-picker-period-active-bg, var(--md-sys-color-tertiary-container, #ffd8e4));--_period-active-color:var(--md-time-picker-period-active-color, var(--md-sys-color-on-tertiary-container, #370b1e));--_period-outline-color:var(--md-time-picker-period-outline-color, var(--md-sys-color-outline, #79747e));--_dial-bg:var(--md-time-picker-dial-bg, var(--md-sys-color-surface-container-highest, #e6e0e9));--_dial-number-color:var(--md-time-picker-dial-number-color, var(--md-sys-color-on-surface, #1c1b1f));--_dial-number-active-color:var(--md-time-picker-dial-number-active-color, var(--md-sys-color-on-primary, #ffffff));--_dial-hand-color:var(--md-time-picker-dial-hand-color, var(--md-sys-color-primary, #6750a4));--_dial-target-size:var(--md-time-picker-dial-target-size, 48px);--_input-bg:var(--md-time-picker-input-bg, var(--md-sys-color-surface-container-highest, #e6e0e9));--_input-color:var(--md-time-picker-input-color, var(--md-sys-color-on-surface, #1c1b1f));--_input-outline-color:var(--md-time-picker-input-outline-color, transparent);--_input-active-outline-color:var(--md-time-picker-input-active-outline-color, var(--md-sys-color-primary, #6750a4));--_input-error-color:var(--md-time-picker-input-error-color, var(--md-sys-color-error, #b3261e));--_input-hint-color:var(--md-time-picker-input-hint-color, var(--md-sys-color-on-surface-variant, #49454f));--_action-color:var(--md-time-picker-action-color, var(--md-sys-color-primary, #6750a4));--_action-primary-color:var(--md-time-picker-action-primary-color, var(--md-sys-color-primary, #6750a4));--_toggle-icon-color:var(--md-time-picker-toggle-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_dialog-padding:var(--md-time-picker-dialog-padding, var(--md-sys-spacing-inset-xl, 24px));--_dialog-min-width:var(--md-time-picker-dialog-min-width, 328px);--_dialog-horizontal-width-12h:var(--md-time-picker-dialog-horizontal-width-12h, 572px);--_dialog-horizontal-width-24h:var(--md-time-picker-dialog-horizontal-width-24h, 608px);--_dialog-enter-duration:var(--md-time-picker-dialog-enter-duration, var(--md-sys-motion-duration-long2, 500ms));--_mode-swap-duration:var(--md-time-picker-mode-swap-duration, var(--md-sys-motion-duration-long1, 450ms));--_motion-easing:var(--md-time-picker-motion-easing, var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)));--_trigger-min-width:var(--md-time-picker-trigger-min-width, 240px);--_trigger-icon-size:var(--md-time-picker-trigger-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_trigger-shape:var(--md-time-picker-trigger-shape, var(--md-sys-shape-corner-extra-small, 4px));--_headline-font-size:var(--md-time-picker-headline-font-size, max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px)));--_headline-font-weight:var(--md-time-picker-headline-font-weight, var(--md-sys-typescale-label-medium-font-weight, 500));--_headline-spacing:var(--md-time-picker-headline-spacing, max(4px, calc(20px + var(--md-sys-density-scale, 0) * 2px)));--_input-height:var(--md-time-picker-input-height, calc(var(--_input-font-size) * 1.6));--_input-width:var(--md-time-picker-input-width, calc(var(--_input-height) * 4 / 3));--_input-border-width:var(--md-time-picker-input-border-width, 2px);--_input-font-size:var(--md-time-picker-input-font-size, max(32px, calc(45px + var(--md-sys-density-scale, 0) * 2px)));--_input-font-weight:var(--md-time-picker-input-font-weight, var(--md-sys-typescale-display-medium-font-weight, 400));--_input-active-bg:var(--md-time-picker-input-active-bg, var(--md-sys-color-primary-container, #eaddff));--_input-active-color:var(--md-time-picker-input-active-color, var(--md-sys-color-on-primary-container, #21005d));--_input-separator-color:var(--md-time-picker-input-separator-color, var(--_dialog-on-color));--_input-separator-width:var(--md-time-picker-input-separator-width, 24px);--_input-hint-gap:var(--md-time-picker-input-hint-gap, var(--md-sys-spacing-gap-xs, 4px));--_input-hover-opacity:var(--md-time-picker-input-hover-opacity, 8%);--_period-shape:var(--md-time-picker-period-shape, var(--md-sys-shape-corner-small, 8px));--_period-outline-width:var(--md-time-picker-period-outline-width, 1px);--_period-vertical-width:var(--md-time-picker-period-vertical-width, 52px);--_period-vertical-height:var(--md-time-picker-period-vertical-height, 80px);--_period-vertical-height-input:var(--md-time-picker-period-vertical-height-input, 72px);--_period-horizontal-width:var(--md-time-picker-period-horizontal-width, 216px);--_period-horizontal-height:var(--md-time-picker-period-horizontal-height, 38px);--_period-font-size:var(--md-time-picker-period-font-size, max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px)));--_period-font-weight:var(--md-time-picker-period-font-weight, 500);--_period-hover-opacity:var(--md-time-picker-period-hover-opacity, 8%);--_dial-size:var(--md-time-picker-dial-size, 256px);--_dial-center-size:var(--md-time-picker-dial-center-size, 8px);--_dial-hand-width:var(--md-time-picker-dial-hand-width, 2px);--_dial-number-font-size:var(--md-time-picker-dial-number-font-size, max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px)));--_dial-number-font-weight:var(--md-time-picker-dial-number-font-weight, var(--md-sys-typescale-body-large-font-weight, 400));--_dial-number-active-font-weight:var(--md-time-picker-dial-number-active-font-weight, 500);--_footer-gap:var(--md-time-picker-footer-gap, var(--md-sys-spacing-gap-sm, 8px));--_actions-gap:var(--md-time-picker-actions-gap, var(--md-sys-spacing-gap-sm, 8px));--_action-shape:var(--md-time-picker-action-shape, var(--md-sys-shape-corner-full, 9999px));--_action-confirm-bg:var(--md-time-picker-action-confirm-bg, transparent);--_action-cancel-bg:var(--md-time-picker-action-cancel-bg, transparent);--_toggle-bg:var(--md-time-picker-toggle-bg, transparent);--_toggle-icon-size:var(--md-time-picker-toggle-icon-size, max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px)));--_toggle-shape:var(--md-time-picker-toggle-shape, var(--md-sys-shape-corner-full, 9999px));display:inline-block;position:relative;font-family:var(--md-sys-typescale-body-large-font-family, Roboto, sans-serif);color:var(--_dialog-on-color)}:host([hide-trigger]){display:contents}:host([disabled]){cursor:not-allowed}.md-time-picker__field{min-inline-size:var(--_trigger-min-width);display:inline-flex;inline-size:auto;cursor:pointer;--md-text-field-label-color:var(--_trigger-icon-color);--md-text-field-input-color:var(--_trigger-color);--md-text-field-outline-color:var(--_trigger-outline-color);--md-text-field-active-indicator-color:var(--_trigger-focus-color);--md-text-field-icon-color:var(--_trigger-icon-color);--md-text-field-container-shape:var(--_trigger-shape)}.md-time-picker__field--disabled{cursor:not-allowed}.md-time-picker__field-icon{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons'), sans-serif;font-size:var(--_trigger-icon-size);line-height:1;color:var(--_trigger-icon-color);flex-shrink:0}.md-time-picker__field:hover:not(.md-time-picker__field--disabled) .md-time-picker__field-icon{color:var(--_trigger-hover-color)}:host(.md-time-picker--open) .md-time-picker__field{--md-text-field-active-indicator-color:var(--_trigger-focus-color);--md-text-field-icon-color:var(--_trigger-focus-color)}.md-time-picker__scrim{position:fixed;inset:0;z-index:var(--md-sys-z-index-popup, 1000);display:flex;align-items:center;justify-content:center;background:var(--_scrim-color);padding:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-scrim-in var(--md-sys-motion-duration-short3, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)) forwards;box-sizing:border-box}@keyframes md-time-picker-scrim-in{from{opacity:0}to{opacity:1}}.md-time-picker__dialog{background:var(--_dialog-color);color:var(--_dialog-on-color);border-radius:var(--_dialog-shape);box-shadow:var(--_dialog-elevation);padding:var(--_dialog-padding);width:min(var(--_dialog-min-width), calc(100vw - 48px));max-block-size:calc(100vh - 48px);max-block-size:calc(100dvh - 48px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;animation:md-time-picker-dialog-in var(--_dialog-enter-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__dialog--input{width:min(var(--_dialog-min-width), calc(100vw - 48px))}.md-time-picker__dialog--horizontal{width:min(var(--_dialog-horizontal-width-12h), calc(100vw - 48px))}:host(.md-time-picker--format-24h) .md-time-picker__dialog--horizontal{width:min(var(--_dialog-horizontal-width-24h), calc(100vw - 48px))}@keyframes md-time-picker-dialog-in{from{opacity:0;transform:translateY(12px) scale(0.88)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes md-time-picker-mode-in{from{opacity:0;transform:translateY(8px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}.md-time-picker__headline{font-size:var(--_headline-font-size);font-weight:var(--_headline-font-weight);letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);line-height:var(--md-sys-typescale-label-medium-line-height, 16px);color:var(--_headline-color);text-transform:none;margin-block-end:var(--_headline-spacing);text-align:start}.md-time-picker__body{display:flex;flex-direction:column}.md-time-picker__body--horizontal{flex-direction:row;align-items:flex-start;column-gap:52px}.md-time-picker__time-area{display:flex;flex-direction:column;flex:0 0 auto}.md-time-picker__body--horizontal .md-time-picker__dial-wrap{flex:0 0 auto}.md-time-picker__body--horizontal .md-time-picker__input-area{margin-block-end:0}.md-time-picker__body--horizontal .md-time-picker__period--horizontal{margin-block-start:var(--md-sys-spacing-inset-lg, 16px);margin-block-end:0;margin-inline:0}.md-time-picker__period{display:inline-flex;border:var(--_period-outline-width) solid var(--_period-outline-color);box-sizing:border-box}.md-time-picker__period--vertical{flex-direction:column;border-radius:var(--_period-shape);margin-inline-start:var(--md-sys-spacing-inset-md, 12px);inline-size:var(--_period-vertical-width);block-size:var(--_period-vertical-height)}.md-time-picker__input-area .md-time-picker__period--vertical{block-size:var(--_period-vertical-height-input)}.md-time-picker__period--horizontal{flex-direction:row;border-radius:var(--_period-shape);margin-block-start:var(--md-sys-spacing-inset-md, 12px);margin-block-end:var(--md-sys-spacing-inset-xl, 24px);margin-inline:auto;inline-size:var(--_period-horizontal-width);block-size:var(--_period-horizontal-height);align-self:center}.md-time-picker__period-btn{flex:1 1 0;background:var(--_period-bg);color:var(--_period-color);border:none;font:inherit;font-size:var(--_period-font-size);font-weight:var(--_period-font-weight);letter-spacing:0.1px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;position:relative;overflow:hidden;transition:background-color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}.md-time-picker__period-btn-label{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center}.md-time-picker__period--vertical .md-time-picker__period-btn{block-size:50%}.md-time-picker__period--horizontal .md-time-picker__period-btn{inline-size:50%;block-size:100%}.md-time-picker__period-btn:hover{background:color-mix(in srgb, var(--_period-color) var(--_period-hover-opacity), transparent)}.md-time-picker__period-btn--active{background:var(--_period-active-bg);color:var(--_period-active-color)}.md-time-picker__period-btn--active:hover{background:color-mix(in srgb, var(--_period-active-color) var(--_period-hover-opacity), var(--_period-active-bg))}.md-time-picker__period-btn:focus-visible{outline:3px solid var(--md-sys-color-secondary, #625b71);outline-offset:2px;z-index:1}.md-time-picker__period--vertical .md-time-picker__period-btn--am{border-block-end:var(--_period-outline-width) solid var(--_period-outline-color);border-start-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-start-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--vertical .md-time-picker__period-btn--pm{border-end-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--horizontal .md-time-picker__period-btn--am{border-inline-end:var(--_period-outline-width) solid var(--_period-outline-color);border-start-start-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-start-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__period--horizontal .md-time-picker__period-btn--pm{border-start-end-radius:calc(var(--_period-shape) - var(--_period-outline-width));border-end-end-radius:calc(var(--_period-shape) - var(--_period-outline-width))}.md-time-picker__dial-wrap{display:flex;justify-content:center;align-items:center;margin-block-end:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-mode-in var(--_mode-swap-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__dial{position:relative;width:var(--_dial-size);height:var(--_dial-size);background:var(--_dial-bg);border-radius:50%;touch-action:none;user-select:none;cursor:pointer;box-sizing:border-box}:host([disabled]) .md-time-picker__dial{pointer-events:none;opacity:0.38}.md-time-picker__dial-center{position:absolute;width:var(--_dial-center-size);height:var(--_dial-center-size);border-radius:50%;background:var(--_dial-hand-color);left:50%;top:50%;transform:translate(-50%, -50%);z-index:2}.md-time-picker__dial-hand{position:absolute;left:50%;top:auto;bottom:50%;width:0;height:50%;background:transparent;transform-origin:50% 100%;transform:rotate(0deg);transition:transform 200ms var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));pointer-events:none;z-index:1}.md-time-picker__dial-hand-line{position:absolute;left:50%;top:auto;bottom:0;width:var(--_dial-hand-width);height:var(--md-time-picker-hand-length, var(--_hand-length-dynamic, 100%));background:var(--_dial-hand-color);transform:translateX(-50%)}.md-time-picker__dial-hand-tip{position:absolute;left:50%;top:calc(100% - var(--md-time-picker-hand-length, var(--_hand-length-dynamic, 100%)));bottom:auto;width:var(--_dial-target-size);height:var(--_dial-target-size);background:var(--_dial-hand-color);border-radius:50%;transform:translate(-50%, -50%)}.md-time-picker__dial-hand-dot{display:none}.md-time-picker__dial-number{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:var(--_dial-target-size);height:var(--_dial-target-size);margin-left:calc(-1 * var(--_dial-target-size) / 2);margin-top:calc(-1 * var(--_dial-target-size) / 2);border-radius:50%;font-family:var(--md-sys-typescale-body-large-font-family, var(--md-sys-typescale-body-large-font, inherit));font-size:var(--_dial-number-font-size);font-weight:var(--_dial-number-font-weight);line-height:1;letter-spacing:0;color:var(--_dial-number-color);pointer-events:none;user-select:none;z-index:2;transition:color 150ms var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));font-variant-numeric:tabular-nums}.md-time-picker__dial-number--inner{color:var(--_dial-number-color);opacity:1}.md-time-picker__dial-number--active{color:var(--_dial-number-active-color);font-weight:var(--_dial-number-active-font-weight);opacity:1}.md-time-picker__input-area{margin-block-end:var(--md-sys-spacing-inset-xl, 24px);animation:md-time-picker-mode-in var(--_mode-swap-duration) var(--_motion-easing) both;transform-origin:center top}.md-time-picker__input-time{display:flex;align-items:flex-start;justify-content:center;gap:0}.md-time-picker__input-group{display:flex;flex-direction:column;align-items:center;gap:var(--_input-hint-gap)}.md-time-picker__input{font-family:inherit;font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:1;letter-spacing:var(--md-sys-typescale-display-medium-letter-spacing, 0);background:var(--_input-bg);color:var(--_input-color);border:var(--_input-border-width) solid var(--_input-outline-color);border-radius:var(--_time-display-shape);padding-block:0;padding-inline:16px;inline-size:var(--_input-width);block-size:var(--_input-height);text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;box-sizing:border-box}.md-time-picker__input::-webkit-outer-spin-button,.md-time-picker__input::-webkit-inner-spin-button{appearance:none;margin:0}.md-time-picker__input:hover{background:color-mix(in srgb, var(--_input-color) var(--_input-hover-opacity), var(--_input-bg))}.md-time-picker__input:focus{outline:none;background:var(--_input-bg);border-color:var(--_input-active-outline-color)}.md-time-picker__input--active{background:var(--_input-active-bg);color:var(--_input-active-color);border-color:transparent}.md-time-picker__input--active:focus{background:var(--_input-active-bg);color:var(--_input-active-color);border-color:var(--_input-active-outline-color)}.md-time-picker__input--active:hover{background:color-mix( in srgb, var(--_input-active-color) var(--_input-hover-opacity), var(--_input-active-bg) )}.md-time-picker__input--error,.md-time-picker__input--error:focus{border-color:var(--_input-error-color);color:var(--_input-error-color)}.md-time-picker__input-separator{font-size:var(--_input-font-size);font-weight:var(--_input-font-weight);line-height:1;color:var(--_input-separator-color);display:inline-flex;align-items:center;justify-content:center;inline-size:var(--_input-separator-width);block-size:var(--_input-height);align-self:flex-start}.md-time-picker__input-hint{font-size:var(--md-sys-typescale-body-small-font-size, 12px);letter-spacing:var(--md-sys-typescale-body-small-letter-spacing, 0.4px);color:var(--_input-hint-color)}.md-time-picker__input--error~.md-time-picker__input-hint{color:var(--_input-error-color)}.md-time-picker__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--_footer-gap)}.md-time-picker__toggle-mode{--md-icon-button-color:var(--_toggle-icon-color);--md-icon-button-icon-color:var(--_toggle-icon-color);--md-icon-button-icon-size:var(--_toggle-icon-size);--md-icon-button-container-color:var(--_toggle-bg);--md-icon-button-container-shape:var(--_toggle-shape)}.md-time-picker__actions{display:inline-flex;align-items:center;gap:var(--_actions-gap)}.md-time-picker__action-btn{--md-button-label-color:var(--_action-color);--md-button-container-color:var(--_action-cancel-bg);--md-button-container-shape:var(--_action-shape)}.md-time-picker__action-btn--primary{--md-button-label-color:var(--_action-primary-color);--md-button-container-color:var(--_action-confirm-bg);--md-button-container-shape:var(--_action-shape)}@media (prefers-reduced-motion: reduce){.md-time-picker__scrim,.md-time-picker__dialog,.md-time-picker__dial-wrap,.md-time-picker__input-area,.md-time-picker__dial-hand,.md-time-picker__period-btn,.md-time-picker__dial-number,.md-time-picker__input{animation:none !important;transition:none !important}}.md-time-picker__sr-status{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media (forced-colors: active){.md-time-picker__dialog{border:1px solid CanvasText}.md-time-picker__period,.md-time-picker__input,.md-time-picker__dial{border:1px solid CanvasText}.md-time-picker__input:hover,.md-time-picker__period-btn:hover{background:Canvas;color:CanvasText;forced-color-adjust:none}.md-time-picker__input:focus{background:Canvas;color:CanvasText;border-color:Highlight;forced-color-adjust:none}.md-time-picker__input--active,.md-time-picker__input--active:hover,.md-time-picker__input--active:focus,.md-time-picker__period-btn--active,.md-time-picker__period-btn--active:hover,.md-time-picker__dial-hand-line,.md-time-picker__dial-hand-tip,.md-time-picker__dial-center{background:Highlight;color:HighlightText;forced-color-adjust:none}.md-time-picker__input--error,.md-time-picker__input--error:focus,.md-time-picker__input--error:hover{background:Canvas;border-color:LinkText;color:LinkText;forced-color-adjust:none}.md-time-picker__period-btn:focus-visible{outline-color:Highlight}.md-time-picker__period--vertical .md-time-picker__period-btn--am{border-block-end-color:CanvasText}.md-time-picker__period--horizontal .md-time-picker__period-btn--am{border-inline-end-color:CanvasText}.md-time-picker__period-btn md-ripple{display:none}}:host-context([data-theme='dark']){--_scrim-color:var(--md-time-picker-scrim-color, rgba(0, 0, 0, 0.6))}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}:host([hidden]){display:none !important}`;const m=[];let p="";let u=0;const _=i(class i extends t{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdChange=e(this,"mdChange",7);this.mdInput=e(this,"mdInput",7);this.mdOpen=e(this,"mdOpen",7);this.mdClose=e(this,"mdClose",7);this.mdCancel=e(this,"mdCancel",7);this.mdModeChange=e(this,"mdModeChange",7);this.mdValidityChange=e(this,"mdValidityChange",5);this.internals=this.attachInternals();this.variant="input";this.format="12h";this.value="";this.name="";this.min="";this.max="";this.required=false;this.label="Select time";this.headline="";this.headlineInputLabel="Enter time";this.headlineDialLabel="Select time";this.valueMissingLabel="Please select a time.";this.rangeUnderflowLabel="Please select a time at or after {min}.";this.rangeOverflowLabel="Please select a time at or before {max}.";this.rangeOutsideLabel="Please select a time at or after {min} or at or before {max}.";this.disabled=false;this.open=false;this.minuteStep=1;this.cancelLabel="Cancel";this.okLabel="OK";this.hideTrigger=false;this.amLabel="AM";this.pmLabel="PM";this.hourLabel="Hour";this.minuteLabel="Minute";this.toggleDialLabel="Toggle dial picker";this.toggleInputLabel="Toggle keyboard input";this.periodLabel="Period";this.periodLayout="vertical";this.orientation="vertical";this.responsive=false;this.density=0;this.isOpen=false;this.mode="dial";this.selecting="hour";this.draftHours=12;this.draftMinutes=0;this.hourInputValue="";this.minuteInputValue="";this.hourInputError=false;this.minuteInputError=false;this.viewportWidth=0;this.viewportHeight=0;this.formDisabled=false;this.committedHours=12;this.committedMinutes=0;this.committedValue="";this.defaultValue="";this.isDragging=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;this.previousFocus=null;this.openSeq=0;this.uid=Math.random().toString(36).slice(2,11);this.headlineId=`md-time-picker-headline-${this.uid}`;this.hourCumulativeAngle=0;this.minuteCumulativeAngle=0;this.lastHandMode=null;this.lastValidityKey=null;this.lastInputEmitKey=-1;this.openPicker=()=>{if(this.isDisabled||this.isOpen)return;this.previousFocus=i.deepActiveElement();this.sampleViewport();this.attachOpenEnvironment();this.draftHours=this.committedHours;this.draftMinutes=this.committedMinutes;this.lastInputEmitKey=this.draftHours*60+this.draftMinutes;this.selecting="hour";this.mode=this.effectiveVariant;this.hourInputValue=String(this.displayHour);this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");this.hourInputError=false;this.minuteInputError=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;this.hourCumulativeAngle=0;this.minuteCumulativeAngle=0;this.lastHandMode=null;this.openSeq=++u;this.isOpen=true;this.open=true;this.mdOpen.emit();requestAnimationFrame((()=>this.focusInitial()))};this.closePicker=()=>{if(!this.isOpen)return;this.isOpen=false;this.open=false;this.detachOpenEnvironment();this.mdClose.emit();this.restoreFocusAfterClose()};this.cancel=()=>{if(!this.isOpen)return;this.draftHours=this.committedHours;this.draftMinutes=this.committedMinutes;this.mdCancel.emit();this.closePicker()};this.confirm=()=>{if(this.isDisabled)return;this.commitInputs();if(this.hourInputError||this.minuteInputError)return;this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;const i=this.buildChangeDetail(this.draftHours,this.draftMinutes);this.committedValue=i.value;this.value=i.value;this.updateFormValue();this.mdChange.emit(i);this.closePicker()};this.setSelecting=i=>{this.selecting=i};this.togglePeriod=i=>{if(this.format==="24h")return;if(this.period===i)return;if(i==="AM"&&this.draftHours>=12)this.draftHours-=12;else if(i==="PM"&&this.draftHours<12)this.draftHours+=12;this.emitInputIfChanged();this.syncInputsFromDraft()};this.onPeriodKeyDown=i=>{if(this.format==="24h")return;const t=i.key;const e=t==="ArrowLeft"||t==="ArrowRight"||t==="ArrowUp"||t==="ArrowDown"||t==="Home"||t==="End";if(!e&&t!==" "&&t!=="Spacebar")return;i.preventDefault();let r;if(t==="Home")r="AM";else if(t==="End")r="PM";else if(t===" "||t==="Spacebar")r=this.period;else r=this.period==="AM"?"PM":"AM";this.togglePeriod(r);requestAnimationFrame((()=>{const i=this.el.shadowRoot;if(!i)return;const t=i.querySelector(r==="AM"?'[part="period-am"]':'[part="period-pm"]');t?.focus()}))};this.toggleMode=()=>{const i=this.mode;this.mode=this.mode==="dial"?"input":"dial";this.mdModeChange.emit({mode:this.mode,previousMode:i});this.selecting="hour";this.hourInputValue=String(this.displayHour);this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");this.hourInputError=false;this.minuteInputError=false;this.hourInputSeeded=false;this.minuteInputSeeded=false;requestAnimationFrame((()=>{this.syncInputFields();this.focusInputSelectingAll(this.hourInputEl)}))};this.bindHourInput=i=>{if(!i){this.hourInputSeeded=false;this.hourInputEl=undefined;return}this.hourInputEl=i;if(!this.hourInputSeeded){i.value=this.hourInputValue;this.hourInputSeeded=true}};this.bindMinuteInput=i=>{if(!i){this.minuteInputSeeded=false;this.minuteInputEl=undefined;return}this.minuteInputEl=i;if(!this.minuteInputSeeded){i.value=this.minuteInputValue;this.minuteInputSeeded=true}};this.applyDialPointer=i=>{const t=this.dialPointFromEvent(i);if(!t)return;const{angle:e,distance:r,radius:a}=t;if(this.selecting==="hour"){const i=Math.round(e/30)%12;if(this.format==="12h"){const t=i===0?12:i;this.setHour24FromDisplay(t,this.period)}else{const t=r<a*.66;if(t){this.draftHours=i===0?0:12+i}else{this.draftHours=i===0?12:i}}}else{const i=Math.max(1,Math.min(30,this.minuteStep||1));let t=Math.round(e/6);t=Math.round(t/i)*i%60;this.draftMinutes=t}this.emitInputIfChanged();this.syncInputsFromDraft()};this.onDialPointerDown=i=>{if(this.isDisabled)return;i.preventDefault();this.isDragging=true;i.currentTarget?.setPointerCapture?.(i.pointerId);this.applyDialPointer(i)};this.onDialPointerMove=i=>{if(!this.isDragging)return;this.applyDialPointer(i)};this.onDialPointerUp=i=>{if(!this.isDragging)return;this.isDragging=false;i.currentTarget?.releasePointerCapture?.(i.pointerId);if(this.selecting==="hour"){this.selecting="minute";requestAnimationFrame((()=>{this.focusInputSelectingAll(this.minuteInputEl)}))}};this.onHostKeyDown=i=>{if(!this.isOpen)return;if(i.key==="Escape"){i.preventDefault();i.stopPropagation();this.cancel()}};this.commitInputs=()=>{this.applyInputsToDraft("both")};this.onHourInput=i=>{const t=i.target;const e=t.value.replace(/\D/g,"").slice(0,2);if(t.value!==e)t.value=e;this.hourInputValue=e;this.applyInputsToDraft("hour")};this.onMinuteInput=i=>{const t=i.target;const e=t.value.replace(/\D/g,"").slice(0,2);if(t.value!==e)t.value=e;this.minuteInputValue=e;this.applyInputsToDraft("minute")};this.onHourBlur=()=>{if(this.hourInputEl)this.hourInputValue=this.hourInputEl.value;this.commitInputs();if(!this.hourInputError&&parseInt(this.hourInputValue,10)===this.displayHour){this.hourInputValue=String(this.displayHour);if(this.hourInputEl)this.hourInputEl.value=this.hourInputValue}};this.onMinuteBlur=()=>{if(this.minuteInputEl)this.minuteInputValue=this.minuteInputEl.value;this.commitInputs();if(!this.minuteInputError&&parseInt(this.minuteInputValue,10)===this.draftMinutes){this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.minuteInputEl)this.minuteInputEl.value=this.minuteInputValue}};this.onInputKeyDown=i=>{if(i.key==="Enter"){i.preventDefault();if(this.hourInputEl)this.hourInputValue=this.hourInputEl.value;if(this.minuteInputEl)this.minuteInputValue=this.minuteInputEl.value;this.confirm();return}if(i.key==="ArrowUp"||i.key==="ArrowDown"){const t=i.target;const e=t===this.hourInputEl||t?.classList?.contains("md-time-picker__input-hour")===true;const r=t===this.minuteInputEl||t?.classList?.contains("md-time-picker__input-minute")===true;if(!e&&!r)return;i.preventDefault();this.bumpFocusedInput(i.key==="ArrowUp"?1:-1,e?"hour":"minute")}};this.onTriggerClick=i=>{if(this.isDisabled)return;i.preventDefault();this.openPicker()};this.onTriggerKeyDown=i=>{if(this.isDisabled)return;if(i.key==="Enter"||i.key===" "||i.key==="Spacebar"){i.preventDefault();i.stopPropagation();this.openPicker()}}}componentWillLoad(){if(!this.parseValueInto(this.value)){this.value=""}else if(this.value){this.value=this.toIso(this.draftHours,this.draftMinutes)}this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;this.committedValue=this.value;this.defaultValue=this.value;this.hourInputValue=String(this.computeDisplayHour(this.draftHours));this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.responsive)this.sampleViewport();this.mode=this.effectiveVariant;if(this.open&&!this.disabled){this.isOpen=true;this.selecting="hour"}else if(this.open&&this.disabled){this.open=false}this.updateFormValue()}componentDidLoad(){this.updateValidity();if(this.isOpen){this.openSeq=++u;this.previousFocus=i.deepActiveElement();this.attachOpenEnvironment();this.mdOpen.emit();requestAnimationFrame((()=>this.focusInitial()))}}connectedCallback(){if(this.isOpen)this.attachOpenEnvironment()}disconnectedCallback(){this.detachOpenEnvironment()}formResetCallback(){this.value=this.defaultValue;this.updateFormValue()}formDisabledCallback(i){this.formDisabled=i;if(i&&this.isOpen)this.cancel()}formStateRestoreCallback(i){if(typeof i==="string")this.value=i}handleVariantChange(i){if(!this.isOpen)this.mode=i}handleValueChange(i){let t;if(i===""){this.parseValueInto("");t=""}else if(this.parseValueInto(i)){t=this.toIso(this.draftHours,this.draftMinutes)}else{this.parseValueInto("");t=""}if(t!==i){this.value=t;return}this.committedHours=this.draftHours;this.committedMinutes=this.draftMinutes;this.committedValue=i;if(this.isOpen){this.syncInputsFromDraft();this.lastInputEmitKey=this.draftHours*60+this.draftMinutes}else{this.hourInputValue=String(this.computeDisplayHour(this.draftHours));this.minuteInputValue=String(this.draftMinutes).padStart(2,"0")}this.updateFormValue()}handleConstraintChange(){this.updateValidity()}handleDisabledChange(i){if(i&&this.isOpen)this.cancel()}handleResponsiveChange(t){if(!this.isOpen)return;if(t){this.sampleViewport();this.attachViewportListener();if(this.mode==="dial"&&this.viewportHeight>0&&this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT){this.mode="input"}}else{this.detachViewportListener()}}handleOpenPropChange(i){if(i&&!this.isOpen){this.openPicker()}else if(!i&&this.isOpen){this.closePicker()}}emitValidityChange(){const i=n(this.internals);const t=`${i.valid}|${i.validationMessage}`;if(this.lastValidityKey===t)return;const e=this.lastValidityKey!==null;this.lastValidityKey=t;if(e)this.mdValidityChange.emit(i)}async show(){this.openPicker()}async hide(){this.cancel()}async checkValidity(){if(typeof this.internals?.checkValidity!=="function")return true;return this.internals.checkValidity()}async reportValidity(){if(typeof this.internals?.reportValidity!=="function")return true;return this.internals.reportValidity()}async getValidity(){const i=this.internals?.validity;if(!i)return{valid:true,validationMessage:""};return{valid:i.valid,valueMissing:i.valueMissing,rangeUnderflow:i.rangeUnderflow,rangeOverflow:i.rangeOverflow,validationMessage:this.internals.validationMessage}}parseValueInto(i){if(!i){this.draftHours=12;this.draftMinutes=0;return true}const t=/^(\d{1,2}):(\d{2})$/.exec(i);if(!t)return false;const e=parseInt(t[1],10);const r=parseInt(t[2],10);if(e<0||e>23||r<0||r>59)return false;this.draftHours=e;this.draftMinutes=r;return true}get isDisabled(){return this.disabled||this.formDisabled}parseHHMM(i){const t=/^(\d{1,2}):(\d{2})$/.exec(i||"");if(!t)return null;const e=parseInt(t[1],10);const r=parseInt(t[2],10);if(e>23||r>59)return null;return e*60+r}toIso(i,t){return`${String(i).padStart(2,"0")}:${String(t).padStart(2,"0")}`}emitInputIfChanged(){if(!this.isOpen)return;const i=this.draftHours*60+this.draftMinutes;if(i===this.lastInputEmitKey)return;this.lastInputEmitKey=i;this.mdInput.emit(this.buildChangeDetail(this.draftHours,this.draftMinutes))}buildChangeDetail(i,t){const e=this.toIso(i,t);const r=`${e}:00`;const a=new Date;a.setHours(i,t,0,0);return{value:e,iso:r,isoDateTime:a.toISOString(),date:a,hours:i,minutes:t,period:i>=12?"PM":"AM"}}get period(){return this.draftHours>=12?"PM":"AM"}computeDisplayHour(i){if(this.format==="24h")return i;if(i===0)return 12;if(i>12)return i-12;return i}get displayHour(){return this.computeDisplayHour(this.draftHours)}setHour24FromDisplay(i,t){let e;if(this.format==="24h"){e=(i%24+24)%24}else{const r=i===0?12:i;if(r===12)e=t==="AM"?0:12;else e=t==="AM"?r:r+12}this.draftHours=e}formatDisplayTime(i,t){if(this.format==="24h"){return`${String(i).padStart(2,"0")}:${String(t).padStart(2,"0")}`}const e=i>=12?this.pmLabel:this.amLabel;const r=i===0?12:i>12?i-12:i;return`${r}:${String(t).padStart(2,"0")} ${e}`}focusInitial(){const i=this.el.shadowRoot;if(!i)return;this.syncInputFields();this.focusInputSelectingAll(this.hourInputEl)}focusInputSelectingAll(i){if(!i)return;i.focus();this.selectInputContents(i)}attachOpenEnvironment(){if(typeof document==="undefined"||this.docKeyHandler)return;if(!m.includes(this))m.push(this);if(document.body){if(m.length===1){p=document.body.style.overflow}document.body.style.overflow="hidden"}this.docKeyHandler=t=>{if(!this.isOpen)return;if(!i.isTopmostOpen(this))return;if(t.key==="Escape"){t.preventDefault();t.stopImmediatePropagation();this.cancel()}else if(t.key==="Tab"){this.trapFocus(t)}};document.addEventListener("keydown",this.docKeyHandler,true);this.attachViewportListener()}detachOpenEnvironment(){if(typeof document!=="undefined"&&this.docKeyHandler){document.removeEventListener("keydown",this.docKeyHandler,true);this.docKeyHandler=undefined;const i=m.indexOf(this);if(i!==-1)m.splice(i,1);if(document.body&&m.length===0){document.body.style.overflow=p}}this.detachViewportListener()}static isTopmostOpen(i){let t=null;for(const i of m){if(!t||i.openSeq>t.openSeq)t=i}return t===i}static deepActiveElement(){if(typeof document==="undefined")return null;let i=document.activeElement;while(i?.shadowRoot?.activeElement)i=i.shadowRoot.activeElement;return i??null}static composedContains(i,t){let e=t;while(e){if(e===i)return true;e=e instanceof ShadowRoot?e.host:e.parentNode}return false}restoreFocusAfterClose(){const t=this.previousFocus;this.previousFocus=null;const e=!!t&&t.isConnected&&typeof t.focus==="function"&&(typeof document==="undefined"||t!==document.body);if(e&&!i.composedContains(this.el,t)){t.focus();const e=i.deepActiveElement();if(e&&i.composedContains(t,e))return}if(this.isDisabled)return;if(this.triggerFieldEl)this.focusTrigger()}focusTrigger(){const i=this.triggerFieldEl;if(!i)return;if(typeof i.setFocus==="function")void i.setFocus();else i.focus?.()}dialogFocusables(){const i=this.el.shadowRoot?.querySelector(".md-time-picker__dialog");if(!i)return[];const t=Array.from(i.querySelectorAll("input, button, md-button, md-icon-button, [tabindex]"));return t.filter((i=>!i.hasAttribute("disabled")&&i.getAttribute("tabindex")!=="-1"))}focusItem(i){const t=i;if(typeof t.setFocus==="function"){void t.setFocus();return}const e=i.shadowRoot?.querySelector("button, input, [tabindex]");const r=e??i;r.focus();if(r instanceof HTMLInputElement)this.selectInputContents(r)}trapFocus(t){const e=this.dialogFocusables();if(!e.length)return;const r=i.deepActiveElement();const a=r?e.findIndex((t=>i.composedContains(t,r))):-1;const s=!t.shiftKey;if(a===-1){t.preventDefault();this.focusItem(e[s?0:e.length-1]);return}if(s&&a===e.length-1){t.preventDefault();this.focusItem(e[0])}else if(!s&&a===0){t.preventDefault();this.focusItem(e[e.length-1])}}sampleViewport(){if(typeof window==="undefined")return;this.viewportWidth=window.innerWidth||0;this.viewportHeight=window.innerHeight||0}attachViewportListener(){if(!this.responsive||typeof window==="undefined")return;if(this.viewportResizeHandler)return;let t=0;this.viewportResizeHandler=()=>{if(t)cancelAnimationFrame(t);t=requestAnimationFrame((()=>{this.sampleViewport();if(this.mode==="dial"&&this.viewportHeight>0&&this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT){this.mode="input"}t=0}))};window.addEventListener("resize",this.viewportResizeHandler,{passive:true});window.addEventListener("orientationchange",this.viewportResizeHandler,{passive:true})}detachViewportListener(){if(typeof window==="undefined")return;if(!this.viewportResizeHandler)return;window.removeEventListener("resize",this.viewportResizeHandler);window.removeEventListener("orientationchange",this.viewportResizeHandler);this.viewportResizeHandler=undefined}updateFormValue(){try{this.internals?.setFormValue(this.committedValue??"")}catch{}this.updateValidity()}updateValidity(){if(typeof this.internals?.setValidity!=="function")return;const i=this.triggerFieldEl;const t=(t,e)=>{if(e&&i)this.internals.setValidity(t,e,i);else if(e)this.internals.setValidity(t,e);else this.internals.setValidity(t)};const e=this.parseHHMM(this.committedValue);const r=this.parseHHMM(this.min);const a=this.parseHHMM(this.max);const s=i=>i.replace(/\{min\}/g,this.min).replace(/\{max\}/g,this.max);try{if(this.required&&e===null){t({valueMissing:true},this.valueMissingLabel)}else if(e!==null&&r!==null&&a!==null&&r>a){if(e<r&&e>a){t({rangeUnderflow:true,rangeOverflow:true},s(this.rangeOutsideLabel))}else{t({})}}else if(e!==null&&r!==null&&e<r){t({rangeUnderflow:true},s(this.rangeUnderflowLabel))}else if(e!==null&&a!==null&&e>a){t({rangeOverflow:true},s(this.rangeOverflowLabel))}else{t({})}}catch{}this.emitValidityChange()}syncInputFields(){if(this.hourInputEl)this.hourInputEl.value=String(this.displayHour);if(this.minuteInputEl)this.minuteInputEl.value=String(this.draftMinutes).padStart(2,"0")}syncInputsFromDraft(){const t=String(this.displayHour);const e=String(this.draftMinutes).padStart(2,"0");this.hourInputValue=t;this.minuteInputValue=e;this.hourInputError=false;this.minuteInputError=false;if(this.hourInputEl&&this.hourInputEl.value!==t){this.hourInputEl.value=t;if(i.deepActiveElement()===this.hourInputEl){this.selectInputContents(this.hourInputEl)}}if(this.minuteInputEl&&this.minuteInputEl.value!==e){this.minuteInputEl.value=e;if(i.deepActiveElement()===this.minuteInputEl){this.selectInputContents(this.minuteInputEl)}}}dialPointFromEvent(i){if(!this.dialEl)return null;const t=this.dialEl.getBoundingClientRect();const e=t.left+t.width/2;const r=t.top+t.height/2;const a=i.clientX-e;const s=i.clientY-r;const n=Math.hypot(a,s);let o=Math.atan2(s,a)*(180/Math.PI);o=(o+90+360)%360;return{angle:o,distance:n,radius:t.width/2}}applyInputsToDraft(i){const t=parseInt(this.hourInputValue,10);const e=parseInt(this.minuteInputValue,10);const r=this.format==="24h"?0:1;const a=this.format==="24h"?23:12;const s=!isNaN(t)&&t>=r&&t<=a;const n=!isNaN(e)&&e>=0&&e<=59;if(i==="hour"||i==="both")this.hourInputError=!s;if(i==="minute"||i==="both")this.minuteInputError=!n;if(s&&n){this.draftMinutes=e;this.setHour24FromDisplay(t,this.period);this.emitInputIfChanged();return true}return false}get hourValueNow(){const i=parseInt(this.hourInputValue,10);return Number.isNaN(i)?this.displayHour:i}get minuteValueNow(){const i=parseInt(this.minuteInputValue,10);return Number.isNaN(i)?this.draftMinutes:i}bumpFocusedInput(i,t){if(t==="hour"){const t=this.hourInputError?this.displayHour:this.hourValueNow;if(this.format==="24h"){this.draftHours=((t+i)%24+24)%24}else{const e=t;let r=e+i;if(r>12)r=1;else if(r<1)r=12;this.setHour24FromDisplay(r,this.period)}this.hourInputError=false;this.hourInputValue=String(this.displayHour);if(this.hourInputEl){this.hourInputEl.value=this.hourInputValue;this.selectInputContents(this.hourInputEl)}}else{const t=Math.max(1,Math.min(30,this.minuteStep||1));const e=this.minuteInputError?this.draftMinutes:this.minuteValueNow;const r=Math.round(e/t)*t;this.draftMinutes=((r+i*t)%60+60)%60;this.minuteInputError=false;this.minuteInputValue=String(this.draftMinutes).padStart(2,"0");if(this.minuteInputEl){this.minuteInputEl.value=this.minuteInputValue;this.selectInputContents(this.minuteInputEl)}}this.emitInputIfChanged()}selectInputContents(i){if(typeof i.select!=="function")return;try{i.select()}catch{}}renderTrigger(){if(this.hideTrigger)return null;const i=this.committedValue?this.formatDisplayTime(this.committedHours,this.committedMinutes):"";const t=i?`${this.label}, ${i}`:this.label;return r("md-text-field",{class:{"md-time-picker__field":true,"md-time-picker__field--disabled":this.isDisabled,"md-time-picker__field--filled":!!i,"md-time-picker__field--open":this.isOpen},variant:"outlined",readOnly:true,label:this.label,value:i,disabled:this.isDisabled,required:this.required,part:"trigger","aria-haspopup":"dialog","aria-expanded":String(this.isOpen),"aria-label":t,appearFocused:this.isOpen,ref:i=>{this.triggerFieldEl=i},onClick:this.onTriggerClick,onKeyDown:this.onTriggerKeyDown},r("span",{slot:"leading-icon",class:"md-time-picker__field-icon material-symbols-outlined",part:"trigger-icon","aria-hidden":"true"},"schedule"))}get effectivePeriodLayout(){if(this.mode==="input")return"vertical";if(this.effectiveOrientation==="horizontal"&&this.mode==="dial")return"horizontal";return this.periodLayout}get effectiveVariant(){if(!this.responsive)return this.variant;if(!this.viewportHeight)return this.variant;if(this.viewportHeight<i.ADAPTIVE_MIN_DIAL_HEIGHT)return"input";return this.variant}get effectiveOrientation(){if(!this.responsive)return this.orientation;if(!this.viewportWidth||!this.viewportHeight)return this.orientation;if(this.mode!=="dial")return this.orientation;if(this.orientation==="vertical"&&this.viewportWidth>=i.ADAPTIVE_LANDSCAPE_WIDTH&&this.viewportWidth>this.viewportHeight){return"horizontal"}if(this.orientation==="horizontal"&&this.viewportWidth<i.ADAPTIVE_DEMOTE_WIDTH){return"vertical"}return this.orientation}renderPeriodToggle(){const i=this.period;const t=this.effectivePeriodLayout==="horizontal";return r("div",{class:{"md-time-picker__period":true,"md-time-picker__period--vertical":!t,"md-time-picker__period--horizontal":t},role:"radiogroup","aria-label":this.periodLabel,"aria-orientation":t?"horizontal":"vertical",onKeyDown:this.onPeriodKeyDown,part:"period-toggle"},r("button",{type:"button",class:{"md-time-picker__period-btn":true,"md-time-picker__period-btn--am":true,"md-time-picker__period-btn--active":i==="AM"},role:"radio","aria-checked":String(i==="AM"),tabindex:i==="AM"?0:-1,onClick:()=>this.togglePeriod("AM"),part:"period-am"},r("md-ripple",{disabled:this.isDisabled,part:"period-am-ripple"}),r("span",{class:"md-time-picker__period-btn-label"},this.amLabel)),r("button",{type:"button",class:{"md-time-picker__period-btn":true,"md-time-picker__period-btn--pm":true,"md-time-picker__period-btn--active":i==="PM"},role:"radio","aria-checked":String(i==="PM"),tabindex:i==="PM"?0:-1,onClick:()=>this.togglePeriod("PM"),part:"period-pm"},r("md-ripple",{disabled:this.isDisabled,part:"period-pm-ripple"}),r("span",{class:"md-time-picker__period-btn-label"},this.pmLabel)))}advanceHandAngle(i,t){if(this.lastHandMode!==i){this.lastHandMode=i;if(i==="hour"){this.hourCumulativeAngle=t;return t}this.minuteCumulativeAngle=t;return t}const e=i==="hour"?this.hourCumulativeAngle:this.minuteCumulativeAngle;const r=((t-e)%360+540)%360-180;const a=e+r;if(i==="hour")this.hourCumulativeAngle=a;else this.minuteCumulativeAngle=a;return a}renderDial(){const i=this.selecting==="hour";const t=50;const e=.8;const a=.52;let s=0;let n=e;if(i){if(this.format==="12h"){const i=this.displayHour===12?0:this.displayHour;s=i*30}else{const i=this.draftHours;if(i===0){s=0;n=a}else if(i>=1&&i<=12){s=(i===12?0:i)*30}else{s=(i-12)*30;n=a}}}else{s=this.draftMinutes*6}const o=this.advanceHandAngle(i?"hour":"minute",s);return r("div",{class:"md-time-picker__dial-wrap",part:"dial-wrap"},r("div",{class:{"md-time-picker__dial":true,"md-time-picker__dial--minute":!i,"md-time-picker__dial--24h-hour":i&&this.format==="24h"},ref:i=>this.dialEl=i,onPointerDown:this.onDialPointerDown,onPointerMove:this.onDialPointerMove,onPointerUp:this.onDialPointerUp,onPointerCancel:this.onDialPointerUp,role:"presentation",part:"dial"},r("div",{class:"md-time-picker__dial-hand",style:{transform:`rotate(${o}deg)`,["--_hand-length-dynamic"]:`${n*100}%`},"aria-hidden":"true",part:"dial-hand"},r("span",{class:"md-time-picker__dial-hand-dot","aria-hidden":"true"}),r("span",{class:"md-time-picker__dial-hand-line","aria-hidden":"true"}),r("span",{class:"md-time-picker__dial-hand-tip","aria-hidden":"true"})),r("span",{class:"md-time-picker__dial-center","aria-hidden":"true"}),i?this.renderHourNumbers(t,e,a):this.renderMinuteNumbers(t,e)))}renderHourNumbers(i,t,e){const r=[];if(this.format==="12h"){for(let i=0;i<12;i++){const t=i===0?"12":String(i);r.push({label:t,angle:i*30,inner:false,value:i===0?12:i})}}else{for(let i=0;i<12;i++){const t=i===0?"12":String(i);r.push({label:t,angle:i*30,inner:false,value:i===0?12:i})}for(let i=0;i<12;i++){const t=i===0?"00":String(12+i);r.push({label:t,angle:i*30,inner:true,value:i===0?0:12+i})}}return r.map((r=>this.renderDialNumber(r.label,r.angle,r.inner,this.isHourActive(r.value),i,t,e,r.value)))}isHourActive(i){if(this.format==="12h"){return this.displayHour===i}return this.draftHours===i}renderMinuteNumbers(i,t){const e=[];for(let i=0;i<12;i++){const t=i*5;e.push({label:String(t).padStart(2,"0"),angle:t*6,value:t})}return e.map((e=>this.renderDialNumber(e.label,e.angle,false,this.draftMinutes===e.value,i,t,t,e.value)))}renderDialNumber(i,t,e,a,s,n,o,d){const l=e?s*o:s*n;const c=(t-90)*Math.PI/180;const h=50+Math.cos(c)*l;const m=50+Math.sin(c)*l;return r("span",{class:{"md-time-picker__dial-number":true,"md-time-picker__dial-number--inner":e,"md-time-picker__dial-number--active":a},style:{left:`${h}%`,top:`${m}%`},"data-value":String(d),"aria-hidden":"true"},i)}renderInputs(i=true){const t=this.selecting==="hour";return r("div",{class:"md-time-picker__input-area",part:"input-area"},r("div",{class:"md-time-picker__input-time"},r("div",{class:"md-time-picker__input-group"},r("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:{"md-time-picker__input":true,"md-time-picker__input-hour":true,"md-time-picker__input--active":t,"md-time-picker__input--error":this.hourInputError},maxLength:2,ref:this.bindHourInput,role:"spinbutton","aria-valuemin":this.format==="24h"?0:1,"aria-valuemax":this.format==="24h"?23:12,"aria-valuenow":this.hourInputError?undefined:this.hourValueNow,"aria-label":this.hourLabel,"aria-invalid":String(this.hourInputError),onInput:this.onHourInput,onFocus:()=>this.setSelecting("hour"),onBlur:this.onHourBlur,onKeyDown:this.onInputKeyDown,part:"input-hour"}),r("span",{class:"md-time-picker__input-hint"},this.hourLabel)),r("span",{class:"md-time-picker__input-separator","aria-hidden":"true"},":"),r("div",{class:"md-time-picker__input-group"},r("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:{"md-time-picker__input":true,"md-time-picker__input-minute":true,"md-time-picker__input--active":!t,"md-time-picker__input--error":this.minuteInputError},maxLength:2,ref:this.bindMinuteInput,role:"spinbutton","aria-valuemin":0,"aria-valuemax":59,"aria-valuenow":this.minuteInputError?undefined:this.minuteValueNow,"aria-label":this.minuteLabel,"aria-invalid":String(this.minuteInputError),onInput:this.onMinuteInput,onFocus:()=>this.setSelecting("minute"),onBlur:this.onMinuteBlur,onKeyDown:this.onInputKeyDown,part:"input-minute"}),r("span",{class:"md-time-picker__input-hint"},this.minuteLabel)),this.format==="12h"&&i&&this.renderPeriodToggle()))}renderDialog(){if(!this.isOpen)return null;const i=this.mode==="input";const t=!i&&this.effectiveOrientation==="horizontal";const e=this.effectivePeriodLayout;const a=this.headline||(i?this.headlineInputLabel:this.headlineDialLabel);const s=!i&&this.format==="12h"&&e==="horizontal";const n=i?null:r("div",{class:"md-time-picker__time-area",part:"time-area"},this.renderInputs(!s),s&&this.renderPeriodToggle());return r("div",{class:"md-time-picker__scrim",part:"scrim",onClick:i=>{if(i.target===i.currentTarget)this.cancel()}},r("div",{class:{"md-time-picker__dialog":true,"md-time-picker__dialog--dial":!i,"md-time-picker__dialog--input":i,"md-time-picker__dialog--horizontal":t,"md-time-picker__dialog--vertical":!t},role:"dialog","aria-modal":"true","aria-labelledby":this.headlineId,part:"dialog"},r("div",{class:"md-time-picker__headline",id:this.headlineId,part:"headline"},a),r("span",{class:"md-time-picker__sr-status","aria-live":"polite"},this.selecting==="hour"?this.hourLabel:this.minuteLabel),r("div",{class:{"md-time-picker__body":true,"md-time-picker__body--horizontal":t},part:"body"},n,i?this.renderInputs():this.renderDial()),r("div",{class:"md-time-picker__footer",part:"footer"},r("md-icon-button",{class:"md-time-picker__toggle-mode",variant:"standard",size:"sm",icon:i?"schedule":"keyboard","aria-label":i?this.toggleDialLabel:this.toggleInputLabel,onMdClick:this.toggleMode,part:"toggle-mode"}),r("div",{class:"md-time-picker__actions",part:"actions"},r("md-button",{class:"md-time-picker__action-btn",variant:"text",size:"sm",onMdClick:this.cancel,part:"cancel-button"},this.cancelLabel),r("md-button",{class:"md-time-picker__action-btn md-time-picker__action-btn--primary",variant:"text",size:"sm",onMdClick:this.confirm,part:"confirm-button"},this.okLabel)))))}render(){return r(a,{key:"fc26ef95beb41a122de3db24febbe9635c2381ec",class:{"md-time-picker":true,[`md-time-picker--${this.variant}`]:true,[`md-time-picker--format-${this.format}`]:true,"md-time-picker--open":this.isOpen,"md-time-picker--disabled":this.isDisabled},onKeyDown:this.onHostKeyDown},this.renderTrigger(),this.renderDialog())}static get formAssociated(){return true}get el(){return this}static get watchers(){return{variant:[{handleVariantChange:0}],value:[{handleValueChange:0}],min:[{handleConstraintChange:0}],max:[{handleConstraintChange:0}],required:[{handleConstraintChange:0}],valueMissingLabel:[{handleConstraintChange:0}],rangeUnderflowLabel:[{handleConstraintChange:0}],rangeOverflowLabel:[{handleConstraintChange:0}],rangeOutsideLabel:[{handleConstraintChange:0}],disabled:[{handleDisabledChange:0}],responsive:[{handleResponsiveChange:0}],open:[{handleOpenPropChange:0}]}}static get style(){return h()}},[65,"md-time-picker",{variant:[1],format:[1],value:[1537],name:[513],min:[1],max:[1],required:[516],label:[1],headline:[1],headlineInputLabel:[1,"headline-input-label"],headlineDialLabel:[1,"headline-dial-label"],valueMissingLabel:[1,"value-missing-label"],rangeUnderflowLabel:[1,"range-underflow-label"],rangeOverflowLabel:[1,"range-overflow-label"],rangeOutsideLabel:[1,"range-outside-label"],disabled:[516],open:[1540],minuteStep:[2,"minute-step"],cancelLabel:[1,"cancel-label"],okLabel:[1,"ok-label"],hideTrigger:[516,"hide-trigger"],amLabel:[1,"am-label"],pmLabel:[1,"pm-label"],hourLabel:[1,"hour-label"],minuteLabel:[1,"minute-label"],toggleDialLabel:[1,"toggle-dial-label"],toggleInputLabel:[1,"toggle-input-label"],periodLabel:[1,"period-label"],periodLayout:[1,"period-layout"],orientation:[1],responsive:[4],density:[514],isOpen:[32],mode:[32],selecting:[32],draftHours:[32],draftMinutes:[32],hourInputValue:[32],minuteInputValue:[32],hourInputError:[32],minuteInputError:[32],viewportWidth:[32],viewportHeight:[32],formDisabled:[32],show:[64],hide:[64],checkValidity:[64],reportValidity:[64],getValidity:[64]},undefined,{variant:[{handleVariantChange:0}],value:[{handleValueChange:0}],min:[{handleConstraintChange:0}],max:[{handleConstraintChange:0}],required:[{handleConstraintChange:0}],valueMissingLabel:[{handleConstraintChange:0}],rangeUnderflowLabel:[{handleConstraintChange:0}],rangeOverflowLabel:[{handleConstraintChange:0}],rangeOutsideLabel:[{handleConstraintChange:0}],disabled:[{handleDisabledChange:0}],responsive:[{handleResponsiveChange:0}],open:[{handleOpenPropChange:0}]}]);_.ADAPTIVE_MIN_DIAL_HEIGHT=460;_.ADAPTIVE_LANDSCAPE_WIDTH=720;_.ADAPTIVE_DEMOTE_WIDTH=620;function f(){if(typeof customElements==="undefined"){return}const i=["md-time-picker","md-button","md-icon-button","md-ripple","md-text-field"];i.forEach((i=>{switch(i){case"md-time-picker":if(!customElements.get(s(i))){customElements.define(s(i),_)}break;case"md-button":if(!customElements.get(s(i))){o()}break;case"md-icon-button":if(!customElements.get(s(i))){d()}break;case"md-ripple":if(!customElements.get(s(i))){l()}break;case"md-text-field":if(!customElements.get(s(i))){c()}break}}))}f();const g=_;const v=f;export{g as MdTimePicker,v as defineCustomElement};
2
2
  //# sourceMappingURL=md-time-picker.js.map
@@ -1,2 +1,2 @@
1
- import{p as t,H as o,c as s,h as e,d as n,F as a,t as r}from"./p-B7GMP_JD.js";import{L as i}from"./p-Bagkw96D.js";import{t as d}from"./p-DYBUr7K_.js";import{s as l,a as m,S as c}from"./p-BdEoSBtL.js";import{d as h}from"./p-DoHRoVfM.js";const u=()=>`:host{--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);--_container-elevation:var(--md-sys-elevation-0, none);--_icon-size:var(--md-button-icon-size, 18px);--_width:var(--md-button-width, auto);--_min-width:var( --md-button-min-width, max(40px, calc(var(--_size-min-width, 48px) + var(--md-sys-density-scale, 0) * 4px)) );--_max-width:var(--md-button-max-width, none);--_height:var(--md-button-height, auto);--_min-height:var( --md-button-min-height, max(24px, calc(var(--_size-min-height, 32px) + var(--md-sys-density-scale, 0) * 4px)) );display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;user-select:none;text-decoration:none;border:none;outline:3px solid transparent;outline-offset:2px;box-sizing:border-box;inline-size:var(--_width);block-size:var(--_height);min-inline-size:var(--_min-width);min-block-size:var(--_min-height);max-inline-size:var(--_max-width);background-color:var(--_container-color);color:var(--_label-color);box-shadow:var(--_container-elevation);--_shape-round:20px;transition:box-shadow var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), border-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), border-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)), color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));-webkit-tap-highlight-color:transparent;vertical-align:middle}:host(.md-button--xs){--_icon-size:var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));--_shape-round:16px;--_size-min-height:32px;--_size-min-width:48px;padding:0 max(6px, calc(12px + var(--md-sys-density-scale, 0) * 0.75px));gap:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px));font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);line-height:max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px))}:host(.md-button--sm){--_icon-size:var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));--_shape-round:20px;--_size-min-height:40px;--_size-min-width:58px;padding:0 max(8px, calc(16px + var(--md-sys-density-scale, 0) * 1px));gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-label-large-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-large-font-weight, 500);letter-spacing:var(--md-sys-typescale-label-large-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--md){--_icon-size:var(--md-button-icon-size, max(12px, calc(24px + var(--md-sys-density-scale, 0) * 3px)));--_shape-round:28px;--_size-min-height:56px;--_size-min-width:72px;padding:0 max(12px, calc(24px + var(--md-sys-density-scale, 0) * 1.5px));gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-small-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--lg){--_icon-size:var(--md-button-icon-size, max(16px, calc(32px + var(--md-sys-density-scale, 0) * 4px)));--_shape-round:48px;--_size-min-height:96px;--_size-min-width:88px;padding:0 max(24px, calc(48px + var(--md-sys-density-scale, 0) * 3px));gap:max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px));font-family:var(--md-sys-typescale-title-medium-font-family, Roboto, sans-serif);font-size:max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-medium-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-medium-letter-spacing, 0.15px);line-height:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--xl){--_icon-size:var(--md-button-icon-size, max(20px, calc(40px + var(--md-sys-density-scale, 0) * 5px)));--_shape-round:68px;--_size-min-height:136px;--_size-min-width:120px;padding:0 max(32px, calc(64px + var(--md-sys-density-scale, 0) * 4px));gap:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));font-family:var(--md-sys-typescale-headline-small-font-family, Roboto, sans-serif);font-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));font-weight:var(--md-sys-typescale-headline-small-font-weight, 400);letter-spacing:var(--md-sys-typescale-headline-small-letter-spacing, 0px);line-height:max(24px, calc(32px + var(--md-sys-density-scale, 0) * 2px))}:host(.md-button--full-width){display:flex;--_width:var(--md-button-width, 100%)}:host(.md-button--round){--_shape-rest:var(--md-button-container-shape, var(--_shape-round));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--xs){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-small, 8px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--sm){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--md){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--lg){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-large, 16px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--xl){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-extra-large, 28px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xs){--_morph-to:var(--md-sys-shape-corner-small, 8px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--sm){--_morph-to:var(--md-sys-shape-corner-medium, 12px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--md){--_morph-to:var(--md-sys-shape-corner-medium, 12px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--lg){--_morph-to:var(--md-sys-shape-corner-large, 16px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xl){--_morph-to:var(--md-sys-shape-corner-extra-large, 28px)}:host(.md-button--shape-morph.md-button--square.md-button--selected){--_morph-to:var(--md-button-container-shape, var(--_shape-round))}:host(.md-button--pressed.md-button--xs){--_morph-to:var(--md-sys-shape-corner-extra-small, 4px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--sm){--_morph-to:var(--md-sys-shape-corner-small, 8px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--md){--_morph-to:var(--md-sys-shape-corner-small, 8px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--lg){--_morph-to:var(--md-sys-shape-corner-medium, 12px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--xl){--_morph-to:var(--md-sys-shape-corner-large, 16px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--connected-left.md-button--xs),:host(.md-button--connected-right.md-button--xs){--_c-inner:4px}:host(.md-button--connected-left.md-button--sm),:host(.md-button--connected-right.md-button--sm){--_c-inner:8px}:host(.md-button--connected-left.md-button--md),:host(.md-button--connected-right.md-button--md){--_c-inner:8px}:host(.md-button--connected-left.md-button--lg),:host(.md-button--connected-right.md-button--lg){--_c-inner:16px}:host(.md-button--connected-left.md-button--xl),:host(.md-button--connected-right.md-button--xl){--_c-inner:20px}:host(.md-button--connected-left.md-button--connected-right){border-radius:var(--_c-inner)}:host(.md-button--round.md-button--connected-right:not(.md-button--connected-left)){border-start-start-radius:var(--_shape-round);border-end-start-radius:var(--_shape-round);border-start-end-radius:var(--_c-inner);border-end-end-radius:var(--_c-inner)}:host(.md-button--round.md-button--connected-left:not(.md-button--connected-right)){border-start-start-radius:var(--_c-inner);border-end-start-radius:var(--_c-inner);border-start-end-radius:var(--_shape-round);border-end-end-radius:var(--_shape-round)}:host(.md-button--square.md-button--connected-right:not(.md-button--connected-left)),:host(.md-button--square.md-button--connected-left:not(.md-button--connected-right)){border-radius:var(--_c-inner)}:host(.md-button--filled){--_container-color:var(--md-button-container-color, var(--md-sys-color-primary));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-primary));--_state-layer-color:var(--md-sys-color-on-primary)}:host(.md-button--filled:hover){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--filled:active){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--filled:focus-visible){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--outlined){--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);border:var(--md-button-outline-width, 1px) solid var(--md-button-outline-color, var(--md-sys-color-outline))}:host(.md-button--outlined.md-button--xs){padding:0 max(5.5px, calc(11px + var(--md-sys-density-scale, 0) * 0.6875px))}:host(.md-button--outlined.md-button--sm){padding:0 max(11.5px, calc(23px + var(--md-sys-density-scale, 0) * 1.4375px))}:host(.md-button--outlined.md-button--md){padding:0 max(13.5px, calc(27px + var(--md-sys-density-scale, 0) * 1.6875px))}:host(.md-button--outlined.md-button--lg){padding:0 max(15.5px, calc(31px + var(--md-sys-density-scale, 0) * 1.9375px))}:host(.md-button--outlined.md-button--xl){padding:0 max(23.5px, calc(47px + var(--md-sys-density-scale, 0) * 2.9375px))}:host(.md-button--outlined:hover:not(.md-button--disabled)){border-color:var(--md-button-outline-color, var(--md-sys-color-primary))}:host(.md-button--outlined:focus-visible){border-color:var(--md-button-outline-color, var(--md-sys-color-primary))}:host(.md-button--text){--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary)}:host(.md-button--elevated){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-low));--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--elevated:hover){--_container-elevation:var(--md-sys-elevation-2)}:host(.md-button--elevated:focus-visible){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--elevated:active){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--tonal){--_container-color:var(--md-button-container-color, var(--md-sys-color-secondary-container));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-secondary-container));--_state-layer-color:var(--md-sys-color-on-secondary-container)}:host(.md-button--tonal:hover){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--tonal:focus-visible){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--tonal:active){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--filled.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary)}:host(.md-button--tonal.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F)}:host(.md-button--outlined.md-button--toggle.md-button--selected:not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-secondary-container, #E8DEF8));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-secondary-container, #1E192B));--_state-layer-color:var(--md-sys-color-on-secondary-container, #1E192B);border-color:transparent}:host(.md-button--elevated.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F);--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--text.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F)}.md-button__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));pointer-events:none}:host(:hover) .md-button__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:active:not(.md-button--disabled)) .md-button__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12);transition-duration:var(--md-sys-motion-duration-short1, 50ms);transition-timing-function:var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1))}:host(:focus-visible) .md-button__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}:host(:focus-visible){outline-color:var(--md-sys-color-secondary);z-index:1}:host(.md-button--disabled){cursor:default;pointer-events:none;--_container-elevation:var(--md-sys-elevation-0, none) !important;transition:none}:host([soft-disabled]){cursor:default;pointer-events:auto}:host([soft-disabled]) .md-button__state-layer{display:none}:host(.md-button--filled.md-button--disabled),:host(.md-button--tonal.md-button--disabled){--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent)}:host(.md-button--elevated.md-button--disabled){--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--disabled){--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host(.md-button--outlined.md-button--disabled){--_container-color:transparent;border-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent)}:host(.md-button--text.md-button--disabled){--_container-color:transparent}:host(.md-button--disabled:hover) .md-button__state-layer,:host(.md-button--disabled:active) .md-button__state-layer,:host(.md-button--disabled:focus-visible) .md-button__state-layer{opacity:0}.md-button__icon,.md-button__trailing-icon{color:var(--md-button-icon-color, inherit);font-size:var(--_icon-size, 18px);width:var(--_icon-size, 18px);height:var(--_icon-size, 18px);display:flex;align-items:center;justify-content:center;flex-shrink:0}slot[name="leading-icon"],slot[name="trailing-icon"]{display:contents}::slotted([slot="leading-icon"]),::slotted([slot="trailing-icon"]){color:var(--md-button-icon-color, inherit);width:var(--_icon-size, 18px);height:var(--_icon-size, 18px);flex-shrink:0}.md-button__trailing-icon,::slotted([slot="trailing-icon"]){transition:transform var(--md-sys-motion-duration-short2, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host([aria-expanded="true"]:not([suppress-expand-icon-flip])) .md-button__trailing-icon,:host([aria-expanded="true"]:not([suppress-expand-icon-flip])) ::slotted([slot="trailing-icon"]){transform:rotate(180deg)}@media (prefers-reduced-motion: reduce){:host{transition:none}.md-button__state-layer{transition:none}.md-button__trailing-icon,::slotted([slot="trailing-icon"]){transition:none}}.md-button__label{display:flex;align-items:center;white-space:nowrap}.md-button__loading{--_loading-size:var(--md-button-loading-size, max(10px, calc(var(--_icon-size, 18px) * 0.7)));--md-loading-indicator-size:var(--_loading-size);--md-loading-indicator-shape-size:var(--_loading-size);--md-loading-indicator-color:currentColor;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.md-button__loading ::slotted(*){flex-shrink:0}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;font-size:var(--_icon-size, 18px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}:host([mirror-icon][dir="rtl"]) .md-button__icon,:host([mirror-icon][dir="rtl"]) .md-button__trailing-icon,:host([mirror-icon][dir="rtl"]) ::slotted([slot="leading-icon"]),:host([mirror-icon][dir="rtl"]) ::slotted([slot="trailing-icon"]){transform:scaleX(-1)}:host-context([dir="rtl"]):host([mirror-icon]) .md-button__icon,:host-context([dir="rtl"]):host([mirror-icon]) .md-button__trailing-icon,:host-context([dir="rtl"]):host([mirror-icon]) ::slotted([slot="leading-icon"]),:host-context([dir="rtl"]):host([mirror-icon]) ::slotted([slot="trailing-icon"]){transform:scaleX(-1)}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}.md-button__anchor{display:flex;align-items:center;justify-content:center;gap:inherit;inline-size:100%;block-size:100%;min-inline-size:0;color:inherit;font:inherit;text-decoration:none;outline:none}.md-button__anchor::after{content:'';position:absolute;inset:0;z-index:0}:host(:has(.md-button__anchor:focus-visible)){outline:var(--md-sys-state-focus-ring-width, 3px) solid var(--md-button-focus-ring-color, var(--md-sys-color-secondary, #625B71));outline-offset:var(--md-sys-state-focus-ring-offset, 2px)}:host([hidden]){display:none !important}`;const p=t(class t extends o{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdClick=s(this,"mdClick",7);this.mdChange=s(this,"mdChange",7);this.internals=this.attachInternals();this.type="button";this.variant="filled";this.size="sm";this.shape="round";this.disabled=false;this.softDisabled=false;this.ripple=true;this.loading=false;this.icon="";this.trailingIcon="";this.href="";this.target="_self";this.toggle=false;this.selected=false;this.shapeMorph=true;this.mirrorIcon=false;this.suppressExpandIconFlip=false;this.fullWidth=false;this.connectedLeft=false;this.connectedRight=false;this.value="";this.groupTabindex=null;this.roleOverride="";this.density=0;this.hasSlottedLeadingIcon=false;this.hasSlottedTrailingIcon=false;this.pressed=false;this.handleClick=t=>{if(this.isDisabled){t.preventDefault();return}const o=this.toggle?!this.selected:this.selected;const s=this.mdClick.emit({value:this.value,toggle:this.toggle,selected:o,href:this.href,target:this.target,originalEvent:t});if(s.defaultPrevented){t.preventDefault();return}if(this.toggle&&o!==this.selected){this.selected=o;this.mdChange.emit({selected:o,value:this.value})}if(this.href){const t=l(this.href);if(t&&!this.el.shadowRoot?.querySelector(".md-button__anchor")){window.open(t,this.target,m)}return}if(this.type==="submit"){this.internals.form?.requestSubmit()}else if(this.type==="reset"){this.internals.form?.reset()}};this.handleKeyDown=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();if(!this.isDisabled){this.pressed=true;d(this.el);this.el.click();setTimeout((()=>{this.pressed=false}),150)}}};this.handlePointerDown=()=>{if(!this.isDisabled)this.pressed=true};this.handlePointerUp=()=>{this.pressed=false}}get isDisabled(){return this.disabled||this.softDisabled||this.loading}componentDidLoad(){const t=this.el.shadowRoot;if(!t)return;const o=t.querySelector('slot[name="leading-icon"]');const s=t.querySelector('slot[name="trailing-icon"]');o?.addEventListener("slotchange",(()=>{this.hasSlottedLeadingIcon=o.assignedElements().length>0}));s?.addEventListener("slotchange",(()=>{this.hasSlottedTrailingIcon=s.assignedElements().length>0}))}render(){const t=this.isDisabled;const o=!!this.icon;const s=!!this.trailingIcon;const a=this.href&&!t?l(this.href):"";const r=!!this.target&&this.target!=="_self";return e(n,{key:"01b1d90db83f09f1095a24040c4631b55216847f",class:{"md-button":true,[`md-button--${this.variant}`]:true,[`md-button--${this.size}`]:true,[`md-button--${this.shape}`]:true,"md-button--with-leading-icon":o||this.hasSlottedLeadingIcon,"md-button--with-trailing-icon":s||this.hasSlottedTrailingIcon,"md-button--disabled":this.disabled||this.softDisabled,"md-button--loading":this.loading,"md-button--toggle":this.toggle,"md-button--selected":this.selected,"md-button--shape-morph":this.shapeMorph,"md-button--pressed":this.shapeMorph&&this.pressed,"md-button--connected-left":this.connectedLeft,"md-button--connected-right":this.connectedRight,"md-button--full-width":this.fullWidth},role:this.roleOverride||(a?null:"button"),"aria-disabled":t?"true":"false","aria-pressed":this.toggle?String(this.selected):undefined,tabindex:a?null:this.disabled?"-1":this.groupTabindex!==null?String(this.groupTabindex):"0",onClick:this.handleClick,onKeyDown:this.handleKeyDown,onPointerDown:this.handlePointerDown,onPointerUp:this.handlePointerUp,onPointerLeave:this.handlePointerUp,onPointerCancel:this.handlePointerUp},a?e("a",{class:"md-button__anchor",part:"anchor",role:"link",href:a,target:this.target||undefined,rel:r?c:undefined,tabindex:this.groupTabindex!==null?String(this.groupTabindex):"0","aria-disabled":t?"true":null},this.renderContent(t,o,s)):this.renderContent(t,o,s))}renderContent(t,o,s){return e(a,null,this.ripple&&e("md-ripple",{disabled:t}),e("span",{class:"md-button__state-layer",part:"state-layer","aria-hidden":"true"}),e("slot",{name:"leading-icon"},o&&e("span",{class:"md-button__icon material-symbols-outlined",part:"icon"},this.icon)),e("span",{class:"md-button__label",part:"label"},e("slot",null)),e("slot",{name:"trailing-icon"},s&&e("span",{class:"md-button__trailing-icon material-symbols-outlined",part:"trailing-icon"},this.trailingIcon)),this.loading&&e("span",{class:"md-button__loading",part:"loading","aria-hidden":"true"},e("slot",{name:"loader"},e(i,{class:"md-button__loading-default"}))))}static get formAssociated(){return true}get el(){return this}static get style(){return u()}},[321,"md-button",{type:[513],variant:[1],size:[1],shape:[1],disabled:[516],softDisabled:[516,"soft-disabled"],ripple:[4],loading:[4],icon:[1],trailingIcon:[1,"trailing-icon"],href:[1],target:[1],toggle:[4],selected:[1028],shapeMorph:[4,"shape-morph"],mirrorIcon:[516,"mirror-icon"],suppressExpandIconFlip:[516,"suppress-expand-icon-flip"],fullWidth:[516,"full-width"],connectedLeft:[516,"connected-left"],connectedRight:[516,"connected-right"],value:[1],groupTabindex:[1026,"group-tabindex"],roleOverride:[1,"role-override"],density:[514],hasSlottedLeadingIcon:[32],hasSlottedTrailingIcon:[32],pressed:[32]}]);function b(){if(typeof customElements==="undefined"){return}const t=["md-button","md-ripple"];t.forEach((t=>{switch(t){case"md-button":if(!customElements.get(r(t))){customElements.define(r(t),p)}break;case"md-ripple":if(!customElements.get(r(t))){h()}break}}))}b();export{p as M,b as d};
2
- //# sourceMappingURL=p-GG1ZMEng.js.map
1
+ import{p as t,H as o,c as s,h as e,d as n,F as a,t as r}from"./p-B7GMP_JD.js";import{L as i}from"./p-Bagkw96D.js";import{t as d}from"./p-DYBUr7K_.js";import{s as l,a as m,S as c}from"./p-BdEoSBtL.js";import{d as h}from"./p-DoHRoVfM.js";const u=()=>`:host{--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);--_container-elevation:var(--md-sys-elevation-0, none);--_icon-size:var(--md-button-icon-size, 18px);--_width:var(--md-button-width, auto);--_min-width:var( --md-button-min-width, max(40px, calc(var(--_size-min-width, 48px) + var(--md-sys-density-scale, 0) * 4px)) );--_max-width:var(--md-button-max-width, none);--_height:var(--md-button-height, auto);--_min-height:var( --md-button-min-height, max(24px, calc(var(--_size-min-height, 32px) + var(--md-sys-density-scale, 0) * 4px)) );display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;user-select:none;text-decoration:none;border:none;outline:3px solid transparent;outline-offset:2px;box-sizing:border-box;inline-size:var(--_width);block-size:var(--_height);min-inline-size:var(--_min-width);min-block-size:var(--_min-height);max-inline-size:var(--_max-width);background-color:var(--_container-color);color:var(--_label-color);box-shadow:var(--_container-elevation);--_shape-round:20px;transition:box-shadow var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), border-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)), border-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)), color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));-webkit-tap-highlight-color:transparent;vertical-align:middle}:host(.md-button--xs){--_icon-size:var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));--_shape-round:16px;--_size-min-height:32px;--_size-min-width:48px;padding:0 max(6px, calc(12px + var(--md-sys-density-scale, 0) * 0.75px));gap:max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px));font-family:var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);font-size:max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-medium-font-weight, 500);letter-spacing:var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);line-height:max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px))}:host(.md-button--sm){--_icon-size:var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));--_shape-round:20px;--_size-min-height:40px;--_size-min-width:58px;padding:0 max(8px, calc(16px + var(--md-sys-density-scale, 0) * 1px));gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-label-large-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-label-large-font-weight, 500);letter-spacing:var(--md-sys-typescale-label-large-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--md){--_icon-size:var(--md-button-icon-size, max(12px, calc(24px + var(--md-sys-density-scale, 0) * 3px)));--_shape-round:28px;--_size-min-height:56px;--_size-min-width:72px;padding:0 max(12px, calc(24px + var(--md-sys-density-scale, 0) * 1.5px));gap:max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));font-family:var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);font-size:max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-small-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-small-letter-spacing, 0.1px);line-height:max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--lg){--_icon-size:var(--md-button-icon-size, max(16px, calc(32px + var(--md-sys-density-scale, 0) * 4px)));--_shape-round:48px;--_size-min-height:96px;--_size-min-width:88px;padding:0 max(24px, calc(48px + var(--md-sys-density-scale, 0) * 3px));gap:max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px));font-family:var(--md-sys-typescale-title-medium-font-family, Roboto, sans-serif);font-size:max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));font-weight:var(--md-sys-typescale-title-medium-font-weight, 500);letter-spacing:var(--md-sys-typescale-title-medium-letter-spacing, 0.15px);line-height:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px))}:host(.md-button--xl){--_icon-size:var(--md-button-icon-size, max(20px, calc(40px + var(--md-sys-density-scale, 0) * 5px)));--_shape-round:68px;--_size-min-height:136px;--_size-min-width:120px;padding:0 max(32px, calc(64px + var(--md-sys-density-scale, 0) * 4px));gap:max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));font-family:var(--md-sys-typescale-headline-small-font-family, Roboto, sans-serif);font-size:max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));font-weight:var(--md-sys-typescale-headline-small-font-weight, 400);letter-spacing:var(--md-sys-typescale-headline-small-letter-spacing, 0px);line-height:max(24px, calc(32px + var(--md-sys-density-scale, 0) * 2px))}:host(.md-button--full-width){display:flex;--_width:var(--md-button-width, 100%)}:host(.md-button--round){--_shape-rest:var(--md-button-container-shape, var(--_shape-round));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--xs){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-small, 8px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--sm){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--md){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--lg){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-large, 16px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--square.md-button--xl){--_shape-rest:var(--md-button-container-shape, var(--md-sys-shape-corner-extra-large, 28px));border-radius:calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)))}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xs){--_morph-to:var(--md-sys-shape-corner-small, 8px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--sm){--_morph-to:var(--md-sys-shape-corner-medium, 12px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--md){--_morph-to:var(--md-sys-shape-corner-medium, 12px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--lg){--_morph-to:var(--md-sys-shape-corner-large, 16px)}:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xl){--_morph-to:var(--md-sys-shape-corner-extra-large, 28px)}:host(.md-button--shape-morph.md-button--square.md-button--selected){--_morph-to:var(--md-button-container-shape, var(--_shape-round))}:host(.md-button--pressed.md-button--xs){--_morph-to:var(--md-sys-shape-corner-extra-small, 4px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--sm){--_morph-to:var(--md-sys-shape-corner-small, 8px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--md){--_morph-to:var(--md-sys-shape-corner-small, 8px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--lg){--_morph-to:var(--md-sys-shape-corner-medium, 12px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--pressed.md-button--xl){--_morph-to:var(--md-sys-shape-corner-large, 16px);transition-duration:var(--md-sys-motion-duration-short4, 200ms);transition-timing-function:var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host(.md-button--connected-left.md-button--xs),:host(.md-button--connected-right.md-button--xs){--_c-inner:4px}:host(.md-button--connected-left.md-button--sm),:host(.md-button--connected-right.md-button--sm){--_c-inner:8px}:host(.md-button--connected-left.md-button--md),:host(.md-button--connected-right.md-button--md){--_c-inner:8px}:host(.md-button--connected-left.md-button--lg),:host(.md-button--connected-right.md-button--lg){--_c-inner:16px}:host(.md-button--connected-left.md-button--xl),:host(.md-button--connected-right.md-button--xl){--_c-inner:20px}:host(.md-button--connected-left.md-button--connected-right){border-radius:var(--_c-inner)}:host(.md-button--round.md-button--connected-right:not(.md-button--connected-left)){border-start-start-radius:var(--_shape-round);border-end-start-radius:var(--_shape-round);border-start-end-radius:var(--_c-inner);border-end-end-radius:var(--_c-inner)}:host(.md-button--round.md-button--connected-left:not(.md-button--connected-right)){border-start-start-radius:var(--_c-inner);border-end-start-radius:var(--_c-inner);border-start-end-radius:var(--_shape-round);border-end-end-radius:var(--_shape-round)}:host(.md-button--square.md-button--connected-right:not(.md-button--connected-left)),:host(.md-button--square.md-button--connected-left:not(.md-button--connected-right)){border-radius:var(--_c-inner)}:host(.md-button--filled){--_container-color:var(--md-button-container-color, var(--md-sys-color-primary));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-primary));--_state-layer-color:var(--md-sys-color-on-primary)}:host(.md-button--filled:hover){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--filled:active){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--filled:focus-visible){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--outlined){--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);border:var(--md-button-outline-width, 1px) solid var(--md-button-outline-color, var(--md-sys-color-outline))}:host(.md-button--outlined.md-button--xs){padding:0 max(5.5px, calc(11px + var(--md-sys-density-scale, 0) * 0.6875px))}:host(.md-button--outlined.md-button--sm){padding:0 max(11.5px, calc(23px + var(--md-sys-density-scale, 0) * 1.4375px))}:host(.md-button--outlined.md-button--md){padding:0 max(13.5px, calc(27px + var(--md-sys-density-scale, 0) * 1.6875px))}:host(.md-button--outlined.md-button--lg){padding:0 max(15.5px, calc(31px + var(--md-sys-density-scale, 0) * 1.9375px))}:host(.md-button--outlined.md-button--xl){padding:0 max(23.5px, calc(47px + var(--md-sys-density-scale, 0) * 2.9375px))}:host(.md-button--outlined:hover:not(.md-button--disabled)){border-color:var(--md-button-outline-color, var(--md-sys-color-primary))}:host(.md-button--outlined:focus-visible){border-color:var(--md-button-outline-color, var(--md-sys-color-primary))}:host(.md-button--text){--_container-color:var(--md-button-container-color, transparent);--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary)}:host(.md-button--elevated){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-low));--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary);--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--elevated:hover){--_container-elevation:var(--md-sys-elevation-2)}:host(.md-button--elevated:focus-visible){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--elevated:active){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--tonal){--_container-color:var(--md-button-container-color, var(--md-sys-color-secondary-container));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-secondary-container));--_state-layer-color:var(--md-sys-color-on-secondary-container)}:host(.md-button--tonal:hover){--_container-elevation:var(--md-sys-elevation-1)}:host(.md-button--tonal:focus-visible){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--tonal:active){--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--filled.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-primary));--_state-layer-color:var(--md-sys-color-primary)}:host(.md-button--tonal.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F)}:host(.md-button--outlined.md-button--toggle.md-button--selected:not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-secondary-container, #E8DEF8));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-secondary-container, #1E192B));--_state-layer-color:var(--md-sys-color-on-secondary-container, #1E192B);border-color:transparent}:host(.md-button--elevated.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_container-color:var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F);--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--text.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)){--_label-color:var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));--_state-layer-color:var(--md-sys-color-on-surface-variant, #49454F)}.md-button__state-layer{position:absolute;inset:0;border-radius:inherit;background-color:var(--_state-layer-color);opacity:0;transition:opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));pointer-events:none}:host(:hover) .md-button__state-layer{opacity:var(--md-sys-state-hover-state-layer-opacity, 0.08)}:host(:active:not(.md-button--disabled)) .md-button__state-layer{opacity:var(--md-sys-state-pressed-state-layer-opacity, 0.12);transition-duration:var(--md-sys-motion-duration-short1, 50ms);transition-timing-function:var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1))}:host(:focus-visible) .md-button__state-layer{opacity:var(--md-sys-state-focus-state-layer-opacity, 0.12)}:host(:focus-visible){outline-color:var(--md-sys-color-secondary);z-index:1}:host(.md-button--disabled){cursor:default;pointer-events:none;--_container-elevation:var(--md-sys-elevation-0, none) !important;transition:none}:host([soft-disabled]){cursor:default;pointer-events:auto}:host([soft-disabled]) .md-button__state-layer{display:none}:host(.md-button--filled.md-button--disabled),:host(.md-button--tonal.md-button--disabled){--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent)}:host(.md-button--elevated.md-button--disabled){--_container-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);--_container-elevation:var(--md-sys-elevation-0, none)}:host(.md-button--disabled){--_label-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent)}:host(.md-button--outlined.md-button--disabled){--_container-color:transparent;border-color:color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent)}:host(.md-button--text.md-button--disabled){--_container-color:transparent}:host(.md-button--disabled:hover) .md-button__state-layer,:host(.md-button--disabled:active) .md-button__state-layer,:host(.md-button--disabled:focus-visible) .md-button__state-layer{opacity:0}.md-button__icon,.md-button__trailing-icon{color:var(--md-button-icon-color, inherit);font-size:var(--_icon-size, 18px);width:var(--_icon-size, 18px);height:var(--_icon-size, 18px);display:flex;align-items:center;justify-content:center;flex-shrink:0}slot[name="leading-icon"],slot[name="trailing-icon"]{display:contents}::slotted([slot="leading-icon"]),::slotted([slot="trailing-icon"]){color:var(--md-button-icon-color, inherit);width:var(--_icon-size, 18px);height:var(--_icon-size, 18px);flex-shrink:0}.md-button__trailing-icon,::slotted([slot="trailing-icon"]){transition:transform var(--md-sys-motion-duration-short2, 150ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))}:host([aria-expanded="true"]:not([suppress-expand-icon-flip])) .md-button__trailing-icon,:host([aria-expanded="true"]:not([suppress-expand-icon-flip])) ::slotted([slot="trailing-icon"]){transform:rotate(180deg)}@media (prefers-reduced-motion: reduce){:host{transition:none}.md-button__state-layer{transition:none}.md-button__trailing-icon,::slotted([slot="trailing-icon"]){transition:none}}.md-button__label{display:flex;align-items:center;white-space:nowrap}.md-button__loading{--_loading-size:var(--md-button-loading-size, max(10px, calc(var(--_icon-size, 18px) * 0.7)));--md-loading-indicator-size:var(--_loading-size);--md-loading-indicator-shape-size:var(--_loading-size);--md-loading-indicator-color:currentColor;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.md-button__loading ::slotted(*){flex-shrink:0}.material-symbols-outlined{font-family:var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');font-weight:normal;font-style:normal;font-size:var(--_icon-size, 18px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;overflow-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}:host([mirror-icon][dir="rtl"]) .md-button__icon,:host([mirror-icon][dir="rtl"]) .md-button__trailing-icon,:host([mirror-icon][dir="rtl"]) ::slotted([slot="leading-icon"]),:host([mirror-icon][dir="rtl"]) ::slotted([slot="trailing-icon"]){transform:scaleX(-1)}:host-context([dir="rtl"]):host([mirror-icon]) .md-button__icon,:host-context([dir="rtl"]):host([mirror-icon]) .md-button__trailing-icon,:host-context([dir="rtl"]):host([mirror-icon]) ::slotted([slot="leading-icon"]),:host-context([dir="rtl"]):host([mirror-icon]) ::slotted([slot="trailing-icon"]){transform:scaleX(-1)}:host([density='-1']){--md-sys-density-scale:-1}:host([density='-2']){--md-sys-density-scale:-2}:host([density='-3']){--md-sys-density-scale:-3}:host([density='-4']){--md-sys-density-scale:-4}.md-button__anchor{display:flex;align-items:center;justify-content:center;gap:inherit;inline-size:100%;block-size:100%;min-inline-size:0;color:inherit;font:inherit;text-decoration:none;outline:none}.md-button__anchor::after{content:'';position:absolute;inset:0;z-index:0}:host(:has(.md-button__anchor:focus-visible)){outline:var(--md-sys-state-focus-ring-width, 3px) solid var(--md-button-focus-ring-color, var(--md-sys-color-secondary, #625B71));outline-offset:var(--md-sys-state-focus-ring-offset, 2px)}:host([hidden]){display:none !important}`;const p=t(class t extends o{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.mdClick=s(this,"mdClick",7);this.mdChange=s(this,"mdChange",7);this.internals=this.attachInternals();this.type="button";this.variant="filled";this.size="sm";this.shape="round";this.disabled=false;this.softDisabled=false;this.ripple=true;this.loading=false;this.icon="";this.trailingIcon="";this.href="";this.target="_self";this.toggle=false;this.selected=false;this.shapeMorph=true;this.mirrorIcon=false;this.suppressExpandIconFlip=false;this.fullWidth=false;this.connectedLeft=false;this.connectedRight=false;this.value="";this.groupTabindex=null;this.roleOverride="";this.density=0;this.hasSlottedLeadingIcon=false;this.hasSlottedTrailingIcon=false;this.pressed=false;this.handleClick=t=>{if(this.isDisabled){t.preventDefault();return}const o=this.toggle?!this.selected:this.selected;const s=this.mdClick.emit({value:this.value,toggle:this.toggle,selected:o,href:this.href,target:this.target,originalEvent:t});if(s.defaultPrevented){t.preventDefault();return}if(this.toggle&&o!==this.selected){this.selected=o;this.mdChange.emit({selected:o,value:this.value})}if(this.href){const o=l(this.href);if(!o)return;const s=this.el.shadowRoot?.querySelector(".md-button__anchor");if(!s||!t.composedPath().includes(s)){window.open(o,this.target,m)}return}if(this.type==="submit"){this.internals.form?.requestSubmit()}else if(this.type==="reset"){this.internals.form?.reset()}};this.handleKeyDown=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();if(!this.isDisabled){this.pressed=true;d(this.el);this.el.click();setTimeout((()=>{this.pressed=false}),150)}}};this.handlePointerDown=()=>{if(!this.isDisabled)this.pressed=true};this.handlePointerUp=()=>{this.pressed=false}}get isDisabled(){return this.disabled||this.softDisabled||this.loading}componentDidLoad(){const t=this.el.shadowRoot;if(!t)return;const o=t.querySelector('slot[name="leading-icon"]');const s=t.querySelector('slot[name="trailing-icon"]');o?.addEventListener("slotchange",(()=>{this.hasSlottedLeadingIcon=o.assignedElements().length>0}));s?.addEventListener("slotchange",(()=>{this.hasSlottedTrailingIcon=s.assignedElements().length>0}))}render(){const t=this.isDisabled;const o=!!this.icon;const s=!!this.trailingIcon;const a=this.href&&!t?l(this.href):"";const r=!!this.target&&this.target!=="_self";return e(n,{key:"be127994ceadc697fd589c22af7d7ecc3bc0908d",class:{"md-button":true,[`md-button--${this.variant}`]:true,[`md-button--${this.size}`]:true,[`md-button--${this.shape}`]:true,"md-button--with-leading-icon":o||this.hasSlottedLeadingIcon,"md-button--with-trailing-icon":s||this.hasSlottedTrailingIcon,"md-button--disabled":this.disabled||this.softDisabled,"md-button--loading":this.loading,"md-button--toggle":this.toggle,"md-button--selected":this.selected,"md-button--shape-morph":this.shapeMorph,"md-button--pressed":this.shapeMorph&&this.pressed,"md-button--connected-left":this.connectedLeft,"md-button--connected-right":this.connectedRight,"md-button--full-width":this.fullWidth},role:this.roleOverride||(a?null:"button"),"aria-disabled":t?"true":"false","aria-pressed":this.toggle?String(this.selected):undefined,tabindex:a?null:this.disabled?"-1":this.groupTabindex!==null?String(this.groupTabindex):"0",onClick:this.handleClick,onKeyDown:this.handleKeyDown,onPointerDown:this.handlePointerDown,onPointerUp:this.handlePointerUp,onPointerLeave:this.handlePointerUp,onPointerCancel:this.handlePointerUp},a?e("a",{class:"md-button__anchor",part:"anchor",role:"link",href:a,target:this.target||undefined,rel:r?c:undefined,tabindex:this.groupTabindex!==null?String(this.groupTabindex):"0","aria-disabled":t?"true":null},this.renderContent(t,o,s)):this.renderContent(t,o,s))}renderContent(t,o,s){return e(a,null,this.ripple&&e("md-ripple",{disabled:t}),e("span",{class:"md-button__state-layer",part:"state-layer","aria-hidden":"true"}),e("slot",{name:"leading-icon"},o&&e("span",{class:"md-button__icon material-symbols-outlined",part:"icon"},this.icon)),e("span",{class:"md-button__label",part:"label"},e("slot",null)),e("slot",{name:"trailing-icon"},s&&e("span",{class:"md-button__trailing-icon material-symbols-outlined",part:"trailing-icon"},this.trailingIcon)),this.loading&&e("span",{class:"md-button__loading",part:"loading","aria-hidden":"true"},e("slot",{name:"loader"},e(i,{class:"md-button__loading-default"}))))}static get formAssociated(){return true}get el(){return this}static get style(){return u()}},[321,"md-button",{type:[513],variant:[1],size:[1],shape:[1],disabled:[516],softDisabled:[516,"soft-disabled"],ripple:[4],loading:[4],icon:[1],trailingIcon:[1,"trailing-icon"],href:[1],target:[1],toggle:[4],selected:[1028],shapeMorph:[4,"shape-morph"],mirrorIcon:[516,"mirror-icon"],suppressExpandIconFlip:[516,"suppress-expand-icon-flip"],fullWidth:[516,"full-width"],connectedLeft:[516,"connected-left"],connectedRight:[516,"connected-right"],value:[1],groupTabindex:[1026,"group-tabindex"],roleOverride:[1,"role-override"],density:[514],hasSlottedLeadingIcon:[32],hasSlottedTrailingIcon:[32],pressed:[32]}]);function b(){if(typeof customElements==="undefined"){return}const t=["md-button","md-ripple"];t.forEach((t=>{switch(t){case"md-button":if(!customElements.get(r(t))){customElements.define(r(t),p)}break;case"md-ripple":if(!customElements.get(r(t))){h()}break}}))}b();export{p as M,b as d};
2
+ //# sourceMappingURL=p-QF3B4ODr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mdButtonCss","MdButton","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","type","variant","size","shape","disabled","softDisabled","ripple","loading","icon","trailingIcon","href","target","toggle","selected","shapeMorph","mirrorIcon","suppressExpandIconFlip","fullWidth","connectedLeft","connectedRight","value","groupTabindex","roleOverride","density","hasSlottedLeadingIcon","hasSlottedTrailingIcon","pressed","handleClick","e","isDisabled","preventDefault","nextSelected","evt","mdClick","emit","originalEvent","defaultPrevented","mdChange","sanitizeHref","anchor","el","shadowRoot","querySelector","composedPath","includes","window","open","SAFE_WINDOW_FEATURES","internals","form","requestSubmit","reset","handleKeyDown","key","triggerRipple","click","setTimeout","handlePointerDown","handlePointerUp","componentDidLoad","shadow","leadingSlot","trailingSlot","addEventListener","assignedElements","length","render","isEffectivelyDisabled","hasLeadingIcon","hasTrailingIcon","linkHref","opensNewContext","h","Host","class","role","String","undefined","tabindex","onClick","onKeyDown","onPointerDown","onPointerUp","onPointerLeave","onPointerCancel","part","rel","SAFE_LINK_REL","renderContent","Fragment","name","LazyLoadingIndicator"],"sources":["src/components/md-button/md-button.css?tag=md-button&encapsulation=shadow","src/components/md-button/md-button.tsx"],"sourcesContent":["/* ==========================================================\n md-button — Material Design 3 Common Button\n Spec: https://m3.material.io/components/buttons/specs\n API: https://developer.android.com/reference/kotlin/\n androidx/compose/material3/ButtonDefaults\n Supports M3 + M3 Expressive (size, shape)\n\n PUBLIC CSS CUSTOM PROPERTIES (override per-instance):\n --md-button-container-color Container background\n --md-button-label-color Label + icon text color\n --md-button-icon-color Icon-only color override\n --md-button-icon-size Icon dimensions\n --md-button-container-shape Border-radius override\n --md-button-outline-color Outlined border color\n --md-button-outline-width Outlined border width\n --md-button-width Fixed inline-size (default: auto)\n --md-button-min-width Minimum inline-size (default: per-size touch target)\n --md-button-max-width Maximum inline-size (default: none)\n --md-button-height Fixed block-size (default: auto)\n --md-button-min-height Minimum block-size (default: per-size touch target)\n\n CSS PARTS:\n state-layer State-layer overlay\n icon Leading icon (fallback)\n trailing-icon Trailing icon (fallback)\n label Label text wrapper\n loading Loading spinner\n\n SLOTS:\n leading-icon Custom leading icon (replaces icon prop)\n trailing-icon Custom trailing icon (replaces trailingIcon prop)\n\n RTL:\n Layout uses CSS logical properties throughout, so leading/\n trailing icons swap visual sides automatically in `dir=\"rtl\"`.\n Set the `mirror-icon` attribute on buttons that use directional\n glyphs (arrows, chevrons) so the icon path itself flips.\n ========================================================== */\n\n:host {\n --_container-color: var(--md-button-container-color, transparent);\n --_label-color: var(--md-button-label-color, var(--md-sys-color-primary));\n --_state-layer-color: var(--md-sys-color-primary);\n --_container-elevation: var(--md-sys-elevation-0, none);\n --_icon-size: var(--md-button-icon-size, 18px);\n\n /* Sizing — defaults come from each size class via --_size-* tokens.\n Public --md-button-{width,min-width,max-width,height,min-height}\n custom properties override per-instance for variable / full-width\n buttons without sacrificing the spec touch-target on resize. */\n --_width: var(--md-button-width, auto);\n /* Min-width tightens with density too (floored at 40px) so short-label\n buttons narrow, not just content-wide ones. Unchanged at density 0. */\n --_min-width: var(\n --md-button-min-width,\n max(40px, calc(var(--_size-min-width, 48px) + var(--md-sys-density-scale, 0) * 4px))\n );\n --_max-width: var(--md-button-max-width, none);\n --_height: var(--md-button-height, auto);\n /* Global density: on top of the size scale, each `data-density` rung (0…-4)\n trims 4px off the touch target, floored at 24px so small buttons stay\n usable. density-scale is 0 by default so the per-size height is unchanged. */\n --_min-height: var(\n --md-button-min-height,\n max(24px, calc(var(--_size-min-height, 32px) + var(--md-sys-density-scale, 0) * 4px))\n );\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n border: none;\n /* Transparent resting outline; focus-visible swaps outline-color in instantly.\n Deliberately NOT transitioned — on hydration the host's pre-upgrade UA outline\n (style:none, color:currentColor) animates to solid/transparent, which renders a\n dark ring that fades out on every button. Most visible when many mount at once\n (e.g. the 42 day cells in md-date-picker). Instant focus ring matches M3. */\n outline: 3px solid transparent;\n outline-offset: 2px;\n box-sizing: border-box;\n inline-size: var(--_width);\n block-size: var(--_height);\n min-inline-size: var(--_min-width);\n min-block-size: var(--_min-height);\n max-inline-size: var(--_max-width);\n background-color: var(--_container-color);\n color: var(--_label-color);\n box-shadow: var(--_container-elevation);\n --_shape-round: 20px;\n transition:\n box-shadow var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),\n background-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),\n border-color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),\n border-radius var(--md-sys-motion-duration-medium4, 400ms) var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1)),\n color var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n -webkit-tap-highlight-color: transparent;\n vertical-align: middle;\n}\n\n/* ==========================================================\n 1. SIZE\n XS (32px) · SM (40px, default) · MD (48px) · LG (56px) · XL (96px)\n ========================================================== */\n/* Icon<->label gap tapers with density like the rest of the button: the\n container height and icon already shrink per rung, so a frozen gap made\n compact buttons read as loosely spaced. Each tier halves across the range\n (rate = base/8 per rung), floored at half its base. */\n:host(.md-button--xs) {\n --_icon-size: var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));\n --_shape-round: 16px;\n --_size-min-height: 32px;\n --_size-min-width: 48px;\n /* 25% across the density range, floored at half. At 50% the inset shrank\n faster than the button did — a -4 sm button was still 24px tall but had\n only 8px of side padding, which read crammed. */\n padding: 0 max(6px, calc(12px + var(--md-sys-density-scale, 0) * 0.75px));\n gap: max(2px, calc(4px + var(--md-sys-density-scale, 0) * 0.5px));\n font-family: var(--md-sys-typescale-label-medium-font-family, Roboto, sans-serif);\n font-size: max(10px, calc(12px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-label-medium-font-weight, 500);\n letter-spacing: var(--md-sys-typescale-label-medium-letter-spacing, 0.5px);\n line-height: max(14px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));\n}\n\n:host(.md-button--sm) {\n --_icon-size: var(--md-button-icon-size, max(10px, calc(20px + var(--md-sys-density-scale, 0) * 2.5px)));\n --_shape-round: 20px;\n --_size-min-height: 40px;\n --_size-min-width: 58px;\n /* 25% across the density range, floored at half. At 50% the inset shrank\n faster than the button did — a -4 sm button was still 24px tall but had\n only 8px of side padding, which read crammed. */\n padding: 0 max(8px, calc(16px + var(--md-sys-density-scale, 0) * 1px));\n gap: max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));\n font-family: var(--md-sys-typescale-label-large-font-family, Roboto, sans-serif);\n font-size: max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n letter-spacing: var(--md-sys-typescale-label-large-letter-spacing, 0.1px);\n line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n:host(.md-button--md) {\n --_icon-size: var(--md-button-icon-size, max(12px, calc(24px + var(--md-sys-density-scale, 0) * 3px)));\n --_shape-round: 28px;\n --_size-min-height: 56px;\n --_size-min-width: 72px;\n /* 25% across the density range, floored at half. At 50% the inset shrank\n faster than the button did — a -4 sm button was still 24px tall but had\n only 8px of side padding, which read crammed. */\n padding: 0 max(12px, calc(24px + var(--md-sys-density-scale, 0) * 1.5px));\n gap: max(4px, calc(8px + var(--md-sys-density-scale, 0) * 1px));\n font-family: var(--md-sys-typescale-title-small-font-family, Roboto, sans-serif);\n font-size: max(12px, calc(14px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-title-small-font-weight, 500);\n letter-spacing: var(--md-sys-typescale-title-small-letter-spacing, 0.1px);\n line-height: max(16px, calc(20px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n:host(.md-button--lg) {\n --_icon-size: var(--md-button-icon-size, max(16px, calc(32px + var(--md-sys-density-scale, 0) * 4px)));\n --_shape-round: 48px;\n --_size-min-height: 96px;\n --_size-min-width: 88px;\n /* 25% across the density range, floored at half. At 50% the inset shrank\n faster than the button did — a -4 sm button was still 24px tall but had\n only 8px of side padding, which read crammed. */\n padding: 0 max(24px, calc(48px + var(--md-sys-density-scale, 0) * 3px));\n gap: max(6px, calc(12px + var(--md-sys-density-scale, 0) * 1.5px));\n font-family: var(--md-sys-typescale-title-medium-font-family, Roboto, sans-serif);\n font-size: max(13px, calc(16px + var(--md-sys-density-scale, 0) * 0.5px));\n font-weight: var(--md-sys-typescale-title-medium-font-weight, 500);\n letter-spacing: var(--md-sys-typescale-title-medium-letter-spacing, 0.15px);\n line-height: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n}\n\n:host(.md-button--xl) {\n --_icon-size: var(--md-button-icon-size, max(20px, calc(40px + var(--md-sys-density-scale, 0) * 5px)));\n --_shape-round: 68px;\n --_size-min-height: 136px;\n --_size-min-width: 120px;\n /* 25% across the density range, floored at half. At 50% the inset shrank\n faster than the button did — a -4 sm button was still 24px tall but had\n only 8px of side padding, which read crammed. */\n padding: 0 max(32px, calc(64px + var(--md-sys-density-scale, 0) * 4px));\n gap: max(8px, calc(16px + var(--md-sys-density-scale, 0) * 2px));\n font-family: var(--md-sys-typescale-headline-small-font-family, Roboto, sans-serif);\n font-size: max(18px, calc(24px + var(--md-sys-density-scale, 0) * 1px));\n font-weight: var(--md-sys-typescale-headline-small-font-weight, 400);\n letter-spacing: var(--md-sys-typescale-headline-small-letter-spacing, 0px);\n line-height: max(24px, calc(32px + var(--md-sys-density-scale, 0) * 2px));\n}\n\n/* ==========================================================\n 1b. FULL WIDTH — block-level, fills inline axis\n `full-width` switches the host from inline-flex to flex and stretches\n inline-size to 100% of the containing block. The size's\n --_size-min-height (touch target) is still in force, so the button\n keeps its spec block-size unless --md-button-height overrides it.\n --md-button-width still wins if explicitly set.\n ========================================================== */\n:host(.md-button--full-width) {\n display: flex;\n --_width: var(--md-button-width, 100%);\n}\n\n/* ==========================================================\n 2. SHAPE\n Round (default) · Square (scaled corner radius)\n Round uses --_shape-round (height/2 per size) instead of\n corner-full (9999px) so the browser can smoothly interpolate\n border-radius transitions between resting and morphed states.\n --md-button-container-shape overrides both.\n ========================================================== */\n/* The RESTING radius is named (--_shape-rest) so the morph states below can be\n expressed as a blend back toward it. --_morph-to carries the morphed target\n and defaults to the resting value, so a button with no active morph state\n resolves to exactly its resting radius:\n\n calc(REST + FLAG * (MORPH - REST)) FLAG 1 -> MORPH, FLAG 0 -> REST\n\n That is what makes `data-shape-morph=\"off\"` / `shape-morph=\"off\"` freeze the\n shape (§13 in tokens.css) without a re-render and without :host-context,\n which Firefox does not implement. */\n:host(.md-button--round) {\n --_shape-rest: var(--md-button-container-shape, var(--_shape-round));\n border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest)));\n}\n\n:host(.md-button--square.md-button--xs) { --_shape-rest: var(--md-button-container-shape, var(--md-sys-shape-corner-small, 8px)); border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest))); }\n:host(.md-button--square.md-button--sm) { --_shape-rest: var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px)); border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest))); }\n:host(.md-button--square.md-button--md) { --_shape-rest: var(--md-button-container-shape, var(--md-sys-shape-corner-medium, 12px)); border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest))); }\n:host(.md-button--square.md-button--lg) { --_shape-rest: var(--md-button-container-shape, var(--md-sys-shape-corner-large, 16px)); border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest))); }\n:host(.md-button--square.md-button--xl) { --_shape-rest: var(--md-button-container-shape, var(--md-sys-shape-corner-extra-large, 28px)); border-radius: calc(var(--_shape-rest) + var(--md-sys-shape-morph-enabled, 1) * (var(--_morph-to, var(--_shape-rest)) - var(--_shape-rest))); }\n\n/* ==========================================================\n 2b. SHAPE MORPHING — M3 Expressive\n Uses direct border-radius overrides for reliable transitions.\n\n Order: selected rules FIRST, pressed rules LAST so pressed\n always wins while the pointer is down.\n\n Asymmetric timing (M3 motion tokens):\n Release / selected : medium4 (400ms) + emphasized-decelerate\n Press-in : short4 (200ms) + standard\n ========================================================== */\n\n/* ── Selected shape — round resting → square tokens when selected ── */\n:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xs) { --_morph-to: var(--md-sys-shape-corner-small, 8px); }\n:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--sm) { --_morph-to: var(--md-sys-shape-corner-medium, 12px); }\n:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--md) { --_morph-to: var(--md-sys-shape-corner-medium, 12px); }\n:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--lg) { --_morph-to: var(--md-sys-shape-corner-large, 16px); }\n:host(.md-button--shape-morph.md-button--round.md-button--selected.md-button--xl) { --_morph-to: var(--md-sys-shape-corner-extra-large, 28px); }\n\n/* ── Selected shape — square resting → round when selected ── */\n:host(.md-button--shape-morph.md-button--square.md-button--selected) {\n --_morph-to: var(--md-button-container-shape, var(--_shape-round));\n}\n\n/* ── Pressed shape — both round & square morph to more square, overrides selected ── */\n:host(.md-button--pressed.md-button--xs) {\n --_morph-to: var(--md-sys-shape-corner-extra-small, 4px);\n transition-duration: var(--md-sys-motion-duration-short4, 200ms);\n transition-timing-function: var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n:host(.md-button--pressed.md-button--sm) {\n --_morph-to: var(--md-sys-shape-corner-small, 8px);\n transition-duration: var(--md-sys-motion-duration-short4, 200ms);\n transition-timing-function: var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n:host(.md-button--pressed.md-button--md) {\n --_morph-to: var(--md-sys-shape-corner-small, 8px);\n transition-duration: var(--md-sys-motion-duration-short4, 200ms);\n transition-timing-function: var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n:host(.md-button--pressed.md-button--lg) {\n --_morph-to: var(--md-sys-shape-corner-medium, 12px);\n transition-duration: var(--md-sys-motion-duration-short4, 200ms);\n transition-timing-function: var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n:host(.md-button--pressed.md-button--xl) {\n --_morph-to: var(--md-sys-shape-corner-large, 16px);\n transition-duration: var(--md-sys-motion-duration-short4, 200ms);\n transition-timing-function: var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n/* ==========================================================\n 2c. CONNECTED GROUP — per-corner border-radius\n Set by md-button-group when variant=\"connected\".\n shapeMorph is disabled for connected children so these rules\n only need to beat the base shape rules (section 2, specificity 0-1-0).\n ========================================================== */\n\n:host(.md-button--connected-left.md-button--xs),\n:host(.md-button--connected-right.md-button--xs) { --_c-inner: 4px; }\n:host(.md-button--connected-left.md-button--sm),\n:host(.md-button--connected-right.md-button--sm) { --_c-inner: 8px; }\n:host(.md-button--connected-left.md-button--md),\n:host(.md-button--connected-right.md-button--md) { --_c-inner: 8px; }\n:host(.md-button--connected-left.md-button--lg),\n:host(.md-button--connected-right.md-button--lg) { --_c-inner: 16px; }\n:host(.md-button--connected-left.md-button--xl),\n:host(.md-button--connected-right.md-button--xl) { --_c-inner: 20px; }\n\n/* Middle button — all corners inner */\n:host(.md-button--connected-left.md-button--connected-right) {\n border-radius: var(--_c-inner);\n}\n\n/* `connected-left` / `connected-right` reflect DOM-order siblings (set by\n md-button-group when a previous / next sibling exists), so the radii\n here must use logical corner properties to flip correctly under\n `dir=\"rtl\"`. The outer pill always lives on the free inline-start\n (first child) or inline-end (last child) edge. */\n\n/* First button (round) — pill on inline-start edge, inner on inline-end edge */\n:host(.md-button--round.md-button--connected-right:not(.md-button--connected-left)) {\n border-start-start-radius: var(--_shape-round);\n border-end-start-radius: var(--_shape-round);\n border-start-end-radius: var(--_c-inner);\n border-end-end-radius: var(--_c-inner);\n}\n\n/* Last button (round) — inner on inline-start edge, pill on inline-end edge */\n:host(.md-button--round.md-button--connected-left:not(.md-button--connected-right)) {\n border-start-start-radius: var(--_c-inner);\n border-end-start-radius: var(--_c-inner);\n border-start-end-radius: var(--_shape-round);\n border-end-end-radius: var(--_shape-round);\n}\n\n/* Square first / last — outer equals inner */\n:host(.md-button--square.md-button--connected-right:not(.md-button--connected-left)),\n:host(.md-button--square.md-button--connected-left:not(.md-button--connected-right)) {\n border-radius: var(--_c-inner);\n}\n\n/* ==========================================================\n 3. ICON PADDING\n An icon does NOT change the button's insets. The M3 Expressive size sheet\n specifies the SAME padding on both sides whether or not a leading icon is\n present (12/12, 16/16, 24/24, 48/48, 64/64) — the third number on those\n drawings is the icon-to-label gap, not a reduced leading inset. The size's\n base padding therefore applies symmetrically and there is nothing to override.\n ========================================================== */\n\n/* ==========================================================\n 4. COLOR VARIANTS\n --md-button-container-color and --md-button-label-color\n override the variant defaults when set.\n ========================================================== */\n\n/* Filled */\n:host(.md-button--filled) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-primary));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-primary));\n --_state-layer-color: var(--md-sys-color-on-primary);\n}\n:host(.md-button--filled:hover) { --_container-elevation: var(--md-sys-elevation-1); }\n:host(.md-button--filled:active) { --_container-elevation: var(--md-sys-elevation-0, none); }\n:host(.md-button--filled:focus-visible) { --_container-elevation: var(--md-sys-elevation-0, none); }\n\n/* Outlined */\n:host(.md-button--outlined) {\n --_container-color: var(--md-button-container-color, transparent);\n --_label-color: var(--md-button-label-color, var(--md-sys-color-primary));\n --_state-layer-color: var(--md-sys-color-primary);\n border: var(--md-button-outline-width, 1px) solid var(--md-button-outline-color, var(--md-sys-color-outline));\n}\n/* Variant padding follows the SAME density rule as the base size rules above:\n slope = base/16 (25% shrink across the four rungs) and a floor of base/2.\n These overrides previously decayed at 52-133% per the old tuning — text sm\n lost 133% of its inset and pinned to its floor by rung -2 — so outlined and\n text shrank far faster than the button did. Past rung -2 that INVERTED the\n variants: an outlined button, wider than filled at density 0, became\n narrower than it, and a row of mixed-variant buttons went visibly ragged.\n Density-0 values are unchanged; only the decay was corrected. */\n:host(.md-button--outlined.md-button--xs) { padding: 0 max(5.5px, calc(11px + var(--md-sys-density-scale, 0) * 0.6875px)); }\n:host(.md-button--outlined.md-button--sm) { padding: 0 max(11.5px, calc(23px + var(--md-sys-density-scale, 0) * 1.4375px)); }\n:host(.md-button--outlined.md-button--md) { padding: 0 max(13.5px, calc(27px + var(--md-sys-density-scale, 0) * 1.6875px)); }\n:host(.md-button--outlined.md-button--lg) { padding: 0 max(15.5px, calc(31px + var(--md-sys-density-scale, 0) * 1.9375px)); }\n:host(.md-button--outlined.md-button--xl) { padding: 0 max(23.5px, calc(47px + var(--md-sys-density-scale, 0) * 2.9375px)); }\n:host(.md-button--outlined:hover:not(.md-button--disabled)) {\n border-color: var(--md-button-outline-color, var(--md-sys-color-primary));\n}\n:host(.md-button--outlined:focus-visible) {\n border-color: var(--md-button-outline-color, var(--md-sys-color-primary));\n}\n\n/* Text */\n:host(.md-button--text) {\n --_container-color: var(--md-button-container-color, transparent);\n --_label-color: var(--md-button-label-color, var(--md-sys-color-primary));\n --_state-layer-color: var(--md-sys-color-primary);\n}\n/* Text buttons intentionally carry the SAME horizontal padding as every other\n variant (the base size rules above); there is deliberately no override here.\n They used to sit far tighter — a text button's inset was a third of a\n filled one's and pinned to its floor at tight densities (4px by rung -2).\n The container is invisible at rest, but the hover/press state layer is not:\n it paints the padding box, so a text button in a toggle strip beside a\n tonal or filled one showed a cramped pill hugging its label while its\n neighbour's was roomy, and the mismatch grew with density. Sharing the base\n padding keeps every state layer in a strip the same shape, and keeps a\n button's width stable if its variant changes to signal selection. */\n\n/* Elevated */\n:host(.md-button--elevated) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-surface-container-low));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-primary));\n --_state-layer-color: var(--md-sys-color-primary);\n --_container-elevation: var(--md-sys-elevation-1);\n}\n:host(.md-button--elevated:hover) { --_container-elevation: var(--md-sys-elevation-2); }\n:host(.md-button--elevated:focus-visible) { --_container-elevation: var(--md-sys-elevation-1); }\n:host(.md-button--elevated:active) { --_container-elevation: var(--md-sys-elevation-1); }\n\n/* Tonal */\n:host(.md-button--tonal) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-secondary-container));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-secondary-container));\n --_state-layer-color: var(--md-sys-color-on-secondary-container);\n}\n:host(.md-button--tonal:hover) { --_container-elevation: var(--md-sys-elevation-1); }\n:host(.md-button--tonal:focus-visible) { --_container-elevation: var(--md-sys-elevation-0, none); }\n:host(.md-button--tonal:active) { --_container-elevation: var(--md-sys-elevation-0, none); }\n\n/* ==========================================================\n 4b. TOGGLE SELECTED / UNSELECTED — MD3 spec\n When toggle=true, the unselected state is muted; selected\n shows the full variant color. Mirrors md-icon-button pattern.\n ========================================================== */\n\n/* The toggle-state rules below all carry `:not(.md-button--disabled)` so\n they drop out when the host becomes disabled. Without it, their higher\n specificity (4 classes vs the disabled rules' 2–3) would override the\n muted disabled palette and the button would still look enabled. */\n\n/* ── Filled toggle ── */\n:host(.md-button--filled.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-primary));\n --_state-layer-color: var(--md-sys-color-primary);\n}\n\n/* ── Tonal toggle ── */\n:host(.md-button--tonal.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_state-layer-color: var(--md-sys-color-on-surface-variant, #49454F);\n}\n\n/* ── Outlined toggle ── */\n:host(.md-button--outlined.md-button--toggle.md-button--selected:not(.md-button--disabled)) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-secondary-container, #E8DEF8));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-secondary-container, #1E192B));\n --_state-layer-color: var(--md-sys-color-on-secondary-container, #1E192B);\n border-color: transparent;\n}\n\n/* ── Elevated toggle ── */\n:host(.md-button--elevated.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)) {\n --_container-color: var(--md-button-container-color, var(--md-sys-color-surface-container-highest, #E6E0E9));\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_state-layer-color: var(--md-sys-color-on-surface-variant, #49454F);\n --_container-elevation: var(--md-sys-elevation-0, none);\n}\n\n/* ── Text toggle ── */\n:host(.md-button--text.md-button--toggle:not(.md-button--selected):not(.md-button--disabled)) {\n --_label-color: var(--md-button-label-color, var(--md-sys-color-on-surface-variant, #49454F));\n --_state-layer-color: var(--md-sys-color-on-surface-variant, #49454F);\n}\n\n/* ==========================================================\n 5. STATE LAYER\n ========================================================== */\n.md-button__state-layer {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: var(--_state-layer-color);\n opacity: 0;\n transition: opacity var(--md-sys-motion-duration-short2, 100ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n pointer-events: none;\n}\n:host(:hover) .md-button__state-layer {\n opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);\n}\n:host(:active:not(.md-button--disabled)) .md-button__state-layer {\n opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);\n transition-duration: var(--md-sys-motion-duration-short1, 50ms);\n transition-timing-function: var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1));\n}\n:host(:focus-visible) .md-button__state-layer {\n opacity: var(--md-sys-state-focus-state-layer-opacity, 0.12);\n}\n\n/* ==========================================================\n 6. FOCUS RING\n `z-index: 1` raises the focused button above its siblings so the\n outline is never clipped by a neighbor — important inside\n md-button-group, where connected groups have only 2px between\n buttons and standard groups animate neighbor padding on press.\n ========================================================== */\n/* Connected children inside md-button-group sit only 2px apart, so a\n 3px-outset focus ring naturally extends across the neighbor. The\n `z-index: 1` raise lets it draw *on top* of the neighbor cleanly so\n the ring keeps its full 2px breathing room — same visual treatment\n as a stand-alone button. */\n:host(:focus-visible) {\n outline-color: var(--md-sys-color-secondary);\n z-index: 1;\n}\n\n/* ==========================================================\n 7. DISABLED\n ========================================================== */\n:host(.md-button--disabled) {\n cursor: default;\n pointer-events: none;\n --_container-elevation: var(--md-sys-elevation-0, none) !important;\n transition: none;\n}\n\n:host([soft-disabled]) {\n cursor: default;\n pointer-events: auto;\n}\n:host([soft-disabled]) .md-button__state-layer { display: none; }\n\n:host(.md-button--filled.md-button--disabled),\n:host(.md-button--tonal.md-button--disabled) {\n --_container-color: color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n}\n:host(.md-button--elevated.md-button--disabled) {\n --_container-color: color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n --_container-elevation: var(--md-sys-elevation-0, none);\n}\n\n:host(.md-button--disabled) {\n --_label-color: color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-content-opacity, 0.38) * 100%), transparent);\n}\n\n:host(.md-button--outlined.md-button--disabled) {\n --_container-color: transparent;\n border-color: color-mix(in srgb, var(--md-sys-color-on-surface) calc(var(--md-sys-state-disabled-container-opacity, 0.12) * 100%), transparent);\n}\n\n:host(.md-button--text.md-button--disabled) {\n --_container-color: transparent;\n}\n\n:host(.md-button--disabled:hover) .md-button__state-layer,\n:host(.md-button--disabled:active) .md-button__state-layer,\n:host(.md-button--disabled:focus-visible) .md-button__state-layer {\n opacity: 0;\n}\n\n/* ==========================================================\n 8. ICON (prop-based fallback inside slot)\n ========================================================== */\n.md-button__icon,\n.md-button__trailing-icon {\n color: var(--md-button-icon-color, inherit);\n font-size: var(--_icon-size, 18px);\n width: var(--_icon-size, 18px);\n height: var(--_icon-size, 18px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n/* ==========================================================\n 9. NAMED ICON SLOTS\n Slots use display:contents so they don't create a box;\n slotted content participates directly in flex layout.\n ========================================================== */\nslot[name=\"leading-icon\"],\nslot[name=\"trailing-icon\"] {\n display: contents;\n}\n\n::slotted([slot=\"leading-icon\"]),\n::slotted([slot=\"trailing-icon\"]) {\n color: var(--md-button-icon-color, inherit);\n width: var(--_icon-size, 18px);\n height: var(--_icon-size, 18px);\n flex-shrink: 0;\n}\n\n/* ----------------------------------------------------------\n Trailing-icon rotation when this button is a popover anchor.\n\n md-menu (and any other popup component using the same ARIA\n contract) sets aria-expanded=\"true\" on its anchor element\n while the popup is open. Rotating the trailing dropdown\n indicator 180° on that signal flips arrow_drop_down to\n point up, matching MD3 select-trigger behavior, with no\n wiring needed on the consumer side.\n\n Honors prefers-reduced-motion via short2 motion duration.\n ---------------------------------------------------------- */\n.md-button__trailing-icon,\n::slotted([slot=\"trailing-icon\"]) {\n transition: transform var(--md-sys-motion-duration-short2, 150ms)\n var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));\n}\n\n:host([aria-expanded=\"true\"]:not([suppress-expand-icon-flip])) .md-button__trailing-icon,\n:host([aria-expanded=\"true\"]:not([suppress-expand-icon-flip])) ::slotted([slot=\"trailing-icon\"]) {\n transform: rotate(180deg);\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host {\n transition: none;\n }\n\n .md-button__state-layer {\n transition: none;\n }\n\n .md-button__trailing-icon,\n ::slotted([slot=\"trailing-icon\"]) {\n transition: none;\n }\n}\n\n/* ==========================================================\n 10. LABEL\n ========================================================== */\n.md-button__label {\n display: flex;\n align-items: center;\n white-space: nowrap;\n}\n\n/* ==========================================================\n 11. LOADING SPINNER (scales with icon size)\n ========================================================== */\n.md-button__loading {\n /* A FRACTION of the icon it stands in for. Two constraints pull against each\n other: at full --_icon-size the ring reads heavier than the glyph (a bare\n stroke has none of the internal padding a Material glyph carries), but at\n 1em it was pinned to the label and stopped scaling per tier -- sm and md\n share a 14px label, so a 40px and a 56px button drew the same 14px ring\n despite 20px vs 24px icons. 0.7 keeps it visibly lighter than a glyph while\n tracking the tier, and inherits the icon's density taper. */\n /* 10px floor: the icon token itself bottoms out at 10px on the small tiers,\n and 0.7 of that is a 7px ring — too small to read as a spinner at all. */\n --_loading-size: var(--md-button-loading-size, max(10px, calc(var(--_icon-size, 18px) * 0.7)));\n\n /* Hand the size straight to md-loading-indicator's PUBLIC hooks. These\n replace the child's whole default expression, so the button's own taper\n (and its 10px floor) survives instead of hitting the child's 32px floor.\n Not --_size / --_shape-size: those are the child's private vars and\n writing them from out here is the handoff trap. currentColor keeps the\n indicator matching each variant's label, which a token would not. */\n --md-loading-indicator-size: var(--_loading-size);\n --md-loading-indicator-shape-size: var(--_loading-size);\n --md-loading-indicator-color: currentColor;\n flex-shrink: 0;\n /* A wrapper now, so the hooks above reach a SLOTTED replacement too. It has\n to lay out like the indicator it replaced — an inline span would add a text\n baseline gap next to the label. */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Whatever the consumer slots in gets the same box the default occupies. */\n.md-button__loading ::slotted(*) {\n flex-shrink: 0;\n}\n\n/* ==========================================================\n 12. MATERIAL SYMBOLS (default icon font)\n ========================================================== */\n.material-symbols-outlined {\n font-family: var(--md-sys-icon-font-family, 'Material Symbols Outlined', 'Material Icons');\n font-weight: normal;\n font-style: normal;\n font-size: var(--_icon-size, 18px);\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n overflow-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n/* ==========================================================\n 13. RTL — opt-in directional-icon mirroring\n\n Buttons that show directional Material Symbols (arrow_forward,\n chevron_right, send, reply…) should set `mirror-icon` so the\n glyph itself flips alongside the leading/trailing slot swap that\n the logical-property layout already performs. Non-directional\n icons (add, search, favorite…) leave `mirror-icon` unset so the\n glyph stays semantically correct.\n\n Two rules cover both placements of `dir=\"rtl\"`:\n (a) on the host itself — `:host([dir=\"rtl\"])`\n (b) on any ancestor element — `:host-context([dir=\"rtl\"])`\n ========================================================== */\n:host([mirror-icon][dir=\"rtl\"]) .md-button__icon,\n:host([mirror-icon][dir=\"rtl\"]) .md-button__trailing-icon,\n:host([mirror-icon][dir=\"rtl\"]) ::slotted([slot=\"leading-icon\"]),\n:host([mirror-icon][dir=\"rtl\"]) ::slotted([slot=\"trailing-icon\"]) {\n transform: scaleX(-1);\n}\n\n:host-context([dir=\"rtl\"]):host([mirror-icon]) .md-button__icon,\n:host-context([dir=\"rtl\"]):host([mirror-icon]) .md-button__trailing-icon,\n:host-context([dir=\"rtl\"]):host([mirror-icon]) ::slotted([slot=\"leading-icon\"]),\n:host-context([dir=\"rtl\"]):host([mirror-icon]) ::slotted([slot=\"trailing-icon\"]) {\n transform: scaleX(-1);\n}\n\n/* ==========================================================\n DENSITY (local override)\n Maps the local `density` prop onto the same --md-sys-density-scale signal a\n global `data-density` ancestor sets. Declared on :host, so a local rung wins\n over the inherited global one. Every density-sensitive value in this file\n derives from that single signal by calc — never add a fixed per-rung ladder.\n ========================================================== */\n:host([density='-1']) { --md-sys-density-scale: -1; }\n:host([density='-2']) { --md-sys-density-scale: -2; }\n:host([density='-3']) { --md-sys-density-scale: -3; }\n:host([density='-4']) { --md-sys-density-scale: -4; }\n\n/* ==========================================================\n LINK MODE — the anchor rendered when `href` is set\n\n The anchor wraps the button's innards so the LABEL gives it its accessible\n name, and it carries the tab stop (the host drops role/tabindex in this\n mode). It reproduces the host's own flex row rather than sitting inside it,\n so a link button lays out identically to a plain one.\n\n `::after` stretches the hit area over the host's padding: the anchor itself\n only fills the CONTENT box, so without it a click on the padding — a good\n third of a large button — would miss the link and lose native activation.\n The host is already `position: relative`, so the inset resolves to it.\n ========================================================== */\n.md-button__anchor {\n display: flex;\n align-items: center;\n justify-content: center;\n /* Not inherited by default; picking up the host's computed value keeps the\n icon/label spacing identical to a non-link button at every density. */\n gap: inherit;\n inline-size: 100%;\n block-size: 100%;\n min-inline-size: 0;\n /* A button is not underlined blue text. */\n color: inherit;\n font: inherit;\n text-decoration: none;\n outline: none;\n}\n\n.md-button__anchor::after {\n content: '';\n position: absolute;\n inset: 0;\n /* Behind the state layer and ripple so neither is occluded. */\n z-index: 0;\n}\n\n/* The focus ring belongs to the whole button, not the inner content box. */\n:host(:has(.md-button__anchor:focus-visible)) {\n outline: var(--md-sys-state-focus-ring-width, 3px) solid\n var(--md-button-focus-ring-color, var(--md-sys-color-secondary, #625B71));\n outline-offset: var(--md-sys-state-focus-ring-offset, 2px);\n}\n\n/* ==========================================================\n HIDDEN\n `[hidden]` is a UA-stylesheet rule, and every `:host` display\n declaration above is an AUTHOR rule — author origin beats UA, so without\n this guard `el.hidden = true` left the component fully laid out.\n `!important` because state rules in this file set `display` at equal or\n higher specificity than `:host([hidden])`.\n ========================================================== */\n:host([hidden]) {\n display: none !important;\n}\n","import { Component, Fragment, Host, h, Prop, State, Event, EventEmitter, Element, AttachInternals } from '@stencil/core';\nimport { LazyLoadingIndicator } from '../../utils/lazy-loading-indicator';\nimport { triggerRipple } from '../../utils/ripple';\nimport { sanitizeHref, SAFE_LINK_REL, SAFE_WINDOW_FEATURES } from '../../utils/url';\n\n/**\n * Detail payload emitted by `md-button`'s `mdClick` event when the user\n * activates the button (mouse, touch, or keyboard).\n *\n * The event is **cancelable** — calling `event.preventDefault()` from a\n * listener stops the button's default side effects (toggle-state flip\n * and `href` navigation) but does NOT stop the underlying DOM click\n * event. This is the recommended hook for SPA routing and \"are you\n * sure?\" confirmation flows.\n */\nexport interface MdButtonClickDetail {\n /** The button's `value` prop (useful when grouped via `md-button-group`). */\n value: string;\n /** Whether toggle mode is enabled. */\n toggle: boolean;\n /**\n * Selected state the button WILL transition to if the click is not\n * cancelled. In non-toggle mode this is identical to `selected`.\n */\n selected: boolean;\n /** Navigation target (empty if the button is not a link). */\n href: string;\n /** Browsing context (`_self`, `_blank`, …). */\n target: string;\n /** The original DOM event that triggered the activation. */\n originalEvent: MouseEvent | KeyboardEvent;\n}\n\n/**\n * Detail payload emitted by `md-button`'s `mdChange` event when toggle\n * mode flips the selected state in response to a user activation.\n */\nexport interface MdButtonChangeDetail {\n /** New selected state. */\n selected: boolean;\n /** The button's `value` prop. */\n value: string;\n}\n\n@Component({\n tag: 'md-button',\n styleUrl: 'md-button.css',\n shadow: true,\n formAssociated: true,\n})\nexport class MdButton {\n @Element() el!: HTMLElement;\n\n /**\n * Form-association handle. Used to submit/reset the associated form when\n * `type` is `submit`/`reset` — works across shadow boundaries, unlike a\n * native `<button>` rendered in the shadow root (which can't see the\n * light-DOM `<form>` it lives in).\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * Activation behavior, mirroring the native `<button type>`:\n * - `button` (default): no implicit form action.\n * - `submit`: submits the associated form (`requestSubmit`, so the form's\n * `submit` event fires and constraint validation runs).\n * - `reset`: resets the associated form.\n */\n @Prop({ reflect: true }) type: 'button' | 'submit' | 'reset' = 'button';\n\n @Prop() variant: 'filled' | 'outlined' | 'text' | 'elevated' | 'tonal' = 'filled';\n @Prop() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n @Prop() shape: 'round' | 'square' = 'round';\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true, attribute: 'soft-disabled' }) softDisabled: boolean = false;\n @Prop() ripple: boolean = true;\n @Prop() loading: boolean = false;\n @Prop() icon: string = '';\n @Prop() trailingIcon: string = '';\n @Prop() href: string = '';\n @Prop() target: string = '_self';\n\n /** Enable toggle behavior (selected/unselected) */\n @Prop() toggle: boolean = false;\n\n /** Current selected state (toggle mode) */\n @Prop({ mutable: true }) selected: boolean = false;\n\n /** Enable M3 Expressive shape morphing on press and toggle */\n @Prop() shapeMorph: boolean = true;\n\n /**\n * Mirror leading and trailing icons horizontally when the button is\n * rendered in a right-to-left context. Set this on buttons that use\n * **directional** Material Symbols (arrows, chevrons, send, reply…)\n * — non-directional icons (add, search, favorite…) should leave it\n * `false` so the glyph stays semantically correct.\n */\n @Prop({ reflect: true, attribute: 'mirror-icon' }) mirrorIcon: boolean = false;\n\n /**\n * When true, suppresses the default 180° trailing-icon rotation while\n * `aria-expanded=\"true\"`. Use when the consumer swaps the glyph (e.g.\n * docked `md-date-picker` month/year triggers use `chevron_right`).\n */\n @Prop({ reflect: true, attribute: 'suppress-expand-icon-flip' })\n suppressExpandIconFlip: boolean = false;\n\n /**\n * Stretch the button to fill its inline-axis container.\n *\n * Switches the host from `inline-flex` to `flex` and sets\n * `inline-size: 100%` so the button consumes the full width of its\n * parent — the standard pattern for primary CTAs in forms, modals,\n * and bottom sheets. The size's `min-block-size` (touch target) is\n * preserved.\n *\n * For arbitrary fixed widths or heights, set the\n * `--md-button-width`, `--md-button-height`, `--md-button-min-width`,\n * `--md-button-min-height`, or `--md-button-max-width` CSS custom\n * properties on the host instead.\n */\n @Prop({ reflect: true, attribute: 'full-width' }) fullWidth: boolean = false;\n\n /** @internal Set by md-button-group — left side is connected to a neighbor */\n @Prop({ reflect: true }) connectedLeft: boolean = false;\n\n /** @internal Set by md-button-group — right side is connected to a neighbor */\n @Prop({ reflect: true }) connectedRight: boolean = false;\n\n /** @internal Value for button-group association */\n @Prop() value: string = '';\n\n /**\n * @internal Roving-tabindex override set by `md-button-group`. When the\n * button is a child of a group, the group sets this to `0` on the\n * currently-active button and `-1` on the rest, so Tab enters the group\n * once instead of stepping through every button. Outside a group, this\n * stays `null` and the button uses its normal tabindex behavior.\n */\n @Prop({ mutable: true, reflect: false }) groupTabindex: number | null = null;\n\n /**\n * Override the default `role=\"button\"`. Used by composite widgets such as\n * `md-date-picker` day cells (`role=\"gridcell\"`). Leave empty for `button`.\n */\n @Prop({ attribute: 'role-override' }) roleOverride: string = '';\n\n /**\n * Local density rung. Drives the same `--md-sys-density-scale` signal that a\n * global `data-density` ancestor sets, so a local value simply overrides the\n * inherited one. 0 = default, -4 = ultra-compact.\n */\n @Prop({ reflect: true }) density: 0 | -1 | -2 | -3 | -4 = 0;\n\n /**\n * Fires every time the user activates the button (mouse click, touch,\n * or `Enter`/`Space` while focused). The event is **cancelable** and\n * the detail payload describes what *would* happen: the post-click\n * toggle state, the navigation `href`, and so on.\n *\n * Calling `event.preventDefault()` from a listener suppresses the\n * default side effects (toggle flip + `href` navigation) but lets\n * the underlying DOM click bubble. This is the hook to use for SPA\n * routing, \"are you sure?\" prompts, async confirmation, etc.\n *\n * The event bubbles and is composed, so listeners outside the\n * shadow tree (the typical case) receive it.\n *\n * ```ts\n * document.querySelector('md-button')!.addEventListener('mdClick', (e) => {\n * const { href, selected } = (e as CustomEvent).detail;\n * if (!confirm('Continue?')) e.preventDefault();\n * });\n * ```\n */\n @Event({ cancelable: true, bubbles: true, composed: true })\n mdClick!: EventEmitter<MdButtonClickDetail>;\n\n /**\n * Fires when toggle mode flips the `selected` state in response to a\n * user activation. Not cancelable — the state change has already\n * happened. Pair with `mdClick` (cancelable) when you need a veto.\n *\n * Bubbles and is composed.\n */\n @Event({ bubbles: true, composed: true })\n mdChange!: EventEmitter<MdButtonChangeDetail>;\n\n @State() private hasSlottedLeadingIcon = false;\n @State() private hasSlottedTrailingIcon = false;\n @State() private pressed = false;\n\n private get isDisabled() {\n return this.disabled || this.softDisabled || this.loading;\n }\n\n componentDidLoad() {\n const shadow = this.el.shadowRoot;\n if (!shadow) return;\n\n const leadingSlot = shadow.querySelector('slot[name=\"leading-icon\"]') as HTMLSlotElement | null;\n const trailingSlot = shadow.querySelector('slot[name=\"trailing-icon\"]') as HTMLSlotElement | null;\n\n leadingSlot?.addEventListener('slotchange', () => {\n this.hasSlottedLeadingIcon = leadingSlot.assignedElements().length > 0;\n });\n trailingSlot?.addEventListener('slotchange', () => {\n this.hasSlottedTrailingIcon = trailingSlot.assignedElements().length > 0;\n });\n }\n\n private handleClick = (e: MouseEvent) => {\n if (this.isDisabled) { e.preventDefault(); return; }\n\n // Compute the post-click toggle state up front so the detail\n // payload describes what *would* happen — listeners can then\n // call preventDefault on the CustomEvent to veto the change.\n const nextSelected = this.toggle ? !this.selected : this.selected;\n\n const evt = this.mdClick.emit({\n value: this.value,\n toggle: this.toggle,\n selected: nextSelected,\n href: this.href,\n target: this.target,\n originalEvent: e,\n });\n\n if (evt.defaultPrevented) {\n // Suppress browser's default link navigation as well so the\n // host stays consistent. We don't flip selected and don't\n // open the href.\n e.preventDefault();\n return;\n }\n\n if (this.toggle && nextSelected !== this.selected) {\n this.selected = nextSelected;\n this.mdChange.emit({ selected: nextSelected, value: this.value });\n }\n\n /* Setting `href` makes this a link rather than a form control, so the\n branch is taken on the raw prop — an unsafe URL must not silently fall\n through to submitting the form. Only the navigation itself is refused. */\n if (this.href) {\n /* A safe href renders a REAL <a> in the shadow root, and the browser\n owns activation from there — so do nothing here. That is what makes\n middle-click, cmd/ctrl-click and \"copy link address\" work, and it is\n why cancelling mdClick above (which calls preventDefault on this very\n event) still vetoes navigation.\n\n The fallback below covers only the case where NO anchor exists: an\n href that failed sanitising renders none, so there is nothing to\n navigate and nothing to fall back to — the navigation is refused, as\n before. window.open remains for a programmatic click() on a button\n whose href is safe but whose anchor has not rendered yet. */\n const href = sanitizeHref(this.href);\n if (!href) return;\n const anchor = this.el.shadowRoot?.querySelector('.md-button__anchor');\n /* Did this click actually pass THROUGH the anchor? composedPath sees\n across the shadow boundary, so a real pointer click — on the label, an\n icon, or the anchor's stretched ::after over the padding — is\n recognised and left alone: the browser is already navigating.\n\n A PROGRAMMATIC el.click() targets the host and never reaches the\n anchor, so nothing would happen at all. A native <a>.click() does\n navigate, and this component behaved that way before it grew a real\n anchor — including keyboard activation, which routes through\n el.click() in handleKeyDown. Falling back to window.open keeps both\n working, and the composedPath check is what stops a real click from\n navigating twice. */\n if (!anchor || !e.composedPath().includes(anchor)) {\n window.open(href, this.target, SAFE_WINDOW_FEATURES);\n }\n return;\n }\n\n // Implicit form action, mirroring a native submit/reset button. Uses\n // ElementInternals so the associated <form> is found across the shadow\n // boundary. requestSubmit() (not submit()) so the form's submit event\n // fires and built-in constraint validation runs.\n if (this.type === 'submit') {\n this.internals.form?.requestSubmit();\n } else if (this.type === 'reset') {\n this.internals.form?.reset();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (!this.isDisabled) {\n this.pressed = true;\n triggerRipple(this.el);\n this.el.click();\n setTimeout(() => { this.pressed = false; }, 150);\n }\n }\n };\n\n private handlePointerDown = () => {\n if (!this.isDisabled) this.pressed = true;\n };\n\n private handlePointerUp = () => {\n this.pressed = false;\n };\n\n render() {\n const isEffectivelyDisabled = this.isDisabled;\n const hasLeadingIcon = !!this.icon;\n const hasTrailingIcon = !!this.trailingIcon;\n /* A component that accepts `href` must produce a real link. Sanitising\n here (not just at click time) means an unsafe URL renders NO anchor at\n all rather than an inert one. Disabled link-buttons also drop the\n anchor: there is no disabled state for <a>, and a focusable link that\n refuses to navigate is worse than no link. */\n const linkHref =\n this.href && !isEffectivelyDisabled ? sanitizeHref(this.href) : '';\n /* rel only where it means something: a target that opens a NEW browsing\n context. Blanket noreferrer would also strip the Referer on ordinary\n same-tab navigation, quietly breaking referrer-based analytics. */\n const opensNewContext = !!this.target && this.target !== '_self';\n\n return (\n <Host\n class={{\n 'md-button': true,\n [`md-button--${this.variant}`]: true,\n [`md-button--${this.size}`]: true,\n [`md-button--${this.shape}`]: true,\n 'md-button--with-leading-icon': hasLeadingIcon || this.hasSlottedLeadingIcon,\n 'md-button--with-trailing-icon': hasTrailingIcon || this.hasSlottedTrailingIcon,\n 'md-button--disabled': this.disabled || this.softDisabled,\n 'md-button--loading': this.loading,\n 'md-button--toggle': this.toggle,\n 'md-button--selected': this.selected,\n 'md-button--shape-morph': this.shapeMorph,\n 'md-button--pressed': this.shapeMorph && this.pressed,\n 'md-button--connected-left': this.connectedLeft,\n 'md-button--connected-right': this.connectedRight,\n 'md-button--full-width': this.fullWidth,\n }}\n role={this.roleOverride || (linkHref ? null : 'button')}\n aria-disabled={isEffectivelyDisabled ? 'true' : 'false'}\n aria-pressed={this.toggle ? String(this.selected) : undefined}\n tabindex={\n /* When a real anchor is rendered IT is the focusable element, so the\n host must not be a tab stop as well — otherwise every link button\n costs two presses of Tab and screen readers meet a button wrapping\n a link. */\n linkHref\n ? null\n : this.disabled\n ? '-1'\n : (this.groupTabindex !== null ? String(this.groupTabindex) : '0')\n }\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onPointerDown={this.handlePointerDown}\n onPointerUp={this.handlePointerUp}\n onPointerLeave={this.handlePointerUp}\n onPointerCancel={this.handlePointerUp}\n >\n {linkHref ? (\n <a\n class=\"md-button__anchor\"\n part=\"anchor\"\n role=\"link\"\n href={linkHref}\n target={this.target || undefined}\n rel={opensNewContext ? SAFE_LINK_REL : undefined}\n tabindex={this.groupTabindex !== null ? String(this.groupTabindex) : '0'}\n aria-disabled={isEffectivelyDisabled ? 'true' : null}\n >\n {this.renderContent(isEffectivelyDisabled, hasLeadingIcon, hasTrailingIcon)}\n </a>\n ) : (\n this.renderContent(isEffectivelyDisabled, hasLeadingIcon, hasTrailingIcon)\n )}\n </Host>\n );\n }\n\n /** Button innards, rendered either directly in the host or inside the\n * anchor when `href` makes this a link. */\n private renderContent(\n isEffectivelyDisabled: boolean,\n hasLeadingIcon: boolean,\n hasTrailingIcon: boolean,\n ) {\n return (\n <Fragment>\n {this.ripple && <md-ripple disabled={isEffectivelyDisabled}></md-ripple>}\n <span class=\"md-button__state-layer\" part=\"state-layer\" aria-hidden=\"true\"></span>\n <slot name=\"leading-icon\">\n {hasLeadingIcon && <span class=\"md-button__icon material-symbols-outlined\" part=\"icon\">{this.icon}</span>}\n </slot>\n <span class=\"md-button__label\" part=\"label\"><slot /></span>\n <slot name=\"trailing-icon\">\n {hasTrailingIcon && <span class=\"md-button__trailing-icon material-symbols-outlined\" part=\"trailing-icon\">{this.trailingIcon}</span>}\n </slot>\n {this.loading && (\n /* md-loading-indicator, not a hand-rolled ring: never ship a custom\n loading affordance where a library component exists. It is\n md-loading-indicator rather than md-progress-indicator because the\n latter clamps its circular variant to a 24px M3 minimum, while a\n button spinner runs 10-28px -- every tier but xl would clamp up and\n lose the density taper. Same choice md-select made for its trigger.\n\n The `loader` slot lets a consumer swap it (e.g. for a circular\n md-progress-indicator). The size hooks sit on this WRAPPER so they\n cascade to whatever ends up inside it, default or slotted. */\n <span class=\"md-button__loading\" part=\"loading\" aria-hidden=\"true\">\n <slot name=\"loader\">\n <LazyLoadingIndicator class=\"md-button__loading-default\" />\n </slot>\n </span>\n )}\n </Fragment>\n );\n }\n}\n"],"mappings":"4OAAA,MAAMA,EAAc,IAAM,+toB,MCkDbC,EAAQC,EAAA,MAAAD,UAAAE,EANrB,WAAAC,CAAAC,G,4KAwB2BC,KAAAC,KAAsC,SAEvDD,KAAAE,QAAiE,SACjEF,KAAAG,KAAyC,KACzCH,KAAAI,MAA4B,QACXJ,KAAAK,SAAoB,MACQL,KAAAM,aAAwB,MACrEN,KAAAO,OAAkB,KAClBP,KAAAQ,QAAmB,MACnBR,KAAAS,KAAe,GACfT,KAAAU,aAAuB,GACvBV,KAAAW,KAAe,GACfX,KAAAY,OAAiB,QAGjBZ,KAAAa,OAAkB,MAGDb,KAAAc,SAAoB,MAGrCd,KAAAe,WAAsB,KASqBf,KAAAgB,WAAsB,MAQzEhB,KAAAiB,uBAAkC,MAgBgBjB,KAAAkB,UAAqB,MAG9ClB,KAAAmB,cAAyB,MAGzBnB,KAAAoB,eAA0B,MAG3CpB,KAAAqB,MAAgB,GASiBrB,KAAAsB,cAA+B,KAMlCtB,KAAAuB,aAAuB,GAOpCvB,KAAAwB,QAAiC,EAoCzCxB,KAAAyB,sBAAwB,MACxBzB,KAAA0B,uBAAyB,MACzB1B,KAAA2B,QAAU,MAqBnB3B,KAAA4B,YAAeC,IACrB,GAAI7B,KAAK8B,WAAY,CAAED,EAAEE,iBAAkB,M,CAK3C,MAAMC,EAAehC,KAAKa,QAAUb,KAAKc,SAAWd,KAAKc,SAEzD,MAAMmB,EAAMjC,KAAKkC,QAAQC,KAAK,CAC5Bd,MAAOrB,KAAKqB,MACZR,OAAQb,KAAKa,OACbC,SAAUkB,EACVrB,KAAMX,KAAKW,KACXC,OAAQZ,KAAKY,OACbwB,cAAeP,IAGjB,GAAII,EAAII,iBAAkB,CAIxBR,EAAEE,iBACF,M,CAGF,GAAI/B,KAAKa,QAAUmB,IAAiBhC,KAAKc,SAAU,CACjDd,KAAKc,SAAWkB,EAChBhC,KAAKsC,SAASH,KAAK,CAAErB,SAAUkB,EAAcX,MAAOrB,KAAKqB,O,CAM3D,GAAIrB,KAAKW,KAAM,CAYb,MAAMA,EAAO4B,EAAavC,KAAKW,MAC/B,IAAKA,EAAM,OACX,MAAM6B,EAASxC,KAAKyC,GAAGC,YAAYC,cAAc,sBAajD,IAAKH,IAAWX,EAAEe,eAAeC,SAASL,GAAS,CACjDM,OAAOC,KAAKpC,EAAMX,KAAKY,OAAQoC,E,CAEjC,M,CAOF,GAAIhD,KAAKC,OAAS,SAAU,CAC1BD,KAAKiD,UAAUC,MAAMC,e,MAChB,GAAInD,KAAKC,OAAS,QAAS,CAChCD,KAAKiD,UAAUC,MAAME,O,GAIjBpD,KAAAqD,cAAiBxB,IACvB,GAAIA,EAAEyB,MAAQ,SAAWzB,EAAEyB,MAAQ,IAAK,CACtCzB,EAAEE,iBACF,IAAK/B,KAAK8B,WAAY,CACpB9B,KAAK2B,QAAU,KACf4B,EAAcvD,KAAKyC,IACnBzC,KAAKyC,GAAGe,QACRC,YAAW,KAAQzD,KAAK2B,QAAU,KAAK,GAAK,I,IAK1C3B,KAAA0D,kBAAoB,KAC1B,IAAK1D,KAAK8B,WAAY9B,KAAK2B,QAAU,IAAI,EAGnC3B,KAAA2D,gBAAkB,KACxB3D,KAAK2B,QAAU,KAAK,CAqHvB,CAtOC,cAAYG,GACV,OAAO9B,KAAKK,UAAYL,KAAKM,cAAgBN,KAAKQ,O,CAGpD,gBAAAoD,GACE,MAAMC,EAAS7D,KAAKyC,GAAGC,WACvB,IAAKmB,EAAQ,OAEb,MAAMC,EAAcD,EAAOlB,cAAc,6BACzC,MAAMoB,EAAeF,EAAOlB,cAAc,8BAE1CmB,GAAaE,iBAAiB,cAAc,KAC1ChE,KAAKyB,sBAAwBqC,EAAYG,mBAAmBC,OAAS,CAAC,IAExEH,GAAcC,iBAAiB,cAAc,KAC3ChE,KAAK0B,uBAAyBqC,EAAaE,mBAAmBC,OAAS,CAAC,G,CAqG5E,MAAAC,GACE,MAAMC,EAAwBpE,KAAK8B,WACnC,MAAMuC,IAAmBrE,KAAKS,KAC9B,MAAM6D,IAAoBtE,KAAKU,aAM/B,MAAM6D,EACJvE,KAAKW,OAASyD,EAAwB7B,EAAavC,KAAKW,MAAQ,GAIlE,MAAM6D,IAAoBxE,KAAKY,QAAUZ,KAAKY,SAAW,QAEzD,OACE6D,EAACC,EAAI,CAAApB,IAAA,2CACHqB,MAAO,CACL,YAAa,KACb,CAAC,cAAc3E,KAAKE,WAAY,KAChC,CAAC,cAAcF,KAAKG,QAAS,KAC7B,CAAC,cAAcH,KAAKI,SAAU,KAC9B,+BAAgCiE,GAAkBrE,KAAKyB,sBACvD,gCAAiC6C,GAAmBtE,KAAK0B,uBACzD,sBAAuB1B,KAAKK,UAAYL,KAAKM,aAC7C,qBAAsBN,KAAKQ,QAC3B,oBAAqBR,KAAKa,OAC1B,sBAAuBb,KAAKc,SAC5B,yBAA0Bd,KAAKe,WAC/B,qBAAsBf,KAAKe,YAAcf,KAAK2B,QAC9C,4BAA6B3B,KAAKmB,cAClC,6BAA8BnB,KAAKoB,eACnC,wBAAyBpB,KAAKkB,WAEhC0D,KAAM5E,KAAKuB,eAAiBgD,EAAW,KAAO,UAAS,gBACxCH,EAAwB,OAAS,QAAO,eACzCpE,KAAKa,OAASgE,OAAO7E,KAAKc,UAAYgE,UACpDC,SAKER,EACI,KACAvE,KAAKK,SACH,KACCL,KAAKsB,gBAAkB,KAAOuD,OAAO7E,KAAKsB,eAAiB,IAEpE0D,QAAShF,KAAK4B,YACdqD,UAAWjF,KAAKqD,cAChB6B,cAAelF,KAAK0D,kBACpByB,YAAanF,KAAK2D,gBAClByB,eAAgBpF,KAAK2D,gBACrB0B,gBAAiBrF,KAAK2D,iBAErBY,EACCE,EAAA,KACEE,MAAM,oBACNW,KAAK,SACLV,KAAK,OACLjE,KAAM4D,EACN3D,OAAQZ,KAAKY,QAAUkE,UACvBS,IAAKf,EAAkBgB,EAAgBV,UACvCC,SAAU/E,KAAKsB,gBAAkB,KAAOuD,OAAO7E,KAAKsB,eAAiB,IAAG,gBACzD8C,EAAwB,OAAS,MAE/CpE,KAAKyF,cAAcrB,EAAuBC,EAAgBC,IAG7DtE,KAAKyF,cAAcrB,EAAuBC,EAAgBC,G,CAQ1D,aAAAmB,CACNrB,EACAC,EACAC,GAEA,OACEG,EAACiB,EAAQ,KACN1F,KAAKO,QAAUkE,EAAA,aAAWpE,SAAU+D,IACrCK,EAAA,QAAME,MAAM,yBAAyBW,KAAK,cAAa,cAAa,SACpEb,EAAA,QAAMkB,KAAK,gBACRtB,GAAkBI,EAAA,QAAME,MAAM,4CAA4CW,KAAK,QAAQtF,KAAKS,OAE/FgE,EAAA,QAAME,MAAM,mBAAmBW,KAAK,SAAQb,EAAA,cAC5CA,EAAA,QAAMkB,KAAK,iBACRrB,GAAmBG,EAAA,QAAME,MAAM,qDAAqDW,KAAK,iBAAiBtF,KAAKU,eAEjHV,KAAKQ,SAWJiE,EAAA,QAAME,MAAM,qBAAqBW,KAAK,UAAS,cAAa,QAC1Db,EAAA,QAAMkB,KAAK,UACTlB,EAACmB,EAAoB,CAACjB,MAAM,iC","ignoreList":[]}