@opendesign-plus/components 0.0.1-rc.104 → 0.0.1-rc.105

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 (58) hide show
  1. package/dist/chunk-element-plus.cjs.js +1 -1
  2. package/dist/chunk-element-plus.es.js +8 -2
  3. package/dist/components/article-anchor/components/ArticleAnchorPad.vue.d.ts +2 -6
  4. package/dist/components/community-updates/OCommunityUpdates.vue.d.ts +46 -0
  5. package/dist/components/community-updates/OCommunityUpdatesCard.vue.d.ts +7 -0
  6. package/dist/components/community-updates/index.d.ts +91 -0
  7. package/dist/components/community-updates/types.d.ts +36 -0
  8. package/dist/components/doc-layout/ODocLayout.vue.d.ts +8 -4
  9. package/dist/components/doc-layout/index.d.ts +9 -0
  10. package/dist/components/search-doc-result/OSearchDocResult.vue.d.ts +2 -0
  11. package/dist/components/search-doc-result/index.d.ts +6 -0
  12. package/dist/components.cjs.js +4 -4
  13. package/dist/components.css +1 -1
  14. package/dist/components.es.js +1817 -1699
  15. package/dist/index.d.ts +1 -0
  16. package/dist/treeshaking/components/article/OArticleList.vue_vue_type_style_index_0_lang.css +10 -4
  17. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.mjs +2 -2
  18. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue_vue_type_script_setup_true_lang.mjs +1 -1
  19. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue_vue_type_style_index_0_scoped_8190c89e_lang.css +47 -0
  20. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.mjs +2 -2
  21. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue.d.ts +2 -6
  22. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorPad.vue_vue_type_script_setup_true_lang.mjs +10 -18
  23. package/dist/treeshaking/components/article-anchor/components/{ArticleAnchorPad.vue_vue_type_style_index_0_scoped_3c75b66d_lang.css → ArticleAnchorPad.vue_vue_type_style_index_0_scoped_2ae25d23_lang.css} +13 -13
  24. package/dist/treeshaking/components/community-updates/OCommunityUpdates.mjs +6 -0
  25. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue.d.ts +46 -0
  26. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue_vue_type_script_setup_true_lang.mjs +100 -0
  27. package/dist/treeshaking/components/community-updates/OCommunityUpdates.vue_vue_type_style_index_0_scoped_1da301c6_lang.css +107 -0
  28. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.mjs +5 -0
  29. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue.d.ts +7 -0
  30. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue_vue_type_script_setup_true_lang.mjs +49 -0
  31. package/dist/treeshaking/components/community-updates/OCommunityUpdatesCard.vue_vue_type_style_index_0_lang.css +130 -0
  32. package/dist/treeshaking/components/community-updates/index.d.ts +91 -0
  33. package/dist/treeshaking/components/community-updates/index.mjs +10 -0
  34. package/dist/treeshaking/components/community-updates/types.d.ts +36 -0
  35. package/dist/treeshaking/components/cookie-notice/OCookieNotice.mjs +2 -3
  36. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue_vue_type_script_setup_true_lang.mjs +4 -1
  37. package/dist/treeshaking/components/cookie-notice/{OCookieNotice.vue_vue_type_style_index_1_scoped_f4e92a4b_lang.css → OCookieNotice.vue_vue_type_style_index_0_scoped_a7993ee9_lang.css} +112 -97
  38. package/dist/treeshaking/components/doc-layout/ODocLayout.mjs +2 -2
  39. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.d.ts +8 -4
  40. package/dist/treeshaking/components/doc-layout/ODocLayout.vue_vue_type_script_setup_true_lang.mjs +29 -24
  41. package/dist/treeshaking/components/doc-layout/{ODocLayout.vue_vue_type_style_index_0_scoped_966cd0b4_lang.css → ODocLayout.vue_vue_type_style_index_0_scoped_b4aff4ce_lang.css} +66 -46
  42. package/dist/treeshaking/components/doc-layout/index.d.ts +9 -0
  43. package/dist/treeshaking/components/element-plus/OElCookieNotice.mjs +2 -2
  44. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue_vue_type_script_setup_true_lang.mjs +4 -1
  45. package/dist/treeshaking/components/element-plus/{OElCookieNotice.vue_vue_type_style_index_1_scoped_8ed27ecb_lang.css → OElCookieNotice.vue_vue_type_style_index_1_scoped_d9e2bcf9_lang.css} +171 -165
  46. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.mjs +2 -2
  47. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue.d.ts +2 -0
  48. package/dist/treeshaking/components/search-doc-result/OSearchDocResult.vue_vue_type_script_setup_true_lang.mjs +7 -3
  49. package/dist/treeshaking/components/search-doc-result/{OSearchDocResult.vue_vue_type_style_index_0_scoped_25235996_lang.css → OSearchDocResult.vue_vue_type_style_index_0_scoped_9eb9bdd4_lang.css} +31 -31
  50. package/dist/treeshaking/components/search-doc-result/index.d.ts +6 -0
  51. package/dist/treeshaking/components/search-result/OSearchResult.mjs +2 -2
  52. package/dist/treeshaking/components/search-result/OSearchResult.vue_vue_type_script_setup_true_lang.mjs +1 -1
  53. package/dist/treeshaking/components/search-result/{OSearchResult.vue_vue_type_style_index_0_scoped_9d8dd556_lang.css → OSearchResult.vue_vue_type_style_index_0_scoped_a8453c65_lang.css} +30 -30
  54. package/dist/treeshaking/index.d.ts +1 -0
  55. package/dist/treeshaking/index.mjs +2 -1
  56. package/package.json +1 -1
  57. package/dist/treeshaking/components/article-anchor/components/ArticleAnchorMobile.vue_vue_type_style_index_0_scoped_ccc0d33c_lang.css +0 -47
  58. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue_vue_type_style_index_0_lang.css +0 -35
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './components/article-anchor';
5
5
  export * from './components/article-pagination';
