@m3ui-vue/m3ui-vue 0.4.7 → 0.5.1

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 (50) hide show
  1. package/dist/{MMenuItem-COdgD4m7.js → MMenuItem-Dw2ARZic.js} +30 -24
  2. package/dist/{MMenuItem-COdgD4m7.js.map → MMenuItem-Dw2ARZic.js.map} +1 -1
  3. package/dist/components/MAutocomplete.vue.d.ts +2 -1
  4. package/dist/components/MColorPicker.vue.d.ts +2 -1
  5. package/dist/components/MContextMenu.vue.d.ts +7 -21
  6. package/dist/components/MDatePicker.vue.d.ts +2 -1
  7. package/dist/components/MDateRangePicker.vue.d.ts +2 -1
  8. package/dist/components/MMaskField.vue.d.ts +2 -1
  9. package/dist/components/MMenuDivider.vue.d.ts +3 -0
  10. package/dist/components/MMenuItem.vue.d.ts +1 -0
  11. package/dist/components/MMultiAutocomplete.vue.d.ts +2 -1
  12. package/dist/components/MMultiSelect.vue.d.ts +2 -1
  13. package/dist/components/MNumberField.vue.d.ts +2 -1
  14. package/dist/components/MSelect.vue.d.ts +2 -1
  15. package/dist/components/MTagInput.vue.d.ts +2 -1
  16. package/dist/components/MTextField.vue.d.ts +2 -1
  17. package/dist/components/MTimePicker.vue.d.ts +2 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/m3ui-vue.css +1 -1
  20. package/dist/m3ui.js +819 -884
  21. package/dist/m3ui.js.map +1 -1
  22. package/dist/rich-text-editor.js +1 -1
  23. package/dist/styles.css +1 -1
  24. package/package.json +1 -1
  25. package/src/components/MAbsolute.vue +3 -2
  26. package/src/components/MAutocomplete.vue +3 -2
  27. package/src/components/MCircleProgressBar.vue +7 -5
  28. package/src/components/MColorPicker.vue +4 -2
  29. package/src/components/MColorPickerModal.vue +1 -0
  30. package/src/components/MContextMenu.vue +57 -38
  31. package/src/components/MDatePicker.vue +3 -2
  32. package/src/components/MDateRangePicker.vue +3 -2
  33. package/src/components/MMaskField.vue +3 -2
  34. package/src/components/MMenuDivider.vue +3 -0
  35. package/src/components/MMenuItem.vue +2 -0
  36. package/src/components/MMultiAutocomplete.vue +3 -2
  37. package/src/components/MMultiSelect.vue +3 -2
  38. package/src/components/MNotificationHost.vue +19 -5
  39. package/src/components/MNumberField.vue +3 -2
  40. package/src/components/MSelect.vue +3 -2
  41. package/src/components/MSlider.vue +20 -16
  42. package/src/components/MSnackbar.vue +15 -5
  43. package/src/components/MTabs.vue +1 -1
  44. package/src/components/MTagInput.vue +3 -2
  45. package/src/components/MTextField.vue +3 -2
  46. package/src/components/MTimePicker.vue +3 -2
  47. package/src/components/MWindow.vue +5 -5
  48. package/src/index.ts +1 -1
  49. package/dist/components/_MContextMenuPanel.vue.d.ts +0 -13
  50. package/src/components/_MContextMenuPanel.vue +0 -137
@@ -1,4 +1,4 @@
1
- import { a as e, f as t, i as n, n as r, r as i, t as a } from "./MMenuItem-COdgD4m7.js";
1
+ import { a as e, f as t, i as n, n as r, r as i, t as a } from "./MMenuItem-Dw2ARZic.js";
2
2
  import { t as o } from "./MIcon-CaEooCmZ.js";
3
3
  import { t as s } from "./_plugin-vue_export-helper-B3ysoDQm.js";
