linkup-lib 0.1.12 → 0.1.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.
@@ -25,6 +25,12 @@ const _theme = {
25
25
  rowSelectedBg: '#f4f4f5',
26
26
  rowSelectedHoverBg: '#f4f4f5',
27
27
  },
28
+ Radio: {
29
+ borderRadiusSM: 0,
30
+ borderRadiusXS: 0,
31
+ borderRadiusLG: 0,
32
+ borderRadius: 0,
33
+ },
28
34
  Input: {
29
35
  borderRadiusSM: 0,
30
36
  borderRadiusXS: 0,
@@ -42,6 +48,7 @@ const _theme = {
42
48
  borderRadiusXS: 0,
43
49
  borderRadiusLG: 0,
44
50
  borderRadius: 0,
51
+ optionSelectedBg: '#E5E5E5',
45
52
  }
46
53
  }
47
54
  };
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface Props {
3
+ title: string;
4
+ defaultOpen?: boolean;
5
+ children: React.ReactNode;
6
+ required?: boolean;
7
+ }
8
+ declare const Component: ({ title, defaultOpen, children, required }: Props) => import("react/jsx-runtime").JSX.Element;
9
+ export default Component;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ "use client";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const antd_1 = require("antd");
9
+ const react_1 = __importDefault(require("react"));
10
+ const bs_1 = require("react-icons/bs");
11
+ const lu_1 = require("react-icons/lu");
12
+ const Component = ({ title, defaultOpen = false, children, required = false }) => {
13
+ // 열림 여부
14
+ const [open, setOpen] = react_1.default.useState(defaultOpen);
15
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "border border-zinc-200", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-white flex items-center justify-between px-7 py-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)("p", { className: "font-bold text-base", children: title }), required && ((0, jsx_runtime_1.jsx)(lu_1.LuAsterisk, { className: "text-red-500 text-xs mb-2" }))] }), (0, jsx_runtime_1.jsx)(antd_1.Button, { size: "middle", icon: open ? (0, jsx_runtime_1.jsx)(bs_1.BsChevronUp, {}) : (0, jsx_runtime_1.jsx)(bs_1.BsChevronDown, {}), onClick: () => setOpen(!open) })] }), open && ((0, jsx_runtime_1.jsx)("div", { className: "border-t border-zinc-200 bg-white", children: children }))] }));
16
+ };
17
+ exports.default = Component;
@@ -0,0 +1,8 @@
1
+ export interface Props {
2
+ title: string;
3
+ children: React.ReactNode;
4
+ required?: boolean;
5
+ bordered?: boolean;
6
+ }
7
+ declare const Component: ({ title, children, required, bordered }: Props) => import("react/jsx-runtime").JSX.Element;
8
+ export default Component;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const Component = ({ title, children, required = false, bordered = false }) => {
7
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex", style: {
8
+ borderBottom: bordered ? '1px solid #E5E5E5' : 'none',
9
+ paddingBottom: bordered ? '16px' : '0px',
10
+ marginBottom: bordered ? '16px' : '0px',
11
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex w-40 pt-1", children: [(0, jsx_runtime_1.jsx)("p", { children: title }), required && ((0, jsx_runtime_1.jsx)(lu_1.LuAsterisk, { className: "text-red-500 text-xs mb-2" }))] }), (0, jsx_runtime_1.jsx)("div", { className: "flex-1", children: children })] }));
12
+ };
13
+ exports.default = Component;
@@ -0,0 +1,11 @@
1
+ export interface EditorProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ placeholder?: string;
5
+ readOnly?: boolean;
6
+ height?: string;
7
+ maxHeight?: string;
8
+ className?: string;
9
+ }
10
+ declare const Editor: ({ value, onChange, placeholder, readOnly, height, maxHeight, className }: EditorProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default Editor;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ "use client";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __rest = (this && this.__rest) || function (s, e) {
46
+ var t = {};
47
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
48
+ t[p] = s[p];
49
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
50
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
51
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
52
+ t[p[i]] = s[p[i]];
53
+ }
54
+ return t;
55
+ };
56
+ var __importDefault = (this && this.__importDefault) || function (mod) {
57
+ return (mod && mod.__esModule) ? mod : { "default": mod };
58
+ };
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ const jsx_runtime_1 = require("react/jsx-runtime");
61
+ const react_1 = require("react");
62
+ const dynamic_1 = __importDefault(require("next/dynamic"));
63
+ // @ts-ignore
64
+ // import 'react-quill-new/dist/quill.snow.css';
65
+ // ReactQuill loading component
66
+ const EditorLoader = () => ((0, jsx_runtime_1.jsx)("div", { className: "h-75 w-full bg-zinc-50 animate-pulse border border-zinc-200 rounded-md flex items-center justify-center text-zinc-400", children: "\uC5D0\uB514\uD130 \uB85C\uB529\uC911..." }));
67
+ const ReactQuill = (0, dynamic_1.default)(() => __awaiter(void 0, void 0, void 0, function* () {
68
+ const { default: RQ } = yield Promise.resolve().then(() => __importStar(require('react-quill-new')));
69
+ // react-quill 내부에서 document 객체를 사용할 때 에러 방지
70
+ return (_a) => {
71
+ var { forwardedRef } = _a, props = __rest(_a, ["forwardedRef"]);
72
+ return (0, jsx_runtime_1.jsx)(RQ, Object.assign({ ref: forwardedRef }, props));
73
+ };
74
+ }), {
75
+ ssr: false,
76
+ loading: () => (0, jsx_runtime_1.jsx)(EditorLoader, {})
77
+ });
78
+ const Editor = ({ value, onChange, placeholder, readOnly = false, height = "400px", maxHeight, className = "" }) => {
79
+ const modules = (0, react_1.useMemo)(() => {
80
+ return {
81
+ toolbar: {
82
+ container: [
83
+ [{ 'header': [1, 2, 3, false] }],
84
+ ['bold', 'italic', 'underline', 'strike', 'blockquote'],
85
+ [{ 'color': [] }, { 'background': [] }],
86
+ [{ 'list': 'ordered' }, { 'list': 'bullet' }],
87
+ [{ 'align': [] }],
88
+ ['link', 'image'],
89
+ ['clean']
90
+ ],
91
+ }
92
+ };
93
+ }, []);
94
+ const formats = [
95
+ 'header',
96
+ 'bold', 'italic', 'underline', 'strike', 'blockquote',
97
+ 'color', 'background',
98
+ 'list',
99
+ 'align',
100
+ 'link', 'image'
101
+ ];
102
+ return ((0, jsx_runtime_1.jsxs)("div", { className: `drinkit-editor-wrapper ${className}`, children: [(0, jsx_runtime_1.jsx)("style", { jsx: true, global: true, children: `
103
+ .drinkit-editor-wrapper .ql-container {
104
+ min-height: ${height};
105
+ font-size: 16px;
106
+ border-bottom-left-radius: 0.5rem;
107
+ border-bottom-right-radius: 0.5rem;
108
+ }
109
+ .drinkit-editor-wrapper .ql-toolbar {
110
+ border-top-left-radius: 0.5rem;
111
+ border-top-right-radius: 0.5rem;
112
+ }
113
+ .drinkit-editor-wrapper .ql-editor {
114
+ min-height: ${height};
115
+ ${maxHeight ? `max-height: ${maxHeight}; overflow-y: auto;` : ''}
116
+ }
117
+ ` }), (0, jsx_runtime_1.jsx)(ReactQuill, { theme: "snow", value: value, onChange: onChange, modules: modules, formats: formats, placeholder: placeholder, readOnly: readOnly })] }));
118
+ };
119
+ exports.default = Editor;
package/dist/index.d.ts CHANGED
@@ -8,6 +8,9 @@ import Aside from './components/ui/Aside';
8
8
  import Page from './components/ui/Page';
