@huyooo/ui 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/{AuthkitAuthModal-cEi5Hm14.js → AuthkitAuthModal-MWWzynTx.js} +133 -156
  2. package/dist/{AuthkitAuthorize-DksJZktr.js → AuthkitAuthorize-D3vma2FV.js} +9 -12
  3. package/dist/{Clipboard-CGm0G1dN.js → Clipboard-Bful1lNJ.js} +1 -1
  4. package/dist/CustomTable-B8i1SbFB.js +202 -0
  5. package/dist/{FeedbackItem-Day3rfSw.js → FeedbackItem-C1TqPuuy.js} +3 -3
  6. package/dist/{FeedbackModal-CsRXm-MY.js → FeedbackModal-CdBaCw5j.js} +20 -24
  7. package/dist/{LandingPageSectionTabs-DPTZIwiJ.js → LandingPageSectionTabs-uO4kXpj7.js} +407 -420
  8. package/dist/{MessageHandle-DqH_478k.js → MessageHandle-JzX9UY1a.js} +19 -28
  9. package/dist/{PaySubscriptions-Dp8y1fdJ.js → PaySubscriptions-Bak0mpKh.js} +10 -10
  10. package/dist/{ReferrerReferees-xIXZglpy.js → ReferrerReferees-Cuw4uhVu.js} +2 -2
  11. package/dist/{Upload.vue_vue_type_script_setup_true_lang-CxGZSDoo.js → Upload.vue_vue_type_script_setup_true_lang-DQPtXtJ0.js} +2 -2
  12. package/dist/{UserPanel-C1NGdsFk.js → UserPanel-BBB9cA2b.js} +17 -19
  13. package/dist/{WidthContainer-C30YFs9X.js → WidthContainer-Co60dOmv.js} +4 -4
  14. package/dist/authkit.js +2 -2
  15. package/dist/common.js +2 -2
  16. package/dist/components/PrivateCom/useSEO.d.ts +71 -0
  17. package/dist/composables.js +2 -2
  18. package/dist/feedback.js +3 -3
  19. package/dist/index-Bb-d5pBq.js +1167 -0
  20. package/dist/index.js +226 -226
  21. package/dist/landingPage.js +1 -1
  22. package/dist/message.js +1 -1
  23. package/dist/pay.js +1 -1
  24. package/dist/referrer.js +1 -1
  25. package/dist/style.css +1 -1
  26. package/dist/upload.js +2 -2
  27. package/dist/{useRoutePermission-Uxu5S3m1.js → useRoutePermission-DWJ-2G10.js} +2 -2
  28. package/dist/{useUploadCos-DNKp_9xt.js → useUploadCos-BdIk3m1E.js} +1 -1
  29. package/dist/user.js +1 -1
  30. package/package.json +2 -1
  31. package/dist/CustomTable-kfI18phy.js +0 -1359
  32. package/dist/utils/landingPage.d.ts +0 -1
  33. /package/dist/{index-DaMA6jEr.js → _commonjsHelpers-DaMA6jEr.js} +0 -0
@@ -237,10 +237,9 @@ const ie = /* @__PURE__ */ b({
237
237
  type: "text",
238
238
  onClick: q((h) => n(s, f), ["stop"])
239
239
  }, {
240
- default: y(() => t[1] || (t[1] = [N("查看")])),
241
- _: 2,
242
- __: [1]
243
- }, 1032, ["onClick"])) : _("", !0)])]), v(u(J), {
240
+ default: y(() => [...t[1] || (t[1] = [N("查看", -1)])]),
241
+ _: 1
242
+ }, 8, ["onClick"])) : _("", !0)])]), v(u(J), {
244
243
  style: {
245
244
  margin: "0px"
246
245
  }
@@ -293,17 +292,15 @@ const ie = /* @__PURE__ */ b({
293
292
  },
294
293
  onClick: c
295
294
  }, {
296
- default: y(() => m[0] || (m[0] = [N("功能变更")])),
297
- _: 1,
298
- __: [0]
295
+ default: y(() => [...m[0] || (m[0] = [N("功能变更", -1)])]),
296
+ _: 1
299
297
  }), v(u(x), {
300
298
  style: {
301
299
  padding: "0px"
302
300
  }
303
301
  }, {
304
- default: y(() => m[1] || (m[1] = [N("详情")])),
305
- _: 1,
306
- __: [1]
302
+ default: y(() => [...m[1] || (m[1] = [N("详情", -1)])]),
303
+ _: 1
307
304
  })]),
