@forizi-tecnologia/ui 0.0.5 → 0.0.7

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.
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as l, ref as t, createBlock as a, openBlock as f } from "vue";
2
- import { F as m } from "./messages-FzCustomConfirmDialog-DiuYkXxY.js";
2
+ import { F as m } from "./messages-FzCustomConfirmDialog-CcADw89-.js";
3
3
  const p = /* @__PURE__ */ l({
4
4
  __name: "FzConfirmDialog",
5
5
  setup(c, { expose: n }) {
@@ -15,4 +15,4 @@ const p = /* @__PURE__ */ l({
15
15
  export {
16
16
  p as _
17
17
  };
18
- //# sourceMappingURL=messages-FzConfirmDialog-CkESdVvg.js.map
18
+ //# sourceMappingURL=messages-FzConfirmDialog-BvnTIYZm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages-FzConfirmDialog-CkESdVvg.js","sources":["../../../src/components/messages/FzConfirmDialog.vue"],"sourcesContent":["<template>\n <FzCustomConfirmDialog ref=\"customDialogRef\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport FzCustomConfirmDialog from './FzCustomConfirmDialog.vue';\nimport type { ConfirmOptions } from '@/utils/types';\n\nconst customDialogRef = ref<InstanceType<typeof FzCustomConfirmDialog> | null>(null);\n\nconst confirmDialog = (title: string, message: string, options?: ConfirmOptions): Promise<boolean> => {\n if (!customDialogRef.value) return Promise.resolve(false);\n\n return customDialogRef.value.confirmDialog(title, message, options);\n};\n\ndefineExpose({\n confirmDialog,\n});\n</script>\n"],"names":["customDialogRef","ref","__expose","title","message","options","_createBlock","FzCustomConfirmDialog"],"mappings":";;;;;AASA,UAAMA,IAAkBC,EAAuD,IAAI;AAQnF,WAAAC,EAAa;AAAA,MACX,eAPoB,CAACC,GAAeC,GAAiBC,MAChDL,EAAgB,QAEdA,EAAgB,MAAM,cAAcG,GAAOC,GAASC,CAAO,IAF/B,QAAQ,QAAQ,EAAK;AAAA,IAMxD,CACD,mBAlBCC,EAA+CC,GAAA;AAAA,eAApB;AAAA,MAAJ,KAAIP;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"messages-FzConfirmDialog-BvnTIYZm.js","sources":["../../../src/components/messages/FzConfirmDialog.vue"],"sourcesContent":["<template>\n <FzCustomConfirmDialog ref=\"customDialogRef\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport FzCustomConfirmDialog from './FzCustomConfirmDialog.vue';\nimport type { ConfirmOptions } from '@/utils/types';\n\nconst customDialogRef = ref<InstanceType<typeof FzCustomConfirmDialog> | null>(null);\n\nconst confirmDialog = (title: string, message: string, options?: ConfirmOptions): Promise<boolean> => {\n if (!customDialogRef.value) return Promise.resolve(false);\n\n return customDialogRef.value.confirmDialog(title, message, options);\n};\n\ndefineExpose({\n confirmDialog,\n});\n</script>\n"],"names":["customDialogRef","ref","__expose","title","message","options","_createBlock","FzCustomConfirmDialog"],"mappings":";;;;;AASA,UAAMA,IAAkBC,EAAuD,IAAI;AAQnF,WAAAC,EAAa;AAAA,MACX,eAPoB,CAACC,GAAeC,GAAiBC,MAChDL,EAAgB,QAEdA,EAAgB,MAAM,cAAcG,GAAOC,GAASC,CAAO,IAF/B,QAAQ,QAAQ,EAAK;AAAA,IAMxD,CACD,mBAlBCC,EAA+CC,GAAA;AAAA,eAApB;AAAA,MAAJ,KAAIP;AAAA,IAAA;;;"}
@@ -0,0 +1,118 @@
1
+ import { defineComponent as L, ref as t, onMounted as M, onUnmounted as S, watch as j, resolveComponent as r, createBlock as D, openBlock as p, Teleport as O, createVNode as a, Transition as R, withCtx as n, createElementBlock as I, createCommentVNode as E, withModifiers as K, createElementVNode as U, createTextVNode as i, toDisplayString as u } from "vue";
2
+ import { u as N } from "../utils/confirm-DiGEPjua.js";
3
+ import { _ as Y } from "./inputs-FzMoneyField-Co9uqB9u.js";
4
+ const q = { class: "text-h6 font-weight-medium" }, A = /* @__PURE__ */ L({
5
+ __name: "FzCustomConfirmDialog",
6
+ setup(G, { expose: P }) {
7
+ const l = t(!1), x = t(""), f = t(""), d = t(!0), C = t(!1), y = t(""), g = t(""), k = t("primary"), w = t("secondary");
8
+ let c = null;
9
+ const h = (e, s, o) => (x.value = e, f.value = s, d.value = o?.persistent ?? !0, C.value = o?.enterToConfirm ?? !1, y.value = o?.confirmText ?? "Sim", g.value = o?.cancelText ?? "Não", k.value = o?.confirmColor ?? "primary", w.value = o?.cancelColor ?? "secondary", l.value = !0, new Promise((_) => {
10
+ c = _;
11
+ }));
12
+ M(() => {
13
+ N().setConfirmRef({ confirmDialog: h });
14
+ }), S(() => {
15
+ N().setConfirmRef({ confirmDialog: () => Promise.resolve(!1) }), document.removeEventListener("keydown", v);
16
+ });
17
+ const T = () => {
18
+ c && c(!0), l.value = !1;
19
+ }, m = () => {
20
+ c && c(!1), l.value = !1;
21
+ }, V = () => {
22
+ d.value || m();
23
+ }, v = (e) => {
24
+ if (e.key === "Enter" && C.value) {
25
+ e.preventDefault(), T();
26
+ return;
27
+ }
28
+ if (e.key === "Escape") {
29
+ if (d.value) return;
30
+ e.preventDefault(), m();
31
+ }
32
+ };
33
+ return j(l, (e) => {
34
+ e ? document.addEventListener("keydown", v) : document.removeEventListener("keydown", v);
35
+ }), P({
36
+ confirmDialog: h
37
+ }), (e, s) => {
38
+ const o = r("v-icon"), _ = r("v-card-title"), z = r("v-card-text"), b = r("v-btn"), B = r("v-card-actions"), F = r("v-card");
39
+ return p(), D(O, { to: "body" }, [
40
+ a(R, { name: "dialog-fade" }, {
41
+ default: n(() => [
42
+ l.value ? (p(), I("div", {
43
+ key: 0,
44
+ class: "custom-dialog-overlay d-flex align-center justify-center pa-4",
45
+ onClick: K(V, ["self"])
46
+ }, [
47
+ a(F, {
48
+ class: "flex-grow-1",
49
+ "max-width": "500",
50
+ elevation: 12
51
+ }, {
52
+ default: n(() => [
53
+ a(_, { class: "d-flex align-center ga-3 px-6 pb-4 pt-6" }, {
54
+ default: n(() => [
55
+ a(o, {
56
+ color: "warning",
57
+ size: "28"
58
+ }, {
59
+ default: n(() => [...s[0] || (s[0] = [
60
+ i("mdi-help-circle", -1)
61
+ ])]),
62
+ _: 1
63
+ }),
64
+ U("span", q, u(x.value), 1)
65
+ ]),
66
+ _: 1
67
+ }),
68
+ f.value ? (p(), D(z, {
69
+ key: 0,
70
+ class: "px-6 pb-4 text-body-2"
71
+ }, {
72
+ default: n(() => [
73
+ i(u(f.value), 1)
74
+ ]),
75
+ _: 1
76
+ })) : E("", !0),
77
+ a(B, { class: "d-flex justify-end ga-2 px-6 pb-6 pt-2" }, {
78
+ default: n(() => [
79
+ a(b, {
80
+ color: k.value,
81
+ variant: "elevated",
82
+ class: "text-none",
83
+ onClick: T
84
+ }, {
85
+ default: n(() => [
86
+ i(u(y.value), 1)
87
+ ]),
88
+ _: 1
89
+ }, 8, ["color"]),
90
+ a(b, {
91
+ color: w.value,
92
+ variant: "outlined",
93
+ class: "text-none",
94
+ onClick: m
95
+ }, {
96
+ default: n(() => [
97
+ i(u(g.value), 1)
98
+ ]),
99
+ _: 1
100
+ }, 8, ["color"])
101
+ ]),
102
+ _: 1
103
+ })
104
+ ]),
105
+ _: 1
106
+ })
107
+ ])) : E("", !0)
108
+ ]),
109
+ _: 1
110
+ })
111
+ ]);
112
+ };
113
+ }
114
+ }), W = /* @__PURE__ */ Y(A, [["__scopeId", "data-v-fe279f13"]]);
115
+ export {
116
+ W as F
117
+ };
118
+ //# sourceMappingURL=messages-FzCustomConfirmDialog-CcADw89-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-FzCustomConfirmDialog-CcADw89-.js","sources":["../../../src/components/messages/FzCustomConfirmDialog.vue"],"sourcesContent":["<template>\n <Teleport to=\"body\">\n <Transition name=\"dialog-fade\">\n <div\n v-if=\"isOpen\"\n class=\"custom-dialog-overlay d-flex align-center justify-center pa-4\"\n @click.self=\"handleOverlayClick\"\n >\n <v-card class=\"flex-grow-1\" max-width=\"500\" :elevation=\"12\">\n <v-card-title class=\"d-flex align-center ga-3 px-6 pb-4 pt-6\">\n <v-icon color=\"warning\" size=\"28\">mdi-help-circle</v-icon>\n <span class=\"text-h6 font-weight-medium\">{{ currentTitle }}</span>\n </v-card-title>\n\n <v-card-text v-if=\"currentMessage\" class=\"px-6 pb-4 text-body-2\">\n {{ currentMessage }}\n </v-card-text>\n\n <v-card-actions class=\"d-flex justify-end ga-2 px-6 pb-6 pt-2\">\n <v-btn :color=\"confirmColor\" variant=\"elevated\" class=\"text-none\" @click=\"handleYes\">\n {{ confirmText }}\n </v-btn>\n <v-btn :color=\"cancelColor\" variant=\"outlined\" class=\"text-none\" @click=\"handleNo\">\n {{ cancelText }}\n </v-btn>\n </v-card-actions>\n </v-card>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onMounted, onUnmounted } from 'vue';\nimport type { ConfirmOptions } from '@/utils/types';\nimport { useConfirmStore } from '@/utils/confirm';\n\nconst isOpen = ref(false);\nconst currentTitle = ref('');\nconst currentMessage = ref('');\nconst isPersistent = ref(true);\nconst enterToConfirm = ref(false);\nconst confirmText = ref('');\nconst cancelText = ref('');\nconst confirmColor = ref('primary');\nconst cancelColor = ref('secondary');\nlet resolvePromise: ((value: boolean) => void) | null = null;\n\nconst confirmDialog = (title: string, message: string, options?: ConfirmOptions): Promise<boolean> => {\n currentTitle.value = title;\n currentMessage.value = message;\n isPersistent.value = options?.persistent ?? true;\n enterToConfirm.value = options?.enterToConfirm ?? false;\n confirmText.value = options?.confirmText ?? 'Sim';\n cancelText.value = options?.cancelText ?? 'Não';\n confirmColor.value = options?.confirmColor ?? 'primary';\n cancelColor.value = options?.cancelColor ?? 'secondary';\n isOpen.value = true;\n\n return new Promise((resolve) => {\n resolvePromise = resolve;\n });\n};\n\nonMounted(() => {\n useConfirmStore().setConfirmRef({ confirmDialog });\n});\n\nonUnmounted(() => {\n useConfirmStore().setConfirmRef({ confirmDialog: () => Promise.resolve(false) });\n document.removeEventListener('keydown', handleKeydown);\n});\n\nconst handleYes = () => {\n if (resolvePromise) resolvePromise(true);\n\n isOpen.value = false;\n};\n\nconst handleNo = () => {\n if (resolvePromise) resolvePromise(false);\n\n isOpen.value = false;\n};\n\nconst handleOverlayClick = () => {\n if (isPersistent.value) return;\n\n handleNo();\n};\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && enterToConfirm.value) {\n event.preventDefault();\n handleYes();\n\n return;\n }\n\n if (event.key === 'Escape') {\n if (isPersistent.value) return;\n\n event.preventDefault();\n handleNo();\n }\n};\n\nwatch(isOpen, (open) => {\n if (open) {\n document.addEventListener('keydown', handleKeydown);\n } else {\n document.removeEventListener('keydown', handleKeydown);\n }\n});\n\ndefineExpose({\n confirmDialog,\n});\n</script>\n\n<style scoped>\n.custom-dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 2400;\n}\n\n.dialog-fade-enter-active,\n.dialog-fade-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.dialog-fade-enter-from,\n.dialog-fade-leave-to {\n opacity: 0;\n}\n\n.dialog-fade-enter-active .v-card,\n.dialog-fade-leave-active .v-card {\n transition: transform 0.2s ease;\n}\n\n.dialog-fade-enter-from .v-card {\n transform: scale(0.9);\n}\n\n.dialog-fade-leave-to .v-card {\n transform: scale(0.9);\n}\n</style>\n"],"names":["isOpen","ref","currentTitle","currentMessage","isPersistent","enterToConfirm","confirmText","cancelText","confirmColor","cancelColor","resolvePromise","confirmDialog","title","message","options","resolve","onMounted","useConfirmStore","onUnmounted","handleKeydown","handleYes","handleNo","handleOverlayClick","event","watch","open","__expose","_createBlock","_Teleport","_createVNode","_Transition","_createElementBlock","_component_v_card","_component_v_card_title","_component_v_icon","_cache","_createElementVNode","_hoisted_1","_toDisplayString","_component_v_card_text","_component_v_card_actions","_component_v_btn"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as F, computed as f, resolveComponent as a, createBlock as s, openBlock as c, withCtx as r, createVNode as d, createCommentVNode as y, createElementVNode as z, createTextVNode as p, toDisplayString as u, renderSlot as P, createElementBlock as M, Fragment as O, renderList as S } from "vue";
1
+ import { defineComponent as F, computed as m, resolveComponent as a, createBlock as s, openBlock as c, withCtx as r, createVNode as u, createCommentVNode as _, createElementVNode as z, createTextVNode as p, toDisplayString as d, renderSlot as P, createElementBlock as M, Fragment as O, renderList as S } from "vue";
2
2
  import { useTheme as W } from "vuetify";
3
3
  import { _ as L } from "./inputs-FzMoneyField-Co9uqB9u.js";
4
4
  const R = /* @__PURE__ */ F({
@@ -9,6 +9,7 @@ const R = /* @__PURE__ */ F({
9
9
  message: { default: "" },
10
10
  maxWidth: { default: 500 },
11
11
  persistent: { type: Boolean, default: !0 },
12
+ enterToConfirm: { type: Boolean, default: !1 },
12
13
  actions: { default: () => [] },
13
14
  contentClass: { default: void 0 },
14
15
  fullscreen: { type: Boolean, default: !1 },
@@ -16,10 +17,10 @@ const R = /* @__PURE__ */ F({
16
17
  },
17
18
  emits: ["update:modelValue"],
18
19
  setup(t, { emit: g }) {
19
- const n = t, x = g, h = W(), v = f({
20
+ const n = t, x = g, h = W(), v = m({
20
21
  get: () => n.modelValue,
21
22
  set: (e) => x("update:modelValue", e)
22
- }), _ = f(() => `v-theme--${h.global.name.value}`), C = f(() => n.contentClass ? `${_.value} ${n.contentClass}` : _.value);
23
+ }), y = m(() => `v-theme--${h.global.name.value}`), C = m(() => n.contentClass ? `${y.value} ${n.contentClass}` : y.value);
23
24
  function V() {
24
25
  return n.actions.find((e) => e.color === "secondary" || e.color === "error");
25
26
  }
@@ -34,29 +35,31 @@ const R = /* @__PURE__ */ F({
34
35
  function A(e) {
35
36
  return !e || e === "primary" ? "elevated" : e === "secondary" || e === "error" ? "outlined" : "text";
36
37
  }
37
- async function m(e) {
38
+ async function f(e) {
38
39
  e.handler && await e.handler();
39
40
  }
40
41
  function E(e) {
41
42
  if (n.actions.length !== 0) {
42
43
  if (e.key === "Escape") {
44
+ if (n.persistent) return;
43
45
  const l = V();
44
46
  if (!l) return;
45
- e.preventDefault(), e.stopPropagation(), m(l);
47
+ e.preventDefault(), e.stopPropagation(), f(l);
46
48
  return;
47
49
  }
48
50
  if (e.key === "Enter" && !e.shiftKey && !e.ctrlKey && !e.altKey) {
51
+ if (!n.enterToConfirm) return;
49
52
  const l = e.target;
50
53
  if (B(l)) return;
51
54
  const i = k();
52
55
  if (!i) return;
53
- e.preventDefault(), e.stopPropagation(), m(i);
56
+ e.preventDefault(), e.stopPropagation(), f(i);
54
57
  }
55
58
  }
56
59
  }
57
60
  return (e, l) => {
58
- const i = a("v-icon"), w = a("v-card-title"), b = a("v-card-text"), D = a("v-spacer"), I = a("v-btn"), K = a("v-card-actions"), N = a("v-card"), T = a("v-dialog");
59
- return c(), s(T, {
61
+ const i = a("v-icon"), T = a("v-card-title"), b = a("v-card-text"), w = a("v-spacer"), D = a("v-btn"), I = a("v-card-actions"), K = a("v-card"), N = a("v-dialog");
62
+ return c(), s(N, {
60
63
  modelValue: v.value,
61
64
  "onUpdate:modelValue": l[0] || (l[0] = (o) => v.value = o),
62
65
  "max-width": t.maxWidth,
@@ -68,9 +71,9 @@ const R = /* @__PURE__ */ F({
68
71
  onKeydown: E
69
72
  }, {
70
73
  default: r(() => [
71
- d(N, null, {
74
+ u(K, null, {
72
75
  default: r(() => [
73
- t.title ? (c(), s(w, {
76
+ t.title ? (c(), s(T, {
74
77
  key: 0,
75
78
  class: "text-h5 d-flex align-center px-6 pt-6 modal-title"
76
79
  }, {
@@ -80,36 +83,36 @@ const R = /* @__PURE__ */ F({
80
83
  class: "mr-2"
81
84
  }, {
82
85
  default: r(() => [
83
- p(u(t.titleIcon), 1)
86
+ p(d(t.titleIcon), 1)
84
87
  ]),
85
88
  _: 1
86
- })) : y("", !0),
87
- z("span", null, u(t.title), 1)
89
+ })) : _("", !0),
90
+ z("span", null, d(t.title), 1)
88
91
  ]),
89
92
  _: 1
90
- })) : y("", !0),
91
- d(b, { class: "px-6 pt-4" }, {
93
+ })) : _("", !0),
94
+ u(b, { class: "px-6 pt-4" }, {
92
95
  default: r(() => [
93
96
  P(e.$slots, "default", {}, () => [
94
- p(u(t.message), 1)
97
+ p(d(t.message), 1)
95
98
  ], !0)
96
99
  ]),
97
100
  _: 3
98
101
  }),
99
- d(K, null, {
102
+ u(I, null, {
100
103
  default: r(() => [
101
- d(D),
102
- (c(!0), M(O, null, S(t.actions, (o, $) => (c(), s(I, {
104
+ u(w),
105
+ (c(!0), M(O, null, S(t.actions, (o, $) => (c(), s(D, {
103
106
  key: $,
104
107
  color: o.color || "primary",
105
108
  "prepend-icon": o.icon,
106
109
  variant: o.variant || A(o.color),
107
110
  type: "button",
108
111
  class: "text-none",
109
- onClick: (U) => m(o)
112
+ onClick: (U) => f(o)
110
113
  }, {
111
114
  default: r(() => [
112
- p(u(o.text), 1)
115
+ p(d(o.text), 1)
113
116
  ]),
114
117
  _: 2
115
118
  }, 1032, ["color", "prepend-icon", "variant", "onClick"]))), 128))
@@ -124,8 +127,8 @@ const R = /* @__PURE__ */ F({
124
127
  }, 8, ["modelValue", "max-width", "persistent", "content-class", "fullscreen"]);
125
128
  };
126
129
  }
127
- }), G = /* @__PURE__ */ L(R, [["__scopeId", "data-v-e2905dad"]]);
130
+ }), G = /* @__PURE__ */ L(R, [["__scopeId", "data-v-90ba442f"]]);
128
131
  export {
129
132
  G as F
130
133
  };
131
- //# sourceMappingURL=modals-FzModalBase-DmsJR5qM.js.map
134
+ //# sourceMappingURL=modals-FzModalBase-CBZ5Ea3Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modals-FzModalBase-CBZ5Ea3Z.js","sources":["../../../src/components/modals/FzModalBase.vue"],"sourcesContent":["<template>\n <v-dialog\n v-model=\"isOpen\"\n :max-width=\"maxWidth\"\n :persistent=\"persistent\"\n :content-class=\"dialogContentClass\"\n :fullscreen=\"fullscreen\"\n scrollable\n :z-index=\"2400\"\n @keydown=\"onDialogKeydown\"\n >\n <v-card>\n <v-card-title\n v-if=\"title\"\n class=\"text-h5 d-flex align-center px-6 pt-6 modal-title\"\n >\n <v-icon v-if=\"titleIcon\" class=\"mr-2\">{{ titleIcon }}</v-icon>\n <span>{{ title }}</span>\n </v-card-title>\n\n <v-card-text class=\"px-6 pt-4\">\n <slot>\n {{ message }}\n </slot>\n </v-card-text>\n\n <v-card-actions>\n <v-spacer />\n <v-btn\n v-for=\"(action, index) in actions\"\n :key=\"index\"\n :color=\"action.color || 'primary'\"\n :prepend-icon=\"action.icon\"\n :variant=\"action.variant || getDefaultVariant(action.color)\"\n type=\"button\"\n class=\"text-none\"\n @click=\"handleAction(action)\"\n >\n {{ action.text }}\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { useTheme } from 'vuetify';\n\nexport interface ModalAction {\n text: string;\n icon?: string;\n color?: string;\n variant?: 'text' | 'flat' | 'elevated' | 'tonal' | 'outlined' | 'plain';\n handler?: () => void | Promise<void>;\n}\n\ninterface Props {\n modelValue: boolean;\n title?: string;\n message?: string;\n maxWidth?: string | number;\n persistent?: boolean;\n enterToConfirm?: boolean;\n actions?: ModalAction[];\n contentClass?: string;\n fullscreen?: boolean;\n titleIcon?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: undefined,\n message: '',\n maxWidth: 500,\n persistent: true,\n enterToConfirm: false,\n actions: () => [],\n contentClass: undefined,\n fullscreen: false,\n titleIcon: undefined,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst theme = useTheme();\n\nconst isOpen = computed({\n get: () => props.modelValue,\n set: (val) => emit('update:modelValue', val),\n});\n\nconst dialogThemeClass = computed(() => `v-theme--${theme.global.name.value}`);\n\nconst dialogContentClass = computed(() => {\n if (!props.contentClass) return dialogThemeClass.value;\n\n return `${dialogThemeClass.value} ${props.contentClass}`;\n});\n\nfunction findCancelAction(): ModalAction | undefined {\n return props.actions.find((a) => a.color === 'secondary' || a.color === 'error');\n}\n\nfunction findPrimaryAction(): ModalAction | undefined {\n return props.actions.find(\n (a) => a.color === 'primary' || (!a.color && props.actions.indexOf(a) === props.actions.length - 1),\n );\n}\n\nfunction isInteractiveElement(target: HTMLElement): boolean {\n return target.tagName === 'TEXTAREA';\n}\n\nfunction getDefaultVariant(color?: string): 'elevated' | 'outlined' | 'text' {\n if (!color || color === 'primary') return 'elevated';\n\n if (color === 'secondary' || color === 'error') return 'outlined';\n\n return 'text';\n}\n\nasync function handleAction(action: ModalAction): Promise<void> {\n if (!action.handler) return;\n\n await action.handler();\n}\n\nfunction onDialogKeydown(e: KeyboardEvent): void {\n if (props.actions.length === 0) return;\n\n if (e.key === 'Escape') {\n if (props.persistent) return;\n\n const cancelAction = findCancelAction();\n\n if (!cancelAction) return;\n\n e.preventDefault();\n e.stopPropagation();\n handleAction(cancelAction);\n\n return;\n }\n\n if (e.key === 'Enter' && !e.shiftKey && !e.ctrlKey && !e.altKey) {\n if (!props.enterToConfirm) return;\n\n const target = e.target as HTMLElement;\n\n if (isInteractiveElement(target)) return;\n\n const primaryAction = findPrimaryAction();\n\n if (!primaryAction) return;\n\n e.preventDefault();\n e.stopPropagation();\n handleAction(primaryAction);\n }\n}\n\n</script>\n\n<style scoped>\n.modal-title {\n word-break: break-word;\n white-space: normal;\n}\n</style>\n\n<!-- Vuetify renders overlays as siblings at root; adjust z-index so v-select/v-menu popups inside this dialog appear above the dialog overlay -->\n<style>\n.v-overlay-container .v-menu > .v-overlay__content,\n.v-overlay-container .v-select__content,\n.v-overlay-container .v-autocomplete__content {\n z-index: 2500;\n}\n</style>\n"],"names":["props","__props","emit","__emit","theme","useTheme","isOpen","computed","val","dialogThemeClass","dialogContentClass","findCancelAction","a","findPrimaryAction","isInteractiveElement","target","getDefaultVariant","color","handleAction","action","onDialogKeydown","cancelAction","primaryAction","_createBlock","_component_v_dialog","$event","_createVNode","_component_v_card","_component_v_card_title","_component_v_icon","_createElementVNode","_component_v_card_text","_renderSlot","_ctx","_component_v_card_actions","_component_v_spacer","_openBlock","_createElementBlock","_Fragment","_renderList","index","_component_v_btn","_createTextVNode","_toDisplayString"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { _ as o } from "./components/FzConfigProvider-X6sXT-LE.js";
2
2
  import { _ as m } from "./components/buttons-FzIconToolTip-D_cBN1TN.js";
3
- import { F as r } from "./components/modals-FzModalBase-DmsJR5qM.js";
4
- import { _ as i } from "./components/messages-FzConfirmDialog-CkESdVvg.js";
5
- import { F as a } from "./components/messages-FzCustomConfirmDialog-DiuYkXxY.js";
3
+ import { F as r } from "./components/modals-FzModalBase-CBZ5Ea3Z.js";
4
+ import { _ as i } from "./components/messages-FzConfirmDialog-BvnTIYZm.js";
5
+ import { F as a } from "./components/messages-FzCustomConfirmDialog-CcADw89-.js";
6
6
  import { F as s } from "./components/messages-FzFloatingNotify-CV5gLl9-.js";
7
7
  import { F as f } from "./components/layout-FzLoadingOverlay-CWKZxowb.js";
8
8
  import { F as t } from "./components/inputs-FzMoneyField-Co9uqB9u.js";
@@ -30,4 +30,4 @@ const P = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
30
30
  export {
31
31
  P as c
32
32
  };
33
- //# sourceMappingURL=index-BEN9ppaq.js.map
33
+ //# sourceMappingURL=index-B-0CLj_d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-B-0CLj_d.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types-DV6li0y5.js","sources":["../../../src/utils/types.ts"],"sourcesContent":["export interface ConfirmOptions {\n persistent?: boolean;\n confirmText?: string;\n cancelText?: string;\n confirmColor?: string;\n cancelColor?: string;\n}\n\nexport interface ConfirmComponentRef {\n confirmDialog: (title: string, message: string, options?: ConfirmOptions) => Promise<boolean>;\n}\n\nexport type NotifyType = 'success' | 'error' | 'warning' | 'info';\n\nexport interface NotifyOptions {\n type: NotifyType;\n title: string;\n message?: string;\n duration?: number;\n}\n\nexport const NOTIFY_DURATION = 3000;\n\nexport const API_TIMEOUT = 30000;\n\nexport type TextFieldVariant = 'outlined' | 'filled' | 'plain' | 'solo' | 'solo-filled' | 'solo-inverted' | 'underlined';\n"],"names":["NOTIFY_DURATION","API_TIMEOUT"],"mappings":"AAqBO,MAAMA,IAAkB,KAElBC,IAAc;"}
1
+ {"version":3,"file":"types-DV6li0y5.js","sources":["../../../src/utils/types.ts"],"sourcesContent":["export interface ConfirmOptions {\n persistent?: boolean;\n confirmText?: string;\n cancelText?: string;\n confirmColor?: string;\n cancelColor?: string;\n enterToConfirm?: boolean;\n}\n\nexport interface ConfirmComponentRef {\n confirmDialog: (title: string, message: string, options?: ConfirmOptions) => Promise<boolean>;\n}\n\nexport type NotifyType = 'success' | 'error' | 'warning' | 'info';\n\nexport interface NotifyOptions {\n type: NotifyType;\n title: string;\n message?: string;\n duration?: number;\n}\n\nexport const NOTIFY_DURATION = 3000;\n\nexport const API_TIMEOUT = 30000;\n\nexport type TextFieldVariant = 'outlined' | 'filled' | 'plain' | 'solo' | 'solo-filled' | 'solo-inverted' | 'underlined';\n"],"names":["NOTIFY_DURATION","API_TIMEOUT"],"mappings":"AAsBO,MAAMA,IAAkB,KAElBC,IAAc;"}
@@ -1,8 +1,8 @@
1
1
  import { _ as e } from "../chunks/components/FzConfigProvider-X6sXT-LE.js";
2
2
  import { _ as a } from "../chunks/components/buttons-FzIconToolTip-D_cBN1TN.js";
3
- import { F as f } from "../chunks/components/modals-FzModalBase-DmsJR5qM.js";
4
- import { _ as s } from "../chunks/components/messages-FzConfirmDialog-CkESdVvg.js";
5
- import { F as p } from "../chunks/components/messages-FzCustomConfirmDialog-DiuYkXxY.js";
3
+ import { F as f } from "../chunks/components/modals-FzModalBase-CBZ5Ea3Z.js";
4
+ import { _ as s } from "../chunks/components/messages-FzConfirmDialog-BvnTIYZm.js";
5
+ import { F as p } from "../chunks/components/messages-FzCustomConfirmDialog-CcADw89-.js";
6
6
  import { F as x } from "../chunks/components/messages-FzFloatingNotify-CV5gLl9-.js";
7
7
  import { F as d } from "../chunks/components/layout-FzLoadingOverlay-CWKZxowb.js";
8
8
  import { F as _ } from "../chunks/components/inputs-FzMoneyField-Co9uqB9u.js";
@@ -1 +1 @@
1
- {"version":3,"file":"FzCustomConfirmDialog.vue.d.ts","sourceRoot":"","sources":["../../../src/components/messages/FzCustomConfirmDialog.vue"],"names":[],"mappings":"AAmIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAsSpD,QAAA,MAAM,YAAY;2BAzRY,MAAM,WAAW,MAAM,YAAY,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC;0OA2RhG,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"FzCustomConfirmDialog.vue.d.ts","sourceRoot":"","sources":["../../../src/components/messages/FzCustomConfirmDialog.vue"],"names":[],"mappings":"AA8JA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiUpD,QAAA,MAAM,YAAY;2BAnTY,MAAM,WAAW,MAAM,YAAY,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC;0OAqThG,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -11,6 +11,7 @@ interface Props {
11
11
  message?: string;
12
12
  maxWidth?: string | number;
13
13
  persistent?: boolean;
14
+ enterToConfirm?: boolean;
14
15
  actions?: ModalAction[];
15
16
  contentClass?: string;
16
17
  fullscreen?: boolean;
@@ -30,6 +31,7 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
30
31
  contentClass: string;
31
32
  title: string;
32
33
  message: string;
34
+ enterToConfirm: boolean;
33
35
  actions: ModalAction[];
34
36
  fullscreen: boolean;
35
37
  titleIcon: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FzModalBase.vue.d.ts","sourceRoot":"","sources":["../../../src/components/modals/FzModalBase.vue"],"names":[],"mappings":"AAoLA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,KAAK;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0SD,QAAA,IAAI,QAAQ,IAAY,CAAE;AAC1B,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;gBAtTD,OAAO;cADT,MAAM,GAAG,MAAM;kBAGX,MAAM;WALb,MAAM;aACJ,MAAM;aAGN,WAAW,EAAE;gBAEV,OAAO;eACR,MAAM;6EAsTlB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"FzModalBase.vue.d.ts","sourceRoot":"","sources":["../../../src/components/modals/FzModalBase.vue"],"names":[],"mappings":"AA0LA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,KAAK;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgTD,QAAA,IAAI,QAAQ,IAAY,CAAE;AAC1B,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;gBA7TD,OAAO;cADT,MAAM,GAAG,MAAM;kBAIX,MAAM;WANb,MAAM;aACJ,MAAM;oBAGC,OAAO;aACd,WAAW,EAAE;gBAEV,OAAO;eACR,MAAM;6EA4TlB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as s } from "./chunks/index-BEN9ppaq.js";
1
+ import { c as s } from "./chunks/index-B-0CLj_d.js";
2
2
  import { globalsPlugin as t } from "./plugins/index.js";
3
3
  import { e as a } from "./chunks/utils/vuetify-check-DRI6ZYnO.js";
4
4
  import { d as S } from "./chunks/utils/vuetify-check-DRI6ZYnO.js";
@@ -15,13 +15,13 @@ import { N as to, c as ao, u as io } from "./chunks/composables/useNumericInput-
15
15
  import { F as fo, _ as mo } from "./chunks/components/FzConfigProvider-X6sXT-LE.js";
16
16
  import { VTooltip as i, VTextField as n, VSpacer as f, VSelect as m, VRow as p, VProgressCircular as u, VMenu as l, VIcon as F, VDialog as x, VCol as c, VCardTitle as d, VCardText as V, VCardActions as g, VCard as z, VBtn as C, VAlert as T } from "vuetify/components";
17
17
  import { _ as uo } from "./chunks/components/buttons-FzIconToolTip-D_cBN1TN.js";
18
- import { _ as Fo } from "./chunks/components/messages-FzConfirmDialog-CkESdVvg.js";
18
+ import { _ as Fo } from "./chunks/components/messages-FzConfirmDialog-BvnTIYZm.js";
19
19
  import { _ as co } from "./chunks/components/inputs-FzEmailField-CujT-RJo.js";
20
20
  import { _ as go } from "./chunks/components/inputs-FzPhoneField-B8Mk05Hd.js";
21
21
  import { _ as Co } from "./chunks/components/inputs-FzZipCodeField-B7fHUkXJ.js";
22
22
  import { _ as _o } from "./chunks/components/inputs-FzFullAddress-Dj68efww.js";
23
- import { F as Ao } from "./chunks/components/modals-FzModalBase-DmsJR5qM.js";
24
- import { F as yo } from "./chunks/components/messages-FzCustomConfirmDialog-DiuYkXxY.js";
23
+ import { F as Ao } from "./chunks/components/modals-FzModalBase-CBZ5Ea3Z.js";
24
+ import { F as yo } from "./chunks/components/messages-FzCustomConfirmDialog-CcADw89-.js";
25
25
  import { F as Eo } from "./chunks/components/messages-FzFloatingNotify-CV5gLl9-.js";
26
26
  import { F as Do } from "./chunks/components/layout-FzLoadingOverlay-CWKZxowb.js";
27
27
  import { F as Po } from "./chunks/components/inputs-FzMoneyField-Co9uqB9u.js";
package/dist/ui.css CHANGED
@@ -1 +1 @@
1
- [data-v-a32d1159] input{text-align:right}.modal-title[data-v-e2905dad]{word-break:break-word;white-space:normal}.v-overlay-container .v-menu>.v-overlay__content,.v-overlay-container .v-select__content,.v-overlay-container .v-autocomplete__content{z-index:2500}.custom-dialog-overlay[data-v-ecb0e1a5]{position:fixed;inset:0;background-color:#00000080;z-index:2400}.dialog-fade-enter-active[data-v-ecb0e1a5],.dialog-fade-leave-active[data-v-ecb0e1a5]{transition:opacity .2s ease}.dialog-fade-enter-from[data-v-ecb0e1a5],.dialog-fade-leave-to[data-v-ecb0e1a5]{opacity:0}.dialog-fade-enter-active .v-card[data-v-ecb0e1a5],.dialog-fade-leave-active .v-card[data-v-ecb0e1a5]{transition:transform .2s ease}.dialog-fade-enter-from .v-card[data-v-ecb0e1a5],.dialog-fade-leave-to .v-card[data-v-ecb0e1a5]{transform:scale(.9)}.floating-notify[data-v-b4d8014f]{position:fixed;top:20px;right:20px;min-width:300px;max-width:500px;z-index:9999;border-radius:4px;overflow:hidden}.floating-notify[data-v-b4d8014f] .v-alert--border{border-inline-start-width:0}.progress-track[data-v-b4d8014f]{height:3px}.progress-fill[data-v-b4d8014f]{height:100%;transition:width .1s linear}.slide-fade-enter-active[data-v-b4d8014f]{transition:all .3s ease-out}.slide-fade-leave-active[data-v-b4d8014f]{transition:all .3s ease-in}.slide-fade-enter-from[data-v-b4d8014f],.slide-fade-leave-to[data-v-b4d8014f]{transform:translate(100%);opacity:0}.loading-overlay[data-v-7110b861]{position:fixed;inset:0;background-color:#000000b3;z-index:9998}.fade-enter-active[data-v-7110b861],.fade-leave-active[data-v-7110b861]{transition:opacity .2s ease}.fade-enter-from[data-v-7110b861],.fade-leave-to[data-v-7110b861]{opacity:0}.fade-delayed-enter-active[data-v-7110b861]{transition:opacity .3s ease .1s}.fade-delayed-leave-active[data-v-7110b861]{transition:opacity .2s ease}.fade-delayed-enter-from[data-v-7110b861],.fade-delayed-leave-to[data-v-7110b861]{opacity:0}[data-v-c53749c6] input{text-align:right}[data-v-c53749c6] input[type=number]::-webkit-inner-spin-button,[data-v-c53749c6] input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}[data-v-c53749c6] input[type=number]{-moz-appearance:textfield;appearance:textfield}
1
+ [data-v-a32d1159] input{text-align:right}.modal-title[data-v-90ba442f]{word-break:break-word;white-space:normal}.v-overlay-container .v-menu>.v-overlay__content,.v-overlay-container .v-select__content,.v-overlay-container .v-autocomplete__content{z-index:2500}.custom-dialog-overlay[data-v-fe279f13]{position:fixed;inset:0;background-color:#00000080;z-index:2400}.dialog-fade-enter-active[data-v-fe279f13],.dialog-fade-leave-active[data-v-fe279f13]{transition:opacity .2s ease}.dialog-fade-enter-from[data-v-fe279f13],.dialog-fade-leave-to[data-v-fe279f13]{opacity:0}.dialog-fade-enter-active .v-card[data-v-fe279f13],.dialog-fade-leave-active .v-card[data-v-fe279f13]{transition:transform .2s ease}.dialog-fade-enter-from .v-card[data-v-fe279f13],.dialog-fade-leave-to .v-card[data-v-fe279f13]{transform:scale(.9)}.floating-notify[data-v-b4d8014f]{position:fixed;top:20px;right:20px;min-width:300px;max-width:500px;z-index:9999;border-radius:4px;overflow:hidden}.floating-notify[data-v-b4d8014f] .v-alert--border{border-inline-start-width:0}.progress-track[data-v-b4d8014f]{height:3px}.progress-fill[data-v-b4d8014f]{height:100%;transition:width .1s linear}.slide-fade-enter-active[data-v-b4d8014f]{transition:all .3s ease-out}.slide-fade-leave-active[data-v-b4d8014f]{transition:all .3s ease-in}.slide-fade-enter-from[data-v-b4d8014f],.slide-fade-leave-to[data-v-b4d8014f]{transform:translate(100%);opacity:0}.loading-overlay[data-v-7110b861]{position:fixed;inset:0;background-color:#000000b3;z-index:9998}.fade-enter-active[data-v-7110b861],.fade-leave-active[data-v-7110b861]{transition:opacity .2s ease}.fade-enter-from[data-v-7110b861],.fade-leave-to[data-v-7110b861]{opacity:0}.fade-delayed-enter-active[data-v-7110b861]{transition:opacity .3s ease .1s}.fade-delayed-leave-active[data-v-7110b861]{transition:opacity .2s ease}.fade-delayed-enter-from[data-v-7110b861],.fade-delayed-leave-to[data-v-7110b861]{opacity:0}[data-v-c53749c6] input{text-align:right}[data-v-c53749c6] input[type=number]::-webkit-inner-spin-button,[data-v-c53749c6] input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}[data-v-c53749c6] input[type=number]{-moz-appearance:textfield;appearance:textfield}
@@ -29,7 +29,7 @@ export declare const useNotifyStore: import("pinia").StoreDefinition<"notify", P
29
29
  pause: () => void;
30
30
  resume: () => void;
31
31
  cleanup: () => void;
32
- }, "show" | "hide" | "pause" | "resume" | "cleanup">>;
32
+ }, "show" | "pause" | "hide" | "resume" | "cleanup">>;
33
33
  export declare const notify: {
34
34
  show: (type: NotifyType, title: string, message?: string) => void;
35
35
  success: (title: string, message?: string) => void;
@@ -4,6 +4,7 @@ export interface ConfirmOptions {
4
4
  cancelText?: string;
5
5
  confirmColor?: string;
6
6
  cancelColor?: string;
7
+ enterToConfirm?: boolean;
7
8
  }
8
9
  export interface ConfirmComponentRef {
9
10
  confirmDialog: (title: string, message: string, options?: ConfirmOptions) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/F;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/F;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forizi-tecnologia/ui",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Forizi UI — Vue 3 + TypeScript + Vuetify 3 component library",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,107 +0,0 @@
1
- import { defineComponent as F, ref as e, onMounted as M, onUnmounted as S, resolveComponent as a, createBlock as b, openBlock as f, Teleport as j, createVNode as n, Transition as E, withCtx as t, createElementBlock as O, createCommentVNode as T, withModifiers as R, createElementVNode as I, createTextVNode as s, toDisplayString as i } from "vue";
2
- import { u as w } from "../utils/confirm-DiGEPjua.js";
3
- import { _ as U } from "./inputs-FzMoneyField-Co9uqB9u.js";
4
- const Y = { class: "text-h6 font-weight-medium" }, q = /* @__PURE__ */ F({
5
- __name: "FzCustomConfirmDialog",
6
- setup(A, { expose: N }) {
7
- const c = e(!1), m = e(""), u = e(""), v = e(!0), _ = e(""), p = e(""), x = e("primary"), C = e("secondary");
8
- let l = null;
9
- const g = (h, r, o) => (m.value = h, u.value = r, v.value = o?.persistent ?? !0, _.value = o?.confirmText ?? "Sim", p.value = o?.cancelText ?? "Não", x.value = o?.confirmColor ?? "primary", C.value = o?.cancelColor ?? "secondary", c.value = !0, new Promise((d) => {
10
- l = d;
11
- }));
12
- M(() => {
13
- w().setConfirmRef({ confirmDialog: g });
14
- }), S(() => {
15
- w().setConfirmRef({ confirmDialog: () => Promise.resolve(!1) });
16
- });
17
- const D = () => {
18
- l && l(!0), c.value = !1;
19
- }, y = () => {
20
- l && l(!1), c.value = !1;
21
- }, P = () => {
22
- v.value || y();
23
- };
24
- return N({
25
- confirmDialog: g
26
- }), (h, r) => {
27
- const o = a("v-icon"), d = a("v-card-title"), V = a("v-card-text"), k = a("v-btn"), z = a("v-card-actions"), B = a("v-card");
28
- return f(), b(j, { to: "body" }, [
29
- n(E, { name: "dialog-fade" }, {
30
- default: t(() => [
31
- c.value ? (f(), O("div", {
32
- key: 0,
33
- class: "custom-dialog-overlay d-flex align-center justify-center pa-4",
34
- onClick: R(P, ["self"])
35
- }, [
36
- n(B, {
37
- class: "flex-grow-1",
38
- "max-width": "500",
39
- elevation: 12
40
- }, {
41
- default: t(() => [
42
- n(d, { class: "d-flex align-center ga-3 px-6 pb-4 pt-6" }, {
43
- default: t(() => [
44
- n(o, {
45
- color: "warning",
46
- size: "28"
47
- }, {
48
- default: t(() => [...r[0] || (r[0] = [
49
- s("mdi-help-circle", -1)
50
- ])]),
51
- _: 1
52
- }),
53
- I("span", Y, i(m.value), 1)
54
- ]),
55
- _: 1
56
- }),
57
- u.value ? (f(), b(V, {
58
- key: 0,
59
- class: "px-6 pb-4 text-body-2"
60
- }, {
61
- default: t(() => [
62
- s(i(u.value), 1)
63
- ]),
64
- _: 1
65
- })) : T("", !0),
66
- n(z, { class: "d-flex justify-end ga-2 px-6 pb-6 pt-2" }, {
67
- default: t(() => [
68
- n(k, {
69
- color: C.value,
70
- variant: "outlined",
71
- class: "text-none",
72
- onClick: y
73
- }, {
74
- default: t(() => [
75
- s(i(p.value), 1)
76
- ]),
77
- _: 1
78
- }, 8, ["color"]),
79
- n(k, {
80
- color: x.value,
81
- variant: "elevated",
82
- class: "text-none",
83
- onClick: D
84
- }, {
85
- default: t(() => [
86
- s(i(_.value), 1)
87
- ]),
88
- _: 1
89
- }, 8, ["color"])
90
- ]),
91
- _: 1
92
- })
93
- ]),
94
- _: 1
95
- })
96
- ])) : T("", !0)
97
- ]),
98
- _: 1
99
- })
100
- ]);
101
- };
102
- }
103
- }), K = /* @__PURE__ */ U(q, [["__scopeId", "data-v-ecb0e1a5"]]);
104
- export {
105
- K as F
106
- };
107
- //# sourceMappingURL=messages-FzCustomConfirmDialog-DiuYkXxY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages-FzCustomConfirmDialog-DiuYkXxY.js","sources":["../../../src/components/messages/FzCustomConfirmDialog.vue"],"sourcesContent":["<template>\n <Teleport to=\"body\">\n <Transition name=\"dialog-fade\">\n <div\n v-if=\"isOpen\"\n class=\"custom-dialog-overlay d-flex align-center justify-center pa-4\"\n @click.self=\"handleOverlayClick\"\n >\n <v-card class=\"flex-grow-1\" max-width=\"500\" :elevation=\"12\">\n <v-card-title class=\"d-flex align-center ga-3 px-6 pb-4 pt-6\">\n <v-icon color=\"warning\" size=\"28\">mdi-help-circle</v-icon>\n <span class=\"text-h6 font-weight-medium\">{{ currentTitle }}</span>\n </v-card-title>\n\n <v-card-text v-if=\"currentMessage\" class=\"px-6 pb-4 text-body-2\">\n {{ currentMessage }}\n </v-card-text>\n\n <v-card-actions class=\"d-flex justify-end ga-2 px-6 pb-6 pt-2\">\n <v-btn :color=\"cancelColor\" variant=\"outlined\" class=\"text-none\" @click=\"handleNo\">\n {{ cancelText }}\n </v-btn>\n <v-btn :color=\"confirmColor\" variant=\"elevated\" class=\"text-none\" @click=\"handleYes\">\n {{ confirmText }}\n </v-btn>\n </v-card-actions>\n </v-card>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport type { ConfirmOptions } from '@/utils/types';\nimport { useConfirmStore } from '@/utils/confirm';\n\nconst isOpen = ref(false);\nconst currentTitle = ref('');\nconst currentMessage = ref('');\nconst isPersistent = ref(true);\nconst confirmText = ref('');\nconst cancelText = ref('');\nconst confirmColor = ref('primary');\nconst cancelColor = ref('secondary');\nlet resolvePromise: ((value: boolean) => void) | null = null;\n\nconst confirmDialog = (title: string, message: string, options?: ConfirmOptions): Promise<boolean> => {\n currentTitle.value = title;\n currentMessage.value = message;\n isPersistent.value = options?.persistent ?? true;\n confirmText.value = options?.confirmText ?? 'Sim';\n cancelText.value = options?.cancelText ?? 'Não';\n confirmColor.value = options?.confirmColor ?? 'primary';\n cancelColor.value = options?.cancelColor ?? 'secondary';\n isOpen.value = true;\n\n return new Promise((resolve) => {\n resolvePromise = resolve;\n });\n};\n\nonMounted(() => {\n useConfirmStore().setConfirmRef({ confirmDialog });\n});\n\nonUnmounted(() => {\n useConfirmStore().setConfirmRef({ confirmDialog: () => Promise.resolve(false) });\n});\n\nconst handleYes = () => {\n if (resolvePromise) resolvePromise(true);\n\n isOpen.value = false;\n};\n\nconst handleNo = () => {\n if (resolvePromise) resolvePromise(false);\n\n isOpen.value = false;\n};\n\nconst handleOverlayClick = () => {\n if (isPersistent.value) return;\n\n handleNo();\n};\n\ndefineExpose({\n confirmDialog,\n});\n</script>\n\n<style scoped>\n.custom-dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 2400;\n}\n\n.dialog-fade-enter-active,\n.dialog-fade-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.dialog-fade-enter-from,\n.dialog-fade-leave-to {\n opacity: 0;\n}\n\n.dialog-fade-enter-active .v-card,\n.dialog-fade-leave-active .v-card {\n transition: transform 0.2s ease;\n}\n\n.dialog-fade-enter-from .v-card {\n transform: scale(0.9);\n}\n\n.dialog-fade-leave-to .v-card {\n transform: scale(0.9);\n}\n</style>\n"],"names":["isOpen","ref","currentTitle","currentMessage","isPersistent","confirmText","cancelText","confirmColor","cancelColor","resolvePromise","confirmDialog","title","message","options","resolve","onMounted","useConfirmStore","onUnmounted","handleYes","handleNo","handleOverlayClick","__expose","_createBlock","_Teleport","_createVNode","_Transition","_createElementBlock","_component_v_card","_component_v_card_title","_component_v_icon","_cache","_createElementVNode","_hoisted_1","_toDisplayString","_component_v_card_text","_component_v_card_actions","_component_v_btn"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modals-FzModalBase-DmsJR5qM.js","sources":["../../../src/components/modals/FzModalBase.vue"],"sourcesContent":["<template>\n <v-dialog\n v-model=\"isOpen\"\n :max-width=\"maxWidth\"\n :persistent=\"persistent\"\n :content-class=\"dialogContentClass\"\n :fullscreen=\"fullscreen\"\n scrollable\n :z-index=\"2400\"\n @keydown=\"onDialogKeydown\"\n >\n <v-card>\n <v-card-title\n v-if=\"title\"\n class=\"text-h5 d-flex align-center px-6 pt-6 modal-title\"\n >\n <v-icon v-if=\"titleIcon\" class=\"mr-2\">{{ titleIcon }}</v-icon>\n <span>{{ title }}</span>\n </v-card-title>\n\n <v-card-text class=\"px-6 pt-4\">\n <slot>\n {{ message }}\n </slot>\n </v-card-text>\n\n <v-card-actions>\n <v-spacer />\n <v-btn\n v-for=\"(action, index) in actions\"\n :key=\"index\"\n :color=\"action.color || 'primary'\"\n :prepend-icon=\"action.icon\"\n :variant=\"action.variant || getDefaultVariant(action.color)\"\n type=\"button\"\n class=\"text-none\"\n @click=\"handleAction(action)\"\n >\n {{ action.text }}\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { useTheme } from 'vuetify';\n\nexport interface ModalAction {\n text: string;\n icon?: string;\n color?: string;\n variant?: 'text' | 'flat' | 'elevated' | 'tonal' | 'outlined' | 'plain';\n handler?: () => void | Promise<void>;\n}\n\ninterface Props {\n modelValue: boolean;\n title?: string;\n message?: string;\n maxWidth?: string | number;\n persistent?: boolean;\n actions?: ModalAction[];\n contentClass?: string;\n fullscreen?: boolean;\n titleIcon?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: undefined,\n message: '',\n maxWidth: 500,\n persistent: true,\n actions: () => [],\n contentClass: undefined,\n fullscreen: false,\n titleIcon: undefined,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst theme = useTheme();\n\nconst isOpen = computed({\n get: () => props.modelValue,\n set: (val) => emit('update:modelValue', val),\n});\n\nconst dialogThemeClass = computed(() => `v-theme--${theme.global.name.value}`);\n\nconst dialogContentClass = computed(() => {\n if (!props.contentClass) return dialogThemeClass.value;\n\n return `${dialogThemeClass.value} ${props.contentClass}`;\n});\n\nfunction findCancelAction(): ModalAction | undefined {\n return props.actions.find((a) => a.color === 'secondary' || a.color === 'error');\n}\n\nfunction findPrimaryAction(): ModalAction | undefined {\n return props.actions.find(\n (a) => a.color === 'primary' || (!a.color && props.actions.indexOf(a) === props.actions.length - 1),\n );\n}\n\nfunction isInteractiveElement(target: HTMLElement): boolean {\n return target.tagName === 'TEXTAREA';\n}\n\nfunction getDefaultVariant(color?: string): 'elevated' | 'outlined' | 'text' {\n if (!color || color === 'primary') return 'elevated';\n\n if (color === 'secondary' || color === 'error') return 'outlined';\n\n return 'text';\n}\n\nasync function handleAction(action: ModalAction): Promise<void> {\n if (!action.handler) return;\n\n await action.handler();\n}\n\nfunction onDialogKeydown(e: KeyboardEvent): void {\n if (props.actions.length === 0) return;\n\n if (e.key === 'Escape') {\n const cancelAction = findCancelAction();\n\n if (!cancelAction) return;\n\n e.preventDefault();\n e.stopPropagation();\n handleAction(cancelAction);\n\n return;\n }\n\n if (e.key === 'Enter' && !e.shiftKey && !e.ctrlKey && !e.altKey) {\n const target = e.target as HTMLElement;\n\n if (isInteractiveElement(target)) return;\n\n const primaryAction = findPrimaryAction();\n\n if (!primaryAction) return;\n\n e.preventDefault();\n e.stopPropagation();\n handleAction(primaryAction);\n }\n}\n\n</script>\n\n<style scoped>\n.modal-title {\n word-break: break-word;\n white-space: normal;\n}\n</style>\n\n<!-- Vuetify renders overlays as siblings at root; adjust z-index so v-select/v-menu popups inside this dialog appear above the dialog overlay -->\n<style>\n.v-overlay-container .v-menu > .v-overlay__content,\n.v-overlay-container .v-select__content,\n.v-overlay-container .v-autocomplete__content {\n z-index: 2500;\n}\n</style>\n"],"names":["props","__props","emit","__emit","theme","useTheme","isOpen","computed","val","dialogThemeClass","dialogContentClass","findCancelAction","a","findPrimaryAction","isInteractiveElement","target","getDefaultVariant","color","handleAction","action","onDialogKeydown","cancelAction","primaryAction","_createBlock","_component_v_dialog","$event","_createVNode","_component_v_card","_component_v_card_title","_component_v_icon","_createElementVNode","_component_v_card_text","_renderSlot","_ctx","_component_v_card_actions","_component_v_spacer","_openBlock","_createElementBlock","_Fragment","_renderList","index","_component_v_btn","_createTextVNode","_toDisplayString"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BEN9ppaq.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}