smarthr-ui 99.8.0 → 99.9.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 (364) hide show
  1. package/lib/components/AccordionPanel/client/AccordionPanelTrigger.cjs.map +1 -1
  2. package/lib/components/AccordionPanel/client/AccordionPanelTrigger.d.ts +6 -4
  3. package/lib/components/AccordionPanel/client/AccordionPanelTrigger.js.map +1 -1
  4. package/lib/components/AppHeader/components/common/AppLauncherFeatures.cjs +1 -2
  5. package/lib/components/AppHeader/components/common/AppLauncherFeatures.cjs.map +1 -1
  6. package/lib/components/AppHeader/components/common/AppLauncherFeatures.js +1 -2
  7. package/lib/components/AppHeader/components/common/AppLauncherFeatures.js.map +1 -1
  8. package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.cjs +3 -3
  9. package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.cjs.map +1 -1
  10. package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.d.ts +1 -1
  11. package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.js +3 -3
  12. package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.js.map +1 -1
  13. package/lib/components/AppHeader/components/desktop/AppLauncher.cjs +1 -1
  14. package/lib/components/AppHeader/components/desktop/AppLauncher.cjs.map +1 -1
  15. package/lib/components/AppHeader/components/desktop/AppLauncher.js +1 -1
  16. package/lib/components/AppHeader/components/desktop/AppLauncher.js.map +1 -1
  17. package/lib/components/AppHeader/components/desktop/UserInfo.cjs +0 -1
  18. package/lib/components/AppHeader/components/desktop/UserInfo.cjs.map +1 -1
  19. package/lib/components/AppHeader/components/desktop/UserInfo.d.ts +0 -3
  20. package/lib/components/AppHeader/components/desktop/UserInfo.js +1 -1
  21. package/lib/components/AppHeader/components/desktop/UserInfo.js.map +1 -1
  22. package/lib/components/AppHeader/components/mobile/AppLauncher.cjs +1 -1
  23. package/lib/components/AppHeader/components/mobile/AppLauncher.cjs.map +1 -1
  24. package/lib/components/AppHeader/components/mobile/AppLauncher.js +1 -1
  25. package/lib/components/AppHeader/components/mobile/AppLauncher.js.map +1 -1
  26. package/lib/components/AppHeader/components/mobile/Menu.cjs +2 -3
  27. package/lib/components/AppHeader/components/mobile/Menu.cjs.map +1 -1
  28. package/lib/components/AppHeader/components/mobile/Menu.js +2 -3
  29. package/lib/components/AppHeader/components/mobile/Menu.js.map +1 -1
  30. package/lib/components/AppHeader/components/mobile/MenuDialog.cjs +0 -1
  31. package/lib/components/AppHeader/components/mobile/MenuDialog.cjs.map +1 -1
  32. package/lib/components/AppHeader/components/mobile/MenuDialog.d.ts +1 -4
  33. package/lib/components/AppHeader/components/mobile/MenuDialog.js +3 -3
  34. package/lib/components/AppHeader/components/mobile/MenuDialog.js.map +1 -1
  35. package/lib/components/AppHeader/hooks/useAppLauncher.cjs +0 -1
  36. package/lib/components/AppHeader/hooks/useAppLauncher.cjs.map +1 -1
  37. package/lib/components/AppHeader/hooks/useAppLauncher.d.ts +0 -1
  38. package/lib/components/AppHeader/hooks/useAppLauncher.js +1 -1
  39. package/lib/components/AppHeader/hooks/useAppLauncher.js.map +1 -1
  40. package/lib/components/AppNavi/index.d.ts +4 -12
  41. package/lib/components/BottomFixedArea/BottomFixedArea.cjs +22 -2
  42. package/lib/components/BottomFixedArea/BottomFixedArea.cjs.map +1 -1
  43. package/lib/components/BottomFixedArea/BottomFixedArea.d.ts +1 -1
  44. package/lib/components/BottomFixedArea/BottomFixedArea.js +21 -1
  45. package/lib/components/BottomFixedArea/BottomFixedArea.js.map +1 -1
  46. package/lib/components/Browser/Browser.cjs +1 -0
  47. package/lib/components/Browser/Browser.cjs.map +1 -1
  48. package/lib/components/Browser/Browser.js +1 -0
  49. package/lib/components/Browser/Browser.js.map +1 -1
  50. package/lib/components/Browser/models/RootNode.cjs.map +1 -1
  51. package/lib/components/Browser/models/RootNode.d.ts +2 -1
  52. package/lib/components/Browser/models/RootNode.js.map +1 -1
  53. package/lib/components/Browser/models/index.d.ts +1 -2
  54. package/lib/components/Button/AnchorButton.cjs +0 -1
  55. package/lib/components/Button/AnchorButton.cjs.map +1 -1
  56. package/lib/components/Button/AnchorButton.js +0 -1
  57. package/lib/components/Button/AnchorButton.js.map +1 -1
  58. package/lib/components/Button/Button.cjs +2 -2
  59. package/lib/components/Button/Button.cjs.map +1 -1
  60. package/lib/components/Button/Button.d.ts +1 -1
  61. package/lib/components/Button/Button.js +1 -1
  62. package/lib/components/Button/Button.js.map +1 -1
  63. package/lib/components/Button/LoadingStatus.cjs +17 -0
  64. package/lib/components/Button/LoadingStatus.cjs.map +1 -0
  65. package/lib/components/Button/LoadingStatus.js +15 -0
  66. package/lib/components/Button/LoadingStatus.js.map +1 -0
  67. package/lib/components/Button/client/ActualButton.cjs.map +1 -1
  68. package/lib/components/Button/client/ActualButton.d.ts +1 -1
  69. package/lib/components/Button/client/ActualButton.js.map +1 -1
  70. package/lib/components/Button/client/index.cjs +0 -2
  71. package/lib/components/Button/client/index.cjs.map +1 -1
  72. package/lib/components/Button/client/index.d.ts +0 -1
  73. package/lib/components/Button/client/index.js +0 -1
  74. package/lib/components/Button/client/index.js.map +1 -1
  75. package/lib/components/Button/index.d.ts +0 -1
  76. package/lib/components/Button/types.d.ts +1 -2
  77. package/lib/components/Checkbox/Checkbox.cjs.map +1 -1
  78. package/lib/components/Checkbox/Checkbox.d.ts +2 -1
  79. package/lib/components/Checkbox/Checkbox.js.map +1 -1
  80. package/lib/components/Checkbox/client/ActualCheckbox.cjs.map +1 -1
  81. package/lib/components/Checkbox/client/ActualCheckbox.d.ts +2 -1
  82. package/lib/components/Checkbox/client/ActualCheckbox.js.map +1 -1
  83. package/lib/components/Checkbox/index.d.ts +1 -1
  84. package/lib/components/Combobox/client/MultiCombobox/MultiCombobox.cjs +32 -20
  85. package/lib/components/Combobox/client/MultiCombobox/MultiCombobox.cjs.map +1 -1
  86. package/lib/components/Combobox/client/MultiCombobox/MultiCombobox.js +33 -21
  87. package/lib/components/Combobox/client/MultiCombobox/MultiCombobox.js.map +1 -1
  88. package/lib/components/Combobox/client/MultiCombobox/MultiSelectedItem.cjs.map +1 -1
  89. package/lib/components/Combobox/client/MultiCombobox/MultiSelectedItem.d.ts +2 -1
  90. package/lib/components/Combobox/client/MultiCombobox/MultiSelectedItem.js.map +1 -1
  91. package/lib/components/Combobox/client/useListbox.cjs +7 -4
  92. package/lib/components/Combobox/client/useListbox.cjs.map +1 -1
  93. package/lib/components/Combobox/client/useListbox.js +7 -4
  94. package/lib/components/Combobox/client/useListbox.js.map +1 -1
  95. package/lib/components/Combobox/client/useOptions.cjs +1 -0
  96. package/lib/components/Combobox/client/useOptions.cjs.map +1 -1
  97. package/lib/components/Combobox/client/useOptions.js +1 -0
  98. package/lib/components/Combobox/client/useOptions.js.map +1 -1
  99. package/lib/components/DatePicker/client/DatePicker/DatePicker.cjs +0 -1
  100. package/lib/components/DatePicker/client/DatePicker/DatePicker.cjs.map +1 -1
  101. package/lib/components/DatePicker/client/DatePicker/DatePicker.d.ts +0 -1
  102. package/lib/components/DatePicker/client/DatePicker/DatePicker.js +1 -1
  103. package/lib/components/DatePicker/client/DatePicker/DatePicker.js.map +1 -1
  104. package/lib/components/DatePicker/client/Portal.cjs +2 -3
  105. package/lib/components/DatePicker/client/Portal.cjs.map +1 -1
  106. package/lib/components/DatePicker/client/Portal.js +2 -3
  107. package/lib/components/DatePicker/client/Portal.js.map +1 -1
  108. package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.cjs.map +1 -1
  109. package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.d.ts +10 -13
  110. package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.js.map +1 -1
  111. package/lib/components/Dialog/ControlledActionDialog/ControlledActionDialog.cjs +12 -9
  112. package/lib/components/Dialog/ControlledActionDialog/ControlledActionDialog.cjs.map +1 -1
  113. package/lib/components/Dialog/ControlledActionDialog/ControlledActionDialog.d.ts +3 -2
  114. package/lib/components/Dialog/ControlledActionDialog/ControlledActionDialog.js +12 -9
  115. package/lib/components/Dialog/ControlledActionDialog/ControlledActionDialog.js.map +1 -1
  116. package/lib/components/Dialog/ControlledFormDialog/ControlledFormDialog.cjs.map +1 -1
  117. package/lib/components/Dialog/ControlledFormDialog/ControlledFormDialog.d.ts +5 -2
  118. package/lib/components/Dialog/ControlledFormDialog/ControlledFormDialog.js.map +1 -1
  119. package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.cjs.map +1 -1
  120. package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.d.ts +7 -12
  121. package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.js.map +1 -1
  122. package/lib/components/Dialog/ControlledMessageDialog/ControlledMessageDialog.cjs.map +1 -1
  123. package/lib/components/Dialog/ControlledMessageDialog/ControlledMessageDialog.d.ts +2 -1
  124. package/lib/components/Dialog/ControlledMessageDialog/ControlledMessageDialog.js.map +1 -1
  125. package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.cjs.map +1 -1
  126. package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.d.ts +7 -8
  127. package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.js.map +1 -1
  128. package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.cjs +22 -5
  129. package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.cjs.map +1 -1
  130. package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.d.ts +28 -6
  131. package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.js +23 -6
  132. package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.js.map +1 -1
  133. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogContentInner.cjs +1 -3
  134. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogContentInner.cjs.map +1 -1
  135. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogContentInner.d.ts +8 -11
  136. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogContentInner.js +1 -3
  137. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogContentInner.js.map +1 -1
  138. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogItem.cjs.map +1 -1
  139. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogItem.d.ts +1 -1
  140. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogItem.js.map +1 -1
  141. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogProvider.cjs.map +1 -1
  142. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogProvider.d.ts +1 -6
  143. package/lib/components/Dialog/ControlledStepFormDialog/StepFormDialogProvider.js.map +1 -1
  144. package/lib/components/Dialog/ControlledStepFormDialog/type.d.ts +6 -13
  145. package/lib/components/Dialog/Dialog.cjs.map +1 -1
  146. package/lib/components/Dialog/Dialog.d.ts +3 -3
  147. package/lib/components/Dialog/Dialog.js.map +1 -1
  148. package/lib/components/Dialog/DialogBody.cjs.map +1 -1
  149. package/lib/components/Dialog/DialogBody.d.ts +5 -3
  150. package/lib/components/Dialog/DialogBody.js.map +1 -1
  151. package/lib/components/Dialog/DialogContent.cjs.map +1 -1
  152. package/lib/components/Dialog/DialogContent.d.ts +3 -3
  153. package/lib/components/Dialog/DialogContent.js.map +1 -1
  154. package/lib/components/Dialog/DialogContentInner.cjs +2 -2
  155. package/lib/components/Dialog/DialogContentInner.cjs.map +1 -1
  156. package/lib/components/Dialog/DialogContentInner.d.ts +5 -9
  157. package/lib/components/Dialog/DialogContentInner.js +2 -2
  158. package/lib/components/Dialog/DialogContentInner.js.map +1 -1
  159. package/lib/components/Dialog/DialogHeading.cjs.map +1 -1
  160. package/lib/components/Dialog/DialogHeading.d.ts +2 -1
  161. package/lib/components/Dialog/DialogHeading.js.map +1 -1
  162. package/lib/components/Dialog/FocusTrap.cjs.map +1 -1
  163. package/lib/components/Dialog/FocusTrap.d.ts +3 -4
  164. package/lib/components/Dialog/FocusTrap.js.map +1 -1
  165. package/lib/components/Dialog/ModelessDialog/ModelessDialog.cjs.map +1 -1
  166. package/lib/components/Dialog/ModelessDialog/ModelessDialog.d.ts +3 -4
  167. package/lib/components/Dialog/ModelessDialog/ModelessDialog.js.map +1 -1
  168. package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.cjs +1 -3
  169. package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.cjs.map +1 -1
  170. package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.js +1 -3
  171. package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.js.map +1 -1
  172. package/lib/components/Dialog/types.d.ts +6 -8
  173. package/lib/components/Dialog/useDialogPortal.cjs +1 -0
  174. package/lib/components/Dialog/useDialogPortal.cjs.map +1 -1
  175. package/lib/components/Dialog/useDialogPortal.js +1 -0
  176. package/lib/components/Dialog/useDialogPortal.js.map +1 -1
  177. package/lib/components/Dropdown/FilterDropdown/FilterDropdown.cjs.map +1 -1
  178. package/lib/components/Dropdown/FilterDropdown/FilterDropdown.d.ts +2 -2
  179. package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
  180. package/lib/components/Dropdown/client/Dropdown.cjs +18 -26
  181. package/lib/components/Dropdown/client/Dropdown.cjs.map +1 -1
  182. package/lib/components/Dropdown/client/Dropdown.d.ts +2 -4
  183. package/lib/components/Dropdown/client/Dropdown.js +18 -26
  184. package/lib/components/Dropdown/client/Dropdown.js.map +1 -1
  185. package/lib/components/Dropdown/client/DropdownContent.cjs +6 -2
  186. package/lib/components/Dropdown/client/DropdownContent.cjs.map +1 -1
  187. package/lib/components/Dropdown/client/DropdownContent.js +6 -2
  188. package/lib/components/Dropdown/client/DropdownContent.js.map +1 -1
  189. package/lib/components/Dropdown/client/DropdownMenuButton/DropdownMenuButton.cjs.map +1 -1
  190. package/lib/components/Dropdown/client/DropdownMenuButton/DropdownMenuButton.d.ts +2 -2
  191. package/lib/components/Dropdown/client/DropdownMenuButton/DropdownMenuButton.js.map +1 -1
  192. package/lib/components/Dropdown/client/index.cjs +0 -1
  193. package/lib/components/Dropdown/client/index.cjs.map +1 -1
  194. package/lib/components/Dropdown/client/index.d.ts +1 -1
  195. package/lib/components/Dropdown/client/index.js +1 -1
  196. package/lib/components/FileViewer/client/buildCustomTextRenderer.cjs +0 -1
  197. package/lib/components/FileViewer/client/buildCustomTextRenderer.cjs.map +1 -1
  198. package/lib/components/FileViewer/client/buildCustomTextRenderer.d.ts +0 -1
  199. package/lib/components/FileViewer/client/buildCustomTextRenderer.js +1 -1
  200. package/lib/components/FileViewer/client/buildCustomTextRenderer.js.map +1 -1
  201. package/lib/components/FormGroup/client/type.d.ts +4 -3
  202. package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.cjs.map +1 -1
  203. package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.d.ts +1 -1
  204. package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
  205. package/lib/components/Heading/client/Heading.cjs.map +1 -1
  206. package/lib/components/Heading/client/Heading.d.ts +6 -35
  207. package/lib/components/Heading/client/Heading.js.map +1 -1
  208. package/lib/components/Heading/client/PageHeading/PageHeading.cjs +3 -5
  209. package/lib/components/Heading/client/PageHeading/PageHeading.cjs.map +1 -1
  210. package/lib/components/Heading/client/PageHeading/PageHeading.d.ts +6 -5
  211. package/lib/components/Heading/client/PageHeading/PageHeading.js +3 -5
  212. package/lib/components/Heading/client/PageHeading/PageHeading.js.map +1 -1
  213. package/lib/components/Heading/client/index.d.ts +0 -1
  214. package/lib/components/Heading/index.d.ts +0 -1
  215. package/lib/components/Icon/index.d.ts +5 -1
  216. package/lib/components/InformationPanel/client/InformationPanel.cjs.map +1 -1
  217. package/lib/components/InformationPanel/client/InformationPanel.d.ts +5 -5
  218. package/lib/components/InformationPanel/client/InformationPanel.js.map +1 -1
  219. package/lib/components/LineClamp/LineClamp.cjs +9 -1
  220. package/lib/components/LineClamp/LineClamp.cjs.map +1 -1
  221. package/lib/components/LineClamp/LineClamp.d.ts +4 -0
  222. package/lib/components/LineClamp/LineClamp.js +9 -1
  223. package/lib/components/LineClamp/LineClamp.js.map +1 -1
  224. package/lib/components/Panel/Groupbox/Groupbox.cjs +4 -0
  225. package/lib/components/Panel/Groupbox/Groupbox.cjs.map +1 -1
  226. package/lib/components/Panel/Groupbox/Groupbox.d.ts +3 -0
  227. package/lib/components/Panel/Groupbox/Groupbox.js +4 -1
  228. package/lib/components/Panel/Groupbox/Groupbox.js.map +1 -1
  229. package/lib/components/Panel/Groupbox/index.cjs +1 -0
  230. package/lib/components/Panel/Groupbox/index.cjs.map +1 -1
  231. package/lib/components/Panel/Groupbox/index.d.ts +1 -1
  232. package/lib/components/Panel/Groupbox/index.js +1 -1
  233. package/lib/components/Panel/Panel.cjs +4 -0
  234. package/lib/components/Panel/Panel.cjs.map +1 -1
  235. package/lib/components/Panel/Panel.d.ts +4 -2
  236. package/lib/components/Panel/Panel.js +4 -1
  237. package/lib/components/Panel/Panel.js.map +1 -1
  238. package/lib/components/Panel/index.cjs +2 -1
  239. package/lib/components/Panel/index.cjs.map +1 -1
  240. package/lib/components/Panel/index.d.ts +2 -3
  241. package/lib/components/Panel/index.js +2 -2
  242. package/lib/components/Portal/client/Portal.cjs +38 -0
  243. package/lib/components/Portal/client/Portal.cjs.map +1 -0
  244. package/lib/components/Portal/client/Portal.d.ts +7 -0
  245. package/lib/components/Portal/client/Portal.js +36 -0
  246. package/lib/components/Portal/client/Portal.js.map +1 -0
  247. package/lib/components/Portal/client/index.cjs +8 -0
  248. package/lib/components/Portal/client/index.cjs.map +1 -0
  249. package/lib/components/Portal/client/index.d.ts +1 -0
  250. package/lib/components/Portal/client/index.js +2 -0
  251. package/lib/components/Portal/client/index.js.map +1 -0
  252. package/lib/components/Portal/index.cjs +10 -0
  253. package/lib/components/Portal/index.cjs.map +1 -0
  254. package/lib/components/Portal/index.d.ts +2 -0
  255. package/lib/components/Portal/index.js +3 -0
  256. package/lib/components/Portal/index.js.map +1 -0
  257. package/lib/components/Portal/isChildPortal.cjs +23 -0
  258. package/lib/components/Portal/isChildPortal.cjs.map +1 -0
  259. package/lib/components/Portal/isChildPortal.d.ts +5 -0
  260. package/lib/components/Portal/isChildPortal.js +21 -0
  261. package/lib/components/Portal/isChildPortal.js.map +1 -0
  262. package/lib/components/ResponseMessage/ResponseMessage.cjs +0 -1
  263. package/lib/components/ResponseMessage/ResponseMessage.cjs.map +1 -1
  264. package/lib/components/ResponseMessage/ResponseMessage.d.ts +0 -57
  265. package/lib/components/ResponseMessage/ResponseMessage.js +1 -1
  266. package/lib/components/ResponseMessage/ResponseMessage.js.map +1 -1
  267. package/lib/components/SegmentedControl/client/SegmentedControl.cjs.map +1 -1
  268. package/lib/components/SegmentedControl/client/SegmentedControl.d.ts +1 -1
  269. package/lib/components/SegmentedControl/client/SegmentedControl.js.map +1 -1
  270. package/lib/components/SegmentedControl/client/index.d.ts +1 -1
  271. package/lib/components/SegmentedControl/index.d.ts +1 -1
  272. package/lib/components/Select/Select.cjs.map +1 -1
  273. package/lib/components/Select/Select.d.ts +1 -1
  274. package/lib/components/Select/Select.js.map +1 -1
  275. package/lib/components/Select/client/index.d.ts +1 -2
  276. package/lib/components/Stepper/index.d.ts +0 -1
  277. package/lib/components/Table/Td.cjs.map +1 -1
  278. package/lib/components/Table/Td.d.ts +2 -17
  279. package/lib/components/Table/Td.js.map +1 -1
  280. package/lib/components/Table/TdCheckbox.cjs.map +1 -1
  281. package/lib/components/Table/TdCheckbox.d.ts +2 -2
  282. package/lib/components/Table/TdCheckbox.js.map +1 -1
  283. package/lib/components/Table/Th.cjs.map +1 -1
  284. package/lib/components/Table/Th.d.ts +2 -3
  285. package/lib/components/Table/Th.js.map +1 -1
  286. package/lib/components/Table/ThCheckbox.cjs.map +1 -1
  287. package/lib/components/Table/ThCheckbox.d.ts +2 -2
  288. package/lib/components/Table/ThCheckbox.js.map +1 -1
  289. package/lib/components/Text/Text.cjs +11 -5
  290. package/lib/components/Text/Text.cjs.map +1 -1
  291. package/lib/components/Text/Text.d.ts +12 -7
  292. package/lib/components/Text/Text.js +12 -6
  293. package/lib/components/Text/Text.js.map +1 -1
  294. package/lib/components/Text/client/TextOverflowTooltip.cjs +66 -0
  295. package/lib/components/Text/client/TextOverflowTooltip.cjs.map +1 -0
  296. package/lib/components/Text/client/TextOverflowTooltip.d.ts +7 -0
  297. package/lib/components/Text/client/TextOverflowTooltip.js +64 -0
  298. package/lib/components/Text/client/TextOverflowTooltip.js.map +1 -0
  299. package/lib/components/Text/client/index.cjs +8 -0
  300. package/lib/components/Text/client/index.cjs.map +1 -0
  301. package/lib/components/Text/client/index.d.ts +1 -0
  302. package/lib/components/Text/client/index.js +2 -0
  303. package/lib/components/Text/client/index.js.map +1 -0
  304. package/lib/components/Text/index.d.ts +0 -1
  305. package/lib/hooks/client/useAreaClickCallbackRef.cjs +1 -4
  306. package/lib/hooks/client/useAreaClickCallbackRef.cjs.map +1 -1
  307. package/lib/hooks/client/useAreaClickCallbackRef.js +1 -4
  308. package/lib/hooks/client/useAreaClickCallbackRef.js.map +1 -1
  309. package/lib/hooks/client/useEnvironment/useEnvironment.cjs.map +1 -1
  310. package/lib/hooks/client/useEnvironment/useEnvironment.js.map +1 -1
  311. package/lib/hooks/client/useEscapeCallbackRef.cjs.map +1 -1
  312. package/lib/hooks/client/useEscapeCallbackRef.js.map +1 -1
  313. package/lib/hooks/client/useSV/index.d.ts +1 -0
  314. package/lib/hooks/client/useTheme.cjs +0 -2
  315. package/lib/hooks/client/useTheme.cjs.map +1 -1
  316. package/lib/hooks/client/useTheme.d.ts +0 -1
  317. package/lib/hooks/client/useTheme.js +1 -2
  318. package/lib/hooks/client/useTheme.js.map +1 -1
  319. package/lib/index.cjs +2 -3
  320. package/lib/index.cjs.map +1 -1
  321. package/lib/index.d.ts +66 -1
  322. package/lib/index.js +2 -3
  323. package/lib/index.js.map +1 -1
  324. package/lib/intl/useIntl.cjs.map +1 -1
  325. package/lib/intl/useIntl.d.ts +1 -1
  326. package/lib/intl/useIntl.js.map +1 -1
  327. package/lib/themes/createBackgroundColor.cjs +0 -1
  328. package/lib/themes/createBackgroundColor.cjs.map +1 -1
  329. package/lib/themes/createBackgroundColor.d.ts +0 -1
  330. package/lib/themes/createBackgroundColor.js +1 -1
  331. package/lib/themes/createBackgroundColor.js.map +1 -1
  332. package/lib/themes/createSpacing.cjs +1 -4
  333. package/lib/themes/createSpacing.cjs.map +1 -1
  334. package/lib/themes/createSpacing.d.ts +2 -1
  335. package/lib/themes/createSpacing.js +2 -4
  336. package/lib/themes/createSpacing.js.map +1 -1
  337. package/lib/themes/index.cjs +0 -2
  338. package/lib/themes/index.cjs.map +1 -1
  339. package/lib/themes/index.d.ts +0 -1
  340. package/lib/themes/index.js +0 -1
  341. package/lib/themes/index.js.map +1 -1
  342. package/lib/types/index.d.ts +1 -1
  343. package/metadata.json +1 -1
  344. package/package.json +7 -7
  345. package/lib/components/BottomFixedArea/helper.cjs +0 -26
  346. package/lib/components/BottomFixedArea/helper.cjs.map +0 -1
  347. package/lib/components/BottomFixedArea/helper.d.ts +0 -2
  348. package/lib/components/BottomFixedArea/helper.js +0 -24
  349. package/lib/components/BottomFixedArea/helper.js.map +0 -1
  350. package/lib/components/Button/client/LoadingStatus.cjs +0 -22
  351. package/lib/components/Button/client/LoadingStatus.cjs.map +0 -1
  352. package/lib/components/Button/client/LoadingStatus.js +0 -20
  353. package/lib/components/Button/client/LoadingStatus.js.map +0 -1
  354. package/lib/components/Table/type.cjs +0 -3
  355. package/lib/components/Table/type.cjs.map +0 -1
  356. package/lib/components/Table/type.d.ts +0 -1
  357. package/lib/components/Table/type.js +0 -2
  358. package/lib/components/Table/type.js.map +0 -1
  359. package/lib/hooks/client/usePortal.cjs +0 -74
  360. package/lib/hooks/client/usePortal.cjs.map +0 -1
  361. package/lib/hooks/client/usePortal.d.ts +0 -10
  362. package/lib/hooks/client/usePortal.js +0 -72
  363. package/lib/hooks/client/usePortal.js.map +0 -1
  364. /package/lib/components/Button/{client/LoadingStatus.d.ts → LoadingStatus.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionPanelTrigger.cjs","sources":["../../../../src/components/AccordionPanel/client/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../../libs/map'\nimport { Heading, type HeadingTagTypes } from '../../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../../Icon'\nimport { Cluster } from '../../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { TextProps } from '../../Text'\n\ntype BaseProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingTagTypes\n}>\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'button'>, keyof BaseProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Panel 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Panel に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n triggerId={triggerId}\n contentId={contentId}\n name={name}\n isExpanded={isExpanded}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n classNames={classNames}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingTagTypes\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading type={headingType} unrecommendedTag={unrecommendedHeadingTag}>\n <button\n {...rest}\n type=\"button\"\n id={triggerId}\n value={name}\n className={classNames.button}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n data-component=\"AccordionHeaderButton\"\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster as=\"span\" align=\"center\" className={classNames.titleWrapper}>\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