308
305
  _: 1
309
306
  })), i.value ? (l(), p(B, {
@@ -403,17 +400,15 @@ const xe = /* @__PURE__ */ b({
403
400
  },
404
401
  onClick: c
405
402
  }, {
406
- default: y(() => m[0] || (m[0] = [N("活动通知")])),
407
- _: 1,
408
- __: [0]
403
+ default: y(() => [...m[0] || (m[0] = [N("活动通知", -1)])]),
404
+ _: 1
409
405
  }), v(u(x), {
410
406
  style: {
411
407
  padding: "0px"
412
408
  }
413
409
  }, {
414
- default: y(() => m[1] || (m[1] = [N("详情")])),
415
- _: 1,
416
- __: [1]
410
+ default: y(() => [...m[1] || (m[1] = [N("详情", -1)])]),
411
+ _: 1
417
412
  })]),
418
413
  _: 1
419
414
  })), i.value ? (l(), p(B, {
@@ -546,17 +541,15 @@ const xe = /* @__PURE__ */ b({
546
541
  },
547
542
  onClick: u(s)
548
543
  }, {
549
- default: y(() => k[1] || (k[1] = [N("消息通知")])),
550
- _: 1,
551
- __: [1]
544
+ default: y(() => [...k[1] || (k[1] = [N("消息通知", -1)])]),
545
+ _: 1
552
546
  }, 8, ["onClick"]), v(u(x), {
553
547
  style: {
554
548
  padding: "0px"
555
549
  }
556
550
  }, {
557
- default: y(() => k[2] || (k[2] = [N("详情")])),
558
- _: 1,
559
- __: [2]
551
+ default: y(() => [...k[2] || (k[2] = [N("详情", -1)])]),
552
+ _: 1
560
553
  })]),
561
554
  _: 1
562
555
  })), u(i) ? (l(), p(Ue, {
@@ -662,17 +655,15 @@ const Ke = /* @__PURE__ */ b({
662
655
  },
663
656
  onClick: c
664
657
  }, {
665
- default: y(() => m[0] || (m[0] = [N("公告")])),
666
- _: 1,
667
- __: [0]
658
+ default: y(() => [...m[0] || (m[0] = [N("公告", -1)])]),
659
+ _: 1
668
660
  }), v(u(x), {
669
661
  style: {
670
662
  padding: "0px"
671
663
  }
672
664
  }, {
673
- default: y(() => m[1] || (m[1] = [N("详情")])),
674
- _: 1,
675
- __: [1]
665
+ default: y(() => [...m[1] || (m[1] = [N("详情", -1)])]),
666
+ _: 1
676
667
  })]),
677
668
  _: 1
678
669
  })), o.value ? (l(), p(B, {
@@ -1,14 +1,15 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
3
  import { g as _ } from "./index-DZIhLe1R.js";
4
- import "./index-DaMA6jEr.js";
4
+ /* empty css */
5
5
  /* empty css */
6
6
  import { defineComponent as D, ref as U, createBlock as B, openBlock as L, unref as a, isRef as M, withCtx as o, createElementVNode as d, createVNode as r, createTextVNode as u, toDisplayString as n } from "vue";
7
7
  import { Modal as V, Popconfirm as $, Button as E, Tag as g } from "@arco-design/web-vue";
8
8
  import { api as x } from "@huyooo/api";
9
9
  import { u as H } from "./useAuthkitCreateAndUpdate-BpPW409v.js";
10
10
  import { u as j } from "./useTableHandle-DKUIdSSh.js";
11
- import { C as q, f as y } from "./CustomTable-kfI18phy.js";
11
+ import { f as y } from "./index-Bb-d5pBq.js";
12
+ import { C as q } from "./CustomTable-B8i1SbFB.js";
12
13
  import { _ as F } from "./_plugin-vue_export-helper-CHgC5LLL.js";
13
14
  function G(m) {
14
15
  return x({
@@ -194,7 +195,7 @@ const K = [{
194
195
  width: "80%",
195
196
  onCancel: a(k)
196
197
  }, {
197
- title: o(() => i[1] || (i[1] = [u(" 订阅信息 ")])),
198
+ title: o(() => [...i[1] || (i[1] = [u(" 订阅信息 ", -1)])]),
198
199
  default: o(() => [d("div", X, [r(q, {
199
200
  columns: A,
200
201
  data: a(b),
@@ -261,18 +262,17 @@ const K = [{
261
262
  type: "text",
262
263
  status: "danger"
263
264
  }, {
264
- default: o(() => i[2] || (i[2] = [u(" 取消订单 ")])),
265
- _: 1,
266
- __: [2]
265
+ default: o(() => [...i[2] || (i[2] = [u(" 取消订单 ", -1)])]),
266
+ _: 1
267
267
  })]),
268
- _: 2
269
- }, 1032, ["onOk"])]),
268
+ _: 1
269
+ }, 8, ["onOk"])]),
270
270
  _: 1
271
271
  }, 8, ["data", "loading", "pagination"])])]),
