@soppiya/app-bridge 1.0.8 → 1.1.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.
Files changed (116) hide show
  1. package/dist/components/articles-picker/api/query.d.ts +8 -0
  2. package/dist/components/articles-picker/api/query.js +22 -0
  3. package/dist/components/articles-picker/index.d.ts +1 -0
  4. package/dist/components/articles-picker/index.js +2 -0
  5. package/dist/components/articles-picker/model/useArticles.d.ts +30 -0
  6. package/dist/components/articles-picker/model/useArticles.js +46 -0
  7. package/dist/components/articles-picker/ui/ArticlesPicker.d.ts +9 -0
  8. package/dist/components/articles-picker/ui/ArticlesPicker.js +107 -0
  9. package/dist/components/articles-picker/ui/ProductPicker.stories.d.ts +17 -0
  10. package/dist/components/articles-picker/ui/ProductPicker.stories.js +13 -0
  11. package/dist/components/blogs-picker/api/query.d.ts +8 -0
  12. package/dist/components/blogs-picker/api/query.js +22 -0
  13. package/dist/components/blogs-picker/index.d.ts +1 -0
  14. package/dist/components/blogs-picker/index.js +2 -0
  15. package/dist/components/blogs-picker/model/useBlogs.d.ts +30 -0
  16. package/dist/components/blogs-picker/model/useBlogs.js +46 -0
  17. package/dist/components/blogs-picker/ui/BlogsPicker.d.ts +9 -0
  18. package/dist/components/blogs-picker/ui/BlogsPicker.js +107 -0
  19. package/dist/components/blogs-picker/ui/BlogsPicker.stories.d.ts +17 -0
  20. package/dist/components/blogs-picker/ui/BlogsPicker.stories.js +13 -0
  21. package/dist/components/collections-pciker/api/query.d.ts +5 -0
  22. package/dist/components/collections-pciker/api/query.js +22 -0
  23. package/dist/components/collections-pciker/index.d.ts +1 -0
  24. package/dist/components/collections-pciker/index.js +2 -0
  25. package/dist/components/collections-pciker/model/useCollections.d.ts +29 -0
  26. package/dist/components/collections-pciker/model/useCollections.js +32 -0
  27. package/dist/components/collections-pciker/ui/CollectionPicker.d.ts +9 -0
  28. package/dist/components/collections-pciker/ui/CollectionPicker.js +105 -0
  29. package/dist/components/collections-pciker/ui/CollectionPicker.stories.d.ts +17 -0
  30. package/dist/components/collections-pciker/ui/CollectionPicker.stories.js +13 -0
  31. package/dist/components/index.d.ts +9 -3
  32. package/dist/components/index.js +9 -4
  33. package/dist/components/meta-data/api/query.d.ts +4 -0
  34. package/dist/components/meta-data/api/query.js +14 -0
  35. package/dist/components/meta-data/index.d.ts +1 -0
  36. package/dist/components/meta-data/index.js +2 -0
  37. package/dist/components/meta-data/model/meta.types.d.ts +7 -0
  38. package/dist/components/meta-data/model/meta.types.js +33 -0
  39. package/dist/components/meta-data/model/schema.d.ts +0 -0
  40. package/dist/components/meta-data/model/schema.js +0 -0
  41. package/dist/components/meta-data/model/useGetMetaFields.d.ts +12 -0
  42. package/dist/components/meta-data/model/useGetMetaFields.js +18 -0
  43. package/dist/components/meta-data/ui/ArticleRefMetaField.d.ts +3 -0
  44. package/dist/components/meta-data/ui/ArticleRefMetaField.js +37 -0
  45. package/dist/components/meta-data/ui/BlogRefMetaField.d.ts +3 -0
  46. package/dist/components/meta-data/ui/BlogRefMetaField.js +37 -0
  47. package/dist/components/meta-data/ui/BooleanMetaField.d.ts +3 -0
  48. package/dist/components/meta-data/ui/BooleanMetaField.js +27 -0
  49. package/dist/components/meta-data/ui/CollectionRefMetaField.d.ts +3 -0
  50. package/dist/components/meta-data/ui/CollectionRefMetaField.js +36 -0
  51. package/dist/components/meta-data/ui/ColorMetaField.d.ts +3 -0
  52. package/dist/components/meta-data/ui/ColorMetaField.js +17 -0
  53. package/dist/components/meta-data/ui/DateAndTimeMetaField.d.ts +3 -0
  54. package/dist/components/meta-data/ui/DateAndTimeMetaField.js +34 -0
  55. package/dist/components/meta-data/ui/DateMetaField.d.ts +3 -0
  56. package/dist/components/meta-data/ui/DateMetaField.js +33 -0
  57. package/dist/components/meta-data/ui/FloatMetaField.d.ts +3 -0
  58. package/dist/components/meta-data/ui/FloatMetaField.js +23 -0
  59. package/dist/components/meta-data/ui/MetaData.d.ts +13 -0
  60. package/dist/components/meta-data/ui/MetaData.js +66 -0
  61. package/dist/components/meta-data/ui/MetaData.stories.d.ts +10 -0
  62. package/dist/components/meta-data/ui/MetaData.stories.js +136 -0
  63. package/dist/components/meta-data/ui/MetaDataItem.d.ts +16 -0
  64. package/dist/components/meta-data/ui/MetaDataItem.js +256 -0
  65. package/dist/components/meta-data/ui/MetaDataTypePopup.d.ts +11 -0
  66. package/dist/components/meta-data/ui/MetaDataTypePopup.js +70 -0
  67. package/dist/components/meta-data/ui/MultilineTextMetaField.d.ts +3 -0
  68. package/dist/components/meta-data/ui/MultilineTextMetaField.js +15 -0
  69. package/dist/components/meta-data/ui/NumberMetaField.d.ts +3 -0
  70. package/dist/components/meta-data/ui/NumberMetaField.js +19 -0
  71. package/dist/components/meta-data/ui/PageRefMetaField.d.ts +3 -0
  72. package/dist/components/meta-data/ui/PageRefMetaField.js +37 -0
  73. package/dist/components/meta-data/ui/ProductRefMetaField.d.ts +3 -0
  74. package/dist/components/meta-data/ui/ProductRefMetaField.js +37 -0
  75. package/dist/components/meta-data/ui/SingleLineTextMetaField.d.ts +3 -0
  76. package/dist/components/meta-data/ui/SingleLineTextMetaField.js +18 -0
  77. package/dist/components/meta-data/ui/VariantRefMetaField.d.ts +3 -0
  78. package/dist/components/meta-data/ui/VariantRefMetaField.js +45 -0
  79. package/dist/components/pages-picker/api/query.d.ts +8 -0
  80. package/dist/components/pages-picker/api/query.js +22 -0
  81. package/dist/components/pages-picker/index.d.ts +1 -0
  82. package/dist/components/pages-picker/index.js +2 -0
  83. package/dist/components/pages-picker/model/usePages.d.ts +30 -0
  84. package/dist/components/pages-picker/model/usePages.js +46 -0
  85. package/dist/components/pages-picker/ui/PagesPicker.d.ts +9 -0
  86. package/dist/components/pages-picker/ui/PagesPicker.js +104 -0
  87. package/dist/components/pages-picker/ui/PagesPicker.stories.d.ts +17 -0
  88. package/dist/components/pages-picker/ui/PagesPicker.stories.js +13 -0
  89. package/dist/components/products-picker/api/query.d.ts +8 -0
  90. package/dist/components/products-picker/api/query.js +24 -0
  91. package/dist/components/products-picker/index.d.ts +1 -0
  92. package/dist/components/products-picker/index.js +2 -0
  93. package/dist/components/products-picker/model/useProducts.d.ts +30 -0
  94. package/dist/components/products-picker/model/useProducts.js +46 -0
  95. package/dist/components/products-picker/ui/ProductPicker.d.ts +9 -0
  96. package/dist/components/products-picker/ui/ProductPicker.js +107 -0
  97. package/dist/components/products-picker/ui/ProductsPicker.stories.d.ts +17 -0
  98. package/dist/components/products-picker/ui/ProductsPicker.stories.js +13 -0
  99. package/dist/components/variants-picker/api/query.d.ts +1 -0
  100. package/dist/components/variants-picker/api/query.js +2 -2
  101. package/dist/components/variants-picker/model/useVariants.d.ts +3 -0
  102. package/dist/components/variants-picker/model/useVariants.js +6 -3
  103. package/dist/components/variants-picker/ui/VariantsPicker.d.ts +2 -1
  104. package/dist/components/variants-picker/ui/VariantsPicker.js +3 -2
  105. package/dist/components/variants-picker/ui/VariantsPicker.stories.d.ts +2 -1
  106. package/dist/index.d.ts +2 -2
  107. package/dist/shared/graphql/gql.d.ts +32 -2
  108. package/dist/shared/graphql/gql.js +8 -2
  109. package/dist/shared/graphql/graphql.d.ts +2296 -100
  110. package/dist/shared/graphql/graphql.js +2382 -297
  111. package/dist/shared/loading/Loading.d.ts +2 -0
  112. package/dist/shared/loading/Loading.js +11 -0
  113. package/dist/shared/loading/index.d.ts +1 -0
  114. package/dist/shared/loading/index.js +2 -0
  115. package/dist/styles.css +118 -0
  116. package/package.json +4 -2
