@baton8/general-components 1.0.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.
- package/.babelrc.json +16 -0
- package/.eslintrc.json +11 -0
- package/.github/workflows/chromatic.yml +43 -0
- package/.github/workflows/doc.yml +53 -0
- package/.github/workflows/review.yml +18 -0
- package/README.md +11 -0
- package/dist/components/atoms/asyncSelect/asyncSelect.d.ts +67 -0
- package/dist/components/atoms/asyncSelect/asyncSelect.stories.d.ts +6 -0
- package/dist/components/atoms/asyncSelect/asyncSelectOption.d.ts +26 -0
- package/dist/components/atoms/asyncSelect/index.d.ts +2 -0
- package/dist/components/atoms/avatar/avatar.d.ts +27 -0
- package/dist/components/atoms/avatar/avatar.stories.d.ts +7 -0
- package/dist/components/atoms/avatar/avatarFallbackIcon.d.ts +15 -0
- package/dist/components/atoms/avatar/avatarFallbackLetter.d.ts +20 -0
- package/dist/components/atoms/avatar/index.d.ts +3 -0
- package/dist/components/atoms/badge/badge.d.ts +34 -0
- package/dist/components/atoms/badge/badge.stories.d.ts +11 -0
- package/dist/components/atoms/badge/badgeIconContainer.d.ts +16 -0
- package/dist/components/atoms/badge/index.d.ts +2 -0
- package/dist/components/atoms/barMeter/barMeter.d.ts +45 -0
- package/dist/components/atoms/barMeter/barMeter.stories.d.ts +10 -0
- package/dist/components/atoms/barMeter/barMeterValue.d.ts +32 -0
- package/dist/components/atoms/barMeter/barMeterValue.stories.d.ts +7 -0
- package/dist/components/atoms/barMeter/barMeterValueIconContainer.d.ts +17 -0
- package/dist/components/atoms/barMeter/context.d.ts +8 -0
- package/dist/components/atoms/barMeter/index.d.ts +3 -0
- package/dist/components/atoms/barProgress/barProgress.d.ts +38 -0
- package/dist/components/atoms/barProgress/barProgress.stories.d.ts +8 -0
- package/dist/components/atoms/barProgress/index.d.ts +1 -0
- package/dist/components/atoms/button/button.d.ts +79 -0
- package/dist/components/atoms/button/button.stories.d.ts +13 -0
- package/dist/components/atoms/button/buttonIconContainer.d.ts +16 -0
- package/dist/components/atoms/button/hotkeyView.d.ts +6 -0
- package/dist/components/atoms/button/index.d.ts +2 -0
- package/dist/components/atoms/buttonLink/buttonLink.d.ts +83 -0
- package/dist/components/atoms/buttonLink/buttonLink.stories.d.ts +13 -0
- package/dist/components/atoms/buttonLink/buttonLinkIconContainer.d.ts +16 -0
- package/dist/components/atoms/buttonLink/index.d.ts +2 -0
- package/dist/components/atoms/checkableContainer/checkableContainer.d.ts +37 -0
- package/dist/components/atoms/checkableContainer/checkableContainer.stories.d.ts +9 -0
- package/dist/components/atoms/checkableContainer/checkableLabel.d.ts +29 -0
- package/dist/components/atoms/checkableContainer/checkableLabel.stories.d.ts +7 -0
- package/dist/components/atoms/checkableContainer/index.d.ts +2 -0
- package/dist/components/atoms/checkbox/checkbox.d.ts +56 -0
- package/dist/components/atoms/checkbox/checkbox.stories.d.ts +15 -0
- package/dist/components/atoms/checkbox/index.d.ts +1 -0
- package/dist/components/atoms/controlContainer/controlContainer.d.ts +56 -0
- package/dist/components/atoms/controlContainer/controlContainer.stories.d.ts +13 -0
- package/dist/components/atoms/controlContainer/controlErrorMessage.d.ts +20 -0
- package/dist/components/atoms/controlContainer/controlErrorMessage.stories.d.ts +7 -0
- package/dist/components/atoms/controlContainer/controlHelper.d.ts +20 -0
- package/dist/components/atoms/controlContainer/controlHelper.stories.d.ts +7 -0
- package/dist/components/atoms/controlContainer/controlLabel.d.ts +20 -0
- package/dist/components/atoms/controlContainer/controlLabel.stories.d.ts +7 -0
- package/dist/components/atoms/controlContainer/index.d.ts +4 -0
- package/dist/components/atoms/divider/divider.d.ts +15 -0
- package/dist/components/atoms/divider/divider.stories.d.ts +8 -0
- package/dist/components/atoms/divider/index.d.ts +1 -0
- package/dist/components/atoms/fileInput/fileInput.d.ts +57 -0
- package/dist/components/atoms/fileInput/fileInput.stories.d.ts +10 -0
- package/dist/components/atoms/fileInput/index.d.ts +1 -0
- package/dist/components/atoms/generalIcon/generalIcon.d.ts +58 -0
- package/dist/components/atoms/generalIcon/generalIcon.stories.d.ts +7 -0
- package/dist/components/atoms/generalIcon/index.d.ts +1 -0
- package/dist/components/atoms/heading/heading.d.ts +21 -0
- package/dist/components/atoms/heading/heading.stories.d.ts +7 -0
- package/dist/components/atoms/heading/index.d.ts +1 -0
- package/dist/components/atoms/icon/icon.d.ts +28 -0
- package/dist/components/atoms/icon/icon.stories.d.ts +7 -0
- package/dist/components/atoms/icon/iconData.d.ts +33 -0
- package/dist/components/atoms/icon/iconDefinitions.d.ts +8 -0
- package/dist/components/atoms/icon/index.d.ts +1 -0
- package/dist/components/atoms/iconButton/iconButton.d.ts +71 -0
- package/dist/components/atoms/iconButton/iconButton.stories.d.ts +11 -0
- package/dist/components/atoms/iconButton/index.d.ts +1 -0
- package/dist/components/atoms/input/index.d.ts +3 -0
- package/dist/components/atoms/input/input.d.ts +80 -0
- package/dist/components/atoms/input/input.stories.d.ts +20 -0
- package/dist/components/atoms/input/inputLeftAddon.d.ts +16 -0
- package/dist/components/atoms/input/inputRightAddon.d.ts +16 -0
- package/dist/components/atoms/link/index.d.ts +2 -0
- package/dist/components/atoms/link/link.d.ts +79 -0
- package/dist/components/atoms/link/link.stories.d.ts +8 -0
- package/dist/components/atoms/link/linkIconContainer.d.ts +16 -0
- package/dist/components/atoms/loadingIcon/index.d.ts +1 -0
- package/dist/components/atoms/loadingIcon/loadingIcon.d.ts +20 -0
- package/dist/components/atoms/loadingIcon/loadingIcon.stories.d.ts +7 -0
- package/dist/components/atoms/modal/index.d.ts +1 -0
- package/dist/components/atoms/modal/modal.d.ts +27 -0
- package/dist/components/atoms/modal/modal.stories.d.ts +7 -0
- package/dist/components/atoms/multiLineText/index.d.ts +1 -0
- package/dist/components/atoms/multiLineText/multiLineText.d.ts +49 -0
- package/dist/components/atoms/multiLineText/multiLineText.stories.d.ts +9 -0
- package/dist/components/atoms/numberInput/index.d.ts +2 -0
- package/dist/components/atoms/numberInput/numberInput.d.ts +58 -0
- package/dist/components/atoms/numberInput/numberInput.stories.d.ts +10 -0
- package/dist/components/atoms/numberInput/numberInputLeftAddon.d.ts +15 -0
- package/dist/components/atoms/passwordInput/index.d.ts +3 -0
- package/dist/components/atoms/passwordInput/passwordInput.d.ts +60 -0
- package/dist/components/atoms/passwordInput/passwordInput.stories.d.ts +13 -0
- package/dist/components/atoms/passwordInput/passwordInputLeftAddon.d.ts +16 -0
- package/dist/components/atoms/passwordInput/passwordInputRightAddon.d.ts +16 -0
- package/dist/components/atoms/radio/index.d.ts +1 -0
- package/dist/components/atoms/radio/radio.d.ts +53 -0
- package/dist/components/atoms/radio/radio.stories.d.ts +13 -0
- package/dist/components/atoms/radioGroup/alignedRadioGroup.d.ts +15 -0
- package/dist/components/atoms/radioGroup/index.d.ts +2 -0
- package/dist/components/atoms/radioGroup/radioGroup.d.ts +15 -0
- package/dist/components/atoms/radioGroup/radioGroup.stories.d.ts +8 -0
- package/dist/components/atoms/root/index.d.ts +1 -0
- package/dist/components/atoms/root/root.d.ts +76 -0
- package/dist/components/atoms/root/root.stories.d.ts +7 -0
- package/dist/components/atoms/root/scrollGlobalStyle.d.ts +1 -0
- package/dist/components/atoms/root/svgDefinition.d.ts +8 -0
- package/dist/components/atoms/scroll/index.d.ts +1 -0
- package/dist/components/atoms/scroll/scroll.d.ts +31 -0
- package/dist/components/atoms/scroll/scroll.stories.d.ts +8 -0
- package/dist/components/atoms/secondaryHeading/index.d.ts +1 -0
- package/dist/components/atoms/secondaryHeading/secondaryHeading.d.ts +20 -0
- package/dist/components/atoms/secondaryHeading/secondaryHeading.stories.d.ts +7 -0
- package/dist/components/atoms/select/context.d.ts +10 -0
- package/dist/components/atoms/select/index.d.ts +7 -0
- package/dist/components/atoms/select/pageSizeSelect.d.ts +35 -0
- package/dist/components/atoms/select/pageSizeSelect.stories.d.ts +7 -0
- package/dist/components/atoms/select/pageSizeSelectAuto.d.ts +11 -0
- package/dist/components/atoms/select/select.d.ts +109 -0
- package/dist/components/atoms/select/select.stories.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentClearIndicator.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentControl.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentDropdownIndicator.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentIndicatorsContainer.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentInput.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentLoadingMessage.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentMenu.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentMenuList.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentMenuPortal.d.ts +8 -0
- package/dist/components/atoms/select/selectComponentNoOptionMessage.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentOption.d.ts +13 -0
- package/dist/components/atoms/select/selectComponentPlacement.d.ts +13 -0
- package/dist/components/atoms/select/selectHook.d.ts +8 -0
- package/dist/components/atoms/select/selectOption.d.ts +36 -0
- package/dist/components/atoms/select/selectOption.stories.d.ts +7 -0
- package/dist/components/atoms/select/selectOptionIconContainer.d.ts +16 -0
- package/dist/components/atoms/select/sortOrderSelect.d.ts +34 -0
- package/dist/components/atoms/select/sortOrderSelect.stories.d.ts +8 -0
- package/dist/components/atoms/singleLineText/index.d.ts +1 -0
- package/dist/components/atoms/singleLineText/singleLineText.d.ts +27 -0
- package/dist/components/atoms/singleLineText/singleLineText.stories.d.ts +8 -0
- package/dist/components/atoms/switch/index.d.ts +1 -0
- package/dist/components/atoms/switch/switch.d.ts +53 -0
- package/dist/components/atoms/switch/switch.stories.d.ts +13 -0
- package/dist/components/atoms/tag/index.d.ts +2 -0
- package/dist/components/atoms/tag/tag.d.ts +24 -0
- package/dist/components/atoms/tag/tag.stories.d.ts +8 -0
- package/dist/components/atoms/tag/tagIconContainer.d.ts +15 -0
- package/dist/components/atoms/tagList/index.d.ts +1 -0
- package/dist/components/atoms/tagList/tagList.d.ts +19 -0
- package/dist/components/atoms/tagList/tagList.stories.d.ts +8 -0
- package/dist/components/atoms/textButton/index.d.ts +2 -0
- package/dist/components/atoms/textButton/textButton.d.ts +43 -0
- package/dist/components/atoms/textButton/textButton.stories.d.ts +8 -0
- package/dist/components/atoms/textButton/textButtonIconContainer.d.ts +16 -0
- package/dist/components/atoms/textarea/index.d.ts +1 -0
- package/dist/components/atoms/textarea/textarea.d.ts +57 -0
- package/dist/components/atoms/textarea/textarea.stories.d.ts +11 -0
- package/dist/components/atoms/visuallyHidden/index.d.ts +1 -0
- package/dist/components/atoms/visuallyHidden/visuallyHidden.d.ts +20 -0
- package/dist/components/atoms/visuallyHidden/visuallyHidden.stories.d.ts +7 -0
- package/dist/components/functions/shorthands.d.ts +43 -0
- package/dist/components/functions/utilities.d.ts +94 -0
- package/dist/components/index.d.ts +52 -0
- package/dist/components/modules/bulkOperationContainer/bulkOperationButton.d.ts +17 -0
- package/dist/components/modules/bulkOperationContainer/bulkOperationButton.stories.d.ts +8 -0
- package/dist/components/modules/bulkOperationContainer/bulkOperationContainer.d.ts +16 -0
- package/dist/components/modules/bulkOperationContainer/index.d.ts +2 -0
- package/dist/components/modules/card/card.d.ts +59 -0
- package/dist/components/modules/card/card.stories.d.ts +17 -0
- package/dist/components/modules/card/cardBody.d.ts +15 -0
- package/dist/components/modules/card/cardBody.stories.d.ts +7 -0
- package/dist/components/modules/card/cardButton.d.ts +55 -0
- package/dist/components/modules/card/cardButton.stories.d.ts +7 -0
- package/dist/components/modules/card/cardButtonList.d.ts +15 -0
- package/dist/components/modules/card/cardButtonList.stories.d.ts +7 -0
- package/dist/components/modules/card/cardControlContainer.d.ts +15 -0
- package/dist/components/modules/card/cardControlContainer.stories.d.ts +7 -0
- package/dist/components/modules/card/cardHeadnote.d.ts +15 -0
- package/dist/components/modules/card/cardHeadnote.stories.d.ts +7 -0
- package/dist/components/modules/card/cardTitle.d.ts +25 -0
- package/dist/components/modules/card/cardTitle.stories.d.ts +7 -0
- package/dist/components/modules/card/context.d.ts +11 -0
- package/dist/components/modules/card/index.d.ts +7 -0
- package/dist/components/modules/cardList/cardList.d.ts +73 -0
- package/dist/components/modules/cardList/cardList.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListAuto.d.ts +163 -0
- package/dist/components/modules/cardList/cardListAuto.stories.d.ts +5 -0
- package/dist/components/modules/cardList/cardListAutoHook.d.ts +13 -0
- package/dist/components/modules/cardList/cardListBody.d.ts +21 -0
- package/dist/components/modules/cardList/cardListBody.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListBodyAuto.d.ts +24 -0
- package/dist/components/modules/cardList/cardListEmpty.d.ts +18 -0
- package/dist/components/modules/cardList/cardListEmpty.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListFooter.d.ts +13 -0
- package/dist/components/modules/cardList/cardListFooter.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListFooterAuto.d.ts +13 -0
- package/dist/components/modules/cardList/cardListHeader.d.ts +15 -0
- package/dist/components/modules/cardList/cardListHeader.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListHeaderLeft.d.ts +15 -0
- package/dist/components/modules/cardList/cardListHeaderLeft.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListHeaderRight.d.ts +15 -0
- package/dist/components/modules/cardList/cardListHeaderRight.stories.d.ts +7 -0
- package/dist/components/modules/cardList/cardListLoading.d.ts +18 -0
- package/dist/components/modules/cardList/cardListLoading.stories.d.ts +7 -0
- package/dist/components/modules/cardList/index.d.ts +11 -0
- package/dist/components/modules/contentHeader/contentHeader.d.ts +16 -0
- package/dist/components/modules/contentHeader/contentHeader.stories.d.ts +8 -0
- package/dist/components/modules/contentHeader/contentTitle.d.ts +15 -0
- package/dist/components/modules/contentHeader/index.d.ts +2 -0
- package/dist/components/modules/countIndicator/countIndicator.d.ts +32 -0
- package/dist/components/modules/countIndicator/countIndicator.stories.d.ts +14 -0
- package/dist/components/modules/countIndicator/index.d.ts +1 -0
- package/dist/components/modules/dialog/context.d.ts +9 -0
- package/dist/components/modules/dialog/dialog.d.ts +77 -0
- package/dist/components/modules/dialog/dialog.stories.d.ts +16 -0
- package/dist/components/modules/dialog/dialogBody.d.ts +18 -0
- package/dist/components/modules/dialog/dialogBody.stories.d.ts +7 -0
- package/dist/components/modules/dialog/dialogButton.d.ts +40 -0
- package/dist/components/modules/dialog/dialogButton.stories.d.ts +8 -0
- package/dist/components/modules/dialog/dialogCloseButton.d.ts +13 -0
- package/dist/components/modules/dialog/dialogCloseButton.stories.d.ts +7 -0
- package/dist/components/modules/dialog/dialogFooter.d.ts +15 -0
- package/dist/components/modules/dialog/dialogFooter.stories.d.ts +7 -0
- package/dist/components/modules/dialog/dialogHeader.d.ts +15 -0
- package/dist/components/modules/dialog/dialogHeader.stories.d.ts +7 -0
- package/dist/components/modules/dialog/dialogTitle.d.ts +20 -0
- package/dist/components/modules/dialog/dialogTitle.stories.d.ts +7 -0
- package/dist/components/modules/dialog/index.d.ts +7 -0
- package/dist/components/modules/drawer/context.d.ts +9 -0
- package/dist/components/modules/drawer/drawer.d.ts +32 -0
- package/dist/components/modules/drawer/drawer.stories.d.ts +13 -0
- package/dist/components/modules/drawer/drawerBody.d.ts +15 -0
- package/dist/components/modules/drawer/drawerBody.stories.d.ts +7 -0
- package/dist/components/modules/drawer/drawerButton.d.ts +42 -0
- package/dist/components/modules/drawer/drawerButton.stories.d.ts +7 -0
- package/dist/components/modules/drawer/drawerCaption.d.ts +15 -0
- package/dist/components/modules/drawer/drawerCaption.stories.d.ts +7 -0
- package/dist/components/modules/drawer/drawerFooter.d.ts +15 -0
- package/dist/components/modules/drawer/drawerFooter.stories.d.ts +7 -0
- package/dist/components/modules/drawer/drawerHeader.d.ts +15 -0
- package/dist/components/modules/drawer/drawerHeader.stories.d.ts +7 -0
- package/dist/components/modules/drawer/drawerTitle.d.ts +20 -0
- package/dist/components/modules/drawer/drawerTitle.stories.d.ts +7 -0
- package/dist/components/modules/drawer/index.d.ts +7 -0
- package/dist/components/modules/footnote/footnote.d.ts +26 -0
- package/dist/components/modules/footnote/footnote.stories.d.ts +9 -0
- package/dist/components/modules/footnote/footnoteIconContainer.d.ts +15 -0
- package/dist/components/modules/footnote/index.d.ts +2 -0
- package/dist/components/modules/footnoteList/footnoteList.d.ts +38 -0
- package/dist/components/modules/footnoteList/footnoteList.stories.d.ts +9 -0
- package/dist/components/modules/footnoteList/footnoteListRow.d.ts +19 -0
- package/dist/components/modules/footnoteList/footnoteListRow.stories.d.ts +7 -0
- package/dist/components/modules/footnoteList/index.d.ts +2 -0
- package/dist/components/modules/fractionView/context.d.ts +7 -0
- package/dist/components/modules/fractionView/fractionView.d.ts +28 -0
- package/dist/components/modules/fractionView/fractionView.stories.d.ts +8 -0
- package/dist/components/modules/fractionView/fractionViewDenominator.d.ts +15 -0
- package/dist/components/modules/fractionView/fractionViewNumerator.d.ts +15 -0
- package/dist/components/modules/fractionView/index.d.ts +3 -0
- package/dist/components/modules/header/header.d.ts +15 -0
- package/dist/components/modules/header/header.stories.d.ts +7 -0
- package/dist/components/modules/header/headerLeft.d.ts +15 -0
- package/dist/components/modules/header/headerMenu.d.ts +16 -0
- package/dist/components/modules/header/headerMenuItem.d.ts +21 -0
- package/dist/components/modules/header/headerMenuItemIconContainer.d.ts +16 -0
- package/dist/components/modules/header/index.d.ts +5 -0
- package/dist/components/modules/menu/context.d.ts +10 -0
- package/dist/components/modules/menu/index.d.ts +4 -0
- package/dist/components/modules/menu/menu.d.ts +42 -0
- package/dist/components/modules/menu/menu.stories.d.ts +9 -0
- package/dist/components/modules/menu/menuDivider.d.ts +23 -0
- package/dist/components/modules/menu/menuItem.d.ts +23 -0
- package/dist/components/modules/menu/menuItem.stories.d.ts +7 -0
- package/dist/components/modules/menu/menuItemIconContainer.d.ts +15 -0
- package/dist/components/modules/menu/menuList.d.ts +22 -0
- package/dist/components/modules/pagination/index.d.ts +2 -0
- package/dist/components/modules/pagination/pagination.d.ts +25 -0
- package/dist/components/modules/pagination/pagination.stories.d.ts +7 -0
- package/dist/components/modules/pagination/paginationAuto.d.ts +13 -0
- package/dist/components/modules/rankView/index.d.ts +1 -0
- package/dist/components/modules/rankView/rankView.d.ts +29 -0
- package/dist/components/modules/rankView/rankView.stories.d.ts +13 -0
- package/dist/components/modules/stepper/context.d.ts +13 -0
- package/dist/components/modules/stepper/index.d.ts +5 -0
- package/dist/components/modules/stepper/stepper.d.ts +22 -0
- package/dist/components/modules/stepper/stepper.stories.d.ts +8 -0
- package/dist/components/modules/stepper/stepperBody.d.ts +15 -0
- package/dist/components/modules/stepper/stepperItem.d.ts +17 -0
- package/dist/components/modules/stepper/stepperNumber.d.ts +15 -0
- package/dist/components/modules/stepper/stepperTitle.d.ts +20 -0
- package/dist/components/modules/tabList/index.d.ts +3 -0
- package/dist/components/modules/tabList/tab.d.ts +21 -0
- package/dist/components/modules/tabList/tabIconContainer.d.ts +15 -0
- package/dist/components/modules/tabList/tabList.d.ts +15 -0
- package/dist/components/modules/tabList/tabList.stories.d.ts +7 -0
- package/dist/components/modules/toast/index.d.ts +5 -0
- package/dist/components/modules/toast/simpleToast.d.ts +36 -0
- package/dist/components/modules/toast/simpleToast.stories.d.ts +9 -0
- package/dist/components/modules/toast/toast.d.ts +74 -0
- package/dist/components/modules/toast/toast.stories.d.ts +10 -0
- package/dist/components/modules/toast/toastBody.d.ts +16 -0
- package/dist/components/modules/toast/toastMessage.d.ts +15 -0
- package/dist/components/modules/toast/toastSupplement.d.ts +15 -0
- package/dist/components/modules/toast/toastViewport.d.ts +8 -0
- package/dist/components/tests/samples/dialog.stories.d.ts +7 -0
- package/dist/components/tests/samples/forms.stories.d.ts +6 -0
- package/dist/components/tests/samples/playableDeckList.stories.d.ts +6 -0
- package/dist/components/tests/samples/quizList.stories.d.ts +6 -0
- package/dist/components/utils/modalBase/index.d.ts +1 -0
- package/dist/components/utils/modalBase/modalBase.d.ts +14 -0
- package/dist/components/utils/storyContainer/index.d.ts +1 -0
- package/dist/components/utils/storyContainer/storyContainer.d.ts +12 -0
- package/dist/contexts/dialog/context.d.ts +13 -0
- package/dist/contexts/dialog/hook.d.ts +3 -0
- package/dist/contexts/footenoteList/context.d.ts +7 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/contexts/pageProps/context.d.ts +9 -0
- package/dist/contexts/radioGroup/context.d.ts +9 -0
- package/dist/contexts/radioGroup/hook.d.ts +4 -0
- package/dist/contexts/root/context.d.ts +9 -0
- package/dist/contexts/toast/context.d.ts +12 -0
- package/dist/contexts/toast/hook.d.ts +3 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +2566 -0
- package/dist/index.js.map +1 -0
- package/dist/messages/index.d.ts +4 -0
- package/dist/modules/color.d.ts +19 -0
- package/dist/modules/data.d.ts +12 -0
- package/dist/modules/genre.d.ts +3 -0
- package/dist/modules/message.d.ts +7 -0
- package/dist/modules/responsive.d.ts +17 -0
- package/dist/modules/subject.d.ts +21 -0
- package/dist/modules/translation.d.ts +53 -0
- package/dist/stories/atoms/asyncSelect/asyncSelect.stories.d.ts +6 -0
- package/dist/stories/atoms/avatar/avatar.stories.d.ts +7 -0
- package/dist/stories/atoms/badge/badge.stories.d.ts +11 -0
- package/dist/stories/atoms/barMeter/barMeter.stories.d.ts +10 -0
- package/dist/stories/atoms/barMeter/barMeterValue.stories.d.ts +7 -0
- package/dist/stories/atoms/barProgress/barProgress.stories.d.ts +8 -0
- package/dist/stories/atoms/button/button.stories.d.ts +17 -0
- package/dist/stories/atoms/buttonLink/buttonLink.stories.d.ts +13 -0
- package/dist/stories/atoms/checkableContainer/checkableContainer.stories.d.ts +9 -0
- package/dist/stories/atoms/checkableContainer/checkableLabel.stories.d.ts +7 -0
- package/dist/stories/atoms/checkbox/checkbox.stories.d.ts +15 -0
- package/dist/stories/atoms/controlContainer/controlContainer.stories.d.ts +13 -0
- package/dist/stories/atoms/controlContainer/controlErrorMessage.stories.d.ts +7 -0
- package/dist/stories/atoms/controlContainer/controlHelper.stories.d.ts +7 -0
- package/dist/stories/atoms/controlContainer/controlLabel.stories.d.ts +7 -0
- package/dist/stories/atoms/divider/divider.stories.d.ts +8 -0
- package/dist/stories/atoms/fileInput/fileInput.stories.d.ts +10 -0
- package/dist/stories/atoms/generalIcon/generalIcon.stories.d.ts +7 -0
- package/dist/stories/atoms/heading/heading.stories.d.ts +7 -0
- package/dist/stories/atoms/iconButton/iconButton.stories.d.ts +11 -0
- package/dist/stories/atoms/input/input.stories.d.ts +21 -0
- package/dist/stories/atoms/link/link.stories.d.ts +9 -0
- package/dist/stories/atoms/loadingIcon/loadingIcon.stories.d.ts +7 -0
- package/dist/stories/atoms/modal/modal.stories.d.ts +7 -0
- package/dist/stories/atoms/multiLineText/multiLineText.stories.d.ts +9 -0
- package/dist/stories/atoms/numberInput/numberInput.stories.d.ts +10 -0
- package/dist/stories/atoms/passwordInput/passwordInput.stories.d.ts +13 -0
- package/dist/stories/atoms/radio/radio.stories.d.ts +13 -0
- package/dist/stories/atoms/radioGroup/radioGroup.stories.d.ts +8 -0
- package/dist/stories/atoms/root/root.stories.d.ts +7 -0
- package/dist/stories/atoms/scroll/scroll.stories.d.ts +8 -0
- package/dist/stories/atoms/secondaryHeading/secondaryHeading.stories.d.ts +7 -0
- package/dist/stories/atoms/select/pageSizeSelect.stories.d.ts +7 -0
- package/dist/stories/atoms/select/select.stories.d.ts +13 -0
- package/dist/stories/atoms/select/selectOption.stories.d.ts +7 -0
- package/dist/stories/atoms/select/sortOrderSelect.stories.d.ts +8 -0
- package/dist/stories/atoms/singleLineText/singleLineText.stories.d.ts +8 -0
- package/dist/stories/atoms/switch/switch.stories.d.ts +13 -0
- package/dist/stories/atoms/tag/tag.stories.d.ts +8 -0
- package/dist/stories/atoms/tagList/tagList.stories.d.ts +8 -0
- package/dist/stories/atoms/textButton/textButton.stories.d.ts +8 -0
- package/dist/stories/atoms/textarea/textarea.stories.d.ts +11 -0
- package/dist/stories/atoms/visuallyHidden/visuallyHidden.stories.d.ts +7 -0
- package/dist/stories/modules/bulkOperationContainer/bulkOperationButton.stories.d.ts +8 -0
- package/dist/stories/modules/card/card.stories.d.ts +17 -0
- package/dist/stories/modules/card/cardBody.stories.d.ts +7 -0
- package/dist/stories/modules/card/cardButton.stories.d.ts +7 -0
- package/dist/stories/modules/card/cardButtonList.stories.d.ts +7 -0
- package/dist/stories/modules/card/cardControlContainer.stories.d.ts +7 -0
- package/dist/stories/modules/card/cardHeadnote.stories.d.ts +7 -0
- package/dist/stories/modules/card/cardTitle.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardList.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListBody.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListEmpty.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListFooter.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListHeader.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListHeaderLeft.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListHeaderRight.stories.d.ts +7 -0
- package/dist/stories/modules/cardList/cardListLoading.stories.d.ts +7 -0
- package/dist/stories/modules/contentHeader/contentHeader.stories.d.ts +8 -0
- package/dist/stories/modules/countIndicator/countIndicator.stories.d.ts +14 -0
- package/dist/stories/modules/dialog/dialog.stories.d.ts +16 -0
- package/dist/stories/modules/dialog/dialogBody.stories.d.ts +7 -0
- package/dist/stories/modules/dialog/dialogButton.stories.d.ts +8 -0
- package/dist/stories/modules/dialog/dialogCloseButton.stories.d.ts +7 -0
- package/dist/stories/modules/dialog/dialogFooter.stories.d.ts +7 -0
- package/dist/stories/modules/dialog/dialogHeader.stories.d.ts +7 -0
- package/dist/stories/modules/dialog/dialogTitle.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawer.stories.d.ts +13 -0
- package/dist/stories/modules/drawer/drawerBody.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawerButton.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawerCaption.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawerFooter.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawerHeader.stories.d.ts +7 -0
- package/dist/stories/modules/drawer/drawerTitle.stories.d.ts +7 -0
- package/dist/stories/modules/footnote/footnote.stories.d.ts +9 -0
- package/dist/stories/modules/footnoteList/footnoteList.stories.d.ts +9 -0
- package/dist/stories/modules/footnoteList/footnoteListRow.stories.d.ts +7 -0
- package/dist/stories/modules/fractionView/fractionView.stories.d.ts +8 -0
- package/dist/stories/modules/header/header.stories.d.ts +7 -0
- package/dist/stories/modules/menu/menu.stories.d.ts +9 -0
- package/dist/stories/modules/menu/menuItem.stories.d.ts +7 -0
- package/dist/stories/modules/pagination/pagination.stories.d.ts +7 -0
- package/dist/stories/modules/rankView/rankView.stories.d.ts +13 -0
- package/dist/stories/modules/stepper/stepper.stories.d.ts +8 -0
- package/dist/stories/modules/tabList/tabList.stories.d.ts +7 -0
- package/dist/stories/modules/toast/simpleToast.stories.d.ts +9 -0
- package/dist/stories/modules/toast/toast.stories.d.ts +11 -0
- package/dist/stories/tests/samples/dialog.stories.d.ts +7 -0
- package/dist/stories/tests/samples/forms.stories.d.ts +6 -0
- package/dist/utils/children.d.ts +2 -0
- package/dist/utils/color.d.ts +5 -0
- package/dist/utils/debug.d.ts +1 -0
- package/dist/utils/event.d.ts +2 -0
- package/dist/utils/node.d.ts +4 -0
- package/dist/utils/translation.d.ts +2 -0
- package/dist/utils/types.d.ts +9 -0
- package/package.json +123 -0
- package/tsconfig.json +33 -0
- package/typedoc.json +26 -0
- package/webpack.config.ts +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"./index.js","mappings":"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","sources":["webpack://@baton8/general-components/./src/messages/en.yaml","webpack://@baton8/general-components/./src/messages/ja.yaml","webpack://@baton8/general-components/webpack/bootstrap","webpack://@baton8/general-components/webpack/runtime/compat get default export","webpack://@baton8/general-components/webpack/runtime/define property getters","webpack://@baton8/general-components/webpack/runtime/hasOwnProperty shorthand","webpack://@baton8/general-components/webpack/runtime/make namespace object","webpack://@baton8/general-components/external commonjs \"@emotion/react/jsx-runtime\"","webpack://@baton8/general-components/external commonjs \"react\"","webpack://@baton8/general-components/external commonjs \"react-select/async\"","webpack://@baton8/general-components/external commonjs \"@emotion/react\"","webpack://@baton8/general-components/external commonjs \"@fortawesome/react-fontawesome\"","webpack://@baton8/general-components/external commonjs \"@fortawesome/sharp-regular-svg-icons\"","webpack://@baton8/general-components/external commonjs \"react-select\"","webpack://@baton8/general-components/external commonjs \"color\"","webpack://@baton8/general-components/./src/modules/color.ts","webpack://@baton8/general-components/./src/utils/color.ts","webpack://@baton8/general-components/./src/components/functions/utilities.ts","webpack://@baton8/general-components/external commonjs \"dayjs\"","webpack://@baton8/general-components/external commonjs \"react-intl\"","webpack://@baton8/general-components/./src/utils/translation.ts","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentLoadingMessage.tsx","webpack://@baton8/general-components/./src/components/atoms/select/context.ts","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentClearIndicator.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentControl.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentDropdownIndicator.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentIndicatorsContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentInput.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentMenu.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentMenuList.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentMenuPortal.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentNoOptionMessage.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentOption.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectComponentPlacement.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectHook.ts","webpack://@baton8/general-components/./src/components/atoms/asyncSelect/asyncSelect.tsx","webpack://@baton8/general-components/./src/components/atoms/asyncSelect/asyncSelectOption.tsx","webpack://@baton8/general-components/external commonjs \"@radix-ui/react-avatar\"","webpack://@baton8/general-components/./src/components/atoms/avatar/avatar.tsx","webpack://@baton8/general-components/external commonjs \"@fortawesome/sharp-solid-svg-icons\"","webpack://@baton8/general-components/./src/components/atoms/avatar/avatarFallbackIcon.tsx","webpack://@baton8/general-components/external commonjs \"graphemesplit\"","webpack://@baton8/general-components/./src/components/atoms/avatar/avatarFallbackLetter.tsx","webpack://@baton8/general-components/./src/components/atoms/badge/badge.tsx","webpack://@baton8/general-components/./src/components/atoms/badge/badgeIconContainer.tsx","webpack://@baton8/general-components/external commonjs \"react-is\"","webpack://@baton8/general-components/./src/utils/node.ts","webpack://@baton8/general-components/./src/components/atoms/barMeter/context.ts","webpack://@baton8/general-components/./src/components/atoms/barMeter/barMeter.tsx","webpack://@baton8/general-components/./src/components/atoms/singleLineText/singleLineText.tsx","webpack://@baton8/general-components/./src/components/atoms/barMeter/barMeterValue.tsx","webpack://@baton8/general-components/./src/components/atoms/barMeter/barMeterValueIconContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/barProgress/barProgress.tsx","webpack://@baton8/general-components/./src/components/atoms/button/button.tsx","webpack://@baton8/general-components/./src/components/atoms/button/buttonIconContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/checkableContainer/checkableContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/checkableContainer/checkableLabel.tsx","webpack://@baton8/general-components/external commonjs \"@floating-ui/react\"","webpack://@baton8/general-components/./src/components/atoms/checkbox/checkbox.tsx","webpack://@baton8/general-components/./src/components/atoms/controlContainer/controlContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/multiLineText/multiLineText.tsx","webpack://@baton8/general-components/./src/components/atoms/controlContainer/controlErrorMessage.tsx","webpack://@baton8/general-components/./src/components/atoms/controlContainer/controlHelper.tsx","webpack://@baton8/general-components/./src/components/atoms/controlContainer/controlLabel.tsx","webpack://@baton8/general-components/./src/components/atoms/divider/divider.tsx","webpack://@baton8/general-components/./src/components/atoms/generalIcon/generalIcon.tsx","webpack://@baton8/general-components/./src/components/atoms/fileInput/fileInput.tsx","webpack://@baton8/general-components/./src/components/atoms/heading/heading.tsx","webpack://@baton8/general-components/./src/components/atoms/icon/iconData.ts","webpack://@baton8/general-components/./src/components/atoms/icon/icon.tsx","webpack://@baton8/general-components/./src/components/atoms/iconButton/iconButton.tsx","webpack://@baton8/general-components/./src/components/atoms/input/inputLeftAddon.tsx","webpack://@baton8/general-components/./src/components/atoms/input/inputRightAddon.tsx","webpack://@baton8/general-components/./src/components/atoms/input/input.tsx","webpack://@baton8/general-components/./src/components/atoms/link/link.tsx","webpack://@baton8/general-components/./src/components/atoms/link/linkIconContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/loadingIcon/loadingIcon.tsx","webpack://@baton8/general-components/external commonjs \"body-scroll-lock\"","webpack://@baton8/general-components/external commonjs \"react-modal\"","webpack://@baton8/general-components/./src/components/atoms/modal/modal.tsx","webpack://@baton8/general-components/./src/components/atoms/numberInput/numberInputLeftAddon.tsx","webpack://@baton8/general-components/./src/components/atoms/numberInput/numberInput.tsx","webpack://@baton8/general-components/./src/components/atoms/passwordInput/passwordInputLeftAddon.tsx","webpack://@baton8/general-components/./src/components/atoms/passwordInput/passwordInputRightAddon.tsx","webpack://@baton8/general-components/./src/components/atoms/passwordInput/passwordInput.tsx","webpack://@baton8/general-components/./src/contexts/radioGroup/context.ts","webpack://@baton8/general-components/./src/components/atoms/radio/radio.tsx","webpack://@baton8/general-components/./src/components/atoms/radioGroup/radioGroup.tsx","webpack://@baton8/general-components/./src/components/atoms/radioGroup/alignedRadioGroup.tsx","webpack://@baton8/general-components/./src/components/atoms/root/scrollGlobalStyle.ts","webpack://@baton8/general-components/./src/contexts/dialog/context.tsx","webpack://@baton8/general-components/./src/contexts/root/context.ts","webpack://@baton8/general-components/external commonjs \"@radix-ui/react-toast\"","webpack://@baton8/general-components/./src/components/modules/toast/toastViewport.tsx","webpack://@baton8/general-components/./src/contexts/toast/context.tsx","webpack://@baton8/general-components/./src/messages/index.ts","webpack://@baton8/general-components/./src/modules/message.ts","webpack://@baton8/general-components/external commonjs \"react-use\"","webpack://@baton8/general-components/./src/modules/responsive.ts","webpack://@baton8/general-components/external commonjs \"rxjs\"","webpack://@baton8/general-components/./src/modules/subject.ts","webpack://@baton8/general-components/./src/modules/translation.ts","webpack://@baton8/general-components/./src/components/atoms/root/svgDefinition.tsx","webpack://@baton8/general-components/./src/components/atoms/root/root.tsx","webpack://@baton8/general-components/./src/components/atoms/secondaryHeading/secondaryHeading.tsx","webpack://@baton8/general-components/./src/components/atoms/select/select.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectOption.tsx","webpack://@baton8/general-components/./src/components/atoms/select/selectOptionIconContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/select/pageSizeSelect.tsx","webpack://@baton8/general-components/./src/contexts/pageProps/context.ts","webpack://@baton8/general-components/./src/components/atoms/select/pageSizeSelectAuto.tsx","webpack://@baton8/general-components/./src/components/atoms/select/sortOrderSelect.tsx","webpack://@baton8/general-components/external commonjs \"@radix-ui/react-switch\"","webpack://@baton8/general-components/./src/components/atoms/switch/switch.tsx","webpack://@baton8/general-components/./src/components/atoms/tag/tag.tsx","webpack://@baton8/general-components/./src/components/atoms/tag/tagIconContainer.tsx","webpack://@baton8/general-components/./src/components/atoms/tagList/tagList.tsx","webpack://@baton8/general-components/./src/components/atoms/textarea/textarea.tsx","webpack://@baton8/general-components/./src/components/atoms/visuallyHidden/visuallyHidden.tsx","webpack://@baton8/general-components/./src/components/modules/bulkOperationContainer/bulkOperationContainer.tsx","webpack://@baton8/general-components/./src/components/modules/bulkOperationContainer/bulkOperationButton.tsx","webpack://@baton8/general-components/./src/components/modules/card/context.ts","webpack://@baton8/general-components/./src/components/modules/card/card.tsx","webpack://@baton8/general-components/./src/components/modules/card/cardHeadnote.tsx","webpack://@baton8/general-components/./src/components/modules/card/cardBody.tsx","webpack://@baton8/general-components/./src/components/modules/card/cardButton.tsx","webpack://@baton8/general-components/./src/components/modules/card/cardButtonList.tsx","webpack://@baton8/general-components/./src/utils/event.ts","webpack://@baton8/general-components/./src/components/modules/card/cardControlContainer.tsx","webpack://@baton8/general-components/./src/components/modules/card/cardTitle.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardList.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListBody.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListEmpty.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListFooter.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListHeader.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListHeaderLeft.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListHeaderRight.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListLoading.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListAuto.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListAutoHook.ts","webpack://@baton8/general-components/./src/components/modules/cardList/cardListBodyAuto.tsx","webpack://@baton8/general-components/./src/components/modules/cardList/cardListFooterAuto.tsx","webpack://@baton8/general-components/./src/components/modules/contentHeader/contentHeader.tsx","webpack://@baton8/general-components/./src/components/modules/contentHeader/contentTitle.tsx","webpack://@baton8/general-components/./src/components/modules/countIndicator/countIndicator.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/context.ts","webpack://@baton8/general-components/./src/components/modules/dialog/dialog.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogBody.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogButton.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogCloseButton.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogFooter.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogHeader.tsx","webpack://@baton8/general-components/./src/components/modules/dialog/dialogTitle.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/context.ts","webpack://@baton8/general-components/./src/components/modules/drawer/drawer.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerBody.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerButton.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerCaption.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerFooter.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerHeader.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerTitle.tsx","webpack://@baton8/general-components/./src/contexts/footenoteList/context.ts","webpack://@baton8/general-components/./src/components/modules/footnote/footnote.tsx","webpack://@baton8/general-components/./src/components/modules/footnote/footnoteIconContainer.tsx","webpack://@baton8/general-components/./src/components/modules/footnoteList/footnoteList.tsx","webpack://@baton8/general-components/./src/components/modules/footnoteList/footnoteListRow.tsx","webpack://@baton8/general-components/./src/components/modules/fractionView/context.ts","webpack://@baton8/general-components/./src/components/modules/fractionView/fractionView.tsx","webpack://@baton8/general-components/./src/components/modules/fractionView/fractionViewDenominator.tsx","webpack://@baton8/general-components/./src/components/modules/fractionView/fractionViewNumerator.tsx","webpack://@baton8/general-components/./src/components/modules/header/header.tsx","webpack://@baton8/general-components/./src/components/modules/header/headerLeft.tsx","webpack://@baton8/general-components/./src/components/modules/header/headerMenu.tsx","webpack://@baton8/general-components/./src/components/modules/header/headerMenuItem.tsx","webpack://@baton8/general-components/./src/components/modules/header/headerMenuItemIconContainer.tsx","webpack://@baton8/general-components/./src/components/modules/menu/context.ts","webpack://@baton8/general-components/./src/components/modules/menu/menuItem.tsx","webpack://@baton8/general-components/./src/components/modules/menu/menuList.tsx","webpack://@baton8/general-components/./src/components/modules/menu/menu.tsx","webpack://@baton8/general-components/./src/components/modules/menu/menuItemIconContainer.tsx","webpack://@baton8/general-components/./src/components/modules/menu/menuDivider.tsx","webpack://@baton8/general-components/./src/components/modules/pagination/pagination.tsx","webpack://@baton8/general-components/./src/components/modules/pagination/paginationAuto.tsx","webpack://@baton8/general-components/./src/components/modules/rankView/rankView.tsx","webpack://@baton8/general-components/./src/components/modules/stepper/context.ts","webpack://@baton8/general-components/./src/components/modules/stepper/stepperItem.tsx","webpack://@baton8/general-components/./src/components/modules/stepper/stepper.tsx","webpack://@baton8/general-components/./src/components/modules/stepper/stepperBody.tsx","webpack://@baton8/general-components/./src/components/modules/stepper/stepperNumber.tsx","webpack://@baton8/general-components/./src/components/modules/stepper/stepperTitle.tsx","webpack://@baton8/general-components/./src/components/modules/tabList/tabList.tsx","webpack://@baton8/general-components/./src/components/modules/tabList/tab.tsx","webpack://@baton8/general-components/./src/components/modules/tabList/tabIconContainer.tsx","webpack://@baton8/general-components/./src/components/modules/toast/toast.tsx","webpack://@baton8/general-components/./src/components/modules/toast/toastBody.tsx","webpack://@baton8/general-components/./src/components/modules/toast/toastMessage.tsx","webpack://@baton8/general-components/./src/components/modules/toast/toastSupplement.tsx","webpack://@baton8/general-components/./src/components/modules/toast/simpleToast.tsx","webpack://@baton8/general-components/./src/components/functions/shorthands.ts","webpack://@baton8/general-components/./src/contexts/dialog/hook.ts","webpack://@baton8/general-components/./src/contexts/radioGroup/hook.ts","webpack://@baton8/general-components/./src/contexts/toast/hook.ts"],"sourcesContent":["module.exports = {\"dialogCloseButton.close\":\"Close dialog\",\"loadingIcon.label\":\"Loading\",\"select.select\":\"Select\",\"select.noOption\":\"No options\",\"select.loading\":\"Loading\",\"sortOrderSelect.ascending\":\"Asc\",\"sortOrderSelect.descending\":\"Desc\",\"bulkOperationButton.text\":\"Action\",\"cardListEmpty.empty\":\"No data found\",\"cardListLoading.loading\":\"Loading\",\"pagination.label\":\"Pagination\",\"pagination.first\":\"First\",\"pagination.previous\":\"Previous\",\"pagination.next\":\"Next\",\"pagination.last\":\"Last\",\"rankView.label\":\"{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}} place\",\"toast.rootLabel\":\"Notification\",\"toast.viewportLabel\":\"Notifications (F8)\",\"quizCardTitle.emptyQuestion\":\"No question\",\"quizCardTitle.emptyAnswer\":\"No correct options\",\"groupFootnote.noGroup\":\"Deleted group\",\"privateFootnote.private\":\"Limited\",\"privateFootnote.public\":\"Public\",\"userFootnote.noUser\":\"Deleted user\",\"imageView.noImage\":\"No image found\",\"mediumView.unsupported\":\"Unsupported media\"}","module.exports = {\"dialogCloseButton.close\":\"ダイアログを閉じる\",\"loadingIcon.label\":\"読み込み中\",\"select.select\":\"選択してください\",\"select.noOption\":\"該当する項目がありません\",\"select.loading\":\"読み込み中\",\"sortOrderSelect.ascending\":\"昇順\",\"sortOrderSelect.descending\":\"降順\",\"bulkOperationButton.text\":\"一括操作\",\"cardListEmpty.empty\":\"該当するデータがありません\",\"cardListLoading.loading\":\"読み込み中\",\"pagination.label\":\"ページネーション\",\"pagination.first\":\"最初へ\",\"pagination.previous\":\"前へ\",\"pagination.next\":\"次へ\",\"pagination.last\":\"最後へ\",\"rankView.label\":\"{rank, number}位\",\"toast.rootLabel\":\"お知らせ\",\"toast.viewportLabel\":\"お知らせ (F8)\",\"quizCardTitle.emptyQuestion\":\"問題文がありません\",\"quizCardTitle.emptyAnswer\":\"正答選択肢がありません\",\"groupFootnote.noGroup\":\"削除されたグループ\",\"privateFootnote.private\":\"限定公開\",\"privateFootnote.public\":\"全体公開\",\"userFootnote.noUser\":\"退会したユーザー\",\"imageView.noImage\":\"画像がありません\",\"mediumView.unsupported\":\"サポートされていないメディアです\"}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react/jsx-runtime\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-select/async\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/react-fontawesome\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/sharp-regular-svg-icons\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-select\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"color\");","import qixColor from \"color\";\r\n\r\n\r\nexport const LEVELED_COLOR_SCHEMES = [\r\n \"primary\",\r\n \"secondary\",\r\n \"blue\",\r\n \"red\",\r\n \"green\",\r\n \"pink\",\r\n \"yellow\",\r\n \"purple\",\r\n \"orange\",\r\n \"gray\",\r\n \"gold\",\r\n \"silver\",\r\n \"bronze\"\r\n] as const;\r\nexport const UNLEVELED_COLOR_SCHEMES = [\r\n \"white\",\r\n \"black\",\r\n \"whiteText\",\r\n \"blackText\",\r\n \"background\",\r\n \"deepBackground\"\r\n] as const;\r\n\r\nexport type LeveledColorScheme = (typeof LEVELED_COLOR_SCHEMES)[number];\r\nexport type UnleveledColorScheme = (typeof UNLEVELED_COLOR_SCHEMES)[number];\r\nexport type ColorScheme = LeveledColorScheme | UnleveledColorScheme;\r\n\r\nexport type ColorLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\r\n\r\nexport type ColorDefinition = Record<ColorLevel, string>;\r\nexport type ColorDefinitions = Partial<Record<LeveledColorScheme, ColorDefinition>> & Partial<Record<UnleveledColorScheme, string>>;\r\n\r\nexport type ColorDefinitionSetting = {\r\n dark: {\r\n mix: number,\r\n saturation: number\r\n },\r\n light: {\r\n mix: number,\r\n saturation: number\r\n }\r\n};\r\n\r\nexport const createColorDefinition = (colorString: string, setting: ColorDefinitionSetting): ColorDefinition => {\r\n const color = qixColor(colorString);\r\n\r\n const blackColor = qixColor(\"black\");\r\n const whiteColor = qixColor(\"white\");\r\n\r\n return {\r\n 9: color.saturate(setting.dark.saturation * 4 / 4).mix(blackColor, setting.dark.mix * 4 / 4).hex(),\r\n 8: color.saturate(setting.dark.saturation * 3 / 4).mix(blackColor, setting.dark.mix * 3 / 4).hex(),\r\n 7: color.saturate(setting.dark.saturation * 2 / 4).mix(blackColor, setting.dark.mix * 2 / 4).hex(),\r\n 6: color.saturate(setting.dark.saturation * 1 / 4).mix(blackColor, setting.dark.mix * 1 / 4).hex(),\r\n 5: color.hex(),\r\n 4: color.saturate(setting.light.saturation * 1 / 5).mix(whiteColor, setting.light.mix * 1 / 5).hex(),\r\n 3: color.saturate(setting.light.saturation * 2 / 5).mix(whiteColor, setting.light.mix * 2 / 5).hex(),\r\n 2: color.saturate(setting.light.saturation * 3 / 5).mix(whiteColor, setting.light.mix * 3 / 5).hex(),\r\n 1: color.saturate(setting.light.saturation * 4 / 5).mix(whiteColor, setting.light.mix * 4 / 5).hex(),\r\n 0: color.saturate(setting.light.saturation * 5 / 5).mix(whiteColor, setting.light.mix * 5 / 5).hex()\r\n };\r\n};","import {css} from \"@emotion/react\";\r\nimport {CSSInterpolation} from \"@emotion/serialize\";\r\nimport qixColor from \"color\";\r\nimport {ColorDefinitions, ColorLevel, ColorScheme, createColorDefinition} from \"/src/modules/color\";\r\n\r\n\r\nexport const DEFAULT_COLOR_DEFINITIONS = {\r\n // baton 青\r\n primary: createColorDefinition(\"hsl(203, 100%, 38%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.96, saturation: 0.3}\r\n }),\r\n // baton 赤\r\n secondary: createColorDefinition(\"hsl(2, 77%, 64%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.96, saturation: 0.3}\r\n }),\r\n blue: createColorDefinition(\"hsl(230, 70%, 55%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.96, saturation: 0.3}\r\n }),\r\n red: createColorDefinition(\"hsl(0, 65%, 60%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.95, saturation: 0.3}\r\n }),\r\n green: createColorDefinition(\"hsl(110, 45%, 45%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.95, saturation: 0.3}\r\n }),\r\n pink: createColorDefinition(\"hsl(340, 60%, 60%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.96, saturation: 0.2}\r\n }),\r\n yellow: createColorDefinition(\"hsl(60, 65%, 50%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.93, saturation: 0.1}\r\n }),\r\n purple: createColorDefinition(\"hsl(260, 55%, 57%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.95, saturation: 0.3}\r\n }),\r\n orange: createColorDefinition(\"hsl(30, 75%, 55%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.95, saturation: 0.2}\r\n }),\r\n gray: createColorDefinition(\"hsl(203, 20%, 65%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.93, saturation: 0.3}\r\n }),\r\n\r\n gold: createColorDefinition(\"hsl(50, 80%, 43%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.95, saturation: 0.3}\r\n }),\r\n silver: createColorDefinition(\"hsl(240, 15%, 65%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.93, saturation: 0.3}\r\n }),\r\n bronze: createColorDefinition(\"hsl(20, 50%, 50%)\", {\r\n dark: {mix: 0.55, saturation: -0.3},\r\n light: {mix: 0.96, saturation: 0.3}\r\n }),\r\n\r\n white: qixColor(\"hsl(203, 0%, 100%)\").hex(),\r\n black: qixColor(\"hsl(203, 33%, 10%)\").hex(),\r\n whiteText: qixColor(\"hsl(203, 0%, 87%)\").hex(),\r\n blackText: qixColor(\"hsl(203, 0%, 27%)\").hex(),\r\n\r\n background: qixColor(\"hsl(203, 20%, 98%)\").hex(),\r\n deepBackground: qixColor(\"hsl(203, 20%, 96%)\").hex()\r\n} as Required<ColorDefinitions>;\r\n\r\nexport const getColorVarCss = (scheme: ColorScheme, level: ColorLevel | undefined): string => {\r\n if (level != null) {\r\n return `var(--qlib-cs-${scheme}-${level})`;\r\n } else {\r\n return `var(--qlib-cs-${scheme})`;\r\n }\r\n};\r\n\r\nexport const getColorVarDefinitionCss = (definitions: ColorDefinitions): CSSInterpolation => {\r\n const varCss = [];\r\n const wholeDefinitions = {...DEFAULT_COLOR_DEFINITIONS, ...definitions};\r\n for (const [scheme, definition] of Object.entries(wholeDefinitions)) {\r\n if (typeof definition === \"string\") {\r\n varCss.push(`--qlib-cs-${scheme}: ${qixColor(definition).rgb().array().join(\", \")};`);\r\n } else {\r\n for (const [level, color] of Object.entries(definition)) {\r\n varCss.push(`--qlib-cs-${scheme}-${level}: ${qixColor(color).rgb().array().join(\", \")};`);\r\n }\r\n }\r\n }\r\n return css`\r\n :root {\r\n ${varCss.join(\"\\n\")}\r\n }\r\n `;\r\n};","/* eslint-disable @typescript-eslint/unified-signatures */\r\nimport {css} from \"@emotion/react\";\r\nimport {CSSInterpolation} from \"@emotion/serialize\";\r\nimport qixColor from \"color\";\r\nimport {ColorLevel, ColorScheme, LeveledColorScheme, UNLEVELED_COLOR_SCHEMES, UnleveledColorScheme} from \"/src/modules/color\";\r\nimport {getColorVarCss} from \"/src/utils/color\";\r\n\r\n\r\n/**\r\n * @category CSS ユーティリティ\r\n */\r\nexport function fontFamily(): string {\r\n return \"'Inter', 'Noto Sans JP', 'Dubai', 'Noto Sans', sans-serif\";\r\n}\r\n\r\n/**\r\n * @param weight ウェイト\r\n * @returns ウェイト数値\r\n * @category CSS ユーティリティ\r\n */\r\nexport function fontWeight(weight: \"normal\" | \"bold\"): number {\r\n return weight === \"normal\" ? 400 : 700;\r\n}\r\n\r\n/**\r\n * @param scheme カラースキーム\r\n * @returns 16 進数カラーコード\r\n * @category CSS ユーティリティ\r\n */\r\nexport function color<S extends UnleveledColorScheme>(scheme: S): string;\r\n/**\r\n * @param scheme カラースキーム\r\n * @param level 色の濃さ (0~9, 1 刻み, 数字が大きいほど黒に近い)\r\n * @param alpha アルファ値 (0~1, 0.1 刻み, 1 ほど不透明)\r\n * @returns 16 進数カラーコード\r\n * @category CSS ユーティリティ\r\n */\r\nexport function color<S extends LeveledColorScheme>(scheme: S, level: ColorLevel): string;\r\nexport function color<S extends ColorScheme>(scheme: S, level?: ColorLevel): string {\r\n if (UNLEVELED_COLOR_SCHEMES.includes(scheme as any)) {\r\n return `rgb(${getColorVarCss(scheme, undefined)})`;\r\n } else {\r\n return `rgb(${getColorVarCss(scheme, level)})`;\r\n }\r\n};\r\n\r\n/**\r\n * @param color ベースとする 16 進数カラーコード\r\n * @param alpha アルファ値 (0~1, 1ほど不透明)\r\n * @returns 16 進数カラーコード\r\n * @category CSS ユーティリティ\r\n */\r\nexport function alpha(color: string, alpha: number): string {\r\n if (color.startsWith(\"rgb(\")) {\r\n const rgbString = color.slice(4, -1);\r\n return `rgba(${rgbString}, ${alpha})`;\r\n } else {\r\n return qixColor(color).alpha(alpha).rgb().string();\r\n }\r\n};\r\n\r\nconst SEMANTIC_SIZES = {\r\n gap: `${6 / 16}em`,\r\n max: \"1000em\"\r\n};\r\ntype SemanticSize = keyof typeof SEMANTIC_SIZES;\r\n\r\n/**\r\n * ルート要素のフォントサイズに合わせて拡大縮小する相対的な長さを返します。\r\n * CSS (Emotion) 上で長さを指定するときはこの関数を使い、px などの絶対単位は使用しないでください。\r\n * また、全体のデザインを統一するため、引数の `dimen` として渡す値には基本的に整数を用いてください。\r\n *\r\n * `size(4)` がルート要素のフォントサイズと等しくなるようになっています。\r\n *\r\n * また、あらかじめ決められた文字列を指定することで、特定の用途の長さを取得することができます。\r\n * 指定できる文字列は以下の通りです。\r\n *\r\n * - `\"gap\"` — アイコンとテキストの間隔 (6/16 em)\r\n * - `\"max\"` — `border-radius` で真円の角丸を作るための大きな値 (1000 em)\r\n * @param level 長さ\r\n * @returns 長さ文字列\r\n * @category CSS ユーティリティ\r\n */\r\nexport function size(level: number | SemanticSize): string {\r\n if (typeof level === \"number\") {\r\n return `${level / 4}rem`;\r\n } else {\r\n return SEMANTIC_SIZES[level];\r\n }\r\n}\r\n\r\n/**\r\n * 罫線の太さを返します。\r\n * 通常の罫線には `borderWidth(1)` を使用し、太い罫線が必要な場合には `borderWidth(2)` などを使用してください。\r\n * @param level 太さのレベル\r\n * @returns 長さ文字列\r\n * @category CSS ユーティリティ\r\n */\r\nexport function borderWidth(level: number): string {\r\n return `${level / 16}rem`;\r\n}\r\n\r\n/**\r\n * @param color 16 進数カラーコード\r\n * @param level シャドウの強さ\r\n * @returns シャドウ設定文字列\r\n * @category CSS ユーティリティ\r\n */\r\nexport function boxShadow(color: string, level: number, inset?: boolean): string {\r\n if (inset) {\r\n return `0rem ${-level / 8}rem ${level / 4}rem ${color} inset`;\r\n } else {\r\n return `0rem ${level / 8}rem ${level / 4}rem ${color}`;\r\n }\r\n}\r\n\r\n/**\r\n * 行の高さを設定します。\r\n * さらに、before 疑似要素と after 疑似要素に負のマージンを設定することで、最初の行の上と最後の行の下に追加される余白を取り除きます。\r\n * これによって、ブロックの大きさがテキストぴったりに調整されます。\r\n *\r\n * いくつかの CSS 宣言をまとめた文字列を返すので、次のように他の CSS 宣言と並列する形で用いてください。\r\n * ```typescript\r\n * const style = css`\r\n * font-size: ${size(4)}; // その他の CSS 宣言\r\n * ${lineHeight(1.4)}\r\n * `;\r\n * ```\r\n * @param lineHeight 行の高さの倍率\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function lineHeight(lineHeight: number, additionalMargin?: string): CSSInterpolation {\r\n return css`\r\n line-height: ${lineHeight};\r\n &::before {\r\n block-size: ${size(0)};\r\n inline-size: ${size(0)};\r\n margin-block-start: calc(${(1 - lineHeight) * 0.5}em + ${additionalMargin ?? \"0em\"});\r\n display: block;\r\n content: \"\";\r\n }\r\n &::after {\r\n block-size: ${size(0)};\r\n inline-size: ${size(0)};\r\n margin-block-end: calc(${(1 - lineHeight) * 0.5}em + ${additionalMargin ?? \"0em\"});\r\n display: block;\r\n content: \"\";\r\n }\r\n `;\r\n}\r\n\r\n/**\r\n * @param lineHeight 行の高さ (単位付きの絶対値)\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function fixedLineHeight(lineHeight: string, additionalMargin?: string): CSSInterpolation {\r\n return css`\r\n line-height: ${lineHeight};\r\n &::before {\r\n block-size: ${size(0)};\r\n inline-size: ${size(0)};\r\n margin-block-start: calc((1em - #{lineHeight}) * 0.5 + ${additionalMargin ?? \"0em\"});\r\n display: block;\r\n content: \"\";\r\n }\r\n &::after {\r\n block-size: ${size(0)};\r\n inline-size: ${size(0)};\r\n margin-block-end: calc((1em - #{lineHeight}) * 0.5 + ${additionalMargin ?? \"0em\"});\r\n display: block;\r\n content: \"\";\r\n }\r\n `;\r\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"dayjs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-intl\");","import dayjs, {Dayjs} from \"dayjs\";\r\nimport {useCallback, useMemo} from \"react\";\r\nimport {useIntl as useRawIntl} from \"react-intl\";\r\nimport {TransCallbacksWithNode} from \"/src/modules/translation\";\r\n\r\n\r\n// このパッケージ用のローカライズ関数を生成するフック\r\n// このパッケージが利用するローカライズメッセージは qlib キー以下に置かれているのでそれを加味する\r\nexport const useQlibTranslation = (scope?: string): TransCallbacksWithNode => {\r\n const intl = useRawIntl();\r\n\r\n const trans = useCallback((key: string, values?: any): any => {\r\n const fullKey = \"qlib.\" + (key.includes(\":\") ? key.replace(\":\", \".\") : (scope != null ? `${scope}.` : \"\") + key);\r\n const defaultMessage = values?.defaultMessage ?? `<${fullKey}>`;\r\n const message = intl.formatMessage({id: fullKey, defaultMessage}, values);\r\n return message;\r\n }, [intl, scope]);\r\n\r\n const transDate = useCallback((date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MMM/YYYY\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n const transTime = useCallback((date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MMM/YYYY HH:mm\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n const transNumber = useCallback((number: number | null | undefined, options?: {digit?: number, withSign?: boolean}): string => {\r\n const intlOptions = {minimumFractionDigits: options?.digit, maximumFractionDigits: options?.digit};\r\n if (number !== null && number !== undefined) {\r\n if (number > 0) {\r\n return (options?.withSign ? \"+\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else if (number === 0) {\r\n return (options?.withSign ? \"±\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else {\r\n return \"−\" + intl.formatNumber(-number, intlOptions);\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n return useMemo(() => ({\r\n trans,\r\n transNode: trans,\r\n transDate,\r\n transTime,\r\n transNumber\r\n }), [\r\n trans,\r\n transDate,\r\n transTime,\r\n transNumber\r\n ]);\r\n};","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCircleNotch} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {NoticeProps, components} from \"react-select\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype SelectComponentLoadingMessageProps = NoticeProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(2)};\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentLoadingMessage: FunctionComponent<SelectComponentLoadingMessageProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n const {trans} = useQlibTranslation(\"select\");\r\n\r\n return (\r\n <components.LoadingMessage css={styles.root} {...props}>\r\n <FontAwesomeIcon icon={faCircleNotch} spin={true}/>\r\n </components.LoadingMessage>\r\n );\r\n};\r\n","import {createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n variant: \"outline\" | \"minimal\",\r\n optionAlignment: \"left\" | \"right\",\r\n isMenuOpen: boolean,\r\n isError: boolean\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n variant: \"outline\",\r\n optionAlignment: \"left\",\r\n isMenuOpen: false,\r\n isError: false\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faTimes} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {ClearIndicatorProps, components} from \"react-select\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentClearIndicatorProps = ClearIndicatorProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4)};\r\n color: ${color(\"primary\", 5)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: color 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n &:hover {\r\n color: ${color(\"primary\", 4)};\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(\"primary\", 4), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentClearIndicator: FunctionComponent<SelectComponentClearIndicatorProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n <components.ClearIndicator css={styles.root} {...props}>\r\n <FontAwesomeIcon icon={faTimes}/>\r\n </components.ClearIndicator>\r\n );\r\n};","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode, useContext} from \"react\";\r\nimport {ControlProps} from \"react-select\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype SelectComponentControl = ControlProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n justify-content: space-between;\r\n cursor: default;\r\n outline: none !important;\r\n position: relative;\r\n `,\r\n rootOutline: css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(2)};\r\n min-block-size: initial;\r\n font-size: ${size(4)};\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n &[data-qlib-focused=\"true\"] {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color) !important;\r\n transition: none !important;\r\n }\r\n `,\r\n rootMinimal: css`\r\n min-block-size: initial;\r\n font-size: ${size(4)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentControl: FunctionComponent<SelectComponentControl> = ({\r\n isFocused,\r\n isDisabled,\r\n menuIsOpen: isMenuOpen,\r\n innerRef,\r\n innerProps,\r\n children\r\n}) => {\r\n const {variant, isError} = useContext(context);\r\n\r\n return (\r\n <div\r\n css={[styles.root, variant === \"outline\" ? styles.rootOutline : styles.rootMinimal]}\r\n ref={innerRef}\r\n data-qlib-focused={isFocused}\r\n data-qlib-error={isError}\r\n {...innerProps}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faAngleDown} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {DropdownIndicatorProps, components} from \"react-select\";\r\nimport {color} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentDropdownIndicatorProps = DropdownIndicatorProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: var(--qlib-font-size);\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentDropdownIndicator: FunctionComponent<SelectComponentDropdownIndicatorProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n <components.DropdownIndicator css={styles.root} {...props}>\r\n <FontAwesomeIcon icon={faAngleDown}/>\r\n </components.DropdownIndicator>\r\n );\r\n};","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {IndicatorsContainerProps} from \"react-select\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentIndicatorsContainerProps = IndicatorsContainerProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentIndicatorsContainer: FunctionComponent<SelectComponentIndicatorsContainerProps> = ({\r\n innerProps,\r\n children\r\n}) => {\r\n return (\r\n <div css={styles.root} {...innerProps}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode, useContext} from \"react\";\r\nimport {InputProps, components} from \"react-select\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype SelectComponentInputProps = InputProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n rootOutline: css`\r\n height: 1em;\r\n line-height: 1;\r\n `,\r\n rootMinimal: css`\r\n height: 1em;\r\n line-height: 1;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentInput: FunctionComponent<SelectComponentInputProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n const {variant} = useContext(context);\r\n\r\n return (\r\n <components.Input\r\n css={variant === \"outline\" ? styles.rootOutline : styles.rootMinimal}\r\n {...props}\r\n >\r\n {children}\r\n </components.Input>\r\n );\r\n};","import {css, keyframes} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode, useContext} from \"react\";\r\nimport {MenuProps} from \"react-select\";\r\nimport {borderWidth} from \"/src/components/functions/utilities\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype SelectComponentMenuProps = MenuProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst animations = {\r\n open: keyframes`\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n `,\r\n close: keyframes`\r\n to {\r\n opacity: 0;\r\n }\r\n from {\r\n opacity: 1;\r\n }\r\n `\r\n};\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n margin-block-start: ${borderWidth(2)};\r\n display: flex;\r\n flex-direction: column;\r\n position: absolute;\r\n z-index: 1;\r\n &[data-qlib-alignment=\"left\"] {\r\n align-items: flex-start;\r\n }\r\n &[data-qlib-alignment=\"right\"] {\r\n align-items: flex-end;\r\n }\r\n &[data-qlib-open=\"true\"] {\r\n animation: ${animations.open} 0.2s ease;\r\n opacity: 1;\r\n }\r\n &[data-qlib-open=\"false\"] {\r\n animation: ${animations.close} 0.2s ease;\r\n opacity: 0;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentMenu: FunctionComponent<SelectComponentMenuProps> = ({\r\n innerRef,\r\n innerProps,\r\n children\r\n}) => {\r\n const {optionAlignment, isMenuOpen} = useContext(context);\r\n\r\n return (\r\n <div css={styles.root} ref={innerRef} data-qlib-open={isMenuOpen} data-qlib-alignment={optionAlignment} {...innerProps}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {MenuListProps} from \"react-select\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentMenuListProps = MenuListProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n min-inline-size: ${size(24)};\r\n max-block-size: ${size(60)};\r\n border-radius: ${size(1)};\r\n background-color: ${color(\"white\")};\r\n border: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n box-shadow: ${boxShadow(alpha(color(\"gray\", 5), 0.2), 1)};\r\n display: flex;\r\n flex-direction: column;\r\n overflow-y: auto;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentMenuList: FunctionComponent<SelectComponentMenuListProps> = ({\r\n innerRef,\r\n innerProps,\r\n children\r\n}) => {\r\n return (\r\n <div css={styles.root}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent} from \"react\";\r\nimport {components} from \"react-select\";\r\n\r\n\r\ntype SelectComponentMenuPortalProps = any;\r\n\r\nconst styles = {\r\n root: css`\r\n z-index: 3000 !important;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentMenuPortal: FunctionComponent<SelectComponentMenuPortalProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n <components.MenuPortal css={styles.root} {...props}>\r\n {children}\r\n </components.MenuPortal>\r\n );\r\n};","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {NoticeProps, components} from \"react-select\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype SelectComponentNoOptionMessageProps = NoticeProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(2)};\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentNoOptionMessage: FunctionComponent<SelectComponentNoOptionMessageProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n const {trans} = useQlibTranslation(\"select\");\r\n\r\n return (\r\n <components.NoOptionsMessage css={styles.root} {...props}>\r\n {trans(\"noOption\")}\r\n </components.NoOptionsMessage>\r\n );\r\n};\r\n","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {OptionProps} from \"react-select\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentItemProps = OptionProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(2)};\r\n cursor: pointer;\r\n display: block;\r\n user-select: none;\r\n box-sizing: border-box;\r\n transition: background-color 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n &[data-qlib-focused=\"true\"] {\r\n background-color: ${color(\"primary\", 0)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentOption: FunctionComponent<SelectComponentItemProps> = ({\r\n data,\r\n isSelected,\r\n isFocused,\r\n isDisabled,\r\n innerRef,\r\n innerProps,\r\n children\r\n}) => {\r\n return (\r\n <div\r\n css={styles.root}\r\n ref={innerRef}\r\n data-qlib-selected={isSelected}\r\n data-qlib-focused={isFocused}\r\n aria-disabled={isDisabled}\r\n {...innerProps}\r\n >\r\n {data.node}\r\n </div>\r\n );\r\n};\r\n","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {PlaceholderProps, components} from \"react-select\";\r\nimport {color} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SelectComponentPlaceholderProps = PlaceholderProps<{value: any, label: string, node: ReactNode}>;\r\n\r\nconst styles = {\r\n root: css`\r\n color: ${color(\"gray\", 5)};\r\n line-height: 1;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectComponentPlaceholder: FunctionComponent<SelectComponentPlaceholderProps> = ({\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n <components.Placeholder css={styles.root} {...props}>\r\n {children}\r\n </components.Placeholder>\r\n );\r\n};","import {useCallback, useRef, useState} from \"react\";\r\nimport {StateManagerProps} from \"react-select/dist/declarations/src/useStateManager\";\r\n\r\n\r\n/**\r\n * メニューを閉じたときに、メニューのアンマウントを一定時間遅らせるための props を返します。\r\n * これによって、メニューを閉じたときに CSS によるアニメーションを行うことができます。\r\n */\r\nexport const useDelayedMenuProps = (duration: number): Pick<StateManagerProps, \"menuIsOpen\" | \"onMenuOpen\" | \"onMenuClose\"> & {isMenuOpen: boolean} => {\r\n const [isMenuOpen, setMenuOpen] = useState(false);\r\n const [isMenuMounted, setMenuMounted] = useState(false);\r\n const menuMountedTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n const handleMenuOpen = useCallback(() => {\r\n setMenuOpen(true);\r\n setMenuMounted(true);\r\n if (menuMountedTimeoutRef.current != null) {\r\n clearTimeout(menuMountedTimeoutRef.current);\r\n }\r\n }, []);\r\n\r\n const handleMenuClose = useCallback(() => {\r\n setMenuOpen(false);\r\n menuMountedTimeoutRef.current = setTimeout(() => {\r\n setMenuMounted(false);\r\n }, duration);\r\n }, [duration]);\r\n\r\n return {\r\n isMenuOpen,\r\n menuIsOpen: isMenuMounted,\r\n onMenuOpen: handleMenuOpen,\r\n onMenuClose: handleMenuClose\r\n };\r\n};","import {ReactElement, ReactNode, useCallback, useMemo} from \"react\";\r\nimport SelectRaw from \"react-select/async\";\r\nimport {SelectComponentLoadingMessage} from \"/src/components/atoms/select/selectComponentLoadingMessage\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\nimport {Provider} from \"../select/context\";\r\nimport {SelectComponentClearIndicator} from \"../select/selectComponentClearIndicator\";\r\nimport {SelectComponentControl} from \"../select/selectComponentControl\";\r\nimport {SelectComponentDropdownIndicator} from \"../select/selectComponentDropdownIndicator\";\r\nimport {SelectComponentIndicatorsContainer} from \"../select/selectComponentIndicatorsContainer\";\r\nimport {SelectComponentInput} from \"../select/selectComponentInput\";\r\nimport {SelectComponentMenu} from \"../select/selectComponentMenu\";\r\nimport {SelectComponentMenuList} from \"../select/selectComponentMenuList\";\r\nimport {SelectComponentMenuPortal} from \"../select/selectComponentMenuPortal\";\r\nimport {SelectComponentNoOptionMessage} from \"../select/selectComponentNoOptionMessage\";\r\nimport {SelectComponentOption} from \"../select/selectComponentOption\";\r\nimport {SelectComponentPlaceholder} from \"../select/selectComponentPlacement\";\r\nimport {useDelayedMenuProps} from \"../select/selectHook\";\r\n\r\n\r\ntype AsyncSelectProps<V> = {\r\n /**\r\n * 選択されている値。\r\n */\r\n value?: V | null,\r\n /**\r\n * 初期値。\r\n */\r\n defaultValue?: V | null,\r\n /**\r\n *\r\n */\r\n searchOptions: (input: string) => Promise<Array<V>>,\r\n /**\r\n * 見た目のバリアント。\r\n * 基本的には `\"outline\"` で利用してください。\r\n * フォームの一部として使う場合など、省スペースで表示したいときには `\"minimal\"` にしてください。\r\n * - `\"outline\"` — 通常\r\n * - `\"minimal\"` — 背景や罫線がない\r\n * @defaultValue `\"outline\"`\r\n */\r\n variant?: \"outline\" | \"minimal\",\r\n /**\r\n * 選択肢メニューをコントロール本体に対して揃える方向。\r\n *\r\n * 選択肢メニューは基本的にコントロール本体と同じ幅で表示されますが、選択肢メニューの幅には下限が設定されているため、コントロール本体の幅が非常に小さい場合は選択肢メニューの方が大きくなります。\r\n * その場合に、選択肢メニューをコントロール本体に対してどちら側に揃えるかを設定できます。\r\n * @defaultValue `\"left\"`\r\n */\r\n optionAlignment?: \"left\" | \"right\",\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /**\r\n * 選択しない状態に戻せるかどうか。\r\n * これを `true` にすると、コントロール内部にクリアボタンが表示され、選択を解除できるようになります。\r\n * @defaultValue `false`\r\n */\r\n isClearable?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢が選択されたときに呼ばれるコールバック関数。\r\n */\r\n onSet?: (value: V | null) => unknown,\r\n /**\r\n * 選択肢を描画する関数。\r\n * `AsyncSelectItem` を返してください。\r\n */\r\n children: (value: V) => ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\nconst COMPONENTS = {\r\n Control: SelectComponentControl,\r\n Input: SelectComponentInput,\r\n Placeholder: SelectComponentPlaceholder,\r\n MenuPortal: SelectComponentMenuPortal,\r\n Menu: SelectComponentMenu,\r\n MenuList: SelectComponentMenuList,\r\n Option: SelectComponentOption,\r\n NoOptionsMessage: SelectComponentNoOptionMessage,\r\n LoadingMessage: SelectComponentLoadingMessage,\r\n DropdownIndicator: SelectComponentDropdownIndicator,\r\n ClearIndicator: SelectComponentClearIndicator,\r\n IndicatorsContainer: SelectComponentIndicatorsContainer,\r\n IndicatorSeparator: null,\r\n LoadingIndicator: null as any\r\n};\r\n\r\ntype AsyncSelectComponent = GenericFunctionComponent<<V>(props: AsyncSelectProps<V>) => ReactElement>;\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const AsyncSelect: AsyncSelectComponent = ({\r\n value,\r\n defaultValue,\r\n searchOptions,\r\n variant = \"outline\",\r\n optionAlignment = \"left\",\r\n isError = false,\r\n isClearable = false,\r\n isDisabled = false,\r\n onSet,\r\n children,\r\n className\r\n}) => {\r\n const {trans} = useQlibTranslation(\"select\");\r\n\r\n const rawValue = value != null ? getRawValue(value, children) : value;\r\n const rawDefaultValue = defaultValue != null ? getRawValue(defaultValue, children) : defaultValue;\r\n\r\n const handleLoadOptions = useCallback(async (input: string) => {\r\n const values = await searchOptions(input);\r\n const rawValues = values.map((value) => getRawValue(value, children));\r\n return rawValues;\r\n }, [searchOptions, children]);\r\n\r\n const handleChange = useCallback((rawValue: any | null) => {\r\n onSet?.(rawValue !== null ? rawValue.value : null);\r\n }, [onSet]);\r\n\r\n const {isMenuOpen, ...restProps} = useDelayedMenuProps(200);\r\n\r\n const contextValue = useMemo(() => ({\r\n variant,\r\n optionAlignment,\r\n isMenuOpen,\r\n isError\r\n }), [\r\n variant,\r\n optionAlignment,\r\n isMenuOpen,\r\n isError\r\n ]);\r\n\r\n return (\r\n <Provider value={contextValue}>\r\n <SelectRaw\r\n className={className}\r\n classNamePrefix={\"qlib-select\"}\r\n value={rawValue as any}\r\n defaultValue={rawDefaultValue as any}\r\n loadOptions={handleLoadOptions}\r\n onChange={onSet != null ? handleChange : undefined}\r\n isClearable={isClearable}\r\n isDisabled={isDisabled}\r\n defaultOptions={true}\r\n placeholder={trans(\"select\")}\r\n menuPortalTarget={typeof window === \"object\" ? document.body : undefined}\r\n components={COMPONENTS}\r\n isMulti={false}\r\n unstyled={true}\r\n aria-invalid={isError}\r\n {...restProps}\r\n />\r\n </Provider>\r\n );\r\n};\r\n\r\nconst getRawValue = <V extends any>(value: V, children: (value: V) => ReactElement): {value: V, label: string, node: ReactNode} => {\r\n const element = children(value);\r\n const label = element.props.label;\r\n return {value, label, node: element};\r\n};\r\n\r\nAsyncSelect.displayName = \"AsyncSelect\";","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SelectOptionProps = CommonProps & {\r\n /**\r\n * この選択肢が選択されているときに、選択式メニュー本体の内部で表示する文字列。\r\n */\r\n label: string,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢メニューの選択肢が一覧される箇所で表示する内容。\r\n * 省略した場合は、`label` に設定された文字列が表示されます。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const AsyncSelectOption: FunctionComponent<SelectOptionProps> = ({\r\n label,\r\n isDisabled = false,\r\n children,\r\n className,\r\n ...data\r\n}) => {\r\n return (\r\n <div css={styles.root} className={className} {...data}>\r\n {children ?? label}\r\n </div>\r\n );\r\n};\r\n\r\nAsyncSelectOption.displayName = \"AsyncSelectOption\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-avatar\");","import {css} from \"@emotion/react\";\r\nimport * as RawAvatar from \"@radix-ui/react-avatar\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype AvatarProps = CommonProps & {\r\n /**\r\n * 表示するアイコンの URL。\r\n * `undefined` を指定した場合は、フォールバック要素を表示します。\r\n */\r\n src: string | undefined,\r\n /**\r\n * 代替テキスト。\r\n */\r\n alt?: string,\r\n /**\r\n * アイコンがない場合やアイコンの読み込み中に表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 1.5em;\r\n block-size: 1.5em;\r\n border-radius: ${size(\"max\")};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n vertical-align: middle;\r\n position: relative;\r\n overflow: hidden;\r\n `,\r\n image: css`\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n `,\r\n fallback: css`\r\n width: 100%;\r\n height: 100%;\r\n display: inline-flex;\r\n align-items: end;\r\n justify-content: center;\r\n `,\r\n icon: css`\r\n font-size: 1.2em;\r\n `\r\n};\r\n\r\n/**\r\n * ### アイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(({\r\n src,\r\n alt,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <RawAvatar.Root css={styles.root} className={className} ref={ref} {...data}>\r\n <RawAvatar.Image css={styles.image} src={src} alt={alt}/>\r\n {children}\r\n </RawAvatar.Root>\r\n );\r\n});\r\n\r\nAvatar.displayName = \"Avatar\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/sharp-solid-svg-icons\");","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faUser} from \"@fortawesome/sharp-solid-svg-icons\";\r\nimport * as RawAvatar from \"@radix-ui/react-avatar\";\r\nimport {forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype AvatarFallbackIconProps = CommonProps & {\r\n /** */\r\n hue: number,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n fallback: css`\r\n width: 100%;\r\n height: 100%;\r\n display: inline-flex;\r\n align-items: end;\r\n justify-content: center;\r\n `,\r\n icon: css`\r\n font-size: 1.2em;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const AvatarFallbackIcon = forwardRef<HTMLSpanElement, AvatarFallbackIconProps>(({\r\n hue,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <RawAvatar.Fallback css={styles.fallback} ref={ref} delayMs={500} style={{color: `hsl(${hue}, 100%, 95%)`, backgroundColor: `hsl(${hue}, 30%, 50%)`}} {...data}>\r\n <FontAwesomeIcon css={styles.icon} icon={faUser}/>\r\n </RawAvatar.Fallback>\r\n );\r\n});\r\n\r\nAvatarFallbackIcon.displayName = \"AvatarFallbackIcon\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"graphemesplit\");","import {css} from \"@emotion/react\";\r\nimport * as RawAvatar from \"@radix-ui/react-avatar\";\r\nimport split from \"graphemesplit\";\r\nimport {forwardRef, useMemo} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype AvatarFallbackLetterProps = CommonProps & {\r\n /**\r\n * 名前。\r\n * この文字列の先頭の文字が表示されます。\r\n */\r\n name: string,\r\n /** */\r\n hue: number,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n fallback: css`\r\n width: 100%;\r\n height: 100%;\r\n font-size: 0.8em;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const AvatarFallbackLetter = forwardRef<HTMLSpanElement, AvatarFallbackLetterProps>(({\r\n name,\r\n hue,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const initial = useMemo(() => split(name)[0], [name]);\r\n\r\n return (\r\n <RawAvatar.Fallback css={styles.fallback} ref={ref} delayMs={500} style={{color: `hsl(${hue}, 100%, 95%)`, backgroundColor: `hsl(${hue}, 30%, 50%)`}} {...data}>\r\n {initial}\r\n </RawAvatar.Fallback>\r\n );\r\n});\r\n\r\nAvatarFallbackLetter.displayName = \"AvatarFallbackLetter\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype BadgeProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 見た目のバリアント。\r\n * @defaultValue `\"solid\"`\r\n */\r\n variant?: \"solid\" | \"light\" | \"outline\",\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<BadgeProps[\"scheme\"]>) => css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n --qlib-padding-block: ${size(0.5)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\r\n --qlib-padding-block: ${size(0.75)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-variant=\"solid\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-background-color: ${color(scheme, 1)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(\"white\")};\r\n --qlib-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"outline\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-background-color: transparent;\r\n }\r\n &[data-qlib-variant=\"solid\"],\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-border-style: none;\r\n }\r\n &[data-qlib-variant=\"outline\"] {\r\n --qlib-border-style: solid;\r\n }\r\n padding-block: var(--qlib-padding-block);\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n color: var(--qlib-color);\r\n background-color: var(--qlib-background-color);\r\n border: var(--qlib-border-style) ${borderWidth(1)} ${color(scheme, 1)};\r\n border-radius: ${size(\"max\")};\r\n line-height: 1;\r\n display: inline-block;\r\n `,\r\n icon: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * ### バッジ\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(({\r\n scheme = \"primary\",\r\n variant = \"solid\",\r\n size = \"medium\",\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref}\r\n data-qlib-variant={variant}\r\n data-qlib-size={size}\r\n {...data}\r\n >\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nBadge.displayName = \"Badge\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype BadgeIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * ### バッジ内のアイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BadgeIconContainer = forwardRef<HTMLSpanElement, BadgeIconContainerProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nBadgeIconContainer.displayName = \"BadgeIconContainer\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-is\");","import {Children, JSXElementConstructor, ReactElement, ReactNode, isValidElement} from \"react\";\r\nimport {isFragment} from \"react-is\";\r\n\r\n\r\nexport const getElements = (node: ReactNode): Array<ReactElement> => {\r\n const children = normalizeNode(node);\r\n const elements = children.filter(isValidElement);\r\n if (children.length === elements.length) {\r\n return elements;\r\n } else {\r\n throw new Error(\"Component receives children containing nodes which is not a `ReactElement`\");\r\n }\r\n};\r\n\r\nexport const findElement = (node: ReactNode, type: string | JSXElementConstructor<any>): ReactElement | undefined => {\r\n const element = getElements(node).find((element) => element.type === type);\r\n return element;\r\n};\r\n\r\nexport const normalizeNode = (node: ReactNode): Array<ReactNode> => {\r\n const children = Children.toArray(node);\r\n if (children.length === 1 && isFragment(children[0])) {\r\n return normalizeNode(children[0].props.children);\r\n } else {\r\n return children;\r\n }\r\n};\r\n","import {createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n isPale: boolean,\r\n totalValue: number\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n isPale: true,\r\n totalValue: 0\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef, useMemo} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {Provider} from \"./context\";\r\n\r\n\r\ntype BarMeterProps = CommonProps & {\r\n /**\r\n * メーター部分の色を薄くするかどうか。\r\n * `ItemPane` に表示する場合には、`true` を指定しておくと他の要素と馴染みます。\r\n * メーターがメインになるような場所では、`false` を指定してください。\r\n * @defaultValue `true`\r\n */\r\n isPale?: boolean,\r\n /** */\r\n className?: string,\r\n /** */\r\n children: ReactElement | Array<ReactElement>\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n display: flex;\r\n overflow: hidden;\r\n `\r\n};\r\n\r\n/**\r\n * ### 色分けメーター\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`BarMeter`**\r\n * - [`BarMeterValue`](/docs/atoms-BarMeter-BarMeterValue--ドキュメント) (複数個)\r\n *\r\n * #### 例\r\n * 典型的には、以下のような形で使用します。\r\n *\r\n * ```tsx\r\n * <BarMeter>\r\n * <BarMeterValue iconNode={<Icon name=\"quiz\"/>} value={10} scheme=\"blue\">項目1</BarMeterValue>\r\n * <BarMeterValue iconNode={<Icon name=\"deck\"/>} value={30} scheme=\"red\">項目2</BarMeterValue>\r\n * <BarMeterValue iconNode={<Icon name=\"member\"/>} value={40} scheme=\"green\">項目3</BarMeterValue>\r\n * </BarMeter>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BarMeter = forwardRef<HTMLDivElement, BarMeterProps>(({\r\n isPale = true,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const totalValue = useMemo(() => {\r\n const elements = getElements(children);\r\n const totalValue = elements.reduce((prev, element) => prev + +element.props.value, 0);\r\n return totalValue;\r\n }, [children]);\r\n\r\n const contextValue = useMemo(() => ({\r\n isPale,\r\n totalValue\r\n }), [\r\n isPale,\r\n totalValue\r\n ]);\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n <Provider value={contextValue}>\r\n {children}\r\n </Provider>\r\n </div>\r\n );\r\n});\r\n\r\nBarMeter.displayName = \"BarMeter\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {lineHeight} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SingleLineTextProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"div\"`\r\n */\r\n as?: keyof JSX.IntrinsicElements,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n ${lineHeight(1.5)}\r\n `,\r\n inner: css`\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n -webkit-line-clamp: 1;\r\n overflow: hidden;\r\n `\r\n};\r\n\r\n/**\r\n * ### 1 行のテキスト\r\n *\r\n * #### 概要\r\n * デザイン上テキストが長くなっても必ず 1 行で表示したい場合に利用してください。\r\n * 中身のテキストが 1 行を超えた場合は、超えた部分が「…」で表示されます。\r\n *\r\n * 2 行以上で行数を制限したい場合は、[`MultiLineText`](/docs/atoms-MultiLineText-MultiLineText--ドキュメント) を利用してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SingleLineText = forwardRef<HTMLElement, SingleLineTextProps>(({\r\n as = \"div\",\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = as as any;\r\n\r\n return (\r\n <TagName css={styles.root} className={className} ref={ref} {...data}>\r\n <span css={styles.inner}>\r\n {children}\r\n </span>\r\n </TagName>\r\n );\r\n});\r\n\r\nSingleLineText.displayName = \"SingleLineText\";\r\n","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {SingleLineText} from \"/src/components/atoms/singleLineText\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype BarMeterValueProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"gray\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * この項目の値。\r\n * この値に応じてバーの長さが変わります。\r\n */\r\n value: number,\r\n /**\r\n * メーターの下にキャプションとして表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<BarMeterValueProps[\"scheme\"]>) => css`\r\n &[data-qlib-pale=\"true\"] {\r\n --qlib-bar-color: ${color(scheme, 3)};\r\n }\r\n &[data-qlib-pale=\"false\"] {\r\n --qlib-bar-color: ${color(scheme, 5)};\r\n }\r\n &:first-of-type {\r\n --qlib-border-start-radius: ${size(\"max\")};\r\n --qlib-spacer-display: none;\r\n }\r\n &:not(:first-of-type) {\r\n --qlib-border-start-radius: 0em;\r\n }\r\n &:last-of-type {\r\n --qlib-border-end-radius: ${size(\"max\")};\r\n }\r\n &:not(:last-of-type) {\r\n --qlib-border-end-radius: 0em;\r\n }\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-spacer-display: block;\r\n /**********************************************************/\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n &:first-of-type {\r\n --qlib-border-start-radius: ${size(\"max\")};\r\n --qlib-spacer-display: none;\r\n }\r\n &:last-of-type {\r\n --qlib-border-end-radius: ${size(\"max\")};\r\n }\r\n `,\r\n barContainer: css`\r\n inline-size: 100%;\r\n block-size: ${size(1.5)};\r\n display: flex;\r\n box-sizing: border-box;\r\n `,\r\n bar: css`\r\n background-color: var(--qlib-bar-color);\r\n border-start-start-radius: var(--qlib-border-start-radius);\r\n border-end-start-radius: var(--qlib-border-start-radius);\r\n border-start-end-radius: var(--qlib-border-end-radius);\r\n border-end-end-radius: var(--qlib-border-end-radius);\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n `,\r\n spacer: css`\r\n inline-size: ${borderWidth(1)};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n display: var(--qlib-spacer-display);\r\n `,\r\n legend: css`\r\n inline-size: 100%;\r\n margin-block-start: ${size(1)};\r\n font-size: ${size(3)};\r\n color: var(--qlib-color);\r\n box-sizing: border-box;\r\n `,\r\n icon: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n `\r\n};\r\n\r\n/**\r\n * ### 色分けメーターの項目\r\n *\r\n * #### 内部使用のみ\r\n * このコンポーネントは [`BarMeter`](/docs/atoms-BarMeter-BarMeter--ドキュメント) の子要素に配置するものであり、単独では動作しません。\r\n * 詳細は [`BarMeter`](/docs/atoms-BarMeter-BarMeter--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BarMeterValue = forwardRef<HTMLDivElement, BarMeterValueProps>(({\r\n scheme = \"gray\",\r\n value,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {isPale, totalValue} = useContext(context);\r\n const percent = totalValue > 0 ? value / totalValue * 100 : 0;\r\n\r\n return (\r\n <div\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref}\r\n data-qlib-pale={isPale}\r\n style={{inlineSize: `${percent}%`}}\r\n {...data}\r\n >\r\n <div css={styles.barContainer} aria-hidden={true}>\r\n <div css={styles.spacer}/>\r\n <div css={styles.bar}/>\r\n </div>\r\n <SingleLineText css={styles.legend}>\r\n {children}\r\n </SingleLineText>\r\n </div>\r\n );\r\n});\r\n\r\nBarMeterValue.displayName = \"BarMeterValue\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype BarMeterValueIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * ### バッジ内のアイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BarMeterValueIconContainer = forwardRef<HTMLSpanElement, BarMeterValueIconContainerProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nBarMeterValueIconContainer.displayName = \"BarMeterValueIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {forwardRef} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype BarProgressProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 表示する値。\r\n * `minValue` から `maxValue` までの範囲で指定してください。\r\n */\r\n value: number,\r\n /**\r\n * バーの最小値。\r\n */\r\n minValue: number,\r\n /**\r\n * バーの最大値。\r\n */\r\n maxValue: number,\r\n /**\r\n * メーター部分の色を薄くするかどうか。\r\n * `ItemPane` に表示する場合には、`true` を指定しておくと他の要素と馴染みます。\r\n * メーターがメインになるような場所では、`false` を指定してください。\r\n * @defaultValue `true`\r\n */\r\n isPale?: boolean,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n block-size: ${size(1.5)};\r\n border-radius: ${size(\"max\")};\r\n background-color: ${color(\"gray\", 1)};\r\n display: flex;\r\n overflow: hidden;\r\n `,\r\n bar: (scheme: LeveledColorScheme) => css`\r\n &[data-qlib-pale=\"true\"] {\r\n --qlib-bar-color: ${color(scheme, 3)};\r\n }\r\n &[data-qlib-pale=\"false\"] {\r\n --qlib-bar-color: ${color(scheme, 5)};\r\n }\r\n background-color: var(--qlib-bar-color);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BarProgress = forwardRef<HTMLDivElement, BarProgressProps>(({\r\n scheme = \"primary\",\r\n value,\r\n minValue,\r\n maxValue,\r\n isPale = true,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const percent = Math.min(Math.max((value - minValue) / (maxValue - minValue) * 100, 0), 100);\r\n\r\n return (\r\n <div\r\n css={styles.root}\r\n className={className}\r\n ref={ref}\r\n role=\"progressbar\"\r\n aria-valuenow={value}\r\n aria-valuemin={minValue}\r\n aria-valuemax={maxValue}\r\n {...data}\r\n >\r\n <div\r\n css={styles.bar(scheme)}\r\n style={{inlineSize: `${percent}%`}}\r\n data-qlib-pale={isPale}\r\n aria-hidden={true}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nBarProgress.displayName = \"BarProgress\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCircleNotch} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ReactNode, forwardRef, useMemo} from \"react\";\r\nimport {KeyboardEvent, MouseEvent} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ButtonProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 見た目のバリアント。\r\n * - `\"solid\"` — ボタン状, ボタンの背景が濃い\r\n * - `\"light\"` — ボタン状, ボタンの背景が薄い\r\n * - `\"underline\"` — テキスト状, ホバー時に下線が付く\r\n * - `\"simple\"` — テキスト状, ホバー時でも下線は付かない\r\n * - `\"unstyledUnderline\"` — スタイルなし, ホバー時に下線が付く\r\n * - `\"unstyledSimple\"` — スタイルなし, ホバー時でも下線は付かない\r\n * @defaultValue `\"solid\"`\r\n */\r\n variant?: \"solid\" | \"light\" | \"underline\" | \"simple\" | \"unstyledUnderline\" | \"unstyledSimple\",\r\n /**\r\n * 全体のサイズ。\r\n *\r\n * `variant` の値が `\"solid\"` か `\"light\"` の場合にのみ効果があります。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\" | \"large\",\r\n /**\r\n * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、フォームの一部として使う場合など、省スペースで表示したいときには `true` にしてください。\r\n *\r\n * `variant` の値が `\"solid\"` か `\"light\"` の場合にのみ効果があります。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\r\n /**\r\n * ボタンの種類。\r\n * HTML と違ってデフォルト値が `\"button\"` になっているので、フォームの送信ボタンとして使う場合は明示的に `\"submit\"` を指定してください。\r\n * @defaultValue `\"button\"`\r\n */\r\n type?: \"submit\" | \"reset\" | \"button\",\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * ローディング中かどうか。\r\n * これが `true` の間は、ボタンがローディング表示され無効になります。\r\n * @defaultValue `false`\r\n */\r\n isLoading?: boolean,\r\n /**\r\n * クリックされたりショートカットキーが押されたりしたときに実行する関数。\r\n */\r\n onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onKeyDown?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onKeyUp?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onMouseDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onPointerDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /**\r\n * ボタンの内部に表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n rootBox: (scheme: NonNullable<ButtonProps[\"scheme\"]>) => css`\r\n // 文字サイズ\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n }\r\n &[data-qlib-size=\"medium\"],\r\n &[data-qlib-size=\"large\"] {\r\n --qlib-font-size: ${size(4)}\r\n }\r\n // 内部の余白\r\n &[data-qlib-size=\"small\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(3)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n }\r\n &[data-qlib-size=\"large\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(3)};\r\n --qlib-padding-inline: ${size(5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(3)};\r\n }\r\n }\r\n // 色\r\n &[data-qlib-variant=\"solid\"] {\r\n --qlib-color: ${color(\"white\")};\r\n --qlib-border-color: ${color(scheme, 6)};\r\n --qlib-background-color: ${color(scheme, 5)};\r\n --qlib-hover-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-border-color: ${color(scheme, 3)};\r\n --qlib-background-color: ${color(\"white\")};\r\n --qlib-hover-background-color: ${color(scheme, 0)};\r\n }\r\n /**********************************************************/\r\n padding-block: var(--qlib-padding-block);\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n color: var(--qlib-color);\r\n background-color: var(--qlib-background-color);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0.2), 0.5)};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n text-align: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n &:hover:not(:disabled) {\r\n background-color: var(--qlib-hover-background-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0), 0.5)};\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n rootText: (scheme: NonNullable<ButtonProps[\"scheme\"]>) => css`\r\n &[data-qlib-variant=\"underline\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-hover-color: ${color(scheme, 4)};\r\n --qlib-hover-decoration-color: currentcolor;\r\n }\r\n &[data-qlib-variant=\"simple\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-hover-color: ${color(scheme, 4)};\r\n --qlib-hover-decoration-color: transparent;\r\n }\r\n /**********************************************************/\r\n color: var(--qlib-color);\r\n border-radius: ${size(1)};\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n cursor: pointer;\r\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\r\n &:hover:not(:disabled) {\r\n color: var(--qlib-hover-color);\r\n text-decoration-color: var(--qlib-hover-decoration-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n rootUnstyled: (scheme: NonNullable<ButtonProps[\"scheme\"]>) => css`\r\n &[data-qlib-variant=\"underline\"] {\r\n --qlib-hover-decoration-color: currentcolor;\r\n }\r\n &[data-qlib-variant=\"simple\"] {\r\n --qlib-hover-decoration-color: transparent;\r\n }\r\n /**********************************************************/\r\n border-radius: ${size(1)};\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n cursor: pointer;\r\n transition: text-decoration-color 0.2s ease;\r\n &:hover:not(:disabled) {\r\n text-decoration-color: var(--qlib-hover-decoration-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n loading: css`\r\n inset: ${size(0)};\r\n background-color: var(--qlib-background-color);\r\n border-radius: ${size(1)};\r\n display: none;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n &[data-qlib-loading=\"true\"] {\r\n display: flex;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### ボタン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(({\r\n scheme = \"primary\",\r\n variant = \"solid\",\r\n size = \"medium\",\r\n isCompact = false,\r\n type = \"button\",\r\n isDisabled = false,\r\n isLoading = false,\r\n onClick,\r\n onKeyDown,\r\n onKeyUp,\r\n onMouseDown,\r\n onPointerDown,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const style = useMemo(() => {\r\n if (variant === \"solid\" || variant === \"light\") {\r\n return styles.rootBox(scheme);\r\n } else if (variant === \"underline\" || variant === \"simple\") {\r\n return styles.rootText(scheme);\r\n } else {\r\n return styles.rootUnstyled(scheme);\r\n }\r\n }, [scheme, variant]);\r\n\r\n return (\r\n <button\r\n className={className}\r\n css={style}\r\n type={type}\r\n disabled={isDisabled || isLoading}\r\n onClick={onClick}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n onMouseDown={onMouseDown}\r\n onPointerDown={onPointerDown}\r\n ref={ref}\r\n data-qlib-variant={variant}\r\n data-qlib-size={size}\r\n data-qlib-compact={isCompact}\r\n data-qlib-loading={isLoading}\r\n {...dataAndAria}\r\n >\r\n {children}\r\n <div css={styles.loading} data-qlib-loading={isLoading}>\r\n <FontAwesomeIcon icon={faCircleNotch} spin={true}/>\r\n </div>\r\n </button>\r\n );\r\n});\r\n\r\nButton.displayName = \"Button\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ButtonIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### ボタン内のアイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ButtonIconContainer = forwardRef<HTMLSpanElement, ButtonIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nButtonIconContainer.displayName = \"ButtonIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableContainerProps = CommonProps & {\r\n /**\r\n * 表示する内容。\r\n * コントロールと `CheckableLabel` を 1 つずつ置いてください。\r\n */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n `\r\n};\r\n\r\n/**\r\n * ### チェック系コントロールにラベルを付けるためのコンテナ\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`CheckableContainer`**\r\n * - コントロール (必須)\r\n * - [`CheckableLabel`](/docs/atoms-CheckableContainer-CheckableLabel--ドキュメント) (必須)\r\n *\r\n * 子要素に置くコントロールとしては、[`Checkbox`](/docs/atoms-Checkbox-Checkbox--ドキュメント), [`Radio`](/docs/atoms-Radio-Radio--ドキュメント), [`Switch`](/docs/atoms-Switch-Switch--ドキュメント) が適切です。\r\n *\r\n * #### 例\r\n * 以下はチェックボックスにラベルを付けた例です。\r\n *\r\n * ```tsx\r\n * <CheckableContainer>\r\n * <Checkbox/>\r\n * <CheckableLabel>ラベル</CheckableLabel>\r\n * </CheckableContainer>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CheckableContainer = forwardRef<HTMLLabelElement, CheckableContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <label className={className} css={styles.root} ref={ref} {...data}>\r\n {children}\r\n </label>\r\n );\r\n});\r\n\r\nCheckableContainer.displayName = \"CheckableContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableLabelProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\n/**\r\n * ### チェック系コントロール用のラベル\r\n *\r\n * #### 内部使用のみ\r\n * このコンポーネントは [`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) の子要素に配置することを想定しているため、単独では使わないでください。\r\n * 詳細は [`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CheckableLabel = forwardRef<HTMLDivElement, CheckableLabelProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div className={className} css={styles.root} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCheckableLabel.displayName = \"CheckableLabel\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@floating-ui/react\");","import {css} from \"@emotion/react\";\r\nimport {useId, useMergeRefs} from \"@floating-ui/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCheck, faMinus} from \"@fortawesome/sharp-solid-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, forwardRef, useCallback, useEffect, useRef} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckboxProps = CommonProps & AriaAttributes & {\r\n /**\r\n * チェック状態。\r\n * `\"indeterminate\"` は不定の状態を表します。\r\n */\r\n isChecked?: true | false | \"indeterminate\",\r\n /** */\r\n name?: string,\r\n /** */\r\n value?: string,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (isChecked: true | false) => void,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * チェック状態を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"primary\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"red\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n cursor: pointer;\r\n `,\r\n original: css`\r\n inline-size: 1px;\r\n block-size: 1px;\r\n position: absolute;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n opacity: 0;\r\n clip: rect(0px, 0px, 0px, 0px);\r\n clip-path: inset(50%);\r\n `,\r\n input: css`\r\n inline-size: ${size(4.5)};\r\n block-size: ${size(4.5)};\r\n border-radius: ${size(1)};\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n line-height: 1;\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: border-color 0.2s ease, background-color 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n input:checked +& {\r\n border-color: var(--qlib-checked-border-color);\r\n background-color: var(--qlib-checked-background-color);\r\n }\r\n input:focus-visible +& {\r\n outline: solid ${borderWidth(2)} var(--qlib-focus-color);\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n input:disabled +& {\r\n cursor: inherit;\r\n }\r\n `,\r\n icon: css`\r\n font-size: ${size(4)};\r\n color: ${color(\"white\")};\r\n transition: color 0.2s ease, opacity 0.2s ease;\r\n opacity: 0;\r\n input:checked +* >&,\r\n input:indeterminate +* >& {\r\n opacity: 1;\r\n }\r\n input:indeterminate +* >& {\r\n color: var(--qlib-checked-background-color);\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### チェックボックス\r\n *\r\n * #### 注意\r\n * このコンポーネントはチェックボックスのみを表示します。\r\n * 一緒にラベルを表示したい場合は、[`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) と [`CheckableLabel`](/docs/atoms-CheckableContainer-CheckableLabel--ドキュメント) を利用して、以下のようにしてください。\r\n *\r\n * ```tsx\r\n * <CheckableContainer>\r\n * <Checkbox/>\r\n * <CheckableLabel>ラベル</CheckableLabel>\r\n * </CheckableContainer>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(({\r\n isChecked,\r\n name,\r\n value,\r\n isError = false,\r\n isRequired,\r\n isDisabled = false,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const id = useId();\r\n\r\n const innerRef = useRef<HTMLInputElement>(null);\r\n const mergedRef = useMergeRefs([ref, innerRef]);\r\n\r\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\r\n const isChecked = event.target.checked;\r\n onSet?.(isChecked);\r\n onChange?.(event);\r\n }, [onSet, onChange]);\r\n\r\n useEffect(() => {\r\n if (innerRef.current != null) {\r\n innerRef.current.indeterminate = isChecked === \"indeterminate\";\r\n }\r\n }, [isChecked]);\r\n\r\n return (\r\n <div\r\n css={styles.root}\r\n className={className}\r\n data-qlib-error={isError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n css={styles.original}\r\n ref={mergedRef}\r\n id={id}\r\n checked={isChecked != null ? isChecked === true : undefined}\r\n name={name}\r\n value={value}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n />\r\n <label css={styles.input} htmlFor={id} aria-hidden=\"true\">\r\n <FontAwesomeIcon css={styles.icon} icon={isChecked === \"indeterminate\" ? faMinus : faCheck}/>\r\n </label>\r\n </div>\r\n );\r\n});\r\n\r\nCheckbox.displayName = \"Checkbox\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlContainerProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n row-gap: ${size(2)};\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールにラベルなどを付けるためのコンテナ\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`ControlContainer`**\r\n * - [`ControlLabel`](/docs/atoms-ControlContainer-ControlLabel--ドキュメント) (必須)\r\n * - [`ControlHelper`](/docs/atoms-ControlContainer-ControlHelper--ドキュメント) (任意)\r\n * - コントロール (必須)\r\n * - [`ControlErrorMessage`](/docs/atoms-ControlContainer-ControlErrorMessage--ドキュメント) (任意)\r\n *\r\n * #### 例\r\n * 以下は全てを表示した例です。\r\n * 実際には、`ControlErrorMessage` がバリデーションエラー時のみ表示されるようにするなどの処理を追加することになります。\r\n *\r\n * ```tsx\r\n * <ControlContainer>\r\n * <ControlLabel>テキスト欄</ControlLabel>\r\n * <ControlHelper>\r\n * コントロールの説明文をここに入れます。\r\n * </ControlHelper>\r\n * <Input/>\r\n * <ControlErrorMessage>\r\n * この欄は必須です。\r\n * </ControlErrorMessage>\r\n * </ControlContainer>\r\n * ```\r\n *\r\n * コントロールとしてチェックボックスやラジオボタンを使いたい場合は、[`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) を用いることで、チェックボックスやラジオボタンの右にラベルを表示できます。\r\n *\r\n * ```tsx\r\n * <ControlContainer>\r\n * <ControlLabel>利用規約の同意</ControlLabel>\r\n * <ControlHelper>\r\n * 会員登録をするには利用規約に同意する必要があります。\r\n * </ControlHelper>\r\n * <CheckableContainer>\r\n * <Checkbox/>\r\n * <CheckableLabel>同意する</CheckableLabel>\r\n * </CheckableContainer>\r\n * </ControlContainer>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlContainer = forwardRef<HTMLLabelElement, ControlContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <label className={className} css={styles.root} ref={ref} {...data}>\r\n {children}\r\n </label>\r\n );\r\n});\r\n\r\nControlContainer.displayName = \"ControlContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {fixedLineHeight, lineHeight} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype MultiLineTextProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"div\"`\r\n */\r\n as?: keyof JSX.IntrinsicElements,\r\n /**\r\n * 行間。\r\n * 具体的な設定値は以下の通りです。\r\n * - `\"normal\"` — 1.5\r\n * - `\"narrow\"` — 1.325 (= 1 + 3/8)\r\n * - `\"wide\"` — 1.625 (= 1 + 5/8)\r\n * - `\"normalFixed\"` — ルートフォントサイズの 1.5 倍固定値\r\n * - `\"narrowFixed\"` — ルートフォントサイズの 1.325 倍固定値\r\n * - `\"wideFixed\"` — ルートフォントサイズの 1.625 倍固定値\r\n *\r\n * 通常のテキストであれば `\"normal\"` にし、ボタンやカードの中身などの情報を多く表示したい箇所では `\"short\"` にしてください。\r\n * ページタイトルなどの文字サイズが大きいところでは、`\"normalFixed\"` を指定すると綺麗です。\r\n * @defaultValue `\"normal\"`\r\n */\r\n lineHeight?: \"normal\" | \"narrow\" | \"wide\" | \"normalFixed\" | \"narrowFixed\" | \"wideFixed\",\r\n /**\r\n * 最大行数。\r\n * `null` を指定した場合は、行数に制限を設けません。\r\n * @defaultValue `null`\r\n */\r\n maxLineCount?: number | null,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (maxLineCount?: number) => css`\r\n &[data-qlib-max-line=\"true\"] {\r\n --qlib-additional-margin: 1em;\r\n }\r\n &[data-qlib-max-line=\"false\"] {\r\n --qlib-additional-margin: 0em;\r\n }\r\n &[data-qlib-line-height=\"normal\"] {\r\n ${lineHeight(1.5)};\r\n }\r\n &[data-qlib-line-height=\"narrow\"] {\r\n ${lineHeight(1.375)};\r\n }\r\n &[data-qlib-line-height=\"wide\"] {\r\n ${lineHeight(1.625)};\r\n }\r\n &[data-qlib-line-height=\"normalFixed\"] {\r\n ${fixedLineHeight(\"calc(1em + 0.5 * var(--qlib-root-font-size))\", \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"narrowFixed\"] {\r\n ${fixedLineHeight(\"calc(1em + 0.375 * var(--qlib-root-font-size))\", \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"wideFixed\"] {\r\n ${fixedLineHeight(\"calc(1em + 0.625 * var(--qlib-root-font-size))\", \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-max-line=\"true\"] {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n -webkit-line-clamp: ${maxLineCount};\r\n overflow: hidden;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### 複数行のテキスト\r\n *\r\n * #### 注意\r\n * 複数行に渡るテキストを表示する際は、必ずこのコンポーネントで囲んでください。\r\n *\r\n * #### 概要\r\n * CSS で行間を指定することにより要素の上下に生じる不必要な余白を取り除くため、before 疑似要素と after 疑似要素を用いてその余白を打ち消します。\r\n * 詳細は [Notion のフロントエンド技術メモ](https://www.notion.so/baton8/92b42897cfbc49f494480e9747b99625?pvs=4)を参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const MultiLineText = forwardRef<HTMLElement, MultiLineTextProps>(({\r\n as = \"div\",\r\n lineHeight = \"normal\",\r\n maxLineCount = null,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = as as any;\r\n\r\n return (\r\n <TagName\r\n css={styles.root(maxLineCount ?? 0)}\r\n className={className}\r\n ref={ref}\r\n data-qlib-line-height={lineHeight}\r\n data-qlib-max-line={maxLineCount != null}\r\n {...data}\r\n >\r\n {children}\r\n </TagName>\r\n );\r\n});\r\n\r\nMultiLineText.displayName = \"MultiLineText\";\r\n","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlErrorMessageProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(3)};\r\n color: ${color(\"red\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールに対するエラーメッセージ\r\n *\r\n * #### 内部使用のみ\r\n * このコンポーネントは [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) の子要素に配置することを想定しているため、単独では使わないでください。\r\n * 詳細は [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlErrorMessage = forwardRef<HTMLParagraphElement, ControlErrorMessageProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText className={className} css={styles.root} as=\"p\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nControlErrorMessage.displayName = \"ControlErrorMessage\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlHelperProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールの説明文\r\n *\r\n * #### 内部使用のみ\r\n * このコンポーネントは [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) の子要素に配置することを想定しているため、単独では使わないでください。\r\n * 詳細は [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlHelper = forwardRef<HTMLParagraphElement, ControlHelperProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText className={className} css={styles.root} ref={ref} as=\"p\" lineHeight=\"narrow\" {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nControlHelper.displayName = \"ControlHelper\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {SingleLineText} from \"/src/components/atoms/singleLineText\";\r\nimport {color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlLabelProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(\"gray\", 7)};\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールのラベル\r\n *\r\n * #### 内部使用のみ\r\n * このコンポーネントは [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) の子要素に配置することを想定しているため、単独では使わないでください。\r\n * 詳細は [`ControlContainer`](/docs/atoms-ControlContainer-ControlContainer--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlLabel = forwardRef<HTMLDivElement, ControlLabelProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <SingleLineText className={className} css={styles.root} as=\"div\" ref={ref} {...data}>\r\n {children}\r\n </SingleLineText>\r\n );\r\n});\r\n\r\nControlLabel.displayName = \"ControlLabel\";","import {css} from \"@emotion/react\";\r\nimport {forwardRef} from \"react\";\r\nimport {borderWidth, color} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DividerProps = CommonProps & {\r\n /** */\r\n orientation: \"horizontal\" | \"vertical\",\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-orientation=\"vertical\"] {\r\n block-size: 100%;\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n }\r\n &[data-qlib-orientation=\"horizontal\"] {\r\n inline-size: 100%;\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(({\r\n orientation,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} role=\"separator\" ref={ref} data-qlib-orientation={orientation} {...data}/>\r\n );\r\n});\r\n\r\nDivider.displayName = \"Divider\";","import {css} from \"@emotion/react\";\r\nimport {IconDefinition} from \"@fortawesome/fontawesome-svg-core\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype GeneralIconProps = CommonProps & {\r\n /**\r\n * Font Awesome が提供するアイコンの定義データ。\r\n */\r\n icon: IconDefinition,\r\n /** */\r\n label?: string,\r\n /**\r\n * アイコンの反転。\r\n * @defaultValue `\"none\"`\r\n */\r\n flip?: \"none\" | \"horizontal\" | \"vertical\" | \"both\",\r\n /**\r\n * アイコンの回転角度。\r\n * @defaultValue `0`\r\n */\r\n rotation?: 0 | 90 | 180 | 270,\r\n /**\r\n * アイコンを回転させるかどうか。\r\n * @defaultValue `false`\r\n */\r\n spin?: boolean,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\n/**\r\n * ### Font Awesome のアイコン\r\n *\r\n * #### 注意\r\n * アイコンを表示する際は、まず [`Icon`](/docs/atoms-Icon-Icon--ドキュメント) が利用できるか検討してください。\r\n * `Icon` が提供するアイコンに適切なものがない場合にのみ、このコンポーネントを利用してください。\r\n *\r\n * #### 使い方\r\n * まず、[Font Awesome のページ](https://fontawesome.com/search?o=r&s=regular&f=classic)で利用したいアイコンを検索してください。\r\n * このとき、アイコンスタイルを統一するために、Sharp Regular スタイルから探すようにしてください。\r\n *\r\n * 利用したいアイコンが決まったら、アイコン名を UpperCamelCase にしたものの先頭に `fa` を付けた定数を、`@fortawesome/sharp-regular-svg-icons` からインポートしてください。\r\n * 例えば、アイコン名が「circle-exclamation」であれば、`faCircleExclamation` をインポートすることになります。\r\n *\r\n * ```tsx\r\n * import {faCircleExclamation} from \"@fortawesome/sharp-regular-svg-icons\";\r\n * ```\r\n *\r\n * インポートした定数を、このコンポーネントの `icon` prop に渡してください。\r\n * これでアイコンが表示できます。\r\n *\r\n * ```tsx\r\n * <GeneralIcon icon={faCircleExclamation}/>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const GeneralIcon = forwardRef<SVGSVGElement, GeneralIconProps>(({\r\n icon,\r\n label,\r\n flip = \"none\",\r\n rotation = 0,\r\n spin = false,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <FontAwesomeIcon\r\n className={className}\r\n icon={icon}\r\n title={label}\r\n flip={flip === \"none\" ? undefined : flip}\r\n rotation={rotation === 0 ? undefined : rotation}\r\n spin={spin}\r\n ref={ref}\r\n {...data}\r\n />\r\n );\r\n});\r\n\r\nGeneralIcon.displayName = \"GeneralIcon\";","import {css} from \"@emotion/react\";\r\nimport {faFile, faFiles} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, ReactElement, useCallback, useRef, useState} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\n\r\n\r\ntype FileInputProps<M extends boolean> = CommonProps & AriaAttributes & {\r\n /** */\r\n value?: FileInputValue<M>,\r\n /** */\r\n name?: string,\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /**\r\n * 複数ファイルを受け付けるかどうか。\r\n */\r\n multiple?: M,\r\n /** */\r\n accept?: string,\r\n /** */\r\n autoFocus?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (value: FileInputValue<M>) => unknown,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n children?: ReactElement | [ReactElement] | [ReactElement, ReactElement],\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\r\n &:focus-within {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color);\r\n }\r\n `,\r\n inputContainer: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n z-index: 0;\r\n position: relative;\r\n `,\r\n input: css`\r\n width: 1px;\r\n height: 1px;\r\n position: absolute;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n opacity: 0;\r\n clip: rect(0px, 0px, 0px, 0px);\r\n clip-path: inset(50%);\r\n `,\r\n button: css`\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n box-sizing: content-box;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n position: relative;\r\n display: block;\r\n cursor: pointer;\r\n &:disabled {\r\n cursor: inherit;\r\n }\r\n `,\r\n builtinAddon: css`\r\n color: ${color(\"gray\", 5)};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\ntype FileInputComponent = GenericFunctionComponent<<M extends boolean>(props: FileInputProps<M>) => ReactElement>;\r\n\r\n/**\r\n * ### ファイル入力欄\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FileInput: FileInputComponent = ({\r\n value,\r\n name,\r\n size = \"medium\",\r\n multiple,\r\n accept,\r\n autoFocus,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}) => {\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [fileNameString, setFileNameString] = useState(\"\");\r\n\r\n const handleChange = useCallback(function (event: ChangeEvent<HTMLInputElement>): void {\r\n const files = Array.from(event.target.files ?? []);\r\n if (multiple) {\r\n onSet?.(files as any);\r\n } else {\r\n onSet?.(files[0] as any ?? null);\r\n }\r\n onChange?.(event);\r\n setFileNameString(getFileNameString(files));\r\n }, [multiple, onSet, onChange]);\r\n\r\n const handleClick = useCallback(function (): void {\r\n inputRef.current?.click();\r\n }, []);\r\n\r\n return (\r\n <div\r\n className={className}\r\n css={styles.root}\r\n data-qlib-size={size}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-error={isError}\r\n >\r\n <div css={styles.inputContainer}>\r\n <input\r\n css={styles.input}\r\n ref={inputRef}\r\n name={name}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={handleChange}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n {...dataAndAria}\r\n />\r\n <button\r\n css={styles.button}\r\n disabled={isDisabled}\r\n onClick={handleClick}\r\n aria-hidden={true}\r\n >\r\n {fileNameString}\r\n </button>\r\n <div css={styles.builtinAddon}>\r\n <GeneralIcon icon={multiple ? faFiles : faFile}/>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nFileInput.displayName = \"FileInput\";\r\n\r\nexport type FileInputValue<M extends boolean> = M extends true ? Array<File> : File | null;\r\n\r\nfunction getFileNameString(file: File | Array<File> | null | undefined): string {\r\n if (Array.isArray(file)) {\r\n return file.map(getFileNameString).join(\", \");\r\n } else if (file !== null && file !== undefined) {\r\n return file.name;\r\n } else {\r\n return \"\";\r\n }\r\n}","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype HeadingProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h2\"`\r\n */\r\n as?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(1)};\r\n padding-inline-start: ${size(3)};\r\n font-size: ${size(5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n border-inline-start: solid ${size(1)} ${color(\"primary\", 5)};\r\n display: flex;\r\n align-items: center;\r\n &:after {\r\n margin-inline-start: ${size(3)};\r\n border-block-start: dashed ${borderWidth(1)} ${color(\"primary\", 5)};\r\n opacity: 0.6;\r\n flex-grow: 1;\r\n content: \"\";\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### 第 1 見出し\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(({\r\n as = \"h2\",\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const TagName = as;\r\n\r\n return (\r\n <TagName css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </TagName>\r\n );\r\n});\r\n\r\nHeading.displayName = \"Heading\";","import {\r\n faAngleDown,\r\n faAngleUp,\r\n faArrowLeft,\r\n faArrowLeftToLine,\r\n faArrowRight,\r\n faArrowRightToLine,\r\n faArrowsUpDownLeftRight,\r\n faBan,\r\n faBars,\r\n faBucket,\r\n faCheck,\r\n faCircleCheck,\r\n faCircleInfo,\r\n faCopy,\r\n faEllipsisH,\r\n faFaceDotted,\r\n faGripVertical,\r\n faLeft,\r\n faO,\r\n faPen,\r\n faPlus,\r\n faSearch,\r\n faSignInAlt,\r\n faSignOutAlt,\r\n faThumbsUp,\r\n faTimes,\r\n faTrashAlt,\r\n faTriangleExclamation,\r\n faUpload\r\n} from \"@fortawesome/sharp-regular-svg-icons\";\r\n\r\n\r\nexport const BUILTIN_ICONS = {\r\n plus: faPlus,\r\n minus: faTimes,\r\n edit: faPen,\r\n delete: faTrashAlt,\r\n search: faSearch,\r\n upload: faUpload,\r\n copy: faCopy,\r\n confirm: faCheck,\r\n accept: faThumbsUp,\r\n refuse: faBan,\r\n move: faArrowsUpDownLeftRight,\r\n bulk: faBucket,\r\n login: faSignInAlt,\r\n logout: faSignOutAlt,\r\n\r\n correct: faO,\r\n wrong: faTimes,\r\n\r\n first: faArrowLeftToLine,\r\n previous: faArrowLeft,\r\n next: faArrowRight,\r\n last: faArrowRightToLine,\r\n\r\n success: faCircleCheck,\r\n error: faTriangleExclamation,\r\n caution: faTriangleExclamation,\r\n info: faCircleInfo,\r\n\r\n more: faAngleDown,\r\n less: faAngleUp,\r\n back: faLeft,\r\n\r\n empty: faFaceDotted,\r\n menu: faBars,\r\n grip: faGripVertical,\r\n ellipsis: faEllipsisH\r\n};","import {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {BUILTIN_ICONS} from \"./iconData\";\r\n\r\n\r\ntype IconProps = CommonProps & {\r\n /**\r\n * アイコンの名前。\r\n */\r\n name: keyof typeof BUILTIN_ICONS,\r\n /** */\r\n label?: string,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * ### アイコン\r\n *\r\n * #### アイコン一覧\r\n * 表示できるアイコンの一覧は[アイコンのリストページ](/docs/design-アイコン--ドキュメント)で見ることができます。\r\n *\r\n * #### その他のアイコンについて\r\n * ここに存在しないアイコンを表示したい場合は [`GeneralIcon`](/docs/atoms-GeneralIcon-GeneralIcon--ドキュメント) も使えます。\r\n * ただし、サービス間でアイコンを統一するため、アプリ固有の概念を表すアイコンを表示したい場合のみ `GeneralIcon` を使い、Quizium サービス全体で共通する概念を表すアイコンにはこのコンポーネントを用いてください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(({\r\n name,\r\n label,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const icon = BUILTIN_ICONS[name];\r\n\r\n return (\r\n <FontAwesomeIcon className={className} icon={icon} title={label} ref={ref} {...data}/>\r\n );\r\n});\r\n\r\nIcon.displayName = \"Icon\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCircleNotch} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {ExtendedKeyboardEvent} from \"mousetrap\";\r\nimport {AriaAttributes, KeyboardEvent, MouseEvent, ReactElement, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype IconButtonProps = CommonProps & AriaAttributes & {\r\n /**\r\n * ラベル。\r\n * ここで指定された内容は表示されませんが、アクセシビリティのために `aria-label` プロパティの値として設定されます。\r\n */\r\n label: string,\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 見た目のバリアント。\r\n * - `\"solid\"` — ボタンの背景が濃い\r\n * - `\"light\"` — ボタンの背景が薄い\r\n * - `\"outline\"` — ボタンの背景が薄い上に罫線が付く\r\n * @defaultValue `\"solid\"`\r\n */\r\n variant?: \"solid\" | \"light\",\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\" | \"large\",\r\n /**\r\n * ボタンの種類。\r\n * HTML と違ってデフォルト値が `\"button\"` になっているので、フォームの送信ボタンとして使う場合は明示的に `\"submit\"` を指定してください。\r\n * @defaultValue `\"button\"`\r\n */\r\n type?: \"submit\" | \"reset\" | \"button\",\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * ローディング中かどうか。\r\n * これが `true` の間は、ボタンがローディング表示され無効になります。\r\n * @defaultValue `false`\r\n */\r\n isLoading?: boolean,\r\n /**\r\n * クリックされたりショートカットキーが押されたりしたときに実行する関数。\r\n */\r\n onClick?: (event: MouseEvent<HTMLButtonElement> | ExtendedKeyboardEvent) => unknown,\r\n /** */\r\n onKeyDown?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onKeyUp?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onMouseDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onPointerDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n className?: string,\r\n /**\r\n * 表示するアイコン。\r\n */\r\n children?: ReactElement\r\n};\r\n\r\nconst styles = {\r\n rootBox: (scheme: NonNullable<IconButtonProps[\"scheme\"]>) => css`\r\n // 文字サイズ\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)}\r\n }\r\n &[data-qlib-size=\"large\"] {\r\n --qlib-font-size: ${size(6)}\r\n }\r\n // 内部の余白\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-inline-size: ${size(6)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-inline-size: ${size(8)};\r\n }\r\n &[data-qlib-size=\"large\"] {\r\n --qlib-padding-block: ${size(3)};\r\n --qlib-inline-size: ${size(12)};\r\n }\r\n // 色\r\n &[data-qlib-variant=\"solid\"] {\r\n --qlib-color: ${color(\"white\")};\r\n --qlib-border-color: ${color(scheme, 6)};\r\n --qlib-background-color: ${color(scheme, 5)};\r\n --qlib-hover-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-border-color: ${color(scheme, 3)};\r\n --qlib-background-color: ${color(\"white\")};\r\n --qlib-hover-background-color: ${color(scheme, 0)};\r\n }\r\n /**********************************************************/\r\n inline-size: var(--qlib-inline-size);\r\n padding-block: var(--qlib-padding-block);\r\n font-size: var(--qlib-font-size);\r\n color: var(--qlib-color);\r\n background-color: var(--qlib-background-color);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0.2), 0.5)};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n text-align: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n &:hover:not(:disabled) {\r\n background-color: var(--qlib-hover-background-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0), 0.5)};\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n loading: css`\r\n inset: ${size(0)};\r\n background-color: var(--qlib-background-color);\r\n border-radius: ${size(1)};\r\n display: none;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n &[data-qlib-loading=\"true\"] {\r\n display: flex;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### アイコンボタン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(({\r\n label,\r\n scheme = \"primary\",\r\n variant = \"solid\",\r\n size = \"medium\",\r\n type = \"button\",\r\n isDisabled = false,\r\n isLoading = false,\r\n onClick,\r\n onKeyDown,\r\n onKeyUp,\r\n onMouseDown,\r\n onPointerDown,\r\n className,\r\n children,\r\n ...dataAndAria\r\n}, ref) => {\r\n return (\r\n <button\r\n className={className}\r\n css={styles.rootBox(scheme)}\r\n type={type}\r\n disabled={isDisabled || isLoading}\r\n onClick={onClick}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n onMouseDown={onMouseDown}\r\n onPointerDown={onPointerDown}\r\n ref={ref}\r\n aria-label={label}\r\n data-qlib-variant={variant}\r\n data-qlib-size={size}\r\n data-qlib-loading={isLoading}\r\n {...dataAndAria}\r\n >\r\n {children}\r\n <div css={styles.loading} data-qlib-loading={isLoading}>\r\n <FontAwesomeIcon icon={faCircleNotch} spin={true}/>\r\n </div>\r\n </button>\r\n );\r\n});\r\n\r\nIconButton.displayName = \"IconButton\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype InputLeftAddonProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### テキスト入力欄の左側のアドオン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const InputLeftAddon = forwardRef<HTMLDivElement, InputLeftAddonProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nInputLeftAddon.displayName = \"InputLeftAddon\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype InputRightAddonProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### テキスト入力欄の右側のアドオン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const InputRightAddon = forwardRef<HTMLDivElement, InputRightAddonProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nInputRightAddon.displayName = \"InputRightAddon\";","import {css} from \"@emotion/react\";\r\nimport {faCalendar, faClock} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, ReactElement, forwardRef, useCallback} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {InputLeftAddon} from \"./inputLeftAddon\";\r\nimport {InputRightAddon} from \"./inputRightAddon\";\r\n\r\n\r\ntype InputProps = CommonProps & AriaAttributes & {\r\n /** */\r\n value?: string,\r\n /** */\r\n name?: string,\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /**\r\n * @defaultValue `\"text\"`\r\n */\r\n type?: \"text\" | \"search\" | \"email\" | \"url\" | \"tel\" | \"date\" | \"time\" | \"datetime-local\" | \"month\" | \"week\",\r\n /**\r\n * @defaultValue `\"off\"`\r\n */\r\n autoComplete?: string,\r\n /** */\r\n autoFocus?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (value: string) => unknown,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n children?: ReactElement | [ReactElement] | [ReactElement, ReactElement],\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n z-index: 0;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\r\n &:focus-within {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color);\r\n }\r\n `,\r\n inputContainer: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n z-index: 0;\r\n position: relative;\r\n `,\r\n input: css`\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n box-sizing: content-box;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n &:disabled {\r\n cursor: inherit;\r\n }\r\n &::-webkit-calendar-picker-indicator {\r\n inline-size: var(--qlib-font-size);\r\n block-size: 100%;\r\n inset-block: ${size(0)};\r\n inset-inline-end: ${size(0)};\r\n padding: ${size(0)};\r\n background: transparent;\r\n position: absolute;\r\n cursor: pointer;\r\n z-index: 1;\r\n }\r\n `,\r\n builtinAddon: css`\r\n color: ${color(\"gray\", 5)};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### テキスト入力欄\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Input`**\r\n * - [`InputLeftAddon`](/docs/atoms-Input-InputLeftAddon--ドキュメント) (任意)\r\n * - [`InputRightAddon`](/docs/atoms-Input-InputRightAddon--ドキュメント) (任意)\r\n *\r\n * #### 例\r\n * 基本的には、以下のように子要素なしで利用します。\r\n *\r\n * ```tsx\r\n * <Input value={value} onSet={setValue}/>\r\n * ```\r\n *\r\n * 子要素に `InputLeftAddon` や `InputRightAddon` を指定することで、テキスト入力できる部分の左右に好きな要素を配置することができます。\r\n * 接頭辞やアイコンなどを表示することができます。\r\n *\r\n * ```tsx\r\n * <Input value={value} onSet={setValue}>\r\n * <InputLeftAddon>@</InputLeftAddon>\r\n * <InputRightAddon><Icon name=\"search\"/></InputRightAddon>\r\n * </Input>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(({\r\n value,\r\n name,\r\n size = \"medium\",\r\n type = \"text\",\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\r\n const value = event.target.value;\r\n onSet?.(value);\r\n onChange?.(event);\r\n }, [onSet, onChange]);\r\n\r\n const elements = getElements(children);\r\n const leftAddon = elements.find((element) => element.type === InputLeftAddon);\r\n const rightAddon = elements.find((element) => element.type === InputRightAddon);\r\n\r\n return (\r\n <label\r\n className={className}\r\n css={styles.root}\r\n data-qlib-size={size}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-error={isError}\r\n >\r\n <div css={styles.inputContainer}>\r\n {leftAddon}\r\n <input\r\n css={styles.input}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n type={type}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n {...dataAndAria}\r\n />\r\n {isAddonType(type) && (\r\n <div css={styles.builtinAddon}>\r\n <GeneralIcon icon={type === \"time\" ? faClock : faCalendar}/>\r\n </div>\r\n )}\r\n {rightAddon}\r\n </div>\r\n </label>\r\n );\r\n});\r\n\r\nInput.displayName = \"Input\";\r\n\r\n\r\nconst isAddonType = (type: string): boolean => {\r\n return type === \"date\" || type === \"time\" || type === \"datetime-local\" || type === \"month\" || type === \"week\";\r\n};","import {css} from \"@emotion/react\";\r\nimport {AriaAttributes, HTMLAttributeAnchorTarget, KeyboardEvent, MouseEvent, ReactNode, forwardRef, useMemo} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype LinkProps = CommonProps & AriaAttributes & {\r\n /**\r\n * リンク先の URL。\r\n */\r\n href?: string,\r\n /** */\r\n target?: HTMLAttributeAnchorTarget,\r\n /**\r\n * カラースキーム。\r\n * `null` を指定した場合は、文字色の設定が行われないので、外側の文字色を継承させることができます。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 見た目のバリアント。\r\n * - `\"solid\"` — ボタン状, ボタンの背景が濃い\r\n * - `\"light\"` — ボタン状, ボタンの背景が薄い\r\n * - `\"underline\"` — テキスト状, ホバー時に下線が付く\r\n * - `\"simple\"` — テキスト状, ホバー時でも下線は付かない\r\n * - `\"unstyledUnderline\"` — スタイルなし, ホバー時に下線が付く\r\n * - `\"unstyledSimple\"` — スタイルなし, ホバー時でも下線は付かない\r\n * @defaultValue `\"underline\"`\r\n */\r\n variant?: \"solid\" | \"light\" | \"underline\" | \"simple\" | \"unstyledUnderline\" | \"unstyledSimple\",\r\n /**\r\n * 全体のサイズ。\r\n *\r\n * `variant` の値が `\"solid\"` か `\"light\"` の場合にのみ効果があります。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\" | \"large\",\r\n /**\r\n * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、フォームの一部として使う場合など、省スペースで表示したいときには `true` にしてください。\r\n *\r\n * `variant` の値が `\"solid\"` か `\"light\"` の場合にのみ効果があります。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\r\n /** */\r\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => unknown,\r\n /** */\r\n onKeyDown?: (event: KeyboardEvent<HTMLAnchorElement>) => unknown,\r\n /** */\r\n onKeyUp?: (event: KeyboardEvent<HTMLAnchorElement>) => unknown,\r\n /** */\r\n onMouseDown?: (event: MouseEvent<HTMLAnchorElement>) => unknown,\r\n /** */\r\n onPointerDown?: (event: MouseEvent<HTMLAnchorElement>) => unknown,\r\n /**\r\n * 内部に表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n rootBox: (scheme: NonNullable<LinkProps[\"scheme\"]>) => css`\r\n // 文字サイズ\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n }\r\n &[data-qlib-size=\"medium\"],\r\n &[data-qlib-size=\"large\"] {\r\n --qlib-font-size: ${size(4)}\r\n }\r\n // 内部の余白\r\n &[data-qlib-size=\"small\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(3)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n }\r\n &[data-qlib-size=\"large\"] {\r\n &[data-qlib-compact=\"false\"] {\r\n --qlib-padding-block: ${size(3)};\r\n --qlib-padding-inline: ${size(5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(3)};\r\n }\r\n }\r\n // 色\r\n &[data-qlib-variant=\"solid\"] {\r\n --qlib-color: ${color(\"white\")};\r\n --qlib-border-color: ${color(scheme, 6)};\r\n --qlib-background-color: ${color(scheme, 5)};\r\n --qlib-hover-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-border-color: ${color(scheme, 3)};\r\n --qlib-background-color: ${color(\"white\")};\r\n --qlib-hover-background-color: ${color(scheme, 0)};\r\n }\r\n /**********************************************************/\r\n padding-block: var(--qlib-padding-block);\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n color: var(--qlib-color);\r\n background-color: var(--qlib-background-color);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0.2), 0.5)};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n text-align: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n &:hover:not(:disabled) {\r\n background-color: var(--qlib-hover-background-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n box-shadow: ${boxShadow(alpha(color(scheme, 5), 0), 0.5)};\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n rootText: (scheme: NonNullable<LinkProps[\"scheme\"]>) => css`\r\n &[data-qlib-variant=\"underline\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-hover-color: ${color(scheme, 4)};\r\n --qlib-hover-decoration-color: currentcolor;\r\n }\r\n &[data-qlib-variant=\"simple\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-hover-color: ${color(scheme, 4)};\r\n --qlib-hover-decoration-color: transparent;\r\n }\r\n /**********************************************************/\r\n color: var(--qlib-color);\r\n border-radius: ${size(1)};\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n cursor: pointer;\r\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\r\n &:hover:not(:disabled) {\r\n color: var(--qlib-hover-color);\r\n text-decoration-color: var(--qlib-hover-decoration-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n rootUnstyled: (scheme: NonNullable<LinkProps[\"scheme\"]>) => css`\r\n &[data-qlib-variant=\"underline\"] {\r\n --qlib-hover-decoration-color: currentcolor;\r\n }\r\n &[data-qlib-variant=\"simple\"] {\r\n --qlib-hover-decoration-color: transparent;\r\n }\r\n /**********************************************************/\r\n border-radius: ${size(1)};\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n cursor: pointer;\r\n transition: text-decoration-color 0.2s ease;\r\n &:hover:not(:disabled) {\r\n text-decoration-color: var(--qlib-hover-decoration-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(scheme, 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `,\r\n loading: css`\r\n inset: ${size(0)};\r\n background-color: var(--qlib-background-color);\r\n border-radius: ${size(1)};\r\n display: none;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n &[data-qlib-loading=\"true\"] {\r\n display: flex;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### リンク\r\n *\r\n * #### Next.js での注意\r\n * Next.js を使っている場合は、以下のように `next/link` パッケージが提供するコンポーネントで囲み、`passHref` 属性に `true` を設定してください。\r\n * Next.js 13 以降では、さらに `legacyBehavior` 属性に `true` を設定する必要があります。\r\n * 詳細は [Next.js のドキュメント](https://nextjs-ja-translation-docs.vercel.app/docs/api-reference/next/link)も参照してください。\r\n *\r\n * ```tsx\r\n * import NextLink from \"next/link\";\r\n *\r\n * <NextLink href=\"(リンク先)\" passHref={true} legacyBehavior={true}>\r\n * <Link>リンク</Link>\r\n * </NextLink>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(({\r\n href,\r\n target,\r\n scheme = \"primary\",\r\n variant = \"underline\",\r\n size = \"medium\",\r\n isCompact = false,\r\n onClick,\r\n onKeyDown,\r\n onKeyUp,\r\n onMouseDown,\r\n onPointerDown,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const style = useMemo(() => {\r\n if (variant === \"solid\" || variant === \"light\") {\r\n return styles.rootBox(scheme);\r\n } else if (variant === \"underline\" || variant === \"simple\") {\r\n return styles.rootText(scheme);\r\n } else {\r\n return styles.rootUnstyled(scheme);\r\n }\r\n }, [scheme, variant]);\r\n\r\n return (\r\n <a\r\n className={className}\r\n css={style}\r\n href={href}\r\n target={target}\r\n onClick={onClick}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n onMouseDown={onMouseDown}\r\n onPointerDown={onPointerDown}\r\n ref={ref}\r\n data-qlib-variant={variant}\r\n data-qlib-size={size}\r\n data-qlib-compact={isCompact}\r\n {...dataAndAria}\r\n >\r\n {children}\r\n </a>\r\n );\r\n});\r\n\r\nLink.displayName = \"Link\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype LinkIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### リンク内のアイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const LinkIconContainer = forwardRef<HTMLSpanElement, LinkIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nLinkIconContainer.displayName = \"LinkIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCircleNotch} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {forwardRef} from \"react\";\r\nimport {color} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype LoadingIconProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * `null` を指定した場合は、文字色の設定が行われないので、外側の文字色を継承させることができます。\r\n * @defaultValue `\"gray\"`\r\n */\r\n scheme?: LeveledColorScheme | null,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme | null) => css`\r\n color: ${scheme != null ? color(scheme, 5) : \"inherit\"};\r\n `\r\n};\r\n\r\n/**\r\n * ### 読み込み中アイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const LoadingIcon = forwardRef<SVGSVGElement, LoadingIconProps>(({\r\n scheme = \"gray\",\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {trans} = useQlibTranslation(\"loadingIcon\");\r\n\r\n return (\r\n <FontAwesomeIcon\r\n className={className}\r\n css={styles.root(scheme)}\r\n icon={faCircleNotch}\r\n spin={true}\r\n ref={ref}\r\n aria-label={trans(\"label\")}\r\n {...data}\r\n />\r\n );\r\n});\r\n\r\nLoadingIcon.displayName = \"LoadingIcon\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"body-scroll-lock\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-modal\");","import {ClassNames, css} from \"@emotion/react\";\r\nimport * as scrollLock from \"body-scroll-lock\";\r\nimport {FunctionComponent, ReactElement, cloneElement, useCallback, useEffect, useState} from \"react\";\r\nimport ModalRaw from \"react-modal\";\r\nimport {alpha, color} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype ModalProps = {\r\n /** */\r\n isOpen?: boolean,\r\n /**\r\n * モーダルのラベル。\r\n * アクセシビリティ向上のため、可能な限り指定してください。\r\n */\r\n label?: string,\r\n /** */\r\n onClose?: () => unknown,\r\n /** */\r\n children: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n overlay: css`\r\n background-color: ${alpha(color(\"black\"), 0.6)};\r\n position: fixed;\r\n inset: 0rem;\r\n opacity: 0;\r\n transition: opacity 0.2s ease;\r\n &.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n }\r\n &.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n }\r\n `\r\n};\r\n\r\n\r\n/**\r\n * ### モーダル\r\n *\r\n * #### 注意\r\n * 基本的にはこのコンポーネントを使う必要はありません。\r\n * 代わりに、表示したいモーダルの種類に応じて [`Dialog`](/docs/modules-Dialog-Dialog--ドキュメント) や [`Drawer`](/docs/modules-Drawer-Drawer--ドキュメント) を利用してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Modal: FunctionComponent<ModalProps> = ({\r\n isOpen,\r\n label,\r\n onClose,\r\n children,\r\n className\r\n}) => {\r\n const [isInnerOpen, setInnerOpen] = useState(true);\r\n const handleRequestClose = useCallback(() => {\r\n setInnerOpen(false);\r\n onClose?.();\r\n }, [onClose]);\r\n\r\n const isActualOpen = isOpen !== undefined ? isOpen : isInnerOpen;\r\n\r\n useEffect(() => {\r\n if (isActualOpen) {\r\n scrollLock.disableBodyScroll(document.body, {reserveScrollBarGap: true});\r\n } else {\r\n scrollLock.enableBodyScroll(document.body);\r\n }\r\n }, [isActualOpen]);\r\n\r\n return (\r\n <ClassNames>\r\n {({css}) => (\r\n <ModalRaw\r\n isOpen={isOpen !== undefined ? isOpen : isInnerOpen}\r\n contentLabel={label}\r\n onRequestClose={handleRequestClose}\r\n className=\"qlib-modal\"\r\n overlayClassName={[className, css(styles.overlay)].join(\" \")}\r\n portalClassName=\"qlib-modal-portal\"\r\n bodyOpenClassName={null}\r\n htmlOpenClassName={null}\r\n shouldCloseOnOverlayClick={true}\r\n shouldCloseOnEsc={true}\r\n contentElement={(props) => cloneElement(children, props)}\r\n closeTimeoutMS={200}\r\n />\r\n )}\r\n </ClassNames>\r\n );\r\n};\r\n\r\nModal.displayName = \"Modal\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype NumberInputLeftAddonProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const NumberInputLeftAddon = forwardRef<HTMLDivElement, NumberInputLeftAddonProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nNumberInputLeftAddon.displayName = \"NumberInputLeftAddon\";","import {css} from \"@emotion/react\";\r\nimport {useMergeRefs} from \"@floating-ui/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faAngleDown, faAngleUp} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, MouseEvent, ReactElement, forwardRef, useCallback, useRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {NumberInputLeftAddon} from \"./numberInputLeftAddon\";\r\n\r\n\r\ntype NumberInputProps = CommonProps & AriaAttributes & {\r\n /** */\r\n value?: string,\r\n /** */\r\n name?: string,\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /** */\r\n max?: number | string,\r\n /** */\r\n min?: number | string,\r\n /** */\r\n step?: number | string,\r\n /**\r\n * @defaultValue `\"off\"`\r\n */\r\n autoComplete?: string,\r\n /** */\r\n autoFocus?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (value: string) => unknown,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n children?: ReactElement | [ReactElement],\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n overflow: hidden;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\r\n &:focus-within {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color);\r\n }\r\n `,\r\n inputContainer: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n z-index: 0;\r\n position: relative;\r\n `,\r\n input: css`\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n box-sizing: content-box;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n position: relative;\r\n appearance: textfield;\r\n -moz-appearance: textfield;\r\n &:disabled {\r\n cursor: inherit;\r\n }\r\n &::-webkit-inner-spin-button {\r\n appearance: none;\r\n }\r\n `,\r\n buttonList: css`\r\n inline-size: ${size(6)};\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n margin-inline-end: calc(var(--qlib-padding-block) * -1);\r\n display: flex;\r\n flex-direction: column;\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n button: css`\r\n color: ${color(\"gray\", 5)};\r\n background-color: ${color(\"white\")};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n cursor: pointer;\r\n transition: background-color 0.2s ease;\r\n &:hover:not([data-disabled=\"true\"]) {\r\n background-color: ${color(\"gray\", 0)};\r\n }\r\n `,\r\n buttonDivider: css`\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(({\r\n value,\r\n name,\r\n size = \"medium\",\r\n max,\r\n min,\r\n step,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const innerRef = useRef<HTMLInputElement>(null);\r\n const mergedRef = useMergeRefs([ref, innerRef]);\r\n\r\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\r\n const value = event.target.value;\r\n onSet?.(value);\r\n onChange?.(event);\r\n }, [onSet, onChange]);\r\n\r\n const increment = useCallback((event: MouseEvent<HTMLButtonElement>) => {\r\n if (innerRef.current != null) {\r\n innerRef.current.stepUp();\r\n innerRef.current.dispatchEvent(new Event(\"change\", {bubbles: true}));\r\n onSet?.(innerRef.current.value);\r\n }\r\n }, [onSet]);\r\n const decrement = useCallback((event: MouseEvent<HTMLButtonElement>) => {\r\n if (innerRef.current != null) {\r\n innerRef.current.stepDown();\r\n innerRef.current.dispatchEvent(new Event(\"change\", {bubbles: true}));\r\n onSet?.(innerRef.current.value);\r\n }\r\n }, [onSet]);\r\n\r\n const elements = getElements(children);\r\n const leftAddon = elements.find((element) => element.type === NumberInputLeftAddon);\r\n\r\n return (\r\n <label\r\n className={className}\r\n css={styles.root}\r\n data-qlib-size={size}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-error={isError}\r\n >\r\n <div css={styles.inputContainer}>\r\n {leftAddon}\r\n <input\r\n css={styles.input}\r\n ref={mergedRef}\r\n value={value}\r\n name={name}\r\n type=\"number\"\r\n max={max}\r\n min={min}\r\n step={step}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n {...dataAndAria}\r\n />\r\n <div css={styles.buttonList}>\r\n <button css={styles.button} type=\"button\" onClick={increment} tabIndex={-1} data-disabled={isDisabled}>\r\n <FontAwesomeIcon icon={faAngleUp}/>\r\n </button>\r\n <hr css={styles.buttonDivider} aria-hidden={true}/>\r\n <button css={styles.button} type=\"button\" onClick={decrement} tabIndex={-1} data-disabled={isDisabled}>\r\n <FontAwesomeIcon icon={faAngleDown}/>\r\n </button>\r\n </div>\r\n </div>\r\n </label>\r\n );\r\n});\r\n\r\nNumberInput.displayName = \"NumberInput\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype PasswordInputLeftAddonProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### パスワード入力欄の左側のアドオン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PasswordInputLeftAddon = forwardRef<HTMLDivElement, PasswordInputLeftAddonProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nPasswordInputLeftAddon.displayName = \"PasswordInputLeftAddon\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype PasswordInputRightAddonProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### パスワード入力欄の右側のアドオン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PasswordInputRightAddon = forwardRef<HTMLDivElement, PasswordInputRightAddonProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nPasswordInputRightAddon.displayName = \"PasswordInputRightAddon\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faEye, faEyeSlash} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, ReactElement, forwardRef, useCallback, useId, useState} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {PasswordInputLeftAddon} from \"./passwordInputLeftAddon\";\r\nimport {PasswordInputRightAddon} from \"./passwordInputRightAddon\";\r\n\r\n\r\ntype PasswordInputProps = CommonProps & AriaAttributes & {\r\n /** */\r\n value?: string,\r\n /** */\r\n name?: string,\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"medium\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /**\r\n * 初期状態でパスワードを表示するかどうか。\r\n * @defaultValue `false`\r\n */\r\n initialReveal?: boolean,\r\n /**\r\n * オートコンプリートの設定。\r\n * ログイン画面などですでに登録済みのパスワードを入力する欄では `\"current-password\"` を指定し、新規登録画面などで新しいパスワードを入力する欄では `\"new-password\"` を指定してください。\r\n * @defaultValue `\"current-password\"`\r\n */\r\n autoComplete?: string,\r\n /** */\r\n autoFocus?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (value: string) => void,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n children?: ReactElement | [ReactElement] | [ReactElement, ReactElement],\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n --qlib-padding-block: ${size(1.5)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\r\n --qlib-padding-block: ${size(2)};\r\n --qlib-padding-inline: ${size(2)};\r\n }\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-inline: var(--qlib-padding-inline);\r\n font-size: var(--qlib-font-size);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\r\n &:focus-within {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color);\r\n }\r\n `,\r\n inputContainer: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n `,\r\n input: css`\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n box-sizing: content-box;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n &:disabled {\r\n cursor: inherit;\r\n }\r\n `,\r\n button: css`\r\n inline-size: 1.1em;\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n color: ${color(\"primary\", 5)};\r\n border-radius: ${size(1)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: color 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n &:hover {\r\n color: ${color(\"primary\", 4)};\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(\"primary\", 4), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### パスワード入力欄\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(({\r\n value,\r\n name,\r\n size = \"medium\",\r\n initialReveal = false,\r\n autoComplete = \"current-password\",\r\n autoFocus,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const id = useId();\r\n\r\n const [reveal, setReveal] = useState(initialReveal);\r\n\r\n const toggleReveal = useCallback(() => {\r\n setReveal((reveal) => !reveal);\r\n }, []);\r\n\r\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\r\n const value = event.target.value;\r\n onSet?.(value);\r\n onChange?.(event);\r\n }, [onSet, onChange]);\r\n\r\n const elements = getElements(children);\r\n const leftAddon = elements.find((element) => element.type === PasswordInputLeftAddon);\r\n const rightAddon = elements.find((element) => element.type === PasswordInputRightAddon);\r\n\r\n return (\r\n <label\r\n className={className}\r\n css={styles.root}\r\n data-qlib-size={size}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-error={isError}\r\n {...dataAndAria}\r\n >\r\n <div css={styles.inputContainer}>\r\n {leftAddon}\r\n <input\r\n css={styles.input}\r\n id={id}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n type={reveal ? \"input\" : \"password\"}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n {...dataAndAria}\r\n />\r\n <button css={styles.button} type=\"button\" onClick={toggleReveal}>\r\n <FontAwesomeIcon icon={reveal ? faEyeSlash : faEye}/>\r\n </button>\r\n {rightAddon}\r\n </div>\r\n </label>\r\n );\r\n});\r\n\r\nPasswordInput.displayName = \"PasswordInput\";","import {createContext} from \"react\";\r\n\r\n\r\ntype RadioGroupContextValue = {\r\n name: string,\r\n value?: string | null,\r\n onSet?: (value: string) => unknown\r\n};\r\n\r\nexport const radioGroupContext = createContext<RadioGroupContextValue | undefined>(undefined);\r\nexport const RadioGroupProvider = radioGroupContext.Provider;","import {css} from \"@emotion/react\";\r\nimport {useId} from \"@floating-ui/react\";\r\nimport {AriaAttributes, ChangeEvent, forwardRef, useCallback, useContext} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {radioGroupContext} from \"/src/contexts/radioGroup/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype RadioProps = CommonProps & AriaAttributes & {\r\n /** */\r\n isChecked?: boolean,\r\n /** */\r\n name?: string,\r\n /** */\r\n value?: string,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (isChecked: boolean) => void,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"primary\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"red\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n cursor: pointer;\r\n `,\r\n original: css`\r\n inline-size: 1px;\r\n block-size: 1px;\r\n position: absolute;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n opacity: 0;\r\n clip: rect(0px, 0px, 0px, 0px);\r\n clip-path: inset(50%);\r\n `,\r\n input: css`\r\n inline-size: ${size(4.5)};\r\n block-size: ${size(4.5)};\r\n border-radius: ${size(\"max\")};\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n line-height: 1;\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: border-color 0.2s ease, background-color 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n input:checked +& {\r\n border-color: var(--qlib-checked-border-color);\r\n background-color: var(--qlib-checked-background-color);\r\n }\r\n input:focus-visible +& {\r\n outline: solid ${borderWidth(2)} var(--qlib-focus-color);\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n input:disabled +& {\r\n cursor: inherit;\r\n }\r\n `,\r\n icon: css`\r\n inline-size: ${size(2.5)};\r\n block-size: ${size(2.5)};\r\n border-radius: ${size(\"max\")};\r\n background-color: ${color(\"white\")};\r\n opacity: 0;\r\n transition: background-color 0.2s ease, opacity 0.2s ease;\r\n input:checked +* >& {\r\n opacity: 1;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### ラジオボタン\r\n *\r\n * #### 注意\r\n * このコンポーネントはラジオボタンのみを表示します。\r\n * 右にラベルを表示したい場合は、[`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) と [`CheckableLabel`](/docs/atoms-CheckableContainer-CheckableLabel--ドキュメント) を利用して、以下のようにしてください。\r\n *\r\n * ```tsx\r\n * <CheckableContainer>\r\n * <Radio/>\r\n * <CheckableLabel>ラベル</CheckableLabel>\r\n * </CheckableContainer>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(({\r\n isChecked,\r\n name,\r\n value,\r\n isError = false,\r\n isRequired,\r\n isDisabled = false,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const context = useContext(radioGroupContext);\r\n\r\n const id = useId();\r\n\r\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\r\n if (context?.onSet != null && value != null) {\r\n context.onSet(value);\r\n } else {\r\n const isChecked = event.target.checked;\r\n onSet?.(isChecked);\r\n }\r\n onChange?.(event);\r\n }, [value, context, onSet, onChange]);\r\n\r\n // これがさらに `CheckableContainer` に囲まれる可能性があるので全体を `<label>` で囲むのは避ける\r\n return (\r\n <div\r\n css={styles.root}\r\n className={className}\r\n data-qlib-error={isError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"radio\"\r\n css={styles.original}\r\n ref={ref}\r\n id={id}\r\n value={value}\r\n name={context?.name ?? name}\r\n checked={context?.value != null ? context.value === value : isChecked != null ? isChecked === true : undefined}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={context?.onSet != null || onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n />\r\n <label css={styles.input} htmlFor={id} aria-hidden=\"true\">\r\n <div css={styles.icon}/>\r\n </label>\r\n </div>\r\n );\r\n});\r\n\r\nRadio.displayName = \"Radio\";","import {useId} from \"@floating-ui/react\";\r\nimport {FunctionComponent, ReactNode, useMemo} from \"react\";\r\nimport {RadioGroupProvider} from \"/src/contexts/radioGroup/context\";\r\n\r\n\r\ntype RadioGroupProps = {\r\n /** */\r\n value?: string | null,\r\n /** */\r\n onSet?: (value: string) => unknown,\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const RadioGroup: FunctionComponent<RadioGroupProps> = ({\r\n value,\r\n onSet,\r\n children\r\n}) => {\r\n const name = useId();\r\n\r\n const radioGroupContextValue = useMemo(() => ({\r\n name,\r\n value,\r\n onSet\r\n }), [\r\n name,\r\n value,\r\n onSet\r\n ]);\r\n\r\n return (\r\n <RadioGroupProvider value={radioGroupContextValue}>\r\n {children}\r\n </RadioGroupProvider>\r\n );\r\n};\r\n\r\nRadioGroup.displayName = \"RadioGroup\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {RadioGroup} from \"./radioGroup\";\r\n\r\n\r\ntype AlignedRadioGroupProps = {\r\n /**\r\n * @defaultValue `\"vertical\"`\r\n */\r\n orientation?: \"horizontal\" | \"vertical\",\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-orientation=\"horizontal\"] {\r\n --qlib-flex-direction: row;\r\n }\r\n &[data-qlib-orientation=\"vertical\"] {\r\n --qlib-flex-direction: column;\r\n }\r\n margin-block: ${size(1)}; // ControlContainer での表示を自然にするためにマージン空ける (微妙かも)\r\n column-gap: ${size(4)};\r\n row-gap: ${size(2)};\r\n display: flex;\r\n flex-direction: var(--qlib-flex-direction);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const AlignedRadioGroup = forwardRef<HTMLDivElement, AlignedRadioGroupProps>(({\r\n orientation = \"vertical\",\r\n children\r\n}, ref) => {\r\n return (\r\n <RadioGroup>\r\n <div css={styles.root} ref={ref} aria-orientation={orientation} data-qlib-orientation={orientation}>\r\n {children}\r\n </div>\r\n </RadioGroup>\r\n );\r\n});\r\n\r\nAlignedRadioGroup.displayName = \"AlignedRadioGroup\";","import {css} from \"@emotion/react\";\r\n\r\n\r\n// 公式の CSS ファイルをインポートして読み込もうとすると Next.js に怒られる\r\n// 仕方ないので CSS の内容をここにコピーしている\r\nexport const scrollGlobalStyle = css`\r\n [data-simplebar] {\r\n position: relative;\r\n flex-direction: column;\r\n flex-wrap: wrap;\r\n justify-content: flex-start;\r\n align-content: flex-start;\r\n align-items: flex-start;\r\n }\r\n .simplebar-wrapper {\r\n overflow: hidden;\r\n width: inherit;\r\n height: inherit;\r\n max-width: inherit;\r\n max-height: inherit;\r\n }\r\n .simplebar-mask {\r\n direction: inherit;\r\n position: absolute;\r\n overflow: hidden;\r\n padding: 0;\r\n margin: 0;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: auto !important;\r\n height: auto !important;\r\n z-index: 0;\r\n }\r\n .simplebar-offset {\r\n direction: inherit !important;\r\n box-sizing: inherit !important;\r\n resize: none !important;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n padding: 0;\r\n margin: 0;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .simplebar-content-wrapper {\r\n direction: inherit;\r\n box-sizing: border-box !important;\r\n position: relative;\r\n display: block;\r\n height: 100%; /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */\r\n width: auto;\r\n max-width: 100%; /* Not required for horizontal scroll to trigger */\r\n max-height: 100%; /* Needed for vertical scroll to trigger */\r\n overflow: auto;\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n }\r\n .simplebar-content-wrapper::-webkit-scrollbar,\r\n .simplebar-hide-scrollbar::-webkit-scrollbar {\r\n display: none;\r\n width: 0;\r\n height: 0;\r\n }\r\n .simplebar-content:before,\r\n .simplebar-content:after {\r\n content: ' ';\r\n display: table;\r\n }\r\n .simplebar-placeholder {\r\n max-height: 100%;\r\n max-width: 100%;\r\n width: 100%;\r\n pointer-events: none;\r\n }\r\n .simplebar-height-auto-observer-wrapper {\r\n box-sizing: inherit !important;\r\n height: 100%;\r\n width: 100%;\r\n max-width: 1px;\r\n position: relative;\r\n float: left;\r\n max-height: 1px;\r\n overflow: hidden;\r\n z-index: -1;\r\n padding: 0;\r\n margin: 0;\r\n pointer-events: none;\r\n flex-grow: inherit;\r\n flex-shrink: 0;\r\n flex-basis: 0;\r\n }\r\n .simplebar-height-auto-observer {\r\n box-sizing: inherit;\r\n display: block;\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 1000%;\r\n width: 1000%;\r\n min-height: 1px;\r\n min-width: 1px;\r\n overflow: hidden;\r\n pointer-events: none;\r\n z-index: -1;\r\n }\r\n .simplebar-track {\r\n z-index: 1;\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n overflow: hidden;\r\n }\r\n [data-simplebar].simplebar-dragging {\r\n pointer-events: none;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n }\r\n [data-simplebar].simplebar-dragging .simplebar-content {\r\n pointer-events: none;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n }\r\n [data-simplebar].simplebar-dragging .simplebar-track {\r\n pointer-events: all;\r\n }\r\n .simplebar-scrollbar {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n min-height: 10px;\r\n }\r\n .simplebar-scrollbar:before {\r\n position: absolute;\r\n content: '';\r\n background: black;\r\n border-radius: 7px;\r\n left: 2px;\r\n right: 2px;\r\n opacity: 0;\r\n transition: opacity 0.2s 0.5s linear;\r\n }\r\n .simplebar-scrollbar.simplebar-visible:before {\r\n opacity: 0.5;\r\n transition-delay: 0s;\r\n transition-duration: 0s;\r\n }\r\n .simplebar-track.simplebar-vertical {\r\n top: 0;\r\n width: 11px;\r\n }\r\n .simplebar-scrollbar:before {\r\n top: 2px;\r\n bottom: 2px;\r\n left: 2px;\r\n right: 2px;\r\n }\r\n .simplebar-track.simplebar-horizontal {\r\n left: 0;\r\n height: 11px;\r\n }\r\n .simplebar-track.simplebar-horizontal .simplebar-scrollbar {\r\n right: auto;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n min-height: 0;\r\n min-width: 10px;\r\n width: auto;\r\n }\r\n [data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {\r\n right: auto;\r\n left: 0;\r\n }\r\n .simplebar-dummy-scrollbar-size {\r\n direction: rtl;\r\n position: fixed;\r\n opacity: 0;\r\n visibility: hidden;\r\n height: 500px;\r\n width: 500px;\r\n overflow-y: hidden;\r\n overflow-x: scroll;\r\n -ms-overflow-style: scrollbar !important;\r\n }\r\n .simplebar-dummy-scrollbar-size >div {\r\n width: 200%;\r\n height: 200%;\r\n margin: 10px 0;\r\n }\r\n .simplebar-hide-scrollbar {\r\n position: fixed;\r\n left: 0;\r\n visibility: hidden;\r\n overflow-y: scroll;\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n }\r\n`;","import {Dispatch, ReactElement, ReactNode, SetStateAction, cloneElement, createContext, useCallback, useMemo, useState} from \"react\";\r\n\r\n\r\ntype DialogContextValue = {\r\n open: () => void,\r\n close: () => void,\r\n setDialogSpec: Dispatch<SetStateAction<{element: ReactElement} | null>>\r\n};\r\n\r\nexport const dialogContext = createContext<DialogContextValue>({\r\n open: () => null,\r\n close: () => null,\r\n setDialogSpec: () => null\r\n});\r\n\r\nexport const DialogProvider: React.FC<{children: ReactNode}> = ({children}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n const open = useCallback(() => {\r\n setOpen(true);\r\n }, []);\r\n const close = useCallback(() => {\r\n setOpen(false);\r\n }, []);\r\n\r\n const [dialogSpec, setDialogSpec] = useState<{element: ReactElement} | null>(null);\r\n const dialogContextValue = useMemo(() => ({\r\n open,\r\n close,\r\n setDialogSpec\r\n }), [\r\n open,\r\n close,\r\n setDialogSpec\r\n ]);\r\n\r\n return (\r\n <dialogContext.Provider value={dialogContextValue}>\r\n {dialogSpec != null && cloneElement(dialogSpec.element, {isOpen, onClose: close})}\r\n {children}\r\n </dialogContext.Provider>\r\n );\r\n};","import {createContext} from \"react\";\r\nimport {ResponsiveValue} from \"/src/modules/responsive\";\r\n\r\n\r\ntype RootContextValue = {\r\n rootFontSize: ResponsiveValue<string>,\r\n smartphoneQuery: string\r\n};\r\n\r\nexport const rootContext = createContext<RootContextValue>({\r\n rootFontSize: {desktop: \"16px\", smartphone: \"13px\"},\r\n smartphoneQuery: \"(max-width: 767px)\"\r\n});\r\nexport const RootProvider = rootContext.Provider;","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-toast\");","import {css} from \"@emotion/react\";\r\nimport * as ToastRaw from \"@radix-ui/react-toast\";\r\nimport {FunctionComponent} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype ToastViewProps = {\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: ${size(96)};\r\n max-inline-size: calc(100vw - ${size(6)});\r\n inset-block-start: ${size(6)};\r\n inset-inline-start: 50%;\r\n row-gap: ${size(3)};\r\n transform: translate(-50%, 0%);\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n list-style: none;\r\n position: fixed;\r\n outline: none;\r\n z-index: 2000;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ToastViewport: FunctionComponent<ToastViewProps> = ({\r\n}) => {\r\n const {trans} = useQlibTranslation(\"toast\");\r\n\r\n return (\r\n <ToastRaw.Viewport css={styles.root} label={trans(\"viewportLabel\")}/>\r\n );\r\n};","import * as ToastRaw from \"@radix-ui/react-toast\";\r\nimport {Dispatch, ReactElement, ReactNode, SetStateAction, createContext, useMemo, useState} from \"react\";\r\nimport {ToastViewport} from \"/src/components/modules/toast/toastViewport\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype ToastContextValue = {\r\n setToastSpecs: Dispatch<SetStateAction<Array<{element: ReactElement}>>>\r\n};\r\n\r\nexport const toastContext = createContext<ToastContextValue>({\r\n setToastSpecs: () => null\r\n});\r\nexport const ToastContextProvider = toastContext.Provider;\r\n\r\nexport const ToastProvider: React.FC<{children: ReactNode}> = ({children}) => {\r\n const {trans} = useQlibTranslation(\"toast\");\r\n\r\n const [toastSpecs, setToastSpecs] = useState<Array<{element: ReactElement}>>([]);\r\n const toastContextValue = useMemo(() => ({\r\n setToastSpecs\r\n }), [\r\n setToastSpecs\r\n ]);\r\n\r\n return (\r\n <ToastRaw.Provider label={trans(\"rootLabel\")}>\r\n <ToastContextProvider value={toastContextValue}>\r\n <ToastViewport/>\r\n {toastSpecs.map((toastSpec) => toastSpec.element)}\r\n {children}\r\n </ToastContextProvider>\r\n </ToastRaw.Provider>\r\n );\r\n};","const addQlibPrefix = (messages: Record<string, string>): Record<string, string> => {\r\n return Object.fromEntries(Object.entries(messages).map(([key, value]) => [`qlib.${key}`, value]));\r\n};\r\n\r\nexport const messages = {\r\n // このパッケージが利用するローカライズメッセージは全て qlib 以下に置く\r\n // このパッケージの利用者が利用するキーと衝突しないようにするため\r\n ja: addQlibPrefix(require(\"./ja.yaml\")),\r\n en: addQlibPrefix(require(\"./en.yaml\"))\r\n};\r\n","export type LocalizationMessages = Record<string, Record<string, string>>;\r\n\r\n/**\r\n * 複数のローカライズメッセージをマージします。\r\n * @param allMessages ローカライズメッセージの配列\r\n * @returns マージされたローカライズメッセージ\r\n */\r\nexport const mergeLocalizationMessages = (allMessages: Array<LocalizationMessages>): LocalizationMessages => {\r\n const mergedMessages = {\r\n ja: allMessages.map((messages) => messages.ja ?? {}).reduce(Object.assign, {}),\r\n en: allMessages.map((messages) => messages.en ?? {}).reduce(Object.assign, {})\r\n };\r\n return mergedMessages;\r\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-use\");","import {useContext} from \"react\";\r\nimport {useMedia} from \"react-use\";\r\nimport {rootContext} from \"/src/contexts/root/context\";\r\n\r\n\r\nexport type Device = \"desktop\" | \"smartphone\";\r\nexport type ResponsiveValue<T> = {desktop: T, smartphone: T};\r\n\r\nexport const toResponsiveValue = <T>(value: T | ResponsiveValue<T>): ResponsiveValue<T> => {\r\n if (typeof value === \"object\" && value != null && \"desktop\" in value && \"smartphone\" in value) {\r\n return value;\r\n } else {\r\n return {desktop: value, smartphone: value};\r\n }\r\n};\r\n\r\nexport const resolveResponsiveValue = <T>(value: T | ResponsiveValue<T>, device: Device): T => {\r\n if (typeof value === \"object\" && value != null && \"desktop\" in value && \"smartphone\" in value) {\r\n return value[device];\r\n } else {\r\n return value;\r\n }\r\n};\r\n\r\n/**\r\n * スマートフォン環境かどうかを返します。\r\n * スマートフォン環境のチェック条件は、`Root` コンポーネントの `smartphoneQuery` prop で設定できます。\r\n * @group React フック\r\n */\r\nexport const useSmartphone = (): boolean => {\r\n const {smartphoneQuery} = useContext(rootContext);\r\n const isSmartphone = useMedia(smartphoneQuery, false);\r\n return isSmartphone;\r\n};\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useResponsiveValue = <T>(value: T | ResponsiveValue<T>): T => {\r\n const isSmartphone = useSmartphone();\r\n const resolvedValue = resolveResponsiveValue(value, isSmartphone ? \"smartphone\" : \"desktop\");\r\n return resolvedValue;\r\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs\");","import {useEffect, useState} from \"react\";\r\nimport {BehaviorSubject, Subject} from \"rxjs\";\r\n\r\n\r\n/**\r\n * 格納されているデータの一部分だけを更新することができる `BehaviorSubject` です。\r\n */\r\nexport class UpdatableSubject<T extends {}> extends BehaviorSubject<T> {\r\n /**\r\n * 引数の `dispatch` に渡されたものに応じて、以下のような動作をします。\r\n * - オブジェクト — 現在の値の各プロパティを `dispatch` のプロパティの値で上書きしたものを次の値とする\r\n * - 関数 — 現在の値を `dispatch` に渡して実行した結果を次の値とする\r\n * @param dispatch 上書きするデータ\r\n */\r\n public update(dispatch: Partial<T> | ((prevValue: T) => T)): void {\r\n if (typeof dispatch === \"function\") {\r\n this.next(dispatch(this.value));\r\n } else {\r\n this.next({...this.value, ...dispatch});\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useSubject = <T>(subject: Subject<T>): T | undefined => {\r\n const [value, setValue] = useState<T | undefined>(undefined);\r\n useEffect(() => {\r\n const subscription = subject.subscribe({\r\n next: (value) => setValue(value)\r\n });\r\n return () => subscription.unsubscribe();\r\n }, [subject]);\r\n\r\n return value;\r\n};\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useBehaviorSubject = <T>(subject: BehaviorSubject<T>): T => {\r\n const [value, setValue] = useState<T>(subject.value);\r\n useEffect(() => {\r\n const subscription = subject.subscribe({\r\n next: (value) => setValue(value)\r\n });\r\n return () => subscription.unsubscribe();\r\n }, [subject]);\r\n\r\n return value;\r\n};","import dayjs, {Dayjs} from \"dayjs\";\r\nimport {ReactNode, useCallback, useMemo} from \"react\";\r\nimport {IntlShape, createIntl, useIntl as useRawIntl} from \"react-intl\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport {Primitive} from \"ts-essentials\";\r\nimport {useBehaviorSubject} from \"/src/modules/subject\";\r\n\r\n\r\nexport const intlSubject = new BehaviorSubject<IntlShape>(createIntl({locale: \"ja\", onError: (error) => null}));\r\nexport const localeSubject = new BehaviorSubject(\"ja\");\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useIntl = (): IntlShape => {\r\n const intl = useBehaviorSubject(intlSubject);\r\n return intl;\r\n};\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useLocale = (): string => {\r\n const locale = useBehaviorSubject(localeSubject);\r\n return locale;\r\n};\r\n\r\n/**\r\n * @group React フック\r\n */\r\nexport const useSetLocale = (): (locale: string) => void => {\r\n const setLocale = useCallback((locale: string) => {\r\n if (typeof localStorage !== \"undefined\") {\r\n localStorage.setItem(\"qlib-locale\", locale);\r\n }\r\n localeSubject.next(locale);\r\n }, []);\r\n return setLocale;\r\n};\r\n\r\n/**\r\n * 文字列フォーマット用の各種の関数を生成するフックです。\r\n * @param scope スコープ\r\n * @return フォーマット用の関数群\r\n * @group React フック\r\n */\r\nexport const useTrans = (scope?: string): TransCallbacksWithNode => {\r\n const intl = useRawIntl();\r\n\r\n const trans = useCallback((key: string, values?: any): any => {\r\n const fullKey = key.includes(\":\") ? key.replace(\":\", \".\") : (scope != null ? `${scope}.` : \"\") + key;\r\n const defaultMessage = values?.defaultMessage ?? `<${fullKey}>`;\r\n const message = intl.formatMessage({id: fullKey, defaultMessage}, values);\r\n return message;\r\n }, [intl, scope]);\r\n\r\n const transDate = useCallback((date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MMM/YYYY\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n const transTime = useCallback((date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MMM/YYYY HH:mm\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n const transNumber = useCallback((number: number | null | undefined, options?: {digit?: number, withSign?: boolean}): string => {\r\n const intlOptions = {minimumFractionDigits: options?.digit, maximumFractionDigits: options?.digit};\r\n if (number !== null && number !== undefined) {\r\n if (number > 0) {\r\n return (options?.withSign ? \"+\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else if (number === 0) {\r\n return (options?.withSign ? \"±\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else {\r\n return \"−\" + intl.formatNumber(-number, intlOptions);\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }, [intl]);\r\n\r\n return useMemo(() => ({\r\n trans,\r\n transNode: trans,\r\n transDate,\r\n transTime,\r\n transNumber\r\n }), [\r\n trans,\r\n transDate,\r\n transTime,\r\n transNumber\r\n ]);\r\n};\r\n\r\n/** @deprecated */\r\nexport const useTranslation = useTrans;\r\n\r\n/**\r\n * 文字列フォーマット用の各種の関数を生成します。\r\n *\r\n * この関数は、React コンポーネントの外で利用されることを想定しています。\r\n * React コンポーネント内部では `useTrans` フックを利用した方が便利です。\r\n * @param scope スコープ\r\n * @return フォーマット用の関数群\r\n */\r\nexport const createTrans = (scope?: string): TransCallbacks => {\r\n const intl = intlSubject.value;\r\n\r\n const trans = (key: string, values?: any): string => {\r\n const fullKey = key.includes(\":\") ? key.replace(\":\", \".\") : (scope != null ? `${scope}.` : \"\") + key;\r\n const defaultMessage = values?.defaultMessage ?? `<${fullKey}>`;\r\n const message = intl.formatMessage({id: fullKey, defaultMessage}, values);\r\n return message;\r\n };\r\n\r\n const transDate = (date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MM/YYYY\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const transTime = (date: string | number | Date | Dayjs | null | undefined): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n } else {\r\n return dayjs(date).locale(\"en\").format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const transNumber = (number: number | null | undefined, options?: {digit?: number, withSign?: boolean}): string => {\r\n const intlOptions = {minimumFractionDigits: options?.digit, maximumFractionDigits: options?.digit};\r\n if (number !== null && number !== undefined) {\r\n if (number > 0) {\r\n return (options?.withSign ? \"+\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else if (number === 0) {\r\n return (options?.withSign ? \"±\" : \"\") + intl.formatNumber(number, intlOptions);\r\n } else {\r\n return \"−\" + intl.formatNumber(-number, intlOptions);\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n return {\r\n trans,\r\n transDate,\r\n transTime,\r\n transNumber\r\n };\r\n};\r\n\r\nexport type TransCallback = {\r\n (key: string, values?: Record<string, Primitive | ((parts: Array<string>) => string)>): string,\r\n (key: string, values?: Record<string, Primitive | ReactNode | ((parts: Array<ReactNode>) => ReactNode)>): ReactNode\r\n};\r\n\r\nexport type TransCallbacks = {\r\n trans: TransCallback,\r\n transDate: (date: string | number | Date | Dayjs | null | undefined) => string,\r\n transTime: (date: string | number | Date | Dayjs | null | undefined) => string,\r\n transNumber: (number: number | null | undefined, options?: {digit?: number, withSign?: boolean}) => string\r\n};\r\nexport type TransCallbacksWithNode = TransCallbacks & {\r\n transNode: (key: string, values?: Record<string, ReactNode | ((parts: Array<ReactNode>) => ReactNode)>) => ReactNode\r\n};","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype SvgDefinitionProps = {\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n block-size: ${size(0)};\r\n inline-size: ${size(0)};\r\n opacity: 0;\r\n position: fixed;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SvgDefinition: FunctionComponent<SvgDefinitionProps> = ({\r\n}) => {\r\n return (\r\n <svg css={styles.root} viewBox=\"0 0 1 1\" aria-hidden={true}>\r\n <linearGradient id=\"qlib-rank-gold\" x1=\"0\" y1=\"0\" x2=\"576\" y2=\"512\" gradientUnits=\"userSpaceOnUse\">\r\n <stop offset=\"5%\" stopColor={color(\"gold\", 5)}/>\r\n <stop offset=\"50%\" stopColor={color(\"gold\", 3)}/>\r\n <stop offset=\"95%\" stopColor={color(\"gold\", 5)}/>\r\n </linearGradient>\r\n <linearGradient id=\"qlib-rank-silver\" x1=\"0\" y1=\"0\" x2=\"576\" y2=\"512\" gradientUnits=\"userSpaceOnUse\">\r\n <stop offset=\"5%\" stopColor={color(\"silver\", 5)}/>\r\n <stop offset=\"50%\" stopColor={color(\"silver\", 3)}/>\r\n <stop offset=\"95%\" stopColor={color(\"silver\", 5)}/>\r\n </linearGradient>\r\n <linearGradient id=\"qlib-rank-bronze\" x1=\"0\" y1=\"0\" x2=\"576\" y2=\"512\" gradientUnits=\"userSpaceOnUse\">\r\n <stop offset=\"5%\" stopColor={color(\"bronze\", 5)}/>\r\n <stop offset=\"50%\" stopColor={color(\"bronze\", 3)}/>\r\n <stop offset=\"95%\" stopColor={color(\"bronze\", 5)}/>\r\n </linearGradient>\r\n </svg>\r\n );\r\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\r\nimport {Global, Interpolation, css} from \"@emotion/react\";\r\nimport {Fragment, FunctionComponent, ReactNode, useEffect, useMemo, useState} from \"react\";\r\nimport {RawIntlProvider, createIntl, createIntlCache} from \"react-intl\";\r\nimport ReactModal from \"react-modal\";\r\nimport {scrollGlobalStyle} from \"/src/components/atoms/root/scrollGlobalStyle\";\r\nimport {alpha, color, fontFamily, fontWeight} from \"/src/components/functions/utilities\";\r\nimport {DialogProvider} from \"/src/contexts/dialog/context\";\r\nimport {RootProvider} from \"/src/contexts/root/context\";\r\nimport {ToastProvider} from \"/src/contexts/toast/context\";\r\nimport {messages as builtinMessages} from \"/src/messages\";\r\nimport {ColorDefinitions} from \"/src/modules/color\";\r\nimport {LocalizationMessages, mergeLocalizationMessages} from \"/src/modules/message\";\r\nimport {ResponsiveValue, toResponsiveValue, useResponsiveValue} from \"/src/modules/responsive\";\r\nimport {useBehaviorSubject} from \"/src/modules/subject\";\r\nimport {intlSubject, useLocale, useSetLocale} from \"/src/modules/translation\";\r\nimport {getColorVarDefinitionCss} from \"/src/utils/color\";\r\nimport {SvgDefinition} from \"./svgDefinition\";\r\n\r\n\r\ntype RootProps = {\r\n /**\r\n * ローカライズメッセージ。\r\n */\r\n messages?: LocalizationMessages,\r\n /**\r\n * ルート要素のフォントサイズ。\r\n * 全ての UI の寸法はこれを基準にして決まるので、これを変更することで UI 全体の大きさを調整することができます。\r\n * @defaultValue `{desktop: \"16px\", smartphone: \"13px\"}`\r\n */\r\n rootFontSize?: string | ResponsiveValue<string>,\r\n /**\r\n * スマートフォン環境かどうかを判断するメディアクエリ。\r\n * @defaultValue `\"(max-width: 767px)\"`\r\n */\r\n smartphoneQuery?: string,\r\n /**\r\n * 色定義。\r\n * 部分的に指定することもでき、その場合は指定しなかった部分はデフォルトの色になります。\r\n * @defaultValue `{}`\r\n */\r\n colorDefinitions?: ColorDefinitions,\r\n /**\r\n * グローバル CSS。\r\n */\r\n globalStyle?: Interpolation<{}>,\r\n /**\r\n * アプリ全体のルートとなる HTML 要素。\r\n * モーダルを表示したときにスクリーンリーダーに対してモーダル以外の部分を隠すのに必要となるので、可能な限り指定してください。\r\n *\r\n * Next.js を使っている場合は `\"#__next\"` を指定してください。\r\n */\r\n appElement?: string | HTMLElement,\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nexport const defaultGlobalStyle = (rootFontSize: string) => css`\r\n @import url(\"https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,700;1,400;1,700&family=Noto+Sans+JP:wght@400;700&family=Noto+Sans:wght@400;700&display=swap\");\r\n :root {\r\n --qlib-root-font-size: ${rootFontSize};\r\n }\r\n html {\r\n font-size: ${rootFontSize};\r\n font-family: ${fontFamily()};\r\n font-weight: ${fontWeight(\"normal\")};\r\n font-feature-settings: \"palt\" 1, \"pkna\" 1, \"lnum\" 1, \"kern\" 1 !important;\r\n color: ${color(\"blackText\")};\r\n background-color: ${color(\"background\")};\r\n line-height: 1;\r\n }\r\n body {\r\n height: 100%;\r\n margin: 0px;\r\n padding: 0px;\r\n text-decoration-skip-ink: none;\r\n text-decoration-thickness: 0.003em;\r\n -webkit-text-size-adjust: 100%;\r\n }\r\n body * {\r\n scrollbar-color: ${color(\"gray\", 5)} transparent;\r\n scrollbar-width: thin;\r\n }\r\n *:where(:not(iframe, canvas, img, svg, video):not(svg *):not(.sbdocs *:not(.docs-story *))) {\r\n all: unset;\r\n display: revert;\r\n min-block-size: 0rem;\r\n min-inline-size: 0rem;\r\n background-origin: border-box;\r\n scroll-behavior: smooth;\r\n }\r\n input,\r\n textarea {\r\n user-select: auto !important;\r\n -webkit-user-select : auto !important;\r\n }\r\n .simplebar-scrollbar:before {\r\n background-color: ${alpha(color(\"primary\", 5), 0.6)};\r\n }\r\n`;\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * ### ルート\r\n *\r\n * #### 使い方\r\n * アプリケーション全体をこのコンポーネントで囲んでください。\r\n *\r\n * ```tsx\r\n * const root = createRoot(container);\r\n * root.render(\r\n * <Root>\r\n * (アプリケーションのルートコンポーネント)\r\n * </Root>\r\n * );\r\n * ```\r\n *\r\n * Next.js を使っている場合は、`pages/_app.tsx` で定義されている `App` コンポーネント内部で、ページコンポーネントを囲む形で利用してください。\r\n *\r\n * ```tsx\r\n * const App = ({Component, pageProps}) => {\r\n * return (\r\n * <>\r\n * ⋮\r\n * <Root>\r\n * <Component {...pageProps}/>\r\n * </Root>\r\n * </>\r\n * );\r\n * };\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Root: FunctionComponent<RootProps> = ({\r\n messages,\r\n rootFontSize = {desktop: \"16px\", smartphone: \"13px\"},\r\n smartphoneQuery = \"(max-width: 767px)\",\r\n colorDefinitions = {},\r\n globalStyle,\r\n appElement,\r\n children\r\n}) => {\r\n const locale = useLocale();\r\n const setLocale = useSetLocale();\r\n const intl = useBehaviorSubject(intlSubject);\r\n\r\n const resolvedRootFontSize = useResponsiveValue(rootFontSize);\r\n const rootContextValue = useMemo(() => ({\r\n rootFontSize: toResponsiveValue(rootFontSize),\r\n smartphoneQuery\r\n }), [\r\n rootFontSize,\r\n smartphoneQuery\r\n ]);\r\n\r\n const [isReady, setReady] = useState(false);\r\n useEffect(() => {\r\n setReady(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const mergedMessages = mergeLocalizationMessages([messages ?? {}, builtinMessages]);\r\n const intlCache = createIntlCache();\r\n const intl = createIntl({\r\n locale,\r\n messages: mergedMessages[locale],\r\n onError: (error) => null\r\n }, intlCache);\r\n intlSubject.next(intl);\r\n }, [locale, messages]);\r\n\r\n useEffect(() => {\r\n if (typeof localStorage !== \"undefined\") {\r\n setLocale(localStorage.getItem(\"qlib-locale\") ?? \"ja\");\r\n }\r\n }, [setLocale]);\r\n\r\n useEffect(() => {\r\n const inferredAppElement = \"next\" in window ? \"#__next\" : appElement;\r\n if (inferredAppElement) {\r\n ReactModal.setAppElement(inferredAppElement);\r\n }\r\n }, [appElement]);\r\n\r\n return (\r\n <Fragment>\r\n <Global styles={scrollGlobalStyle}/>\r\n <Global styles={defaultGlobalStyle(resolvedRootFontSize)}/>\r\n <Global styles={getColorVarDefinitionCss(colorDefinitions)}/>\r\n <Global styles={globalStyle}/>\r\n <SvgDefinition/>\r\n <RawIntlProvider value={intl}>\r\n <RootProvider value={rootContextValue}>\r\n <ToastProvider>\r\n <DialogProvider>\r\n {isReady && children}\r\n </DialogProvider>\r\n </ToastProvider>\r\n </RootProvider>\r\n </RawIntlProvider>\r\n </Fragment>\r\n );\r\n};","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, ReactNode} from \"react\";\r\nimport {color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SecondaryHeadingProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h3\"`\r\n */\r\n as?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\" | \"span\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4.5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(\"primary\", 6)};\r\n display: flex;\r\n align-items: center;\r\n `\r\n};\r\n\r\n/**\r\n * ### 第 2 見出し\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SecondaryHeading: FunctionComponent<SecondaryHeadingProps> = ({\r\n as = \"h3\",\r\n className,\r\n children,\r\n ...data\r\n}) => {\r\n const TagName = as;\r\n\r\n return (\r\n <TagName css={styles.root} className={className} {...data}>\r\n {children}\r\n </TagName>\r\n );\r\n};\r\n\r\nSecondaryHeading.displayName = \"SecondaryHeading\";","import {ReactElement, useCallback, useMemo} from \"react\";\r\nimport SelectRaw from \"react-select\";\r\nimport {useDelayedMenuProps} from \"/src/components/atoms/select/selectHook\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\nimport {Provider} from \"./context\";\r\nimport {SelectComponentClearIndicator} from \"./selectComponentClearIndicator\";\r\nimport {SelectComponentControl} from \"./selectComponentControl\";\r\nimport {SelectComponentDropdownIndicator} from \"./selectComponentDropdownIndicator\";\r\nimport {SelectComponentIndicatorsContainer} from \"./selectComponentIndicatorsContainer\";\r\nimport {SelectComponentInput} from \"./selectComponentInput\";\r\nimport {SelectComponentMenu} from \"./selectComponentMenu\";\r\nimport {SelectComponentMenuList} from \"./selectComponentMenuList\";\r\nimport {SelectComponentMenuPortal} from \"./selectComponentMenuPortal\";\r\nimport {SelectComponentNoOptionMessage} from \"./selectComponentNoOptionMessage\";\r\nimport {SelectComponentOption} from \"./selectComponentOption\";\r\nimport {SelectComponentPlaceholder} from \"./selectComponentPlacement\";\r\n\r\n\r\ntype SelectProps<V> = {\r\n /**\r\n * 選択されている値。\r\n */\r\n value?: V | null,\r\n /**\r\n * 初期値。\r\n */\r\n defaultValue?: V | null,\r\n /**\r\n * 見た目のバリアント。\r\n * 基本的には `\"outline\"` で利用してください。\r\n * フォームの一部として使う場合など、省スペースで表示したいときには `\"minimal\"` にしてください。\r\n * - `\"outline\"` — 通常\r\n * - `\"minimal\"` — 背景や罫線がない\r\n * @defaultValue `\"outline\"`\r\n */\r\n variant?: \"outline\" | \"minimal\",\r\n /**\r\n * 選択肢メニューをコントロール本体に対して揃える方向。\r\n *\r\n * 選択肢メニューは基本的にコントロール本体と同じ幅で表示されますが、選択肢メニューの幅には下限が設定されているため、コントロール本体の幅が非常に小さい場合は選択肢メニューの方が大きくなります。\r\n * その場合に、選択肢メニューをコントロール本体に対してどちら側に揃えるかを設定できます。\r\n * @defaultValue `\"left\"`\r\n */\r\n optionAlignment?: \"left\" | \"right\",\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /**\r\n * 選択しない状態に戻せるかどうか。\r\n * これを `true` にすると、コントロール内部にクリアボタンが表示され、選択を解除できるようになります。\r\n * @defaultValue `false`\r\n */\r\n isClearable?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢が選択されたときに呼ばれるコールバック関数。\r\n */\r\n onSet?: (value: V | null) => unknown,\r\n /**\r\n * 選択肢の情報。\r\n * `SelectItem` を複数個置いてください。\r\n */\r\n children: ReactElement | Array<ReactElement>,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\nconst COMPONENTS = {\r\n Control: SelectComponentControl,\r\n Input: SelectComponentInput,\r\n Placeholder: SelectComponentPlaceholder,\r\n MenuPortal: SelectComponentMenuPortal,\r\n Menu: SelectComponentMenu,\r\n MenuList: SelectComponentMenuList,\r\n Option: SelectComponentOption,\r\n NoOptionsMessage: SelectComponentNoOptionMessage,\r\n DropdownIndicator: SelectComponentDropdownIndicator,\r\n ClearIndicator: SelectComponentClearIndicator,\r\n IndicatorsContainer: SelectComponentIndicatorsContainer,\r\n IndicatorSeparator: null\r\n};\r\n\r\ntype SelectComponent = GenericFunctionComponent<<V>(props: SelectProps<V>) => ReactElement>;\r\n\r\n/**\r\n * ### 選択式メニュー\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Select`**\r\n * - [`SelectOption`](/docs/atoms-Select-SelectOption--ドキュメント) (複数個)\r\n *\r\n * #### 例\r\n * 最も単純な使い方は、次のように子要素に `SelectOption` を複数個置き、各 `SelectOption` に `value` と `label` を指定する方法です。\r\n * `value` はプログラム上でその選択肢を表す値で、`label` は画面に表示されるテキストです。\r\n *\r\n * ```tsx\r\n * <Select>\r\n * <SelectOption value=\"option1\" label=\"選択肢1\"/>\r\n * <SelectOption value=\"option2\" label=\"選択肢2\"/>\r\n * <SelectOption value=\"option3\" label=\"選択肢3\"/>\r\n * </Select>\r\n * ```\r\n *\r\n * `SelectOption` には子要素を設定することができ、選択肢メニューの中での各選択肢の表示をカスタマイズすることができます。\r\n * 例えば、以下のようにするとバッジを表示できます。\r\n *\r\n * ```tsx\r\n * <Select>\r\n * <SelectOption value=\"quiz\" label=\"クイズ\" iconNode={<Icon name=\"quiz\"/>}>\r\n * <Badge scheme=\"primary\">その1</Badge>\r\n * クイズ\r\n * </SelectOption>\r\n * <SelectOption value=\"deck\" label=\"デッキ\" iconNode={<Icon name=\"deck\"/>}>\r\n * <Badge scheme=\"red\">その2</Badge>\r\n * デッキ\r\n * </SelectOption>\r\n * <SelectOption value=\"user\" label=\"ユーザー\" iconNode={<Icon name=\"user\"/>}>\r\n * <Badge scheme=\"blue\">その3</Badge>\r\n * ユーザー\r\n * </SelectOption>\r\n * </Select>\r\n * ```\r\n *\r\n * #### 要素が可変な場合について\r\n * このコンポーネントは、選択肢が固定の場合に向いています。\r\n * ユーザーが入力した値に応じて表示する選択肢を動的に変更したい場合には、[`AsyncSelect`](/docs/atoms-AsyncSelect-AsyncSelect--ドキュメント) の方が便利です。\r\n *\r\n * #### 専用コンポーネント\r\n * - [`PageSizeSelect`](/docs/atoms-Select-🎶PageSizeSelect--ドキュメント) — ページに表示する項目数\r\n * - [`SortOrderSelect`](/docs/atoms-Select-🎶SortOrderSelect--ドキュメント) — 並べ替え順\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Select: SelectComponent = ({\r\n value,\r\n defaultValue,\r\n variant = \"outline\",\r\n optionAlignment = \"left\",\r\n isError = false,\r\n isClearable = false,\r\n isDisabled = false,\r\n onSet,\r\n children,\r\n className\r\n}) => {\r\n const {trans} = useQlibTranslation(\"select\");\r\n\r\n const optionsMap = useMemo(() => {\r\n const elements = getElements(children);\r\n const optionsMap = new Map(elements.map((element) => {\r\n const options = {\r\n value: element.props.value,\r\n label: element.props.label,\r\n node: element\r\n };\r\n return [element.props.value, options];\r\n }));\r\n return optionsMap;\r\n }, [children]);\r\n\r\n const options = useMemo(() => [...optionsMap.values()], [optionsMap]);\r\n\r\n const rawValue = value !== undefined ? optionsMap.get(value) ?? null : undefined;\r\n const rawDefaultValue = defaultValue !== undefined ? optionsMap.get(defaultValue) ?? null : undefined;\r\n\r\n const handleChange = useCallback((rawValue: any | null) => {\r\n onSet?.(rawValue !== null ? rawValue.value : null);\r\n }, [onSet]);\r\n\r\n const {isMenuOpen, ...restProps} = useDelayedMenuProps(200);\r\n\r\n const contextValue = useMemo(() => ({\r\n variant,\r\n optionAlignment,\r\n isMenuOpen,\r\n isError\r\n }), [\r\n variant,\r\n optionAlignment,\r\n isMenuOpen,\r\n isError\r\n ]);\r\n\r\n return (\r\n <Provider value={contextValue}>\r\n <SelectRaw\r\n className={className}\r\n classNamePrefix={\"qlib-select\"}\r\n value={rawValue}\r\n defaultValue={rawDefaultValue}\r\n options={options}\r\n onChange={onSet != null ? handleChange : undefined}\r\n isClearable={isClearable}\r\n isDisabled={isDisabled}\r\n placeholder={trans(\"select\")}\r\n menuPortalTarget={typeof window === \"object\" ? document.body : undefined}\r\n components={COMPONENTS}\r\n isMulti={false}\r\n unstyled={true}\r\n aria-invalid={isError}\r\n {...restProps}\r\n />\r\n </Provider>\r\n );\r\n};\r\n\r\nSelect.displayName = \"Select\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, ReactNode} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\n\r\n\r\ntype SelectOptionProps<V> = CommonProps & {\r\n /**\r\n * この選択肢の値。\r\n */\r\n value: V,\r\n /**\r\n * この選択肢が選択されているときに、選択式メニュー本体の内部で表示する文字列。\r\n */\r\n label: string,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢メニューの選択肢が一覧される箇所で表示する内容。\r\n * 省略した場合は、`label` に設定された文字列が表示されます。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\ntype SelectOptionComponent = GenericFunctionComponent<<V>(props: SelectOptionProps<V>) => ReactElement>;\r\n\r\n/**\r\n * ### 選択式メニューの選択肢\r\n *\r\n * このコンポーネントは [`Select`](/docs/atoms-Select-Select--ドキュメント) の子要素に配置するものであり、単独では動作しません。\r\n * 詳細は [`Select`](/docs/atoms-Select-Select--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectOption: SelectOptionComponent = ({\r\n value,\r\n label,\r\n isDisabled = false,\r\n children,\r\n className,\r\n ...data\r\n}) => {\r\n return (\r\n <div css={styles.root} className={className} {...data}>\r\n {children ?? label}\r\n </div>\r\n );\r\n};\r\n\r\nSelectOption.displayName = \"SelectOption\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SelectOptionIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * ### ボタン内のアイコン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SelectOptionIconContainer = forwardRef<HTMLSpanElement, SelectOptionIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nSelectOptionIconContainer.displayName = \"SelectOptionIconContainer\";","import {ReactElement} from \"react\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\nimport {Select} from \"./select\";\r\nimport {SelectOption} from \"./selectOption\";\r\n\r\n\r\ntype PageSizeSelectProps<V extends number> = {\r\n /**\r\n * 選択されているページの項目数。\r\n */\r\n pageSize?: V,\r\n /**\r\n * 初期のページの項目数。\r\n */\r\n defaultPageSize?: V,\r\n /**\r\n * ページの項目数として選択できる選択肢の配列。\r\n */\r\n optionPageSizes: Array<V>,\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢が選択されたときに呼ばれるコールバック関数。\r\n */\r\n onSet?: (pageSize: V) => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\ntype PageSizeSelectComponent = GenericFunctionComponent<<V extends number>(props: PageSizeSelectProps<V>) => ReactElement>;\r\n\r\n/**\r\n * ### ページに表示する項目数の選択式メニュー\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PageSizeSelect: PageSizeSelectComponent = ({\r\n pageSize,\r\n defaultPageSize,\r\n optionPageSizes,\r\n isDisabled = false,\r\n onSet,\r\n className\r\n}) => {\r\n const {transNumber} = useQlibTranslation(\"pageSizeSelect\");\r\n\r\n return (\r\n <Select\r\n className={className}\r\n value={pageSize}\r\n defaultValue={defaultPageSize}\r\n variant=\"minimal\"\r\n optionAlignment=\"right\"\r\n isDisabled={isDisabled}\r\n onSet={onSet as any}\r\n >\r\n {optionPageSizes.map((optionPageSize) => (\r\n <SelectOption key={optionPageSize} value={optionPageSize} label={transNumber(optionPageSize)}/>\r\n ))}\r\n </Select>\r\n );\r\n};\r\n\r\nPageSizeSelect.displayName = \"PageSizeSelect\";","import {createContext} from \"react\";\r\nimport type {ResolvedPageProps} from \"/src/components/modules/cardList/cardListAutoHook\";\r\n\r\n\r\ntype PagePropsContextValue = {\r\n displayedItems: ReadonlyArray<any>,\r\n resolvedPageProps: ResolvedPageProps\r\n};\r\n\r\nexport const pagePropsContext = createContext<PagePropsContextValue>({\r\n displayedItems: [],\r\n resolvedPageProps: {\r\n isLoading: false,\r\n isEmpty: false,\r\n page: 0,\r\n pageCount: 1,\r\n pageSize: 0,\r\n optionPageSizes: [],\r\n setPage: () => null,\r\n setPageSize: () => null\r\n }\r\n});\r\nexport const PagePropsProvider = pagePropsContext.Provider;","import {css} from \"@emotion/react\";\r\nimport {FunctionComponent, useContext} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {pagePropsContext} from \"/src/contexts/pageProps/context\";\r\nimport {PageSizeSelect} from \"./pageSizeSelect\";\r\n\r\n\r\ntype PageSizeSelectAutoProps = {\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: ${size(16)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PageSizeSelectAuto: FunctionComponent<PageSizeSelectAutoProps> = ({\r\n className\r\n}) => {\r\n const {\r\n resolvedPageProps: {\r\n pageSize,\r\n optionPageSizes,\r\n setPageSize\r\n }\r\n } = useContext(pagePropsContext);\r\n\r\n return (\r\n <PageSizeSelect\r\n css={styles.root}\r\n className={className}\r\n pageSize={pageSize}\r\n onSet={setPageSize}\r\n defaultPageSize={optionPageSizes[0]}\r\n optionPageSizes={optionPageSizes}\r\n />\r\n );\r\n};\r\n\r\nPageSizeSelectAuto.displayName = \"PageSizeSelectAuto\";\r\n","import {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faArrowDown19, faArrowDown91, faArrowDownAZ, faArrowDownZA} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {FunctionComponent} from \"react\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {Select} from \"./select\";\r\nimport {SelectOption} from \"./selectOption\";\r\nimport {SelectOptionIconContainer} from \"./selectOptionIconContainer\";\r\n\r\n\r\ntype SortOrderSelectProps = {\r\n /**\r\n * 選択されている並べ替え順。\r\n */\r\n sortOrder?: \"ascending\" | \"descending\",\r\n /**\r\n * 初期の並べ替え順。\r\n */\r\n defaultSortOrder?: \"ascending\" | \"descending\",\r\n /**\r\n * 選択肢に表示するアイコンの種類。\r\n * @defaultValue `\"number\"`\r\n */\r\n iconType?: \"number\" | \"alphabet\",\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * 選択肢が選択されたときに呼ばれるコールバック関数。\r\n */\r\n onSet?: (sortOrder: \"ascending\" | \"descending\") => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * ### 並べ替え順の選択式メニュー\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SortOrderSelect: FunctionComponent<SortOrderSelectProps> = ({\r\n sortOrder,\r\n defaultSortOrder,\r\n iconType = \"number\",\r\n isDisabled = false,\r\n onSet,\r\n className\r\n}) => {\r\n const {trans} = useQlibTranslation(\"sortOrderSelect\");\r\n\r\n return (\r\n <Select\r\n className={className}\r\n value={sortOrder}\r\n defaultValue={defaultSortOrder}\r\n variant=\"minimal\"\r\n optionAlignment=\"right\"\r\n isDisabled={isDisabled}\r\n onSet={onSet as any}\r\n >\r\n <SelectOption value=\"ascending\" label={trans(\"ascending\")}>\r\n <SelectOptionIconContainer><FontAwesomeIcon icon={iconType === \"number\" ? faArrowDown19 : faArrowDownAZ}/></SelectOptionIconContainer>\r\n {trans(\"ascending\")}\r\n </SelectOption>\r\n <SelectOption value=\"descending\" label={trans(\"descending\")}>\r\n <SelectOptionIconContainer><FontAwesomeIcon icon={iconType === \"number\" ? faArrowDown91 : faArrowDownZA}/></SelectOptionIconContainer>\r\n {trans(\"descending\")}\r\n </SelectOption>\r\n </Select>\r\n );\r\n};\r\n\r\nSortOrderSelect.displayName = \"SortOrderSelect\";\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-switch\");","import {css} from \"@emotion/react\";\r\nimport * as RawSwitch from \"@radix-ui/react-switch\";\r\nimport {AriaAttributes, ChangeEvent, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SwitchProps = CommonProps & AriaAttributes & {\r\n /**\r\n * チェック状態。\r\n */\r\n isChecked?: boolean,\r\n /** */\r\n name?: string,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (isChecked: true | false) => void,\r\n /**\r\n * `<input>` 要素の `change` イベントのリスナー。\r\n * チェック状態を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLInputElement>) => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"primary\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(\"primary\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-color: ${alpha(color(\"red\", 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 5)};\r\n }\r\n &:hover {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(\"primary\", 4)};\r\n }\r\n }\r\n --qlib-inline-size: ${size(9)};\r\n --qlib-block-size: ${size(5)};\r\n inline-size: var(--qlib-inline-size);\r\n block-size: var(--qlib-block-size);\r\n padding: ${borderWidth(1)};\r\n border-radius: ${size(\"max\")};\r\n background-color: var(--qlib-background-color);\r\n transition: border-color 0.2s ease, background-color 0.2s ease;\r\n box-sizing: border-box;\r\n position: relative;\r\n cursor: pointer;\r\n &[data-state=\"checked\"] {\r\n background-color: var(--qlib-checked-background-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} var(--qlib-focus-color);\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n `,\r\n thumb: css`\r\n inline-size: calc(var(--qlib-block-size) - ${borderWidth(4)});\r\n block-size: calc(var(--qlib-block-size) - ${borderWidth(4)});\r\n inset-block-start: ${borderWidth(2)};\r\n inset-inline-start: ${borderWidth(2)};\r\n border-radius: ${size(\"max\")};\r\n background-color: ${color(\"white\")};\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n box-shadow: ${boxShadow(alpha(color(\"black\"), 0.2), 0.5)};\r\n transition: border-color 0.2s ease, inset-inline-start 0.2s ease;\r\n box-sizing: border-box;\r\n position: absolute;\r\n &[data-state=\"checked\"] {\r\n border-color: var(--qlib-checked-border-color);\r\n inset-inline-start: calc(var(--qlib-inline-size) - var(--qlib-block-size) + ${borderWidth(2)});\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### スイッチ\r\n *\r\n * #### 注意\r\n * このコンポーネントはスイッチのみを表示します。\r\n * 一緒にラベルを表示したい場合は、[`CheckableContainer`](/docs/atoms-CheckableContainer-CheckableContainer--ドキュメント) と [`CheckableLabel`](/docs/atoms-CheckableContainer-CheckableLabel--ドキュメント) を利用して、以下のようにしてください。\r\n *\r\n * ```tsx\r\n * <CheckableContainer>\r\n * <Switch/>\r\n * <CheckableLabel>ラベル</CheckableLabel>\r\n * </CheckableContainer>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(({\r\n isChecked,\r\n name,\r\n isError = false,\r\n isRequired,\r\n isDisabled = false,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n return (\r\n <RawSwitch.Root\r\n css={styles.root}\r\n className={className}\r\n ref={ref}\r\n name={name}\r\n checked={isChecked}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onCheckedChange={onSet}\r\n data-qlib-error={isError}\r\n {...dataAndAria}\r\n >\r\n <RawSwitch.Thumb css={styles.thumb}/>\r\n </RawSwitch.Root>\r\n );\r\n});\r\n\r\nSwitch.displayName = \"Checkbox\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TagProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"gray\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<TagProps[\"scheme\"]>) => css`\r\n padding-block: ${size(0.5)};\r\n padding-inline: ${size(1)};\r\n font-size: ${size(3)};\r\n column-gap: ${size(2)};\r\n border-radius: ${size(1)};\r\n color: ${color(scheme, 5)};\r\n border: solid ${color(scheme, 1)} ${borderWidth(1)};\r\n white-space: nowrap;\r\n line-height: 1;\r\n display: inline-block;\r\n `,\r\n icon: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * ### タグ\r\n *\r\n * #### 専用コンポーネント\r\n * - [GenreTag](/docs/atoms-Tag-GenreTag-ドキュメント)\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({\r\n scheme = \"gray\",\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root(scheme)} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nTag.displayName = \"Tag\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TagIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const TagIconContainer = forwardRef<HTMLSpanElement, TagIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nTagIconContainer.displayName = \"TagIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TagListProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(2)};\r\n row-gap: ${size(1)};\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n `\r\n};\r\n\r\n/**\r\n * ### タグのリスト\r\n *\r\n * #### 専用コンポーネント\r\n * - [QuizTagList](/docs/atoms-TagList-QuizTagList--ドキュメント)\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const TagList = forwardRef<HTMLDivElement, TagListProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nTagList.displayName = \"TagList\";","import {css} from \"@emotion/react\";\r\nimport {AriaAttributes, ChangeEvent, forwardRef, useCallback} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TextareaProps = CommonProps & AriaAttributes & {\r\n /** */\r\n value?: string,\r\n /** */\r\n name?: string,\r\n /**\r\n * スクロールなしで表示できる行数。\r\n * テキスト入力欄の高さが変わるのみで、実際に入力できるテキストの行数を制限するわけではありません。\r\n * @defaultValue `4`\r\n */\r\n rowCount?: number,\r\n /**\r\n * リサイズ可能な方向。\r\n * @defaultValue `\"vertical\"`\r\n */\r\n resize?: \"none\" | \"vertical\" | \"horizontal\" | \"both\",\r\n /**\r\n * @defaultValue `\"off\"`\r\n */\r\n autoComplete?: string,\r\n /** */\r\n autoFocus?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n * @defaultValue `false`\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /** */\r\n onSet?: (value: string) => void,\r\n /**\r\n * `<textarea>` 要素の `change` イベントのリスナー。\r\n * 入力された値を取得したいだけの場合は、`onSet` prop を利用する方が便利です。\r\n */\r\n onChange?: (event: ChangeEvent<HTMLTextAreaElement>) => unknown,\r\n /** */\r\n onBlur?: (event: ChangeEvent<HTMLTextAreaElement>) => unknown,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-focus-border-color: ${color(\"primary\", 5)};\r\n }\r\n &[data-qlib-error=\"true\"] {\r\n --qlib-border-color: ${color(\"red\", 5)};\r\n --qlib-focus-border-color: ${color(\"red\", 5)};\r\n }\r\n padding-inline: ${size(2)};\r\n font-size: ${size(4)};\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n background-color: ${color(\"white\")};\r\n border-radius: ${size(1)};\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\r\n &:focus-within {\r\n border-color: var(--qlib-focus-border-color);\r\n outline: solid ${borderWidth(1)} var(--qlib-focus-border-color);\r\n }\r\n `,\r\n inputContainer: css`\r\n column-gap: ${size(\"gap\")};\r\n display: flex;\r\n align-items: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n `,\r\n input: css`\r\n min-block-size: ${size(6)};\r\n padding-block: ${size(1)};\r\n line-height: 1.5;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n white-space: pre;\r\n box-sizing: border-box;\r\n &[data-qlib-resize=\"none\"] {\r\n resize: none;\r\n }\r\n &[data-qlib-resize=\"vertical\"] {\r\n resize: vertical;\r\n }\r\n &[data-qlib-resize=\"horizontal\"] {\r\n resize: horizontal;\r\n }\r\n &[data-qlib-resize=\"both\"] {\r\n resize: both;\r\n }\r\n &:disabled {\r\n cursor: inherit;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### 複数行テキスト入力欄\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(({\r\n value,\r\n name,\r\n rowCount = 4,\r\n resize = \"vertical\",\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n const handleChange = useCallback((event: ChangeEvent<HTMLTextAreaElement>) => {\r\n const value = event.target.value;\r\n onSet?.(value);\r\n onChange?.(event);\r\n }, [onSet, onChange]);\r\n\r\n return (\r\n <label\r\n className={className}\r\n css={styles.root}\r\n data-qlib-size={size}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-error={isError}\r\n >\r\n <div css={styles.inputContainer}>\r\n <textarea\r\n css={styles.input}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n rows={rowCount}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={isDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={isError}\r\n data-qlib-resize={resize}\r\n {...dataAndAria}\r\n />\r\n </div>\r\n </label>\r\n );\r\n});\r\n\r\nTextarea.displayName = \"Textarea\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype VisuallyHiddenProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"span\"`\r\n */\r\n as?: keyof JSX.IntrinsicElements,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n width: 1px;\r\n height: 1px;\r\n position: absolute;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n opacity: 0;\r\n clip: rect(0px, 0px, 0px, 0px);\r\n clip-path: inset(50%);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const VisuallyHidden = forwardRef<HTMLElement, VisuallyHiddenProps>(({\r\n as = \"span\",\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = as as any;\r\n\r\n return (\r\n <TagName css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </TagName>\r\n );\r\n});\r\n\r\nVisuallyHidden.displayName = \"VisuallyHidden\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype BulkOperationContainerProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n block-size: ${size(4.5)};\r\n margin-inline-start: calc(${size(3)} + ${borderWidth(1)});\r\n column-gap: ${size(3)};\r\n display: flex;\r\n align-items: center;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BulkOperationContainer = forwardRef<HTMLDivElement, BulkOperationContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nBulkOperationContainer.displayName = \"BulkOperationContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {Badge} from \"/src/components/atoms/badge\";\r\nimport {Button, ButtonIconContainer} from \"/src/components/atoms/button\";\r\nimport {Icon} from \"/src/components/atoms/icon\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype BulkOperationButtonProps = CommonProps & {\r\n /** */\r\n count: number,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `,\r\n badge: css`\r\n margin-block: ${size(-1)};\r\n margin-inline-start: ${size(\"gap\")};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const BulkOperationButton = forwardRef<HTMLButtonElement, BulkOperationButtonProps>(({\r\n count,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {trans, transNumber} = useQlibTranslation(\"bulkOperationButton\");\r\n\r\n return (\r\n <Button css={styles.root} className={className} scheme=\"gray\" variant=\"light\" isCompact={true} ref={ref} {...data}>\r\n <ButtonIconContainer><Icon name=\"bulk\"/></ButtonIconContainer>\r\n {trans(\"text\")}\r\n <span css={styles.badge}>\r\n <Badge scheme=\"gray\" size=\"small\">{transNumber(count)}</Badge>\r\n </span>\r\n </Button>\r\n );\r\n});\r\n\r\nBulkOperationButton.displayName = \"BulkOperationButton\";","import {MouseEvent, createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n isLabel: boolean,\r\n href?: string,\r\n onClick?: (event: MouseEvent<HTMLElement>) => unknown,\r\n setHovered: (isHovered: boolean) => unknown,\r\n setFocusVisible: (isFocusVisible: boolean) => unknown\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n isLabel: false,\r\n setHovered: () => null,\r\n setFocusVisible: () => null\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {MouseEvent, ReactNode, forwardRef, useMemo, useState} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {Provider} from \"./context\";\r\n\r\n\r\ntype CardProps = CommonProps & {\r\n /**\r\n * `<label>` 要素で描画するかどうか。\r\n * これを `true` にすることで、カード内に置いたチェックボックスなどの状態を変えるのに、カード自体をクリックできるようになります。\r\n * @defaultValue `false`\r\n */\r\n isLabel?: boolean,\r\n /** */\r\n href?: string,\r\n /** */\r\n onClick?: (event: MouseEvent<HTMLElement>) => unknown,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n min-inline-size: ${size(64)};\r\n min-block-size: ${size(14)};\r\n border-radius: ${size(1)};\r\n color: ${color(\"blackText\")};\r\n background-color: ${color(\"white\")};\r\n border: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n box-shadow: ${boxShadow(alpha(color(\"gray\", 5), 0.2), 0.5)};\r\n display: flex;\r\n box-sizing: border-box;\r\n position: relative;\r\n pointer-events: all;\r\n transition: background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease;\r\n &[data-qlib-label=\"true\"][data-qlib-hover=\"true\"], \r\n &[data-qlib-clickable=\"true\"][data-qlib-hover=\"true\"] {\r\n background-color: ${color(\"primary\", 0)};\r\n border: solid ${borderWidth(1)} ${color(\"primary\", 1)};\r\n box-shadow: ${boxShadow(alpha(color(\"primary\", 5), 0.2), 0.5)};\r\n }\r\n &[data-qlib-focus-visible=\"true\"] {\r\n outline: solid ${borderWidth(2)} ${alpha(color(\"primary\", 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### カード\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`CardList`**\r\n * - [`CardControlContainer`](/docs/atoms-Card-CardControlContainer--ドキュメント) (任意)\r\n * - `Checkbox` や `Radio` などのコントロール\r\n * - [`CardBody`](/docs/atoms-Card-CardBody--ドキュメント) (必須)\r\n * - [`CardHeadnote`](/docs/atoms-Card-CardHeadnote--ドキュメント) (任意)\r\n * - [`CardTitle`](/docs/atoms-Card-CardTitle--ドキュメント) (任意)\r\n * - `Footnote` や `BarMeter` などのその他の要素\r\n * - [`CardButtonList`](/docs/atoms-Card-CardButtonList--ドキュメント) (任意)\r\n * - [`CardButton`](/docs/atoms-Card-CardButton--ドキュメント) (2 個まで任意)\r\n *\r\n * #### 例\r\n * 以下は全ての要素を配置した場合の例です。\r\n * 実際には全てを配置する場面は少ないため、場面に応じて不要なものは省略してください。\r\n *\r\n * ```tsx\r\n * <Card>\r\n * <CardControlContainer>\r\n * <Checkbox/>\r\n * </CardControlContainer>\r\n * <CardBody>\r\n * <CardHeadnote>10</CardHeadnote>\r\n * <CardTitle>タイトル</CardTitle>\r\n * (その他の要素)\r\n * </CardBody>\r\n * <CardButtonList>\r\n * <CardButton variant=\"secondary\" label=\"メニュー\" iconNode={<Icon name=\"menu\"/>}/>\r\n * <CardButton label=\"編集\" iconNode={<Icon name=\"edit\"/>}/>\r\n * </CardButtonList>\r\n * </Card>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Card = forwardRef<HTMLLabelElement & HTMLSelectElement, CardProps>(({\r\n isLabel = false,\r\n href,\r\n onClick,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const [isHovered, setHovered] = useState(false);\r\n const [isFocusVisible, setFocusVisible] = useState(false);\r\n\r\n const TagName = isLabel ? \"label\" : \"article\";\r\n\r\n const contextValue = useMemo(() => ({\r\n isLabel,\r\n href,\r\n onClick,\r\n setHovered,\r\n setFocusVisible\r\n }), [\r\n isLabel,\r\n href,\r\n onClick,\r\n setHovered,\r\n setFocusVisible\r\n ]);\r\n\r\n return (\r\n <TagName\r\n css={styles.root}\r\n className={className}\r\n ref={ref}\r\n data-qlib-hover={isHovered}\r\n data-qlib-focus-visible={isFocusVisible}\r\n data-qlib-label={isLabel}\r\n data-qlib-clickable={href != null || onClick != null}\r\n {...data}\r\n >\r\n <Provider value={contextValue}>\r\n {children}\r\n </Provider>\r\n </TagName>\r\n );\r\n});\r\n\r\nCard.displayName = \"Card\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardHeadnoteProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inset-block-start: ${size(0)};\r\n inset-inline-start: ${size(0)};\r\n padding-inline: ${size(3)};\r\n block-size: ${size(4.5)};\r\n inline-size: ${size(12)};\r\n font-size: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n box-sizing: border-box;\r\n position: absolute;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardHeadnote = forwardRef<HTMLDivElement, CardHeadnoteProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardHeadnote.displayName = \"CardHeadnote\";","import {css} from \"@emotion/react\";\r\nimport {FocusEvent, ReactNode, forwardRef, useCallback, useContext, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {CardHeadnote} from \"./cardHeadnote\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype CardBodyProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(3)};\r\n padding-inline: ${size(3)};\r\n row-gap: ${size(2.5)};\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n order: 2;\r\n &[data-qlib-clickable=\"true\"] {\r\n cursor: pointer;\r\n }\r\n &[data-qlib-has-headnote=\"true\"] {\r\n padding-block-start: ${size(7.5)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardBody = forwardRef<HTMLElement, CardBodyProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {href, onClick, setHovered, setFocusVisible} = useContext(context);\r\n\r\n const hasHeadnote = useMemo(() => getElements(children).some((element) => element.type === CardHeadnote), [children]);\r\n\r\n const handleMouseEnter = useCallback(() => {\r\n setHovered(true);\r\n }, [setHovered]);\r\n const handleMouseLeave = useCallback(() => {\r\n setHovered(false);\r\n }, [setHovered]);\r\n\r\n const handleFocus = useCallback((event: FocusEvent<HTMLElement>) => {\r\n if (href != null || onClick != null) {\r\n const isFocusVisible = event.target.matches(\":focus-visible\");\r\n setFocusVisible(isFocusVisible);\r\n }\r\n }, [href, onClick, setFocusVisible]);\r\n const handleBlur = useCallback((event: FocusEvent<HTMLElement>) => {\r\n setFocusVisible(false);\r\n }, [setFocusVisible]);\r\n\r\n return href != null ? (\r\n <a\r\n className={className}\r\n css={styles.root}\r\n href={href}\r\n ref={ref as any}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n onClick={onClick}\r\n data-qlib-clickable={true}\r\n data-qlib-has-headnote={hasHeadnote}\r\n {...data}\r\n >\r\n {children}\r\n </a>\r\n ) : onClick != null ? (\r\n <button\r\n className={className}\r\n css={styles.root}\r\n ref={ref as any}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n onClick={onClick}\r\n data-qlib-clickable={onClick != null}\r\n data-qlib-has-headnote={hasHeadnote}\r\n {...data}\r\n >\r\n {children}\r\n </button>\r\n ) : (\r\n <div\r\n className={className}\r\n css={styles.root}\r\n ref={ref as any}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n data-qlib-clickable={onClick != null}\r\n data-qlib-has-headnote={hasHeadnote}\r\n {...data}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardBody.displayName = \"CardBody\";","import {css} from \"@emotion/react\";\r\nimport {AriaAttributes, KeyboardEvent, MouseEvent, ReactElement, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardButtonProps = CommonProps & AriaAttributes & {\r\n /**\r\n * ラベル。\r\n * ここで指定された内容は表示されませんが、アクセシビリティのために `aria-label` プロパティの値として設定されます。\r\n */\r\n label: string,\r\n /**\r\n * 見た目のバリアント。\r\n * そのカードに関するメインの動作を行うボタンには `\"primary\"` を指定し、それ以外のメニューを開くなどの動作を行うボタンには `\"secondary\"` を指定してください。\r\n * @defaultValue `\"primary\"`\r\n */\r\n variant?: \"primary\" | \"secondary\",\r\n /**\r\n * ボタンの種類。\r\n * HTML と違ってデフォルト値が `\"button\"` になっているので、フォームの送信ボタンとして使う場合は明示的に `\"submit\"` を指定してください。\r\n *\r\n * `onClick` に文字列値が指定されていてリンクとして表示される際は、これは無視されます。\r\n * @defaultValue `\"button\"`\r\n */\r\n type?: \"submit\" | \"reset\" | \"button\",\r\n /**\r\n * 無効にするかどうか。\r\n *\r\n * `onClick` に文字列値が指定されていてリンクとして表示される際は、これは無視されます。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * クリックされたりショートカットキーが押されたりしたときに実行する関数。\r\n */\r\n onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onKeyDown?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onKeyUp?: (event: KeyboardEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onMouseDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n onPointerDown?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /**\r\n * 表示するアイコン。\r\n */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-variant=\"primary\"] {\r\n --qlib-color: ${color(\"white\")};\r\n --qlib-border-color: ${color(\"primary\", 6)};\r\n --qlib-background-color: ${color(\"primary\", 5)};\r\n --qlib-hover-background-color: ${color(\"primary\", 4)};\r\n --qlib-border-style: none;\r\n }\r\n &[data-qlib-variant=\"secondary\"] {\r\n --qlib-color: ${color(\"gray\", 5)};\r\n --qlib-border-color: ${color(\"gray\", 3)};\r\n --qlib-background-color: ${color(\"white\")};\r\n --qlib-hover-background-color: ${color(\"gray\", 0)};\r\n --qlib-border-style: solid;\r\n }\r\n inline-size: ${size(8)};\r\n font-size: ${size(4)};\r\n color: var(--qlib-color);\r\n background-color: var(--qlib-background-color);\r\n border: solid ${borderWidth(1)} var(--qlib-border-color);\r\n transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n z-index: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n &:last-of-type {\r\n margin-inline-start: ${borderWidth(-1)};\r\n border-start-end-radius: ${size(1)};\r\n border-end-end-radius: ${size(1)};\r\n z-index: 1;\r\n }\r\n &:hover:not(:disabled) {\r\n background-color: var(--qlib-hover-background-color);\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(\"primary\", 5), 0.6)};\r\n outline-offset: ${borderWidth(1)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardButton = forwardRef<HTMLButtonElement, CardButtonProps>(({\r\n label,\r\n variant = \"primary\",\r\n type = \"button\",\r\n isDisabled = false,\r\n onClick,\r\n onKeyDown,\r\n onKeyUp,\r\n onMouseDown,\r\n onPointerDown,\r\n children,\r\n className,\r\n ...dataAndAria\r\n}, ref) => {\r\n return (\r\n <button\r\n className={className}\r\n css={styles.root}\r\n type={type}\r\n disabled={isDisabled}\r\n onClick={onClick}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n onMouseDown={onMouseDown}\r\n onPointerDown={onPointerDown}\r\n ref={ref}\r\n aria-label={label}\r\n data-qlib-variant={variant}\r\n {...dataAndAria}\r\n >\r\n {children}\r\n </button>\r\n );\r\n});\r\n\r\nCardButton.displayName = \"CardButton\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardButtonListProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block: ${borderWidth(-1)};\r\n margin-inline-end: ${borderWidth(-1)};\r\n display: flex;\r\n flex-direction: row;\r\n flex-shrink: 0;\r\n order: 3;\r\n z-index: 0;\r\n position: relative;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardButtonList = forwardRef<HTMLDivElement, CardButtonListProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div className={className} css={styles.root} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardButtonList.displayName = \"CardButtonList\";","import {SyntheticEvent} from \"react\";\r\n\r\n\r\nexport const stopPropagation = (event: SyntheticEvent): void => {\r\n event.stopPropagation();\r\n};","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useCallback, useContext} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {stopPropagation} from \"/src/utils/event\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype CardControlContainerProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-start: ${size(3)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n order: 1;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardControlContainer = forwardRef<HTMLLabelElement, CardControlContainerProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {isLabel, setHovered} = useContext(context);\r\n\r\n const handleMouseEnter = useCallback(() => {\r\n setHovered(true);\r\n }, [setHovered]);\r\n const handleMouseLeave = useCallback(() => {\r\n setHovered(false);\r\n }, [setHovered]);\r\n\r\n return (\r\n <label\r\n className={className}\r\n css={styles.root}\r\n onMouseEnter={isLabel ? handleMouseEnter : undefined}\r\n onMouseLeave={isLabel ? handleMouseLeave : undefined}\r\n onClick={stopPropagation}\r\n ref={ref}\r\n {...data}\r\n >\r\n {children}\r\n </label>\r\n );\r\n});\r\n\r\nCardControlContainer.displayName = \"CardControlContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardTitleProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h3\"`\r\n */\r\n as?: keyof JSX.IntrinsicElements,\r\n /**\r\n * 最大行数。\r\n * @defaultValue `4`\r\n */\r\n maxLineHeight?: number,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardTitle = forwardRef<HTMLElement, CardTitleProps>(({\r\n as = \"h3\",\r\n maxLineHeight = 4,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText className={className} css={styles.root} as={as} lineHeight=\"narrow\" maxLineCount={maxLineHeight} ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nCardTitle.displayName = \"CardTitle\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardListProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n row-gap: ${size(3)};\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * ### カードリスト\r\n *\r\n * #### `CardListAuto` について\r\n * 多くの場合で、[`CardListAuto`](/docs/modules-CardList-CardListAuto--ドキュメント) 専用コンポーネントを利用する方が便利です。\r\n * ローディング非表示やページ管理などを自動で行ってくれます。\r\n * 詳細は [`CardListAuto`](/docs/modules-CardList-CardListAuto--ドキュメント) のドキュメントを参照してください。\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`CardList`**\r\n * - [`CardListHeader`](/docs/modules-CardList-CardListHeader--ドキュメント) (任意)\r\n * - [`CardListHeaderLeft`](/docs/modules-CardList-CardListHeaderLeft--ドキュメント) (任意)\r\n * - [`CardListHeaderRight`](/docs/modules-CardList-CardListHeaderRight--ドキュメント) (任意)\r\n * - [`CardListBody`](/docs/modules-CardList-CardListBody--ドキュメント)\r\n * - [`Card`](/docs/modules-Card-Card--ドキュメント) (複数個)\r\n * - [`CardListLoading`](/docs/modules-CardList-CardListLoading--ドキュメント) (任意)\r\n * - [`CardListEmpty`](/docs/modules-CardList-CardListEmpty--ドキュメント) (任意)\r\n * - [`CardListFooter`](/docs/modules-CardList-CardListFooter--ドキュメント) (任意)\r\n * - `Pagination` などの要素 (任意)\r\n *\r\n * #### 例\r\n * 以下は全ての要素を配置した場合の例です。\r\n * 実際には全てを配置する場面は少ないため、場面に応じて不要なものは省略してください。\r\n *\r\n * ```tsx\r\n * <CardList>\r\n * <CardListHeader>\r\n * <CardListHeaderLeft>\r\n * (リストの上の左側に表示する要素)\r\n * </CardListHeaderLeft>\r\n * <CardListHeaderRight>\r\n * (リストの上の右側に表示する要素)\r\n * </CardListHeaderRight>\r\n * </CardListHeader>\r\n * <CardListBody>\r\n * <Card/>\r\n * </CardListBody>\r\n * <CardListFooter>\r\n * <Pagination page={1} pageCount={1}/>\r\n * </CardListFooter>\r\n * </CardList>\r\n * ```\r\n *\r\n * `CardListBody` コンポーネントの子要素には、通常は `Card` コンポーネントを複数個置きますが、代わりに `CardListLoading` や `CardListEmpty` を置くこともできます。\r\n * これにより、ローディング中の表示や該当項目がない場合の表示を行うことができます。\r\n *\r\n * ```tsx\r\n * <CardList>\r\n * ⋮\r\n * <CardListBody>\r\n * <CardListLoading/>\r\n * </CardListBody>\r\n * ⋮\r\n * </CardList>\r\n * ```\r\n *\r\n * #### 専用コンポーネント\r\n * - [`CardListAuto`](/docs/modules-CardList-CardListAuto--ドキュメント) — ローディング非表示やページ管理などを自動で行う便利なバージョン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardList = forwardRef<HTMLDivElement, CardListProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardList.displayName = \"CardList\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {ResponsiveValue, useResponsiveValue} from \"/src/modules/responsive\";\r\n\r\n\r\ntype CardListBodyProps = CommonProps & {\r\n /**\r\n * 1 行に表示するカードの枚数。\r\n * @defaultValue `1`\r\n */\r\n columnCount?: number | ResponsiveValue<number>,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (columnCount: number) => css`\r\n row-gap: ${size(3)};\r\n column-gap: ${size(3)};\r\n display: grid;\r\n grid-template-columns: repeat(${columnCount}, 1fr);\r\n align-items: flex-start;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListBody = forwardRef<HTMLDivElement, CardListBodyProps>(({\r\n columnCount = 1,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const resolvedColumnCount = useResponsiveValue(columnCount);\r\n\r\n return (\r\n <div css={styles.root(resolvedColumnCount)} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardListBody.displayName = \"CardListBody\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {Icon} from \"/src/components/atoms/icon\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype CardListEmptyProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /**\r\n * アイコンの下に表示するテキスト。\r\n * @defaultValue 「該当するデータがありません」を設定言語にローカライズした文字列\r\n */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n block-size: ${size(24)};\r\n row-gap: ${size(2)};\r\n padding-inline: ${size(4)};\r\n color: ${color(\"gray\", 5)};\r\n border-radius: ${size(1)};\r\n border: dashed ${borderWidth(1)} ${color(\"gray\", 5)};\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n grid-column: 1 / -1;\r\n `,\r\n icon: css`\r\n font-size: ${size(8)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListEmpty = forwardRef<HTMLDivElement, CardListEmptyProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {trans} = useQlibTranslation(\"cardListEmpty\");\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n <Icon css={styles.icon} name=\"empty\"/>\r\n <MultiLineText as=\"p\" lineHeight=\"normal\">\r\n {children || trans(\"empty\")}\r\n </MultiLineText>\r\n </div>\r\n );\r\n});\r\n\r\nCardListEmpty.displayName = \"CardListEmpty\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\n\r\n\r\ntype CardListFooterProps = {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListFooter = forwardRef<HTMLDivElement, CardListFooterProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardListFooter.displayName = \"CardListFooter\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardListHeaderProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListHeader = forwardRef<HTMLDivElement, CardListHeaderProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardListHeader.displayName = \"CardListHeader\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardListHeaderLeftProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(4)};\r\n display: flex;\r\n order: 1;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListHeaderLeft = forwardRef<HTMLDivElement, CardListHeaderLeftProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardListHeaderLeft.displayName = \"CardListHeaderLeft\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CardListHeaderRightProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(3)};\r\n display: flex;\r\n order: 2;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListHeaderRight = forwardRef<HTMLDivElement, CardListHeaderRightProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nCardListHeaderRight.displayName = \"CardListHeaderRight\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCircleNotch} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype CardListLoadingProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /**\r\n * アイコンの下に表示するテキスト。\r\n * @defaultValue 「読み込み中」を設定言語にローカライズした文字列\r\n */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n block-size: ${size(24)};\r\n row-gap: ${size(2)};\r\n padding-inline: ${size(4)};\r\n color: ${color(\"gray\", 5)};\r\n border-radius: ${size(1)};\r\n border: dashed ${borderWidth(1)} ${color(\"gray\", 5)};\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n grid-column: 1 / -1;\r\n `,\r\n icon: css`\r\n font-size: ${size(8)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListLoading = forwardRef<HTMLDivElement, CardListLoadingProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {trans} = useQlibTranslation(\"cardListLoading\");\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n <FontAwesomeIcon css={styles.icon} icon={faCircleNotch} spin={true}/>\r\n <MultiLineText as=\"p\" lineHeight=\"normal\">\r\n {children || trans(\"loading\")}\r\n </MultiLineText>\r\n </div>\r\n );\r\n});\r\n\r\nCardListLoading.displayName = \"CardListLoading\";","import {Dispatch, ReactNode, RefAttributes, SetStateAction, forwardRef, useMemo} from \"react\";\r\nimport {PagePropsProvider} from \"/src/contexts/pageProps/context\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\nimport {CardList} from \"./cardList\";\r\nimport {usePage} from \"./cardListAutoHook\";\r\n\r\n\r\ntype CardListAutoProps<T> = {\r\n /** */\r\n items: Array<T> | undefined,\r\n /** */\r\n pageProps: PageProps,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nexport type PageProps = {\r\n /**\r\n * 現在表示しているページ番号 (0 始まり)。\r\n */\r\n page?: number,\r\n /**\r\n * ページの総数。\r\n */\r\n pageCount?: number,\r\n /**\r\n * 1 ページに表示する項目の数。\r\n */\r\n pageSize?: number,\r\n /**\r\n * ページの項目数として選択できる選択肢の配列。\r\n */\r\n optionPageSizes: Array<number>,\r\n /** */\r\n setPage?: Dispatch<SetStateAction<number>>,\r\n /** */\r\n setPageSize?: Dispatch<SetStateAction<number>>\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\ntype CardListAutoComponent = GenericFunctionComponent<<T>(props: CardListAutoProps<T>) => ReactNode> & RefAttributes<HTMLDivElement>;\r\n\r\n/**\r\n * ### カードリスト (自動)\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`CardListAuto`**\r\n * - [`CardListHeader`](/docs/modules-CardList-CardListHeader--ドキュメント) (任意)\r\n * - [`CardListHeaderLeft`](/docs/modules-CardList-CardListHeaderLeft--ドキュメント) (任意)\r\n * - [`CardListHeaderRight`](/docs/modules-CardList-CardListHeaderRight--ドキュメント) (任意)\r\n * - [`Select.PageSizeAuto`](/docs/atoms-Select-Select-PageSizeAuto--ドキュメント) (任意)\r\n * - [`CardListBodyAuto`](/docs/modules-CardList-CardListBody-Auto--ドキュメント)\r\n * - `Card` を描画するレンダー関数\r\n * - [`CardListLoading`](/docs/modules-CardList-CardListLoading--ドキュメント) (任意)\r\n * - [`CardListEmpty`](/docs/modules-CardList-CardListEmpty--ドキュメント) (任意)\r\n * - [`CardListFooterAuto`](/docs/modules-CardList-CardListFooter-Auto--ドキュメント) (任意)\r\n * - [`PaginationAuto`](/docs/modules-Pagination-PaginationFooter-Auto--ドキュメント) (任意)\r\n *\r\n * #### ページングの非制御/制御\r\n * ページングの方法には、非制御と制御の 2 種類あります。\r\n *\r\n * 非制御用法では、ページングに関する処理を全て `CardListAuto` に任せます。\r\n * 1 ページの項目数や現在のページ番号を管理したり、ページ番号に応じて全体のデータから表示する部分だけを抜き出したりなどは、全て `CardListAuto` が内部で行ってくれます。\r\n * 以下の手順を行うコードを書いてください。\r\n *\r\n * 1. API を叩くなどして全体の項目データを取得する\r\n * 2. 1 ページに表示する項目数の選択肢 (`optionPageSizes`) を決める\r\n * 3. 以上のデータを props に渡す\r\n * - `items` — 全体の項目データ\r\n * - `pageProps` — `optionPageSizes` のみ\r\n *\r\n * 以下の例では、非制御用法でクイズのカードリストを表示します。\r\n *\r\n * ```tsx\r\n * const [quizzes] = useApi(getQuizzes, [quizIds]); // 全体を API から取得\r\n *\r\n * const optionPageSizes = [50, 100, 200]; // 1 ページの項目数の選択肢\r\n * const pageProps = {\r\n * optionPageSizes\r\n * };\r\n *\r\n * return (\r\n * <CardListAuto items={quizzes} pageProps={pageProps}>\r\n * <CardListHeader>\r\n * <CardListHeaderLeft/>\r\n * <CardListHeaderRight>\r\n * <PageSizeSelectAuto/>\r\n * </CardListHeaderRight>\r\n * </CardListHeader>\r\n * <CardListBodyAuto>\r\n * {(quiz) => (\r\n * <Card key={quiz.id}>\r\n * …\r\n * </Card>\r\n * )}\r\n * <CardListLoading/>\r\n * <CardListEmpty/>\r\n * </CardListBodyAuto>\r\n * <CardListFooterAuto>\r\n * <PaginationAuto/>\r\n * </CardListFooterAuto>\r\n * </CardListAuto>\r\n * );\r\n * ```\r\n *\r\n * 制御用法では、ページングに関するデータを `CardListAuto` の外側で管理します。\r\n * 1 ページの項目数や現在のページ番号を自前で管理するため、全体の一部分のみを取得するよう API にリクエストを送ることができるようになり、不必要なデータを受信する必要がなくなります。\r\n * 以下の手順を行うコードを書いてください。\r\n *\r\n * 1. 次の 2 つのステートを用意する\r\n * - 1 ページの項目数を保持するステート (`pageSize`, `setPageSize`)\r\n * - 現在のページ番号を保持するステート (`page`, `setPage`)\r\n * 2. API を叩くなどして次の情報を取得する\r\n * - 現在のページに表示する項目データ\r\n * - 全体の総項目数\r\n * 3. ページの総数 (`pageCount`) を計算する\r\n * 4. 1 ページに表示する項目数の選択肢 (`optionPageSizes`) を決める\r\n * 5. 以上のデータを props に渡す\r\n * - `items` — 現在のページに表示する項目データ\r\n * - `pageProps` — `pageSize`, `setPageSize`, `page`, `setPage`, `pageCount`, `optionPageSizes`\r\n *\r\n * 以下の例では、制御用法でクイズのカードリストを表示します。\r\n *\r\n * ```tsx\r\n * const [pageSize, setPageSize] = useState(50); // 1 ページの項目数\r\n * const [page, setPage] = useState(0); // ページ番号\r\n * const skip = page * pageSize;\r\n * const limit = pageSize;\r\n * const [[hitQuizzes, hitCount] = []] = useApi(listQuizzes, [{skip, limit}], {keepPreviousData: true}); // 一部のみを API から取得\r\n *\r\n * const pageCount = hitCount != null ? Math.floor((hitCount - 1) / pageSize) + 1 : 0;\r\n * const optionPageSizes = [50, 100, 200]; // 1 ページの項目数の選択肢\r\n * const pageProps = {\r\n * page,\r\n * pageCount,\r\n * pageSize,\r\n * optionPageSizes,\r\n * setPage,\r\n * setPageSize\r\n * };\r\n *\r\n * return (\r\n * <CardListAuto items={hitQuizzes} pageProps={pageProps}>\r\n * <CardListHeader>\r\n * <CardListHeaderLeft/>\r\n * <CardListHeaderRight>\r\n * <PageSizeSelectAuto/>\r\n * </CardListHeaderRight>\r\n * </CardListHeader>\r\n * <CardListBodyAuto>\r\n * {(quiz) => (\r\n * <Card key={quiz.id}>\r\n * …\r\n * </Card>\r\n * )}\r\n * <CardListLoading/>\r\n * <CardListEmpty/>\r\n * </CardListBodyAuto>\r\n * <CardListFooterAuto>\r\n * <PaginationAuto/>\r\n * </CardListFooterAuto>\r\n * </CardListAuto>\r\n * );\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListAuto: CardListAutoComponent = forwardRef<HTMLDivElement, CardListAutoProps<any>>(({\r\n items,\r\n pageProps,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const [displayedItems, resolvedPageProps] = usePage(items, pageProps);\r\n\r\n const contextValue = useMemo(() => ({\r\n displayedItems,\r\n resolvedPageProps\r\n }), [\r\n displayedItems,\r\n resolvedPageProps\r\n ]);\r\n\r\n return (\r\n <CardList className={className} ref={ref} {...data}>\r\n <PagePropsProvider value={contextValue}>\r\n {children}\r\n </PagePropsProvider>\r\n </CardList>\r\n );\r\n});\r\n\r\nCardListAuto.displayName = \"CardListAuto\";","import {Dispatch, SetStateAction, useMemo, useState} from \"react\";\r\nimport type {PageProps} from \"./cardListAuto\";\r\n\r\n\r\nexport type ResolvedPageProps = {\r\n isLoading: boolean,\r\n isEmpty: boolean,\r\n page: number,\r\n pageCount: number,\r\n pageSize: number,\r\n optionPageSizes: Array<number>,\r\n setPage: Dispatch<SetStateAction<number>>,\r\n setPageSize: Dispatch<SetStateAction<number>>\r\n};\r\n\r\nexport const usePage = <T extends unknown>(\r\n rawItems: ReadonlyArray<T> | undefined,\r\n {page, pageCount, pageSize, optionPageSizes, setPage, setPageSize}: PageProps\r\n): [\r\n ReadonlyArray<T>,\r\n ResolvedPageProps\r\n] => {\r\n const items = useMemo(() => rawItems ?? [], [rawItems]);\r\n\r\n const isPageControlled = pageSize != null && page != null && pageCount != null && setPageSize != null && setPage != null;\r\n\r\n const [innerPageSize, setInnerPageSize] = useState(optionPageSizes[0]);\r\n\r\n const [innerPage, setInnerPage] = useState(0);\r\n const innerPageCount = Math.floor((items.length - 1) / innerPageSize) + 1;\r\n const innerItems = useMemo(() => items.slice(innerPageSize * innerPage, innerPageSize * innerPage + innerPageSize), [items, innerPageSize, innerPage]);\r\n\r\n const displayedItems = isPageControlled ? items : innerItems;\r\n\r\n const actualPageSize = isPageControlled ? pageSize : innerPageSize;\r\n const actualPage = isPageControlled ? page : innerPage;\r\n const actualPageCount = isPageControlled ? pageCount : innerPageCount;\r\n const actualSetPageSize = isPageControlled ? setPageSize : setInnerPageSize;\r\n const actualSetPage = isPageControlled ? setPage : setInnerPage;\r\n\r\n const isLoading = rawItems == null;\r\n const isEmpty = items.length <= 0;\r\n\r\n const resolvedPageProps = useMemo(() => ({\r\n isLoading,\r\n isEmpty,\r\n pageSize: actualPageSize,\r\n page: actualPage,\r\n pageCount: actualPageCount,\r\n optionPageSizes,\r\n setPageSize: actualSetPageSize,\r\n setPage: actualSetPage\r\n }), [\r\n isLoading,\r\n isEmpty,\r\n actualPageSize,\r\n actualPage,\r\n actualPageCount,\r\n optionPageSizes,\r\n actualSetPage,\r\n actualSetPageSize\r\n ]);\r\n\r\n return [\r\n displayedItems,\r\n resolvedPageProps\r\n ];\r\n};","import {ReactElement, ReactNode, useContext} from \"react\";\r\nimport {pagePropsContext} from \"/src/contexts/pageProps/context\";\r\nimport {ResponsiveValue} from \"/src/modules/responsive\";\r\nimport {GenericFunctionComponent} from \"/src/utils/types\";\r\nimport {CardListBody} from \"./cardListBody\";\r\nimport {CardListEmpty} from \"./cardListEmpty\";\r\nimport {CardListLoading} from \"./cardListLoading\";\r\n\r\n\r\ntype CardListBodyAutoProps<T> = {\r\n /**\r\n * 1 行に表示するカードの枚数。\r\n * @defaultValue `1`\r\n */\r\n columnCount?: number | ResponsiveValue<number>,\r\n /** */\r\n className?: string,\r\n /**\r\n * カードのレンダー関数, `CardListEmpty`, `CardListLoading` を 1 つずつ指定してください。\r\n * `CardListEmpty` と `CardListLoading` は省略可能です。\r\n */\r\n children: ((item: any, index: number) => ReactNode) | [(item: any, index: number) => ReactNode, ...Array<ReactElement>]\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\ntype CardListBodyAutoComponent = GenericFunctionComponent<<T>(props: CardListBodyAutoProps<T>) => ReactElement>;\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListBodyAuto: CardListBodyAutoComponent = ({\r\n columnCount = 1,\r\n className,\r\n children\r\n}) => {\r\n const {\r\n displayedItems,\r\n resolvedPageProps: {\r\n isLoading,\r\n isEmpty\r\n }\r\n } = useContext(pagePropsContext);\r\n\r\n const [render, ...otherElements] = Array.isArray(children) ? children : [children];\r\n const emptyElement = otherElements.find((element) => element.type === CardListEmpty);\r\n const loadingElement = otherElements.find((element) => element.type === CardListLoading);\r\n\r\n return (\r\n <CardListBody className={className} columnCount={columnCount}>\r\n {isLoading ? (\r\n loadingElement\r\n ) : isEmpty ? (\r\n emptyElement\r\n ) : (\r\n displayedItems.map((item, index) => render(item, index))\r\n )}\r\n </CardListBody>\r\n );\r\n};\r\n\r\nCardListBodyAuto.displayName = \"CardListBodyAuto\";","import {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {pagePropsContext} from \"/src/contexts/pageProps/context\";\r\nimport {CardListFooter} from \"./cardListFooter\";\r\n\r\n\r\ntype CardListFooterAutoProps = {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardListFooterAuto = forwardRef<HTMLDivElement, CardListFooterAutoProps>(({\r\n className,\r\n children\r\n}, ref) => {\r\n const {\r\n resolvedPageProps: {\r\n isLoading,\r\n isEmpty\r\n }\r\n } = useContext(pagePropsContext);\r\n\r\n return (!isLoading && !isEmpty) ? (\r\n <CardListFooter className={className} ref={ref}>\r\n {children}\r\n </CardListFooter>\r\n ) : null;\r\n});\r\n\r\nCardListFooterAuto.displayName = \"CardListFooterAuto\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ContentHeaderProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n padding-block: ${size(8)};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n background-color: ${color(\"white\")};\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n z-index: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ContentHeader = forwardRef<HTMLDivElement, ContentHeaderProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nContentHeader.displayName = \"ContentHeader\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ContentTitleProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(8)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(\"primary\", 7)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ContentTitle = forwardRef<HTMLDivElement, ContentTitleProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nContentTitle.displayName = \"ContentTitle\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype CountIndicatorProps = CommonProps & {\r\n /**\r\n * 表示する数値。\r\n * `undefined` の場合は「?」が表示されます。\r\n */\r\n count: number | undefined,\r\n /**\r\n * 表示する桁数。\r\n * @defaultValue `3`\r\n */\r\n digitSize?: 2 | 3,\r\n /**\r\n * テキストの左の表示するアイコン。\r\n */\r\n iconNode: ReactNode,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-digit=\"3\"] {\r\n --qlib-inline-size: ${size(11)};\r\n --qlib-transform-scale: 0.8;\r\n }\r\n &[data-qlib-digit=\"2\"] {\r\n --qlib-inline-size: ${size(8.5)};\r\n --qlib-transform-scale: 0.7;\r\n }\r\n inline-size: var(--qlib-inline-size);\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(4)};\r\n border-radius: ${size(1)};\r\n border: solid 1px ${color(\"gray\", 1)};\r\n display: flex;\r\n align-items: center;\r\n `,\r\n icon: css`\r\n font-size: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n count: css`\r\n font-size: ${size(4)};\r\n color: ${color(\"gray\", 5)};\r\n display: flex;\r\n justify-content: flex-end;\r\n white-space: nowrap;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n &[data-qlib-max=\"true\"] {\r\n transform: scale(var(--qlib-transform-scale), 1);\r\n transform-origin: right center;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CountIndicator = forwardRef<HTMLDivElement, CountIndicatorProps>(({\r\n count,\r\n digitSize = 3,\r\n iconNode,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {transNumber} = useQlibTranslation(\"countBadge\");\r\n\r\n const maxCount = 10 ** digitSize;\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} data-qlib-digit={digitSize} {...data}>\r\n <span css={styles.icon}>\r\n {iconNode}\r\n </span>\r\n <span css={styles.count} data-qlib-max={count != null && count >= maxCount}>\r\n {count != null ? count < maxCount ? transNumber(count) : transNumber(maxCount - 1) + \"+\" : \"?\"}\r\n </span>\r\n </div>\r\n );\r\n});\r\n\r\nCountIndicator.displayName = \"CountIndicator\";","import {createContext} from \"react\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\n\r\n\r\ntype ContextValue = {\r\n scheme: LeveledColorScheme,\r\n onClose?: () => unknown\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n scheme: \"primary\"\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {FormEvent, FunctionComponent, ReactNode, useCallback, useMemo} from \"react\";\r\nimport {Modal} from \"/src/components/atoms/modal\";\r\nimport {alpha, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {useSmartphone} from \"/src/modules/responsive\";\r\nimport {Provider} from \"./context\";\r\n\r\n\r\ntype DialogProps = {\r\n /** */\r\n isOpen?: boolean,\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * ダイアログの大きさ。\r\n * 内部にフォームを設置するような複雑なダイアログでは `\"normal\"` にし、アラートのような単純なダイアログでは `\"small\"` にしてください。\r\n * @defaultValue `\"normal\"`\r\n */\r\n size?: \"small\" | \"normal\",\r\n /**\r\n * ダイアログのラベル。\r\n * アクセシビリティ向上のため、可能な限り指定してください。\r\n */\r\n label?: string,\r\n /**\r\n * ダイアログを `<form>` 要素で描画するかどうか。\r\n * @defaultValue `true`\r\n */\r\n isForm?: boolean,\r\n /** */\r\n onClose?: () => unknown,\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nconst styles = {\r\n overlay: css`\r\n padding-block: ${size(6)};\r\n padding-inline: ${size(8)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n z-index: 1000;\r\n `,\r\n overlaySmartphone: css`\r\n padding-block: ${size(6)};\r\n padding-inline: ${size(6)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n z-index: 1000;\r\n `,\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-max-width: ${size(100)};\r\n }\r\n &[data-qlib-size=\"normal\"] {\r\n --qlib-max-width: ${size(160)};\r\n }\r\n &[data-qlib-smartphone=\"false\"] {\r\n --qlib-dialog-padding-inline: ${size(8)};\r\n }\r\n &[data-qlib-smartphone=\"true\"] {\r\n --qlib-dialog-padding-inline: ${size(6)};\r\n }\r\n max-width: var(--qlib-max-width);\r\n width: 100%;\r\n padding-block: ${size(6)};\r\n padding-inline: var(--qlib-dialog-padding-inline);\r\n border-radius: ${size(2)};\r\n background-color: ${color(\"background\")};\r\n box-shadow: ${boxShadow(alpha(color(\"black\"), 0.2), 2)};\r\n transform: translate(${size(0)}, ${size(2)});\r\n overflow: hidden;\r\n position: relative;\r\n transition: transform 0.2s ease;\r\n &.ReactModal__Content--after-open {\r\n transform: translate(${size(0)}, ${size(0)});\r\n }\r\n &.ReactModal__Content--before-close {\r\n transform: translate(${size(0)}, ${size(2)});\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### ダイアログ\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Dialog`**\r\n * - [`DialogCloseButton`](/docs/modules-Dialog-DialogCloseButton--ドキュメント) (任意)\r\n * - [`DialogHeader`](/docs/modules-Dialog-DialogHeader--ドキュメント) (任意)\r\n * - [`DialogTitle`](/docs/modules-Dialog-DialogTitle--ドキュメント) (任意)\r\n * - [`DialogBody`](/docs/modules-Dialog-DialogBody--ドキュメント)\r\n * - [`DialogFooter`](/docs/modules-Dialog-DialogFooter--ドキュメント) (任意)\r\n * - [`DialogFooterButton`](/docs/modules-Dialog-DialogFooterButton--ドキュメント) (2 個まで任意)\r\n *\r\n * #### 使い方\r\n * 非制御と制御の 2 種類の使い方があります。\r\n *\r\n * `isOpen` prop を指定しない場合、非制御用法になります。\r\n * 非制御用法では、ダイアログを開いたり閉じたりする処理を `Dialog` コンポーネントに任せます。\r\n * このコンポーネントを配置した瞬間にダイアログが表示され、ダイアログ外の領域や閉じるボタンがクリックされると閉じます。\r\n *\r\n * `isOpen` prop を指定した場合、制御用法になります。\r\n * 制御用法では、ダイアログを表示するかどうかを `isOpen` prop を通してユーザー側で指定する必要があります。\r\n *\r\n * #### `useDialog` フック\r\n * `useDialog` フックを利用することで、簡単にダイアログを表示することもできます。\r\n * 以下のように、`useDialog` フックが返す関数に対して、`Dialog` 要素を返す関数を引数として渡してください。\r\n * これに渡す関数では、ダイアログを閉じるための `close` 関数を引数から受け取ることができるので、この `close` 関数をボタンのコールバックなどで呼ぶことで手動でダイアログを閉じることができます。\r\n *\r\n * ```tsx\r\n * const openDialog = useDialog();\r\n * openDialog((close) => (\r\n * <Dialog>\r\n * <DialogBody>\r\n * ダイアログの中身\r\n * </DialogBody>\r\n * <DialogFooter>\r\n * <DialogButton onClick={close}>閉じる</DialogButton>\r\n * </DialogFooter>\r\n * </Dialog>\r\n * ));\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Dialog: FunctionComponent<DialogProps> = ({\r\n label,\r\n scheme = \"primary\",\r\n size = \"normal\",\r\n isOpen,\r\n isForm = true,\r\n onClose,\r\n children\r\n}) => {\r\n const TagName = isForm ? \"form\" : \"div\" as any;\r\n\r\n const isSmartphone = useSmartphone();\r\n\r\n const contextValue = useMemo(() => ({\r\n scheme,\r\n onClose\r\n }), [\r\n scheme,\r\n onClose\r\n ]);\r\n\r\n const handleSubmit = useCallback((event: FormEvent<HTMLFormElement>): void => {\r\n event.preventDefault();\r\n }, []);\r\n\r\n return (\r\n <Modal css={isSmartphone ? styles.overlaySmartphone : styles.overlay} isOpen={isOpen} label={label} onClose={onClose}>\r\n <TagName css={styles.root} onSubmit={isForm ? handleSubmit : undefined} data-qlib-size={size} data-qlib-smartphone={isSmartphone}>\r\n <Provider value={contextValue}>\r\n {children}\r\n </Provider>\r\n </TagName>\r\n </Modal>\r\n );\r\n};\r\n\r\nDialog.displayName = \"Dialog\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DialogBodyProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogBody = forwardRef<HTMLElement, DialogBodyProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <section css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </section>\r\n );\r\n});\r\n\r\nDialogBody.displayName = \"DialogBody\";","import {css} from \"@emotion/react\";\r\nimport {MouseEvent, ReactNode, forwardRef, useContext} from \"react\";\r\nimport {Button} from \"/src/components/atoms/button\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DialogButtonProps = CommonProps & {\r\n /**\r\n * 見た目のバリアント。\r\n * そのダイアログに関するメインの動作を行うボタンには `\"submit\"` を指定し、それ以外のキャンセルボタンなどには `\"cancel\"` を指定してください。\r\n * @defaultValue `\"submit\"`\r\n */\r\n variant?: \"submit\" | \"cancel\",\r\n /**\r\n * 無効にするかどうか。\r\n *\r\n * `onClick` に文字列値が指定されていてリンクとして表示される際は、これは無視されます。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * ローディング中かどうか。\r\n * これが `true` の間は、ボタンがローディング表示され無効になります。\r\n * @defaultValue `false`\r\n */\r\n isLoading?: boolean,\r\n /**\r\n * クリックされたときに実行する関数。\r\n */\r\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void,\r\n /**\r\n * ボタンの内部に表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-dialog-variant=\"submit\"] {\r\n --qlib-order: 2;\r\n }\r\n &[data-qlib-dialog-variant=\"cancel\"] {\r\n --qlib-order: 1;\r\n }\r\n inline-size: ${size(32)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n order: var(--qlib-order);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogButton = forwardRef<HTMLButtonElement, DialogButtonProps>(({\r\n variant = \"submit\",\r\n isDisabled,\r\n isLoading,\r\n onClick,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {scheme} = useContext(context);\r\n\r\n return (\r\n <Button\r\n css={styles.root}\r\n className={className}\r\n scheme={variant === \"submit\" ? scheme : \"gray\"}\r\n variant={variant === \"submit\" ? \"solid\" : \"light\"}\r\n type={variant === \"submit\" ? \"submit\" : \"button\"}\r\n isDisabled={isDisabled}\r\n isLoading={isLoading}\r\n onClick={onClick as never}\r\n ref={ref}\r\n data-qlib-dialog-variant={variant}\r\n {...data}\r\n >\r\n {children}\r\n </Button>\r\n );\r\n});\r\n\r\nDialogButton.displayName = \"DialogButton\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faTimes} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {forwardRef, useContext} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DialogCloseButtonProps = CommonProps & {\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inset-block-start: ${size(4)};\r\n inset-inline-end: ${size(4)};\r\n block-size: ${size(7)};\r\n inline-size: ${size(7)};\r\n font-size: ${size(6)};\r\n color: ${color(\"gray\", 5)};\r\n border-radius: ${size(1)};\r\n transition: color 0.2s ease;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n cursor: pointer;\r\n &:hover {\r\n color: ${color(\"gray\", 4)};\r\n }\r\n &:focus-visible {\r\n outline: solid ${borderWidth(2)} ${alpha(color(\"primary\", 5), 0.6)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogCloseButton = forwardRef<HTMLButtonElement, DialogCloseButtonProps>(({\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {trans} = useQlibTranslation(\"dialogCloseButton\");\r\n\r\n const {onClose} = useContext(context);\r\n\r\n return (\r\n <button css={styles.root} className={className} type=\"button\" onClick={onClose} ref={ref} aria-label={trans(\"close\")} {...data}>\r\n <FontAwesomeIcon icon={faTimes}/>\r\n </button>\r\n );\r\n});\r\n\r\nDialogCloseButton.displayName = \"DialogCloseButton\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DialogFooterProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block-start: ${size(6)};\r\n margin-block-end: ${size(-6)};\r\n margin-inline: calc(-1 * var(--qlib-dialog-padding-inline));\r\n padding-block: ${size(4)};\r\n padding-inline: ${size(8)};\r\n column-gap: ${size(4)};\r\n background-color: ${color(\"white\")};\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogFooter = forwardRef<HTMLDivElement, DialogFooterProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDialogFooter.displayName = \"DialogFooter\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DialogHeaderProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block-end: ${size(6)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogHeader = forwardRef<HTMLDivElement, DialogHeaderProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDialogHeader.displayName = \"DialogHeader\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DialogTitleProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h3\"`\r\n */\r\n as?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\",\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n font-size: ${size(6)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n letter-spacing: 0.1em;\r\n text-indent: 0.1em;\r\n color: ${color(scheme, 7)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogTitle = forwardRef<HTMLHeadingElement, DialogTitleProps>(({\r\n as = \"h3\",\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = as;\r\n\r\n const {scheme} = useContext(context);\r\n\r\n return (\r\n <TagName css={styles.root(scheme)} className={className} ref={ref} {...data}>\r\n {children}\r\n </TagName>\r\n );\r\n});\r\n\r\nDialogTitle.displayName = \"DialogTitle\";","import {createContext} from \"react\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\n\r\n\r\ntype ContextValue = {\r\n scheme: LeveledColorScheme,\r\n onClose?: () => unknown\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n scheme: \"primary\"\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {FormEvent, FunctionComponent, ReactNode, useCallback, useMemo} from \"react\";\r\nimport {Modal} from \"/src/components/atoms/modal\";\r\nimport {alpha, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useSmartphone} from \"/src/modules/responsive\";\r\nimport {Provider} from \"./context\";\r\n\r\n\r\ntype DrawerProps = CommonProps & {\r\n /** */\r\n isOpen: boolean,\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * ドロワーのラベル。\r\n * アクセシビリティ向上のため、可能な限り指定してください。\r\n */\r\n label?: string,\r\n /**\r\n * ドロワーを `<form>` 要素で描画するかどうか。\r\n * @defaultValue `true`\r\n */\r\n isForm?: boolean,\r\n /** */\r\n onClose?: () => unknown,\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nconst styles = {\r\n overlay: css`\r\n display: flex;\r\n align-items: center;\r\n justify-content: end;\r\n box-sizing: border-box;\r\n z-index: 1000;\r\n `,\r\n root: css`\r\n background-color: ${color(\"background\")};\r\n box-shadow: ${boxShadow(alpha(color(\"black\"), 0.2), 2)};\r\n position: relative;\r\n box-sizing: border-box;\r\n transition: transform 0.2s ease;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n `,\r\n rootDesktop: css`\r\n --qlib-padding-inline: ${size(10)};\r\n width: 90%;\r\n height: 100%;\r\n max-width: ${size(260)}; // 240 + 10 * 2 (両側のパディング分を加える)\r\n padding-block: ${size(8)};\r\n border-start-start-radius: ${size(2)};\r\n border-end-start-radius: ${size(2)};\r\n transform: translate(100%, 0%);\r\n &.ReactModal__Content--after-open {\r\n transform: translate(0%, 0%);\r\n }\r\n &.ReactModal__Content--before-close {\r\n transform: translate(100%, 0%);\r\n }\r\n `,\r\n rootSmartphone: css`\r\n --qlib-padding-inline: ${size(6)};\r\n width: 100%;\r\n height: 95%;\r\n padding-block: ${size(8)};\r\n border-start-start-radius: ${size(2)};\r\n border-start-end-radius: ${size(2)};\r\n align-self: flex-end;\r\n transform: translate(0%, 100%);\r\n &.ReactModal__Content--after-open {\r\n transform: translate(0%, 0%);\r\n }\r\n &.ReactModal__Content--before-close {\r\n transform: translate(0%, 100%);\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Drawer: FunctionComponent<DrawerProps> = ({\r\n label,\r\n scheme = \"primary\",\r\n isOpen,\r\n isForm = true,\r\n onClose,\r\n children\r\n}) => {\r\n const TagName = isForm ? \"form\" : \"div\" as any;\r\n\r\n const isSmartphone = useSmartphone();\r\n\r\n const contextValue = useMemo(() => ({\r\n scheme,\r\n onClose\r\n }), [\r\n scheme,\r\n onClose\r\n ]);\r\n\r\n const handleSubmit = useCallback((event: FormEvent<HTMLFormElement>): void => {\r\n event.preventDefault();\r\n }, []);\r\n\r\n return (\r\n <Modal css={styles.overlay} isOpen={isOpen} label={label} onClose={onClose}>\r\n <TagName css={[styles.root, isSmartphone ? styles.rootSmartphone : styles.rootDesktop]} onSubmit={isForm ? handleSubmit : undefined}>\r\n <Provider value={contextValue}>\r\n {children}\r\n </Provider>\r\n </TagName>\r\n </Modal>\r\n );\r\n};\r\n\r\nDrawer.displayName = \"Drawer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerBodyProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-inline: var(--qlib-padding-inline);\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n overflow-y: auto;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerBody = forwardRef<HTMLDivElement, DrawerBodyProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDrawerBody.displayName = \"DrawerBody\";","import {css} from \"@emotion/react\";\r\nimport {MouseEvent, ReactNode, forwardRef, useContext} from \"react\";\r\nimport {Button} from \"/src/components/atoms/button\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DrawerButtonProps = CommonProps & {\r\n /**\r\n * 見た目のバリアント。\r\n * そのダイアログに関するメインの動作を行うボタンには `\"submit\"` を指定し、それ以外のキャンセルボタンなどには `\"cancel\"` を指定してください。\r\n * @defaultValue `\"submit\"`\r\n */\r\n variant?: \"submit\" | \"cancel\",\r\n /**\r\n * 無効にするかどうか。\r\n *\r\n * `onClick` に文字列値が指定されていてリンクとして表示される際は、これは無視されます。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\r\n /**\r\n * ローディング中かどうか。\r\n * これが `true` の間は、ボタンがローディング表示され無効になります。\r\n * @defaultValue `false`\r\n */\r\n isLoading?: boolean,\r\n /**\r\n * クリックされたときに実行する関数。\r\n * URL 文字列を指定すると、指定された URL に遷移する `<a>` 要素として表示されます。\r\n * 関数を指定すると、その関数を実行する `<button>` 要素として表示されます。\r\n */\r\n onClick?: string | ((event: MouseEvent<HTMLButtonElement>) => void),\r\n /**\r\n * ボタンの内部に表示する内容。\r\n */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-dialog-variant=\"submit\"] {\r\n --qlib-order: 2;\r\n }\r\n &[data-qlib-dialog-variant=\"cancel\"] {\r\n --qlib-order: 1;\r\n }\r\n inline-size: ${size(40)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n order: var(--qlib-order);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerButton = forwardRef<HTMLButtonElement, DrawerButtonProps>(({\r\n variant = \"submit\",\r\n isDisabled,\r\n isLoading,\r\n onClick,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {scheme} = useContext(context);\r\n\r\n return (\r\n <Button\r\n css={styles.root}\r\n className={className}\r\n scheme={variant === \"submit\" ? scheme : \"gray\"}\r\n variant={variant === \"submit\" ? \"solid\" : \"light\"}\r\n size=\"large\"\r\n type={variant === \"submit\" ? \"submit\" : \"button\"}\r\n isDisabled={isDisabled}\r\n isLoading={isLoading}\r\n onClick={onClick as never}\r\n ref={ref}\r\n data-qlib-dialog-variant={variant}\r\n {...data}\r\n >\r\n {children}\r\n </Button>\r\n );\r\n});\r\n\r\nDrawerButton.displayName = \"DrawerButton\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useSmartphone} from \"/src/modules/responsive\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DrawerCaptionProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n font-size: ${size(4)};\r\n letter-spacing: 0.05em;\r\n color: ${color(scheme, 7)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerCaption = forwardRef<HTMLDivElement, DrawerCaptionProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const isSmartphone = useSmartphone();\r\n\r\n const {scheme} = useContext(context);\r\n\r\n return !isSmartphone && (\r\n <div css={styles.root(scheme)} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDrawerCaption.displayName = \"DrawerCaption\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerFooterProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block-start: ${size(6)};\r\n margin-block-end: ${size(-8)};\r\n padding-block: ${size(4)};\r\n padding-inline: var(--qlib-padding-inline);\r\n column-gap: ${size(6)};\r\n background-color: ${color(\"white\")};\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerFooter = forwardRef<HTMLDivElement, DrawerFooterProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDrawerFooter.displayName = \"DrawerFooter\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerHeaderProps = CommonProps & {\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block-end: ${size(8)};\r\n padding-inline: var(--qlib-padding-inline);\r\n row-gap: ${size(2)};\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerHeader = forwardRef<HTMLDivElement, DrawerHeaderProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nDrawerHeader.displayName = \"DrawerHeader\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useSmartphone} from \"/src/modules/responsive\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype DrawerTitleProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h3\"`\r\n */\r\n as?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\",\r\n /** */\r\n children: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n font-size: ${size(8)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n letter-spacing: 0.1em;\r\n color: ${color(scheme, 7)};\r\n &[data-qlib-smartphone=\"true\"] {\r\n font-size: ${size(8)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerTitle = forwardRef<HTMLHeadingElement, DrawerTitleProps>(({\r\n as = \"h3\",\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = as;\r\n\r\n const isSmartphone = useSmartphone();\r\n\r\n const {scheme} = useContext(context);\r\n\r\n return (\r\n <TagName css={styles.root(scheme)} className={className} ref={ref} data-qlib-smartphone={isSmartphone} {...data}>\r\n {children}\r\n </TagName>\r\n );\r\n});\r\n\r\nDrawerTitle.displayName = \"DrawerTitle\";","import {createContext} from \"react\";\r\n\r\n\r\ntype FootnoteListContextValue = {\r\n size: \"small\" | \"medium\"\r\n};\r\n\r\nexport const footnoteListContext = createContext<FootnoteListContextValue | undefined>(undefined);\r\nexport const FootnoteListProvider = footnoteListContext.Provider;","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {SingleLineText} from \"/src/components/atoms/singleLineText\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {footnoteListContext} from \"/src/contexts/footenoteList/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype FootnoteProps = CommonProps & {\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"small\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-font-size: ${size(3)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)}\r\n }\r\n font-size: var(--qlib-font-size);\r\n color: ${color(\"gray\", 5)};\r\n `,\r\n icon: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n `\r\n};\r\n\r\n/**\r\n * ### 補足データ\r\n *\r\n * カードなどで補足的なデータを表示するのに利用できます。\r\n *\r\n * 基本的に、補足データは複数個まとめて表示することが多いです。\r\n * その場合は、[`FootnoteList`](/docs/modules-FootnoteList-FootnoteList--ドキュメント) と [`FootnoteListRow`](/docs/modules-FootnoteList-FootnoteListRow--ドキュメント) を利用してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Footnote = forwardRef<HTMLElement, FootnoteProps>(({\r\n size = \"small\",\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const context = useContext(footnoteListContext);\r\n\r\n return (\r\n <SingleLineText\r\n css={styles.root}\r\n className={className}\r\n ref={ref}\r\n data-qlib-size={context?.size ?? size}\r\n {...data}>\r\n {children}\r\n </SingleLineText>\r\n );\r\n});\r\n\r\nFootnote.displayName = \"Footnote\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype FootnoteIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FootnoteIconContainer = forwardRef<HTMLSpanElement, FootnoteIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nFootnoteIconContainer.displayName = \"FootnoteIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {FootnoteListProvider} from \"/src/contexts/footenoteList/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype FootnoteListProps = CommonProps & {\r\n /**\r\n * サイズ。\r\n * @defaultValue `\"small\"`\r\n */\r\n size?: \"small\" | \"medium\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-row-gap: ${size(1.5)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-row-gap: ${size(2)}\r\n }\r\n row-gap: var(--qlib-row-gap);\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * ### 補足データリスト\r\n *\r\n * 子要素には、[`FootnoteRow`](/docs/modules-FootnoteList-FootnoteRow--ドキュメント) を複数個を配置してください。\r\n * さらに各 [`FootnoteRow`](/docs/modules-FootnoteList-FootnoteRow--ドキュメント) の子要素に、[`Footnote`](/docs/modules-Footnote-Footnote--ドキュメント) を複数個配置してください。\r\n * 以下のような構造になります。\r\n *\r\n * ```tsx\r\n * <FootnoteList>\r\n * <FootnoteRow>\r\n * <Footnote>データ1-1</Footnote>\r\n * <Footnote>データ1-2</Footnote>\r\n * </FootnoteRow>\r\n * <FootnoteRow>\r\n * <Footnote>データ2-1</Footnote>\r\n * <Footnote>データ2-2</Footnote>\r\n * </FootnoteRow>\r\n * </FootnoteList>\r\n * ```\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FootnoteList = forwardRef<HTMLDivElement, FootnoteListProps>(({\r\n size = \"small\",\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const footnoteListContextValue = useMemo(() => ({\r\n size\r\n }), [\r\n size\r\n ]);\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} data-qlib-size={size} {...data}>\r\n <FootnoteListProvider value={footnoteListContextValue}>\r\n {children}\r\n </FootnoteListProvider>\r\n </div>\r\n );\r\n});\r\n\r\nFootnoteList.displayName = \"FootnoteList\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {footnoteListContext} from \"/src/contexts/footenoteList/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype FootnoteListRowProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n &[data-qlib-size=\"small\"] {\r\n --qlib-column-gap: ${size(3)};\r\n }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-column-gap: ${size(4)}\r\n }\r\n column-gap: var(--qlib-column-gap);\r\n display: flex;\r\n `\r\n};\r\n\r\n/**\r\n * ### 補足データリストの行\r\n *\r\n * このコンポーネントは [`FootnoteList`](/docs/modules-FootnoteList-FootnoteList--ドキュメント) の子要素に配置することを想定しているため、単独では使わないでください。\r\n * 詳細は [`FootnoteList`](/docs/modules-FootnoteList-FootnoteList--ドキュメント) のドキュメントを参照してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FootnoteListRow = forwardRef<HTMLDivElement, FootnoteListRowProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const context = useContext(footnoteListContext);\r\n\r\n return (\r\n <div\r\n css={styles.root}\r\n className={className}\r\n ref={ref}\r\n data-qlib-size={context?.size ?? \"small\"}\r\n {...data}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nFootnoteListRow.displayName = \"FootnoteListRow\";","import {createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n orientation: \"horizontal\" | \"vertical\"\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n orientation: \"horizontal\"\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useMemo} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {Provider} from \"./context\";\r\n\r\n\r\ntype FractionViewProps = CommonProps & {\r\n /** */\r\n orientation: \"horizontal\" | \"vertical\",\r\n /** */\r\n className?: string,\r\n /** */\r\n children: ReactNode\r\n};\r\n\r\nconst styles = {\r\n rootHorizontal: css`\r\n display: inline-flex;\r\n align-items: baseline;\r\n `,\r\n rootVertical: css`\r\n display: inline-flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * ### 分数\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`FractionView`**\r\n * - [`FractionViewNumerator`](/docs/modules-FractionView-FractionViewNumerator--ドキュメント)\r\n * - [`FractionViewDenominator`](/docs/modules-FractionView-FractionViewDenominator--ドキュメント)\r\n *\r\n * #### スタイリングに関する注意点\r\n * 分母は分子の 80% の大きさで描画されます。\r\n * しかし、全体のテキストサイズが大きい場合などでは分母が大きく見えすぎることがあるため、適宜 `FractionViewDenominator` に CSS を適用するなどして調整してください。\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FractionView = forwardRef<HTMLSpanElement, FractionViewProps>(({\r\n orientation,\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const contextValue = useMemo(() => ({\r\n orientation\r\n }), [\r\n orientation\r\n ]);\r\n\r\n return (\r\n <span css={orientation === \"horizontal\" ? styles.rootHorizontal : styles.rootVertical} className={className} ref={ref} {...data}>\r\n <Provider value={contextValue}>\r\n {children}\r\n </Provider>\r\n </span>\r\n );\r\n});","import {css} from \"@emotion/react\";\r\nimport {forwardRef, useContext} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype FractionViewDenominatorProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children: string | number\r\n};\r\n\r\nconst styles = {\r\n rootHorizontal: css`\r\n font-size: 80%;\r\n ::before {\r\n margin-inline: 0.25em;\r\n content: \"/\";\r\n }\r\n `,\r\n rootVertical: css`\r\n padding-inline: 0.2em;\r\n font-size: 80%;\r\n text-align: center;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FractionViewDenominator = forwardRef<HTMLSpanElement, FractionViewDenominatorProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {transNumber} = useQlibTranslation(\"fractionView\");\r\n\r\n const {orientation} = useContext(context);\r\n\r\n return (\r\n <span css={orientation === \"horizontal\" ? styles.rootHorizontal : styles.rootVertical} className={className} ref={ref} {...data}>\r\n {typeof children === \"number\" ? transNumber(children) : children}\r\n </span>\r\n );\r\n});\r\n\r\nFractionViewDenominator.displayName = \"FractionViewDenominator\";","import {css} from \"@emotion/react\";\r\nimport {forwardRef, useContext} from \"react\";\r\nimport {borderWidth} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype FractionViewNumeratorProps = CommonProps & {\r\n /** */\r\n className?: string,\r\n /** */\r\n children: string | number\r\n};\r\n\r\nconst styles = {\r\n rootHorizontal: css`\r\n `,\r\n rootVertical: css`\r\n padding-inline: 0.2em;\r\n padding-block-end: 0.1em;\r\n margin-block-end: 0.2em;\r\n box-sizing: border-box;\r\n text-align: center;\r\n border-bottom: solid ${borderWidth(1)} currentcolor;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const FractionViewNumerator = forwardRef<HTMLSpanElement, FractionViewNumeratorProps>(({\r\n className,\r\n children,\r\n ...data\r\n}, ref) => {\r\n const {transNumber} = useQlibTranslation(\"fractionView\");\r\n\r\n const {orientation} = useContext(context);\r\n\r\n return (\r\n <span css={orientation === \"horizontal\" ? styles.rootHorizontal : styles.rootVertical} className={className} ref={ref} {...data}>\r\n {typeof children === \"number\" ? transNumber(children) : children}\r\n </span>\r\n );\r\n});\r\n\r\nFractionViewNumerator.displayName = \"FractionViewNumerator\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useSmartphone} from \"/src/modules/responsive\";\r\n\r\n\r\ntype HeaderProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n block-size: ${size(16)};\r\n padding-inline: ${size(10)};\r\n box-shadow: ${boxShadow(alpha(color(\"gray\", 5), 0.2), 0.5)};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n background-color: ${color(\"deepBackground\")};\r\n box-sizing: border-box;\r\n display: flex;\r\n justify-content: space-between;\r\n position: relative;\r\n z-index: 1;\r\n &[data-smartphone=\"true\"] {\r\n padding-inline: ${size(6)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Header = forwardRef<HTMLElement, HeaderProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const isSmartphone = useSmartphone();\r\n\r\n return (\r\n <header css={styles.root} className={className} ref={ref} data-smartphone={isSmartphone} {...data}>\r\n {children}\r\n </header>\r\n );\r\n});\r\n\r\nHeader.displayName = \"Sidebar\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype HeaderLeftProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n align-self: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const HeaderLeft = forwardRef<HTMLHeadingElement, HeaderLeftProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <h1 css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </h1>\r\n );\r\n});\r\n\r\nHeaderLeft.displayName = \"HeaderLeft\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype HeaderMenuProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(4)};\r\n display: flex;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const HeaderMenu = forwardRef<HTMLDivElement, HeaderMenuProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nHeaderMenu.displayName = \"HeaderMenu\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype HeaderMenuItemProps = CommonProps & {\r\n /** */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n href?: string,\r\n /** */\r\n isActive?: boolean,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n --qlib-highlight-color: transparent;\r\n color: ${color(\"gray\", 5)};\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n &:hover,\r\n &:focus {\r\n --qlib-highlight-color: ${color(\"gray\", 5)};\r\n }\r\n &[data-active=\"true\"] {\r\n --qlib-highlight-color: ${color(scheme, 5)};\r\n color: ${color(\"primary\", 5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n }\r\n &::before {\r\n inset-inline: ${size(0)};\r\n inset-block-end: ${size(0)};\r\n block-size: ${borderWidth(4)};\r\n background-color: var(--qlib-highlight-color);\r\n transition: background-color 0.2s ease;\r\n position: absolute;\r\n content: \"\";\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const HeaderMenuItem = forwardRef<HTMLAnchorElement, HeaderMenuItemProps>(({\r\n scheme = \"primary\",\r\n href,\r\n isActive = false,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n\r\n return (\r\n <a css={styles.root(scheme)} href={href} ref={ref} data-active={isActive} {...data}>\r\n {children}\r\n </a>\r\n );\r\n});\r\n\r\nHeaderMenuItem.displayName = \"HeaderMenuItem\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype HeaderMenuItemIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n color: var(--qlib-icon-color);\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const HeaderMenuItemIconContainer = forwardRef<HTMLSpanElement, HeaderMenuItemIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nHeaderMenuItemIconContainer.displayName = \"HeaderMenuItemIconContainer\";","import {Dispatch, HTMLProps, MutableRefObject, SetStateAction, createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n setOpen: Dispatch<SetStateAction<boolean>>,\r\n listRef: MutableRefObject<Array<HTMLElement | null>>,\r\n activeIndex: number | null,\r\n getItemProps: (userProps?: HTMLProps<HTMLElement>) => Record<string, unknown>\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n setOpen: () => null,\r\n listRef: {current: []},\r\n activeIndex: null,\r\n getItemProps: () => ({})\r\n});\r\nexport const Provider = context.Provider;","import {css} from \"@emotion/react\";\r\nimport {useMergeRefs} from \"@floating-ui/react\";\r\nimport {MouseEvent, ReactNode, forwardRef, useCallback, useContext} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {context} from \"./context\";\r\n\r\n\r\ntype MenuItemProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * `null` を指定した場合は、通常のテキスト色で表示します。\r\n * @defaultValue `null`\r\n */\r\n scheme?: LeveledColorScheme | null,\r\n /** */\r\n onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme | null) => css`\r\n --qlib-icon-color: ${scheme != null ? color(scheme, 5) : color(\"gray\", 5)};\r\n padding-block: ${size(2)};\r\n padding-inline: ${size(2)};\r\n color: ${scheme != null ? color(scheme, 5) : \"inherit\"};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n transition: background-color 0.2s ease;\r\n &:hover,\r\n &:focus {\r\n background-color: ${color(scheme ?? \"primary\", 0)};\r\n }\r\n `,\r\n icon: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n color: var(--qlib-icon-color);\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(({\r\n scheme = null,\r\n onClick,\r\n children,\r\n className,\r\n ...otherProps\r\n}, ref) => {\r\n const {index, ...data} = otherProps as any; // 内部利用 props\r\n\r\n const {setOpen, listRef, activeIndex, getItemProps} = useContext(context);\r\n\r\n const mergedRef = useMergeRefs<HTMLButtonElement>([ref, (element) => listRef.current[index] = element]);\r\n\r\n const handleClick = useCallback((event: MouseEvent<HTMLButtonElement>) => {\r\n setOpen(false);\r\n onClick?.(event);\r\n }, [setOpen, onClick]);\r\n\r\n return (\r\n <button\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={mergedRef}\r\n {...getItemProps({\r\n tabIndex: activeIndex === index ? 0 : -1,\r\n onClick: handleClick\r\n })}\r\n {...data}\r\n >\r\n {children}\r\n </button>\r\n );\r\n});\r\n\r\nMenuItem.displayName = \"MenuItem\";","import {css} from \"@emotion/react\";\r\nimport {FloatingContext, FloatingFocusManager, FloatingPortal} from \"@floating-ui/react\";\r\nimport {CSSProperties, HTMLAttributes, ReactNode, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype MenuListProps = HTMLAttributes<HTMLDivElement> & {\r\n /** */\r\n isOpen: boolean,\r\n /** */\r\n isMounted: boolean,\r\n /** */\r\n status: \"unmounted\" | \"initial\" | \"open\" | \"close\",\r\n /** */\r\n context: FloatingContext,\r\n /** */\r\n style?: CSSProperties,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: ${size(48)};\r\n max-block-size: ${size(60)};\r\n border-radius: ${size(1)};\r\n background-color: ${color(\"white\")};\r\n border: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n box-shadow: ${boxShadow(alpha(color(\"gray\", 5), 0.2), 1)};\r\n transition: opacity 0.2s ease;\r\n display: flex;\r\n flex-direction: column;\r\n opacity: 0;\r\n z-index: 3000;\r\n overflow-y: auto;\r\n &[data-qlib-status=\"open\"] {\r\n opacity: 1;\r\n }\r\n `,\r\n inner: css`\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const MenuList = forwardRef<HTMLDivElement, MenuListProps>(({\r\n isOpen,\r\n isMounted,\r\n status,\r\n context,\r\n style,\r\n className,\r\n children,\r\n ...otherProps\r\n}, ref) => {\r\n return isMounted && (\r\n <FloatingPortal>\r\n <FloatingFocusManager context={context}>\r\n <div css={styles.root} className={className} style={style} ref={ref} data-qlib-status={status} {...otherProps}>\r\n <div css={styles.inner}>\r\n {children}\r\n </div>\r\n </div>\r\n </FloatingFocusManager>\r\n </FloatingPortal>\r\n );\r\n});\r\n","import {Placement, offset, useClick, useDismiss, useFloating, useInteractions, useListNavigation, useRole, useTransitionStatus} from \"@floating-ui/react\";\r\nimport {Children, FunctionComponent, ReactElement, ReactNode, cloneElement, useMemo, useRef, useState} from \"react\";\r\nimport {isElement} from \"react-is\";\r\nimport {Provider} from \"./context\";\r\nimport {MenuItem} from \"./menuItem\";\r\nimport {MenuList} from \"./menuList\";\r\n\r\n\r\ntype MenuProps = {\r\n /**\r\n * トリガーとなる要素。\r\n * ここに要素を指定すると、それがクリックされたときにメニューが表示されるようになります。\r\n *\r\n * 正しく動作させるために、ここに指定する要素は以下の props を受け取れるものにしてください。\r\n *\r\n * - `ref`\r\n * - `id`\r\n * - `onClick`\r\n * - `onFocus`\r\n * - `onKeyDown`\r\n * - `onKeyUp`\r\n * - `onMouseDown`\r\n * - `onPointerDown`\r\n * - 各種 ARIA 属性\r\n *\r\n * 特に以下のコンポーネントであれば正しく動作します。\r\n *\r\n * - [`Button`](/?path=/docs/atoms-Button-Button--ドキュメント)\r\n * - [`IconButton`](/?path=/docs/atoms-IconButton-IconButton--ドキュメント)\r\n * - [`CardButton`](/?path=/docs/modules-Card-CardButton--ドキュメント)\r\n */\r\n trigger?: ReactElement,\r\n /**\r\n * メニューの位置。\r\n * @defaultValue `\"bottom-start\"`\r\n */\r\n placement?: Placement,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Menu: FunctionComponent<MenuProps> = ({\r\n trigger,\r\n placement = \"bottom-start\",\r\n className,\r\n children\r\n}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n\r\n const listRef = useRef([]);\r\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\r\n\r\n const {refs, floatingStyles, context} = useFloating({\r\n open: isOpen,\r\n onOpenChange: setOpen,\r\n placement,\r\n middleware: [offset(2)]\r\n });\r\n const {isMounted, status} = useTransitionStatus(context, {duration: 200});\r\n\r\n const click = useClick(context);\r\n const dismiss = useDismiss(context);\r\n const listNavigation = useListNavigation(context, {listRef, activeIndex, onNavigate: setActiveIndex});\r\n const role = useRole(context, {role: \"menu\"});\r\n const {getReferenceProps, getFloatingProps, getItemProps} = useInteractions([\r\n click,\r\n dismiss,\r\n listNavigation,\r\n role\r\n ]);\r\n\r\n const contextValue = useMemo(() => ({\r\n setOpen,\r\n listRef,\r\n activeIndex,\r\n getItemProps\r\n }), [\r\n setOpen,\r\n listRef,\r\n activeIndex,\r\n getItemProps\r\n ]);\r\n\r\n return (\r\n <>\r\n {trigger != null && (\r\n cloneElement(trigger, {ref: refs.setReference, ...getReferenceProps()})\r\n )}\r\n <MenuList\r\n className={className}\r\n isOpen={isOpen}\r\n isMounted={isMounted}\r\n status={status}\r\n context={context}\r\n style={floatingStyles}\r\n ref={refs.setFloating}\r\n {...getFloatingProps()}\r\n >\r\n <Provider value={contextValue}>\r\n {transformChildren(children)}\r\n </Provider>\r\n </MenuList>\r\n </>\r\n );\r\n};\r\n\r\nconst transformChildren = (children: ReactNode): Array<ReactElement> | null | undefined => {\r\n let index = -1;\r\n const nextChildren = Children.map(children, (child) => {\r\n if (isElement(child)) {\r\n if (child.type === MenuItem) {\r\n index ++;\r\n return cloneElement(child, {index});\r\n } else {\r\n return child;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n });\r\n return nextChildren;\r\n};","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype MenuItemIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n color: var(--qlib-icon-color);\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const MenuItemIconContainer = forwardRef<HTMLSpanElement, MenuItemIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nMenuItemIconContainer.displayName = \"MenuItemIconContainer\";","import {css} from \"@emotion/react\";\r\nimport {MouseEvent, ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype MenuDividerProps = CommonProps & {\r\n /**\r\n * カラースキーム。\r\n * `null` を指定した場合は、通常のテキスト色で表示します。\r\n * @defaultValue `null`\r\n */\r\n scheme?: LeveledColorScheme | null,\r\n /** */\r\n onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown,\r\n /** */\r\n className?: string,\r\n /** */\r\n children?: ReactNode\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n margin-block: ${size(1)};\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const MenuDivider = forwardRef<HTMLDivElement, MenuDividerProps>(({\r\n scheme = null,\r\n onClick,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} role=\"separator\" {...data}/>\r\n );\r\n});\r\n\r\nMenuDivider.displayName = \"MenuDivider\";","import {css} from \"@emotion/react\";\r\nimport {Dispatch, SetStateAction, forwardRef, useCallback} from \"react\";\r\nimport {Icon} from \"/src/components/atoms/icon\";\r\nimport {IconButton} from \"/src/components/atoms/iconButton\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {FractionView, FractionViewDenominator, FractionViewNumerator} from \"/src/components/modules/fractionView\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype PaginationProps = CommonProps & {\r\n /**\r\n * 現在開いているページ番号 (0 始まり)。\r\n */\r\n page: number,\r\n /**\r\n * 合計ページ数。\r\n */\r\n pageCount: number,\r\n /**\r\n * ページを設定する関数。\r\n */\r\n setPage?: Dispatch<SetStateAction<number>>,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(4)};\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n position: relative;\r\n pointer-events: all;\r\n transition: opacity 0.2s ease;\r\n `,\r\n button: css`\r\n column-gap: ${size(2)};\r\n display: flex;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n center: css`\r\n color: ${color(\"gray\", 5)};\r\n display: flex;\r\n align-items: baseline;\r\n justify-content: center;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n `,\r\n small: css`\r\n font-size: 80%;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Pagination = forwardRef<HTMLElement, PaginationProps>(({\r\n page,\r\n pageCount,\r\n setPage,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {trans, transNumber} = useQlibTranslation(\"pagination\");\r\n\r\n const canPreviousPage = pageCount >= 2 && page > 0;\r\n const canNextPage = page < pageCount - 1;\r\n\r\n const goFirstPage = useCallback(() => {\r\n setPage?.(0);\r\n }, [setPage]);\r\n\r\n const goLastPage = useCallback(() => {\r\n setPage?.(pageCount - 1);\r\n }, [setPage, pageCount]);\r\n\r\n const goPreviousPage = useCallback(() => {\r\n setPage?.((page) => Math.max(page - 1, 0));\r\n }, [setPage]);\r\n\r\n const goNextPage = useCallback(() => {\r\n setPage?.((page) => Math.min(page + 1, pageCount - 1));\r\n }, [setPage, pageCount]);\r\n\r\n return (\r\n <nav css={styles.root} className={className} ref={ref} aria-label={trans(\"label\")} {...data}>\r\n <div css={styles.button}>\r\n <IconButton scheme=\"gray\" variant=\"light\" label={trans(\"first\")} isDisabled={!canPreviousPage} onClick={goFirstPage}>\r\n <Icon name=\"first\"/>\r\n </IconButton>\r\n <IconButton scheme=\"gray\" variant=\"light\" label={trans(\"previous\")} isDisabled={!canPreviousPage} onClick={goPreviousPage}>\r\n <Icon name=\"previous\"/>\r\n </IconButton>\r\n </div>\r\n <div css={styles.center}>\r\n <FractionView orientation=\"horizontal\">\r\n <FractionViewNumerator>{transNumber(page + 1)}</FractionViewNumerator>\r\n <FractionViewDenominator>{transNumber(pageCount)}</FractionViewDenominator>\r\n </FractionView>\r\n </div>\r\n <div css={styles.button}>\r\n <IconButton scheme=\"gray\" variant=\"light\" label={trans(\"next\")} isDisabled={!canNextPage} onClick={goNextPage}>\r\n <Icon name=\"next\"/>\r\n </IconButton>\r\n <IconButton scheme=\"gray\" variant=\"light\" label={trans(\"last\")} isDisabled={!canNextPage} onClick={goLastPage}>\r\n <Icon name=\"last\"/>\r\n </IconButton>\r\n </div>\r\n </nav>\r\n );\r\n});\r\n\r\nPagination.displayName = \"Pagination\";","import {forwardRef, useContext} from \"react\";\r\nimport {pagePropsContext} from \"/src/contexts/pageProps/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {Pagination} from \"./pagination\";\r\n\r\n\r\ntype PaginationAutoProps = CommonProps & {\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const PaginationAuto = forwardRef<HTMLElement, PaginationAutoProps>(({\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {\r\n resolvedPageProps: {\r\n isLoading,\r\n isEmpty,\r\n page,\r\n pageCount,\r\n setPage\r\n }\r\n } = useContext(pagePropsContext);\r\n\r\n return (!isLoading && !isEmpty) ? (\r\n <Pagination className={className} page={page} pageCount={pageCount} setPage={setPage} ref={ref} {...data}/>\r\n ) : null;\r\n});\r\n\r\nPaginationAuto.displayName = \"PaginationAuto\";","import {css} from \"@emotion/react\";\r\nimport {forwardRef} from \"react\";\r\nimport {color, fontWeight} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useQlibTranslation} from \"/src/utils/translation\";\r\n\r\n\r\ntype RankViewProps = CommonProps & {\r\n /**\r\n * 表示する順位 (1 始まり)。\r\n */\r\n rank: number,\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /**\r\n * 1 位~ 3 位にメダルの色を使うかどうか。\r\n * これを `true` に指定すると、1 位~3 位の背景色が順に金色, 銀色, 銅色になります。\r\n * @defaultValue `true`\r\n */\r\n useMedalColors?: boolean,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: ${512 / 320}em;\r\n block-size: ${512 / 320}em;\r\n vertical-align: -0.27em;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n icon: (scheme: NonNullable<RankViewProps[\"scheme\"]>) => css`\r\n block-size: 100%;\r\n aspect-ratio: 576 / 512;\r\n overflow: visible;\r\n & >text {\r\n font-weight: ${fontWeight(\"bold\")};\r\n }\r\n & >text:nth-of-type(1) {\r\n stroke-width: 32;\r\n stroke-linecap: round;\r\n stroke-linejoin: round;\r\n user-select: none; // 罫線用のテキストなので選択できないように\r\n }\r\n & >text:nth-of-type(2) {\r\n fill: ${color(\"white\")};\r\n }\r\n &[data-qlib-type=\"gold\"] {\r\n & >path {\r\n fill: url(\"#qlib-rank-gold\");\r\n }\r\n & >text:nth-of-type(1) {\r\n stroke: url(\"#qlib-rank-gold\");\r\n }\r\n }\r\n &[data-qlib-type=\"silver\"] {\r\n & >path {\r\n fill: url(\"#qlib-rank-silver\");\r\n }\r\n & >text:nth-of-type(1) {\r\n stroke: url(\"#qlib-rank-silver\");\r\n }\r\n }\r\n &[data-qlib-type=\"bronze\"] {\r\n & >path {\r\n fill: url(\"#qlib-rank-bronze\");\r\n }\r\n & >text:nth-of-type(1) {\r\n stroke: url(\"#qlib-rank-bronze\");\r\n }\r\n }\r\n &[data-qlib-type=\"normal\"] {\r\n & >path {\r\n fill: ${color(scheme, 5)};\r\n }\r\n & >text:nth-of-type(1) {\r\n stroke: ${color(scheme, 5)};\r\n }\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### 順位表示\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const RankView = forwardRef<HTMLSpanElement, RankViewProps>(({\r\n rank,\r\n scheme = \"primary\",\r\n useMedalColors = true,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {trans, transNumber} = useQlibTranslation(\"rankView\");\r\n\r\n const type = useMedalColors ? rank <= 1 ? \"gold\" : rank <= 2 ? \"silver\" : rank <= 3 ? \"bronze\" : \"normal\" : \"normal\";\r\n\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n <svg css={styles.icon(scheme)} viewBox=\"0 0 576 512\" aria-label={trans(\"label\", {rank})} data-qlib-type={type}>\r\n <path d=\"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"/>\r\n <text x=\"50%\" y=\"62%\" fontSize=\"320\" textAnchor=\"middle\" dominantBaseline=\"central\" aria-hidden={true}>\r\n {transNumber(rank)}\r\n </text>\r\n <text x=\"50%\" y=\"62%\" fontSize=\"320\" textAnchor=\"middle\" dominantBaseline=\"central\" aria-hidden={true}>\r\n {transNumber(rank)}\r\n </text>\r\n </svg>\r\n </span>\r\n );\r\n});\r\n\r\nRankView.displayName = \"RankView\";","import {createContext} from \"react\";\r\n\r\n\r\ntype ContextValue = {\r\n activeIndex: number,\r\n count: number\r\n};\r\n\r\nexport const context = createContext<ContextValue>({\r\n activeIndex: -1,\r\n count: 0\r\n});\r\nexport const Provider = context.Provider;\r\n\r\ntype ItemContextValue = {\r\n index: number\r\n};\r\n\r\nexport const itemContext = createContext<ItemContextValue>({\r\n index: 0\r\n});\r\nexport const ItemProvider = itemContext.Provider;","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useMemo} from \"react\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {ItemProvider} from \"/src/components/modules/stepper/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype StepperItemProps = CommonProps & {\r\n /** */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n --qlib-highlight-color: ${color(scheme, 5)};\r\n column-gap: ${size(2)};\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const StepperItem = forwardRef<HTMLLIElement, StepperItemProps>(({\r\n scheme = \"primary\",\r\n children,\r\n className,\r\n ...otherProps\r\n}, ref) => {\r\n const {index, ...data} = otherProps as any; // 内部利用 props\r\n\r\n const contextValue = useMemo(() => ({\r\n index\r\n }), [\r\n index\r\n ]);\r\n\r\n return (\r\n <li css={styles.root(scheme)} className={className} ref={ref} {...data}>\r\n <ItemProvider value={contextValue}>\r\n {children}\r\n </ItemProvider>\r\n </li>\r\n );\r\n});\r\n\r\nStepperItem.displayName = \"StepperItem\";","import {css} from \"@emotion/react\";\r\nimport {Children, ReactElement, ReactNode, cloneElement, forwardRef, useMemo} from \"react\";\r\nimport {isElement} from \"react-is\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {Provider} from \"./context\";\r\nimport {StepperItem} from \"./stepperItem\";\r\n\r\n\r\ntype StepperProps = CommonProps & {\r\n /**\r\n * 現在進行中のステップのインデックス (0 始まり)。\r\n * `-1` を指定した場合は、最初のステップよりも前の状態を表し、全てのステップが未完了の状態になります。\r\n * ステップ数以上の値を指定した場合は、全てのステップが完了済みの状態になります。\r\n * @defaultValue `-1`\r\n */\r\n activeIndex?: number,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(4)};\r\n row-gap: ${size(4)};\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Stepper = forwardRef<HTMLOListElement, StepperProps>(({\r\n activeIndex = -1,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const transformedChildren = transformChildren(children);\r\n const count = transformedChildren?.length ?? 0;\r\n\r\n const contextValue = useMemo(() => ({\r\n activeIndex,\r\n count\r\n }), [\r\n activeIndex,\r\n count\r\n ]);\r\n\r\n return (\r\n <ol css={styles.root} className={className} ref={ref} {...data}>\r\n <Provider value={contextValue}>\r\n {transformedChildren}\r\n </Provider>\r\n </ol>\r\n );\r\n});\r\n\r\nconst transformChildren = (children: ReactNode): Array<ReactElement> | null | undefined => {\r\n let index = -1;\r\n const nextChildren = Children.map(children, (child) => {\r\n if (isElement(child)) {\r\n if (child.type === StepperItem) {\r\n index ++;\r\n return cloneElement(child, {index});\r\n } else {\r\n return child;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n });\r\n return nextChildren;\r\n};\r\n\r\nStepper.displayName = \"Stepper\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype StepperBodyProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-block-start: ${size(2)};\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const StepperBody = forwardRef<HTMLDivElement, StepperBodyProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nStepperBody.displayName = \"StepperBody\";","import {css} from \"@emotion/react\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faCheck} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {useTranslation} from \"/src/modules/translation\";\r\nimport {context, itemContext} from \"./context\";\r\n\r\n\r\ntype StepperNumberProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n column-gap: ${size(1)};\r\n display: flex;\r\n flex-direction: row;\r\n align-self: stretch;\r\n align-items: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n number: css`\r\n inline-size: ${size(6)};\r\n block-size: ${size(6)};\r\n font-size: ${size(3)};\r\n border-radius: ${size(6)};\r\n border: solid ${borderWidth(1)} transparent;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n &[data-status=\"completed\"] {\r\n border-color: var(--qlib-highlight-color);\r\n background-color: ${color(\"white\")};\r\n color: ${color(\"primary\", 5)};\r\n }\r\n &[data-status=\"active\"] {\r\n border-color: var(--qlib-highlight-color);\r\n background-color: var(--qlib-highlight-color);\r\n color: ${color(\"white\")};\r\n }\r\n &[data-status=\"upcoming\"] {\r\n border-color: ${color(\"gray\", 3)};\r\n background-color: ${color(\"white\")};\r\n color: ${color(\"gray\", 5)};\r\n }\r\n `,\r\n border: css`\r\n block-size: ${size(1)};\r\n margin-inline-end: ${size(-3)};\r\n background-color: ${color(\"gray\", 1)};\r\n border-radius: ${size(\"max\")};\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n opacity: 0;\r\n &[data-visible=\"true\"] {\r\n opacity: 1;\r\n }\r\n &[data-highlight=\"true\"] {\r\n background-color: var(--qlib-highlight-color);\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const StepperNumber = forwardRef<HTMLDivElement, StepperNumberProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const {transNumber} = useTranslation(\"stepper\");\r\n\r\n const {index} = useContext(itemContext);\r\n const {activeIndex, count} = useContext(context);\r\n\r\n const status = index < activeIndex ? \"completed\" : index === activeIndex ? \"active\" : \"upcoming\";\r\n\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n <div css={styles.number} data-status={status}>\r\n {index < activeIndex ? (\r\n <FontAwesomeIcon icon={faCheck}/>\r\n ) : (\r\n children ?? transNumber(index + 1)\r\n )}\r\n </div>\r\n <div\r\n css={styles.border}\r\n aria-hidden={true}\r\n data-visible={index < count - 1}\r\n data-highlight={index + 1 <= activeIndex}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nStepperNumber.displayName = \"StepperNumber\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype StepperTitleProps = CommonProps & {\r\n /**\r\n * 使用する HTML タグの名前。\r\n * @defaultValue `\"h3\"`\r\n */\r\n as?: keyof JSX.IntrinsicElements,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const StepperTitle = forwardRef<HTMLDivElement, StepperTitleProps>(({\r\n as,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText css={styles.root} className={className} as={as} lineHeight=\"normal\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nStepperTitle.displayName = \"StepperTitle\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TabListProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n inline-size: 100%;\r\n margin-block-end: ${borderWidth(-1)};\r\n column-gap: ${size(6)};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n background-color: ${color(\"white\")};\r\n display: flex;\r\n align-items: flex-end;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nTabList.displayName = \"TabList\";","import {css} from \"@emotion/react\";\r\nimport {MouseEvent, ReactNode, forwardRef} from \"react\";\r\nimport {borderWidth, color, fontWeight, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TabProps = CommonProps & {\r\n /** */\r\n isActive?: boolean,\r\n /** */\r\n href?: string,\r\n /** */\r\n onClick?: (event: MouseEvent<HTMLElement>) => unknown,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-block-end: calc(${size(3)} + ${borderWidth(4)});\r\n padding-inline: ${size(0)};\r\n color: ${color(\"gray\", 5)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n position: relative;\r\n transition: background-color 0.2s ease;\r\n &:hover,\r\n &:focus {\r\n --qlib-highlight-color: ${color(\"gray\", 5)};\r\n }\r\n &::before {\r\n inset-inline: ${size(0)};\r\n inset-block-end: ${size(0)};\r\n block-size: ${borderWidth(4)};\r\n background-color: var(--qlib-highlight-color);\r\n transition: background-color 0.2s ease;\r\n position: absolute;\r\n content: \"\";\r\n }\r\n &[data-active=\"true\"] {\r\n --qlib-highlight-color: ${color(\"primary\", 5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(\"primary\", 5)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Tab = forwardRef<HTMLElement, TabProps>(({\r\n isActive = false,\r\n href,\r\n onClick,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return href != null ? (\r\n <a\r\n css={styles.root}\r\n className={className}\r\n ref={ref as any}\r\n href={href}\r\n onClick={onClick}\r\n data-active={isActive}\r\n {...data}\r\n >\r\n {children}\r\n </a>\r\n ) : (\r\n <button\r\n css={styles.root}\r\n className={className}\r\n ref={ref as any}\r\n onClick={onClick}\r\n data-active={isActive}\r\n {...data}\r\n >\r\n {children}\r\n </button>\r\n );\r\n});\r\n\r\nTab.displayName = \"Tab\";","import {css} from \"@emotion/react\";\r\nimport {ReactElement, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TabIconContainerProps = CommonProps & {\r\n /** */\r\n children?: ReactElement,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n margin-inline-end: ${size(\"gap\")};\r\n display: inline;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const TabIconContainer = forwardRef<HTMLSpanElement, TabIconContainerProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <span css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </span>\r\n );\r\n});\r\n\r\nTabIconContainer.displayName = \"HeaderMenuItemIconContainer\";","import {css, keyframes} from \"@emotion/react\";\r\nimport * as ToastRaw from \"@radix-ui/react-toast\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ToastProps = CommonProps & {\r\n /** */\r\n isOpen?: boolean,\r\n /**\r\n * 持続時間 (ミリ秒単位)。\r\n * `null` を指定すると無限になります。\r\n *\r\n * ここに指定した時間が経過すると自動的に消滅します。\r\n * ただし、ページの閲覧者が閉じるボタンを押した場合、そのときに消滅します。\r\n * また、トースト上にカーソルが載っていたりトーストにフォーカスが当たっていたりするときは、自動では消滅しません。\r\n * @defaultValue `5000`\r\n */\r\n duration?: number | null,\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n iconNode?: ReactNode,\r\n /** */\r\n onOpenSet?: (isOpen: boolean) => unknown,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst animations = {\r\n open: keyframes`\r\n from {\r\n opacity: 0;\r\n transform: translate(${size(0)}, ${size(2)});\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translate(${size(0)}, ${size(0)});\r\n }\r\n `,\r\n close: keyframes`\r\n to {\r\n opacity: 0;\r\n transform: translate(${size(0)}, ${size(2)});\r\n }\r\n from {\r\n opacity: 1;\r\n transform: translate(${size(0)}, ${size(0)});\r\n }\r\n `\r\n};\r\nconst styles = {\r\n root: (scheme: LeveledColorScheme) => css`\r\n inline-size: 100%;\r\n border-radius: ${size(1)};\r\n background-color: ${color(\"white\")};\r\n border: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n box-shadow: ${boxShadow(alpha(color(\"gray\", 5), 0.2), 1)};\r\n display: flex;\r\n box-sizing: border-box;\r\n transition: opacity 0.2s ease, transform 0.2s ease;\r\n &::before {\r\n margin-block: ${borderWidth(-1)};\r\n margin-inline-start: ${borderWidth(-1)};\r\n inline-size: ${size(1)};\r\n border-start-start-radius: ${size(1)};\r\n border-end-start-radius: ${size(1)};\r\n background-color: ${color(scheme, 5)};\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n content: \"\";\r\n }\r\n &[data-state=\"open\"] {\r\n animation: ${animations.open} 0.2s ease;\r\n }\r\n &[data-state=\"closed\"] {\r\n animation: ${animations.close} 0.2s ease;\r\n }\r\n `,\r\n icon: (scheme: LeveledColorScheme) => css`\r\n margin-inline-start: ${size(3)};\r\n margin-inline-end: ${size(\"gap\")};\r\n font-size: ${size(6)};\r\n color: ${color(scheme, 5)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n container: css`\r\n padding-block: ${size(3)};\r\n padding-inline-end: ${size(3)};\r\n &:first-of-type {\r\n margin-inline-start: ${size(3)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * ### トースト\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Toast`**\r\n * - [`ToastBody`](/docs/modules-Toast-ToastBody--ドキュメント)\r\n * - [`ToastMessage`](/docs/modules-Toast-ToastMessage--ドキュメント)\r\n * - [`ToastSupplement`](/docs/modules-Toast-ToastSupplement--ドキュメント) (任意)\r\n *\r\n * #### 使い方\r\n * 非制御と制御の 2 種類の使い方があります。\r\n *\r\n * `isOpen` prop を指定しない場合、非制御用法になります。\r\n * 非制御用法では、トーストを表示したり消したりする処理を `Toast` コンポーネントに任せます。\r\n * このコンポーネントを配置した瞬間にトーストが表示され、`duration` prop に渡された時間が経過すると自動的に消滅します。\r\n *\r\n * `isOpen` prop を指定した場合、制御用法になります。\r\n * 制御用法では、トーストを表示するかどうかを `isOpen` prop を通してユーザー側で指定する必要があります。\r\n *\r\n * #### `useToast` フック\r\n * このコンポーネントを直接利用するよりも、`useToast` フックが返す関数を利用した方が便利なので、こちらの方法でトーストを表示することをお勧めします。\r\n * 以下のように `Toast` 要素を引数に渡すことで、簡単にトーストを表示させることができます。\r\n *\r\n * ```tsx\r\n * const dispatchToast = useToast();\r\n * dispatchToast(\r\n * <Toast>\r\n * <ToastBody>\r\n * <ToastMessage>\r\n * トーストを表示します。\r\n * </ToastMessage>\r\n * </ToastBody>\r\n * </Toast>\r\n * );\r\n * ```\r\n *\r\n * #### 専用コンポーネント\r\n * - [`SimpleToast`](/docs/modules-Toast-🎶SimpleToast--ドキュメント) — 構成をシンプルにしたバージョン\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Toast = forwardRef<HTMLLIElement, ToastProps>(({\r\n isOpen,\r\n duration = 5000,\r\n scheme = \"primary\",\r\n iconNode,\r\n onOpenSet,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <ToastRaw.Root\r\n css={styles.root(scheme)}\r\n className={className}\r\n duration={duration ?? 1000 * 86400}\r\n open={isOpen}\r\n onOpenChange={onOpenSet}\r\n ref={ref}\r\n {...data}\r\n >\r\n {iconNode != null && (\r\n <div css={styles.icon(scheme)}>\r\n {iconNode}\r\n </div>\r\n )}\r\n <ToastRaw.Description css={styles.container}>\r\n {children}\r\n </ToastRaw.Description>\r\n </ToastRaw.Root>\r\n );\r\n});\r\n\r\nToast.displayName = \"Toast\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ToastBodyProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n row-gap: ${size(2)};\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={className} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nToastBody.displayName = \"ToastBody\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ToastMessageProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(4)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ToastMessage = forwardRef<HTMLElement, ToastMessageProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText css={styles.root} className={className} as=\"p\" lineHeight=\"normal\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nToastMessage.displayName = \"ToastMessage\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {MultiLineText} from \"/src/components/atoms/multiLineText\";\r\nimport {color, size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ToastSupplementProps = CommonProps & {\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n font-size: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ToastSupplement = forwardRef<HTMLElement, ToastSupplementProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <MultiLineText css={styles.root} className={className} as=\"p\" lineHeight=\"narrow\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\r\n );\r\n});\r\n\r\nToastSupplement.displayName = \"ToastSupplement\";","import {ReactNode, forwardRef} from \"react\";\r\nimport {Icon} from \"/src/components/atoms/icon\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {Toast} from \"./toast\";\r\nimport {ToastBody} from \"./toastBody\";\r\nimport {ToastMessage} from \"./toastMessage\";\r\n\r\n\r\ntype SimpleToastProps = CommonProps & {\r\n /** */\r\n isOpen?: boolean,\r\n /**\r\n * 持続時間 (ミリ秒単位)。\r\n * `null` を指定すると無限になります。\r\n *\r\n * ここに指定した時間が経過すると自動的に消滅します。\r\n * ただし、ページの閲覧者が閉じるボタンを押した場合、そのときに消滅します。\r\n * また、トースト上にカーソルが載っていたりトーストにフォーカスが当たっていたりするときは、自動では消滅しません。\r\n * @defaultValue `5000`\r\n */\r\n duration?: number | null,\r\n /**\r\n * 種類。\r\n * @defaultValue `\"success\"`\r\n */\r\n intent?: \"success\" | \"error\" | \"info\",\r\n /** */\r\n onOpenSet?: (isOpen: boolean) => unknown,\r\n /** */\r\n children?: ReactNode,\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n};\r\n\r\n/**\r\n * ### シンプルなトースト\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const SimpleToast = forwardRef<HTMLLIElement, SimpleToastProps>(({\r\n isOpen,\r\n duration = 5000,\r\n intent = \"success\",\r\n onOpenSet,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <Toast\r\n className={className}\r\n isOpen={isOpen}\r\n duration={duration}\r\n scheme={intent === \"success\" ? \"green\" : intent === \"error\" ? \"red\" : \"primary\"}\r\n iconNode={<Icon name={intent}/>}\r\n onOpenSet={onOpenSet}\r\n ref={ref}\r\n {...data}\r\n >\r\n <ToastBody>\r\n <ToastMessage>\r\n {children}\r\n </ToastMessage>\r\n </ToastBody>\r\n </Toast>\r\n );\r\n});\r\n\r\nSimpleToast.displayName = \"SimpleToast\";","import {css} from \"@emotion/react\";\r\nimport {CSSInterpolation} from \"@emotion/serialize\";\r\nimport {size} from \"./utilities\";\r\n\r\n\r\nexport type FlexAlign = \"normal\" | \"start\" | \"end\" | \"center\" | \"baseline\" | \"stretch\";\r\nexport type FlexJustify = \"normal\" | \"start\" | \"end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\" | \"stretch\";\r\n\r\n/**\r\n * @param config\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function flexVertical(config?: {gap?: number | string, align?: FlexAlign, justify?: FlexJustify}): CSSInterpolation {\r\n return css`\r\n display: flex;\r\n flex-direction: column;\r\n ${config?.gap ? css`row-gap: ${sizeOr(config.gap)};` : \"\"}\r\n ${config?.align ? css`align-items: ${config.align};` : \"\"}\r\n ${config?.justify ? css`justify-content: ${config.justify};` : \"\"}\r\n `;\r\n}\r\n\r\n/**\r\n * @param config\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function flexHorizontal(config?: {gap?: number | string, align?: FlexAlign, justify?: FlexJustify}): CSSInterpolation {\r\n return css`\r\n display: flex;\r\n flex-direction: row;\r\n ${config?.gap ? css`column-gap: ${sizeOr(config.gap)};` : \"\"}\r\n ${config?.align ? css`align-items: ${config.align};` : \"\"}\r\n ${config?.justify ? css`justify-content: ${config.justify};` : \"\"}\r\n `;\r\n}\r\n\r\n/**\r\n * @param config\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function margin(config: {top?: number | string, bottom?: number | string, left?: number | string, right?: number | string}): CSSInterpolation {\r\n return css`\r\n ${config?.top ? css`margin-block-start: ${sizeOr(config.top)};` : \"\"}\r\n ${config?.bottom ? css`margin-block-end: ${sizeOr(config.bottom)};` : \"\"}\r\n ${config?.left ? css`margin-inline-start: ${sizeOr(config.left)};` : \"\"}\r\n ${config?.right ? css`margin-inline-end: ${sizeOr(config.right)};` : \"\"}\r\n `;\r\n}\r\n\r\n/**\r\n * @param config\r\n * @returns CSS 宣言\r\n * @category CSS ユーティリティ\r\n */\r\nexport function dimension(config: {width?: number | string, height?: number | string}): CSSInterpolation {\r\n return css`\r\n ${config?.width ? css`inline-size: ${sizeOr(config.width)};` : \"\"}\r\n ${config?.height ? css`block-size: ${sizeOr(config.height)};` : \"\"}\r\n `;\r\n}\r\n\r\nfunction sizeOr(value: number | string): string {\r\n return typeof value === \"number\" ? size(value) : value;\r\n}","import {ReactElement, useCallback, useContext} from \"react\";\r\nimport {dialogContext} from \"/src/contexts/dialog/context\";\r\n\r\n\r\nexport type OpenDialog = (render: (close: () => void) => ReactElement) => void;\r\n\r\nexport const useDialog = (): OpenDialog => {\r\n const {open, close, setDialogSpec} = useContext(dialogContext);\r\n\r\n const openDialog = useCallback((render: (close: () => void) => ReactElement) => {\r\n const dialogSpec = {\r\n element: render(close)\r\n };\r\n setDialogSpec(dialogSpec);\r\n open();\r\n }, [open, close, setDialogSpec]);\r\n\r\n return openDialog;\r\n};","import {useContext} from \"react\";\r\nimport {radioGroupContext} from \"./context\";\r\n\r\n\r\nexport type UseRadioGroupReturn = {\r\n value?: string | null\r\n};\r\n\r\nexport const useRadioGroup = (): UseRadioGroupReturn => {\r\n const groupSpec = useContext(radioGroupContext);\r\n if (groupSpec === undefined) {\r\n throw new Error(\"Not inside `RadioGroup`\");\r\n }\r\n\r\n const {value} = groupSpec;\r\n\r\n return {value};\r\n};","import dayjs from \"dayjs\";\r\nimport {ReactElement, cloneElement, useCallback, useContext} from \"react\";\r\nimport {toastContext} from \"/src/contexts/toast/context\";\r\n\r\n\r\nexport type DispatchToast = (element: ReactElement) => void;\r\n\r\nexport const useToast = (): DispatchToast => {\r\n const {setToastSpecs} = useContext(toastContext);\r\n\r\n const dispatchToast = useCallback((element: ReactElement) => {\r\n const id = dayjs().valueOf().toString();\r\n const addedToastSpec = {\r\n element: cloneElement(element, {\r\n key: id,\r\n onOpenChange: (isOpen: boolean) => {\r\n if (!isOpen) {\r\n setTimeout(() => {\r\n setToastSpecs((toasts) => toasts.filter((toast) => toast !== addedToastSpec));\r\n }, 200);\r\n }\r\n }\r\n })\r\n };\r\n setToastSpecs((toastSpecs) => [...toastSpecs, addedToastSpec]);\r\n }, [setToastSpecs]);\r\n\r\n return dispatchToast;\r\n};"],"names":["module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","require","LEVELED_COLOR_SCHEMES","UNLEVELED_COLOR_SCHEMES","createColorDefinition","colorString","setting","color","blackColor","whiteColor","saturate","dark","saturation","mix","hex","light","DEFAULT_COLOR_DEFINITIONS","primary","secondary","blue","red","green","pink","yellow","purple","orange","gray","gold","silver","bronze","white","black","whiteText","blackText","background","deepBackground","getColorVarCss","scheme","level","getColorVarDefinitionCss","definitions","varCss","wholeDefinitions","entries","push","rgb","array","join","css","fontFamily","fontWeight","weight","includes","alpha","startsWith","slice","string","SEMANTIC_SIZES","gap","max","size","borderWidth","boxShadow","inset","lineHeight","additionalMargin","fixedLineHeight","useQlibTranslation","scope","intl","trans","useCallback","values","fullKey","replace","defaultMessage","formatMessage","id","transDate","date","locale","format","transTime","transNumber","number","options","intlOptions","minimumFractionDigits","digit","maximumFractionDigits","withSign","formatNumber","useMemo","transNode","styles","root","context","createContext","variant","optionAlignment","isMenuOpen","isError","Provider","SelectComponentClearIndicator","children","props","components","ClearIndicator","FontAwesomeIcon","icon","faTimes","rootOutline","rootMinimal","SelectComponentControl","isFocused","isDisabled","menuIsOpen","innerRef","innerProps","useContext","ref","SelectComponentDropdownIndicator","DropdownIndicator","faAngleDown","SelectComponentIndicatorsContainer","SelectComponentInput","Input","animations","keyframes","SelectComponentMenu","SelectComponentMenuList","SelectComponentMenuPortal","MenuPortal","SelectComponentNoOptionMessage","NoOptionsMessage","SelectComponentOption","data","isSelected","node","SelectComponentPlaceholder","Placeholder","useDelayedMenuProps","duration","setMenuOpen","useState","isMenuMounted","setMenuMounted","menuMountedTimeoutRef","useRef","onMenuOpen","current","clearTimeout","onMenuClose","setTimeout","COMPONENTS","Control","Menu","MenuList","Option","LoadingMessage","faCircleNotch","spin","IndicatorsContainer","IndicatorSeparator","LoadingIndicator","AsyncSelect","defaultValue","searchOptions","isClearable","onSet","className","rawValue","getRawValue","rawDefaultValue","handleLoadOptions","input","rawValues","map","handleChange","restProps","contextValue","classNamePrefix","loadOptions","onChange","defaultOptions","placeholder","menuPortalTarget","window","document","body","isMulti","unstyled","element","label","displayName","AsyncSelectOption","image","fallback","Avatar","forwardRef","src","alt","AvatarFallbackIcon","hue","delayMs","style","backgroundColor","faUser","AvatarFallbackLetter","name","initial","Badge","BadgeIconContainer","getElements","normalizeNode","elements","filter","isValidElement","length","Error","Children","toArray","isFragment","isPale","totalValue","BarMeter","reduce","prev","inner","SingleLineText","as","TagName","barContainer","bar","spacer","legend","BarMeterValue","percent","inlineSize","BarMeterValueIconContainer","BarProgress","minValue","maxValue","Math","min","role","rootBox","rootText","rootUnstyled","loading","Button","isCompact","type","isLoading","onClick","onKeyDown","onKeyUp","onMouseDown","onPointerDown","dataAndAria","disabled","ButtonIconContainer","CheckableContainer","CheckableLabel","original","Checkbox","isChecked","isRequired","onBlur","useId","mergedRef","useMergeRefs","event","target","checked","useEffect","indeterminate","required","htmlFor","faMinus","faCheck","ControlContainer","maxLineCount","MultiLineText","ControlErrorMessage","ControlHelper","ControlLabel","Divider","orientation","GeneralIcon","flip","rotation","title","inputContainer","button","builtinAddon","FileInput","multiple","accept","autoFocus","inputRef","fileNameString","setFileNameString","files","Array","from","getFileNameString","handleClick","click","faFiles","faFile","file","isArray","Heading","BUILTIN_ICONS","plus","faPlus","minus","edit","faPen","delete","faTrashAlt","search","faSearch","upload","faUpload","copy","faCopy","confirm","faThumbsUp","refuse","faBan","move","faArrowsUpDownLeftRight","bulk","faBucket","login","faSignInAlt","logout","faSignOutAlt","correct","faO","wrong","first","faArrowLeftToLine","previous","faArrowLeft","next","faArrowRight","last","faArrowRightToLine","success","faCircleCheck","error","faTriangleExclamation","caution","info","faCircleInfo","more","less","faAngleUp","back","faLeft","empty","faFaceDotted","menu","faBars","grip","faGripVertical","ellipsis","faEllipsisH","Icon","IconButton","InputLeftAddon","InputRightAddon","autoComplete","leftAddon","find","rightAddon","isAddonType","faClock","faCalendar","Link","href","LinkIconContainer","LoadingIcon","overlay","Modal","isOpen","onClose","isInnerOpen","setInnerOpen","handleRequestClose","isActualOpen","reserveScrollBarGap","ClassNames","contentLabel","onRequestClose","overlayClassName","portalClassName","bodyOpenClassName","htmlOpenClassName","shouldCloseOnOverlayClick","shouldCloseOnEsc","contentElement","cloneElement","closeTimeoutMS","NumberInputLeftAddon","buttonList","buttonDivider","NumberInput","step","increment","stepUp","dispatchEvent","Event","bubbles","decrement","stepDown","tabIndex","PasswordInputLeftAddon","PasswordInputRightAddon","PasswordInput","initialReveal","reveal","setReveal","toggleReveal","faEyeSlash","faEye","radioGroupContext","RadioGroupProvider","Radio","RadioGroup","radioGroupContextValue","AlignedRadioGroup","scrollGlobalStyle","dialogContext","open","close","setDialogSpec","DialogProvider","setOpen","dialogSpec","dialogContextValue","rootContext","rootFontSize","desktop","smartphone","smartphoneQuery","RootProvider","ToastViewport","toastContext","setToastSpecs","ToastContextProvider","ToastProvider","toastSpecs","toastContextValue","toastSpec","addQlibPrefix","messages","fromEntries","ja","en","mergeLocalizationMessages","allMessages","assign","toResponsiveValue","resolveResponsiveValue","device","useSmartphone","useMedia","useResponsiveValue","isSmartphone","UpdatableSubject","BehaviorSubject","update","dispatch","this","useSubject","subject","setValue","subscription","subscribe","unsubscribe","useBehaviorSubject","intlSubject","createIntl","onError","localeSubject","useIntl","useLocale","useSetLocale","localStorage","setItem","useTrans","useTranslation","createTrans","SvgDefinition","viewBox","x1","y1","x2","y2","gradientUnits","offset","stopColor","defaultGlobalStyle","Root","colorDefinitions","globalStyle","appElement","setLocale","resolvedRootFontSize","rootContextValue","isReady","setReady","mergedMessages","intlCache","createIntlCache","getItem","inferredAppElement","Fragment","Global","RawIntlProvider","SecondaryHeading","Select","optionsMap","Map","SelectOption","SelectOptionIconContainer","PageSizeSelect","pageSize","defaultPageSize","optionPageSizes","optionPageSize","pagePropsContext","displayedItems","resolvedPageProps","isEmpty","page","pageCount","setPage","setPageSize","PagePropsProvider","PageSizeSelectAuto","SortOrderSelect","sortOrder","defaultSortOrder","iconType","faArrowDown19","faArrowDownAZ","faArrowDown91","faArrowDownZA","thumb","Switch","onCheckedChange","Tag","TagIconContainer","TagList","Textarea","rowCount","resize","rows","VisuallyHidden","BulkOperationContainer","badge","BulkOperationButton","count","isLabel","setHovered","setFocusVisible","Card","isHovered","isFocusVisible","CardHeadnote","CardBody","hasHeadnote","some","handleMouseEnter","handleMouseLeave","handleFocus","matches","handleBlur","onMouseEnter","onMouseLeave","onFocus","CardButton","CardButtonList","stopPropagation","CardControlContainer","CardTitle","maxLineHeight","CardList","columnCount","CardListBody","resolvedColumnCount","CardListEmpty","CardListFooter","CardListHeader","CardListHeaderLeft","CardListHeaderRight","CardListLoading","CardListAuto","items","pageProps","rawItems","isPageControlled","innerPageSize","setInnerPageSize","innerPage","setInnerPage","innerPageCount","floor","innerItems","actualPageSize","actualPage","actualPageCount","actualSetPageSize","actualSetPage","usePage","CardListBodyAuto","render","otherElements","emptyElement","loadingElement","item","index","CardListFooterAuto","ContentHeader","ContentTitle","CountIndicator","digitSize","iconNode","maxCount","overlaySmartphone","Dialog","isForm","handleSubmit","preventDefault","onSubmit","DialogBody","DialogButton","DialogCloseButton","DialogFooter","DialogHeader","DialogTitle","rootDesktop","rootSmartphone","Drawer","DrawerBody","DrawerButton","DrawerCaption","DrawerFooter","DrawerHeader","DrawerTitle","footnoteListContext","FootnoteListProvider","Footnote","FootnoteIconContainer","FootnoteList","footnoteListContextValue","FootnoteListRow","rootHorizontal","rootVertical","FractionView","FractionViewDenominator","FractionViewNumerator","Header","HeaderLeft","HeaderMenu","HeaderMenuItem","isActive","HeaderMenuItemIconContainer","listRef","activeIndex","getItemProps","MenuItem","isMounted","status","otherProps","FloatingPortal","FloatingFocusManager","trigger","placement","setActiveIndex","refs","floatingStyles","useFloating","onOpenChange","middleware","useTransitionStatus","useClick","dismiss","useDismiss","listNavigation","useListNavigation","onNavigate","useRole","getReferenceProps","getFloatingProps","useInteractions","setReference","setFloating","transformChildren","child","isElement","MenuItemIconContainer","MenuDivider","center","small","Pagination","canPreviousPage","canNextPage","goFirstPage","goLastPage","goPreviousPage","goNextPage","PaginationAuto","RankView","rank","useMedalColors","x","y","fontSize","textAnchor","dominantBaseline","itemContext","ItemProvider","StepperItem","Stepper","transformedChildren","StepperBody","border","StepperNumber","StepperTitle","TabList","Tab","TabIconContainer","container","Toast","onOpenSet","ToastBody","ToastMessage","ToastSupplement","SimpleToast","intent","flexVertical","config","sizeOr","align","justify","flexHorizontal","margin","top","bottom","left","right","dimension","width","height","useDialog","useRadioGroup","groupSpec","useToast","valueOf","toString","addedToastSpec","toasts","toast"],"sourceRoot":""}
|