@m3ui-vue/m3ui-vue 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MRating.vue.d.ts +1 -1
- package/dist/composables/useToast.d.ts +15 -18
- package/dist/index.d.ts +1 -1
- package/dist/m3ui-vue.css +1 -1
- package/dist/m3ui.js +516 -513
- package/dist/m3ui.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/MBottomSheet.vue +2 -2
- package/src/components/MCalendar.vue +1 -1
- package/src/components/MColorPicker.vue +2 -2
- package/src/components/MContextMenu.vue +1 -1
- package/src/components/MDataTable.vue +27 -6
- package/src/components/MDatePicker.vue +2 -2
- package/src/components/MDateRangePicker.vue +2 -2
- package/src/components/MIconButton.vue +0 -1
- package/src/components/MJsonViewer.vue +1 -1
- package/src/components/MLoadingOverlay.vue +1 -1
- package/src/components/MMenu.vue +1 -1
- package/src/components/MMultiSelect.vue +1 -1
- package/src/components/MNavigationDrawer.vue +24 -9
- package/src/components/MScheduler.vue +2 -2
- package/src/components/MSelect.vue +1 -1
- package/src/components/MSideSheet.vue +1 -1
- package/src/components/MSnackbar.vue +7 -6
- package/src/components/MStepper.vue +2 -2
- package/src/components/MTable.vue +2 -2
- package/src/components/MTimePicker.vue +2 -2
- package/src/components/MTimeline.vue +2 -2
- package/src/components/MTooltip.vue +1 -1
- package/src/components/MTour.vue +2 -2
- package/src/components/MTreeTable.vue +1 -1
- package/src/components/MVirtualTable.vue +1 -1
- package/src/components/_MContextMenuPanel.vue +1 -1
- package/src/components/_MTreeNode.vue +2 -2
- package/src/composables/useToast.ts +15 -10
- package/src/index.ts +1 -1
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)}.bs-scrim[data-v-941a89e7]{transition:opacity .3s}.bs-enter-from .bs-scrim[data-v-941a89e7],.bs-leave-to .bs-scrim[data-v-941a89e7]{opacity:0}.bs-panel[data-v-941a89e7]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.bs-enter-from .bs-panel[data-v-941a89e7]{opacity:0;transform:translateY(40%)}.bs-leave-to .bs-panel[data-v-941a89e7]{opacity:0;transform:translateY(100%)!important}@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}}.hue-slider[data-v-9ee0043f]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-9ee0043f]::-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-9ee0043f]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.m3-cmd-enter-active[data-v-da578f14],.m3-cmd-leave-active[data-v-da578f14]{transition:opacity .15s}.m3-cmd-enter-from[data-v-da578f14],.m3-cmd-leave-to[data-v-da578f14]{opacity:0}.m3-cmd-enter-active .cmd-box[data-v-da578f14],.m3-cmd-leave-active .cmd-box[data-v-da578f14]{transition:transform .15s}.m3-cmd-enter-from .cmd-box[data-v-da578f14],.m3-cmd-leave-to .cmd-box[data-v-da578f14]{transform:scale(.95)translateY(-10px)}.m3-dialog-enter-active[data-v-e7dfca29],.m3-dialog-leave-active[data-v-e7dfca29]{transition:opacity .15s}.m3-dialog-enter-from[data-v-e7dfca29],.m3-dialog-leave-to[data-v-e7dfca29]{opacity:0}.m3-dialog-enter-active .dialog-box[data-v-e7dfca29],.m3-dialog-leave-active .dialog-box[data-v-e7dfca29]{transition:transform .15s}.m3-dialog-enter-from .dialog-box[data-v-e7dfca29],.m3-dialog-leave-to .dialog-box[data-v-e7dfca29]{transform:scale(.95)}.expand-grid[data-v-89e4475b]{grid-template-rows:1fr;display:grid}.expand-body[data-v-89e4475b]{min-height:0;overflow:hidden}.expand-enter-active[data-v-89e4475b]{transition:grid-template-rows .28s cubic-bezier(.2,0,0,1)}.expand-enter-active>.expand-body[data-v-89e4475b]{transition:opacity .22s}.expand-enter-from[data-v-89e4475b]{grid-template-rows:0fr}.expand-enter-from>.expand-body[data-v-89e4475b]{opacity:0}.expand-leave-active[data-v-89e4475b]{transition:grid-template-rows .22s cubic-bezier(.4,0,1,1)}.expand-leave-active>.expand-body[data-v-89e4475b]{transition:opacity .15s}.expand-leave-to[data-v-89e4475b]{grid-template-rows:0fr}.expand-leave-to>.expand-body[data-v-89e4475b]{opacity:0}.m3-file-enter-active[data-v-34a862f0],.m3-file-leave-active[data-v-34a862f0]{transition:all .2s}.m3-file-enter-from[data-v-34a862f0],.m3-file-leave-to[data-v-34a862f0]{opacity:0;transform:translateY(-8px)}.nd-scrim[data-v-ebc5ef9c]{transition:opacity .28s}.nd-enter-from .nd-scrim[data-v-ebc5ef9c],.nd-leave-to .nd-scrim[data-v-ebc5ef9c]{opacity:0}.nd-panel[data-v-ebc5ef9c]{transition:transform .3s cubic-bezier(.2,0,0,1)}.nd-enter-from .nd-panel[data-v-ebc5ef9c],.nd-leave-to .nd-panel[data-v-ebc5ef9c]{transform:translate(-100%)}.nd-section-grid[data-v-ebc5ef9c]{grid-template-rows:1fr;display:grid}.nd-section-body[data-v-ebc5ef9c]{min-height:0;overflow:hidden}.nd-section-enter-active[data-v-ebc5ef9c]{transition:grid-template-rows .35s cubic-bezier(.2,0,0,1)}.nd-section-enter-active>.nd-section-body[data-v-ebc5ef9c]{transition:opacity .25s cubic-bezier(.2,0,0,1) 80ms}.nd-section-enter-from[data-v-ebc5ef9c]{grid-template-rows:0fr}.nd-section-enter-from>.nd-section-body[data-v-ebc5ef9c]{opacity:0}.nd-section-leave-active[data-v-ebc5ef9c]{transition:grid-template-rows .28s cubic-bezier(.4,0,1,1)}.nd-section-leave-active>.nd-section-body[data-v-ebc5ef9c]{transition:opacity .15s cubic-bezier(.4,0,1,1)}.nd-section-leave-to[data-v-ebc5ef9c]{grid-template-rows:0fr}.nd-section-leave-to>.nd-section-body[data-v-ebc5ef9c]{opacity:0}.nd-inline[data-v-ebc5ef9c]{transition:width .3s cubic-bezier(.2,0,0,1)}.nd-inline .nd-collapse-h[data-v-ebc5ef9c]{max-height:80px;transition:max-height .3s cubic-bezier(.2,0,0,1)}.nd-inline.nd-collapsed .nd-collapse-h[data-v-ebc5ef9c]{max-height:0}.nd-inline.nd-hidden[data-v-ebc5ef9c]{overflow:hidden}.nd-inline .nd-section-body[data-v-ebc5ef9c]>*{transition:padding .3s cubic-bezier(.2,0,0,1)}@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}}.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)}.ss-scrim[data-v-f8751672]{transition:opacity .28s}.ss-enter-from .ss-scrim[data-v-f8751672],.ss-leave-to .ss-scrim[data-v-f8751672]{opacity:0}.ss-panel[data-v-f8751672]{transition:transform .32s cubic-bezier(.2,0,0,1),opacity .24s}.ss-enter-from .ss-panel[data-v-f8751672]{opacity:0;transform:translate(40%)}.ss-leave-to .ss-panel[data-v-f8751672]{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}.toast-row[data-v-e83a5c10]{grid-template-rows:1fr;padding-bottom:8px;display:grid}.toast-row>.toast-inner[data-v-e83a5c10]{min-height:0}.m3-toast-bot-enter-active[data-v-e83a5c10]{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-e83a5c10]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-bot-enter-from[data-v-e83a5c10]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-enter-from>.toast-inner[data-v-e83a5c10]{opacity:0;transform:translateY(20px)scale(.94)}.m3-toast-bot-leave-active[data-v-e83a5c10]{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-e83a5c10]{transition:opacity .18s,transform .18s}.m3-toast-bot-leave-to[data-v-e83a5c10]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-leave-to>.toast-inner[data-v-e83a5c10]{opacity:0;transform:scale(.92)}.m3-toast-top-enter-active[data-v-e83a5c10]{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-e83a5c10]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-top-enter-from[data-v-e83a5c10]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-enter-from>.toast-inner[data-v-e83a5c10]{opacity:0;transform:translateY(-20px)scale(.94)}.m3-toast-top-leave-active[data-v-e83a5c10]{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-e83a5c10]{transition:opacity .18s,transform .18s}.m3-toast-top-leave-to[data-v-e83a5c10]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-leave-to>.toast-inner[data-v-e83a5c10]{opacity:0;transform:scale(.92)}@keyframes m3-toast-progress-e83a5c10{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.m3-spot-enter-active[data-v-51b103ff],.m3-spot-leave-active[data-v-51b103ff]{transition:opacity .15s}.m3-spot-enter-from[data-v-51b103ff],.m3-spot-leave-to[data-v-51b103ff]{opacity:0}.m3-spot-enter-active .spot-box[data-v-51b103ff],.m3-spot-leave-active .spot-box[data-v-51b103ff]{transition:transform .15s,opacity .15s}.m3-spot-enter-from .spot-box[data-v-51b103ff]{opacity:0;transform:scale(.96)translateY(-8px)}.m3-spot-leave-to .spot-box[data-v-51b103ff]{opacity:0;transform:scale(.98)}.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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] p{margin:.5em 0}.m3-markdown[data-v-6e4dc2b6] a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.m3-markdown[data-v-6e4dc2b6] a:hover{opacity:.8}.m3-markdown[data-v-6e4dc2b6] strong{color:var(--color-on-surface);font-weight:600}.m3-markdown[data-v-6e4dc2b6] em{font-style:italic}.m3-markdown[data-v-6e4dc2b6] ul,.m3-markdown[data-v-6e4dc2b6] ol{margin:.5em 0;padding-left:1.5em}.m3-markdown[data-v-6e4dc2b6] li{margin:.25em 0}.m3-markdown[data-v-6e4dc2b6] li::marker{color:var(--color-on-surface-variant)}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] code{background:var(--color-surface-container-highest);color:var(--color-primary);border-radius:4px;padding:.15em .4em;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875em}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] pre code{color:var(--color-on-surface);background:0 0;padding:0}.m3-markdown[data-v-6e4dc2b6] hr{border:none;border-top:1px solid var(--color-outline-variant);margin:1.5em 0}.m3-markdown[data-v-6e4dc2b6] table{border-collapse:collapse;width:100%;margin:.75em 0}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] td{border-bottom:1px solid var(--color-outline-variant);padding:.5em .75em}.m3-markdown[data-v-6e4dc2b6] img{border-radius:12px;max-width:100%;height:auto;margin:.5em 0}.rte-content[data-v-89c08c83] .tiptap{min-height:inherit;outline:none}.rte-content[data-v-89c08c83] .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-89c08c83] 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-89c08c83] 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-89c08c83] 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-89c08c83] p{margin:.5em 0}.rte-content[data-v-89c08c83] ul,.rte-content[data-v-89c08c83] ol{margin:.5em 0;padding-left:1.5em}.rte-content[data-v-89c08c83] blockquote{border-left:3px solid var(--color-primary);color:var(--color-on-surface-variant);margin:.5em 0;padding-left:1em}.rte-content[data-v-89c08c83] code{background:var(--color-surface-container-highest);border-radius:4px;padding:.15em .4em;font-size:.875em}.rte-content[data-v-89c08c83] pre{background:var(--color-surface-container-highest);border-radius:8px;margin:.5em 0;padding:1em;overflow-x:auto}.rte-content[data-v-89c08c83] pre code{background:0 0;padding:0}.rte-content[data-v-89c08c83] a{color:var(--color-primary);text-decoration:underline}.rte-content[data-v-89c08c83] mark{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px;padding:.1em .2em}.rte-content[data-v-89c08c83] 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)}.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}@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}}.hue-slider[data-v-872ab758]{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.hue-slider[data-v-872ab758]::-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-872ab758]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0006}.m3-cmd-enter-active[data-v-da578f14],.m3-cmd-leave-active[data-v-da578f14]{transition:opacity .15s}.m3-cmd-enter-from[data-v-da578f14],.m3-cmd-leave-to[data-v-da578f14]{opacity:0}.m3-cmd-enter-active .cmd-box[data-v-da578f14],.m3-cmd-leave-active .cmd-box[data-v-da578f14]{transition:transform .15s}.m3-cmd-enter-from .cmd-box[data-v-da578f14],.m3-cmd-leave-to .cmd-box[data-v-da578f14]{transform:scale(.95)translateY(-10px)}.m3-dialog-enter-active[data-v-e7dfca29],.m3-dialog-leave-active[data-v-e7dfca29]{transition:opacity .15s}.m3-dialog-enter-from[data-v-e7dfca29],.m3-dialog-leave-to[data-v-e7dfca29]{opacity:0}.m3-dialog-enter-active .dialog-box[data-v-e7dfca29],.m3-dialog-leave-active .dialog-box[data-v-e7dfca29]{transition:transform .15s}.m3-dialog-enter-from .dialog-box[data-v-e7dfca29],.m3-dialog-leave-to .dialog-box[data-v-e7dfca29]{transform:scale(.95)}.dt-expand-grid[data-v-fcd73278]{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-fcd73278]{grid-template-rows:1fr}.dt-expand-body[data-v-fcd73278]{min-height:0;overflow:hidden}.expand-grid[data-v-89e4475b]{grid-template-rows:1fr;display:grid}.expand-body[data-v-89e4475b]{min-height:0;overflow:hidden}.expand-enter-active[data-v-89e4475b]{transition:grid-template-rows .28s cubic-bezier(.2,0,0,1)}.expand-enter-active>.expand-body[data-v-89e4475b]{transition:opacity .22s}.expand-enter-from[data-v-89e4475b]{grid-template-rows:0fr}.expand-enter-from>.expand-body[data-v-89e4475b]{opacity:0}.expand-leave-active[data-v-89e4475b]{transition:grid-template-rows .22s cubic-bezier(.4,0,1,1)}.expand-leave-active>.expand-body[data-v-89e4475b]{transition:opacity .15s}.expand-leave-to[data-v-89e4475b]{grid-template-rows:0fr}.expand-leave-to>.expand-body[data-v-89e4475b]{opacity:0}.m3-file-enter-active[data-v-34a862f0],.m3-file-leave-active[data-v-34a862f0]{transition:all .2s}.m3-file-enter-from[data-v-34a862f0],.m3-file-leave-to[data-v-34a862f0]{opacity:0;transform:translateY(-8px)}.nd-scrim[data-v-a5cf49d0]{transition:opacity .28s}.nd-enter-from .nd-scrim[data-v-a5cf49d0],.nd-leave-to .nd-scrim[data-v-a5cf49d0]{opacity:0}.nd-panel[data-v-a5cf49d0]{transition:transform .3s cubic-bezier(.2,0,0,1)}.nd-enter-from .nd-panel[data-v-a5cf49d0],.nd-leave-to .nd-panel[data-v-a5cf49d0]{transform:translate(-100%)}.nd-section-grid[data-v-a5cf49d0]{grid-template-rows:1fr;display:grid}.nd-section-body[data-v-a5cf49d0]{min-height:0;overflow:hidden}.nd-section-enter-active[data-v-a5cf49d0]{transition:grid-template-rows .35s cubic-bezier(.2,0,0,1)}.nd-section-enter-active>.nd-section-body[data-v-a5cf49d0]{transition:opacity .25s cubic-bezier(.2,0,0,1) 80ms}.nd-section-enter-from[data-v-a5cf49d0]{grid-template-rows:0fr}.nd-section-enter-from>.nd-section-body[data-v-a5cf49d0]{opacity:0}.nd-section-leave-active[data-v-a5cf49d0]{transition:grid-template-rows .28s cubic-bezier(.4,0,1,1)}.nd-section-leave-active>.nd-section-body[data-v-a5cf49d0]{transition:opacity .15s cubic-bezier(.4,0,1,1)}.nd-section-leave-to[data-v-a5cf49d0]{grid-template-rows:0fr}.nd-section-leave-to>.nd-section-body[data-v-a5cf49d0]{opacity:0}.nd-inline[data-v-a5cf49d0]{transition:width .3s cubic-bezier(.2,0,0,1);overflow:hidden}.nd-inline[data-v-a5cf49d0]>*{min-width:18rem}.nd-inline.nd-collapsed[data-v-a5cf49d0]>*{min-width:0}.nd-label[data-v-a5cf49d0]{transition:opacity .2s cubic-bezier(.2,0,0,1) 80ms}.nd-inline.nd-collapsed .nd-label[data-v-a5cf49d0]{opacity:0;transition:opacity .1s cubic-bezier(.2,0,0,1)}.nd-inline .nd-collapse-h[data-v-a5cf49d0]{max-height:80px;transition:max-height .3s cubic-bezier(.2,0,0,1)}.nd-inline.nd-collapsed .nd-collapse-h[data-v-a5cf49d0]{max-height:0}.nd-inline .nd-section-body[data-v-a5cf49d0]>*{transition:padding .3s cubic-bezier(.2,0,0,1)}@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}}.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)}.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}.toast-row[data-v-746fa345]{grid-template-rows:1fr;padding-bottom:8px;display:grid}.toast-row>.toast-inner[data-v-746fa345]{min-height:0}.m3-toast-bot-enter-active[data-v-746fa345]{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-746fa345]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-bot-enter-from[data-v-746fa345]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-enter-from>.toast-inner[data-v-746fa345]{opacity:0;transform:translateY(20px)scale(.94)}.m3-toast-bot-leave-active[data-v-746fa345]{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-746fa345]{transition:opacity .18s,transform .18s}.m3-toast-bot-leave-to[data-v-746fa345]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-bot-leave-to>.toast-inner[data-v-746fa345]{opacity:0;transform:scale(.92)}.m3-toast-top-enter-active[data-v-746fa345]{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-746fa345]{transition:opacity .18s,transform .22s cubic-bezier(.2,0,0,1)}.m3-toast-top-enter-from[data-v-746fa345]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-enter-from>.toast-inner[data-v-746fa345]{opacity:0;transform:translateY(-20px)scale(.94)}.m3-toast-top-leave-active[data-v-746fa345]{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-746fa345]{transition:opacity .18s,transform .18s}.m3-toast-top-leave-to[data-v-746fa345]{grid-template-rows:0fr;padding-bottom:0}.m3-toast-top-leave-to>.toast-inner[data-v-746fa345]{opacity:0;transform:scale(.92)}@keyframes m3-toast-progress-746fa345{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.m3-spot-enter-active[data-v-51b103ff],.m3-spot-leave-active[data-v-51b103ff]{transition:opacity .15s}.m3-spot-enter-from[data-v-51b103ff],.m3-spot-leave-to[data-v-51b103ff]{opacity:0}.m3-spot-enter-active .spot-box[data-v-51b103ff],.m3-spot-leave-active .spot-box[data-v-51b103ff]{transition:transform .15s,opacity .15s}.m3-spot-enter-from .spot-box[data-v-51b103ff]{opacity:0;transform:scale(.96)translateY(-8px)}.m3-spot-leave-to .spot-box[data-v-51b103ff]{opacity:0;transform:scale(.98)}.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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] 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-6e4dc2b6] p{margin:.5em 0}.m3-markdown[data-v-6e4dc2b6] a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.m3-markdown[data-v-6e4dc2b6] a:hover{opacity:.8}.m3-markdown[data-v-6e4dc2b6] strong{color:var(--color-on-surface);font-weight:600}.m3-markdown[data-v-6e4dc2b6] em{font-style:italic}.m3-markdown[data-v-6e4dc2b6] ul,.m3-markdown[data-v-6e4dc2b6] ol{margin:.5em 0;padding-left:1.5em}.m3-markdown[data-v-6e4dc2b6] li{margin:.25em 0}.m3-markdown[data-v-6e4dc2b6] li::marker{color:var(--color-on-surface-variant)}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] code{background:var(--color-surface-container-highest);color:var(--color-primary);border-radius:4px;padding:.15em .4em;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875em}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] pre code{color:var(--color-on-surface);background:0 0;padding:0}.m3-markdown[data-v-6e4dc2b6] hr{border:none;border-top:1px solid var(--color-outline-variant);margin:1.5em 0}.m3-markdown[data-v-6e4dc2b6] table{border-collapse:collapse;width:100%;margin:.75em 0}.m3-markdown[data-v-6e4dc2b6] 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-6e4dc2b6] td{border-bottom:1px solid var(--color-outline-variant);padding:.5em .75em}.m3-markdown[data-v-6e4dc2b6] img{border-radius:12px;max-width:100%;height:auto;margin:.5em 0}.rte-content[data-v-89c08c83] .tiptap{min-height:inherit;outline:none}.rte-content[data-v-89c08c83] .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-89c08c83] 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-89c08c83] 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-89c08c83] 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-89c08c83] p{margin:.5em 0}.rte-content[data-v-89c08c83] ul,.rte-content[data-v-89c08c83] ol{margin:.5em 0;padding-left:1.5em}.rte-content[data-v-89c08c83] blockquote{border-left:3px solid var(--color-primary);color:var(--color-on-surface-variant);margin:.5em 0;padding-left:1em}.rte-content[data-v-89c08c83] code{background:var(--color-surface-container-highest);border-radius:4px;padding:.15em .4em;font-size:.875em}.rte-content[data-v-89c08c83] pre{background:var(--color-surface-container-highest);border-radius:8px;margin:.5em 0;padding:1em;overflow-x:auto}.rte-content[data-v-89c08c83] pre code{background:0 0;padding:0}.rte-content[data-v-89c08c83] a{color:var(--color-primary);text-decoration:underline}.rte-content[data-v-89c08c83] mark{background:var(--color-tertiary-container);color:var(--color-on-tertiary-container);border-radius:2px;padding:.1em .2em}.rte-content[data-v-89c08c83] img{border-radius:8px;max-width:100%;height:auto;margin:.5em 0}
|
|
2
2
|
/*$vite$:1*/
|
package/package.json
CHANGED
|
@@ -41,13 +41,13 @@ const sheetStyle = computed(() => ({
|
|
|
41
41
|
<template>
|
|
42
42
|
<Teleport to="body">
|
|
43
43
|
<Transition name="bs" :duration="{ enter: 320, leave: 280 }">
|
|
44
|
-
<div v-if="modelValue" class="fixed inset-0 z-
|
|
44
|
+
<div v-if="modelValue" class="fixed inset-0 z-200 flex flex-col justify-end">
|
|
45
45
|
<!-- Scrim -->
|
|
46
46
|
<div class="bs-scrim absolute inset-0 bg-black/40" @click="close" />
|
|
47
47
|
|
|
48
48
|
<!-- Panel -->
|
|
49
49
|
<div
|
|
50
|
-
class="bs-panel relative flex w-full flex-col rounded-t-
|
|
50
|
+
class="bs-panel relative flex w-full flex-col rounded-t-xl bg-surface-container-low shadow-elevation-3"
|
|
51
51
|
:class="fullHeight ? 'max-h-[92vh]' : 'max-h-[60vh]'"
|
|
52
52
|
:style="sheetStyle"
|
|
53
53
|
>
|
|
@@ -125,7 +125,7 @@ const eventColor: Record<string, string> = {
|
|
|
125
125
|
<div
|
|
126
126
|
v-for="(day, i) in calendarDays"
|
|
127
127
|
:key="i"
|
|
128
|
-
class="flex min-h-[80px] cursor-pointer flex-col border-b border-r border-outline-variant/50 p-1.5 transition-colors hover:bg-on-surface/
|
|
128
|
+
class="flex min-h-[80px] cursor-pointer flex-col border-b border-r border-outline-variant/50 p-1.5 transition-colors hover:bg-on-surface/3"
|
|
129
129
|
:class="[
|
|
130
130
|
!day.current ? 'bg-surface-container-lowest/50' : 'bg-surface',
|
|
131
131
|
(i + 1) % 7 === 0 ? 'border-r-0' : '',
|
|
@@ -191,7 +191,7 @@ onUnmounted(() => {
|
|
|
191
191
|
</button>
|
|
192
192
|
<label
|
|
193
193
|
v-if="label"
|
|
194
|
-
class="pointer-events-none absolute -top-2.5 left-3 bg-
|
|
194
|
+
class="pointer-events-none absolute -top-2.5 left-3 bg-(--field-bg) px-1 text-label-small transition-colors"
|
|
195
195
|
:class="open ? (error ? 'text-error' : 'text-primary') : error ? 'text-error' : 'text-on-surface-variant'"
|
|
196
196
|
>
|
|
197
197
|
{{ label }}
|
|
@@ -211,7 +211,7 @@ onUnmounted(() => {
|
|
|
211
211
|
<div
|
|
212
212
|
v-if="open"
|
|
213
213
|
ref="panelEl"
|
|
214
|
-
class="fixed z-
|
|
214
|
+
class="fixed z-500 w-[280px] rounded-lg bg-surface-container p-4 shadow-elevation-3"
|
|
215
215
|
:style="dropPos"
|
|
216
216
|
>
|
|
217
217
|
<!-- Saturation / Brightness area -->
|
|
@@ -248,7 +248,7 @@ function colStyle(col: DataTableColumn) {
|
|
|
248
248
|
<!-- Table -->
|
|
249
249
|
<div class="overflow-x-auto">
|
|
250
250
|
<table class="w-full border-collapse">
|
|
251
|
-
<thead :class="stickyHeader ? 'sticky top-0 z-
|
|
251
|
+
<thead :class="stickyHeader ? 'sticky top-0 z-1' : ''">
|
|
252
252
|
<tr class="bg-surface-container-high">
|
|
253
253
|
<th v-if="hasExpand" class="w-10 px-2" :class="dense ? 'py-2' : 'py-3'" />
|
|
254
254
|
<th v-if="selectable" class="w-12 px-4" :class="dense ? 'py-2' : 'py-3'">
|
|
@@ -320,8 +320,8 @@ function colStyle(col: DataTableColumn) {
|
|
|
320
320
|
<tr
|
|
321
321
|
:class="[
|
|
322
322
|
'border-t border-outline-variant transition-colors duration-100',
|
|
323
|
-
'hover:bg-on-surface/
|
|
324
|
-
selectable && isSelected(row) ? 'bg-primary/
|
|
323
|
+
'hover:bg-on-surface/4',
|
|
324
|
+
selectable && isSelected(row) ? 'bg-primary/6' : '',
|
|
325
325
|
striped ? 'even:bg-surface-container-lowest' : '',
|
|
326
326
|
selectable ? 'cursor-pointer' : '',
|
|
327
327
|
]"
|
|
@@ -354,9 +354,15 @@ function colStyle(col: DataTableColumn) {
|
|
|
354
354
|
</td>
|
|
355
355
|
</tr>
|
|
356
356
|
<!-- Expanded content -->
|
|
357
|
-
<tr v-if="hasExpand
|
|
358
|
-
<td :colspan="visibleColumns.length + extraCols" class="border-t border-outline-variant/50 bg-surface-container-lowest
|
|
359
|
-
<
|
|
357
|
+
<tr v-if="hasExpand">
|
|
358
|
+
<td :colspan="visibleColumns.length + extraCols" class="border-t border-outline-variant/50 bg-surface-container-lowest p-0">
|
|
359
|
+
<div class="dt-expand-grid" :class="isExpanded(row) ? 'dt-expand-open' : ''">
|
|
360
|
+
<div class="dt-expand-body">
|
|
361
|
+
<div class="px-6 py-4">
|
|
362
|
+
<slot name="row-expand" :row="row" />
|
|
363
|
+
</div>
|
|
364
|
+
</div>
|
|
365
|
+
</div>
|
|
360
366
|
</td>
|
|
361
367
|
</tr>
|
|
362
368
|
</template>
|
|
@@ -374,3 +380,18 @@ function colStyle(col: DataTableColumn) {
|
|
|
374
380
|
</div>
|
|
375
381
|
</div>
|
|
376
382
|
</template>
|
|
383
|
+
|
|
384
|
+
<style scoped>
|
|
385
|
+
.dt-expand-grid {
|
|
386
|
+
display: grid;
|
|
387
|
+
grid-template-rows: 0fr;
|
|
388
|
+
transition: grid-template-rows 250ms cubic-bezier(0.2, 0, 0, 1);
|
|
389
|
+
}
|
|
390
|
+
.dt-expand-grid.dt-expand-open {
|
|
391
|
+
grid-template-rows: 1fr;
|
|
392
|
+
}
|
|
393
|
+
.dt-expand-body {
|
|
394
|
+
min-height: 0;
|
|
395
|
+
overflow: hidden;
|
|
396
|
+
}
|
|
397
|
+
</style>
|
|
@@ -184,7 +184,7 @@ onUnmounted(() => {
|
|
|
184
184
|
</button>
|
|
185
185
|
<label
|
|
186
186
|
v-if="label"
|
|
187
|
-
class="pointer-events-none absolute -top-2.5 left-3 bg-
|
|
187
|
+
class="pointer-events-none absolute -top-2.5 left-3 bg-(--field-bg) px-1 text-label-small transition-colors"
|
|
188
188
|
:class="open ? (error ? 'text-error' : 'text-primary') : error ? 'text-error' : 'text-on-surface-variant'"
|
|
189
189
|
>
|
|
190
190
|
{{ label }}
|
|
@@ -205,7 +205,7 @@ onUnmounted(() => {
|
|
|
205
205
|
<div
|
|
206
206
|
v-if="open"
|
|
207
207
|
ref="panelEl"
|
|
208
|
-
class="fixed z-
|
|
208
|
+
class="fixed z-500 w-[320px] rounded-lg bg-surface-container p-4 shadow-elevation-3"
|
|
209
209
|
:style="dropPos"
|
|
210
210
|
>
|
|
211
211
|
<!-- Header -->
|
|
@@ -195,7 +195,7 @@ onUnmounted(() => {
|
|
|
195
195
|
</button>
|
|
196
196
|
<label
|
|
197
197
|
v-if="label"
|
|
198
|
-
class="pointer-events-none absolute -top-2.5 left-3 bg-
|
|
198
|
+
class="pointer-events-none absolute -top-2.5 left-3 bg-(--field-bg) px-1 text-label-small transition-colors"
|
|
199
199
|
:class="open ? (error ? 'text-error' : 'text-primary') : error ? 'text-error' : 'text-on-surface-variant'"
|
|
200
200
|
>
|
|
201
201
|
{{ label }}
|
|
@@ -215,7 +215,7 @@ onUnmounted(() => {
|
|
|
215
215
|
<div
|
|
216
216
|
v-if="open"
|
|
217
217
|
ref="panelEl"
|
|
218
|
-
class="fixed z-
|
|
218
|
+
class="fixed z-500 w-[320px] rounded-lg bg-surface-container p-4 shadow-elevation-3"
|
|
219
219
|
:style="dropPos"
|
|
220
220
|
>
|
|
221
221
|
<p class="mb-2 text-center text-label-medium text-on-surface-variant">
|
|
@@ -62,7 +62,7 @@ function formatValue(val: unknown) {
|
|
|
62
62
|
<template v-if="isExpandable">
|
|
63
63
|
<button
|
|
64
64
|
type="button"
|
|
65
|
-
class="group inline-flex cursor-pointer items-center gap-0.5 rounded px-0.5 hover:bg-on-surface/
|
|
65
|
+
class="group inline-flex cursor-pointer items-center gap-0.5 rounded px-0.5 hover:bg-on-surface/6"
|
|
66
66
|
@click="expanded = !expanded"
|
|
67
67
|
>
|
|
68
68
|
<MIcon
|
|
@@ -20,7 +20,7 @@ withDefaults(defineProps<{
|
|
|
20
20
|
>
|
|
21
21
|
<div
|
|
22
22
|
v-if="visible"
|
|
23
|
-
class="fixed inset-0 z-
|
|
23
|
+
class="fixed inset-0 z-300 flex flex-col items-center justify-center gap-4"
|
|
24
24
|
:class="opaque ? 'bg-surface' : 'bg-surface/80 backdrop-blur-sm'"
|
|
25
25
|
>
|
|
26
26
|
<MSpinner :size="spinnerSize" class="text-primary" />
|
package/src/components/MMenu.vue
CHANGED
|
@@ -102,7 +102,7 @@ const origin = computed(() =>
|
|
|
102
102
|
<div
|
|
103
103
|
v-if="open"
|
|
104
104
|
ref="dropdownEl"
|
|
105
|
-
class="fixed z-
|
|
105
|
+
class="fixed z-500 min-w-48 overflow-y-auto overflow-x-hidden rounded-xs bg-surface-container py-1 shadow-elevation-2"
|
|
106
106
|
:style="{ ...dropStyle, transformOrigin: origin }"
|
|
107
107
|
@click="close"
|
|
108
108
|
>
|
|
@@ -263,7 +263,7 @@ const labelClasses = computed(() => {
|
|
|
263
263
|
<div
|
|
264
264
|
v-if="open"
|
|
265
265
|
ref="dropdownEl"
|
|
266
|
-
class="fixed z-
|
|
266
|
+
class="fixed z-500 max-h-60 overflow-auto rounded-sm bg-surface-container shadow-elevation-2"
|
|
267
267
|
:style="dropPos"
|
|
268
268
|
>
|
|
269
269
|
<!-- Search -->
|
|
@@ -67,7 +67,7 @@ watch(() => props.modelValue, (open) => {
|
|
|
67
67
|
<!-- ── Modal variant ──────────────────────────────────────── -->
|
|
68
68
|
<Teleport v-if="modal" to="body">
|
|
69
69
|
<Transition name="nd" :duration="{ enter: 300, leave: 280 }">
|
|
70
|
-
<div v-if="modelValue" class="fixed inset-0 z-
|
|
70
|
+
<div v-if="modelValue" class="fixed inset-0 z-100 flex">
|
|
71
71
|
<div class="nd-scrim absolute inset-0 bg-black/40" @click="close" />
|
|
72
72
|
|
|
73
73
|
<nav class="nd-panel relative flex h-full w-72 max-w-[85vw] flex-col bg-surface-container shadow-elevation-3">
|
|
@@ -169,11 +169,11 @@ watch(() => props.modelValue, (open) => {
|
|
|
169
169
|
@click="toggleSection(section, si)"
|
|
170
170
|
>
|
|
171
171
|
<MIcon v-if="section.icon" :name="section.icon" :size="24" class="shrink-0" />
|
|
172
|
-
<span class="min-w-0 flex-1 text-left text-title-small font-medium">{{ section.title }}</span>
|
|
172
|
+
<span class="nd-label min-w-0 flex-1 text-left text-title-small font-medium">{{ section.title }}</span>
|
|
173
173
|
<MIcon
|
|
174
174
|
:name="isSectionOpen(section, si) ? 'expand_less' : 'expand_more'"
|
|
175
175
|
:size="18"
|
|
176
|
-
class="shrink-0"
|
|
176
|
+
class="nd-label shrink-0"
|
|
177
177
|
/>
|
|
178
178
|
</button>
|
|
179
179
|
|
|
@@ -207,8 +207,8 @@ watch(() => props.modelValue, (open) => {
|
|
|
207
207
|
@click="select(item)"
|
|
208
208
|
>
|
|
209
209
|
<MIcon v-if="item.icon" :name="item.icon" :size="24" class="shrink-0" />
|
|
210
|
-
<span class="min-w-0 flex-1 text-label-large font-medium">{{ item.label }}</span>
|
|
211
|
-
<span v-if="item.badge != null" class="text-label-medium text-on-surface-variant">
|
|
210
|
+
<span class="nd-label min-w-0 flex-1 text-label-large font-medium">{{ item.label }}</span>
|
|
211
|
+
<span v-if="item.badge != null" class="nd-label text-label-medium text-on-surface-variant">
|
|
212
212
|
{{ item.badge }}
|
|
213
213
|
</span>
|
|
214
214
|
</component>
|
|
@@ -279,6 +279,25 @@ watch(() => props.modelValue, (open) => {
|
|
|
279
279
|
/* ── Inline sidebar width transition ───────────────────── */
|
|
280
280
|
.nd-inline {
|
|
281
281
|
transition: width 300ms cubic-bezier(0.2, 0, 0, 1);
|
|
282
|
+
overflow: hidden;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/* Freeze layout so content clips like a curtain during open/close */
|
|
286
|
+
.nd-inline > * {
|
|
287
|
+
min-width: 18rem;
|
|
288
|
+
}
|
|
289
|
+
/* Collapse-to-icons: let children adapt to 72px width */
|
|
290
|
+
.nd-inline.nd-collapsed > * {
|
|
291
|
+
min-width: 0;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* Collapse-to-icons: fade out labels before width squishes them */
|
|
295
|
+
.nd-label {
|
|
296
|
+
transition: opacity 200ms 80ms cubic-bezier(0.2, 0, 0, 1);
|
|
297
|
+
}
|
|
298
|
+
.nd-inline.nd-collapsed .nd-label {
|
|
299
|
+
opacity: 0;
|
|
300
|
+
transition: opacity 100ms cubic-bezier(0.2, 0, 0, 1);
|
|
282
301
|
}
|
|
283
302
|
|
|
284
303
|
/* Elements that should collapse to 0 height when sidebar is collapsed */
|
|
@@ -290,10 +309,6 @@ watch(() => props.modelValue, (open) => {
|
|
|
290
309
|
max-height: 0;
|
|
291
310
|
}
|
|
292
311
|
|
|
293
|
-
.nd-inline.nd-hidden {
|
|
294
|
-
overflow: hidden;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
312
|
.nd-inline .nd-section-body > * {
|
|
298
313
|
transition: padding 300ms cubic-bezier(0.2, 0, 0, 1);
|
|
299
314
|
}
|
|
@@ -200,14 +200,14 @@ const eventColors: Record<string, string> = {
|
|
|
200
200
|
v-for="day in visibleDays"
|
|
201
201
|
:key="fmt(day)"
|
|
202
202
|
class="relative h-14 border-r border-b border-outline-variant/50 p-0 last:border-r-0"
|
|
203
|
-
:class="fmt(day) === todayIso ? 'bg-primary-container/
|
|
203
|
+
:class="fmt(day) === todayIso ? 'bg-primary-container/5' : ''"
|
|
204
204
|
@click="emit('slotClick', { date: fmt(day), hour })"
|
|
205
205
|
>
|
|
206
206
|
<template v-for="ev in eventsForDayHour(day, hour)" :key="ev.id">
|
|
207
207
|
<button
|
|
208
208
|
v-if="isEventStart(ev, hour)"
|
|
209
209
|
type="button"
|
|
210
|
-
class="absolute inset-x-0.5 top-0.5 z-
|
|
210
|
+
class="absolute inset-x-0.5 top-0.5 z-5 cursor-pointer overflow-hidden rounded border-l-[3px] px-2 py-1 text-left transition-opacity hover:opacity-90"
|
|
211
211
|
:class="eventColors[ev.color ?? 'primary']"
|
|
212
212
|
:style="{ height: `calc(${eventDuration(ev) * 100}% - 4px)` }"
|
|
213
213
|
@click.stop="emit('eventClick', ev)"
|
|
@@ -223,7 +223,7 @@ const labelClasses = computed(() => {
|
|
|
223
223
|
<div
|
|
224
224
|
v-if="open"
|
|
225
225
|
ref="dropdownEl"
|
|
226
|
-
class="fixed z-
|
|
226
|
+
class="fixed z-500 max-h-60 overflow-auto rounded-sm bg-surface-container py-1 shadow-elevation-2"
|
|
227
227
|
:style="dropPos"
|
|
228
228
|
>
|
|
229
229
|
<div
|
|
@@ -40,7 +40,7 @@ const panelStyle = computed(() => ({
|
|
|
40
40
|
<template>
|
|
41
41
|
<Teleport to="body">
|
|
42
42
|
<Transition name="ss" :duration="{ enter: 320, leave: 280 }">
|
|
43
|
-
<div v-if="modelValue" class="fixed inset-0 z-
|
|
43
|
+
<div v-if="modelValue" class="fixed inset-0 z-200 flex justify-end">
|
|
44
44
|
<!-- Scrim -->
|
|
45
45
|
<div class="ss-scrim absolute inset-0 bg-black/40" @click="close" />
|
|
46
46
|
|
|
@@ -85,13 +85,14 @@ const getVariantStyle = (variant: string): VariantStyle =>
|
|
|
85
85
|
<div v-for="t in toasts" :key="t.id" class="toast-row w-full min-w-64 max-w-xs">
|
|
86
86
|
<div
|
|
87
87
|
class="toast-inner pointer-events-auto relative flex items-center gap-3 overflow-hidden rounded-2xl px-4 py-4 shadow-elevation-2"
|
|
88
|
-
:class="getVariantStyle(t.variant).container"
|
|
88
|
+
:class="t.color ? 'text-white ring-1 ring-inset ring-white/10' : getVariantStyle(t.variant).container"
|
|
89
|
+
:style="t.color ? { backgroundColor: t.color } : undefined"
|
|
89
90
|
>
|
|
90
91
|
<MIcon
|
|
91
|
-
:name="getVariantStyle(t.variant).iconName"
|
|
92
|
+
:name="t.icon ?? getVariantStyle(t.variant).iconName"
|
|
92
93
|
:size="20"
|
|
93
94
|
class="shrink-0"
|
|
94
|
-
:class="getVariantStyle(t.variant).icon"
|
|
95
|
+
:class="t.color ? '' : getVariantStyle(t.variant).icon"
|
|
95
96
|
/>
|
|
96
97
|
|
|
97
98
|
<p class="flex-1 text-body-medium leading-snug">{{ t.message }}</p>
|
|
@@ -101,7 +102,7 @@ const getVariantStyle = (variant: string): VariantStyle =>
|
|
|
101
102
|
v-if="t.action"
|
|
102
103
|
type="button"
|
|
103
104
|
class="cursor-pointer rounded px-2 py-1 text-label-medium font-semibold transition-colors"
|
|
104
|
-
:class="getVariantStyle(t.variant).action"
|
|
105
|
+
:class="t.color ? 'text-white/90 hover:bg-white/15' : getVariantStyle(t.variant).action"
|
|
105
106
|
@click="
|
|
106
107
|
() => {
|
|
107
108
|
t.action!.onClick();
|
|
@@ -115,7 +116,7 @@ const getVariantStyle = (variant: string): VariantStyle =>
|
|
|
115
116
|
<button
|
|
116
117
|
type="button"
|
|
117
118
|
class="flex h-8 w-8 cursor-pointer items-center justify-center rounded-full transition-colors"
|
|
118
|
-
:class="getVariantStyle(t.variant).close"
|
|
119
|
+
:class="t.color ? 'text-white/60 hover:bg-white/15' : getVariantStyle(t.variant).close"
|
|
119
120
|
aria-label="Cerrar"
|
|
120
121
|
@click="dismiss(t.id)"
|
|
121
122
|
>
|
|
@@ -127,7 +128,7 @@ const getVariantStyle = (variant: string): VariantStyle =>
|
|
|
127
128
|
<div
|
|
128
129
|
v-if="t.duration > 0"
|
|
129
130
|
class="absolute right-0 bottom-0 left-0 h-0.5 origin-left"
|
|
130
|
-
:class="getVariantStyle(t.variant).progress"
|
|
131
|
+
:class="t.color ? 'bg-white/30' : getVariantStyle(t.variant).progress"
|
|
131
132
|
:style="{ animation: `m3-toast-progress ${t.duration}ms linear forwards` }"
|
|
132
133
|
/>
|
|
133
134
|
</div>
|
|
@@ -88,7 +88,7 @@ function select(index: number) {
|
|
|
88
88
|
class="mt-[18px] flex flex-1 items-center px-2"
|
|
89
89
|
>
|
|
90
90
|
<div
|
|
91
|
-
class="h-
|
|
91
|
+
class="h-px w-full transition-colors duration-300"
|
|
92
92
|
:class="i < modelValue ? 'bg-primary' : 'bg-outline-variant'"
|
|
93
93
|
/>
|
|
94
94
|
</div>
|
|
@@ -121,7 +121,7 @@ function select(index: number) {
|
|
|
121
121
|
<!-- Vertical connector -->
|
|
122
122
|
<div
|
|
123
123
|
v-if="i < steps.length - 1"
|
|
124
|
-
class="my-1 w-
|
|
124
|
+
class="my-1 w-px flex-1 transition-colors duration-300"
|
|
125
125
|
:class="i < modelValue ? 'bg-primary' : 'bg-outline-variant'"
|
|
126
126
|
style="min-height: 24px"
|
|
127
127
|
/>
|
|
@@ -359,8 +359,8 @@ const hasActions = computed(() => !!slots['row-actions'])
|
|
|
359
359
|
:key="rowId(row)"
|
|
360
360
|
:class="[
|
|
361
361
|
'border-t border-outline-variant transition-colors duration-100',
|
|
362
|
-
'hover:bg-on-surface/
|
|
363
|
-
selectable && isSelected(row) ? 'bg-primary/
|
|
362
|
+
'hover:bg-on-surface/4',
|
|
363
|
+
selectable && isSelected(row) ? 'bg-primary/6' : '',
|
|
364
364
|
selectable ? 'cursor-pointer' : '',
|
|
365
365
|
]"
|
|
366
366
|
@click="selectable ? toggleRow(row) : undefined"
|
|
@@ -140,7 +140,7 @@ onUnmounted(() => {
|
|
|
140
140
|
</button>
|
|
141
141
|
<label
|
|
142
142
|
v-if="label"
|
|
143
|
-
class="pointer-events-none absolute -top-2.5 left-3 bg-
|
|
143
|
+
class="pointer-events-none absolute -top-2.5 left-3 bg-(--field-bg) px-1 text-label-small transition-colors"
|
|
144
144
|
:class="open ? (error ? 'text-error' : 'text-primary') : error ? 'text-error' : 'text-on-surface-variant'"
|
|
145
145
|
>
|
|
146
146
|
{{ label }}
|
|
@@ -160,7 +160,7 @@ onUnmounted(() => {
|
|
|
160
160
|
<div
|
|
161
161
|
v-if="open"
|
|
162
162
|
ref="panelEl"
|
|
163
|
-
class="fixed z-
|
|
163
|
+
class="fixed z-500 w-[280px] rounded-lg bg-surface-container shadow-elevation-3"
|
|
164
164
|
:style="dropPos"
|
|
165
165
|
>
|
|
166
166
|
<!-- Display -->
|
|
@@ -41,7 +41,7 @@ const dotBg: Record<string, string> = {
|
|
|
41
41
|
<!-- Line + dot -->
|
|
42
42
|
<div class="flex flex-col items-center">
|
|
43
43
|
<div
|
|
44
|
-
class="z-
|
|
44
|
+
class="z-1 flex shrink-0 items-center justify-center rounded-full"
|
|
45
45
|
:class="[item.icon ? 'h-9 w-9' : 'h-3 w-3', dotBg[item.color ?? 'primary']]"
|
|
46
46
|
:style="item.dotColor ? { backgroundColor: item.dotColor } : undefined"
|
|
47
47
|
>
|
|
@@ -100,7 +100,7 @@ const dotBg: Record<string, string> = {
|
|
|
100
100
|
<!-- Center column: dot + continuous line -->
|
|
101
101
|
<div class="flex w-14 shrink-0 flex-col items-center">
|
|
102
102
|
<div
|
|
103
|
-
class="z-
|
|
103
|
+
class="z-1 flex shrink-0 items-center justify-center rounded-full"
|
|
104
104
|
:class="[item.icon ? 'h-9 w-9' : 'h-3.5 w-3.5', dotBg[item.color ?? 'primary']]"
|
|
105
105
|
:style="item.dotColor ? { backgroundColor: item.dotColor } : undefined"
|
|
106
106
|
>
|
|
@@ -78,7 +78,7 @@ onUnmounted(() => window.removeEventListener('scroll', onScroll, true))
|
|
|
78
78
|
<div
|
|
79
79
|
v-if="visible && text"
|
|
80
80
|
ref="tipEl"
|
|
81
|
-
class="pointer-events-none fixed z-
|
|
81
|
+
class="pointer-events-none fixed z-400 max-w-[220px] rounded bg-inverse-surface px-3 py-1.5 text-label-medium text-inverse-on-surface shadow-elevation-2"
|
|
82
82
|
:style="tipStyle"
|
|
83
83
|
role="tooltip"
|
|
84
84
|
>
|
package/src/components/MTour.vue
CHANGED
|
@@ -149,14 +149,14 @@ onBeforeUnmount(clearHighlight)
|
|
|
149
149
|
<Teleport to="body">
|
|
150
150
|
<!-- Overlay -->
|
|
151
151
|
<Transition name="m3-tour">
|
|
152
|
-
<div v-if="modelValue && step" class="fixed inset-0 z-
|
|
152
|
+
<div v-if="modelValue && step" class="fixed inset-0 z-200 bg-black/40" @click="close" />
|
|
153
153
|
</Transition>
|
|
154
154
|
|
|
155
155
|
<!-- Tooltip -->
|
|
156
156
|
<Transition name="m3-tour">
|
|
157
157
|
<div
|
|
158
158
|
v-if="modelValue && step"
|
|
159
|
-
class="fixed z-
|
|
159
|
+
class="fixed z-202 w-80 rounded-xl bg-surface-container-high p-5 shadow-elevation-3"
|
|
160
160
|
:style="tooltipStyle"
|
|
161
161
|
>
|
|
162
162
|
<!-- Arrow -->
|
|
@@ -114,7 +114,7 @@ function alignClass(a?: string) { return a === 'center' ? 'text-center' : a ===
|
|
|
114
114
|
<tr
|
|
115
115
|
v-for="(item, i) in flatRows"
|
|
116
116
|
:key="item.row[rowKey] ?? i"
|
|
117
|
-
class="border-t border-outline-variant transition-colors duration-100 hover:bg-on-surface/
|
|
117
|
+
class="border-t border-outline-variant transition-colors duration-100 hover:bg-on-surface/4"
|
|
118
118
|
:class="item.depth > 0 ? 'bg-surface-container-lowest/50' : ''"
|
|
119
119
|
@click="emit('rowClick', item.row)"
|
|
120
120
|
>
|
|
@@ -122,7 +122,7 @@ function alignClass(a?: string) { return a === 'center' ? 'text-center' : a ===
|
|
|
122
122
|
<div
|
|
123
123
|
v-for="{ row, index, top } in visibleRows"
|
|
124
124
|
:key="row[rowKey] ?? index"
|
|
125
|
-
class="absolute left-0 right-0 flex border-t border-outline-variant transition-colors duration-75 hover:bg-on-surface/
|
|
125
|
+
class="absolute left-0 right-0 flex border-t border-outline-variant transition-colors duration-75 hover:bg-on-surface/4"
|
|
126
126
|
:class="index % 2 === 0 ? '' : 'bg-surface-container-lowest/50'"
|
|
127
127
|
:style="{ top: `${top}px`, height: `${rowHeight}px` }"
|
|
128
128
|
@click="emit('rowClick', row)"
|
|
@@ -66,7 +66,7 @@ function onPanelMouseLeave(e: MouseEvent) {
|
|
|
66
66
|
<template>
|
|
67
67
|
<div
|
|
68
68
|
ref="panel"
|
|
69
|
-
class="m3-ctx-panel absolute z-
|
|
69
|
+
class="m3-ctx-panel absolute z-201 min-w-[200px] rounded-sm bg-surface-container shadow-elevation-2"
|
|
70
70
|
:style="{ left: `${panelX}px`, top: `${panelY}px` }"
|
|
71
71
|
@mouseleave="onPanelMouseLeave"
|
|
72
72
|
>
|
|
@@ -82,9 +82,9 @@ function onAfterLeave(el: Element) {
|
|
|
82
82
|
? 'cursor-not-allowed opacity-38'
|
|
83
83
|
: 'cursor-pointer',
|
|
84
84
|
!node.disabled && isSelected
|
|
85
|
-
? 'bg-primary/
|
|
85
|
+
? 'bg-primary/10'
|
|
86
86
|
: !node.disabled
|
|
87
|
-
? 'hover:bg-on-surface/
|
|
87
|
+
? 'hover:bg-on-surface/4'
|
|
88
88
|
: '',
|
|
89
89
|
]"
|
|
90
90
|
@click="onRowClick"
|
|
@@ -13,6 +13,8 @@ export interface Toast {
|
|
|
13
13
|
variant: ToastVariant
|
|
14
14
|
duration: number
|
|
15
15
|
action?: ToastAction
|
|
16
|
+
icon?: string
|
|
17
|
+
color?: string
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
let nextId = 1
|
|
@@ -24,27 +26,30 @@ function dismiss(id: number) {
|
|
|
24
26
|
toasts.value = toasts.value.filter((t) => t.id !== id)
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
export interface ToastOptions {
|
|
30
|
+
duration?: number
|
|
31
|
+
action?: ToastAction
|
|
32
|
+
icon?: string
|
|
33
|
+
color?: string
|
|
34
|
+
}
|
|
35
|
+
|
|
27
36
|
function show(
|
|
28
37
|
message: string,
|
|
29
38
|
variant: ToastVariant = 'info',
|
|
30
|
-
options: number |
|
|
39
|
+
options: number | ToastOptions = {},
|
|
31
40
|
) {
|
|
32
41
|
const id = nextId++
|
|
33
42
|
const opts = typeof options === 'number' ? { duration: options } : options
|
|
34
43
|
const duration = opts.duration ?? (variant === 'error' ? 6000 : 4000)
|
|
35
|
-
toasts.value.push({ id, message, variant, duration, action: opts.action })
|
|
44
|
+
toasts.value.push({ id, message, variant, duration, action: opts.action, icon: opts.icon, color: opts.color })
|
|
36
45
|
if (duration > 0) setTimeout(() => dismiss(id), duration)
|
|
37
46
|
return id
|
|
38
47
|
}
|
|
39
48
|
|
|
40
|
-
const success = (msg: string, opts?:
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const warning = (msg: string, opts?: { duration?: number; action?: ToastAction }) =>
|
|
45
|
-
show(msg, 'warning', opts ?? {})
|
|
46
|
-
const info = (msg: string, opts?: { duration?: number; action?: ToastAction }) =>
|
|
47
|
-
show(msg, 'info', opts ?? {})
|
|
49
|
+
const success = (msg: string, opts?: ToastOptions) => show(msg, 'success', opts ?? {})
|
|
50
|
+
const error = (msg: string, opts?: ToastOptions) => show(msg, 'error', opts ?? {})
|
|
51
|
+
const warning = (msg: string, opts?: ToastOptions) => show(msg, 'warning', opts ?? {})
|
|
52
|
+
const info = (msg: string, opts?: ToastOptions) => show(msg, 'info', opts ?? {})
|
|
48
53
|
|
|
49
54
|
export function useToast() {
|
|
50
55
|
return { toasts, position, show, success, error, warning, info, dismiss }
|