6
6
  export * from './components/banner';
7
7
  export * from './components/brand';
8
+ export * from './components/community-updates';
8
9
  export * from './components/config-provider';
9
10
  export * from './components/cookie-notice';
10
11
  export * from './components/doc-layout';
@@ -62,10 +62,6 @@
62
62
  --card-main-padding: var(--o-r-gap-5) var(--o-r-gap-6);
63
63
  height: 100%;
64
64
  }
65
- .o-article-list .article-content .o-card .o-card-main,
66
- .o-article-list .article-content .o-card .o-card-main-wrap {
67
- min-width: 0;
68
- }
69
65
  @media (max-width: 840px) {
70
66
  .o-article-list .article-content .o-card {
71
67
  --card-h-cover-width: 36%;
@@ -79,6 +75,16 @@
79
75
  .o-article-list .article-content .o-card:hover .o-card-title {
80
76
  color: var(--o-color-primary1);
81
77
  }
78
+ .o-article-list .article-content .o-card .o-card-main,
79
+ .o-article-list .article-content .o-card .o-card-main-wrap {
80
+ min-width: 0;
81
+ }
82
+ @media (max-width: 840px) {
83
+ .o-article-list .article-content .o-card .o-card-title {
84
+ font-size: var(--o-r-font_size-h4);
85
+ line-height: var(--o-r-line_height-h4);
86
+ }
87
+ }
82
88
  .o-article-list .article-content .o-card .o-card-cover-img {
83
89
  height: 266px;
84
90
  }
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.mjs";
2
2
  import ArticleAnchorMobile_vue_vue_type_script_setup_true_lang_default from "./ArticleAnchorMobile.vue_vue_type_script_setup_true_lang.mjs";
3
- import './ArticleAnchorMobile.vue_vue_type_style_index_0_scoped_ccc0d33c_lang.css';
3
+ import './ArticleAnchorMobile.vue_vue_type_style_index_0_scoped_8190c89e_lang.css';
4
4
  // src/components/article-anchor/components/ArticleAnchorMobile.vue
5
- var ArticleAnchorMobile_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ArticleAnchorMobile_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ccc0d33c"]]);
5
+ var ArticleAnchorMobile_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ArticleAnchorMobile_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8190c89e"]]);
6
6
  export { ArticleAnchorMobile_default as default };
@@ -22,7 +22,7 @@ var ArticleAnchorMobile_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
22
22
  "update:visible"
23
23
  ],
24
24
  setup(__props, { emit: __emit }) {
25
- useCssVars((_ctx) => ({ "v3bf9ee34": _ctx.radius }));
25
+ useCssVars((_ctx) => ({ "v3d1ce759": _ctx.radius }));
26
26
  const props = __props;
27
27
  const emit = __emit;
28
28
  const visible = computed({
@@ -0,0 +1,47 @@
1
+ .hover-icon-rotate .o-icon[data-v-8190c89e] {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon[data-v-8190c89e] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-article-anchor--mobile[data-v-8190c89e] {
10
+ --o-article-anchor-radius: var(--v3d1ce759);
11
+ }
12
+ .o-article-anchor--mobile__fab[data-v-8190c89e] {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ width: 40px;
17
+ height: 40px;
18
+ border: none;
19
+ cursor: pointer;
20
+ background-color: var(--o-color-fill2);
21
+ border-radius: var(--o-article-anchor-radius);
22
+ box-shadow: var(--o-shadow-2);
23
+ }
24
+ .o-article-anchor--mobile__fab-icon[data-v-8190c89e] {
25
+ font-size: 24px;
26
+ color: var(--o-color-info2);
27
+ line-height: 1;
28
+ }
29
+ .o-article-anchor--mobile__sheet-title[data-v-8190c89e] {
30
+ color: var(--o-color-info1);
31
+ font-weight: 600;
32
+ font-size: 18px;
33
+ line-height: 26px;
34
+ }
35
+ .o-article-anchor--mobile__menu[data-v-8190c89e] {
36
+ --menu-width: 100%;
37
+ }
38
+ .o-article-anchor--mobile__menu-sub[data-v-8190c89e] {
39
+ padding-left: 16px;
40
+ }
41
+ .o-article-anchor--mobile__menu-item[data-v-8190c89e] {
42
+ padding: 12px 16px;
43
+ }
44
+ .o-article-anchor--mobile__menu-subitem[data-v-8190c89e] {
45
+ padding: 12px 16px;
46
+ padding-left: 28px;
47
+ }
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.mjs";
2
2
  import ArticleAnchorPad_vue_vue_type_script_setup_true_lang_default from "./ArticleAnchorPad.vue_vue_type_script_setup_true_lang.mjs";
3
- import './ArticleAnchorPad.vue_vue_type_style_index_0_scoped_3c75b66d_lang.css';
3
+ import './ArticleAnchorPad.vue_vue_type_style_index_0_scoped_2ae25d23_lang.css';
4
4
  // src/components/article-anchor/components/ArticleAnchorPad.vue
5
- var ArticleAnchorPad_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ArticleAnchorPad_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3c75b66d"]]);
5
+ var ArticleAnchorPad_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ArticleAnchorPad_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2ae25d23"]]);
6
6
  export { ArticleAnchorPad_default as default };
@@ -9,9 +9,7 @@ declare function __VLS_template(): {
9
9
  slots: {
10
10
  default?(_: {}): any;
11
11
  };
12
- refs: {
13
- rootRef: HTMLDivElement;
14
- };
12
+ refs: {};
15
13
  rootEl: HTMLDivElement;
16
14
  };
17
15
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
@@ -21,9 +19,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
21
19
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
22
20
  onClose?: (() => any) | undefined;
23
21
  onToggle?: (() => any) | undefined;
24
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
25
- rootRef: HTMLDivElement;
26
- }, HTMLDivElement>;
22
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
27
23
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
28
24
  export default _default;
29
25
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1,17 +1,17 @@
1
1
  import { useI18n } from "../../../i18n/index.mjs";
2
2
  import icon_anchor_default from "../../../_virtual/~icons/components/icon-anchor.mjs";
3
3
  import icon_anchor_expand_default from "../../../_virtual/~icons/components/icon-anchor-expand.mjs";
4
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderSlot, toDisplayString, unref, useCssVars, vShow, withCtx, withDirectives } from "vue";
4
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useCssVars, vShow, withCtx, withDirectives } from "vue";
5
5
  import { OIcon } from "@opensig/opendesign";
6
- import { useEventListener } from "@vueuse/core";
7
6
  // src/components/article-anchor/components/ArticleAnchorPad.vue?vue&type=script&setup=true&lang.ts
8
- var _hoisted_1 = { class: "o-article-anchor--pad__toggle-label" };
9
- var _hoisted_2 = { class: "o-article-anchor--pad__pop" };
10
- var _hoisted_3 = {
7
+ var _hoisted_1 = { class: "o-article-anchor--pad" };
8
+ var _hoisted_2 = { class: "o-article-anchor--pad__toggle-label" };
9
+ var _hoisted_3 = { class: "o-article-anchor--pad__pop" };
10
+ var _hoisted_4 = {
11
11
  key: 0,
12
12
  class: "o-article-anchor--pad__pop-title"
13
13
  };
14
- var _hoisted_4 = { class: "o-article-anchor--pad__pop-title-text" };
14
+ var _hoisted_5 = { class: "o-article-anchor--pad__pop-title-text" };
15
15
  var ArticleAnchorPad_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
16
  __name: "ArticleAnchorPad",
17
17
  props: {
@@ -22,32 +22,24 @@ var ArticleAnchorPad_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
22
22
  },
23
23
  emits: ["toggle", "close"],
24
24
  setup(__props, { emit: __emit }) {
25
- useCssVars((_ctx) => ({ "v8dd14310": _ctx.radius }));
25
+ useCssVars((_ctx) => ({ "dd83a918": _ctx.radius }));
26
26
  const { t } = useI18n();
27
27
  const navTitle = computed(() => t("articleAnchor.navTitle"));
28
28
  const emit = __emit;
29
- const rootRef = ref();
30
- useEventListener(document, "click", (e) => {
31
- if (!rootRef.value?.contains(e.target)) emit("close");
32
- });
33
29
  return (_ctx, _cache) => {
34
- return openBlock(), createElementBlock("div", {
35
- ref_key: "rootRef",
36
- ref: rootRef,
37
- class: "o-article-anchor--pad"
38
- }, [createElementVNode("div", {
30
+ return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", {
39
31
  class: normalizeClass(["o-article-anchor--pad__toggle", { hidden: __props.expanded }]),
40
32
  onClick: _cache[0] || (_cache[0] = ($event) => emit("toggle"))
41
33
  }, [createVNode(unref(OIcon), { class: "o-article-anchor--pad__toggle-icon" }, {
42
34
  default: withCtx(() => [createVNode(unref(icon_anchor_default))]),
43
35
  _: 1
44
- }), createElementVNode("span", _hoisted_1, toDisplayString(navTitle.value), 1)], 2), withDirectives(createElementVNode("div", _hoisted_2, [__props.showTitle ? (openBlock(), createElementBlock("div", _hoisted_3, [createElementVNode("span", _hoisted_4, toDisplayString(__props.title), 1), createVNode(unref(OIcon), {
36
+ }), createElementVNode("span", _hoisted_2, toDisplayString(navTitle.value), 1)], 2), withDirectives(createElementVNode("div", _hoisted_3, [__props.showTitle ? (openBlock(), createElementBlock("div", _hoisted_4, [createElementVNode("span", _hoisted_5, toDisplayString(__props.title), 1), createVNode(unref(OIcon), {
45
37
  class: "o-article-anchor--pad__pop-close",
46
38
  onClick: _cache[1] || (_cache[1] = ($event) => emit("close"))
47
39
  }, {
48
40
  default: withCtx(() => [createVNode(unref(icon_anchor_expand_default))]),
49
41
  _: 1
50
- })])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512), [[vShow, __props.expanded]])], 512);
42
+ })])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512), [[vShow, __props.expanded]])]);
51
43
  };
52
44
  }
53
45
  });