4
4
  import { Fragment as c, computed as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, normalizeClass as g, normalizeStyle as _, onBeforeUnmount as v, onMounted as y, openBlock as b, ref as x, renderList as S, shallowRef as C, toDisplayString as w, watch as T, withCtx as E, withKeys as D } from "vue";
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
- .code-editor-container[data-v-b0a66a4b] .cm-editor{height:100%;min-height:inherit;font-family:Roboto Mono,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.6}.code-editor-container[data-v-b0a66a4b] .cm-editor.cm-focused{outline:none}.code-editor-container[data-v-b0a66a4b] .cm-scroller{min-height:inherit}.code-editor-container[data-v-b0a66a4b] .cm-content{padding:12px 0}.code-editor-container[data-v-b0a66a4b] .cm-line{padding:0 16px}.code-editor-container[data-v-b0a66a4b] .cm-gutters{background:var(--color-surface-container);border-right:1px solid var(--color-outline-variant);color:var(--color-outline);padding:0 4px;font-size:.75rem}.code-editor-container[data-v-b0a66a4b] .cm-activeLineGutter{background:var(--color-surface-container-high);color:var(--color-on-surface-variant)}.code-editor-container[data-v-b0a66a4b] .cm-activeLine{background:var(--color-surface-container-lowest)}.code-editor-container[data-v-b0a66a4b] .cm-selectionBackground{background:var(--color-primary-container)!important}.code-editor-container[data-v-b0a66a4b] .cm-cursor{border-left-color:var(--color-primary);border-left-width:2px}.code-editor-container[data-v-b0a66a4b] .cm-matchingBracket{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px}.code-editor-container[data-v-b0a66a4b] .cm-foldGutter span{color:var(--color-on-surface-variant)}@keyframes m3-wavy-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes m3-wavy-travel{0%{stroke-dashoffset:0}to{stroke-dashoffset:calc(var(--m3-wave-len) * -1px)}}@media (prefers-reduced-motion:reduce){.animate-\[m3-wavy-spin_2\.8s_linear_infinite\]{animation:2.8s linear infinite m3-wavy-spin}.animate-\[m3-wavy-travel_2s_linear_infinite\]{animation:none!important}}.m3-dialog-enter-active[data-v-2e3c3567],.m3-dialog-leave-active[data-v-2e3c3567]{transition:opacity .15s}.m3-dialog-enter-from[data-v-2e3c3567],.m3-dialog-leave-to[data-v-2e3c3567]{opacity:0}.m3-dialog-enter-active .dialog-box[data-v-2e3c3567],.m3-dialog-leave-active .dialog-box[data-v-2e3c3567]{transition:transform .15s}.m3-dialog-enter-from .dialog-box[data-v-2e3c3567],.m3-dialog-leave-to .dialog-box[data-v-2e3c3567]{transform:scale(.95)}.m3-dialog-fs-enter-active[data-v-2e3c3567],.m3-dialog-fs-leave-active[data-v-2e3c3567]{transition:transform .25s cubic-bezier(.2,0,0,1),opacity .15s}.m3-dialog-fs-enter-from[data-v-2e3c3567],.m3-dialog-fs-leave-to[data-v-2e3c3567]{opacity:0;transform:translateY(100%)}.toast-row[data-v-741c7e4a]{grid-template-rows:1fr;padding-bottom:8px;display:grid}.toast-row>.toast-inner[data-v-741c7e4a]{min-height:0}.m3-toast-bot-enter-active[data-v-741c7e4a]{transition:grid-template-rows .22s cubic-bezier(.2,0,0,1),padding-bottom .22s cubic-bezier(.2,0,0,1);overflow:hidden}.m3-toast-bot-enter-active>.toast-inner[data-v-741c7e4a]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-bot-enter-from[data-v-741c7e4a]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-enter-from>.toast-inner[data-v-741c7e4a]{opacity:0;transform:translateY(20px)scale(.94)}.m3-toast-bot-leave-active[data-v-741c7e4a]{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1),padding-bottom .3s cubic-bezier(.2,0,0,1);overflow:hidden}.m3-toast-bot-leave-active>.toast-inner[data-v-741c7e4a]{transition:opacity .18s,transform .18s}.m3-toast-bot-leave-to[data-v-741c7e4a]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-leave-to>.toast-inner[data-v-741c7e4a]{opacity:0;transform:scale(.92)}.m3-toast-top-enter-active[data-v-741c7e4a]{transition:grid-template-rows .22s cubic-bezier(.2,0,0,1),padding-bottom .22s cubic-bezier(.2,0,0,1);overflow:hidden}.m3-toast-top-enter-active>.toast-inner[data-v-741c7e4a]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-top-enter-from[data-v-741c7e4a]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-enter-from>.toast-inner[data-v-741c7e4a]{opacity:0;transform:translateY(-20px)scale(.94)}.m3-toast-top-leave-active[data-v-741c7e4a]{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1),padding-bottom .3s cubic-bezier(.2,0,0,1);overflow:hidden}.m3-toast-top-leave-active>.toast-inner[data-v-741c7e4a]{transition:opacity .18s,transform .18s}.m3-toast-top-leave-to[data-v-741c7e4a]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-leave-to>.toast-inner[data-v-741c7e4a]{opacity:0;transform:scale(.92)}.m3-badge-enter-active[data-v-741c7e4a]{transition:opacity .2s,transform .2s cubic-bezier(.34,1.56,.64,1)}.m3-badge-leave-active[data-v-741c7e4a]{transition:opacity .15s,transform .15s}.m3-badge-enter-from[data-v-741c7e4a],.m3-badge-leave-to[data-v-741c7e4a]{opacity:0;transform:scale(.5)}.m3-count-enter-active[data-v-741c7e4a]{transition:opacity .12s,transform .12s}.m3-count-leave-active[data-v-741c7e4a]{transition:opacity 80ms,transform 80ms}.m3-count-enter-from[data-v-741c7e4a]{opacity:0;transform:scale(1.5)translateY(-3px)}.m3-count-leave-to[data-v-741c7e4a]{opacity:0;transform:scale(.6)translateY(2px)}@keyframes m3-toast-progress-741c7e4a{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.notif-row[data-v-1b0d900b]{grid-template-rows:1fr;padding-bottom:6px;display:grid}.notif-row>.notif-inner[data-v-1b0d900b]{min-height:0}.m3-notif-bot-enter-active[data-v-1b0d900b]{transition:grid-template-rows .2s,padding-bottom .2s;overflow:hidden}.m3-notif-bot-enter-active>.notif-inner[data-v-1b0d900b]{transition:opacity .15s,transform .2s}.m3-notif-bot-enter-from[data-v-1b0d900b]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-bot-enter-from>.notif-inner[data-v-1b0d900b]{opacity:0;transform:translateY(12px)scale(.95)}.m3-notif-bot-leave-active[data-v-1b0d900b]{transition:grid-template-rows .25s,padding-bottom .25s;overflow:hidden}.m3-notif-bot-leave-active>.notif-inner[data-v-1b0d900b]{transition:opacity .15s,transform .15s}.m3-notif-bot-leave-to[data-v-1b0d900b]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-bot-leave-to>.notif-inner[data-v-1b0d900b]{opacity:0;transform:scale(.93)}.m3-notif-top-enter-active[data-v-1b0d900b]{transition:grid-template-rows .2s,padding-bottom .2s;overflow:hidden}.m3-notif-top-enter-active>.notif-inner[data-v-1b0d900b]{transition:opacity .15s,transform .2s}.m3-notif-top-enter-from[data-v-1b0d900b]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-top-enter-from>.notif-inner[data-v-1b0d900b]{opacity:0;transform:translateY(-12px)scale(.95)}.m3-notif-top-leave-active[data-v-1b0d900b]{transition:grid-template-rows .25s,padding-bottom .25s;overflow:hidden}.m3-notif-top-leave-active>.notif-inner[data-v-1b0d900b]{transition:opacity .15s,transform .15s}.m3-notif-top-leave-to[data-v-1b0d900b]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-top-leave-to>.notif-inner[data-v-1b0d900b]{opacity:0;transform:scale(.93)}.m3-badge-enter-active[data-v-1b0d900b]{transition:opacity .2s,transform .2s cubic-bezier(.34,1.56,.64,1)}.m3-badge-leave-active[data-v-1b0d900b]{transition:opacity .15s,transform .15s}.m3-badge-enter-from[data-v-1b0d900b],.m3-badge-leave-to[data-v-1b0d900b]{opacity:0;transform:scale(.5)}.m3-count-enter-active[data-v-1b0d900b]{transition:opacity .12s,transform .12s}.m3-count-leave-active[data-v-1b0d900b]{transition:opacity 80ms,transform 80ms}.m3-count-enter-from[data-v-1b0d900b]{opacity:0;transform:scale(1.5)translateY(-3px)}.m3-count-leave-to[data-v-1b0d900b]{opacity:0;transform:scale(.6)translateY(2px)}.m3-ac-modal-enter-active[data-v-4ee54742],.m3-ac-modal-leave-active[data-v-4ee54742]{transition:opacity .15s}.m3-ac-modal-enter-from[data-v-4ee54742],.m3-ac-modal-leave-to[data-v-4ee54742]{opacity:0}.m3-ac-modal-enter-active .ac-modal-box[data-v-4ee54742],.m3-ac-modal-leave-active .ac-modal-box[data-v-4ee54742]{transition:transform .15s}.m3-ac-modal-enter-from .ac-modal-box[data-v-4ee54742],.m3-ac-modal-leave-to .ac-modal-box[data-v-4ee54742]{transform:scale(.95)}.bs-scrim[data-v-5b1fb748]{transition:opacity .3s}.bs-enter-from .bs-scrim[data-v-5b1fb748],.bs-leave-to .bs-scrim[data-v-5b1fb748]{opacity:0}.bs-panel[data-v-5b1fb748]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.bs-enter-from .bs-panel[data-v-5b1fb748]{opacity:0;transform:translateY(40%)}.bs-leave-to .bs-panel[data-v-5b1fb748]{opacity:0;transform:translateY(100%)!important}.carousel-track[data-v-f1acc440]{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel-track[data-v-f1acc440]::-webkit-scrollbar{display:none}.snap-center[data-v-f1acc440]>*{scroll-snap-align:center}.snap-start[data-v-f1acc440]>*{scroll-snap-align:start}.hue-slider[data-v-6c22bde9]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-6c22bde9]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-6c22bde9]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-5b1c3387]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-5b1c3387]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-5b1c3387]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.m3-cp-modal-enter-active[data-v-5b1c3387],.m3-cp-modal-leave-active[data-v-5b1c3387]{transition:opacity .15s}.m3-cp-modal-enter-from[data-v-5b1c3387],.m3-cp-modal-leave-to[data-v-5b1c3387]{opacity:0}.m3-cp-modal-enter-active .cp-box[data-v-5b1c3387],.m3-cp-modal-leave-active .cp-box[data-v-5b1c3387]{transition:transform .15s}.m3-cp-modal-enter-from .cp-box[data-v-5b1c3387],.m3-cp-modal-leave-to .cp-box[data-v-5b1c3387]{transform:scale(.95)}.m3-cmd-enter-active[data-v-4d6cca63],.m3-cmd-leave-active[data-v-4d6cca63]{transition:opacity .15s}.m3-cmd-enter-from[data-v-4d6cca63],.m3-cmd-leave-to[data-v-4d6cca63]{opacity:0}.m3-cmd-enter-active .cmd-box[data-v-4d6cca63],.m3-cmd-leave-active .cmd-box[data-v-4d6cca63]{transition:transform .15s}.m3-cmd-enter-from .cmd-box[data-v-4d6cca63],.m3-cmd-leave-to .cmd-box[data-v-4d6cca63]{transform:scale(.95)translateY(-10px)}.dt-expand-grid[data-v-857139c7]{grid-template-rows:0fr;transition:grid-template-rows .25s cubic-bezier(.2,0,0,1);display:grid}.dt-expand-grid.dt-expand-open[data-v-857139c7]{grid-template-rows:1fr}.dt-expand-body[data-v-857139c7]{min-height:0;overflow:hidden}.m3-dp-modal-enter-active[data-v-ac5f05d4],.m3-dp-modal-leave-active[data-v-ac5f05d4]{transition:opacity .15s}.m3-dp-modal-enter-from[data-v-ac5f05d4],.m3-dp-modal-leave-to[data-v-ac5f05d4]{opacity:0}.m3-dp-modal-enter-active .dp-box[data-v-ac5f05d4],.m3-dp-modal-leave-active .dp-box[data-v-ac5f05d4]{transition:transform .15s}.m3-dp-modal-enter-from .dp-box[data-v-ac5f05d4],.m3-dp-modal-leave-to .dp-box[data-v-ac5f05d4]{transform:scale(.95)}.m3-drp-modal-enter-active[data-v-fcb7a791],.m3-drp-modal-leave-active[data-v-fcb7a791]{transition:opacity .15s}.m3-drp-modal-enter-from[data-v-fcb7a791],.m3-drp-modal-leave-to[data-v-fcb7a791]{opacity:0}.m3-drp-modal-enter-active .drp-box[data-v-fcb7a791],.m3-drp-modal-leave-active .drp-box[data-v-fcb7a791]{transition:transform .15s}.m3-drp-modal-enter-from .drp-box[data-v-fcb7a791],.m3-drp-modal-leave-to .drp-box[data-v-fcb7a791]{transform:scale(.95)}.expand-grid[data-v-31731809]{grid-template-rows:0fr;transition:grid-template-rows .3s ease-in-out;display:grid}.expand-grid.expand-open[data-v-31731809]{grid-template-rows:1fr}.expand-body[data-v-31731809]{min-height:0;overflow:hidden}.m3-fab-content-enter-active[data-v-02ba313e]{transition:opacity .2s,transform .2s cubic-bezier(.2,0,0,1)}.m3-fab-content-leave-active[data-v-02ba313e]{transition:opacity .15s,transform .15s}.m3-fab-content-enter-from[data-v-02ba313e]{opacity:0;transform:scale(.85)}.m3-fab-content-leave-to[data-v-02ba313e]{opacity:0;transform:scale(.9)}.m3-file-enter-active[data-v-6b150427],.m3-file-leave-active[data-v-6b150427]{transition:all .2s}.m3-file-enter-from[data-v-6b150427],.m3-file-leave-to[data-v-6b150427]{opacity:0;transform:translateY(-8px)}.mli-expand-grid{grid-template-rows:1fr;display:grid}.mli-expand-body{min-height:0;padding-left:2rem;overflow:hidden}.mli-expand-enter-active{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1)}.mli-expand-enter-active>.mli-expand-body{transition:opacity .2s cubic-bezier(.2,0,0,1) 80ms}.mli-expand-enter-from{grid-template-rows:0fr}.mli-expand-enter-from>.mli-expand-body{opacity:0}.mli-expand-leave-active{transition:grid-template-rows .25s cubic-bezier(.4,0,1,1)}.mli-expand-leave-active>.mli-expand-body{transition:opacity .12s cubic-bezier(.4,0,1,1)}.mli-expand-leave-to{grid-template-rows:0fr}.mli-expand-leave-to>.mli-expand-body{opacity:0}.m3-mac-modal-enter-active[data-v-1c95b672],.m3-mac-modal-leave-active[data-v-1c95b672]{transition:opacity .15s}.m3-mac-modal-enter-from[data-v-1c95b672],.m3-mac-modal-leave-to[data-v-1c95b672]{opacity:0}.m3-mac-modal-enter-active .mac-modal-box[data-v-1c95b672],.m3-mac-modal-leave-active .mac-modal-box[data-v-1c95b672]{transition:transform .15s}.m3-mac-modal-enter-from .mac-modal-box[data-v-1c95b672],.m3-mac-modal-leave-to .mac-modal-box[data-v-1c95b672]{transform:scale(.95)}.m3-ms-modal-enter-active[data-v-fc4bb9ca],.m3-ms-modal-leave-active[data-v-fc4bb9ca]{transition:opacity .15s}.m3-ms-modal-enter-from[data-v-fc4bb9ca],.m3-ms-modal-leave-to[data-v-fc4bb9ca]{opacity:0}.m3-ms-modal-enter-active .ms-modal-box[data-v-fc4bb9ca],.m3-ms-modal-leave-active .ms-modal-box[data-v-fc4bb9ca]{transition:transform .15s}.m3-ms-modal-enter-from .ms-modal-box[data-v-fc4bb9ca],.m3-ms-modal-leave-to .ms-modal-box[data-v-fc4bb9ca]{transform:scale(.95)}input[type=number][data-v-d624d5b1]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-d624d5b1]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-d624d5b1]{-moz-appearance:textfield}.nd-scrim[data-v-2210a491]{transition:opacity .28s}.nd-enter-from .nd-scrim[data-v-2210a491],.nd-leave-to .nd-scrim[data-v-2210a491]{opacity:0}.nd-panel[data-v-2210a491]{transition:transform .3s cubic-bezier(.2,0,0,1)}.nd-enter-from .nd-panel-left[data-v-2210a491],.nd-leave-to .nd-panel-left[data-v-2210a491]{transform:translate(-100%)}.nd-enter-from .nd-panel-right[data-v-2210a491],.nd-leave-to .nd-panel-right[data-v-2210a491]{transform:translate(100%)}.nd-enter-from .nd-panel-top[data-v-2210a491],.nd-leave-to .nd-panel-top[data-v-2210a491]{transform:translateY(-100%)}.nd-enter-from .nd-panel-bottom[data-v-2210a491],.nd-leave-to .nd-panel-bottom[data-v-2210a491]{transform:translateY(100%)}.nd-section-grid[data-v-2210a491]{grid-template-rows:1fr;display:grid}.nd-section-body[data-v-2210a491]{min-height:0;overflow:hidden}.nd-section-enter-active[data-v-2210a491]{transition:grid-template-rows .35s cubic-bezier(.2,0,0,1)}.nd-section-enter-active>.nd-section-body[data-v-2210a491]{transition:opacity .25s cubic-bezier(.2,0,0,1) 80ms}.nd-section-enter-from[data-v-2210a491]{grid-template-rows:0fr}.nd-section-enter-from>.nd-section-body[data-v-2210a491]{opacity:0}.nd-section-leave-active[data-v-2210a491]{transition:grid-template-rows .28s cubic-bezier(.4,0,1,1)}.nd-section-leave-active>.nd-section-body[data-v-2210a491]{transition:opacity .15s cubic-bezier(.4,0,1,1)}.nd-section-leave-to[data-v-2210a491]{grid-template-rows:0fr}.nd-section-leave-to>.nd-section-body[data-v-2210a491]{opacity:0}.nd-inline[data-v-2210a491]{transition:width .3s cubic-bezier(.2,0,0,1);overflow:hidden}.nd-inline[data-v-2210a491]>*{min-width:var(--nd-width,18rem)}.nd-inline.nd-collapsed[data-v-2210a491]>*{min-width:0}.nd-toggle[data-v-2210a491]{align-items:center;display:flex}.nd-toggle-inner[data-v-2210a491]{flex-shrink:0;justify-content:center;align-items:center;width:72px;height:64px;display:flex}.nd-label[data-v-2210a491]{transition:opacity .2s cubic-bezier(.2,0,0,1) 80ms}.nd-inline.nd-collapsed .nd-label[data-v-2210a491],.nd-inline.nd-collapsed[data-v-2210a491] .nd-label{opacity:0;transition:opacity .1s cubic-bezier(.2,0,0,1)}.nd-inline .nd-collapse-h[data-v-2210a491]{max-height:80px;transition:max-height .3s cubic-bezier(.2,0,0,1)}.nd-inline.nd-collapsed .nd-collapse-h[data-v-2210a491]{max-height:0}.nd-inline .nd-section-body[data-v-2210a491]>*,.nd-inline[data-v-2210a491] .nd-section-body>*{transition:padding .3s cubic-bezier(.2,0,0,1)}.nd-children-divider[data-v-2210a491]{border-top:1px solid #0000;height:0;margin:0 .75rem;transition:border-color .1s,margin .1s}.nd-inline.nd-collapsed .nd-children-divider[data-v-2210a491]{border-top-color:var(--color-outline-variant);margin:.25rem .75rem;transition:border-color .2s .3s,margin .2s .3s}@keyframes m3-wave-flow{0%{transform:translate(0)}to{transform:translate(-20px)}}@keyframes m3-progress-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.animate-\[m3-wave-flow_1\.2s_linear_infinite\],.animate-\[m3-wave-flow_0\.9s_linear_infinite\],.animate-\[m3-progress-indeterminate_1\.6s_ease-in-out_infinite\]{animation:none!important}}@keyframes m3-cpb-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes m3-cpb-arc{0%,to{stroke-dasharray:18.8 232.5}50%{stroke-dasharray:176 75.3}}.m3-radio-dot[data-v-cdb650b5]{transform-box:fill-box;transform-origin:50%;transition:transform .15s;transform:scale(0)}.m3-radio-dot.is-checked[data-v-cdb650b5]{transform:scale(1)}.m3-select-modal-enter-active[data-v-bc6f9740],.m3-select-modal-leave-active[data-v-bc6f9740]{transition:opacity .15s}.m3-select-modal-enter-from[data-v-bc6f9740],.m3-select-modal-leave-to[data-v-bc6f9740]{opacity:0}.m3-select-modal-enter-active .select-modal-box[data-v-bc6f9740],.m3-select-modal-leave-active .select-modal-box[data-v-bc6f9740]{transition:transform .15s}.m3-select-modal-enter-from .select-modal-box[data-v-bc6f9740],.m3-select-modal-leave-to .select-modal-box[data-v-bc6f9740]{transform:scale(.95)}.ss-scrim[data-v-ba5b6f4b]{transition:opacity .28s}.ss-enter-from .ss-scrim[data-v-ba5b6f4b],.ss-leave-to .ss-scrim[data-v-ba5b6f4b]{opacity:0}.ss-panel[data-v-ba5b6f4b]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.ss-enter-from .ss-panel[data-v-ba5b6f4b]{opacity:0;transform:translate(40%)}.ss-leave-to .ss-panel[data-v-ba5b6f4b]{opacity:0;transform:translate(100%)!important}@keyframes skeleton-wave-move-32ecf05b{0%{transform:translate(-100%)}60%{transform:translate(100%)}to{transform:translate(100%)}}.skeleton-wave[data-v-32ecf05b]{position:relative;overflow:hidden}.skeleton-wave[data-v-32ecf05b]:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--color-on-surface) 50%, transparent 100%);opacity:.06;animation:1.8s ease-in-out infinite skeleton-wave-move-32ecf05b;position:absolute;inset:0}.toggle-btn[data-v-ec1435bc]{transition:border-radius .25s,background-color .15s}.m3-spot-enter-active[data-v-1fa0da82],.m3-spot-leave-active[data-v-1fa0da82]{transition:opacity .15s}.m3-spot-enter-from[data-v-1fa0da82],.m3-spot-leave-to[data-v-1fa0da82]{opacity:0}.m3-spot-enter-active .spot-box[data-v-1fa0da82],.m3-spot-leave-active .spot-box[data-v-1fa0da82]{transition:transform .15s,opacity .15s}.m3-spot-enter-from .spot-box[data-v-1fa0da82]{opacity:0;transform:scale(.96)translateY(-8px)}.m3-spot-leave-to .spot-box[data-v-1fa0da82]{opacity:0;transform:scale(.98)}.m3-tp-modal-enter-active[data-v-a2a090e9],.m3-tp-modal-leave-active[data-v-a2a090e9]{transition:opacity .15s}.m3-tp-modal-enter-from[data-v-a2a090e9],.m3-tp-modal-leave-to[data-v-a2a090e9]{opacity:0}.m3-tp-modal-enter-active .tp-box[data-v-a2a090e9],.m3-tp-modal-leave-active .tp-box[data-v-a2a090e9]{transition:transform .15s}.m3-tp-modal-enter-from .tp-box[data-v-a2a090e9],.m3-tp-modal-leave-to .tp-box[data-v-a2a090e9]{transform:scale(.95)}.m3-tour-highlight{box-shadow:0 0 0 4px var(--color-primary);border-radius:8px;position:relative;z-index:201!important}.m3-tour-enter-active,.m3-tour-leave-active{transition:opacity .2s}.m3-tour-enter-from,.m3-tour-leave-to{opacity:0}.m3-markdown[data-v-23db2c2c] h1{font-size:var(--text-headline-large);line-height:var(--text-headline-large--line-height);color:var(--color-on-surface);margin:1em 0 .5em;font-weight:600}.m3-markdown[data-v-23db2c2c] h2{font-size:var(--text-headline-medium);line-height:var(--text-headline-medium--line-height);color:var(--color-on-surface);margin:1em 0 .5em;font-weight:600}.m3-markdown[data-v-23db2c2c] h3{font-size:var(--text-headline-small);line-height:var(--text-headline-small--line-height);color:var(--color-on-surface);margin:.75em 0 .25em;font-weight:600}.m3-markdown[data-v-23db2c2c] h4{font-size:var(--text-title-large);line-height:var(--text-title-large--line-height);color:var(--color-on-surface);margin:.75em 0 .25em;font-weight:600}.m3-markdown[data-v-23db2c2c] p{margin:.5em 0}.m3-markdown[data-v-23db2c2c] a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.m3-markdown[data-v-23db2c2c] a:hover{opacity:.8}.m3-markdown[data-v-23db2c2c] strong{color:var(--color-on-surface);font-weight:600}.m3-markdown[data-v-23db2c2c] em{font-style:italic}.m3-markdown[data-v-23db2c2c] ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.m3-markdown[data-v-23db2c2c] ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.m3-markdown[data-v-23db2c2c] li{margin:.25em 0}.m3-markdown[data-v-23db2c2c] li::marker{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] blockquote{border-left:3px solid var(--color-primary);background:var(--color-surface-container);color:var(--color-on-surface-variant);border-radius:0 8px 8px 0;margin:.75em 0;padding:.5em 1em}.m3-markdown[data-v-23db2c2c] code{background:var(--color-surface-container-highest);color:var(--color-primary);border-radius:4px;padding:.15em .4em;font-family:Roboto Mono,Fira Code,Consolas,monospace;font-size:.875em}.m3-markdown[data-v-23db2c2c] pre{background:var(--color-surface-container-highest);border:1px solid var(--color-outline-variant);border-radius:12px;margin:.75em 0;padding:1em;overflow-x:auto}.m3-markdown[data-v-23db2c2c] pre code{color:var(--color-on-surface);background:0 0;padding:0;font-size:.8125rem;line-height:1.6}.m3-markdown[data-v-23db2c2c] .hljs-keyword,.m3-markdown[data-v-23db2c2c] .hljs-selector-tag,.m3-markdown[data-v-23db2c2c] .hljs-built_in,.m3-markdown[data-v-23db2c2c] .hljs-tag .hljs-keyword{color:var(--color-primary)}.m3-markdown[data-v-23db2c2c] .hljs-string,.m3-markdown[data-v-23db2c2c] .hljs-regexp,.m3-markdown[data-v-23db2c2c] .hljs-template-variable{color:var(--color-tertiary)}.m3-markdown[data-v-23db2c2c] .hljs-number,.m3-markdown[data-v-23db2c2c] .hljs-literal{color:var(--color-error)}.m3-markdown[data-v-23db2c2c] .hljs-title.function_,.m3-markdown[data-v-23db2c2c] .hljs-title.function_>.hljs-keyword{color:var(--color-secondary);font-weight:500}.m3-markdown[data-v-23db2c2c] .hljs-type,.m3-markdown[data-v-23db2c2c] .hljs-title.class_{color:var(--color-primary);font-style:italic}.m3-markdown[data-v-23db2c2c] .hljs-comment,.m3-markdown[data-v-23db2c2c] .hljs-quote{color:var(--color-outline);font-style:italic}.m3-markdown[data-v-23db2c2c] .hljs-attr,.m3-markdown[data-v-23db2c2c] .hljs-attribute{color:var(--color-tertiary)}.m3-markdown[data-v-23db2c2c] .hljs-tag{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] .hljs-name{color:var(--color-primary)}.m3-markdown[data-v-23db2c2c] .hljs-punctuation,.m3-markdown[data-v-23db2c2c] .hljs-operator,.m3-markdown[data-v-23db2c2c] .hljs-meta,.m3-markdown[data-v-23db2c2c] .hljs-meta .hljs-keyword{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] .hljs-variable,.m3-markdown[data-v-23db2c2c] .hljs-property,.m3-markdown[data-v-23db2c2c] .hljs-symbol,.m3-markdown[data-v-23db2c2c] .hljs-params{color:var(--color-on-surface)}.m3-markdown[data-v-23db2c2c] .m3-code-block{position:relative}.m3-markdown[data-v-23db2c2c] .m3-code-copy{background:var(--color-surface-container);width:28px;height:28px;color:var(--color-on-surface-variant);cursor:pointer;opacity:0;z-index:1;border:none;border-radius:6px;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.m3-markdown[data-v-23db2c2c] .m3-code-block:hover .m3-code-copy{opacity:1}.m3-markdown[data-v-23db2c2c] .m3-code-copy:hover{background:var(--color-surface-container-high);color:var(--color-on-surface)}.m3-markdown[data-v-23db2c2c] .m3-code-line{display:block}.m3-markdown[data-v-23db2c2c] .m3-line-hl{background:color-mix(in srgb, var(--color-primary) 8%, transparent);border-left:2px solid color-mix(in srgb, var(--color-primary) 40%, transparent);margin:0 -1em;padding:0 1em 0 calc(1em - 2px)}.m3-markdown[data-v-23db2c2c] hr{border:none;border-top:1px solid var(--color-outline-variant);margin:1.5em 0}.m3-markdown[data-v-23db2c2c] table{border-collapse:collapse;width:100%;margin:.75em 0}.m3-markdown[data-v-23db2c2c] th{background:var(--color-surface-container);text-align:left;border-bottom:2px solid var(--color-outline-variant);font-weight:600;font-size:var(--text-label-large);color:var(--color-on-surface);padding:.5em .75em}.m3-markdown[data-v-23db2c2c] td{border-bottom:1px solid var(--color-outline-variant);padding:.5em .75em}.m3-markdown[data-v-23db2c2c] img{border-radius:12px;max-width:100%;height:auto;margin:.5em 0}.rte-content[data-v-e6829e5c] .tiptap{min-height:inherit;outline:none}.rte-content[data-v-e6829e5c] .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--color-on-surface-variant);opacity:.5;pointer-events:none;height:0}.rte-content[data-v-e6829e5c] h1{font-size:var(--text-headline-large);line-height:var(--text-headline-large--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] h2{font-size:var(--text-headline-medium);line-height:var(--text-headline-medium--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] h3{font-size:var(--text-headline-small);line-height:var(--text-headline-small--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] p{margin:.5em 0}.rte-content[data-v-e6829e5c] ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.rte-content[data-v-e6829e5c] ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.rte-content[data-v-e6829e5c] blockquote{border-left:3px solid var(--color-primary);color:var(--color-on-surface-variant);margin:.5em 0;padding-left:1em}.rte-content[data-v-e6829e5c] code{background:var(--color-surface-container-highest);border-radius:4px;padding:.15em .4em;font-size:.875em}.rte-content[data-v-e6829e5c] pre{background:var(--color-surface-container-highest);border-radius:8px;margin:.5em 0;padding:1em;overflow-x:auto}.rte-content[data-v-e6829e5c] pre code{background:0 0;padding:0}.rte-content[data-v-e6829e5c] a{color:var(--color-primary);text-decoration:underline}.rte-content[data-v-e6829e5c] mark{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px;padding:.1em .2em}.rte-content[data-v-e6829e5c] img{border-radius:8px;max-width:100%;height:auto;margin:.5em 0}
1
+ .code-editor-container[data-v-b0a66a4b] .cm-editor{height:100%;min-height:inherit;font-family:Roboto Mono,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.6}.code-editor-container[data-v-b0a66a4b] .cm-editor.cm-focused{outline:none}.code-editor-container[data-v-b0a66a4b] .cm-scroller{min-height:inherit}.code-editor-container[data-v-b0a66a4b] .cm-content{padding:12px 0}.code-editor-container[data-v-b0a66a4b] .cm-line{padding:0 16px}.code-editor-container[data-v-b0a66a4b] .cm-gutters{background:var(--color-surface-container);border-right:1px solid var(--color-outline-variant);color:var(--color-outline);padding:0 4px;font-size:.75rem}.code-editor-container[data-v-b0a66a4b] .cm-activeLineGutter{background:var(--color-surface-container-high);color:var(--color-on-surface-variant)}.code-editor-container[data-v-b0a66a4b] .cm-activeLine{background:var(--color-surface-container-lowest)}.code-editor-container[data-v-b0a66a4b] .cm-selectionBackground{background:var(--color-primary-container)!important}.code-editor-container[data-v-b0a66a4b] .cm-cursor{border-left-color:var(--color-primary);border-left-width:2px}.code-editor-container[data-v-b0a66a4b] .cm-matchingBracket{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px}.code-editor-container[data-v-b0a66a4b] .cm-foldGutter span{color:var(--color-on-surface-variant)}@keyframes m3-wavy-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes m3-wavy-travel{0%{stroke-dashoffset:0}to{stroke-dashoffset:calc(var(--m3-wave-len) * -1px)}}@media (prefers-reduced-motion:reduce){.animate-\[m3-wavy-spin_2\.8s_linear_infinite\]{animation:2.8s linear infinite m3-wavy-spin}.animate-\[m3-wavy-travel_2s_linear_infinite\]{animation:none!important}}.m3-dialog-enter-active[data-v-2e3c3567],.m3-dialog-leave-active[data-v-2e3c3567]{transition:opacity .15s}.m3-dialog-enter-from[data-v-2e3c3567],.m3-dialog-leave-to[data-v-2e3c3567]{opacity:0}.m3-dialog-enter-active .dialog-box[data-v-2e3c3567],.m3-dialog-leave-active .dialog-box[data-v-2e3c3567]{transition:transform .15s}.m3-dialog-enter-from .dialog-box[data-v-2e3c3567],.m3-dialog-leave-to .dialog-box[data-v-2e3c3567]{transform:scale(.95)}.m3-dialog-fs-enter-active[data-v-2e3c3567],.m3-dialog-fs-leave-active[data-v-2e3c3567]{transition:transform .25s cubic-bezier(.2,0,0,1),opacity .15s}.m3-dialog-fs-enter-from[data-v-2e3c3567],.m3-dialog-fs-leave-to[data-v-2e3c3567]{opacity:0;transform:translateY(100%)}.toast-row[data-v-d4877a26]{grid-template-rows:1fr;padding-bottom:8px;display:grid}.toast-row>.toast-inner[data-v-d4877a26]{min-height:0}.m3-toast-bot-enter-active[data-v-d4877a26]{transition:grid-template-rows .22s cubic-bezier(.2,0,0,1),padding-bottom .22s cubic-bezier(.2,0,0,1)}.m3-toast-bot-enter-active>.toast-inner[data-v-d4877a26]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-bot-enter-from[data-v-d4877a26]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-enter-from>.toast-inner[data-v-d4877a26]{opacity:0;transform:translateY(20px)scale(.94)}.m3-toast-bot-leave-active[data-v-d4877a26]{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1),padding-bottom .3s cubic-bezier(.2,0,0,1)}.m3-toast-bot-leave-active>.toast-inner[data-v-d4877a26]{transition:opacity .18s,transform .18s}.m3-toast-bot-leave-to[data-v-d4877a26]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-leave-to>.toast-inner[data-v-d4877a26]{opacity:0;transform:scale(.92)}.m3-toast-bot-leave-active>.toast-count-badge[data-v-d4877a26]{transition:opacity .15s,transform .15s}.m3-toast-bot-leave-to>.toast-count-badge[data-v-d4877a26]{opacity:0;transform:scale(.5)}.m3-toast-top-enter-active[data-v-d4877a26]{transition:grid-template-rows .22s cubic-bezier(.2,0,0,1),padding-bottom .22s cubic-bezier(.2,0,0,1)}.m3-toast-top-enter-active>.toast-inner[data-v-d4877a26]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-top-enter-from[data-v-d4877a26]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-enter-from>.toast-inner[data-v-d4877a26]{opacity:0;transform:translateY(-20px)scale(.94)}.m3-toast-top-leave-active[data-v-d4877a26]{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1),padding-bottom .3s cubic-bezier(.2,0,0,1)}.m3-toast-top-leave-active>.toast-inner[data-v-d4877a26]{transition:opacity .18s,transform .18s}.m3-toast-top-leave-to[data-v-d4877a26]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-leave-to>.toast-inner[data-v-d4877a26]{opacity:0;transform:scale(.92)}.m3-toast-top-leave-active>.toast-count-badge[data-v-d4877a26]{transition:opacity .15s,transform .15s}.m3-toast-top-leave-to>.toast-count-badge[data-v-d4877a26]{opacity:0;transform:scale(.5)}.m3-badge-enter-active[data-v-d4877a26]{transition:opacity .2s,transform .2s cubic-bezier(.34,1.56,.64,1)}.m3-badge-leave-active[data-v-d4877a26]{transition:opacity .15s,transform .15s}.m3-badge-enter-from[data-v-d4877a26],.m3-badge-leave-to[data-v-d4877a26]{opacity:0;transform:scale(.5)}.m3-count-enter-active[data-v-d4877a26]{transition:opacity .12s,transform .12s}.m3-count-leave-active[data-v-d4877a26]{transition:opacity 80ms,transform 80ms}.m3-count-enter-from[data-v-d4877a26]{opacity:0;transform:scale(1.5)translateY(-3px)}.m3-count-leave-to[data-v-d4877a26]{opacity:0;transform:scale(.6)translateY(2px)}@keyframes m3-toast-progress-d4877a26{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.notif-row[data-v-2338355e]{grid-template-rows:1fr;padding-bottom:6px;display:grid}.notif-row>.notif-inner[data-v-2338355e]{min-height:0}.m3-notif-bot-enter-active[data-v-2338355e]{transition:grid-template-rows .2s,padding-bottom .2s}.m3-notif-bot-enter-active>.notif-inner[data-v-2338355e]{transition:opacity .15s,transform .2s;overflow:hidden}.m3-notif-bot-enter-from[data-v-2338355e]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-bot-enter-from>.notif-inner[data-v-2338355e]{opacity:0;transform:translateY(12px)scale(.95)}.m3-notif-bot-leave-active[data-v-2338355e]{transition:grid-template-rows .25s,padding-bottom .25s}.m3-notif-bot-leave-active>.notif-inner[data-v-2338355e]{transition:opacity .15s,transform .15s;overflow:hidden}.m3-notif-bot-leave-to[data-v-2338355e]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-bot-leave-to>.notif-inner[data-v-2338355e]{opacity:0;transform:scale(.93)}.m3-notif-bot-leave-active>.notif-count-badge[data-v-2338355e]{transition:opacity .15s,transform .15s}.m3-notif-bot-leave-to>.notif-count-badge[data-v-2338355e]{opacity:0;transform:scale(.5)}.m3-notif-top-enter-active[data-v-2338355e]{transition:grid-template-rows .2s,padding-bottom .2s}.m3-notif-top-enter-active>.notif-inner[data-v-2338355e]{transition:opacity .15s,transform .2s;overflow:hidden}.m3-notif-top-enter-from[data-v-2338355e]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-top-enter-from>.notif-inner[data-v-2338355e]{opacity:0;transform:translateY(-12px)scale(.95)}.m3-notif-top-leave-active[data-v-2338355e]{transition:grid-template-rows .25s,padding-bottom .25s}.m3-notif-top-leave-active>.notif-inner[data-v-2338355e]{transition:opacity .15s,transform .15s;overflow:hidden}.m3-notif-top-leave-to[data-v-2338355e]{grid-template-rows:0fr;padding-bottom:0}.m3-notif-top-leave-to>.notif-inner[data-v-2338355e]{opacity:0;transform:scale(.93)}.m3-notif-top-leave-active>.notif-count-badge[data-v-2338355e]{transition:opacity .15s,transform .15s}.m3-notif-top-leave-to>.notif-count-badge[data-v-2338355e]{opacity:0;transform:scale(.5)}.m3-badge-enter-active[data-v-2338355e]{transition:opacity .2s,transform .2s cubic-bezier(.34,1.56,.64,1)}.m3-badge-leave-active[data-v-2338355e]{transition:opacity .15s,transform .15s}.m3-badge-enter-from[data-v-2338355e],.m3-badge-leave-to[data-v-2338355e]{opacity:0;transform:scale(.5)}.m3-count-enter-active[data-v-2338355e]{transition:opacity .12s,transform .12s}.m3-count-leave-active[data-v-2338355e]{transition:opacity 80ms,transform 80ms}.m3-count-enter-from[data-v-2338355e]{opacity:0;transform:scale(1.5)translateY(-3px)}.m3-count-leave-to[data-v-2338355e]{opacity:0;transform:scale(.6)translateY(2px)}.m3-ac-modal-enter-active[data-v-aace974a],.m3-ac-modal-leave-active[data-v-aace974a]{transition:opacity .15s}.m3-ac-modal-enter-from[data-v-aace974a],.m3-ac-modal-leave-to[data-v-aace974a]{opacity:0}.m3-ac-modal-enter-active .ac-modal-box[data-v-aace974a],.m3-ac-modal-leave-active .ac-modal-box[data-v-aace974a]{transition:transform .15s}.m3-ac-modal-enter-from .ac-modal-box[data-v-aace974a],.m3-ac-modal-leave-to .ac-modal-box[data-v-aace974a]{transform:scale(.95)}.bs-scrim[data-v-5b1fb748]{transition:opacity .3s}.bs-enter-from .bs-scrim[data-v-5b1fb748],.bs-leave-to .bs-scrim[data-v-5b1fb748]{opacity:0}.bs-panel[data-v-5b1fb748]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.bs-enter-from .bs-panel[data-v-5b1fb748]{opacity:0;transform:translateY(40%)}.bs-leave-to .bs-panel[data-v-5b1fb748]{opacity:0;transform:translateY(100%)!important}.carousel-track[data-v-f1acc440]{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel-track[data-v-f1acc440]::-webkit-scrollbar{display:none}.snap-center[data-v-f1acc440]>*{scroll-snap-align:center}.snap-start[data-v-f1acc440]>*{scroll-snap-align:start}.hue-slider[data-v-4d640982]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-4d640982]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-4d640982]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-59af9128]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-59af9128]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.hue-slider[data-v-59af9128]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.m3-cp-modal-enter-active[data-v-59af9128],.m3-cp-modal-leave-active[data-v-59af9128]{transition:opacity .15s}.m3-cp-modal-enter-from[data-v-59af9128],.m3-cp-modal-leave-to[data-v-59af9128]{opacity:0}.m3-cp-modal-enter-active .cp-box[data-v-59af9128],.m3-cp-modal-leave-active .cp-box[data-v-59af9128]{transition:transform .15s}.m3-cp-modal-enter-from .cp-box[data-v-59af9128],.m3-cp-modal-leave-to .cp-box[data-v-59af9128]{transform:scale(.95)}.m3-cmd-enter-active[data-v-4d6cca63],.m3-cmd-leave-active[data-v-4d6cca63]{transition:opacity .15s}.m3-cmd-enter-from[data-v-4d6cca63],.m3-cmd-leave-to[data-v-4d6cca63]{opacity:0}.m3-cmd-enter-active .cmd-box[data-v-4d6cca63],.m3-cmd-leave-active .cmd-box[data-v-4d6cca63]{transition:transform .15s}.m3-cmd-enter-from .cmd-box[data-v-4d6cca63],.m3-cmd-leave-to .cmd-box[data-v-4d6cca63]{transform:scale(.95)translateY(-10px)}.dt-expand-grid[data-v-857139c7]{grid-template-rows:0fr;transition:grid-template-rows .25s cubic-bezier(.2,0,0,1);display:grid}.dt-expand-grid.dt-expand-open[data-v-857139c7]{grid-template-rows:1fr}.dt-expand-body[data-v-857139c7]{min-height:0;overflow:hidden}.m3-dp-modal-enter-active[data-v-ac5f05d4],.m3-dp-modal-leave-active[data-v-ac5f05d4]{transition:opacity .15s}.m3-dp-modal-enter-from[data-v-ac5f05d4],.m3-dp-modal-leave-to[data-v-ac5f05d4]{opacity:0}.m3-dp-modal-enter-active .dp-box[data-v-ac5f05d4],.m3-dp-modal-leave-active .dp-box[data-v-ac5f05d4]{transition:transform .15s}.m3-dp-modal-enter-from .dp-box[data-v-ac5f05d4],.m3-dp-modal-leave-to .dp-box[data-v-ac5f05d4]{transform:scale(.95)}.m3-drp-modal-enter-active[data-v-fcb7a791],.m3-drp-modal-leave-active[data-v-fcb7a791]{transition:opacity .15s}.m3-drp-modal-enter-from[data-v-fcb7a791],.m3-drp-modal-leave-to[data-v-fcb7a791]{opacity:0}.m3-drp-modal-enter-active .drp-box[data-v-fcb7a791],.m3-drp-modal-leave-active .drp-box[data-v-fcb7a791]{transition:transform .15s}.m3-drp-modal-enter-from .drp-box[data-v-fcb7a791],.m3-drp-modal-leave-to .drp-box[data-v-fcb7a791]{transform:scale(.95)}.expand-grid[data-v-31731809]{grid-template-rows:0fr;transition:grid-template-rows .3s ease-in-out;display:grid}.expand-grid.expand-open[data-v-31731809]{grid-template-rows:1fr}.expand-body[data-v-31731809]{min-height:0;overflow:hidden}.m3-fab-content-enter-active[data-v-02ba313e]{transition:opacity .2s,transform .2s cubic-bezier(.2,0,0,1)}.m3-fab-content-leave-active[data-v-02ba313e]{transition:opacity .15s,transform .15s}.m3-fab-content-enter-from[data-v-02ba313e]{opacity:0;transform:scale(.85)}.m3-fab-content-leave-to[data-v-02ba313e]{opacity:0;transform:scale(.9)}.m3-file-enter-active[data-v-6b150427],.m3-file-leave-active[data-v-6b150427]{transition:all .2s}.m3-file-enter-from[data-v-6b150427],.m3-file-leave-to[data-v-6b150427]{opacity:0;transform:translateY(-8px)}.mli-expand-grid{grid-template-rows:1fr;display:grid}.mli-expand-body{min-height:0;padding-left:2rem;overflow:hidden}.mli-expand-enter-active{transition:grid-template-rows .3s cubic-bezier(.2,0,0,1)}.mli-expand-enter-active>.mli-expand-body{transition:opacity .2s cubic-bezier(.2,0,0,1) 80ms}.mli-expand-enter-from{grid-template-rows:0fr}.mli-expand-enter-from>.mli-expand-body{opacity:0}.mli-expand-leave-active{transition:grid-template-rows .25s cubic-bezier(.4,0,1,1)}.mli-expand-leave-active>.mli-expand-body{transition:opacity .12s cubic-bezier(.4,0,1,1)}.mli-expand-leave-to{grid-template-rows:0fr}.mli-expand-leave-to>.mli-expand-body{opacity:0}.m3-mac-modal-enter-active[data-v-3337b2c7],.m3-mac-modal-leave-active[data-v-3337b2c7]{transition:opacity .15s}.m3-mac-modal-enter-from[data-v-3337b2c7],.m3-mac-modal-leave-to[data-v-3337b2c7]{opacity:0}.m3-mac-modal-enter-active .mac-modal-box[data-v-3337b2c7],.m3-mac-modal-leave-active .mac-modal-box[data-v-3337b2c7]{transition:transform .15s}.m3-mac-modal-enter-from .mac-modal-box[data-v-3337b2c7],.m3-mac-modal-leave-to .mac-modal-box[data-v-3337b2c7]{transform:scale(.95)}.m3-ms-modal-enter-active[data-v-67bbd3cf],.m3-ms-modal-leave-active[data-v-67bbd3cf]{transition:opacity .15s}.m3-ms-modal-enter-from[data-v-67bbd3cf],.m3-ms-modal-leave-to[data-v-67bbd3cf]{opacity:0}.m3-ms-modal-enter-active .ms-modal-box[data-v-67bbd3cf],.m3-ms-modal-leave-active .ms-modal-box[data-v-67bbd3cf]{transition:transform .15s}.m3-ms-modal-enter-from .ms-modal-box[data-v-67bbd3cf],.m3-ms-modal-leave-to .ms-modal-box[data-v-67bbd3cf]{transform:scale(.95)}input[type=number][data-v-f6db08d0]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-f6db08d0]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-f6db08d0]{-moz-appearance:textfield}.nd-scrim[data-v-2210a491]{transition:opacity .28s}.nd-enter-from .nd-scrim[data-v-2210a491],.nd-leave-to .nd-scrim[data-v-2210a491]{opacity:0}.nd-panel[data-v-2210a491]{transition:transform .3s cubic-bezier(.2,0,0,1)}.nd-enter-from .nd-panel-left[data-v-2210a491],.nd-leave-to .nd-panel-left[data-v-2210a491]{transform:translate(-100%)}.nd-enter-from .nd-panel-right[data-v-2210a491],.nd-leave-to .nd-panel-right[data-v-2210a491]{transform:translate(100%)}.nd-enter-from .nd-panel-top[data-v-2210a491],.nd-leave-to .nd-panel-top[data-v-2210a491]{transform:translateY(-100%)}.nd-enter-from .nd-panel-bottom[data-v-2210a491],.nd-leave-to .nd-panel-bottom[data-v-2210a491]{transform:translateY(100%)}.nd-section-grid[data-v-2210a491]{grid-template-rows:1fr;display:grid}.nd-section-body[data-v-2210a491]{min-height:0;overflow:hidden}.nd-section-enter-active[data-v-2210a491]{transition:grid-template-rows .35s cubic-bezier(.2,0,0,1)}.nd-section-enter-active>.nd-section-body[data-v-2210a491]{transition:opacity .25s cubic-bezier(.2,0,0,1) 80ms}.nd-section-enter-from[data-v-2210a491]{grid-template-rows:0fr}.nd-section-enter-from>.nd-section-body[data-v-2210a491]{opacity:0}.nd-section-leave-active[data-v-2210a491]{transition:grid-template-rows .28s cubic-bezier(.4,0,1,1)}.nd-section-leave-active>.nd-section-body[data-v-2210a491]{transition:opacity .15s cubic-bezier(.4,0,1,1)}.nd-section-leave-to[data-v-2210a491]{grid-template-rows:0fr}.nd-section-leave-to>.nd-section-body[data-v-2210a491]{opacity:0}.nd-inline[data-v-2210a491]{transition:width .3s cubic-bezier(.2,0,0,1);overflow:hidden}.nd-inline[data-v-2210a491]>*{min-width:var(--nd-width,18rem)}.nd-inline.nd-collapsed[data-v-2210a491]>*{min-width:0}.nd-toggle[data-v-2210a491]{align-items:center;display:flex}.nd-toggle-inner[data-v-2210a491]{flex-shrink:0;justify-content:center;align-items:center;width:72px;height:64px;display:flex}.nd-label[data-v-2210a491]{transition:opacity .2s cubic-bezier(.2,0,0,1) 80ms}.nd-inline.nd-collapsed .nd-label[data-v-2210a491],.nd-inline.nd-collapsed[data-v-2210a491] .nd-label{opacity:0;transition:opacity .1s cubic-bezier(.2,0,0,1)}.nd-inline .nd-collapse-h[data-v-2210a491]{max-height:80px;transition:max-height .3s cubic-bezier(.2,0,0,1)}.nd-inline.nd-collapsed .nd-collapse-h[data-v-2210a491]{max-height:0}.nd-inline .nd-section-body[data-v-2210a491]>*,.nd-inline[data-v-2210a491] .nd-section-body>*{transition:padding .3s cubic-bezier(.2,0,0,1)}.nd-children-divider[data-v-2210a491]{border-top:1px solid #0000;height:0;margin:0 .75rem;transition:border-color .1s,margin .1s}.nd-inline.nd-collapsed .nd-children-divider[data-v-2210a491]{border-top-color:var(--color-outline-variant);margin:.25rem .75rem;transition:border-color .2s .3s,margin .2s .3s}@keyframes m3-wave-flow{0%{transform:translate(0)}to{transform:translate(-20px)}}@keyframes m3-progress-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.animate-\[m3-wave-flow_1\.2s_linear_infinite\],.animate-\[m3-wave-flow_0\.9s_linear_infinite\],.animate-\[m3-progress-indeterminate_1\.6s_ease-in-out_infinite\]{animation:none!important}}@keyframes m3-cpb-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes m3-cpb-arc{0%{stroke-dasharray:5 246.3;stroke-dashoffset:0}50%{stroke-dasharray:176 75.3;stroke-dashoffset:-70px}to{stroke-dasharray:5 246.3;stroke-dashoffset:-251.3px}}.m3-radio-dot[data-v-cdb650b5]{transform-box:fill-box;transform-origin:50%;transition:transform .15s;transform:scale(0)}.m3-radio-dot.is-checked[data-v-cdb650b5]{transform:scale(1)}.m3-select-modal-enter-active[data-v-17adb5b4],.m3-select-modal-leave-active[data-v-17adb5b4]{transition:opacity .15s}.m3-select-modal-enter-from[data-v-17adb5b4],.m3-select-modal-leave-to[data-v-17adb5b4]{opacity:0}.m3-select-modal-enter-active .select-modal-box[data-v-17adb5b4],.m3-select-modal-leave-active .select-modal-box[data-v-17adb5b4]{transition:transform .15s}.m3-select-modal-enter-from .select-modal-box[data-v-17adb5b4],.m3-select-modal-leave-to .select-modal-box[data-v-17adb5b4]{transform:scale(.95)}.ss-scrim[data-v-ba5b6f4b]{transition:opacity .28s}.ss-enter-from .ss-scrim[data-v-ba5b6f4b],.ss-leave-to .ss-scrim[data-v-ba5b6f4b]{opacity:0}.ss-panel[data-v-ba5b6f4b]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.ss-enter-from .ss-panel[data-v-ba5b6f4b]{opacity:0;transform:translate(40%)}.ss-leave-to .ss-panel[data-v-ba5b6f4b]{opacity:0;transform:translate(100%)!important}@keyframes skeleton-wave-move-32ecf05b{0%{transform:translate(-100%)}60%{transform:translate(100%)}to{transform:translate(100%)}}.skeleton-wave[data-v-32ecf05b]{position:relative;overflow:hidden}.skeleton-wave[data-v-32ecf05b]:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--color-on-surface) 50%, transparent 100%);opacity:.06;animation:1.8s ease-in-out infinite skeleton-wave-move-32ecf05b;position:absolute;inset:0}.toggle-btn[data-v-ec1435bc]{transition:border-radius .25s,background-color .15s}.m3-spot-enter-active[data-v-1fa0da82],.m3-spot-leave-active[data-v-1fa0da82]{transition:opacity .15s}.m3-spot-enter-from[data-v-1fa0da82],.m3-spot-leave-to[data-v-1fa0da82]{opacity:0}.m3-spot-enter-active .spot-box[data-v-1fa0da82],.m3-spot-leave-active .spot-box[data-v-1fa0da82]{transition:transform .15s,opacity .15s}.m3-spot-enter-from .spot-box[data-v-1fa0da82]{opacity:0;transform:scale(.96)translateY(-8px)}.m3-spot-leave-to .spot-box[data-v-1fa0da82]{opacity:0;transform:scale(.98)}.m3-tp-modal-enter-active[data-v-a2a090e9],.m3-tp-modal-leave-active[data-v-a2a090e9]{transition:opacity .15s}.m3-tp-modal-enter-from[data-v-a2a090e9],.m3-tp-modal-leave-to[data-v-a2a090e9]{opacity:0}.m3-tp-modal-enter-active .tp-box[data-v-a2a090e9],.m3-tp-modal-leave-active .tp-box[data-v-a2a090e9]{transition:transform .15s}.m3-tp-modal-enter-from .tp-box[data-v-a2a090e9],.m3-tp-modal-leave-to .tp-box[data-v-a2a090e9]{transform:scale(.95)}.m3-tour-highlight{box-shadow:0 0 0 4px var(--color-primary);border-radius:8px;position:relative;z-index:201!important}.m3-tour-enter-active,.m3-tour-leave-active{transition:opacity .2s}.m3-tour-enter-from,.m3-tour-leave-to{opacity:0}.m3-markdown[data-v-23db2c2c] h1{font-size:var(--text-headline-large);line-height:var(--text-headline-large--line-height);color:var(--color-on-surface);margin:1em 0 .5em;font-weight:600}.m3-markdown[data-v-23db2c2c] h2{font-size:var(--text-headline-medium);line-height:var(--text-headline-medium--line-height);color:var(--color-on-surface);margin:1em 0 .5em;font-weight:600}.m3-markdown[data-v-23db2c2c] h3{font-size:var(--text-headline-small);line-height:var(--text-headline-small--line-height);color:var(--color-on-surface);margin:.75em 0 .25em;font-weight:600}.m3-markdown[data-v-23db2c2c] h4{font-size:var(--text-title-large);line-height:var(--text-title-large--line-height);color:var(--color-on-surface);margin:.75em 0 .25em;font-weight:600}.m3-markdown[data-v-23db2c2c] p{margin:.5em 0}.m3-markdown[data-v-23db2c2c] a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.m3-markdown[data-v-23db2c2c] a:hover{opacity:.8}.m3-markdown[data-v-23db2c2c] strong{color:var(--color-on-surface);font-weight:600}.m3-markdown[data-v-23db2c2c] em{font-style:italic}.m3-markdown[data-v-23db2c2c] ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.m3-markdown[data-v-23db2c2c] ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.m3-markdown[data-v-23db2c2c] li{margin:.25em 0}.m3-markdown[data-v-23db2c2c] li::marker{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] blockquote{border-left:3px solid var(--color-primary);background:var(--color-surface-container);color:var(--color-on-surface-variant);border-radius:0 8px 8px 0;margin:.75em 0;padding:.5em 1em}.m3-markdown[data-v-23db2c2c] code{background:var(--color-surface-container-highest);color:var(--color-primary);border-radius:4px;padding:.15em .4em;font-family:Roboto Mono,Fira Code,Consolas,monospace;font-size:.875em}.m3-markdown[data-v-23db2c2c] pre{background:var(--color-surface-container-highest);border:1px solid var(--color-outline-variant);border-radius:12px;margin:.75em 0;padding:1em;overflow-x:auto}.m3-markdown[data-v-23db2c2c] pre code{color:var(--color-on-surface);background:0 0;padding:0;font-size:.8125rem;line-height:1.6}.m3-markdown[data-v-23db2c2c] .hljs-keyword,.m3-markdown[data-v-23db2c2c] .hljs-selector-tag,.m3-markdown[data-v-23db2c2c] .hljs-built_in,.m3-markdown[data-v-23db2c2c] .hljs-tag .hljs-keyword{color:var(--color-primary)}.m3-markdown[data-v-23db2c2c] .hljs-string,.m3-markdown[data-v-23db2c2c] .hljs-regexp,.m3-markdown[data-v-23db2c2c] .hljs-template-variable{color:var(--color-tertiary)}.m3-markdown[data-v-23db2c2c] .hljs-number,.m3-markdown[data-v-23db2c2c] .hljs-literal{color:var(--color-error)}.m3-markdown[data-v-23db2c2c] .hljs-title.function_,.m3-markdown[data-v-23db2c2c] .hljs-title.function_>.hljs-keyword{color:var(--color-secondary);font-weight:500}.m3-markdown[data-v-23db2c2c] .hljs-type,.m3-markdown[data-v-23db2c2c] .hljs-title.class_{color:var(--color-primary);font-style:italic}.m3-markdown[data-v-23db2c2c] .hljs-comment,.m3-markdown[data-v-23db2c2c] .hljs-quote{color:var(--color-outline);font-style:italic}.m3-markdown[data-v-23db2c2c] .hljs-attr,.m3-markdown[data-v-23db2c2c] .hljs-attribute{color:var(--color-tertiary)}.m3-markdown[data-v-23db2c2c] .hljs-tag{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] .hljs-name{color:var(--color-primary)}.m3-markdown[data-v-23db2c2c] .hljs-punctuation,.m3-markdown[data-v-23db2c2c] .hljs-operator,.m3-markdown[data-v-23db2c2c] .hljs-meta,.m3-markdown[data-v-23db2c2c] .hljs-meta .hljs-keyword{color:var(--color-on-surface-variant)}.m3-markdown[data-v-23db2c2c] .hljs-variable,.m3-markdown[data-v-23db2c2c] .hljs-property,.m3-markdown[data-v-23db2c2c] .hljs-symbol,.m3-markdown[data-v-23db2c2c] .hljs-params{color:var(--color-on-surface)}.m3-markdown[data-v-23db2c2c] .m3-code-block{position:relative}.m3-markdown[data-v-23db2c2c] .m3-code-copy{background:var(--color-surface-container);width:28px;height:28px;color:var(--color-on-surface-variant);cursor:pointer;opacity:0;z-index:1;border:none;border-radius:6px;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.m3-markdown[data-v-23db2c2c] .m3-code-block:hover .m3-code-copy{opacity:1}.m3-markdown[data-v-23db2c2c] .m3-code-copy:hover{background:var(--color-surface-container-high);color:var(--color-on-surface)}.m3-markdown[data-v-23db2c2c] .m3-code-line{display:block}.m3-markdown[data-v-23db2c2c] .m3-line-hl{background:color-mix(in srgb, var(--color-primary) 8%, transparent);border-left:2px solid color-mix(in srgb, var(--color-primary) 40%, transparent);margin:0 -1em;padding:0 1em 0 calc(1em - 2px)}.m3-markdown[data-v-23db2c2c] hr{border:none;border-top:1px solid var(--color-outline-variant);margin:1.5em 0}.m3-markdown[data-v-23db2c2c] table{border-collapse:collapse;width:100%;margin:.75em 0}.m3-markdown[data-v-23db2c2c] th{background:var(--color-surface-container);text-align:left;border-bottom:2px solid var(--color-outline-variant);font-weight:600;font-size:var(--text-label-large);color:var(--color-on-surface);padding:.5em .75em}.m3-markdown[data-v-23db2c2c] td{border-bottom:1px solid var(--color-outline-variant);padding:.5em .75em}.m3-markdown[data-v-23db2c2c] img{border-radius:12px;max-width:100%;height:auto;margin:.5em 0}.rte-content[data-v-e6829e5c] .tiptap{min-height:inherit;outline:none}.rte-content[data-v-e6829e5c] .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--color-on-surface-variant);opacity:.5;pointer-events:none;height:0}.rte-content[data-v-e6829e5c] h1{font-size:var(--text-headline-large);line-height:var(--text-headline-large--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] h2{font-size:var(--text-headline-medium);line-height:var(--text-headline-medium--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] h3{font-size:var(--text-headline-small);line-height:var(--text-headline-small--line-height);margin:.75em 0 .25em;font-weight:600}.rte-content[data-v-e6829e5c] p{margin:.5em 0}.rte-content[data-v-e6829e5c] ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.rte-content[data-v-e6829e5c] ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.rte-content[data-v-e6829e5c] blockquote{border-left:3px solid var(--color-primary);color:var(--color-on-surface-variant);margin:.5em 0;padding-left:1em}.rte-content[data-v-e6829e5c] code{background:var(--color-surface-container-highest);border-radius:4px;padding:.15em .4em;font-size:.875em}.rte-content[data-v-e6829e5c] pre{background:var(--color-surface-container-highest);border-radius:8px;margin:.5em 0;padding:1em;overflow-x:auto}.rte-content[data-v-e6829e5c] pre code{background:0 0;padding:0}.rte-content[data-v-e6829e5c] a{color:var(--color-primary);text-decoration:underline}.rte-content[data-v-e6829e5c] mark{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px;padding:.1em .2em}.rte-content[data-v-e6829e5c] img{border-radius:8px;max-width:100%;height:auto;margin:.5em 0}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m3ui-vue/m3ui-vue",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
4
4
  "description": "Material 3 component library for Vue 3 + Tailwind CSS v4",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -53,12 +53,13 @@ const style = computed(() => {
53
53
  return s
54
54
  }
55
55
 
56
+ const hasAny = props.top !== undefined || props.right !== undefined || props.bottom !== undefined || props.left !== undefined
56
57
  return {
57
58
  position: 'absolute' as const,
58
- top: toUnit(props.top),
59
+ top: hasAny ? toUnit(props.top) : '8px',
59
60
  right: toUnit(props.right),
60
61
  bottom: toUnit(props.bottom),
61
- left: toUnit(props.left),
62
+ left: hasAny ? toUnit(props.left) : '8px',
62
63
  zIndex: props.zIndex,
63
64
  }
64
65
  })