272
272
  _: 1
273
273
  }, 8, ["visible", "onCancel"]));
274
274
  }
275
- }), gt = /* @__PURE__ */ F(at, [["__scopeId", "data-v-8d63590c"]]);
275
+ }), yt = /* @__PURE__ */ F(at, [["__scopeId", "data-v-8d63590c"]]);
276
276
  export {
277
- gt as S
277
+ yt as S
278
278
  };
@@ -5,8 +5,8 @@ import { defineComponent as A, ref as d, createBlock as v, openBlock as g, unref
5
5
  import { Modal as U } from "@arco-design/web-vue";
6
6
  import { api as y } from "@huyooo/api";
7
7
  import { u as B } from "./useTableHandle-DKUIdSSh.js";
8
- import { C as D } from "./CustomTable-kfI18phy.js";
9
- import { C as E } from "./Clipboard-CGm0G1dN.js";
8
+ import { C as D } from "./CustomTable-B8i1SbFB.js";
9
+ import { C as E } from "./Clipboard-Bful1lNJ.js";
10
10
  import { a as H } from "./useAuthkitUsersProfile-D2UZf7n0.js";
11
11
  import { _ as M } from "./_plugin-vue_export-helper-CHgC5LLL.js";
12
12
  function $(f) {
@@ -1,11 +1,11 @@
1
1
  /* empty css */
2
2
  import { g as u } from "./index-DZIhLe1R.js";
3
- import "./index-DaMA6jEr.js";
3
+ /* empty css */
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import { defineComponent as q, createBlock as y, openBlock as F, unref as S, mergeProps as h, createSlots as C, withCtx as l, renderSlot as p } from "vue";
7
7
  import { Upload as I } from "@arco-design/web-vue";
8
- import { u as _ } from "./useUploadCos-DNKp_9xt.js";
8
+ import { u as _ } from "./useUploadCos-BdIk3m1E.js";
9
9
  const N = /* @__PURE__ */ q({
10
10
  __name: "Upload",
11
11
  props: {
@@ -1,17 +1,17 @@
1
1
  /* empty css */
2
- import "./index-DaMA6jEr.js";
2
+ /* empty css */
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  import { defineComponent as S, createElementBlock as v, openBlock as u, normalizeStyle as q, normalizeClass as E, createElementVNode as f, computed as M, createBlock as g, createCommentVNode as D, createVNode as i, unref as n, withCtx as a, createTextVNode as m, toDisplayString as C, mergeModels as A, useModel as K, renderSlot as Se, ref as d, Fragment as be } from "vue";
6
6
  import { Tag as Ce, Button as T, Avatar as W, Dropdown as Ie, Divider as X, Doption as _ } from "@arco-design/web-vue";
7
- import { S as we } from "./PaySubscriptions-Dp8y1fdJ.js";
8
- import { R as $e } from "./ReferrerReferees-xIXZglpy.js";
7
+ import { S as we } from "./PaySubscriptions-Bak0mpKh.js";
8
+ import { R as $e } from "./ReferrerReferees-Cuw4uhVu.js";
9
9
  import { a as Y, u as he } from "./useAuthkitUsersProfile-D2UZf7n0.js";
10
10
  import { a as Ue } from "./AuthkitAuthModal.vue_vue_type_style_index_1_lang-B-QKS_BT.js";
11
11
  import { g as F } from "./index-DZIhLe1R.js";
12
- import { c as xe, A as Be } from "./AuthkitAuthModal-cEi5Hm14.js";
13
- import { d as Me } from "./FeedbackModal-CsRXm-MY.js";
14
- import { M as Ae } from "./MessageHandle-DqH_478k.js";
12
+ import { c as xe, A as Be } from "./AuthkitAuthModal-MWWzynTx.js";
13
+ import { d as Me } from "./FeedbackModal-CdBaCw5j.js";
14
+ import { M as Ae } from "./MessageHandle-JzX9UY1a.js";
15
15
  /* empty css */
16
16
  import { _ as h } from "./_plugin-vue_export-helper-CHgC5LLL.js";
17
17
  /* empty css */
@@ -196,9 +196,8 @@ const Oe = Object.assign(z, {
196
196
  class: "updatePricing",
197
197
  onClick: c
198
198
  }, {
199
- default: a(() => r[1] || (r[1] = [m(" 升级 ")])),
200
- _: 1,
201
- __: [1]
199
+ default: a(() => [...r[1] || (r[1] = [m(" 升级 ", -1)])]),
200
+ _: 1
202
201
  })) : D("", !0)]), f("span", null, "有效期至: " + C(o.expireDate), 1)]));