1
+ {"version":3,"file":"AccordionPanelTrigger.cjs","sources":["../../../../src/components/AccordionPanel/client/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../../libs/map'\nimport { Heading } from '../../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../../Icon'\nimport { Cluster } from '../../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { Text } from '../../Text'\n\ntype TextProps = ComponentProps<typeof Text>\ntype HeadingProps = ComponentProps<typeof Heading>\n\ntype BaseProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingProps['unrecommendedTag']\n}>\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'button'>, keyof BaseProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Panel 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Panel に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n triggerId={triggerId}\n contentId={contentId}\n name={name}\n isExpanded={isExpanded}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n classNames={classNames}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingProps['unrecommendedTag']\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading type={headingType} unrecommendedTag={unrecommendedHeadingTag}>\n <button\n {...rest}\n type=\"button\"\n id={triggerId}\n value={name}\n className={classNames.button}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n data-component=\"AccordionHeaderButton\"\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster as=\"span\" align=\"center\" className={classNames.titleWrapper}>\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
@@ -1,13 +1,15 @@
1
- import { type ComponentPropsWithoutRef, type FC, type PropsWithChildren } from 'react';
2
- import { type HeadingTagTypes } from '../../Heading';
3
- import type { TextProps } from '../../Text';
1
+ import { type ComponentProps, type ComponentPropsWithoutRef, type FC, type PropsWithChildren } from 'react';
2
+ import { Heading } from '../../Heading';
3
+ import type { Text } from '../../Text';
4
+ type TextProps = ComponentProps<typeof Text>;
5
+ type HeadingProps = ComponentProps<typeof Heading>;
4
6
  type BaseProps = PropsWithChildren<{
5
7
  /** ヘッダ部分のテキストのスタイル */
6
8
  headingType?: Exclude<TextProps['styleType'], 'screenTitle'>;
7
9
  /**
8
10
  * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください
9
11
  */
10
- unrecommendedHeadingTag?: HeadingTagTypes;
12
+ unrecommendedHeadingTag?: HeadingProps['unrecommendedTag'];
11
13
  }>;
12
14
  type Props = BaseProps & Omit<ComponentPropsWithoutRef<'button'>, keyof BaseProps>;
13
15
  export declare const AccordionPanelTrigger: FC<Props>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionPanelTrigger.js","sources":["../../../../src/components/AccordionPanel/client/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../../libs/map'\nimport { Heading, type HeadingTagTypes } from '../../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../../Icon'\nimport { Cluster } from '../../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { TextProps } from '../../Text'\n\ntype BaseProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingTagTypes\n}>\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'button'>, keyof BaseProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Panel 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Panel に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n triggerId={triggerId}\n contentId={contentId}\n name={name}\n isExpanded={isExpanded}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n classNames={classNames}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingTagTypes\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading type={headingType} unrecommendedTag={unrecommendedHeadingTag}>\n <button\n {...rest}\n type=\"button\"\n id={triggerId}\n value={name}\n className={classNames.button}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n data-component=\"AccordionHeaderButton\"\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster as=\"span\" align=\"center\" className={classNames.titleWrapper}>\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
1
+ {"version":3,"file":"AccordionPanelTrigger.js","sources":["../../../../src/components/AccordionPanel/client/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../../libs/map'\nimport { Heading } from '../../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../../Icon'\nimport { Cluster } from '../../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { Text } from '../../Text'\n\ntype TextProps = ComponentProps<typeof Text>\ntype HeadingProps = ComponentProps<typeof Heading>\n\ntype BaseProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingProps['unrecommendedTag']\n}>\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'button'>, keyof BaseProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Panel 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Panel に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Panel_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n triggerId={triggerId}\n contentId={contentId}\n name={name}\n isExpanded={isExpanded}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n classNames={classNames}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingProps['unrecommendedTag']\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading type={headingType} unrecommendedTag={unrecommendedHeadingTag}>\n <button\n {...rest}\n type=\"button\"\n id={triggerId}\n value={name}\n className={classNames.button}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n data-component=\"AccordionHeaderButton\"\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster as=\"span\" align=\"center\" className={classNames.titleWrapper}>\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
@@ -21,7 +21,6 @@ require('../../../Layout/Reel/Reel.cjs');
21
21
  require('../../../Layout/Sidebar/Sidebar.cjs');
22
22
  var components_Layout_Center_Center = require('../../../Layout/Center/Center.cjs');
23
23
  require('../../../Layout/Container/Container.cjs');
24
- var components_LineClamp_LineClamp = require('../../../LineClamp/LineClamp.cjs');
25
24
  var components_Loader_Loader = require('../../../Loader/Loader.cjs');
26
25
  var components_Text_Text = require('../../../Text/Text.cjs');
27
26
  var components_AppHeader_hooks_useMediaQuery = require('../../hooks/useMediaQuery.cjs');
@@ -70,7 +69,7 @@ const FeatureList = ({ features, page }) => {
70
69
  const FeatureListItem = React.memo(({ href, children, isFavorite, className }) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsx(components_Button_AnchorButton.AnchorButton, { href: href, target: "_blank", variant: "text", wide: true, className: className, "data-favorite": isFavorite, prefix: isFavorite && jsxRuntime.jsx(components_Icon_FaIcon.FaStarIcon, {}), suffix: jsxRuntime.jsx(components_Icon_FaIcon.FaArrowRightIcon, {}), children: jsxRuntime.jsx(FeatureName, { children: children }) }) })));
71
70
  const FeatureName = ({ children }) => {
72
71
  const isDesktop = components_AppHeader_hooks_useMediaQuery.useMediaQuery(components_AppHeader_hooks_useMediaQuery.mediaQuery.desktop);
73
- return isDesktop ? jsxRuntime.jsx(components_LineClamp_LineClamp.LineClamp, { maxLines: 2, children: children }) : children;
72
+ return isDesktop ? (jsxRuntime.jsx(components_Text_Text.Text, { as: "span", maxLines: { max: 2, tooltip: true }, children: children })) : (children);
74
73
  };
75
74
 
76
75
  exports.AppLauncherFeatures = AppLauncherFeatures;
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncherFeatures.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../../../intl'\nimport { AnchorButton } from '../../../Button'\nimport { FaArrowRightIcon, FaStarIcon } from '../../../Icon'\nimport { Center } from '../../../Layout'\nimport { LineClamp } from '../../../LineClamp'\nimport { Loader } from '../../../Loader'\nimport { Text } from '../../../Text'\nimport { mediaQuery, useMediaQuery } from '../../hooks/useMediaQuery'\n\nimport { Translate } from './Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n empty: ['shr-p-1 shr-text-center'],\n loadError: ['shr-whitespace-pre-wrap shr-p-1 shr-text-center'],\n loading: ['shr-py-3'],\n list: ['shr-list-none', '[&>li]:shr-px-0.5 [&>li]:shr-py-0.25'],\n listItem: [\n 'smarthr-ui-AppLauncher-listItem',\n 'shr-grid shr-min-h-[2.5rem] shr-grid-cols-[1rem_1fr_1rem] shr-gap-0.75 shr-whitespace-normal shr-px-1 shr-py-0 shr-text-left shr-leading-tight',\n 'data-[favorite=\"false\"]:shr-grid-cols-[1fr_1rem]',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { empty, loadError, loading, list, listItem } = classNameGenerator()\n\n return {\n empty: empty(),\n loadError: loadError(),\n loading: loading(),\n list: list(),\n listItem: listItem(),\n }\n})()\n\ntype Props = {\n features: Array<Launcher['feature']>\n page: Launcher['page']\n loading?: boolean\n error?: boolean\n}\n\nexport const AppLauncherFeatures: FC<Props> = ({ features, page, loading, error }) => {\n if (loading) {\n return <LoadingList />\n }\n\n if (error) {\n return <LoadErrorText />\n }\n\n return features.length === 0 ? <EmptyList /> : <FeatureList features={features} page={page} />\n}\n\nconst LoadingList = memo(() => (\n <Center className={CLASS_NAMES.loading}>\n <Loader />\n </Center>\n))\n\nconst LoadErrorText = memo(() => (\n <div className={CLASS_NAMES.loadError}>\n <Text size=\"S\">\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/loadError\"\n defaultText={`アプリ一覧の読み込みに失敗しました。\n時間をおいて、やり直してください。`}\n />\n </Text>\n </div>\n))\n\nconst EmptyList = memo(() => (\n <div className={CLASS_NAMES.empty}>\n <Text size=\"S\">\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/emptyText\"\n defaultText=\"該当するアプリが見つかりませんでした。\"\n />\n </Translate>\n </Text>\n </div>\n))\n\nconst FeatureList: FC<Props> = ({ features, page }) => {\n const isFavorite = page === 'favorite'\n\n return (\n <ul className={CLASS_NAMES.list}>\n {features.map((feature) => (\n <FeatureListItem\n key={feature.id}\n href={feature.url}\n isFavorite={isFavorite}\n className={CLASS_NAMES.listItem}\n >\n {feature.name}\n </FeatureListItem>\n ))}\n </ul>\n )\n}\n\nconst FeatureListItem = memo<{\n href: Props['features'][number]['url']\n children: Props['features'][number]['name']\n className: string\n isFavorite: boolean\n}>(({ href, children, isFavorite, className }) => (\n <li>\n <AnchorButton\n href={href}\n target=\"_blank\"\n variant=\"text\"\n wide\n className={className}\n data-favorite={isFavorite}\n prefix={isFavorite && <FaStarIcon />}\n suffix={<FaArrowRightIcon />}\n >\n <FeatureName>{children}</FeatureName>\n </AnchorButton>\n </li>\n))\n\nconst FeatureName: FC<PropsWithChildren> = ({ children }) => {\n const isDesktop = useMediaQuery(mediaQuery.desktop)\n\n return isDesktop ? <LineClamp maxLines={2}>{children}</LineClamp> : children\n}\n"],"names":["tv","_jsx","memo","Center","Loader","Text","Localizer","Translate","AnchorButton","FaStarIcon","FaArrowRightIcon","useMediaQuery","mediaQuery","LineClamp"],"mappings":"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"}
1
+ {"version":3,"file":"AppLauncherFeatures.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../../../intl'\nimport { AnchorButton } from '../../../Button'\nimport { FaArrowRightIcon, FaStarIcon } from '../../../Icon'\nimport { Center } from '../../../Layout'\nimport { Loader } from '../../../Loader'\nimport { Text } from '../../../Text'\nimport { mediaQuery, useMediaQuery } from '../../hooks/useMediaQuery'\n\nimport { Translate } from './Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n empty: ['shr-p-1 shr-text-center'],\n loadError: ['shr-whitespace-pre-wrap shr-p-1 shr-text-center'],\n loading: ['shr-py-3'],\n list: ['shr-list-none', '[&>li]:shr-px-0.5 [&>li]:shr-py-0.25'],\n listItem: [\n 'smarthr-ui-AppLauncher-listItem',\n 'shr-grid shr-min-h-[2.5rem] shr-grid-cols-[1rem_1fr_1rem] shr-gap-0.75 shr-whitespace-normal shr-px-1 shr-py-0 shr-text-left shr-leading-tight',\n 'data-[favorite=\"false\"]:shr-grid-cols-[1fr_1rem]',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { empty, loadError, loading, list, listItem } = classNameGenerator()\n\n return {\n empty: empty(),\n loadError: loadError(),\n loading: loading(),\n list: list(),\n listItem: listItem(),\n }\n})()\n\ntype Props = {\n features: Array<Launcher['feature']>\n page: Launcher['page']\n loading?: boolean\n error?: boolean\n}\n\nexport const AppLauncherFeatures: FC<Props> = ({ features, page, loading, error }) => {\n if (loading) {\n return <LoadingList />\n }\n\n if (error) {\n return <LoadErrorText />\n }\n\n return features.length === 0 ? <EmptyList /> : <FeatureList features={features} page={page} />\n}\n\nconst LoadingList = memo(() => (\n <Center className={CLASS_NAMES.loading}>\n <Loader />\n </Center>\n))\n\nconst LoadErrorText = memo(() => (\n <div className={CLASS_NAMES.loadError}>\n <Text size=\"S\">\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/loadError\"\n defaultText={`アプリ一覧の読み込みに失敗しました。\n時間をおいて、やり直してください。`}\n />\n </Text>\n </div>\n))\n\nconst EmptyList = memo(() => (\n <div className={CLASS_NAMES.empty}>\n <Text size=\"S\">\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/emptyText\"\n defaultText=\"該当するアプリが見つかりませんでした。\"\n />\n </Translate>\n </Text>\n </div>\n))\n\nconst FeatureList: FC<Props> = ({ features, page }) => {\n const isFavorite = page === 'favorite'\n\n return (\n <ul className={CLASS_NAMES.list}>\n {features.map((feature) => (\n <FeatureListItem\n key={feature.id}\n href={feature.url}\n isFavorite={isFavorite}\n className={CLASS_NAMES.listItem}\n >\n {feature.name}\n </FeatureListItem>\n ))}\n </ul>\n )\n}\n\nconst FeatureListItem = memo<{\n href: Props['features'][number]['url']\n children: Props['features'][number]['name']\n className: string\n isFavorite: boolean\n}>(({ href, children, isFavorite, className }) => (\n <li>\n <AnchorButton\n href={href}\n target=\"_blank\"\n variant=\"text\"\n wide\n className={className}\n data-favorite={isFavorite}\n prefix={isFavorite && <FaStarIcon />}\n suffix={<FaArrowRightIcon />}\n >\n <FeatureName>{children}</FeatureName>\n </AnchorButton>\n </li>\n))\n\nconst FeatureName: FC<PropsWithChildren> = ({ children }) => {\n const isDesktop = useMediaQuery(mediaQuery.desktop)\n\n return isDesktop ? (\n <Text as=\"span\" maxLines={{ max: 2, tooltip: true }}>\n {children}\n </Text>\n ) : (\n children\n )\n}\n"],"names":["tv","_jsx","memo","Center","Loader","Text","Localizer","Translate","AnchorButton","FaStarIcon","FaArrowRightIcon","useMediaQuery","mediaQuery"],"mappings":"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"}
@@ -19,7 +19,6 @@ import '../../../Layout/Reel/Reel.js';
19
19
  import '../../../Layout/Sidebar/Sidebar.js';
