smarthr-ui 21.4.4 → 22.1.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/esm/components/BackgroundJobsPanel/JobIcon.js +4 -4
  3. package/esm/components/BackgroundJobsPanel/JobIcon.js.map +1 -1
  4. package/esm/components/ComboBox/ComboBoxContext.d.ts +11 -0
  5. package/esm/components/ComboBox/ComboBoxContext.js +10 -0
  6. package/esm/components/ComboBox/ComboBoxContext.js.map +1 -0
  7. package/esm/components/ComboBox/ListBoxItem.d.ts +13 -0
  8. package/esm/components/ComboBox/ListBoxItem.js +88 -0
  9. package/esm/components/ComboBox/ListBoxItem.js.map +1 -0
  10. package/esm/components/ComboBox/MultiComboBox.js +133 -101
  11. package/esm/components/ComboBox/MultiComboBox.js.map +1 -1
  12. package/esm/components/ComboBox/MultiSelectedItem.d.ts +12 -5
  13. package/esm/components/ComboBox/MultiSelectedItem.js +81 -10
  14. package/esm/components/ComboBox/MultiSelectedItem.js.map +1 -1
  15. package/esm/components/ComboBox/MultiSelectedItemTooltip.d.ts +8 -0
  16. package/esm/components/ComboBox/MultiSelectedItemTooltip.js +6 -0
  17. package/esm/components/ComboBox/MultiSelectedItemTooltip.js.map +1 -0
  18. package/esm/components/ComboBox/SingleComboBox.js +84 -93
  19. package/esm/components/ComboBox/SingleComboBox.js.map +1 -1
  20. package/esm/components/ComboBox/types.d.ts +6 -0
  21. package/esm/components/ComboBox/useActiveOption.d.ts +9 -0
  22. package/esm/components/ComboBox/useActiveOption.js +53 -0
  23. package/esm/components/ComboBox/useActiveOption.js.map +1 -0
  24. package/esm/components/ComboBox/useClassNames.d.ts +23 -24
  25. package/esm/components/ComboBox/useClassNames.js +28 -27
  26. package/esm/components/ComboBox/useClassNames.js.map +1 -1
  27. package/esm/components/ComboBox/useFocusControl.d.ts +7 -0
  28. package/esm/components/ComboBox/useFocusControl.js +53 -0
  29. package/esm/components/ComboBox/useFocusControl.js.map +1 -0
  30. package/esm/components/ComboBox/useListBox.d.ts +9 -24
  31. package/esm/components/ComboBox/useListBox.js +109 -217
  32. package/esm/components/ComboBox/useListBox.js.map +1 -1
  33. package/esm/components/ComboBox/useOptions.d.ts +10 -0
  34. package/esm/components/ComboBox/useOptions.js +51 -0
  35. package/esm/components/ComboBox/useOptions.js.map +1 -0
  36. package/esm/components/ComboBox/usePartialRendering.d.ts +7 -0
  37. package/esm/components/ComboBox/usePartialRendering.js +47 -0
  38. package/esm/components/ComboBox/usePartialRendering.js.map +1 -0
  39. package/esm/components/CompactInformationPanel/CompactInformationPanel.js +2 -2
  40. package/esm/components/CompactInformationPanel/CompactInformationPanel.js.map +1 -1
  41. package/esm/components/FieldSet/FieldSet.d.ts +3 -3
  42. package/esm/components/FieldSet/FieldSet.js +2 -2
  43. package/esm/components/FieldSet/FieldSet.js.map +1 -1
  44. package/esm/components/FlashMessage/FlashMessage.js +2 -2
  45. package/esm/components/FlashMessage/FlashMessage.js.map +1 -1
  46. package/esm/components/FormGroup/FormGroup.js +0 -1
  47. package/esm/components/FormGroup/FormGroup.js.map +1 -1
  48. package/esm/components/Header/Header.js +1 -1
  49. package/esm/components/Header/Header.js.map +1 -1
  50. package/esm/components/Header/HeaderDropdownButton.js +15 -11
  51. package/esm/components/Header/HeaderDropdownButton.js.map +1 -1
  52. package/esm/components/Header/HeaderLink.js +15 -11
  53. package/esm/components/Header/HeaderLink.js.map +1 -1
  54. package/esm/components/Icon/Icon.d.ts +1 -0
  55. package/esm/components/Icon/Icon.js +2 -0
  56. package/esm/components/Icon/Icon.js.map +1 -1
  57. package/esm/components/Icon/WarningIcon.d.ts +3 -0
  58. package/esm/components/Icon/WarningIcon.js +19 -0
  59. package/esm/components/Icon/WarningIcon.js.map +1 -0
  60. package/esm/components/InformationPanel/InformationPanel.js +2 -2
  61. package/esm/components/InformationPanel/InformationPanel.js.map +1 -1
  62. package/esm/components/NotificationBar/NotificationBar.d.ts +3 -1
  63. package/esm/components/NotificationBar/NotificationBar.js +41 -23
  64. package/esm/components/NotificationBar/NotificationBar.js.map +1 -1
  65. package/esm/components/Select/Select.d.ts +4 -2
  66. package/esm/components/Select/Select.js +69 -60
  67. package/esm/components/Select/Select.js.map +1 -1
  68. package/esm/components/Select/useClassNames.d.ts +1 -1
  69. package/esm/components/Select/useClassNames.js +2 -2
  70. package/esm/components/Select/useClassNames.js.map +1 -1
  71. package/esm/components/StatusLabel/StatusLabel.d.ts +9 -4
  72. package/esm/components/StatusLabel/StatusLabel.js +65 -36
  73. package/esm/components/StatusLabel/StatusLabel.js.map +1 -1
  74. package/esm/components/Textarea/Textarea.d.ts +6 -0
  75. package/esm/components/Textarea/Textarea.js +54 -37
  76. package/esm/components/Textarea/Textarea.js.map +1 -1
  77. package/esm/components/Tooltip/Tooltip.js +1 -1
  78. package/esm/components/Tooltip/Tooltip.js.map +1 -1
  79. package/esm/components/Tooltip/TooltipPortal.d.ts +1 -1
  80. package/esm/components/Tooltip/TooltipPortal.js +3 -3
  81. package/esm/components/Tooltip/TooltipPortal.js.map +1 -1
  82. package/esm/themes/createColor.d.ts +7 -27
  83. package/esm/themes/createColor.js +2 -0
  84. package/esm/themes/createColor.js.map +1 -1
  85. package/lib/components/BackgroundJobsPanel/JobIcon.js +3 -3
  86. package/lib/components/BackgroundJobsPanel/JobIcon.js.map +1 -1
  87. package/lib/components/ComboBox/ComboBoxContext.d.ts +11 -0
  88. package/lib/components/ComboBox/ComboBoxContext.js +13 -0
  89. package/lib/components/ComboBox/ComboBoxContext.js.map +1 -0
  90. package/lib/components/ComboBox/ListBoxItem.d.ts +13 -0
  91. package/lib/components/ComboBox/ListBoxItem.js +114 -0
  92. package/lib/components/ComboBox/ListBoxItem.js.map +1 -0
  93. package/lib/components/ComboBox/MultiComboBox.js +132 -100
  94. package/lib/components/ComboBox/MultiComboBox.js.map +1 -1
  95. package/lib/components/ComboBox/MultiSelectedItem.d.ts +12 -5
  96. package/lib/components/ComboBox/MultiSelectedItem.js +80 -9
  97. package/lib/components/ComboBox/MultiSelectedItem.js.map +1 -1
  98. package/lib/components/ComboBox/MultiSelectedItemTooltip.d.ts +8 -0
  99. package/lib/components/ComboBox/MultiSelectedItemTooltip.js +13 -0
  100. package/lib/components/ComboBox/MultiSelectedItemTooltip.js.map +1 -0
  101. package/lib/components/ComboBox/SingleComboBox.js +83 -92
  102. package/lib/components/ComboBox/SingleComboBox.js.map +1 -1
  103. package/lib/components/ComboBox/types.d.ts +6 -0
  104. package/lib/components/ComboBox/useActiveOption.d.ts +9 -0
  105. package/lib/components/ComboBox/useActiveOption.js +57 -0
  106. package/lib/components/ComboBox/useActiveOption.js.map +1 -0
  107. package/lib/components/ComboBox/useClassNames.d.ts +23 -24
  108. package/lib/components/ComboBox/useClassNames.js +31 -29
  109. package/lib/components/ComboBox/useClassNames.js.map +1 -1
  110. package/lib/components/ComboBox/useFocusControl.d.ts +7 -0
  111. package/lib/components/ComboBox/useFocusControl.js +57 -0
  112. package/lib/components/ComboBox/useFocusControl.js.map +1 -0
  113. package/lib/components/ComboBox/useListBox.d.ts +9 -24
  114. package/lib/components/ComboBox/useListBox.js +108 -216
  115. package/lib/components/ComboBox/useListBox.js.map +1 -1
  116. package/lib/components/ComboBox/useOptions.d.ts +10 -0
  117. package/lib/components/ComboBox/useOptions.js +55 -0
  118. package/lib/components/ComboBox/useOptions.js.map +1 -0
  119. package/lib/components/ComboBox/usePartialRendering.d.ts +7 -0
  120. package/lib/components/ComboBox/usePartialRendering.js +74 -0
  121. package/lib/components/ComboBox/usePartialRendering.js.map +1 -0
  122. package/lib/components/CompactInformationPanel/CompactInformationPanel.js +1 -1
  123. package/lib/components/CompactInformationPanel/CompactInformationPanel.js.map +1 -1
  124. package/lib/components/FieldSet/FieldSet.d.ts +3 -3
  125. package/lib/components/FieldSet/FieldSet.js +2 -2
  126. package/lib/components/FieldSet/FieldSet.js.map +1 -1
  127. package/lib/components/FlashMessage/FlashMessage.js +1 -1
  128. package/lib/components/FlashMessage/FlashMessage.js.map +1 -1
  129. package/lib/components/FormGroup/FormGroup.js +0 -1
  130. package/lib/components/FormGroup/FormGroup.js.map +1 -1
  131. package/lib/components/Header/Header.js +1 -1
  132. package/lib/components/Header/Header.js.map +1 -1
  133. package/lib/components/Header/HeaderDropdownButton.js +15 -11
  134. package/lib/components/Header/HeaderDropdownButton.js.map +1 -1
  135. package/lib/components/Header/HeaderLink.js +15 -11
  136. package/lib/components/Header/HeaderLink.js.map +1 -1
  137. package/lib/components/Icon/Icon.d.ts +1 -0
  138. package/lib/components/Icon/Icon.js +3 -1
  139. package/lib/components/Icon/Icon.js.map +1 -1
  140. package/lib/components/Icon/WarningIcon.d.ts +3 -0
  141. package/lib/components/Icon/WarningIcon.js +47 -0
  142. package/lib/components/Icon/WarningIcon.js.map +1 -0
  143. package/lib/components/InformationPanel/InformationPanel.js +1 -1
  144. package/lib/components/InformationPanel/InformationPanel.js.map +1 -1
  145. package/lib/components/NotificationBar/NotificationBar.d.ts +3 -1
  146. package/lib/components/NotificationBar/NotificationBar.js +40 -22
  147. package/lib/components/NotificationBar/NotificationBar.js.map +1 -1
  148. package/lib/components/Select/Select.d.ts +4 -2
  149. package/lib/components/Select/Select.js +69 -60
  150. package/lib/components/Select/Select.js.map +1 -1
  151. package/lib/components/Select/useClassNames.d.ts +1 -1
  152. package/lib/components/Select/useClassNames.js +2 -2
  153. package/lib/components/Select/useClassNames.js.map +1 -1
  154. package/lib/components/StatusLabel/StatusLabel.d.ts +9 -4
  155. package/lib/components/StatusLabel/StatusLabel.js +65 -39
  156. package/lib/components/StatusLabel/StatusLabel.js.map +1 -1
  157. package/lib/components/Textarea/Textarea.d.ts +6 -0
  158. package/lib/components/Textarea/Textarea.js +53 -36
  159. package/lib/components/Textarea/Textarea.js.map +1 -1
  160. package/lib/components/Tooltip/Tooltip.js +1 -1
  161. package/lib/components/Tooltip/Tooltip.js.map +1 -1
  162. package/lib/components/Tooltip/TooltipPortal.d.ts +1 -1
  163. package/lib/components/Tooltip/TooltipPortal.js +3 -3
  164. package/lib/components/Tooltip/TooltipPortal.js.map +1 -1
  165. package/lib/themes/createColor.d.ts +7 -27
  166. package/lib/themes/createColor.js +2 -0
  167. package/lib/themes/createColor.js.map +1 -1
  168. package/package.json +41 -32
  169. package/esm/components/ComboBox/MultiSelectedItemInner.d.ts +0 -12
  170. package/esm/components/ComboBox/MultiSelectedItemInner.js +0 -78
  171. package/esm/components/ComboBox/MultiSelectedItemInner.js.map +0 -1
  172. package/lib/components/ComboBox/MultiSelectedItemInner.d.ts +0 -12
  173. package/lib/components/ComboBox/MultiSelectedItemInner.js +0 -105
  174. package/lib/components/ComboBox/MultiSelectedItemInner.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,44 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [22.1.0](https://github.com/kufu/smarthr-ui/compare/v22.0.0...v22.1.0) (2022-07-05)
6
+
7
+
8
+ ### Features
9
+
10
+ * Select にサイズ小を追加 ([#2600](https://github.com/kufu/smarthr-ui/issues/2600)) ([0fd4b28](https://github.com/kufu/smarthr-ui/commit/0fd4b280b5f70ddf16439cedb876a823cac8ab47))
11
+ * StatusLabel に type=green を追加 ([#2627](https://github.com/kufu/smarthr-ui/issues/2627)) ([de94ce7](https://github.com/kufu/smarthr-ui/commit/de94ce729ff315bdf5a8bbd63d87e075c52a729a))
12
+ * Textarea が入力に依って自動で広がるよう機能追加 ([#2598](https://github.com/kufu/smarthr-ui/issues/2598)) ([d518192](https://github.com/kufu/smarthr-ui/commit/d51819268d0d2fa936f3c67f8a5f97256db53e14))
13
+
14
+ ## [22.0.0](https://github.com/kufu/smarthr-ui/compare/v21.4.1...v22.0.0) (2022-06-24)
15
+
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ * 黄色の使い方と注意アイコンの使い方を見直す (#2578)
20
+
21
+ ### Features
22
+
23
+ * 黄色の使い方と注意アイコンの使い方を見直す ([#2578](https://github.com/kufu/smarthr-ui/issues/2578)) ([f98dfaf](https://github.com/kufu/smarthr-ui/commit/f98dfaf2145473c5daabdffb5f3bb039b6deb180))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * `Header` 関連コンポーネントの theme 参照の修正 ([#2604](https://github.com/kufu/smarthr-ui/issues/2604)) ([a2f7e32](https://github.com/kufu/smarthr-ui/commit/a2f7e32df5a2001155b6c601c78566ed3f4fa33d))
29
+ * change not to use DOMRect outside useEffect or handle ([#2596](https://github.com/kufu/smarthr-ui/issues/2596)) ([1ca6a10](https://github.com/kufu/smarthr-ui/commit/1ca6a102e5fc7d02b59d9aec3e0c572273b719da))
30
+ * fix combobox listbox partial rendering ([#2588](https://github.com/kufu/smarthr-ui/issues/2588)) ([dccc06d](https://github.com/kufu/smarthr-ui/commit/dccc06d872482fe7159aa5fa8f18086eccf0caee))
31
+ * fix reference of theme ([#2586](https://github.com/kufu/smarthr-ui/issues/2586)) ([139ab4e](https://github.com/kufu/smarthr-ui/commit/139ab4e8ebf7a7900814f195d73da9598c7b9b5b))
32
+ * SmartHRLogo が ThemeProvider 前提で書かれていたので修正 ([#2593](https://github.com/kufu/smarthr-ui/issues/2593)) ([df1e3c3](https://github.com/kufu/smarthr-ui/commit/df1e3c32d79e71b176b1e6e286fef28b12c924bf))
33
+ * ヘッダーが ThemeProvider 前提で書かれている箇所を useTheme を使うように修正 ([#2601](https://github.com/kufu/smarthr-ui/issues/2601)) ([62c26cb](https://github.com/kufu/smarthr-ui/commit/62c26cbfdc39375544e1d986fcf38db34be4a0f8))
34
+ * ボタンの displayName を明示的に設定 ([#2585](https://github.com/kufu/smarthr-ui/issues/2585)) ([87b09b0](https://github.com/kufu/smarthr-ui/commit/87b09b0309274d33a5965b246d3aad8ec68cd9a1))
35
+
36
+ ### [21.4.5](https://github.com/kufu/smarthr-ui/compare/v21.4.4...v21.4.5) (2022-06-24)
37
+
38
+
39
+ ### Bug Fixes
40
+
41
+ * `Header` の theme 参照修正のバックポート対応 ([#2605](https://github.com/kufu/smarthr-ui/issues/2605)) ([0a79803](https://github.com/kufu/smarthr-ui/commit/0a79803cc5ba27ab44a9230aa9db9c0e71768965))
42
+
5
43
  ### [21.4.4](https://github.com/kufu/smarthr-ui/compare/v21.4.3...v21.4.4) (2022-06-23)
6
44
 
7
45
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useTheme } from '../../hooks/useTheme';
3
- import { FaCheckCircleIcon, FaCloudDownloadAltIcon, FaExclamationTriangleIcon, FaSyncAltIcon, FaTimesCircleIcon, } from '../Icon';
3
+ import { FaCheckCircleIcon, FaCloudDownloadAltIcon, FaExclamationCircleIcon, FaSyncAltIcon, WarningIcon, } from '../Icon';
4
4
  export const JobIcon = ({ status }) => {
5
5
  const Icon = getIcon(status);
6
6
  const color = useIconColor(status);
@@ -13,9 +13,9 @@ function getIcon(status) {
13
13
  case 'downloading':
14
14
  return FaCloudDownloadAltIcon;
15
15
  case 'warning':
16
- return FaExclamationTriangleIcon;
16
+ return WarningIcon;
17
17
  case 'error':
18
- return FaTimesCircleIcon;
18
+ return FaExclamationCircleIcon;
19
19
  case 'done':
20
20
  return FaCheckCircleIcon;
21
21
  }
@@ -29,7 +29,7 @@ function useIconColor(status) {
29
29
  case 'error':
30
30
  return color.DANGER;
31
31
  case 'done':
32
- return color.TEXT_GREY;
32
+ return color.MAIN;
33
33
  default:
34
34
  return color.TEXT_BLACK;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JobIcon.js","sourceRoot":"","sources":["../../../src/components/BackgroundJobsPanel/JobIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAc,MAAM,OAAO,CAAA;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,GAElB,MAAM,SAAS,CAAA;AAMhB,MAAM,CAAC,MAAM,OAAO,GAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAElC,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAAA;AAC/B,CAAC,CAAA;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,QAAQ,MAAM,EAAE;QACd,KAAK,YAAY;YACf,OAAO,aAAa,CAAA;QACtB,KAAK,aAAa;YAChB,OAAO,sBAAsB,CAAA;QAC/B,KAAK,SAAS;YACZ,OAAO,yBAAyB,CAAA;QAClC,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAA;QAC1B,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAA;KAC3B;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,QAAQ,MAAM,EAAE;QACd,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,MAAM,CAAA;QACrB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,SAAS,CAAA;QACxB;YACE,OAAO,KAAK,CAAC,UAAU,CAAA;KAC1B;AACH,CAAC"}
1
+ {"version":3,"file":"JobIcon.js","sourceRoot":"","sources":["../../../src/components/BackgroundJobsPanel/JobIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAc,MAAM,OAAO,CAAA;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EAEb,WAAW,GACZ,MAAM,SAAS,CAAA;AAMhB,MAAM,CAAC,MAAM,OAAO,GAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAElC,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAAA;AAC/B,CAAC,CAAA;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,QAAQ,MAAM,EAAE;QACd,KAAK,YAAY;YACf,OAAO,aAAa,CAAA;QACtB,KAAK,aAAa;YAChB,OAAO,sBAAsB,CAAA;QAC/B,KAAK,SAAS;YACZ,OAAO,WAAW,CAAA;QACpB,KAAK,OAAO;YACV,OAAO,uBAAuB,CAAA;QAChC,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAA;KAC3B;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,QAAQ,MAAM,EAAE;QACd,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,MAAM,CAAA;QACrB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAA;QACnB;YACE,OAAO,KAAK,CAAC,UAAU,CAAA;KAC1B;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ declare type ComboBoxContextType = {
3
+ listBoxClassNames: {
4
+ dropdownList: string;
5
+ addButton: string;
6
+ selectButton: string;
7
+ noItems: string;
8
+ };
9
+ };
10
+ export declare const ComboBoxContext: import("react").Context<ComboBoxContextType>;
11
+ export {};
@@ -0,0 +1,10 @@
1
+ import { createContext } from 'react';
2
+ export const ComboBoxContext = createContext({
3
+ listBoxClassNames: {
4
+ dropdownList: '',
5
+ addButton: '',
6
+ selectButton: '',
7
+ noItems: '',
8
+ },
9
+ });
10
+ //# sourceMappingURL=ComboBoxContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBoxContext.js","sourceRoot":"","sources":["../../../src/components/ComboBox/ComboBoxContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAWrC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAsB;IAChE,iBAAiB,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;KACZ;CACF,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ import { ComboBoxOption } from './types';
3
+ declare type Props<T> = {
4
+ option: ComboBoxOption<T>;
5
+ isActive: boolean;
6
+ onAdd: (option: ComboBoxOption<T>) => void;
7
+ onSelect: (option: ComboBoxOption<T>) => void;
8
+ onMouseOver: (option: ComboBoxOption<T>) => void;
9
+ activeRef: RefObject<HTMLButtonElement>;
10
+ };
11
+ declare function ListBoxItem<T>({ option, isActive, onAdd, onSelect, onMouseOver, activeRef }: Props<T>): JSX.Element;
12
+ declare const Memoized: typeof ListBoxItem;
13
+ export { Memoized as ListBoxItem };
@@ -0,0 +1,88 @@
1
+ import React, { useCallback, useContext } from 'react';
2
+ import styled, { css } from 'styled-components';
3
+ import { useTheme } from '../../hooks/useTheme';
4
+ import { FaPlusCircleIcon } from '../Icon';
5
+ import { ComboBoxContext } from './ComboBoxContext';
6
+ function ListBoxItem({ option, isActive, onAdd, onSelect, onMouseOver, activeRef }) {
7
+ const className = isActive ? 'active' : '';
8
+ const { item, selected, isNew } = option;
9
+ const { label, disabled } = item;
10
+ const handleAdd = useCallback(() => {
11
+ onAdd(option);
12
+ }, [onAdd, option]);
13
+ const handleSelect = useCallback(() => {
14
+ onSelect(option);
15
+ }, [onSelect, option]);
16
+ const handleMouseOver = useCallback(() => {
17
+ onMouseOver(option);
18
+ }, [onMouseOver, option]);
19
+ const theme = useTheme();
20
+ const { listBoxClassNames: classNames } = useContext(ComboBoxContext);
21
+ return isNew ? (React.createElement(AddButton, { key: option.id, themes: theme, onClick: handleAdd, onMouseOver: handleMouseOver, id: option.id, role: "option", className: `${className} ${classNames.addButton}`, ref: isActive ? activeRef : undefined },
22
+ React.createElement(AddIcon, { color: theme.color.TEXT_LINK, themes: theme }),
23
+ React.createElement(AddText, { themes: theme },
24
+ "\u300C",
25
+ label,
26
+ "\u300D\u3092\u8FFD\u52A0"))) : (React.createElement(SelectButton, { key: option.id, type: "button", themes: theme, disabled: disabled, onClick: handleSelect, onMouseOver: handleMouseOver, id: option.id, role: "option", className: `${className} ${classNames.selectButton}`, "aria-selected": selected, ref: isActive ? activeRef : undefined }, label));
27
+ }
28
+ const typedMemo = React.memo;
29
+ const Memoized = typedMemo(ListBoxItem);
30
+ export { Memoized as ListBoxItem };
31
+ const SelectButton = styled.button `
32
+ ${({ themes }) => {
33
+ const { fontSize, leading, spacingByChar, color } = themes;
34
+ return css `
35
+ display: block;
36
+ min-width: 100%;
37
+ border: none;
38
+ padding: ${spacingByChar(0.5)} ${spacingByChar(1)};
39
+ background-color: ${color.WHITE};
40
+ font-size: ${fontSize.M};
41
+ line-height: ${leading.NONE};
42
+ text-align: left;
43
+ cursor: pointer;
44
+
45
+ &.active {
46
+ background-color: ${color.hoverColor(color.WHITE)};
47
+ color: inherit;
48
+ }
49
+
50
+ &[aria-selected='true'] {
51
+ background-color: ${color.MAIN};
52
+ color: ${color.TEXT_WHITE};
53
+ &.active {
54
+ background-color: ${color.hoverColor(color.MAIN)};
55
+ }
56
+ }
57
+
58
+ &[disabled] {
59
+ color: ${color.TEXT_DISABLED};
60
+ cursor: not-allowed;
61
+ }
62
+ `;
63
+ }}
64
+ `;
65
+ const AddButton = styled(SelectButton) `
66
+ display: flex;
67
+ align-items: center;
68
+ min-width: 100%;
69
+ `;
70
+ const AddIcon = styled(FaPlusCircleIcon) `
71
+ ${({ themes }) => {
72
+ const { spacingByChar } = themes;
73
+ return css `
74
+ position: relative;
75
+ top: -1px;
76
+ margin-right: ${spacingByChar(0.25)};
77
+ `;
78
+ }}
79
+ `;
80
+ const AddText = styled.span `
81
+ ${({ themes }) => {
82
+ const { color } = themes;
83
+ return css `
84
+ color: ${color.TEXT_LINK};
85
+ `;
86
+ }}
87
+ `;
88
+ //# sourceMappingURL=ListBoxItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBoxItem.js","sourceRoot":"","sources":["../../../src/components/ComboBox/ListBoxItem.tsx"],"names":[],"mappings":"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"}
@@ -2,59 +2,67 @@ import React, { useCallback, useLayoutEffect, useMemo, useRef, useState, } from
2
2
  import styled, { css } from 'styled-components';
3
3
  import { useTheme } from '../../hooks/useTheme';
4
4
  import { useOuterClick } from '../../hooks/useOuterClick';
5
+ import { useId } from '../../hooks/useId';
5
6
  import { hasParentElementByClassName } from './multiComboBoxHelper';
6
- import { useClassNames } from './useClassNames';
7
+ import { useMultiComboBoxClassNames } from './useClassNames';
7
8
  import { FaCaretDownIcon } from '../Icon';
8
- import { useListBox } from './useListBox';
9
+ import { useOptions } from './useOptions';
10
+ import { useFocusControl } from './useFocusControl';
9
11
  import { MultiSelectedItem } from './MultiSelectedItem';
10
- import { convertMatchableString } from './comboBoxHelper';
12
+ import { useListBox } from './useListBox';
13
+ import { ComboBoxContext } from './ComboBoxContext';
11
14
  export function MultiComboBox({ items, selectedItems, name, disabled = false, error = false, creatable = false, placeholder = '', isLoading, selectedItemEllipsis, width = 'auto', inputValue: controlledInputValue, className = '', onChange, onChangeInput, onAdd, onDelete, onSelect, onChangeSelected, onFocus, onBlur, ...props }) {
12
15
  const theme = useTheme();
13
- const classNames = useClassNames().multi;
16
+ const classNames = useMultiComboBoxClassNames();
14
17
  const outerRef = useRef(null);
15
- const inputRef = useRef(null);
16
18
  const [isFocused, setIsFocused] = useState(false);
17
19
  const isInputControlled = useMemo(() => controlledInputValue !== undefined, [controlledInputValue]);
18
20
  const [uncontrolledInputValue, setUncontrolledInputValue] = useState('');
19
21
  const inputValue = isInputControlled ? controlledInputValue : uncontrolledInputValue;
20
22
  const [isComposing, setIsComposing] = useState(false);
21
- const selectedLabels = useMemo(() => selectedItems.map(({ label }) => label), [selectedItems]);
22
- const filteredItems = useMemo(() => items.filter(({ label }) => {
23
- if (selectedLabels.includes(label))
24
- return false;
25
- if (!inputValue)
26
- return true;
27
- return convertMatchableString(label).includes(convertMatchableString(inputValue));
28
- }), [inputValue, items, selectedLabels]);
29
- const isDuplicate = items.some((item) => item.label === inputValue);
30
- const hasSelectableExactMatch = filteredItems.some((item) => item.label === inputValue);
31
- const { renderListBox, calculateDropdownRect, resetActiveOptionIndex, handleInputKeyDown, listBoxRef, aria, } = useListBox({
32
- items: filteredItems,
23
+ const { options } = useOptions({
24
+ items,
25
+ selected: selectedItems,
26
+ creatable,
33
27
  inputValue,
34
- onAdd,
35
- onSelect: (selected) => {
28
+ });
29
+ const handleDelete = useCallback((item) => {
30
+ onDelete && onDelete(item);
31
+ onChangeSelected &&
32
+ onChangeSelected(selectedItems.filter((selected) => selected.label !== item.label || selected.value !== item.value));
33
+ }, [onChangeSelected, onDelete, selectedItems]);
34
+ const handleSelect = useCallback((selected) => {
35
+ const matchedSelectedItem = selectedItems.find((item) => item.label === selected.label && item.value === selected.value);
36
+ if (matchedSelectedItem !== undefined) {
37
+ if (matchedSelectedItem.deletable !== false) {
38
+ handleDelete(selected);
39
+ }
40
+ }
41
+ else {
36
42
  onSelect && onSelect(selected);
37
43
  onChangeSelected && onChangeSelected(selectedItems.concat(selected));
38
- },
44
+ }
45
+ }, [handleDelete, onChangeSelected, onSelect, selectedItems]);
46
+ const { renderListBox, activeOption, handleKeyDown: handleListBoxKeyDown, listBoxId, listBoxRef, } = useListBox({
47
+ options,
48
+ onAdd,
49
+ onSelect: handleSelect,
39
50
  isExpanded: isFocused,
40
- isAddable: creatable && !!inputValue && !isDuplicate,
41
- isDuplicate: creatable && !!inputValue && isDuplicate && !hasSelectableExactMatch,
42
- hasNoMatch: (!creatable && filteredItems.length === 0) ||
43
- (creatable && filteredItems.length === 0 && !inputValue),
44
51
  isLoading,
45
- classNames: classNames.listBox,
52
+ triggerRef: outerRef,
46
53
  });
54
+ const { deletionButtonRefs, inputRef, focusPrevDeletionButton, focusNextDeletionButton, resetDeletionButtonFocus, } = useFocusControl(selectedItems.length);
47
55
  const focus = useCallback(() => {
48
56
  onFocus && onFocus();
49
57
  setIsFocused(true);
50
- resetActiveOptionIndex();
51
- }, [onFocus, resetActiveOptionIndex]);
58
+ }, [onFocus]);
52
59
  const blur = useCallback(() => {
53
60
  if (!isFocused)
54
61
  return;
55
62
  onBlur && onBlur();
56
63
  setIsFocused(false);
57
- }, [isFocused, onBlur]);
64
+ resetDeletionButtonFocus();
65
+ }, [isFocused, onBlur, resetDeletionButtonFocus]);
58
66
  const caretIconColor = useMemo(() => {
59
67
  if (isFocused)
60
68
  return theme.color.TEXT_BLACK;
@@ -62,9 +70,7 @@ export function MultiComboBox({ items, selectedItems, name, disabled = false, er
62
70
  return theme.color.TEXT_DISABLED;
63
71
  return theme.color.TEXT_GREY;
64
72
  }, [disabled, isFocused, theme]);
65
- useOuterClick([outerRef, listBoxRef], useCallback(() => {
66
- blur();
67
- }, [blur]));
73
+ useOuterClick([outerRef, listBoxRef], blur);
68
74
  useLayoutEffect(() => {
69
75
  if (!isInputControlled) {
70
76
  setUncontrolledInputValue('');
@@ -72,35 +78,76 @@ export function MultiComboBox({ items, selectedItems, name, disabled = false, er
72
78
  if (isFocused && inputRef.current) {
73
79
  inputRef.current.focus();
74
80
  }
75
- }, [isFocused, isInputControlled, selectedItems]);
76
- useLayoutEffect(() => {
77
- // ドロップダウン表示時に位置を計算する
78
- if (outerRef.current && isFocused) {
79
- calculateDropdownRect(outerRef.current);
81
+ }, [inputRef, isFocused, isInputControlled, selectedItems]);
82
+ const handleKeyDown = useCallback((e) => {
83
+ if (isComposing) {
84
+ return;
80
85
  }
81
- // 選択済みアイテムによってコンボボックスの高さが変わりうるので selectedItems を依存に含める
82
- }, [calculateDropdownRect, isFocused, selectedItems]);
83
- return (React.createElement(Container, { ...props, themes: theme, width: width, ref: outerRef, className: `${className} ${classNames.wrapper}`, onClick: (e) => {
84
- if (!hasParentElementByClassName(e.target, classNames.deleteButton) &&
85
- !disabled &&
86
- !isFocused) {
87
- focus();
88
- }
89
- }, onKeyDown: (e) => {
90
- if (e.key === 'Escape' || e.key === 'Esc') {
91
- e.stopPropagation();
92
- blur();
86
+ else if (e.key === 'Escape' || e.key === 'Esc') {
87
+ e.stopPropagation();
88
+ blur();
89
+ }
90
+ else if (e.key === 'Tab') {
91
+ if (isFocused) {
92
+ // フォーカスがコンポーネントを抜けるように先に input をフォーカスしておく
93
+ inputRef.current?.focus();
93
94
  }
94
- }, role: "combobox", "aria-owns": aria.listBoxId, "aria-haspopup": "listbox", "aria-expanded": isFocused, "aria-invalid": error || undefined, "aria-disabled": disabled },
95
- React.createElement(InputArea, { themes: theme },
96
- React.createElement(List, { themes: theme },
97
- selectedItems.map((selectedItem) => (React.createElement("li", { key: selectedItem.label },
98
- React.createElement(MultiSelectedItem, { item: selectedItem, disabled: disabled, onDelete: () => {
99
- onDelete && onDelete(selectedItem);
100
- onChangeSelected &&
101
- onChangeSelected(selectedItems.filter((selected) => selected.label !== selectedItem.label ||
102
- selected.value !== selectedItem.value));
103
- }, enableEllipsis: selectedItemEllipsis })))),
95
+ blur();
96
+ }
97
+ else if (e.key === 'Left' || e.key === 'ArrowLeft') {
98
+ e.stopPropagation();
99
+ focusPrevDeletionButton();
100
+ }
101
+ else if (e.key === 'Right' || e.key === 'ArrowRight') {
102
+ e.stopPropagation();
103
+ focusNextDeletionButton();
104
+ }
105
+ else {
106
+ e.stopPropagation();
107
+ inputRef.current?.focus();
108
+ resetDeletionButtonFocus();
109
+ }
110
+ handleListBoxKeyDown(e);
111
+ }, [
112
+ blur,
113
+ focusNextDeletionButton,
114
+ focusPrevDeletionButton,
115
+ handleListBoxKeyDown,
116
+ inputRef,
117
+ isComposing,
118
+ isFocused,
119
+ resetDeletionButtonFocus,
120
+ ]);
121
+ const handleInputKeyDown = useCallback((e) => {
122
+ if (e.key === 'Down' || e.key === 'ArrowDown' || e.key === 'Up' || e.key === 'ArrowUp') {
123
+ // 上下キー入力はリストボックスの activeDescendant の移動に用いるため、input 内では作用させない
124
+ e.preventDefault();
125
+ }
126
+ }, []);
127
+ const contextValue = useMemo(() => ({
128
+ listBoxClassNames: classNames.listBox,
129
+ }), [classNames.listBox]);
130
+ const wrapperClassNames = [
131
+ className,
132
+ isFocused && 'focused',
133
+ error && 'invalid',
134
+ disabled && 'disabled',
135
+ classNames.wrapper,
136
+ ]
137
+ .filter((text) => text !== false && text !== '')
138
+ .join(' ');
139
+ const selectedListId = useId();
140
+ return (React.createElement(ComboBoxContext.Provider, { value: contextValue },
141
+ React.createElement(Container, { ...props, themes: theme, width: width, ref: outerRef, className: wrapperClassNames, onClick: (e) => {
142
+ if (!hasParentElementByClassName(e.target, classNames.deleteButton) &&
143
+ !disabled &&
144
+ !isFocused) {
145
+ focus();
146
+ }
147
+ }, onKeyDown: handleKeyDown, role: "group" },
148
+ React.createElement(InputArea, { themes: theme },
149
+ React.createElement(SelectedList, { id: selectedListId, "aria-label": "\u9078\u629E\u6E08\u307F\u30A2\u30A4\u30C6\u30E0", className: classNames.selectedList }, selectedItems.map((selectedItem, i) => (React.createElement("li", { key: `${selectedItem.label}-${selectedItem.value}` },
150
+ React.createElement(MultiSelectedItem, { item: selectedItem, disabled: disabled, onDelete: handleDelete, enableEllipsis: selectedItemEllipsis, buttonRef: deletionButtonRefs[i] }))))),
104
151
  React.createElement(InputWrapper, { className: isFocused ? undefined : 'hidden' },
105
152
  React.createElement(Input, { type: "text", name: name, value: inputValue, disabled: disabled, ref: inputRef, themes: theme, onChange: (e) => {
106
153
  if (onChange)
@@ -111,24 +158,15 @@ export function MultiComboBox({ items, selectedItems, name, disabled = false, er
111
158
  setUncontrolledInputValue(e.currentTarget.value);
112
159
  }
113
160
  }, onFocus: () => {
161
+ resetDeletionButtonFocus();
114
162
  if (!isFocused) {
115
163
  focus();
116
164
  }
117
- }, onCompositionStart: () => setIsComposing(true), onCompositionEnd: () => setIsComposing(false), onKeyDown: (e) => {
118
- if (isComposing) {
119
- return;
120
- }
121
- if (e.key === 'Tab') {
122
- blur();
123
- return;
124
- }
125
- handleInputKeyDown(e);
126
- }, autoComplete: "off", "aria-activedescendant": aria.activeDescendant, "aria-autocomplete": "list", "aria-controls": aria.listBoxId, className: classNames.input })),
127
- selectedItems.length === 0 && placeholder && !isFocused && (React.createElement("li", null,
128
- React.createElement(Placeholder, { themes: theme, className: classNames.placeholder }, placeholder))))),
129
- React.createElement(Suffix, { themes: theme },
130
- React.createElement(FaCaretDownIcon, { color: caretIconColor })),
131
- renderListBox()));
165
+ }, onCompositionStart: () => setIsComposing(true), onCompositionEnd: () => setIsComposing(false), onKeyDown: handleInputKeyDown, autoComplete: "off", tabIndex: 0, role: "combobox", "aria-activedescendant": activeOption?.id, "aria-controls": `${listBoxId} ${selectedListId}`, "aria-haspopup": "listbox", "aria-expanded": isFocused, "aria-invalid": error || undefined, "aria-disabled": disabled, "aria-autocomplete": "list", className: classNames.input })),
166
+ selectedItems.length === 0 && placeholder && !isFocused && (React.createElement(Placeholder, { themes: theme, className: classNames.placeholder }, placeholder))),
167
+ React.createElement(Suffix, { themes: theme },
168
+ React.createElement(FaCaretDownIcon, { color: caretIconColor })),
169
+ renderListBox())));
132
170
  }
133
171
  const Container = styled.div `
134
172
  ${({ themes, width }) => {
@@ -144,15 +182,15 @@ const Container = styled.div `
144
182
  background-color: ${color.WHITE};
145
183
  cursor: text;
146
184
 
147
- &[aria-expanded='true'] {
185
+ &.focused {
148
186
  box-shadow: ${shadow.OUTLINE};
149
187
  }
150
188
 
151
- &[aria-invalid='true'] {
189
+ &.invalid {
152
190
  border-color: ${color.DANGER};
153
191
  }
154
192
 
155
- &[aria-disabled='true'] {
193
+ &.disabled {
156
194
  background-color: ${color.COLUMN};
157
195
  cursor: not-allowed;
158
196
  }
@@ -162,33 +200,24 @@ const Container = styled.div `
162
200
  const InputArea = styled.div `
163
201
  ${({ themes: { spacingByChar } }) => css `
164
202
  flex: 1;
165
- overflow-y: auto;
203
+ display: flex;
204
+ flex-wrap: wrap;
205
+ gap: ${spacingByChar(0.5)};
206
+ min-height: calc(1em + ${spacingByChar(0.5)} * 2);
166
207
  max-height: 300px;
167
- padding-left: ${spacingByChar(0.5)};
208
+ margin: ${spacingByChar(0.25)} ${spacingByChar(0.5)};
209
+ overflow-y: auto;
168
210
  `}
169
211
  `;
170
- const smallMargin = 6.5;
171
- const borderWidth = 1;
172
- const List = styled.ul `
173
- ${({ themes }) => {
174
- const { fontSize: { pxToRem }, spacingByChar, } = themes;
175
- return css `
176
- display: flex;
177
- flex-wrap: wrap;
178
- margin: ${pxToRem(smallMargin - borderWidth)} 0 0;
179
- padding: 0;
180
- list-style: none;
181
-
182
- > li {
183
- min-height: 27px;
184
- max-width: calc(100% - ${spacingByChar(0.5)});
185
- margin-right: ${spacingByChar(0.5)};
186
- margin-bottom: ${pxToRem(smallMargin - borderWidth)};
187
- }
188
- `;
189
- }}
212
+ const SelectedList = styled.ul `
213
+ display: contents;
214
+ list-style: none;
215
+ li {
216
+ /** 選択済みアイテムのラベルの省略表示のために幅を計算させる */
217
+ min-width: 0;
218
+ }
190
219
  `;
191
- const InputWrapper = styled.li `
220
+ const InputWrapper = styled.div `
192
221
  &.hidden {
193
222
  position: absolute;
194
223
  opacity: 0;
@@ -196,13 +225,16 @@ const InputWrapper = styled.li `
196
225
  }
197
226
 
198
227
  flex: 1;
228
+ display: flex;
229
+ align-items: center;
199
230
  `;
200
231
  const Input = styled.input `
201
232
  ${({ themes }) => {
202
- const { fontSize } = themes;
233
+ const { fontSize, spacingByChar } = themes;
203
234
  return css `
204
235
  min-width: 80px;
205
236
  width: 100%;
237
+ min-height: calc(1em + ${spacingByChar(0.5)} * 2);
206
238
  border: none;
207
239
  font-size: ${fontSize.M};
208
240
  box-sizing: border-box;
@@ -218,9 +250,9 @@ const Placeholder = styled.p `
218
250
  const { color, fontSize } = themes;
219
251
  return css `
220
252
  margin: 0;
253
+ align-self: center;
221
254
  color: ${color.TEXT_GREY};
222
255
  font-size: ${fontSize.M};
223
- line-height: 25px;
224
256
  `;
225
257
  }}
226
258
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiComboBox.js","sourceRoot":"","sources":["../../../src/components/ComboBox/MultiComboBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiComboBox.js","sourceRoot":"","sources":["../../../src/components/ComboBox/MultiComboBox.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
- /// <reference types="react" />
2
- import { Props as InnerProps } from './MultiSelectedItemInner';
3
- declare type Props<T> = Omit<InnerProps<T>, 'onEllipsis'>;
4
- export declare function MultiSelectedItem<T>(props: Props<T>): JSX.Element;
5
- export {};
1
+ import { RefObject } from 'react';
2
+ import { ComboBoxItem } from './types';
3
+ export declare type Props<T> = {
4
+ item: ComboBoxItem<T> & {
5
+ deletable?: boolean;
6
+ };
7
+ disabled: boolean;
8
+ onDelete: (item: ComboBoxItem<T>) => void;
9
+ enableEllipsis?: boolean;
10
+ buttonRef: RefObject<HTMLButtonElement>;
11
+ };
12
+ export declare function MultiSelectedItem<T>({ item, disabled, onDelete, enableEllipsis, buttonRef, }: Props<T>): JSX.Element;