smarthr-ui 64.0.1 → 65.0.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.
Files changed (194) hide show
  1. package/esm/components/AppHeader/components/desktop/Navigation.js +32 -60
  2. package/esm/components/AppHeader/components/desktop/Navigation.js.map +1 -1
  3. package/esm/components/ComboBox/usePartialRendering.d.ts +1 -1
  4. package/esm/components/ComboBox/usePartialRendering.js +11 -18
  5. package/esm/components/ComboBox/usePartialRendering.js.map +1 -1
  6. package/esm/components/Dialog/FocusTrap.js +24 -23
  7. package/esm/components/Dialog/FocusTrap.js.map +1 -1
  8. package/esm/components/Dialog/FormDialog/FormDialog.js +5 -7
  9. package/esm/components/Dialog/FormDialog/FormDialog.js.map +1 -1
  10. package/esm/components/Dialog/FormDialog/FormDialogContent.js +5 -7
  11. package/esm/components/Dialog/FormDialog/FormDialogContent.js.map +1 -1
  12. package/esm/components/Dialog/FormDialog/FormDialogContentInner.js +50 -13
  13. package/esm/components/Dialog/FormDialog/FormDialogContentInner.js.map +1 -1
  14. package/esm/components/Dialog/MessageDialog/MessageDialogContent.js +2 -3
  15. package/esm/components/Dialog/MessageDialog/MessageDialogContent.js.map +1 -1
  16. package/esm/components/Dialog/MessageDialog/MessageDialogContentInner.js +18 -7
  17. package/esm/components/Dialog/MessageDialog/MessageDialogContentInner.js.map +1 -1
  18. package/esm/components/Dialog/ModelessDialog.js +41 -42
  19. package/esm/components/Dialog/ModelessDialog.js.map +1 -1
  20. package/esm/components/Dialog/useBodyScrollLock.js +8 -16
  21. package/esm/components/Dialog/useBodyScrollLock.js.map +1 -1
  22. package/esm/components/Dialog/useDialogPortal.js.map +1 -1
  23. package/esm/components/Dialog/useRemoteTrigger.js +5 -7
  24. package/esm/components/Dialog/useRemoteTrigger.js.map +1 -1
  25. package/esm/components/DropZone/DropZone.js +7 -4
  26. package/esm/components/DropZone/DropZone.js.map +1 -1
  27. package/esm/components/Dropdown/Dropdown.js +22 -29
  28. package/esm/components/Dropdown/Dropdown.js.map +1 -1
  29. package/esm/components/Dropdown/DropdownCloser.js +5 -10
  30. package/esm/components/Dropdown/DropdownCloser.js.map +1 -1
  31. package/esm/components/Dropdown/DropdownContentInner.js +9 -13
  32. package/esm/components/Dropdown/DropdownContentInner.js.map +1 -1
  33. package/esm/components/Dropdown/DropdownTrigger.js +15 -20
  34. package/esm/components/Dropdown/DropdownTrigger.js.map +1 -1
  35. package/esm/components/Dropdown/FilterDropdown/FilterDropdown.js +46 -18
  36. package/esm/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
  37. package/esm/components/Dropdown/SortDropdown/useSortDropdown.d.ts +1 -1
  38. package/esm/components/Dropdown/dropdownHelper.js +6 -4
  39. package/esm/components/Dropdown/dropdownHelper.js.map +1 -1
  40. package/esm/components/Dropdown/useKeyboardNavigation.js +22 -30
  41. package/esm/components/Dropdown/useKeyboardNavigation.js.map +1 -1
  42. package/esm/components/FloatArea/FloatArea.d.ts +2 -2
  43. package/esm/components/FloatArea/FloatArea.js +4 -5
  44. package/esm/components/FloatArea/FloatArea.js.map +1 -1
  45. package/esm/components/FormControl/FormControl.js +79 -21
  46. package/esm/components/FormControl/FormControl.js.map +1 -1
  47. package/esm/components/Header/AppLauncher/AppLauncher.js +43 -20
  48. package/esm/components/Header/AppLauncher/AppLauncher.js.map +1 -1
  49. package/esm/components/Header/Header.js +40 -11
  50. package/esm/components/Header/Header.js.map +1 -1
  51. package/esm/components/Header/HeaderLink.js.map +1 -1
  52. package/esm/components/Header/LanguageSwitcher/LanguageSwitcher.js +44 -33
  53. package/esm/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
  54. package/esm/components/Icon/DeprecatedIcon.d.ts +60 -60
  55. package/esm/components/Icon/Icon.d.ts +193 -193
  56. package/esm/components/Icon/Icon.js +194 -194
  57. package/esm/components/Icon/Icon.js.map +1 -1
  58. package/esm/components/Icon/LanguageIcon.d.ts +1 -1
  59. package/esm/components/Icon/SparklesIcon.d.ts +1 -1
  60. package/esm/components/Icon/WarningIcon.d.ts +1 -1
  61. package/esm/components/Icon/generateIcon.d.ts +1 -2
  62. package/esm/components/Icon/generateIcon.js +18 -11
  63. package/esm/components/Icon/generateIcon.js.map +1 -1
  64. package/esm/components/InformationPanel/InformationPanel.d.ts +3 -2
  65. package/esm/components/InformationPanel/InformationPanel.js +61 -21
  66. package/esm/components/InformationPanel/InformationPanel.js.map +1 -1
  67. package/esm/components/InputFile/InputFile.js +23 -12
  68. package/esm/components/InputFile/InputFile.js.map +1 -1
  69. package/esm/components/LineClamp/LineClamp.js +8 -11
  70. package/esm/components/LineClamp/LineClamp.js.map +1 -1
  71. package/esm/components/Pagination/Pagination.d.ts +4 -3
  72. package/esm/components/Pagination/Pagination.js +30 -29
  73. package/esm/components/Pagination/Pagination.js.map +1 -1
  74. package/esm/components/Pagination/PaginationControllerItemButton.d.ts +1 -1
  75. package/esm/components/Pagination/PaginationControllerItemButton.js +14 -11
  76. package/esm/components/Pagination/PaginationControllerItemButton.js.map +1 -1
  77. package/esm/components/Pagination/PaginationItemButton.d.ts +1 -1
  78. package/esm/components/Pagination/PaginationItemButton.js +12 -2
  79. package/esm/components/Pagination/PaginationItemButton.js.map +1 -1
  80. package/esm/components/RadioButton/RadioButton.js +10 -11
  81. package/esm/components/RadioButton/RadioButton.js.map +1 -1
  82. package/esm/components/RadioButtonPanel/RadioButtonPanel.js +6 -6
  83. package/esm/components/RadioButtonPanel/RadioButtonPanel.js.map +1 -1
  84. package/esm/components/SegmentedControl/SegmentedControl.js +1 -6
  85. package/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  86. package/esm/components/Select/Select.d.ts +1 -0
  87. package/esm/components/Select/Select.js +16 -12
  88. package/esm/components/Select/Select.js.map +1 -1
  89. package/esm/components/Stepper/StepStatusIcon.d.ts +6 -2
  90. package/esm/components/Stepper/StepStatusIcon.js +25 -17
  91. package/esm/components/Stepper/StepStatusIcon.js.map +1 -1
  92. package/esm/components/Textarea/Textarea.js +34 -26
  93. package/esm/components/Textarea/Textarea.js.map +1 -1
  94. package/esm/libs/tabbable.js.map +1 -1
  95. package/esm/types/ResponseMessage.d.ts +3 -2
  96. package/esm/types/index.d.ts +1 -1
  97. package/lib/components/AppHeader/components/desktop/Navigation.js +33 -91
  98. package/lib/components/AppHeader/components/desktop/Navigation.js.map +1 -1
  99. package/lib/components/ComboBox/usePartialRendering.d.ts +1 -1
  100. package/lib/components/ComboBox/usePartialRendering.js +11 -18
  101. package/lib/components/ComboBox/usePartialRendering.js.map +1 -1
  102. package/lib/components/Dialog/FocusTrap.js +23 -22
  103. package/lib/components/Dialog/FocusTrap.js.map +1 -1
  104. package/lib/components/Dialog/FormDialog/FormDialog.js +5 -7
  105. package/lib/components/Dialog/FormDialog/FormDialog.js.map +1 -1
  106. package/lib/components/Dialog/FormDialog/FormDialogContent.js +5 -7
  107. package/lib/components/Dialog/FormDialog/FormDialogContent.js.map +1 -1
  108. package/lib/components/Dialog/FormDialog/FormDialogContentInner.js +49 -12
  109. package/lib/components/Dialog/FormDialog/FormDialogContentInner.js.map +1 -1
  110. package/lib/components/Dialog/MessageDialog/MessageDialogContent.js +2 -3
  111. package/lib/components/Dialog/MessageDialog/MessageDialogContent.js.map +1 -1
  112. package/lib/components/Dialog/MessageDialog/MessageDialogContentInner.js +50 -9
  113. package/lib/components/Dialog/MessageDialog/MessageDialogContentInner.js.map +1 -1
  114. package/lib/components/Dialog/ModelessDialog.js +41 -42
  115. package/lib/components/Dialog/ModelessDialog.js.map +1 -1
  116. package/lib/components/Dialog/useBodyScrollLock.js +7 -15
  117. package/lib/components/Dialog/useBodyScrollLock.js.map +1 -1
  118. package/lib/components/Dialog/useDialogPortal.js.map +1 -1
  119. package/lib/components/Dialog/useRemoteTrigger.js +5 -7
  120. package/lib/components/Dialog/useRemoteTrigger.js.map +1 -1
  121. package/lib/components/DropZone/DropZone.js +7 -4
  122. package/lib/components/DropZone/DropZone.js.map +1 -1
  123. package/lib/components/Dropdown/Dropdown.js +21 -28
  124. package/lib/components/Dropdown/Dropdown.js.map +1 -1
  125. package/lib/components/Dropdown/DropdownCloser.js +5 -10
  126. package/lib/components/Dropdown/DropdownCloser.js.map +1 -1
  127. package/lib/components/Dropdown/DropdownContentInner.js +9 -13
  128. package/lib/components/Dropdown/DropdownContentInner.js.map +1 -1
  129. package/lib/components/Dropdown/DropdownTrigger.js +15 -20
  130. package/lib/components/Dropdown/DropdownTrigger.js.map +1 -1
  131. package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js +46 -18
  132. package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
  133. package/lib/components/Dropdown/SortDropdown/useSortDropdown.d.ts +1 -1
  134. package/lib/components/Dropdown/dropdownHelper.js +6 -4
  135. package/lib/components/Dropdown/dropdownHelper.js.map +1 -1
  136. package/lib/components/Dropdown/useKeyboardNavigation.js +22 -30
  137. package/lib/components/Dropdown/useKeyboardNavigation.js.map +1 -1
  138. package/lib/components/FloatArea/FloatArea.d.ts +2 -2
  139. package/lib/components/FloatArea/FloatArea.js +4 -5
  140. package/lib/components/FloatArea/FloatArea.js.map +1 -1
  141. package/lib/components/FormControl/FormControl.js +79 -21
  142. package/lib/components/FormControl/FormControl.js.map +1 -1
  143. package/lib/components/Header/AppLauncher/AppLauncher.js +43 -20
  144. package/lib/components/Header/AppLauncher/AppLauncher.js.map +1 -1
  145. package/lib/components/Header/Header.js +41 -12
  146. package/lib/components/Header/Header.js.map +1 -1
  147. package/lib/components/Header/HeaderLink.js.map +1 -1
  148. package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js +43 -32
  149. package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
  150. package/lib/components/Icon/DeprecatedIcon.d.ts +60 -60
  151. package/lib/components/Icon/Icon.d.ts +193 -193
  152. package/lib/components/Icon/Icon.js +193 -193
  153. package/lib/components/Icon/Icon.js.map +1 -1
  154. package/lib/components/Icon/LanguageIcon.d.ts +1 -1
  155. package/lib/components/Icon/SparklesIcon.d.ts +1 -1
  156. package/lib/components/Icon/WarningIcon.d.ts +1 -1
  157. package/lib/components/Icon/generateIcon.d.ts +1 -2
  158. package/lib/components/Icon/generateIcon.js +20 -14
  159. package/lib/components/Icon/generateIcon.js.map +1 -1
  160. package/lib/components/InformationPanel/InformationPanel.d.ts +3 -2
  161. package/lib/components/InformationPanel/InformationPanel.js +61 -21
  162. package/lib/components/InformationPanel/InformationPanel.js.map +1 -1
  163. package/lib/components/InputFile/InputFile.js +23 -12
  164. package/lib/components/InputFile/InputFile.js.map +1 -1
  165. package/lib/components/LineClamp/LineClamp.js +8 -11
  166. package/lib/components/LineClamp/LineClamp.js.map +1 -1
  167. package/lib/components/Pagination/Pagination.d.ts +4 -3
  168. package/lib/components/Pagination/Pagination.js +30 -29
  169. package/lib/components/Pagination/Pagination.js.map +1 -1
  170. package/lib/components/Pagination/PaginationControllerItemButton.d.ts +1 -1
  171. package/lib/components/Pagination/PaginationControllerItemButton.js +14 -11
  172. package/lib/components/Pagination/PaginationControllerItemButton.js.map +1 -1
  173. package/lib/components/Pagination/PaginationItemButton.d.ts +1 -1
  174. package/lib/components/Pagination/PaginationItemButton.js +12 -2
  175. package/lib/components/Pagination/PaginationItemButton.js.map +1 -1
  176. package/lib/components/RadioButton/RadioButton.js +9 -10
  177. package/lib/components/RadioButton/RadioButton.js.map +1 -1
  178. package/lib/components/RadioButtonPanel/RadioButtonPanel.js +5 -5
  179. package/lib/components/RadioButtonPanel/RadioButtonPanel.js.map +1 -1
  180. package/lib/components/SegmentedControl/SegmentedControl.js +1 -6
  181. package/lib/components/SegmentedControl/SegmentedControl.js.map +1 -1
  182. package/lib/components/Select/Select.d.ts +1 -0
  183. package/lib/components/Select/Select.js +16 -12
  184. package/lib/components/Select/Select.js.map +1 -1
  185. package/lib/components/Stepper/StepStatusIcon.d.ts +6 -2
  186. package/lib/components/Stepper/StepStatusIcon.js +26 -18
  187. package/lib/components/Stepper/StepStatusIcon.js.map +1 -1
  188. package/lib/components/Textarea/Textarea.js +34 -26
  189. package/lib/components/Textarea/Textarea.js.map +1 -1
  190. package/lib/libs/tabbable.js.map +1 -1
  191. package/lib/types/ResponseMessage.d.ts +3 -2
  192. package/lib/types/index.d.ts +1 -1
  193. package/package.json +6 -6
  194. package/smarthr-ui.css +16 -23
