@nmorph/nmorph-ui-kit 2.2.42 → 2.2.44
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/assets/icons/chevron-up.svg.js +4 -4
- package/dist/assets/icons/download.svg.js +5 -5
- package/dist/assets/icons/open.svg.js +2 -2
- package/dist/assets/icons/search.svg.js +1 -1
- package/dist/assets/icons/smile.svg.js +4 -4
- package/dist/components/basic/nmorph-button/NmorphButton.vue.js +16 -16
- package/dist/components/basic/nmorph-icon/NmorphIcon.css +1 -1
- package/dist/components/data/nmorph-audio-preview/NmorphAudioPreview.css +1 -0
- package/dist/components/data/nmorph-audio-preview/NmorphAudioPreview.vue.js +207 -0
- package/dist/components/data/nmorph-audio-preview/NmorphAudioPreview.vue3.js +6 -0
- package/dist/components/data/nmorph-emoji-picker/NmorphEmojiPicker.css +1 -0
- package/dist/components/data/nmorph-emoji-picker/NmorphEmojiPicker.vue.js +371 -0
- package/dist/components/data/nmorph-emoji-picker/NmorphEmojiPicker.vue3.js +6 -0
- package/dist/components/data/nmorph-file-card/NmorphFileCard.css +1 -0
- package/dist/components/data/nmorph-file-card/NmorphFileCard.vue.js +124 -0
- package/dist/components/data/nmorph-file-card/NmorphFileCard.vue3.js +6 -0
- package/dist/components/data/nmorph-image-preview/NmorphImagePreview.vue.js +164 -150
- package/dist/components/data/nmorph-media-tile/NmorphMediaTile.vue.js +8 -8
- package/dist/components/data/nmorph-video-preview/NmorphVideoPreview.css +1 -0
- package/dist/components/data/nmorph-video-preview/NmorphVideoPreview.vue.js +147 -0
- package/dist/components/data/nmorph-video-preview/NmorphVideoPreview.vue3.js +6 -0
- package/dist/components/form/nmorph-file-upload/NmorphFileUpload.css +1 -1
- package/dist/components/form/nmorph-file-upload/NmorphFileUpload.vue.js +154 -125
- package/dist/components/form/nmorph-file-upload/types.js +9 -9
- package/dist/hooks/use-common-styles.js +73 -22
- package/dist/index.es.js +861 -849
- package/dist/index.umd.js +76 -25
- package/dist/package.json.js +1 -1
- package/dist/src/components/data/index.d.ts +8 -0
- package/dist/src/components/data/nmorph-audio-preview/NmorphAudioPreview.vue.d.ts +38 -0
- package/dist/src/components/data/nmorph-audio-preview/types.d.ts +20 -0
- package/dist/src/components/data/nmorph-calendar/NmorphCalendar.vue.d.ts +1 -1
- package/dist/src/components/data/nmorph-emoji-picker/NmorphEmojiPicker.vue.d.ts +25 -0
- package/dist/src/components/data/nmorph-emoji-picker/types.d.ts +50 -0
- package/dist/src/components/data/nmorph-file-card/NmorphFileCard.vue.d.ts +30 -0
- package/dist/src/components/data/nmorph-file-card/types.d.ts +18 -0
- package/dist/src/components/data/nmorph-media-tile/NmorphMediaTile.vue.d.ts +1 -1
- package/dist/src/components/data/nmorph-video-preview/NmorphVideoPreview.vue.d.ts +41 -0
- package/dist/src/components/data/nmorph-video-preview/types.d.ts +27 -0
- package/dist/src/components/form/nmorph-date-picker/inner-components/nmorph-year-month-picker/NmorphYearMonthPicker.vue.d.ts +1 -1
- package/dist/src/components/form/nmorph-file-upload/NmorphFileUpload.vue.d.ts +1 -1
- package/dist/src/components/form/nmorph-file-upload/types.d.ts +4 -0
- package/dist/src/components/form/nmorph-number-input/NmorphNumberInput.vue.d.ts +1 -1
- package/dist/src/components/form/nmorph-slider/NmorphSlider.vue.d.ts +1 -1
- package/dist/src/utils/file-types.d.ts +8 -1
- package/dist/style.css +1 -1
- package/dist/utils/file-types.js +28 -21
- package/package.json +23 -24
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { openBlock as
|
|
1
|
+
import { openBlock as o, createElementBlock as t, createElementVNode as n } from "vue";
|
|
2
2
|
const r = {
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 32 32"
|
|
5
5
|
};
|
|
6
6
|
function l(c, e) {
|
|
7
|
-
return
|
|
7
|
+
return o(), t("svg", r, [...e[0] || (e[0] = [
|
|
8
8
|
n("path", { d: "M2 20 16 8l14 12-2 2-12-10L4 22Z" }, null, -1)
|
|
9
9
|
])]);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const s = { render: l };
|
|
12
12
|
export {
|
|
13
|
-
|
|
13
|
+
s as default,
|
|
14
14
|
l as render
|
|
15
15
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { openBlock as
|
|
1
|
+
import { openBlock as o, createElementBlock as t, createElementVNode as n } from "vue";
|
|
2
2
|
const r = {
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 1024 1024"
|
|
5
5
|
};
|
|
6
|
-
function l(
|
|
7
|
-
return
|
|
6
|
+
function l(a, e) {
|
|
7
|
+
return o(), t("svg", r, [...e[0] || (e[0] = [
|
|
8
8
|
n("path", { d: "M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z" }, null, -1)
|
|
9
9
|
])]);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const d = { render: l };
|
|
12
12
|
export {
|
|
13
|
-
|
|
13
|
+
d as default,
|
|
14
14
|
l as render
|
|
15
15
|
};
|
|
@@ -9,8 +9,8 @@ function a(l, e) {
|
|
|
9
9
|
t("path", { d: "M694.044 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454m0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088" }, null, -1)
|
|
10
10
|
])]);
|
|
11
11
|
}
|
|
12
|
-
const
|
|
12
|
+
const p = { render: a };
|
|
13
13
|
export {
|
|
14
|
-
|
|
14
|
+
p as default,
|
|
15
15
|
a as render
|
|
16
16
|
};
|
|
@@ -3,7 +3,7 @@ const n = {
|
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 32 32"
|
|
5
5
|
};
|
|
6
|
-
function c(
|
|
6
|
+
function c(l, e) {
|
|
7
7
|
return t(), o("svg", n, [...e[0] || (e[0] = [
|
|
8
8
|
r("path", { d: "m31.008 27.231-7.58-6.447c-.784-.705-1.622-1.029-2.299-.998a11.95 11.95 0 0 0 2.87-7.787c0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12c2.972 0 5.691-1.081 7.787-2.87-.031.677.293 1.515.998 2.299l6.447 7.58c1.104 1.226 2.907 1.33 4.007.23s.997-2.903-.23-4.007M12 20a8 8 0 1 1 0-16 8 8 0 0 1 0 16" }, null, -1)
|
|
9
9
|
])]);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { openBlock as
|
|
1
|
+
import { openBlock as o, createElementBlock as n, createElementVNode as t } from "vue";
|
|
2
2
|
const r = {
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 1024 1024"
|
|
5
5
|
};
|
|
6
6
|
function a(l, e) {
|
|
7
|
-
return
|
|
7
|
+
return o(), n("svg", r, [...e[0] || (e[0] = [
|
|
8
8
|
t("path", { d: "M512 64a448 448 0 1 0 0 896 448 448 0 0 0 0-896m0 64a384 384 0 1 1 0 768 384 384 0 0 1 0-768" }, null, -1),
|
|
9
9
|
t("path", { d: "M352 384a48 48 0 1 1 0 96 48 48 0 0 1 0-96m320 0a48 48 0 1 1 0 96 48 48 0 0 1 0-96M352.64 585.6a32 32 0 0 1 43.648 11.712C419.84 638.08 462.976 672 512 672s92.16-33.92 115.712-74.688a32 32 0 0 1 55.36 32C649.6 687.296 586.752 736 512 736s-137.6-48.704-171.072-106.688A32 32 0 0 1 352.64 585.6" }, null, -1)
|
|
10
10
|
])]);
|
|
11
11
|
}
|
|
12
|
-
const
|
|
12
|
+
const s = { render: a };
|
|
13
13
|
export {
|
|
14
|
-
|
|
14
|
+
s as default,
|
|
15
15
|
a as render
|
|
16
16
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import './NmorphButton.css';
|
|
2
|
-
import { defineComponent as C, useSlots as z, computed as o, ref as
|
|
2
|
+
import { defineComponent as C, useSlots as z, computed as o, ref as N, openBlock as t, createElementBlock as r, normalizeStyle as V, normalizeClass as $, createElementVNode as O, createBlock as i, unref as a, withCtx as s, createVNode as E, renderSlot as n, Fragment as H, createCommentVNode as f, toDisplayString as M } from "vue";
|
|
3
3
|
import { useModifiers as D } from "../../../utils/create-modifiers.js";
|
|
4
|
-
import { NmorphComponentHeight as
|
|
4
|
+
import { NmorphComponentHeight as I } from "../../../types/common.types.js";
|
|
5
5
|
import d from "../nmorph-icon/NmorphIcon.vue.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
import
|
|
7
|
+
import w from "../../../assets/icons/loading.svg.js";
|
|
8
8
|
const T = ["disabled", "loading", "type", "tabindex", "aria-pressed"], F = {
|
|
9
9
|
key: 1,
|
|
10
10
|
class: "nmorph-button__label"
|
|
@@ -32,10 +32,10 @@ const T = ["disabled", "loading", "type", "tabindex", "aria-pressed"], F = {
|
|
|
32
32
|
disabled: { type: Boolean, default: !1 }
|
|
33
33
|
},
|
|
34
34
|
emits: ["update:model-value"],
|
|
35
|
-
setup(y, { expose:
|
|
36
|
-
const e = y, b =
|
|
35
|
+
setup(y, { expose: h, emit: g }) {
|
|
36
|
+
const e = y, b = g, u = z(), v = o(() => !!u.icon), c = o(() => !!u["icon-only"]), p = o(() => e.active || !!e.modelValue), B = o(
|
|
37
37
|
() => D({
|
|
38
|
-
nmorph: [
|
|
38
|
+
nmorph: [I[e.height], e.fill && "fill"],
|
|
39
39
|
"nmorph-button": [
|
|
40
40
|
e.styleType,
|
|
41
41
|
e.shape,
|
|
@@ -48,7 +48,7 @@ const T = ["disabled", "loading", "type", "tabindex", "aria-pressed"], F = {
|
|
|
48
48
|
e.danger && "danger"
|
|
49
49
|
]
|
|
50
50
|
})
|
|
51
|
-
), m =
|
|
51
|
+
), m = N(null), _ = {
|
|
52
52
|
thin: "small",
|
|
53
53
|
basic: "medium",
|
|
54
54
|
thick: "large"
|
|
@@ -59,9 +59,9 @@ const T = ["disabled", "loading", "type", "tabindex", "aria-pressed"], F = {
|
|
|
59
59
|
} : {}), x = () => {
|
|
60
60
|
!e.toggle || e.disabled || e.loading || b("update:model-value", !e.modelValue);
|
|
61
61
|
};
|
|
62
|
-
return
|
|
63
|
-
class:
|
|
64
|
-
style:
|
|
62
|
+
return h({ buttonDOMElement: m }), (l, L) => (t(), r("div", {
|
|
63
|
+
class: $(B.value),
|
|
64
|
+
style: V(S.value)
|
|
65
65
|
}, [
|
|
66
66
|
O("button", {
|
|
67
67
|
ref_key: "buttonDOMElement",
|
|
@@ -74,28 +74,28 @@ const T = ["disabled", "loading", "type", "tabindex", "aria-pressed"], F = {
|
|
|
74
74
|
"aria-pressed": e.toggle ? p.value : void 0,
|
|
75
75
|
onClick: x
|
|
76
76
|
}, [
|
|
77
|
-
e.loading ? (t(),
|
|
77
|
+
e.loading ? (t(), i(a(d), {
|
|
78
78
|
key: 0,
|
|
79
79
|
size: k.value
|
|
80
80
|
}, {
|
|
81
81
|
default: s(() => [
|
|
82
|
-
E(a(
|
|
82
|
+
E(a(w))
|
|
83
83
|
]),
|
|
84
84
|
_: 1
|
|
85
|
-
}, 8, ["size"])) : c.value ? (t(),
|
|
85
|
+
}, 8, ["size"])) : c.value ? (t(), i(a(d), { key: 1 }, {
|
|
86
86
|
default: s(() => [
|
|
87
87
|
n(l.$slots, "icon-only")
|
|
88
88
|
]),
|
|
89
89
|
_: 3
|
|
90
|
-
})) : (t(),
|
|
91
|
-
v.value ? (t(),
|
|
90
|
+
})) : (t(), r(H, { key: 2 }, [
|
|
91
|
+
v.value ? (t(), i(a(d), { key: 0 }, {
|
|
92
92
|
default: s(() => [
|
|
93
93
|
n(l.$slots, "icon")
|
|
94
94
|
]),
|
|
95
95
|
_: 3
|
|
96
96
|
})) : f("", !0),
|
|
97
97
|
n(l.$slots, "default"),
|
|
98
|
-
e.text !== void 0 ? (t(),
|
|
98
|
+
e.text !== void 0 ? (t(), r("span", F, M(e.text), 1)) : f("", !0),
|
|
99
99
|
n(l.$slots, "append")
|
|
100
100
|
], 64))
|
|
101
101
|
], 8, T)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.nmorph-icon
|
|
1
|
+
.nmorph-icon,.nmorph-icon .nmorph-icon__content{display:flex;justify-content:center;align-items:center;width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height)}.nmorph-icon svg{width:100%;height:100%;fill:var(--color);stroke-width:0}.nmorph-icon path{stroke:var(--color)}.nmorph-icon.nmorph-icon--small{--width: 14px;--height: 14px}.nmorph-icon.nmorph-icon--medium{--width: 20px;--height: 20px}.nmorph-icon.nmorph-icon--large{--width: 32px;--height: 32px}.nmorph-icon{--color: var(--nmorph-icon-color, var(--nmorph-text-color))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.nmorph-audio-preview{display:flex;gap:var(--indentation-02);align-items:center;box-sizing:border-box;width:var(--nmorph-audio-preview-width, 360px);min-width:0;max-width:100%;min-height:64px;padding:var(--indentation-03);color:var(--nmorph-text-color);background:var(--nmorph-main-color);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset)}.nmorph-audio-preview audio{display:none}.nmorph-audio-preview .nmorph-audio-preview__icon{display:flex;flex:0 0 auto;justify-content:center;align-items:center;width:36px;height:36px;color:var(--nmorph-accent-color);background:color-mix(in srgb,var(--nmorph-accent-color) 12%,transparent);border-radius:var(--default-border-radius);--color: currentColor}.nmorph-audio-preview .nmorph-audio-preview__play{flex:0 0 auto}.nmorph-audio-preview .nmorph-audio-preview__body{display:flex;flex:1 1 0;flex-direction:column;gap:var(--indentation-02);min-width:0}.nmorph-audio-preview .nmorph-audio-preview__header{display:flex;gap:var(--indentation-02);justify-content:space-between;align-items:center;min-width:0}.nmorph-audio-preview .nmorph-audio-preview__name,.nmorph-audio-preview .nmorph-audio-preview__time,.nmorph-audio-preview .nmorph-audio-preview__error{min-width:0;overflow:hidden;font-size:var(--font-size-extra-small);line-height:var(--line-height-regular);white-space:nowrap;text-overflow:ellipsis}.nmorph-audio-preview .nmorph-audio-preview__name{flex:1 1 auto;font-weight:600}.nmorph-audio-preview .nmorph-audio-preview__time{flex:0 0 auto;color:var(--nmorph-semi-contrast-text-color);font-variant-numeric:tabular-nums}.nmorph-audio-preview .nmorph-audio-preview__error{flex:0 1 auto;color:var(--nmorph-error-text-color)}.nmorph-audio-preview .nmorph-audio-preview__range{width:100%;min-width:0;height:6px;padding:0;background:linear-gradient(to right,var(--nmorph-accent-color) var(--nmorph-audio-preview-progress, 0%),color-mix(in srgb,var(--nmorph-text-color) 16%,transparent) 0);border-radius:var(--border-radius-100);outline:0;cursor:pointer;appearance:none}.nmorph-audio-preview .nmorph-audio-preview__range:disabled{cursor:default;opacity:.6}.nmorph-audio-preview .nmorph-audio-preview__range::-webkit-slider-thumb{width:14px;height:14px;background:var(--nmorph-accent-color);border:2px solid var(--nmorph-main-color);border-radius:var(--border-radius-circular);box-shadow:var(--nmorph-shadow-outset);appearance:none}.nmorph-audio-preview .nmorph-audio-preview__range::-moz-range-thumb{width:14px;height:14px;background:var(--nmorph-accent-color);border:2px solid var(--nmorph-main-color);border-radius:var(--border-radius-circular);box-shadow:var(--nmorph-shadow-outset)}.nmorph-audio-preview .nmorph-audio-preview__actions{display:flex;flex:0 0 auto;gap:var(--indentation-01);align-items:center}.nmorph-audio-preview .nmorph-audio-preview__action-link{display:inline-flex;justify-content:center;align-items:center;width:22px;height:22px;color:inherit;text-decoration:none;border-radius:var(--default-border-radius)}.nmorph-audio-preview .nmorph-audio-preview__action-link:hover{color:var(--nmorph-accent-color);background:color-mix(in srgb,var(--nmorph-accent-color) 10%,transparent)}.nmorph-audio-preview .nmorph-audio-preview__action-link .nmorph-icon{--color: currentColor}.nmorph-audio-preview.nmorph-audio-preview--compact{min-height:52px;padding:var(--indentation-02)}.nmorph-audio-preview.nmorph-audio-preview--compact .nmorph-audio-preview__icon{width:30px;height:30px}.nmorph-audio-preview.nmorph-audio-preview--error{outline:1px solid var(--nmorph-error-color)}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import './NmorphAudioPreview.css';
|
|
2
|
+
import { defineComponent as q, useSlots as G, ref as _, watch as J, computed as l, openBlock as t, createElementBlock as p, normalizeStyle as N, normalizeClass as K, createElementVNode as i, createBlock as h, unref as r, withCtx as m, createVNode as s, toDisplayString as y, withDirectives as Q, vModelText as W, renderSlot as X, createCommentVNode as H } from "vue";
|
|
3
|
+
import { useModifiers as Y } from "../../../utils/create-modifiers.js";
|
|
4
|
+
import { createCssSizeVariables as Z } from "../../../utils/common.js";
|
|
5
|
+
import w from "../../basic/nmorph-icon/NmorphIcon.vue.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
import ee from "../../../assets/icons/audio.svg.js";
|
|
8
|
+
import oe from "../../basic/nmorph-button/NmorphButton.vue.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import ae from "../../../assets/icons/pause.svg.js";
|
|
11
|
+
import re from "../../../assets/icons/play.svg.js";
|
|
12
|
+
import te from "../../../assets/icons/open.svg.js";
|
|
13
|
+
import ne from "../../../assets/icons/download.svg.js";
|
|
14
|
+
import le from "../../../assets/icons/loading.svg.js";
|
|
15
|
+
const ie = ["src", "preload"], se = { class: "nmorph-audio-preview__icon" }, de = { class: "nmorph-audio-preview__body" }, ue = { class: "nmorph-audio-preview__header" }, ce = { class: "nmorph-audio-preview__name" }, pe = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "nmorph-audio-preview__error"
|
|
18
|
+
}, me = {
|
|
19
|
+
key: 1,
|
|
20
|
+
class: "nmorph-audio-preview__time"
|
|
21
|
+
}, ve = ["disabled", "aria-label"], fe = {
|
|
22
|
+
key: 0,
|
|
23
|
+
class: "nmorph-audio-preview__actions"
|
|
24
|
+
}, _e = ["href", "aria-label"], he = ["href", "download", "aria-label"], Me = /* @__PURE__ */ q({
|
|
25
|
+
__name: "NmorphAudioPreview",
|
|
26
|
+
props: {
|
|
27
|
+
src: {},
|
|
28
|
+
name: { default: "" },
|
|
29
|
+
durationMs: { default: void 0 },
|
|
30
|
+
width: { default: void 0 },
|
|
31
|
+
compact: { type: Boolean, default: !1 },
|
|
32
|
+
preload: { default: "metadata" },
|
|
33
|
+
downloadHref: { default: "" },
|
|
34
|
+
loading: { type: Boolean, default: !1 },
|
|
35
|
+
error: { type: Boolean, default: !1 },
|
|
36
|
+
errorText: { default: "" },
|
|
37
|
+
showDefaultActions: { type: Boolean, default: !0 }
|
|
38
|
+
},
|
|
39
|
+
emits: ["play", "pause", "open", "download", "error"],
|
|
40
|
+
setup(S, { expose: T, emit: $ }) {
|
|
41
|
+
const e = S, u = $, x = G(), a = _(null), n = _(!1), v = _(0), f = _(e.durationMs ? e.durationMs / 1e3 : 0);
|
|
42
|
+
J(
|
|
43
|
+
() => e.durationMs,
|
|
44
|
+
(o) => {
|
|
45
|
+
f.value = o ? o / 1e3 : f.value;
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
const d = l(() => f.value || 0), g = l({
|
|
49
|
+
get: () => d.value > 0 ? v.value / d.value * 100 : 0,
|
|
50
|
+
set: (o) => {
|
|
51
|
+
!a.value || d.value <= 0 || (a.value.currentTime = o / 100 * d.value, v.value = a.value.currentTime);
|
|
52
|
+
}
|
|
53
|
+
}), B = l(() => ({ "--nmorph-audio-preview-progress": `${g.value}%` })), C = l(
|
|
54
|
+
() => !!x.actions || e.showDefaultActions && (e.src || e.downloadHref)
|
|
55
|
+
), M = l(
|
|
56
|
+
() => Y({
|
|
57
|
+
"nmorph-audio-preview": [
|
|
58
|
+
e.compact && "compact",
|
|
59
|
+
e.loading && "loading",
|
|
60
|
+
e.error && "error",
|
|
61
|
+
n.value && "playing"
|
|
62
|
+
]
|
|
63
|
+
})
|
|
64
|
+
), z = l(
|
|
65
|
+
() => Z({
|
|
66
|
+
"--nmorph-audio-preview-width": e.width
|
|
67
|
+
})
|
|
68
|
+
), k = (o) => {
|
|
69
|
+
if (!Number.isFinite(o) || o < 0) return "0:00";
|
|
70
|
+
const c = Math.floor(o), b = Math.floor(c / 60), j = c % 60;
|
|
71
|
+
return `${b}:${j.toString().padStart(2, "0")}`;
|
|
72
|
+
}, A = l(() => k(v.value)), D = l(() => k(d.value)), I = async () => {
|
|
73
|
+
if (!(!a.value || e.loading || e.error)) {
|
|
74
|
+
if (n.value) {
|
|
75
|
+
a.value.pause();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
await a.value.play();
|
|
80
|
+
} catch {
|
|
81
|
+
n.value = !1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}, P = () => {
|
|
85
|
+
!a.value || Number.isNaN(a.value.duration) || (f.value = a.value.duration);
|
|
86
|
+
}, V = () => {
|
|
87
|
+
v.value = a.value?.currentTime || 0;
|
|
88
|
+
}, E = (o) => {
|
|
89
|
+
n.value = !0, u("play", o);
|
|
90
|
+
}, L = (o) => {
|
|
91
|
+
n.value = !1, u("pause", o);
|
|
92
|
+
}, O = () => {
|
|
93
|
+
n.value = !1;
|
|
94
|
+
}, R = (o) => {
|
|
95
|
+
n.value = !1, u("error", o);
|
|
96
|
+
}, U = () => u("open"), F = () => u("download");
|
|
97
|
+
return T({ audioRef: a }), (o, c) => (t(), p("div", {
|
|
98
|
+
class: K(M.value),
|
|
99
|
+
style: N(z.value)
|
|
100
|
+
}, [
|
|
101
|
+
i("audio", {
|
|
102
|
+
ref_key: "audioRef",
|
|
103
|
+
ref: a,
|
|
104
|
+
src: e.src,
|
|
105
|
+
preload: e.preload,
|
|
106
|
+
onLoadedmetadata: P,
|
|
107
|
+
onTimeupdate: V,
|
|
108
|
+
onPlay: E,
|
|
109
|
+
onPause: L,
|
|
110
|
+
onEnded: O,
|
|
111
|
+
onError: R
|
|
112
|
+
}, null, 40, ie),
|
|
113
|
+
i("div", se, [
|
|
114
|
+
e.loading ? (t(), h(r(w), {
|
|
115
|
+
key: 0,
|
|
116
|
+
size: "medium"
|
|
117
|
+
}, {
|
|
118
|
+
default: m(() => [
|
|
119
|
+
s(r(le))
|
|
120
|
+
]),
|
|
121
|
+
_: 1
|
|
122
|
+
})) : (t(), h(r(w), {
|
|
123
|
+
key: 1,
|
|
124
|
+
size: "medium"
|
|
125
|
+
}, {
|
|
126
|
+
default: m(() => [
|
|
127
|
+
s(r(ee))
|
|
128
|
+
]),
|
|
129
|
+
_: 1
|
|
130
|
+
}))
|
|
131
|
+
]),
|
|
132
|
+
s(r(oe), {
|
|
133
|
+
class: "nmorph-audio-preview__play",
|
|
134
|
+
height: "thin",
|
|
135
|
+
"style-type": "transparent",
|
|
136
|
+
disabled: e.loading || e.error,
|
|
137
|
+
onClick: I
|
|
138
|
+
}, {
|
|
139
|
+
"icon-only": m(() => [
|
|
140
|
+
n.value ? (t(), h(r(ae), { key: 0 })) : (t(), h(r(re), { key: 1 }))
|
|
141
|
+
]),
|
|
142
|
+
_: 1
|
|
143
|
+
}, 8, ["disabled"]),
|
|
144
|
+
i("div", de, [
|
|
145
|
+
i("div", ue, [
|
|
146
|
+
i("span", ce, y(e.name || "Audio"), 1),
|
|
147
|
+
e.error && e.errorText ? (t(), p("span", pe, y(e.errorText), 1)) : (t(), p("span", me, y(A.value) + " / " + y(D.value), 1))
|
|
148
|
+
]),
|
|
149
|
+
Q(i("input", {
|
|
150
|
+
"onUpdate:modelValue": c[0] || (c[0] = (b) => g.value = b),
|
|
151
|
+
class: "nmorph-audio-preview__range",
|
|
152
|
+
type: "range",
|
|
153
|
+
min: "0",
|
|
154
|
+
max: "100",
|
|
155
|
+
step: "0.1",
|
|
156
|
+
style: N(B.value),
|
|
157
|
+
disabled: e.loading || e.error || d.value <= 0,
|
|
158
|
+
"aria-label": `Audio progress ${e.name || ""}`
|
|
159
|
+
}, null, 12, ve), [
|
|
160
|
+
[
|
|
161
|
+
W,
|
|
162
|
+
g.value,
|
|
163
|
+
void 0,
|
|
164
|
+
{ number: !0 }
|
|
165
|
+
]
|
|
166
|
+
])
|
|
167
|
+
]),
|
|
168
|
+
C.value ? (t(), p("div", fe, [
|
|
169
|
+
X(o.$slots, "actions", {}, () => [
|
|
170
|
+
i("a", {
|
|
171
|
+
href: e.src,
|
|
172
|
+
target: "_blank",
|
|
173
|
+
rel: "noopener noreferrer",
|
|
174
|
+
class: "nmorph-audio-preview__action-link",
|
|
175
|
+
"aria-label": `Open ${e.name || "audio"}`,
|
|
176
|
+
onClick: U
|
|
177
|
+
}, [
|
|
178
|
+
s(r(w), { size: "small" }, {
|
|
179
|
+
default: m(() => [
|
|
180
|
+
s(r(te))
|
|
181
|
+
]),
|
|
182
|
+
_: 1
|
|
183
|
+
})
|
|
184
|
+
], 8, _e),
|
|
185
|
+
e.downloadHref ? (t(), p("a", {
|
|
186
|
+
key: 0,
|
|
187
|
+
href: e.downloadHref,
|
|
188
|
+
download: e.name,
|
|
189
|
+
class: "nmorph-audio-preview__action-link",
|
|
190
|
+
"aria-label": `Download ${e.name || "audio"}`,
|
|
191
|
+
onClick: F
|
|
192
|
+
}, [
|
|
193
|
+
s(r(w), { size: "small" }, {
|
|
194
|
+
default: m(() => [
|
|
195
|
+
s(r(ne))
|
|
196
|
+
]),
|
|
197
|
+
_: 1
|
|
198
|
+
})
|
|
199
|
+
], 8, he)) : H("", !0)
|
|
200
|
+
])
|
|
201
|
+
])) : H("", !0)
|
|
202
|
+
], 6));
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
export {
|
|
206
|
+
Me as default
|
|
207
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.nmorph-emoji-picker{--nmorph-emoji-picker-width: 300px;--nmorph-emoji-picker-height: 260px;--nmorph-emoji-picker-columns: 8;--nmorph-emoji-picker-cell-size: 32px;box-sizing:border-box;width:min(100%,var(--nmorph-emoji-picker-width));min-width:0;color:var(--nmorph-text-color);font:inherit}.nmorph-emoji-picker .nmorph-emoji-picker__compact,.nmorph-emoji-picker .nmorph-emoji-picker__panel{box-sizing:border-box;width:100%;background:var(--nmorph-main-color);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset)}.nmorph-emoji-picker .nmorph-emoji-picker__compact{display:flex;gap:var(--indentation-02);align-items:center;min-height:48px;padding:var(--indentation-02)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-list{display:flex;flex:1 1 auto;gap:4px;min-width:0;overflow:auto hidden;scrollbar-width:thin}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button,.nmorph-emoji-picker .nmorph-emoji-picker__category,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{margin:0;color:inherit;font:inherit;background:transparent;border:0;box-shadow:none;cursor:pointer;appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__category:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:disabled{cursor:not-allowed;opacity:.5}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:focus,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button:focus,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button:focus,.nmorph-emoji-picker .nmorph-emoji-picker__category:focus,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:focus{outline:none}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__category:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:focus-visible{box-shadow:var(--nmorph-shadow-inset),0 0 0 1px var(--nmorph-accent-color)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{display:inline-flex;flex:0 0 var(--nmorph-emoji-picker-cell-size);justify-content:center;align-items:center;width:var(--nmorph-emoji-picker-cell-size);height:var(--nmorph-emoji-picker-cell-size);padding:0;border-radius:var(--default-border-radius)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{font-size:20px;line-height:1}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__emoji:hover:not(:disabled){background:color-mix(in srgb,var(--nmorph-accent-color) 14%,transparent)}.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button{color:var(--nmorph-semi-contrast-text-color);--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__expand-button:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button:hover:not(:disabled){color:var(--nmorph-accent-color);background:color-mix(in srgb,var(--nmorph-accent-color) 10%,transparent)}.nmorph-emoji-picker .nmorph-emoji-picker__panel{display:flex;flex-direction:column;height:var(--nmorph-emoji-picker-height);min-height:180px;max-height:min(60vh,var(--nmorph-emoji-picker-height));padding:var(--indentation-02);overflow:hidden}.nmorph-emoji-picker .nmorph-emoji-picker__toolbar{display:flex;flex:0 0 auto;gap:var(--indentation-02);align-items:center;min-width:0}.nmorph-emoji-picker .nmorph-emoji-picker__search{display:flex;flex:1 1 auto;gap:6px;align-items:center;min-width:0;height:34px;padding:0 10px;color:var(--nmorph-semi-contrast-text-color);background:color-mix(in srgb,var(--nmorph-text-color) 5%,transparent);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset);--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__search-input{flex:1 1 auto;min-width:0;padding:0;color:var(--nmorph-text-color);font:inherit;background:transparent;border:0;outline:none;appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__search-input::placeholder{color:var(--nmorph-placeholder-text-color)}.nmorph-emoji-picker .nmorph-emoji-picker__search-input::-webkit-search-cancel-button{appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__categories{display:flex;flex:0 0 auto;gap:4px;margin:var(--indentation-02) 0;overflow:auto hidden;scrollbar-width:thin}.nmorph-emoji-picker .nmorph-emoji-picker__category{flex:0 0 auto;max-width:120px;height:28px;padding:0 10px;overflow:hidden;color:var(--nmorph-semi-contrast-text-color);font-size:var(--font-size-extra-small);line-height:var(--line-height-regular);white-space:nowrap;text-overflow:ellipsis;border-radius:var(--default-border-radius)}.nmorph-emoji-picker .nmorph-emoji-picker__category:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__category.nmorph-emoji-picker__category--active{color:var(--nmorph-focus-text-color);background:var(--nmorph-accent-color)}.nmorph-emoji-picker .nmorph-emoji-picker__body{flex:1 1 auto;min-height:0;padding:2px;overflow:hidden auto;scrollbar-gutter:stable}.nmorph-emoji-picker .nmorph-emoji-picker__section{display:grid;gap:4px}.nmorph-emoji-picker .nmorph-emoji-picker__section+.nmorph-emoji-picker__section{margin-top:var(--indentation-02)}.nmorph-emoji-picker .nmorph-emoji-picker__section-title{padding:0 4px;color:var(--nmorph-semi-contrast-text-color);font-weight:600;font-size:var(--font-size-extra-small);line-height:var(--line-height-regular)}.nmorph-emoji-picker .nmorph-emoji-picker__grid{display:grid;grid-template-columns:repeat(var(--nmorph-emoji-picker-columns),minmax(0,1fr));gap:2px}.nmorph-emoji-picker .nmorph-emoji-picker__emoji{width:100%;min-width:0}.nmorph-emoji-picker .nmorph-emoji-picker__emoji-symbol{display:block;line-height:1}.nmorph-emoji-picker .nmorph-emoji-picker__empty{display:grid;gap:var(--indentation-02);place-items:center;min-height:100%;padding:var(--indentation-04);color:var(--nmorph-semi-contrast-text-color);text-align:center;--color: currentColor}.nmorph-emoji-picker.nmorph-emoji-picker--disabled{opacity:.65}
|