seat-editor 1.6.12 → 1.6.13

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 (77) hide show
  1. package/dist/app/layout.d.ts +1 -1
  2. package/dist/app/{layout.jsx → layout.js} +2 -7
  3. package/dist/app/new-board/page.d.ts +1 -1
  4. package/dist/app/new-board/page.js +33 -0
  5. package/dist/app/old-board/page.d.ts +1 -2
  6. package/dist/app/old-board/{page.jsx → page.js} +82 -215
  7. package/dist/app/only-view/page.d.ts +1 -1
  8. package/dist/app/only-view/{page.jsx → page.js} +2 -1
  9. package/dist/app/page.d.ts +1 -1
  10. package/dist/app/page.js +8 -0
  11. package/dist/app/test/page.d.ts +1 -0
  12. package/dist/app/test/page.js +43 -0
  13. package/dist/app/v2/page.d.ts +2 -0
  14. package/dist/app/v2/page.js +8 -0
  15. package/dist/components/button-tools/index.d.ts +1 -1
  16. package/dist/components/button-tools/index.js +11 -0
  17. package/dist/components/form-tools/label.d.ts +1 -1
  18. package/dist/components/form-tools/label.js +7 -0
  19. package/dist/components/form-tools/shape.d.ts +1 -1
  20. package/dist/components/form-tools/shape.js +25 -0
  21. package/dist/components/input/number-indicator.d.ts +1 -1
  22. package/dist/components/input/{number-indicator.jsx → number-indicator.js} +2 -11
  23. package/dist/components/joystick/index.d.ts +1 -2
  24. package/dist/components/joystick/{index.jsx → index.js} +13 -14
  25. package/dist/components/layer/index.d.ts +1 -1
  26. package/dist/components/layer/index.js +295 -0
  27. package/dist/components/layer-v2/index.d.ts +19 -0
  28. package/dist/components/layer-v2/index.js +295 -0
  29. package/dist/components/lib/index.d.ts +1 -1
  30. package/dist/components/lib/{index.jsx → index.js} +2 -7
  31. package/dist/components/modal-preview/index.d.ts +1 -1
  32. package/dist/components/modal-preview/index.js +10 -0
  33. package/dist/features/board/index.d.ts +1 -1
  34. package/dist/features/board/{index.jsx → index.js} +31 -90
  35. package/dist/features/board-v2/board-slice.d.ts +14 -0
  36. package/dist/features/board-v2/board-slice.js +52 -0
  37. package/dist/features/board-v2/index.d.ts +6 -0
  38. package/dist/features/board-v2/index.js +666 -0
  39. package/dist/features/navbar/index.d.ts +1 -1
  40. package/dist/features/navbar/index.js +6 -0
  41. package/dist/features/package/index.d.ts +1 -1
  42. package/dist/features/package/{index.jsx → index.js} +7 -17
  43. package/dist/features/panel/index.d.ts +1 -1
  44. package/dist/features/panel/{index.jsx → index.js} +8 -18
  45. package/dist/features/panel/select-tool.d.ts +1 -1
  46. package/dist/features/panel/{select-tool.jsx → select-tool.js} +8 -20
  47. package/dist/features/panel/square-circle-tool.d.ts +1 -1
  48. package/dist/features/panel/{square-circle-tool.jsx → square-circle-tool.js} +2 -4
  49. package/dist/features/panel/table-seat-circle.d.ts +1 -1
  50. package/dist/features/panel/table-seat-circle.js +9 -0
  51. package/dist/features/panel/text-tool.d.ts +1 -1
  52. package/dist/features/panel/text-tool.js +7 -0
  53. package/dist/features/panel/upload-tool.d.ts +1 -1
  54. package/dist/features/panel/{upload-tool.jsx → upload-tool.js} +2 -24
  55. package/dist/features/side-tool/index.d.ts +1 -1
  56. package/dist/features/side-tool/{index.jsx → index.js} +83 -89
  57. package/dist/features/view/index.d.ts +1 -1
  58. package/dist/features/view/{index.jsx → index.js} +31 -38
  59. package/dist/features/view-only/index.d.ts +1 -1
  60. package/dist/features/view-only/{index.jsx → index.js} +31 -38
  61. package/dist/provider/antd-provider.js +43 -0
  62. package/dist/provider/redux-provider.d.ts +1 -1
  63. package/dist/provider/{redux-provider.jsx → redux-provider.js} +2 -1
  64. package/dist/provider/store-provider.d.ts +1 -1
  65. package/dist/provider/{store-provider.jsx → store-provider.js} +2 -3
  66. package/package.json +1 -1
  67. package/dist/app/new-board/page.jsx +0 -53
  68. package/dist/app/page.jsx +0 -13
  69. package/dist/components/button-tools/index.jsx +0 -17
  70. package/dist/components/form-tools/label.jsx +0 -44
  71. package/dist/components/form-tools/shape.jsx +0 -66
  72. package/dist/components/layer/index.jsx +0 -383
  73. package/dist/components/modal-preview/index.jsx +0 -11
  74. package/dist/features/navbar/index.jsx +0 -5
  75. package/dist/features/panel/table-seat-circle.jsx +0 -31
  76. package/dist/features/panel/text-tool.jsx +0 -26
  77. package/dist/provider/antd-provider.jsx +0 -46
