@designbasekorea/figma-ui 0.8.0 → 0.8.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.
- 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 +27 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +27 -23
- package/dist/index.js.map +1 -1
- package/package.json +100 -100
package/dist/index.esm.js
CHANGED
|
@@ -98,6 +98,7 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
98
98
|
'license.authenticating': '인증 중...',
|
|
99
99
|
'license.login_with_designbase': '디자인베이스로 로그인',
|
|
100
100
|
'license.purchase_membership': '멤버십 안내',
|
|
101
|
+
'license.purchase_license': '라이선스 구매하기',
|
|
101
102
|
'license.manage_account': '계정·멤버십 관리',
|
|
102
103
|
'license.enter_key': '라이선스 키 입력',
|
|
103
104
|
'license.key': '라이선스 키',
|
|
@@ -256,6 +257,7 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
256
257
|
'license.authenticating': 'Authenticating...',
|
|
257
258
|
'license.login_with_designbase': 'Sign in with Designbase',
|
|
258
259
|
'license.purchase_membership': 'Membership details',
|
|
260
|
+
'license.purchase_license': 'Buy a license',
|
|
259
261
|
'license.manage_account': 'Manage account · membership',
|
|
260
262
|
'license.enter_key': 'Enter license key',
|
|
261
263
|
'license.key': 'License key',
|
|
@@ -414,6 +416,7 @@ const FIGMA_UI_TRANSLATIONS = {
|
|
|
414
416
|
'license.authenticating': '認証中...',
|
|
415
417
|
'license.login_with_designbase': 'Designbaseでサインイン',
|
|
416
418
|
'license.purchase_membership': 'メンバーシップの詳細',
|
|
419
|
+
'license.purchase_license': 'ライセンスを購入',
|
|
417
420
|
'license.manage_account': 'アカウント・メンバーシップを管理',
|
|
418
421
|
'license.enter_key': 'ライセンスキーを入力',
|
|
419
422
|
'license.key': 'ライセンスキー',
|
|
@@ -2058,6 +2061,7 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2058
2061
|
const [activeLicenseMode, setActiveLicenseMode] = useState(mode);
|
|
2059
2062
|
const isPaid = state.isLicenseRegistered && state.paymentStatus === 'PAID';
|
|
2060
2063
|
const isMembershipMode = activeLicenseMode === 'youtube-membership';
|
|
2064
|
+
const hasSourceTabs = showYoutubeMembershipTab && !isPaid;
|
|
2061
2065
|
const usageLabel = formatUsageLabel(state, translate);
|
|
2062
2066
|
const handleLicenseSubmit = async (submittedLicenseKey) => {
|
|
2063
2067
|
if (onLicenseSubmit) {
|
|
@@ -2070,36 +2074,33 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2070
2074
|
setLicenseKeyDraft(value);
|
|
2071
2075
|
setLicenseKeyInput(value);
|
|
2072
2076
|
};
|
|
2073
|
-
return (React.createElement("div", { className: `designbase-figma-page-license designbase-figma-page-license--${activeLicenseMode} ${className || ''}`, "data-license-mode": activeLicenseMode },
|
|
2077
|
+
return (React.createElement("div", { className: `designbase-figma-page-license designbase-figma-page-license--${activeLicenseMode} ${hasSourceTabs ? 'designbase-figma-page-license--source-switching' : ''} ${className || ''}`, "data-license-mode": activeLicenseMode },
|
|
2074
2078
|
React.createElement("div", { className: "designbase-figma-page-license__content" },
|
|
2075
|
-
showYoutubeMembershipTab && (React.createElement("div", { className: "designbase-figma-page-license__source-tabs", role: "tablist", "aria-label": resolveText(translate, { key: 'license.source_tabs_label' }, 'License type') },
|
|
2076
|
-
React.createElement("button", { type: "button", role: "tab", "aria-selected": !isMembershipMode, onClick: () => setActiveLicenseMode('pricing') }, resolveText(translate, { key: 'license.source_lemon_squeezy' }, 'Lemon Squeezy license')),
|
|
2077
|
-
React.createElement("button", { type: "button", role: "tab", "aria-selected": isMembershipMode, onClick: () => setActiveLicenseMode('youtube-membership') }, resolveText(translate, { key: 'license.source_youtube_membership' }, 'YouTube membership')))),
|
|
2078
|
-
showYoutubeMembershipTab && (React.createElement("p", { className: "designbase-figma-page-license__source-hint" }, isMembershipMode
|
|
2079
|
-
? resolveText(translate, { key: 'license.source_youtube_hint' }, 'Enter the key provided to YouTube channel members.')
|
|
2080
|
-
: resolveText(translate, { key: 'license.source_lemon_hint' }, 'Enter the license key from your Lemon Squeezy purchase.'))),
|
|
2081
2079
|
React.createElement("div", { className: "designbase-figma-page-license__header" },
|
|
2082
2080
|
React.createElement("div", { className: "designbase-figma-page-license__title" },
|
|
2083
2081
|
React.createElement("h2", null, isPaid
|
|
2084
2082
|
? resolveText(translate, { key: 'license.pro_account' }, '프로 계정')
|
|
2085
|
-
:
|
|
2086
|
-
? resolveText(translate, { key: 'license.unlock_unlimited' }, '
|
|
2083
|
+
: showYoutubeMembershipTab
|
|
2084
|
+
? resolveText(translate, { key: 'license.unlock_unlimited' }, 'Unlock Unlimited Access')
|
|
2087
2085
|
: resolveText(translate, { key: 'license.upgrade_to_pro' }, '프로로 업그레이드')),
|
|
2088
2086
|
isPaid && (React.createElement("span", { className: "designbase-figma-page-license__tier" }, resolveText(translate, { key: 'license.pro_plan' }, '프로 플랜')))),
|
|
2089
2087
|
React.createElement("p", { className: "designbase-figma-page-license__description" }, isPaid
|
|
2090
2088
|
? resolveText(translate, { key: 'license.all_features_available' }, '모든 기능을 사용할 수 있습니다.')
|
|
2091
|
-
:
|
|
2089
|
+
: showYoutubeMembershipTab
|
|
2092
2090
|
? resolveText(translate, {
|
|
2093
2091
|
key: 'license.unlock_unlimited_description',
|
|
2094
|
-
}, '
|
|
2092
|
+
}, 'Add a license key to unlock Pro features and unlimited use across Designbase plugins.')
|
|
2095
2093
|
: resolveText(translate, { key: 'license.purchase_for_unlimited' }, '디자인베이스 멤버십 또는 라이선스로 무제한 이용이 가능합니다.')),
|
|
2096
|
-
!isPaid && !isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__usage" }, usageLabel))),
|
|
2097
|
-
!isPaid &&
|
|
2094
|
+
!isPaid && !showYoutubeMembershipTab && !isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__usage" }, usageLabel))),
|
|
2095
|
+
!isPaid && showYoutubeMembershipTab && (React.createElement("div", { className: "designbase-figma-page-license__benefit" },
|
|
2098
2096
|
React.createElement("span", { className: "designbase-figma-page-license__benefit-icon", "aria-hidden": "true" }, "\u221E"),
|
|
2099
2097
|
React.createElement("div", null,
|
|
2100
2098
|
React.createElement("strong", null, resolveText(translate, { key: 'license.unlimited_benefit_title' }, '모든 플러그인 무제한 사용')),
|
|
2101
2099
|
React.createElement("p", null, resolveText(translate, { key: 'license.unlimited_benefit_description' }, '사용 횟수 제한 없이 프로 기능과 프리미엄 콘텐츠를 이용할 수 있습니다.'))))),
|
|
2102
|
-
|
|
2100
|
+
hasSourceTabs && (React.createElement("div", { className: "designbase-figma-page-license__source-tabs", role: "tablist", "aria-label": resolveText(translate, { key: 'license.source_tabs_label' }, 'License type') },
|
|
2101
|
+
React.createElement("button", { type: "button", role: "tab", "aria-selected": !isMembershipMode, onClick: () => setActiveLicenseMode('pricing') }, resolveText(translate, { key: 'license.source_lemon_squeezy' }, 'Lemon Squeezy license')),
|
|
2102
|
+
React.createElement("button", { type: "button", role: "tab", "aria-selected": isMembershipMode, onClick: () => setActiveLicenseMode('youtube-membership') }, resolveText(translate, { key: 'license.source_youtube_membership' }, 'YouTube membership')))),
|
|
2103
|
+
!isMembershipMode && !showYoutubeMembershipTab && (React.createElement(PricingComparison, { features: pricingFeatures, pricing: pricing, paymentType: paymentType, t: translate })),
|
|
2103
2104
|
state.lastMessage &&
|
|
2104
2105
|
state.lastErrorCode &&
|
|
2105
2106
|
!state.deactivateMessage && (React.createElement("p", { className: `designbase-figma-page-license__feedback ${state.lastErrorCode ? 'designbase-figma-page-license__feedback--error' : ''}`, "aria-live": "polite" }, state.lastMessage)),
|
|
@@ -2132,8 +2133,8 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2132
2133
|
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)),
|
|
2133
2134
|
React.createElement("p", { className: "designbase-figma-page-license__deactivate-hint" }, resolveText(translate, { key: 'license.deactivate_hint' }, '이 기기에서 라이선스 연결을 해제합니다.'))))),
|
|
2134
2135
|
!isPaid && (React.createElement(React.Fragment, null,
|
|
2135
|
-
isMembershipMode && (React.createElement(LicenseOffer, { joinUrl: links.membershipUrl || links.purchaseUrl, guideUrl: links.helpUrl || links.purchaseUrl, t: translate })),
|
|
2136
|
-
!isMembershipMode &&
|
|
2136
|
+
isMembershipMode && !showYoutubeMembershipTab && (React.createElement(LicenseOffer, { joinUrl: links.membershipUrl || links.purchaseUrl, guideUrl: links.helpUrl || links.purchaseUrl, t: translate })),
|
|
2137
|
+
!isMembershipMode && !showYoutubeMembershipTab &&
|
|
2137
2138
|
(enableAccountAuth ||
|
|
2138
2139
|
links.purchaseUrl ||
|
|
2139
2140
|
links.accountUrl) && (React.createElement("div", { className: "designbase-figma-page-license__section" },
|
|
@@ -2163,20 +2164,23 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2163
2164
|
key: 'license.manage_account',
|
|
2164
2165
|
}, '계정·멤버십 관리')),
|
|
2165
2166
|
React.createElement(ExternalLinkIcon, { size: 16 })))))),
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2167
|
+
showYoutubeMembershipTab && (React.createElement("div", { "aria-live": "polite" }, isMembershipMode ? (React.createElement(LicenseOffer, { joinUrl: links.membershipUrl || links.purchaseUrl, guideUrl: links.helpUrl || links.purchaseUrl, t: translate })) : (React.createElement(React.Fragment, null,
|
|
2168
|
+
React.createElement(PricingComparison, { features: pricingFeatures, pricing: pricing, paymentType: paymentType, t: translate }),
|
|
2169
|
+
links.purchaseUrl && (React.createElement(Button, { onPress: () => openExternalUrl(links.purchaseUrl), variant: "primary", size: "m", fullWidth: true },
|
|
2170
|
+
React.createElement("span", null, resolveText(translate, { key: 'license.purchase_license' }, 'Buy a license')),
|
|
2171
|
+
React.createElement(ExternalLinkIcon, { size: 16, "aria-hidden": "true" }))))))),
|
|
2172
|
+
showLicenseKeyInput && (React.createElement("div", { className: isMembershipMode && !showYoutubeMembershipTab ? 'designbase-figma-page-license__key-form' : 'designbase-figma-page-license__section' },
|
|
2169
2173
|
React.createElement("div", { className: "designbase-figma-page-license__section-header" },
|
|
2170
|
-
React.createElement("h3", null, isMembershipMode
|
|
2174
|
+
React.createElement("h3", null, isMembershipMode || showYoutubeMembershipTab
|
|
2171
2175
|
? resolveText(translate, {
|
|
2172
2176
|
key: 'license.activate_key_title',
|
|
2173
2177
|
}, '라이선스 키 등록')
|
|
2174
2178
|
: resolveText(translate, { key: 'license.enter_key' }, '라이선스 키 입력'))),
|
|
2175
|
-
isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__hint" }, resolveText(translate, {
|
|
2179
|
+
(isMembershipMode || showYoutubeMembershipTab) && (React.createElement("p", { className: "designbase-figma-page-license__hint" }, resolveText(translate, {
|
|
2176
2180
|
key: 'license.activate_key_description',
|
|
2177
2181
|
}, '이미 키가 있다면 아래에 붙여 넣어 프로 기능을 활성화하세요.'))),
|
|
2178
2182
|
React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: false, isSubmitting: isVerifying, value: licenseKeyDraft, onValueChange: handleLicenseKeyChange, label: { key: 'license.key' }, submitText: {
|
|
2179
|
-
key: isMembershipMode
|
|
2183
|
+
key: isMembershipMode || showYoutubeMembershipTab
|
|
2180
2184
|
? 'license.unlock_pro_features'
|
|
2181
2185
|
: 'license.submit',
|
|
2182
2186
|
}, submittingText: {
|
|
@@ -2186,7 +2190,7 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
|
|
|
2186
2190
|
? 'license.enter_from_youtube'
|
|
2187
2191
|
: 'license.enter_from_email',
|
|
2188
2192
|
}, t: translate }))))),
|
|
2189
|
-
links.helpUrl && !isMembershipMode && (React.createElement("p", { className: "designbase-figma-page-license__disclaimer" },
|
|
2193
|
+
links.helpUrl && (!isMembershipMode || showYoutubeMembershipTab) && (React.createElement("p", { className: "designbase-figma-page-license__disclaimer" },
|
|
2190
2194
|
React.createElement("button", { type: "button", className: "designbase-figma-page-license__link", onClick: () => openExternalUrl(links.helpUrl) }, resolveText(translate, { key: 'license.help_link' }, '라이선스·결제 도움말'))))),
|
|
2191
2195
|
React.createElement(Button, { className: "designbase-figma-page-license__close", onPress: onClose, variant: "tertiary", size: "s", iconOnly: true, "aria-label": translate('close') },
|
|
2192
2196
|
React.createElement(CloseIcon, { size: 16 }))));
|