@designbasekorea/figma-ui 0.7.3 → 0.8.0

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.js CHANGED
@@ -70,6 +70,10 @@ const FIGMA_UI_TRANSLATIONS = {
70
70
  'license.unlock_pro_features': '프로 기능 활성화',
71
71
  'license.current_plan': '현재 플랜',
72
72
  'license.pro_plan': '프로 플랜',
73
+ 'license.source_tabs_label': '라이선스 제공 방식',
74
+ 'license.source_lemon_squeezy': 'Lemon Squeezy 라이선스',
75
+ 'license.source_lemon_hint': '기존 Lemon Squeezy 구매 라이선스 키를 입력하세요.',
76
+ 'license.source_youtube_hint': 'YouTube 멤버십 회원에게 제공되는 전용 키를 입력하세요.',
73
77
  'license.membership': '멤버십',
74
78
  'license.pro_account': '프로 계정',
75
79
  'license.upgrade_to_pro': '프로로 업그레이드',
@@ -108,7 +112,7 @@ const FIGMA_UI_TRANSLATIONS = {
108
112
  'license.youtube_membership_join': '멤버십 가입',
109
113
  'license.youtube_membership_guide': '안내보기',
110
114
  'license.all_plugins': '모든 플러그인',
111
- 'license.source_youtube_membership': 'YouTube 멤버십',
115
+ 'license.source_youtube_membership': 'YouTube 멤버십 전용',
112
116
  'license.source_purchase': '구매 라이선스',
113
117
  'license.status_active': '활성',
114
118
  'license.status_inactive': '라이선스 확인 실패',
@@ -224,6 +228,10 @@ const FIGMA_UI_TRANSLATIONS = {
224
228
  'license.unlock_pro_features': 'Unlock Pro features',
225
229
  'license.current_plan': 'Current plan',
226
230
  'license.pro_plan': 'Pro plan',
231
+ 'license.source_tabs_label': 'License type',
232
+ 'license.source_lemon_squeezy': 'Lemon Squeezy license',
233
+ 'license.source_lemon_hint': 'Enter the license key from your Lemon Squeezy purchase.',
234
+ 'license.source_youtube_hint': 'Enter the key provided to YouTube channel members.',
227
235
  'license.membership': 'Membership',
228
236
  'license.pro_account': 'Pro account',
229
237
  'license.upgrade_to_pro': 'Upgrade to Pro',
@@ -262,7 +270,7 @@ const FIGMA_UI_TRANSLATIONS = {
262
270
  'license.youtube_membership_join': 'Join membership',
263
271
  'license.youtube_membership_guide': 'View guide',
264
272
  'license.all_plugins': 'All plugins',
265
- 'license.source_youtube_membership': 'YouTube Membership',
273
+ 'license.source_youtube_membership': 'YouTube membership only',
266
274
  'license.source_purchase': 'Purchased license',
267
275
  'license.status_active': 'Active',
268
276
  'license.status_inactive': 'License check failed',
@@ -378,6 +386,10 @@ const FIGMA_UI_TRANSLATIONS = {
378
386
  'license.unlock_pro_features': 'Pro機能を有効化',
379
387
  'license.current_plan': '現在のプラン',
380
388
  'license.pro_plan': 'Proプラン',
389
+ 'license.source_tabs_label': 'ライセンスの種類',
390
+ 'license.source_lemon_squeezy': 'Lemon Squeezy ライセンス',
391
+ 'license.source_lemon_hint': 'Lemon Squeezyで購入したライセンスキーを入力してください。',
392
+ 'license.source_youtube_hint': 'YouTubeメンバー向けの専用キーを入力してください。',
381
393
  'license.membership': 'メンバーシップ',
382
394
  'license.pro_account': 'Proアカウント',
383
395
  'license.upgrade_to_pro': 'Proにアップグレード',
@@ -416,7 +428,7 @@ const FIGMA_UI_TRANSLATIONS = {
416
428
  'license.youtube_membership_join': 'メンバーシップに参加',
417
429
  'license.youtube_membership_guide': 'ガイドを見る',
418
430
  'license.all_plugins': 'すべてのプラグイン',
419
- 'license.source_youtube_membership': 'YouTubeメンバーシップ',
431
+ 'license.source_youtube_membership': 'YouTubeメンバーシップ専用',
420
432
  'license.source_purchase': '購入ライセンス',
421
433
  'license.status_active': '有効',
422
434
  'license.status_inactive': 'ライセンス確認に失敗しました',
@@ -2013,7 +2025,7 @@ function formatUsageLabel(state, t) {
2013
2025
  }
2014
2026
  return (resolveText(t, { key: 'license.usage_generic', values: { remaining, limit } }, `남은 횟수 ${remaining}/${limit}`) ?? `남은 횟수 ${remaining}/${limit}`);
2015
2027
  }
2016
- const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicenseKey = '', licenseStatus: initialLicenseStatus, licenseSource: initialLicenseSource, accessScope: initialAccessScope, expiresAt: initialExpiresAt, lastVerifiedAt: initialLastVerifiedAt, wordpressLinks, paymentPageUrl, mode = 'pricing', membershipUrl, enableAccountAuth = true, showLicenseKeyInput = true, pricingFeatures, pricing, paymentType = 'subscription', messageTypes, onStateChange, setPaymentStatus, setUsageCount, onLicenseSubmit, usageCount: initialUsageCount = 0, t, locale, className, }) => {
2028
+ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicenseKey = '', licenseStatus: initialLicenseStatus, licenseSource: initialLicenseSource, accessScope: initialAccessScope, expiresAt: initialExpiresAt, lastVerifiedAt: initialLastVerifiedAt, wordpressLinks, paymentPageUrl, mode = 'pricing', showYoutubeMembershipTab = false, membershipUrl, enableAccountAuth = true, showLicenseKeyInput = true, pricingFeatures, pricing, paymentType = 'subscription', messageTypes, onStateChange, setPaymentStatus, setUsageCount, onLicenseSubmit, usageCount: initialUsageCount = 0, t, locale, className, }) => {
2017
2029
  const { t: translate } = useFigmaUiI18n(locale, t);
2018
2030
  const links = React.useMemo(() => ({
2019
2031
  purchaseUrl: wordpressLinks?.purchaseUrl ?? paymentPageUrl,
@@ -2042,8 +2054,9 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
2042
2054
  onUsageCountChange: setUsageCount,
2043
2055
  });
2044
2056
  const [licenseKeyDraft, setLicenseKeyDraft] = React.useState(initialLicenseKey);
2057
+ const [activeLicenseMode, setActiveLicenseMode] = React.useState(mode);
2045
2058
  const isPaid = state.isLicenseRegistered && state.paymentStatus === 'PAID';
2046
- const isMembershipMode = mode === 'youtube-membership';
2059
+ const isMembershipMode = activeLicenseMode === 'youtube-membership';
2047
2060
  const usageLabel = formatUsageLabel(state, translate);
2048
2061
  const handleLicenseSubmit = async (submittedLicenseKey) => {
2049
2062
  if (onLicenseSubmit) {
@@ -2056,8 +2069,14 @@ const PageLicense = ({ status: initialStatus, onClose, licenseKey: initialLicens
2056
2069
  setLicenseKeyDraft(value);
2057
2070
  setLicenseKeyInput(value);
2058
2071
  };
2059
- return (React.createElement("div", { className: `designbase-figma-page-license designbase-figma-page-license--${mode} ${className || ''}`, "data-license-mode": mode },
2072
+ return (React.createElement("div", { className: `designbase-figma-page-license designbase-figma-page-license--${activeLicenseMode} ${className || ''}`, "data-license-mode": activeLicenseMode },
2060
2073
  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.'))),
2061
2080
  React.createElement("div", { className: "designbase-figma-page-license__header" },
2062
2081
  React.createElement("div", { className: "designbase-figma-page-license__title" },
2063
2082
  React.createElement("h2", null, isPaid