20
20
  import { Center } from '../../../Layout/Center/Center.js';
21
21
  import '../../../Layout/Container/Container.js';
22
- import { LineClamp } from '../../../LineClamp/LineClamp.js';
23
22
  import { Loader } from '../../../Loader/Loader.js';
24
23
  import { Text } from '../../../Text/Text.js';
25
24
  import { useMediaQuery, mediaQuery } from '../../hooks/useMediaQuery.js';
@@ -68,7 +67,7 @@ const FeatureList = ({ features, page }) => {
68
67
  const FeatureListItem = memo(({ href, children, isFavorite, className }) => (jsx("li", { children: jsx(ForwardedAnchorButton, { href: href, target: "_blank", variant: "text", wide: true, className: className, "data-favorite": isFavorite, prefix: isFavorite && jsx(FaStarIcon, {}), suffix: jsx(FaArrowRightIcon, {}), children: jsx(FeatureName, { children: children }) }) })));
69
68
  const FeatureName = ({ children }) => {
70
69
  const isDesktop = useMediaQuery(mediaQuery.desktop);
71
- return isDesktop ? jsx(LineClamp, { maxLines: 2, children: children }) : children;
70
+ return isDesktop ? (jsx(Text, { as: "span", maxLines: { max: 2, tooltip: true }, children: children })) : (children);
72
71
  };
73
72
 
74
73
  export { AppLauncherFeatures };
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncherFeatures.js","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../../../intl'\nimport { AnchorButton } from '../../../Button'\nimport { FaArrowRightIcon, FaStarIcon } from '../../../Icon'\nimport { Center } from '../../../Layout'\nimport { LineClamp } from '../../../LineClamp'\nimport { Loader } from '../../../Loader'\nimport { Text } from '../../../Text'\nimport { mediaQuery, useMediaQuery } from '../../hooks/useMediaQuery'\n\nimport { Translate } from './Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n empty: ['shr-p-1 shr-text-center'],\n loadError: ['shr-whitespace-pre-wrap shr-p-1 shr-text-center'],\n loading: ['shr-py-3'],\n list: ['shr-list-none', '[&>li]:shr-px-0.5 [&>li]:shr-py-0.25'],\n listItem: [\n 'smarthr-ui-AppLauncher-listItem',\n 'shr-grid shr-min-h-[2.5rem] shr-grid-cols-[1rem_1fr_1rem] shr-gap-0.75 shr-whitespace-normal shr-px-1 shr-py-0 shr-text-left shr-leading-tight',\n 'data-[favorite=\"false\"]:shr-grid-cols-[1fr_1rem]',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { empty, loadError, loading, list, listItem } = classNameGenerator()\n\n return {\n empty: empty(),\n loadError: loadError(),\n loading: loading(),\n list: list(),\n listItem: listItem(),\n }\n})()\n\ntype Props = {\n features: Array<Launcher['feature']>\n page: Launcher['page']\n loading?: boolean\n error?: boolean\n}\n\nexport const AppLauncherFeatures: FC<Props> = ({ features, page, loading, error }) => {\n if (loading) {\n return <LoadingList />\n }\n\n if (error) {\n return <LoadErrorText />\n }\n\n return features.length === 0 ? <EmptyList /> : <FeatureList features={features} page={page} />\n}\n\nconst LoadingList = memo(() => (\n <Center className={CLASS_NAMES.loading}>\n <Loader />\n </Center>\n))\n\nconst LoadErrorText = memo(() => (\n <div className={CLASS_NAMES.loadError}>\n <Text size=\"S\">\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/loadError\"\n defaultText={`アプリ一覧の読み込みに失敗しました。\n時間をおいて、やり直してください。`}\n />\n </Text>\n </div>\n))\n\nconst EmptyList = memo(() => (\n <div className={CLASS_NAMES.empty}>\n <Text size=\"S\">\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/emptyText\"\n defaultText=\"該当するアプリが見つかりませんでした。\"\n />\n </Translate>\n </Text>\n </div>\n))\n\nconst FeatureList: FC<Props> = ({ features, page }) => {\n const isFavorite = page === 'favorite'\n\n return (\n <ul className={CLASS_NAMES.list}>\n {features.map((feature) => (\n <FeatureListItem\n key={feature.id}\n href={feature.url}\n isFavorite={isFavorite}\n className={CLASS_NAMES.listItem}\n >\n {feature.name}\n </FeatureListItem>\n ))}\n </ul>\n )\n}\n\nconst FeatureListItem = memo<{\n href: Props['features'][number]['url']\n children: Props['features'][number]['name']\n className: string\n isFavorite: boolean\n}>(({ href, children, isFavorite, className }) => (\n <li>\n <AnchorButton\n href={href}\n target=\"_blank\"\n variant=\"text\"\n wide\n className={className}\n data-favorite={isFavorite}\n prefix={isFavorite && <FaStarIcon />}\n suffix={<FaArrowRightIcon />}\n >\n <FeatureName>{children}</FeatureName>\n </AnchorButton>\n </li>\n))\n\nconst FeatureName: FC<PropsWithChildren> = ({ children }) => {\n const isDesktop = useMediaQuery(mediaQuery.desktop)\n\n return isDesktop ? <LineClamp maxLines={2}>{children}</LineClamp> : children\n}\n"],"names":["tv","_jsx","AnchorButton"],"mappings":"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"}
1
+ {"version":3,"file":"AppLauncherFeatures.js","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../../../intl'\nimport { AnchorButton } from '../../../Button'\nimport { FaArrowRightIcon, FaStarIcon } from '../../../Icon'\nimport { Center } from '../../../Layout'\nimport { Loader } from '../../../Loader'\nimport { Text } from '../../../Text'\nimport { mediaQuery, useMediaQuery } from '../../hooks/useMediaQuery'\n\nimport { Translate } from './Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n empty: ['shr-p-1 shr-text-center'],\n loadError: ['shr-whitespace-pre-wrap shr-p-1 shr-text-center'],\n loading: ['shr-py-3'],\n list: ['shr-list-none', '[&>li]:shr-px-0.5 [&>li]:shr-py-0.25'],\n listItem: [\n 'smarthr-ui-AppLauncher-listItem',\n 'shr-grid shr-min-h-[2.5rem] shr-grid-cols-[1rem_1fr_1rem] shr-gap-0.75 shr-whitespace-normal shr-px-1 shr-py-0 shr-text-left shr-leading-tight',\n 'data-[favorite=\"false\"]:shr-grid-cols-[1fr_1rem]',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { empty, loadError, loading, list, listItem } = classNameGenerator()\n\n return {\n empty: empty(),\n loadError: loadError(),\n loading: loading(),\n list: list(),\n listItem: listItem(),\n }\n})()\n\ntype Props = {\n features: Array<Launcher['feature']>\n page: Launcher['page']\n loading?: boolean\n error?: boolean\n}\n\nexport const AppLauncherFeatures: FC<Props> = ({ features, page, loading, error }) => {\n if (loading) {\n return <LoadingList />\n }\n\n if (error) {\n return <LoadErrorText />\n }\n\n return features.length === 0 ? <EmptyList /> : <FeatureList features={features} page={page} />\n}\n\nconst LoadingList = memo(() => (\n <Center className={CLASS_NAMES.loading}>\n <Loader />\n </Center>\n))\n\nconst LoadErrorText = memo(() => (\n <div className={CLASS_NAMES.loadError}>\n <Text size=\"S\">\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/loadError\"\n defaultText={`アプリ一覧の読み込みに失敗しました。\n時間をおいて、やり直してください。`}\n />\n </Text>\n </div>\n))\n\nconst EmptyList = memo(() => (\n <div className={CLASS_NAMES.empty}>\n <Text size=\"S\">\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/emptyText\"\n defaultText=\"該当するアプリが見つかりませんでした。\"\n />\n </Translate>\n </Text>\n </div>\n))\n\nconst FeatureList: FC<Props> = ({ features, page }) => {\n const isFavorite = page === 'favorite'\n\n return (\n <ul className={CLASS_NAMES.list}>\n {features.map((feature) => (\n <FeatureListItem\n key={feature.id}\n href={feature.url}\n isFavorite={isFavorite}\n className={CLASS_NAMES.listItem}\n >\n {feature.name}\n </FeatureListItem>\n ))}\n </ul>\n )\n}\n\nconst FeatureListItem = memo<{\n href: Props['features'][number]['url']\n children: Props['features'][number]['name']\n className: string\n isFavorite: boolean\n}>(({ href, children, isFavorite, className }) => (\n <li>\n <AnchorButton\n href={href}\n target=\"_blank\"\n variant=\"text\"\n wide\n className={className}\n data-favorite={isFavorite}\n prefix={isFavorite && <FaStarIcon />}\n suffix={<FaArrowRightIcon />}\n >\n <FeatureName>{children}</FeatureName>\n </AnchorButton>\n </li>\n))\n\nconst FeatureName: FC<PropsWithChildren> = ({ children }) => {\n const isDesktop = useMediaQuery(mediaQuery.desktop)\n\n return isDesktop ? (\n <Text as=\"span\" maxLines={{ max: 2, tooltip: true }}>\n {children}\n </Text>\n ) : (\n children\n )\n}\n"],"names":["tv","_jsx","AnchorButton"],"mappings":"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"}
@@ -49,7 +49,7 @@ const CLASS_NAMES = (() => {
49
49
  contentButton: contentButton(),
50
50
  };
51
51
  })();
