@opendesign-plus/components 0.0.1-rc.100 → 0.0.1-rc.101

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 (38) hide show
  1. package/dist/chunk-element-plus.cjs.js +1 -1
  2. package/dist/chunk-element-plus.es.js +2 -0
  3. package/dist/components/doc-layout/ODocLayout.vue.d.ts +6 -4
  4. package/dist/components/doc-layout/index.d.ts +14 -8
  5. package/dist/components/summit/OSummit.vue.d.ts +14 -1
  6. package/dist/components/summit/OSummitSchedule.vue.d.ts +9 -1
  7. package/dist/components/summit/index.d.ts +7 -3
  8. package/dist/components/summit/types.d.ts +8 -1
  9. package/dist/components/summit/utils.d.ts +2 -1
  10. package/dist/components.cjs.js +4 -4
  11. package/dist/components.css +1 -1
  12. package/dist/components.es.js +835 -769
  13. package/dist/treeshaking/_virtual/~icons/components/icon-address.mjs +21 -0
  14. package/dist/treeshaking/components/article-pagination/OArticlePagination.mjs +2 -2
  15. package/dist/treeshaking/components/article-pagination/{OArticlePagination.vue_vue_type_style_index_0_scoped_e78e8bd3_lang.css → OArticlePagination.vue_vue_type_style_index_0_scoped_8a8cf9f8_lang.css} +42 -50
  16. package/dist/treeshaking/components/doc-layout/ODocLayout.mjs +2 -2
  17. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.d.ts +6 -4
  18. package/dist/treeshaking/components/doc-layout/ODocLayout.vue_vue_type_script_setup_true_lang.mjs +31 -20
  19. package/dist/treeshaking/components/doc-layout/{ODocLayout.vue_vue_type_style_index_0_scoped_6510bed3_lang.css → ODocLayout.vue_vue_type_style_index_0_scoped_3d4751c0_lang.css} +43 -40
  20. package/dist/treeshaking/components/doc-layout/index.d.ts +14 -8
  21. package/dist/treeshaking/components/summit/OSummit.mjs +2 -2
  22. package/dist/treeshaking/components/summit/OSummit.vue.d.ts +14 -1
  23. package/dist/treeshaking/components/summit/OSummit.vue_vue_type_script_setup_true_lang.mjs +15 -4
  24. package/dist/treeshaking/components/summit/{OSummit.vue_vue_type_style_index_0_scoped_83d1b7cb_lang.css → OSummit.vue_vue_type_style_index_0_scoped_6e15ff06_lang.css} +3 -3
  25. package/dist/treeshaking/components/summit/OSummitLive.mjs +2 -2
  26. package/dist/treeshaking/components/summit/OSummitLive.vue_vue_type_script_setup_true_lang.mjs +4 -4
  27. package/dist/treeshaking/components/summit/{OSummitLive.vue_vue_type_style_index_0_scoped_ceb9b04d_lang.css → OSummitLive.vue_vue_type_style_index_0_scoped_634db517_lang.css} +26 -26
  28. package/dist/treeshaking/components/summit/OSummitSchedule.mjs +2 -2
  29. package/dist/treeshaking/components/summit/OSummitSchedule.vue.d.ts +9 -1
  30. package/dist/treeshaking/components/summit/OSummitSchedule.vue_vue_type_script_setup_true_lang.mjs +72 -35
  31. package/dist/treeshaking/components/summit/{OSummitSchedule.vue_vue_type_style_index_0_scoped_b3bf869b_lang.css → OSummitSchedule.vue_vue_type_style_index_0_scoped_934d2319_lang.css} +60 -33
  32. package/dist/treeshaking/components/summit/index.d.ts +7 -3
  33. package/dist/treeshaking/components/summit/types.d.ts +8 -1
  34. package/dist/treeshaking/components/summit/utils.d.ts +2 -1
  35. package/dist/treeshaking/components/summit/utils.mjs +5 -2
  36. package/dist/treeshaking/i18n/en.mjs +1 -0
  37. package/dist/treeshaking/i18n/zh.mjs +1 -0
  38. package/package.json +1 -1
