@daflow-ui/ui-dialog 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # @daflow-ui/ui-dialog
2
+
3
+ Dialog component for DaFlow UI.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @daflow-ui/ui-dialog
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ 全局引入样式(在 `main.ts` 中):
14
+
15
+ ```ts
16
+ import '@daflow-ui/ui-dialog/style.css';
17
+ ```
18
+
19
+ 在组件中使用:
20
+
21
+ ```vue
22
+ <script setup lang="ts">
23
+ import { ref } from 'vue';
24
+ import { DfDialog } from '@daflow-ui/ui-dialog';
25
+
26
+ const open = ref(false);
27
+ </script>
28
+
29
+ <template>
30
+ <button @click="open = true">
31
+ 打开对话框
32
+ </button>
33
+
34
+ <DfDialog v-model="open" title="基础对话框">
35
+ <p>这是对话框的主体内容。</p>
36
+
37
+ <template #footer>
38
+ <button @click="open = false">
39
+ 关闭
40
+ </button>
41
+ </template>
42
+ </DfDialog>
43
+ </template>
44
+ ```
45
+
46
+ ## Props
47
+
48
+ | Prop | Type | Default | Description |
49
+ |------|------|---------|-------------|
50
+ | `modelValue` | `boolean` | `false` | 控制显示/隐藏 |
51
+ | `title` | `string` | — | 标题文字;存在 `header` slot 时不生效 |
52
+ | `width` | `string \| number` | `'500px'` | 宽度,传 `number` 自动加 `px` |
53
+ | `destroyOnClose` | `boolean` | `false` | 关闭后销毁内容 DOM,下次打开重新挂载 |
54
+ | `closeOnBackdropClick` | `boolean` | `true` | 点击遮罩是否关闭 |
55
+ | `closeOnEscape` | `boolean` | `true` | 按 `ESC` 是否关闭 |
56
+ | `showClose` | `boolean` | `true` | 是否显示右上角关闭按钮;存在 `header` slot 时不生效 |
57
+ | `beforeClose` | `() => void \| boolean \| Promise<void \| boolean>` | — | 关闭前拦截,显式返回 `false` 阻止关闭 |
58
+
59
+ ## Emits
60
+
61
+ | Event | Payload | Description |
62
+ |-------|---------|-------------|
63
+ | `update:modelValue` | `boolean` | `v-model` 同步 |
64
+ | `open` | — | 开始打开时触发 |
65
+ | `opened` | — | 打开动画结束后触发 |
66
+ | `close` | — | 开始关闭时触发 |
67
+ | `closed` | — | 关闭动画结束后触发 |
68
+
69
+ ## Slots
70
+
71
+ | Slot | Description |
72
+ |------|-------------|
73
+ | `default` | 主体内容区,内容过长时 body 区域自动滚动 |
74
+ | `header` | 自定义头部,完全替换默认头部结构;`title`、内置关闭按钮和默认头部内边距都不会保留 |
75
+ | `footer` | 底部操作区,内置布局与间距,不含预置按钮 |
76
+
77
+ ## Notes
78
+
79
+ - 始终 Teleport 到 `body`
80
+ - 遮罩始终存在,不暴露 `modal` 开关
81
+ - body scroll 锁定由 Ark UI 处理
82
+ - `class` 会透传到 content 根节点
83
+ - `body-inner` 是内部布局用 `data-part`,当前不作为公开 selector contract 承诺
84
+
85
+ ## Development
86
+
87
+ ### Install dependencies
88
+
89
+ ```bash
90
+ pnpm install
91
+ ```
92
+
93
+ ### Start playground (at monorepo root)
94
+
95
+ ```bash
96
+ cd ../..
97
+ pnpm dev
98
+ ```
99
+
100
+ ### Build
101
+
102
+ ```bash
103
+ pnpm build
104
+ ```
105
+
106
+ ### Type check
107
+
108
+ ```bash
109
+ pnpm typecheck
110
+ ```
111
+
112
+ ## License
113
+
114
+ MIT
@@ -0,0 +1,31 @@
1
+ import type { DialogProps } from './types';
2
+ declare var __VLS_35: {}, __VLS_49: {}, __VLS_51: {};
3
+ type __VLS_Slots = {} & {
4
+ header?: (props: typeof __VLS_35) => any;
5
+ } & {
6
+ default?: (props: typeof __VLS_49) => any;
7
+ } & {
8
+ footer?: (props: typeof __VLS_51) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<DialogProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ "update:modelValue": (value: boolean) => any;
12
+ open: () => any;
13
+ opened: () => any;
14
+ close: () => any;
15
+ closed: () => any;
16
+ }, string, import("vue").PublicProps, Readonly<DialogProps> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
18
+ onOpen?: (() => any) | undefined;
19
+ onOpened?: (() => any) | undefined;
20
+ onClose?: (() => any) | undefined;
21
+ onClosed?: (() => any) | undefined;
22
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_WithSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
31
+ //# sourceMappingURL=Dialog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.vue.d.ts","sourceRoot":"","sources":["../src/Dialog.vue"],"names":[],"mappings":"AA8JA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkQ3C,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACpE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;;;;;;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as DfDialog } from './Dialog.vue';
2
+ export type { DialogEmits, DialogProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,129 @@
1
+ import { defineComponent as B, ref as h, watch as V, computed as w, openBlock as n, createBlock as r, unref as d, withCtx as u, Teleport as O, createVNode as f, normalizeStyle as b, normalizeClass as D, renderSlot as m, createElementBlock as C, createTextVNode as N, toDisplayString as $, createCommentVNode as c, createElementVNode as y } from "vue";
2
+ import { Dialog as s } from "@ark-ui/vue";
3
+ const E = {
4
+ key: 0,
5
+ "data-scope": "dialog",
6
+ "data-part": "header"
7
+ }, T = {
8
+ "data-scope": "dialog",
9
+ "data-part": "body"
10
+ }, S = {
11
+ "data-scope": "dialog",
12
+ "data-part": "body-inner"
13
+ }, x = {
14
+ key: 0,
15
+ "data-scope": "dialog",
16
+ "data-part": "footer"
17
+ }, P = /* @__PURE__ */ B({
18
+ name: "DfDialog",
19
+ inheritAttrs: !1,
20
+ __name: "Dialog",
21
+ props: {
22
+ modelValue: { type: Boolean },
23
+ title: {},
24
+ width: { default: "640px" },
25
+ fullscreen: { type: Boolean, default: !1 },
26
+ destroyOnClose: { type: Boolean, default: !1 },
27
+ closeOnBackdropClick: { type: Boolean, default: !0 },
28
+ closeOnEscape: { type: Boolean, default: !0 },
29
+ showClose: { type: Boolean, default: !0 },
30
+ beforeClose: { type: Function }
31
+ },
32
+ emits: ["update:modelValue", "open", "opened", "close", "closed"],
33
+ setup(e, { emit: g }) {
34
+ const o = g, a = h(e.modelValue), i = h(!1);
35
+ V(
36
+ () => e.modelValue,
37
+ (t, l) => {
38
+ if (a.value = t, t !== l) {
39
+ if (t) {
40
+ o("open");
41
+ return;
42
+ }
43
+ o("close");
44
+ }
45
+ }
46
+ );
47
+ const p = w(() => {
48
+ if (!e.fullscreen)
49
+ return { "--df-dialog-width": typeof e.width == "number" ? `${e.width}px` : e.width };
50
+ }), v = ({ open: t }) => {
51
+ if (t) {
52
+ i.value = !1, a.value = !0, o("update:modelValue", !0);
53
+ return;
54
+ }
55
+ if (!e.beforeClose) {
56
+ i.value = !1, a.value = !1, o("update:modelValue", !1);
57
+ return;
58
+ }
59
+ Promise.resolve(e.beforeClose()).then((l) => {
60
+ if (l === !1) {
61
+ i.value = !0, a.value = !0, o("update:modelValue", !0);
62
+ return;
63
+ }
64
+ i.value = !1, a.value = !1, o("update:modelValue", !1);
65
+ });
66
+ }, k = (t) => {
67
+ t.target === t.currentTarget && (t.animationName === "df-dialog-content-in" && o("opened"), t.animationName === "df-dialog-content-out" && !i.value && o("closed"));
68
+ };
69
+ return (t, l) => (n(), r(d(s).Root, {
70
+ open: a.value,
71
+ "lazy-mount": "",
72
+ "unmount-on-exit": e.destroyOnClose,
73
+ "close-on-interact-outside": e.closeOnBackdropClick,
74
+ "close-on-escape": e.closeOnEscape,
75
+ onOpenChange: v
76
+ }, {
77
+ default: u(() => [
78
+ (n(), r(O, { to: "body" }, [
79
+ f(d(s).Backdrop),
80
+ f(d(s).Positioner, {
81
+ "data-fullscreen": e.fullscreen ? "true" : void 0
82
+ }, {
83
+ default: u(() => [
84
+ f(d(s).Content, {
85
+ class: D(t.$attrs.class),
86
+ style: b(p.value),
87
+ "data-fullscreen": e.fullscreen ? "true" : void 0,
88
+ onAnimationend: k
89
+ }, {
90
+ default: u(() => [
91
+ m(t.$slots, "header", {}, () => [
92
+ e.title || e.showClose ? (n(), C("div", E, [
93
+ e.title ? (n(), r(d(s).Title, { key: 0 }, {
94
+ default: u(() => [
95
+ N($(e.title), 1)
96
+ ]),
97
+ _: 1
98
+ })) : c("", !0),
99
+ e.showClose ? (n(), r(d(s).CloseTrigger, { key: 1 }, {
100
+ default: u(() => [...l[0] || (l[0] = [
101
+ y("span", { "aria-hidden": "true" }, "×", -1)
102
+ ])]),
103
+ _: 1
104
+ })) : c("", !0)
105
+ ])) : c("", !0)
106
+ ]),
107
+ y("div", T, [
108
+ y("div", S, [
109
+ m(t.$slots, "default")
110
+ ])
111
+ ]),
112
+ t.$slots.footer ? (n(), C("div", x, [
113
+ m(t.$slots, "footer")
114
+ ])) : c("", !0)
115
+ ]),
116
+ _: 3
117
+ }, 8, ["class", "style", "data-fullscreen"])
118
+ ]),
119
+ _: 3
120
+ }, 8, ["data-fullscreen"])
121
+ ]))
122
+ ]),
123
+ _: 3
124
+ }, 8, ["open", "unmount-on-exit", "close-on-interact-outside", "close-on-escape"]));
125
+ }
126
+ });
127
+ export {
128
+ P as DfDialog
129
+ };
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ :root{--df-z-index-base: 1000;--df-dialog-vertical-margin: 24px;--df-dialog-width: 640px;--df-dialog-padding: 24px;--df-dialog-header-gap: 24px;--df-dialog-backdrop-color: rgba(15, 14, 14, 0.5);--df-dialog-bg: #fff;--df-dialog-radius: 0;--df-dialog-border-width: 0;--df-dialog-border-color: #e7e7e7;--df-dialog-footer-border-width: 0;--df-dialog-footer-border-color: #e7e7e7;--df-dialog-header-padding: var(--df-dialog-padding);--df-dialog-body-padding: 0 var(--df-dialog-padding) var(--df-dialog-padding);--df-dialog-footer-padding: 16px var(--df-dialog-padding);--df-dialog-footer-gap: 8px;--df-dialog-title-font-family: inherit;--df-dialog-title-font-size: 32px;--df-dialog-title-font-weight: 500;--df-dialog-title-line-height: 1.3;--df-dialog-title-color: #0f0e0e;--df-dialog-body-font-family: inherit;--df-dialog-body-font-size: 16px;--df-dialog-body-font-weight: 400;--df-dialog-body-line-height: 24px;--df-dialog-body-color: #4b4a4a;--df-dialog-close-trigger-size: 36px;--df-dialog-close-trigger-color: #878686;--df-dialog-close-trigger-bg: #f8f8f8;--df-dialog-close-trigger-hover-color: #4b4a4a;--df-dialog-close-trigger-hover-bg: #e7e7e7}[data-scope=dialog]{box-sizing:border-box}[data-scope=dialog][data-part=backdrop]{position:fixed;inset:0;z-index:calc(var(--df-z-index-base) + var(--layer-index, 0))}[data-scope=dialog][data-part=positioner]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--df-dialog-vertical-margin) 0;box-sizing:border-box;z-index:calc(var(--df-z-index-base) + var(--layer-index, 0));pointer-events:none}[data-scope=dialog][data-part=positioner][data-fullscreen]{padding:0}[data-scope=dialog][data-part=content]{width:var(--df-dialog-width);max-height:calc(100vh - 2*var(--df-dialog-vertical-margin));display:flex;flex-direction:column;overflow:hidden;outline:none;pointer-events:auto;z-index:calc(var(--df-z-index-base) + var(--layer-index, 0))}[data-scope=dialog][data-part=content][data-fullscreen]{width:100vw;height:100vh;max-height:none;border-width:0;border-radius:0}[data-scope=dialog][data-part=header]{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}[data-scope=dialog][data-part=close-trigger]{display:flex;align-items:center;justify-content:center;width:var(--df-dialog-close-trigger-size);height:var(--df-dialog-close-trigger-size);border:none;background:none;padding:0;margin:0;font-family:inherit;flex-shrink:0;cursor:pointer}[data-scope=dialog][data-part=body]{flex:1;min-height:0;overflow-y:auto}[data-scope=dialog][data-part=body-inner]{padding:var(--df-dialog-body-padding)}[data-scope=dialog][data-part=footer]{display:flex;flex-shrink:0}[data-scope=dialog][data-part=backdrop][hidden],[data-scope=dialog][data-part=positioner][hidden],[data-scope=dialog][data-part=content][hidden]{display:none}:where([data-scope=dialog][data-part=backdrop]){background-color:var(--df-dialog-backdrop-color)}:where([data-scope=dialog][data-part=backdrop])[data-state=open]{animation:df-dialog-backdrop-in .15s ease-out}:where([data-scope=dialog][data-part=backdrop])[data-state=closed]{animation:df-dialog-backdrop-out .15s ease-in forwards}:where([data-scope=dialog][data-part=content]){background-color:var(--df-dialog-bg);border-radius:var(--df-dialog-radius);border:var(--df-dialog-border-width) solid var(--df-dialog-border-color);color:var(--df-dialog-body-color)}:where([data-scope=dialog][data-part=content])[data-state=open]{animation:df-dialog-content-in .15s ease-out}:where([data-scope=dialog][data-part=content])[data-state=closed]{animation:df-dialog-content-out .15s ease-in forwards}:where([data-scope=dialog][data-part=header]){gap:var(--df-dialog-header-gap);padding:var(--df-dialog-header-padding)}:where([data-scope=dialog][data-part=title]){margin:0;font-family:var(--df-dialog-title-font-family);font-size:var(--df-dialog-title-font-size);font-weight:var(--df-dialog-title-font-weight);line-height:var(--df-dialog-title-line-height);color:var(--df-dialog-title-color)}:where([data-scope=dialog][data-part=body]){font-family:var(--df-dialog-body-font-family);font-size:var(--df-dialog-body-font-size);font-weight:var(--df-dialog-body-font-weight);line-height:var(--df-dialog-body-line-height);color:var(--df-dialog-body-color)}:where([data-scope=dialog][data-part=close-trigger]){background-color:var(--df-dialog-close-trigger-bg);color:var(--df-dialog-close-trigger-color)}:where([data-scope=dialog][data-part=close-trigger]):hover{background-color:var(--df-dialog-close-trigger-hover-bg);color:var(--df-dialog-close-trigger-hover-color)}:where([data-scope=dialog][data-part=close-trigger] span){display:inline-flex;align-items:center;justify-content:center;font-size:32px;line-height:1}:where([data-scope=dialog][data-part=footer]){align-items:center;justify-content:flex-end;gap:var(--df-dialog-footer-gap);padding:var(--df-dialog-footer-padding);border-top:var(--df-dialog-footer-border-width) solid var(--df-dialog-footer-border-color)}@keyframes df-dialog-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes df-dialog-backdrop-out{from{opacity:1}to{opacity:0}}@keyframes df-dialog-content-in{from{opacity:0;transform:translateY(-8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes df-dialog-content-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(0.97)}}@media(max-height: 480px){[data-scope=dialog][data-part=positioner]{align-items:flex-start}}
@@ -0,0 +1,82 @@
1
+ export interface DialogProps {
2
+ /**
3
+ * 受控开关状态。
4
+ * 业务通常通过 v-model 控制 Dialog 打开与关闭。
5
+ * @default false
6
+ */
7
+ modelValue: boolean;
8
+ /**
9
+ * 标题文字。
10
+ * 存在 `header` 插槽时不生效。
11
+ * 使用 `header` 插槽时,默认头部结构会被完全替换,内置关闭按钮和默认头部内边距也不会保留。
12
+ */
13
+ title?: string;
14
+ /**
15
+ * 对话框内容区宽度。
16
+ * 传入 number 时自动补 `px`,默认宽度为 `640px`。
17
+ * 此宽度表示最终可见的 Dialog 外框宽度,包含内边距与边框,不是 body 内容区的净宽。
18
+ * `fullscreen=true` 时该属性不生效。
19
+ * @default '640px'
20
+ */
21
+ width?: string | number;
22
+ /**
23
+ * 是否以全屏布局渲染 Dialog。
24
+ * 开启后会覆盖普通模式下的宽度、最大高度、圆角与上下安全边距。
25
+ * 当前仅表示布局模式,不包含内置的全屏切换控件。
26
+ * @default false
27
+ */
28
+ fullscreen?: boolean;
29
+ /**
30
+ * 关闭后卸载内容 DOM,下次打开时重新挂载。
31
+ * 适合需要在每次打开时重建内部状态的场景。
32
+ * @default false
33
+ */
34
+ destroyOnClose?: boolean;
35
+ /**
36
+ * 是否允许通过点击遮罩关闭。
37
+ * 设为 `false` 时,只能通过显式关闭操作或外部修改 `v-model` 关闭。
38
+ * @default true
39
+ */
40
+ closeOnBackdropClick?: boolean;
41
+ /**
42
+ * 是否允许通过按下 `ESC` 关闭。
43
+ * 设为 `false` 时,键盘 `ESC` 不会触发关闭流程。
44
+ * @default true
45
+ */
46
+ closeOnEscape?: boolean;
47
+ /**
48
+ * 是否显示右上角关闭按钮。
49
+ * 存在 `header` 插槽时不生效。
50
+ * @default true
51
+ */
52
+ showClose?: boolean;
53
+ /**
54
+ * 关闭前拦截。
55
+ * 显式返回 `false` 时阻止本次关闭;返回其他值或不返回时放行。
56
+ * 支持同步和异步场景,适合在关闭前做确认或校验。
57
+ */
58
+ beforeClose?: () => void | boolean | Promise<void | boolean>;
59
+ }
60
+ export interface DialogEmits {
61
+ /**
62
+ * v-model 状态同步
63
+ */
64
+ 'update:modelValue': [value: boolean];
65
+ /**
66
+ * 开始打开时触发
67
+ */
68
+ open: [];
69
+ /**
70
+ * 打开动画结束后触发,适合执行依赖稳定 DOM 的逻辑
71
+ */
72
+ opened: [];
73
+ /**
74
+ * 开始关闭时触发,不建议在此阶段重置表单或清空数据
75
+ */
76
+ close: [];
77
+ /**
78
+ * 关闭动画结束后触发,适合做状态清理、表单重置等收尾逻辑
79
+ */
80
+ closed: [];
81
+ }
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC;;OAEG;IACH,IAAI,EAAE,EAAE,CAAA;IACR;;OAEG;IACH,MAAM,EAAE,EAAE,CAAA;IACV;;OAEG;IACH,KAAK,EAAE,EAAE,CAAA;IACT;;OAEG;IACH,MAAM,EAAE,EAAE,CAAA;CACX"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@daflow-ui/ui-dialog",
3
+ "version": "0.1.0",
4
+ "description": "Dialog component for DaFlow UI",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "sideEffects": [
12
+ "**/*.css"
13
+ ],
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js"
23
+ },
24
+ "./style.css": "./dist/style.css"
25
+ },
26
+ "dependencies": {
27
+ "@ark-ui/vue": "5.30.0"
28
+ },
29
+ "peerDependencies": {
30
+ "vue": "^3.5.0"
31
+ },
32
+ "devDependencies": {
33
+ "@seemusic/eslint-config-vue3": "^2.0.0",
34
+ "@types/node": "^22.10.5",
35
+ "@vitejs/plugin-vue": "^6.0.3",
36
+ "@vue/compiler-sfc": "^3.5.27",
37
+ "eslint": "^9.39.2",
38
+ "sass-embedded": "^1.97.3",
39
+ "typescript": "^5.9.3",
40
+ "vite": "^7.3.1",
41
+ "vite-plugin-vue-devtools": "^8.0.5",
42
+ "vue": "^3.5.27",
43
+ "vue-tsc": "^3.2.4"
44
+ },
45
+ "keywords": [
46
+ "vue",
47
+ "ui",
48
+ "component",
49
+ "daflow",
50
+ "dialog"
51
+ ],
52
+ "scripts": {
53
+ "build": "vite build && vue-tsc -p tsconfig.build.json --emitDeclarationOnly",
54
+ "lint": "eslint .",
55
+ "lint:fix": "eslint . --fix",
56
+ "typecheck": "vue-tsc -p tsconfig.json --noEmit"
57
+ }
58
+ }