@robuust-digital/vue-components 1.3.2 → 2.0.0-rc.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.
Files changed (73) hide show
  1. package/README.md +47 -52
  2. package/dist/_shared/ButtonBase-CQjlJ85F.js +87 -0
  3. package/dist/_shared/ChevronDownIcon-z-5U4fIb.js +55 -0
  4. package/dist/_shared/FormInput-abFMz_J4.js +82 -0
  5. package/dist/_shared/Modal-COVlUEud.js +193 -0
  6. package/dist/_shared/Tooltip-BKXJoJ1x.js +126 -0
  7. package/dist/_shared/XMarkIcon-90mcPzBs.js +19 -0
  8. package/dist/_shared/icon-spinner-CmxIOqaK.js +26 -0
  9. package/dist/combobox/combobox.css +203 -0
  10. package/dist/combobox/index.js +349 -0
  11. package/dist/combobox/styles.css +1 -0
  12. package/dist/core/accordion.css +47 -0
  13. package/dist/core/alert.css +169 -0
  14. package/dist/core/badge.css +121 -0
  15. package/dist/core/button.css +393 -0
  16. package/dist/core/checkbox.css +60 -0
  17. package/dist/core/empty-state.css +56 -0
  18. package/dist/core/index.js +779 -0
  19. package/dist/core/input.css +92 -0
  20. package/dist/core/pagination.css +48 -0
  21. package/dist/core/radio.css +61 -0
  22. package/dist/core/select.css +81 -0
  23. package/dist/core/styles.css +92 -0
  24. package/dist/core/table.css +87 -0
  25. package/dist/core/tabs.css +74 -0
  26. package/dist/core/textarea.css +48 -0
  27. package/dist/core/theme.css +11 -0
  28. package/dist/dialogs/drawer.css +72 -0
  29. package/dist/dialogs/index.js +200 -0
  30. package/dist/dialogs/modal.css +98 -0
  31. package/dist/dialogs/styles.css +2 -0
  32. package/dist/dropdown/dropdown.css +89 -0
  33. package/dist/dropdown/index.js +136 -0
  34. package/dist/dropdown/styles.css +1 -0
  35. package/dist/lightswitch/index.js +48 -0
  36. package/dist/lightswitch/lightswitch.css +68 -0
  37. package/dist/lightswitch/styles.css +1 -0
  38. package/dist/rich-text-editor/index.js +262 -0
  39. package/dist/rich-text-editor/rich-text.css +83 -0
  40. package/dist/rich-text-editor/styles.css +1 -0
  41. package/dist/toast/index.js +100 -0
  42. package/dist/toast/styles.css +1 -0
  43. package/dist/toast/toast.css +187 -0
  44. package/dist/tooltip/index.js +5 -0
  45. package/dist/tooltip/styles.css +1 -0
  46. package/dist/tooltip/tooltip.css +69 -0
  47. package/package.json +55 -52
  48. package/dist/nuxt-module.js +0 -27
  49. package/dist/style.css +0 -1
  50. package/dist/tailwind/base/index.js +0 -72
  51. package/dist/tailwind/components/accordion.js +0 -59
  52. package/dist/tailwind/components/alert.js +0 -166
  53. package/dist/tailwind/components/badge.js +0 -119
  54. package/dist/tailwind/components/button.js +0 -292
  55. package/dist/tailwind/components/checkbox.js +0 -70
  56. package/dist/tailwind/components/combobox.js +0 -226
  57. package/dist/tailwind/components/drawer.js +0 -104
  58. package/dist/tailwind/components/dropdown.js +0 -97
  59. package/dist/tailwind/components/empty-state.js +0 -69
  60. package/dist/tailwind/components/input.js +0 -101
  61. package/dist/tailwind/components/lightswitch.js +0 -79
  62. package/dist/tailwind/components/modal.js +0 -132
  63. package/dist/tailwind/components/pagination.js +0 -62
  64. package/dist/tailwind/components/radio.js +0 -75
  65. package/dist/tailwind/components/rich-text.js +0 -100
  66. package/dist/tailwind/components/select.js +0 -88
  67. package/dist/tailwind/components/table.js +0 -109
  68. package/dist/tailwind/components/tabs.js +0 -95
  69. package/dist/tailwind/components/textarea.js +0 -53
  70. package/dist/tailwind/components/toast.js +0 -188
  71. package/dist/tailwind/components/tooltip.js +0 -74
  72. package/dist/tailwind/index.js +0 -94
  73. package/dist/vue-components.es.js +0 -2401