52
- const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
52
+ const AppLauncherSortDropdown = ({ sortType, handleSelectSortType }) => {
53
53
  const triggerRef = React.useRef(null);
54
54
  const options = React.useMemo(() => [
55
55
  [
@@ -66,7 +66,7 @@ const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
66
66
  ],
67
67
  ], []);
68
68
  const onClickOption = React.useCallback((e) => {
69
- onSelectSortType(e.currentTarget.value);
69
+ handleSelectSortType(e.currentTarget.value);
70
70
  // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない
71
71
  // そのため、無理矢理クリックイベントを発生させて実現している
72
72
  setTimeout(() => {
@@ -75,7 +75,7 @@ const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
75
75
  triggerRef.current.focus();
76
76
  }
77
77
  }, 0);
78
- }, [onSelectSortType]);
78
+ }, [handleSelectSortType]);
79
79
  return (jsxRuntime.jsxs(components_Dropdown_client_Dropdown.Dropdown, { children: [jsxRuntime.jsx(TriggerButton, { triggerRef: triggerRef, className: CLASS_NAMES.trigger, children: jsxRuntime.jsx(intl_Localizer.Localizer, { id: "smarthr-ui/AppHeader/Launcher/sortDropdownLabel", defaultText: "\u8868\u793A\u9806" }) }), jsxRuntime.jsx(components_Dropdown_client_DropdownContent.DropdownContent, { controllable: true, children: jsxRuntime.jsx("div", { role: "listbox", className: CLASS_NAMES.contentBody, children: options.map(([value, children], i) => (jsxRuntime.jsx(OptionButton, { value: value, selected: value === sortType, className: CLASS_NAMES.contentButton, onClick: onClickOption, children: children }, i))) }) })] }));
80
80
  };
81
81
  const TriggerButton = React.memo(({ triggerRef, children, className }) => (jsxRuntime.jsx(components_Dropdown_client_DropdownTrigger.DropdownTrigger, { children: jsxRuntime.jsx(components_Button_Button.Button, { ref: triggerRef, variant: "text", size: "S", className: className, suffix: jsxRuntime.jsx(components_Icon_FaIcon.FaCaretDownIcon, {}), children: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: children }) }) })));
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncherSortDropdown.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherSortDropdown.tsx"],"sourcesContent":["'use client'\n\nimport {\n type FC,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n memo,\n useCallback,\n useMemo,\n useRef,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer } from '../../../../intl'\nimport { Button } from '../../../Button'\nimport { Dropdown, DropdownContent, DropdownTrigger } from '../../../Dropdown'\nimport { FaCaretDownIcon, FaCheckIcon } from '../../../Icon'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n trigger: [\n 'smarthr-ui-AppLauncher-SortDropdown-trigger',\n 'shr-gap-0.25 shr-text-grey',\n '[&[aria-expanded=\"true\"]_.smarthr-ui-Icon]:shr-rotate-180',\n ],\n contentBody: ['shr-px-0.25 shr-py-0.5', 'shr-flex shr-flex-col shr-items-stretch'],\n contentButton: [\n 'shr-justify-start shr-border-none shr-py-0.75 shr-pl-2.5 shr-font-normal',\n 'aria-selected:shr-pl-1',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { trigger, contentBody, contentButton } = classNameGenerator()\n\n return {\n trigger: trigger(),\n contentBody: contentBody(),\n contentButton: contentButton(),\n }\n})()\n\ntype Props = {\n sortType: Launcher['sortType']\n onSelectSortType: (sortType: Launcher['sortType']) => void\n}\n\nexport const AppLauncherSortDropdown: FC<Props> = ({ sortType, onSelectSortType }) => {\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const options = useMemo<Array<[Launcher['sortType'], JSX.Element]>>(\n () => [\n [\n 'default',\n <Localizer\n key=\"default\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault\"\n defaultText=\"デフォルト\"\n />,\n ],\n [\n 'name/asc',\n <Localizer\n key=\"name/asc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc\"\n defaultText=\"アプリ名の昇順\"\n />,\n ],\n [\n 'name/desc',\n <Localizer\n key=\"name/desc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc\"\n defaultText=\"アプリ名の降順\"\n />,\n ],\n ],\n [],\n )\n\n const onClickOption = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n onSelectSortType(e.currentTarget.value as Launcher['sortType'])\n\n // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない\n // そのため、無理矢理クリックイベントを発生させて実現している\n setTimeout(() => {\n if (triggerRef.current) {\n triggerRef.current.click()\n triggerRef.current.focus()\n }\n }, 0)\n },\n [onSelectSortType],\n )\n\n return (\n <Dropdown>\n <TriggerButton triggerRef={triggerRef} className={CLASS_NAMES.trigger}>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/sortDropdownLabel\" defaultText=\"表示順\" />\n </TriggerButton>\n <DropdownContent controllable>\n <div role=\"listbox\" className={CLASS_NAMES.contentBody}>\n {options.map(([value, children], i) => (\n <OptionButton\n key={i}\n value={value}\n selected={value === sortType}\n className={CLASS_NAMES.contentButton}\n onClick={onClickOption}\n >\n {children}\n </OptionButton>\n ))}\n </div>\n </DropdownContent>\n </Dropdown>\n )\n}\n\nconst TriggerButton = memo<\n PropsWithChildren<{ triggerRef: RefObject<HTMLButtonElement>; className: string }>\n>(({ triggerRef, children, className }) => (\n <DropdownTrigger>\n <Button\n ref={triggerRef}\n variant=\"text\"\n size=\"S\"\n className={className}\n suffix={<FaCaretDownIcon />}\n >\n <Translate>{children}</Translate>\n </Button>\n </DropdownTrigger>\n))\n\nconst OptionButton = memo<\n PropsWithChildren<{\n value: string\n selected: boolean\n onClick: (e: MouseEvent<HTMLButtonElement>) => void\n className: string\n }>\n>(({ value, selected, onClick, children, className }) => {\n const theme = useTheme()\n return (\n <Button\n role=\"option\"\n value={value}\n className={className}\n aria-selected={selected}\n onClick={onClick}\n prefix={\n selected && (\n <FaCheckIcon\n alt={\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownSelected\"\n defaultText=\"選択中\"\n />\n </Translate>\n }\n color={theme.textColor.main}\n />\n )\n }\n >\n <Translate>{children}</Translate>\n </Button>\n )\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA;AACE;AACE;;;;AAIC;AACD;AACA;;;AAGC;AACF;AACF;AAED;;;;;;;AAQA;AAOO;AACL;AAEA;AAEI;;;AAOC;AACD;;;AAOC;AACD;;;AAOC;;AAKL;AAEI;;;;AAKE;AACE;AACA;;;AAGN;;AA0BJ;AAEA;AAgBA;AAQE;AACA;AA0BF;;"}
1
+ {"version":3,"file":"AppLauncherSortDropdown.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherSortDropdown.tsx"],"sourcesContent":["'use client'\n\nimport {\n type FC,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n memo,\n useCallback,\n useMemo,\n useRef,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer } from '../../../../intl'\nimport { Button } from '../../../Button'\nimport { Dropdown, DropdownContent, DropdownTrigger } from '../../../Dropdown'\nimport { FaCaretDownIcon, FaCheckIcon } from '../../../Icon'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n trigger: [\n 'smarthr-ui-AppLauncher-SortDropdown-trigger',\n 'shr-gap-0.25 shr-text-grey',\n '[&[aria-expanded=\"true\"]_.smarthr-ui-Icon]:shr-rotate-180',\n ],\n contentBody: ['shr-px-0.25 shr-py-0.5', 'shr-flex shr-flex-col shr-items-stretch'],\n contentButton: [\n 'shr-justify-start shr-border-none shr-py-0.75 shr-pl-2.5 shr-font-normal',\n 'aria-selected:shr-pl-1',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { trigger, contentBody, contentButton } = classNameGenerator()\n\n return {\n trigger: trigger(),\n contentBody: contentBody(),\n contentButton: contentButton(),\n }\n})()\n\ntype Props = {\n sortType: Launcher['sortType']\n handleSelectSortType: (sortType: Launcher['sortType']) => void\n}\n\nexport const AppLauncherSortDropdown: FC<Props> = ({ sortType, handleSelectSortType }) => {\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const options = useMemo<Array<[Launcher['sortType'], JSX.Element]>>(\n () => [\n [\n 'default',\n <Localizer\n key=\"default\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault\"\n defaultText=\"デフォルト\"\n />,\n ],\n [\n 'name/asc',\n <Localizer\n key=\"name/asc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc\"\n defaultText=\"アプリ名の昇順\"\n />,\n ],\n [\n 'name/desc',\n <Localizer\n key=\"name/desc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc\"\n defaultText=\"アプリ名の降順\"\n />,\n ],\n ],\n [],\n )\n\n const onClickOption = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n handleSelectSortType(e.currentTarget.value as Launcher['sortType'])\n\n // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない\n // そのため、無理矢理クリックイベントを発生させて実現している\n setTimeout(() => {\n if (triggerRef.current) {\n triggerRef.current.click()\n triggerRef.current.focus()\n }\n }, 0)\n },\n [handleSelectSortType],\n )\n\n return (\n <Dropdown>\n <TriggerButton triggerRef={triggerRef} className={CLASS_NAMES.trigger}>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/sortDropdownLabel\" defaultText=\"表示順\" />\n </TriggerButton>\n <DropdownContent controllable>\n <div role=\"listbox\" className={CLASS_NAMES.contentBody}>\n {options.map(([value, children], i) => (\n <OptionButton\n key={i}\n value={value}\n selected={value === sortType}\n className={CLASS_NAMES.contentButton}\n onClick={onClickOption}\n >\n {children}\n </OptionButton>\n ))}\n </div>\n </DropdownContent>\n </Dropdown>\n )\n}\n\nconst TriggerButton = memo<\n PropsWithChildren<{ triggerRef: RefObject<HTMLButtonElement>; className: string }>\n>(({ triggerRef, children, className }) => (\n <DropdownTrigger>\n <Button\n ref={triggerRef}\n variant=\"text\"\n size=\"S\"\n className={className}\n suffix={<FaCaretDownIcon />}\n >\n <Translate>{children}</Translate>\n </Button>\n </DropdownTrigger>\n))\n\nconst OptionButton = memo<\n PropsWithChildren<{\n value: string\n selected: boolean\n onClick: (e: MouseEvent<HTMLButtonElement>) => void\n className: string\n }>\n>(({ value, selected, onClick, children, className }) => {\n const theme = useTheme()\n return (\n <Button\n role=\"option\"\n value={value}\n className={className}\n aria-selected={selected}\n onClick={onClick}\n prefix={\n selected && (\n <FaCheckIcon\n alt={\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownSelected\"\n defaultText=\"選択中\"\n />\n </Translate>\n }\n color={theme.textColor.main}\n />\n )\n }\n >\n <Translate>{children}</Translate>\n </Button>\n )\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA;AACE;AACE;;;;AAIC;AACD;AACA;;;AAGC;AACF;AACF;AAED;;;;;;;AAQA;AAOO;AACL;AAEA;AAEI;;;AAOC;AACD;;;AAOC;AACD;;;AAOC;;AAKL;AAEI;;;;AAKE;AACE;AACA;;;AAGN;;AA0BJ;AAEA;AAgBA;AAQE;AACA;AA0BF;;"}
@@ -2,7 +2,7 @@ import { type FC } from 'react';
2
2
  import type { Launcher } from '../../types';
3
3
  type Props = {
4
4
  sortType: Launcher['sortType'];
5
- onSelectSortType: (sortType: Launcher['sortType']) => void;
5
+ handleSelectSortType: (sortType: Launcher['sortType']) => void;
6
6
  };
7
7
  export declare const AppLauncherSortDropdown: FC<Props>;
8
8
  export {};
@@ -47,7 +47,7 @@ const CLASS_NAMES = (() => {
47
47
  contentButton: contentButton(),
48
48
  };
49
49
  })();
50
- const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
50
+ const AppLauncherSortDropdown = ({ sortType, handleSelectSortType }) => {
51
51
  const triggerRef = useRef(null);
52
52
  const options = useMemo(() => [
53
53
  [
@@ -64,7 +64,7 @@ const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
64
64
  ],
65
65
  ], []);
66
66
  const onClickOption = useCallback((e) => {
67
- onSelectSortType(e.currentTarget.value);
67
+ handleSelectSortType(e.currentTarget.value);
68
68
  // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない
69
69
  // そのため、無理矢理クリックイベントを発生させて実現している
70
70
  setTimeout(() => {
@@ -73,7 +73,7 @@ const AppLauncherSortDropdown = ({ sortType, onSelectSortType }) => {
73
73
  triggerRef.current.focus();
74
74
  }
75
75
  }, 0);
76
- }, [onSelectSortType]);
76
+ }, [handleSelectSortType]);
77
77
  return (jsxs(Dropdown, { children: [jsx(TriggerButton, { triggerRef: triggerRef, className: CLASS_NAMES.trigger, children: jsx(Localizer, { id: "smarthr-ui/AppHeader/Launcher/sortDropdownLabel", defaultText: "\u8868\u793A\u9806" }) }), jsx(DropdownContent, { controllable: true, children: jsx("div", { role: "listbox", className: CLASS_NAMES.contentBody, children: options.map(([value, children], i) => (jsx(OptionButton, { value: value, selected: value === sortType, className: CLASS_NAMES.contentButton, onClick: onClickOption, children: children }, i))) }) })] }));
78
78
  };