9
9
  import Checkbox from './components/ui/Checkbox';
10
10
  import Grid from './components/ui/Grid';
11
+ import DescriptionItem from './components/ui/DescriptionItem';
12
+ import DescriptionCard from './components/ui/DescriptionCard';
13
+ import Editor from './components/ui/Editor';
11
14
  declare const _default: {
12
15
  util: {
13
16
  format: {
@@ -16,6 +19,7 @@ declare const _default: {
16
19
  tel: (tel: string) => string;
17
20
  bizNum: (bizNum: string) => string;
18
21
  email: (email: string) => boolean;
22
+ korNum: (num: number) => string;
19
23
  };
20
24
  is: {
21
25
  isEng: (s: string) => boolean;
@@ -137,6 +141,9 @@ declare const _default: {
137
141
  LinkupProvider: ({ size, children, color, theme }: import("./components/registry/Registry").Props) => import("react/jsx-runtime").JSX.Element;
138
142
  Checkbox: ({ label, checked, primaryColor, onChange }: import("./components/ui/Checkbox").Props) => import("react/jsx-runtime").JSX.Element;
139
143
  Grid: <T>({ rowKey, primaryColor, searchParams, fetch, columns, searchFilter, onSearch, onInitFilter, onChangeGrid, onChangeSelectedKey, buttons }: import("./components/ui/Grid").Props<T>) => import("react/jsx-runtime").JSX.Element;
144
+ DescriptionItem: ({ title, children, required, bordered }: import("./components/ui/DescriptionItem").Props) => import("react/jsx-runtime").JSX.Element;
145
+ DescriptionCard: ({ title, defaultOpen, children, required }: import("./components/ui/DescriptionCard").Props) => import("react/jsx-runtime").JSX.Element;
146
+ Editor: ({ value, onChange, placeholder, readOnly, height, maxHeight, className }: import("./components/ui/Editor").EditorProps) => import("react/jsx-runtime").JSX.Element;
140
147
  };
141
148
  export default _default;
142
- export { util, image, Header, Header2, Aside, Page, PageTitle, LinkupProvider, Checkbox, Grid };
149
+ export { util, image, Header, Header2, Aside, Page, PageTitle, LinkupProvider, Checkbox, Grid, DescriptionItem, DescriptionCard, Editor };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Grid = exports.Checkbox = exports.LinkupProvider = exports.PageTitle = exports.Page = exports.Aside = exports.Header2 = exports.Header = exports.image = exports.util = void 0;
6
+ exports.Editor = exports.DescriptionCard = exports.DescriptionItem = exports.Grid = exports.Checkbox = exports.LinkupProvider = exports.PageTitle = exports.Page = exports.Aside = exports.Header2 = exports.Header = exports.image = exports.util = void 0;
7
7
  const util_1 = __importDefault(require("./util"));
8
8
  exports.util = util_1.default;
9
9
  const image_1 = __importDefault(require("./image"));
@@ -24,4 +24,10 @@ const Checkbox_1 = __importDefault(require("./components/ui/Checkbox"));
24
24
  exports.Checkbox = Checkbox_1.default;
25
25
  const Grid_1 = __importDefault(require("./components/ui/Grid"));
26
26
  exports.Grid = Grid_1.default;
27
- exports.default = { util: util_1.default, image: image_1.default, Header: Header_1.default, Header2: Header2_1.default, Aside: Aside_1.default, Page: Page_1.default, PageTitle: PageTitle_1.default, LinkupProvider: Registry_1.default, Checkbox: Checkbox_1.default, Grid: Grid_1.default };
27
+ const DescriptionItem_1 = __importDefault(require("./components/ui/DescriptionItem"));
28
+ exports.DescriptionItem = DescriptionItem_1.default;
29
+ const DescriptionCard_1 = __importDefault(require("./components/ui/DescriptionCard"));
30
+ exports.DescriptionCard = DescriptionCard_1.default;
31
+ const Editor_1 = __importDefault(require("./components/ui/Editor"));
32
+ exports.Editor = Editor_1.default;
33
+ exports.default = { util: util_1.default, image: image_1.default, Header: Header_1.default, Header2: Header2_1.default, Aside: Aside_1.default, Page: Page_1.default, PageTitle: PageTitle_1.default, LinkupProvider: Registry_1.default, Checkbox: Checkbox_1.default, Grid: Grid_1.default, DescriptionItem: DescriptionItem_1.default, DescriptionCard: DescriptionCard_1.default, Editor: Editor_1.default };
package/dist/util.d.ts CHANGED
@@ -32,6 +32,7 @@ export declare const format: {
32
32
  tel: (tel: string) => string;
33
33
  bizNum: (bizNum: string) => string;
34
34
  email: (email: string) => boolean;
35
+ korNum: (num: number) => string;
35
36
  };
36
37
  export declare const is: {
37
38
  isEng: (s: string) => boolean;
@@ -67,6 +68,7 @@ declare const _default: {
67
68
  tel: (tel: string) => string;
68
69
  bizNum: (bizNum: string) => string;
69
70
  email: (email: string) => boolean;
71
+ korNum: (num: number) => string;
70
72
  };
71
73
  is: {
72
74
  isEng: (s: string) => boolean;
package/dist/util.js CHANGED
@@ -168,6 +168,36 @@ exports.format = {
168
168
  email: (email) => {
169
169
  const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
170
170
  return emailPattern.test(email);
171
+ },
172
+ korNum: (num) => {
173
+ const units = ['', '만', '억', '조', '경'];
174
+ const smallUnits = ['', '십', '백', '천'];
175
+ const kDigits = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
176
+ if (num === 0)
177
+ return '영';
178
+ let result = '';
179
+ let unitIndex = 0;
180
+ while (num > 0) {
181
+ const chunk = num % 10000;
182
+ if (chunk > 0) {
183
+ let chunkStr = '';
184
+ let temp = chunk;
185
+ let smallUnitIndex = 0;
186
+ while (temp > 0) {
187
+ const digit = temp % 10;
188
+ if (digit > 0) {
189
+ const digitStr = (digit === 1 && smallUnitIndex > 0) ? '' : kDigits[digit];
190
+ chunkStr = digitStr + smallUnits[smallUnitIndex] + chunkStr;
191
+ }
192
+ temp = Math.floor(temp / 10);
193
+ smallUnitIndex++;
194
+ }
195
+ result = chunkStr + units[unitIndex] + (result ? ' ' + result : '');
196
+ }
197
+ num = Math.floor(num / 10000);
198
+ unitIndex++;
199
+ }
200
+ return result;
171
201
  }
172
202
  };
173
203
  exports.is = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkup-lib",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "링크업 패키지",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -54,6 +54,7 @@
54
54
  "next-auth": "^4.24.13",
55
55
  "react-error-boundary": "^6.0.2",
56
56
  "react-icons": "^5.5.0",
57
+ "react-quill-new": "^3.7.0",
57
58
  "sharp": "^0.34.5"
58
59
  },
59
60
  "peerDependencies": {