@designbasekorea/figma-ui 0.1.0 → 0.1.2

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/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- import React, { useState } from 'react';
2
- import { ExternalLinkIcon } from '@designbasekorea/icons';
3
- import { Badge } from '@designbasekorea/ui';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
+ import { ExternalLinkIcon, StarIcon, KeyIcon, SettingsIcon, CloseIcon, ArrowsExpandIcon } from '@designbasekorea/icons';
3
+ import { Badge, Spinner, Input, Button, Toggle, useToast, Divider } from '@designbasekorea/ui';
4
4
  export * from '@designbasekorea/ui';
5
5
 
6
6
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
@@ -50,5 +50,254 @@ const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick,
50
50
  };
51
51
  Footer.displayName = 'Footer';
52
52
 
53
- export { Footer, LogoDropdown };
53
+ const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = 'License Key', placeholder = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', submitText = 'Submit', submittingText = 'Verifying...', className, }) => {
54
+ const [inputValue, setInputValue] = useState(value);
55
+ useEffect(() => {
56
+ setInputValue(value);
57
+ }, [value]);
58
+ const handleSubmit = async (e) => {
59
+ e.preventDefault();
60
+ await onLicenseSubmit(inputValue);
61
+ };
62
+ const handleChange = (e) => {
63
+ const newValue = e.target.value;
64
+ setInputValue(newValue);
65
+ onValueChange?.(newValue);
66
+ };
67
+ return (React.createElement("form", { className: `designbase-figma-form-with-submit ${className || ''}`, onSubmit: handleSubmit },
68
+ isSubmitting && (React.createElement("div", { className: "designbase-figma-form-with-submit__spinner" },
69
+ React.createElement(Spinner, { size: "s" }))),
70
+ React.createElement("div", { className: "designbase-figma-form-with-submit__field" },
71
+ React.createElement("label", { className: "designbase-figma-form-with-submit__label" }, label),
72
+ React.createElement(Input, { value: inputValue, onChange: handleChange, placeholder: placeholder, disabled: disabled || isSubmitting, size: "m" })),
73
+ React.createElement(Button, { type: "submit", variant: "primary", size: "m", disabled: !inputValue.trim() || isSubmitting || disabled, fullWidth: true }, isSubmitting ? submittingText : submitText)));
74
+ };
75
+ FormWithSubmit.displayName = 'FormWithSubmit';
76
+
77
+ const PaymentStatusSection = ({ status, usageCount, activationLimit, activationUsage, licenseKey, onDeactivate, isDeactivating = false, showDetails = false, className, }) => {
78
+ const remainingActivations = activationLimit - activationUsage;
79
+ return (React.createElement("div", { className: `designbase-figma-payment-status ${className || ''}` },
80
+ React.createElement("p", { className: "designbase-figma-payment-status__license-key" },
81
+ "\uB77C\uC774\uC13C\uC2A4 \uD0A4: ",
82
+ React.createElement("span", null, licenseKey)),
83
+ showDetails && (React.createElement("div", { className: "designbase-figma-payment-status__details" },
84
+ React.createElement("div", { className: "designbase-figma-payment-status__activation-info" },
85
+ React.createElement("p", { className: "designbase-figma-payment-status__remaining" },
86
+ remainingActivations,
87
+ " ",
88
+ remainingActivations === 1 ? '활성' : '활성',
89
+ " \uC790\uB9AC \uB0A8\uC74C"),
90
+ React.createElement("p", { className: "designbase-figma-payment-status__usage" },
91
+ activationUsage,
92
+ "/",
93
+ activationLimit)),
94
+ React.createElement(Button, { onClick: onDeactivate, variant: "tertiary", size: "s", disabled: isDeactivating }, isDeactivating ? '비활성화중...' : '라이센스 비활성화')))));
95
+ };
96
+ PaymentStatusSection.displayName = 'PaymentStatusSection';
97
+
98
+ const defaultFeatures = [
99
+ { name: '사용 제한', free: '일일 제한', pro: '무제한' },
100
+ { name: '모든 주제 사용', free: false, pro: true },
101
+ { name: '최대 선택 제한', free: '최대 5개', pro: '최대 30개' },
102
+ { name: '더미 개수', free: '1,400개', pro: '4,400개 +' },
103
+ { name: '커스텀 숫자 사용', free: false, pro: true },
104
+ ];
105
+ const defaultPricing = {
106
+ monthly: 2,
107
+ yearly: 21.6,
108
+ };
109
+ const PricingComparison = ({ features = defaultFeatures, pricing = defaultPricing, t = (key) => key, className, }) => {
110
+ const [isYearly, setIsYearly] = useState(false);
111
+ const getPrice = () => {
112
+ const price = isYearly ? pricing.yearly : pricing.monthly;
113
+ return `$${price.toLocaleString()} / ${isYearly ? t('perYear') : t('perMonth')}`;
114
+ };
115
+ return (React.createElement("div", { className: `designbase-figma-pricing-comparison ${className || ''}` },
116
+ React.createElement("div", { className: "designbase-figma-pricing-comparison__billing-toggle" },
117
+ React.createElement("span", { className: !isYearly ? 'active' : '' }, t('monthlyBilling') || '월간 결제'),
118
+ React.createElement(Toggle, { size: "s", checked: isYearly, onChange: (e) => setIsYearly(e.target.checked) }),
119
+ React.createElement("span", { className: isYearly ? 'active' : '' }, t('yearlyBilling') || '연간 결제'),
120
+ React.createElement("span", { className: "designbase-figma-pricing-comparison__discount-badge" }, t('save10Percent') || '10% 절약')),
121
+ React.createElement("table", { className: "designbase-figma-pricing-comparison__table" },
122
+ React.createElement("thead", null,
123
+ React.createElement("tr", null,
124
+ React.createElement("th", null, t('feature') || '기능'),
125
+ React.createElement("th", null,
126
+ React.createElement("div", { className: "designbase-figma-pricing-comparison__plan-name" }, t('free') || 'Free'),
127
+ React.createElement("p", null, t('freePrice') || '$0')),
128
+ React.createElement("th", { className: "designbase-figma-pricing-comparison__recommended" },
129
+ React.createElement("div", { className: "designbase-figma-pricing-comparison__plan-name" },
130
+ t('pro') || 'Pro',
131
+ React.createElement("span", { className: "designbase-figma-pricing-comparison__recommended-badge" }, t('recommended') || '추천')),
132
+ React.createElement("p", null, getPrice())))),
133
+ React.createElement("tbody", null, features.map((feature, index) => (React.createElement("tr", { key: index },
134
+ React.createElement("td", null, feature.name),
135
+ React.createElement("td", null, typeof feature.free === 'boolean'
136
+ ? (feature.free ? '✓' : '✗')
137
+ : feature.free),
138
+ React.createElement("td", null, typeof feature.pro === 'boolean'
139
+ ? (feature.pro ? '✓' : '✗')
140
+ : feature.pro))))))));
141
+ };
142
+ PricingComparison.displayName = 'PricingComparison';
143
+
144
+ const PageLicense = ({ status: initialStatus, onClose, usageCount: initialUsageCount = 0, onLicenseSubmit, licenseKey: initialLicenseKey = '', setPaymentStatus, setUsageCount, setShowLicensePage, paymentPageUrl = 'https://designbasekorea.lemonsqueezy.com/buy/fc202a67-6f1a-4a61-9242-c643b282e230', t = (key) => key, className, }) => {
145
+ const [isSubmitting, setIsSubmitting] = useState(false);
146
+ const [isDeactivating, setIsDeactivating] = useState(false);
147
+ const [licenseKey, setLicenseKey] = useState(initialLicenseKey);
148
+ const [status, setStatus] = useState(initialStatus);
149
+ const [usageCount, setLocalUsageCount] = useState(initialUsageCount);
150
+ const { showToast } = useToast();
151
+ const [activationLimit, setActivationLimit] = useState(0);
152
+ const [activationUsage, setActivationUsage] = useState(0);
153
+ const [showDetails, setShowDetails] = useState(false);
154
+ useEffect(() => {
155
+ const handleMessage = (event) => {
156
+ const { type, paymentStatus, licenseKey, activationLimit, activationUsage, success, message, usageCount } = event.data.pluginMessage || {};
157
+ if (type === 'update-plugin-status' || type === 'license-verification-result') {
158
+ if (paymentStatus)
159
+ setStatus(paymentStatus);
160
+ if (licenseKey)
161
+ setLicenseKey(licenseKey);
162
+ if (activationLimit !== undefined)
163
+ setActivationLimit(activationLimit);
164
+ if (activationUsage !== undefined)
165
+ setActivationUsage(activationUsage);
166
+ if (paymentStatus)
167
+ setPaymentStatus(paymentStatus);
168
+ if (usageCount !== undefined) {
169
+ setLocalUsageCount(usageCount);
170
+ setUsageCount(usageCount);
171
+ }
172
+ }
173
+ if (type === 'license-verification-result') {
174
+ setIsSubmitting(false);
175
+ if (message)
176
+ showToast(message);
177
+ if (success) {
178
+ setStatus('PAID');
179
+ setPaymentStatus('PAID');
180
+ }
181
+ }
182
+ if (type === 'license-deactivation-result') {
183
+ setIsDeactivating(false);
184
+ if (message)
185
+ showToast(message);
186
+ if (success) {
187
+ setStatus('UNPAID');
188
+ setPaymentStatus('UNPAID');
189
+ setLicenseKey('');
190
+ setLocalUsageCount(20);
191
+ setActivationLimit(0);
192
+ setActivationUsage(0);
193
+ }
194
+ }
195
+ };
196
+ window.addEventListener('message', handleMessage);
197
+ if (typeof parent !== 'undefined') {
198
+ parent.postMessage({ pluginMessage: { type: 'initialize' } }, '*');
199
+ }
200
+ return () => window.removeEventListener('message', handleMessage);
201
+ }, [setPaymentStatus, setUsageCount, showToast]);
202
+ const handleLicenseSubmit = async (submittedLicenseKey) => {
203
+ setIsSubmitting(true);
204
+ if (typeof parent !== 'undefined') {
205
+ parent.postMessage({
206
+ pluginMessage: {
207
+ type: 'verify-license',
208
+ licenseKey: submittedLicenseKey
209
+ }
210
+ }, '*');
211
+ }
212
+ };
213
+ const handleDeactivateLicense = () => {
214
+ setIsDeactivating(true);
215
+ if (typeof parent !== 'undefined') {
216
+ parent.postMessage({
217
+ pluginMessage: { type: 'deactivate-license' }
218
+ }, '*');
219
+ }
220
+ };
221
+ const isPaid = status === 'PAID';
222
+ return (React.createElement("div", { className: `designbase-figma-page-license ${className || ''}` },
223
+ React.createElement("div", { className: "designbase-figma-page-license__content" },
224
+ React.createElement("div", { className: "designbase-figma-page-license__header" },
225
+ React.createElement("div", { className: "designbase-figma-page-license__title" },
226
+ isPaid ? React.createElement(StarIcon, { size: 24 }) : React.createElement(KeyIcon, { size: 24 }),
227
+ React.createElement("h2", null, isPaid ? t('proAccount') || '프로 계정' : t('upgradeToPro') || '프로로 업그레이드')),
228
+ React.createElement("p", { className: "designbase-figma-page-license__description" }, isPaid
229
+ ? t('allFeaturesAvailable') || '모든 기능을 사용할 수 있습니다.'
230
+ : t('purchaseForUnlimited') || '라이센스 구매 후 무제한 접근이 가능합니다.')),
231
+ React.createElement(PricingComparison, { t: t }),
232
+ React.createElement(Divider, null),
233
+ isPaid && (React.createElement("div", { className: "designbase-figma-page-license__section" },
234
+ React.createElement("div", { className: "designbase-figma-page-license__section-header" },
235
+ React.createElement("h3", null, t('licenseActivated') || '라이선스 활성화됨'),
236
+ React.createElement(Button, { onClick: () => setShowDetails(!showDetails), variant: "tertiary", size: "s" },
237
+ React.createElement(SettingsIcon, { size: 16 }))),
238
+ React.createElement(PaymentStatusSection, { status: status, usageCount: usageCount, activationLimit: activationLimit, activationUsage: activationUsage, licenseKey: licenseKey, onDeactivate: handleDeactivateLicense, isDeactivating: isDeactivating, showDetails: showDetails }))),
239
+ React.createElement("div", { className: "designbase-figma-page-license__section" },
240
+ React.createElement("div", { className: "designbase-figma-page-license__section-header" },
241
+ React.createElement("h3", null, t('enterLicenseKey') || '라이선스 키 입력'),
242
+ !isPaid && (React.createElement(Button, { onClick: () => window.open(paymentPageUrl, '_blank'), variant: "primary", size: "s" }, t('purchaseLicense') || '라이센스 구매'))),
243
+ React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: isPaid, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: t('licenseKey') || 'License Key', submitText: t('submit') || 'Submit', submittingText: t('verifying') || 'Verifying...' }),
244
+ React.createElement("p", { className: "designbase-figma-page-license__disclaimer" }, isPaid
245
+ ? t('licenseActivatedSuccess') || '라이선스가 성공적으로 활성화되었습니다.'
246
+ : t('enterLicenseFromEmail') || '구독 후 이메일로 받은 라이선스 키를 입력하세요.'))),
247
+ React.createElement("button", { className: "designbase-figma-page-license__close", onClick: onClose, "aria-label": "Close" },
248
+ React.createElement(CloseIcon, { size: 20 }))));
249
+ };
250
+ PageLicense.displayName = 'PageLicense';
251
+
252
+ const UpgradeBanner = ({ onClick, isLoading = false, title, description, buttonText, t = (key) => key, className, }) => {
253
+ return (React.createElement("div", { className: `designbase-figma-upgrade-banner ${className || ''}` },
254
+ React.createElement("div", { className: "designbase-figma-upgrade-banner__content" },
255
+ React.createElement("div", { className: "designbase-figma-upgrade-banner__text-wrap" },
256
+ React.createElement("h3", { className: "designbase-figma-upgrade-banner__title" }, title || t('bannerTitle') || '프로로 업그레이드하세요'),
257
+ React.createElement("p", { className: "designbase-figma-upgrade-banner__text" }, description || t('bannerText') || '무제한 기능을 사용하고 더 많은 혜택을 누리세요.')),
258
+ React.createElement(Button, { onClick: onClick, variant: "primary", size: "m", disabled: isLoading }, buttonText || t('upgradeNow') || '지금 업그레이드'))));
259
+ };
260
+ UpgradeBanner.displayName = 'UpgradeBanner';
261
+
262
+ const ResizablePlugin = ({ children, minWidth = 360, maxWidth = 460, minHeight = 440, maxHeight = 700, icon, className, }) => {
263
+ const [isResizing, setIsResizing] = useState(false);
264
+ const resizeHandleRef = useRef(null);
265
+ useEffect(() => {
266
+ const handleMouseMove = (e) => {
267
+ if (!isResizing)
268
+ return;
269
+ const newWidth = Math.max(minWidth, Math.min(maxWidth, e.clientX + 10));
270
+ const newHeight = Math.max(minHeight, Math.min(maxHeight, e.clientY + 10));
271
+ if (typeof parent !== 'undefined') {
272
+ parent.postMessage({
273
+ pluginMessage: {
274
+ type: 'resize',
275
+ width: newWidth,
276
+ height: newHeight
277
+ }
278
+ }, '*');
279
+ }
280
+ };
281
+ const handleMouseUp = () => {
282
+ setIsResizing(false);
283
+ };
284
+ if (isResizing) {
285
+ window.addEventListener('mousemove', handleMouseMove);
286
+ window.addEventListener('mouseup', handleMouseUp);
287
+ }
288
+ return () => {
289
+ window.removeEventListener('mousemove', handleMouseMove);
290
+ window.removeEventListener('mouseup', handleMouseUp);
291
+ };
292
+ }, [isResizing, minWidth, maxWidth, minHeight, maxHeight]);
293
+ return (React.createElement("div", { className: `designbase-figma-resizable-plugin ${className || ''}` },
294
+ children,
295
+ React.createElement("div", { ref: resizeHandleRef, className: `designbase-figma-resizable-plugin__handle ${isResizing ? 'resizing' : ''}`, onMouseDown: (e) => {
296
+ e.preventDefault();
297
+ setIsResizing(true);
298
+ }, role: "button", tabIndex: 0, "aria-label": "Resize plugin" }, icon || React.createElement(ArrowsExpandIcon, { size: 12 }))));
299
+ };
300
+ ResizablePlugin.displayName = 'ResizablePlugin';
301
+
302
+ export { Footer, FormWithSubmit, LogoDropdown, PageLicense, PaymentStatusSection, PricingComparison, ResizablePlugin, UpgradeBanner };
54
303
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../node_modules/clsx/dist/clsx.mjs","../src/components/LogoDropdown/LogoDropdown.tsx","../src/components/Footer/Footer.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { ExternalLinkIcon } from '@designbasekorea/icons';\nimport './LogoDropdown.scss';\nexport const LogoDropdown = ({ logoSrc, logoAlt = 'Logo', links, position = 'bottom-left', className, t = (key) => key, }) => {\n const [isOpen, setIsOpen] = useState(false);\n const toggleDropdown = () => setIsOpen(!isOpen);\n const handleLinkClick = (url) => {\n if (url.startsWith('mailto:')) {\n return;\n }\n window.open(url, '_blank', 'noopener,noreferrer');\n };\n const classes = clsx('designbase-figma-logo-dropdown', `designbase-figma-logo-dropdown--${position}`, {\n 'designbase-figma-logo-dropdown--open': isOpen,\n }, className);\n return (React.createElement(\"div\", { className: classes },\n React.createElement(\"img\", { className: \"designbase-figma-logo-dropdown__logo\", src: logoSrc, alt: logoAlt, onClick: toggleDropdown }),\n isOpen && (React.createElement(\"ul\", { className: \"designbase-figma-logo-dropdown__menu\" }, links.map((link, index) => (React.createElement(\"li\", { key: index, className: \"designbase-figma-logo-dropdown__item\" },\n React.createElement(\"button\", { type: \"button\", className: \"designbase-figma-logo-dropdown__link\", onClick: () => handleLinkClick(link.url) },\n link.icon && (React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__icon\" }, link.icon)),\n React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__text\" }, t(link.name)),\n React.createElement(ExternalLinkIcon, { size: 16, className: \"designbase-figma-logo-dropdown__arrow\" })))))))));\n};\nLogoDropdown.displayName = 'LogoDropdown';\nexport default LogoDropdown;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { LogoDropdown } from '../LogoDropdown/LogoDropdown';\nimport { Badge } from '@designbasekorea/ui';\nimport './Footer.scss';\nexport const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick, paymentStatus = 'FREE', usageCount = 0, isLoading = false, showPaymentStatus = true, maxDailyUsage = 20, className, t = (key) => key, children, }) => {\n const isActive = paymentStatus === 'PAID';\n const hasChildren = React.Children.count(children) > 0;\n const classes = clsx('designbase-figma-footer', {\n 'designbase-figma-footer--has-children': hasChildren,\n }, className);\n return (React.createElement(\"footer\", { className: classes },\n React.createElement(\"div\", { className: \"designbase-figma-footer__wrap\" },\n React.createElement(LogoDropdown, { logoSrc: logoSrc, logoAlt: logoAlt, links: logoLinks, position: \"bottom-left\", t: t }),\n showPaymentStatus && (React.createElement(\"div\", { className: \"designbase-figma-footer__payment-states\" },\n !isLoading && (React.createElement(\"div\", { className: \"designbase-figma-footer__usage-info\" }, isActive ? (React.createElement(\"span\", { className: \"designbase-figma-footer__unlimited-usage\" }, t('unlimitedUsage'))) : (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"designbase-figma-footer__usage-count\" }, usageCount),\n React.createElement(\"span\", { className: \"designbase-figma-footer__max-daily-usage\" },\n \"/\",\n maxDailyUsage,\n \" \",\n t('perDay')),\n React.createElement(\"span\", { className: \"designbase-figma-footer__reset-info\" }, t('resetsDaily')))))),\n React.createElement(Badge, { variant: isActive ? 'success' : 'secondary', size: \"s\", onClick: onLicensePageClick, style: { cursor: 'pointer' } }, isLoading ? t('loading') : isActive ? t('premium') : t('free'))))),\n children));\n};\nFooter.displayName = 'Footer';\nexport default Footer;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../node_modules/clsx/dist/clsx.mjs","../src/components/LogoDropdown/LogoDropdown.tsx","../src/components/Footer/Footer.tsx","../src/components/FormWithSubmit/FormWithSubmit.tsx","../src/components/PaymentStatusSection/PaymentStatusSection.tsx","../src/components/PricingComparison/PricingComparison.tsx","../src/components/PageLicense/PageLicense.tsx","../src/components/UpgradeBanner/UpgradeBanner.tsx","../src/components/ResizablePlugin/ResizablePlugin.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { ExternalLinkIcon } from '@designbasekorea/icons';\nimport './LogoDropdown.scss';\nexport const LogoDropdown = ({ logoSrc, logoAlt = 'Logo', links, position = 'bottom-left', className, t = (key) => key, }) => {\n const [isOpen, setIsOpen] = useState(false);\n const toggleDropdown = () => setIsOpen(!isOpen);\n const handleLinkClick = (url) => {\n if (url.startsWith('mailto:')) {\n return;\n }\n window.open(url, '_blank', 'noopener,noreferrer');\n };\n const classes = clsx('designbase-figma-logo-dropdown', `designbase-figma-logo-dropdown--${position}`, {\n 'designbase-figma-logo-dropdown--open': isOpen,\n }, className);\n return (React.createElement(\"div\", { className: classes },\n React.createElement(\"img\", { className: \"designbase-figma-logo-dropdown__logo\", src: logoSrc, alt: logoAlt, onClick: toggleDropdown }),\n isOpen && (React.createElement(\"ul\", { className: \"designbase-figma-logo-dropdown__menu\" }, links.map((link, index) => (React.createElement(\"li\", { key: index, className: \"designbase-figma-logo-dropdown__item\" },\n React.createElement(\"button\", { type: \"button\", className: \"designbase-figma-logo-dropdown__link\", onClick: () => handleLinkClick(link.url) },\n link.icon && (React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__icon\" }, link.icon)),\n React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__text\" }, t(link.name)),\n React.createElement(ExternalLinkIcon, { size: 16, className: \"designbase-figma-logo-dropdown__arrow\" })))))))));\n};\nLogoDropdown.displayName = 'LogoDropdown';\nexport default LogoDropdown;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { LogoDropdown } from '../LogoDropdown/LogoDropdown';\nimport { Badge } from '@designbasekorea/ui';\nimport './Footer.scss';\nexport const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick, paymentStatus = 'FREE', usageCount = 0, isLoading = false, showPaymentStatus = true, maxDailyUsage = 20, className, t = (key) => key, children, }) => {\n const isActive = paymentStatus === 'PAID';\n const hasChildren = React.Children.count(children) > 0;\n const classes = clsx('designbase-figma-footer', {\n 'designbase-figma-footer--has-children': hasChildren,\n }, className);\n return (React.createElement(\"footer\", { className: classes },\n React.createElement(\"div\", { className: \"designbase-figma-footer__wrap\" },\n React.createElement(LogoDropdown, { logoSrc: logoSrc, logoAlt: logoAlt, links: logoLinks, position: \"bottom-left\", t: t }),\n showPaymentStatus && (React.createElement(\"div\", { className: \"designbase-figma-footer__payment-states\" },\n !isLoading && (React.createElement(\"div\", { className: \"designbase-figma-footer__usage-info\" }, isActive ? (React.createElement(\"span\", { className: \"designbase-figma-footer__unlimited-usage\" }, t('unlimitedUsage'))) : (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"designbase-figma-footer__usage-count\" }, usageCount),\n React.createElement(\"span\", { className: \"designbase-figma-footer__max-daily-usage\" },\n \"/\",\n maxDailyUsage,\n \" \",\n t('perDay')),\n React.createElement(\"span\", { className: \"designbase-figma-footer__reset-info\" }, t('resetsDaily')))))),\n React.createElement(Badge, { variant: isActive ? 'success' : 'secondary', size: \"s\", onClick: onLicensePageClick, style: { cursor: 'pointer' } }, isLoading ? t('loading') : isActive ? t('premium') : t('free'))))),\n children));\n};\nFooter.displayName = 'Footer';\nexport default Footer;\n","import React, { useState, useEffect } from 'react';\nimport { Button, Input, Spinner } from '@designbasekorea/ui';\nimport './FormWithSubmit.scss';\nexport const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = 'License Key', placeholder = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', submitText = 'Submit', submittingText = 'Verifying...', className, }) => {\n const [inputValue, setInputValue] = useState(value);\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n const handleSubmit = async (e) => {\n e.preventDefault();\n await onLicenseSubmit(inputValue);\n };\n const handleChange = (e) => {\n const newValue = e.target.value;\n setInputValue(newValue);\n onValueChange?.(newValue);\n };\n return (React.createElement(\"form\", { className: `designbase-figma-form-with-submit ${className || ''}`, onSubmit: handleSubmit },\n isSubmitting && (React.createElement(\"div\", { className: \"designbase-figma-form-with-submit__spinner\" },\n React.createElement(Spinner, { size: \"s\" }))),\n React.createElement(\"div\", { className: \"designbase-figma-form-with-submit__field\" },\n React.createElement(\"label\", { className: \"designbase-figma-form-with-submit__label\" }, label),\n React.createElement(Input, { value: inputValue, onChange: handleChange, placeholder: placeholder, disabled: disabled || isSubmitting, size: \"m\" })),\n React.createElement(Button, { type: \"submit\", variant: \"primary\", size: \"m\", disabled: !inputValue.trim() || isSubmitting || disabled, fullWidth: true }, isSubmitting ? submittingText : submitText)));\n};\nFormWithSubmit.displayName = 'FormWithSubmit';\nexport default FormWithSubmit;\n","import React from 'react';\nimport { Button } from '@designbasekorea/ui';\nimport './PaymentStatusSection.scss';\nexport const PaymentStatusSection = ({ status, usageCount, activationLimit, activationUsage, licenseKey, onDeactivate, isDeactivating = false, showDetails = false, className, }) => {\n const remainingActivations = activationLimit - activationUsage;\n return (React.createElement(\"div\", { className: `designbase-figma-payment-status ${className || ''}` },\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__license-key\" },\n \"\\uB77C\\uC774\\uC13C\\uC2A4 \\uD0A4: \",\n React.createElement(\"span\", null, licenseKey)),\n showDetails && (React.createElement(\"div\", { className: \"designbase-figma-payment-status__details\" },\n React.createElement(\"div\", { className: \"designbase-figma-payment-status__activation-info\" },\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__remaining\" },\n remainingActivations,\n \" \",\n remainingActivations === 1 ? '활성' : '활성',\n \" \\uC790\\uB9AC \\uB0A8\\uC74C\"),\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__usage\" },\n activationUsage,\n \"/\",\n activationLimit)),\n React.createElement(Button, { onClick: onDeactivate, variant: \"tertiary\", size: \"s\", disabled: isDeactivating }, isDeactivating ? '비활성화중...' : '라이센스 비활성화')))));\n};\nPaymentStatusSection.displayName = 'PaymentStatusSection';\nexport default PaymentStatusSection;\n","import React, { useState } from 'react';\nimport { Toggle } from '@designbasekorea/ui';\nimport './PricingComparison.scss';\nconst defaultFeatures = [\n { name: '사용 제한', free: '일일 제한', pro: '무제한' },\n { name: '모든 주제 사용', free: false, pro: true },\n { name: '최대 선택 제한', free: '최대 5개', pro: '최대 30개' },\n { name: '더미 개수', free: '1,400개', pro: '4,400개 +' },\n { name: '커스텀 숫자 사용', free: false, pro: true },\n];\nconst defaultPricing = {\n monthly: 2,\n yearly: 21.6,\n};\nexport const PricingComparison = ({ features = defaultFeatures, pricing = defaultPricing, t = (key) => key, className, }) => {\n const [isYearly, setIsYearly] = useState(false);\n const getPrice = () => {\n const price = isYearly ? pricing.yearly : pricing.monthly;\n return `$${price.toLocaleString()} / ${isYearly ? t('perYear') : t('perMonth')}`;\n };\n return (React.createElement(\"div\", { className: `designbase-figma-pricing-comparison ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__billing-toggle\" },\n React.createElement(\"span\", { className: !isYearly ? 'active' : '' }, t('monthlyBilling') || '월간 결제'),\n React.createElement(Toggle, { size: \"s\", checked: isYearly, onChange: (e) => setIsYearly(e.target.checked) }),\n React.createElement(\"span\", { className: isYearly ? 'active' : '' }, t('yearlyBilling') || '연간 결제'),\n React.createElement(\"span\", { className: \"designbase-figma-pricing-comparison__discount-badge\" }, t('save10Percent') || '10% 절약')),\n React.createElement(\"table\", { className: \"designbase-figma-pricing-comparison__table\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", null,\n React.createElement(\"th\", null, t('feature') || '기능'),\n React.createElement(\"th\", null,\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__plan-name\" }, t('free') || 'Free'),\n React.createElement(\"p\", null, t('freePrice') || '$0')),\n React.createElement(\"th\", { className: \"designbase-figma-pricing-comparison__recommended\" },\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__plan-name\" },\n t('pro') || 'Pro',\n React.createElement(\"span\", { className: \"designbase-figma-pricing-comparison__recommended-badge\" }, t('recommended') || '추천')),\n React.createElement(\"p\", null, getPrice())))),\n React.createElement(\"tbody\", null, features.map((feature, index) => (React.createElement(\"tr\", { key: index },\n React.createElement(\"td\", null, feature.name),\n React.createElement(\"td\", null, typeof feature.free === 'boolean'\n ? (feature.free ? '✓' : '✗')\n : feature.free),\n React.createElement(\"td\", null, typeof feature.pro === 'boolean'\n ? (feature.pro ? '✓' : '✗')\n : feature.pro))))))));\n};\nPricingComparison.displayName = 'PricingComparison';\nexport default PricingComparison;\n","import React, { useState, useEffect } from 'react';\nimport { Button, Divider, useToast } from '@designbasekorea/ui';\nimport { CloseIcon, KeyIcon, StarIcon, SettingsIcon } from '@designbasekorea/icons';\nimport { PaymentStatusSection } from '../PaymentStatusSection/PaymentStatusSection';\nimport { FormWithSubmit } from '../FormWithSubmit/FormWithSubmit';\nimport { PricingComparison } from '../PricingComparison/PricingComparison';\nimport './PageLicense.scss';\nexport const PageLicense = ({ status: initialStatus, onClose, usageCount: initialUsageCount = 0, onLicenseSubmit, licenseKey: initialLicenseKey = '', setPaymentStatus, setUsageCount, setShowLicensePage, paymentPageUrl = 'https://designbasekorea.lemonsqueezy.com/buy/fc202a67-6f1a-4a61-9242-c643b282e230', t = (key) => key, className, }) => {\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isDeactivating, setIsDeactivating] = useState(false);\n const [licenseKey, setLicenseKey] = useState(initialLicenseKey);\n const [status, setStatus] = useState(initialStatus);\n const [usageCount, setLocalUsageCount] = useState(initialUsageCount);\n const { showToast } = useToast();\n const [activationLimit, setActivationLimit] = useState(0);\n const [activationUsage, setActivationUsage] = useState(0);\n const [showDetails, setShowDetails] = useState(false);\n useEffect(() => {\n const handleMessage = (event) => {\n const { type, paymentStatus, licenseKey, activationLimit, activationUsage, success, message, usageCount } = event.data.pluginMessage || {};\n if (type === 'update-plugin-status' || type === 'license-verification-result') {\n if (paymentStatus)\n setStatus(paymentStatus);\n if (licenseKey)\n setLicenseKey(licenseKey);\n if (activationLimit !== undefined)\n setActivationLimit(activationLimit);\n if (activationUsage !== undefined)\n setActivationUsage(activationUsage);\n if (paymentStatus)\n setPaymentStatus(paymentStatus);\n if (usageCount !== undefined) {\n setLocalUsageCount(usageCount);\n setUsageCount(usageCount);\n }\n }\n if (type === 'license-verification-result') {\n setIsSubmitting(false);\n if (message)\n showToast(message);\n if (success) {\n setStatus('PAID');\n setPaymentStatus('PAID');\n }\n }\n if (type === 'license-deactivation-result') {\n setIsDeactivating(false);\n if (message)\n showToast(message);\n if (success) {\n setStatus('UNPAID');\n setPaymentStatus('UNPAID');\n setLicenseKey('');\n setLocalUsageCount(20);\n setActivationLimit(0);\n setActivationUsage(0);\n }\n }\n };\n window.addEventListener('message', handleMessage);\n if (typeof parent !== 'undefined') {\n parent.postMessage({ pluginMessage: { type: 'initialize' } }, '*');\n }\n return () => window.removeEventListener('message', handleMessage);\n }, [setPaymentStatus, setUsageCount, showToast]);\n const handleLicenseSubmit = async (submittedLicenseKey) => {\n setIsSubmitting(true);\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: {\n type: 'verify-license',\n licenseKey: submittedLicenseKey\n }\n }, '*');\n }\n };\n const handleDeactivateLicense = () => {\n setIsDeactivating(true);\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: { type: 'deactivate-license' }\n }, '*');\n }\n };\n const isPaid = status === 'PAID';\n return (React.createElement(\"div\", { className: `designbase-figma-page-license ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__content\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__header\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__title\" },\n isPaid ? React.createElement(StarIcon, { size: 24 }) : React.createElement(KeyIcon, { size: 24 }),\n React.createElement(\"h2\", null, isPaid ? t('proAccount') || '프로 계정' : t('upgradeToPro') || '프로로 업그레이드')),\n React.createElement(\"p\", { className: \"designbase-figma-page-license__description\" }, isPaid\n ? t('allFeaturesAvailable') || '모든 기능을 사용할 수 있습니다.'\n : t('purchaseForUnlimited') || '라이센스 구매 후 무제한 접근이 가능합니다.')),\n React.createElement(PricingComparison, { t: t }),\n React.createElement(Divider, null),\n isPaid && (React.createElement(\"div\", { className: \"designbase-figma-page-license__section\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section-header\" },\n React.createElement(\"h3\", null, t('licenseActivated') || '라이선스 활성화됨'),\n React.createElement(Button, { onClick: () => setShowDetails(!showDetails), variant: \"tertiary\", size: \"s\" },\n React.createElement(SettingsIcon, { size: 16 }))),\n React.createElement(PaymentStatusSection, { status: status, usageCount: usageCount, activationLimit: activationLimit, activationUsage: activationUsage, licenseKey: licenseKey, onDeactivate: handleDeactivateLicense, isDeactivating: isDeactivating, showDetails: showDetails }))),\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section-header\" },\n React.createElement(\"h3\", null, t('enterLicenseKey') || '라이선스 키 입력'),\n !isPaid && (React.createElement(Button, { onClick: () => window.open(paymentPageUrl, '_blank'), variant: \"primary\", size: \"s\" }, t('purchaseLicense') || '라이센스 구매'))),\n React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: isPaid, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: t('licenseKey') || 'License Key', submitText: t('submit') || 'Submit', submittingText: t('verifying') || 'Verifying...' }),\n React.createElement(\"p\", { className: \"designbase-figma-page-license__disclaimer\" }, isPaid\n ? t('licenseActivatedSuccess') || '라이선스가 성공적으로 활성화되었습니다.'\n : t('enterLicenseFromEmail') || '구독 후 이메일로 받은 라이선스 키를 입력하세요.'))),\n React.createElement(\"button\", { className: \"designbase-figma-page-license__close\", onClick: onClose, \"aria-label\": \"Close\" },\n React.createElement(CloseIcon, { size: 20 }))));\n};\nPageLicense.displayName = 'PageLicense';\nexport default PageLicense;\n","import React from 'react';\nimport { Button } from '@designbasekorea/ui';\nimport './UpgradeBanner.scss';\nexport const UpgradeBanner = ({ onClick, isLoading = false, title, description, buttonText, t = (key) => key, className, }) => {\n return (React.createElement(\"div\", { className: `designbase-figma-upgrade-banner ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-upgrade-banner__content\" },\n React.createElement(\"div\", { className: \"designbase-figma-upgrade-banner__text-wrap\" },\n React.createElement(\"h3\", { className: \"designbase-figma-upgrade-banner__title\" }, title || t('bannerTitle') || '프로로 업그레이드하세요'),\n React.createElement(\"p\", { className: \"designbase-figma-upgrade-banner__text\" }, description || t('bannerText') || '무제한 기능을 사용하고 더 많은 혜택을 누리세요.')),\n React.createElement(Button, { onClick: onClick, variant: \"primary\", size: \"m\", disabled: isLoading }, buttonText || t('upgradeNow') || '지금 업그레이드'))));\n};\nUpgradeBanner.displayName = 'UpgradeBanner';\nexport default UpgradeBanner;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { ArrowsExpandIcon } from '@designbasekorea/icons';\nimport './ResizablePlugin.scss';\nexport const ResizablePlugin = ({ children, minWidth = 360, maxWidth = 460, minHeight = 440, maxHeight = 700, icon, className, }) => {\n const [isResizing, setIsResizing] = useState(false);\n const resizeHandleRef = useRef(null);\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isResizing)\n return;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, e.clientX + 10));\n const newHeight = Math.max(minHeight, Math.min(maxHeight, e.clientY + 10));\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: {\n type: 'resize',\n width: newWidth,\n height: newHeight\n }\n }, '*');\n }\n };\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n if (isResizing) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizing, minWidth, maxWidth, minHeight, maxHeight]);\n return (React.createElement(\"div\", { className: `designbase-figma-resizable-plugin ${className || ''}` },\n children,\n React.createElement(\"div\", { ref: resizeHandleRef, className: `designbase-figma-resizable-plugin__handle ${isResizing ? 'resizing' : ''}`, onMouseDown: (e) => {\n e.preventDefault();\n setIsResizing(true);\n }, role: \"button\", tabIndex: 0, \"aria-label\": \"Resize plugin\" }, icon || React.createElement(ArrowsExpandIcon, { size: 12 }))));\n};\nResizablePlugin.displayName = 'ResizablePlugin';\nexport default ResizablePlugin;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}