79
79
  const TriggerButton = memo(({ triggerRef, children, className }) => (jsx(DropdownTrigger, { children: jsx(Button, { ref: triggerRef, variant: "text", size: "S", className: className, suffix: jsx(FaCaretDownIcon, {}), children: jsx(Translate, { children: children }) }) })));
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncherSortDropdown.js","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherSortDropdown.tsx"],"sourcesContent":["'use client'\n\nimport {\n type FC,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n memo,\n useCallback,\n useMemo,\n useRef,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer } from '../../../../intl'\nimport { Button } from '../../../Button'\nimport { Dropdown, DropdownContent, DropdownTrigger } from '../../../Dropdown'\nimport { FaCaretDownIcon, FaCheckIcon } from '../../../Icon'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n trigger: [\n 'smarthr-ui-AppLauncher-SortDropdown-trigger',\n 'shr-gap-0.25 shr-text-grey',\n '[&[aria-expanded=\"true\"]_.smarthr-ui-Icon]:shr-rotate-180',\n ],\n contentBody: ['shr-px-0.25 shr-py-0.5', 'shr-flex shr-flex-col shr-items-stretch'],\n contentButton: [\n 'shr-justify-start shr-border-none shr-py-0.75 shr-pl-2.5 shr-font-normal',\n 'aria-selected:shr-pl-1',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { trigger, contentBody, contentButton } = classNameGenerator()\n\n return {\n trigger: trigger(),\n contentBody: contentBody(),\n contentButton: contentButton(),\n }\n})()\n\ntype Props = {\n sortType: Launcher['sortType']\n onSelectSortType: (sortType: Launcher['sortType']) => void\n}\n\nexport const AppLauncherSortDropdown: FC<Props> = ({ sortType, onSelectSortType }) => {\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const options = useMemo<Array<[Launcher['sortType'], JSX.Element]>>(\n () => [\n [\n 'default',\n <Localizer\n key=\"default\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault\"\n defaultText=\"デフォルト\"\n />,\n ],\n [\n 'name/asc',\n <Localizer\n key=\"name/asc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc\"\n defaultText=\"アプリ名の昇順\"\n />,\n ],\n [\n 'name/desc',\n <Localizer\n key=\"name/desc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc\"\n defaultText=\"アプリ名の降順\"\n />,\n ],\n ],\n [],\n )\n\n const onClickOption = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n onSelectSortType(e.currentTarget.value as Launcher['sortType'])\n\n // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない\n // そのため、無理矢理クリックイベントを発生させて実現している\n setTimeout(() => {\n if (triggerRef.current) {\n triggerRef.current.click()\n triggerRef.current.focus()\n }\n }, 0)\n },\n [onSelectSortType],\n )\n\n return (\n <Dropdown>\n <TriggerButton triggerRef={triggerRef} className={CLASS_NAMES.trigger}>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/sortDropdownLabel\" defaultText=\"表示順\" />\n </TriggerButton>\n <DropdownContent controllable>\n <div role=\"listbox\" className={CLASS_NAMES.contentBody}>\n {options.map(([value, children], i) => (\n <OptionButton\n key={i}\n value={value}\n selected={value === sortType}\n className={CLASS_NAMES.contentButton}\n onClick={onClickOption}\n >\n {children}\n </OptionButton>\n ))}\n </div>\n </DropdownContent>\n </Dropdown>\n )\n}\n\nconst TriggerButton = memo<\n PropsWithChildren<{ triggerRef: RefObject<HTMLButtonElement>; className: string }>\n>(({ triggerRef, children, className }) => (\n <DropdownTrigger>\n <Button\n ref={triggerRef}\n variant=\"text\"\n size=\"S\"\n className={className}\n suffix={<FaCaretDownIcon />}\n >\n <Translate>{children}</Translate>\n </Button>\n </DropdownTrigger>\n))\n\nconst OptionButton = memo<\n PropsWithChildren<{\n value: string\n selected: boolean\n onClick: (e: MouseEvent<HTMLButtonElement>) => void\n className: string\n }>\n>(({ value, selected, onClick, children, className }) => {\n const theme = useTheme()\n return (\n <Button\n role=\"option\"\n value={value}\n className={className}\n aria-selected={selected}\n onClick={onClick}\n prefix={\n selected && (\n <FaCheckIcon\n alt={\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownSelected\"\n defaultText=\"選択中\"\n />\n </Translate>\n }\n color={theme.textColor.main}\n />\n )\n }\n >\n <Translate>{children}</Translate>\n </Button>\n )\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA;AACE;AACE;;;;AAIC;AACD;AACA;;;AAGC;AACF;AACF;AAED;;;;;;;AAQA;AAOO;AACL;AAEA;AAEI;;;AAOC;AACD;;;AAOC;AACD;;;AAOC;;AAKL;AAEI;;;;AAKE;AACE;AACA;;;AAGN;;AA0BJ;AAEA;AAgBA;AAQE;AACA;AA0BF;;"}
1
+ {"version":3,"file":"AppLauncherSortDropdown.js","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherSortDropdown.tsx"],"sourcesContent":["'use client'\n\nimport {\n type FC,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n memo,\n useCallback,\n useMemo,\n useRef,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer } from '../../../../intl'\nimport { Button } from '../../../Button'\nimport { Dropdown, DropdownContent, DropdownTrigger } from '../../../Dropdown'\nimport { FaCaretDownIcon, FaCheckIcon } from '../../../Icon'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n trigger: [\n 'smarthr-ui-AppLauncher-SortDropdown-trigger',\n 'shr-gap-0.25 shr-text-grey',\n '[&[aria-expanded=\"true\"]_.smarthr-ui-Icon]:shr-rotate-180',\n ],\n contentBody: ['shr-px-0.25 shr-py-0.5', 'shr-flex shr-flex-col shr-items-stretch'],\n contentButton: [\n 'shr-justify-start shr-border-none shr-py-0.75 shr-pl-2.5 shr-font-normal',\n 'aria-selected:shr-pl-1',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { trigger, contentBody, contentButton } = classNameGenerator()\n\n return {\n trigger: trigger(),\n contentBody: contentBody(),\n contentButton: contentButton(),\n }\n})()\n\ntype Props = {\n sortType: Launcher['sortType']\n handleSelectSortType: (sortType: Launcher['sortType']) => void\n}\n\nexport const AppLauncherSortDropdown: FC<Props> = ({ sortType, handleSelectSortType }) => {\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const options = useMemo<Array<[Launcher['sortType'], JSX.Element]>>(\n () => [\n [\n 'default',\n <Localizer\n key=\"default\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault\"\n defaultText=\"デフォルト\"\n />,\n ],\n [\n 'name/asc',\n <Localizer\n key=\"name/asc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc\"\n defaultText=\"アプリ名の昇順\"\n />,\n ],\n [\n 'name/desc',\n <Localizer\n key=\"name/desc\"\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc\"\n defaultText=\"アプリ名の降順\"\n />,\n ],\n ],\n [],\n )\n\n const onClickOption = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n handleSelectSortType(e.currentTarget.value as Launcher['sortType'])\n\n // Dropdown がネストしており、この Dropdown のみ閉じて親の Dropdown は開いたままというのができない\n // そのため、無理矢理クリックイベントを発生させて実現している\n setTimeout(() => {\n if (triggerRef.current) {\n triggerRef.current.click()\n triggerRef.current.focus()\n }\n }, 0)\n },\n [handleSelectSortType],\n )\n\n return (\n <Dropdown>\n <TriggerButton triggerRef={triggerRef} className={CLASS_NAMES.trigger}>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/sortDropdownLabel\" defaultText=\"表示順\" />\n </TriggerButton>\n <DropdownContent controllable>\n <div role=\"listbox\" className={CLASS_NAMES.contentBody}>\n {options.map(([value, children], i) => (\n <OptionButton\n key={i}\n value={value}\n selected={value === sortType}\n className={CLASS_NAMES.contentButton}\n onClick={onClickOption}\n >\n {children}\n </OptionButton>\n ))}\n </div>\n </DropdownContent>\n </Dropdown>\n )\n}\n\nconst TriggerButton = memo<\n PropsWithChildren<{ triggerRef: RefObject<HTMLButtonElement>; className: string }>\n>(({ triggerRef, children, className }) => (\n <DropdownTrigger>\n <Button\n ref={triggerRef}\n variant=\"text\"\n size=\"S\"\n className={className}\n suffix={<FaCaretDownIcon />}\n >\n <Translate>{children}</Translate>\n </Button>\n </DropdownTrigger>\n))\n\nconst OptionButton = memo<\n PropsWithChildren<{\n value: string\n selected: boolean\n onClick: (e: MouseEvent<HTMLButtonElement>) => void\n className: string\n }>\n>(({ value, selected, onClick, children, className }) => {\n const theme = useTheme()\n return (\n <Button\n role=\"option\"\n value={value}\n className={className}\n aria-selected={selected}\n onClick={onClick}\n prefix={\n selected && (\n <FaCheckIcon\n alt={\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/sortDropdownSelected\"\n defaultText=\"選択中\"\n />\n </Translate>\n }\n color={theme.textColor.main}\n />\n )\n }\n >\n <Translate>{children}</Translate>\n </Button>\n )\n})\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA;AACE;AACE;;;;AAIC;AACD;AACA;;;AAGC;AACF;AACF;AAED;;;;;;;AAQA;AAOO;AACL;AAEA;AAEI;;;AAOC;AACD;;;AAOC;AACD;;;AAOC;;AAKL;AAEI;;;;AAKE;AACE;AACA;;;AAGN;;AA0BJ;AAEA;AAgBA;AAQE;AACA;AA0BF;;"}
@@ -120,7 +120,7 @@ const AppLauncher = ({ features: baseFeatures, loading, error }) => {
120
120
  defaultText: 'すべてのアプリ',
121
121
  },
122
122
  });
123
- return (jsxRuntime.jsxs("div", { ref: callbackRef, className: CLASS_NAMES.wrapper, children: [jsxRuntime.jsx("div", { className: CLASS_NAMES.searchArea, children: jsxRuntime.jsx(components_Input_SearchInput_SearchInput.SearchInput, { name: "search", value: searchQuery, title: translated.searchInputTitle, width: "100%", onChange: onChangeSearchQuery, tooltipMessage: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: translated.searchInputTitle }), suffix: mode === 'search' && jsxRuntime.jsx(ClearSearchButton, { onClick: onClickClearSearchQuery }) }) }), jsxRuntime.jsxs("div", { className: CLASS_NAMES.inner, children: [jsxRuntime.jsx(SideNavs, { mode: mode, page: page, changePage: changePage, favoriteModeText: translated.favoriteModeText, allModeText: translated.allModeText }), jsxRuntime.jsx("div", { className: CLASS_NAMES.main, children: jsxRuntime.jsxs(components_SectioningContent_SectioningContent.Section, { className: CLASS_NAMES.mainInner, children: [jsxRuntime.jsxs(components_Layout_Cluster_Cluster.Cluster, { align: "center", justify: "space-between", className: CLASS_NAMES.contentHead, children: [jsxRuntime.jsx(MemoizedSubSubBlockHeading, { children: mode === 'search' ? (jsxRuntime.jsx(intl_Localizer.Localizer, { id: "smarthr-ui/AppHeader/Launcher/searchResultText", defaultText: "\u691C\u7D22\u7D50\u679C" })) : page === 'favorite' ? (translated.favoriteModeText) : (translated.allModeText) }), (mode === 'search' || page === 'all') && (jsxRuntime.jsx(components_AppHeader_components_common_AppLauncherSortDropdown.AppLauncherSortDropdown, { sortType: sortType, onSelectSortType: setSortType }))] }), jsxRuntime.jsx(components_Scroller_client_Scroller.Scroller, { className: CLASS_NAMES.scrollArea, children: jsxRuntime.jsx(components_AppHeader_components_common_AppLauncherFeatures.AppLauncherFeatures, { features: features, page: page, loading: loading, error: error }) })] }) })] })] }));
123
+ return (jsxRuntime.jsxs("div", { ref: callbackRef, className: CLASS_NAMES.wrapper, children: [jsxRuntime.jsx("div", { className: CLASS_NAMES.searchArea, children: jsxRuntime.jsx(components_Input_SearchInput_SearchInput.SearchInput, { name: "search", value: searchQuery, title: translated.searchInputTitle, width: "100%", onChange: onChangeSearchQuery, tooltipMessage: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: translated.searchInputTitle }), suffix: mode === 'search' && jsxRuntime.jsx(ClearSearchButton, { onClick: onClickClearSearchQuery }) }) }), jsxRuntime.jsxs("div", { className: CLASS_NAMES.inner, children: [jsxRuntime.jsx(SideNavs, { mode: mode, page: page, changePage: changePage, favoriteModeText: translated.favoriteModeText, allModeText: translated.allModeText }), jsxRuntime.jsx("div", { className: CLASS_NAMES.main, children: jsxRuntime.jsxs(components_SectioningContent_SectioningContent.Section, { className: CLASS_NAMES.mainInner, children: [jsxRuntime.jsxs(components_Layout_Cluster_Cluster.Cluster, { align: "center", justify: "space-between", className: CLASS_NAMES.contentHead, children: [jsxRuntime.jsx(MemoizedSubSubBlockHeading, { children: mode === 'search' ? (jsxRuntime.jsx(intl_Localizer.Localizer, { id: "smarthr-ui/AppHeader/Launcher/searchResultText", defaultText: "\u691C\u7D22\u7D50\u679C" })) : page === 'favorite' ? (translated.favoriteModeText) : (translated.allModeText) }), (mode === 'search' || page === 'all') && (jsxRuntime.jsx(components_AppHeader_components_common_AppLauncherSortDropdown.AppLauncherSortDropdown, { sortType: sortType, handleSelectSortType: setSortType }))] }), jsxRuntime.jsx(components_Scroller_client_Scroller.Scroller, { className: CLASS_NAMES.scrollArea, children: jsxRuntime.jsx(components_AppHeader_components_common_AppLauncherFeatures.AppLauncherFeatures, { features: features, page: page, loading: loading, error: error }) })] }) })] })] }));
124
124
  };