@@ -1,16 +1,21 @@
1
1
  import { useI18n } from "../../i18n/index.mjs";
2
+ import icon_outlink_default from "../../_virtual/~icons/components/icon-outlink.mjs";
2
3
  import icon_time_default from "../../_virtual/~icons/components/icon-time.mjs";
3
4
  import OSummitTabs_default from "./components/OSummitTabs.mjs";
5
+ import icon_address_default from "../../_virtual/~icons/components/icon-address.mjs";
4
6
  import { normalizeScheduleEntries } from "./utils.mjs";
5
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, ref, renderList, toDisplayString, unref, watch, withCtx } from "vue";
6
- import { OPopover, OTab, OTabPane } from "@opensig/opendesign";
7
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useSlots, watch, withCtx } from "vue";
8
+ import { OIcon, OPopover, OTab, OTabPane } from "@opensig/opendesign";
7
9
  // src/components/summit/OSummitSchedule.vue?vue&type=script&setup=true&lang.ts
8
10
  var _hoisted_1 = { class: "o-summit-schedule" };
9
11
  var _hoisted_2 = {
10
12
  key: 0,
11
13
  class: "o-summit-title"
12
14
  };
13
- var _hoisted_3 = { class: "o-summit-agenda-content-wrapper" };
15
+ var _hoisted_3 = {
16
+ key: 3,
17
+ class: "o-summit-agenda-content-wrapper"
18
+ };
14
19
  var _hoisted_4 = { class: "o-summit-agenda-content" };
15
20
  var _hoisted_5 = { class: "o-summit-schedule-time" };
16
21
  var _hoisted_6 = { class: "o-summit-schedule-topics" };
@@ -29,6 +34,11 @@ var _hoisted_13 = {
29
34
  };
30
35
  var _hoisted_14 = { class: "o-summit-schedule-name" };
31
36
  var _hoisted_15 = { class: "o-summit-schedule-post" };
37
+ var _hoisted_16 = {
38
+ key: 1,
39
+ class: "o-summit-schedule-address"
40
+ };
41
+ var _hoisted_17 = ["href"];
32
42
  var OSummitSchedule_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
33
43
  __name: "OSummitSchedule",
34
44
  props: { schedule: {} },
@@ -54,6 +64,13 @@ var OSummitSchedule_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
54
64
  return currentSubForum.value?.items || [];
55
65
  });
56
66
  const currentDetailMode = computed(() => currentSubForum.value?.detailMode);
67
+ const slots = useSlots();
68
+ const isEmptySession = computed(() => {
69
+ const s = currentSession.value;
70
+ return !!s && !s.items && !s.subForums;
71
+ });
72
+ const sessionSlotName = computed(() => currentSession.value?.sessionKey ? `session-${currentSession.value.sessionKey}` : "");
73
+ const hasSessionSlot = computed(() => !!(sessionSlotName.value && slots[sessionSlotName.value]));
57
74
  const selectDay = (idx) => {
58
75
  dayIndex.value = idx;
59
76
  categoryIndex.value = 0;
@@ -123,7 +140,10 @@ var OSummitSchedule_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
123
140
  items: currentSessions.value.map((s) => s.label),
124
141
  onChange: selectSession
125
142
  }, null, 8, ["modelValue", "items"]),