@@ -15,5 +15,5 @@ export interface LayerViewProps {
15
15
  containerProps?: any;
16
16
  svgProps?: any;
17
17
  }
18
- declare const LayerView: (props: LayerViewProps) => import("react").JSX.Element;
18
+ declare const LayerView: (props: LayerViewProps) => import("react/jsx-runtime").JSX.Element;
19
19
  export default LayerView;
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import { useEffect, useMemo, useRef, useState } from "react";
4
5
  import { TransformWrapper, TransformComponent, } from "react-zoom-pan-pinch";
5
6
  import { useAppDispatch, useAppSelector } from "../../hooks/use-redux";
@@ -158,47 +159,39 @@ const LayerView = (props) => {
158
159
  }
159
160
  };
160
161
  }, []);
161
- return (<div className="relative w-full h-full flex-1" ref={containerRef} style={{
162
+ return (_jsx("div", Object.assign({ className: "relative w-full h-full flex-1", ref: containerRef, style: {
162
163
  height: "100vh",
163
164
  overflow: "auto",
164
165
  WebkitOverflowScrolling: "touch",
165
166
  touchAction: "pan-y",
166
- }} {...props.containerProps}>
167
- <TransformWrapper ref={transformRef} {...props.transformProps} disabled={fingerCount === 1 && scale === 1} disablePadding={true}
168
- // panning={{
169
- // disabled: false,
170
- // velocityDisabled: true,
171
- // }}
172
- // limitToBounds={false}
173
- // doubleClick={{ disabled: true }}
174
- // pinch={{ disabled: false }}
175
- // wheel={{ disabled: true }}
176
- // disabled={true}
177
- // disablePadding={true}
178
- centerZoomedOut={true} onTransformed={({ state: { scale } }) => setScale(scale)} minScale={1} maxScale={1000} initialScale={1}
179
- // pinch={{ step: 1 }}
180
- smooth={true}>
181
- <TransformComponent wrapperStyle={{
182
- width: "100%",
183
- height: "100%",
184
- overflow: "visible",
185
- }} contentStyle={{
186
- width: "100%",
187
- height: "100%",
188
- }}>
189
- <svg {...props.svgProps} id="workspace" ref={svgRef} width="100%" height="100%" viewBox={`${boundingBox.minX} ${boundingBox.minY} ${boundingBox.width} ${boundingBox.height}`} className="h-full" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" style={{
190
- background: backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : defaultBackground,
191
- display: "block",
192
- pointerEvents: "auto",
193
- // touchAction: "pan-y",
194
- }}>
195
- <Layers mode="view" components={[
196
- ...extraComponentsEditor,
197
- ...renderElements(componentsEditor, mappingKey, colorMatchKey),
198
- ]} onClick={handleSelectComponent} selectedTable={selectedTable} selectedTableColor={selectedTableColor}/>
199
- </svg>
200
- </TransformComponent>
201
- </TransformWrapper>
202
- </div>);
167
+ } }, props.containerProps, { children: _jsx(TransformWrapper, Object.assign({ ref: transformRef }, props.transformProps, { disabled: fingerCount === 1 && scale === 1, disablePadding: true,
168
+ // panning={{
169
+ // disabled: false,
170
+ // velocityDisabled: true,
171
+ // }}
172
+ // limitToBounds={false}
173
+ // doubleClick={{ disabled: true }}
174
+ // pinch={{ disabled: false }}
175
+ // wheel={{ disabled: true }}
176
+ // disabled={true}
177
+ // disablePadding={true}
178
+ centerZoomedOut: true, onTransformed: ({ state: { scale } }) => setScale(scale), minScale: 1, maxScale: 1000, initialScale: 1,
179
+ // pinch={{ step: 1 }}
180
+ smooth: true, children: _jsx(TransformComponent, { wrapperStyle: {
181
+ width: "100%",
182
+ height: "100%",
183
+ overflow: "visible",
184
+ }, contentStyle: {
185
+ width: "100%",
186
+ height: "100%",
187
+ }, children: _jsx("svg", Object.assign({}, props.svgProps, { id: "workspace", ref: svgRef, width: "100%", height: "100%", viewBox: `${boundingBox.minX} ${boundingBox.minY} ${boundingBox.width} ${boundingBox.height}`, className: "h-full", xmlns: "http://www.w3.org/2000/svg", preserveAspectRatio: "xMidYMid meet", style: {
188
+ background: backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : defaultBackground,
189
+ display: "block",
190
+ pointerEvents: "auto",
191
+ // touchAction: "pan-y",
192
+ }, children: _jsx(Layers, { mode: "view", components: [
193
+ ...extraComponentsEditor,
194
+ ...renderElements(componentsEditor, mappingKey, colorMatchKey),
195
+ ], onClick: handleSelectComponent, selectedTable: selectedTable, selectedTableColor: selectedTableColor }) })) }) })) })));
203
196
  };
