@designbasekorea/figma-ui 0.1.89 → 0.1.91

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
@@ -14,7 +14,7 @@ function resolveText(t, input, fallback) {
14
14
  return t ? t(input.key, input.values) : input.key;
15
15
  }
16
16
 
17
- const DonationBadge = ({ donationUrl = 'https://buymeacoffee.com/designbase', text = { key: 'donation.buy_me_a_coffee' }, iconType = 'heart', size = 's', variant = 'tertiary', fullWidth = false, disabled = false, className, onClick, t }) => {
17
+ const DonationBadge = ({ donationUrl = 'https://buymeacoffee.com/designbase', text = { key: 'donation.buy_me_a_coffee' }, iconType = 'heart', size = 's', variant = 'tertiary', fullWidth = false, disabled = false, showPrompt = false, promptText = { key: 'donation.prompt' }, className, onClick, t }) => {
18
18
  const handleClick = () => {
19
19
  if (onClick) {
20
20
  onClick();
@@ -25,10 +25,13 @@ const DonationBadge = ({ donationUrl = 'https://buymeacoffee.com/designbase', te
25
25
  };
26
26
  const Icon = iconType === 'heart' ? HeartFilledIcon : CoffeeFilledIcon;
27
27
  const displayText = resolveText(t, text, 'Buy me a coffee');
28
+ const displayPromptText = resolveText(t, promptText, '도움이 되었다면 커피 한 잔 사주세요!');
28
29
  const buttonSize = size;
29
- return (React.createElement(Button, { variant: variant, size: buttonSize, fullWidth: fullWidth, disabled: disabled, onPress: handleClick, startIcon: Icon, className: clsx('designbase-figma-donation-badge', `designbase-figma-donation-badge--${iconType}`, className), "aria-label": displayText, style: {
30
- '--designbase-figma-donation-badge-icon-color': 'var(--db-brand-primary)'
31
- } }, displayText));
30
+ return (React.createElement("div", { className: clsx('designbase-figma-donation-badge-container', className) },
31
+ showPrompt && (React.createElement("div", { className: "designbase-figma-donation-badge__prompt" }, displayPromptText)),
32
+ React.createElement(Button, { variant: variant, size: buttonSize, fullWidth: fullWidth, disabled: disabled, onPress: handleClick, startIcon: Icon, className: clsx('designbase-figma-donation-badge', `designbase-figma-donation-badge--${iconType}`), "aria-label": displayText, style: {
33
+ '--designbase-figma-donation-badge-icon-color': 'var(--db-brand-primary)'
34
+ } }, displayText)));
32
35
  };
33
36
  DonationBadge.displayName = 'DonationBadge';
34
37
 
@@ -504,8 +507,7 @@ const FigmaFooter = ({ onLicensePageClick, paymentStatus = 'FREE', usageCount =
504
507
  t('perDay'))))))),
505
508
  React.createElement(PaymentBadge, { isActive: isActive, onClick: onLicensePageClick, isLoading: isLoading, t: t }))),
506
509
  showDonation && (React.createElement("div", { className: "designbase-figma-footer__donation" },
507
- showDonationText && !isActive && (React.createElement("div", { className: "designbase-figma-footer__donation-text" }, resolveText(t, donationPromptText, t('donationPrompt')))),
508
- React.createElement(DonationBadge, { donationUrl: donationUrl, text: donationText, iconType: "heart", size: "s", t: t })))),
510
+ React.createElement(DonationBadge, { donationUrl: donationUrl, text: donationText, iconType: "heart", size: "s", showPrompt: showDonationText && !isActive, promptText: donationPromptText, t: t })))),
509
511
  children));
510
512
  };
511
513
  FigmaFooter.displayName = 'FigmaFooter';
@@ -572,7 +574,7 @@ const useFigmaToast = () => {
572
574
  FigmaToastProvider.displayName = 'FigmaToastProvider';
573
575
  FigmaToast.displayName = 'FigmaToast';
574
576
 
575
- const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = { key: 'form.license_key' }, placeholder = { key: 'form.license_placeholder' }, submitText = { key: 'form.submit' }, submittingText = { key: 'form.verifying' }, className, t }) => {
577
+ const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = { key: 'form.license_key' }, placeholder = { key: 'form.license_placeholder' }, submitText = { key: 'form.submit' }, submittingText = { key: 'form.verifying' }, helperText, className, t }) => {
576
578
  const [inputValue, setInputValue] = useState(value);
577
579
  useEffect(() => {
578
580
  setInputValue(value);
@@ -589,10 +591,11 @@ const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = fals
589
591
  const displayPlaceholder = resolveText(t, placeholder, 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
590
592
  const displaySubmitText = resolveText(t, submitText, 'Submit');
591
593
  const displaySubmittingText = resolveText(t, submittingText, 'Verifying...');
594
+ const displayHelperText = helperText ? resolveText(t, helperText, '') : undefined;
592
595
  return (React.createElement("form", { className: `designbase-figma-form-with-submit ${className || ''}`, onSubmit: handleSubmit },
593
596
  React.createElement("div", { className: "designbase-figma-form-with-submit__field" },
594
597
  React.createElement("label", { className: "designbase-figma-form-with-submit__label" }, displayLabel),
595
- React.createElement(Input, { value: inputValue, onChange: handleChange, placeholder: displayPlaceholder, disabled: disabled || isSubmitting, size: "m" })),
598
+ React.createElement(Input, { value: inputValue, onChange: handleChange, placeholder: displayPlaceholder, helperText: displayHelperText, disabled: disabled || isSubmitting, size: "m" })),
596
599
  React.createElement(Button, { type: "submit", variant: "primary", size: "m", loading: isSubmitting, disabled: !inputValue.trim() || isSubmitting || disabled, fullWidth: true }, isSubmitting ? displaySubmittingText : displaySubmitText)));
597
600
  };
598
601
  FormWithSubmit.displayName = 'FormWithSubmit';
@@ -799,8 +802,7 @@ const PageLicense = ({ status: initialStatus, onClose, usageCount: initialUsageC
799
802
  paymentPageUrl && (React.createElement(Button, { onClick: () => window.open(paymentPageUrl, '_blank'), variant: "primary", size: "s" },
800
803
  React.createElement("span", null, resolveText(t, { key: 'license.purchase' }, '라이선스 구매')),
801
804
  React.createElement(ExternalLinkIcon, { size: 16 })))),
802
- React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: false, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: { key: 'license.key' }, submitText: { key: 'license.submit' }, submittingText: { key: 'license.verifying' }, t: t }),
803
- React.createElement("p", { className: "designbase-figma-page-license__disclaimer" }, resolveText(t, { key: 'license.enter_from_email' }, '구독 후 이메일로 받은 라이선스 키를 입력하세요.'))))),
805
+ React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: false, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: { key: 'license.key' }, submitText: { key: 'license.submit' }, submittingText: { key: 'license.verifying' }, helperText: { key: 'license.enter_from_email' }, t: t })))),
804
806
  React.createElement(Button, { className: "designbase-figma-page-license__close", onPress: onClose, variant: "tertiary", size: "s", "aria-label": "Close" },
805
807
  React.createElement(CloseIcon, { size: 20 }))));
806
808
  };