126
- createElementVNode("div", _hoisted_3, [hasSubForums.value && currentSession.value ? (openBlock(), createBlock(unref(OTab), {
143
+ isEmptySession.value && hasSessionSlot.value ? renderSlot(_ctx.$slots, sessionSlotName.value, {
144
+ key: 2,
145
+ session: currentSession.value
146
+ }, void 0, true) : !isEmptySession.value ? (openBlock(), createElementBlock("div", _hoisted_3, [hasSubForums.value && currentSession.value ? (openBlock(), createBlock(unref(OTab), {
127
147
  key: 0,
128
148
  maxShow: 999,
129
149
  modelValue: forumTypeIndex.value,
@@ -149,42 +169,59 @@ var OSummitSchedule_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
149
169
  return openBlock(), createElementBlock("div", {
150
170
  key: topicIdx,
151
171
  class: "o-summit-schedule-topic"
152
- }, [createElementVNode("div", _hoisted_7, [currentDetailMode.value === "popover" ? (openBlock(), createBlock(unref(OPopover), {
153
- key: 0,
154
- trigger: "click",
155
- position: "bottom",
156
- "wrap-class": "o-summit-schedule-popover"
157
- }, {
158
- target: withCtx(() => [createElementVNode("div", _hoisted_8, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
159
- return openBlock(), createElementBlock("span", {
160
- key: i,
161
- class: "o-summit-schedule-desc"
162
- }, toDisplayString(line), 1);
163
- }), 128))])]),
164
- default: withCtx(() => [createElementVNode("div", _hoisted_9, [
165
- createElementVNode("p", null, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleTopicName")), 1), createElementVNode("span", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
172
+ }, [
173
+ createElementVNode("div", _hoisted_7, [currentDetailMode.value === "popover" ? (openBlock(), createBlock(unref(OPopover), {
174
+ key: 0,
175
+ trigger: "click",
176
+ position: "bottom",
177
+ "wrap-class": "o-summit-schedule-popover"
178
+ }, {
179
+ target: withCtx(() => [createElementVNode("div", _hoisted_8, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
166
180
  return openBlock(), createElementBlock("span", {
167
181
  key: i,
168
- class: "o-summit-schedule-detail-line"
182
+ class: "o-summit-schedule-desc"
169
183
  }, toDisplayString(line), 1);
170
184
  }), 128))])]),
171
- topic.description ? (openBlock(), createElementBlock("p", _hoisted_10, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleTopicDesc")), 1), createElementVNode("span", null, toDisplayString(topic.description), 1)])) : createCommentVNode("", true),
172
- createElementVNode("p", null, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleSpeaker")), 1), createElementVNode("span", null, toDisplayString(speakerNames(topic)), 1)]),
173
- speakerPositions(topic) ? (openBlock(), createElementBlock("p", _hoisted_11, [createElementVNode("span", null, toDisplayString(unref(t)("summit.schedulePosition")), 1), createElementVNode("span", null, toDisplayString(speakerPositions(topic)), 1)])) : createCommentVNode("", true)
174
- ])]),
175
- _: 2
176
- }, 1024)) : (openBlock(), createElementBlock("div", _hoisted_12, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
177
- return openBlock(), createElementBlock("span", {
178
- key: i,
179
- class: "o-summit-schedule-desc"
180
- }, toDisplayString(line), 1);
181
- }), 128))]))]), topic.speakers && topic.speakers.length ? (openBlock(), createElementBlock("div", _hoisted_13, [(openBlock(true), createElementBlock(Fragment, null, renderList(topic.speakers, (speaker) => {
182
- return openBlock(), createElementBlock(Fragment, { key: speaker.name }, [createElementVNode("span", _hoisted_14, toDisplayString(speaker.name), 1), createElementVNode("div", _hoisted_15, [(openBlock(true), createElementBlock(Fragment, null, renderList(speaker.positions, (pos) => {
183
- return openBlock(), createElementBlock("span", { key: pos }, toDisplayString(pos), 1);
184
- }), 128))])], 64);
185
- }), 128))])) : createCommentVNode("", true)]);
185
+ default: withCtx(() => [createElementVNode("div", _hoisted_9, [
186
+ createElementVNode("p", null, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleTopicName")), 1), createElementVNode("span", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
187
+ return openBlock(), createElementBlock("span", {
188
+ key: i,
189
+ class: "o-summit-schedule-detail-line"
190
+ }, toDisplayString(line), 1);
191
+ }), 128))])]),
192
+ topic.description ? (openBlock(), createElementBlock("p", _hoisted_10, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleTopicDesc")), 1), createElementVNode("span", null, toDisplayString(topic.description), 1)])) : createCommentVNode("", true),
193
+ createElementVNode("p", null, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleSpeaker")), 1), createElementVNode("span", null, toDisplayString(speakerNames(topic)), 1)]),
194
+ speakerPositions(topic) ? (openBlock(), createElementBlock("p", _hoisted_11, [createElementVNode("span", null, toDisplayString(unref(t)("summit.schedulePosition")), 1), createElementVNode("span", null, toDisplayString(speakerPositions(topic)), 1)])) : createCommentVNode("", true)
195
+ ])]),
196
+ _: 2
197
+ }, 1024)) : (openBlock(), createElementBlock("div", _hoisted_12, [(openBlock(true), createElementBlock(Fragment, null, renderList(topicLines(topic), (line, i) => {
198
+ return openBlock(), createElementBlock("span", {
199
+ key: i,
200
+ class: "o-summit-schedule-desc"
201
+ }, toDisplayString(line), 1);
202
+ }), 128))]))]),
203
+ topic.speakers && topic.speakers.length ? (openBlock(), createElementBlock("div", _hoisted_13, [(openBlock(true), createElementBlock(Fragment, null, renderList(topic.speakers, (speaker) => {
204
+ return openBlock(), createElementBlock(Fragment, { key: speaker.name }, [createElementVNode("span", _hoisted_14, toDisplayString(speaker.name), 1), createElementVNode("div", _hoisted_15, [(openBlock(true), createElementBlock(Fragment, null, renderList(speaker.positions, (pos) => {
205
+ return openBlock(), createElementBlock("span", { key: pos }, toDisplayString(pos), 1);
206
+ }), 128))])], 64);
207
+ }), 128))])) : createCommentVNode("", true),
208
+ topic.address ? (openBlock(), createElementBlock("div", _hoisted_16, [createVNode(unref(OIcon), null, {
209
+ default: withCtx(() => [createVNode(unref(icon_address_default))]),
210
+ _: 1
211
+ }), createElementVNode("span", null, toDisplayString(topic.address), 1)])) : createCommentVNode("", true),
212
+ topic.url ? (openBlock(), createElementBlock("a", {
213
+ key: 2,
214
+ class: "o-summit-schedule-url",
215
+ href: topic.url,
216
+ target: "_blank",
217
+ rel: "noopener noreferrer"
218
+ }, [createElementVNode("span", null, toDisplayString(unref(t)("summit.scheduleTopicUrl")), 1), createVNode(unref(OIcon), null, {
219
+ default: withCtx(() => [createVNode(unref(icon_outlink_default))]),
220
+ _: 1
221
+ })], 8, _hoisted_17)) : createCommentVNode("", true)
222
+ ]);
186
223
  }), 128))])]);