204
197
  export default LayerView;
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from "react";
4
+ import { ConfigProvider } from "antd";
5
+ import { AntdRegistry } from "@ant-design/nextjs-registry";
6
+ import { useAppSelector, useAppDispatch } from "../hooks/use-redux";
7
+ export const AntdProvider = ({ children, themeColor }) => {
8
+ const dispatch = useAppDispatch();
9
+ const theme = useAppSelector((state) => state.theme);
10
+ useEffect(() => {
11
+ if (themeColor !== theme.primaryColor) {
12
+ dispatch({
13
+ type: "theme/setPrimaryColor",
14
+ payload: themeColor
15
+ });
16
+ }
17
+ }, [themeColor]);
18
+ return (_jsx(AntdRegistry, { children: _jsx(ConfigProvider, { theme: {
19
+ token: {
20
+ colorPrimary: themeColor,
21
+ },
22
+ // token: {
23
+ // colorPrimary: theme.theme["--primary-color"],
24
+ // colorPrimaryBorderHover: theme.theme["--primary-color"],
25
+ // fontFamily: "var(--font-inter), sans-serif",
26
+ // colorError: theme.theme["--danger"],
27
+ // controlOutlineWidth: 4,
28
+ // controlOutline: theme.theme["--surface-color"],
29
+ // colorBgContainerDisabled: "var(--netral-03)",
30
+ // colorTextPlaceholder: "var(--netral-06)",
31
+ // },
32
+ components: {
33
+ Form: {
34
+ labelFontSize: 14,
35
+ fontWeightStrong: 500,
36
+ itemMarginBottom: 12,
37
+ },
38
+ Button: {
39
+ colorPrimary: themeColor
40
+ }
41
+ },
42
+ }, children: children }) }));
43
+ };
@@ -1,3 +1,3 @@
1
1
  export declare const ReduxProvider: ({ children }: {
2
2
  children: React.ReactNode;
3
- }) => import("react").JSX.Element;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
2
3
  import { store } from "../libs/store";
3
4
  import { Provider } from "react-redux";
4
5
  export const ReduxProvider = ({ children }) => {
5
- return <Provider store={store}>{children}</Provider>;
6
+ return _jsx(Provider, { store: store, children: children });
6
7
  };
@@ -1,4 +1,4 @@
1
1
  export declare const StoreProvider: ({ children, themeColor, }: {
2
2
  children: React.ReactNode;
3
3
  themeColor?: string;
4
- }) => import("react").JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,9 @@
1
1
  "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
2
3
  import { ReduxProvider } from "./redux-provider";
3
4
  import { AntdProvider } from "./antd-provider";
4
5
  import { injectSeatEditorCSS } from "../utils/injectCss";