203
202
  }
204
203
  }), Ee = /* @__PURE__ */ h(qe, [["__scopeId", "data-v-1e32fa72"]]), Ke = {
@@ -341,9 +340,8 @@ const Oe = Object.assign(z, {
341
340
  class: "handle",
342
341
  onClick: r
343
342
  }, {
344
- default: a(() => p[1] || (p[1] = [m(" 登陆 ")])),
345
- _: 1,
346
- __: [1]
343
+ default: a(() => [...p[1] || (p[1] = [m(" 登陆 ", -1)])]),
344
+ _: 1
347
345
  }));
348
346
  }
349
347
  }), it = /* @__PURE__ */ h(rt, [["__scopeId", "data-v-ba98c4bf"]]), st = {
@@ -475,7 +473,7 @@ const Oe = Object.assign(z, {
475
473
  class: "Doption",
476
474
  onClick: fe
477
475
  }, {
478
- icon: a(() => s[1] || (s[1] = [m("消息中心")])),
476
+ icon: a(() => [...s[1] || (s[1] = [m("消息中心", -1)])]),
479
477
  default: a(() => [i(n($))]),
480
478
  _: 1
481
479
  }), i(n(_), {
@@ -483,7 +481,7 @@ const Oe = Object.assign(z, {
483
481
  class: "Doption",
484
482
  onClick: pe
485
483
  }, {
486
- icon: a(() => s[2] || (s[2] = [m("系统设置 ")])),
484
+ icon: a(() => [...s[2] || (s[2] = [m("系统设置 ", -1)])]),
487
485
  default: a(() => [i(n($))]),
488
486
  _: 1
489
487
  }), i(n(_), {
@@ -491,7 +489,7 @@ const Oe = Object.assign(z, {
491
489
  class: "Doption",
492
490
  onClick: me
493
491
  }, {
494
- icon: a(() => s[3] || (s[3] = [m("订阅信息 ")])),
492
+ icon: a(() => [...s[3] || (s[3] = [m("订阅信息 ", -1)])]),
495
493
  default: a(() => [i(n($))]),
496
494
  _: 1
497
495
  }), i(n(_), {
@@ -499,7 +497,7 @@ const Oe = Object.assign(z, {
499
497
  class: "Doption",
500
498
  onClick: ke
501
499
  }, {
502
- icon: a(() => s[4] || (s[4] = [m("系统反馈 ")])),
500
+ icon: a(() => [...s[4] || (s[4] = [m("系统反馈 ", -1)])]),
503
501
  default: a(() => [i(n($))]),
504
502
  _: 1
505
503
  }), i(n(_), {
@@ -507,7 +505,7 @@ const Oe = Object.assign(z, {
507
505
  class: "Doption",
508
506
  onClick: ye
509
507
  }, {
510
- icon: a(() => s[5] || (s[5] = [m("邀请 ")])),
508
+ icon: a(() => [...s[5] || (s[5] = [m("邀请 ", -1)])]),
511
509
  default: a(() => [i(n($))]),
512
510
  _: 1
513
511
  }), i(n(X), {
@@ -519,7 +517,7 @@ const Oe = Object.assign(z, {
519
517
  class: "Doption",
520
518
  onClick: ve
521
519
  }, {
522
- icon: a(() => s[6] || (s[6] = [m("主页 ")])),
520
+ icon: a(() => [...s[6] || (s[6] = [m("主页 ", -1)])]),
523
521
  default: a(() => [i(n(Oe))]),
524
522
  _: 1
525
523
  }), i(n(_), {
@@ -527,7 +525,7 @@ const Oe = Object.assign(z, {
527
525
  class: "Doption",
528
526
  onClick: ge
529
527
  }, {
530
- icon: a(() => s[7] || (s[7] = [m("退出登陆 ")])),
528
+ icon: a(() => [...s[7] || (s[7] = [m("退出登陆 ", -1)])]),
531
529
  default: a(() => [i(n(Re))]),
532
530
  _: 1
533
531
  })]),
@@ -3,10 +3,10 @@ import { _ as l } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  import { Spin as D } from "@arco-design/web-vue";
6
- import { c as E } from "./UserPanel-C1NGdsFk.js";
6
+ import { c as E } from "./UserPanel-BBB9cA2b.js";
7
7
  import { a as K, u as W } from "./AuthkitAuthModal.vue_vue_type_style_index_1_lang-B-QKS_BT.js";
8
8
  import { a as G } from "./useAuthkitUsersProfile-D2UZf7n0.js";
9
- import { u as N, f as O, w as L, a as F } from "./useRoutePermission-Uxu5S3m1.js";
9
+ import { u as N, f as O, w as L, a as F } from "./useRoutePermission-DWJ-2G10.js";
10
10
  import { useRouter as j, useRoute as J } from "vue-router";
11
11
  const Q = {
12
12
  class: "ContentHead"
@@ -98,13 +98,13 @@ const Q = {
98
98
  }]),
99
99
  "aria-label": "切换菜单",
100
100
  onClick: g
101
- }, z[0] || (z[0] = [c("span", {
101
+ }, [...z[0] || (z[0] = [c("span", {
102
102
  class: "hamburger-line"
103
103
  }, null, -1), c("span", {
104
104
  class: "hamburger-line"
105
105
  }, null, -1), c("span", {
106
106
  class: "hamburger-line"
107
- }, null, -1)]), 2)) : p("", !0), a.value ? (t(), n("div", {
107
+ }, null, -1)])], 2)) : p("", !0), a.value ? (t(), n("div", {
108
108
  key: 2,
109
109
  class: "mobile-menu-overlay",
110
110
  onClick: m
package/dist/authkit.js CHANGED
@@ -1,5 +1,5 @@
1
- import { A as a, a as s, c as u, b as A, n as h, E as e, k as r, l as k, _ as o, O as n, f as d, o as p, P as f, j as m, R as P, S, i as g, m as l, d as w, e as U, g as c, h as x } from "./AuthkitAuthModal-cEi5Hm14.js";
2
- import { A as y, a as E } from "./AuthkitAuthorize-DksJZktr.js";
1
+ import { A as a, a as s, c as u, b as A, n as h, E as e, k as r, l as k, _ as o, O as n, f as d, o as p, P as f, j as m, R as P, S, i as g, m as l, d as w, e as U, g as c, h as x } from "./AuthkitAuthModal-MWWzynTx.js";
2
+ import { A as y, a as E } from "./AuthkitAuthorize-D3vma2FV.js";
3
3
  import { u as C, a as R } from "./AuthkitAuthModal.vue_vue_type_style_index_1_lang-B-QKS_BT.js";
4
4
  import { u as b, a as v } from "./useAuthkitUsersProfile-D2UZf7n0.js";
5
5
  import { u as M } from "./useAuthkitCreateAndUpdate-BpPW409v.js";
package/dist/common.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { C as s, a as o } from "./CollapseItem-Cw1vcdLu.js";
2
- import { C as r, D as n, G as l, H as C, a as m, L as p, S as u, W as d } from "./WidthContainer-C30YFs9X.js";
3
- import { C as i, E as x } from "./CustomTable-kfI18phy.js";
2
+ import { C as r, D as n, G as l, H as C, a as m, L as p, S as u, W as d } from "./WidthContainer-Co60dOmv.js";
3
+ import { C as i, E as x } from "./CustomTable-B8i1SbFB.js";
4
4
  import { M, a as g } from "./Menu-BKBnsDJ8.js";
5
5
  export {
6
6
  s as Collapse,
@@ -0,0 +1,71 @@
1
+ interface SEOConfig {
2
+ title?: string;
3
+ description?: string;
4
+ keywords?: string;
5
+ image?: string;
6
+ url?: string;
7
+ type?: 'website' | 'article' | 'product';
8
+ publishedTime?: string;
9
+ modifiedTime?: string;
10
+ author?: string;
11
+ section?: string;
12
+ tags?: string[];
13
+ }
14
+ export declare function useSEO(config: SEOConfig): void;
15
+ export declare const pageSEO: {
16
+ home: {
17
+ title: string;
18
+ description: string;
19
+ keywords: string;
20
+ url: string;
21
+ };
22
+ features: {
23
+ title: string;
24
+ description: string;
25
+ keywords: string;
26
+ url: string;
27
+ };
28
+ download: {
29
+ title: string;
30
+ description: string;
31
+ keywords: string;
32
+ url: string;
33
+ };
34
+ docs: {
35
+ title: string;
36
+ description: string;
37
+ keywords: string;
38
+ url: string;
39
+ };
40
+ pricing: {
41
+ title: string;
42
+ description: string;
43
+ keywords: string;
44
+ url: string;
45
+ };
46
+ about: {
47
+ title: string;
48
+ description: string;
49
+ keywords: string;
50
+ url: string;
51
+ };
52
+ contact: {
53
+ title: string;
54
+ description: string;
55
+ keywords: string;
56
+ url: string;
57
+ };
58
+ introduce: {
59
+ title: string;
60
+ description: string;
61
+ keywords: string;
62
+ url: string;
63
+ };
64
+ error: {
65
+ title: string;
66
+ description: string;
67
+ keywords: string;
68
+ url: string;
69
+ };
70
+ };
71
+ export {};
@@ -5,8 +5,8 @@ import { u as p } from "./useMessageNotifications-BahKMcby.js";
5
5
  import { g as m, s as h } from "./index-DZIhLe1R.js";
6
6
  import { a as d, u as x, b as g } from "./useDownloads-CHe228Vf.js";
7
7
  import { u as k } from "./useTableHandle-DKUIdSSh.js";
8
- import { u as w } from "./useUploadCos-DNKp_9xt.js";
9
- import { f as P, u as U, a as c, w as D } from "./useRoutePermission-Uxu5S3m1.js";
8
+ import { u as w } from "./useUploadCos-BdIk3m1E.js";
9
+ import { f as P, u as U, a as c, w as D } from "./useRoutePermission-DWJ-2G10.js";
10
10
  export {
11
11
  P as findMenuPath,
12
12
  m as globalConfig,
package/dist/feedback.js CHANGED
@@ -1,6 +1,6 @@
1
- import { _ as b, a as s, F as d, b as F, c, d as o, R as t } from "./FeedbackModal-CsRXm-MY.js";
2
- import { C as r } from "./Clipboard-CGm0G1dN.js";
3
- import { F as m, a as n, c as f, b as i, d as p } from "./FeedbackItem-Day3rfSw.js";
1
+ import { _ as b, a as s, F as d, b as F, c, d as o, R as t } from "./FeedbackModal-CdBaCw5j.js";
2
+ import { C as r } from "./Clipboard-Bful1lNJ.js";
3
+ import { F as m, a as n, c as f, b as i, d as p } from "./FeedbackItem-C1TqPuuy.js";
4
4
  export {
5
5
  r as Clipboard,
6
6
  b as FeedbackBubbleEnd,