@@ -0,0 +1,262 @@
1
+ import { createElementBlock as r, openBlock as s, createElementVNode as n, ref as p, useAttrs as H, computed as x, watch as L, Fragment as A, createVNode as v, renderSlot as C, withCtx as _, normalizeClass as M, createCommentVNode as $, unref as m, renderList as B, createBlock as E, resolveDynamicComponent as S } from "vue";
2
+ import { useEditor as O, EditorContent as T } from "@tiptap/vue-3";
3
+ import N from "@tiptap/extension-link";
4
+ import U from "@tiptap/starter-kit";
5
+ import { _ as q } from "../_shared/Tooltip-BKXJoJ1x.js";
6
+ import { _ as z } from "../_shared/FormInput-abFMz_J4.js";
7
+ import { _ as D } from "../_shared/Modal-COVlUEud.js";
8
+ function I(a, c) {
9
+ return s(), r("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ viewBox: "0 0 16 16",
12
+ fill: "currentColor",
13
+ "aria-hidden": "true",
14
+ "data-slot": "icon"
15
+ }, [
16
+ n("path", {
17
+ "fill-rule": "evenodd",
18
+ d: "M3 3a1 1 0 0 1 1-1h5a3.5 3.5 0 0 1 2.843 5.541A3.75 3.75 0 0 1 9.25 14H4a1 1 0 0 1-1-1V3Zm2.5 3.5v-2H9a1 1 0 0 1 0 2H5.5Zm0 2.5v2.5h3.75a1.25 1.25 0 1 0 0-2.5H5.5Z",
19
+ "clip-rule": "evenodd"
20
+ })
21
+ ]);
22
+ }
23
+ function R(a, c) {
24
+ return s(), r("svg", {
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ viewBox: "0 0 16 16",
27
+ fill: "currentColor",
28
+ "aria-hidden": "true",
29
+ "data-slot": "icon"
30
+ }, [
31
+ n("path", {
32
+ "fill-rule": "evenodd",
33
+ d: "M6.25 2.75A.75.75 0 0 1 7 2h6a.75.75 0 0 1 0 1.5h-2.483l-3.429 9H9A.75.75 0 0 1 9 14H3a.75.75 0 0 1 0-1.5h2.483l3.429-9H7a.75.75 0 0 1-.75-.75Z",
34
+ "clip-rule": "evenodd"
35
+ })
36
+ ]);
37
+ }
38
+ function j(a, c) {
39
+ return s(), r("svg", {
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ viewBox: "0 0 16 16",
42
+ fill: "currentColor",
43
+ "aria-hidden": "true",
44
+ "data-slot": "icon"
45
+ }, [
46
+ n("path", {
47
+ "fill-rule": "evenodd",
48
+ d: "M8.914 6.025a.75.75 0 0 1 1.06 0 3.5 3.5 0 0 1 0 4.95l-2 2a3.5 3.5 0 0 1-5.396-4.402.75.75 0 0 1 1.251.827 2 2 0 0 0 3.085 2.514l2-2a2 2 0 0 0 0-2.828.75.75 0 0 1 0-1.06Z",
49
+ "clip-rule": "evenodd"
50
+ }),
51
+ n("path", {
52
+ "fill-rule": "evenodd",
53
+ d: "M7.086 9.975a.75.75 0 0 1-1.06 0 3.5 3.5 0 0 1 0-4.95l2-2a3.5 3.5 0 0 1 5.396 4.402.75.75 0 0 1-1.251-.827 2 2 0 0 0-3.085-2.514l-2 2a2 2 0 0 0 0 2.828.75.75 0 0 1 0 1.06Z",
54
+ "clip-rule": "evenodd"
55
+ })
56
+ ]);
57
+ }
58
+ function F(a, c) {
59
+ return s(), r("svg", {
60
+ xmlns: "http://www.w3.org/2000/svg",
61
+ viewBox: "0 0 16 16",
62
+ fill: "currentColor",
63
+ "aria-hidden": "true",
64
+ "data-slot": "icon"
65
+ }, [
66
+ n("path", { d: "M3 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.25 3a.75.75 0 0 0 0 1.5h7a.75.75 0 0 0 0-1.5h-7ZM6.25 7.25a.75.75 0 0 0 0 1.5h7a.75.75 0 0 0 0-1.5h-7ZM6.25 11.5a.75.75 0 0 0 0 1.5h7a.75.75 0 0 0 0-1.5h-7ZM4 12.25a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM3 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" })
67
+ ]);
68
+ }
69
+ function K(a, c) {
70
+ return s(), r("svg", {
71
+ xmlns: "http://www.w3.org/2000/svg",
72
+ viewBox: "0 0 16 16",
73
+ fill: "currentColor",
74
+ "aria-hidden": "true",
75
+ "data-slot": "icon"
76
+ }, [
77
+ n("path", { d: "M2.995 1a.625.625 0 1 0 0 1.25h.38v2.125a.625.625 0 1 0 1.25 0v-2.75A.625.625 0 0 0 4 1H2.995ZM3.208 7.385a2.37 2.37 0 0 1 1.027-.124L2.573 8.923a.625.625 0 0 0 .439 1.067l1.987.011a.625.625 0 0 0 .006-1.25l-.49-.003.777-.776c.215-.215.335-.506.335-.809 0-.465-.297-.957-.842-1.078a3.636 3.636 0 0 0-1.993.121.625.625 0 1 0 .416 1.179ZM2.625 11a.625.625 0 1 0 0 1.25H4.25a.125.125 0 0 1 0 .25H3.5a.625.625 0 1 0 0 1.25h.75a.125.125 0 0 1 0 .25H2.625a.625.625 0 1 0 0 1.25H4.25a1.375 1.375 0 0 0 1.153-2.125A1.375 1.375 0 0 0 4.25 11H2.625ZM7.25 2a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-6ZM7.25 7.25a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-6ZM6.5 13.25a.75.75 0 0 1 .75-.75h6a.75.75 0 0 1 0 1.5h-6a.75.75 0 0 1-.75-.75Z" })
78
+ ]);
79
+ }
80
+ const P = { class: "rvc-rich-text-toolbar" }, G = ["disabled", "aria-label", "onClick"], le = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
81
+ __name: "RichTextEditor",
82
+ props: {
83
+ id: {
84
+ type: String,
85
+ required: !0
86
+ },
87
+ modelValue: {
88
+ type: String,
89
+ default: ""
90
+ },
91
+ rootClass: {
92
+ type: String,
93
+ default: void 0
94
+ },
95
+ config: {
96
+ type: String,
97
+ default: "default",
98
+ validator: (a) => ["default", "simple"].includes(a)
99
+ },
100
+ customExtensions: {
101
+ type: Array,
102
+ default: () => []
103
+ },
104
+ customCommands: {
105
+ type: Array,
106
+ default: () => []
107
+ }
108
+ },
109
+ emits: ["update:modelValue", "tiptap:onCreate"],
110
+ setup(a, { emit: c }) {
111
+ const i = a, h = c, g = p(!1), u = p(!1), d = p(""), f = H(), k = f.class ? `${f.class} ` : "", V = [
112
+ U,
113
+ N.configure({
114
+ openOnClick: !1
115
+ })
116
+ ], t = O({
117
+ extensions: [...V, ...i.customExtensions],
118
+ content: i.modelValue,
119
+ editorProps: {
120
+ attributes: {
121
+ ...f,
122
+ id: i.id,
123
+ class: `${k}rvc-textarea rvc-rich-text-textarea`
124
+ }
125
+ },
126
+ onCreate: ({ editor: l }) => {
127
+ h("tiptap:onCreate", l);
128
+ },
129
+ onUpdate: ({ editor: l }) => {
130
+ const o = l.isEmpty ? "" : l.getHTML();
131
+ h("update:modelValue", o);
132
+ },
133
+ onSelectionUpdate({ editor: l }) {
134
+ g.value = !l.view.state.selection.empty;
135
+ }
136
+ }), y = x(() => [
137
+ {
138
+ name: "bold",
139
+ icon: I,
140
+ title: "Bold",
141
+ isVisible: !0,
142
+ isActive: () => t.value.isActive("bold"),
143
+ action: () => t.value.commands.toggleBold()
144
+ },
145
+ {
146
+ name: "italic",
147
+ icon: R,
148
+ title: "Italic",
149
+ isVisible: !0,
150
+ isActive: () => t.value.isActive("italic"),
151
+ action: () => t.value.commands.toggleItalic()
152
+ },
153
+ {
154
+ name: "bulletList",
155
+ icon: F,
156
+ title: "Bullet List",
157
+ isVisible: i.config === "default",
158
+ isActive: () => t.value.isActive("bulletList"),
159
+ action: () => t.value.commands.toggleBulletList()
160
+ },
161
+ {
162
+ name: "orderedList",
163
+ icon: K,
164
+ title: "Ordered List",
165
+ isVisible: i.config === "default",
166
+ isActive: () => t.value.isActive("orderedList"),
167
+ action: () => t.value.commands.toggleOrderedList()
168
+ },
169
+ {
170
+ name: "link",
171
+ icon: j,
172
+ title: "Hyperlink",
173
+ isVisible: i.config === "default",
174
+ disabled: !g.value && !t.value.isActive("link"),
175
+ isActive: () => t.value.isActive("link"),
176
+ action: () => {
177
+ d.value = t.value.getAttributes("link").href, u.value = !0;
178
+ }
179
+ }
180
+ ]), b = x(() => {
181
+ const l = y.value.filter((e) => i.config === "default" || ["bold", "italic"].includes(e.name)), o = i.customCommands.map((e) => ({
182
+ ...e,
183
+ isVisible: e.isVisible ?? !0,
184
+ disabled: typeof e.disabled == "function" ? e.disabled(t.value) : e.disabled ?? !1,
185
+ isActive: () => {
186
+ var w;
187
+ return ((w = e.isActive) == null ? void 0 : w.call(e, t.value)) ?? !1;
188
+ },
189
+ action: () => e.action(t.value)
190
+ }));
191
+ return [...l, ...o];
192
+ });
193
+ L(() => i.modelValue, (l) => {
194
+ t.value.getHTML() === l || t.value.commands.setContent(l, !1);
195
+ });
196
+ const Z = () => {
197
+ t.value.commands.setLink({ href: d.value }), u.value = !1, d.value = null;
198
+ };
199
+ return (l, o) => (s(), r(A, null, [
200
+ v(D, {
201
+ id: `${i.id}-modal-add-hyperlink`,
202
+ title: "Add Hyperlink",
203
+ as: "form",
204
+ show: u.value,
205
+ "onModal:close": o[1] || (o[1] = (e) => u.value = !1),
206
+ "onModal:save": Z
207
+ }, {
208
+ default: _(() => [
209
+ v(z, {
210
+ modelValue: d.value,
211
+ "onUpdate:modelValue": o[0] || (o[0] = (e) => d.value = e),
212
+ placeholder: "https://www.example.com",
213
+ type: "url",
214
+ required: ""
215
+ }, null, 8, ["modelValue"])
216
+ ]),
217
+ _: 1
218
+ }, 8, ["id", "show"]),
219
+ C(l.$slots, "default"),
220
+ n("div", {
221
+ class: M(["rvc-rich-text", a.rootClass])
222
+ }, [
223
+ m(t) ? C(l.$slots, "toolbar", {
224
+ key: 0,
225
+ commands: b.value,
226
+ tiptap: m(t)
227
+ }, () => [
228
+ n("ul", P, [
229
+ (s(!0), r(A, null, B(b.value.filter((e) => e.isVisible), (e) => (s(), r("li", {
230
+ key: `toolbar-item-command-${e.name}`
231
+ }, [
232
+ v(q, {
233
+ content: e.title,
234
+ placement: "bottom",
235
+ size: "sm",
236
+ class: "text-sm font-medium"
237
+ }, {
238
+ default: _(() => [
239
+ n("button", {
240
+ disabled: e.disabled,
241
+ type: "button",
242
+ "aria-label": e.title,
243
+ class: M([{ "rvc-rich-text-button-active": e.isActive() }, "rvc-rich-text-button"]),
244
+ onClick: e.action
245
+ }, [
246
+ (s(), E(S(e.icon)))
247
+ ], 10, G)
248
+ ]),
249
+ _: 2
250
+ }, 1032, ["content"])
251
+ ]))), 128))
252
+ ])
253
+ ]) : $("", !0),
254
+ v(m(T), { editor: m(t) }, null, 8, ["editor"])
255
+ ], 2)
256
+ ], 64));
257
+ }
258
+ });
259
+ export {
260
+ le as RichTextEditor,
261
+ le as default
262
+ };
@@ -0,0 +1,83 @@
1
+ :root {
2
+ --rvc-rich-text-list-padding: calc(var(--spacing) * 2.5);
3
+ --rvc-rich-text-list-position: inside;
4
+ --rvc-rich-text-paragraph-spacing: calc(var(--spacing) * 4);
5
+ --rvc-rich-text-icon-size: calc(var(--spacing) * 4);
6
+ --rvc-rich-text-button-border-radius: var(--rvc-base-border-radius);
7
+ --rvc-rich-text-button-padding: calc(var(--spacing) * 1);
8
+ --rvc-rich-text-button-bg-color: transparent;
9
+ --rvc-rich-text-button-bg-color-hover: var(--color-slate-100);
10
+ --rvc-rich-text-button-color: var(--color-slate-600);
11
+ --rvc-rich-text-button-color-active: var(--color-indigo-700);
12
+ --rvc-rich-text-anchor-color: var(--color-indigo-700);
13
+ --rvc-rich-text-anchor-font-weight: var(--font-weight-bold);
14
+ --rvc-rich-text-anchor-text-decoration: underline;
15
+ --rvc-rich-text-min-height: calc(var(--spacing) * 24);
16
+ }
17
+
18
+ @layer components {
19
+ .rvc-rich-text {
20
+ position: relative;
21
+
22
+ .rvc-rich-text-textarea {
23
+ min-height: var(--rvc-rich-text-min-height);
24
+ padding-top: calc(var(--rvc-textarea-padding-x) + var(--rvc-rich-text-icon-size) + (var(--rvc-rich-text-button-padding) * 2) + var(--rvc-textarea-padding-y));
25
+
26
+ > *:not(:last-child) {
27
+ margin-bottom: var(--rvc-rich-text-paragraph-spacing);
28
+ }
29
+
30
+ ul, ol {
31
+ list-style-position: var(--rvc-rich-text-list-position);
32
+ padding-left: var(--rvc-rich-text-list-padding);
33
+
34
+ li > * {
35
+ display: inline;
36
+ }
37
+ }
38
+
39
+ ul { list-style-type: disc; }
40
+ ol { list-style-type: decimal; }
41
+
42
+ a {
43
+ text-decoration: var(--rvc-rich-text-anchor-text-decoration);
44
+ font-weight: var(--rvc-rich-text-anchor-font-weight);
45
+ color: var(--rvc-rich-text-anchor-color);
46
+ }
47
+ }
48
+
49
+ .rvc-rich-text-toolbar {
50
+ padding: var(--rvc-textarea-padding-x);
51
+ gap: calc(var(--spacing) * 1);
52
+ display: flex;
53
+ align-items: center;
54
+ position: absolute;
55
+ inset-block-start: 0;
56
+ inset-inline: 0;
57
+ flex-wrap: wrap;
58
+ z-index: 1;
59
+ pointer-events: none;
60
+ }
61
+
62
+ .rvc-rich-text-button {
63
+ border-radius: var(--rvc-rich-text-button-border-radius);
64
+ padding: var(--rvc-rich-text-button-padding);
65
+ background-color: var(--rvc-rich-text-button-bg-color);
66
+ color: var(--rvc-rich-text-button-color);
67
+ pointer-events: auto;
68
+
69
+ &:hover {
70
+ background-color: var(--rvc-rich-text-button-bg-color-hover);
71
+ }
72
+
73
+ &.rvc-rich-text-button-active {
74
+ color: var(--rvc-rich-text-button-color-active);
75
+ }
76
+
77
+ svg {
78
+ width: var(--rvc-rich-text-icon-size);
79
+ height: var(--rvc-rich-text-icon-size);
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1 @@
1
+ @import "./rich-text.css";
@@ -0,0 +1,100 @@
1
+ import { onMounted as p, watch as v, createBlock as i, openBlock as s, unref as r, withCtx as c, resolveDynamicComponent as u, normalizeClass as w, renderSlot as a, createElementVNode as m, createCommentVNode as d, toDisplayString as h, createElementBlock as $, createVNode as g } from "vue";
2
+ import { TransitionRoot as C } from "@headlessui/vue";
3
+ import { r as b } from "../_shared/XMarkIcon-90mcPzBs.js";
4
+ const k = { class: "rvc-toast-title" }, V = {
5
+ __name: "Toast",
6
+ props: {
7
+ show: {
8
+ type: Boolean
9
+ },
10
+ as: {
11
+ type: String,
12
+ default: "div"
13
+ },
14
+ title: {
15
+ type: String,
16
+ default: ""
17
+ },
18
+ icon: {
19
+ type: [Object, Function],
20
+ default: null
21
+ },
22
+ timeout: {
23
+ type: [Number, Boolean],
24
+ default: 5e3
25
+ },
26
+ position: {
27
+ type: String,
28
+ default: "bottom",
29
+ validator: (t) => ["top", "bottom"].includes(t)
30
+ },
31
+ type: {
32
+ type: String,
33
+ default: "info",
34
+ validator: (t) => ["success", "warning", "danger", "info"].includes(t)
35
+ },
36
+ showClose: {
37
+ type: Boolean,
38
+ default: !1
39
+ }
40
+ },
41
+ emits: ["toast:close"],
42
+ setup(t, { emit: f }) {
43
+ const e = t, y = f, n = () => {
44
+ e.timeout && e.show && setTimeout(() => {
45
+ y("toast:close");
46
+ }, e.timeout);
47
+ };
48
+ return p(() => {
49
+ n();
50
+ }), v(() => e.show, (o) => {
51
+ o && n();
52
+ }), (o, l) => (s(), i(r(C), {
53
+ show: t.show,
54
+ as: "template",
55
+ enter: "transition-opacity duration-300",
56
+ "enter-from": "opacity-0",
57
+ "enter-to": "opacity-100",
58
+ leave: "transition-opacity duration-300",
59
+ "leave-from": "opacity-100",
60
+ "leave-to": "opacity-0"
61
+ }, {
62
+ default: c(() => [
63
+ (s(), i(u(t.as), {
64
+ class: w(["rvc-toast transition-opacity", `rvc-toast-${t.position}`, `rvc-toast-${t.type}`, { "rvc-toast-open": t.show }])
65
+ }, {
66
+ default: c(() => [
67
+ a(o.$slots, "icon", {}, () => [
68
+ t.icon ? (s(), i(u(t.icon), {
69
+ key: 0,
70
+ class: "rvc-toast-icon"
71
+ })) : d("", !0)
72
+ ]),
73
+ m("div", null, [
74
+ a(o.$slots, "title", {}, () => [
75
+ m("span", k, h(t.title), 1)
76
+ ]),
77
+ a(o.$slots, "default")
78
+ ]),
79
+ a(o.$slots, "close", {}, () => [
80
+ t.showClose ? (s(), $("button", {
81
+ key: 0,
82
+ type: "button",
83
+ class: "rvc-toast-close transition-colors",
84
+ onClick: l[0] || (l[0] = (B) => o.$emit("toast:close"))
85
+ }, [
86
+ g(r(b), { class: "size-5" })
87
+ ])) : d("", !0)
88
+ ])
89
+ ]),
90
+ _: 3
91
+ }, 8, ["class"]))
92
+ ]),
93
+ _: 3
94
+ }, 8, ["show"]));
95
+ }
96
+ };
97
+ export {
98
+ V as Toast,
99
+ V as default
100
+ };
@@ -0,0 +1 @@
1
+ @import "./toast.css";
@@ -0,0 +1,187 @@
1
+ :root {
2
+ /* Base Toast variables */
3
+ --rvc-toast-border-radius: var(--rvc-base-border-radius);
4
+ --rvc-toast-transition-duration: var(--rvc-base-transition-duration);
5
+ --rvc-toast-transition-timing-function: var(--rvc-base-transition-timing-function);
6
+ --rvc-toast-border-width: var(--rvc-base-border-width);
7
+ --rvc-toast-padding-x: calc(var(--spacing) * 6);
8
+ --rvc-toast-padding-y: calc(var(--spacing) * 6);
9
+ --rvc-toast-width: calc(var(--spacing) * 160);
10
+ --rvc-toast-max-width: calc(100vw - (var(--spacing) * 12));
11
+ --rvc-toast-font-size: var(--text-base);
12
+ --rvc-toast-gap: calc(var(--spacing) * 1.5);
13
+ --rvc-toast-anchor-decoration: underline;
14
+ --rvc-toast-icon-size: calc(var(--spacing) * 6);
15
+ --rvc-toast-title-font-weight: var(--font-weight-medium);
16
+ --rvc-toast-transition-property: colors;
17
+ --rvc-toast-offset: calc(var(--spacing) * 6);
18
+
19
+ /* Default (Info) variant */
20
+ --rvc-toast-bg-color: var(--color-blue-50);
21
+ --rvc-toast-border-color: var(--color-blue-200);
22
+ --rvc-toast-color: var(--color-blue-700);
23
+ --rvc-toast-icon-color: var(--color-blue-500);
24
+ --rvc-toast-title-color: var(--color-blue-800);
25
+ --rvc-toast-close-bg-color: var(--color-blue-200);
26
+ --rvc-toast-close-bg-color-hover: var(--color-blue-300);
27
+ --rvc-toast-anchor-color-hover: var(--color-blue-600);
28
+
29
+ /* Warning variant */
30
+ --rvc-toast-bg-color-warning: var(--color-yellow-50);
31
+ --rvc-toast-border-color-warning: var(--color-yellow-200);
32
+ --rvc-toast-color-warning: var(--color-yellow-700);
33
+ --rvc-toast-icon-color-warning: var(--color-yellow-500);
34
+ --rvc-toast-title-color-warning: var(--color-yellow-800);
35
+ --rvc-toast-close-bg-color-warning: var(--color-yellow-200);
36
+ --rvc-toast-close-bg-color-warning-hover: var(--color-yellow-300);
37
+ --rvc-toast-anchor-color-warning-hover: var(--color-yellow-600);
38
+
39
+ /* Success variant */
40
+ --rvc-toast-bg-color-success: var(--color-green-50);
41
+ --rvc-toast-border-color-success: var(--color-green-200);
42
+ --rvc-toast-color-success: var(--color-green-700);
43
+ --rvc-toast-icon-color-success: var(--color-green-500);
44
+ --rvc-toast-title-color-success: var(--color-green-800);
45
+ --rvc-toast-close-bg-color-success: var(--color-green-200);
46
+ --rvc-toast-close-bg-color-success-hover: var(--color-green-300);
47
+ --rvc-toast-anchor-color-success-hover: var(--color-green-600);
48
+
49
+ /* Danger variant */
50
+ --rvc-toast-bg-color-danger: var(--color-red-50);
51
+ --rvc-toast-border-color-danger: var(--color-red-200);
52
+ --rvc-toast-color-danger: var(--color-red-700);
53
+ --rvc-toast-icon-color-danger: var(--color-red-500);
54
+ --rvc-toast-title-color-danger: var(--color-red-800);
55
+ --rvc-toast-close-bg-color-danger: var(--color-red-200);
56
+ --rvc-toast-close-bg-color-danger-hover: var(--color-red-300);
57
+ --rvc-toast-anchor-color-danger-hover: var(--color-red-600);
58
+ }
59
+
60
+ @layer components {
61
+ .rvc-toast {
62
+ gap: var(--rvc-toast-gap);
63
+ padding: var(--rvc-toast-padding-y) var(--rvc-toast-padding-x);
64
+ border-radius: var(--rvc-toast-border-radius);
65
+ font-size: var(--rvc-toast-font-size);
66
+ background-color: var(--rvc-toast-bg-color);
67
+ color: var(--rvc-toast-color);
68
+ width: var(--rvc-toast-width);
69
+ max-width: var(--rvc-toast-max-width);
70
+ border-width: var(--rvc-toast-border-width);
71
+ border-color: var(--rvc-toast-border-color);
72
+ filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.05));
73
+ display: flex;
74
+ position: fixed;
75
+ left: 50%;
76
+ transform: translateX(-50%);
77
+ overflow: hidden;
78
+ z-index: 99;
79
+
80
+ &.rvc-toast-bottom {
81
+ bottom: var(--rvc-toast-offset);
82
+ }
83
+
84
+ &.rvc-toast-top {
85
+ top: var(--rvc-toast-offset);
86
+ }
87
+
88
+ a {
89
+ text-decoration: var(--rvc-toast-anchor-decoration);
90
+ transition-property: var(--rvc-toast-transition-property);
91
+ transition-duration: var(--rvc-toast-transition-duration);
92
+ transition-timing-function: var(--rvc-toast-transition-timing-function);
93
+ color: var(--rvc-toast-anchor-color);
94
+
95
+ &:hover {
96
+ color: var(--rvc-toast-anchor-color);
97
+ }
98
+ }
99
+
100
+ ul, ol {
101
+ list-style-position: inside;
102
+ margin: 0;
103
+ padding-left: calc(var(--spacing) * 2);
104
+ }
105
+
106
+ ul {
107
+ list-style-type: disc;
108
+ }
109
+
110
+ ol {
111
+ list-style-type: decimal;
112
+ }
113
+
114
+ .rvc-toast-close {
115
+ background-color: var(--rvc-toast-close-bg-color);
116
+ color: var(--rvc-toast-icon-color);
117
+ border-bottom-left-radius: var(--rvc-toast-border-radius);
118
+ transition-property: var(--rvc-toast-transition-property);
119
+ transition-duration: var(--rvc-toast-transition-duration);
120
+ transition-timing-function: var(--rvc-toast-transition-timing-function);
121
+ display: inline-flex;
122
+ justify-content: center;
123
+ align-items: center;
124
+ position: absolute;
125
+ top: 0;
126
+ right: 0;
127
+ padding: calc(var(--spacing) * 1.5);
128
+
129
+ &:hover {
130
+ background-color: var(--rvc-toast-close-bg-color-hover);
131
+ color: var(--rvc-toast-icon-color-hover);
132
+ }
133
+ }
134
+
135
+ .rvc-toast-icon {
136
+ width: var(--rvc-toast-icon-size);
137
+ height: var(--rvc-toast-icon-size);
138
+ color: var(--rvc-toast-icon-color);
139
+ display: block;
140
+ flex-shrink: 0;
141
+ }
142
+
143
+ .rvc-toast-title {
144
+ color: var(--rvc-toast-title-color);
145
+ font-weight: var(--rvc-toast-title-font-weight);
146
+ display: block;
147
+ margin-bottom: calc(var(--spacing) * 2);
148
+
149
+ &:last-child {
150
+ margin-bottom: 0;
151
+ }
152
+ }
153
+
154
+ &.rvc-toast-warning {
155
+ --rvc-toast-bg-color: var(--rvc-toast-bg-color-warning);
156
+ --rvc-toast-border-color: var(--rvc-toast-border-color-warning);
157
+ --rvc-toast-color: var(--rvc-toast-color-warning);
158
+ --rvc-toast-icon-color: var(--rvc-toast-icon-color-warning);
159
+ --rvc-toast-title-color: var(--rvc-toast-title-color-warning);
160
+ --rvc-toast-close-bg-color: var(--rvc-toast-close-bg-color-warning);
161
+ --rvc-toast-close-bg-color-hover: var(--rvc-toast-close-bg-color-warning-hover);
162
+ --rvc-toast-anchor-color-hover: var(--rvc-toast-anchor-color-warning-hover);
163
+ }
164
+
165
+ &.rvc-toast-success {
166
+ --rvc-toast-bg-color: var(--rvc-toast-bg-color-success);
167
+ --rvc-toast-border-color: var(--rvc-toast-border-color-success);
168
+ --rvc-toast-color: var(--rvc-toast-color-success);
169
+ --rvc-toast-icon-color: var(--rvc-toast-icon-color-success);
170
+ --rvc-toast-title-color: var(--rvc-toast-title-color-success);
171
+ --rvc-toast-close-bg-color: var(--rvc-toast-close-bg-color-success);
172
+ --rvc-toast-close-bg-color-hover: var(--rvc-toast-close-bg-color-success-hover);
173
+ --rvc-toast-anchor-color-hover: var(--rvc-toast-anchor-color-success-hover);
174
+ }
175
+
176
+ &.rvc-toast-danger {
177
+ --rvc-toast-bg-color: var(--rvc-toast-bg-color-danger);
178
+ --rvc-toast-border-color: var(--rvc-toast-border-color-danger);
179
+ --rvc-toast-color: var(--rvc-toast-color-danger);
180
+ --rvc-toast-icon-color: var(--rvc-toast-icon-color-danger);
181
+ --rvc-toast-title-color: var(--rvc-toast-title-color-danger);
182
+ --rvc-toast-close-bg-color: var(--rvc-toast-close-bg-color-danger);
183
+ --rvc-toast-close-bg-color-hover: var(--rvc-toast-close-bg-color-danger-hover);
184
+ --rvc-toast-anchor-color-hover: var(--rvc-toast-anchor-color-danger-hover);
185
+ }
186
+ }
187
+ }
@@ -0,0 +1,5 @@
1
+ import { _ as o } from "../_shared/Tooltip-BKXJoJ1x.js";
2
+ export {
3
+ o as Tooltip,
4
+ o as default
5
+ };
@@ -0,0 +1 @@
1
+ @import "./tooltip.css";