rappel-ui 1.0.6 → 1.0.8

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 (62) hide show
  1. package/cjs/components/button/src/button.vue.js +1 -1
  2. package/cjs/components/button/src/types.d.ts +1 -1
  3. package/cjs/components/filter-panel/index.d.ts +78 -0
  4. package/cjs/components/filter-panel/index.js +1 -0
  5. package/cjs/components/filter-panel/src/constants.d.ts +1 -0
  6. package/cjs/components/filter-panel/src/filter-panel.vue.js +1 -0
  7. package/cjs/components/filter-panel/src/filter-panel.vue2.js +1 -0
  8. package/cjs/components/filter-panel/src/types.d.ts +18 -0
  9. package/cjs/components/filter-panel/style/css.d.ts +0 -0
  10. package/cjs/components/filter-panel/style/index.d.ts +0 -0
  11. package/cjs/components/index.d.ts +2 -0
  12. package/cjs/components/index.js +1 -1
  13. package/cjs/components/svg-icon/index.d.ts +3 -0
  14. package/cjs/components/svg-icon/index.js +1 -0
  15. package/cjs/components/svg-icon/src/svg-icon.vue.js +1 -0
  16. package/cjs/components/svg-icon/src/svg-icon.vue2.js +1 -0
  17. package/cjs/components/svg-icon/src/types.d.ts +7 -0
  18. package/cjs/components/svg-icon/style/css.d.ts +0 -0
  19. package/cjs/components/svg-icon/style/index.d.ts +0 -0
  20. package/cjs/index.d.ts +77 -0
  21. package/cjs/index.js +1 -1
  22. package/cjs/node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js +1 -0
  23. package/cjs/node_modules/.pnpm/@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js +1 -0
  24. package/cjs/svg-icons/index.d.ts +0 -0
  25. package/cjs/theme-chalk/src/filter-panel.css +1 -0
  26. package/cjs/theme-chalk/src/svg-icon.css +1 -0
  27. package/es/components/button/src/button.vue.mjs +25 -34
  28. package/es/components/button/src/types.d.ts +1 -1
  29. package/es/components/filter-panel/index.d.ts +78 -0
  30. package/es/components/filter-panel/index.mjs +7 -0
  31. package/es/components/filter-panel/src/constants.d.ts +1 -0
  32. package/es/components/filter-panel/src/filter-panel.vue.mjs +158 -0
  33. package/es/components/filter-panel/src/filter-panel.vue2.mjs +4 -0
  34. package/es/components/filter-panel/src/types.d.ts +18 -0
  35. package/es/components/filter-panel/style/css.d.ts +0 -0
  36. package/es/components/filter-panel/style/index.d.ts +0 -0
  37. package/es/components/index.d.ts +2 -0
  38. package/es/components/index.mjs +12 -8
  39. package/es/components/svg-icon/index.d.ts +3 -0
  40. package/es/components/svg-icon/index.mjs +7 -0
  41. package/es/components/svg-icon/src/svg-icon.vue.mjs +33 -0
  42. package/es/components/svg-icon/src/svg-icon.vue2.mjs +4 -0
  43. package/es/components/svg-icon/src/types.d.ts +7 -0
  44. package/es/components/svg-icon/style/css.d.ts +0 -0
  45. package/es/components/svg-icon/style/index.d.ts +0 -0
  46. package/es/index.d.ts +77 -0
  47. package/es/index.mjs +13 -9
  48. package/es/node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs +119 -0
  49. package/es/node_modules/.pnpm/@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs +24 -0
  50. package/es/svg-icons/index.d.ts +0 -0
  51. package/es/theme-chalk/src/filter-panel.css +1 -0
  52. package/es/theme-chalk/src/svg-icon.css +1 -0
  53. package/package.json +1 -1
  54. package/theme-chalk/index.css +35 -0
  55. package/theme-chalk/re-filter-panel.css +53 -0
  56. package/theme-chalk/re-svg-icon.css +50 -0
  57. package/theme-chalk/src/colors.scss +77 -77
  58. package/theme-chalk/src/filter-panel.scss +21 -0
  59. package/theme-chalk/src/index.scss +2 -0
  60. package/theme-chalk/src/mixins/index.scss +11 -0
  61. package/theme-chalk/src/svg-icon.scss +19 -0
  62. package/umd/index.js +10 -10