@@ -1,10 +1,10 @@
1
- import React, { Fragment } from 'react';
1
+ import React from 'react';
2
2
  import { tv } from 'tailwind-variants';
3
- import { AppNavi } from '../../../AppNavi';
3
+ import { AppNavi, AppNaviAnchor, AppNaviButton, AppNaviCustomTag, AppNaviDropdownMenuButton, } from '../../../AppNavi';
4
+ import { AnchorButton, Button } from '../../../Button';
5
+ import { DropdownMenuGroup } from '../../../Dropdown';
4
6
  import { Cluster } from '../../../Layout';
5
- import { Text } from '../../../Text';
6
- import { isChildNavigation, isChildNavigationGroup } from '../../utils';
7
- import { CommonButton, commonButton } from '../common/CommonButton';
7
+ import { commonButton } from '../common/CommonButton';
8
8
  import { ReleaseNotesDropdown } from './ReleaseNotesDropdown';
9
9
  const appNavi = tv({
10
10
  base: ['shr-overflow-x-auto shr-min-w-[auto]', 'max-[751px]:!shr-hidden'],
@@ -14,64 +14,36 @@ const appNavi = tv({
14
14
  },
15
15
  },
16
16
  });
17
- export const Navigation = ({ appName, navigations, additionalContent, releaseNote, enableNew, }) => {
18
- const buttons = buildButtonsFromNavigations(navigations);
19
- return (React.createElement(AppNavi, { label: enableNew ? undefined : appName, buttons: buttons, className: appNavi({ withReleaseNote: !!releaseNote }), displayDropdownCaret: true, additionalArea: React.createElement(Cluster, { align: "center", className: "shr-flex-nowrap shr-ps-1" },
20
- additionalContent,
21
- releaseNote && React.createElement(ReleaseNotesDropdown, { ...releaseNote })) }));
22
- };
23
- const navigationTitle = tv({
24
- base: ['shr-px-1 shr-pt-0.5 shr-pb-0.25'],
25
- });
26
- const separator = tv({
27
- base: ['[&&]:shr-mx-0 [&&]:shr-my-0.5 [&&]:shr-border-b-shorthand'],
28
- });
29
- // TODO smarthr-ui 側でグループ化された Navigation が対応されたら AppNaviDropdownMenuButton を使った実装に変更する
30
- const buildButtonsFromNavigations = (navigations) => navigations.map((navigation) => {
31
- if (isChildNavigation(navigation)) {
32
- // smarthr-ui の buttons props ではカスタムエレメントは elementAs ではなく tag という名前なので変換する必要がある
33
- if ('elementAs' in navigation) {
34
- const { elementAs, ...rest } = navigation;
35
- return {
36
- ...rest,
37
- tag: elementAs,
38
- };
39
- }
40
- return navigation;
17
+ export const Navigation = ({ appName, navigations, additionalContent, releaseNote, enableNew, }) => (React.createElement(AppNavi, { label: enableNew ? undefined : appName, className: appNavi({ withReleaseNote: !!releaseNote }), displayDropdownCaret: true, additionalArea: React.createElement(Cluster, { align: "center", className: "shr-flex-nowrap shr-ps-1" },
18
+ additionalContent,
19
+ releaseNote && React.createElement(ReleaseNotesDropdown, { ...releaseNote })) }, buildNavigations(navigations)));
20
+ const buildNavigations = (navigations) => (React.createElement(React.Fragment, null, navigations.map((navigation) => {
21
+ if ('elementAs' in navigation) {
22
+ return (React.createElement(AppNaviCustomTag, { ...navigation, key: navigation.children.toString(), tag: navigation.elementAs }));
41
23
  }
42
- // 子要素に current を持っているものがあるかどうか
43
- const childrenHasCurrent = navigation.childNavigations.some((child) => {
44
- if (isChildNavigation(child))
45
- return child.current;
46
- return child.childNavigations.some((c) => c.current);
47
- });
48
- return {
49
- ...navigation,
50
- current: navigation.current || childrenHasCurrent,
51
- dropdownContent: (React.createElement("div", { className: "shr-py-0.5" }, navigation.childNavigations.map((childNavigation, i) => {
52
- if (isChildNavigationGroup(childNavigation)) {
53
- const { childNavigations } = childNavigation;
54
- return (React.createElement(Fragment, { key: childNavigation.title.toString() },
55
- React.createElement("div", { className: "shr-px-0.5" },
56
- React.createElement(Text, { styleType: "subSubBlockTitle", as: "p", className: navigationTitle() }, childNavigation.title),
57
- childNavigations.map((child) => (React.createElement(Fragment, { key: child.children.toString() }, buildDropdownItemFromNavigation(child))))),
58
- i + 1 !== navigation.childNavigations.length && React.createElement("hr", { className: separator() })));
59
- }
60
- const nextChildNavigation = navigation.childNavigations[i + 1];
61
- return (React.createElement(Fragment, { key: childNavigation.children.toString() },
62
- React.createElement("div", { className: "shr-px-0.5" }, buildDropdownItemFromNavigation(childNavigation)),
63
- isChildNavigationGroup(nextChildNavigation) && React.createElement("hr", { className: separator() })));
64
- }))),
65
- };
66
- });
67
- const buildDropdownItemFromNavigation = (navigation) => {
24
+ if ('href' in navigation) {
25
+ return React.createElement(AppNaviAnchor, { ...navigation, key: navigation.children.toString() });
26
+ }
27
+ if ('childNavigations' in navigation) {
28
+ return (React.createElement(AppNaviDropdownMenuButton, { label: navigation.children, key: navigation.children.toString() }, buildDropdownMenu(navigation.childNavigations)));
29
+ }
30
+ return React.createElement(AppNaviButton, { ...navigation, key: navigation.children.toString() });
31
+ })));
32
+ const buildDropdownMenu = (navigations) => (React.createElement(React.Fragment, null, navigations.map((navigation) => {
68
33
  if ('elementAs' in navigation) {
69
- const { elementAs: Tag, current: isCurrent, ...rest } = navigation;
70
- return (React.createElement(Tag, { ...rest, className: commonButton({ current: isCurrent, className: rest.className }) }));
34
+ const Component = navigation.elementAs;
35
+ // TODO: DropdownMenuItemを作成し、elementAsを渡せるようにする
36
+ return (React.createElement(Component, { ...navigation, key: navigation.children, "aria-current": navigation.current, className: commonButton({
37
+ current: navigation.current,
38
+ className: navigation.className,
39
+ }) }));
71
40
  }
72
41
  if ('href' in navigation) {
73
- return React.createElement(CommonButton, { ...navigation, elementAs: "a", current: navigation.current });
42
+ return (React.createElement(AnchorButton, { ...navigation, "aria-current": navigation.current && 'page', key: navigation.children.toString() }));
43
+ }
44
+ if ('title' in navigation) {
45
+ return (React.createElement(DropdownMenuGroup, { name: navigation.title, key: navigation.title.toString() }, buildDropdownMenu(navigation.childNavigations)));
74
46
  }
75
- return (React.createElement(CommonButton, { ...navigation, elementAs: "button", type: "button", current: navigation.current }));
76
- };
47
+ return (React.createElement(Button, { ...navigation, "aria-current": navigation.current && 'page', key: navigation.children.toString() }));
48
+ })));
77
49
  //# sourceMappingURL=Navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../../src/components/AppHeader/components/desktop/Navigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../../src/components/AppHeader/components/desktop/Navigation.tsx"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ export declare function usePartialRendering<T>({ items, minLength, }: {
4
4
  minLength?: number;
5
5
  }): {
6
6
  items: T[];
7
- renderIntersection: () => React.JSX.Element | null;
7
+ renderIntersection: (() => null) | (() => React.JSX.Element);
8
8
  };
