smarthr-ui 98.1.1 → 99.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/AccordionPanel/AccordionPanel.cjs +51 -12
- package/lib/components/AccordionPanel/AccordionPanel.cjs.map +1 -1
- package/lib/components/AccordionPanel/AccordionPanel.d.ts +3 -3
- package/lib/components/AccordionPanel/AccordionPanel.js +54 -15
- package/lib/components/AccordionPanel/AccordionPanel.js.map +1 -1
- package/lib/components/AccordionPanel/AccordionPanelTrigger.cjs +5 -60
- package/lib/components/AccordionPanel/AccordionPanelTrigger.cjs.map +1 -1
- package/lib/components/AccordionPanel/AccordionPanelTrigger.js +8 -63
- package/lib/components/AccordionPanel/AccordionPanelTrigger.js.map +1 -1
- package/lib/components/AppHeader/components/common/AppLauncherFeatures.cjs +12 -22
- package/lib/components/AppHeader/components/common/AppLauncherFeatures.cjs.map +1 -1
- package/lib/components/AppHeader/components/common/AppLauncherFeatures.js +13 -23
- package/lib/components/AppHeader/components/common/AppLauncherFeatures.js.map +1 -1
- package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.cjs +26 -40
- package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.cjs.map +1 -1
- package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.js +26 -40
- package/lib/components/AppHeader/components/common/AppLauncherSortDropdown.js.map +1 -1
- package/lib/components/AppHeader/components/desktop/AppLauncher.cjs +37 -43
- package/lib/components/AppHeader/components/desktop/AppLauncher.cjs.map +1 -1
- package/lib/components/AppHeader/components/desktop/AppLauncher.js +38 -44
- package/lib/components/AppHeader/components/desktop/AppLauncher.js.map +1 -1
- package/lib/components/AppHeader/components/desktop/DesktopHeader.cjs +4 -11
- package/lib/components/AppHeader/components/desktop/DesktopHeader.cjs.map +1 -1
- package/lib/components/AppHeader/components/desktop/DesktopHeader.js +4 -11
- package/lib/components/AppHeader/components/desktop/DesktopHeader.js.map +1 -1
- package/lib/components/AppHeader/components/desktop/ReleaseNotesDropdown.cjs +5 -19
- package/lib/components/AppHeader/components/desktop/ReleaseNotesDropdown.cjs.map +1 -1
- package/lib/components/AppHeader/components/desktop/ReleaseNotesDropdown.js +5 -19
- package/lib/components/AppHeader/components/desktop/ReleaseNotesDropdown.js.map +1 -1
- package/lib/components/AppHeader/components/desktop/UserInfo.cjs +4 -8
- package/lib/components/AppHeader/components/desktop/UserInfo.cjs.map +1 -1
- package/lib/components/AppHeader/components/desktop/UserInfo.js +4 -8
- package/lib/components/AppHeader/components/desktop/UserInfo.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/AppLauncher.cjs +16 -25
- package/lib/components/AppHeader/components/mobile/AppLauncher.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/AppLauncher.js +16 -25
- package/lib/components/AppHeader/components/mobile/AppLauncher.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/AppLauncherFilterDropdown.cjs +15 -32
- package/lib/components/AppHeader/components/mobile/AppLauncherFilterDropdown.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/AppLauncherFilterDropdown.js +16 -33
- package/lib/components/AppHeader/components/mobile/AppLauncherFilterDropdown.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/Help.cjs +4 -17
- package/lib/components/AppHeader/components/mobile/Help.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/Help.js +5 -18
- package/lib/components/AppHeader/components/mobile/Help.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/LanguageSelector.cjs +14 -12
- package/lib/components/AppHeader/components/mobile/LanguageSelector.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/LanguageSelector.js +14 -12
- package/lib/components/AppHeader/components/mobile/LanguageSelector.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/Menu.cjs +3 -22
- package/lib/components/AppHeader/components/mobile/Menu.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/Menu.js +3 -22
- package/lib/components/AppHeader/components/mobile/Menu.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuAccordion.cjs +3 -14
- package/lib/components/AppHeader/components/mobile/MenuAccordion.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuAccordion.js +4 -15
- package/lib/components/AppHeader/components/mobile/MenuAccordion.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuDialog.cjs +12 -15
- package/lib/components/AppHeader/components/mobile/MenuDialog.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuDialog.js +12 -15
- package/lib/components/AppHeader/components/mobile/MenuDialog.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuSubHeading.cjs +3 -7
- package/lib/components/AppHeader/components/mobile/MenuSubHeading.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/MenuSubHeading.js +4 -8
- package/lib/components/AppHeader/components/mobile/MenuSubHeading.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/ReleaseNote.cjs +13 -25
- package/lib/components/AppHeader/components/mobile/ReleaseNote.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/ReleaseNote.js +14 -26
- package/lib/components/AppHeader/components/mobile/ReleaseNote.js.map +1 -1
- package/lib/components/AppHeader/components/mobile/UserInfo.cjs +16 -25
- package/lib/components/AppHeader/components/mobile/UserInfo.cjs.map +1 -1
- package/lib/components/AppHeader/components/mobile/UserInfo.js +17 -26
- package/lib/components/AppHeader/components/mobile/UserInfo.js.map +1 -1
- package/lib/components/Badge/Badge.cjs +4 -2
- package/lib/components/Badge/Badge.cjs.map +1 -1
- package/lib/components/Badge/Badge.js +4 -2
- package/lib/components/Badge/Badge.js.map +1 -1
- package/lib/components/Browser/Browser.cjs +45 -37
- package/lib/components/Browser/Browser.cjs.map +1 -1
- package/lib/components/Browser/Browser.js +46 -38
- package/lib/components/Browser/Browser.js.map +1 -1
- package/lib/components/Browser/BrowserColumn.cjs +4 -4
- package/lib/components/Browser/BrowserColumn.cjs.map +1 -1
- package/lib/components/Browser/BrowserColumn.d.ts +1 -1
- package/lib/components/Browser/BrowserColumn.js +4 -4
- package/lib/components/Browser/BrowserColumn.js.map +1 -1
- package/lib/components/Browser/BrowserItem.cjs +2 -2
- package/lib/components/Browser/BrowserItem.cjs.map +1 -1
- package/lib/components/Browser/BrowserItem.d.ts +1 -1
- package/lib/components/Browser/BrowserItem.js +2 -2
- package/lib/components/Browser/BrowserItem.js.map +1 -1
- package/lib/components/Button/DisabledReason.cjs +8 -10
- package/lib/components/Button/DisabledReason.cjs.map +1 -1
- package/lib/components/Button/DisabledReason.js +9 -11
- package/lib/components/Button/DisabledReason.js.map +1 -1
- package/lib/components/Calendar/Calendar.cjs +21 -33
- package/lib/components/Calendar/Calendar.cjs.map +1 -1
- package/lib/components/Calendar/Calendar.js +22 -34
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/Calendar/CalendarTable.cjs +3 -2
- package/lib/components/Calendar/CalendarTable.cjs.map +1 -1
- package/lib/components/Calendar/CalendarTable.js +3 -2
- package/lib/components/Calendar/CalendarTable.js.map +1 -1
- package/lib/components/Calendar/YearPicker.cjs +14 -13
- package/lib/components/Calendar/YearPicker.cjs.map +1 -1
- package/lib/components/Calendar/YearPicker.d.ts +1 -1
- package/lib/components/Calendar/YearPicker.js +15 -14
- package/lib/components/Calendar/YearPicker.js.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiCombobox.cjs +1 -0
- package/lib/components/Combobox/MultiCombobox/MultiCombobox.cjs.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiCombobox.js +1 -0
- package/lib/components/Combobox/MultiCombobox/MultiCombobox.js.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.cjs +3 -8
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.cjs.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.js +4 -9
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.js.map +1 -1
- package/lib/components/Combobox/SingleCombobox/SingleCombobox.cjs +4 -9
- package/lib/components/Combobox/SingleCombobox/SingleCombobox.cjs.map +1 -1
- package/lib/components/Combobox/SingleCombobox/SingleCombobox.js +4 -9
- package/lib/components/Combobox/SingleCombobox/SingleCombobox.js.map +1 -1
- package/lib/components/Combobox/useListbox.cjs +14 -24
- package/lib/components/Combobox/useListbox.cjs.map +1 -1
- package/lib/components/Combobox/useListbox.js +14 -24
- package/lib/components/Combobox/useListbox.js.map +1 -1
- package/lib/components/DatePicker/DatePicker.cjs +3 -4
- package/lib/components/DatePicker/DatePicker.cjs.map +1 -1
- package/lib/components/DatePicker/DatePicker.js +3 -4
- package/lib/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/components/DatePicker/Portal.cjs +3 -8
- package/lib/components/DatePicker/Portal.cjs.map +1 -1
- package/lib/components/DatePicker/Portal.js +4 -9
- package/lib/components/DatePicker/Portal.js.map +1 -1
- package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.cjs +3 -10
- package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.cjs.map +1 -1
- package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.js +4 -11
- package/lib/components/Dialog/ControlledActionDialog/ActionDialogContentInner.js.map +1 -1
- package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.cjs +3 -10
- package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.cjs.map +1 -1
- package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.js +4 -11
- package/lib/components/Dialog/ControlledFormDialog/FormDialogContentInner.js.map +1 -1
- package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.cjs +3 -10
- package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.cjs.map +1 -1
- package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.js +3 -10
- package/lib/components/Dialog/ControlledMessageDialog/MessageDialogContentInner.js.map +1 -1
- package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.cjs +1 -0
- package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.cjs.map +1 -1
- package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.js +1 -0
- package/lib/components/Dialog/ControlledStepFormDialog/ControlledStepFormDialog.js.map +1 -1
- package/lib/components/Dialog/DialogBody.cjs +2 -4
- package/lib/components/Dialog/DialogBody.cjs.map +1 -1
- package/lib/components/Dialog/DialogBody.js +2 -4
- package/lib/components/Dialog/DialogBody.js.map +1 -1
- package/lib/components/Dialog/DialogCloser.cjs +2 -3
- package/lib/components/Dialog/DialogCloser.cjs.map +1 -1
- package/lib/components/Dialog/DialogCloser.js +2 -3
- package/lib/components/Dialog/DialogCloser.js.map +1 -1
- package/lib/components/Dialog/DialogContent.cjs +3 -3
- package/lib/components/Dialog/DialogContent.cjs.map +1 -1
- package/lib/components/Dialog/DialogContent.d.ts +1 -1
- package/lib/components/Dialog/DialogContent.js +3 -3
- package/lib/components/Dialog/DialogContent.js.map +1 -1
- package/lib/components/Dialog/DialogContentInner.cjs +8 -16
- package/lib/components/Dialog/DialogContentInner.cjs.map +1 -1
- package/lib/components/Dialog/DialogContentInner.js +8 -16
- package/lib/components/Dialog/DialogContentInner.js.map +1 -1
- package/lib/components/Dialog/DialogHeading.cjs +1 -11
- package/lib/components/Dialog/DialogHeading.cjs.map +1 -1
- package/lib/components/Dialog/DialogHeading.js +2 -12
- package/lib/components/Dialog/DialogHeading.js.map +1 -1
- package/lib/components/Dialog/DialogTrigger.cjs +2 -2
- package/lib/components/Dialog/DialogTrigger.cjs.map +1 -1
- package/lib/components/Dialog/DialogTrigger.js +2 -2
- package/lib/components/Dialog/DialogTrigger.js.map +1 -1
- package/lib/components/Dialog/DialogWrapper.cjs +7 -6
- package/lib/components/Dialog/DialogWrapper.cjs.map +1 -1
- package/lib/components/Dialog/DialogWrapper.d.ts +2 -2
- package/lib/components/Dialog/DialogWrapper.js +8 -7
- package/lib/components/Dialog/DialogWrapper.js.map +1 -1
- package/lib/components/Dialog/FocusTrap.cjs +8 -11
- package/lib/components/Dialog/FocusTrap.cjs.map +1 -1
- package/lib/components/Dialog/FocusTrap.js +8 -11
- package/lib/components/Dialog/FocusTrap.js.map +1 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.cjs +81 -92
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.cjs.map +1 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.js +82 -93
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.js.map +1 -1
- package/lib/components/Dialog/useBodyScrollLock.cjs +3 -7
- package/lib/components/Dialog/useBodyScrollLock.cjs.map +1 -1
- package/lib/components/Dialog/useBodyScrollLock.js +4 -8
- package/lib/components/Dialog/useBodyScrollLock.js.map +1 -1
- package/lib/components/Dialog/useDialogPortal.cjs +1 -1
- package/lib/components/Dialog/useDialogPortal.cjs.map +1 -1
- package/lib/components/Dialog/useDialogPortal.js +2 -2
- package/lib/components/Dialog/useDialogPortal.js.map +1 -1
- package/lib/components/DropZone/DropZone.cjs +9 -17
- package/lib/components/DropZone/DropZone.cjs.map +1 -1
- package/lib/components/DropZone/DropZone.js +9 -17
- package/lib/components/DropZone/DropZone.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.cjs +3 -3
- package/lib/components/Dropdown/Dropdown.cjs.map +1 -1
- package/lib/components/Dropdown/Dropdown.d.ts +1 -1
- package/lib/components/Dropdown/Dropdown.js +3 -3
- package/lib/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/Dropdown/DropdownCloser.cjs +4 -5
- package/lib/components/Dropdown/DropdownCloser.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownCloser.js +4 -5
- package/lib/components/Dropdown/DropdownCloser.js.map +1 -1
- package/lib/components/Dropdown/DropdownContent.cjs +3 -3
- package/lib/components/Dropdown/DropdownContent.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownContent.d.ts +1 -1
- package/lib/components/Dropdown/DropdownContent.js +3 -3
- package/lib/components/Dropdown/DropdownContent.js.map +1 -1
- package/lib/components/Dropdown/DropdownContentInner.cjs +15 -6
- package/lib/components/Dropdown/DropdownContentInner.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownContentInner.js +15 -6
- package/lib/components/Dropdown/DropdownContentInner.js.map +1 -1
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.cjs +3 -12
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.js +3 -12
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.js.map +1 -1
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.cjs +19 -37
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.cjs.map +1 -1
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js +20 -38
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
- package/lib/components/Dropdown/SortDropdown/useSortDropdown.cjs +1 -0
- package/lib/components/Dropdown/SortDropdown/useSortDropdown.cjs.map +1 -1
- package/lib/components/Dropdown/SortDropdown/useSortDropdown.js +1 -0
- package/lib/components/Dropdown/SortDropdown/useSortDropdown.js.map +1 -1
- package/lib/components/Dropdown/useKeyboardNavigation.cjs +7 -7
- package/lib/components/Dropdown/useKeyboardNavigation.cjs.map +1 -1
- package/lib/components/Dropdown/useKeyboardNavigation.js +7 -7
- package/lib/components/Dropdown/useKeyboardNavigation.js.map +1 -1
- package/lib/components/ErrorScreen/AuthErrorScreen.cjs +9 -17
- package/lib/components/ErrorScreen/AuthErrorScreen.cjs.map +1 -1
- package/lib/components/ErrorScreen/AuthErrorScreen.js +9 -17
- package/lib/components/ErrorScreen/AuthErrorScreen.js.map +1 -1
- package/lib/components/ErrorScreen/ForbiddenErrorScreen.cjs +9 -20
- package/lib/components/ErrorScreen/ForbiddenErrorScreen.cjs.map +1 -1
- package/lib/components/ErrorScreen/ForbiddenErrorScreen.js +9 -20
- package/lib/components/ErrorScreen/ForbiddenErrorScreen.js.map +1 -1
- package/lib/components/ErrorScreen/NotFoundErrorScreen.cjs +9 -20
- package/lib/components/ErrorScreen/NotFoundErrorScreen.cjs.map +1 -1
- package/lib/components/ErrorScreen/NotFoundErrorScreen.js +9 -20
- package/lib/components/ErrorScreen/NotFoundErrorScreen.js.map +1 -1
- package/lib/components/ErrorScreen/UnauthorizedErrorScreen.cjs +4 -18
- package/lib/components/ErrorScreen/UnauthorizedErrorScreen.cjs.map +1 -1
- package/lib/components/ErrorScreen/UnauthorizedErrorScreen.js +4 -18
- package/lib/components/ErrorScreen/UnauthorizedErrorScreen.js.map +1 -1
- package/lib/components/ErrorScreen/UnexpectedErrorScreen.cjs +10 -43
- package/lib/components/ErrorScreen/UnexpectedErrorScreen.cjs.map +1 -1
- package/lib/components/ErrorScreen/UnexpectedErrorScreen.js +10 -43
- package/lib/components/ErrorScreen/UnexpectedErrorScreen.js.map +1 -1
- package/lib/components/FileViewer/FileViewer.cjs +25 -21
- package/lib/components/FileViewer/FileViewer.cjs.map +1 -1
- package/lib/components/FileViewer/FileViewer.d.ts +1 -1
- package/lib/components/FileViewer/FileViewer.js +26 -22
- package/lib/components/FileViewer/FileViewer.js.map +1 -1
- package/lib/components/FileViewer/PDFViewer.cjs +1 -19
- package/lib/components/FileViewer/PDFViewer.cjs.map +1 -1
- package/lib/components/FileViewer/PDFViewer.js +2 -20
- package/lib/components/FileViewer/PDFViewer.js.map +1 -1
- package/lib/components/FileViewer/SearchController.cjs +5 -48
- package/lib/components/FileViewer/SearchController.cjs.map +1 -1
- package/lib/components/FileViewer/SearchController.js +6 -49
- package/lib/components/FileViewer/SearchController.js.map +1 -1
- package/lib/components/FileViewer/types.d.ts +1 -1
- package/lib/components/FileViewer/usePDFSearch.cjs +121 -86
- package/lib/components/FileViewer/usePDFSearch.cjs.map +1 -1
- package/lib/components/FileViewer/usePDFSearch.d.ts +8 -3
- package/lib/components/FileViewer/usePDFSearch.js +122 -87
- package/lib/components/FileViewer/usePDFSearch.js.map +1 -1
- package/lib/components/FormControl/FormControl.cjs +17 -33
- package/lib/components/FormControl/FormControl.cjs.map +1 -1
- package/lib/components/FormControl/FormControl.js +18 -34
- package/lib/components/FormControl/FormControl.js.map +1 -1
- package/lib/components/Header/AppLauncher/AppLauncher.cjs +4 -16
- package/lib/components/Header/AppLauncher/AppLauncher.cjs.map +1 -1
- package/lib/components/Header/AppLauncher/AppLauncher.js +4 -16
- package/lib/components/Header/AppLauncher/AppLauncher.js.map +1 -1
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.cjs +11 -18
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.cjs.map +1 -1
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js +11 -18
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
- package/lib/components/Heading/Heading.cjs +14 -27
- package/lib/components/Heading/Heading.cjs.map +1 -1
- package/lib/components/Heading/Heading.js +14 -27
- package/lib/components/Heading/Heading.js.map +1 -1
- package/lib/components/Heading/PageHeading/PageHeading.cjs +2 -8
- package/lib/components/Heading/PageHeading/PageHeading.cjs.map +1 -1
- package/lib/components/Heading/PageHeading/PageHeading.js +3 -9
- package/lib/components/Heading/PageHeading/PageHeading.js.map +1 -1
- package/lib/components/Icon/OpenInNewTabIcon.cjs +3 -10
- package/lib/components/Icon/OpenInNewTabIcon.cjs.map +1 -1
- package/lib/components/Icon/OpenInNewTabIcon.d.ts +4 -9
- package/lib/components/Icon/OpenInNewTabIcon.js +3 -10
- package/lib/components/Icon/OpenInNewTabIcon.js.map +1 -1
- package/lib/components/Icon/generateIcon.cjs +10 -19
- package/lib/components/Icon/generateIcon.cjs.map +1 -1
- package/lib/components/Icon/generateIcon.js +10 -19
- package/lib/components/Icon/generateIcon.js.map +1 -1
- package/lib/components/InformationPanel/InformationPanel.cjs +18 -52
- package/lib/components/InformationPanel/InformationPanel.cjs.map +1 -1
- package/lib/components/InformationPanel/InformationPanel.d.ts +5 -45
- package/lib/components/InformationPanel/InformationPanel.js +19 -53
- package/lib/components/InformationPanel/InformationPanel.js.map +1 -1
- package/lib/components/Input/CurrencyInput/currencyInputHelper.cjs +24 -15
- package/lib/components/Input/CurrencyInput/currencyInputHelper.cjs.map +1 -1
- package/lib/components/Input/CurrencyInput/currencyInputHelper.js +24 -15
- package/lib/components/Input/CurrencyInput/currencyInputHelper.js.map +1 -1
- package/lib/components/Input/Input.cjs +29 -44
- package/lib/components/Input/Input.cjs.map +1 -1
- package/lib/components/Input/Input.js +30 -45
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Input/SearchInput/SearchInput.cjs +5 -4
- package/lib/components/Input/SearchInput/SearchInput.cjs.map +1 -1
- package/lib/components/Input/SearchInput/SearchInput.js +5 -4
- package/lib/components/Input/SearchInput/SearchInput.js.map +1 -1
- package/lib/components/Input/SearchInput/SearchInputIcon.cjs +4 -11
- package/lib/components/Input/SearchInput/SearchInputIcon.cjs.map +1 -1
- package/lib/components/Input/SearchInput/SearchInputIcon.js +4 -11
- package/lib/components/Input/SearchInput/SearchInputIcon.js.map +1 -1
- package/lib/components/InputFile/InputFileMultiplyAppendable.cjs +4 -9
- package/lib/components/InputFile/InputFileMultiplyAppendable.cjs.map +1 -1
- package/lib/components/InputFile/InputFileMultiplyAppendable.js +4 -9
- package/lib/components/InputFile/InputFileMultiplyAppendable.js.map +1 -1
- package/lib/components/InputFile/InputFileNative.cjs +4 -9
- package/lib/components/InputFile/InputFileNative.cjs.map +1 -1
- package/lib/components/InputFile/InputFileNative.js +4 -9
- package/lib/components/InputFile/InputFileNative.js.map +1 -1
- package/lib/components/Layout/Center/Center.cjs +4 -5
- package/lib/components/Layout/Center/Center.cjs.map +1 -1
- package/lib/components/Layout/Center/Center.js +4 -5
- package/lib/components/Layout/Center/Center.js.map +1 -1
- package/lib/components/Layout/Cluster/Cluster.cjs +16 -17
- package/lib/components/Layout/Cluster/Cluster.cjs.map +1 -1
- package/lib/components/Layout/Cluster/Cluster.js +16 -17
- package/lib/components/Layout/Cluster/Cluster.js.map +1 -1
- package/lib/components/Layout/Container/Container.cjs +7 -1
- package/lib/components/Layout/Container/Container.cjs.map +1 -1
- package/lib/components/Layout/Container/Container.js +7 -1
- package/lib/components/Layout/Container/Container.js.map +1 -1
- package/lib/components/Loader/Loader.cjs +3 -2
- package/lib/components/Loader/Loader.cjs.map +1 -1
- package/lib/components/Loader/Loader.js +4 -3
- package/lib/components/Loader/Loader.js.map +1 -1
- package/lib/components/Loader/LoaderSpinner.cjs +9 -10
- package/lib/components/Loader/LoaderSpinner.cjs.map +1 -1
- package/lib/components/Loader/LoaderSpinner.d.ts +2 -2
- package/lib/components/Loader/LoaderSpinner.js +9 -10
- package/lib/components/Loader/LoaderSpinner.js.map +1 -1
- package/lib/components/NotificationBar/NotificationBar.cjs +11 -20
- package/lib/components/NotificationBar/NotificationBar.cjs.map +1 -1
- package/lib/components/NotificationBar/NotificationBar.js +11 -20
- package/lib/components/NotificationBar/NotificationBar.js.map +1 -1
- package/lib/components/Pagination/Pagination.cjs +14 -15
- package/lib/components/Pagination/Pagination.cjs.map +1 -1
- package/lib/components/Pagination/Pagination.js +14 -15
- package/lib/components/Pagination/Pagination.js.map +1 -1
- package/lib/components/Pagination/PaginationControllerItemButton.cjs +11 -27
- package/lib/components/Pagination/PaginationControllerItemButton.cjs.map +1 -1
- package/lib/components/Pagination/PaginationControllerItemButton.d.ts +1 -1
- package/lib/components/Pagination/PaginationControllerItemButton.js +11 -27
- package/lib/components/Pagination/PaginationControllerItemButton.js.map +1 -1
- package/lib/components/Pagination/PaginationItemButton.cjs +14 -35
- package/lib/components/Pagination/PaginationItemButton.cjs.map +1 -1
- package/lib/components/Pagination/PaginationItemButton.js +14 -35
- package/lib/components/Pagination/PaginationItemButton.js.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.cjs +21 -18
- package/lib/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.js +22 -19
- package/lib/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/lib/components/SideMenu/SideMenuItem.cjs +1 -7
- package/lib/components/SideMenu/SideMenuItem.cjs.map +1 -1
- package/lib/components/SideMenu/SideMenuItem.js +1 -7
- package/lib/components/SideMenu/SideMenuItem.js.map +1 -1
- package/lib/components/SmartHRAILogo/SmartHRAILogo.cjs +1 -6
- package/lib/components/SmartHRAILogo/SmartHRAILogo.cjs.map +1 -1
- package/lib/components/SmartHRAILogo/SmartHRAILogo.js +2 -7
- package/lib/components/SmartHRAILogo/SmartHRAILogo.js.map +1 -1
- package/lib/components/SmartHRLogo/SmartHRLogo.cjs +1 -7
- package/lib/components/SmartHRLogo/SmartHRLogo.cjs.map +1 -1
- package/lib/components/SmartHRLogo/SmartHRLogo.js +2 -8
- package/lib/components/SmartHRLogo/SmartHRLogo.js.map +1 -1
- package/lib/components/Stepper/StepStatusIcon.cjs +6 -13
- package/lib/components/Stepper/StepStatusIcon.cjs.map +1 -1
- package/lib/components/Stepper/StepStatusIcon.js +6 -13
- package/lib/components/Stepper/StepStatusIcon.js.map +1 -1
- package/lib/components/Stepper/Stepper.cjs +4 -6
- package/lib/components/Stepper/Stepper.cjs.map +1 -1
- package/lib/components/Stepper/Stepper.js +4 -6
- package/lib/components/Stepper/Stepper.js.map +1 -1
- package/lib/components/TabBar/TabItem.cjs +15 -10
- package/lib/components/TabBar/TabItem.cjs.map +1 -1
- package/lib/components/TabBar/TabItem.js +16 -11
- package/lib/components/TabBar/TabItem.js.map +1 -1
- package/lib/components/Table/TdCheckbox.cjs +2 -2
- package/lib/components/Table/TdCheckbox.cjs.map +1 -1
- package/lib/components/Table/TdCheckbox.d.ts +1 -1
- package/lib/components/Table/TdCheckbox.js +2 -2
- package/lib/components/Table/TdCheckbox.js.map +1 -1
- package/lib/components/Table/Th.cjs +17 -5
- package/lib/components/Table/Th.cjs.map +1 -1
- package/lib/components/Table/Th.d.ts +2 -2
- package/lib/components/Table/Th.js +17 -5
- package/lib/components/Table/Th.js.map +1 -1
- package/lib/components/Table/ThCheckbox.cjs +3 -2
- package/lib/components/Table/ThCheckbox.cjs.map +1 -1
- package/lib/components/Table/ThCheckbox.d.ts +1 -1
- package/lib/components/Table/ThCheckbox.js +3 -2
- package/lib/components/Table/ThCheckbox.js.map +1 -1
- package/lib/components/Table/ThSortButton.cjs +13 -36
- package/lib/components/Table/ThSortButton.cjs.map +1 -1
- package/lib/components/Table/ThSortButton.d.ts +1 -1
- package/lib/components/Table/ThSortButton.js +13 -36
- package/lib/components/Table/ThSortButton.js.map +1 -1
- package/lib/components/TextLink/TextLink.cjs +14 -12
- package/lib/components/TextLink/TextLink.cjs.map +1 -1
- package/lib/components/TextLink/TextLink.js +15 -13
- package/lib/components/TextLink/TextLink.js.map +1 -1
- package/lib/components/Textarea/Textarea.cjs +85 -68
- package/lib/components/Textarea/Textarea.cjs.map +1 -1
- package/lib/components/Textarea/Textarea.js +86 -69
- package/lib/components/Textarea/Textarea.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.cjs +4 -1
- package/lib/components/Tooltip/Tooltip.cjs.map +1 -1
- package/lib/components/Tooltip/Tooltip.js +4 -1
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/components/Tooltip/TooltipPortal.cjs +9 -9
- package/lib/components/Tooltip/TooltipPortal.cjs.map +1 -1
- package/lib/components/Tooltip/TooltipPortal.js +10 -10
- package/lib/components/Tooltip/TooltipPortal.js.map +1 -1
- package/lib/components/WarekiPicker/WarekiPicker.cjs +6 -1
- package/lib/components/WarekiPicker/WarekiPicker.cjs.map +1 -1
- package/lib/components/WarekiPicker/WarekiPicker.d.ts +1 -1
- package/lib/components/WarekiPicker/WarekiPicker.js +6 -1
- package/lib/components/WarekiPicker/WarekiPicker.js.map +1 -1
- package/lib/index.cjs +3 -0
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/intl/DateFormatter.cjs +2 -2
- package/lib/intl/DateFormatter.cjs.map +1 -1
- package/lib/intl/DateFormatter.d.ts +1 -1
- package/lib/intl/DateFormatter.js +2 -2
- package/lib/intl/DateFormatter.js.map +1 -1
- package/lib/intl/IntlProvider.cjs +8 -3
- package/lib/intl/IntlProvider.cjs.map +1 -1
- package/lib/intl/IntlProvider.js +8 -3
- package/lib/intl/IntlProvider.js.map +1 -1
- package/lib/intl/TimeFormatter.cjs +2 -2
- package/lib/intl/TimeFormatter.cjs.map +1 -1
- package/lib/intl/TimeFormatter.d.ts +1 -1
- package/lib/intl/TimeFormatter.js +2 -2
- package/lib/intl/TimeFormatter.js.map +1 -1
- package/lib/intl/TimestampFormatter.cjs +2 -2
- package/lib/intl/TimestampFormatter.cjs.map +1 -1
- package/lib/intl/TimestampFormatter.d.ts +1 -1
- package/lib/intl/TimestampFormatter.js +2 -2
- package/lib/intl/TimestampFormatter.js.map +1 -1
- package/lib/intl/index.cjs +3 -0
- package/lib/intl/index.cjs.map +1 -1
- package/lib/intl/index.d.ts +2 -1
- package/lib/intl/index.js +2 -1
- package/lib/intl/index.js.map +1 -1
- package/lib/intl/locales/en_us.json.cjs +2 -4
- package/lib/intl/locales/en_us.json.cjs.map +1 -1
- package/lib/intl/locales/en_us.json.js +2 -4
- package/lib/intl/locales/en_us.json.js.map +1 -1
- package/lib/intl/locales/id_id.json.cjs +2 -4
- package/lib/intl/locales/id_id.json.cjs.map +1 -1
- package/lib/intl/locales/id_id.json.js +2 -4
- package/lib/intl/locales/id_id.json.js.map +1 -1
- package/lib/intl/locales/index.d.ts +18 -36
- package/lib/intl/locales/ja.cjs +2 -4
- package/lib/intl/locales/ja.cjs.map +1 -1
- package/lib/intl/locales/ja.d.ts +2 -4
- package/lib/intl/locales/ja.js +2 -4
- package/lib/intl/locales/ja.js.map +1 -1
- package/lib/intl/locales/ja.json.cjs +2 -4
- package/lib/intl/locales/ja.json.cjs.map +1 -1
- package/lib/intl/locales/ja.json.js +2 -4
- package/lib/intl/locales/ja.json.js.map +1 -1
- package/lib/intl/locales/ja_easy.json.cjs +2 -4
- package/lib/intl/locales/ja_easy.json.cjs.map +1 -1
- package/lib/intl/locales/ja_easy.json.js +2 -4
- package/lib/intl/locales/ja_easy.json.js.map +1 -1
- package/lib/intl/locales/ko_kr.json.cjs +2 -4
- package/lib/intl/locales/ko_kr.json.cjs.map +1 -1
- package/lib/intl/locales/ko_kr.json.js +2 -4
- package/lib/intl/locales/ko_kr.json.js.map +1 -1
- package/lib/intl/locales/pt_br.json.cjs +2 -4
- package/lib/intl/locales/pt_br.json.cjs.map +1 -1
- package/lib/intl/locales/pt_br.json.js +2 -4
- package/lib/intl/locales/pt_br.json.js.map +1 -1
- package/lib/intl/locales/vi_vn.json.cjs +2 -4
- package/lib/intl/locales/vi_vn.json.cjs.map +1 -1
- package/lib/intl/locales/vi_vn.json.js +2 -4
- package/lib/intl/locales/vi_vn.json.js.map +1 -1
- package/lib/intl/locales/zh_hans_cn.json.cjs +2 -4
- package/lib/intl/locales/zh_hans_cn.json.cjs.map +1 -1
- package/lib/intl/locales/zh_hans_cn.json.js +2 -4
- package/lib/intl/locales/zh_hans_cn.json.js.map +1 -1
- package/lib/intl/locales/zh_hant_tw.json.cjs +2 -4
- package/lib/intl/locales/zh_hant_tw.json.cjs.map +1 -1
- package/lib/intl/locales/zh_hant_tw.json.js +2 -4
- package/lib/intl/locales/zh_hant_tw.json.js.map +1 -1
- package/lib/intl/useDateFormat.cjs +208 -0
- package/lib/intl/useDateFormat.cjs.map +1 -0
- package/lib/intl/useDateFormat.d.ts +158 -0
- package/lib/intl/useDateFormat.js +206 -0
- package/lib/intl/useDateFormat.js.map +1 -0
- package/lib/intl/useIntl.cjs +9 -192
- package/lib/intl/useIntl.cjs.map +1 -1
- package/lib/intl/useIntl.d.ts +4 -146
- package/lib/intl/useIntl.js +10 -193
- package/lib/intl/useIntl.js.map +1 -1
- package/metadata.json +1 -1
- package/package.json +1 -1
- package/smarthr-ui.css +15 -0
|
@@ -4,14 +4,19 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var index = require('./../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.cjs');
|
|
7
|
+
var hooks_useLatest = require('../../hooks/useLatest.cjs');
|
|
7
8
|
var libs_map = require('../../libs/map.cjs');
|
|
8
9
|
var components_AccordionPanel_accordionPanelHelper = require('./accordionPanelHelper.cjs');
|
|
9
10
|
|
|
11
|
+
const DEFAULT_EXPANDED_ARRAY = [];
|
|
12
|
+
const DEFAULT_EXPANDED_MAP = libs_map.flatArrayToMap(DEFAULT_EXPANDED_ARRAY);
|
|
10
13
|
const AccordionPanelContext = React.createContext({
|
|
11
14
|
iconPosition: 'left',
|
|
12
|
-
expandedItems:
|
|
15
|
+
expandedItems: DEFAULT_EXPANDED_MAP,
|
|
13
16
|
expandableMultiply: true,
|
|
14
17
|
parentRef: null,
|
|
18
|
+
handleClickTrigger: () => { },
|
|
19
|
+
handleKeyDown: () => { },
|
|
15
20
|
});
|
|
16
21
|
const ROUNDED = {
|
|
17
22
|
t_l: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tl-l',
|
|
@@ -37,20 +42,54 @@ const classNameGenerator = index.tv({
|
|
|
37
42
|
rounded: false,
|
|
38
43
|
},
|
|
39
44
|
});
|
|
40
|
-
const AccordionPanel = ({ iconPosition = 'left', expandableMultiply = true, defaultExpanded =
|
|
41
|
-
const [expandedItems, setExpanded] = React.useState(libs_map.flatArrayToMap(defaultExpanded));
|
|
45
|
+
const AccordionPanel = ({ iconPosition = 'left', expandableMultiply = true, defaultExpanded = DEFAULT_EXPANDED_ARRAY, className, onClick, rounded, ...rest }) => {
|
|
46
|
+
const [expandedItems, setExpanded] = React.useState(() => libs_map.flatArrayToMap(defaultExpanded));
|
|
42
47
|
const parentRef = React.useRef(null);
|
|
43
48
|
const actualClassName = React.useMemo(() => classNameGenerator({ className, rounded }), [rounded, className]);
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const latest = hooks_useLatest.useLatest({ onClick, expandableMultiply });
|
|
50
|
+
const functions = React.useMemo(() => ({
|
|
51
|
+
handleClickTrigger: (e) => {
|
|
52
|
+
const { currentTarget } = e;
|
|
53
|
+
setExpanded((prevExpandedItems) => {
|
|
54
|
+
const newExpandedItems = components_AccordionPanel_accordionPanelHelper.getNewExpandedItems(prevExpandedItems, currentTarget.value, currentTarget.getAttribute('aria-expanded') !== 'true', latest.expandableMultiply);
|
|
55
|
+
latest.onClick?.(libs_map.mapToKeyArray(newExpandedItems));
|
|
56
|
+
return newExpandedItems;
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
handleKeyDown: (e) => {
|
|
60
|
+
if (!parentRef.current) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const item = e.target;
|
|
64
|
+
switch (e.key) {
|
|
65
|
+
case 'Home': {
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
components_AccordionPanel_accordionPanelHelper.focusFirstSibling(parentRef.current);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case 'End': {
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
components_AccordionPanel_accordionPanelHelper.focusLastSibling(parentRef.current);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case 'ArrowLeft':
|
|
76
|
+
case 'ArrowUp': {
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
components_AccordionPanel_accordionPanelHelper.focusPreviousSibling(item, parentRef.current);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case 'ArrowRight':
|
|
82
|
+
case 'ArrowDown': {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
components_AccordionPanel_accordionPanelHelper.focusNextSibling(item, parentRef.current);
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
}), [latest]);
|
|
51
90
|
return (jsxRuntime.jsx(AccordionPanelContext.Provider, { value: {
|
|
52
|
-
|
|
53
|
-
|
|
91
|
+
handleClickTrigger: functions.handleClickTrigger,
|
|
92
|
+
handleKeyDown: functions.handleKeyDown,
|
|
54
93
|
expandedItems,
|
|
55
94
|
iconPosition,
|
|
56
95
|
expandableMultiply,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionPanel.cjs","sources":["../../../src/components/AccordionPanel/AccordionPanel.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type FC,\n type
|
|
1
|
+
{"version":3,"file":"AccordionPanel.cjs","sources":["../../../src/components/AccordionPanel/AccordionPanel.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n createContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { useLatest } from '../../hooks/useLatest'\nimport { flatArrayToMap, mapToKeyArray } from '../../libs/map'\n\nimport {\n focusFirstSibling,\n focusLastSibling,\n focusNextSibling,\n focusPreviousSibling,\n getNewExpandedItems,\n} from './accordionPanelHelper'\n\ntype AbstractProps = PropsWithChildren<{\n /** アイコンの左右位置 */\n iconPosition?: 'left' | 'right'\n /** 複数のパネルを同時に開くことを許容するかどうか */\n expandableMultiply?: boolean\n /** デフォルトで開いた状態にするアイテムの `name` の配列 */\n defaultExpanded?: string[]\n /** トリガのクリックイベントを処理するハンドラ */\n onClick?: (expandedItems: string[]) => void\n}> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst DEFAULT_EXPANDED_ARRAY: string[] = []\nconst DEFAULT_EXPANDED_MAP = flatArrayToMap(DEFAULT_EXPANDED_ARRAY)\n\nexport const AccordionPanelContext = createContext<{\n iconPosition: 'left' | 'right'\n expandedItems: Map<string, string>\n expandableMultiply: boolean\n parentRef: RefObject<HTMLDivElement> | null\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n}>({\n iconPosition: 'left',\n expandedItems: DEFAULT_EXPANDED_MAP,\n expandableMultiply: true,\n parentRef: null,\n handleClickTrigger: () => {},\n handleKeyDown: () => {},\n})\n\nconst ROUNDED = {\n t_l: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tl-l',\n t_r: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tr-l',\n b_l: '[&>.smarthr-ui-AccordionPanel-item:last-child_.smarthr-ui-AccordionPanel-trigger:not([aria-expanded=\"true\"])]:shr-rounded-bl-l',\n b_r: '[&>.smarthr-ui-AccordionPanel-item:last-child_.smarthr-ui-AccordionPanel-trigger:not([aria-expanded=\"true\"])]:shr-rounded-br-l',\n}\n\nconst ROUNDED_ALL = [ROUNDED.t_l, ROUNDED.t_r, ROUNDED.b_l, ROUNDED.b_r]\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AccordionPanel',\n variants: {\n rounded: {\n true: ROUNDED_ALL,\n false: '',\n all: ROUNDED_ALL,\n top: [ROUNDED.t_l, ROUNDED.t_r],\n right: [ROUNDED.t_r, ROUNDED.b_r],\n bottom: [ROUNDED.b_l, ROUNDED.b_r],\n left: [ROUNDED.t_l, ROUNDED.b_l],\n },\n },\n defaultVariants: {\n rounded: false,\n },\n})\n\nexport const AccordionPanel: FC<Props> = ({\n iconPosition = 'left',\n expandableMultiply = true,\n defaultExpanded = DEFAULT_EXPANDED_ARRAY,\n className,\n onClick,\n rounded,\n ...rest\n}) => {\n const [expandedItems, setExpanded] = useState(() => flatArrayToMap(defaultExpanded))\n const parentRef = useRef<HTMLDivElement>(null)\n const actualClassName = useMemo(\n () => classNameGenerator({ className, rounded }),\n [rounded, className],\n )\n\n const latest = useLatest({ onClick, expandableMultiply })\n\n const functions = useMemo(\n () => ({\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => {\n const { currentTarget } = e\n\n setExpanded((prevExpandedItems) => {\n const newExpandedItems = getNewExpandedItems(\n prevExpandedItems,\n currentTarget.value,\n currentTarget.getAttribute('aria-expanded') !== 'true',\n latest.expandableMultiply,\n )\n\n latest.onClick?.(mapToKeyArray(newExpandedItems))\n\n return newExpandedItems\n })\n },\n handleKeyDown: (e: Parameters<KeyboardEventHandler<HTMLButtonElement>>[0]): void => {\n if (!parentRef.current) {\n return\n }\n\n const item = e.target as HTMLElement\n\n switch (e.key) {\n case 'Home': {\n e.preventDefault()\n focusFirstSibling(parentRef.current)\n break\n }\n case 'End': {\n e.preventDefault()\n focusLastSibling(parentRef.current)\n break\n }\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault()\n focusPreviousSibling(item, parentRef.current)\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault()\n focusNextSibling(item, parentRef.current)\n break\n }\n }\n },\n }),\n [latest],\n )\n\n return (\n <AccordionPanelContext.Provider\n value={{\n handleClickTrigger: functions.handleClickTrigger,\n handleKeyDown: functions.handleKeyDown,\n expandedItems,\n iconPosition,\n expandableMultiply,\n parentRef,\n }}\n >\n <div {...rest} ref={parentRef} role=\"presentation\" className={actualClassName} />\n </AccordionPanelContext.Provider>\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;AAwCA;AACA;AAEO;AAQL;AACA;AACA;AACA;AACA;AACA;AACD;AAED;AACE;AACA;AACA;AACA;;AAGF;AAEA;AACE;AACA;AACE;AACE;AACA;AACA;;;;;AAKD;AACF;AACD;AACE;AACD;AACF;AAEM;AASL;AACA;;;AAQA;AAEI;AACE;AAEA;;;AAUE;AACF;;AAEF;AACE;;;AAIA;AAEA;;;AAGI;;;;;AAKA;;;AAGF;;;AAGE;;;AAGF;;;AAGE;;;;;AAKP;AAIH;;;;;;;AASK;AAKP;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ComponentProps, type FC, type PropsWithChildren, type RefObject } from 'react';
|
|
1
|
+
import { type ComponentProps, type FC, type KeyboardEventHandler, type MouseEvent, type PropsWithChildren, type RefObject } from 'react';
|
|
2
2
|
import { type VariantProps } from 'tailwind-variants';
|
|
3
3
|
type AbstractProps = PropsWithChildren<{
|
|
4
4
|
/** アイコンの左右位置 */
|
|
@@ -16,8 +16,8 @@ export declare const AccordionPanelContext: import("react").Context<{
|
|
|
16
16
|
expandedItems: Map<string, string>;
|
|
17
17
|
expandableMultiply: boolean;
|
|
18
18
|
parentRef: RefObject<HTMLDivElement> | null;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
20
|
+
handleKeyDown: KeyboardEventHandler<HTMLButtonElement>;
|
|
21
21
|
}>;
|
|
22
22
|
declare const classNameGenerator: import("tailwind-variants").TVReturnType<{
|
|
23
23
|
rounded: {
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { createContext, useState, useRef, useMemo
|
|
3
|
+
import { createContext, useState, useRef, useMemo } from 'react';
|
|
4
4
|
import { tv as ce } from './../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { useLatest } from '../../hooks/useLatest.js';
|
|
6
|
+
import { flatArrayToMap, mapToKeyArray } from '../../libs/map.js';
|
|
7
|
+
import { focusNextSibling, focusPreviousSibling, focusLastSibling, focusFirstSibling, getNewExpandedItems } from './accordionPanelHelper.js';
|
|
7
8
|
|
|
9
|
+
const DEFAULT_EXPANDED_ARRAY = [];
|
|
10
|
+
const DEFAULT_EXPANDED_MAP = flatArrayToMap(DEFAULT_EXPANDED_ARRAY);
|
|
8
11
|
const AccordionPanelContext = createContext({
|
|
9
12
|
iconPosition: 'left',
|
|
10
|
-
expandedItems:
|
|
13
|
+
expandedItems: DEFAULT_EXPANDED_MAP,
|
|
11
14
|
expandableMultiply: true,
|
|
12
15
|
parentRef: null,
|
|
16
|
+
handleClickTrigger: () => { },
|
|
17
|
+
handleKeyDown: () => { },
|
|
13
18
|
});
|
|
14
19
|
const ROUNDED = {
|
|
15
20
|
t_l: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tl-l',
|
|
@@ -35,20 +40,54 @@ const classNameGenerator = ce({
|
|
|
35
40
|
rounded: false,
|
|
36
41
|
},
|
|
37
42
|
});
|
|
38
|
-
const AccordionPanel = ({ iconPosition = 'left', expandableMultiply = true, defaultExpanded =
|
|
39
|
-
const [expandedItems, setExpanded] = useState(flatArrayToMap(defaultExpanded));
|
|
43
|
+
const AccordionPanel = ({ iconPosition = 'left', expandableMultiply = true, defaultExpanded = DEFAULT_EXPANDED_ARRAY, className, onClick, rounded, ...rest }) => {
|
|
44
|
+
const [expandedItems, setExpanded] = useState(() => flatArrayToMap(defaultExpanded));
|
|
40
45
|
const parentRef = useRef(null);
|
|
41
46
|
const actualClassName = useMemo(() => classNameGenerator({ className, rounded }), [rounded, className]);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const latest = useLatest({ onClick, expandableMultiply });
|
|
48
|
+
const functions = useMemo(() => ({
|
|
49
|
+
handleClickTrigger: (e) => {
|
|
50
|
+
const { currentTarget } = e;
|
|
51
|
+
setExpanded((prevExpandedItems) => {
|
|
52
|
+
const newExpandedItems = getNewExpandedItems(prevExpandedItems, currentTarget.value, currentTarget.getAttribute('aria-expanded') !== 'true', latest.expandableMultiply);
|
|
53
|
+
latest.onClick?.(mapToKeyArray(newExpandedItems));
|
|
54
|
+
return newExpandedItems;
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
handleKeyDown: (e) => {
|
|
58
|
+
if (!parentRef.current) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const item = e.target;
|
|
62
|
+
switch (e.key) {
|
|
63
|
+
case 'Home': {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
focusFirstSibling(parentRef.current);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case 'End': {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
focusLastSibling(parentRef.current);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case 'ArrowLeft':
|
|
74
|
+
case 'ArrowUp': {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
focusPreviousSibling(item, parentRef.current);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case 'ArrowRight':
|
|
80
|
+
case 'ArrowDown': {
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
focusNextSibling(item, parentRef.current);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
}), [latest]);
|
|
49
88
|
return (jsx(AccordionPanelContext.Provider, { value: {
|
|
50
|
-
|
|
51
|
-
|
|
89
|
+
handleClickTrigger: functions.handleClickTrigger,
|
|
90
|
+
handleKeyDown: functions.handleKeyDown,
|
|
52
91
|
expandedItems,
|
|
53
92
|
iconPosition,
|
|
54
93
|
expandableMultiply,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionPanel.js","sources":["../../../src/components/AccordionPanel/AccordionPanel.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type FC,\n type
|
|
1
|
+
{"version":3,"file":"AccordionPanel.js","sources":["../../../src/components/AccordionPanel/AccordionPanel.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n type RefObject,\n createContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { useLatest } from '../../hooks/useLatest'\nimport { flatArrayToMap, mapToKeyArray } from '../../libs/map'\n\nimport {\n focusFirstSibling,\n focusLastSibling,\n focusNextSibling,\n focusPreviousSibling,\n getNewExpandedItems,\n} from './accordionPanelHelper'\n\ntype AbstractProps = PropsWithChildren<{\n /** アイコンの左右位置 */\n iconPosition?: 'left' | 'right'\n /** 複数のパネルを同時に開くことを許容するかどうか */\n expandableMultiply?: boolean\n /** デフォルトで開いた状態にするアイテムの `name` の配列 */\n defaultExpanded?: string[]\n /** トリガのクリックイベントを処理するハンドラ */\n onClick?: (expandedItems: string[]) => void\n}> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst DEFAULT_EXPANDED_ARRAY: string[] = []\nconst DEFAULT_EXPANDED_MAP = flatArrayToMap(DEFAULT_EXPANDED_ARRAY)\n\nexport const AccordionPanelContext = createContext<{\n iconPosition: 'left' | 'right'\n expandedItems: Map<string, string>\n expandableMultiply: boolean\n parentRef: RefObject<HTMLDivElement> | null\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n}>({\n iconPosition: 'left',\n expandedItems: DEFAULT_EXPANDED_MAP,\n expandableMultiply: true,\n parentRef: null,\n handleClickTrigger: () => {},\n handleKeyDown: () => {},\n})\n\nconst ROUNDED = {\n t_l: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tl-l',\n t_r: '[&>.smarthr-ui-AccordionPanel-item:first-child_.smarthr-ui-AccordionPanel-trigger]:shr-rounded-tr-l',\n b_l: '[&>.smarthr-ui-AccordionPanel-item:last-child_.smarthr-ui-AccordionPanel-trigger:not([aria-expanded=\"true\"])]:shr-rounded-bl-l',\n b_r: '[&>.smarthr-ui-AccordionPanel-item:last-child_.smarthr-ui-AccordionPanel-trigger:not([aria-expanded=\"true\"])]:shr-rounded-br-l',\n}\n\nconst ROUNDED_ALL = [ROUNDED.t_l, ROUNDED.t_r, ROUNDED.b_l, ROUNDED.b_r]\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AccordionPanel',\n variants: {\n rounded: {\n true: ROUNDED_ALL,\n false: '',\n all: ROUNDED_ALL,\n top: [ROUNDED.t_l, ROUNDED.t_r],\n right: [ROUNDED.t_r, ROUNDED.b_r],\n bottom: [ROUNDED.b_l, ROUNDED.b_r],\n left: [ROUNDED.t_l, ROUNDED.b_l],\n },\n },\n defaultVariants: {\n rounded: false,\n },\n})\n\nexport const AccordionPanel: FC<Props> = ({\n iconPosition = 'left',\n expandableMultiply = true,\n defaultExpanded = DEFAULT_EXPANDED_ARRAY,\n className,\n onClick,\n rounded,\n ...rest\n}) => {\n const [expandedItems, setExpanded] = useState(() => flatArrayToMap(defaultExpanded))\n const parentRef = useRef<HTMLDivElement>(null)\n const actualClassName = useMemo(\n () => classNameGenerator({ className, rounded }),\n [rounded, className],\n )\n\n const latest = useLatest({ onClick, expandableMultiply })\n\n const functions = useMemo(\n () => ({\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => {\n const { currentTarget } = e\n\n setExpanded((prevExpandedItems) => {\n const newExpandedItems = getNewExpandedItems(\n prevExpandedItems,\n currentTarget.value,\n currentTarget.getAttribute('aria-expanded') !== 'true',\n latest.expandableMultiply,\n )\n\n latest.onClick?.(mapToKeyArray(newExpandedItems))\n\n return newExpandedItems\n })\n },\n handleKeyDown: (e: Parameters<KeyboardEventHandler<HTMLButtonElement>>[0]): void => {\n if (!parentRef.current) {\n return\n }\n\n const item = e.target as HTMLElement\n\n switch (e.key) {\n case 'Home': {\n e.preventDefault()\n focusFirstSibling(parentRef.current)\n break\n }\n case 'End': {\n e.preventDefault()\n focusLastSibling(parentRef.current)\n break\n }\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault()\n focusPreviousSibling(item, parentRef.current)\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault()\n focusNextSibling(item, parentRef.current)\n break\n }\n }\n },\n }),\n [latest],\n )\n\n return (\n <AccordionPanelContext.Provider\n value={{\n handleClickTrigger: functions.handleClickTrigger,\n handleKeyDown: functions.handleKeyDown,\n expandedItems,\n iconPosition,\n expandableMultiply,\n parentRef,\n }}\n >\n <div {...rest} ref={parentRef} role=\"presentation\" className={actualClassName} />\n </AccordionPanelContext.Provider>\n )\n}\n"],"names":[],"mappings":";;;;;;;;AAwCA;AACA;AAEO;AAQL;AACA;AACA;AACA;AACA;AACA;AACD;AAED;AACE;AACA;AACA;AACA;;AAGF;AAEA;AACE;AACA;AACE;AACE;AACA;AACA;;;;;AAKD;AACF;AACD;AACE;AACD;AACF;AAEM;AASL;AACA;;;AAQA;AAEI;AACE;AAEA;;;AAUE;AACF;;AAEF;AACE;;;AAIA;AAEA;;;AAGI;;;;;AAKA;;;AAGF;;;AAGE;;;AAGF;;;AAGE;;;;;AAKP;AAIH;;;;;;;AASK;AAKP;;"}
|
|
@@ -18,7 +18,6 @@ require('../Layout/Center/Center.cjs');
|
|
|
18
18
|
require('../Layout/Container/Container.cjs');
|
|
19
19
|
var components_AccordionPanel_AccordionPanel = require('./AccordionPanel.cjs');
|
|
20
20
|
var components_AccordionPanel_AccordionPanelItem = require('./AccordionPanelItem.cjs');
|
|
21
|
-
var components_AccordionPanel_accordionPanelHelper = require('./accordionPanelHelper.cjs');
|
|
22
21
|
|
|
23
22
|
const classNameGenerator = index.tv({
|
|
24
23
|
slots: {
|
|
@@ -55,67 +54,13 @@ const AccordionPanelTrigger = ({ children, className, headingType = 'blockTitle'
|
|
|
55
54
|
};
|
|
56
55
|
}, [className]);
|
|
57
56
|
const { name, contentId, triggerId } = React.useContext(components_AccordionPanel_AccordionPanelItem.AccordionPanelItemContext);
|
|
58
|
-
const { iconPosition, expandedItems,
|
|
57
|
+
const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } = React.useContext(components_AccordionPanel_AccordionPanel.AccordionPanelContext);
|
|
59
58
|
const isExpanded = React.useMemo(() => libs_map.getIsInclude(expandedItems, name), [expandedItems, name]);
|
|
60
|
-
|
|
61
|
-
? (e) => onClickTrigger(e.currentTarget.value, !isExpanded)
|
|
62
|
-
: undefined, [isExpanded, onClickTrigger]);
|
|
63
|
-
const actualOnClickProps = React.useMemo(() => onClickProps
|
|
64
|
-
? (e) => {
|
|
65
|
-
const newExpandedItems = components_AccordionPanel_accordionPanelHelper.getNewExpandedItems(expandedItems, e.currentTarget.value, !isExpanded, expandableMultiply);
|
|
66
|
-
onClickProps(libs_map.mapToKeyArray(newExpandedItems));
|
|
67
|
-
}
|
|
68
|
-
: undefined, [isExpanded, expandedItems, expandableMultiply, onClickProps]);
|
|
69
|
-
const handleClick = React.useMemo(() => {
|
|
70
|
-
if (actualOnClickTrigger) {
|
|
71
|
-
if (actualOnClickProps) {
|
|
72
|
-
return (e) => {
|
|
73
|
-
actualOnClickTrigger(e);
|
|
74
|
-
actualOnClickProps(e);
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
return actualOnClickTrigger;
|
|
78
|
-
}
|
|
79
|
-
else if (actualOnClickProps) {
|
|
80
|
-
return actualOnClickProps;
|
|
81
|
-
}
|
|
82
|
-
return undefined;
|
|
83
|
-
}, [actualOnClickProps, actualOnClickTrigger]);
|
|
84
|
-
const handleKeyDown = React.useCallback((e) => {
|
|
85
|
-
if (!parentRef?.current) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const item = e.target;
|
|
89
|
-
switch (e.key) {
|
|
90
|
-
case 'Home': {
|
|
91
|
-
e.preventDefault();
|
|
92
|
-
components_AccordionPanel_accordionPanelHelper.focusFirstSibling(parentRef.current);
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
case 'End': {
|
|
96
|
-
e.preventDefault();
|
|
97
|
-
components_AccordionPanel_accordionPanelHelper.focusLastSibling(parentRef.current);
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
case 'ArrowLeft':
|
|
101
|
-
case 'ArrowUp': {
|
|
102
|
-
e.preventDefault();
|
|
103
|
-
components_AccordionPanel_accordionPanelHelper.focusPreviousSibling(item, parentRef.current);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
case 'ArrowRight':
|
|
107
|
-
case 'ArrowDown': {
|
|
108
|
-
e.preventDefault();
|
|
109
|
-
components_AccordionPanel_accordionPanelHelper.focusNextSibling(item, parentRef.current);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}, [parentRef]);
|
|
114
|
-
return (
|
|
115
|
-
// eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
|
|
116
|
-
jsxRuntime.jsx(components_Heading_Heading.Heading, { unrecommendedTag: unrecommendedHeadingTag, type: headingType, children: jsxRuntime.jsx("button", { ...rest, type: "button", value: name, id: triggerId, "aria-expanded": isExpanded, "aria-controls": contentId, onClick: handleClick, onKeyDown: handleKeyDown, className: classNames.button, "data-component": "AccordionHeaderButton", children: jsxRuntime.jsx(MemoizedTitle, { iconPosition: iconPosition, classNames: classNames, children: children }) }) }));
|
|
59
|
+
return (jsxRuntime.jsx(MemoizedHeadingButton, { ...rest, name: name, triggerId: triggerId, isExpanded: isExpanded, contentId: contentId, handleClickTrigger: handleClickTrigger, handleKeyDown: handleKeyDown, classNames: classNames, iconPosition: iconPosition, headingType: headingType, unrecommendedHeadingTag: unrecommendedHeadingTag, children: children }));
|
|
117
60
|
};
|
|
118
|
-
const
|
|
61
|
+
const MemoizedHeadingButton = React.memo(({ children, name, triggerId, isExpanded, contentId, handleClickTrigger, handleKeyDown, classNames, iconPosition, headingType, unrecommendedHeadingTag, ...rest }) => (
|
|
62
|
+
// eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
|
|
63
|
+
jsxRuntime.jsx(components_Heading_Heading.Heading, { unrecommendedTag: unrecommendedHeadingTag, type: headingType, children: jsxRuntime.jsx("button", { ...rest, type: "button", value: name, id: triggerId, "aria-expanded": isExpanded, "aria-controls": contentId, onClick: handleClickTrigger, onKeyDown: handleKeyDown, className: classNames.button, "data-component": "AccordionHeaderButton", children: jsxRuntime.jsxs(components_Layout_Cluster_Cluster.Cluster, { className: classNames.titleWrapper, align: "center", as: "span", children: [iconPosition === 'left' && jsxRuntime.jsx(components_Icon_FaIcon.FaCaretRightIcon, { className: classNames.leftIcon }), jsxRuntime.jsx("span", { className: classNames.title, children: children }), iconPosition === 'right' && jsxRuntime.jsx(components_Icon_FaIcon.FaCaretDownIcon, { className: classNames.rightIcon })] }) }) })));
|
|
119
64
|
|
|
120
65
|
exports.AccordionPanelTrigger = AccordionPanelTrigger;
|
|
121
66
|
//# sourceMappingURL=AccordionPanelTrigger.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionPanelTrigger.cjs","sources":["../../../src/components/AccordionPanel/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n
|
|
1
|
+
{"version":3,"file":"AccordionPanelTrigger.cjs","sources":["../../../src/components/AccordionPanel/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../libs/map'\nimport { Heading, type HeadingTagTypes } from '../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../Icon'\nimport { Cluster } from '../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { TextProps } from '../Text'\n\ntype AbstractProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingTagTypes\n}>\ntype Props = AbstractProps & Omit<ComponentPropsWithoutRef<'button'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Base 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Base に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Base_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Base_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n name={name}\n triggerId={triggerId}\n isExpanded={isExpanded}\n contentId={contentId}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n classNames={classNames}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingTagTypes\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading unrecommendedTag={unrecommendedHeadingTag} type={headingType}>\n <button\n {...rest}\n type=\"button\"\n value={name}\n id={triggerId}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n className={classNames.button}\n data-component=\"AccordionHeaderButton\"\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster className={classNames.titleWrapper} align=\"center\" as=\"span\">\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { memo, useMemo, useContext
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { memo, useMemo, useContext } from 'react';
|
|
4
4
|
import { tv as ce } from './../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.js';
|
|
5
|
-
import { getIsInclude
|
|
5
|
+
import { getIsInclude } from '../../libs/map.js';
|
|
6
6
|
import { Heading } from '../Heading/Heading.js';
|
|
7
7
|
import '../Heading/PageHeading/PageHeading.js';
|
|
8
8
|
import { FaCaretRightIcon, FaCaretDownIcon } from '../Icon/FaIcon.js';
|
|
@@ -16,7 +16,6 @@ import '../Layout/Center/Center.js';
|
|
|
16
16
|
import '../Layout/Container/Container.js';
|
|
17
17
|
import { AccordionPanelContext } from './AccordionPanel.js';
|
|
18
18
|
import { AccordionPanelItemContext } from './AccordionPanelItem.js';
|
|
19
|
-
import { getNewExpandedItems, focusNextSibling, focusPreviousSibling, focusLastSibling, focusFirstSibling } from './accordionPanelHelper.js';
|
|
20
19
|
|
|
21
20
|
const classNameGenerator = ce({
|
|
22
21
|
slots: {
|
|
@@ -53,67 +52,13 @@ const AccordionPanelTrigger = ({ children, className, headingType = 'blockTitle'
|
|
|
53
52
|
};
|
|
54
53
|
}, [className]);
|
|
55
54
|
const { name, contentId, triggerId } = useContext(AccordionPanelItemContext);
|
|
56
|
-
const { iconPosition, expandedItems,
|
|
55
|
+
const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } = useContext(AccordionPanelContext);
|
|
57
56
|
const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name]);
|
|
58
|
-
|
|
59
|
-
? (e) => onClickTrigger(e.currentTarget.value, !isExpanded)
|
|
60
|
-
: undefined, [isExpanded, onClickTrigger]);
|
|
61
|
-
const actualOnClickProps = useMemo(() => onClickProps
|
|
62
|
-
? (e) => {
|
|
63
|
-
const newExpandedItems = getNewExpandedItems(expandedItems, e.currentTarget.value, !isExpanded, expandableMultiply);
|
|
64
|
-
onClickProps(mapToKeyArray(newExpandedItems));
|
|
65
|
-
}
|
|
66
|
-
: undefined, [isExpanded, expandedItems, expandableMultiply, onClickProps]);
|
|
67
|
-
const handleClick = useMemo(() => {
|
|
68
|
-
if (actualOnClickTrigger) {
|
|
69
|
-
if (actualOnClickProps) {
|
|
70
|
-
return (e) => {
|
|
71
|
-
actualOnClickTrigger(e);
|
|
72
|
-
actualOnClickProps(e);
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return actualOnClickTrigger;
|
|
76
|
-
}
|
|
77
|
-
else if (actualOnClickProps) {
|
|
78
|
-
return actualOnClickProps;
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
}, [actualOnClickProps, actualOnClickTrigger]);
|
|
82
|
-
const handleKeyDown = useCallback((e) => {
|
|
83
|
-
if (!parentRef?.current) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const item = e.target;
|
|
87
|
-
switch (e.key) {
|
|
88
|
-
case 'Home': {
|
|
89
|
-
e.preventDefault();
|
|
90
|
-
focusFirstSibling(parentRef.current);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
case 'End': {
|
|
94
|
-
e.preventDefault();
|
|
95
|
-
focusLastSibling(parentRef.current);
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
case 'ArrowLeft':
|
|
99
|
-
case 'ArrowUp': {
|
|
100
|
-
e.preventDefault();
|
|
101
|
-
focusPreviousSibling(item, parentRef.current);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
case 'ArrowRight':
|
|
105
|
-
case 'ArrowDown': {
|
|
106
|
-
e.preventDefault();
|
|
107
|
-
focusNextSibling(item, parentRef.current);
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}, [parentRef]);
|
|
112
|
-
return (
|
|
113
|
-
// eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
|
|
114
|
-
jsx(Heading, { unrecommendedTag: unrecommendedHeadingTag, type: headingType, children: jsx("button", { ...rest, type: "button", value: name, id: triggerId, "aria-expanded": isExpanded, "aria-controls": contentId, onClick: handleClick, onKeyDown: handleKeyDown, className: classNames.button, "data-component": "AccordionHeaderButton", children: jsx(MemoizedTitle, { iconPosition: iconPosition, classNames: classNames, children: children }) }) }));
|
|
57
|
+
return (jsx(MemoizedHeadingButton, { ...rest, name: name, triggerId: triggerId, isExpanded: isExpanded, contentId: contentId, handleClickTrigger: handleClickTrigger, handleKeyDown: handleKeyDown, classNames: classNames, iconPosition: iconPosition, headingType: headingType, unrecommendedHeadingTag: unrecommendedHeadingTag, children: children }));
|
|
115
58
|
};
|
|
116
|
-
const
|
|
59
|
+
const MemoizedHeadingButton = memo(({ children, name, triggerId, isExpanded, contentId, handleClickTrigger, handleKeyDown, classNames, iconPosition, headingType, unrecommendedHeadingTag, ...rest }) => (
|
|
60
|
+
// eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
|
|
61
|
+
jsx(Heading, { unrecommendedTag: unrecommendedHeadingTag, type: headingType, children: jsx("button", { ...rest, type: "button", value: name, id: triggerId, "aria-expanded": isExpanded, "aria-controls": contentId, onClick: handleClickTrigger, onKeyDown: handleKeyDown, className: classNames.button, "data-component": "AccordionHeaderButton", children: jsxs(Cluster, { className: classNames.titleWrapper, align: "center", as: "span", children: [iconPosition === 'left' && jsx(FaCaretRightIcon, { className: classNames.leftIcon }), jsx("span", { className: classNames.title, children: children }), iconPosition === 'right' && jsx(FaCaretDownIcon, { className: classNames.rightIcon })] }) }) })));
|
|
117
62
|
|
|
118
63
|
export { AccordionPanelTrigger };
|
|
119
64
|
//# sourceMappingURL=AccordionPanelTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionPanelTrigger.js","sources":["../../../src/components/AccordionPanel/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n
|
|
1
|
+
{"version":3,"file":"AccordionPanelTrigger.js","sources":["../../../src/components/AccordionPanel/AccordionPanelTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type FC,\n type KeyboardEventHandler,\n type MouseEvent,\n type PropsWithChildren,\n memo,\n useContext,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { getIsInclude } from '../../libs/map'\nimport { Heading, type HeadingTagTypes } from '../Heading'\nimport { FaCaretDownIcon, FaCaretRightIcon } from '../Icon'\nimport { Cluster } from '../Layout'\n\nimport { AccordionPanelContext } from './AccordionPanel'\nimport { AccordionPanelItemContext } from './AccordionPanelItem'\n\nimport type { TextProps } from '../Text'\n\ntype AbstractProps = PropsWithChildren<{\n /** ヘッダ部分のテキストのスタイル */\n headingType?: Exclude<TextProps['styleType'], 'screenTitle'>\n /**\n * 可能な限り利用せず、SectioningContent(Article, Aside, Nav, Section)を使ってHeadingと関連する範囲を明確に指定する方法を検討してください\n */\n unrecommendedHeadingTag?: HeadingTagTypes\n}>\ntype Props = AbstractProps & Omit<ComponentPropsWithoutRef<'button'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n slots: {\n title: 'shr-grow shr-leading-tight',\n titleWrapper: 'shr-flex-nowrap',\n button: [\n 'smarthr-ui-AccordionPanel-trigger',\n 'shr-group shr-w-full shr-cursor-pointer shr-appearance-none shr-border-none shr-bg-transparent shr-px-1 shr-py-0.75 shr-text-left shr-text-inherit shr-text-color-inherit',\n 'disabled:shr-cursor-not-allowed disabled:shr-bg-white-darken disabled:shr-text-disabled',\n 'hover:shr-bg-white-darken',\n 'focus-visible:shr-focus-indicator',\n // Base 直下に AccordionPanel がある場合、背景が付き抜けないように角丸を指定(Base に overflow: hidden を与えるとフォーカスリングが表示されなくなる)\n '[.smarthr-ui-Base_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:first-child_&]:shr-rounded-t-l [.smarthr-ui-Base_>_.smarthr-ui-AccordionPanel_.smarthr-ui-AccordionPanel-item:last-child_&]:shr-rounded-b-l',\n ],\n leftIcon: 'shr-transition-transform shr-duration-100 group-aria-expanded:shr-rotate-90',\n rightIcon: 'group-aria-expanded:-shr-rotate-180',\n },\n compoundSlots: [\n {\n slots: ['leftIcon', 'rightIcon'],\n className: 'shr-shrink-0',\n },\n ],\n})\n\nexport const AccordionPanelTrigger: FC<Props> = ({\n children,\n className,\n headingType = 'blockTitle',\n unrecommendedHeadingTag,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { title, titleWrapper, button, leftIcon, rightIcon } = classNameGenerator()\n\n return {\n title: title(),\n titleWrapper: titleWrapper(),\n button: button({ className }),\n leftIcon: leftIcon(),\n rightIcon: rightIcon(),\n }\n }, [className])\n\n const { name, contentId, triggerId } = useContext(AccordionPanelItemContext)\n const { iconPosition, expandedItems, handleClickTrigger, handleKeyDown } =\n useContext(AccordionPanelContext)\n\n const isExpanded = useMemo(() => getIsInclude(expandedItems, name), [expandedItems, name])\n\n return (\n <MemoizedHeadingButton\n {...rest}\n name={name}\n triggerId={triggerId}\n isExpanded={isExpanded}\n contentId={contentId}\n handleClickTrigger={handleClickTrigger}\n handleKeyDown={handleKeyDown}\n classNames={classNames}\n iconPosition={iconPosition}\n headingType={headingType}\n unrecommendedHeadingTag={unrecommendedHeadingTag}\n >\n {children}\n </MemoizedHeadingButton>\n )\n}\n\nconst MemoizedHeadingButton = memo<\n PropsWithChildren<\n Omit<ComponentPropsWithoutRef<'button'>, 'onClick' | 'onKeyDown'> & {\n name: string\n triggerId: string\n isExpanded: boolean\n contentId: string\n handleClickTrigger: (e: MouseEvent<HTMLButtonElement>) => void\n handleKeyDown: KeyboardEventHandler<HTMLButtonElement>\n classNames: {\n button: string\n titleWrapper: string\n leftIcon: string\n rightIcon: string\n title: string\n }\n iconPosition: 'left' | 'right'\n headingType: Exclude<TextProps['styleType'], 'screenTitle'>\n unrecommendedHeadingTag?: HeadingTagTypes\n }\n >\n>(\n ({\n children,\n name,\n triggerId,\n isExpanded,\n contentId,\n handleClickTrigger,\n handleKeyDown,\n classNames,\n iconPosition,\n headingType,\n unrecommendedHeadingTag,\n ...rest\n }) => (\n // eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content\n <Heading unrecommendedTag={unrecommendedHeadingTag} type={headingType}>\n <button\n {...rest}\n type=\"button\"\n value={name}\n id={triggerId}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n onClick={handleClickTrigger}\n onKeyDown={handleKeyDown}\n className={classNames.button}\n data-component=\"AccordionHeaderButton\"\n >\n {/* eslint-disable-next-line smarthr/best-practice-for-layouts */}\n <Cluster className={classNames.titleWrapper} align=\"center\" as=\"span\">\n {iconPosition === 'left' && <FaCaretRightIcon className={classNames.leftIcon} />}\n <span className={classNames.title}>{children}</span>\n {iconPosition === 'right' && <FaCaretDownIcon className={classNames.rightIcon} />}\n </Cluster>\n </button>\n </Heading>\n ),\n)\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCA;AACE;AACE;AACA;AACA;;;;;;;;AAQC;AACD;AACA;AACD;AACD;AACE;AACE;AACA;AACD;AACF;AACF;;AASC;AACE;;;;AAKE;;;;AAIJ;AAEA;AACA;;;AAsBF;AAEA;AAoCI;AACAA;;"}
|
|
@@ -4,8 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var index = require('./../../../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.cjs');
|
|
6
6
|
require('../../../../intl/IntlProvider.cjs');
|
|
7
|
-
|
|
8
|
-
require('../../../../intl/Localizer.cjs');
|
|
7
|
+
require('react-intl');
|
|
8
|
+
var intl_Localizer = require('../../../../intl/Localizer.cjs');
|
|
9
9
|
require('../../../../_virtual/dayjs.min.cjs');
|
|
10
10
|
require('../../../../intl/TimeFormatter.cjs');
|
|
11
11
|
require('../../../Button/Button.cjs');
|
|
@@ -30,29 +30,19 @@ const classNameGenerator = index.tv({
|
|
|
30
30
|
],
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
|
+
const CLASS_NAMES = (() => {
|
|
34
|
+
const { empty, list, listItem } = classNameGenerator();
|
|
35
|
+
return {
|
|
36
|
+
empty: empty(),
|
|
37
|
+
list: list(),
|
|
38
|
+
listItem: listItem(),
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
33
41
|
const AppLauncherFeatures = ({ features, page }) => features.length === 0 ? jsxRuntime.jsx(EmptyList, {}) : jsxRuntime.jsx(FeatureList, { features: features, page: page });
|
|
34
|
-
const EmptyList = React.memo(() => {
|
|
35
|
-
const className = React.useMemo(() => {
|
|
36
|
-
const { empty } = classNameGenerator();
|
|
37
|
-
return empty();
|
|
38
|
-
}, []);
|
|
39
|
-
const { localize } = intl_useIntl.useIntl();
|
|
40
|
-
const translated = React.useMemo(() => localize({
|
|
41
|
-
id: 'smarthr-ui/AppHeader/Launcher/emptyText',
|
|
42
|
-
defaultText: '該当するアプリが見つかりませんでした。',
|
|
43
|
-
}), [localize]);
|
|
44
|
-
return (jsxRuntime.jsx("div", { className: className, children: jsxRuntime.jsx(components_Text_Text.Text, { size: "S", children: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: translated }) }) }));
|
|
45
|
-
});
|
|
42
|
+
const EmptyList = React.memo(() => (jsxRuntime.jsx("div", { className: CLASS_NAMES.empty, children: jsxRuntime.jsx(components_Text_Text.Text, { size: "S", children: jsxRuntime.jsx(components_AppHeader_components_common_Translate.Translate, { children: jsxRuntime.jsx(intl_Localizer.Localizer, { id: "smarthr-ui/AppHeader/Launcher/emptyText", defaultText: "\u8A72\u5F53\u3059\u308B\u30A2\u30D7\u30EA\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002" }) }) }) })));
|
|
46
43
|
const FeatureList = ({ features, page }) => {
|
|
47
|
-
const classNames = React.useMemo(() => {
|
|
48
|
-
const { list, listItem } = classNameGenerator();
|
|
49
|
-
return {
|
|
50
|
-
list: list(),
|
|
51
|
-
listItem: listItem(),
|
|
52
|
-
};
|
|
53
|
-
}, []);
|
|
54
44
|
const isFavorite = page === 'favorite';
|
|
55
|
-
return (jsxRuntime.jsx("ul", { className:
|
|
45
|
+
return (jsxRuntime.jsx("ul", { className: CLASS_NAMES.list, children: features.map((feature) => (jsxRuntime.jsx(FeatureListItem, { href: feature.url, isFavorite: isFavorite, className: CLASS_NAMES.listItem, children: feature.name }, feature.id))) }));
|
|
56
46
|
};
|
|
57
47
|
const FeatureListItem = React.memo(({ href, children, isFavorite, className }) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsx(components_Button_AnchorButton.AnchorButton, { href: href, target: "_blank", prefix: isFavorite && jsxRuntime.jsx(components_Icon_FaIcon.FaStarIcon, {}), suffix: jsxRuntime.jsx(components_Icon_FaIcon.FaArrowRightIcon, {}), variant: "text", wide: true, "data-favorite": isFavorite, className: className, children: jsxRuntime.jsx(FeatureName, { children: children }) }) })));
|
|
58
48
|
const FeatureName = ({ children }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppLauncherFeatures.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo
|
|
1
|
+
{"version":3,"file":"AppLauncherFeatures.cjs","sources":["../../../../../src/components/AppHeader/components/common/AppLauncherFeatures.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, memo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Localizer } from '../../../../intl'\nimport { AnchorButton } from '../../../Button'\nimport { FaArrowRightIcon, FaStarIcon } from '../../../Icon'\nimport { LineClamp } from '../../../LineClamp'\nimport { Text } from '../../../Text'\nimport { mediaQuery, useMediaQuery } from '../../hooks/useMediaQuery'\n\nimport { Translate } from './Translate'\n\nimport type { Launcher } from '../../types'\n\nconst classNameGenerator = tv({\n slots: {\n empty: ['shr-p-1 shr-text-center'],\n list: ['shr-list-none', '[&>li]:shr-px-0.5 [&>li]:shr-py-0.25'],\n listItem: [\n 'smarthr-ui-AppLauncher-listItem',\n 'shr-grid shr-min-h-[2.5rem] shr-grid-cols-[1rem_1fr_1rem] shr-gap-0.75 shr-whitespace-normal shr-px-1 shr-py-0 shr-text-left shr-leading-tight',\n 'data-[favorite=\"false\"]:shr-grid-cols-[1fr_1rem]',\n ],\n },\n})\n\nconst CLASS_NAMES = (() => {\n const { empty, list, listItem } = classNameGenerator()\n\n return {\n empty: empty(),\n list: list(),\n listItem: listItem(),\n }\n})()\n\ntype Props = {\n features: Array<Launcher['feature']>\n page: Launcher['page']\n}\n\nexport const AppLauncherFeatures: FC<Props> = ({ features, page }) =>\n features.length === 0 ? <EmptyList /> : <FeatureList features={features} page={page} />\n\nconst EmptyList = memo(() => (\n <div className={CLASS_NAMES.empty}>\n <Text size=\"S\">\n <Translate>\n <Localizer\n id=\"smarthr-ui/AppHeader/Launcher/emptyText\"\n defaultText=\"該当するアプリが見つかりませんでした。\"\n />\n </Translate>\n </Text>\n </div>\n))\n\nconst FeatureList: FC<Props> = ({ features, page }) => {\n const isFavorite = page === 'favorite'\n\n return (\n <ul className={CLASS_NAMES.list}>\n {features.map((feature) => (\n <FeatureListItem\n key={feature.id}\n href={feature.url}\n isFavorite={isFavorite}\n className={CLASS_NAMES.listItem}\n >\n {feature.name}\n </FeatureListItem>\n ))}\n </ul>\n )\n}\n\nconst FeatureListItem = memo<{\n href: Props['features'][number]['url']\n children: Props['features'][number]['name']\n className: string\n isFavorite: boolean\n}>(({ href, children, isFavorite, className }) => (\n <li>\n <AnchorButton\n href={href}\n target=\"_blank\"\n prefix={isFavorite && <FaStarIcon />}\n suffix={<FaArrowRightIcon />}\n variant=\"text\"\n wide\n data-favorite={isFavorite}\n className={className}\n >\n <FeatureName>{children}</FeatureName>\n </AnchorButton>\n </li>\n))\n\nconst FeatureName: FC<PropsWithChildren> = ({ children }) => {\n const isDesktop = useMediaQuery(mediaQuery.desktop)\n\n return isDesktop ? <LineClamp maxLines={2}>{children}</LineClamp> : children\n}\n"],"names":["tv","_jsx","memo","Text","Translate","Localizer","AnchorButton","FaStarIcon","FaArrowRightIcon","useMediaQuery","mediaQuery","LineClamp"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,yBAAyB,CAAC;AAClC,QAAA,IAAI,EAAE,CAAC,eAAe,EAAE,sCAAsC,CAAC;AAC/D,QAAA,QAAQ,EAAE;YACR,iCAAiC;YACjC,gJAAgJ;YAChJ,kDAAkD;AACnD,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAK;IACxB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE;IAEtD,OAAO;QACL,KAAK,EAAE,KAAK,EAAE;QACd,IAAI,EAAE,IAAI,EAAE;QACZ,QAAQ,EAAE,QAAQ,EAAE;KACrB;AACH,CAAC,GAAG;AAOG,MAAM,mBAAmB,GAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAC/D,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAGC,eAAC,SAAS,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,WAAW,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;AAErF,MAAM,SAAS,GAAGC,UAAI,CAAC,OACrBD,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,CAAC,KAAK,YAC/BA,cAAA,CAACE,yBAAI,IAAC,IAAI,EAAC,GAAG,EAAA,QAAA,EACZF,eAACG,0DAAS,EAAA,EAAA,QAAA,EACRH,eAACI,wBAAS,EAAA,EACR,EAAE,EAAC,yCAAyC,EAC5C,WAAW,EAAC,oHAAqB,EAAA,CACjC,EAAA,CACQ,GACP,EAAA,CACH,CACP,CAAC;AAEF,MAAM,WAAW,GAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAI;AACpD,IAAA,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU;IAEtC,QACEJ,uBAAI,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,QAAA,EAC5B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACpBA,cAAA,CAAC,eAAe,EAAA,EAEd,IAAI,EAAE,OAAO,CAAC,GAAG,EACjB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,EAAA,QAAA,EAE9B,OAAO,CAAC,IAAI,EAAA,EALR,OAAO,CAAC,EAAE,CAMC,CACnB,CAAC,EAAA,CACC;AAET,CAAC;AAED,MAAM,eAAe,GAAGC,UAAI,CAKzB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAC3CD,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,cAAA,CAACK,2CAAY,EAAA,EACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,MAAM,EAAE,UAAU,IAAIL,cAAA,CAACM,iCAAU,EAAA,EAAA,CAAG,EACpC,MAAM,EAAEN,cAAA,CAACO,uCAAgB,EAAA,EAAA,CAAG,EAC5B,OAAO,EAAC,MAAM,EACd,IAAI,EAAA,IAAA,EAAA,eAAA,EACW,UAAU,EACzB,SAAS,EAAE,SAAS,YAEpBP,cAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAe,EAAA,CACxB,EAAA,CACZ,CACN,CAAC;AAEF,MAAM,WAAW,GAA0B,CAAC,EAAE,QAAQ,EAAE,KAAI;IAC1D,MAAM,SAAS,GAAGQ,sDAAa,CAACC,mDAAU,CAAC,OAAO,CAAC;AAEnD,IAAA,OAAO,SAAS,GAAGT,cAAA,CAACU,wCAAS,EAAA,EAAC,QAAQ,EAAE,CAAC,YAAG,QAAQ,EAAA,CAAa,GAAG,QAAQ;AAC9E,CAAC;;;;"}
|