@@ -0,0 +1,158 @@
1
+ import { defineComponent as A, mergeModels as S, useTemplateRef as c, computed as H, useModel as F, effectScope as L, watchEffect as P, watch as U, onUnmounted as G, onMounted as I, createElementBlock as N, openBlock as v, normalizeStyle as J, normalizeClass as u, unref as o, createElementVNode as h, renderSlot as l, createCommentVNode as V, createBlock as K, withModifiers as b, withCtx as y, createTextVNode as w, toDisplayString as Q, createVNode as z } from "vue";
2
+ /* empty css */
3
+ /* empty css */
4
+ import { useElementSize as x, useMutationObserver as X } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ import { ReButton as g } from "../../button/index.mjs";
6
+ import "../../input/index.mjs";
7
+ import "../../tabs/index.mjs";
8
+ import "../../colors/index.mjs";
9
+ import "../index.mjs";
10
+ import "../../svg-icon/index.mjs";
11
+ import { useNamespace as Y } from "../../../composables/use-namespace/index.mjs";
12
+ const ue = /* @__PURE__ */ A({
13
+ name: "ReFilterPanel",
14
+ __name: "filter-panel",
15
+ props: /* @__PURE__ */ S({
16
+ selector: { default: "> *" },
17
+ maxHeight: { default: 0 },
18
+ itemMinw: { default: 240 },
19
+ exclude: { default: "[exclude]" },
20
+ loading: { type: Boolean, default: !1 },
21
+ enableObserver: { type: Boolean, default: !1 },
22
+ observerOptions: { default: () => ({}) }
23
+ }, {
24
+ isExpand: { type: Boolean, default: !1 },
25
+ isExpandModifiers: {}
26
+ }),
27
+ emits: /* @__PURE__ */ S(["reset", "search"], ["update:isExpand"]),
28
+ setup(a, { expose: R, emit: D }) {
29
+ const { n: T, ns: n } = Y("filter-panel"), $ = c("main"), { height: W } = x($), s = H(() => a.maxHeight || W.value), k = D, E = c("wrapper"), i = c("inner"), r = F(a, "isExpand"), j = H(() => d.value > s.value), M = () => {
30
+ r.value = !r.value;
31
+ }, { height: d, width: p } = x(i, {
32
+ width: 0,
33
+ height: s.value
34
+ }), { width: B } = x(E, {
35
+ width: 0,
36
+ height: s.value
37
+ }), m = () => {
38
+ if (!i.value) return;
39
+ const e = i.value.querySelectorAll(
40
+ `.${n("", "inner")} ${a.selector}:not(${a.exclude})`
41
+ ), t = Math.floor(p.value / a.itemMinw);
42
+ e.forEach((f) => {
43
+ f.style.width = `${100 / t}%`;
44
+ });
45
+ }, C = L();
46
+ C.run(() => {
47
+ P(() => {
48
+ p.value && B.value && m();
49
+ }), U(
50
+ () => d.value,
51
+ (e) => {
52
+ e > s.value && (r.value = !1);
53
+ }
54
+ );
55
+ });
56
+ const q = () => {
57
+ const { stop: e } = X(
58
+ i.value,
59
+ () => {
60
+ m();
61
+ },
62
+ Object.assign(
63
+ {
64
+ childList: !0,
65
+ subtree: !0,
66
+ attributes: !0,
67
+ characterData: !0
68
+ },
69
+ a.observerOptions || {}
70
+ )
71
+ );
72
+ return { stop: e };
73
+ };
74
+ let O;
75
+ return a.enableObserver && (O = q().stop), G(() => {
76
+ C.stop(), O?.();
77
+ }), I(() => {
78
+ m();
79
+ }), R({
80
+ toggle: M,
81
+ update: m,
82
+ isExpand: r,
83
+ innerH: d,
84
+ innerW: p,
85
+ wrapperW: B,
86
+ maxH: s
87
+ }), (e, t) => (v(), N("div", {
88
+ class: u([o(T)("")]),
89
+ style: J({ "max-height": `${r.value ? o(d) : s.value}px` }),
90
+ ref_key: "wrapper",
91
+ ref: E
92
+ }, [
93
+ h("div", {
94
+ class: u([o(n)("", "inner")]),
95
+ ref_key: "inner",
96
+ ref: i
97
+ }, [
98
+ l(e.$slots, "default")
99
+ ], 2),
100
+ h("div", {
101
+ class: u([o(n)("", "operator")])
102
+ }, [
103
+ h("div", {
104
+ ref_key: "main",
105
+ ref: $,
106
+ class: u([o(n)("", "main")])
107
+ }, [
108
+ l(e.$slots, "main", {}, () => [
109
+ l(e.$slots, "expand", {}, () => [
110
+ j.value ? (v(), K(o(g), {
111
+ key: 0,
112
+ type: "primary",
113
+ onClick: b(M, ["stop"])
114
+ }, {
115
+ default: y(() => [
116
+ w(Q(r.value ? "收起" : "展开"), 1)
117
+ ]),
118
+ _: 1
119
+ })) : V("", !0)
120
+ ]),
121
+ l(e.$slots, "reset", {}, () => [
122
+ z(o(g), {
123
+ disabled: a.loading,
124
+ onClick: t[0] || (t[0] = b((f) => k("reset"), ["stop"]))
125
+ }, {
126
+ default: y(() => [...t[2] || (t[2] = [
127
+ w("重置", -1)
128
+ ])]),
129
+ _: 1
130
+ }, 8, ["disabled"])
131
+ ]),
132
+ l(e.$slots, "search", {}, () => [
133
+ z(o(g), {
134
+ type: "primary",
135
+ disabled: a.loading,
136
+ onClick: t[1] || (t[1] = b((f) => k("search"), ["stop"]))
137
+ }, {
138
+ default: y(() => [...t[3] || (t[3] = [
139
+ w(" 查询 ", -1)
140
+ ])]),
141
+ _: 1
142
+ }, 8, ["disabled"])
143
+ ])
144
+ ])
145
+ ], 2),
146
+ e.$slots.extra ? (v(), N("div", {
147
+ key: 0,
148
+ class: u([o(n)("", "extra")])
149
+ }, [
150
+ l(e.$slots, "extra")
151
+ ], 2)) : V("", !0)
152
+ ], 2)
153
+ ], 6));
154
+ }
155
+ });
156
+ export {
157
+ ue as default
158
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./filter-panel.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,18 @@
1
+ interface FilterPanelProps {
2
+ selector?: string;
3
+ maxHeight?: number;
4
+ itemMinw?: number;
5
+ exclude?: string;
6
+ loading?: boolean;
7
+ enableObserver?: boolean;
8
+ observerOptions?: {
9
+ attributeFilter?: string[];
10
+ attributeOldValue?: boolean;
11
+ attributes?: boolean;
12
+ characterData?: boolean;
13
+ characterDataOldValue?: boolean;
14
+ childList?: boolean;
15
+ subtree?: boolean;
16
+ };
17
+ }
18
+ export type { FilterPanelProps };
File without changes
File without changes
@@ -2,3 +2,5 @@ export * from './button';
2
2
  export * from './input';
3
3
  export * from './tabs';
4
4
  export * from './colors';
5
+ export * from './filter-panel';
6
+ export * from './svg-icon';
@@ -1,16 +1,20 @@
1
1
  import { ReButton as e } from "./button/index.mjs";
2
- import { ReInput as a } from "./input/index.mjs";
2
+ import { ReInput as f } from "./input/index.mjs";
3
3
  import { ReTabs as l } from "./tabs/index.mjs";
4
4
  import { ReColors as p } from "./colors/index.mjs";
5
- import { default as R } from "./colors/src/primary-color.vue.mjs";
6
- import { default as s } from "./colors/src/secondary-color.vue.mjs";
7
- import { default as C } from "./colors/src/neutral-color.vue.mjs";
5
+ import { ReFilterPanel as R } from "./filter-panel/index.mjs";
6
+ import { ReSvgIcon as n } from "./svg-icon/index.mjs";
7
+ import { default as d } from "./colors/src/primary-color.vue.mjs";
8
+ import { default as c } from "./colors/src/secondary-color.vue.mjs";
9
+ import { default as y } from "./colors/src/neutral-color.vue.mjs";
8
10
  export {
9
11
  e as ReButton,
10
12
  p as ReColors,
11
- a as ReInput,
12
- C as ReNeutralColor,
13
- R as RePrimaryColor,
14
- s as ReSecondaryColor,
13
+ R as ReFilterPanel,
14
+ f as ReInput,
15
+ y as ReNeutralColor,
16
+ d as RePrimaryColor,
17
+ c as ReSecondaryColor,
18
+ n as ReSvgIcon,
15
19
  l as ReTabs
16
20
  };
@@ -0,0 +1,3 @@
1
+ export * from './src/types';
2
+ export declare const ReSvgIcon: import('vue').DefineComponent<import('.').SvgIconProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('.').SvgIconProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, SVGSVGElement>;
3
+ export default ReSvgIcon;
@@ -0,0 +1,7 @@
1
+ import { withInstall as o } from "../../utils/vue/index.mjs";
2
+ import t from "./src/svg-icon.vue.mjs";
3
+ const a = o(t);
4
+ export {
5
+ a as ReSvgIcon,
6
+ a as default
7
+ };
@@ -0,0 +1,33 @@
1
+ import { defineComponent as a, computed as t, createElementBlock as s, openBlock as u, normalizeStyle as m, normalizeClass as f, unref as o, createElementVNode as d } from "vue";
2
+ /* empty css */
3
+ /* empty css */
4
+ import { useNamespace as h } from "../../../composables/use-namespace/index.mjs";
5
+ const v = ["d", "fill"], p = /* @__PURE__ */ a({
6
+ name: "ReSvgIcon",
7
+ __name: "svg-icon",
8
+ props: {
9
+ path: { default: "" },
10
+ size: { default: 16 },
11
+ color: { default: "currentColor" },
12
+ spin: { type: Boolean, default: !1 }
13
+ },
14
+ setup(e) {
15
+ const { n, ns: l } = h("svg-icon"), i = t(() => typeof e.size == "number" ? `${e.size}px` : e.size), r = t(() => typeof e.size == "number" ? `${e.size}px` : e.size), c = t(() => e.color === "currentColor" ? "currentColor" : e.color);
16
+ return (z, g) => (u(), s("svg", {
17
+ class: f([o(n)(""), { [o(l)("", "spinner")]: e.spin }]),
18
+ style: m({ width: i.value, height: r.value, color: e.color }),
19
+ viewBox: "0 0 24 24",
20
+ fill: "none",
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ "aria-hidden": "true"
23
+ }, [
24
+ d("path", {
25
+ d: e.path,
26
+ fill: c.value
27
+ }, null, 8, v)
28
+ ], 6));
29
+ }
30
+ });
31
+ export {
32
+ p as default
33
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./svg-icon.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,7 @@
1
+ interface SvgIconProps {
2
+ path: string;
3
+ size?: string | number;
4
+ color?: string;
5
+ spin?: boolean;
6
+ }
7
+ export type { SvgIconProps };
File without changes
File without changes
package/es/index.d.ts CHANGED
@@ -80,6 +80,83 @@ declare const _default: {
80
80
  RePrimaryColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
81
81
  ReSecondaryColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
82
82
  ReNeutralColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
83
+ ReFilterPanel: {
84
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
85
+ isExpand?: boolean;
86
+ } & components.FilterPanelProps> & Readonly<{
87
+ onSearch?: ((...args: any[]) => any) | undefined;
88
+ onReset?: ((...args: any[]) => any) | undefined;
89
+ "onUpdate:isExpand"?: ((value: boolean) => any) | undefined;
90
+ }>, {
91
+ toggle: () => void;
92
+ update: () => void;
93
+ isExpand: import('vue').ModelRef<boolean, string, boolean, boolean>;
94
+ innerH: import('vue').ShallowRef<number, number>;
95
+ innerW: import('vue').ShallowRef<number, number>;
96
+ wrapperW: import('vue').ShallowRef<number, number>;
97
+ maxH: import('vue').ComputedRef<number>;
98
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
99
+ search: (...args: any[]) => void;
100
+ reset: (...args: any[]) => void;
101
+ "update:isExpand": (value: boolean) => void;
102
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
103
+ wrapper: HTMLDivElement;
104
+ inner: HTMLDivElement;
105
+ main: HTMLDivElement;
106
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
107
+ P: {};
108
+ B: {};
109
+ D: {};
110
+ C: {};
111
+ M: {};
112
+ Defaults: {};
113
+ }, Readonly<{
114
+ isExpand?: boolean;
115
+ } & components.FilterPanelProps> & Readonly<{
116
+ onSearch?: ((...args: any[]) => any) | undefined;
117
+ onReset?: ((...args: any[]) => any) | undefined;
118
+ "onUpdate:isExpand"?: ((value: boolean) => any) | undefined;
119
+ }>, {
120
+ toggle: () => void;
121
+ update: () => void;
122
+ isExpand: import('vue').ModelRef<boolean, string, boolean, boolean>;
123
+ innerH: import('vue').ShallowRef<number, number>;
124
+ innerW: import('vue').ShallowRef<number, number>;
125
+ wrapperW: import('vue').ShallowRef<number, number>;
126
+ maxH: import('vue').ComputedRef<number>;
127
+ }, {}, {}, {}, {}>;
128
+ __isFragment?: never;
129
+ __isTeleport?: never;
130
+ __isSuspense?: never;
131
+ } & import('vue').ComponentOptionsBase<Readonly<{
132
+ isExpand?: boolean;
133
+ } & components.FilterPanelProps> & Readonly<{
134
+ onSearch?: ((...args: any[]) => any) | undefined;
135
+ onReset?: ((...args: any[]) => any) | undefined;
136
+ "onUpdate:isExpand"?: ((value: boolean) => any) | undefined;
137
+ }>, {
138
+ toggle: () => void;
139
+ update: () => void;
140
+ isExpand: import('vue').ModelRef<boolean, string, boolean, boolean>;
141
+ innerH: import('vue').ShallowRef<number, number>;
142
+ innerW: import('vue').ShallowRef<number, number>;
143
+ wrapperW: import('vue').ShallowRef<number, number>;
144
+ maxH: import('vue').ComputedRef<number>;
145
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
146
+ search: (...args: any[]) => void;
147
+ reset: (...args: any[]) => void;
148
+ "update:isExpand": (value: boolean) => void;
149
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
150
+ $slots: {
151
+ default?(_: {}): any;
152
+ main?(_: {}): any;
153
+ expand?(_: {}): any;
154
+ reset?(_: {}): any;
155
+ search?(_: {}): any;
156
+ extra?(_: {}): any;
157
+ };
158
+ });
159
+ ReSvgIcon: import('vue').DefineComponent<components.SvgIconProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<components.SvgIconProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, SVGSVGElement>;
83
160
  install: (app: import('vue').App) => void;
84
161
  version: string;
85
162
  };