5
6
  export const StoreProvider = ({ children, themeColor = "red", }) => {
6
7
  injectSeatEditorCSS();
7
- return (<ReduxProvider>
8
- <AntdProvider themeColor={themeColor}>{children}</AntdProvider>
9
- </ReduxProvider>);
8
+ return (_jsx(ReduxProvider, { children: _jsx(AntdProvider, { themeColor: themeColor, children: children }) }));
10
9
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seat-editor",
3
- "version": "1.6.12",
3
+ "version": "1.6.13",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,53 +0,0 @@
1
- "use client";
2
- import { useEffect, useState } from "react";
3
- import SeatEditor from "../../features/package";
4
- import { constantData } from "../constant";
5
- export default function NewBoard() {
6
- const [initialValue, setInitialValue] = useState([]);
7
- const [extraComponents, setExtraComponents] = useState([]);
8
- const [viewOnly, setViewOnly] = useState(true);
9
- useEffect(() => {
10
- setInitialValue(constantData);
11
- setExtraComponents([{
12
- src: "https://d3l3j4e3k9p181.cloudfront.net/dev/5bf923de-2366-4a11-9b8b-e92de0afbf05/3a65cb36-7d85-4c38-9403-a15f94641920/68d45207-d66b-4bb5-92a2-4e5a87715e98/rsvp/1751350513582817819_download (10).jpg",
13
- id: 1747388267450,
14
- x: 0,
15
- y: 0,
16
- shape: "background",
17
- width: 100,
18
- height: 100,
19
- }]);
20
- }, []);
21
- return (<>
22
- <div className="w-full h-screen flex flex-col relative justify-center">
23
- {/* <div className="w-full h-[1000px] bg-white border-r border-gray-200"> */}
24
- {/* <LayerView
25
- componentProps={initialValue}
26
- mappingKey="properties"
27
- extraComponentProps={[]}
28
- defaultBackground="#ffffff"
29
- // dragOnly={true}
30
- statusKey="status"
31
-
32
- /> */}
33
- {/* </div> */}
34
- <button className="bg-blue-500 text-white px-4 py-2 rounded" onClick={() => setViewOnly(!viewOnly)}>
35
- {viewOnly ? "Edit Mode" : "View Mode"}
36
- </button>
37
- <div className="flex-1 h-full">
38
- <SeatEditor componentProps={initialValue} viewOnly={viewOnly} dragOnly mappingKey="properties" onCurrentStateChange={(setState) => {
39
- var _a, _b, _c, _d;
40
- if (((_a = setState === null || setState === void 0 ? void 0 : setState.components) === null || _a === void 0 ? void 0 : _a.length) > 0) {
41
- setInitialValue((_b = setState === null || setState === void 0 ? void 0 : setState.components) !== null && _b !== void 0 ? _b : []);
42
- }
43
- if (((_c = setState === null || setState === void 0 ? void 0 : setState.extraComponents) === null || _c === void 0 ? void 0 : _c.length) > 0) {
44
- setExtraComponents((_d = setState === null || setState === void 0 ? void 0 : setState.extraComponents) !== null && _d !== void 0 ? _d : []);
45
- }
46
- }} extraComponentProps={extraComponents} defaultBackground="#ffffff"
47
- // dragOnly={true}
48
- statusKey="status"/>
49
- </div>
50
-
51
- </div>
52
- </>);
53
- }
package/dist/app/page.jsx DELETED
@@ -1,13 +0,0 @@
1
- import Board from "../features/board";
2
- import SideTool from "../features/side-tool";
3
- import ControlPanels from "../features/panel";
4
- const TableEditor = () => {
5
- return (<>
6
- <div className="w-full h-screen flex relative">
7
- <SideTool />
8
- <Board />
9
- <ControlPanels />
10
- </div>
11
- </>);
12
- };
13
- export default TableEditor;
@@ -1,17 +0,0 @@
1
- "use client";
2
- import { Button, Popover } from "antd";
3
- const ButtonTools = (props) => {
4
- const { buttonProps, items, popoverProps } = props;
5
- if (items.length === 0) {
6
- return (<Popover trigger="hover" {...popoverProps}>
7
- <Button {...buttonProps}/>
8
- </Popover>);
9
- }
10
- return (<Popover content={<div>
11
- <Button>Button 1</Button>
12
- <Button>Button 2</Button>
13
- </div>} trigger="click">
14
- <Button {...buttonProps}/>
15
- </Popover>);
16
- };
17
- export default ButtonTools;
@@ -1,44 +0,0 @@
1
- "use client";
2
- import { Button, ColorPicker, Flex, Form, Input, InputNumber } from "antd";
3
- const SectionLabel = () => {
4
- return (<div className="py-2">
5
- <h1 className="heading-s">Section Labeling</h1>
6
- <Form.Item label="Labels in square" name={"labels"}>
7
- <Form.List name="labels">
8
- {(fields, { add, remove }) => (<>
9
- {fields.map((field) => (<div key={field.key}>
10
- <Flex gap={2}>
11
- <Form.Item name={[field.name, "label"]} label="Text">
12
- <Input />
13
- </Form.Item>
14
- <Form.Item name={[field.name, "fontColor"]} label="Color" getValueFromEvent={(color) => color.toHexString()}>
15
- <ColorPicker allowClear format="hex" defaultFormat="hex"/>
16
- </Form.Item>
17
- </Flex>
18
- <Flex gap={2}>
19
- <Form.Item name={[field.name, "x"]} label="X">
20
- <InputNumber />
21
- </Form.Item>
22
- <Form.Item name={[field.name, "y"]} label="Y">
23
- <InputNumber />
24
- </Form.Item>
25
- <Form.Item name={[field.name, "fontSize"]} label="Size">
26
- <InputNumber suffix="px"/>
27
- </Form.Item>
28
- </Flex>
29
- </div>))}
30
- <Flex gap={2}>
31
- <Button type="primary" onClick={() => add()} className="btn btn-primary">
32
- Add
33
- </Button>
34
- <Button type="primary" onClick={() => remove(fields.length - 1)} className="btn btn-primary">
35
- Remove
36
- </Button>
37
- </Flex>
38
- </>)}
39
- </Form.List>
40
- </Form.Item>
41
- <div className="divider-dashed"/>
42
- </div>);
43
- };
44
- export default SectionLabel;
@@ -1,66 +0,0 @@
1
- "use client";
2
- import { ColorPicker, Flex, Form, InputNumber, Select } from "antd";
3
- const SectionShape = () => {
4
- const optionsShape = [
5
- {
6
- value: "circle",
7
- label: "Circle",
8
- },
9
- {
10
- value: "square",
11
- label: "Square",
12
- },
13
- {
14
- value: "table-seat-circle",
15
- label: "Table Seat Circle",
16
- },
17
- {
18
- label: "Image Table",
19
- value: "image-table",
20
- },
21
- ];
22
- return (<div className="py-2">
23
- <h1 className="heading-s">Shape</h1>
24
- <Flex gap={2} className="w-full">
25
- <Form.Item label="Name" name="shape" className="w-full">
26
- <Select options={optionsShape} className="w-full"/>
27
- </Form.Item>
28
- </Flex>
29
- <Flex gap={2} className="w-full">
30
- <Form.Item label="Width" name="width" className="w-full">
31
- <InputNumber suffix="px"/>
32
- </Form.Item>
33
- <Form.Item label="Height" name="height" className="w-full">
34
- <InputNumber suffix="px"/>
35
- </Form.Item>
36
- </Flex>
37
- <Flex gap={2}>
38
- <Form.Item label="Position X" name="x" className="w-full">
39
- <InputNumber />
40
- </Form.Item>
41
- <Form.Item label="Position Y" name="y" className="w-full">
42
- <InputNumber />
43
- </Form.Item>
44
- <Form.Item label="Rotation" name="rotation" className="w-full">
45
- <InputNumber />
46
- </Form.Item>
47
- </Flex>
48
- <Flex gap={2}>
49
- <Form.Item label="Fill" name={"fill"} getValueFromEvent={(color) => color.toHexString()} className="w-full ">
50
- <ColorPicker allowClear format="hex" defaultFormat="hex"/>
51
- </Form.Item>
52
- <Form.Item label="Stroke" name={"stroke"} getValueFromEvent={(color) => color.toHexString()} className="w-full ">
53
- <ColorPicker allowClear format="hex" defaultFormat="hex"/>
54
- </Form.Item>
55
- </Flex>
56
- <Flex>
57
- <Form.Item label="Stroke Width" name={"strokeWidth"} className="w-full">
58
- <InputNumber />
59
- </Form.Item>
60
- <Form.Item label="opacity" name={"opacity"} className="w-full">
61
- <InputNumber step={0.1} max={1} min={0}/>
62
- </Form.Item>
63
- </Flex>
64
- </div>);
65
- };
66
- export default SectionShape;