125
125
  const ClearSearchButton = React.memo(({ onClick }) => (jsxRuntime.jsx(components_Button_UnstyledButton.UnstyledButton, { onClick: onClick, children: jsxRuntime.jsx(components_Icon_FaIcon.FaCircleXmarkIcon, {}) })));
126
126
  const SideNavs = React.memo(({ mode, page, changePage, favoriteModeText, allModeText }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncher.cjs","sources":["../../../../../src/components/AppHeader/components/desktop/AppLauncher.tsx"],"sourcesContent":["'use client'\n\nimport { type FC, type PropsWithChildren, memo, useCallback, useId, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer, useLocalize } from '../../../../intl'\nimport { UnstyledButton } from '../../../Button'\nimport { Heading } from '../../../Heading'\nimport { FaCircleXmarkIcon, FaStarIcon } from '../../../Icon'\nimport { SearchInput } from '../../../Input'\nimport { Cluster } from '../../../Layout'\nimport { Scroller } from '../../../Scroller'\nimport { Section } from '../../../SectioningContent'\nimport { SideNav, SideNavItemButton } from '../../../SideNav'\nimport { HelpLink } from '../../../TextLink'\nimport { useAppLauncher } from '../../hooks/useAppLauncher'\nimport { AppLauncherFeatures } from '../common/AppLauncherFeatures'\nimport { AppLauncherSortDropdown } from '../common/AppLauncherSortDropdown'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\ntype Props = {\n features: Array<Launcher['feature']>\n loading?: boolean\n error?: boolean\n}\n\nconst appLauncher = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-AppLauncher',\n 'shr-grid shr-h-[40rem] shr-w-[38rem] shr-grid-rows-[auto_1fr]',\n ],\n searchArea: [\n 'smarthr-ui-AppLauncher-searchArea',\n 'shr-border-b-shorthand shr-p-1',\n '[&_.smarthr-ui-Input]:shr-h-[42px]',\n ],\n inner: ['smarthr-ui-AppLauncher-inner', 'shr-grid shr-min-h-0 shr-grid-cols-[11rem_1fr]'],\n side: [\n 'smarthr-ui-AppLauncher-side',\n 'shr-border-r-shorthand shr-flex shr-flex-col shr-bg-column shr-pb-1 shr-pt-0.5',\n '[&_hr]:shr-m-0.5 [&_hr]:shr-h-[1px] [&_hr]:shr-border-none [&_hr]:shr-bg-border',\n ],\n sideNav: [\n '[&_.smarthr-ui-SideNav-item>button]:shr-px-1 [&_.smarthr-ui-SideNav-item>button]:shr-py-0.75',\n '[&_.smarthr-ui-SideNav-item>button>span]:shr-flex-nowrap',\n '[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-shrink-0 [&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-align-bottom',\n ],\n sideNavHeading: ['shr-px-1 shr-py-0.75 shr-text-xs shr-text-black'],\n help: ['smarthr-ui-AppLauncher-help', 'shr-mt-auto shr-px-1 shr-text-xs'],\n main: ['smarthr-ui-AppLauncher-main', 'shr-grid shr-min-h-0'],\n mainInner: ['shr-grid shr-min-h-0 shr-grid-rows-[auto_1fr]'],\n contentHead: [\n 'shr-min-h-[2rem] shr-px-1 shr-py-0.75',\n '[&_.smarthr-ui-Heading]:shr-text-black',\n ],\n scrollArea: ['shr-h-[509px]'],\n },\n variants: {\n noIcon: {\n true: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button]:shr-pl-1.5'],\n },\n },\n selected: {\n false: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-text-grey'],\n },\n },\n },\n})\n\nconst CLASS_NAMES = (() => {\n const {\n wrapper,\n searchArea,\n inner,\n side,\n sideNav,\n sideNavHeading,\n help,\n main,\n mainInner,\n contentHead,\n scrollArea,\n } = appLauncher()\n\n return {\n wrapper: wrapper(),\n searchArea: searchArea(),\n inner: inner(),\n side: side(),\n unselectedSideNav: sideNav({ selected: false }),\n selectedSideNav: sideNav({ noIcon: true, selected: true }),\n sideNavHeading: sideNavHeading(),\n help: help(),\n main: main(),\n mainInner: mainInner(),\n contentHead: contentHead(),\n scrollArea: scrollArea(),\n }\n})()\n\nexport const AppLauncher: FC<Props> = ({ features: baseFeatures, loading, error }) => {\n const {\n features,\n page,\n mode,\n sortType,\n searchQuery,\n changePage,\n setSortType,\n onChangeSearchQuery,\n onClickClearSearchQuery,\n callbackRef,\n } = useAppLauncher(baseFeatures)\n\n const translated = useLocalize({\n searchInputTitle: {\n id: 'smarthr-ui/AppHeader/Launcher/searchInputTitle',\n defaultText: 'アプリ名を入力してください。',\n },\n favoriteModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/favoriteModeText',\n defaultText: 'よく使うアプリ',\n },\n allModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/allModeText',\n defaultText: 'すべてのアプリ',\n },\n })\n\n return (\n <div ref={callbackRef} className={CLASS_NAMES.wrapper}>\n <div className={CLASS_NAMES.searchArea}>\n <SearchInput\n name=\"search\"\n value={searchQuery}\n title={translated.searchInputTitle}\n width=\"100%\"\n onChange={onChangeSearchQuery}\n tooltipMessage={<Translate>{translated.searchInputTitle}</Translate>}\n suffix={mode === 'search' && <ClearSearchButton onClick={onClickClearSearchQuery} />}\n />\n </div>\n\n <div className={CLASS_NAMES.inner}>\n <SideNavs\n mode={mode}\n page={page}\n changePage={changePage}\n favoriteModeText={translated.favoriteModeText}\n allModeText={translated.allModeText}\n />\n <div className={CLASS_NAMES.main}>\n <Section className={CLASS_NAMES.mainInner}>\n <Cluster align=\"center\" justify=\"space-between\" className={CLASS_NAMES.contentHead}>\n <MemoizedSubSubBlockHeading>\n {mode === 'search' ? (\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/searchResultText\"\n defaultText=\"検索結果\"\n />\n ) : page === 'favorite' ? (\n translated.favoriteModeText\n ) : (\n translated.allModeText\n )}\n </MemoizedSubSubBlockHeading>\n\n {(mode === 'search' || page === 'all') && (\n <AppLauncherSortDropdown sortType={sortType} onSelectSortType={setSortType} />\n )}\n </Cluster>\n\n <Scroller className={CLASS_NAMES.scrollArea}>\n <AppLauncherFeatures\n features={features}\n page={page}\n loading={loading}\n error={error}\n />\n </Scroller>\n </Section>\n </div>\n </div>\n </div>\n )\n}\n\nconst ClearSearchButton = memo<{ onClick: () => void }>(({ onClick }) => (\n <UnstyledButton onClick={onClick}>\n <FaCircleXmarkIcon />\n </UnstyledButton>\n))\n\nconst SideNavs = memo<\n Pick<ReturnType<typeof useAppLauncher>, 'mode' | 'page' | 'changePage'> & {\n favoriteModeText: string\n allModeText: string\n }\n>(({ mode, page, changePage, favoriteModeText, allModeText }) => {\n const theme = useTheme()\n const listHeadingId = useId()\n const isNotSearch = mode !== 'search'\n const isFavorite = isNotSearch && page === 'favorite'\n const isAll = isNotSearch && page === 'all'\n\n const unselectedItems = useMemo(\n () => [\n {\n id: 'favorite',\n title: <Translate>{favoriteModeText}</Translate>,\n prefix: <FaStarIcon color={isFavorite ? theme.textColor.white : undefined} />,\n current: isFavorite,\n },\n ],\n [isFavorite, favoriteModeText, theme.textColor.white],\n )\n const selectedItems = useMemo(\n () => [\n {\n id: 'all',\n title: <Translate>{allModeText}</Translate>,\n current: isAll,\n },\n ],\n [isAll, allModeText],\n )\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n changePage(e.currentTarget.value as Launcher['page'])\n },\n [changePage],\n )\n\n return (\n <div className={CLASS_NAMES.side}>\n <SideNav size=\"S\" className={CLASS_NAMES.unselectedSideNav} aria-label={favoriteModeText}>\n {unselectedItems.map((item) => (\n <SideNavItemButton\n key={item.id}\n id={item.id}\n current={item.current}\n onClick={onClick}\n prefix={item.prefix}\n >\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n\n <hr />\n\n <Section>\n <MemoizedAppListHeading id={listHeadingId} className={CLASS_NAMES.sideNavHeading} />\n <SideNav size=\"S\" className={CLASS_NAMES.selectedSideNav} aria-labelledby={listHeadingId}>\n {selectedItems.map((item) => (\n <SideNavItemButton key={item.id} id={item.id} current={item.current} onClick={onClick}>\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n </Section>\n\n <HelpLinkArea className={CLASS_NAMES.help}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/helpText\" defaultText=\"よく使うアプリとは\" />\n </Translate>\n </HelpLinkArea>\n </div>\n )\n})\n\nconst HelpLinkArea = memo<PropsWithChildren<{ className: string }>>(({ children, className }) => (\n <div className={className}>\n <HelpLink\n href=\"https://support.smarthr.jp/ja/help/articles/2bfd350d-8e8b-4bbd-a209-426d2eb302cc/\"\n target=\"_blank\"\n >\n {children}\n </HelpLink>\n </div>\n))\n\nconst MemoizedSubSubBlockHeading = memo<PropsWithChildren<{ className?: string }>>(\n ({ children, className }) => (\n <Heading type=\"subSubBlockTitle\" className={className}>\n <Translate>{children}</Translate>\n </Heading>\n ),\n)\n\nconst MemoizedAppListHeading = memo<{ id: string; className?: string }>(({ id, className }) => (\n <Heading type=\"subSubBlockTitle\" id={id} className={className}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/listText\" defaultText=\"アプリ一覧\" />\n </Translate>\n </Heading>\n))\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;AACE;AACE;;;AAGC;AACD;;;;AAIC;AACD;AACA;;;;AAIC;AACD;;;;AAIC;;AAED;AACA;;AAEA;;;AAGC;;AAEF;AACD;AACE;AACE;;AAEC;AACF;AACD;AACE;;AAEC;AACF;AACF;AACF;AAED;;;;;;;;AAqBI;;;;;;;;AAQJ;AAEO;;;AAeH;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;;AA0DH;AAEA;AAMA;AAME;AACA;AACA;AACA;AACA;AAEA;AAEI;AACE;AACA;AACA;AACA;AACD;AACF;AAGH;AAEI;AACE;AACA;AACA;AACD;AACF;AAIH;AAEI;AACF;AAIF;AAoCF;AAEA;AAWA;AAQA;;"}
1
+ {"version":3,"file":"AppLauncher.cjs","sources":["../../../../../src/components/AppHeader/components/desktop/AppLauncher.tsx"],"sourcesContent":["'use client'\n\nimport { type FC, type PropsWithChildren, memo, useCallback, useId, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer, useLocalize } from '../../../../intl'\nimport { UnstyledButton } from '../../../Button'\nimport { Heading } from '../../../Heading'\nimport { FaCircleXmarkIcon, FaStarIcon } from '../../../Icon'\nimport { SearchInput } from '../../../Input'\nimport { Cluster } from '../../../Layout'\nimport { Scroller } from '../../../Scroller'\nimport { Section } from '../../../SectioningContent'\nimport { SideNav, SideNavItemButton } from '../../../SideNav'\nimport { HelpLink } from '../../../TextLink'\nimport { useAppLauncher } from '../../hooks/useAppLauncher'\nimport { AppLauncherFeatures } from '../common/AppLauncherFeatures'\nimport { AppLauncherSortDropdown } from '../common/AppLauncherSortDropdown'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\ntype Props = {\n features: Array<Launcher['feature']>\n loading?: boolean\n error?: boolean\n}\n\nconst appLauncher = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-AppLauncher',\n 'shr-grid shr-h-[40rem] shr-w-[38rem] shr-grid-rows-[auto_1fr]',\n ],\n searchArea: [\n 'smarthr-ui-AppLauncher-searchArea',\n 'shr-border-b-shorthand shr-p-1',\n '[&_.smarthr-ui-Input]:shr-h-[42px]',\n ],\n inner: ['smarthr-ui-AppLauncher-inner', 'shr-grid shr-min-h-0 shr-grid-cols-[11rem_1fr]'],\n side: [\n 'smarthr-ui-AppLauncher-side',\n 'shr-border-r-shorthand shr-flex shr-flex-col shr-bg-column shr-pb-1 shr-pt-0.5',\n '[&_hr]:shr-m-0.5 [&_hr]:shr-h-[1px] [&_hr]:shr-border-none [&_hr]:shr-bg-border',\n ],\n sideNav: [\n '[&_.smarthr-ui-SideNav-item>button]:shr-px-1 [&_.smarthr-ui-SideNav-item>button]:shr-py-0.75',\n '[&_.smarthr-ui-SideNav-item>button>span]:shr-flex-nowrap',\n '[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-shrink-0 [&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-align-bottom',\n ],\n sideNavHeading: ['shr-px-1 shr-py-0.75 shr-text-xs shr-text-black'],\n help: ['smarthr-ui-AppLauncher-help', 'shr-mt-auto shr-px-1 shr-text-xs'],\n main: ['smarthr-ui-AppLauncher-main', 'shr-grid shr-min-h-0'],\n mainInner: ['shr-grid shr-min-h-0 shr-grid-rows-[auto_1fr]'],\n contentHead: [\n 'shr-min-h-[2rem] shr-px-1 shr-py-0.75',\n '[&_.smarthr-ui-Heading]:shr-text-black',\n ],\n scrollArea: ['shr-h-[509px]'],\n },\n variants: {\n noIcon: {\n true: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button]:shr-pl-1.5'],\n },\n },\n selected: {\n false: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-text-grey'],\n },\n },\n },\n})\n\nconst CLASS_NAMES = (() => {\n const {\n wrapper,\n searchArea,\n inner,\n side,\n sideNav,\n sideNavHeading,\n help,\n main,\n mainInner,\n contentHead,\n scrollArea,\n } = appLauncher()\n\n return {\n wrapper: wrapper(),\n searchArea: searchArea(),\n inner: inner(),\n side: side(),\n unselectedSideNav: sideNav({ selected: false }),\n selectedSideNav: sideNav({ noIcon: true, selected: true }),\n sideNavHeading: sideNavHeading(),\n help: help(),\n main: main(),\n mainInner: mainInner(),\n contentHead: contentHead(),\n scrollArea: scrollArea(),\n }\n})()\n\nexport const AppLauncher: FC<Props> = ({ features: baseFeatures, loading, error }) => {\n const {\n features,\n page,\n mode,\n sortType,\n searchQuery,\n changePage,\n setSortType,\n onChangeSearchQuery,\n onClickClearSearchQuery,\n callbackRef,\n } = useAppLauncher(baseFeatures)\n\n const translated = useLocalize({\n searchInputTitle: {\n id: 'smarthr-ui/AppHeader/Launcher/searchInputTitle',\n defaultText: 'アプリ名を入力してください。',\n },\n favoriteModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/favoriteModeText',\n defaultText: 'よく使うアプリ',\n },\n allModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/allModeText',\n defaultText: 'すべてのアプリ',\n },\n })\n\n return (\n <div ref={callbackRef} className={CLASS_NAMES.wrapper}>\n <div className={CLASS_NAMES.searchArea}>\n <SearchInput\n name=\"search\"\n value={searchQuery}\n title={translated.searchInputTitle}\n width=\"100%\"\n onChange={onChangeSearchQuery}\n tooltipMessage={<Translate>{translated.searchInputTitle}</Translate>}\n suffix={mode === 'search' && <ClearSearchButton onClick={onClickClearSearchQuery} />}\n />\n </div>\n\n <div className={CLASS_NAMES.inner}>\n <SideNavs\n mode={mode}\n page={page}\n changePage={changePage}\n favoriteModeText={translated.favoriteModeText}\n allModeText={translated.allModeText}\n />\n <div className={CLASS_NAMES.main}>\n <Section className={CLASS_NAMES.mainInner}>\n <Cluster align=\"center\" justify=\"space-between\" className={CLASS_NAMES.contentHead}>\n <MemoizedSubSubBlockHeading>\n {mode === 'search' ? (\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/searchResultText\"\n defaultText=\"検索結果\"\n />\n ) : page === 'favorite' ? (\n translated.favoriteModeText\n ) : (\n translated.allModeText\n )}\n </MemoizedSubSubBlockHeading>\n\n {(mode === 'search' || page === 'all') && (\n <AppLauncherSortDropdown sortType={sortType} handleSelectSortType={setSortType} />\n )}\n </Cluster>\n\n <Scroller className={CLASS_NAMES.scrollArea}>\n <AppLauncherFeatures\n features={features}\n page={page}\n loading={loading}\n error={error}\n />\n </Scroller>\n </Section>\n </div>\n </div>\n </div>\n )\n}\n\nconst ClearSearchButton = memo<{ onClick: () => void }>(({ onClick }) => (\n <UnstyledButton onClick={onClick}>\n <FaCircleXmarkIcon />\n </UnstyledButton>\n))\n\nconst SideNavs = memo<\n Pick<ReturnType<typeof useAppLauncher>, 'mode' | 'page' | 'changePage'> & {\n favoriteModeText: string\n allModeText: string\n }\n>(({ mode, page, changePage, favoriteModeText, allModeText }) => {\n const theme = useTheme()\n const listHeadingId = useId()\n const isNotSearch = mode !== 'search'\n const isFavorite = isNotSearch && page === 'favorite'\n const isAll = isNotSearch && page === 'all'\n\n const unselectedItems = useMemo(\n () => [\n {\n id: 'favorite',\n title: <Translate>{favoriteModeText}</Translate>,\n prefix: <FaStarIcon color={isFavorite ? theme.textColor.white : undefined} />,\n current: isFavorite,\n },\n ],\n [isFavorite, favoriteModeText, theme.textColor.white],\n )\n const selectedItems = useMemo(\n () => [\n {\n id: 'all',\n title: <Translate>{allModeText}</Translate>,\n current: isAll,\n },\n ],\n [isAll, allModeText],\n )\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n changePage(e.currentTarget.value as Launcher['page'])\n },\n [changePage],\n )\n\n return (\n <div className={CLASS_NAMES.side}>\n <SideNav size=\"S\" className={CLASS_NAMES.unselectedSideNav} aria-label={favoriteModeText}>\n {unselectedItems.map((item) => (\n <SideNavItemButton\n key={item.id}\n id={item.id}\n current={item.current}\n onClick={onClick}\n prefix={item.prefix}\n >\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n\n <hr />\n\n <Section>\n <MemoizedAppListHeading id={listHeadingId} className={CLASS_NAMES.sideNavHeading} />\n <SideNav size=\"S\" className={CLASS_NAMES.selectedSideNav} aria-labelledby={listHeadingId}>\n {selectedItems.map((item) => (\n <SideNavItemButton key={item.id} id={item.id} current={item.current} onClick={onClick}>\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n </Section>\n\n <HelpLinkArea className={CLASS_NAMES.help}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/helpText\" defaultText=\"よく使うアプリとは\" />\n </Translate>\n </HelpLinkArea>\n </div>\n )\n})\n\nconst HelpLinkArea = memo<PropsWithChildren<{ className: string }>>(({ children, className }) => (\n <div className={className}>\n <HelpLink\n href=\"https://support.smarthr.jp/ja/help/articles/2bfd350d-8e8b-4bbd-a209-426d2eb302cc/\"\n target=\"_blank\"\n >\n {children}\n </HelpLink>\n </div>\n))\n\nconst MemoizedSubSubBlockHeading = memo<PropsWithChildren<{ className?: string }>>(\n ({ children, className }) => (\n <Heading type=\"subSubBlockTitle\" className={className}>\n <Translate>{children}</Translate>\n </Heading>\n ),\n)\n\nconst MemoizedAppListHeading = memo<{ id: string; className?: string }>(({ id, className }) => (\n <Heading type=\"subSubBlockTitle\" id={id} className={className}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/listText\" defaultText=\"アプリ一覧\" />\n </Translate>\n </Heading>\n))\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;AACE;AACE;;;AAGC;AACD;;;;AAIC;AACD;AACA;;;;AAIC;AACD;;;;AAIC;;AAED;AACA;;AAEA;;;AAGC;;AAEF;AACD;AACE;AACE;;AAEC;AACF;AACD;AACE;;AAEC;AACF;AACF;AACF;AAED;;;;;;;;AAqBI;;;;;;;;AAQJ;AAEO;;;AAeH;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;;AA0DH;AAEA;AAMA;AAME;AACA;AACA;AACA;AACA;AAEA;AAEI;AACE;AACA;AACA;AACA;AACD;AACF;AAGH;AAEI;AACE;AACA;AACA;AACD;AACF;AAIH;AAEI;AACF;AAIF;AAoCF;AAEA;AAWA;AAQA;;"}
@@ -118,7 +118,7 @@ const AppLauncher = ({ features: baseFeatures, loading, error }) => {
118
118
  defaultText: 'すべてのアプリ',
119
119
  },
120
120
  });