package/es/index.mjs CHANGED
@@ -8,9 +8,9 @@ import { useDateFormat as y } from "./composables/useDateFormat.mjs";
8
8
  import { useOnceFn as L } from "./composables/useOnceFn.mjs";
9
9
  import { useTimeNodes as F } from "./composables/useTimeNodes.mjs";
10
10
  import { useWaterFallLayout as O } from "./composables/useWaterFallLayout.mjs";
11
- import { useNamespace as E } from "./composables/use-namespace/index.mjs";
11
+ import { useNamespace as D } from "./composables/use-namespace/index.mjs";
12
12
  import { createGlobalInstaller as r } from "./utils/vue/index.mjs";
13
- import { INSTALLED_KEY as h, toLowerCase as w, withInstall as N, withMultiInstall as P } from "./utils/vue/index.mjs";
13
+ import { INSTALLED_KEY as P, toLowerCase as h, withInstall as w, withMultiInstall as N } from "./utils/vue/index.mjs";
14
14
  import { autoCalcFileSize as z, buildTree as B, createColors as K, createOverload as U, darkenColor as k, deepClone as A, deleteKeys as q, flatArr as G, getEqualOpacityColor as M, hasOwnProperty as W, isPlainObject as Y, joinURLs as _, lineBreakToComma as $, omitEmptyKeys as H, paramsToFormData as J, readTxtByEncodes as Q, readTxtFile as V, setURLSearchParams as X, singleton as Z } from "./utils/util.mjs";
