@5even7/dlc-ui 0.2.24 → 0.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  > **发版规则**:默认每次发布只递增补丁号(0.x.y → 0.x.(y+1),即 +0.01);除非手动明确指定新版本号,否则不升次版本。
4
4
 
5
+ ## 0.2.25 - 2026-08-24
6
+ - **新增 Vue 按组件子路径入口**:`@5even7/dlc-ui/vue2/<name>` 与 `/vue3/<name>`(name = `capsule | progress | color | emo | avatar-creator | icon`)。`import { DlcIcon } from '@5even7/dlc-ui/vue2/icon'` 只拖 Icon 运行时 + 共享 wrapper(入口产物约 0.5 KB),不再经过六合一聚合入口把 Avatar(humation 元数据 / fflate)、Emo 默认动画(miao/noto 注册)等全部拖进依赖图。
7
+ - 聚合入口 `./vue2` / `./vue3` 保持原样向后兼容;`sideEffects` 同步精确化:新子路径中仅 `vue2/icon`、`vue3/icon`(provider 注册)与 `vue2/emo`、`vue3/emo`(默认动画注册)声明副作用,其余子路径对 bundler 完全可摇。
8
+ - 新子路径仅提供 `import`(ESM)条件:与现有 chunk 图共享,几乎零包体增量;`require()` 用户继续走聚合入口的 legacy CJS(单文件内联全量依赖,×12 会使包膨胀约 20 MB,故不产出)。
9
+ - 类型:新增 `types/vue2-<name>.d.ts` / `types/vue3-<name>.d.ts`,复用聚合入口的组件接口定义。
10
+ - 测试:新增 `tests/vue-subpaths.test.mjs`(子路径导出形状、vue3/icon 挂载、dist 产物隔离断言);全量 228/228 通过。
11
+ - H5(HTML)侧无需变更:`./capsule`、`./progress`、`./color`、`./emo`、`./avatar-creator`、`./icon` 本就按组件独立。
12
+
5
13
  ## 0.2.24 - 2026-08-22
6
14
  - 新增四套 Streamline 改编多色图标集:`flexpop`(498)/ `freehand`(1000)/ `plump`(499,含渐变)/ `colos`(997),共 2994 个多色图标;入口形态与 linemd 对齐:每集 1 个 `icon/{type}` provider 入口 + 每图标 1 个子路径(`icon/{type}/{name}`,ESM + CJS),懒加载仍只取单个图标;本次不提供 Motion(`motion: null`),body 保留 `data-dlc-icon-part` 部位标记为后续 Motion 生成预留。
7
15
  - **dlc-icon `color` 支持 `string | string[]`**(多色图标,`colorMode: 'multi'`):字符串给全部颜色槽位;数组按槽位映射,不足用最后一个补齐,超长取前 N 个;单色图标收到数组取第一个;不传 / 空数组保留图标原配色;数组元素可用 `'currentColor'` 跟随宿主 `color`。`setColor` 与 Vue wrapper(deep watch)同步支持数组热更新。