@@ -0,0 +1,66 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Loading } from "../../../shared/loading/index.js";
3
+ import { BlockStack, Card, Text } from "@soppiya/elementus";
4
+ import { isFunction } from "lodash";
5
+ import { useGetMetaFields } from "../model/useGetMetaFields.js";
6
+ import MetaDataItem from "./MetaDataItem.js";
7
+ const MetaData_MetaData = ({ scope = "product", value = [], onChange })=>{
8
+ const { metafields, loading } = useGetMetaFields([
9
+ scope
10
+ ]);
11
+ const handleChange = (metaFieldID, value)=>{
12
+ isFunction(onChange) && onChange({
13
+ metafield: metaFieldID,
14
+ value
15
+ });
16
+ };
17
+ const getMetaFieldValue = (_id)=>{
18
+ const metaField = value.find((item)=>item.metafield === _id);
19
+ return metaField?.value;
20
+ };
21
+ if (0 === metafields.length) return /*#__PURE__*/ jsxs(Card, {
22
+ children: [
23
+ /*#__PURE__*/ jsx(BlockStack, {
24
+ padding: 70,
25
+ children: /*#__PURE__*/ jsx("div", {
26
+ children: /*#__PURE__*/ jsx(Text, {
27
+ size: "md",
28
+ weight: "semibold",
29
+ children: "Meta fields"
30
+ })
31
+ })
32
+ }),
33
+ /*#__PURE__*/ jsx(BlockStack, {
34
+ className: "border-t border-t-[#ebebeb]",
35
+ padding: 70,
36
+ children: /*#__PURE__*/ jsx(Text, {
37
+ size: "md",
38
+ weight: "medium",
39
+ alignment: "center",
40
+ children: "Empty"
41
+ })
42
+ })
43
+ ]
44
+ });
45
+ return /*#__PURE__*/ jsxs(Card, {
46
+ children: [
47
+ /*#__PURE__*/ jsx(BlockStack, {
48
+ padding: 70,
49
+ children: /*#__PURE__*/ jsx("div", {
50
+ children: /*#__PURE__*/ jsx(Text, {
51
+ size: "md",
52
+ weight: "semibold",
53
+ children: "Meta fields"
54
+ })
55
+ })
56
+ }),
57
+ loading && !metafields ? /*#__PURE__*/ jsx(Loading, {}) : metafields.map((metaField)=>/*#__PURE__*/ jsx(MetaDataItem, {
58
+ metaField: metaField,
59
+ value: getMetaFieldValue(metaField?._id ?? ""),
60
+ onChange: (value)=>handleChange(metaField?._id ?? "", value)
61
+ }, metaField?._id))
62
+ ]
63
+ });
64
+ };
65
+ const MetaData = MetaData_MetaData;
66
+ export { MetaData as default };
@@ -0,0 +1,10 @@
1
+ import MetaData from "./MetaData";
2
+ import type { Meta } from "@storybook/react";
3
+ declare const meta: Meta<typeof MetaData>;
4
+ export default meta;
5
+ export declare const Product: () => import("react/jsx-runtime").JSX.Element;
6
+ export declare const Article: () => import("react/jsx-runtime").JSX.Element;
7
+ export declare const Variant: () => import("react/jsx-runtime").JSX.Element;
8
+ export declare const Blog: () => import("react/jsx-runtime").JSX.Element;
9
+ export declare const Page: () => import("react/jsx-runtime").JSX.Element;
10
+ export declare const Collection: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,136 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Card } from "@soppiya/elementus";
3
+ import { useState } from "react";
4
+ import MetaData from "./MetaData.js";
5
+ const meta = {
6
+ title: "Example/MetaData",
7
+ component: MetaData
8
+ };
9
+ const MetaData_stories = meta;
10
+ const Product = ()=>{
11
+ const [product, setProduct] = useState([]);
12
+ const handleChange = (field)=>{
13
+ setProduct((prev)=>{
14
+ const exists = prev.find((f)=>f.metafield === field.metafield);
15
+ if (!exists) return [
16
+ ...prev,
17
+ field
18
+ ];
19
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
20
+ });
21
+ };
22
+ return /*#__PURE__*/ jsx(Card, {
23
+ padding: 70,
24
+ children: /*#__PURE__*/ jsx(MetaData, {
25
+ scope: "product",
26
+ value: product,
27
+ onChange: handleChange
28
+ })
29
+ });
30
+ };
31
+ const Article = ()=>{
32
+ const [product, setProduct] = useState([]);
33
+ const handleChange = (field)=>{
34
+ setProduct((prev)=>{
35
+ const exists = prev.find((f)=>f.metafield === field.metafield);
36
+ if (!exists) return [
37
+ ...prev,
38
+ field
39
+ ];
40
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
41
+ });
42
+ };
43
+ return /*#__PURE__*/ jsx(Card, {
44
+ padding: 70,
45
+ children: /*#__PURE__*/ jsx(MetaData, {
46
+ scope: "article",
47
+ value: product,
48
+ onChange: handleChange
49
+ })
50
+ });
51
+ };
52
+ const Variant = ()=>{
53
+ const [product, setProduct] = useState([]);
54
+ const handleChange = (field)=>{
55
+ setProduct((prev)=>{
56
+ const exists = prev.find((f)=>f.metafield === field.metafield);
57
+ if (!exists) return [
58
+ ...prev,
59
+ field
60
+ ];
61
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
62
+ });
63
+ };
64
+ return /*#__PURE__*/ jsx(Card, {
65
+ padding: 70,
66
+ children: /*#__PURE__*/ jsx(MetaData, {
67
+ scope: "variant",
68
+ value: product,
69
+ onChange: handleChange
70
+ })
71
+ });
72
+ };
73
+ const Blog = ()=>{
74
+ const [product, setProduct] = useState([]);
75
+ const handleChange = (field)=>{
76
+ setProduct((prev)=>{
77
+ const exists = prev.find((f)=>f.metafield === field.metafield);
78
+ if (!exists) return [
79
+ ...prev,
80
+ field
81
+ ];
82
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
83
+ });
84
+ };
85
+ return /*#__PURE__*/ jsx(Card, {
86
+ padding: 70,
87
+ children: /*#__PURE__*/ jsx(MetaData, {
88
+ scope: "blog",
89
+ value: product,
90
+ onChange: handleChange
91
+ })
92
+ });
93
+ };
94
+ const Page = ()=>{
95
+ const [product, setProduct] = useState([]);
96
+ const handleChange = (field)=>{
97
+ setProduct((prev)=>{
98
+ const exists = prev.find((f)=>f.metafield === field.metafield);
99
+ if (!exists) return [
100
+ ...prev,
101
+ field
102
+ ];
103
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
104
+ });
105
+ };
106
+ return /*#__PURE__*/ jsx(Card, {
107
+ padding: 70,
108
+ children: /*#__PURE__*/ jsx(MetaData, {
109
+ scope: "page",
110
+ value: product,
111
+ onChange: handleChange
112
+ })
113
+ });
114
+ };
115
+ const Collection = ()=>{
116
+ const [product, setProduct] = useState([]);
117
+ const handleChange = (field)=>{
118
+ setProduct((prev)=>{
119
+ const exists = prev.find((f)=>f.metafield === field.metafield);
120
+ if (!exists) return [
121
+ ...prev,
122
+ field
123
+ ];
124
+ return prev.map((f)=>f.metafield === field.metafield ? field : f);
125
+ });
126
+ };
127
+ return /*#__PURE__*/ jsx(Card, {
128
+ padding: 70,
129
+ children: /*#__PURE__*/ jsx(MetaData, {
130
+ scope: "collection",
131
+ value: product,
132
+ onChange: handleChange
133
+ })
134
+ });
135
+ };
136
+ export { Article, Blog, Collection, Page, Product, Variant, MetaData_stories as default };
@@ -0,0 +1,16 @@
1
+ import { Metafield } from "../../../shared/graphql/graphql";
2
+ import React from "react";
3
+ interface Props {
4
+ metaField: Metafield;
5
+ value?: string[];
6
+ onChange?: (value: string[]) => void;
7
+ }
8
+ export interface MetaDataProps {
9
+ entry?: string;
10
+ value?: string;
11
+ children?: React.ReactNode;
12
+ onChange: (value: string) => void;
13
+ onDelete?: () => void;
14
+ }
15
+ declare const MetaDataItem: ({ metaField, value, onChange }: Props) => import("react/jsx-runtime").JSX.Element;
16
+ export default MetaDataItem;
@@ -0,0 +1,256 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button, Card, InlineStack, SoppiyaIcon, Text } from "@soppiya/elementus";
3
+ import ArticlesPicker from "../../articles-picker/ui/ArticlesPicker.js";
4
+ import BlogsPicker from "../../blogs-picker/ui/BlogsPicker.js";
5
+ import CollectionPicker from "../../collections-pciker/ui/CollectionPicker.js";
6
+ import PagesPicker from "../../pages-picker/ui/PagesPicker.js";
7
+ import { ProductsPicker } from "../../products-picker/index.js";
8
+ import { VariantsPicker } from "../../variants-picker/index.js";
9
+ import { useClickAway } from "@uidotdev/usehooks";
10
+ import classnames from "classnames";
11
+ import { isEmpty, isFunction, isNumber } from "lodash";
12
+ import react, { useCallback, useState } from "react";
13
+ import meta_types from "../model/meta.types.js";
14
+ import ArticleRefMetaField from "./ArticleRefMetaField.js";
15
+ import BlogRefMetaField from "./BlogRefMetaField.js";
16
+ import BooleanMetaField from "./BooleanMetaField.js";
17
+ import CollectionRefMetaField from "./CollectionRefMetaField.js";
18
+ import ColorMetaField from "./ColorMetaField.js";
19
+ import DateAndTimeMetaField from "./DateAndTimeMetaField.js";
20
+ import DateMetaField from "./DateMetaField.js";
21
+ import MetaDataTypePopup from "./MetaDataTypePopup.js";
22
+ import MultilineTextMetaField from "./MultilineTextMetaField.js";
23
+ import NumberMetaField from "./NumberMetaField.js";
24
+ import PageRefMetaField from "./PageRefMetaField.js";
25
+ import ProductRefMetaField from "./ProductRefMetaField.js";
26
+ import SingleLineTextMetaField from "./SingleLineTextMetaField.js";
27
+ import VariantRefMetaField from "./VariantRefMetaField.js";
28
+ const MetaDataItem_MetaDataItem = ({ metaField, value = [], onChange })=>{
29
+ const [activeMetaField, setActiveMetaField] = useState(null);
30
+ const [visibleExplorer, setVisibleExplorer] = useState("");
31
+ const metaFieldRef = useClickAway(()=>visibleExplorer ? null : setActiveMetaField(null));
32
+ const isRefType = meta_types.isRefType(metaField.type);
33
+ let MetaFieldJSX;
34
+ switch(metaField.type){
35
+ case "date_time":
36
+ MetaFieldJSX = DateAndTimeMetaField;
37
+ break;
38
+ case "date":
39
+ MetaFieldJSX = DateMetaField;
40
+ break;
41
+ case "number":
42
+ MetaFieldJSX = NumberMetaField;
43
+ break;
44
+ case "multiline_text":
45
+ MetaFieldJSX = MultilineTextMetaField;
46
+ break;
47
+ case "single_line_text":
48
+ MetaFieldJSX = SingleLineTextMetaField;
49
+ break;
50
+ case "product_ref":
51
+ MetaFieldJSX = ProductRefMetaField;
52
+ break;
53
+ case "collection_ref":
54
+ MetaFieldJSX = CollectionRefMetaField;
55
+ break;
56
+ case "variant_ref":
57
+ MetaFieldJSX = VariantRefMetaField;
58
+ break;
59
+ case "page_ref":
60
+ MetaFieldJSX = PageRefMetaField;
61
+ break;
62
+ case "article_ref":
63
+ MetaFieldJSX = ArticleRefMetaField;
64
+ break;
65
+ case "blog_ref":
66
+ MetaFieldJSX = BlogRefMetaField;
67
+ break;
68
+ case "boolean":
69
+ MetaFieldJSX = BooleanMetaField;
70
+ break;
71
+ case "color":
72
+ MetaFieldJSX = ColorMetaField;
73
+ break;
74
+ }
75
+ const handleCheckIsMultiple = ()=>{
76
+ if (isRefType && "single" === metaField.entry) return !(value.length >= 1);
77
+ return "multiple" === metaField.entry;
78
+ };
79
+ const handleToggleMetaField = (value)=>{
80
+ setActiveMetaField((prev)=>prev ? null : value);
81
+ };
82
+ const handleAddMetaField = ()=>{
83
+ switch(metaField.type){
84
+ case "product_ref":
85
+ setVisibleExplorer("product");
86
+ break;
87
+ case "collection_ref":
88
+ setVisibleExplorer("collection");
89
+ break;
90
+ case "variant_ref":
91
+ setVisibleExplorer("variant");
92
+ break;
93
+ case "page_ref":
94
+ setVisibleExplorer("page");
95
+ break;
96
+ case "blog_ref":
97
+ setVisibleExplorer("blog");
98
+ break;
99
+ case "article_ref":
100
+ setVisibleExplorer("article");
101
+ break;
102
+ default:
103
+ isFunction(onChange) && onChange(value.concat(""));
104
+ }
105
+ };
106
+ const handleDeleteMetaField = (i)=>{
107
+ if (!isNumber(i)) return;
108
+ const filteredValue = value.filter((_, index)=>index !== i);
109
+ isFunction(onChange) && onChange(filteredValue);
110
+ };
111
+ const handleClearMetaField = ()=>{
112
+ isFunction(onChange) && onChange([]);
113
+ };
114
+ const handleChange = (newValue, i)=>{
115
+ if (i && "multiple" === metaField.entry) {
116
+ const mappedValue = value.map((item, index)=>index === i ? newValue : item);
117
+ isFunction(onChange) && onChange(mappedValue);
118
+ } else isFunction(onChange) && onChange([
119
+ newValue
120
+ ]);
121
+ };
122
+ const handleSelectExplorerItems = useCallback((items)=>{
123
+ isFunction(onChange) && onChange(items);
124
+ setVisibleExplorer("");
125
+ }, [
126
+ visibleExplorer,
127
+ onChange
128
+ ]);
129
+ return /*#__PURE__*/ jsxs(react.Fragment, {
130
+ children: [
131
+ /*#__PURE__*/ jsxs(InlineStack, {
132
+ padding: 70,
133
+ className: "border-t border-t-[#ebebeb] relative",
134
+ justifyContent: "space-between",
135
+ children: [
136
+ /*#__PURE__*/ jsx(InlineStack, {
137
+ className: "w-[calc(100%-188px)]! md:w-[calc(100%-256px)]! lg:w-[calc(100%-352px)]!",
138
+ alignItems: "center",
139
+ children: /*#__PURE__*/ jsx(Text, {
140
+ size: "md",
141
+ children: metaField.name
142
+ })
143
+ }),
144
+ /*#__PURE__*/ jsxs(InlineStack, {
145
+ className: "w-[188px]! md:w-[256px]! lg:w-[352px]! bg-[#f1f1f1] py-1.5 px-3 lg:cursor-pointer",
146
+ radius: 3,
147
+ justifyContent: "space-between",
148
+ onClick: ()=>handleToggleMetaField(metaField.type),
149
+ children: [
150
+ /*#__PURE__*/ jsxs(Text, {
151
+ size: "sm",
152
+ weight: "regular",
153
+ children: [
154
+ "[",
155
+ metaField.type,
156
+ "]"
157
+ ]
158
+ }),
159
+ /*#__PURE__*/ jsxs(Text, {
160
+ size: "sm",
161
+ weight: "regular",
162
+ children: [
163
+ value.length,
164
+ " item"
165
+ ]
166
+ })
167
+ ]
168
+ }),
169
+ activeMetaField && /*#__PURE__*/ jsx(Card, {
170
+ radius: 6,
171
+ className: classnames('invisible absolute p-4! left-0 md:-left-5 top-0.5 md:w-[calc(100%+40px)]! z-20', {
172
+ visible: activeMetaField
173
+ }),
174
+ ref: metaFieldRef,
175
+ children: /*#__PURE__*/ jsx(MetaDataTypePopup, {
176
+ name: metaField.name,
177
+ type: metaField.type,
178
+ isMultiple: handleCheckIsMultiple(),
179
+ onAdd: handleAddMetaField,
180
+ onClear: handleClearMetaField,
181
+ children: MetaFieldJSX && ("multiple" !== metaField.entry || isRefType ? /*#__PURE__*/ jsx(MetaFieldJSX, {
182
+ value: isRefType ? value.join(",") : value[0],
183
+ onChange: (v)=>handleChange(v),
184
+ children: /*#__PURE__*/ jsx(InlineStack, {
185
+ alignItems: "center",
186
+ children: /*#__PURE__*/ jsx(Button, {
187
+ color: "white",
188
+ onClick: ()=>handleDeleteMetaField(0),
189
+ children: /*#__PURE__*/ jsx(SoppiyaIcon, {
190
+ icon: "minus.svg",
191
+ size: "xs"
192
+ })
193
+ })
194
+ })
195
+ }) : (isEmpty(value) ? [
196
+ ""
197
+ ] : value).map((v, key)=>/*#__PURE__*/ jsx(MetaFieldJSX, {
198
+ entry: metaField.entry,
199
+ onChange: (v)=>handleChange(v, key),
200
+ children: /*#__PURE__*/ jsx(InlineStack, {
201
+ alignItems: "center",
202
+ children: /*#__PURE__*/ jsx(Button, {
203
+ color: "white",
204
+ onClick: ()=>handleDeleteMetaField(key),
205
+ children: /*#__PURE__*/ jsx(SoppiyaIcon, {
206
+ icon: "minus.svg",
207
+ size: "sm"
208
+ })
209
+ })
210
+ })
211
+ }, key)))
212
+ })
213
+ })
214
+ ]
215
+ }),
216
+ "product" === visibleExplorer && /*#__PURE__*/ jsx(ProductsPicker, {
217
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
218
+ initialIds: value,
219
+ onClose: ()=>setVisibleExplorer(""),
220
+ onOk: handleSelectExplorerItems
221
+ }),
222
+ "variant" === visibleExplorer && /*#__PURE__*/ jsx(VariantsPicker, {
223
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
224
+ initialIds: value,
225
+ onClose: ()=>setVisibleExplorer(""),
226
+ onOk: handleSelectExplorerItems
227
+ }),
228
+ "article" === visibleExplorer && /*#__PURE__*/ jsx(ArticlesPicker, {
229
+ initialIds: value,
230
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
231
+ onClose: ()=>setVisibleExplorer(""),
232
+ onOk: handleSelectExplorerItems
233
+ }),
234
+ "collection" === visibleExplorer && /*#__PURE__*/ jsx(CollectionPicker, {
235
+ initialIds: value,
236
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
237
+ onClose: ()=>setVisibleExplorer(""),
238
+ onOk: handleSelectExplorerItems
239
+ }),
240
+ "blog" === visibleExplorer && /*#__PURE__*/ jsx(BlogsPicker, {
241
+ initialIds: value,
242
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
243
+ onClose: ()=>setVisibleExplorer(""),
244
+ onOk: handleSelectExplorerItems
245
+ }),
246
+ "page" === visibleExplorer && /*#__PURE__*/ jsx(PagesPicker, {
247
+ initialIds: value,
248
+ limit: "multiple" === metaField.entry ? 1 / 0 : 1,
249
+ onClose: ()=>setVisibleExplorer(""),
250
+ onOk: handleSelectExplorerItems
251
+ })
252
+ ]
253
+ });
254
+ };
255
+ const MetaDataItem = MetaDataItem_MetaDataItem;
256
+ export { MetaDataItem as default };
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface Props {
3
+ isMultiple: boolean;
4
+ name: string;
5
+ type: string;
6
+ children: React.ReactNode;
7
+ onAdd?: () => void;
8
+ onClear?: () => void;
9
+ }
10
+ declare const MetaFieldTypePopup: ({ isMultiple, name, type, children, onAdd, onClear }: Props) => import("react/jsx-runtime").JSX.Element;
11
+ export default MetaFieldTypePopup;
@@ -0,0 +1,70 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { BlockStack, Button, InlineStack, Text } from "@soppiya/elementus";
3
+ import react from "react";
4
+ import meta_types from "../model/meta.types.js";
5
+ const MetaFieldTypePopup = ({ isMultiple, name, type, children, onAdd, onClear })=>{
6
+ const isRefType = meta_types.isRefType(type);
7
+ const textCapitalize = (value)=>value.split("_").map((w)=>w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
8
+ return /*#__PURE__*/ jsx(react.Fragment, {
9
+ children: /*#__PURE__*/ jsxs(InlineStack, {
10
+ flexDirection: {
11
+ xs: "col",
12
+ md: "row"
13
+ },
14
+ gap: 70,
15
+ children: [
16
+ /*#__PURE__*/ jsxs(BlockStack, {
17
+ className: "w-[170px]!",
18
+ children: [
19
+ /*#__PURE__*/ jsx(Text, {
20
+ size: "md",
21
+ decoration: "underline",
22
+ children: name
23
+ }),
24
+ /*#__PURE__*/ jsx(Text, {
25
+ size: "md",
26
+ color: "secondary",
27
+ children: textCapitalize(type)
28
+ })
29
+ ]
30
+ }),
31
+ /*#__PURE__*/ jsxs(BlockStack, {
32
+ className: "grow md:flex-col-reverse!",
33
+ children: [
34
+ /*#__PURE__*/ jsx(BlockStack, {
35
+ gap: 50,
36
+ padding: {
37
+ top: {
38
+ md: children ? 70 : 0
39
+ }
40
+ },
41
+ className: "border-b border-b-[#ebebeb] md:border-b-transparent pb-4 md:pb-0 ",
42
+ children: children
43
+ }),
44
+ isMultiple && /*#__PURE__*/ jsx(BlockStack, {
45
+ children: /*#__PURE__*/ jsxs(InlineStack, {
46
+ justifyContent: "space-between",
47
+ className: "md:border-b md:border-b-[#ebebeb] mt-4 md:mt-0 md:pb-3",
48
+ children: [
49
+ /*#__PURE__*/ jsx(Button, {
50
+ color: "white",
51
+ onClick: onAdd,
52
+ children: isRefType ? `Select ${type.split("_")[0]}` : "Add Item"
53
+ }),
54
+ /*#__PURE__*/ jsx(Button, {
55
+ variant: "plain",
56
+ color: "blue",
57
+ onClick: onClear,
58
+ children: "Clear all"
59
+ })
60
+ ]
61
+ })
62
+ })
63
+ ]
64
+ })
65
+ ]
66
+ })
67
+ });
68
+ };
69
+ const MetaDataTypePopup = MetaFieldTypePopup;
70
+ export { MetaDataTypePopup as default };
@@ -0,0 +1,3 @@
1
+ import { MetaDataProps } from "./MetaDataItem";
2
+ declare const MultilineTextMetaField: ({ entry, value, children, onChange }: MetaDataProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default MultilineTextMetaField;
@@ -0,0 +1,15 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Textarea } from "@soppiya/elementus";
3
+ const MultilineTextMetaField_MultilineTextMetaField = ({ entry, value, children, onChange })=>/*#__PURE__*/ jsxs("div", {
4
+ children: [
5
+ /*#__PURE__*/ jsx("div", {
6
+ children: /*#__PURE__*/ jsx(Textarea, {
7
+ value: value,
8
+ onChange: (e)=>onChange(e.target.value)
9
+ })
10
+ }),
11
+ "multiple" === entry && children
12
+ ]
13
+ });
14
+ const MultilineTextMetaField = MultilineTextMetaField_MultilineTextMetaField;
15
+ export { MultilineTextMetaField as default };
@@ -0,0 +1,3 @@
1
+ import { MetaDataProps } from "./MetaDataItem";
2
+ declare const NumberMetaField: ({ entry, value, children, onChange }: MetaDataProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default NumberMetaField;
@@ -0,0 +1,19 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Input } from "@soppiya/elementus";
3
+ const NumberMetaField = ({ entry, value, children, onChange })=>/*#__PURE__*/ jsxs("div", {
4
+ children: [
5
+ /*#__PURE__*/ jsx("div", {
6
+ children: /*#__PURE__*/ jsx("div", {
7
+ children: /*#__PURE__*/ jsx(Input, {
8
+ size: "sm",
9
+ type: "number",
10
+ value: value,
11
+ onChange: (e)=>onChange(e.target.value)
12
+ })
13
+ })
14
+ }),
15
+ "multiple" === entry && children
16
+ ]
17
+ });
18
+ const ui_NumberMetaField = NumberMetaField;
19
+ export { ui_NumberMetaField as default };
@@ -0,0 +1,3 @@
1
+ import { MetaDataProps } from "./MetaDataItem";
2
+ declare const PageRefMetaField: ({ value, children }: MetaDataProps) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[] | undefined;
3
+ export default PageRefMetaField;
@@ -0,0 +1,37 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { usePages } from "../../pages-picker/model/usePages.js";
3
+ import { Loading } from "../../../shared/loading/index.js";
4
+ import { Image, InlineStack, Text } from "@soppiya/elementus";
5
+ const PageRefMetaField_PageRefMetaField = ({ value, children })=>{
6
+ const { pages, isLoadingPages } = usePages({
7
+ skip: !value,
8
+ filterKeys: {
9
+ cursors: value?.split(",")
10
+ }
11
+ });
12
+ if (isLoadingPages) return /*#__PURE__*/ jsx(Loading, {});
13
+ return pages?.map((page)=>/*#__PURE__*/ jsxs(InlineStack, {
14
+ justifyContent: "space-between",
15
+ children: [
16
+ /*#__PURE__*/ jsxs(InlineStack, {
17
+ gapX: 70,
18
+ alignItems: "center",
19
+ children: [
20
+ /*#__PURE__*/ jsx(Image, {
21
+ size: "xs",
22
+ url: page.image?.url ?? ""
23
+ }),
24
+ /*#__PURE__*/ jsx(Text, {
25
+ size: "md",
26
+ weight: "regular",
27
+ color: "blue",
28
+ children: page.title
29
+ })
30
+ ]
31
+ }),
32
+ children
33
+ ]
34
+ }, page._id));
35
+ };
36
+ const PageRefMetaField = PageRefMetaField_PageRefMetaField;
37
+ export { PageRefMetaField as default };
@@ -0,0 +1,3 @@
1
+ import { MetaDataProps } from "./MetaDataItem";
2
+ declare const ProductRefMetaField: ({ value, children }: MetaDataProps) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[] | undefined;
3
+ export default ProductRefMetaField;