@mixd-id/web-scaffold 0.1.230406311 → 0.1.230406313

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/package.json +1 -1
  2. package/src/App.vue +9 -1
  3. package/src/components/Carousel.vue +3 -3
  4. package/src/components/ColorPicker2.vue +1 -1
  5. package/src/components/Image.vue +5 -3
  6. package/src/components/List.vue +48 -13
  7. package/src/components/Modal.vue +2 -2
  8. package/src/components/Text.vue +34 -0
  9. package/src/components/Textbox.vue +1 -1
  10. package/src/components/VirtualTable.vue +124 -95
  11. package/src/index.js +22 -38
  12. package/src/main.js +0 -9
  13. package/src/mixin/component.js +2 -1
  14. package/src/utils/preset-selector.js +53 -24
  15. package/src/utils/preset-selector.mjs +21 -1
  16. package/src/utils/wss.js +6 -1
  17. package/src/utils/wss.mjs +2 -2
  18. package/src/widgets/PresetBar.vue +6 -0
  19. package/src/widgets/WebPageBuilder3.vue +3 -218
  20. package/src/widgets/WebPageBuilder4/BackgroundColorSetting.vue +54 -0
  21. package/src/widgets/WebPageBuilder4/BackgroundPositionSetting.vue +75 -0
  22. package/src/widgets/WebPageBuilder4/BackgroundRepeatSetting.vue +72 -0
  23. package/src/widgets/WebPageBuilder4/BackgroundSizeSetting.vue +72 -0
  24. package/src/widgets/WebPageBuilder4/BlurSetting.vue +72 -0
  25. package/src/widgets/WebPageBuilder4/BorderColorSetting.vue +64 -0
  26. package/src/widgets/WebPageBuilder4/BorderRadiusSetting.vue +75 -0
  27. package/src/widgets/WebPageBuilder4/BorderSizeSetting.vue +69 -0
  28. package/src/widgets/WebPageBuilder4/BorderStyleSetting.vue +72 -0
  29. package/src/widgets/WebPageBuilder4/BoxShadowSetting.vue +73 -0
  30. package/src/widgets/WebPageBuilder4/ButtonSetting.vue +65 -0
  31. package/src/widgets/WebPageBuilder4/CarouselSetting.vue +178 -0
  32. package/src/widgets/WebPageBuilder4/DisplaySetting.vue +76 -0
  33. package/src/widgets/WebPageBuilder4/FlexAlignSetting.vue +71 -0
  34. package/src/widgets/WebPageBuilder4/FlexDirectionSetting.vue +70 -0
  35. package/src/widgets/WebPageBuilder4/FlexJustifySetting.vue +74 -0
  36. package/src/widgets/WebPageBuilder4/FlexPropertySetting.vue +71 -0
  37. package/src/widgets/WebPageBuilder4/FlexSetting.vue +96 -0
  38. package/src/widgets/WebPageBuilder4/FlexWrapSetting.vue +69 -0
  39. package/src/widgets/WebPageBuilder4/GapSetting.vue +75 -0
  40. package/src/widgets/WebPageBuilder4/GrayscaleSetting.vue +68 -0
  41. package/src/widgets/WebPageBuilder4/GridSetting.vue +166 -0
  42. package/src/widgets/WebPageBuilder4/HeightSetting.vue +95 -0
  43. package/src/widgets/WebPageBuilder4/ImageSetting.vue +102 -0
  44. package/src/widgets/WebPageBuilder4/MarginSetting.vue +64 -0
  45. package/src/widgets/WebPageBuilder4/MaxHeightSetting.vue +82 -0
  46. package/src/widgets/WebPageBuilder4/MaxWidthSetting.vue +90 -0
  47. package/src/widgets/WebPageBuilder4/MinHeightSetting.vue +81 -0
  48. package/src/widgets/WebPageBuilder4/MinWidthSetting.vue +101 -0
  49. package/src/widgets/WebPageBuilder4/MultiValueSetting.vue +155 -0
  50. package/src/widgets/WebPageBuilder4/OpacitySetting.vue +77 -0
  51. package/src/widgets/WebPageBuilder4/OverflowSetting.vue +81 -0
  52. package/src/widgets/WebPageBuilder4/PaddingSetting.vue +53 -0
  53. package/src/widgets/WebPageBuilder4/PositionSetting.vue +191 -0
  54. package/src/widgets/WebPageBuilder4/PropertySetting.vue +176 -0
  55. package/src/widgets/WebPageBuilder4/TextSetting.vue +72 -0
  56. package/src/widgets/WebPageBuilder4/TreeView.vue +43 -0
  57. package/src/widgets/WebPageBuilder4/TreeViewItem.vue +298 -0
  58. package/src/widgets/WebPageBuilder4/WebPageComponentSelector.vue +141 -0
  59. package/src/widgets/WebPageBuilder4/WebPagePropertySelector.vue +172 -0
  60. package/src/widgets/WebPageBuilder4/WidthSetting.vue +105 -0
  61. package/src/widgets/WebPageBuilder4/ZIndexSetting.vue +72 -0
  62. package/src/widgets/WebPageBuilder4.vue +798 -0
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Background Repeat</label>
5
+ <Dropdown v-model="bgSize[index]">
6
+ <option value="">Unset</option>
7
+ <option v-for="value in values" :value="`${viewType}${value[0]}`">
8
+ {{ value[1] }}
9
+ </option>
10
+ </Dropdown>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ export default{
18
+
19
+ inject: [ 'viewTypes' ],
20
+
21
+ props: {
22
+
23
+ index: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+
28
+ value: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+
33
+ viewType: {
34
+ type: String,
35
+ required: true
36
+ },
37
+
38
+ },
39
+
40
+ computed: {
41
+
42
+ bgSize(){
43
+ if(!Array.isArray(this.value.props.bgSize))
44
+ this.value.props.bgSize = this.viewTypes.map(_ => '')
45
+ return this.value.props.bgSize
46
+ }
47
+
48
+ },
49
+
50
+ data(){
51
+ return {
52
+ values: [
53
+ [ 'bg-auto', 'Auto' ],
54
+ [ 'bg-cover', 'Cover' ],
55
+ [ 'bg-contain', 'Contain' ],
56
+ [ 'bg-50%', '50%' ],
57
+ [ 'bg-20%', '20%' ],
58
+ [ 'bg-10%', '10%' ],
59
+ ]
60
+ }
61
+ }
62
+
63
+ }
64
+
65
+ </script>
66
+
67
+ <style module>
68
+
69
+ .comp{
70
+ }
71
+
72
+ </style>
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Blur</label>
5
+ <Dropdown v-model="blur[index]">
6
+ <option value="">Unset</option>
7
+ <option v-for="value in values" :value="`${viewType}${value[0]}`">
8
+ {{ value[1] }}
9
+ </option>
10
+ </Dropdown>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ export default{
18
+
19
+ inject: [ 'viewTypes' ],
20
+
21
+ props: {
22
+
23
+ index: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+
28
+ value: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+
33
+ viewType: {
34
+ type: String,
35
+ required: true
36
+ },
37
+
38
+ },
39
+
40
+ computed: {
41
+
42
+ blur(){
43
+ if(!Array.isArray(this.value.props.blur))
44
+ this.value.props.blur = this.viewTypes.map(_ => '')
45
+ return this.value.props.blur
46
+ }
47
+
48
+ },
49
+
50
+ data(){
51
+ return {
52
+ values: [
53
+ [ 'blur-none', 'None' ],
54
+ [ 'blur-sm', 'Sm' ],
55
+ [ 'blur', 'Md' ],
56
+ [ 'blur-lg', 'Lg' ],
57
+ [ 'blur-xl', 'Xl' ],
58
+ [ 'blur-2xl', '2xl' ],
59
+ ]
60
+ }
61
+ }
62
+
63
+ }
64
+
65
+ </script>
66
+
67
+ <style module>
68
+
69
+ .comp{
70
+ }
71
+
72
+ </style>
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Border Color</label>
5
+ <ColorPicker2 v-model="bdColor[index]"
6
+ :prefix="viewType"
7
+ :keys="keys" />
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+
14
+ export default{
15
+
16
+ computed: {
17
+
18
+ bdColor(){
19
+ if(!Array.isArray(this.value.props.bdColor))
20
+ this.value.props.bdColor = this.viewTypes.map(_ => '')
21
+ return this.value.props.bdColor
22
+ }
23
+
24
+ },
25
+
26
+ data(){
27
+ return {
28
+ keys: [
29
+ [ 'border-' ],
30
+ ]
31
+ }
32
+ },
33
+
34
+ inject: [ 'viewTypes' ],
35
+
36
+ props: {
37
+
38
+ index: {
39
+ type: Number,
40
+ required: true
41
+ },
42
+
43
+ value: {
44
+ type: Object,
45
+ required: true
46
+ },
47
+
48
+ viewType: {
49
+ type: String,
50
+ required: true
51
+ },
52
+
53
+ },
54
+
55
+ }
56
+
57
+ </script>
58
+
59
+ <style module>
60
+
61
+ .comp{
62
+ }
63
+
64
+ </style>
@@ -0,0 +1,75 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Border Radius</label>
5
+ <Dropdown v-model="bdRadius[index]">
6
+ <option value="">Unset</option>
7
+ <option v-for="value in values" :value="`${viewType}${value[0]}`">
8
+ {{ value[1] }}
9
+ </option>
10
+ </Dropdown>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ export default{
18
+
19
+ inject: [ 'viewTypes' ],
20
+
21
+ props: {
22
+
23
+ index: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+
28
+ value: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+
33
+ viewType: {
34
+ type: String,
35
+ required: true
36
+ },
37
+
38
+ },
39
+
40
+ computed: {
41
+
42
+ bdRadius(){
43
+ if(!Array.isArray(this.value.props.bdRadius))
44
+ this.value.props.bdRadius = this.viewTypes.map(_ => '')
45
+ return this.value.props.bdRadius
46
+ }
47
+
48
+ },
49
+
50
+ data(){
51
+ return {
52
+ values: [
53
+ [ 'rounded-none', 'None' ],
54
+ [ 'rounded', 'Normal' ],
55
+ [ 'rounded-sm', 'Sm' ],
56
+ [ 'rounded-md', 'Md' ],
57
+ [ 'rounded-lg', 'Lg' ],
58
+ [ 'rounded-xl', 'Xl' ],
59
+ [ 'rounded-2xl', '2xl' ],
60
+ [ 'rounded-3xl', '3xl' ],
61
+ [ 'rounded-full', 'Full' ],
62
+ ]
63
+ }
64
+ }
65
+
66
+ }
67
+
68
+ </script>
69
+
70
+ <style module>
71
+
72
+ .comp{
73
+ }
74
+
75
+ </style>
@@ -0,0 +1,69 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row">
4
+ <label class="flex-1">Border Size</label>
5
+ <MultiValueSetting :keys="keys"
6
+ class="items-end"
7
+ item-class="max-w-[40px]"
8
+ :values="values"
9
+ v-model="bdSize[index]"
10
+ :prefix="viewType" />
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ import MultiValueSetting from "./MultiValueSetting.vue";
18
+
19
+ export default{
20
+ components: {MultiValueSetting},
21
+
22
+ inject: [ 'viewTypes' ],
23
+
24
+ props: {
25
+
26
+ index: {
27
+ type: Number,
28
+ required: true
29
+ },
30
+
31
+ value: {
32
+ type: Object,
33
+ required: true
34
+ },
35
+
36
+ viewType: {
37
+ type: String,
38
+ required: true
39
+ },
40
+
41
+ },
42
+
43
+ computed: {
44
+
45
+ bdSize(){
46
+ if(!Array.isArray(this.value.props.bdSize))
47
+ this.value.props.bdSize = this.viewTypes.map(_ => '')
48
+ return this.value.props.bdSize
49
+ }
50
+
51
+ },
52
+
53
+ data(){
54
+ return {
55
+ keys: [['border'], ['border-x', 'border-y'], ['border-l', 'border-t', 'border-r', 'border-b']],
56
+ values: [['', 'Normal'], ['-0', '0'], ['-2', '2'], ['-4', '4'], ['-8', '8']]
57
+ }
58
+ }
59
+
60
+ }
61
+
62
+ </script>
63
+
64
+ <style module>
65
+
66
+ .comp{
67
+ }
68
+
69
+ </style>
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Border Style</label>
5
+ <Dropdown v-model="bdStyle[index]">
6
+ <option value="">Unset</option>
7
+ <option v-for="value in values" :value="`${viewType}${value[0]}`">
8
+ {{ value[1] }}
9
+ </option>
10
+ </Dropdown>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ export default{
18
+
19
+ inject: [ 'viewTypes' ],
20
+
21
+ props: {
22
+
23
+ index: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+
28
+ value: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+
33
+ viewType: {
34
+ type: String,
35
+ required: true
36
+ },
37
+
38
+ },
39
+
40
+ computed: {
41
+
42
+ bdStyle(){
43
+ if(!Array.isArray(this.value.props.bdStyle))
44
+ this.value.props.bdStyle = this.viewTypes.map(_ => '')
45
+ return this.value.props.bdStyle
46
+ }
47
+
48
+ },
49
+
50
+ data(){
51
+ return {
52
+ values: [
53
+ [ 'border-solid', 'Solid' ],
54
+ [ 'border-dashed', 'Dashed' ],
55
+ [ 'border-dotted', 'Dotted' ],
56
+ [ 'border-double', 'Double' ],
57
+ [ 'border-hidden', 'Double' ],
58
+ [ 'border-none', 'None' ],
59
+ ]
60
+ }
61
+ }
62
+
63
+ }
64
+
65
+ </script>
66
+
67
+ <style module>
68
+
69
+ .comp{
70
+ }
71
+
72
+ </style>
@@ -0,0 +1,73 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+ <div class="flex flex-row items-center">
4
+ <label class="flex-1">Box Shadow</label>
5
+ <Dropdown v-model="boxShadow[index]">
6
+ <option value="">Unset</option>
7
+ <option v-for="value in values" :value="`${viewType}${value[0]}`">
8
+ {{ value[1] }}
9
+ </option>
10
+ </Dropdown>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+
17
+ export default{
18
+
19
+ inject: [ 'viewTypes' ],
20
+
21
+ props: {
22
+
23
+ index: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+
28
+ value: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+
33
+ viewType: {
34
+ type: String,
35
+ required: true
36
+ },
37
+
38
+ },
39
+
40
+ computed: {
41
+
42
+ boxShadow(){
43
+ if(!Array.isArray(this.value.props.boxShadow))
44
+ this.value.props.boxShadow = this.viewTypes.map(_ => '')
45
+ return this.value.props.boxShadow
46
+ }
47
+
48
+ },
49
+
50
+ data(){
51
+ return {
52
+ values: [
53
+ [ 'shadow-none', 'None' ],
54
+ [ 'shadow-sm', 'Sm' ],
55
+ [ 'shadow', 'Md' ],
56
+ [ 'shadow-lg', 'Lg' ],
57
+ [ 'shadow-xl', 'Xl' ],
58
+ [ 'shadow-2xl', '2xl' ],
59
+ [ 'shadow-inner', 'Inner' ],
60
+ ]
61
+ }
62
+ }
63
+
64
+ }
65
+
66
+ </script>
67
+
68
+ <style module>
69
+
70
+ .comp{
71
+ }
72
+
73
+ </style>
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <div :class="$style.comp">
3
+
4
+ <div class="flex flex-row items-center gap-3">
5
+ <Textbox v-model="value.name" class="flex-1 p-0 border-none" :placeholder="value.type" />
6
+ <Switch v-model="value.props.enabled" />
7
+ </div>
8
+
9
+ <div class="flex flex-row items-center gap-3">
10
+ <label class="flex-1">Variant</label>
11
+ <Dropdown v-model="value.props.variant" class="w-[120px]">
12
+ <option value="primary">Primary</option>
13
+ <option value="secondary">Secondary</option>
14
+ <option value="outline">Outline</option>
15
+ <option value="minimal">Minimal</option>
16
+ </Dropdown>
17
+ </div>
18
+
19
+ <div class="flex flex-col gap-1">
20
+ <label class="flex-1">Text</label>
21
+ <Textbox v-model="value.props.text" />
22
+ </div>
23
+
24
+ <PropertySetting :value="value" :index="index" :viewType="viewType" />
25
+
26
+ </div>
27
+ </template>
28
+
29
+ <script>
30
+
31
+ import {defineAsyncComponent} from "vue";
32
+
33
+ export default{
34
+
35
+ components: {
36
+ PropertySetting: defineAsyncComponent(() => import('./PropertySetting.vue'))
37
+ },
38
+
39
+ inject: [ 'viewTypes' ],
40
+
41
+ name: 'ButtonSetting',
42
+
43
+ props: {
44
+
45
+ index: Number,
46
+
47
+ value: {
48
+ type: Object,
49
+ required: true
50
+ },
51
+
52
+ viewType: String,
53
+
54
+ },
55
+ }
56
+
57
+ </script>
58
+
59
+ <style module>
60
+
61
+ .comp{
62
+ @apply flex flex-col gap-5;
63
+ }
64
+
65
+ </style>