@@ -0,0 +1,15 @@
1
+ import { c as createAvatarCreator } from '../chunks/avatar-creator-DHn31FD-.mjs';
2
+ import { d as makeAvatarWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../chunks/emitter-BqYAYerJ.mjs';
4
+ import '../chunks/controls-B10DQrKy.mjs';
5
+ import '../chunks/identicon-D2WXAAgC.mjs';
6
+ import '../chunks/color-DawKXV0w.mjs';
7
+ import '../chunks/humation-meta-D9RPFuyx.mjs';
8
+
9
+ const renderAvatar = function renderAvatar(h) {
10
+ return h('div', { class: 'hj-vue-host' });
11
+ };
12
+
13
+ const DlcAvatarCreator = /*#__PURE__*/ makeAvatarWrapper(createAvatarCreator, renderAvatar);
14
+
15
+ export { DlcAvatarCreator, DlcAvatarCreator as default };
@@ -0,0 +1,24 @@
1
+ import { createCapsule } from '../capsule.mjs';
2
+ import { m as makeCapsuleWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../chunks/emitter-BqYAYerJ.mjs';
4
+ import '../chunks/size-DBa57oo1.mjs';
5
+ import '../chunks/number-BBRut9sd.mjs';
6
+ import '../chunks/copy-CWwHjKcM.mjs';
7
+ import '../chunks/cosmic-fallback-CWuVsTTf.mjs';
8
+ import '../chunks/color-DawKXV0w.mjs';
9
+ import '../chunks/visibility-DNCA0PW1.mjs';
10
+ import '../chunks/motion-CVaEDLxs.mjs';
11
+
12
+ // Vue2 passes `h` (createElement) as the first argument to render. Slot
13
+ // content is rendered into two marker wrappers, then moved into the
14
+ // component's slot containers by the wrapper (moveSlots).
15
+ const render = function render(h) {
16
+ return h('div', { class: 'hj-vue-host' }, [
17
+ h('div', { class: 'hj-vue-slot-text', ref: 'slotText' }, this.$slots.default),
18
+ h('div', { class: 'hj-vue-slot-color', ref: 'slotColor' }, this.$slots.color)
19
+ ]);
20
+ };
21
+
22
+ const DlcCapsule = /*#__PURE__*/ makeCapsuleWrapper(createCapsule, render);
23
+
24
+ export { DlcCapsule, DlcCapsule as default };
@@ -0,0 +1,17 @@
1
+ import { createColorBackground } from '../color.mjs';
2
+ import { b as makeColorWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../chunks/emitter-BqYAYerJ.mjs';
4
+ import '../chunks/number-BBRut9sd.mjs';
5
+ import '../chunks/cosmic-fallback-CWuVsTTf.mjs';
6
+ import '../chunks/color-DawKXV0w.mjs';
7
+ import '../chunks/visibility-DNCA0PW1.mjs';
8
+ import '../chunks/motion-CVaEDLxs.mjs';
9
+
10
+ // Color 的宿主内容就是组件内容:直接放在 host 里,浮在背景层上方。
11
+ const renderColor = function renderColor(h) {
12
+ return h('div', { class: 'hj-vue-host' }, this.$slots.default);
13
+ };
14
+
15
+ const DlcColor = /*#__PURE__*/ makeColorWrapper(createColorBackground, renderColor);
16
+
17
+ export { DlcColor, DlcColor as default };
@@ -0,0 +1,18 @@
1
+ import { e as createEmo } from '../chunks/emo-DJD96DXu.mjs';
2
+ import { c as makeEmoWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../chunks/emitter-BqYAYerJ.mjs';
4
+ import '../chunks/size-DBa57oo1.mjs';
5
+ import '../chunks/motion-CVaEDLxs.mjs';
6
+ import '../emo/miao/smile.mjs';
7
+ import 'fflate';
8
+ import '../emo/noto/1f600.mjs';
9
+ import '../chunks/color-DawKXV0w.mjs';
10
+ import '../chunks/visibility-DNCA0PW1.mjs';
11
+
12
+ const renderEmo = function renderEmo(h) {
13
+ return h('div', { class: 'hj-vue-host' });
14
+ };
15
+
16
+ const DlcEmo = /*#__PURE__*/ makeEmoWrapper(createEmo, renderEmo);
17
+
18
+ export { DlcEmo, DlcEmo as default };
@@ -0,0 +1,14 @@
1
+ import { createIcon } from '../icon.mjs';
2
+ import { e as makeIconWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../icon/motion.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/motion-CVaEDLxs.mjs';
6
+ import '../chunks/size-DBa57oo1.mjs';
7
+
8
+ const renderIcon = function renderIcon(h) {
9
+ return h('span', { class: 'hj-vue-host hj-vue-icon-host' });
10
+ };
11
+
12
+ const DlcIcon = /*#__PURE__*/ makeIconWrapper(createIcon, renderIcon);
13
+
14
+ export { DlcIcon, DlcIcon as default };
@@ -0,0 +1,23 @@
1
+ import { c as createProgressCapsule } from '../chunks/progress-BjSTcBKA.mjs';
2
+ import { a as makeProgressWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
3
+ import '../chunks/emitter-BqYAYerJ.mjs';
4
+ import '../chunks/size-DBa57oo1.mjs';
5
+ import '../chunks/number-BBRut9sd.mjs';
6
+ import '../chunks/copy-CWwHjKcM.mjs';
7
+ import '../chunks/color-DawKXV0w.mjs';
8
+ import '../chunks/visibility-DNCA0PW1.mjs';
9
+ import '../chunks/motion-CVaEDLxs.mjs';
10
+
11
+ // Vue2 passes `h` (createElement) as the first argument to render. Slot
12
+ // content is rendered into two marker wrappers, then moved into the
13
+ // component's slot containers by the wrapper (moveSlots).
14
+ const render = function render(h) {
15
+ return h('div', { class: 'hj-vue-host' }, [
16
+ h('div', { class: 'hj-vue-slot-text', ref: 'slotText' }, this.$slots.default),
17
+ h('div', { class: 'hj-vue-slot-color', ref: 'slotColor' }, this.$slots.color)
18
+ ]);
19
+ };
20
+
21
+ const DlcProgress = /*#__PURE__*/ makeProgressWrapper(createProgressCapsule, render);
22
+
23
+ export { DlcProgress, DlcProgress as default };
@@ -0,0 +1,16 @@
1
+ import { h } from 'vue';
2
+ import { c as createAvatarCreator } from '../chunks/avatar-creator-DHn31FD-.mjs';
3
+ import { d as makeAvatarWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/controls-B10DQrKy.mjs';
6
+ import '../chunks/identicon-D2WXAAgC.mjs';
7
+ import '../chunks/color-DawKXV0w.mjs';
8
+ import '../chunks/humation-meta-D9RPFuyx.mjs';
9
+
10
+ const renderAvatar = function renderAvatar() {
11
+ return h('div', { class: 'hj-vue-host' });
12
+ };
13
+
14
+ const DlcAvatarCreator = /*#__PURE__*/ makeAvatarWrapper(createAvatarCreator, renderAvatar);
15
+
16
+ export { DlcAvatarCreator, DlcAvatarCreator as default };
@@ -0,0 +1,25 @@
1
+ import { h } from 'vue';
2
+ import { createCapsule } from '../capsule.mjs';
3
+ import { m as makeCapsuleWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/size-DBa57oo1.mjs';
6
+ import '../chunks/number-BBRut9sd.mjs';
7
+ import '../chunks/copy-CWwHjKcM.mjs';
8
+ import '../chunks/cosmic-fallback-CWuVsTTf.mjs';
9
+ import '../chunks/color-DawKXV0w.mjs';
10
+ import '../chunks/visibility-DNCA0PW1.mjs';
11
+ import '../chunks/motion-CVaEDLxs.mjs';
12
+
13
+ // Vue3 does NOT pass `h` to the render option; it must be imported. Slot
14
+ // content renders into two marker wrappers, then moveSlots moves it into the
15
+ // component's slot containers.
16
+ const render = function render() {
17
+ return h('div', { class: 'hj-vue-host' }, [
18
+ h('div', { class: 'hj-vue-slot-text', ref: 'slotText' }, this.$slots.default ? this.$slots.default() : []),
19
+ h('div', { class: 'hj-vue-slot-color', ref: 'slotColor' }, this.$slots.color ? this.$slots.color() : [])
20
+ ]);
21
+ };
22
+
23
+ const DlcCapsule = /*#__PURE__*/ makeCapsuleWrapper(createCapsule, render);
24
+
25
+ export { DlcCapsule, DlcCapsule as default };
@@ -0,0 +1,18 @@
1
+ import { h } from 'vue';
2
+ import { createColorBackground } from '../color.mjs';
3
+ import { b as makeColorWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/number-BBRut9sd.mjs';
6
+ import '../chunks/cosmic-fallback-CWuVsTTf.mjs';
7
+ import '../chunks/color-DawKXV0w.mjs';
8
+ import '../chunks/visibility-DNCA0PW1.mjs';
9
+ import '../chunks/motion-CVaEDLxs.mjs';
10
+
11
+ // Color 的宿主内容就是组件内容:直接放在 host 里,浮在背景层上方。
12
+ const renderColor = function renderColor() {
13
+ return h('div', { class: 'hj-vue-host' }, this.$slots.default ? this.$slots.default() : []);
14
+ };
15
+
16
+ const DlcColor = /*#__PURE__*/ makeColorWrapper(createColorBackground, renderColor);
17
+
18
+ export { DlcColor, DlcColor as default };
@@ -0,0 +1,19 @@
1
+ import { h } from 'vue';
2
+ import { e as createEmo } from '../chunks/emo-DJD96DXu.mjs';
3
+ import { c as makeEmoWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/size-DBa57oo1.mjs';
6
+ import '../chunks/motion-CVaEDLxs.mjs';
7
+ import '../emo/miao/smile.mjs';
8
+ import 'fflate';
9
+ import '../emo/noto/1f600.mjs';
10
+ import '../chunks/color-DawKXV0w.mjs';
11
+ import '../chunks/visibility-DNCA0PW1.mjs';
12
+
13
+ const renderEmo = function renderEmo() {
14
+ return h('div', { class: 'hj-vue-host' });
15
+ };
16
+
17
+ const DlcEmo = /*#__PURE__*/ makeEmoWrapper(createEmo, renderEmo);
18
+
19
+ export { DlcEmo, DlcEmo as default };
@@ -0,0 +1,15 @@
1
+ import { h } from 'vue';
2
+ import { createIcon } from '../icon.mjs';
3
+ import { e as makeIconWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../icon/motion.mjs';
5
+ import '../chunks/emitter-BqYAYerJ.mjs';
6
+ import '../chunks/motion-CVaEDLxs.mjs';
7
+ import '../chunks/size-DBa57oo1.mjs';
8
+
9
+ const renderIcon = function renderIcon() {
10
+ return h('span', { class: 'hj-vue-host hj-vue-icon-host' });
11
+ };
12
+
13
+ const DlcIcon = /*#__PURE__*/ makeIconWrapper(createIcon, renderIcon);
14
+
15
+ export { DlcIcon, DlcIcon as default };
@@ -0,0 +1,24 @@
1
+ import { h } from 'vue';
2
+ import { c as createProgressCapsule } from '../chunks/progress-BjSTcBKA.mjs';
3
+ import { a as makeProgressWrapper } from '../chunks/wrapper-DRr-8dqz.mjs';
4
+ import '../chunks/emitter-BqYAYerJ.mjs';
5
+ import '../chunks/size-DBa57oo1.mjs';
6
+ import '../chunks/number-BBRut9sd.mjs';
7
+ import '../chunks/copy-CWwHjKcM.mjs';
8
+ import '../chunks/color-DawKXV0w.mjs';
9
+ import '../chunks/visibility-DNCA0PW1.mjs';
10
+ import '../chunks/motion-CVaEDLxs.mjs';
11
+
12
+ // Vue3 does NOT pass `h` to the render option; it must be imported. Slot
13
+ // content renders into two marker wrappers, then moveSlots moves it into the
14
+ // component's slot containers.
15
+ const render = function render() {
16
+ return h('div', { class: 'hj-vue-host' }, [
17
+ h('div', { class: 'hj-vue-slot-text', ref: 'slotText' }, this.$slots.default ? this.$slots.default() : []),
18
+ h('div', { class: 'hj-vue-slot-color', ref: 'slotColor' }, this.$slots.color ? this.$slots.color() : [])
19
+ ]);
20
+ };
21
+
22
+ const DlcProgress = /*#__PURE__*/ makeProgressWrapper(createProgressCapsule, render);
23
+
24
+ export { DlcProgress, DlcProgress as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5even7/dlc-ui",
3
- "version": "0.2.24",
3
+ "version": "0.2.25",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -157,6 +157,54 @@
157
157
  "require": "./dist/vue2.cjs",
158
158
  "default": "./dist/vue2.mjs"
159
159
  },
160
+ "./vue2/capsule": {
161
+ "types": "./types/vue2-capsule.d.ts",
162
+ "import": "./dist/vue2/capsule.mjs"
163
+ },
164
+ "./vue2/progress": {
165
+ "types": "./types/vue2-progress.d.ts",
166
+ "import": "./dist/vue2/progress.mjs"
167
+ },
168
+ "./vue2/color": {
169
+ "types": "./types/vue2-color.d.ts",
170
+ "import": "./dist/vue2/color.mjs"
171
+ },
172
+ "./vue2/emo": {
173
+ "types": "./types/vue2-emo.d.ts",
174
+ "import": "./dist/vue2/emo.mjs"
175
+ },
176
+ "./vue2/avatar-creator": {
177
+ "types": "./types/vue2-avatar-creator.d.ts",
178
+ "import": "./dist/vue2/avatar-creator.mjs"
179
+ },
180
+ "./vue2/icon": {
181
+ "types": "./types/vue2-icon.d.ts",
182
+ "import": "./dist/vue2/icon.mjs"
183
+ },
184
+ "./vue3/capsule": {
185
+ "types": "./types/vue3-capsule.d.ts",
186
+ "import": "./dist/vue3/capsule.mjs"
187
+ },
188
+ "./vue3/progress": {
189
+ "types": "./types/vue3-progress.d.ts",
190
+ "import": "./dist/vue3/progress.mjs"
191
+ },
192
+ "./vue3/color": {
193
+ "types": "./types/vue3-color.d.ts",
194
+ "import": "./dist/vue3/color.mjs"
195
+ },
196
+ "./vue3/emo": {
197
+ "types": "./types/vue3-emo.d.ts",
198
+ "import": "./dist/vue3/emo.mjs"
199
+ },
200
+ "./vue3/avatar-creator": {
201
+ "types": "./types/vue3-avatar-creator.d.ts",
202
+ "import": "./dist/vue3/avatar-creator.mjs"
203
+ },
204
+ "./vue3/icon": {
205
+ "types": "./types/vue3-icon.d.ts",
206
+ "import": "./dist/vue3/icon.mjs"
207
+ },
160
208
  "./style.css": "./styles/theme.css",
161
209
  "./capsule/style.css": "./styles/capsule.css",
162
210
  "./progress/style.css": "./styles/progress.css",
@@ -194,7 +242,11 @@
194
242
  "./dist/vue2.mjs",
195
243
  "./dist/vue2.cjs",
196
244
  "./dist/vue3.mjs",
197
- "./dist/vue3.cjs"
245
+ "./dist/vue3.cjs",
246
+ "./dist/vue2/icon.mjs",
247
+ "./dist/vue3/icon.mjs",
248
+ "./dist/vue2/emo.mjs",
249
+ "./dist/vue3/emo.mjs"
198
250
  ],
199
251
  "scripts": {
200
252
  "build": "node scripts/clean-dist.mjs && node scripts/generate-emo-assets.mjs && rollup -c && node scripts/copy-css.mjs",
@@ -0,0 +1,6 @@
1
+ import { AvatarCreatorComponent } from './vue3.js';
2
+
3
+ export { AvatarCreatorComponent };
4
+ export declare const DlcAvatarCreator: AvatarCreatorComponent;
5
+ declare const _default: AvatarCreatorComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { CosmicCapsuleComponent } from './vue3.js';
2
+
3
+ export { CosmicCapsuleComponent };
4
+ export declare const DlcCapsule: CosmicCapsuleComponent;
5
+ declare const _default: CosmicCapsuleComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { ColorBackgroundComponent } from './vue3.js';
2
+
3
+ export { ColorBackgroundComponent };
4
+ export declare const DlcColor: ColorBackgroundComponent;
5
+ declare const _default: ColorBackgroundComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { EmoComponent } from './vue3.js';
2
+
3
+ export { EmoComponent };
4
+ export declare const DlcEmo: EmoComponent;
5
+ declare const _default: EmoComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { IconComponent } from './vue3.js';
2
+
3
+ export { IconComponent };
4
+ export declare const DlcIcon: IconComponent;
5
+ declare const _default: IconComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { ProgressCapsuleComponent } from './vue3.js';
2
+
3
+ export { ProgressCapsuleComponent };
4
+ export declare const DlcProgress: ProgressCapsuleComponent;
5
+ declare const _default: ProgressCapsuleComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { AvatarCreatorComponent } from './vue3.js';
2
+
3
+ export { AvatarCreatorComponent };
4
+ export declare const DlcAvatarCreator: AvatarCreatorComponent;
5
+ declare const _default: AvatarCreatorComponent;
6
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { CosmicCapsuleComponent } from './vue3.js';
2
+
3
+ export { CosmicCapsuleComponent };
4
+
5
+ export declare const DlcCapsule: CosmicCapsuleComponent;
6
+ declare const _default: CosmicCapsuleComponent;
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { ColorBackgroundComponent } from './vue3.js';
2
+
3
+ export { ColorBackgroundComponent };
4
+ export declare const DlcColor: ColorBackgroundComponent;
5
+ declare const _default: ColorBackgroundComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { EmoComponent } from './vue3.js';
2
+
3
+ export { EmoComponent };
4
+ export declare const DlcEmo: EmoComponent;
5
+ declare const _default: EmoComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { IconComponent } from './vue3.js';
2
+
3
+ export { IconComponent };
4
+ export declare const DlcIcon: IconComponent;
5
+ declare const _default: IconComponent;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { ProgressCapsuleComponent } from './vue3.js';
2
+
3
+ export { ProgressCapsuleComponent };
4
+ export declare const DlcProgress: ProgressCapsuleComponent;
5
+ declare const _default: ProgressCapsuleComponent;
6
+ export default _default;