187
- }), 128))])])
224
+ }), 128))])])) : createCommentVNode("", true)
188
225
  ]);
189
226
  };
190
227
  }
@@ -1,17 +1,17 @@
1
- .hover-icon-rotate .o-icon[data-v-b3bf869b] {
1
+ .hover-icon-rotate .o-icon[data-v-934d2319] {
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-b3bf869b] {
5
+ .hover-icon-rotate:hover .o-icon[data-v-934d2319] {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
9
  @media (max-width: 1200px) {
10
- .o-summit-schedule[data-v-b3bf869b] {
10
+ .o-summit-schedule[data-v-934d2319] {
11
11
  position: relative;
12
12
  }
13
13
  }
14
- .o-summit-schedule .o-summit-title[data-v-b3bf869b] {
14
+ .o-summit-schedule .o-summit-title[data-v-934d2319] {
15
15
  margin-bottom: var(--o-r-gap-7);
16
16
  color: var(--o-color-info1);
17
17
  font-weight: 600;
@@ -19,30 +19,30 @@
19
19
  font-size: var(--o-r-font_size-display3);
20
20
  line-height: var(--o-r-line_height-display3);
21
21
  }
22
- .o-summit-schedule .o-summit-category-tabs[data-v-b3bf869b] {
22
+ .o-summit-schedule .o-summit-category-tabs[data-v-934d2319] {
23
23
  --tab-nav-text-size: var(--o-r-font_size-h4);
24
24
  --tab-nav-text-height: var(--o-r-line_height-h4);
25
25
  margin-bottom: var(--o-r-gap-5);
26
26
  }
27
- .o-summit-schedule .o-summit-forum-type-tabs[data-v-b3bf869b] {
27
+ .o-summit-schedule .o-summit-forum-type-tabs[data-v-934d2319] {
28
28
  margin-bottom: var(--o-r-gap-5);
29
29
  }
30
- .o-summit-schedule .o-summit-agenda-content-wrapper[data-v-b3bf869b] {
30
+ .o-summit-schedule .o-summit-agenda-content-wrapper[data-v-934d2319] {
31
31
  background-color: var(--o-color-fill2);
32
32
  border-radius: var(--o-radius-xs);
33
33
  padding: var(--o-r-gap-5) var(--o-r-gap-6);
34
34
  }
35
- .o-summit-schedule .o-summit-agenda-content[data-v-b3bf869b] {
35
+ .o-summit-schedule .o-summit-agenda-content[data-v-934d2319] {
36
36
  display: grid;
37
37
  grid-template-columns: max-content var(--o-r-gap-6) 1fr var(--o-r-gap-5) max-content var(--o-r-gap-4) 1fr;
38
38
  align-items: center;
39
39
  }
40
40
  @media (max-width: 840px) {
41
- .o-summit-schedule .o-summit-agenda-content[data-v-b3bf869b] {
41
+ .o-summit-schedule .o-summit-agenda-content[data-v-934d2319] {
42
42
  display: block;
43
43
  }
44
44
  }
45
- .o-summit-schedule .o-summit-schedule-item[data-v-b3bf869b] {
45
+ .o-summit-schedule .o-summit-schedule-item[data-v-934d2319] {
46
46
  display: grid;
47
47
  grid-template-columns: subgrid;
48
48
  grid-column: 1/-1;
@@ -54,26 +54,26 @@
54
54
  line-height: var(--o-r-line_height-text1);
55
55
  }
56
56
  @media (max-width: 1200px) {
57
- .o-summit-schedule .o-summit-schedule-item[data-v-b3bf869b] {
57
+ .o-summit-schedule .o-summit-schedule-item[data-v-934d2319] {
58
58
  padding: 6px 0;
59
59
  min-height: 36px;
60
60
  }
61
61
  }
62
62
  @media (max-width: 840px) {
63
- .o-summit-schedule .o-summit-schedule-item[data-v-b3bf869b] {
63
+ .o-summit-schedule .o-summit-schedule-item[data-v-934d2319] {
64
64
  display: flex;
65
65
  flex-direction: column;
66
66
  align-items: flex-start;
67
67
  gap: var(--o-gap-2);
68
68
  }
69
69
  }
70
- .o-summit-schedule .o-summit-schedule-item + .o-summit-schedule-item[data-v-b3bf869b] {
70
+ .o-summit-schedule .o-summit-schedule-item + .o-summit-schedule-item[data-v-934d2319] {
71
71
  border-top: 1px solid var(--o-color-control4);
72
72
  }
73
- .o-summit-schedule .o-summit-schedule-item[data-v-b3bf869b]:hover {
73
+ .o-summit-schedule .o-summit-schedule-item[data-v-934d2319]:hover {
74
74
  background-color: var(--o-color-control2-light);
75
75
  }
76
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time[data-v-b3bf869b] {
76
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time[data-v-934d2319] {
77
77
  grid-column: 1;
78
78
  color: var(--o-color-info2);
79
79
  display: flex;
@@ -81,7 +81,7 @@
81
81
  font-weight: 400;
82
82
  flex-wrap: nowrap;
83
83
  }
84
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-b3bf869b] {
84
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-934d2319] {
85
85
  --icon-size: 24px;
86
86
  height: var(--icon-size);
87
87
  width: var(--icon-size);
@@ -90,69 +90,72 @@
90
90
  margin-right: var(--o-gap-2);
91
91
  }
92
92
  @media (min-width: 1201px) and (max-width: 1680px) {
93
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-b3bf869b] {
93
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-934d2319] {
94
94
  --icon-size: 20px;
95
95
  }
96
96
  }
97
97
  @media (max-width: 840px) {
98
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-b3bf869b] {
98
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time svg[data-v-934d2319] {
99
99
  --icon-size: 16px;
100
100
  }
101
101
  }
102
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time span[data-v-b3bf869b] {
102
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-time span[data-v-934d2319] {
103
103
  white-space: nowrap;
104
104
  }
105
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topics[data-v-b3bf869b] {
105
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topics[data-v-934d2319] {
106
106
  display: grid;
107
107
  grid-template-columns: subgrid;
108
108
  grid-column: 3/-1;
109
109
  align-items: center;
110
110
  }
111
111
  @media (max-width: 840px) {
112
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topics[data-v-b3bf869b] {
112
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topics[data-v-934d2319] {
113
113
  display: block;
114
114
  width: 100%;
115
115
  }
116
116
  }
117
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic[data-v-b3bf869b] {
117
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic[data-v-934d2319] {
118
118
  display: grid;
119
119
  grid-template-columns: subgrid;
120
120
  grid-column: 1/-1;
121
121
  align-items: center;
122
122
  }
123
123
  @media (max-width: 840px) {
124
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic[data-v-b3bf869b] {
124
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic[data-v-934d2319] {
125
125
  display: flex;
126
126
  gap: var(--o-gap-2);
127
127
  flex-direction: column;
128
128
  align-items: flex-start;
129
129
  }
130
130
  }
131
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic + .o-summit-schedule-topic[data-v-934d2319] {
132
+ margin-top: var(--o-gap-1);
133
+ }
131
134
  @media (max-width: 840px) {
132
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic + .o-summit-schedule-topic[data-v-b3bf869b] {
135
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-topic + .o-summit-schedule-topic[data-v-934d2319] {
133
136
  margin-top: var(--o-gap-2);
134
137
  }
135
138
  }
136
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-cell[data-v-b3bf869b] {
139
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-cell[data-v-934d2319] {
137
140
  grid-column: 1;
138
141
  }
139
142
  @media (max-width: 840px) {
140
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-cell[data-v-b3bf869b] {
143
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-cell[data-v-934d2319] {
141
144
  width: 100%;
142
145
  flex-shrink: 0;
143
146
  flex-grow: 0;
144
147
  }
145
148
  }
146
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-list[data-v-b3bf869b] {
149
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc-list[data-v-934d2319] {
147
150
  display: block;
148
151
  }
149
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc[data-v-b3bf869b] {
152
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-desc[data-v-934d2319] {
150
153
  color: var(--o-color-info1);
151
154
  display: block;
152
155
  cursor: pointer;
153
156
  font-weight: 600;
154
157
  }
155
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers[data-v-b3bf869b] {
158
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers[data-v-934d2319] {
156
159
  display: grid;
157
160
  grid-template-columns: subgrid;
158
161
  grid-column: 3/6;
@@ -160,7 +163,7 @@
160
163
  align-items: center;
161
164
  }
162
165
  @media (max-width: 840px) {
163
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers[data-v-b3bf869b] {
166
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers[data-v-934d2319] {
164
167
  grid-column: auto;
165
168
  grid-template-columns: 4em 1fr;
166
169
  column-gap: var(--o-r-gap-4);
@@ -169,11 +172,11 @@
169
172
  flex-grow: 0;
170
173
  }
171
174
  }
172
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-name[data-v-b3bf869b] {
175
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-name[data-v-934d2319] {
173
176
  grid-column: 1;
174
177
  color: var(--o-color-info1);
175
178
  }
176
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-post[data-v-b3bf869b] {
179
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-post[data-v-934d2319] {
177
180
  grid-column: 3;
178
181
  display: flex;
179
182
  flex-wrap: wrap;
@@ -181,7 +184,31 @@
181
184
  color: var(--o-color-info3);
182
185
  }
183
186
  @media (max-width: 840px) {
184
- .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-post[data-v-b3bf869b] {
187
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-speakers .o-summit-schedule-post[data-v-934d2319] {
185
188
  grid-column: 2;
186
189
  }
190
+ }
191
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-address[data-v-934d2319] {
192
+ display: flex;
193
+ align-items: center;
194
+ gap: var(--o-r-gap-2);
195
+ color: var(--o-color-info3);
196
+ }
197
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-address .o-icon[data-v-934d2319] {
198
+ --icon-size: 16px;
199
+ }
200
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-url[data-v-934d2319] {
201
+ display: inline-flex;
202
+ align-items: center;
203
+ gap: var(--o-r-gap-2);
204
+ color: var(--o-color-link1);
205
+ text-decoration: none;
206
+ }
207
+ @media (hover: hover) {
208
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-url[data-v-934d2319]:hover {
209
+ color: var(--o-color-link2);
210
+ }
211
+ }
212
+ .o-summit-schedule .o-summit-schedule-item .o-summit-schedule-url .o-icon[data-v-934d2319] {
213
+ --icon-size: 14px;
187
214
  }
@@ -21,7 +21,9 @@ declare const OSummit: {
21
21
  onLiveChange?: ((liveId: string | number) => any) | undefined;
22
22
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
23
23
  liveChange: (liveId: string | number) => any;
24
- }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
24
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
25
+ $slots: any;
26
+ }) & {
25
27
  install(app: App): void;
26
28
  };
27
29
  declare const OSummitIntro: {
@@ -65,7 +67,7 @@ declare const OSummitLive: {
65
67
  install(app: App): void;
66
68
  };
67
69
  declare const OSummitSchedule: {
68
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').SummitSchedulePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
70
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').SummitSchedulePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
69
71
  P: {};
70
72
  B: {};
71
73
  D: {};
@@ -76,7 +78,9 @@ declare const OSummitSchedule: {
76
78
  __isFragment?: never;
77
79
  __isTeleport?: never;
78
80
  __isSuspense?: never;
79
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').SummitSchedulePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
81
+ } & import('vue').ComponentOptionsBase<Readonly<import('../../index').SummitSchedulePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
82
+ $slots: any;
83
+ }) & {
80
84
  install(app: App): void;
81
85
  };
82
86
  export { OSummit, OSummitIntro, OSummitLive, OSummitSchedule, };
@@ -32,6 +32,8 @@ export interface SummitScheduleTopicT {
32
32
  topic: string | string[];
33
33
  speakers?: SummitSpeakerT[];
34
34
  description?: string;
35
+ address?: string;
36
+ url?: string;
35
37
  }
36
38
  export interface SummitScheduleEntryT {
37
39
  time: string;
@@ -54,10 +56,13 @@ export interface SummitSubForumT {
54
56
  detailMode?: 'popover';
55
57
  items: SummitScheduleEntryT[];
56
58
  }
57
- export interface SummitScheduleRowT extends SummitScheduleEntryT {
59
+ export interface SummitScheduleRowT extends Omit<SummitScheduleEntryT, 'time' | 'topics'> {
60
+ time?: string;
61
+ topics?: SummitScheduleTopicT[];
58
62
  date?: string;
59
63
  category?: string;
60
64
  session?: string;
65
+ sessionKey?: string;
61
66
  forum?: string;
62
67
  duration?: string;
63
68
  detailMode?: 'popover';
@@ -78,6 +83,7 @@ export interface SummitCategoryT {
78
83
  export interface SummitSessionT {
79
84
  id: string;
80
85
  label: string;
86
+ sessionKey?: string;
81
87
  duration?: string;
82
88
  items?: SummitScheduleEntryT[];
83
89
  subForums?: SummitSubForumT[];
@@ -88,4 +94,5 @@ export interface SummitPropsT {
88
94
  live?: SummitLiveSectionT;
89
95
  liveUrl?: string;
90
96
  schedule?: SummitScheduleT;
97
+ backgrounds?: SummitLiveBackgroundsT;
91
98
  }
@@ -14,8 +14,9 @@ export declare function normalizeScheduleEntries(entries: SummitScheduleRowT[]):
14
14
  *
15
15
  * 规则:
16
16
  * - session 维度分组,缺省归入单一匿名时段('')
17
+ * - 纯声明行(无 topics):只创建/挂靠 session,不产出条目——用于声明「无子级 session」(内容由插槽提供)
17
18
  * - session 内:带 forum 的行按 forum 分组为 subForums;不带 forum 的行归入 items
18
- * - duration / detailMode 取组内首个非空值
19
+ * - duration / detailMode / sessionKey 取组内首个非空值
19
20
  * - 同一 session 内混用「带 forum」与「不带 forum」的行时,渲染层 items 优先,subForums 会被忽略
20
21
  */
21
22
  export declare function normalizeScheduleRows(rows: SummitScheduleRowT[]): SummitSessionT[];
@@ -47,8 +47,9 @@ function normalizeScheduleEntries(entries) {
47
47
  *
48
48
  * 规则:
49
49
  * - session 维度分组,缺省归入单一匿名时段('')
50
+ * - 纯声明行(无 topics):只创建/挂靠 session,不产出条目——用于声明「无子级 session」(内容由插槽提供)
50
51
  * - session 内:带 forum 的行按 forum 分组为 subForums;不带 forum 的行归入 items
51
- * - duration / detailMode 取组内首个非空值
52
+ * - duration / detailMode / sessionKey 取组内首个非空值
52
53
  * - 同一 session 内混用「带 forum」与「不带 forum」的行时,渲染层 items 优先,subForums 会被忽略
53
54
  */
54
55
  function normalizeScheduleRows(rows) {
@@ -81,8 +82,10 @@ function normalizeScheduleRows(rows) {
81
82
  sessions.push(session);
82
83
  }
83
84
  if (!session.duration && row.duration) session.duration = row.duration;
85
+ if (!session.sessionKey && row.sessionKey) session.sessionKey = row.sessionKey;
86
+ if (!row.topics?.length) continue;
84
87
  const entry = {
85
- time: row.time,
88
+ time: row.time ?? "",
86
89
  topics: row.topics
87
90
  };
88
91
  if (row.forum) {
@@ -451,6 +451,7 @@ var en_default = {
451
451
  "summit.introTitle": "大会简介",
452
452
  "summit.scheduleTopicName": "议题名称:",
453
453
  "summit.scheduleTopicDesc": "议题简介:",
454
+ "summit.scheduleTopicUrl": "Collaboration Doc: ",
454
455
  "summit.scheduleSpeaker": "姓名:",
455
456
  "summit.schedulePosition": "职位:",
456
457
  "org.email": "Email",
@@ -454,6 +454,7 @@ var zh_default = {
454
454
  "summit.introTitle": "大会简介",
455
455
  "summit.scheduleTopicName": "议题名称:",
456
456
  "summit.scheduleTopicDesc": "议题简介:",
457
+ "summit.scheduleTopicUrl": "共创链接:",
457
458
  "summit.scheduleSpeaker": "姓名:",
458
459
  "summit.schedulePosition": "职位:",
459
460
  "org.email": "发送邮件",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendesign-plus/components",
3
- "version": "0.0.1-rc.100",
3
+ "version": "0.0.1-rc.101",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",