@@ -1,27 +1,20 @@
1
1
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  const OPTION_INCREMENT_AMOUNT = 100;
3
+ const RETURN_NULL = () => null;
3
4
  export function usePartialRendering({ items, minLength = 0, }) {
4
- const [currentItemLength, setCurrentItemLength] = useState(Math.max(OPTION_INCREMENT_AMOUNT, minLength));
5
- // minLength も考慮した実際のアイテム数を算出
6
- const actualLength = useMemo(() => Math.max(currentItemLength, minLength), [currentItemLength, minLength]);
7
- const partialItems = useMemo(() => items.slice(0, actualLength), [actualLength, items]);
5
+ const limiter = useCallback((length) => Math.max(length, minLength), [minLength]);
6
+ const [currentItemLength, setCurrentItemLength] = useState(limiter(OPTION_INCREMENT_AMOUNT));
8
7
  useEffect(() => {
9
- // currentItemLength を実際の値に補正
10
- setCurrentItemLength(actualLength);
11
- }, [actualLength]);
12
- const isAllItemsShown = useMemo(() => actualLength >= items.length, [actualLength, items.length]);
13
- const handleIntersect = useCallback(() => {
14
- setCurrentItemLength((current) => current + OPTION_INCREMENT_AMOUNT);
15
- }, []);
16
- const renderIntersection = useCallback(() => {
17
- if (isAllItemsShown) {
18
- return null;
19
- }
20
- return React.createElement(Intersection, { onIntersect: handleIntersect });
21
- }, [handleIntersect, isAllItemsShown]);
8
+ setCurrentItemLength((current) => limiter(current));
9
+ }, [limiter]);
10
+ // minLength も考慮した実際のアイテム数を算出
11
+ const partialItems = useMemo(() => items.slice(0, currentItemLength), [currentItemLength, items]);
12
+ const renderIntersection = useCallback(() => (React.createElement(Intersection, { onIntersect: () => {
13
+ setCurrentItemLength((current) => limiter(current + OPTION_INCREMENT_AMOUNT));
14
+ } })), [limiter]);
22
15
  return {
23
16
  items: partialItems,
24
- renderIntersection,
17
+ renderIntersection: currentItemLength >= items.length ? RETURN_NULL : renderIntersection,
25
18
  };