@@ -1,17 +1,17 @@
1
- .hover-icon-rotate .o-icon[data-v-3c75b66d] {
1
+ .hover-icon-rotate .o-icon[data-v-2ae25d23] {
2
2
  transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
3
  }
4
4
  @media (hover: hover) {
5
- .hover-icon-rotate:hover .o-icon[data-v-3c75b66d] {
5
+ .hover-icon-rotate:hover .o-icon[data-v-2ae25d23] {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
- .o-article-anchor--pad[data-v-3c75b66d] {
9
+ .o-article-anchor--pad[data-v-2ae25d23] {
10
10
  position: relative;
11
11
  display: inline-block;
12
- --o-article-anchor-radius: var(--v8dd14310);
12
+ --o-article-anchor-radius: var(--dd83a918);
13
13
  }
14
- .o-article-anchor--pad__toggle[data-v-3c75b66d] {
14
+ .o-article-anchor--pad__toggle[data-v-2ae25d23] {
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  align-items: center;
@@ -25,21 +25,21 @@
25
25
  border-radius: var(--o-article-anchor-radius);
26
26
  box-shadow: var(--o-shadow-2);
27
27
  }
28
- .o-article-anchor--pad__toggle.hidden[data-v-3c75b66d] {
28
+ .o-article-anchor--pad__toggle.hidden[data-v-2ae25d23] {
29
29
  opacity: 0;
30
30
  }
31
- .o-article-anchor--pad__toggle-icon[data-v-3c75b66d] {
31
+ .o-article-anchor--pad__toggle-icon[data-v-2ae25d23] {
32
32
  font-size: 24px;
33
33
  color: var(--o-color-info1);
34
34
  }
35
- .o-article-anchor--pad__toggle-label[data-v-3c75b66d] {
35
+ .o-article-anchor--pad__toggle-label[data-v-2ae25d23] {
36
36
  white-space: nowrap;
37
37
  overflow: hidden;
38
38
  text-overflow: ellipsis;
39
39
  font-size: 10px;
40
40
  line-height: 16px;
41
41
  }
42
- .o-article-anchor--pad__pop[data-v-3c75b66d] {
42
+ .o-article-anchor--pad__pop[data-v-2ae25d23] {
43
43
  position: absolute;
44
44
  top: 0;
45
45
  right: 0;
@@ -50,7 +50,7 @@
50
50
  border-radius: var(--o-article-anchor-radius);
51
51
  box-shadow: var(--o-shadow-2);
52
52
  }
53
- .o-article-anchor--pad__pop-title[data-v-3c75b66d] {
53
+ .o-article-anchor--pad__pop-title[data-v-2ae25d23] {
54
54
  display: flex;
55
55
  align-items: center;
56
56
  gap: 4px;
@@ -60,19 +60,19 @@
60
60
  font-size: 14px;
61
61
  line-height: 22px;
62
62
  }
63
- .o-article-anchor--pad__pop-title .o-article-anchor__icon[data-v-3c75b66d] {
63
+ .o-article-anchor--pad__pop-title .o-article-anchor__icon[data-v-2ae25d23] {
64
64
  font-size: 22px;
65
65
  color: var(--o-color-info1);
66
66
  line-height: 1;
67
67
  flex-shrink: 0;
68
68
  }
69
- .o-article-anchor--pad__pop-title-text[data-v-3c75b66d] {
69
+ .o-article-anchor--pad__pop-title-text[data-v-2ae25d23] {
70
70
  min-width: 0;
71
71
  overflow: hidden;
72
72
  text-overflow: ellipsis;
73
73
  white-space: nowrap;
74
74
  }
75
- .o-article-anchor--pad__pop-close[data-v-3c75b66d] {
75
+ .o-article-anchor--pad__pop-close[data-v-2ae25d23] {
76
76
  margin-left: auto;
77
77
  font-size: 20px;
78
78
  color: var(--o-color-info2);
@@ -0,0 +1,6 @@
1
+ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.mjs";
2
+ import OCommunityUpdates_vue_vue_type_script_setup_true_lang_default from "./OCommunityUpdates.vue_vue_type_script_setup_true_lang.mjs";
3
+ import './OCommunityUpdates.vue_vue_type_style_index_0_scoped_1da301c6_lang.css';
4
+ // src/components/community-updates/OCommunityUpdates.vue
5
+ var OCommunityUpdates_default = /*#__PURE__*/ _plugin_vue_export_helper_default(OCommunityUpdates_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1da301c6"]]);
6
+ export { OCommunityUpdates_default as default };
@@ -0,0 +1,46 @@
1
+ import { CommunityUpdatesItemT, CommunityUpdatesPropsT } from './types';
2
+ type __VLS_Props = CommunityUpdatesPropsT;
3
+ type __VLS_PublicProps = {
4
+ 'activeTab'?: string;
5
+ } & __VLS_Props;
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: Readonly<{
9
+ /** 单个动态卡片自定义渲染(横向滚动布局仍由组件内部处理),插槽参数为当前项数据、索引与当前 Tab key;不传时渲染内置 OCommunityUpdatesCard */
10
+ card?: (props: {
11
+ item: CommunityUpdatesItemT;
12
+ index: number;
13
+ tab: string;
14
+ }) => any;
15
+ }> & {
16
+ /** 单个动态卡片自定义渲染(横向滚动布局仍由组件内部处理),插槽参数为当前项数据、索引与当前 Tab key;不传时渲染内置 OCommunityUpdatesCard */
17
+ card?: (props: {
18
+ item: CommunityUpdatesItemT;
19
+ index: number;
20
+ tab: string;
21
+ }) => any;
22
+ };
23
+ refs: {};
24
+ rootEl: HTMLDivElement;
25
+ };
26
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
28
+ "update:activeTab": (value: string) => any;
29
+ } & {
30
+ "tab-change": (value: string) => any;
31
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
32
+ "onTab-change"?: ((value: string) => any) | undefined;
33
+ "onUpdate:activeTab"?: ((value: string) => any) | undefined;
34
+ }>, {
35
+ data: CommunityUpdatesItemT[] | Record<string, CommunityUpdatesItemT[]>;
36
+ tabs: import('./types').CommunityUpdatesTabT[];
37
+ moreHref: string;
38
+ moreText: string;
39
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
40
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
41
+ export default _default;
42
+ type __VLS_WithTemplateSlots<T, S> = T & {
43
+ new (): {
44
+ $slots: S;
45
+ };
46
+ };
@@ -0,0 +1,100 @@
1
+ import { useI18n } from "../../i18n/index.mjs";
2
+ import icon_chevron_right_default from "../../_virtual/~icons/components/icon-chevron-right.mjs";
3
+ import OCommunityUpdatesCard_default from "./OCommunityUpdatesCard.mjs";
4
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, renderSlot, toDisplayString, unref, useModel, withCtx } from "vue";
5
+ import { OIcon, OLink, OScroller, OTab, OTabPane } from "@opensig/opendesign";
6
+ import { useScreen } from "@opendesign-plus/composables";
7
+ // src/components/community-updates/OCommunityUpdates.vue?vue&type=script&setup=true&lang.ts
8
+ var _hoisted_1 = { class: "o-community-updates" };
9
+ var _hoisted_2 = { class: "o-community-updates__list" };
10
+ var OCommunityUpdates_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
+ __name: "OCommunityUpdates",
12
+ props: /*@__PURE__*/ mergeModels({
13
+ data: { default: () => [] },
14
+ tabs: { default: () => [] },
15
+ activeTab: {},
16
+ moreHref: { default: void 0 },
17
+ moreText: { default: void 0 }
18
+ }, {
19
+ "activeTab": {},
20
+ "activeTabModifiers": {}
21
+ }),
22
+ emits: /*@__PURE__*/ mergeModels(["tab-change"], ["update:activeTab"]),
23
+ setup(__props, { emit: __emit }) {
24
+ const props = __props;
25
+ const emit = __emit;
26
+ const { t } = useI18n();
27
+ const { isPhone } = useScreen();
28
+ const moreTextValue = computed(() => props.moreText ?? t("common.viewMore"));
29
+ const activeTab = useModel(__props, "activeTab");
30
+ const effectiveTab = computed(() => activeTab.value || props.tabs[0]?.key || "");
31
+ const onTabChange = (value) => {
32
+ const key = String(value);
33
+ activeTab.value = key;
34
+ emit("tab-change", key);
35
+ };
36
+ const items = computed(() => {
37
+ if (props.tabs.length && props.data && !Array.isArray(props.data)) return props.data[effectiveTab.value] ?? [];
38
+ return Array.isArray(props.data) ? props.data : [];
39
+ });
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createElementBlock("div", _hoisted_1, [
42
+ __props.tabs.length ? (openBlock(), createBlock(unref(OTab), {
43
+ key: 0,
44
+ class: "o-community-updates__tab",
45
+ variant: "text",
46
+ size: "large",
47
+ line: false,
48
+ "model-value": effectiveTab.value,
49
+ "onUpdate:modelValue": onTabChange
50
+ }, {
51
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab) => {
52
+ return openBlock(), createBlock(unref(OTabPane), {
53
+ key: tab.key,
54
+ value: tab.key,
55
+ label: tab.label
56
+ }, null, 8, ["value", "label"]);
57
+ }), 128))]),
58
+ _: 1
59
+ }, 8, ["model-value"])) : createCommentVNode("", true),
60
+ items.value.length ? (openBlock(), createBlock(unref(OScroller), {
61
+ key: 1,
62
+ class: "o-community-updates__scroller",
63
+ "disabled-y": "",
64
+ "show-type": items.value.length <= 3 || unref(isPhone) ? "never" : "always",
65
+ size: "small",
66
+ "auto-update-on-scroll-size": ""
67
+ }, {
68
+ default: withCtx(() => [createElementVNode("div", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(items.value, (item, index) => {
69
+ return openBlock(), createElementBlock("div", {
70
+ key: item.title,
71
+ class: "o-community-updates__item"
72
+ }, [renderSlot(_ctx.$slots, "card", {
73
+ item,
74
+ index,
75
+ tab: effectiveTab.value
76
+ }, () => [createVNode(OCommunityUpdatesCard_default, { item }, null, 8, ["item"])], true)]);
77
+ }), 128))])]),
78
+ _: 3
79
+ }, 8, ["show-type"])) : createCommentVNode("", true),
80
+ moreTextValue.value ? (openBlock(), createElementBlock("div", {
81
+ key: 2,
82
+ class: normalizeClass(["o-community-updates__more", { le4: items.value.length <= 3 || unref(isPhone) }])
83
+ }, [createVNode(unref(OLink), {
84
+ class: "o-community-updates__more-link",
85
+ href: __props.moreHref,
86
+ target: "_blank",
87
+ "hover-underline": false
88
+ }, {
89
+ suffix: withCtx(() => [createVNode(unref(OIcon), { class: "more-icon" }, {
90
+ default: withCtx(() => [createVNode(unref(icon_chevron_right_default))]),
91
+ _: 1
92
+ })]),
93
+ default: withCtx(() => [createTextVNode(toDisplayString(moreTextValue.value) + " ", 1)]),
94
+ _: 1
95
+ }, 8, ["href"])], 2)) : createCommentVNode("", true)
96
+ ]);
97
+ };
98
+ }
99
+ });
100
+ export { OCommunityUpdates_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,107 @@
1
+ .hover-icon-rotate .o-icon[data-v-1da301c6] {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon[data-v-1da301c6] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-community-updates__tab[data-v-1da301c6] .o-tab-nav-list {
10
+ --tab-nav-gap: 32px;
11
+ }
12
+ @media (max-width: 1680px) {
13
+ .o-community-updates__tab[data-v-1da301c6] .o-tab-nav-list {
14
+ --tab-nav-gap: 24px;
15
+ }
16
+ }
17
+ @media (max-width: 840px) {
18
+ .o-community-updates__tab[data-v-1da301c6] .o-tab-nav-list {
19
+ --tab-nav-gap: 16px;
20
+ }
21
+ }
22
+ .o-community-updates__scroller[data-v-1da301c6] .o-scrollbar {
23
+ --scrollbar-height: 100%;
24
+ }
25
+ .o-community-updates__list[data-v-1da301c6] {
26
+ display: flex;
27
+ align-items: stretch;
28
+ flex-wrap: nowrap;
29
+ gap: var(--grid-column-gutter);
30
+ padding-top: 24px;
31
+ padding-bottom: 32px;
32
+ width: 100%;
33
+ box-sizing: border-box;
34
+ }
35
+ @media (max-width: 1680px) {
36
+ .o-community-updates__list[data-v-1da301c6] {
37
+ padding-top: 16px;
38
+ padding-bottom: 24px;
39
+ }
40
+ }
41
+ @media (max-width: 1200px) {
42
+ .o-community-updates__list[data-v-1da301c6] {
43
+ padding-top: 12px;
44
+ padding-bottom: 16px;
45
+ }
46
+ }
47
+ @media (max-width: 840px) {
48
+ .o-community-updates__list[data-v-1da301c6] {
49
+ padding-bottom: 12px;
50
+ }
51
+ }
52
+ .o-community-updates__item[data-v-1da301c6] {
53
+ flex: 0 0 calc(33.33% - var(--grid-column-gutter) * 2 / 3);
54
+ min-width: 0;
55
+ }
56
+ @media (max-width: 840px) {
57
+ .o-community-updates__item[data-v-1da301c6] {
58
+ flex-basis: calc(50% - var(--grid-column-gutter) / 2);
59
+ }
60
+ }
61
+ .o-community-updates__more[data-v-1da301c6] {
62
+ display: flex;
63
+ justify-content: center;
64
+ color: var(--o-color-info2);
65
+ margin-top: var(--grid-column-gutter);
66
+ font-size: 16px;
67
+ line-height: 24px;
68
+ }
69
+ @media (min-width: 1201px) and (max-width: 1680px) {
70
+ .o-community-updates__more[data-v-1da301c6] {
71
+ font-size: 14px;
72
+ line-height: 22px;
73
+ }
74
+ }
75
+ @media (min-width: 841px) and (max-width: 1200px) {
76
+ .o-community-updates__more[data-v-1da301c6] {
77
+ font-size: 14px;
78
+ line-height: 22px;
79
+ }
80
+ }
81
+ @media (min-width: 601px) and (max-width: 840px) {
82
+ .o-community-updates__more[data-v-1da301c6] {
83
+ font-size: 14px;
84
+ line-height: 22px;
85
+ }
86
+ }
87
+ @media (max-width: 600px) {
88
+ .o-community-updates__more[data-v-1da301c6] {
89
+ font-size: 12px;
90
+ line-height: 18px;
91
+ }
92
+ }
93
+ .o-community-updates__more .o-community-updates__more-link[data-v-1da301c6] {
94
+ color: var(--o-color-info2);
95
+ }
96
+ @media (hover: hover) {
97
+ .o-community-updates__more .o-community-updates__more-link[data-v-1da301c6]:hover {
98
+ color: var(--o-color-link2);
99
+ }
100
+ }
101
+ .o-community-updates__more .more-icon[data-v-1da301c6] {
102
+ font-size: 16px;
103
+ height: 24px;
104
+ }
105
+ .o-community-updates__more.le4[data-v-1da301c6] {
106
+ margin-top: 0;
107
+ }
@@ -0,0 +1,5 @@
1
+ import OCommunityUpdatesCard_vue_vue_type_script_setup_true_lang_default from "./OCommunityUpdatesCard.vue_vue_type_script_setup_true_lang.mjs";
2
+ import './OCommunityUpdatesCard.vue_vue_type_style_index_0_lang.css';
3
+ // src/components/community-updates/OCommunityUpdatesCard.vue
4
+ var OCommunityUpdatesCard_default = OCommunityUpdatesCard_vue_vue_type_script_setup_true_lang_default;
5
+ export { OCommunityUpdatesCard_default as default };
@@ -0,0 +1,7 @@
1
+ import { CommunityUpdatesItemT } from './types';
2
+ type __VLS_Props = {
3
+ /** 动态数据项 */
4
+ item: CommunityUpdatesItemT;
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import icon_time_default from "../../_virtual/~icons/components/icon-time.mjs";
2
+ import icon_avatar_line_default from "../../_virtual/~icons/components/icon-avatar-line.mjs";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, openBlock, toDisplayString, unref, withCtx } from "vue";
4
+ import { OCard, OIcon } from "@opensig/opendesign";
5
+ // src/components/community-updates/OCommunityUpdatesCard.vue?vue&type=script&setup=true&lang.ts
6
+ var _hoisted_1 = { class: "o-community-updates-card__desc" };
7
+ var _hoisted_2 = { class: "o-community-updates-card__info" };
8
+ var _hoisted_3 = { key: 0 };
9
+ var _hoisted_4 = { key: 1 };
10
+ var OCommunityUpdatesCard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
+ __name: "OCommunityUpdatesCard",
12
+ props: { item: {} },
13
+ setup(__props) {
14
+ const props = __props;
15
+ const authorText = computed(() => Array.isArray(props.item.author) ? props.item.author.join(" ") : props.item.author);
16
+ return (_ctx, _cache) => {
17
+ return openBlock(), createBlock(unref(OCard), {
18
+ class: "o-community-updates-card",
19
+ title: __props.item.title,
20
+ "title-row": 2,
21
+ "title-max-row": 2,
22
+ cover: __props.item.cover,
23
+ "cover-ratio": 2.4,
24
+ href: __props.item.href,
25
+ hoverable: "",
26
+ cursor: "pointer"
27
+ }, createSlots({ _: 2 }, [__props.item.description ? {
28
+ name: "detail",
29
+ fn: withCtx(() => [createElementVNode("p", _hoisted_1, toDisplayString(__props.item.description), 1)]),
30
+ key: "0"
31
+ } : void 0, __props.item.date || authorText.value ? {
32
+ name: "footer",
33
+ fn: withCtx(() => [createElementVNode("div", _hoisted_2, [__props.item.date ? (openBlock(), createElementBlock("span", _hoisted_3, [createVNode(unref(OIcon), null, {
34
+ default: withCtx(() => [createVNode(unref(icon_time_default))]),
35
+ _: 1
36
+ }), createTextVNode(" " + toDisplayString(__props.item.date), 1)])) : createCommentVNode("", true), authorText.value ? (openBlock(), createElementBlock("span", _hoisted_4, [createVNode(unref(OIcon), null, {
37
+ default: withCtx(() => [createVNode(unref(icon_avatar_line_default))]),
38
+ _: 1
39
+ }), createTextVNode(" " + toDisplayString(authorText.value), 1)])) : createCommentVNode("", true)])]),
40
+ key: "1"
41
+ } : void 0]), 1032, [
42
+ "title",
43
+ "cover",
44
+ "href"
45
+ ]);
46
+ };
47
+ }
48
+ });
49
+ export { OCommunityUpdatesCard_vue_vue_type_script_setup_true_lang_default as default };