@designbasekorea/figma-ui 0.7.2 → 0.7.3
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.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.css.map +1 -1
- package/dist/index.esm.js +56 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +56 -22
- package/dist/index.js.map +1 -1
- package/package.json +100 -100
package/dist/index.js
CHANGED
|
@@ -54,6 +54,8 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
54
54
|
'license.youtube_membership': 'YouTube 멤버십',
|
|
55
55
|
'license.unlock_unlimited': '무제한 사용 활성화',
|
|
56
56
|
'license.unlock_unlimited_description': '라이선스 키를 등록하면 모든 Designbase 플러그인의 프로 기능과 무제한 사용을 이용할 수 있습니다.',
|
|
57
|
+
'license.unlimited_benefit_title': '모든 플러그인 무제한 사용',
|
|
58
|
+
'license.unlimited_benefit_description': '사용 횟수 제한 없이 프로 기능과 프리미엄 콘텐츠를 이용할 수 있습니다.',
|
|
57
59
|
'license.get_key_title': '라이선스 키 받기',
|
|
58
60
|
'license.get_key_description': '멤버십 회원에게 매월 새 라이선스 키가 제공됩니다.',
|
|
59
61
|
'license.get_key_step_1_title': '멤버십 가입',
|
|
@@ -206,6 +208,8 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
206
208
|
'license.youtube_membership': 'YouTube Membership',
|
|
207
209
|
'license.unlock_unlimited': 'Unlock Unlimited Access',
|
|
208
210
|
'license.unlock_unlimited_description': 'Add a license key to unlock Pro features and unlimited use across Designbase plugins.',
|
|
211
|
+
'license.unlimited_benefit_title': 'Unlimited access to every plugin',
|
|
212
|
+
'license.unlimited_benefit_description': 'Use Pro features and premium content without usage limits.',
|
|
209
213
|
'license.get_key_title': 'Get a license key',
|
|
210
214
|
'license.get_key_description': 'Members receive a new license key every month.',
|
|
211
215
|
'license.get_key_step_1_title': 'Join the membership',
|
|
@@ -358,6 +362,8 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
358
362
|
'license.youtube_membership': 'YouTubeメンバーシップ',
|
|
359
363
|
'license.unlock_unlimited': '無制限アクセスを有効化',
|
|
360
364
|
'license.unlock_unlimited_description': 'ライセンスキーを登録すると、DesignbaseプラグインのPro機能を無制限で利用できます。',
|
|
365
|
+
'license.unlimited_benefit_title': 'すべてのプラグインを無制限で利用',
|
|
366
|
+
'license.unlimited_benefit_description': '回数制限なくPro機能とプレミアムコンテンツを利用できます。',
|
|
361
367
|
'license.get_key_title': 'ライセンスキーを取得',
|
|
362
368
|
'license.get_key_description': 'メンバーには毎月新しいライセンスキーが提供されます。',
|
|
363
369
|
'license.get_key_step_1_title': 'メンバーシップに参加',
|
|
@@ -1538,14 +1544,9 @@ const LicenseOffer = ({ joinUrl, guideUrl, membershipUrl, t, locale, className,
|
|
|
1538
1544
|
title: resolveText(translate, { key: 'license.get_key_step_2_title' }, '이번 달 키 복사'),
|
|
1539
1545
|
description: resolveText(translate, { key: 'license.get_key_step_2_description' }, '멤버 전용 커뮤니티 게시글에서 키를 확인합니다.'),
|
|
1540
1546
|
},
|
|
1541
|
-
{
|
|
1542
|
-
title: resolveText(translate, { key: 'license.get_key_step_3_title' }, '키 등록'),
|
|
1543
|
-
description: resolveText(translate, { key: 'license.get_key_step_3_description' }, '아래 입력창에 붙여 넣으면 프로 기능이 열립니다.'),
|
|
1544
|
-
},
|
|
1545
1547
|
];
|
|
1546
1548
|
return (React.createElement("section", { className: `designbase-figma-license-offer ${className || ''}`, "aria-labelledby": titleId },
|
|
1547
1549
|
React.createElement("header", { className: "designbase-figma-license-offer__header" },
|
|
1548
|
-
React.createElement("span", { className: "designbase-figma-license-offer__section-index", "aria-hidden": "true" }, "1"),
|
|
1549
1550
|
React.createElement("div", null,
|
|
1550
1551
|
React.createElement("h3", { id: titleId, className: "designbase-figma-license-offer__title" }, resolveText(translate, { key: 'license.get_key_title' }, '라이선스 키 받기')),
|
|
1551
1552
|
React.createElement("p", { className: "designbase-figma-license-offer__description" }, resolveText(translate, { key: 'license.get_key_description' }, '멤버십 회원에게 매월 새 라이선스 키가 제공됩니다.')))),
|
|
@@ -1991,7 +1992,9 @@ function formatUsageLabel(state, t) {
|
|
|
1991
1992
|
if (usageLimit === 'unlimited') {
|
|
1992
1993
|
return (resolveText(t, { key: 'license.usage_unlimited' }, '사용 횟수 제한 없음') ?? '사용 횟수 제한 없음');
|
|
1993
1994
|
}
|
|
1994
|
-
const limit = typeof usageLimit === 'number'
|
|
1995
|
+
const limit = typeof usageLimit === 'number'
|
|
1996
|
+
? usageLimit
|
|
1997
|
+
: remainingUsage + usageUsed;
|
|
1995
1998
|
const remaining = remainingUsage ?? Math.max(0, limit - usageUsed);
|
|
1996
1999
|
if (usageReset === 'daily') {
|
|
1997
2000
|
const fallback = `오늘 남은 횟수 ${remaining}/${limit}`;
|
|
@@ -2066,9 +2069,16 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2066
2069
|
React.createElement("p", { className: "designbase-figma-page-license__description" }, isPaid
|
|
2067
2070
|
? resolveText(translate, { key: 'license.all_features_available' }, '모든 기능을 사용할 수 있습니다.')
|
|
2068
2071
|
: isMembershipMode
|
|
2069
|
-
? resolveText(translate, {
|
|
2072
|
+
? resolveText(translate, {
|
|
2073
|
+
key: 'license.unlock_unlimited_description',
|
|
2074
|
+
}, '라이선스 키를 등록하면 모든 Designbase 플러그인의 프로 기능과 무제한 사용을 이용할 수 있습니다.')
|
|
2070
2075
|
: resolveText(translate, { key: 'license.purchase_for_unlimited' }, '디자인베이스 멤버십 또는 라이선스로 무제한 이용이 가능합니다.')),
|
|
2071
2076
|
!isPaid && !isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__usage" }, usageLabel))),
|
|
2077
|
+
!isPaid && isMembershipMode && (React.createElement("div", { className: "designbase-figma-page-license__benefit" },
|
|
2078
|
+
React.createElement("span", { className: "designbase-figma-page-license__benefit-icon", "aria-hidden": "true" }, "\u221E"),
|
|
2079
|
+
React.createElement("div", null,
|
|
2080
|
+
React.createElement("strong", null, resolveText(translate, { key: 'license.unlimited_benefit_title' }, '모든 플러그인 무제한 사용')),
|
|
2081
|
+
React.createElement("p", null, resolveText(translate, { key: 'license.unlimited_benefit_description' }, '사용 횟수 제한 없이 프로 기능과 프리미엄 콘텐츠를 이용할 수 있습니다.'))))),
|
|
2072
2082
|
!isMembershipMode && (React.createElement(PricingComparison, { features: pricingFeatures, pricing: pricing, paymentType: paymentType, t: translate })),
|
|
2073
2083
|
state.lastMessage &&
|
|
2074
2084
|
state.lastErrorCode &&
|
|
@@ -2083,9 +2093,12 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2083
2093
|
React.createElement("div", { className: "designbase-figma-page-license__paid-actions" },
|
|
2084
2094
|
state.activationLimit > 0 && (React.createElement("div", { className: "designbase-figma-page-license__activation-info" },
|
|
2085
2095
|
React.createElement("div", { className: "designbase-figma-page-license__remaining" },
|
|
2086
|
-
Math.max(0, state.activationLimit -
|
|
2096
|
+
Math.max(0, state.activationLimit -
|
|
2097
|
+
state.activationUsage),
|
|
2087
2098
|
' ',
|
|
2088
|
-
resolveText(translate, {
|
|
2099
|
+
resolveText(translate, {
|
|
2100
|
+
key: 'license.activations_remaining',
|
|
2101
|
+
}, '활성'),
|
|
2089
2102
|
' ',
|
|
2090
2103
|
resolveText(translate, { key: 'license.spots_remaining' }, '자리 남음')),
|
|
2091
2104
|
React.createElement("div", { className: "designbase-figma-page-license__usage-count" },
|
|
@@ -2095,39 +2108,60 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2095
2108
|
React.createElement(react.Button, { onPress: deactivateLicense, variant: "secondary", size: "m", fullWidth: true, disabled: isDeactivating }, isDeactivating
|
|
2096
2109
|
? resolveText(translate, { key: 'license.deactivating' }, '비활성화 중...')
|
|
2097
2110
|
: resolveText(translate, { key: 'license.deactivate' }, '라이선스 비활성화')),
|
|
2098
|
-
state.deactivateMessage &&
|
|
2111
|
+
state.deactivateMessage &&
|
|
2112
|
+
state.deactivateErrorCode && (React.createElement("p", { className: `designbase-figma-page-license__action-feedback designbase-figma-page-license__action-feedback--${resolvePaymentFeedbackVariant(state.deactivateErrorCode)}`, role: "alert", "aria-live": "polite" }, state.deactivateMessage)),
|
|
2099
2113
|
React.createElement("p", { className: "designbase-figma-page-license__deactivate-hint" }, resolveText(translate, { key: 'license.deactivate_hint' }, '이 기기에서 라이선스 연결을 해제합니다.'))))),
|
|
2100
2114
|
!isPaid && (React.createElement(React.Fragment, null,
|
|
2101
2115
|
isMembershipMode && (React.createElement(LicenseOffer, { joinUrl: links.membershipUrl || links.purchaseUrl, guideUrl: links.helpUrl || links.purchaseUrl, t: translate })),
|
|
2102
2116
|
!isMembershipMode &&
|
|
2103
|
-
(enableAccountAuth ||
|
|
2117
|
+
(enableAccountAuth ||
|
|
2118
|
+
links.purchaseUrl ||
|
|
2119
|
+
links.accountUrl) && (React.createElement("div", { className: "designbase-figma-page-license__section" },
|
|
2104
2120
|
React.createElement("div", { className: "designbase-figma-page-license__section-header" },
|
|
2105
|
-
React.createElement("h3", null, resolveText(translate, {
|
|
2106
|
-
|
|
2121
|
+
React.createElement("h3", null, resolveText(translate, {
|
|
2122
|
+
key: 'license.designbase_account',
|
|
2123
|
+
}, '디자인베이스 계정'))),
|
|
2124
|
+
React.createElement("p", { className: "designbase-figma-page-license__hint" }, resolveText(translate, {
|
|
2125
|
+
key: 'license.designbase_account_hint',
|
|
2126
|
+
}, 'WordPress 계정으로 로그인하거나 멤버십을 구매하면 플러그인이 자동으로 활성화됩니다.')),
|
|
2107
2127
|
React.createElement("div", { className: "designbase-figma-page-license__actions" },
|
|
2108
|
-
enableAccountAuth && (React.createElement(react.Button, { onPress: startDesignbaseAuth, variant: "primary", size: "m", disabled: isStartingAuth ||
|
|
2109
|
-
|
|
2110
|
-
|
|
2128
|
+
enableAccountAuth && (React.createElement(react.Button, { onPress: startDesignbaseAuth, variant: "primary", size: "m", disabled: isStartingAuth ||
|
|
2129
|
+
isVerifying, fullWidth: true }, isStartingAuth
|
|
2130
|
+
? resolveText(translate, {
|
|
2131
|
+
key: 'license.authenticating',
|
|
2132
|
+
}, '인증 중...')
|
|
2133
|
+
: resolveText(translate, {
|
|
2134
|
+
key: 'license.login_with_designbase',
|
|
2135
|
+
}, '디자인베이스로 로그인'))),
|
|
2111
2136
|
links.purchaseUrl && (React.createElement(react.Button, { onPress: () => openExternalUrl(links.purchaseUrl), variant: "secondary", size: "m", fullWidth: true },
|
|
2112
|
-
React.createElement("span", null, resolveText(translate, {
|
|
2137
|
+
React.createElement("span", null, resolveText(translate, {
|
|
2138
|
+
key: 'license.purchase_membership',
|
|
2139
|
+
}, '멤버십 안내')),
|
|
2113
2140
|
React.createElement(icons.ExternalLinkIcon, { size: 16 }))),
|
|
2114
2141
|
links.accountUrl && (React.createElement(react.Button, { onPress: () => openExternalUrl(links.accountUrl), variant: "tertiary", size: "s", fullWidth: true },
|
|
2115
|
-
React.createElement("span", null, resolveText(translate, {
|
|
2142
|
+
React.createElement("span", null, resolveText(translate, {
|
|
2143
|
+
key: 'license.manage_account',
|
|
2144
|
+
}, '계정·멤버십 관리')),
|
|
2116
2145
|
React.createElement(icons.ExternalLinkIcon, { size: 16 })))))),
|
|
2117
2146
|
showLicenseKeyInput && (React.createElement("div", { className: isMembershipMode
|
|
2118
2147
|
? 'designbase-figma-page-license__key-form'
|
|
2119
2148
|
: 'designbase-figma-page-license__section' },
|
|
2120
2149
|
React.createElement("div", { className: "designbase-figma-page-license__section-header" },
|
|
2121
|
-
isMembershipMode && (React.createElement("span", { className: "designbase-figma-page-license__section-index", "aria-hidden": "true" }, "2")),
|
|
2122
2150
|
React.createElement("h3", null, isMembershipMode
|
|
2123
|
-
? resolveText(translate, {
|
|
2151
|
+
? resolveText(translate, {
|
|
2152
|
+
key: 'license.activate_key_title',
|
|
2153
|
+
}, '라이선스 키 등록')
|
|
2124
2154
|
: resolveText(translate, { key: 'license.enter_key' }, '라이선스 키 입력'))),
|
|
2125
|
-
isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__hint" }, resolveText(translate, {
|
|
2155
|
+
isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__hint" }, resolveText(translate, {
|
|
2156
|
+
key: 'license.activate_key_description',
|
|
2157
|
+
}, '이미 키가 있다면 아래에 붙여 넣어 프로 기능을 활성화하세요.'))),
|
|
2126
2158
|
React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: false, isSubmitting: isVerifying, value: licenseKeyDraft, onValueChange: handleLicenseKeyChange, label: { key: 'license.key' }, submitText: {
|
|
2127
2159
|
key: isMembershipMode
|
|
2128
2160
|
? 'license.unlock_pro_features'
|
|
2129
2161
|
: 'license.submit',
|
|
2130
|
-
}, submittingText: {
|
|
2162
|
+
}, submittingText: {
|
|
2163
|
+
key: 'license.verifying',
|
|
2164
|
+
}, helperText: {
|
|
2131
2165
|
key: isMembershipMode
|
|
2132
2166
|
? 'license.enter_from_youtube'
|
|
2133
2167
|
: 'license.enter_from_email',
|