26
19
  }
27
20
  const Intersection = ({ onIntersect }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePartialRendering.js","sourceRoot":"","sources":["../../../src/components/ComboBox/usePartialRendering.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpF,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEnC,MAAM,UAAU,mBAAmB,CAAI,EACrC,KAAK,EACL,SAAS,GAAG,CAAC,GAId;IACC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAC7C,CAAA;IACD,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAC5C,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAC/B,CAAA;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;IAEvF,SAAS,CAAC,GAAG,EAAE;QACb,6BAA6B;QAC7B,oBAAoB,CAAC,YAAY,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjG,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,uBAAuB,CAAC,CAAA;IACtE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,oBAAC,YAAY,IAAC,WAAW,EAAE,eAAe,GAAI,CAAA;IACvD,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;IAEtC,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,kBAAkB;KACnB,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAoC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;QAC1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QACD,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACpD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,WAAW,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACxB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAQ,CAAA;AAC9B,CAAC,CAAA"}
1
+ {"version":3,"file":"usePartialRendering.js","sourceRoot":"","sources":["../../../src/components/ComboBox/usePartialRendering.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpF,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;AAE9B,MAAM,UAAU,mBAAmB,CAAI,EACrC,KAAK,EACL,SAAS,GAAG,CAAC,GAId;IACC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEzF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAE5F,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjG,MAAM,kBAAkB,GAAG,WAAW,CACpC,GAAG,EAAE,CAAC,CACJ,oBAAC,YAAY,IACX,WAAW,EAAE,GAAG,EAAE;YAChB,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,uBAAuB,CAAC,CAAC,CAAA;QAC/E,CAAC,GACD,CACH,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,kBAAkB,EAAE,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB;KACzF,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAoC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;QAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACpD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,WAAW,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAExB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAI,CAAA;AAC1B,CAAC,CAAA"}
@@ -1,35 +1,36 @@
1
- import React, { useCallback, useEffect, useRef } from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import { tabbable } from '../../libs/tabbable';
3
3
  export const FocusTrap = ({ firstFocusTarget, children }) => {
4
4
  const ref = useRef(null);
5
5
  const dummyFocusRef = useRef(null);
6
- const handleKeyDown = useCallback((e) => {
7
- if (e.key !== 'Tab' || ref.current === null) {
8
- return;
9
- }
10
- const tabbables = tabbable(ref.current).filter((elm) => elm.tabIndex >= 0);
11
- if (tabbables.length === 0) {
12
- return;
13
- }
14
- const firstTabbable = tabbables[0];
15
- const lastTabbable = tabbables[tabbables.length - 1];
16
- const currentFocused = Array.from(tabbables).find((elm) => elm === e.target);
17
- if (e.shiftKey &&
18
- (currentFocused === firstTabbable || document.activeElement === dummyFocusRef.current)) {
19
- lastTabbable.focus();
20
- e.preventDefault();
21
- }
22
- else if (!e.shiftKey && currentFocused === lastTabbable) {
23
- firstTabbable.focus();
24
- e.preventDefault();
25
- }
26
- }, []);
27
6
  useEffect(() => {
7
+ const handleKeyDown = (e) => {
8
+ if (e.key !== 'Tab' || ref.current === null) {
9
+ return;
10
+ }
11
+ const tabbables = tabbable(ref.current).filter((elm) => elm.tabIndex >= 0);
12
+ if (tabbables.length === 0) {
13
+ return;
14
+ }
15
+ const firstTabbable = tabbables[0];
16
+ const lastTabbable = tabbables[tabbables.length - 1];
17
+ const currentFocused = tabbables.find((elm) => elm === e.target);
18
+ if (e.shiftKey) {
19
+ if (currentFocused === firstTabbable || document.activeElement === dummyFocusRef.current) {
20
+ e.preventDefault();
21
+ lastTabbable.focus();
22
+ }
23
+ }
24
+ else if (currentFocused === lastTabbable) {
25
+ e.preventDefault();
26
+ firstTabbable.focus();
27
+ }
28
+ };
28
29
  window.addEventListener('keydown', handleKeyDown);
29
30
  return () => {
30
31
  window.removeEventListener('keydown', handleKeyDown);
31
32
  };
32
- }, [handleKeyDown]);
33
+ }, []);
33
34
  useEffect(() => {
34
35
  const triggerElement = document.activeElement;
35
36
  if (firstFocusTarget?.current) {
@@ -1 +1 @@
1
- {"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../../src/components/Dialog/FocusTrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAoC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE/F,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAM9C,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAElD,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAM;QACR,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;QAC1E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;QAC5E,IACE,CAAC,CAAC,QAAQ;YACV,CAAC,cAAc,KAAK,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,CAAC,EACtF,CAAC;YACD,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC,CAAC,cAAc,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;YAC1D,aAAa,CAAC,KAAK,EAAE,CAAA;YACrB,CAAC,CAAC,cAAc,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACjD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAA;QAC7C,IAAI,gBAAgB,EAAE,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAChC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,4BAA4B;YAC5B,IAAI,cAAc,YAAY,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QAEX,6BAAK,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI;QACxC,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../../src/components/Dialog/FocusTrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAoC,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAM9C,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAM;YACR,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YAE1E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YAED,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACpD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;YAEhE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,cAAc,KAAK,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;oBACzF,CAAC,CAAC,cAAc,EAAE,CAAA;oBAClB,YAAY,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;gBAC3C,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,aAAa,CAAC,KAAK,EAAE,CAAA;YACvB,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAA;QAE7C,IAAI,gBAAgB,EAAE,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAChC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,4BAA4B;YAC5B,IAAI,cAAc,YAAY,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QAEX,6BAAK,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI;QACxC,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -3,20 +3,18 @@ import React, { useCallback, useId } from 'react';
3
3
  import { DialogContentInner } from '../DialogContentInner';
4
4
  import { useDialogPortal } from '../useDialogPortal';
5
5
  import { FormDialogContentInner } from './FormDialogContentInner';
6
- export const FormDialog = ({ children, title, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, onPressEscape = onClickClose, responseMessage, actionDisabled = false, closeDisabled, subActionArea, className, portalParent, decorators, id, ...props }) => {
6
+ export const FormDialog = ({ children, title, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, onPressEscape = onClickClose, responseMessage, actionDisabled, closeDisabled, subActionArea, className, portalParent, decorators, id, ...props }) => {
7
7
  const { createPortal } = useDialogPortal(portalParent, id);
8
8
  const titleId = useId();
9
9
  const handleClickClose = useCallback(() => {
10
- if (!props.isOpen) {
11
- return;
10
+ if (props.isOpen) {
11
+ onClickClose();
12
12
  }
13
- onClickClose();
14
13
  }, [onClickClose, props.isOpen]);
15
14
  const handleSubmitAction = useCallback((close, e) => {
16
- if (!props.isOpen) {
17
- return;
15
+ if (props.isOpen) {
16
+ onSubmit(close, e);
18
17
  }
19
- onSubmit(close, e);
20
18
  }, [onSubmit, props.isOpen]);
21
19
  return createPortal(React.createElement(DialogContentInner, { ...props, ariaLabelledby: titleId, className: className, onPressEscape: onPressEscape },
22
20
  React.createElement(FormDialogContentInner, { title: title, titleId: titleId, subtitle: subtitle, titleTag: titleTag, contentBgColor: contentBgColor, contentPadding: contentPadding, actionText: actionText, actionTheme: actionTheme, actionDisabled: actionDisabled, closeDisabled: closeDisabled, subActionArea: subActionArea, onClickClose: handleClickClose, onSubmit: handleSubmitAction, responseMessage: responseMessage, decorators: decorators }, children)));
@@ -1 +1 @@
1
- {"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAA;AAK9F,MAAM,CAAC,MAAM,UAAU,GAAmC,CAAC,EACzD,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,GAAG,YAAY,EAC5B,eAAe,EACf,cAAc,GAAG,KAAK,EACtB,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,UAAU,EACV,EAAE,EACF,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QACD,YAAY,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAEhC,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACpB,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CACzB,CAAA;IAED,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa;QAG5B,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAA;AAK9F,MAAM,CAAC,MAAM,UAAU,GAAmC,CAAC,EACzD,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,GAAG,YAAY,EAC5B,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,UAAU,EACV,EAAE,EACF,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAEhC,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CACzB,CAAA;IAED,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa;QAG5B,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
@@ -4,20 +4,18 @@ import { DialogContentInner } from '../DialogContentInner';
4
4
  import { DialogContext } from '../DialogWrapper';
5
5
  import { useDialogPortal } from '../useDialogPortal';
6
6
  import { FormDialogContentInner } from './FormDialogContentInner';
7
- export const FormDialogContent = ({ children, title, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, actionDisabled = false, portalParent, className = '', decorators, ...props }) => {
7
+ export const FormDialogContent = ({ children, title, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, actionDisabled, portalParent, className = '', decorators, ...props }) => {
8
8
  const { onClickClose, active } = useContext(DialogContext);
9
9
  const { createPortal } = useDialogPortal(portalParent);
10
10
  const handleClickClose = useCallback(() => {
11
- if (!active) {
12
- return;
11
+ if (active) {
12
+ onClickClose();
13
13
  }
14
- onClickClose();
15
14
  }, [active, onClickClose]);
16
15
  const handleSubmitAction = useCallback((close, e) => {
17
- if (!active) {
18
- return;
16
+ if (active) {
17
+ onSubmit(close, e);
19
18
  }
20
- onSubmit(close, e);
21
19
  }, [active, onSubmit]);
22
20
  const titleId = useId();
23
21
  return createPortal(React.createElement(DialogContentInner, { ...props, onPressEscape: onClickClose, isOpen: active, ariaLabelledby: titleId, className: className },
@@ -1 +1 @@
1
- {"version":3,"file":"FormDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAK5E,MAAM,CAAC,MAAM,iBAAiB,GAAmC,CAAC,EAChE,QAAQ,EACR,KAAK,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,GAAG,KAAK,EACtB,YAAY,EACZ,SAAS,GAAG,EAAE,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QACD,YAAY,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1B,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACpB,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS;QAGpB,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FormDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAK5E,MAAM,CAAC,MAAM,iBAAiB,GAAmC,CAAC,EAChE,QAAQ,EACR,KAAK,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,SAAS,GAAG,EAAE,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1B,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS;QAGpB,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import React, { useCallback, } from 'react';
1
+ import React, { useCallback, useMemo, } from 'react';
2
2
  import { tv } from 'tailwind-variants';
3
3
  import { Button } from '../../Button';
4
4
  import { Cluster, Stack } from '../../Layout';
@@ -8,13 +8,14 @@ import { DialogBody } from '../DialogBody';
8
8
  import { DialogHeader } from '../DialogHeader';
9
9
  import { dialogContentInner } from '../dialogInnerStyle';
10
10
  const CLOSE_BUTTON_LABEL = 'キャンセル';
11
+ const ACTION_AREA_CLUSTER_GAP = { row: 0.5, column: 1 };
11
12
  const formDialogContentInner = tv({
12
13
  extend: dialogContentInner,
13
14
  slots: {
14
15
  form: 'shr-contents',
15
16
  },
16
17
  });
17
- export const FormDialogContentInner = ({ children, title, titleId, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme = 'primary', onSubmit, onClickClose, responseMessage, actionDisabled = false, closeDisabled, subActionArea, decorators, }) => {
18
+ export const FormDialogContentInner = ({ children, title, titleId, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, responseMessage, actionDisabled, closeDisabled, subActionArea, decorators, }) => {
18
19
  const handleSubmitAction = useCallback((e) => {
19
20
  e.preventDefault();
20
21
  // HINT: React Portals などで擬似的にformがネストしている場合など、stopPropagationを実行しないと
@@ -22,21 +23,57 @@ export const FormDialogContentInner = ({ children, title, titleId, subtitle, tit
22
23
  e.stopPropagation();
23
24
  onSubmit(onClickClose, e);
24
25
  }, [onSubmit, onClickClose]);
25
- const isRequestProcessing = responseMessage && responseMessage.status === 'processing';
26
- const { form, wrapper, actionArea, buttonArea, message } = formDialogContentInner();
26
+ const calculatedResponseStatus = useMemo(() => {
27
+ if (!responseMessage) {
28
+ return {
29
+ isProcessing: false,
30
+ visibleMessage: false,
31
+ };
32
+ }
33
+ if (responseMessage.status === 'processing') {
34
+ return {
35
+ isProcessing: true,
36
+ visibleMessage: false,
37
+ };
38
+ }
39
+ return {
40
+ isProcessing: false,
41
+ visibleMessage: true,
42
+ // HINT: statusがprocessingではない === success or errorであることが確定する
43
+ // success or error の場合、text属性も必ず存在する
44
+ status: responseMessage.status,
45
+ message: responseMessage.text,
46
+ };
47
+ }, [responseMessage]);
48
+ const styles = useMemo(() => {
49
+ const { form, wrapper, actionArea, buttonArea, message } = formDialogContentInner();
50
+ return {
51
+ form: form(),
52
+ wrapper: wrapper(),
53
+ actionArea: actionArea(),
54
+ buttonArea: buttonArea(),
55
+ message: message(),
56
+ };
57
+ }, []);
27
58
  return (
28
- // eslint-disable-next-line smarthr/best-practice-for-layouts, smarthr/a11y-heading-in-sectioning-content
29
- React.createElement(Stack, { gap: 0, as: Section, className: wrapper() },
59
+ // eslint-disable-next-line smarthr/a11y-prohibit-sectioning-content-in-form, smarthr/a11y-heading-in-sectioning-content
60
+ React.createElement(Section, { className: styles.wrapper },
30
61
  React.createElement(DialogHeader, { title: title, subtitle: subtitle, titleTag: titleTag, titleId: titleId }),
31
- React.createElement("form", { onSubmit: handleSubmitAction, className: form() },
62
+ React.createElement("form", { onSubmit: handleSubmitAction, className: styles.form },
32
63
  React.createElement(DialogBody, { contentPadding: contentPadding, contentBgColor: contentBgColor }, children),
33
- React.createElement(Stack, { gap: 0.5, className: actionArea() },
64
+ React.createElement(Stack, { gap: 0.5, className: styles.actionArea },
34
65
  React.createElement(Cluster, { justify: "space-between" },
35
66
  subActionArea,
36
- React.createElement(Cluster, { gap: { row: 0.5, column: 1 }, className: buttonArea() },
37
- React.createElement(Button, { onClick: onClickClose, disabled: closeDisabled || isRequestProcessing, className: "smarthr-ui-Dialog-closeButton" }, decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL),
38
- React.createElement(Button, { type: "submit", variant: actionTheme, disabled: actionDisabled, loading: isRequestProcessing, className: "smarthr-ui-Dialog-actionButton" }, actionText))),
39
- (responseMessage?.status === 'success' || responseMessage?.status === 'error') && (React.createElement("div", { className: message() },
40
- React.createElement(ResponseMessage, { type: responseMessage.status, role: "alert" }, responseMessage.text)))))));
67
+ React.createElement(ActionAreaCluster, { onClickClose: onClickClose, closeDisabled: closeDisabled, actionDisabled: actionDisabled, loading: calculatedResponseStatus.isProcessing, actionTheme: actionTheme, decorators: decorators, actionText: actionText, className: styles.buttonArea })),
68
+ calculatedResponseStatus.visibleMessage && (React.createElement("div", { className: styles.message },
69
+ React.createElement(ResponseMessage, { type: calculatedResponseStatus.status, role: "alert" }, calculatedResponseStatus.message)))))));
41
70
  };
71
+ const ActionAreaCluster = React.memo(({ onClickClose, closeDisabled, actionDisabled, loading, actionTheme, decorators, actionText, className, }) => (React.createElement(Cluster, { gap: ACTION_AREA_CLUSTER_GAP, className: className },
72
+ React.createElement(CloseButton, { onClick: onClickClose, disabled: closeDisabled || loading, decorators: decorators }),
73
+ React.createElement(ActionButton, { variant: actionTheme, disabled: actionDisabled, loading: loading }, actionText))));
74
+ const ActionButton = React.memo(({ variant = 'primary', disabled, loading, children }) => (React.createElement(Button, { type: "submit", variant: variant, disabled: disabled, loading: loading, className: "smarthr-ui-Dialog-actionButton" }, children)));
75
+ const CloseButton = React.memo(({ onClick, disabled, decorators }) => {
76
+ const children = useMemo(() => decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL, [decorators]);
77
+ return (React.createElement(Button, { onClick: onClick, disabled: disabled, className: "smarthr-ui-Dialog-closeButton" }, children));
78
+ });
42
79
  //# sourceMappingURL=FormDialogContentInner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContentInner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,WAAW,EACX,OAAO,GACR,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,YAAY,EAAmC,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAgCxD,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAClC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAW,CAAA;AAEhE,MAAM,sBAAsB,GAAG,EAAE,CAAC;IAChC,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,cAAc;KACrB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAoC,CAAC,EACtE,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,GACX,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,CAA6B,EAAE,EAAE;QAChC,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,qEAAqE;QACrE,8BAA8B;QAC9B,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC,EACD,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAA;IAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO;gBACL,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;aACtB,CAAA;QACH,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5C,OAAO;gBACL,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK;aACtB,CAAA;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;YACpB,6DAA6D;YAC7D,qCAAqC;YACrC,MAAM,EAAE,eAAe,CAAC,MAA6B;YACrD,OAAO,EAAG,eAAoC,CAAC,IAAI;SACpD,CAAA;IACH,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,EAAE,CAAA;QAEnF,OAAO;YACL,IAAI,EAAE,IAAI,EAAE;YACZ,OAAO,EAAE,OAAO,EAAE;YAClB,UAAU,EAAE,UAAU,EAAE;YACxB,UAAU,EAAE,UAAU,EAAE;YACxB,OAAO,EAAE,OAAO,EAAE;SACnB,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;IACL,wHAAwH;IACxH,oBAAC,OAAO,IAAC,SAAS,EAAE,MAAM,CAAC,OAAO;QAChC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI;QACxF,8BAAM,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI;YACxD,oBAAC,UAAU,IAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,IACvE,QAAQ,CACE;YACb,oBAAC,KAAK,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC3C,oBAAC,OAAO,IAAC,OAAO,EAAC,eAAe;oBAC7B,aAAa;oBACd,oBAAC,iBAAiB,IAChB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,wBAAwB,CAAC,YAAY,EAC9C,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,UAAU,GAC5B,CACM;gBACT,wBAAwB,CAAC,cAAc,IAAI,CAC1C,6BAAK,SAAS,EAAE,MAAM,CAAC,OAAO;oBAC5B,oBAAC,eAAe,IAAC,IAAI,EAAE,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAC,OAAO,IACjE,wBAAwB,CAAC,OAAO,CACjB,CACd,CACP,CACK,CACH,CACC,CACX,CAAA;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAWlC,CAAC,EACC,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE,EAAE,CAAC,CACJ,oBAAC,OAAO,IAAC,GAAG,EAAE,uBAAuB,EAAE,SAAS,EAAE,SAAS;IACzD,oBAAC,WAAW,IACV,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,aAAa,IAAI,OAAO,EAClC,UAAU,EAAE,UAAU,GACtB;IACF,oBAAC,YAAY,IAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,IAC3E,UAAU,CACE,CACP,CACX,CACF,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAM7B,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC1D,oBAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,gCAAgC,IAEzC,QAAQ,CACF,CACV,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAK5B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;IACtC,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,EAC9E,CAAC,UAAU,CAAC,CACb,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,+BAA+B,IACpF,QAAQ,CACF,CACV,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -7,10 +7,9 @@ export const MessageDialogContent = ({ title, description, portalParent, classNa
7
7
  const { onClickClose, active } = useContext(DialogContext);
8
8
  const { createPortal } = useDialogPortal(portalParent);
9
9
  const handleClickClose = useCallback(() => {
10
- if (!active) {
11
- return;
10
+ if (active) {
11
+ onClickClose();
12
12
  }
13
- onClickClose();
14
13
  }, [active, onClickClose]);
15
14
  const titleId = useId();
16
15
  return createPortal(React.createElement(DialogContentInner, { ...props, onPressEscape: onClickClose, isOpen: active, className: className, ariaLabelledby: titleId },
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAKlF,MAAM,CAAC,MAAM,oBAAoB,GAAmC,CAAC,EACnE,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QACD,YAAY,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;QAEvB,oBAAC,yBAAyB,IACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,UAAU,GACtB,CACiB,CACtB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"MessageDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAKlF,MAAM,CAAC,MAAM,oBAAoB,GAAmC,CAAC,EACnE,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;QAEvB,oBAAC,yBAAyB,IACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,UAAU,GACtB,CACiB,CACtB,CAAA;AACH,CAAC,CAAA"}
@@ -1,18 +1,29 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { Button } from '../../Button';
3
- import { Cluster, Stack } from '../../Layout';
3
+ import { Cluster } from '../../Layout';
4
+ import { Section } from '../../SectioningContent';
4
5
  import { DialogBody } from '../DialogBody';
5
6
  import { DialogHeader } from '../DialogHeader';
6
7
  import { dialogContentInner } from '../dialogInnerStyle';
7
8
  const CLOSE_BUTTON_LABEL = '閉じる';
8
9
  export const MessageDialogContentInner = ({ title, subtitle, titleTag, titleId, contentBgColor, contentPadding, description, onClickClose, decorators, }) => {
9
- const { wrapper, actionArea } = dialogContentInner();
10
+ const styles = useMemo(() => {
11
+ const { wrapper, actionArea } = dialogContentInner();
12
+ return {
13
+ wrapper: wrapper(),
14
+ actionArea: actionArea(),
15
+ };
16
+ }, []);
10
17
  return (
11
- // eslint-disable-next-line smarthr/best-practice-for-layouts, smarthr/a11y-heading-in-sectioning-content
12
- React.createElement(Stack, { gap: 0, as: "section", className: wrapper() },
18
+ // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
19
+ React.createElement(Section, { className: styles.wrapper },
13
20
  React.createElement(DialogHeader, { title: title, subtitle: subtitle, titleTag: titleTag, titleId: titleId }),
14
21
  React.createElement(DialogBody, { contentPadding: contentPadding, contentBgColor: contentBgColor }, description),
15
- React.createElement(Cluster, { as: "footer", justify: "flex-end", className: actionArea() },
16
- React.createElement(Button, { onClick: onClickClose, className: "smarthr-ui-Dialog-closeButton" }, decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL))));
22
+ React.createElement(FooterCluster, { onClickClose: onClickClose, decorators: decorators, className: styles.actionArea })));
17
23
  };
24
+ const FooterCluster = React.memo(({ onClickClose, decorators, className }) => {
25
+ const children = useMemo(() => decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL, [decorators]);
26
+ return (React.createElement(Cluster, { as: "footer", justify: "flex-end", className: className },
27
+ React.createElement(Button, { onClick: onClickClose, className: "smarthr-ui-Dialog-closeButton" }, children)));
28
+ });
18
29
  //# sourceMappingURL=MessageDialogContentInner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAgBxD,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,MAAM,CAAC,MAAM,yBAAyB,GAAuC,CAAC,EAC5E,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,GACX,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAEpD,OAAO;IACL,yGAAyG;IACzG,oBAAC,KAAK,IAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAC,SAAS,EAAC,SAAS,EAAE,OAAO,EAAE;QAC9C,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI;QACxF,oBAAC,UAAU,IAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,IACvE,WAAW,CACD;QACb,oBAAC,OAAO,IAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAE,UAAU,EAAE;YAC7D,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,+BAA+B,IACrE,UAAU,EAAE,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAClE,CACD,CACJ,CACT,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"MessageDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAW,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAgBxD,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,MAAM,CAAC,MAAM,yBAAyB,GAAuC,CAAC,EAC5E,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,GACX,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAAA;QAEpD,OAAO;YACL,OAAO,EAAE,OAAO,EAAE;YAClB,UAAU,EAAE,UAAU,EAAE;SACzB,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;IACL,sEAAsE;IACtE,oBAAC,OAAO,IAAC,SAAS,EAAE,MAAM,CAAC,OAAO;QAChC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI;QACxF,oBAAC,UAAU,IAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,IACvE,WAAW,CACD;QACb,oBAAC,aAAa,IACZ,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,UAAU,GAC5B,CACM,CACX,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAE9B,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5C,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,EAC9E,CAAC,UAAU,CAAC,CACb,CAAA;IAED,OAAO,CACL,oBAAC,OAAO,IAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAE,SAAS;QAC1D,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,+BAA+B,IACrE,QAAQ,CACF,CACD,CACX,CAAA;AACH,CAAC,CAAC,CAAA"}