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