121
- return (jsxs("div", { ref: callbackRef, className: CLASS_NAMES.wrapper, children: [jsx("div", { className: CLASS_NAMES.searchArea, children: jsx(SearchInput, { name: "search", value: searchQuery, title: translated.searchInputTitle, width: "100%", onChange: onChangeSearchQuery, tooltipMessage: jsx(Translate, { children: translated.searchInputTitle }), suffix: mode === 'search' && jsx(ClearSearchButton, { onClick: onClickClearSearchQuery }) }) }), jsxs("div", { className: CLASS_NAMES.inner, children: [jsx(SideNavs, { mode: mode, page: page, changePage: changePage, favoriteModeText: translated.favoriteModeText, allModeText: translated.allModeText }), jsx("div", { className: CLASS_NAMES.main, children: jsxs(Section, { className: CLASS_NAMES.mainInner, children: [jsxs(Cluster, { align: "center", justify: "space-between", className: CLASS_NAMES.contentHead, children: [jsx(MemoizedSubSubBlockHeading, { children: mode === 'search' ? (jsx(Localizer, { id: "smarthr-ui/AppHeader/Launcher/searchResultText", defaultText: "\u691C\u7D22\u7D50\u679C" })) : page === 'favorite' ? (translated.favoriteModeText) : (translated.allModeText) }), (mode === 'search' || page === 'all') && (jsx(AppLauncherSortDropdown, { sortType: sortType, onSelectSortType: setSortType }))] }), jsx(Scroller, { className: CLASS_NAMES.scrollArea, children: jsx(AppLauncherFeatures, { features: features, page: page, loading: loading, error: error }) })] }) })] })] }));
121
+ return (jsxs("div", { ref: callbackRef, className: CLASS_NAMES.wrapper, children: [jsx("div", { className: CLASS_NAMES.searchArea, children: jsx(SearchInput, { name: "search", value: searchQuery, title: translated.searchInputTitle, width: "100%", onChange: onChangeSearchQuery, tooltipMessage: jsx(Translate, { children: translated.searchInputTitle }), suffix: mode === 'search' && jsx(ClearSearchButton, { onClick: onClickClearSearchQuery }) }) }), jsxs("div", { className: CLASS_NAMES.inner, children: [jsx(SideNavs, { mode: mode, page: page, changePage: changePage, favoriteModeText: translated.favoriteModeText, allModeText: translated.allModeText }), jsx("div", { className: CLASS_NAMES.main, children: jsxs(Section, { className: CLASS_NAMES.mainInner, children: [jsxs(Cluster, { align: "center", justify: "space-between", className: CLASS_NAMES.contentHead, children: [jsx(MemoizedSubSubBlockHeading, { children: mode === 'search' ? (jsx(Localizer, { id: "smarthr-ui/AppHeader/Launcher/searchResultText", defaultText: "\u691C\u7D22\u7D50\u679C" })) : page === 'favorite' ? (translated.favoriteModeText) : (translated.allModeText) }), (mode === 'search' || page === 'all') && (jsx(AppLauncherSortDropdown, { sortType: sortType, handleSelectSortType: setSortType }))] }), jsx(Scroller, { className: CLASS_NAMES.scrollArea, children: jsx(AppLauncherFeatures, { features: features, page: page, loading: loading, error: error }) })] }) })] })] }));
122
122
  };
123
123
  const ClearSearchButton = memo(({ onClick }) => (jsx(UnstyledButton, { onClick: onClick, children: jsx(FaCircleXmarkIcon, {}) })));
