@feelflow/ffid-sdk 2.10.0 → 2.11.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.
@@ -619,7 +619,7 @@ function createMembersMethods(deps) {
619
619
  }
620
620
 
621
621
  // src/client/version-check.ts
622
- var SDK_VERSION = "2.10.0";
622
+ var SDK_VERSION = "2.11.0";
623
623
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
624
624
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
625
625
  function sdkHeaders() {
@@ -3420,43 +3420,9 @@ var FFID_INQUIRY_CATEGORIES = [
3420
3420
  "press",
3421
3421
  "other"
3422
3422
  ];
3423
- var DEFAULT_CATEGORY_LABELS_JA = {
3424
- general: "\u4E00\u822C\u7684\u306A\u304A\u554F\u3044\u5408\u308F\u305B",
3425
- sales: "\u3054\u5C0E\u5165\u30FB\u304A\u898B\u7A4D\u3082\u308A",
3426
- support: "\u30B5\u30DD\u30FC\u30C8",
3427
- partnership: "\u30D1\u30FC\u30C8\u30CA\u30FC\u30B7\u30C3\u30D7",
3428
- press: "\u53D6\u6750\u30FB\u30D7\u30EC\u30B9",
3429
- other: "\u305D\u306E\u4ED6"
3430
- };
3431
- function defaultCategories() {
3432
- return FFID_INQUIRY_CATEGORIES.map((value) => ({
3433
- value,
3434
- label: DEFAULT_CATEGORY_LABELS_JA[value]
3435
- }));
3436
- }
3437
- function renderCategoryOptions(options) {
3438
- const hasAnyGroup = options.some((o) => !!o.group);
3439
- if (!hasAnyGroup) {
3440
- return options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value));
3441
- }
3442
- const ungrouped = options.filter((o) => !o.group);
3443
- const groupKeys = [];
3444
- const groupLabelByKey = /* @__PURE__ */ new Map();
3445
- const itemsByKey = /* @__PURE__ */ new Map();
3446
- for (const opt of options) {
3447
- if (!opt.group) continue;
3448
- if (!itemsByKey.has(opt.group)) {
3449
- groupKeys.push(opt.group);
3450
- itemsByKey.set(opt.group, []);
3451
- groupLabelByKey.set(opt.group, opt.groupLabel ?? opt.group);
3452
- }
3453
- itemsByKey.get(opt.group).push(opt);
3454
- }
3455
- return /* @__PURE__ */ jsxs(Fragment, { children: [
3456
- ungrouped.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value)),
3457
- groupKeys.map((key) => /* @__PURE__ */ jsx("optgroup", { label: groupLabelByKey.get(key) ?? key, children: itemsByKey.get(key).map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value)) }, key))
3458
- ] });
3459
- }
3423
+ var CATEGORY_PLACEHOLDER_LABEL_JA = "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044";
3424
+ var CATEGORY_REQUIRED_ERROR_JA = "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3425
+ var SUBMIT_BUTTON_OPACITY_PENDING = 0.6;
3460
3426
  var labelStyle = {
3461
3427
  display: "block",
3462
3428
  fontSize: FONT_SIZE_SM,
@@ -3496,7 +3462,58 @@ var submitButtonStyle = {
3496
3462
  borderRadius: BORDER_RADIUS_MD,
3497
3463
  cursor: "pointer"
3498
3464
  };
3499
- var SUBMIT_BUTTON_OPACITY_PENDING = 0.6;
3465
+ var successBlockStyle = {
3466
+ padding: SPACING_LG,
3467
+ border: BORDER_DEFAULT,
3468
+ borderRadius: BORDER_RADIUS_MD,
3469
+ background: "#f0fdf4",
3470
+ color: "#166534",
3471
+ fontSize: FONT_SIZE_SM
3472
+ };
3473
+ function cx(...parts) {
3474
+ const joined = parts.filter((p) => !!p).join(" ");
3475
+ return joined.length > 0 ? joined : void 0;
3476
+ }
3477
+ function styleOrUndefined(style, unstyled) {
3478
+ return unstyled ? void 0 : style;
3479
+ }
3480
+ var DEFAULT_CATEGORY_LABELS_JA = {
3481
+ general: "\u4E00\u822C\u7684\u306A\u304A\u554F\u3044\u5408\u308F\u305B",
3482
+ sales: "\u3054\u5C0E\u5165\u30FB\u304A\u898B\u7A4D\u3082\u308A",
3483
+ support: "\u30B5\u30DD\u30FC\u30C8",
3484
+ partnership: "\u30D1\u30FC\u30C8\u30CA\u30FC\u30B7\u30C3\u30D7",
3485
+ press: "\u53D6\u6750\u30FB\u30D7\u30EC\u30B9",
3486
+ other: "\u305D\u306E\u4ED6"
3487
+ };
3488
+ function defaultCategories() {
3489
+ return FFID_INQUIRY_CATEGORIES.map((value) => ({
3490
+ value,
3491
+ label: DEFAULT_CATEGORY_LABELS_JA[value]
3492
+ }));
3493
+ }
3494
+ function renderCategoryOptions(options) {
3495
+ const hasAnyGroup = options.some((o) => !!o.group);
3496
+ if (!hasAnyGroup) {
3497
+ return options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value));
3498
+ }
3499
+ const ungrouped = options.filter((o) => !o.group);
3500
+ const groupKeys = [];
3501
+ const groupLabelByKey = /* @__PURE__ */ new Map();
3502
+ const itemsByKey = /* @__PURE__ */ new Map();
3503
+ for (const opt of options) {
3504
+ if (!opt.group) continue;
3505
+ if (!itemsByKey.has(opt.group)) {
3506
+ groupKeys.push(opt.group);
3507
+ itemsByKey.set(opt.group, []);
3508
+ groupLabelByKey.set(opt.group, opt.groupLabel ?? opt.group);
3509
+ }
3510
+ itemsByKey.get(opt.group).push(opt);
3511
+ }
3512
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
3513
+ ungrouped.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value)),
3514
+ groupKeys.map((key) => /* @__PURE__ */ jsx("optgroup", { label: groupLabelByKey.get(key) ?? key, children: itemsByKey.get(key).map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value)) }, key))
3515
+ ] });
3516
+ }
3500
3517
  function FFIDInquiryForm({
3501
3518
  mode,
3502
3519
  prefill,
@@ -3513,6 +3530,9 @@ function FFIDInquiryForm({
3513
3530
  onChange,
3514
3531
  separateLegalCheckboxes = false,
3515
3532
  messagePlaceholder,
3533
+ requireCategorySelection = false,
3534
+ unstyled = false,
3535
+ classNames,
3516
3536
  locale = "ja",
3517
3537
  className
3518
3538
  }) {
@@ -3530,11 +3550,20 @@ function FFIDInquiryForm({
3530
3550
  return null;
3531
3551
  }, [isAuth, organizations, preselectedOrganizationId]);
3532
3552
  const initialCategory = useMemo(() => {
3533
- const fallback = categoryOptions[0]?.value ?? "general";
3534
3553
  const requested = prefill?.category;
3535
- if (!requested) return fallback;
3536
- return categoryOptions.some((opt) => opt.value === requested) ? requested : fallback;
3537
- }, [categoryOptions, prefill?.category]);
3554
+ if (requested && categoryOptions.some((opt) => opt.value === requested)) {
3555
+ return requested;
3556
+ }
3557
+ if (requireCategorySelection) return "";
3558
+ const first = categoryOptions[0]?.value;
3559
+ if (first === void 0) {
3560
+ console.error(
3561
+ "[FFIDInquiryForm] categoryOptions is empty; set requireCategorySelection=true or provide at least one category. Submits will be blocked until a value is picked."
3562
+ );
3563
+ return "";
3564
+ }
3565
+ return first;
3566
+ }, [categoryOptions, prefill?.category, requireCategorySelection]);
3538
3567
  const [name, setName] = useState(prefill?.name ?? "");
3539
3568
  const [email, setEmail] = useState(prefill?.email ?? "");
3540
3569
  const [company, setCompany] = useState(isAuth ? "" : prefill?.company ?? "");
@@ -3553,7 +3582,7 @@ function FFIDInquiryForm({
3553
3582
  const resolvedMessagePlaceholder = useMemo(() => {
3554
3583
  if (messagePlaceholder === void 0) return void 0;
3555
3584
  if (typeof messagePlaceholder === "string") return messagePlaceholder;
3556
- return messagePlaceholder({ category });
3585
+ return messagePlaceholder({ category: category === "" ? null : category });
3557
3586
  }, [messagePlaceholder, category]);
3558
3587
  const [hydrated, setHydrated] = useState(false);
3559
3588
  useEffect(() => {
@@ -3564,6 +3593,7 @@ function FFIDInquiryForm({
3564
3593
  onChangeRef.current = onChange;
3565
3594
  }, [onChange]);
3566
3595
  useEffect(() => {
3596
+ if (category === "") return;
3567
3597
  onChangeRef.current?.({
3568
3598
  name: name.trim(),
3569
3599
  email: email.trim(),
@@ -3594,6 +3624,7 @@ function FFIDInquiryForm({
3594
3624
  turnstileToken,
3595
3625
  locale
3596
3626
  ]);
3627
+ const s = (style) => styleOrUndefined(style, unstyled);
3597
3628
  async function handleSubmit(e) {
3598
3629
  e.preventDefault();
3599
3630
  setFormError(null);
@@ -3614,15 +3645,17 @@ function FFIDInquiryForm({
3614
3645
  setFormError("\u5229\u7528\u898F\u7D04\u3068\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002");
3615
3646
  return;
3616
3647
  }
3648
+ if (requireCategorySelection && !category) {
3649
+ setFormError(CATEGORY_REQUIRED_ERROR_JA);
3650
+ return;
3651
+ }
3617
3652
  if (!message.trim()) {
3618
3653
  setFormError("\u304A\u554F\u3044\u5408\u308F\u305B\u5185\u5BB9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
3619
3654
  return;
3620
3655
  }
3621
- if (!isAuth) {
3622
- if (!name.trim() || !email.trim()) {
3623
- setFormError("\u304A\u540D\u524D\u3068\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
3624
- return;
3625
- }
3656
+ if (!isAuth && (!name.trim() || !email.trim())) {
3657
+ setFormError("\u304A\u540D\u524D\u3068\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
3658
+ return;
3626
3659
  }
3627
3660
  setSubmitting(true);
3628
3661
  try {
@@ -3647,9 +3680,7 @@ function FFIDInquiryForm({
3647
3680
  );
3648
3681
  setMessage("");
3649
3682
  } else {
3650
- setFormError(
3651
- result.message ?? "\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002"
3652
- );
3683
+ setFormError(result.message ?? "\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002");
3653
3684
  }
3654
3685
  } catch (err) {
3655
3686
  console.error("[FFIDInquiryForm] onSubmit threw", err);
@@ -3663,35 +3694,56 @@ function FFIDInquiryForm({
3663
3694
  "div",
3664
3695
  {
3665
3696
  role: "status",
3666
- className,
3667
- style: {
3668
- padding: SPACING_LG,
3669
- border: BORDER_DEFAULT,
3670
- borderRadius: BORDER_RADIUS_MD,
3671
- background: "#f0fdf4",
3672
- color: "#166534",
3673
- fontSize: FONT_SIZE_SM
3674
- },
3697
+ className: cx(className, classNames?.form, classNames?.successBlock),
3698
+ style: s(successBlockStyle),
3675
3699
  children: successMessage
3676
3700
  }
3677
3701
  );
3678
3702
  }
3679
3703
  const showOrgBlock = isAuth && organizations.length >= 1;
3704
+ const rowStyle = { display: "flex", alignItems: "center", gap: SPACING_SM, marginBottom: SPACING_SM };
3705
+ const rowStyleLast = { display: "flex", alignItems: "center", gap: SPACING_SM };
3706
+ const legalRowFirst = { display: "flex", alignItems: "flex-start", gap: SPACING_SM, marginBottom: SPACING_SM };
3707
+ const legalRowLast = { display: "flex", alignItems: "flex-start", gap: SPACING_SM };
3708
+ const spanStyle = { fontSize: FONT_SIZE_SM };
3709
+ function renderTermsLink() {
3710
+ return termsHref ? /* @__PURE__ */ jsxs("a", { href: termsHref, target: "_blank", rel: "noopener noreferrer", className: classNames?.legalLink, children: [
3711
+ "\u5229\u7528\u898F\u7D04 (v",
3712
+ termsVersion,
3713
+ ")"
3714
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3715
+ "\u5229\u7528\u898F\u7D04 (v",
3716
+ termsVersion,
3717
+ ")"
3718
+ ] });
3719
+ }
3720
+ function renderPrivacyLink() {
3721
+ return privacyHref ? /* @__PURE__ */ jsxs("a", { href: privacyHref, target: "_blank", rel: "noopener noreferrer", className: classNames?.legalLink, children: [
3722
+ "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3723
+ privacyVersion,
3724
+ ")"
3725
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3726
+ "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3727
+ privacyVersion,
3728
+ ")"
3729
+ ] });
3730
+ }
3680
3731
  return /* @__PURE__ */ jsxs(
3681
3732
  "form",
3682
3733
  {
3683
3734
  onSubmit: handleSubmit,
3684
- className,
3735
+ className: cx(className, classNames?.form),
3685
3736
  noValidate: true,
3686
3737
  "data-hydrated": hydrated ? "true" : void 0,
3687
3738
  children: [
3688
- showOrgBlock && /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3689
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-org", children: "\u554F\u3044\u5408\u308F\u305B\u308B\u7ACB\u5834" }),
3739
+ showOrgBlock && /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: cx(classNames?.field, classNames?.orgSelectWrapper), children: [
3740
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-org", children: "\u554F\u3044\u5408\u308F\u305B\u308B\u7ACB\u5834" }),
3690
3741
  /* @__PURE__ */ jsxs(
3691
3742
  "select",
3692
3743
  {
3693
3744
  id: "ffid-inquiry-org",
3694
- style: inputStyle,
3745
+ style: s(inputStyle),
3746
+ className: classNames?.select,
3695
3747
  value: organizationId ?? "",
3696
3748
  onChange: (e) => setOrganizationId(e.target.value || null),
3697
3749
  children: [
@@ -3704,13 +3756,14 @@ function FFIDInquiryForm({
3704
3756
  }
3705
3757
  )
3706
3758
  ] }),
3707
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3708
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-name", children: "\u304A\u540D\u524D" }),
3759
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3760
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-name", children: "\u304A\u540D\u524D" }),
3709
3761
  /* @__PURE__ */ jsx(
3710
3762
  "input",
3711
3763
  {
3712
3764
  id: "ffid-inquiry-name",
3713
- style: isNameReadOnly ? readOnlyStyle : inputStyle,
3765
+ style: s(isNameReadOnly ? readOnlyStyle : inputStyle),
3766
+ className: cx(classNames?.input, isNameReadOnly ? classNames?.readOnlyInput : void 0),
3714
3767
  type: "text",
3715
3768
  value: name,
3716
3769
  onChange: (e) => setName(e.target.value),
@@ -3719,13 +3772,14 @@ function FFIDInquiryForm({
3719
3772
  }
3720
3773
  )
3721
3774
  ] }),
3722
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3723
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-email", children: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9" }),
3775
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3776
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-email", children: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9" }),
3724
3777
  /* @__PURE__ */ jsx(
3725
3778
  "input",
3726
3779
  {
3727
3780
  id: "ffid-inquiry-email",
3728
- style: isEmailReadOnly ? readOnlyStyle : inputStyle,
3781
+ style: s(isEmailReadOnly ? readOnlyStyle : inputStyle),
3782
+ className: cx(classNames?.input, isEmailReadOnly ? classNames?.readOnlyInput : void 0),
3729
3783
  type: "email",
3730
3784
  value: email,
3731
3785
  onChange: (e) => setEmail(e.target.value),
@@ -3735,26 +3789,28 @@ function FFIDInquiryForm({
3735
3789
  )
3736
3790
  ] }),
3737
3791
  !isAuth && /* @__PURE__ */ jsxs(Fragment, { children: [
3738
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3739
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-company", children: "\u4F1A\u793E\u540D (\u4EFB\u610F)" }),
3792
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3793
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-company", children: "\u4F1A\u793E\u540D (\u4EFB\u610F)" }),
3740
3794
  /* @__PURE__ */ jsx(
3741
3795
  "input",
3742
3796
  {
3743
3797
  id: "ffid-inquiry-company",
3744
- style: inputStyle,
3798
+ style: s(inputStyle),
3799
+ className: classNames?.input,
3745
3800
  type: "text",
3746
3801
  value: company,
3747
3802
  onChange: (e) => setCompany(e.target.value)
3748
3803
  }
3749
3804
  )
3750
3805
  ] }),
3751
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3752
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-phone", children: "\u96FB\u8A71\u756A\u53F7 (\u4EFB\u610F)" }),
3806
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3807
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-phone", children: "\u96FB\u8A71\u756A\u53F7 (\u4EFB\u610F)" }),
3753
3808
  /* @__PURE__ */ jsx(
3754
3809
  "input",
3755
3810
  {
3756
3811
  id: "ffid-inquiry-phone",
3757
- style: inputStyle,
3812
+ style: s(inputStyle),
3813
+ className: classNames?.input,
3758
3814
  type: "tel",
3759
3815
  value: phone,
3760
3816
  onChange: (e) => setPhone(e.target.value)
@@ -3762,26 +3818,32 @@ function FFIDInquiryForm({
3762
3818
  )
3763
3819
  ] })
3764
3820
  ] }),
3765
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3766
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-category", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225" }),
3767
- /* @__PURE__ */ jsx(
3821
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3822
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-category", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225" }),
3823
+ /* @__PURE__ */ jsxs(
3768
3824
  "select",
3769
3825
  {
3770
3826
  id: "ffid-inquiry-category",
3771
- style: inputStyle,
3827
+ style: s(inputStyle),
3828
+ className: classNames?.select,
3772
3829
  value: category,
3773
3830
  onChange: (e) => setCategory(e.target.value),
3774
- children: renderCategoryOptions(categoryOptions)
3831
+ required: requireCategorySelection,
3832
+ children: [
3833
+ requireCategorySelection && /* @__PURE__ */ jsx("option", { value: "", disabled: true, className: classNames?.categoryPlaceholderOption, children: CATEGORY_PLACEHOLDER_LABEL_JA }),
3834
+ renderCategoryOptions(categoryOptions)
3835
+ ]
3775
3836
  }
3776
3837
  )
3777
3838
  ] }),
3778
- /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3779
- /* @__PURE__ */ jsx("label", { style: labelStyle, htmlFor: "ffid-inquiry-message", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u5185\u5BB9" }),
3839
+ /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.field, children: [
3840
+ /* @__PURE__ */ jsx("label", { style: s(labelStyle), className: classNames?.label, htmlFor: "ffid-inquiry-message", children: "\u304A\u554F\u3044\u5408\u308F\u305B\u5185\u5BB9" }),
3780
3841
  /* @__PURE__ */ jsx(
3781
3842
  "textarea",
3782
3843
  {
3783
3844
  id: "ffid-inquiry-message",
3784
- style: { ...inputStyle, minHeight: 180, resize: "vertical" },
3845
+ style: s({ ...inputStyle, minHeight: 180, resize: "vertical" }),
3846
+ className: classNames?.textarea,
3785
3847
  value: message,
3786
3848
  onChange: (e) => setMessage(e.target.value),
3787
3849
  placeholder: resolvedMessagePlaceholder,
@@ -3790,138 +3852,118 @@ function FFIDInquiryForm({
3790
3852
  }
3791
3853
  )
3792
3854
  ] }),
3793
- /* @__PURE__ */ jsxs("fieldset", { style: { ...fieldsetStyle, border: "none", padding: 0 }, children: [
3794
- /* @__PURE__ */ jsx("legend", { style: { ...labelStyle, marginBottom: SPACING_SM }, children: "\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u8CFC\u8AAD (\u4EFB\u610F)" }),
3795
- /* @__PURE__ */ jsxs("label", { style: { display: "flex", alignItems: "center", gap: SPACING_SM, marginBottom: SPACING_SM }, children: [
3855
+ /* @__PURE__ */ jsxs(
3856
+ "fieldset",
3857
+ {
3858
+ style: s({ ...fieldsetStyle, border: "none", padding: 0 }),
3859
+ className: classNames?.newsletterFieldset,
3860
+ children: [
3861
+ /* @__PURE__ */ jsx(
3862
+ "legend",
3863
+ {
3864
+ style: s({ ...labelStyle, marginBottom: SPACING_SM }),
3865
+ className: cx(classNames?.label, classNames?.newsletterLegend),
3866
+ children: "\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u8CFC\u8AAD (\u4EFB\u610F)"
3867
+ }
3868
+ ),
3869
+ /* @__PURE__ */ jsxs("label", { style: s(rowStyle), className: classNames?.newsletterRow, children: [
3870
+ /* @__PURE__ */ jsx(
3871
+ "input",
3872
+ {
3873
+ type: "checkbox",
3874
+ className: classNames?.newsletterCheckbox,
3875
+ checked: inquiryFollowup,
3876
+ onChange: (e) => setInquiryFollowup(e.target.checked)
3877
+ }
3878
+ ),
3879
+ /* @__PURE__ */ jsx("span", { style: s(spanStyle), children: "\u304A\u554F\u3044\u5408\u308F\u305B\u306B\u95A2\u9023\u3059\u308B\u6848\u5185\u3092\u53D7\u3051\u53D6\u308B" })
3880
+ ] }),
3881
+ /* @__PURE__ */ jsxs("label", { style: s(rowStyleLast), className: classNames?.newsletterRow, children: [
3882
+ /* @__PURE__ */ jsx(
3883
+ "input",
3884
+ {
3885
+ type: "checkbox",
3886
+ className: classNames?.newsletterCheckbox,
3887
+ checked: general,
3888
+ onChange: (e) => setGeneral(e.target.checked)
3889
+ }
3890
+ ),
3891
+ /* @__PURE__ */ jsx("span", { style: s(spanStyle), children: "\u5B9A\u671F\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u3092\u53D7\u3051\u53D6\u308B" })
3892
+ ] })
3893
+ ]
3894
+ }
3895
+ ),
3896
+ separateLegalCheckboxes ? /* @__PURE__ */ jsxs("div", { style: s(fieldsetStyle), className: classNames?.legalBlock, children: [
3897
+ /* @__PURE__ */ jsxs("label", { style: s(legalRowFirst), className: classNames?.legalRow, children: [
3796
3898
  /* @__PURE__ */ jsx(
3797
3899
  "input",
3798
3900
  {
3799
3901
  type: "checkbox",
3800
- checked: inquiryFollowup,
3801
- onChange: (e) => setInquiryFollowup(e.target.checked)
3902
+ className: classNames?.legalCheckbox,
3903
+ checked: agreedTerms,
3904
+ onChange: (e) => setAgreedTerms(e.target.checked),
3905
+ required: true
3802
3906
  }
3803
3907
  ),
3804
- /* @__PURE__ */ jsx("span", { style: { fontSize: FONT_SIZE_SM }, children: "\u304A\u554F\u3044\u5408\u308F\u305B\u306B\u95A2\u9023\u3059\u308B\u6848\u5185\u3092\u53D7\u3051\u53D6\u308B" })
3908
+ /* @__PURE__ */ jsxs("span", { style: s(spanStyle), children: [
3909
+ renderTermsLink(),
3910
+ " \u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3911
+ ] })
3805
3912
  ] }),
3806
- /* @__PURE__ */ jsxs("label", { style: { display: "flex", alignItems: "center", gap: SPACING_SM }, children: [
3807
- /* @__PURE__ */ jsx(
3808
- "input",
3809
- {
3810
- type: "checkbox",
3811
- checked: general,
3812
- onChange: (e) => setGeneral(e.target.checked)
3813
- }
3814
- ),
3815
- /* @__PURE__ */ jsx("span", { style: { fontSize: FONT_SIZE_SM }, children: "\u5B9A\u671F\u30CB\u30E5\u30FC\u30B9\u30EC\u30BF\u30FC\u3092\u53D7\u3051\u53D6\u308B" })
3816
- ] })
3817
- ] }),
3818
- separateLegalCheckboxes ? /* @__PURE__ */ jsxs("div", { style: fieldsetStyle, children: [
3819
- /* @__PURE__ */ jsxs(
3820
- "label",
3821
- {
3822
- style: {
3823
- display: "flex",
3824
- alignItems: "flex-start",
3825
- gap: SPACING_SM,
3826
- marginBottom: SPACING_SM
3827
- },
3828
- children: [
3829
- /* @__PURE__ */ jsx(
3830
- "input",
3831
- {
3832
- type: "checkbox",
3833
- checked: agreedTerms,
3834
- onChange: (e) => setAgreedTerms(e.target.checked),
3835
- required: true
3836
- }
3837
- ),
3838
- /* @__PURE__ */ jsxs("span", { style: { fontSize: FONT_SIZE_SM }, children: [
3839
- termsHref ? /* @__PURE__ */ jsxs("a", { href: termsHref, target: "_blank", rel: "noopener noreferrer", children: [
3840
- "\u5229\u7528\u898F\u7D04 (v",
3841
- termsVersion,
3842
- ")"
3843
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3844
- "\u5229\u7528\u898F\u7D04 (v",
3845
- termsVersion,
3846
- ")"
3847
- ] }),
3848
- " ",
3849
- "\u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3850
- ] })
3851
- ]
3852
- }
3853
- ),
3854
- /* @__PURE__ */ jsxs("label", { style: { display: "flex", alignItems: "flex-start", gap: SPACING_SM }, children: [
3913
+ /* @__PURE__ */ jsxs("label", { style: s(legalRowLast), className: classNames?.legalRow, children: [
3855
3914
  /* @__PURE__ */ jsx(
3856
3915
  "input",
3857
3916
  {
3858
3917
  type: "checkbox",
3918
+ className: classNames?.legalCheckbox,
3859
3919
  checked: agreedPrivacy,
3860
3920
  onChange: (e) => setAgreedPrivacy(e.target.checked),
3861
3921
  required: true
3862
3922
  }
3863
3923
  ),
3864
- /* @__PURE__ */ jsxs("span", { style: { fontSize: FONT_SIZE_SM }, children: [
3865
- privacyHref ? /* @__PURE__ */ jsxs("a", { href: privacyHref, target: "_blank", rel: "noopener noreferrer", children: [
3866
- "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3867
- privacyVersion,
3868
- ")"
3869
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3870
- "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3871
- privacyVersion,
3872
- ")"
3873
- ] }),
3874
- " ",
3875
- "\u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3924
+ /* @__PURE__ */ jsxs("span", { style: s(spanStyle), children: [
3925
+ renderPrivacyLink(),
3926
+ " \u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3876
3927
  ] })
3877
3928
  ] })
3878
- ] }) : /* @__PURE__ */ jsx("div", { style: fieldsetStyle, children: /* @__PURE__ */ jsxs("label", { style: { display: "flex", alignItems: "flex-start", gap: SPACING_SM }, children: [
3929
+ ] }) : /* @__PURE__ */ jsx("div", { style: s(fieldsetStyle), className: classNames?.legalBlock, children: /* @__PURE__ */ jsxs("label", { style: s(legalRowLast), className: classNames?.legalRow, children: [
3879
3930
  /* @__PURE__ */ jsx(
3880
3931
  "input",
3881
3932
  {
3882
3933
  type: "checkbox",
3934
+ className: classNames?.legalCheckbox,
3883
3935
  checked: agreedLegal,
3884
3936
  onChange: (e) => setAgreedLegal(e.target.checked),
3885
3937
  required: true
3886
3938
  }
3887
3939
  ),
3888
- /* @__PURE__ */ jsxs("span", { style: { fontSize: FONT_SIZE_SM }, children: [
3889
- termsHref ? /* @__PURE__ */ jsxs("a", { href: termsHref, target: "_blank", rel: "noopener noreferrer", children: [
3890
- "\u5229\u7528\u898F\u7D04 (v",
3891
- termsVersion,
3892
- ")"
3893
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3894
- "\u5229\u7528\u898F\u7D04 (v",
3895
- termsVersion,
3896
- ")"
3897
- ] }),
3898
- " ",
3899
- "\u3068",
3900
- " ",
3901
- privacyHref ? /* @__PURE__ */ jsxs("a", { href: privacyHref, target: "_blank", rel: "noopener noreferrer", children: [
3902
- "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3903
- privacyVersion,
3904
- ")"
3905
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
3906
- "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC (v",
3907
- privacyVersion,
3908
- ")"
3909
- ] }),
3910
- " ",
3911
- "\u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3940
+ /* @__PURE__ */ jsxs("span", { style: s(spanStyle), children: [
3941
+ renderTermsLink(),
3942
+ " \u3068 ",
3943
+ renderPrivacyLink(),
3944
+ " \u306B\u540C\u610F\u3057\u307E\u3059\u3002"
3912
3945
  ] })
3913
3946
  ] }) }),
3914
- !isAuth && turnstileSlot && /* @__PURE__ */ jsx("div", { style: fieldsetStyle, children: turnstileSlot }),
3915
- formError && /* @__PURE__ */ jsx("p", { role: "alert", style: { ...errorTextStyle, marginBottom: SPACING_MD }, children: formError }),
3947
+ !isAuth && turnstileSlot && /* @__PURE__ */ jsx("div", { style: s(fieldsetStyle), className: classNames?.field, children: turnstileSlot }),
3948
+ formError && /* @__PURE__ */ jsx(
3949
+ "p",
3950
+ {
3951
+ role: "alert",
3952
+ style: s({ ...errorTextStyle, marginBottom: SPACING_MD }),
3953
+ className: classNames?.errorText,
3954
+ children: formError
3955
+ }
3956
+ ),
3916
3957
  /* @__PURE__ */ jsx(
3917
3958
  "button",
3918
3959
  {
3919
3960
  type: "submit",
3920
- style: {
3961
+ style: s({
3921
3962
  ...submitButtonStyle,
3922
3963
  opacity: submitting ? SUBMIT_BUTTON_OPACITY_PENDING : 1,
3923
3964
  cursor: submitting ? "not-allowed" : "pointer"
3924
- },
3965
+ }),
3966
+ className: classNames?.submitButton,
3925
3967
  disabled: submitting,
3926
3968
  children: submitting ? "\u9001\u4FE1\u4E2D..." : "\u9001\u4FE1\u3059\u308B"
3927
3969
  }