@1024pix/epreuves-components 0.4.1 → 0.5.0

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.
@@ -1,43 +0,0 @@
1
- import { d as o, r as l, c as n, o as a, n as p, a as t, b as c, F as u, e as f, f as m, _ as g, g as _ } from "../_plugin-vue_export-helper-ne_y2ta8.js";
2
- const y = { class: "card-inner" }, v = /* @__PURE__ */ o({
3
- __name: "CarteARetourner",
4
- props: {
5
- card: {}
6
- },
7
- setup(d) {
8
- const e = l(!1);
9
- return (s, r) => (a(), n("div", {
10
- class: p(["card", { flipped: e.value }]),
11
- onClick: r[0] || (r[0] = (i) => e.value = !e.value)
12
- }, [
13
- t("div", y, [
14
- t("div", {
15
- class: "card-face card-front",
16
- style: c({ backgroundImage: `url('${s.card.frontImageUrl}')` })
17
- }, null, 4),
18
- t("div", {
19
- class: "card-face card-back",
20
- style: c({ backgroundImage: `url('${s.card.backImageUrl}')` })
21
- }, null, 4)
22
- ])
23
- ], 2));
24
- }
25
- }), b = /* @__PURE__ */ o({
26
- __name: "CartesARetourner.ce",
27
- props: {
28
- cards: { type: Array },
29
- cardsPerLine: { type: Number }
30
- },
31
- setup(d) {
32
- return (e, s) => (a(), n("div", {
33
- class: "container",
34
- style: c({ "--cards-per-line": e.cardsPerLine })
35
- }, [
36
- (a(!0), n(u, null, f(e.cards, (r, i) => (a(), m(v, {
37
- key: i,
38
- card: r
39
- }, null, 8, ["card"]))), 128))
40
- ], 4));
41
- }
42
- }), k = ".container{display:grid;grid-template-columns:repeat(var(--cards-per-line),1fr);gap:20px;justify-items:center}.card{width:150px;height:150px;perspective:1000px;cursor:pointer}.card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s}.card.flipped .card-inner{transform:rotateY(180deg)}.card-face{width:100%;height:100%;position:absolute;backface-visibility:hidden;display:flex;justify-content:center;align-items:center;font-size:24px;border-radius:10px;background-size:cover}.card-back{transform:rotateY(180deg)}", h = /* @__PURE__ */ g(b, [["styles", [k]]]);
43
- window.customElements.define("cartes-a-retourner", _(h));
@@ -1,95 +0,0 @@
1
- import { _ as x, c as i, o as n, d as b, r as S, h as v, i as A, n as h, j as u, a as p, k as y, t as _, l as N, F as f, e as k, f as $, g as M } from "../_plugin-vue_export-helper-ne_y2ta8.js";
2
- const C = {}, B = { class: "loader" };
3
- function V(t, s) {
4
- return n(), i("div", B);
5
- }
6
- const E = /* @__PURE__ */ x(C, [["render", V]]), F = ["part"], z = {
7
- key: 1,
8
- class: "message__loader message__content",
9
- "aria-hidden": "true"
10
- }, L = ["part"], T = { key: 0 }, j = /* @__PURE__ */ b({
11
- __name: "Message",
12
- props: {
13
- displaySender: { type: Boolean, default: !0 },
14
- message: {},
15
- startAnimation: {},
16
- animationDuration: {},
17
- loadingDuration: {}
18
- },
19
- setup(t) {
20
- const s = S("hidden"), m = v(() => t.message.content.split(`
21
- `));
22
- function r(e) {
23
- return new Promise((a) => setTimeout(a, e));
24
- }
25
- return A(async () => {
26
- await r(t.startAnimation), s.value = "loading", await r(t.loadingDuration), s.value = "visible", await r(t.animationDuration);
27
- }), (e, a) => (n(), i("div", {
28
- class: h(["message", [
29
- `message--${e.message.direction}`,
30
- { "hidden-state": s.value === "hidden" }
31
- ]])
32
- }, [
33
- e.displaySender ? (n(), i("p", {
34
- key: 0,
35
- class: "message__sender",
36
- part: `sender ${e.message.direction}`
37
- }, [
38
- a[0] || (a[0] = p("span", { class: "sr-only" }, "Message de ", -1)),
39
- y(_(e.message.userName), 1)
40
- ], 8, F)) : u("", !0),
41
- s.value === "loading" ? (n(), i("div", z, [
42
- N(E)
43
- ])) : u("", !0),
44
- p("p", {
45
- class: h(["message__content", { "hidden-state": s.value !== "visible" }]),
46
- part: `message ${e.message.direction}`
47
- }, [
48
- (n(!0), i(f, null, k(m.value, (d, o) => (n(), i(f, { key: o }, [
49
- o > 0 ? (n(), i("br", T)) : u("", !0),
50
- y(" " + _(d), 1)
51
- ], 64))), 128))
52
- ], 10, L)
53
- ], 2));
54
- }
55
- }), P = { part: "conversation" }, q = { class: "sr-only" }, G = /* @__PURE__ */ b({
56
- __name: "MessageConversation.ce",
57
- props: {
58
- title: { default: "Conversation par messages", type: String },
59
- messages: { type: Array },
60
- animationSpeed: { default: 20, type: Number }
61
- },
62
- setup(t) {
63
- const s = 50 * t.animationSpeed, m = v(
64
- () => t.messages.reduce(
65
- (e, a, d) => {
66
- const o = r(a);
67
- if (d === 0)
68
- return [{ message: a, displaySender: !0, startAnimation: 0, animationDuration: o }];
69
- const {
70
- message: l,
71
- startAnimation: c,
72
- animationDuration: g
73
- } = e.at(-1), w = a.direction !== l.direction || a.userName !== l.userName, D = c + g + s;
74
- return [...e, { message: a, displaySender: w, startAnimation: D, animationDuration: o }];
75
- },
76
- []
77
- )
78
- );
79
- function r(e) {
80
- return e.content.length * t.animationSpeed;
81
- }
82
- return (e, a) => (n(), i("figure", P, [
83
- p("figcaption", q, _(e.title), 1),
84
- (n(!0), i(f, null, k(m.value, ({ message: d, displaySender: o, startAnimation: l, animationDuration: c }, g) => (n(), $(j, {
85
- message: d,
86
- "start-animation": l,
87
- "animation-duration": c,
88
- "loading-duration": s,
89
- "display-sender": o,
90
- key: g
91
- }, null, 8, ["message", "start-animation", "animation-duration", "display-sender"]))), 128))
92
- ]));
93
- }
94
- }), H = "figure{background-color:#fff;border-radius:16px;display:flex;flex-direction:column;gap:8px;margin:0;padding:16px}.message{max-width:80%;position:relative}.message--incoming{align-self:start}.message--incoming .message__sender{padding-left:10px}.message--incoming .message__loader{left:10px}.message--incoming .message__content{background-color:#e8e8e8}.message--outgoing{align-self:end}.message--outgoing .message__sender{padding-right:10px;text-align:right}.message--outgoing .message__loader{right:10px}.message--outgoing .message__content{background-color:#d1eaff}.message__sender{color:#444;font-size:.8rem;font-weight:700;margin:0}.message__loader{position:absolute;width:24px}.message__content{border-radius:16px;margin:0;padding:10px 14px}.message__content:not(.hidden-state){animation:fade .3s ease-in-out both}.loader{width:8px;aspect-ratio:1;border-radius:50%;animation:l5 1s infinite linear alternate;transform:translate(100%)}.hidden-state{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes l5{0%{box-shadow:13px 0 #000,-13px 0 #0002;background:#000}33%{box-shadow:13px 0 #000,-13px 0 #0002;background:#0002}66%{box-shadow:13px 0 #0002,-13px 0 #000;background:#0002}to{box-shadow:13px 0 #0002,-13px 0 #000;background:#000}}@media (prefers-reduced-motion: reduce){.message__content:not(.hidden-state){animation:none}.loader,.message__loader{display:none}.hidden-state{visibility:visible}}", I = /* @__PURE__ */ x(G, [["styles", [H]]]);
95
- window.customElements.define("message-conversation", M(I));
@@ -1,97 +0,0 @@
1
- import { d as w, r as C, w as b, c as l, o as t, m as f, p as h, n as x, a as k, q as y, t as v, h as g, s as _, F as q, e as $, f as P, _ as B, g as N } from "../_plugin-vue_export-helper-ne_y2ta8.js";
2
- function z(o, s = S) {
3
- const a = [...o];
4
- for (let c = a.length - 1; c > 0; c--) {
5
- const e = s() % (c + 1);
6
- [a[c], a[e]] = [a[e], a[c]];
7
- }
8
- return a;
9
- }
10
- function S() {
11
- return Math.floor(Math.random() * 2 ** 32);
12
- }
13
- const L = ["aria-checked", "tabindex"], E = { key: 0 }, j = /* @__PURE__ */ w({
14
- __name: "QCUChoice",
15
- props: {
16
- choice: {},
17
- maxChoicesPerLine: {},
18
- imageClass: {},
19
- nameClass: {},
20
- checked: { type: Boolean },
21
- focusable: { type: Boolean }
22
- },
23
- emits: ["check", "checkNext", "checkPrevious"],
24
- setup(o) {
25
- const s = o, a = C();
26
- b(() => {
27
- var e;
28
- s.checked && ((e = a.value) == null || e.focus());
29
- });
30
- const c = `qcu-image-choice-${(s.choice.response ?? s.choice.name).replace(/[^\w\-_:.]/g, "")}`;
31
- return (e, i) => (t(), l("li", {
32
- ref_key: "el",
33
- ref: a,
34
- role: "radio",
35
- class: x(["qcu-image__choice", `qcu-image__choice--max${s.maxChoicesPerLine}`]),
36
- "aria-labelledby": c,
37
- "aria-checked": e.checked,
38
- tabindex: e.focusable ? 0 : -1,
39
- onClick: i[0] || (i[0] = h((r) => e.$emit("check"), ["stop"])),
40
- onKeydown: [
41
- i[1] || (i[1] = f(h((r) => e.$emit("check"), ["stop", "prevent"]), ["enter", "space"])),
42
- i[2] || (i[2] = f(h((r) => e.$emit("checkPrevious"), ["stop", "prevent"]), ["up", "left"])),
43
- i[3] || (i[3] = f(h((r) => e.$emit("checkNext"), ["stop", "prevent"]), ["down", "right"]))
44
- ]
45
- }, [
46
- e.choice.image ? (t(), l("figure", E, [
47
- k("img", y(e.choice.image, {
48
- class: e.imageClass,
49
- alt: ""
50
- }), null, 16),
51
- k("figcaption", {
52
- class: x(e.nameClass),
53
- id: c
54
- }, v(e.choice.name), 3)
55
- ])) : (t(), l("span", {
56
- key: 1,
57
- id: c
58
- }, v(e.choice.name), 1))
59
- ], 42, L));
60
- }
61
- }), M = ["aria-label"], Q = /* @__PURE__ */ w({
62
- __name: "QCUImage.ce",
63
- props: {
64
- choices: { type: Array },
65
- maxChoicesPerLine: { default: 5, type: Number },
66
- name: { type: String },
67
- hideChoicesName: { type: Boolean },
68
- orderChoices: { type: Boolean },
69
- imageChoicesSize: { default: "icon", type: String }
70
- },
71
- emits: ["answer"],
72
- setup(o, { emit: s }) {
73
- const a = s, c = g(() => o.hideChoicesName ? "sr-only" : ""), e = g(() => o.orderChoices ? o.choices : z(o.choices)), i = _(), r = g(() => i.value ?? e.value[0]);
74
- function u(n) {
75
- n === -1 ? i.value = e.value[e.value.length - 1] : n === e.value.length ? i.value = e.value[0] : i.value = e.value[n], a("answer", i.value.response ?? i.value.name);
76
- }
77
- return (n, F) => (t(), l("ul", {
78
- role: "radiogroup",
79
- class: "qcu-image",
80
- "aria-label": n.name
81
- }, [
82
- (t(!0), l(q, null, $(e.value, (d, m) => (t(), P(j, {
83
- choice: d,
84
- "max-choices-per-line": n.maxChoicesPerLine,
85
- key: m,
86
- "name-class": c.value,
87
- "image-class": o.imageChoicesSize,
88
- checked: d === i.value,
89
- focusable: d === r.value,
90
- onCheck: (p) => u(m),
91
- onCheckNext: (p) => u(m + 1),
92
- onCheckPrevious: (p) => u(m - 1)
93
- }, null, 8, ["choice", "max-choices-per-line", "name-class", "image-class", "checked", "focusable", "onCheck", "onCheckNext", "onCheckPrevious"]))), 128))
94
- ], 8, M));
95
- }
96
- }), U = '*{box-sizing:border-box}ul,li{padding:0;margin:0}li{list-style:none}.qcu-image{display:flex;width:100%;flex-wrap:wrap;justify-content:space-around;font-size:110%;font-family:Open Sans,Arial,sans-serif}.qcu-image__choice{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;margin:1em;border:solid 2px #c1c7d0;border-radius:10px;background:#fff;width:calc(20% - 2em);min-width:120px}.qcu-image__choice--max4{width:calc(25% - 2em);min-width:175px}.qcu-image__choice--max3{width:calc(33% - 2em)}.qcu-image__choice--max2{width:calc(50% - 2em);min-width:300px}.qcu-image__choice--max1{width:calc(100% - 4em);min-width:300px}.qcu-image__choice:hover{cursor:pointer;box-shadow:0 3px 10px #0000001a;transform:scale(1.04);transition:transform ease-in .1s}.qcu-image__choice:focus{outline:none;box-shadow:5px 5px #ffbe00,-5px 5px #ffbe00,5px -5px #ffbe00,-5px -5px #ffbe00}.qcu-image__choice[aria-checked=true]{border-color:#3d68ff}.qcu-image__choice[aria-checked=true]:after{content:"";position:absolute;width:100%;height:100%;background:#3d68ff4d;border-radius:10px;z-index:3}.qcu-image__choice figure{width:100%;padding:0 10px;margin:3px;text-align:center}.qcu-image__choice figure img{max-width:100%;height:auto}.qcu-image__choice figure img.icon{max-height:100px;width:auto}.qcu-image__choice figure img.medium{max-width:50%;height:auto}.qcu-image__choice figure figcaption{margin:1ex}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}', A = /* @__PURE__ */ B(Q, [["styles", [U]]]);
97
- window.customElements.define("qcu-image", N(A));