15
15
  import { default as oe } from "./components/colors/src/primary-color.vue.mjs";
16
16
  import { default as te } from "./components/colors/src/secondary-color.vue.mjs";
@@ -19,21 +19,25 @@ import { ReButton as me } from "./components/button/index.mjs";
19
19
  import { ReInput as ne } from "./components/input/index.mjs";
20
20
  import { ReTabs as fe } from "./components/tabs/index.mjs";
21
21
  import { ReColors as ue } from "./components/colors/index.mjs";
22
- import { RappelUIResolver as ce } from "./rappel-ui/resolver.mjs";
22
+ import { ReFilterPanel as ce } from "./components/filter-panel/index.mjs";
23
+ import { ReSvgIcon as Ce } from "./components/svg-icon/index.mjs";
24
+ import { RappelUIResolver as ve } from "./rappel-ui/resolver.mjs";
23
25
  const o = r(Object.values(e)), t = o.install, a = o.version, s = {
24
26
  install: t,
25
27
  version: a,
26
28
  ...e
27
29
  };
28
30
  export {
29
- h as INSTALLED_KEY,
30
- ce as RappelUIResolver,
31
+ P as INSTALLED_KEY,
32
+ ve as RappelUIResolver,
31
33
  me as ReButton,
32
34
  ue as ReColors,
35
+ ce as ReFilterPanel,
33
36
  ne as ReInput,
34
37
  le as ReNeutralColor,
35
38
  oe as RePrimaryColor,
36
39
  te as ReSecondaryColor,
40
+ Ce as ReSvgIcon,
37
41
  fe as ReTabs,
38
42
  u as applyResizable,
39
43
  z as autoCalcFileSize,
@@ -59,10 +63,10 @@ export {
59
63
  X as setURLSearchParams,
60
64
  Z as singleton,
61
65
  n as svgLoadingContent,
62
- w as toLowerCase,
66
+ h as toLowerCase,
63
67
  y as useDateFormat,
64
68
  g as useDraggable,
65
- E as useNamespace,
69
+ D as useNamespace,
66
70
  L as useOnceFn,
67
71
  F as useTimeNodes,
68
72
  O as useWaterFallLayout,
@@ -70,6 +74,6 @@ export {
70
74
  d as vResizable,
71
75
  R as vSvgLoading,
72
76
  a as version,
73
- N as withInstall,
74
- P as withMultiInstall
77
+ w as withInstall,
78
+ N as withMultiInstall
75
79
  };
@@ -0,0 +1,119 @@
1
+ import { tryOnMounted as B, toArray as R, notNullish as $, tryOnScopeDispose as M, isClient as z } from "../../../../../@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs";
2
+ import { getLifeCycleTarget as D } from "../../../../../@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs";
3
+ import { computed as w, shallowRef as b, watch as x, toValue as g, getCurrentInstance as C, onMounted as W } from "vue";
4
+ const O = z ? window : void 0;
5
+ function d(o) {
6
+ var t;
7
+ const r = g(o);
8
+ return (t = r?.$el) !== null && t !== void 0 ? t : r;
9
+ }
10
+ // @__NO_SIDE_EFFECTS__
11
+ function E() {
12
+ const o = b(!1), t = C();
13
+ return t && W(() => {
14
+ o.value = !0;
15
+ }, t), o;
16
+ }
17
+ // @__NO_SIDE_EFFECTS__
18
+ function S(o) {
19
+ const t = /* @__PURE__ */ E();
20
+ return w(() => (t.value, !!o()));
21
+ }
22
+ function y(o, t, r = {}) {
23
+ const { window: c = O, ...l } = r;
24
+ let n;
25
+ const s = /* @__PURE__ */ S(() => c && "MutationObserver" in c), i = () => {
26
+ n && (n.disconnect(), n = void 0);
27
+ }, a = x(w(() => {
28
+ const e = R(g(o)).map(d).filter($);
29
+ return new Set(e);
30
+ }), (e) => {
31
+ i(), s.value && e.size && (n = new MutationObserver(t), e.forEach((p) => n.observe(p, l)));
32
+ }, {
33
+ immediate: !0,
34
+ flush: "post"
35
+ }), f = () => n?.takeRecords(), u = () => {
36
+ a(), i();
37
+ };
38
+ return M(u), {
39
+ isSupported: s,
40
+ stop: u,
41
+ takeRecords: f
42
+ };
43
+ }
44
+ function _(o, t, r = {}) {
45
+ const { window: c = O, ...l } = r;
46
+ let n;
47
+ const s = /* @__PURE__ */ S(() => c && "ResizeObserver" in c), i = () => {
48
+ n && (n.disconnect(), n = void 0);
49
+ }, a = x(w(() => {
50
+ const u = g(o);
51
+ return Array.isArray(u) ? u.map((e) => d(e)) : [d(u)];
52
+ }), (u) => {
53
+ if (i(), s.value && c) {
54
+ n = new ResizeObserver(t);
55
+ for (const e of u) e && n.observe(e, l);
56
+ }
57
+ }, {
58
+ immediate: !0,
59
+ flush: "post"
60
+ }), f = () => {
61
+ i(), a();
62
+ };
63
+ return M(f), {
64
+ isSupported: s,
65
+ stop: f
66
+ };
67
+ }
68
+ function H(o, t = {
69
+ width: 0,
70
+ height: 0
71
+ }, r = {}) {
72
+ const { window: c = O, box: l = "content-box" } = r, n = w(() => {
73
+ var e;
74
+ return (e = d(o)) === null || e === void 0 || (e = e.namespaceURI) === null || e === void 0 ? void 0 : e.includes("svg");
75
+ }), s = b(t.width), i = b(t.height), { stop: a } = _(o, ([e]) => {
76
+ const p = l === "border-box" ? e.borderBoxSize : l === "content-box" ? e.contentBoxSize : e.devicePixelContentBoxSize;
77
+ if (c && n.value) {
78
+ const h = d(o);
79
+ if (h) {
80
+ const v = h.getBoundingClientRect();
81
+ s.value = v.width, i.value = v.height;
82
+ }
83
+ } else if (p) {
84
+ const h = R(p);
85
+ s.value = h.reduce((v, { inlineSize: m }) => v + m, 0), i.value = h.reduce((v, { blockSize: m }) => v + m, 0);
86
+ } else
87
+ s.value = e.contentRect.width, i.value = e.contentRect.height;
88
+ }, r);
89
+ B(() => {
90
+ const e = d(o);
91
+ e && (s.value = "offsetWidth" in e ? e.offsetWidth : t.width, i.value = "offsetHeight" in e ? e.offsetHeight : t.height);
92
+ });
93
+ const f = x(() => d(o), (e) => {
94
+ s.value = e ? t.width : 0, i.value = e ? t.height : 0;
95
+ });
96
+ function u() {
97
+ a(), f();
98
+ }
99
+ return {
100
+ width: s,
101
+ height: i,
102
+ stop: u
103
+ };
104
+ }
105
+ export {
106
+ O as defaultWindow,
107
+ D as getLifeCycleTarget,
108
+ z as isClient,
109
+ $ as notNullish,
110
+ R as toArray,
111
+ B as tryOnMounted,
112
+ M as tryOnScopeDispose,
113
+ d as unrefElement,
114
+ H as useElementSize,
115
+ E as useMounted,
116
+ y as useMutationObserver,
117
+ _ as useResizeObserver,
118
+ S as useSupported
119
+ };
@@ -0,0 +1,24 @@
1
+ import { onMounted as o, nextTick as r, getCurrentScope as i, onScopeDispose as u, getCurrentInstance as c } from "vue";
2
+ function l(e, n) {
3
+ return i() ? (u(e, n), !0) : !1;
4
+ }
5
+ const p = typeof window < "u" && typeof document < "u";
6
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
7
+ const d = (e) => e != null;
8
+ function a(e) {
9
+ return Array.isArray(e) ? e : [e];
10
+ }
11
+ function f(e) {
12
+ return c();
13
+ }
14
+ function y(e, n = !0, t) {
15
+ f() ? o(e, t) : n ? e() : r(e);
16
+ }
17
+ export {
18
+ f as getLifeCycleTarget,
19
+ p as isClient,
20
+ d as notNullish,
21
+ a as toArray,
22
+ y as tryOnMounted,
23
+ l as tryOnScopeDispose
24
+ };
File without changes
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.re-filter-panel{display:flex;align-items:start;overflow:hidden;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;border-radius:4px}.re-filter-panel__inner{flex:1;min-width:0;display:flex;flex-wrap:wrap}.re-filter-panel__extra{margin-top:1em}
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.re-svg-icon{display:inline-block;vertical-align:middle}.re-svg-icon__spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rappel-ui",
3
3
  "private": false,
4
- "version": "1.0.6",
4
+ "version": "1.0.8",
5
5
  "description": "a vue3 ui library",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -623,4 +623,39 @@ body {
623
623
  background-image: linear-gradient(45deg, #ededf0 25%, transparent 25%), linear-gradient(-45deg, #ededf0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ededf0 75%), linear-gradient(-45deg, transparent 75%, #ededf0 75%);
624
624
  background-size: 22px 22px;
625
625
  background-position: 0 0, 0 11px, 11px -11px, -11px 0px;
626
+ }
627
+
628
+ .re-filter-panel {
629
+ display: flex;
630
+ align-items: start;
631
+ overflow: hidden;
632
+ transition-property: all;
633
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
634
+ transition-duration: 300ms;
635
+ border-radius: 4px;
636
+ }
637
+ .re-filter-panel__inner {
638
+ flex: 1;
639
+ min-width: 0;
640
+ display: flex;
641
+ flex-wrap: wrap;
642
+ }
643
+ .re-filter-panel__extra {
644
+ margin-top: 1em;
645
+ }
646
+
647
+ .re-svg-icon {
648
+ display: inline-block;
649
+ vertical-align: middle;
650
+ }
651
+ .re-svg-icon__spinner {
652
+ animation: spin 1s linear infinite;
653
+ }
654
+ @keyframes spin {
655
+ from {
656
+ transform: rotate(0deg);
657
+ }
658
+ to {
659
+ transform: rotate(360deg);
660
+ }
626
661
  }