@baton8/general-components 3.1.0-alpha.1 → 3.1.0-alpha.2
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/dist/components/atoms/badge/badge.d.ts +1 -1
- package/dist/components/atoms/button/button.d.ts +1 -1
- package/dist/components/atoms/iconButton/iconButton.d.ts +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/modules/card/cardButton.d.ts +1 -1
- package/dist/components/modules/dialog/dialogButton.d.ts +1 -1
- package/dist/components/modules/drawer/drawerButton.d.ts +1 -1
- package/dist/components/modules/popover/index.d.ts +1 -0
- package/dist/components/modules/popover/popover.d.ts +38 -0
- package/dist/index.js +43 -31
- package/dist/index.js.map +1 -1
- package/dist/stories/modules/popover/popover.stories.d.ts +33 -0
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +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/contexts/controlState/context.ts","webpack://@baton8/general-components/./src/utils/styles.ts","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/controlGroup/controlGroup.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/external commonjs \"react-use\"","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/./src/modules/responsive.ts","webpack://@baton8/general-components/./src/modules/subject.ts","webpack://@baton8/general-components/external commonjs \"rxjs\"","webpack://@baton8/general-components/./src/modules/translation.ts","webpack://@baton8/general-components/./src/components/atoms/root/defaultGlobalStyle.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/components/modules/card/cardButtonListColumn.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/cardGrip.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/drawerHeader.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerHeaderLeft.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerHeaderRight.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 unitGap: `${4 / 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 * - `\"unitGap\"` — テキストにおける数値と単位の間隔 (4/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 * スマートフォン環境のときにマッチする CSS セレクタを返します。\r\n * スマートフォン環境のチェック条件は、`Root` コンポーネントの `smartphoneQuery` prop で設定できます。\r\n * @category CSS ユーティリティ\r\n */\r\nexport function whenSmartphone(): string {\r\n return \"html[data-qlib-smartphone=\\\"true\\\"] &\";\r\n}\r\n\r\n/**\r\n * デスクトップ環境のときにマッチする CSS セレクタを返します。\r\n * スマートフォン環境のチェック条件は、`Root` コンポーネントの `smartphoneQuery` prop で設定できます。\r\n * @category CSS ユーティリティ\r\n */\r\nexport function whenDesktop(): string {\r\n return \"html[data-qlib-smartphone=\\\"false\\\"] &\";\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 useQlibTrans = (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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 transNumber\r\n }), [\r\n trans,\r\n transDate,\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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(\"white\")};\r\n --qlib-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-background-color: ${color(scheme, 1)};\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 = \"light\",\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 {createContext} from \"react\";\r\n\r\n\r\ntype ControlStateContextValue = {\r\n isDisabled?: boolean,\r\n isError?: boolean\r\n};\r\n\r\nexport const controlStateContext = createContext<ControlStateContextValue | undefined>(undefined);\r\nexport const ControlStateProvider = controlStateContext.Provider;","import {borderWidth, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\nexport const controlGroupVars = (): string => {\r\n return `\r\n --qlib-left-border-radius: ${size(1)};\r\n --qlib-right-border-radius: ${size(1)};\r\n --qlib-right-border-width: ${borderWidth(1)};\r\n .qlib-control-group >& {\r\n &:first-child {\r\n --qlib-left-border-radius: ${size(1)};\r\n }\r\n &:not(:first-child) {\r\n --qlib-left-border-radius: ${size(0)};\r\n }\r\n &:last-child {\r\n --qlib-right-border-radius: ${size(1)};\r\n }\r\n &:not(:last-child) {\r\n --qlib-right-border-radius: ${size(0)};\r\n --qlib-right-border-width: ${borderWidth(0)};\r\n }\r\n }\r\n `;\r\n};\r\n\r\nexport const controlGroupItem = (): string => {\r\n return `\r\n border-start-start-radius: var(--qlib-left-border-radius);\r\n border-end-start-radius: var(--qlib-left-border-radius);\r\n border-start-end-radius: var(--qlib-right-border-radius);\r\n border-end-end-radius: var(--qlib-right-border-radius);\r\n border-inline-end-width: var(--qlib-right-border-width) !important;\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 {AriaAttributes, ReactNode, forwardRef, useContext, useMemo} from \"react\";\r\nimport {KeyboardEvent, MouseEvent} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem, controlGroupVars} from \"/src/utils/styles\";\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 */\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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,\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 controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled || 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, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {ControlStateProvider} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableContainerProps = CommonProps & {\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isError?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isDisabled?: boolean,\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 isError,\r\n isDisabled,\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 <ControlStateProvider value={useMemo(() => ({isError, isDisabled}), [isError, isDisabled])}>\r\n {children}\r\n </ControlStateProvider>\r\n </label>\r\n );\r\n});\r\n\r\nCheckableContainer.displayName = \"CheckableContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableLabelProps = CommonProps & {\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\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-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\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 isDisabled,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\r\n return (\r\n <div className={className} css={styles.root} ref={ref} data-qlib-disabled={actualIsDisabled} {...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, useContext, useEffect, useRef} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckboxProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<CheckboxProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(scheme, 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n position: relative;\r\n cursor: pointer;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n value,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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(scheme)}\r\n className={className}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n css={styles.original}\r\n ref={mergedRef}\r\n className={inputClassName}\r\n id={inputId || id}\r\n checked={isChecked != null ? isChecked === true : undefined}\r\n name={name}\r\n value={value}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n />\r\n <label css={styles.input} htmlFor={inputId || 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, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {ControlStateProvider} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlContainerProps = CommonProps & {\r\n /**\r\n * `<label>` 要素で描画するかどうか。\r\n * これを `true` にすることで、内部に置くラベルを含んだ全体をクリックしたときに、コントロールをトリガーできるようになります。\r\n * @defaultValue `true`\r\n */\r\n isLabel?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isError?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isDisabled?: boolean,\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<HTMLElement, ControlContainerProps>(({\r\n isLabel = true,\r\n isError,\r\n isDisabled,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = isLabel ? \"label\" : \"div\" as any;\r\n\r\n return (\r\n <TagName className={className} css={styles.root} ref={ref} {...data}>\r\n <ControlStateProvider value={useMemo(() => ({isError, isDisabled}), [isError, isDisabled])}>\r\n {children}\r\n </ControlStateProvider>\r\n </TagName>\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: 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, \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"narrow\"] {\r\n ${lineHeight(1.375, \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"wide\"] {\r\n ${lineHeight(1.625, \"calc(var(--qlib-additional-margin) * -1)\")};\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 `,\r\n inner: (maxLineCount?: number) => css`\r\n &[data-qlib-max-line=\"true\"] {\r\n padding-block: var(--qlib-additional-margin);\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}\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 <span\r\n css={styles.inner(maxLineCount ?? 0)}\r\n data-qlib-max-line={maxLineCount != null}\r\n >\r\n {children}\r\n </span>\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 {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlGroupProps = 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 display: flex;\r\n position: relative;\r\n z-index: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールグループ\r\n *\r\n * #### 説明\r\n * 複数のコントロールを横並びに隣接して表示します。\r\n * 関連性の高いコントロールをまとめて 1 つのコントロールのように見せることができます。\r\n *\r\n * コントロールグループに対応したコンポーネントを直下に置くと、角丸や境界線の設定が自動で適用されます。\r\n * 対応しているコンポーネントは以下の通りです。\r\n * - [`Button`](/docs/atoms-Button-Button--ドキュメント)\r\n * - [`IconButton`](/docs/atoms-IconButton-IconButton--ドキュメント)\r\n * - [`Input`](/docs/atoms-Input-Input--ドキュメント)\r\n * - [`PasswordInput`](/docs/atoms-PasswordInput-PasswordInput--ドキュメント)\r\n * - [`FileInput`](/docs/atoms-FileInput-FileInput--ドキュメント)\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlGroup = forwardRef<HTMLDivElement, ControlGroupProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={[\"qlib-control-group\", className].join(\" \")} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nControlGroup.displayName = \"ControlGroup\";","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, useContext, useRef, useState} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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={actualIsDisabled}\r\n onChange={handleChange}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n {...dataAndAria}\r\n />\r\n <button\r\n css={styles.button}\r\n disabled={actualIsDisabled}\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\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 faBucket,\r\n faCheck,\r\n faChevronDown,\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: faChevronDown,\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, useContext} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 */\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 line-height: 1;\r\n text-align: center;\r\n box-sizing: content-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,\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 const controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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, useContext} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {controlGroupItem, controlGroupVars} from \"/src/utils/styles\";\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 * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、省スペースで表示したいときには `true` にしてください。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: 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 }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\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(1.5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\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(2)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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 isCompact = false,\r\n type = \"text\",\r\n inputMode,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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 === 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-compact={isCompact}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n >\r\n <div css={styles.inputContainer}>\r\n {leftAddon}\r\n <input\r\n css={styles.input}\r\n className={inputClassName}\r\n id={inputId}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n type={type}\r\n inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\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 {useQlibTrans} 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} = useQlibTrans(\"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, faAngleLeft, faAngleRight, faAngleUp} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, MouseEvent, ReactElement, forwardRef, useCallback, useContext, useRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\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 * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、省スペースで表示したいときには `true` にしてください。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\r\n /**\r\n * 数値をインクリメント/デクリメントするためのボタンの配置。\r\n *\r\n * - `\"vertical\"` — 入力欄の右端に上下に配置\r\n * - `\"horizontal\"` — 入力欄の左端と右端に配置\r\n * - `\"none\"` — ボタンを表示しない\r\n * @defaultValue `\"vertical\"`\r\n */\r\n controlPosition?: \"vertical\" | \"horizontal\" | \"none\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\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(1.5)};\r\n --qlib-control-width: ${size(5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n --qlib-control-width: ${size(4)};\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(2)};\r\n --qlib-control-width: ${size(6)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n --qlib-control-width: ${size(4)};\r\n }\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 vertivalButtonList: css`\r\n inline-size: var(--qlib-control-width);\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n margin-inline-end: calc(var(--qlib-padding-inline) * -1);\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n display: flex;\r\n flex-direction: column;\r\n align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n verticalButton: 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 verticalButtonDivider: css`\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n `,\r\n horizontalButton: css`\r\n inline-size: var(--qlib-control-width);\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\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 align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n &[data-position=\"left\"] {\r\n margin-inline-start: calc(var(--qlib-padding-inline) * -1);\r\n margin-inline-end: calc(var(--qlib-padding-inline) - ${size(\"gap\")});\r\n border-inline-end: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n order: -1;\r\n }\r\n &[data-position=\"right\"] {\r\n margin-inline-end: calc(var(--qlib-padding-inline) * -1);\r\n margin-inline-start: calc(var(--qlib-padding-inline) - ${size(\"gap\")});\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n order: 10;\r\n }\r\n &:hover:not([data-disabled=\"true\"]) {\r\n background-color: ${color(\"gray\", 0)};\r\n }\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 isCompact = false,\r\n controlPosition = \"vertical\",\r\n max,\r\n min,\r\n step,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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 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-compact={isCompact}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n {...dataAndAria}\r\n />\r\n {controlPosition === \"horizontal\" && (\r\n <button css={styles.horizontalButton} type=\"button\" onClick={decrement} tabIndex={-1} data-position=\"left\" data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleLeft}/>\r\n </button>\r\n )}\r\n {controlPosition === \"horizontal\" && (\r\n <button css={styles.horizontalButton} type=\"button\" onClick={increment} tabIndex={-1} data-position=\"right\" data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleRight}/>\r\n </button>\r\n )}\r\n {controlPosition === \"vertical\" && (\r\n <div css={styles.vertivalButtonList}>\r\n <button css={styles.verticalButton} type=\"button\" onClick={increment} tabIndex={-1} data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleUp}/>\r\n </button>\r\n <hr css={styles.verticalButtonDivider} aria-hidden={true}/>\r\n <button css={styles.verticalButton} type=\"button\" onClick={decrement} tabIndex={-1} data-disabled={actualIsDisabled}>\r\n <FontAwesomeIcon icon={faAngleDown}/>\r\n </button>\r\n </div>\r\n )}\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, useContext, useId, useState} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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 inputMode,\r\n autoComplete = \"current-password\",\r\n autoFocus,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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 inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\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 {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {radioGroupContext} from \"/src/contexts/radioGroup/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype RadioProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<RadioProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(scheme, 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n position: relative;\r\n cursor: pointer;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n value,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const context = useContext(radioGroupContext);\r\n\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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(scheme)}\r\n className={className}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"radio\"\r\n css={styles.original}\r\n ref={ref}\r\n className={inputClassName}\r\n id={inputId || 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={actualIsDisabled}\r\n onChange={context?.onSet != null || onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n />\r\n <label css={styles.input} htmlFor={inputId || 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\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-use\");","import {\r\n Dispatch,\r\n ReactElement,\r\n ReactNode,\r\n SetStateAction,\r\n cloneElement,\r\n createContext,\r\n useCallback,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from \"react\";\r\n\r\n\r\ntype DialogContextValue = {\r\n open: () => Promise<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: async () => undefined,\r\n close: () => undefined,\r\n setDialogSpec: () => undefined\r\n});\r\n\r\nexport const DialogProvider: React.FC<{children: ReactNode}> = ({children}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n const resolveRef = useRef<() => void>(() => undefined);\r\n\r\n const open = useCallback(() => {\r\n resolveRef.current();\r\n return new Promise<void>((resolve) => {\r\n resolveRef.current = resolve;\r\n setOpen(true);\r\n });\r\n }, []);\r\n const close = useCallback(() => {\r\n setOpen(false);\r\n resolveRef.current();\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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};","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 *\r\n * なお、環境に応じて CSS を切り替えたいだけの場合は、CSS 定義内で `whenSmartphone`, `whenDesktop` ユーティリティを使う方が軽量です。\r\n * このフックは、環境に応じて処理を切り替える必要がある場合にのみ使用してください。\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};","import {useEffect, useState} from \"react\";\r\nimport type {BehaviorSubject, Subject} from \"rxjs\";\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};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs\");","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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 transNumber\r\n }), [\r\n trans,\r\n transDate,\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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\") => 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};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\r\nimport {css} from \"@emotion/react\";\r\nimport {color, fontFamily, fontWeight} from \"/src/components/functions/utilities\";\r\n\r\n\r\nexport interface GlobalCssSetting {\r\n resetAll?: boolean;\r\n font?: boolean;\r\n wrap?: boolean;\r\n}\r\nexport const DEFAULT_GLOBAL_CSS_SETTING = {\r\n resetAll: true,\r\n font: true,\r\n wrap: true\r\n} satisfies Required<GlobalCssSetting>;\r\n\r\nexport const defaultGlobalStyle = (rootFontSize: string, setting: GlobalCssSetting) => css`\r\n ${setting.font ? 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 ` : \"\"}\r\n\r\n :root {\r\n --qlib-root-font-size: ${rootFontSize};\r\n }\r\n html {\r\n font-size: ${rootFontSize};\r\n ${setting.font ? css`\r\n font-family: ${fontFamily()};\r\n ` : \"\"}\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 ${setting.wrap ? css`\r\n overflow-wrap: break-word;\r\n ` : \"\"}\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 ${setting.resetAll ? css`\r\n all: unset;\r\n display: revert;\r\n ` : \"\"}\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`;","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};","import {Global, Interpolation} 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 {useMedia} from \"react-use\";\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 {DEFAULT_GLOBAL_CSS_SETTING, GlobalCssSetting, defaultGlobalStyle} from \"./defaultGlobalStyle\";\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 * デフォルトで適用されるグローバル CSS の設定。\r\n */\r\n globalCssSetting?: GlobalCssSetting,\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 defaultReady?: boolean,\r\n /** */\r\n children: ReactNode\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 globalCssSetting,\r\n appElement,\r\n defaultReady = false,\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 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 const isSmartphone = useMedia(smartphoneQuery, false);\r\n useEffect(() => {\r\n document.documentElement.setAttribute(\"data-qlib-smartphone\", isSmartphone.toString());\r\n }, [isSmartphone]);\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 const [isReady, setReady] = useState(defaultReady);\r\n useEffect(() => {\r\n setReady(true);\r\n }, []);\r\n\r\n return (\r\n <Fragment>\r\n <Global styles={defaultGlobalStyle(resolvedRootFontSize, Object.assign({}, DEFAULT_GLOBAL_CSS_SETTING, globalCssSetting ?? {}))}/>\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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, useContext} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SwitchProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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: (scheme: NonNullable<SwitchProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 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(scheme, 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 &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\r\n return (\r\n <RawSwitch.Root\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref}\r\n name={name}\r\n checked={isChecked}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onCheckedChange={onSet}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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, useContext} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 * - `false` — 右端でテキストは折り返されず、水平スクロールバーが表示されます。\r\n * @defaultValue `true`\r\n */\r\n isWrapped?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<textarea>` 要素のクラス名。\r\n */\r\n textareaClassName?: string,\r\n /**\r\n * 内部の `<textarea>` 要素の ID。\r\n */\r\n textareaId?: 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 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 padding-inline: ${size(2)};\r\n line-height: 1.5;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n box-sizing: border-box;\r\n &[data-qlib-wrapped=\"true\"] {\r\n white-space: pre-wrap;\r\n }\r\n &[data-qlib-wrapped=\"false\"] {\r\n white-space: pre;\r\n }\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 inputMode,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isWrapped = true,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n textareaClassName,\r\n textareaId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n >\r\n <div css={styles.inputContainer}>\r\n <textarea\r\n css={styles.input}\r\n className={textareaClassName}\r\n id={textareaId}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n rows={rowCount}\r\n inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n data-qlib-wrapped={isWrapped}\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 {useQlibTrans} 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} = useQlibTrans(\"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 * - [`CardGrip`](/docs/atoms-Card-CardGrip--ドキュメント) (任意)\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 * <CardGrip/>\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 * @defaultValue `true`\r\n */\r\n isStretched?: boolean,\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 &:first-of-type {\r\n --qlib-top-right-border-radius: var(--qlib-right-border-radius);\r\n }\r\n &:not(:first-of-type) {\r\n --qlib-top-right-border-radius: ${size(0)};\r\n }\r\n &:last-of-type {\r\n --qlib-bottom-border-width: ${borderWidth(1)};\r\n &[data-qlib-stretched=\"true\"] {\r\n --qlib-bottom-right-border-radius: var(--qlib-right-border-radius);\r\n flex: 1 1 auto;\r\n }\r\n &[data-qlib-stretched=\"false\"] {\r\n --qlib-bottom-right-border-radius: ${size(0)};\r\n flex: 0 0 auto;\r\n }\r\n }\r\n &:not(:last-of-type) {\r\n --qlib-bottom-right-border-radius: ${size(0)};\r\n --qlib-bottom-border-width: ${borderWidth(0)};\r\n flex: 0 0 auto;\r\n }\r\n &[data-qlib-stretched=\"true\"] {\r\n --qlib-bottom-left-border-radius: ${size(0)};\r\n }\r\n &[data-qlib-stretched=\"false\"] {\r\n --qlib-bottom-left-border-radius: ${size(1)};\r\n }\r\n inline-size: ${size(8)};\r\n padding-block: ${size(2)};\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 border-block-end-width: var(--qlib-bottom-border-width);\r\n border-inline-end-width: var(--qlib-right-border-width) !important;\r\n border-start-end-radius: var(--qlib-top-right-border-radius);\r\n border-end-start-radius: var(--qlib-bottom-left-border-radius);\r\n border-end-end-radius: var(--qlib-bottom-right-border-radius);\r\n border-start-start-radius: ${size(0)};\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 &: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 isStretched = true,\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 data-qlib-stretched={isStretched}\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 {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 CardButtonListColumnProps = 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 flex-direction: column;\r\n flex-shrink: 0;\r\n &:last-of-type {\r\n --qlib-right-border-width: ${borderWidth(1)};\r\n --qlib-right-border-radius: ${size(1)};\r\n }\r\n &:not(:last-of-type) {\r\n --qlib-right-border-width: ${borderWidth(0)};\r\n --qlib-right-border-radius: ${size(0)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardButtonListColumn = forwardRef<HTMLDivElement, CardButtonListColumnProps>(({\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\nCardButtonListColumn.displayName = \"CardButtonListColumn\";","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 {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faGripVertical} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {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 CardGripProps = CommonProps & {\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-inline-start: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: grab;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n order: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardGrip = forwardRef<HTMLDivElement, CardGripProps>(({\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div\r\n className={className}\r\n css={styles.root}\r\n ref={ref}\r\n {...data}\r\n >\r\n <FontAwesomeIcon icon={faGripVertical}/>\r\n </div>\r\n );\r\n});\r\n\r\nCardGrip.displayName = \"CardGrip\";","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 `null`\r\n */\r\n maxLineCount?: 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 maxLineCount = null,\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} maxLineCount={maxLineCount} 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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 flex: 0 0 auto;\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 {MultiLineText} from \"/src/components/atoms/multiLineText\";\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 <MultiLineText css={styles.root} className={className} lineHeight=\"normalFixed\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\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 {useQlibTrans} 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.75;\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(0.5)};\r\n padding-inline: ${size(1)};\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} = useQlibTrans(\"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(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 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 {Button} from \"/src/components/atoms/button\";\r\n\r\n\r\n/**\r\n * @deprecated\r\n * 代わりに `Button` を利用してください。\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogButton = Button;","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 {useQlibTrans} 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(6)};\r\n inline-size: ${size(6)};\r\n font-size: ${size(5)};\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} = useQlibTrans(\"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 {borderWidth, 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(3)};\r\n padding-inline: ${size(8)};\r\n column-gap: ${size(4)};\r\n background-color: ${color(\"white\")};\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 1)};\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 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 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 * ### ドロワー\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Drawer`**\r\n * - [`DrawerHeader`](/docs/modules-Drawer-DrawerHeader--ドキュメント) (任意)\r\n * - [`DrawerHeaderLeft`](/docs/modules-Drawer-DrawerHeaderLeft--ドキュメント)\r\n * - [`DrawerHeaderTitle`](/docs/modules-Drawer-DrawerHeaderTitle--ドキュメント)\r\n * - [`DrawerHeaderCaption`](/docs/modules-Drawer-DrawerHeaderCaption--ドキュメント) (任意)\r\n * - [`DrawerHeaderRight`](/docs/modules-Drawer-DrawerHeaderRight--ドキュメント)\r\n * - [`DrawerBody`](/docs/modules-Drawer-DrawerBody--ドキュメント)\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 {size} from \"/src/components/functions/utilities\";\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\r\nconst styles = {\r\n root: css`\r\n padding-inline: var(--qlib-padding-inline);\r\n padding-block: ${size(8)};\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 {Button} from \"/src/components/atoms/button\";\r\n\r\n\r\n/**\r\n * @deprecated\r\n * 代わりに `Button` を利用してください。\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerButton = Button;","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\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 {borderWidth, color, 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\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(4)};\r\n padding-inline: var(--qlib-padding-inline);\r\n column-gap: ${size(8)};\r\n background-color: ${color(\"white\")};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n display: flex;\r\n align-items: 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 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} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerHeaderLeftProps = CommonProps & {\r\n /** */\r\n children: ReactNode\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 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 DrawerHeaderLeft = forwardRef<HTMLDivElement, DrawerHeaderLeftProps>(({\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\nDrawerHeaderLeft.displayName = \"DrawerHeaderLeft\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerHeaderRightProps = CommonProps & {\r\n /** */\r\n children: ReactNode\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 DrawerHeaderRight = forwardRef<HTMLDivElement, DrawerHeaderRightProps>(({\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\nDrawerHeaderRight.displayName = \"DrawerHeaderRight\";","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\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 return (\r\n <div css={styles.root} className={className} ref={ref} data-qlib-size={size} {...data}>\r\n <FootnoteListProvider value={useMemo(() => ({size}), [size])}>\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\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:not(:disabled),\r\n &:focus:not(:disabled) {\r\n background-color: ${color(scheme ?? \"primary\", 0)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\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 isDisabled = false,\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 disabled: isDisabled\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 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 {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TabProps = CommonProps & {\r\n /** */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n isDisabled?: boolean,\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: (scheme: NonNullable<TabProps[\"scheme\"]>) => 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 position: relative;\r\n transition: background-color 0.2s ease;\r\n &:hover:not([data-qlib-disabled=\"true\"]),\r\n &:focus:not([data-qlib-disabled=\"true\"]) {\r\n --qlib-highlight-color: ${color(\"gray\", 5)};\r\n cursor: pointer;\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-qlib-active=\"true\"]:not([data-qlib-disabled=\"true\"]) {\r\n --qlib-highlight-color: ${color(scheme, 5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(scheme, 5)};\r\n }\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.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 scheme = \"primary\",\r\n isDisabled = false,\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(scheme)}\r\n className={className}\r\n ref={ref as any}\r\n href={isDisabled ? undefined : href}\r\n role={isDisabled ? \"link\" : undefined}\r\n onClick={onClick}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-active={isActive}\r\n aria-disabled={isDisabled}\r\n {...data}\r\n >\r\n {children}\r\n </a>\r\n ) : (\r\n <button\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref as any}\r\n disabled={isDisabled}\r\n onClick={onClick}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-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: (onClose: () => void) => ReactElement) => Promise<void>;\r\n\r\n/**\r\n * ダイアログを表示する関数 `openDialog` を返します。\r\n * `openDialog` 関数にダイアログのレンダー関数を渡すと、そのダイアログが表示されます。\r\n * ダイアログのレンダー関数にはダイアログを閉じるための関数が渡されるので、キャンセルボタン等に利用してください。\r\n *\r\n * `openDialog` 関数に渡すレンダー関数が返すコンポーネントには、`isOpen`, `onClose` prop が暗黙的に渡されます。\r\n * そのため、レンダー関数が独自コンポーネントを返す場合は、そのコンポーネントは `isOpen`, `onClose` prop を受け取って適切に処理しなければなりません。\r\n *\r\n * `openDialog` 関数自体は Promise を返します。\r\n * この Promise は、ダイアログを閉じたときに解決されます。\r\n */\r\nexport const useDialog = (): OpenDialog => {\r\n const {open, close, setDialogSpec} = useContext(dialogContext);\r\n\r\n const openDialog = useCallback(async (render: (onClose: () => void) => ReactElement): Promise<void> => {\r\n const dialogSpec = {\r\n element: render(close)\r\n };\r\n setDialogSpec(dialogSpec);\r\n await 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","unitGap","max","size","borderWidth","boxShadow","inset","whenSmartphone","whenDesktop","lineHeight","additionalMargin","fixedLineHeight","useQlibTrans","scope","intl","trans","useCallback","values","fullKey","replace","defaultMessage","formatMessage","id","transDate","date","style","locale","format","Error","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","backgroundColor","faUser","AvatarFallbackLetter","name","initial","Badge","BadgeIconContainer","getElements","normalizeNode","elements","filter","isValidElement","length","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","controlStateContext","ControlStateProvider","controlGroupVars","rootBox","rootText","rootUnstyled","loading","Button","isCompact","type","isLoading","onClick","onKeyDown","onKeyUp","onMouseDown","onPointerDown","dataAndAria","controlState","actualIsDisabled","disabled","ButtonIconContainer","CheckableContainer","CheckableLabel","original","Checkbox","isChecked","isRequired","onBlur","inputClassName","inputId","actualIsError","useId","mergedRef","useMergeRefs","event","target","checked","useEffect","indeterminate","required","htmlFor","faMinus","faCheck","ControlContainer","isLabel","maxLineCount","MultiLineText","ControlErrorMessage","ControlHelper","ControlLabel","ControlGroup","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","faChevronDown","grip","faGripVertical","ellipsis","faEllipsisH","Icon","IconButton","InputLeftAddon","InputRightAddon","inputMode","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","vertivalButtonList","verticalButton","verticalButtonDivider","horizontalButton","NumberInput","controlPosition","step","increment","stepUp","dispatchEvent","Event","bubbles","decrement","stepDown","tabIndex","faAngleLeft","faAngleRight","PasswordInputLeftAddon","PasswordInputRightAddon","PasswordInput","initialReveal","reveal","setReveal","toggleReveal","faEyeSlash","faEye","radioGroupContext","RadioGroupProvider","Radio","RadioGroup","radioGroupContextValue","AlignedRadioGroup","dialogContext","open","close","setDialogSpec","DialogProvider","setOpen","resolveRef","Promise","resolve","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","useSubject","subject","setValue","subscription","subscribe","unsubscribe","useBehaviorSubject","intlSubject","BehaviorSubject","createIntl","onError","localeSubject","useIntl","useLocale","useSetLocale","localStorage","setItem","useTrans","useTranslation","createTrans","DEFAULT_GLOBAL_CSS_SETTING","resetAll","font","wrap","defaultGlobalStyle","SvgDefinition","viewBox","x1","y1","x2","y2","gradientUnits","offset","stopColor","Root","colorDefinitions","globalStyle","globalCssSetting","appElement","defaultReady","setLocale","resolvedRootFontSize","rootContextValue","mergedMessages","intlCache","createIntlCache","documentElement","setAttribute","toString","getItem","inferredAppElement","isReady","setReady","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","isWrapped","textareaClassName","textareaId","rows","VisuallyHidden","BulkOperationContainer","badge","BulkOperationButton","count","setHovered","setFocusVisible","Card","isHovered","isFocusVisible","CardHeadnote","CardBody","hasHeadnote","some","handleMouseEnter","handleMouseLeave","handleFocus","matches","handleBlur","onMouseEnter","onMouseLeave","onFocus","CardButton","isStretched","CardButtonList","CardButtonListColumn","stopPropagation","CardControlContainer","CardGrip","CardTitle","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","DrawerHeader","DrawerHeaderLeft","DrawerHeaderRight","DrawerTitle","footnoteListContext","FootnoteListProvider","Footnote","FootnoteIconContainer","FootnoteList","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","addedToastSpec","toasts","toast"],"sourceRoot":""}
|
|
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/contexts/controlState/context.ts","webpack://@baton8/general-components/./src/utils/styles.ts","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/controlGroup/controlGroup.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/external commonjs \"react-use\"","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/./src/modules/responsive.ts","webpack://@baton8/general-components/./src/modules/subject.ts","webpack://@baton8/general-components/external commonjs \"rxjs\"","webpack://@baton8/general-components/./src/modules/translation.ts","webpack://@baton8/general-components/./src/components/atoms/root/defaultGlobalStyle.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/components/modules/card/cardButtonListColumn.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/cardGrip.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/drawerHeader.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerHeaderLeft.tsx","webpack://@baton8/general-components/./src/components/modules/drawer/drawerHeaderRight.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/popover/popover.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 unitGap: `${4 / 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 * - `\"unitGap\"` — テキストにおける数値と単位の間隔 (4/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 * スマートフォン環境のときにマッチする CSS セレクタを返します。\r\n * スマートフォン環境のチェック条件は、`Root` コンポーネントの `smartphoneQuery` prop で設定できます。\r\n * @category CSS ユーティリティ\r\n */\r\nexport function whenSmartphone(): string {\r\n return \"html[data-qlib-smartphone=\\\"true\\\"] &\";\r\n}\r\n\r\n/**\r\n * デスクトップ環境のときにマッチする CSS セレクタを返します。\r\n * スマートフォン環境のチェック条件は、`Root` コンポーネントの `smartphoneQuery` prop で設定できます。\r\n * @category CSS ユーティリティ\r\n */\r\nexport function whenDesktop(): string {\r\n return \"html[data-qlib-smartphone=\\\"false\\\"] &\";\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 useQlibTrans = (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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 transNumber\r\n }), [\r\n trans,\r\n transDate,\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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(\"white\")};\r\n --qlib-background-color: ${color(scheme, 4)};\r\n }\r\n &[data-qlib-variant=\"light\"] {\r\n --qlib-color: ${color(scheme, 5)};\r\n --qlib-background-color: ${color(scheme, 1)};\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 = \"light\",\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 {createContext} from \"react\";\r\n\r\n\r\ntype ControlStateContextValue = {\r\n isDisabled?: boolean,\r\n isError?: boolean\r\n};\r\n\r\nexport const controlStateContext = createContext<ControlStateContextValue | undefined>(undefined);\r\nexport const ControlStateProvider = controlStateContext.Provider;","import {borderWidth, size} from \"/src/components/functions/utilities\";\r\n\r\n\r\nexport const controlGroupVars = (): string => {\r\n return `\r\n --qlib-left-border-radius: ${size(1)};\r\n --qlib-right-border-radius: ${size(1)};\r\n --qlib-right-border-width: ${borderWidth(1)};\r\n .qlib-control-group >& {\r\n &:first-child {\r\n --qlib-left-border-radius: ${size(1)};\r\n }\r\n &:not(:first-child) {\r\n --qlib-left-border-radius: ${size(0)};\r\n }\r\n &:last-child {\r\n --qlib-right-border-radius: ${size(1)};\r\n }\r\n &:not(:last-child) {\r\n --qlib-right-border-radius: ${size(0)};\r\n --qlib-right-border-width: ${borderWidth(0)};\r\n }\r\n }\r\n `;\r\n};\r\n\r\nexport const controlGroupItem = (): string => {\r\n return `\r\n border-start-start-radius: var(--qlib-left-border-radius);\r\n border-end-start-radius: var(--qlib-left-border-radius);\r\n border-start-end-radius: var(--qlib-right-border-radius);\r\n border-end-end-radius: var(--qlib-right-border-radius);\r\n border-inline-end-width: var(--qlib-right-border-width) !important;\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 {AriaAttributes, ReactNode, forwardRef, useContext, useMemo} from \"react\";\r\nimport {KeyboardEvent, MouseEvent} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem, controlGroupVars} from \"/src/utils/styles\";\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 */\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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,\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 controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled || 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, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {ControlStateProvider} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableContainerProps = CommonProps & {\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isError?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isDisabled?: boolean,\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 isError,\r\n isDisabled,\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 <ControlStateProvider value={useMemo(() => ({isError, isDisabled}), [isError, isDisabled])}>\r\n {children}\r\n </ControlStateProvider>\r\n </label>\r\n );\r\n});\r\n\r\nCheckableContainer.displayName = \"CheckableContainer\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef, useContext} from \"react\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckableLabelProps = CommonProps & {\r\n /**\r\n * 無効にするかどうか。\r\n */\r\n isDisabled?: boolean,\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-disabled=\"true\"] {\r\n opacity: 0.5;\r\n }\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 isDisabled,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\r\n return (\r\n <div className={className} css={styles.root} ref={ref} data-qlib-disabled={actualIsDisabled} {...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, useContext, useEffect, useRef} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype CheckboxProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<CheckboxProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(scheme, 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n position: relative;\r\n cursor: pointer;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n value,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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(scheme)}\r\n className={className}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n css={styles.original}\r\n ref={mergedRef}\r\n className={inputClassName}\r\n id={inputId || id}\r\n checked={isChecked != null ? isChecked === true : undefined}\r\n name={name}\r\n value={value}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n />\r\n <label css={styles.input} htmlFor={inputId || 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, useMemo} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {ControlStateProvider} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlContainerProps = CommonProps & {\r\n /**\r\n * `<label>` 要素で描画するかどうか。\r\n * これを `true` にすることで、内部に置くラベルを含んだ全体をクリックしたときに、コントロールをトリガーできるようになります。\r\n * @defaultValue `true`\r\n */\r\n isLabel?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isError?: boolean,\r\n /**\r\n * 無効にするかどうか。\r\n * `boolean` 値を設定すると、その値が子要素に伝搬されます。\r\n */\r\n isDisabled?: boolean,\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<HTMLElement, ControlContainerProps>(({\r\n isLabel = true,\r\n isError,\r\n isDisabled,\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n const TagName = isLabel ? \"label\" : \"div\" as any;\r\n\r\n return (\r\n <TagName className={className} css={styles.root} ref={ref} {...data}>\r\n <ControlStateProvider value={useMemo(() => ({isError, isDisabled}), [isError, isDisabled])}>\r\n {children}\r\n </ControlStateProvider>\r\n </TagName>\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: 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, \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"narrow\"] {\r\n ${lineHeight(1.375, \"calc(var(--qlib-additional-margin) * -1)\")};\r\n }\r\n &[data-qlib-line-height=\"wide\"] {\r\n ${lineHeight(1.625, \"calc(var(--qlib-additional-margin) * -1)\")};\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 `,\r\n inner: (maxLineCount?: number) => css`\r\n &[data-qlib-max-line=\"true\"] {\r\n padding-block: var(--qlib-additional-margin);\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}\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 <span\r\n css={styles.inner(maxLineCount ?? 0)}\r\n data-qlib-max-line={maxLineCount != null}\r\n >\r\n {children}\r\n </span>\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 {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype ControlGroupProps = 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 display: flex;\r\n position: relative;\r\n z-index: 0;\r\n `\r\n};\r\n\r\n/**\r\n * ### コントロールグループ\r\n *\r\n * #### 説明\r\n * 複数のコントロールを横並びに隣接して表示します。\r\n * 関連性の高いコントロールをまとめて 1 つのコントロールのように見せることができます。\r\n *\r\n * コントロールグループに対応したコンポーネントを直下に置くと、角丸や境界線の設定が自動で適用されます。\r\n * 対応しているコンポーネントは以下の通りです。\r\n * - [`Button`](/docs/atoms-Button-Button--ドキュメント)\r\n * - [`IconButton`](/docs/atoms-IconButton-IconButton--ドキュメント)\r\n * - [`Input`](/docs/atoms-Input-Input--ドキュメント)\r\n * - [`PasswordInput`](/docs/atoms-PasswordInput-PasswordInput--ドキュメント)\r\n * - [`FileInput`](/docs/atoms-FileInput-FileInput--ドキュメント)\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const ControlGroup = forwardRef<HTMLDivElement, ControlGroupProps>(({\r\n children,\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div css={styles.root} className={[\"qlib-control-group\", className].join(\" \")} ref={ref} {...data}>\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\nControlGroup.displayName = \"ControlGroup\";","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, useContext, useRef, useState} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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={actualIsDisabled}\r\n onChange={handleChange}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n {...dataAndAria}\r\n />\r\n <button\r\n css={styles.button}\r\n disabled={actualIsDisabled}\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\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 faBucket,\r\n faCheck,\r\n faChevronDown,\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: faChevronDown,\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, useContext} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 */\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 line-height: 1;\r\n text-align: center;\r\n box-sizing: content-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,\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 const controlState = useContext(controlStateContext);\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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, useContext} from \"react\";\r\nimport {GeneralIcon} from \"/src/components/atoms/generalIcon\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {controlGroupItem, controlGroupVars} from \"/src/utils/styles\";\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 * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、省スペースで表示したいときには `true` にしてください。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: 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 }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\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(1.5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\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(2)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n }\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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 isCompact = false,\r\n type = \"text\",\r\n inputMode,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n children,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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 === 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-compact={isCompact}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n >\r\n <div css={styles.inputContainer}>\r\n {leftAddon}\r\n <input\r\n css={styles.input}\r\n className={inputClassName}\r\n id={inputId}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n type={type}\r\n inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\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 {useQlibTrans} 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} = useQlibTrans(\"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, faAngleLeft, faAngleRight, faAngleUp} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {AriaAttributes, ChangeEvent, MouseEvent, ReactElement, forwardRef, useCallback, useContext, useRef} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\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 * 内部の余白を少なくし、全体を少し小さめに表示するかどうか。\r\n * 基本的には `false` (デフォルト値) で使うことを推奨しますが、省スペースで表示したいときには `true` にしてください。\r\n * @defaultValue `false`\r\n */\r\n isCompact?: boolean,\r\n /**\r\n * 数値をインクリメント/デクリメントするためのボタンの配置。\r\n *\r\n * - `\"vertical\"` — 入力欄の右端に上下に配置\r\n * - `\"horizontal\"` — 入力欄の左端と右端に配置\r\n * - `\"none\"` — ボタンを表示しない\r\n * @defaultValue `\"vertical\"`\r\n */\r\n controlPosition?: \"vertical\" | \"horizontal\" | \"none\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 }\r\n &[data-qlib-size=\"medium\"] {\r\n --qlib-font-size: ${size(4)};\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(1.5)};\r\n --qlib-control-width: ${size(5)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n --qlib-control-width: ${size(4)};\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(2)};\r\n --qlib-control-width: ${size(6)};\r\n }\r\n &[data-qlib-compact=\"true\"] {\r\n --qlib-padding-block: ${size(1)};\r\n --qlib-padding-inline: ${size(1.5)};\r\n --qlib-control-width: ${size(4)};\r\n }\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 vertivalButtonList: css`\r\n inline-size: var(--qlib-control-width);\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\r\n margin-inline-end: calc(var(--qlib-padding-inline) * -1);\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n display: flex;\r\n flex-direction: column;\r\n align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n `,\r\n verticalButton: 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 verticalButtonDivider: css`\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n `,\r\n horizontalButton: css`\r\n inline-size: var(--qlib-control-width);\r\n block-size: calc(var(--qlib-font-size) + var(--qlib-padding-block) * 2);\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 align-self: stretch;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n &[data-position=\"left\"] {\r\n margin-inline-start: calc(var(--qlib-padding-inline) * -1);\r\n margin-inline-end: calc(var(--qlib-padding-inline) - ${size(\"gap\")});\r\n border-inline-end: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n order: -1;\r\n }\r\n &[data-position=\"right\"] {\r\n margin-inline-end: calc(var(--qlib-padding-inline) * -1);\r\n margin-inline-start: calc(var(--qlib-padding-inline) - ${size(\"gap\")});\r\n border-inline-start: solid ${borderWidth(1)} ${color(\"gray\", 3)};\r\n order: 10;\r\n }\r\n &:hover:not([data-disabled=\"true\"]) {\r\n background-color: ${color(\"gray\", 0)};\r\n }\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 isCompact = false,\r\n controlPosition = \"vertical\",\r\n max,\r\n min,\r\n step,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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 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-compact={isCompact}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n {...dataAndAria}\r\n />\r\n {controlPosition === \"horizontal\" && (\r\n <button css={styles.horizontalButton} type=\"button\" onClick={decrement} tabIndex={-1} data-position=\"left\" data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleLeft}/>\r\n </button>\r\n )}\r\n {controlPosition === \"horizontal\" && (\r\n <button css={styles.horizontalButton} type=\"button\" onClick={increment} tabIndex={-1} data-position=\"right\" data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleRight}/>\r\n </button>\r\n )}\r\n {controlPosition === \"vertical\" && (\r\n <div css={styles.vertivalButtonList}>\r\n <button css={styles.verticalButton} type=\"button\" onClick={increment} tabIndex={-1} data-disabled={actualIsDisabled} aria-hidden={true}>\r\n <FontAwesomeIcon icon={faAngleUp}/>\r\n </button>\r\n <hr css={styles.verticalButtonDivider} aria-hidden={true}/>\r\n <button css={styles.verticalButton} type=\"button\" onClick={decrement} tabIndex={-1} data-disabled={actualIsDisabled}>\r\n <FontAwesomeIcon icon={faAngleDown}/>\r\n </button>\r\n </div>\r\n )}\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, useContext, useId, useState} from \"react\";\r\nimport {alpha, borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\nimport {getElements} from \"/src/utils/node\";\r\nimport {controlGroupItem} from \"/src/utils/styles\";\r\nimport {controlGroupVars} from \"/src/utils/styles\";\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 // ControlGroup 対応\r\n ${controlGroupVars()}\r\n ${controlGroupItem()}\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 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 inputMode,\r\n autoComplete = \"current-password\",\r\n autoFocus,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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 inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\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 {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {radioGroupContext} from \"/src/contexts/radioGroup/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype RadioProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 * 内部の `<input>` 要素のクラス名。\r\n */\r\n inputClassName?: string,\r\n /**\r\n * 内部の `<input>` 要素の ID。\r\n */\r\n inputId?: string\r\n};\r\n\r\nconst styles = {\r\n root: (scheme: NonNullable<RadioProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-checked-border-color: ${color(\"red\", 6)};\r\n --qlib-checked-background-color: ${color(scheme, 4)};\r\n }\r\n }\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n position: relative;\r\n cursor: pointer;\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\r\n }\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n value,\r\n isError,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n inputClassName,\r\n inputId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const context = useContext(radioGroupContext);\r\n\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\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(scheme)}\r\n className={className}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n {...dataAndAria}\r\n >\r\n <input\r\n type=\"radio\"\r\n css={styles.original}\r\n ref={ref}\r\n className={inputClassName}\r\n id={inputId || 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={actualIsDisabled}\r\n onChange={context?.onSet != null || onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n />\r\n <label css={styles.input} htmlFor={inputId || 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\";","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-use\");","import {\r\n Dispatch,\r\n ReactElement,\r\n ReactNode,\r\n SetStateAction,\r\n cloneElement,\r\n createContext,\r\n useCallback,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from \"react\";\r\n\r\n\r\ntype DialogContextValue = {\r\n open: () => Promise<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: async () => undefined,\r\n close: () => undefined,\r\n setDialogSpec: () => undefined\r\n});\r\n\r\nexport const DialogProvider: React.FC<{children: ReactNode}> = ({children}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n const resolveRef = useRef<() => void>(() => undefined);\r\n\r\n const open = useCallback(() => {\r\n resolveRef.current();\r\n return new Promise<void>((resolve) => {\r\n resolveRef.current = resolve;\r\n setOpen(true);\r\n });\r\n }, []);\r\n const close = useCallback(() => {\r\n setOpen(false);\r\n resolveRef.current();\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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};","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 *\r\n * なお、環境に応じて CSS を切り替えたいだけの場合は、CSS 定義内で `whenSmartphone`, `whenDesktop` ユーティリティを使う方が軽量です。\r\n * このフックは、環境に応じて処理を切り替える必要がある場合にのみ使用してください。\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};","import {useEffect, useState} from \"react\";\r\nimport type {BehaviorSubject, Subject} from \"rxjs\";\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};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs\");","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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 transNumber\r\n }), [\r\n trans,\r\n transDate,\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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\"): string => {\r\n if (date !== null && date !== undefined) {\r\n const locale = intl.locale;\r\n if (locale === \"ja\") {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(\"ja\").format(\"YYYY/MM/DD\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(\"ja\").format(\"MM/DD\");\r\n case \"time\":\r\n return dayjs(date).locale(\"ja\").format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\r\n } else {\r\n switch (style) {\r\n case \"datetime\":\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY HH:mm\");\r\n case \"date\":\r\n case undefined:\r\n return dayjs(date).locale(locale).format(\"DD/MM/YYYY\");\r\n case \"shortDate\":\r\n return dayjs(date).locale(locale).format(\"DD/MM\");\r\n case \"time\":\r\n return dayjs(date).locale(locale).format(\"HH:mm\");\r\n default:\r\n style satisfies never;\r\n throw new Error();\r\n }\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 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, style?: \"datetime\" | \"date\" | \"shortDate\" | \"time\") => 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};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\r\nimport {css} from \"@emotion/react\";\r\nimport {color, fontFamily, fontWeight} from \"/src/components/functions/utilities\";\r\n\r\n\r\nexport interface GlobalCssSetting {\r\n resetAll?: boolean;\r\n font?: boolean;\r\n wrap?: boolean;\r\n}\r\nexport const DEFAULT_GLOBAL_CSS_SETTING = {\r\n resetAll: true,\r\n font: true,\r\n wrap: true\r\n} satisfies Required<GlobalCssSetting>;\r\n\r\nexport const defaultGlobalStyle = (rootFontSize: string, setting: GlobalCssSetting) => css`\r\n ${setting.font ? 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 ` : \"\"}\r\n\r\n :root {\r\n --qlib-root-font-size: ${rootFontSize};\r\n }\r\n html {\r\n font-size: ${rootFontSize};\r\n ${setting.font ? css`\r\n font-family: ${fontFamily()};\r\n ` : \"\"}\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 ${setting.wrap ? css`\r\n overflow-wrap: break-word;\r\n ` : \"\"}\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 ${setting.resetAll ? css`\r\n all: unset;\r\n display: revert;\r\n ` : \"\"}\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`;","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};","import {Global, Interpolation} 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 {useMedia} from \"react-use\";\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 {DEFAULT_GLOBAL_CSS_SETTING, GlobalCssSetting, defaultGlobalStyle} from \"./defaultGlobalStyle\";\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 * デフォルトで適用されるグローバル CSS の設定。\r\n */\r\n globalCssSetting?: GlobalCssSetting,\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 defaultReady?: boolean,\r\n /** */\r\n children: ReactNode\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 globalCssSetting,\r\n appElement,\r\n defaultReady = false,\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 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 const isSmartphone = useMedia(smartphoneQuery, false);\r\n useEffect(() => {\r\n document.documentElement.setAttribute(\"data-qlib-smartphone\", isSmartphone.toString());\r\n }, [isSmartphone]);\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 const [isReady, setReady] = useState(defaultReady);\r\n useEffect(() => {\r\n setReady(true);\r\n }, []);\r\n\r\n return (\r\n <Fragment>\r\n <Global styles={defaultGlobalStyle(resolvedRootFontSize, Object.assign({}, DEFAULT_GLOBAL_CSS_SETTING, globalCssSetting ?? {}))}/>\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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, useContext} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\r\nimport {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype SwitchProps = CommonProps & AriaAttributes & {\r\n /**\r\n * カラースキーム。\r\n * @defaultValue `\"primary\"`\r\n */\r\n scheme?: LeveledColorScheme,\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 */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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: (scheme: NonNullable<SwitchProps[\"scheme\"]>) => css`\r\n &[data-qlib-error=\"false\"] {\r\n --qlib-border-color: ${color(\"gray\", 5)};\r\n --qlib-focus-color: ${alpha(color(scheme, 5), 0.6)};\r\n &:not(:hover) {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 5)};\r\n }\r\n &:hover {\r\n --qlib-background-color: ${color(\"gray\", 1)};\r\n --qlib-checked-border-color: ${color(scheme, 6)};\r\n --qlib-checked-background-color: ${color(scheme, 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(scheme, 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(scheme, 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 &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.5;\r\n cursor: inherit;\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 scheme = \"primary\",\r\n isChecked,\r\n name,\r\n isError,\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 controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\r\n return (\r\n <RawSwitch.Root\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref}\r\n name={name}\r\n checked={isChecked}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onCheckedChange={onSet}\r\n data-qlib-disabled={actualIsDisabled}\r\n data-qlib-error={actualIsError}\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, useContext} from \"react\";\r\nimport {borderWidth, color, size} from \"/src/components/functions/utilities\";\r\nimport {controlStateContext} from \"/src/contexts/controlState/context\";\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 inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\",\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 * - `false` — 右端でテキストは折り返されず、水平スクロールバーが表示されます。\r\n * @defaultValue `true`\r\n */\r\n isWrapped?: boolean,\r\n /**\r\n * バリデーションエラーがあるかどうか。\r\n * これが `true` のときは警告表示になります。\r\n */\r\n isError?: boolean,\r\n /** */\r\n isRequired?: boolean,\r\n /**\r\n * 無効にするかどうか。\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 * 内部の `<textarea>` 要素のクラス名。\r\n */\r\n textareaClassName?: string,\r\n /**\r\n * 内部の `<textarea>` 要素の ID。\r\n */\r\n textareaId?: 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 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 padding-inline: ${size(2)};\r\n line-height: 1.5;\r\n flex-grow: 1;\r\n flex-shrink: 1;\r\n box-sizing: border-box;\r\n &[data-qlib-wrapped=\"true\"] {\r\n white-space: pre-wrap;\r\n }\r\n &[data-qlib-wrapped=\"false\"] {\r\n white-space: pre;\r\n }\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 inputMode,\r\n autoComplete = \"off\",\r\n autoFocus,\r\n isWrapped = true,\r\n isError = false,\r\n isRequired,\r\n isDisabled,\r\n onSet,\r\n onChange,\r\n onBlur,\r\n className,\r\n textareaClassName,\r\n textareaId,\r\n ...dataAndAria\r\n}, ref) => {\r\n const controlState = useContext(controlStateContext);\r\n const actualIsError = isError ?? controlState?.isError ?? false;\r\n const actualIsDisabled = isDisabled ?? controlState?.isDisabled ?? false;\r\n\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={actualIsDisabled}\r\n data-qlib-error={actualIsError}\r\n >\r\n <div css={styles.inputContainer}>\r\n <textarea\r\n css={styles.input}\r\n className={textareaClassName}\r\n id={textareaId}\r\n ref={ref}\r\n value={value}\r\n name={name}\r\n rows={rowCount}\r\n inputMode={inputMode}\r\n autoComplete={autoComplete}\r\n autoFocus={autoFocus}\r\n required={isRequired}\r\n disabled={actualIsDisabled}\r\n onChange={onSet != null || onChange != null ? handleChange : undefined}\r\n onBlur={onBlur}\r\n aria-invalid={actualIsError}\r\n data-qlib-wrapped={isWrapped}\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 {useQlibTrans} 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} = useQlibTrans(\"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 * - [`CardGrip`](/docs/atoms-Card-CardGrip--ドキュメント) (任意)\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 * <CardGrip/>\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 * @defaultValue `true`\r\n */\r\n isStretched?: boolean,\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 &:first-of-type {\r\n --qlib-top-right-border-radius: var(--qlib-right-border-radius);\r\n }\r\n &:not(:first-of-type) {\r\n --qlib-top-right-border-radius: ${size(0)};\r\n }\r\n &:last-of-type {\r\n --qlib-bottom-border-width: ${borderWidth(1)};\r\n &[data-qlib-stretched=\"true\"] {\r\n --qlib-bottom-right-border-radius: var(--qlib-right-border-radius);\r\n flex: 1 1 auto;\r\n }\r\n &[data-qlib-stretched=\"false\"] {\r\n --qlib-bottom-right-border-radius: ${size(0)};\r\n flex: 0 0 auto;\r\n }\r\n }\r\n &:not(:last-of-type) {\r\n --qlib-bottom-right-border-radius: ${size(0)};\r\n --qlib-bottom-border-width: ${borderWidth(0)};\r\n flex: 0 0 auto;\r\n }\r\n &[data-qlib-stretched=\"true\"] {\r\n --qlib-bottom-left-border-radius: ${size(0)};\r\n }\r\n &[data-qlib-stretched=\"false\"] {\r\n --qlib-bottom-left-border-radius: ${size(1)};\r\n }\r\n inline-size: ${size(8)};\r\n padding-block: ${size(2)};\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 border-block-end-width: var(--qlib-bottom-border-width);\r\n border-inline-end-width: var(--qlib-right-border-width) !important;\r\n border-start-end-radius: var(--qlib-top-right-border-radius);\r\n border-end-start-radius: var(--qlib-bottom-left-border-radius);\r\n border-end-end-radius: var(--qlib-bottom-right-border-radius);\r\n border-start-start-radius: ${size(0)};\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 &: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 isStretched = true,\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 data-qlib-stretched={isStretched}\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 {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 CardButtonListColumnProps = 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 flex-direction: column;\r\n flex-shrink: 0;\r\n &:last-of-type {\r\n --qlib-right-border-width: ${borderWidth(1)};\r\n --qlib-right-border-radius: ${size(1)};\r\n }\r\n &:not(:last-of-type) {\r\n --qlib-right-border-width: ${borderWidth(0)};\r\n --qlib-right-border-radius: ${size(0)};\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardButtonListColumn = forwardRef<HTMLDivElement, CardButtonListColumnProps>(({\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\nCardButtonListColumn.displayName = \"CardButtonListColumn\";","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 {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faGripVertical} from \"@fortawesome/sharp-regular-svg-icons\";\r\nimport {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 CardGripProps = CommonProps & {\r\n /** */\r\n className?: string\r\n};\r\n\r\nconst styles = {\r\n root: css`\r\n padding-inline-start: ${size(3)};\r\n color: ${color(\"gray\", 5)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: grab;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n order: 0;\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const CardGrip = forwardRef<HTMLDivElement, CardGripProps>(({\r\n className,\r\n ...data\r\n}, ref) => {\r\n return (\r\n <div\r\n className={className}\r\n css={styles.root}\r\n ref={ref}\r\n {...data}\r\n >\r\n <FontAwesomeIcon icon={faGripVertical}/>\r\n </div>\r\n );\r\n});\r\n\r\nCardGrip.displayName = \"CardGrip\";","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 `null`\r\n */\r\n maxLineCount?: 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 maxLineCount = null,\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} maxLineCount={maxLineCount} 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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 flex: 0 0 auto;\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 {MultiLineText} from \"/src/components/atoms/multiLineText\";\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 <MultiLineText css={styles.root} className={className} lineHeight=\"normalFixed\" ref={ref} {...data}>\r\n {children}\r\n </MultiLineText>\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 {useQlibTrans} 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.75;\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(0.5)};\r\n padding-inline: ${size(1)};\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} = useQlibTrans(\"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(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 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 {Button} from \"/src/components/atoms/button\";\r\n\r\n\r\n/**\r\n * @deprecated\r\n * 代わりに `Button` を利用してください。\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DialogButton = Button;","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 {useQlibTrans} 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(6)};\r\n inline-size: ${size(6)};\r\n font-size: ${size(5)};\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} = useQlibTrans(\"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 {borderWidth, 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(3)};\r\n padding-inline: ${size(8)};\r\n column-gap: ${size(4)};\r\n background-color: ${color(\"white\")};\r\n border-block-start: solid ${borderWidth(1)} ${color(\"gray\", 1)};\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 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 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 * ### ドロワー\r\n *\r\n * #### 構成\r\n * 以下のようなコンポーネント構成で利用してください。\r\n * - **`Drawer`**\r\n * - [`DrawerHeader`](/docs/modules-Drawer-DrawerHeader--ドキュメント) (任意)\r\n * - [`DrawerHeaderLeft`](/docs/modules-Drawer-DrawerHeaderLeft--ドキュメント)\r\n * - [`DrawerHeaderTitle`](/docs/modules-Drawer-DrawerHeaderTitle--ドキュメント)\r\n * - [`DrawerHeaderCaption`](/docs/modules-Drawer-DrawerHeaderCaption--ドキュメント) (任意)\r\n * - [`DrawerHeaderRight`](/docs/modules-Drawer-DrawerHeaderRight--ドキュメント)\r\n * - [`DrawerBody`](/docs/modules-Drawer-DrawerBody--ドキュメント)\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 {size} from \"/src/components/functions/utilities\";\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\r\nconst styles = {\r\n root: css`\r\n padding-inline: var(--qlib-padding-inline);\r\n padding-block: ${size(8)};\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 {Button} from \"/src/components/atoms/button\";\r\n\r\n\r\n/**\r\n * @deprecated\r\n * 代わりに `Button` を利用してください。\r\n *\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const DrawerButton = Button;","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\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 {borderWidth, color, 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\r\nconst styles = {\r\n root: css`\r\n padding-block: ${size(4)};\r\n padding-inline: var(--qlib-padding-inline);\r\n column-gap: ${size(8)};\r\n background-color: ${color(\"white\")};\r\n border-block-end: solid ${borderWidth(1)} ${color(\"gray\", 1)};\r\n display: flex;\r\n align-items: 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 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} from \"react\";\r\nimport {size} from \"/src/components/functions/utilities\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerHeaderLeftProps = CommonProps & {\r\n /** */\r\n children: ReactNode\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 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 DrawerHeaderLeft = forwardRef<HTMLDivElement, DrawerHeaderLeftProps>(({\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\nDrawerHeaderLeft.displayName = \"DrawerHeaderLeft\";","import {css} from \"@emotion/react\";\r\nimport {ReactNode, forwardRef} from \"react\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype DrawerHeaderRightProps = CommonProps & {\r\n /** */\r\n children: ReactNode\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 DrawerHeaderRight = forwardRef<HTMLDivElement, DrawerHeaderRightProps>(({\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\nDrawerHeaderRight.displayName = \"DrawerHeaderRight\";","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\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 return (\r\n <div css={styles.root} className={className} ref={ref} data-qlib-size={size} {...data}>\r\n <FootnoteListProvider value={useMemo(() => ({size}), [size])}>\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 {useQlibTrans} 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} = useQlibTrans(\"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 {useQlibTrans} 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} = useQlibTrans(\"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 * 無効にするかどうか。\r\n * @defaultValue `false`\r\n */\r\n isDisabled?: boolean,\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:not(:disabled),\r\n &:focus:not(:disabled) {\r\n background-color: ${color(scheme ?? \"primary\", 0)};\r\n }\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: inherit;\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 isDisabled = false,\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 disabled: isDisabled\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 {useQlibTrans} 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} = useQlibTrans(\"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 {\r\n FloatingPortal,\r\n Placement,\r\n autoUpdate,\r\n flip as flipMiddleware,\r\n inline as inlineMiddleware,\r\n offset,\r\n safePolygon,\r\n useClick,\r\n useDismiss,\r\n useFloating,\r\n useFocus,\r\n useHover,\r\n useInteractions,\r\n useRole,\r\n useTransitionStatus\r\n} from \"@floating-ui/react\";\r\nimport {FunctionComponent, ReactElement, ReactNode, cloneElement, useState} from \"react\";\r\nimport {alpha, borderWidth, boxShadow, size} from \"/src/components/functions/utilities\";\r\nimport {color} from \"/src/components/functions/utilities\";\r\n\r\n\r\ntype PopoverProps = {\r\n /**\r\n * トリガーとなる要素。\r\n * ここに要素を指定すると、そこにインタラクションがあったときにポップオーバーが表示されるようになります。\r\n */\r\n trigger?: ReactElement,\r\n /**\r\n * トリガーの種類。\r\n * @defaultValue `\"click\"`\r\n */\r\n triggerType?: \"click\" | \"focus\" | \"hover\",\r\n /**\r\n * トリガーの持続時間 (ミリ秒単位)。\r\n * @defaultValue `null`\r\n */\r\n triggerRest?: number | null,\r\n /**\r\n * @defaultValue `false`\r\n */\r\n isInline?: boolean,\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 pane: css`\r\n padding: ${size(2)};\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 opacity: 0;\r\n z-index: 2000;\r\n &[data-qlib-status=\"open\"] {\r\n opacity: 1;\r\n }\r\n `\r\n};\r\n\r\n/**\r\n * @group React コンポーネント\r\n * @category React コンポーネント\r\n */\r\nexport const Popover: FunctionComponent<PopoverProps> = ({\r\n trigger,\r\n triggerType = \"click\",\r\n triggerRest = null,\r\n isInline = false,\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 {refs, floatingStyles, context} = useFloating({\r\n open: isOpen,\r\n onOpenChange: setOpen,\r\n placement,\r\n whileElementsMounted: autoUpdate,\r\n middleware: [offset(2), flipMiddleware(), isInline && inlineMiddleware()]\r\n });\r\n const {isMounted, status} = useTransitionStatus(context, {duration: 200});\r\n\r\n const click = useClick(context, {enabled: triggerType === \"click\"});\r\n const focus = useFocus(context, {enabled: triggerType === \"focus\"});\r\n const hover = useHover(context, {enabled: triggerType === \"hover\", restMs: triggerRest ?? 0, handleClose: safePolygon()});\r\n const dismiss = useDismiss(context);\r\n const role = useRole(context, {role: \"tooltip\"});\r\n const {getReferenceProps, getFloatingProps} = useInteractions([click, focus, hover, dismiss, role]);\r\n\r\n return (\r\n <>\r\n {trigger != null && (\r\n cloneElement(trigger, {ref: refs.setReference, ...getReferenceProps()})\r\n )}\r\n {isMounted && (\r\n <FloatingPortal>\r\n <div\r\n css={styles.pane}\r\n className={className}\r\n style={floatingStyles}\r\n ref={refs.setFloating}\r\n data-qlib-status={status}\r\n {...getFloatingProps()}\r\n >\r\n {children}\r\n </div>\r\n </FloatingPortal>\r\n )}\r\n </>\r\n );\r\n};\r\n","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 {useQlibTrans} 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} = useQlibTrans(\"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 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 {LeveledColorScheme} from \"/src/modules/color\";\r\nimport {CommonProps} from \"/src/modules/data\";\r\n\r\n\r\ntype TabProps = CommonProps & {\r\n /** */\r\n scheme?: LeveledColorScheme,\r\n /** */\r\n isDisabled?: boolean,\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: (scheme: NonNullable<TabProps[\"scheme\"]>) => 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 position: relative;\r\n transition: background-color 0.2s ease;\r\n &:hover:not([data-qlib-disabled=\"true\"]),\r\n &:focus:not([data-qlib-disabled=\"true\"]) {\r\n --qlib-highlight-color: ${color(\"gray\", 5)};\r\n cursor: pointer;\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-qlib-active=\"true\"]:not([data-qlib-disabled=\"true\"]) {\r\n --qlib-highlight-color: ${color(scheme, 5)};\r\n font-weight: ${fontWeight(\"bold\")};\r\n color: ${color(scheme, 5)};\r\n }\r\n &[data-qlib-disabled=\"true\"] {\r\n opacity: 0.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 scheme = \"primary\",\r\n isDisabled = false,\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(scheme)}\r\n className={className}\r\n ref={ref as any}\r\n href={isDisabled ? undefined : href}\r\n role={isDisabled ? \"link\" : undefined}\r\n onClick={onClick}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-active={isActive}\r\n aria-disabled={isDisabled}\r\n {...data}\r\n >\r\n {children}\r\n </a>\r\n ) : (\r\n <button\r\n css={styles.root(scheme)}\r\n className={className}\r\n ref={ref as any}\r\n disabled={isDisabled}\r\n onClick={onClick}\r\n data-qlib-disabled={isDisabled}\r\n data-qlib-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: (onClose: () => void) => ReactElement) => Promise<void>;\r\n\r\n/**\r\n * ダイアログを表示する関数 `openDialog` を返します。\r\n * `openDialog` 関数にダイアログのレンダー関数を渡すと、そのダイアログが表示されます。\r\n * ダイアログのレンダー関数にはダイアログを閉じるための関数が渡されるので、キャンセルボタン等に利用してください。\r\n *\r\n * `openDialog` 関数に渡すレンダー関数が返すコンポーネントには、`isOpen`, `onClose` prop が暗黙的に渡されます。\r\n * そのため、レンダー関数が独自コンポーネントを返す場合は、そのコンポーネントは `isOpen`, `onClose` prop を受け取って適切に処理しなければなりません。\r\n *\r\n * `openDialog` 関数自体は Promise を返します。\r\n * この Promise は、ダイアログを閉じたときに解決されます。\r\n */\r\nexport const useDialog = (): OpenDialog => {\r\n const {open, close, setDialogSpec} = useContext(dialogContext);\r\n\r\n const openDialog = useCallback(async (render: (onClose: () => void) => ReactElement): Promise<void> => {\r\n const dialogSpec = {\r\n element: render(close)\r\n };\r\n setDialogSpec(dialogSpec);\r\n await 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","unitGap","max","size","borderWidth","boxShadow","inset","whenSmartphone","whenDesktop","lineHeight","additionalMargin","fixedLineHeight","useQlibTrans","scope","intl","trans","useCallback","values","fullKey","replace","defaultMessage","formatMessage","id","transDate","date","style","locale","format","Error","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","backgroundColor","faUser","AvatarFallbackLetter","name","initial","Badge","BadgeIconContainer","getElements","normalizeNode","elements","filter","isValidElement","length","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","controlStateContext","ControlStateProvider","controlGroupVars","rootBox","rootText","rootUnstyled","loading","Button","isCompact","type","isLoading","onClick","onKeyDown","onKeyUp","onMouseDown","onPointerDown","dataAndAria","controlState","actualIsDisabled","disabled","ButtonIconContainer","CheckableContainer","CheckableLabel","original","Checkbox","isChecked","isRequired","onBlur","inputClassName","inputId","actualIsError","useId","mergedRef","useMergeRefs","event","target","checked","useEffect","indeterminate","required","htmlFor","faMinus","faCheck","ControlContainer","isLabel","maxLineCount","MultiLineText","ControlErrorMessage","ControlHelper","ControlLabel","ControlGroup","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","faChevronDown","grip","faGripVertical","ellipsis","faEllipsisH","Icon","IconButton","InputLeftAddon","InputRightAddon","inputMode","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","vertivalButtonList","verticalButton","verticalButtonDivider","horizontalButton","NumberInput","controlPosition","step","increment","stepUp","dispatchEvent","Event","bubbles","decrement","stepDown","tabIndex","faAngleLeft","faAngleRight","PasswordInputLeftAddon","PasswordInputRightAddon","PasswordInput","initialReveal","reveal","setReveal","toggleReveal","faEyeSlash","faEye","radioGroupContext","RadioGroupProvider","Radio","RadioGroup","radioGroupContextValue","AlignedRadioGroup","dialogContext","open","close","setDialogSpec","DialogProvider","setOpen","resolveRef","Promise","resolve","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","useSubject","subject","setValue","subscription","subscribe","unsubscribe","useBehaviorSubject","intlSubject","BehaviorSubject","createIntl","onError","localeSubject","useIntl","useLocale","useSetLocale","localStorage","setItem","useTrans","useTranslation","createTrans","DEFAULT_GLOBAL_CSS_SETTING","resetAll","font","wrap","defaultGlobalStyle","SvgDefinition","viewBox","x1","y1","x2","y2","gradientUnits","offset","stopColor","Root","colorDefinitions","globalStyle","globalCssSetting","appElement","defaultReady","setLocale","resolvedRootFontSize","rootContextValue","mergedMessages","intlCache","createIntlCache","documentElement","setAttribute","toString","getItem","inferredAppElement","isReady","setReady","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","isWrapped","textareaClassName","textareaId","rows","VisuallyHidden","BulkOperationContainer","badge","BulkOperationButton","count","setHovered","setFocusVisible","Card","isHovered","isFocusVisible","CardHeadnote","CardBody","hasHeadnote","some","handleMouseEnter","handleMouseLeave","handleFocus","matches","handleBlur","onMouseEnter","onMouseLeave","onFocus","CardButton","isStretched","CardButtonList","CardButtonListColumn","stopPropagation","CardControlContainer","CardGrip","CardTitle","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","DrawerHeader","DrawerHeaderLeft","DrawerHeaderRight","DrawerTitle","footnoteListContext","FootnoteListProvider","Footnote","FootnoteIconContainer","FootnoteList","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","pane","Popover","triggerType","triggerRest","isInline","whileElementsMounted","autoUpdate","inline","enabled","focus","useFocus","hover","useHover","restMs","handleClose","safePolygon","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","addedToastSpec","toasts","toast"],"sourceRoot":""}
|