124
124
  const SideNavs = memo(({ mode, page, changePage, favoriteModeText, allModeText }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AppLauncher.js","sources":["../../../../../src/components/AppHeader/components/desktop/AppLauncher.tsx"],"sourcesContent":["'use client'\n\nimport { type FC, type PropsWithChildren, memo, useCallback, useId, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer, useLocalize } from '../../../../intl'\nimport { UnstyledButton } from '../../../Button'\nimport { Heading } from '../../../Heading'\nimport { FaCircleXmarkIcon, FaStarIcon } from '../../../Icon'\nimport { SearchInput } from '../../../Input'\nimport { Cluster } from '../../../Layout'\nimport { Scroller } from '../../../Scroller'\nimport { Section } from '../../../SectioningContent'\nimport { SideNav, SideNavItemButton } from '../../../SideNav'\nimport { HelpLink } from '../../../TextLink'\nimport { useAppLauncher } from '../../hooks/useAppLauncher'\nimport { AppLauncherFeatures } from '../common/AppLauncherFeatures'\nimport { AppLauncherSortDropdown } from '../common/AppLauncherSortDropdown'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\ntype Props = {\n features: Array<Launcher['feature']>\n loading?: boolean\n error?: boolean\n}\n\nconst appLauncher = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-AppLauncher',\n 'shr-grid shr-h-[40rem] shr-w-[38rem] shr-grid-rows-[auto_1fr]',\n ],\n searchArea: [\n 'smarthr-ui-AppLauncher-searchArea',\n 'shr-border-b-shorthand shr-p-1',\n '[&_.smarthr-ui-Input]:shr-h-[42px]',\n ],\n inner: ['smarthr-ui-AppLauncher-inner', 'shr-grid shr-min-h-0 shr-grid-cols-[11rem_1fr]'],\n side: [\n 'smarthr-ui-AppLauncher-side',\n 'shr-border-r-shorthand shr-flex shr-flex-col shr-bg-column shr-pb-1 shr-pt-0.5',\n '[&_hr]:shr-m-0.5 [&_hr]:shr-h-[1px] [&_hr]:shr-border-none [&_hr]:shr-bg-border',\n ],\n sideNav: [\n '[&_.smarthr-ui-SideNav-item>button]:shr-px-1 [&_.smarthr-ui-SideNav-item>button]:shr-py-0.75',\n '[&_.smarthr-ui-SideNav-item>button>span]:shr-flex-nowrap',\n '[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-shrink-0 [&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-align-bottom',\n ],\n sideNavHeading: ['shr-px-1 shr-py-0.75 shr-text-xs shr-text-black'],\n help: ['smarthr-ui-AppLauncher-help', 'shr-mt-auto shr-px-1 shr-text-xs'],\n main: ['smarthr-ui-AppLauncher-main', 'shr-grid shr-min-h-0'],\n mainInner: ['shr-grid shr-min-h-0 shr-grid-rows-[auto_1fr]'],\n contentHead: [\n 'shr-min-h-[2rem] shr-px-1 shr-py-0.75',\n '[&_.smarthr-ui-Heading]:shr-text-black',\n ],\n scrollArea: ['shr-h-[509px]'],\n },\n variants: {\n noIcon: {\n true: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button]:shr-pl-1.5'],\n },\n },\n selected: {\n false: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-text-grey'],\n },\n },\n },\n})\n\nconst CLASS_NAMES = (() => {\n const {\n wrapper,\n searchArea,\n inner,\n side,\n sideNav,\n sideNavHeading,\n help,\n main,\n mainInner,\n contentHead,\n scrollArea,\n } = appLauncher()\n\n return {\n wrapper: wrapper(),\n searchArea: searchArea(),\n inner: inner(),\n side: side(),\n unselectedSideNav: sideNav({ selected: false }),\n selectedSideNav: sideNav({ noIcon: true, selected: true }),\n sideNavHeading: sideNavHeading(),\n help: help(),\n main: main(),\n mainInner: mainInner(),\n contentHead: contentHead(),\n scrollArea: scrollArea(),\n }\n})()\n\nexport const AppLauncher: FC<Props> = ({ features: baseFeatures, loading, error }) => {\n const {\n features,\n page,\n mode,\n sortType,\n searchQuery,\n changePage,\n setSortType,\n onChangeSearchQuery,\n onClickClearSearchQuery,\n callbackRef,\n } = useAppLauncher(baseFeatures)\n\n const translated = useLocalize({\n searchInputTitle: {\n id: 'smarthr-ui/AppHeader/Launcher/searchInputTitle',\n defaultText: 'アプリ名を入力してください。',\n },\n favoriteModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/favoriteModeText',\n defaultText: 'よく使うアプリ',\n },\n allModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/allModeText',\n defaultText: 'すべてのアプリ',\n },\n })\n\n return (\n <div ref={callbackRef} className={CLASS_NAMES.wrapper}>\n <div className={CLASS_NAMES.searchArea}>\n <SearchInput\n name=\"search\"\n value={searchQuery}\n title={translated.searchInputTitle}\n width=\"100%\"\n onChange={onChangeSearchQuery}\n tooltipMessage={<Translate>{translated.searchInputTitle}</Translate>}\n suffix={mode === 'search' && <ClearSearchButton onClick={onClickClearSearchQuery} />}\n />\n </div>\n\n <div className={CLASS_NAMES.inner}>\n <SideNavs\n mode={mode}\n page={page}\n changePage={changePage}\n favoriteModeText={translated.favoriteModeText}\n allModeText={translated.allModeText}\n />\n <div className={CLASS_NAMES.main}>\n <Section className={CLASS_NAMES.mainInner}>\n <Cluster align=\"center\" justify=\"space-between\" className={CLASS_NAMES.contentHead}>\n <MemoizedSubSubBlockHeading>\n {mode === 'search' ? (\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/searchResultText\"\n defaultText=\"検索結果\"\n />\n ) : page === 'favorite' ? (\n translated.favoriteModeText\n ) : (\n translated.allModeText\n )}\n </MemoizedSubSubBlockHeading>\n\n {(mode === 'search' || page === 'all') && (\n <AppLauncherSortDropdown sortType={sortType} onSelectSortType={setSortType} />\n )}\n </Cluster>\n\n <Scroller className={CLASS_NAMES.scrollArea}>\n <AppLauncherFeatures\n features={features}\n page={page}\n loading={loading}\n error={error}\n />\n </Scroller>\n </Section>\n </div>\n </div>\n </div>\n )\n}\n\nconst ClearSearchButton = memo<{ onClick: () => void }>(({ onClick }) => (\n <UnstyledButton onClick={onClick}>\n <FaCircleXmarkIcon />\n </UnstyledButton>\n))\n\nconst SideNavs = memo<\n Pick<ReturnType<typeof useAppLauncher>, 'mode' | 'page' | 'changePage'> & {\n favoriteModeText: string\n allModeText: string\n }\n>(({ mode, page, changePage, favoriteModeText, allModeText }) => {\n const theme = useTheme()\n const listHeadingId = useId()\n const isNotSearch = mode !== 'search'\n const isFavorite = isNotSearch && page === 'favorite'\n const isAll = isNotSearch && page === 'all'\n\n const unselectedItems = useMemo(\n () => [\n {\n id: 'favorite',\n title: <Translate>{favoriteModeText}</Translate>,\n prefix: <FaStarIcon color={isFavorite ? theme.textColor.white : undefined} />,\n current: isFavorite,\n },\n ],\n [isFavorite, favoriteModeText, theme.textColor.white],\n )\n const selectedItems = useMemo(\n () => [\n {\n id: 'all',\n title: <Translate>{allModeText}</Translate>,\n current: isAll,\n },\n ],\n [isAll, allModeText],\n )\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n changePage(e.currentTarget.value as Launcher['page'])\n },\n [changePage],\n )\n\n return (\n <div className={CLASS_NAMES.side}>\n <SideNav size=\"S\" className={CLASS_NAMES.unselectedSideNav} aria-label={favoriteModeText}>\n {unselectedItems.map((item) => (\n <SideNavItemButton\n key={item.id}\n id={item.id}\n current={item.current}\n onClick={onClick}\n prefix={item.prefix}\n >\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n\n <hr />\n\n <Section>\n <MemoizedAppListHeading id={listHeadingId} className={CLASS_NAMES.sideNavHeading} />\n <SideNav size=\"S\" className={CLASS_NAMES.selectedSideNav} aria-labelledby={listHeadingId}>\n {selectedItems.map((item) => (\n <SideNavItemButton key={item.id} id={item.id} current={item.current} onClick={onClick}>\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n </Section>\n\n <HelpLinkArea className={CLASS_NAMES.help}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/helpText\" defaultText=\"よく使うアプリとは\" />\n </Translate>\n </HelpLinkArea>\n </div>\n )\n})\n\nconst HelpLinkArea = memo<PropsWithChildren<{ className: string }>>(({ children, className }) => (\n <div className={className}>\n <HelpLink\n href=\"https://support.smarthr.jp/ja/help/articles/2bfd350d-8e8b-4bbd-a209-426d2eb302cc/\"\n target=\"_blank\"\n >\n {children}\n </HelpLink>\n </div>\n))\n\nconst MemoizedSubSubBlockHeading = memo<PropsWithChildren<{ className?: string }>>(\n ({ children, className }) => (\n <Heading type=\"subSubBlockTitle\" className={className}>\n <Translate>{children}</Translate>\n </Heading>\n ),\n)\n\nconst MemoizedAppListHeading = memo<{ id: string; className?: string }>(({ id, className }) => (\n <Heading type=\"subSubBlockTitle\" id={id} className={className}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/listText\" defaultText=\"アプリ一覧\" />\n </Translate>\n </Heading>\n))\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;AACE;AACE;;;AAGC;AACD;;;;AAIC;AACD;AACA;;;;AAIC;AACD;;;;AAIC;;AAED;AACA;;AAEA;;;AAGC;;AAEF;AACD;AACE;AACE;;AAEC;AACF;AACD;AACE;;AAEC;AACF;AACF;AACF;AAED;;;;;;;;AAqBI;;;;;;;;AAQJ;AAEO;;;AAeH;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;;AA0DH;AAEA;AAMA;AAME;AACA;AACA;AACA;AACA;AAEA;AAEI;AACE;AACA;AACA;AACA;AACD;AACF;AAGH;AAEI;AACE;AACA;AACA;AACD;AACF;AAIH;AAEI;AACF;AAIF;AAoCF;AAEA;AAWA;AAQA;;"}
1
+ {"version":3,"file":"AppLauncher.js","sources":["../../../../../src/components/AppHeader/components/desktop/AppLauncher.tsx"],"sourcesContent":["'use client'\n\nimport { type FC, type PropsWithChildren, memo, useCallback, useId, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { useTheme } from '../../../../hooks/client/useTheme'\nimport { Localizer, useLocalize } from '../../../../intl'\nimport { UnstyledButton } from '../../../Button'\nimport { Heading } from '../../../Heading'\nimport { FaCircleXmarkIcon, FaStarIcon } from '../../../Icon'\nimport { SearchInput } from '../../../Input'\nimport { Cluster } from '../../../Layout'\nimport { Scroller } from '../../../Scroller'\nimport { Section } from '../../../SectioningContent'\nimport { SideNav, SideNavItemButton } from '../../../SideNav'\nimport { HelpLink } from '../../../TextLink'\nimport { useAppLauncher } from '../../hooks/useAppLauncher'\nimport { AppLauncherFeatures } from '../common/AppLauncherFeatures'\nimport { AppLauncherSortDropdown } from '../common/AppLauncherSortDropdown'\nimport { Translate } from '../common/Translate'\n\nimport type { Launcher } from '../../types'\n\ntype Props = {\n features: Array<Launcher['feature']>\n loading?: boolean\n error?: boolean\n}\n\nconst appLauncher = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-AppLauncher',\n 'shr-grid shr-h-[40rem] shr-w-[38rem] shr-grid-rows-[auto_1fr]',\n ],\n searchArea: [\n 'smarthr-ui-AppLauncher-searchArea',\n 'shr-border-b-shorthand shr-p-1',\n '[&_.smarthr-ui-Input]:shr-h-[42px]',\n ],\n inner: ['smarthr-ui-AppLauncher-inner', 'shr-grid shr-min-h-0 shr-grid-cols-[11rem_1fr]'],\n side: [\n 'smarthr-ui-AppLauncher-side',\n 'shr-border-r-shorthand shr-flex shr-flex-col shr-bg-column shr-pb-1 shr-pt-0.5',\n '[&_hr]:shr-m-0.5 [&_hr]:shr-h-[1px] [&_hr]:shr-border-none [&_hr]:shr-bg-border',\n ],\n sideNav: [\n '[&_.smarthr-ui-SideNav-item>button]:shr-px-1 [&_.smarthr-ui-SideNav-item>button]:shr-py-0.75',\n '[&_.smarthr-ui-SideNav-item>button>span]:shr-flex-nowrap',\n '[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-shrink-0 [&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-align-bottom',\n ],\n sideNavHeading: ['shr-px-1 shr-py-0.75 shr-text-xs shr-text-black'],\n help: ['smarthr-ui-AppLauncher-help', 'shr-mt-auto shr-px-1 shr-text-xs'],\n main: ['smarthr-ui-AppLauncher-main', 'shr-grid shr-min-h-0'],\n mainInner: ['shr-grid shr-min-h-0 shr-grid-rows-[auto_1fr]'],\n contentHead: [\n 'shr-min-h-[2rem] shr-px-1 shr-py-0.75',\n '[&_.smarthr-ui-Heading]:shr-text-black',\n ],\n scrollArea: ['shr-h-[509px]'],\n },\n variants: {\n noIcon: {\n true: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button]:shr-pl-1.5'],\n },\n },\n selected: {\n false: {\n sideNav: ['[&_.smarthr-ui-SideNav-item>button_.smarthr-ui-Icon]:shr-text-grey'],\n },\n },\n },\n})\n\nconst CLASS_NAMES = (() => {\n const {\n wrapper,\n searchArea,\n inner,\n side,\n sideNav,\n sideNavHeading,\n help,\n main,\n mainInner,\n contentHead,\n scrollArea,\n } = appLauncher()\n\n return {\n wrapper: wrapper(),\n searchArea: searchArea(),\n inner: inner(),\n side: side(),\n unselectedSideNav: sideNav({ selected: false }),\n selectedSideNav: sideNav({ noIcon: true, selected: true }),\n sideNavHeading: sideNavHeading(),\n help: help(),\n main: main(),\n mainInner: mainInner(),\n contentHead: contentHead(),\n scrollArea: scrollArea(),\n }\n})()\n\nexport const AppLauncher: FC<Props> = ({ features: baseFeatures, loading, error }) => {\n const {\n features,\n page,\n mode,\n sortType,\n searchQuery,\n changePage,\n setSortType,\n onChangeSearchQuery,\n onClickClearSearchQuery,\n callbackRef,\n } = useAppLauncher(baseFeatures)\n\n const translated = useLocalize({\n searchInputTitle: {\n id: 'smarthr-ui/AppHeader/Launcher/searchInputTitle',\n defaultText: 'アプリ名を入力してください。',\n },\n favoriteModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/favoriteModeText',\n defaultText: 'よく使うアプリ',\n },\n allModeText: {\n id: 'smarthr-ui/AppHeader/Launcher/allModeText',\n defaultText: 'すべてのアプリ',\n },\n })\n\n return (\n <div ref={callbackRef} className={CLASS_NAMES.wrapper}>\n <div className={CLASS_NAMES.searchArea}>\n <SearchInput\n name=\"search\"\n value={searchQuery}\n title={translated.searchInputTitle}\n width=\"100%\"\n onChange={onChangeSearchQuery}\n tooltipMessage={<Translate>{translated.searchInputTitle}</Translate>}\n suffix={mode === 'search' && <ClearSearchButton onClick={onClickClearSearchQuery} />}\n />\n </div>\n\n <div className={CLASS_NAMES.inner}>\n <SideNavs\n mode={mode}\n page={page}\n changePage={changePage}\n favoriteModeText={translated.favoriteModeText}\n allModeText={translated.allModeText}\n />\n <div className={CLASS_NAMES.main}>\n <Section className={CLASS_NAMES.mainInner}>\n <Cluster align=\"center\" justify=\"space-between\" className={CLASS_NAMES.contentHead}>\n <MemoizedSubSubBlockHeading>\n {mode === 'search' ? (\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/searchResultText\"\n defaultText=\"検索結果\"\n />\n ) : page === 'favorite' ? (\n translated.favoriteModeText\n ) : (\n translated.allModeText\n )}\n </MemoizedSubSubBlockHeading>\n\n {(mode === 'search' || page === 'all') && (\n <AppLauncherSortDropdown sortType={sortType} handleSelectSortType={setSortType} />\n )}\n </Cluster>\n\n <Scroller className={CLASS_NAMES.scrollArea}>\n <AppLauncherFeatures\n features={features}\n page={page}\n loading={loading}\n error={error}\n />\n </Scroller>\n </Section>\n </div>\n </div>\n </div>\n )\n}\n\nconst ClearSearchButton = memo<{ onClick: () => void }>(({ onClick }) => (\n <UnstyledButton onClick={onClick}>\n <FaCircleXmarkIcon />\n </UnstyledButton>\n))\n\nconst SideNavs = memo<\n Pick<ReturnType<typeof useAppLauncher>, 'mode' | 'page' | 'changePage'> & {\n favoriteModeText: string\n allModeText: string\n }\n>(({ mode, page, changePage, favoriteModeText, allModeText }) => {\n const theme = useTheme()\n const listHeadingId = useId()\n const isNotSearch = mode !== 'search'\n const isFavorite = isNotSearch && page === 'favorite'\n const isAll = isNotSearch && page === 'all'\n\n const unselectedItems = useMemo(\n () => [\n {\n id: 'favorite',\n title: <Translate>{favoriteModeText}</Translate>,\n prefix: <FaStarIcon color={isFavorite ? theme.textColor.white : undefined} />,\n current: isFavorite,\n },\n ],\n [isFavorite, favoriteModeText, theme.textColor.white],\n )\n const selectedItems = useMemo(\n () => [\n {\n id: 'all',\n title: <Translate>{allModeText}</Translate>,\n current: isAll,\n },\n ],\n [isAll, allModeText],\n )\n\n const onClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n changePage(e.currentTarget.value as Launcher['page'])\n },\n [changePage],\n )\n\n return (\n <div className={CLASS_NAMES.side}>\n <SideNav size=\"S\" className={CLASS_NAMES.unselectedSideNav} aria-label={favoriteModeText}>\n {unselectedItems.map((item) => (\n <SideNavItemButton\n key={item.id}\n id={item.id}\n current={item.current}\n onClick={onClick}\n prefix={item.prefix}\n >\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n\n <hr />\n\n <Section>\n <MemoizedAppListHeading id={listHeadingId} className={CLASS_NAMES.sideNavHeading} />\n <SideNav size=\"S\" className={CLASS_NAMES.selectedSideNav} aria-labelledby={listHeadingId}>\n {selectedItems.map((item) => (\n <SideNavItemButton key={item.id} id={item.id} current={item.current} onClick={onClick}>\n {item.title}\n </SideNavItemButton>\n ))}\n </SideNav>\n </Section>\n\n <HelpLinkArea className={CLASS_NAMES.help}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/helpText\" defaultText=\"よく使うアプリとは\" />\n </Translate>\n </HelpLinkArea>\n </div>\n )\n})\n\nconst HelpLinkArea = memo<PropsWithChildren<{ className: string }>>(({ children, className }) => (\n <div className={className}>\n <HelpLink\n href=\"https://support.smarthr.jp/ja/help/articles/2bfd350d-8e8b-4bbd-a209-426d2eb302cc/\"\n target=\"_blank\"\n >\n {children}\n </HelpLink>\n </div>\n))\n\nconst MemoizedSubSubBlockHeading = memo<PropsWithChildren<{ className?: string }>>(\n ({ children, className }) => (\n <Heading type=\"subSubBlockTitle\" className={className}>\n <Translate>{children}</Translate>\n </Heading>\n ),\n)\n\nconst MemoizedAppListHeading = memo<{ id: string; className?: string }>(({ id, className }) => (\n <Heading type=\"subSubBlockTitle\" id={id} className={className}>\n <Translate>\n <Localizer id=\"smarthr-ui/AppHeader/Launcher/listText\" defaultText=\"アプリ一覧\" />\n </Translate>\n </Heading>\n))\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;AACE;AACE;;;AAGC;AACD;;;;AAIC;AACD;AACA;;;;AAIC;AACD;;;;AAIC;;AAED;AACA;;AAEA;;;AAGC;;AAEF;AACD;AACE;AACE;;AAEC;AACF;AACD;AACE;;AAEC;AACF;AACF;AACF;AAED;;;;;;;;AAqBI;;;;;;;;AAQJ;AAEO;;;AAeH;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;;AA0DH;AAEA;AAMA;AAME;AACA;AACA;AACA;AACA;AAEA;AAEI;AACE;AACA;AACA;AACA;AACD;AACF;AAGH;AAEI;AACE;AACA;AACA;AACD;AACF;AAIH;AAEI;AACF;AAIF;AAoCF;AAEA;AAWA;AAQA;;"}
@@ -134,6 +134,5 @@ const DropdownContentButton = React.memo(({ href, children, className }) => href
134
134
  const DisplayNameDropdownTrigger = React.memo(({ children, className }) => (jsxRuntime.jsx(components_Dropdown_client_DropdownTrigger.DropdownTrigger, { children: jsxRuntime.jsx(components_Button_Button.Button, { variant: "text", className: className, suffix: jsxRuntime.jsx(components_Icon_FaIcon.FaCaretDownIcon, {}), children: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: children }) }) })));
135
135
  const AccountLink = React.memo(({ href, children }) => href && (jsxRuntime.jsx(components_AppHeader_components_common_CommonButton.CommonButton, { elementAs: "a", href: href, target: "_blank", rel: "noopener noreferrer", prefix: jsxRuntime.jsx(components_Icon_FaIcon.FaGearIcon, {}), children: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: children }) })));
136
136
 
137
- exports.ActualUserInfo = ActualUserInfo;
138
137
  exports.UserInfo = UserInfo;
139
138
  //# sourceMappingURL=UserInfo.cjs.map