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