@@ -16,7 +16,8 @@ const props = withDefaults(
16
16
  variant?: 'filled' | 'outlined'
17
17
  mode?: 'docked' | 'modal'
18
18
  disabled?: boolean
19
- error?: string
19
+ error?: boolean
20
+ errorLabel?: string
20
21
  hint?: string
21
22
  required?: boolean
22
23
  leadingIcon?: string
@@ -357,7 +358,7 @@ const labelClasses = computed(() => {
357
358
  </div>
358
359
  </div>
359
360
 
360
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
361
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
361
362
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
362
363
  </div>
363
364
 
@@ -341,12 +341,14 @@ const maskId = useId();
341
341
  }
342
342
 
343
343
  /*
344
- Arc size oscillates between ~7 % and ~70 % of the circumference (CIRC 251.3).
345
- Combined with the spin at a different period (1.4 s vs 1.05 s, ratio 4:3),
346
- head and tail appear to move independently matching the M3 indeterminate feel.
344
+ Head and tail are animated independently via dasharray + dashoffset.
345
+ dashoffset drifts the arc's start point backward one full circumference (251.3)
346
+ per cycle, so the trailing end never catches the leading end — eliminating
347
+ the shaking artifact that occurs when both caps converge at minimum arc size.
347
348
  */
348
349
  @keyframes m3-cpb-arc {
349
- 0%, 100% { stroke-dasharray: 18.8 232.5; }
350
- 50% { stroke-dasharray: 176 75.3; }
350
+ 0% { stroke-dasharray: 5 246.3; stroke-dashoffset: 0; }
351
+ 50% { stroke-dasharray: 176 75.3; stroke-dashoffset: -70; }
352
+ 100% { stroke-dasharray: 5 246.3; stroke-dashoffset: -251.3; }
351
353
  }
352
354
  </style>
@@ -8,7 +8,8 @@ const props = withDefaults(defineProps<{
8
8
  label?: string
9
9
  presets?: string[]
10
10
  disabled?: boolean
11
- error?: string
11
+ error?: boolean
12
+ errorLabel?: string
12
13
  hint?: string
13
14
  fieldBg?: string
14
15
  }>(), {
@@ -89,6 +90,7 @@ const currentHex = computed(() => hsvToHex(hue.value, sat.value, bright.value))
89
90
  const hueColor = computed(() => `hsl(${hue.value}, 100%, 50%)`)
90
91
 
91
92
  function onSBPointerDown(e: PointerEvent) {
93
+ e.preventDefault()
92
94
  draggingSB.value = true
93
95
  updateSB(e)
94
96
  ;(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId)
@@ -195,7 +197,7 @@ onUnmounted(() => {
195
197
  </label>
196
198
  </div>
197
199
 
198
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
200
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
199
201
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
200
202
 
201
203
  <Teleport to="body">
@@ -89,6 +89,7 @@ function syncHex() {
89
89
 
90
90
  // ── Saturation / Brightness ────────────────────────────────────────
91
91
  function onSBPointerDown(e: PointerEvent) {
92
+ e.preventDefault()
92
93
  draggingSB.value = true
93
94
  updateSB(e)
94
95
  ;(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId)
@@ -1,66 +1,85 @@
1
1
  <script setup lang="ts">
2
- import { ref } from 'vue'
3
- import MContextMenuPanel from './_MContextMenuPanel.vue'
4
-
5
- export interface ContextMenuItem {
6
- label?: string
7
- icon?: string
8
- shortcut?: string
9
- disabled?: boolean
10
- danger?: boolean
11
- divider?: boolean
12
- to?: string | Record<string, any>
13
- children?: ContextMenuItem[]
14
- onClick?: () => void
15
- }
16
-
17
- defineProps<{ items: ContextMenuItem[] }>()
2
+ import { nextTick, onMounted, onUnmounted, provide, ref } from 'vue'
18
3
 
19
4
  const visible = ref(false)
20
- const position = ref({ x: 0, y: 0 })
5
+ const adjustedPos = ref({ x: 0, y: 0 })
6
+ const panelEl = ref<HTMLElement | null>(null)
7
+
8
+ async function showAt(x: number, y: number) {
9
+ adjustedPos.value = { x, y }
10
+ visible.value = true
11
+ await nextTick()
12
+ if (!panelEl.value) return
13
+ const el = panelEl.value
14
+ adjustedPos.value = {
15
+ x: Math.min(x, window.innerWidth - el.offsetWidth - 8),
16
+ y: Math.min(y, window.innerHeight - el.offsetHeight - 8),
17
+ }
18
+ }
21
19
 
22
20
  function show(e: MouseEvent) {
23
21
  e.preventDefault()
24
- e.stopPropagation()
25
22
  showAt(e.clientX, e.clientY)
26
23
  }
27
24
 
28
- function showAt(x: number, y: number) {
29
- position.value = { x, y }
30
- visible.value = true
31
- }
32
-
33
25
  function hide() {
34
26
  visible.value = false
35
27
  }
36
28
 
29
+ provide('m-menu-close', hide)
37
30
  defineExpose({ show, showAt, hide })
31
+
32
+ function onDocMouseDown(e: MouseEvent) {
33
+ if (!visible.value) return
34
+ const t = e.target as Node
35
+ if (panelEl.value?.contains(t)) return
36
+ if ((t as Element).closest?.('.m3-submenu')) return
37
+ hide()
38
+ }
39
+
40
+ function onKeydown(e: KeyboardEvent) {
41
+ if (e.key === 'Escape') hide()
42
+ }
43
+
44
+ function onScroll() {
45
+ if (visible.value) hide()
46
+ }
47
+
48
+ onMounted(() => {
49
+ document.addEventListener('mousedown', onDocMouseDown)
50
+ document.addEventListener('keydown', onKeydown)
51
+ window.addEventListener('scroll', onScroll, true)
52
+ })
53
+
54
+ onUnmounted(() => {
55
+ document.removeEventListener('mousedown', onDocMouseDown)
56
+ document.removeEventListener('keydown', onKeydown)
57
+ window.removeEventListener('scroll', onScroll, true)
58
+ })
38
59
  </script>
39
60
 
40
61
  <template>
41
- <slot :show="show" />
62
+ <div @contextmenu="show">
63
+ <slot name="trigger" />
64
+ </div>
42
65
 
43
66
  <Teleport to="body">
44
67
  <Transition
45
- enter-active-class="transition-opacity duration-100"
46
- enter-from-class="opacity-0"
47
- enter-to-class="opacity-100"
48
- leave-active-class="transition-opacity duration-75"
49
- leave-from-class="opacity-100"
50
- leave-to-class="opacity-0"
68
+ enter-active-class="transition-[opacity,transform] duration-100 ease-out"
69
+ enter-from-class="opacity-0 scale-95"
70
+ enter-to-class="opacity-100 scale-100"
71
+ leave-active-class="transition-[opacity,transform] duration-75 ease-in"
72
+ leave-from-class="opacity-100 scale-100"
73
+ leave-to-class="opacity-0 scale-95"
51
74
  >
52
75
  <div
53
76
  v-if="visible"
54
- class="fixed inset-0 z-200"
55
- @mousedown.self="hide"
77
+ ref="panelEl"
78
+ class="fixed z-[500] min-w-48 overflow-hidden rounded-lg bg-surface-container py-1 shadow-elevation-2"
79
+ :style="{ left: `${adjustedPos.x}px`, top: `${adjustedPos.y}px`, transformOrigin: 'top left' }"
56
80
  @contextmenu.prevent
57
81
  >
58
- <MContextMenuPanel
59
- :items="items"
60
- :x="position.x"
61
- :y="position.y"
62
- @close="hide"
63
- />
82
+ <slot />
64
83
  </div>
65
84
  </Transition>
66
85
  </Teleport>
@@ -12,7 +12,8 @@ const props = withDefaults(defineProps<{
12
12
  min?: string
13
13
  max?: string
14
14
  disabled?: boolean
15
- error?: string
15
+ error?: boolean
16
+ errorLabel?: string
16
17
  hint?: string
17
18
  locale?: string
18
19
  fieldBg?: string
@@ -195,7 +196,7 @@ onUnmounted(() => {
195
196
  </label>
196
197
  </div>
197
198
 
198
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
199
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
199
200
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
200
201
 
201
202
  <!-- Calendar dropdown -->
@@ -17,7 +17,8 @@ const props = withDefaults(defineProps<{
17
17
  min?: string
18
18
  max?: string
19
19
  disabled?: boolean
20
- error?: string
20
+ error?: boolean
21
+ errorLabel?: string
21
22
  hint?: string
22
23
  locale?: string
23
24
  fieldBg?: string
@@ -209,7 +210,7 @@ onUnmounted(() => {
209
210
  </label>
210
211
  </div>
211
212
 
212
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
213
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
213
214
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
214
215
 
215
216
  <Teleport to="body">
@@ -22,7 +22,8 @@ const props = withDefaults(
22
22
  label: string
23
23
  mask: string | MaskPreset
24
24
  variant?: 'filled' | 'outlined'
25
- error?: string
25
+ error?: boolean
26
+ errorLabel?: string
26
27
  hint?: string
27
28
  disabled?: boolean
28
29
  required?: boolean
@@ -198,7 +199,7 @@ const labelClasses = computed(() => {
198
199
  </button>
199
200
  </div>
200
201
 
201
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
202
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
202
203
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
203
204
  </div>
204
205
  </template>
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <hr class="my-1 border-outline-variant" />
3
+ </template>
@@ -4,6 +4,7 @@ import MIcon from './MIcon.vue'
4
4
 
5
5
  const props = withDefaults(defineProps<{
6
6
  icon?: string
7
+ shortcut?: string
7
8
  to?: string | Record<string, any>
8
9
  disabled?: boolean
9
10
  danger?: boolean
@@ -78,6 +79,7 @@ function onSubLeave(e: MouseEvent) {
78
79
  >
79
80
  <MIcon v-if="icon" :name="icon" :size="20" class="shrink-0" :class="danger ? 'text-error' : 'text-on-surface-variant'" />
80
81
  <span class="flex-1"><slot /></span>
82
+ <span v-if="shortcut && !hasChildren" class="ml-4 shrink-0 text-label-small text-on-surface-variant opacity-60">{{ shortcut }}</span>
81
83
  <MIcon v-if="hasChildren" name="chevron_right" :size="18" class="shrink-0 text-on-surface-variant" />
82
84
  </component>
83
85
 
@@ -17,7 +17,8 @@ const props = withDefaults(
17
17
  variant?: 'filled' | 'outlined'
18
18
  mode?: 'docked' | 'modal'
19
19
  disabled?: boolean
20
- error?: string
20
+ error?: boolean
21
+ errorLabel?: string
21
22
  hint?: string
22
23
  required?: boolean
23
24
  leadingIcon?: string
@@ -441,7 +442,7 @@ const labelClasses = computed(() => {
441
442
  </div>
442
443
  </div>
443
444
 
444
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
445
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
445
446
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
446
447
  </div>
447
448
 
@@ -23,7 +23,8 @@ const props = withDefaults(
23
23
  variant?: 'filled' | 'outlined'
24
24
  mode?: 'docked' | 'modal'
25
25
  disabled?: boolean
26
- error?: string
26
+ error?: boolean
27
+ errorLabel?: string
27
28
  hint?: string
28
29
  required?: boolean
29
30
  leadingIcon?: string
@@ -328,7 +329,7 @@ const labelClasses = computed(() => {
328
329
  </div>
329
330
  </div>
330
331
 
331
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
332
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
332
333
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
333
334
  </div>
334
335
 
@@ -53,7 +53,7 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
53
53
  <Transition name="m3-badge">
54
54
  <span
55
55
  v-if="n.count >= 2"
56
- class="absolute -top-1.5 -right-1.5 z-10 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-semibold leading-none text-on-primary shadow-elevation-1"
56
+ class="notif-count-badge absolute -top-1.5 -right-1.5 z-10 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-semibold leading-none text-on-primary shadow-elevation-1"
57
57
  >
58
58
  <Transition name="m3-count" mode="out-in">
59
59
  <span :key="n.count">{{ n.count }}</span>
@@ -110,10 +110,10 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
110
110
 
111
111
  .m3-notif-bot-enter-active {
112
112
  transition: grid-template-rows 200ms ease, padding-bottom 200ms ease;
113
- overflow: hidden;
114
113
  }
115
114
  .m3-notif-bot-enter-active > .notif-inner {
116
115
  transition: opacity 150ms ease, transform 200ms ease;
116
+ overflow: hidden;
117
117
  }
118
118
  .m3-notif-bot-enter-from {
119
119
  grid-template-rows: 0fr;
@@ -126,10 +126,10 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
126
126
 
127
127
  .m3-notif-bot-leave-active {
128
128
  transition: grid-template-rows 250ms ease, padding-bottom 250ms ease;
129
- overflow: hidden;
130
129
  }
131
130
  .m3-notif-bot-leave-active > .notif-inner {
132
131
  transition: opacity 150ms ease, transform 150ms ease;
132
+ overflow: hidden;
133
133
  }
134
134
  .m3-notif-bot-leave-to {
135
135
  grid-template-rows: 0fr;
@@ -139,13 +139,20 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
139
139
  opacity: 0;
140
140
  transform: scale(0.93);
141
141
  }
142
+ .m3-notif-bot-leave-active > .notif-count-badge {
143
+ transition: opacity 150ms ease, transform 150ms ease;
144
+ }
145
+ .m3-notif-bot-leave-to > .notif-count-badge {
146
+ opacity: 0;
147
+ transform: scale(0.5);
148
+ }
142
149
 
143
150
  .m3-notif-top-enter-active {
144
151
  transition: grid-template-rows 200ms ease, padding-bottom 200ms ease;
145
- overflow: hidden;
146
152
  }
147
153
  .m3-notif-top-enter-active > .notif-inner {
148
154
  transition: opacity 150ms ease, transform 200ms ease;
155
+ overflow: hidden;
149
156
  }
150
157
  .m3-notif-top-enter-from {
151
158
  grid-template-rows: 0fr;
@@ -158,10 +165,10 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
158
165
 
159
166
  .m3-notif-top-leave-active {
160
167
  transition: grid-template-rows 250ms ease, padding-bottom 250ms ease;
161
- overflow: hidden;
162
168
  }
163
169
  .m3-notif-top-leave-active > .notif-inner {
164
170
  transition: opacity 150ms ease, transform 150ms ease;
171
+ overflow: hidden;
165
172
  }
166
173
  .m3-notif-top-leave-to {
167
174
  grid-template-rows: 0fr;
@@ -171,6 +178,13 @@ const getStyle = (variant: string) => variantStyles[variant] ?? variantStyles.in
171
178
  opacity: 0;
172
179
  transform: scale(0.93);
173
180
  }
181
+ .m3-notif-top-leave-active > .notif-count-badge {
182
+ transition: opacity 150ms ease, transform 150ms ease;
183
+ }
184
+ .m3-notif-top-leave-to > .notif-count-badge {
185
+ opacity: 0;
186
+ transform: scale(0.5);
187
+ }
174
188
 
175
189
  .m3-badge-enter-active { transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); }
176
190
  .m3-badge-leave-active { transition: opacity 0.15s ease, transform 0.15s ease; }
@@ -13,7 +13,8 @@ const props = withDefaults(
13
13
  min?: number
14
14
  max?: number
15
15
  step?: number
16
- error?: string
16
+ error?: boolean
17
+ errorLabel?: string
17
18
  hint?: string
18
19
  disabled?: boolean
19
20
  required?: boolean
@@ -174,7 +175,7 @@ const labelClasses = computed(() => {
174
175
  </div>
175
176
  </div>
176
177
 
177
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
178
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
178
179
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
179
180
  </div>
180
181
  </template>
@@ -20,7 +20,8 @@ const props = withDefaults(
20
20
  variant?: 'filled' | 'outlined'
21
21
  mode?: 'docked' | 'modal'
22
22
  disabled?: boolean
23
- error?: string
23
+ error?: boolean
24
+ errorLabel?: string
24
25
  hint?: string
25
26
  required?: boolean
26
27
  leadingIcon?: string
@@ -247,7 +248,7 @@ const labelClasses = computed(() => {
247
248
  </div>
248
249
  </div>
249
250
 
250
- <p v-if="error" class="px-4 text-body-small text-error">{{ error }}</p>
251
+ <p v-if="error && errorLabel" class="px-4 text-body-small text-error">{{ errorLabel }}</p>
251
252
  <p v-else-if="hint" class="px-4 text-body-small text-on-surface-variant">{{ hint }}</p>
252
253
  </div>
253
254