@tailor-cms/ce-image-edit 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # Content element `Edit` component
package/dist/index.cjs ADDED
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var import_style = require("./style.css");
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
4
+ const vue = require("vue");
5
+ var type = "CE_IMAGE";
6
+ var name = "Image";
7
+ var initState = () => ({
8
+ url: ""
9
+ });
10
+ var ui = {
11
+ // Display icon, https://pictogrammers.com/library/mdi/
12
+ icon: "mdi-image",
13
+ // Does element support only full width or can be used within layouts
14
+ // (e.g. 50/50 layout)
15
+ forceFullWidth: true
16
+ };
17
+ var mocks = {
18
+ displayContexts: [
19
+ { name: "Test preset 1", data: { state: "I have a value" } },
20
+ { name: "Test preset 2", data: { state: "I have a different value" } }
21
+ ]
22
+ };
23
+ var manifest$1 = {
24
+ type,
25
+ version: "1.0",
26
+ name,
27
+ ssr: false,
28
+ initState,
29
+ ui,
30
+ mocks
31
+ };
32
+ var src_default = manifest$1;
33
+ const _hoisted_1$1 = {
34
+ key: 0,
35
+ class: "text-subtitle-1"
36
+ };
37
+ const _hoisted_2$1 = { class: "pr-2" };
38
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
39
+ __name: "EditPlaceholder",
40
+ props: {
41
+ name: { type: String, required: true },
42
+ icon: { type: String, required: true },
43
+ placeholder: { type: String, default: "Select to edit" },
44
+ activePlaceholder: { type: String, default: "Use toolbar to edit" },
45
+ activeIcon: { type: String, default: null },
46
+ activeColor: { type: String, default: "#fff" },
47
+ isDisabled: { type: Boolean, default: false },
48
+ isFocused: { type: Boolean, default: false },
49
+ dense: { type: Boolean, default: false }
50
+ },
51
+ setup(__props) {
52
+ return (_ctx, _cache) => {
53
+ const _component_VAvatar = vue.resolveComponent("VAvatar");
54
+ const _component_VIcon = vue.resolveComponent("VIcon");
55
+ const _component_VSheet = vue.resolveComponent("VSheet");
56
+ return vue.openBlock(), vue.createBlock(_component_VSheet, {
57
+ class: vue.normalizeClass([__props.dense ? "pt-3" : "pa-12", "d-flex flex-column align-center transparent text-grey-darken-4"])
58
+ }, {
59
+ default: vue.withCtx(() => [
60
+ vue.createVNode(_component_VAvatar, {
61
+ color: __props.isDisabled ? "grey-darken-3" : "teal-accent-4",
62
+ icon: __props.icon,
63
+ size: __props.dense ? 40 : 60,
64
+ variant: "tonal"
65
+ }, null, 8, ["color", "icon", "size"]),
66
+ vue.createElementVNode("div", {
67
+ class: vue.normalizeClass([
68
+ __props.isDisabled ? "text-grey-darken-3" : "text-grey-darken-4",
69
+ __props.dense ? "my-2 text-subtitle-2" : "my-4 text-h6"
70
+ ])
71
+ }, vue.toDisplayString(__props.name), 3),
72
+ !__props.dense && !__props.isDisabled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
73
+ !__props.isFocused ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
74
+ vue.createTextVNode(vue.toDisplayString(__props.placeholder), 1)
75
+ ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
76
+ vue.createElementVNode("span", _hoisted_2$1, vue.toDisplayString(__props.activePlaceholder), 1),
77
+ __props.activeIcon ? (vue.openBlock(), vue.createBlock(_component_VIcon, {
78
+ key: 0,
79
+ color: "primary-darken-4",
80
+ size: "20"
81
+ }, {
82
+ default: vue.withCtx(() => [
83
+ vue.createTextVNode(vue.toDisplayString(__props.activeIcon), 1)
84
+ ]),
85
+ _: 1
86
+ })) : vue.createCommentVNode("", true)
87
+ ], 64))
88
+ ])) : vue.createCommentVNode("", true)
89
+ ]),
90
+ _: 1
91
+ }, 8, ["class"]);
92
+ };
93
+ }
94
+ });
95
+ const _hoisted_1 = { class: "tce-image" };
96
+ const _hoisted_2 = {
97
+ key: 1,
98
+ class: "image-wrapper"
99
+ };
100
+ const _hoisted_3 = { class: "d-flex align-center justify-center fill-height" };
101
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
102
+ __name: "Edit",
103
+ props: {
104
+ element: {},
105
+ isFocused: { type: Boolean },
106
+ isDisabled: { type: Boolean }
107
+ },
108
+ emits: ["save"],
109
+ setup(__props) {
110
+ return (_ctx, _cache) => {
111
+ const _component_VProgressCircular = vue.resolveComponent("VProgressCircular");
112
+ const _component_VImg = vue.resolveComponent("VImg");
113
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
114
+ !_ctx.element.data.url ? (vue.openBlock(), vue.createBlock(_sfc_main$3, {
115
+ key: 0,
116
+ dense: false,
117
+ "is-disabled": _ctx.isDisabled,
118
+ "is-focused": _ctx.isFocused,
119
+ "active-icon": "mdi-arrow-up",
120
+ "active-placeholder": "Use toolbar to upload the image",
121
+ icon: "mdi-image-plus",
122
+ name: "Image component"
123
+ }, null, 8, ["is-disabled", "is-focused"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
124
+ vue.createVNode(_component_VImg, {
125
+ src: _ctx.element.data.url,
126
+ class: "mx-auto"
127
+ }, {
128
+ placeholder: vue.withCtx(() => [
129
+ vue.createElementVNode("div", _hoisted_3, [
130
+ vue.createVNode(_component_VProgressCircular, {
131
+ color: "blue-grey-darken-3",
132
+ indeterminate: ""
133
+ })
134
+ ])
135
+ ]),
136
+ _: 1
137
+ }, 8, ["src"])
138
+ ]))
139
+ ]);
140
+ };
141
+ }
142
+ });
143
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
144
+ __name: "SideToolbar",
145
+ props: {
146
+ element: {}
147
+ },
148
+ emits: ["save"],
149
+ setup(__props) {
150
+ return (_ctx, _cache) => {
151
+ return vue.openBlock(), vue.createElementBlock("div");
152
+ };
153
+ }
154
+ });
155
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
156
+ __name: "TopToolbar",
157
+ props: {
158
+ element: {}
159
+ },
160
+ emits: ["save"],
161
+ setup(__props) {
162
+ return (_ctx, _cache) => {
163
+ return vue.openBlock(), vue.createElementBlock("div");
164
+ };
165
+ }
166
+ });
167
+ const manifest = {
168
+ ...src_default,
169
+ Edit: _sfc_main$2,
170
+ SideToolbar: _sfc_main$1,
171
+ TopToolbar: _sfc_main
172
+ };
173
+ exports.Edit = _sfc_main$2;
174
+ exports.SideToolbar = _sfc_main$1;
175
+ exports.TopToolbar = _sfc_main;
176
+ exports.default = manifest;
package/dist/index.js ADDED
@@ -0,0 +1,176 @@
1
+ import "./style.css";
2
+ import { defineComponent, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createVNode, createElementVNode, toDisplayString, createElementBlock, Fragment, createTextVNode, createCommentVNode } from "vue";
3
+ var type = "CE_IMAGE";
4
+ var name = "Image";
5
+ var initState = () => ({
6
+ url: ""
7
+ });
8
+ var ui = {
9
+ // Display icon, https://pictogrammers.com/library/mdi/
10
+ icon: "mdi-image",
11
+ // Does element support only full width or can be used within layouts
12
+ // (e.g. 50/50 layout)
13
+ forceFullWidth: true
14
+ };
15
+ var mocks = {
16
+ displayContexts: [
17
+ { name: "Test preset 1", data: { state: "I have a value" } },
18
+ { name: "Test preset 2", data: { state: "I have a different value" } }
19
+ ]
20
+ };
21
+ var manifest$1 = {
22
+ type,
23
+ version: "1.0",
24
+ name,
25
+ ssr: false,
26
+ initState,
27
+ ui,
28
+ mocks
29
+ };
30
+ var src_default = manifest$1;
31
+ const _hoisted_1$1 = {
32
+ key: 0,
33
+ class: "text-subtitle-1"
34
+ };
35
+ const _hoisted_2$1 = { class: "pr-2" };
36
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
37
+ __name: "EditPlaceholder",
38
+ props: {
39
+ name: { type: String, required: true },
40
+ icon: { type: String, required: true },
41
+ placeholder: { type: String, default: "Select to edit" },
42
+ activePlaceholder: { type: String, default: "Use toolbar to edit" },
43
+ activeIcon: { type: String, default: null },
44
+ activeColor: { type: String, default: "#fff" },
45
+ isDisabled: { type: Boolean, default: false },
46
+ isFocused: { type: Boolean, default: false },
47
+ dense: { type: Boolean, default: false }
48
+ },
49
+ setup(__props) {
50
+ return (_ctx, _cache) => {
51
+ const _component_VAvatar = resolveComponent("VAvatar");
52
+ const _component_VIcon = resolveComponent("VIcon");
53
+ const _component_VSheet = resolveComponent("VSheet");
54
+ return openBlock(), createBlock(_component_VSheet, {
55
+ class: normalizeClass([__props.dense ? "pt-3" : "pa-12", "d-flex flex-column align-center transparent text-grey-darken-4"])
56
+ }, {
57
+ default: withCtx(() => [
58
+ createVNode(_component_VAvatar, {
59
+ color: __props.isDisabled ? "grey-darken-3" : "teal-accent-4",
60
+ icon: __props.icon,
61
+ size: __props.dense ? 40 : 60,
62
+ variant: "tonal"
63
+ }, null, 8, ["color", "icon", "size"]),
64
+ createElementVNode("div", {
65
+ class: normalizeClass([
66
+ __props.isDisabled ? "text-grey-darken-3" : "text-grey-darken-4",
67
+ __props.dense ? "my-2 text-subtitle-2" : "my-4 text-h6"
68
+ ])
69
+ }, toDisplayString(__props.name), 3),
70
+ !__props.dense && !__props.isDisabled ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
71
+ !__props.isFocused ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
72
+ createTextVNode(toDisplayString(__props.placeholder), 1)
73
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
74
+ createElementVNode("span", _hoisted_2$1, toDisplayString(__props.activePlaceholder), 1),
75
+ __props.activeIcon ? (openBlock(), createBlock(_component_VIcon, {
76
+ key: 0,
77
+ color: "primary-darken-4",
78
+ size: "20"
79
+ }, {
80
+ default: withCtx(() => [
81
+ createTextVNode(toDisplayString(__props.activeIcon), 1)
82
+ ]),
83
+ _: 1
84
+ })) : createCommentVNode("", true)
85
+ ], 64))
86
+ ])) : createCommentVNode("", true)
87
+ ]),
88
+ _: 1
89
+ }, 8, ["class"]);
90
+ };
91
+ }
92
+ });
93
+ const _hoisted_1 = { class: "tce-image" };
94
+ const _hoisted_2 = {
95
+ key: 1,
96
+ class: "image-wrapper"
97
+ };
98
+ const _hoisted_3 = { class: "d-flex align-center justify-center fill-height" };
99
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
100
+ __name: "Edit",
101
+ props: {
102
+ element: {},
103
+ isFocused: { type: Boolean },
104
+ isDisabled: { type: Boolean }
105
+ },
106
+ emits: ["save"],
107
+ setup(__props) {
108
+ return (_ctx, _cache) => {
109
+ const _component_VProgressCircular = resolveComponent("VProgressCircular");
110
+ const _component_VImg = resolveComponent("VImg");
111
+ return openBlock(), createElementBlock("div", _hoisted_1, [
112
+ !_ctx.element.data.url ? (openBlock(), createBlock(_sfc_main$3, {
113
+ key: 0,
114
+ dense: false,
115
+ "is-disabled": _ctx.isDisabled,
116
+ "is-focused": _ctx.isFocused,
117
+ "active-icon": "mdi-arrow-up",
118
+ "active-placeholder": "Use toolbar to upload the image",
119
+ icon: "mdi-image-plus",
120
+ name: "Image component"
121
+ }, null, 8, ["is-disabled", "is-focused"])) : (openBlock(), createElementBlock("div", _hoisted_2, [
122
+ createVNode(_component_VImg, {
123
+ src: _ctx.element.data.url,
124
+ class: "mx-auto"
125
+ }, {
126
+ placeholder: withCtx(() => [
127
+ createElementVNode("div", _hoisted_3, [
128
+ createVNode(_component_VProgressCircular, {
129
+ color: "blue-grey-darken-3",
130
+ indeterminate: ""
131
+ })
132
+ ])
133
+ ]),
134
+ _: 1
135
+ }, 8, ["src"])
136
+ ]))
137
+ ]);
138
+ };
139
+ }
140
+ });
141
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
142
+ __name: "SideToolbar",
143
+ props: {
144
+ element: {}
145
+ },
146
+ emits: ["save"],
147
+ setup(__props) {
148
+ return (_ctx, _cache) => {
149
+ return openBlock(), createElementBlock("div");
150
+ };
151
+ }
152
+ });
153
+ const _sfc_main = /* @__PURE__ */ defineComponent({
154
+ __name: "TopToolbar",
155
+ props: {
156
+ element: {}
157
+ },
158
+ emits: ["save"],
159
+ setup(__props) {
160
+ return (_ctx, _cache) => {
161
+ return openBlock(), createElementBlock("div");
162
+ };
163
+ }
164
+ });
165
+ const manifest = {
166
+ ...src_default,
167
+ Edit: _sfc_main$2,
168
+ SideToolbar: _sfc_main$1,
169
+ TopToolbar: _sfc_main
170
+ };
171
+ export {
172
+ _sfc_main$2 as Edit,
173
+ _sfc_main$1 as SideToolbar,
174
+ _sfc_main as TopToolbar,
175
+ manifest as default
176
+ };
package/dist/style.css ADDED
@@ -0,0 +1,4 @@
1
+
2
+ .image-icon[data-v-881cde78] {
3
+ position: absolute;
4
+ }
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@tailor-cms/ce-image-edit",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "exports": {
6
+ ".": {
7
+ "import": "./dist/index.js",
8
+ "require": "./dist/index.cjs"
9
+ }
10
+ },
11
+ "main": "./dist/index.cjs",
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "peerDependencies": {
16
+ "vue": "^3.3.4"
17
+ },
18
+ "devDependencies": {
19
+ "@tailor-cms/eslint-config": "0.0.2",
20
+ "@vitejs/plugin-vue": "^4.2.3",
21
+ "typescript": "^5.1.6",
22
+ "vite": "^4.4.5",
23
+ "vue-tsc": "^1.8.5",
24
+ "tce-manifest": "npm:@tailor-cms/ce-image-manifest@0.0.1"
25
+ },
26
+ "description": "Tailor image element",
27
+ "author": "Studion <info@gostudion.com> (https://github.com/tailor-cms)",
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "scripts": {
32
+ "dev": "vite build --watch",
33
+ "build": "vue-tsc --noEmit && vite build",
34
+ "lint": "eslint --ext .js,.ts,.vue ./src",
35
+ "lint:fix": "pnpm lint --fix"
36
+ }
37
+ }