@sqrzro/admin 2.0.0 → 2.1.0-bz.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc.json +16 -0
- package/.eslintignore +6 -0
- package/.eslintrc +1 -4
- package/.sqrzrorc +5 -0
- package/.storybook/main.js +10 -11
- package/.turbo/turbo-build.log +20 -0
- package/.turbo/turbo-prettier.log +41 -213
- package/COMPONENTS.md +45 -0
- package/dist/components/AppLayout/index.d.ts +2 -2
- package/dist/components/AppLayout/index.js +7 -15
- package/dist/components/AppNavigation/index.d.ts +3 -0
- package/dist/components/AppNavigation/index.js +15 -0
- package/dist/components/BooleanFilter/index.d.ts +5 -0
- package/dist/components/BooleanFilter/index.js +19 -0
- package/dist/components/Config/index.d.ts +6 -0
- package/dist/components/Config/index.js +9 -0
- package/dist/components/Dashboard/index.d.ts +7 -0
- package/dist/components/Dashboard/index.js +5 -0
- package/dist/components/DateFilter/index.d.ts +6 -0
- package/dist/components/DateFilter/index.js +32 -0
- package/dist/components/DropdownFilter/index.d.ts +6 -0
- package/dist/components/DropdownFilter/index.js +9 -0
- package/dist/components/FilterBar/index.d.ts +8 -0
- package/dist/components/FilterBar/index.js +12 -0
- package/dist/components/FilterBarItem/index.d.ts +14 -0
- package/dist/components/FilterBarItem/index.js +31 -0
- package/dist/components/GridList/index.d.ts +5 -0
- package/dist/components/GridList/index.js +7 -0
- package/dist/components/GridListItem/index.d.ts +4 -0
- package/dist/components/GridListItem/index.js +7 -0
- package/dist/components/Icon/index.d.ts +8 -0
- package/dist/components/Icon/index.js +22 -0
- package/dist/components/List/index.d.ts +19 -33
- package/dist/components/List/index.js +19 -43
- package/dist/components/ListAction/index.d.ts +7 -0
- package/dist/components/ListAction/index.js +9 -0
- package/dist/components/ListActions/index.d.ts +6 -16
- package/dist/components/ListActions/index.js +9 -11
- package/dist/components/ListItem/index.d.ts +14 -0
- package/dist/components/ListItem/index.js +12 -0
- package/dist/components/LoginForm/index.d.ts +5 -2
- package/dist/components/LoginForm/index.js +4 -44
- package/dist/components/MeActions/index.d.ts +3 -0
- package/dist/components/MeActions/index.js +13 -0
- package/dist/components/MePanel/index.d.ts +3 -0
- package/dist/components/MePanel/index.js +9 -0
- package/dist/components/Page/index.d.ts +12 -0
- package/dist/components/Page/index.js +8 -0
- package/dist/components/PageActions/index.d.ts +6 -0
- package/dist/components/PageActions/index.js +13 -0
- package/dist/components/Panel/index.d.ts +7 -0
- package/dist/components/Panel/index.js +5 -0
- package/dist/components/RootLayout/index.d.ts +5 -3
- package/dist/components/RootLayout/index.js +12 -5
- package/dist/components/Table/index.d.ts +7 -26
- package/dist/components/Table/index.js +14 -52
- package/dist/components/TableClientComponent/index.d.ts +16 -0
- package/dist/components/TableClientComponent/index.js +44 -0
- package/dist/components/Tabs/index.d.ts +8 -0
- package/dist/components/Tabs/index.js +6 -0
- package/dist/components/index.d.ts +24 -0
- package/dist/components/index.js +13 -0
- package/dist/icons/ErrorIcon/index.d.ts +3 -0
- package/dist/icons/ErrorIcon/index.js +5 -0
- package/dist/icons/InfoIcon/index.d.ts +3 -0
- package/dist/icons/InfoIcon/index.js +5 -0
- package/dist/icons/SuccessIcon/index.d.ts +3 -0
- package/dist/icons/SuccessIcon/index.js +5 -0
- package/dist/icons/WarningIcon/index.d.ts +3 -0
- package/dist/icons/WarningIcon/index.js +5 -0
- package/dist/index.d.ts +2 -208
- package/dist/index.js +2 -212
- package/dist/interfaces.d.ts +4 -0
- package/dist/services/ConfigService.d.ts +7 -40
- package/dist/services/ConfigService.js +10 -48
- package/dist/styles/config.d.ts +3 -0
- package/dist/styles/config.js +82 -0
- package/dist/styles.css +873 -134
- package/dist/utility/formatters.d.ts +1 -0
- package/dist/utility/formatters.js +8 -0
- package/next-env.d.ts +5 -0
- package/package.json +39 -29
- package/src/components/AppLayout/index.tsx +21 -11
- package/src/components/AppNavigation/index.tsx +39 -0
- package/src/components/BooleanFilter/index.tsx +28 -0
- package/src/components/Config/index.tsx +17 -0
- package/src/components/Dashboard/index.tsx +15 -0
- package/src/components/DateFilter/index.tsx +49 -0
- package/src/components/DropdownFilter/index.tsx +19 -0
- package/src/components/FilterBar/index.tsx +35 -0
- package/src/components/FilterBarItem/index.tsx +126 -0
- package/src/components/GridList/index.tsx +11 -0
- package/src/components/GridListItem/index.tsx +31 -0
- package/src/components/Icon/index.tsx +33 -0
- package/src/components/List/index.tsx +52 -72
- package/src/components/ListAction/index.tsx +25 -0
- package/src/components/ListActions/index.tsx +32 -19
- package/src/components/ListItem/index.tsx +56 -0
- package/src/components/LoginForm/index.tsx +25 -105
- package/src/components/MeActions/index.tsx +21 -0
- package/src/components/MePanel/index.tsx +21 -0
- package/src/components/Page/index.tsx +60 -0
- package/src/components/PageActions/index.tsx +22 -0
- package/src/components/Panel/Panel.spec.tsx +10 -0
- package/src/components/Panel/Panel.stories.tsx +9 -0
- package/src/components/Panel/index.tsx +15 -0
- package/src/components/RootLayout/index.tsx +23 -29
- package/src/components/Table/index.tsx +22 -111
- package/src/components/TableClientComponent/index.tsx +112 -0
- package/src/components/Tabs/index.tsx +25 -0
- package/src/components/index.ts +68 -0
- package/src/icons/ErrorIcon/index.tsx +19 -0
- package/src/icons/InfoIcon/index.tsx +19 -0
- package/src/icons/SuccessIcon/index.tsx +19 -0
- package/src/icons/WarningIcon/index.tsx +19 -0
- package/src/index.ts +2 -214
- package/src/interfaces.ts +3 -0
- package/src/react.d.ts +12 -0
- package/src/services/ConfigService.ts +15 -84
- package/src/styles/config.ts +95 -0
- package/src/styles/tailwind.css +25 -35
- package/src/utility/formatters.ts +9 -0
- package/tailwind.config.js +8 -3
- package/tsconfig.build.json +4 -0
- package/tsconfig.json +3 -3
- package/.turbo/turbo-docs.log +0 -0
- package/.turbo/turbo-lint.log +0 -112
- package/.turbo/turbo-test.log +0 -6
- package/dist/components/Alert/index.d.ts +0 -4
- package/dist/components/Alert/index.js +0 -15
- package/dist/components/Allow/index.d.ts +0 -20
- package/dist/components/Allow/index.js +0 -29
- package/dist/components/AppLayout/AppLayout.stories.d.ts +0 -5
- package/dist/components/AppLayout/AppLayout.stories.js +0 -11
- package/dist/components/AutoSuggest/index.d.ts +0 -74
- package/dist/components/AutoSuggest/index.js +0 -143
- package/dist/components/Button/Button.stories.d.ts +0 -11
- package/dist/components/Button/Button.stories.js +0 -41
- package/dist/components/Button/index.d.ts +0 -49
- package/dist/components/Button/index.js +0 -50
- package/dist/components/CalendarInput/index.d.ts +0 -24
- package/dist/components/CalendarInput/index.js +0 -54
- package/dist/components/CheckboxList/index.d.ts +0 -17
- package/dist/components/CheckboxList/index.js +0 -25
- package/dist/components/CodeInput/index.d.ts +0 -9
- package/dist/components/CodeInput/index.js +0 -51
- package/dist/components/ConnectedDropdown/index.d.ts +0 -14
- package/dist/components/ConnectedDropdown/index.js +0 -36
- package/dist/components/ConnectedList/index.d.ts +0 -5
- package/dist/components/ConnectedList/index.js +0 -7
- package/dist/components/ConnectedTable/index.d.ts +0 -5
- package/dist/components/ConnectedTable/index.js +0 -7
- package/dist/components/ContentBlock/index.d.ts +0 -16
- package/dist/components/ContentBlock/index.js +0 -13
- package/dist/components/DataPanel/index.d.ts +0 -8
- package/dist/components/DataPanel/index.js +0 -8
- package/dist/components/DateInput/index.d.ts +0 -18
- package/dist/components/DateInput/index.js +0 -81
- package/dist/components/Dropdown/index.d.ts +0 -36
- package/dist/components/Dropdown/index.js +0 -122
- package/dist/components/ErrorMessage/index.d.ts +0 -16
- package/dist/components/ErrorMessage/index.js +0 -17
- package/dist/components/Fieldset/index.d.ts +0 -18
- package/dist/components/Fieldset/index.js +0 -19
- package/dist/components/FileInput/index.d.ts +0 -10
- package/dist/components/FileInput/index.js +0 -26
- package/dist/components/FilterLink/index.d.ts +0 -14
- package/dist/components/FilterLink/index.js +0 -15
- package/dist/components/Form/index.d.ts +0 -14
- package/dist/components/Form/index.js +0 -15
- package/dist/components/FormActions/index.d.ts +0 -18
- package/dist/components/FormActions/index.js +0 -14
- package/dist/components/FormField/index.d.ts +0 -14
- package/dist/components/FormField/index.js +0 -40
- package/dist/components/FormRepeater/index.d.ts +0 -18
- package/dist/components/FormRepeater/index.js +0 -65
- package/dist/components/ImageInput/index.d.ts +0 -13
- package/dist/components/ImageInput/index.js +0 -45
- package/dist/components/InfoPanel/index.d.ts +0 -14
- package/dist/components/InfoPanel/index.js +0 -11
- package/dist/components/Link/__mocks__/index.d.ts +0 -6
- package/dist/components/Link/__mocks__/index.js +0 -12
- package/dist/components/Link/index.d.ts +0 -23
- package/dist/components/Link/index.js +0 -21
- package/dist/components/Message/index.d.ts +0 -14
- package/dist/components/Message/index.js +0 -14
- package/dist/components/Modal/index.d.ts +0 -4
- package/dist/components/Modal/index.js +0 -18
- package/dist/components/ModalActions/index.d.ts +0 -21
- package/dist/components/ModalActions/index.js +0 -18
- package/dist/components/MoneyInput/index.d.ts +0 -10
- package/dist/components/MoneyInput/index.js +0 -13
- package/dist/components/PasswordForm/index.d.ts +0 -35
- package/dist/components/PasswordForm/index.js +0 -21
- package/dist/components/PasswordInput/index.d.ts +0 -4
- package/dist/components/PasswordInput/index.js +0 -12
- package/dist/components/RadioList/index.d.ts +0 -9
- package/dist/components/RadioList/index.js +0 -7
- package/dist/components/SummaryList/index.d.ts +0 -18
- package/dist/components/SummaryList/index.js +0 -15
- package/dist/components/Switch/index.d.ts +0 -21
- package/dist/components/Switch/index.js +0 -31
- package/dist/components/Tag/index.d.ts +0 -15
- package/dist/components/Tag/index.js +0 -13
- package/dist/components/TextArea/index.d.ts +0 -18
- package/dist/components/TextArea/index.js +0 -26
- package/dist/components/TextInput/index.d.ts +0 -14
- package/dist/components/TextInput/index.js +0 -27
- package/dist/components/WebsiteInput/index.d.ts +0 -10
- package/dist/components/WebsiteInput/index.js +0 -13
- package/dist/components/WeekCalendar/index.d.ts +0 -24
- package/dist/components/WeekCalendar/index.js +0 -48
- package/dist/core/AlertComponent/index.d.ts +0 -26
- package/dist/core/AlertComponent/index.js +0 -35
- package/dist/core/AppHeader/index.d.ts +0 -3
- package/dist/core/AppHeader/index.js +0 -17
- package/dist/core/AppLogo/index.d.ts +0 -12
- package/dist/core/AppLogo/index.js +0 -16
- package/dist/core/AppLogoImage/index.d.ts +0 -3
- package/dist/core/AppLogoImage/index.js +0 -11
- package/dist/core/AppLogoPlaceholder/index.d.ts +0 -3
- package/dist/core/AppLogoPlaceholder/index.js +0 -10
- package/dist/core/Assistive/index.d.ts +0 -12
- package/dist/core/Assistive/index.js +0 -9
- package/dist/core/AuthForm/index.d.ts +0 -10
- package/dist/core/AuthForm/index.js +0 -13
- package/dist/core/Banner/index.d.ts +0 -3
- package/dist/core/Banner/index.js +0 -14
- package/dist/core/Calendar/index.d.ts +0 -21
- package/dist/core/Calendar/index.js +0 -69
- package/dist/core/CalendarDay/index.d.ts +0 -30
- package/dist/core/CalendarDay/index.js +0 -30
- package/dist/core/CalendarMonth/index.d.ts +0 -23
- package/dist/core/CalendarMonth/index.js +0 -45
- package/dist/core/CalendarNavigation/index.d.ts +0 -17
- package/dist/core/CalendarNavigation/index.js +0 -24
- package/dist/core/CalendarWeek/index.d.ts +0 -28
- package/dist/core/CalendarWeek/index.js +0 -46
- package/dist/core/ChkRad/index.d.ts +0 -26
- package/dist/core/ChkRad/index.js +0 -33
- package/dist/core/ChkRadIcon/index.d.ts +0 -14
- package/dist/core/ChkRadIcon/index.js +0 -12
- package/dist/core/ChkRadList/index.d.ts +0 -32
- package/dist/core/ChkRadList/index.js +0 -37
- package/dist/core/CloseButton/index.d.ts +0 -17
- package/dist/core/CloseButton/index.js +0 -12
- package/dist/core/ConfirmModal/index.d.ts +0 -3
- package/dist/core/ConfirmModal/index.js +0 -38
- package/dist/core/ConnectedRepeater/index.d.ts +0 -50
- package/dist/core/ConnectedRepeater/index.js +0 -154
- package/dist/core/ConnectedRepeaterComponent/index.d.ts +0 -24
- package/dist/core/ConnectedRepeaterComponent/index.js +0 -25
- package/dist/core/Container/index.d.ts +0 -14
- package/dist/core/Container/index.js +0 -12
- package/dist/core/DataPanelItem/index.d.ts +0 -8
- package/dist/core/DataPanelItem/index.js +0 -7
- package/dist/core/DropdownPanel/index.d.ts +0 -31
- package/dist/core/DropdownPanel/index.js +0 -32
- package/dist/core/EmptyMessage/index.d.ts +0 -21
- package/dist/core/EmptyMessage/index.js +0 -21
- package/dist/core/FilterItem/index.d.ts +0 -25
- package/dist/core/FilterItem/index.js +0 -82
- package/dist/core/Filters/index.d.ts +0 -31
- package/dist/core/Filters/index.js +0 -85
- package/dist/core/FixedActions/index.d.ts +0 -24
- package/dist/core/FixedActions/index.js +0 -22
- package/dist/core/FormError/index.d.ts +0 -12
- package/dist/core/FormError/index.js +0 -9
- package/dist/core/FormLabel/index.d.ts +0 -16
- package/dist/core/FormLabel/index.js +0 -13
- package/dist/core/FormLegend/index.d.ts +0 -12
- package/dist/core/FormLegend/index.js +0 -9
- package/dist/core/Header/Header.stories.d.ts +0 -5
- package/dist/core/Header/Header.stories.js +0 -11
- package/dist/core/Header/index.d.ts +0 -14
- package/dist/core/Header/index.js +0 -12
- package/dist/core/Icon/index.d.ts +0 -14
- package/dist/core/Icon/index.js +0 -32
- package/dist/core/IconButton/index.d.ts +0 -22
- package/dist/core/IconButton/index.js +0 -20
- package/dist/core/InputPanel/index.d.ts +0 -16
- package/dist/core/InputPanel/index.js +0 -11
- package/dist/core/ListItem/index.d.ts +0 -39
- package/dist/core/ListItem/index.js +0 -44
- package/dist/core/ListItemAction/index.d.ts +0 -11
- package/dist/core/ListItemAction/index.js +0 -13
- package/dist/core/ListItemActions/index.d.ts +0 -8
- package/dist/core/ListItemActions/index.js +0 -16
- package/dist/core/ListItemMetaItem/index.d.ts +0 -19
- package/dist/core/ListItemMetaItem/index.js +0 -29
- package/dist/core/ListItemTitle/index.d.ts +0 -19
- package/dist/core/ListItemTitle/index.js +0 -44
- package/dist/core/Loader/index.d.ts +0 -15
- package/dist/core/Loader/index.js +0 -16
- package/dist/core/MeActions/index.d.ts +0 -3
- package/dist/core/MeActions/index.js +0 -48
- package/dist/core/MePanel/index.d.ts +0 -19
- package/dist/core/MePanel/index.js +0 -29
- package/dist/core/ModalComponent/index.d.ts +0 -22
- package/dist/core/ModalComponent/index.js +0 -29
- package/dist/core/Navigation/index.d.ts +0 -3
- package/dist/core/Navigation/index.js +0 -33
- package/dist/core/NavigationDivider/index.d.ts +0 -3
- package/dist/core/NavigationDivider/index.js +0 -8
- package/dist/core/NavigationItem/index.d.ts +0 -16
- package/dist/core/NavigationItem/index.js +0 -21
- package/dist/core/Pagination/index.d.ts +0 -15
- package/dist/core/Pagination/index.js +0 -64
- package/dist/core/PaginationItem/index.d.ts +0 -10
- package/dist/core/PaginationItem/index.js +0 -17
- package/dist/core/Panel/index.d.ts +0 -17
- package/dist/core/Panel/index.js +0 -13
- package/dist/core/PasswordForgotForm/index.d.ts +0 -7
- package/dist/core/PasswordForgotForm/index.js +0 -40
- package/dist/core/PasswordResetForm/index.d.ts +0 -7
- package/dist/core/PasswordResetForm/index.js +0 -34
- package/dist/core/RadialProgress/index.d.ts +0 -16
- package/dist/core/RadialProgress/index.js +0 -23
- package/dist/core/SettingsForm/index.d.ts +0 -3
- package/dist/core/SettingsForm/index.js +0 -14
- package/dist/core/StaticTextInput/index.d.ts +0 -29
- package/dist/core/StaticTextInput/index.js +0 -39
- package/dist/core/Styled/index.d.ts +0 -6
- package/dist/core/Styled/index.js +0 -39
- package/dist/core/SummaryListItem/index.d.ts +0 -23
- package/dist/core/SummaryListItem/index.js +0 -31
- package/dist/core/TabItem/index.d.ts +0 -4
- package/dist/core/TabItem/index.js +0 -13
- package/dist/core/TableActionsCell/index.d.ts +0 -8
- package/dist/core/TableActionsCell/index.js +0 -8
- package/dist/core/TableCell/index.d.ts +0 -15
- package/dist/core/TableCell/index.js +0 -20
- package/dist/core/TableHead/index.d.ts +0 -18
- package/dist/core/TableHead/index.js +0 -18
- package/dist/core/TableRow/index.d.ts +0 -13
- package/dist/core/TableRow/index.js +0 -18
- package/dist/core/Tabs/index.d.ts +0 -7
- package/dist/core/Tabs/index.js +0 -13
- package/dist/core/TextInputAncillary/index.d.ts +0 -29
- package/dist/core/TextInputAncillary/index.js +0 -31
- package/dist/core/Toast/index.d.ts +0 -3
- package/dist/core/Toast/index.js +0 -47
- package/dist/core/TwoFactor/index.d.ts +0 -13
- package/dist/core/TwoFactor/index.js +0 -49
- package/dist/core/TwoFactorAuthenticator/index.d.ts +0 -10
- package/dist/core/TwoFactorAuthenticator/index.js +0 -9
- package/dist/core/TwoFactorMethodList/index.d.ts +0 -10
- package/dist/core/TwoFactorMethodList/index.js +0 -22
- package/dist/core/TwoFactorSetup/index.d.ts +0 -12
- package/dist/core/TwoFactorSetup/index.js +0 -43
- package/dist/core/TwoFactorSetupAuthenticator/index.d.ts +0 -20
- package/dist/core/TwoFactorSetupAuthenticator/index.js +0 -42
- package/dist/core/TwoFactorSetupYubikey/index.d.ts +0 -16
- package/dist/core/TwoFactorSetupYubikey/index.js +0 -14
- package/dist/core/TwoFactorYubikey/index.d.ts +0 -9
- package/dist/core/TwoFactorYubikey/index.js +0 -14
- package/dist/core/WeekCalendarDay/index.d.ts +0 -27
- package/dist/core/WeekCalendarDay/index.js +0 -35
- package/dist/core/YubikeyInput/index.d.ts +0 -4
- package/dist/core/YubikeyInput/index.js +0 -14
- package/dist/filters/BooleanFilter/index.d.ts +0 -14
- package/dist/filters/BooleanFilter/index.js +0 -35
- package/dist/filters/DateFilter/index.d.ts +0 -5
- package/dist/filters/DateFilter/index.js +0 -24
- package/dist/filters/DropdownFilter/index.d.ts +0 -17
- package/dist/filters/DropdownFilter/index.js +0 -32
- package/dist/filters/QuickDateFilter/index.d.ts +0 -13
- package/dist/filters/QuickDateFilter/index.js +0 -40
- package/dist/filters/interfaces.d.ts +0 -35
- package/dist/hooks/useAlert.d.ts +0 -12
- package/dist/hooks/useAlert.js +0 -18
- package/dist/hooks/useAppConfig.d.ts +0 -3
- package/dist/hooks/useAppConfig.js +0 -5
- package/dist/hooks/useConnectedList.d.ts +0 -7
- package/dist/hooks/useConnectedList.js +0 -6
- package/dist/hooks/useConnectedRepeater.d.ts +0 -7
- package/dist/hooks/useConnectedRepeater.js +0 -14
- package/dist/hooks/useConnectedTable.d.ts +0 -7
- package/dist/hooks/useConnectedTable.js +0 -6
- package/dist/hooks/useFilters.d.ts +0 -9
- package/dist/hooks/useFilters.js +0 -24
- package/dist/hooks/useLayout.d.ts +0 -7
- package/dist/hooks/useLayout.js +0 -10
- package/dist/hooks/useLayout.spec.d.ts +0 -1
- package/dist/hooks/useLayout.spec.js +0 -24
- package/dist/hooks/useModal.d.ts +0 -12
- package/dist/hooks/useModal.js +0 -39
- package/dist/hooks/useModalOffset.d.ts +0 -2
- package/dist/hooks/useModalOffset.js +0 -16
- package/dist/hooks/useModalOffset.spec.d.ts +0 -1
- package/dist/hooks/useModalOffset.spec.js +0 -19
- package/dist/hooks/useNavigation.d.ts +0 -7
- package/dist/hooks/useNavigation.js +0 -113
- package/dist/hooks/useRemote.d.ts +0 -7
- package/dist/hooks/useRemote.js +0 -29
- package/dist/hooks/useVariant.d.ts +0 -9
- package/dist/hooks/useVariant.js +0 -14
- package/dist/scenes/Error404Scene.d.ts +0 -3
- package/dist/scenes/Error404Scene.js +0 -5
- package/dist/services/AppService.d.ts +0 -5
- package/dist/services/AppService.js +0 -11
- package/dist/services/ConfirmService.d.ts +0 -12
- package/dist/services/ConfirmService.js +0 -10
- package/dist/services/DateService.d.ts +0 -26
- package/dist/services/DateService.js +0 -132
- package/dist/services/DateService.spec.d.ts +0 -1
- package/dist/services/DateService.spec.js +0 -83
- package/dist/services/DownloadService.d.ts +0 -7
- package/dist/services/DownloadService.js +0 -16
- package/dist/services/DownloadService.spec.d.ts +0 -1
- package/dist/services/DownloadService.spec.js +0 -18
- package/dist/services/FilterComponentService.d.ts +0 -25
- package/dist/services/FilterComponentService.js +0 -54
- package/dist/services/FilterService.d.ts +0 -34
- package/dist/services/FilterService.js +0 -58
- package/dist/services/FilterService.spec.d.ts +0 -1
- package/dist/services/FilterService.spec.js +0 -67
- package/dist/services/FormatService.d.ts +0 -11
- package/dist/services/FormatService.js +0 -45
- package/dist/services/FormatService.spec.d.ts +0 -1
- package/dist/services/FormatService.spec.js +0 -66
- package/dist/services/ToastService.d.ts +0 -7
- package/dist/services/ToastService.js +0 -17
- package/dist/services/ToastService.spec.d.ts +0 -1
- package/dist/services/ToastService.spec.js +0 -34
- package/dist/utility/MockRouter/index.d.ts +0 -2
- package/dist/utility/MockRouter/index.js +0 -37
- package/dist/utility/StorybookPanel/index.d.ts +0 -14
- package/dist/utility/StorybookPanel/index.js +0 -12
- package/dist/utility/TestChangeHandler/index.d.ts +0 -15
- package/dist/utility/TestChangeHandler/index.js +0 -30
- package/dist/utility/icons.d.ts +0 -3
- package/dist/utility/icons.js +0 -12
- package/dist/utility/interfaces.d.ts +0 -79
- package/dist/utility/interfaces.js +0 -18
- package/dist/utility/middleware.d.ts +0 -4
- package/dist/utility/middleware.js +0 -9
- package/dist/utility/prop-types.d.ts +0 -57
- package/dist/utility/prop-types.js +0 -77
- package/dist/utility/register.d.ts +0 -3
- package/dist/utility/register.js +0 -9
- package/src/components/Alert/index.tsx +0 -111
- package/src/components/Allow/Allow.spec.tsx +0 -37
- package/src/components/Allow/index.tsx +0 -42
- package/src/components/AppLayout/AppLayout.stories.tsx +0 -20
- package/src/components/AutoSuggest/AutoSuggest.module.css +0 -8
- package/src/components/AutoSuggest/AutoSuggest.spec.tsx +0 -222
- package/src/components/AutoSuggest/AutoSuggest.story.tsx +0 -32
- package/src/components/AutoSuggest/index.tsx +0 -215
- package/src/components/Button/Button.spec.tsx +0 -61
- package/src/components/Button/Button.stories.tsx +0 -62
- package/src/components/Button/index.tsx +0 -15
- package/src/components/CalendarInput/CalendarInput.module.css +0 -8
- package/src/components/CalendarInput/CalendarInput.spec.tsx +0 -222
- package/src/components/CalendarInput/CalendarInput.story.tsx +0 -62
- package/src/components/CalendarInput/index.tsx +0 -126
- package/src/components/CheckboxList/CheckboxList.spec.tsx +0 -93
- package/src/components/CheckboxList/index.tsx +0 -51
- package/src/components/ConnectedDropdown/index.tsx +0 -53
- package/src/components/ConnectedList/index.tsx +0 -19
- package/src/components/ConnectedTable/index.tsx +0 -21
- package/src/components/ContentBlock/ContentBlock.module.css +0 -17
- package/src/components/ContentBlock/ContentBlock.spec.tsx +0 -25
- package/src/components/ContentBlock/index.tsx +0 -28
- package/src/components/DataPanel/index.tsx +0 -25
- package/src/components/DateInput/DateInput.module.css +0 -15
- package/src/components/DateInput/DateInput.spec.tsx +0 -87
- package/src/components/DateInput/index.tsx +0 -145
- package/src/components/ErrorMessage/ErrorMessage.module.css +0 -25
- package/src/components/ErrorMessage/ErrorMessage.spec.tsx +0 -31
- package/src/components/ErrorMessage/index.tsx +0 -36
- package/src/components/Fieldset/Fieldset.spec.tsx +0 -22
- package/src/components/Fieldset/Fieldset.story.tsx +0 -25
- package/src/components/Fieldset/index.tsx +0 -32
- package/src/components/FileInput/FileInput.module.css +0 -18
- package/src/components/FileInput/FileInput.spec.tsx +0 -52
- package/src/components/FileInput/FileInput.story.tsx +0 -8
- package/src/components/FileInput/index.tsx +0 -75
- package/src/components/FilterLink/FilterLink.module.css +0 -9
- package/src/components/FilterLink/FilterLink.spec.tsx +0 -34
- package/src/components/FilterLink/index.tsx +0 -36
- package/src/components/Form/Form.spec.tsx +0 -39
- package/src/components/Form/index.tsx +0 -25
- package/src/components/FormActions/FormActions.spec.tsx +0 -10
- package/src/components/FormActions/FormActions.story.tsx +0 -27
- package/src/components/FormActions/index.tsx +0 -35
- package/src/components/FormField/FormField.module.css +0 -71
- package/src/components/FormField/FormField.spec.tsx +0 -177
- package/src/components/FormField/FormField.stories.tsx +0 -44
- package/src/components/FormField/index.tsx +0 -14
- package/src/components/FormRepeater/FormRepeater.module.css +0 -7
- package/src/components/FormRepeater/FormRepeater.spec.tsx +0 -156
- package/src/components/FormRepeater/index.tsx +0 -121
- package/src/components/ImageInput/ImageInput.module.css +0 -74
- package/src/components/ImageInput/ImageInput.spec.tsx +0 -47
- package/src/components/ImageInput/ImageInput.story.tsx +0 -8
- package/src/components/ImageInput/index.tsx +0 -93
- package/src/components/InfoPanel/InfoPanel.module.css +0 -20
- package/src/components/InfoPanel/InfoPanel.spec.tsx +0 -15
- package/src/components/InfoPanel/InfoPanel.story.tsx +0 -32
- package/src/components/InfoPanel/index.tsx +0 -25
- package/src/components/Link/Link.spec.tsx +0 -64
- package/src/components/Link/__mocks__/index.tsx +0 -24
- package/src/components/Link/index.tsx +0 -60
- package/src/components/List/List.module.css +0 -9
- package/src/components/List/List.spec.tsx +0 -379
- package/src/components/List/List.story.tsx +0 -119
- package/src/components/ListActions/ListActions.spec.tsx +0 -10
- package/src/components/ListActions/ListActions.story.tsx +0 -8
- package/src/components/LoginForm/LoginForm.spec.tsx +0 -68
- package/src/components/LoginForm/LoginForm.story.tsx +0 -25
- package/src/components/Message/Message.module.css +0 -14
- package/src/components/Message/Message.spec.tsx +0 -20
- package/src/components/Message/index.tsx +0 -29
- package/src/components/Modal/index.tsx +0 -27
- package/src/components/ModalActions/ModalActions.module.css +0 -5
- package/src/components/ModalActions/ModalActions.spec.tsx +0 -49
- package/src/components/ModalActions/ModalActions.story.tsx +0 -8
- package/src/components/ModalActions/index.tsx +0 -51
- package/src/components/MoneyInput/MoneyInput.spec.tsx +0 -17
- package/src/components/MoneyInput/MoneyInput.story.tsx +0 -8
- package/src/components/MoneyInput/index.tsx +0 -18
- package/src/components/PasswordForm/index.tsx +0 -36
- package/src/components/RadioList/RadioList.spec.tsx +0 -47
- package/src/components/RadioList/index.tsx +0 -19
- package/src/components/SummaryList/SummaryList.module.css +0 -31
- package/src/components/SummaryList/SummaryList.spec.tsx +0 -89
- package/src/components/SummaryList/SummaryList.story.tsx +0 -13
- package/src/components/SummaryList/index.tsx +0 -39
- package/src/components/Switch/Switch.module.css +0 -86
- package/src/components/Switch/Switch.spec.tsx +0 -64
- package/src/components/Switch/index.tsx +0 -89
- package/src/components/Table/Table.module.css +0 -14
- package/src/components/Table/Table.spec.tsx +0 -136
- package/src/components/Table/Table.story.tsx +0 -108
- package/src/components/TextArea/TextArea.module.css +0 -23
- package/src/components/TextArea/TextArea.spec.tsx +0 -77
- package/src/components/TextArea/index.tsx +0 -61
- package/src/components/TextInput/TextInput.module.css +0 -62
- package/src/components/TextInput/TextInput.spec.tsx +0 -127
- package/src/components/TextInput/TextInput.stories.tsx +0 -46
- package/src/components/TextInput/index.tsx +0 -11
- package/src/components/WebsiteInput/WebsiteInput.spec.tsx +0 -17
- package/src/components/WebsiteInput/index.tsx +0 -18
- package/src/components/WeekCalendar/WeekCalendar.module.css +0 -19
- package/src/components/WeekCalendar/index.tsx +0 -80
- package/src/core/AlertComponent/AlertComponent.module.css +0 -110
- package/src/core/AlertComponent/AlertComponent.spec.tsx +0 -85
- package/src/core/AlertComponent/AlertComponent.story.tsx +0 -29
- package/src/core/AlertComponent/index.tsx +0 -109
- package/src/core/AppHeader/index.tsx +0 -25
- package/src/core/AppLogo/AppLogo.module.css +0 -18
- package/src/core/AppLogo/index.tsx +0 -35
- package/src/core/AppLogoImage/index.tsx +0 -19
- package/src/core/AppLogoPlaceholder/index.tsx +0 -32
- package/src/core/Assistive/index.tsx +0 -1
- package/src/core/AuthForm/AuthForm.module.css +0 -35
- package/src/core/AuthForm/AuthForm.spec.tsx +0 -72
- package/src/core/AuthForm/index.tsx +0 -63
- package/src/core/Banner/Banner.module.css +0 -34
- package/src/core/Banner/index.tsx +0 -25
- package/src/core/Calendar/index.tsx +0 -118
- package/src/core/CalendarDay/CalendarDay.module.css +0 -61
- package/src/core/CalendarDay/index.tsx +0 -82
- package/src/core/CalendarMonth/CalendarMonth.module.css +0 -13
- package/src/core/CalendarMonth/index.tsx +0 -103
- package/src/core/CalendarNavigation/CalendarNavigation.module.css +0 -26
- package/src/core/CalendarNavigation/index.tsx +0 -55
- package/src/core/CalendarWeek/index.tsx +0 -97
- package/src/core/ChkRadList/ChkRadList.module.css +0 -12
- package/src/core/ChkRadList/index.tsx +0 -88
- package/src/core/CloseButton/CloseButton.spec.tsx +0 -38
- package/src/core/CloseButton/index.tsx +0 -33
- package/src/core/ConfirmModal/ConfirmModal.spec.tsx +0 -94
- package/src/core/ConfirmModal/index.tsx +0 -59
- package/src/core/ConnectedRepeater/index.tsx +0 -284
- package/src/core/ConnectedRepeaterComponent/index.tsx +0 -71
- package/src/core/Container/Container.module.css +0 -13
- package/src/core/Container/index.tsx +0 -29
- package/src/core/DataPanelItem/index.tsx +0 -19
- package/src/core/EmptyMessage/EmptyMessage.module.css +0 -18
- package/src/core/EmptyMessage/EmptyMessage.stories.tsx +0 -33
- package/src/core/EmptyMessage/index.tsx +0 -15
- package/src/core/FilterItem/FilterItem.module.css +0 -104
- package/src/core/FilterItem/index.tsx +0 -172
- package/src/core/Filters/Filters.module.css +0 -86
- package/src/core/Filters/Filters.spec.tsx +0 -573
- package/src/core/Filters/index.tsx +0 -168
- package/src/core/FixedActions/FixedActions.module.css +0 -23
- package/src/core/FixedActions/FixedActions.spec.tsx +0 -53
- package/src/core/FixedActions/index.tsx +0 -54
- package/src/core/FormLegend/FormLegend.module.css +0 -13
- package/src/core/FormLegend/index.tsx +0 -18
- package/src/core/Header/Header.stories.tsx +0 -20
- package/src/core/Header/index.tsx +0 -32
- package/src/core/Icon/Icon.spec.tsx +0 -30
- package/src/core/Icon/index.tsx +0 -70
- package/src/core/IconButton/IconButton.module.css +0 -32
- package/src/core/IconButton/index.tsx +0 -53
- package/src/core/ListItem/ListItem.module.css +0 -28
- package/src/core/ListItem/ListItem.story.tsx +0 -32
- package/src/core/ListItem/index.tsx +0 -109
- package/src/core/ListItemAction/ListItemAction.module.css +0 -33
- package/src/core/ListItemAction/index.tsx +0 -30
- package/src/core/ListItemActions/ListItemActions.module.css +0 -94
- package/src/core/ListItemActions/index.tsx +0 -42
- package/src/core/ListItemMetaItem/ListItemMetaItem.module.css +0 -18
- package/src/core/ListItemMetaItem/index.tsx +0 -54
- package/src/core/ListItemTitle/ListItemTitle.module.css +0 -22
- package/src/core/ListItemTitle/ListItemTitle.spec.tsx +0 -53
- package/src/core/ListItemTitle/index.tsx +0 -82
- package/src/core/Loader/Loader.module.css +0 -57
- package/src/core/Loader/Loader.stories.tsx +0 -22
- package/src/core/Loader/index.tsx +0 -2
- package/src/core/MeActions/MeActions.module.css +0 -47
- package/src/core/MeActions/index.tsx +0 -74
- package/src/core/MePanel/MePanel.module.css +0 -79
- package/src/core/MePanel/index.tsx +0 -58
- package/src/core/ModalComponent/ModalComponent.module.css +0 -86
- package/src/core/ModalComponent/ModalComponent.spec.tsx +0 -55
- package/src/core/ModalComponent/index.tsx +0 -66
- package/src/core/Navigation/Navigation.module.css +0 -89
- package/src/core/Navigation/Navigation.spec.tsx +0 -121
- package/src/core/Navigation/index.tsx +0 -69
- package/src/core/NavigationDivider/NavigationDivider.module.css +0 -3
- package/src/core/NavigationDivider/index.tsx +0 -13
- package/src/core/NavigationItem/NavigationItem.module.css +0 -46
- package/src/core/NavigationItem/index.tsx +0 -50
- package/src/core/Panel/Panel.module.css +0 -26
- package/src/core/Panel/Panel.spec.tsx +0 -16
- package/src/core/Panel/index.tsx +0 -35
- package/src/core/PasswordForgotForm/index.tsx +0 -62
- package/src/core/PasswordResetForm/index.tsx +0 -65
- package/src/core/RadialProgress/RadialProgress.module.css +0 -78
- package/src/core/RadialProgress/index.tsx +0 -49
- package/src/core/SettingsForm/index.tsx +0 -26
- package/src/core/SummaryListItem/SummaryListItem.module.css +0 -20
- package/src/core/SummaryListItem/index.tsx +0 -65
- package/src/core/TabItem/TabItem.module.css +0 -28
- package/src/core/TabItem/index.tsx +0 -42
- package/src/core/Tabs/Tabs.module.css +0 -19
- package/src/core/Tabs/Tabs.spec.tsx +0 -30
- package/src/core/Tabs/index.tsx +0 -36
- package/src/core/Toast/Toast.module.css +0 -54
- package/src/core/Toast/Toast.spec.tsx +0 -80
- package/src/core/Toast/index.tsx +0 -79
- package/src/core/TwoFactor/TwoFactor.spec.tsx +0 -183
- package/src/core/TwoFactor/index.tsx +0 -102
- package/src/core/TwoFactorAuthenticator/index.tsx +0 -39
- package/src/core/TwoFactorMethodList/TwoFactorMethodList.module.css +0 -50
- package/src/core/TwoFactorMethodList/index.tsx +0 -49
- package/src/core/TwoFactorSetup/index.tsx +0 -91
- package/src/core/TwoFactorSetupAuthenticator/TwoFactorSetupAuthenticator.module.css +0 -6
- package/src/core/TwoFactorSetupAuthenticator/index.tsx +0 -100
- package/src/core/TwoFactorSetupYubikey/index.tsx +0 -49
- package/src/core/TwoFactorYubikey/index.tsx +0 -41
- package/src/core/WeekCalendarDay/WeekCalendarDay.module.css +0 -32
- package/src/core/WeekCalendarDay/index.tsx +0 -68
- package/src/core/YubikeyInput/YubikeyInput.module.css +0 -27
- package/src/core/YubikeyInput/YubikeyInput.spec.tsx +0 -77
- package/src/core/YubikeyInput/index.tsx +0 -76
- package/src/filters/BooleanFilter/index.tsx +0 -47
- package/src/filters/DateFilter/index.tsx +0 -36
- package/src/filters/DropdownFilter/index.tsx +0 -51
- package/src/filters/QuickDateFilter/index.tsx +0 -74
- package/src/filters/interfaces.ts +0 -39
- package/src/hooks/useAlert.spec.tsx +0 -72
- package/src/hooks/useAlert.ts +0 -37
- package/src/hooks/useConfig.ts +0 -31
- package/src/hooks/useConnectedList.ts +0 -15
- package/src/hooks/useConnectedRepeater.ts +0 -25
- package/src/hooks/useConnectedTable.ts +0 -15
- package/src/hooks/useFilters.ts +0 -34
- package/src/hooks/useLayout.spec.ts +0 -31
- package/src/hooks/useLayout.ts +0 -23
- package/src/hooks/useModal.spec.tsx +0 -72
- package/src/hooks/useModal.ts +0 -62
- package/src/hooks/useModalOffset.spec.ts +0 -27
- package/src/hooks/useModalOffset.ts +0 -26
- package/src/hooks/useNavigation.ts +0 -160
- package/src/hooks/useRemote.ts +0 -43
- package/src/scenes/Error404Scene.tsx +0 -7
- package/src/services/AppService.ts +0 -16
- package/src/services/ConfirmService.ts +0 -26
- package/src/services/DateService.spec.ts +0 -102
- package/src/services/DateService.ts +0 -182
- package/src/services/DownloadService.spec.ts +0 -23
- package/src/services/DownloadService.ts +0 -21
- package/src/services/FilterComponentService.tsx +0 -67
- package/src/services/FilterService.spec.ts +0 -105
- package/src/services/FilterService.ts +0 -80
- package/src/services/FormatService.spec.ts +0 -85
- package/src/services/FormatService.ts +0 -60
- package/src/services/ToastService.spec.ts +0 -44
- package/src/services/ToastService.ts +0 -24
- package/src/typings.d.ts +0 -4
- package/src/utility/MockRouter/index.ts +0 -46
- package/src/utility/icons.tsx +0 -51
- package/src/utility/interfaces.ts +0 -142
- package/src/utility/middleware.ts +0 -10
- package/src/utility/prop-types.ts +0 -89
- package/src/utility/register.tsx +0 -11
- package/tsconfig.eslint.json +0 -4
- /package/dist/{filters/interfaces.js → interfaces.js} +0 -0
|
@@ -1,90 +1,70 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fragment } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import
|
|
3
|
+
import { EmptyMessage } from '@sqrzro/components';
|
|
4
|
+
import type { ErrorablePromise } from '@sqrzro/server';
|
|
4
5
|
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
7
|
-
import ListItem from '
|
|
8
|
-
import
|
|
6
|
+
import FilterBar from '../FilterBar';
|
|
7
|
+
import type { FilterMap } from '../FilterBar';
|
|
8
|
+
import ListItem from '../ListItem';
|
|
9
|
+
import type { ListObject } from '../ListItem';
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
TransformerWithActions,
|
|
15
|
-
} from '../../utility/interfaces';
|
|
16
|
-
|
|
17
|
-
// Import styles from './List.module.css';
|
|
18
|
-
|
|
19
|
-
const defaultTransformer: Transformer = (item) => ({
|
|
20
|
-
...item,
|
|
21
|
-
$id: String(item.id),
|
|
22
|
-
$original: item,
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
const transformData = <T extends SimpleObject>(
|
|
26
|
-
data: T[],
|
|
27
|
-
transformer?: TransformerWithActions<T>
|
|
28
|
-
): TransformedObject<T>[] => {
|
|
29
|
-
const [transformFn, actions] = Array.isArray(transformer)
|
|
30
|
-
? transformer
|
|
31
|
-
: [transformer || defaultTransformer];
|
|
11
|
+
export interface ListComponentProps {
|
|
12
|
+
params?: Record<string, string>;
|
|
13
|
+
searchParams?: Record<string, string>;
|
|
14
|
+
}
|
|
32
15
|
|
|
33
|
-
|
|
34
|
-
};
|
|
16
|
+
export interface ListProps<T> {
|
|
17
|
+
actions?: ({ id }: { readonly id: number }) => React.ReactElement;
|
|
18
|
+
className?: string;
|
|
19
|
+
filters?: FilterMap;
|
|
20
|
+
fn: (
|
|
21
|
+
params?: Record<string, string>,
|
|
22
|
+
searchParams?: Record<string, string>
|
|
23
|
+
) => ErrorablePromise<T[]>;
|
|
24
|
+
renderItem?: (props: ListObject) => React.ReactElement;
|
|
25
|
+
params?: Record<string, string>;
|
|
26
|
+
searchParams?: Record<string, string>;
|
|
27
|
+
transformer?: (item: T) => ListObject;
|
|
28
|
+
}
|
|
35
29
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
transformer?: TransformerWithActions<T>;
|
|
30
|
+
function defaultTransformer(): ListObject {
|
|
31
|
+
return {
|
|
32
|
+
id: 0,
|
|
33
|
+
title: '',
|
|
34
|
+
};
|
|
42
35
|
}
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* If there is no data, an `EmptyMessage` is displayed.
|
|
53
|
-
*/
|
|
54
|
-
function List<T extends SimpleObject>({
|
|
55
|
-
data,
|
|
56
|
-
empty,
|
|
57
|
-
pagination,
|
|
37
|
+
async function List<T extends object>({
|
|
38
|
+
actions,
|
|
39
|
+
className,
|
|
40
|
+
filters,
|
|
41
|
+
fn,
|
|
42
|
+
params,
|
|
43
|
+
renderItem = ListItem,
|
|
44
|
+
searchParams,
|
|
58
45
|
transformer,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
}: Readonly<ListProps<T>>): Promise<React.ReactElement> {
|
|
47
|
+
const [response, error] = await fn(params, searchParams);
|
|
48
|
+
|
|
49
|
+
if (error) {
|
|
50
|
+
return <div>ERRORROROR</div>;
|
|
63
51
|
}
|
|
64
52
|
|
|
65
|
-
const
|
|
53
|
+
const data = response.map(transformer || defaultTransformer);
|
|
54
|
+
const hasFilters = Boolean(Object.keys(searchParams || []).length);
|
|
66
55
|
|
|
67
56
|
return (
|
|
68
57
|
<Fragment>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
{filters && (data.length || hasFilters) ? <FilterBar map={filters} /> : null}
|
|
59
|
+
{data.length ? (
|
|
60
|
+
<ul className={clsx(className)}>
|
|
61
|
+
{data.map((item) => renderItem({ actions, ...item }))}
|
|
62
|
+
</ul>
|
|
63
|
+
) : (
|
|
64
|
+
<EmptyMessage />
|
|
65
|
+
)}
|
|
77
66
|
</Fragment>
|
|
78
67
|
);
|
|
79
68
|
}
|
|
80
69
|
|
|
81
|
-
List.propTypes = {
|
|
82
|
-
data: PropTypes.arrayOf(PropTypes.shape({}).isRequired),
|
|
83
|
-
isDisabled: PropTypes.bool,
|
|
84
|
-
pagination: PropTypes.shape({
|
|
85
|
-
activePage: PropTypes.number.isRequired,
|
|
86
|
-
pageCount: PropTypes.number.isRequired,
|
|
87
|
-
}),
|
|
88
|
-
};
|
|
89
|
-
|
|
90
70
|
export default List;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ConfirmableButton } from '@sqrzro/components';
|
|
2
|
+
import type { ConfirmableAction } from '@sqrzro/interfaces';
|
|
3
|
+
|
|
4
|
+
interface ListActionProps extends ConfirmableAction<number> {
|
|
5
|
+
id: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function ListAction({
|
|
9
|
+
id,
|
|
10
|
+
onClick,
|
|
11
|
+
label,
|
|
12
|
+
variant,
|
|
13
|
+
}: Readonly<ListActionProps>): React.ReactElement {
|
|
14
|
+
function handleClick(): void {
|
|
15
|
+
onClick(id);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<ConfirmableButton onClick={handleClick} variant={variant} isText>
|
|
20
|
+
{label}
|
|
21
|
+
</ConfirmableButton>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default ListAction;
|
|
@@ -1,30 +1,43 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import { useClickOutside } from '@sqrzro/hooks';
|
|
4
|
+
import type { ConfirmableAction } from '@sqrzro/interfaces';
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import ListAction from '../ListAction';
|
|
7
7
|
|
|
8
|
-
interface ListActionsProps {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
12
|
-
to?: string;
|
|
8
|
+
export interface ListActionsProps {
|
|
9
|
+
actions: ConfirmableAction<number>[];
|
|
10
|
+
id: number;
|
|
13
11
|
}
|
|
14
12
|
|
|
15
|
-
function ListActions({
|
|
13
|
+
function ListActions({ actions, id }: Readonly<ListActionsProps>): React.ReactElement {
|
|
14
|
+
const [isOpen, setIsOpen, ref] = useClickOutside();
|
|
15
|
+
|
|
16
|
+
function toggleIsOpen(): void {
|
|
17
|
+
setIsOpen(!isOpen);
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
return (
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
<div ref={ref} className="flex flex-row-reverse items-center gap-4">
|
|
22
|
+
<button
|
|
23
|
+
className="h-4 rotate-90 text-xs leading-[1em] tracking-tighter text-slate-500"
|
|
24
|
+
onClick={toggleIsOpen}
|
|
25
|
+
type="button"
|
|
26
|
+
>
|
|
27
|
+
•••
|
|
28
|
+
<span className="sr-only">{isOpen ? 'Close' : 'Open'} Actions</span>
|
|
29
|
+
</button>
|
|
30
|
+
{isOpen ? (
|
|
31
|
+
<ul className="showpanel relative flex origin-right gap-4 bg-white before:absolute before:left-[-999em] before:right-full before:h-full before:bg-white/80">
|
|
32
|
+
{actions.map(({ label, onClick, variant }) => (
|
|
33
|
+
<li key={label}>
|
|
34
|
+
<ListAction id={id} label={label} onClick={onClick} variant={variant} />
|
|
35
|
+
</li>
|
|
36
|
+
))}
|
|
37
|
+
</ul>
|
|
38
|
+
) : null}
|
|
39
|
+
</div>
|
|
20
40
|
);
|
|
21
41
|
}
|
|
22
42
|
|
|
23
|
-
ListActions.propTypes = {
|
|
24
|
-
label: PropTypes.string.isRequired,
|
|
25
|
-
children: PropTypes.node,
|
|
26
|
-
to: PropTypes.string,
|
|
27
|
-
onClick: PropTypes.func,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
43
|
export default ListActions;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Link } from '@sqrzro/components';
|
|
2
|
+
import { Fragment } from 'react';
|
|
3
|
+
|
|
4
|
+
export interface ListObject {
|
|
5
|
+
actions?: ({ id }: { id: number }) => React.ReactElement;
|
|
6
|
+
href?: string;
|
|
7
|
+
id: number;
|
|
8
|
+
image?: string;
|
|
9
|
+
meta?: string[];
|
|
10
|
+
title: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function renderMeta(meta: Record<string, string> | string[]): React.ReactElement {
|
|
14
|
+
if (Array.isArray(meta)) {
|
|
15
|
+
return (
|
|
16
|
+
<ul className="flex gap-4 text-xs">
|
|
17
|
+
{meta.map((item) => (
|
|
18
|
+
<li key={item}>{item}</li>
|
|
19
|
+
))}
|
|
20
|
+
</ul>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<dl className="w-full text-xs">
|
|
26
|
+
{Object.entries(meta).map(([key, value]) => (
|
|
27
|
+
<div key={key} className="flex justify-between p-2 odd:bg-gray-100">
|
|
28
|
+
<dt>{key}</dt>
|
|
29
|
+
<dd>{value}</dd>
|
|
30
|
+
</div>
|
|
31
|
+
))}
|
|
32
|
+
</dl>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function ListItem({
|
|
37
|
+
actions: Actions,
|
|
38
|
+
href,
|
|
39
|
+
id,
|
|
40
|
+
meta,
|
|
41
|
+
title,
|
|
42
|
+
}: Readonly<ListObject>): React.ReactElement {
|
|
43
|
+
return (
|
|
44
|
+
<li className="mb-4">
|
|
45
|
+
<article className="overflow-hidden rounded-md bg-white p-4 shadow">
|
|
46
|
+
<h2 className="font-semibold">{href ? <Link href={href}>{title}</Link> : title}</h2>
|
|
47
|
+
<div className="mt-2 flex items-center justify-between">
|
|
48
|
+
{meta ? renderMeta(meta) : null}
|
|
49
|
+
{Actions ? <Actions id={id} /> : null}
|
|
50
|
+
</div>
|
|
51
|
+
</article>
|
|
52
|
+
</li>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default ListItem;
|
|
@@ -1,113 +1,33 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
3
|
+
import { Form, FormField, FormSubmit, PasswordInput, TextInput } from '@sqrzro/components';
|
|
4
|
+
import type { UseFormReturn } from '@sqrzro/hooks';
|
|
5
|
+
import type { UserObject } from '@sqrzro/server';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import Button from '../Button';
|
|
9
|
-
import FormField from '../FormField';
|
|
10
|
-
import Link from '../Link';
|
|
11
|
-
import PasswordInput from '../PasswordInput';
|
|
12
|
-
import TextInput from '../TextInput';
|
|
13
|
-
|
|
14
|
-
import AuthForm from '../../core/AuthForm';
|
|
15
|
-
import TwoFactor from '../../core/TwoFactor';
|
|
16
|
-
import TwoFactorSetup from '../../core/TwoFactorSetup';
|
|
17
|
-
|
|
18
|
-
import useAlert from '../../hooks/useAlert';
|
|
19
|
-
import useConfig from '../../hooks/useConfig';
|
|
20
|
-
|
|
21
|
-
function LoginForm(): React.ReactElement {
|
|
22
|
-
const { alertProps, openAlert, closeAlert } = useAlert();
|
|
23
|
-
const {
|
|
24
|
-
alertProps: setupAlertProps,
|
|
25
|
-
openAlert: openSetupAlert,
|
|
26
|
-
closeAlert: closeSetupAlert,
|
|
27
|
-
} = useAlert();
|
|
28
|
-
|
|
29
|
-
const { auth, name } = useConfig();
|
|
30
|
-
|
|
31
|
-
const { fieldProps, formData, formProps, handleSubmit, isLoading, setFormData } = useLoginForm(
|
|
32
|
-
auth,
|
|
33
|
-
openAlert,
|
|
34
|
-
openSetupAlert
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
function handleKeyDown(event: React.KeyboardEvent): void {
|
|
38
|
-
if (event.key === 'Enter') {
|
|
39
|
-
handleSubmit();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function handleAlertClose(): void {
|
|
44
|
-
setFormData('provider', '');
|
|
45
|
-
setFormData('two_factor_code', '');
|
|
46
|
-
closeAlert();
|
|
47
|
-
closeSetupAlert();
|
|
48
|
-
}
|
|
7
|
+
export type LoginFormProps = UseFormReturn<UserObject>;
|
|
49
8
|
|
|
9
|
+
function LoginForm({ fieldProps, formProps }: Readonly<LoginFormProps>): React.ReactElement {
|
|
50
10
|
return (
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
render={TextInput}
|
|
72
|
-
isAutoFocus
|
|
73
|
-
/>
|
|
74
|
-
<FormField
|
|
75
|
-
{...fieldProps('password')}
|
|
76
|
-
label="Password"
|
|
77
|
-
onKeyDown={handleKeyDown}
|
|
78
|
-
render={PasswordInput}
|
|
79
|
-
/>
|
|
80
|
-
<hr />
|
|
81
|
-
<Button isDisabled={isLoading} type="submit" isFullWidth>
|
|
82
|
-
{isLoading ? 'Loading...' : 'Log In'}
|
|
83
|
-
</Button>
|
|
84
|
-
</AuthForm>
|
|
85
|
-
<Alert
|
|
86
|
-
{...alertProps}
|
|
87
|
-
icon="lockClosed"
|
|
88
|
-
onClose={handleAlertClose}
|
|
89
|
-
title="2-Step Authentication"
|
|
90
|
-
variant="warning"
|
|
91
|
-
width="sm"
|
|
92
|
-
>
|
|
93
|
-
<TwoFactor
|
|
94
|
-
formData={formData}
|
|
95
|
-
isLoading={isLoading}
|
|
96
|
-
onSubmit={handleSubmit}
|
|
97
|
-
setFormData={setFormData}
|
|
98
|
-
/>
|
|
99
|
-
</Alert>
|
|
100
|
-
<Alert
|
|
101
|
-
{...setupAlertProps}
|
|
102
|
-
icon="lockClosed"
|
|
103
|
-
onClose={handleAlertClose}
|
|
104
|
-
title="Setup 2-Step Authentication"
|
|
105
|
-
variant="warning"
|
|
106
|
-
width="sm"
|
|
107
|
-
>
|
|
108
|
-
<TwoFactorSetup data={formData} />
|
|
109
|
-
</Alert>
|
|
110
|
-
</Fragment>
|
|
11
|
+
<div className="flex h-screen flex-col items-center justify-center bg-slate-800 pb-[10vh]">
|
|
12
|
+
<div className="mx-auto mb-8 h-12 w-12 rounded-full border-4 border-primary" />
|
|
13
|
+
<div className="w-full max-w-sm rounded-lg bg-white p-8 shadow-lg">
|
|
14
|
+
<h1 className="mb-8 text-center text-xl font-semibold">Sign in to continue</h1>
|
|
15
|
+
<Form {...formProps}>
|
|
16
|
+
<FormField label="Email" {...fieldProps('email')} render={TextInput} />
|
|
17
|
+
<FormField
|
|
18
|
+
label="Password"
|
|
19
|
+
{...fieldProps('password')}
|
|
20
|
+
render={PasswordInput}
|
|
21
|
+
/>
|
|
22
|
+
<div className="mt-8 text-center">
|
|
23
|
+
<a className="mb-6 block text-primary" href="/#">
|
|
24
|
+
Forgot Password?
|
|
25
|
+
</a>
|
|
26
|
+
<FormSubmit isFullWidth>Sign In</FormSubmit>
|
|
27
|
+
</div>
|
|
28
|
+
</Form>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
111
31
|
);
|
|
112
32
|
}
|
|
113
33
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { removeSession } from '@sqrzro/server';
|
|
4
|
+
import { useRouter } from 'next/navigation';
|
|
5
|
+
|
|
6
|
+
function MeActions(): React.ReactElement {
|
|
7
|
+
const router = useRouter();
|
|
8
|
+
|
|
9
|
+
async function handleLogout(): Promise<void> {
|
|
10
|
+
await removeSession();
|
|
11
|
+
router.refresh();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<button className="text-xs text-gray-300" onClick={handleLogout} type="button">
|
|
16
|
+
Log Out
|
|
17
|
+
</button>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default MeActions;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { getIdFromSession } from '@sqrzro/server';
|
|
4
|
+
|
|
5
|
+
import MeActions from '../MeActions';
|
|
6
|
+
|
|
7
|
+
async function MePanel(): Promise<React.ReactElement> {
|
|
8
|
+
const id = await getIdFromSession();
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className="ml-auto flex items-center gap-3">
|
|
12
|
+
<div className="flex flex-col items-end text-white">
|
|
13
|
+
<strong>{id}</strong>
|
|
14
|
+
<MeActions />
|
|
15
|
+
</div>
|
|
16
|
+
<div className="h-9 w-9 rounded-full border-4 border-gray-500" />
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default MePanel;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Fragment } from 'react';
|
|
2
|
+
import { Button, Container } from '@sqrzro/components';
|
|
3
|
+
import type { LinkableAction } from '@sqrzro/interfaces';
|
|
4
|
+
|
|
5
|
+
import Tabs from '../Tabs';
|
|
6
|
+
|
|
7
|
+
export interface PageProps {
|
|
8
|
+
actions?: LinkableAction[];
|
|
9
|
+
basePath?: string;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
isFullWidth?: boolean;
|
|
12
|
+
tabs?: LinkableAction[];
|
|
13
|
+
title: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function Page({
|
|
17
|
+
actions,
|
|
18
|
+
basePath,
|
|
19
|
+
children,
|
|
20
|
+
isFullWidth,
|
|
21
|
+
tabs,
|
|
22
|
+
title,
|
|
23
|
+
}: Readonly<PageProps>): React.ReactElement {
|
|
24
|
+
return (
|
|
25
|
+
<Fragment>
|
|
26
|
+
<header className="bg-gray-800 pb-32 text-white">
|
|
27
|
+
<Container isFullWidth={isFullWidth}>
|
|
28
|
+
<div className="flex items-center justify-between py-10">
|
|
29
|
+
<h1 className="min-h-10 text-3xl font-semibold">{title}</h1>
|
|
30
|
+
<div id="page-actions" />
|
|
31
|
+
{/* {actions ? (
|
|
32
|
+
<div className="sticky top-0">
|
|
33
|
+
{actions.map(({ href, label, onClick }) => (
|
|
34
|
+
<Button
|
|
35
|
+
key={href}
|
|
36
|
+
href={href}
|
|
37
|
+
onClick={onClick}
|
|
38
|
+
variant="primary"
|
|
39
|
+
>
|
|
40
|
+
{label}
|
|
41
|
+
</Button>
|
|
42
|
+
))}
|
|
43
|
+
</div>
|
|
44
|
+
) : null} */}
|
|
45
|
+
</div>
|
|
46
|
+
{tabs ? (
|
|
47
|
+
<div className="-mt-4 mb-8">
|
|
48
|
+
<Tabs basePath={basePath} data={tabs} />
|
|
49
|
+
</div>
|
|
50
|
+
) : null}
|
|
51
|
+
</Container>
|
|
52
|
+
</header>
|
|
53
|
+
<Container isFullWidth={isFullWidth}>
|
|
54
|
+
<div className="-mt-32 flex flex-col gap-8">{children}</div>
|
|
55
|
+
</Container>
|
|
56
|
+
</Fragment>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default Page;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
5
|
+
|
|
6
|
+
export interface PageActionsProps {
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function PageActions({ children }: Readonly<PageActionsProps>): React.ReactElement | null {
|
|
11
|
+
const ref = useRef<HTMLElement | null>(null);
|
|
12
|
+
const [mounted, setMounted] = useState(false);
|
|
13
|
+
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
ref.current = document.getElementById('page-actions');
|
|
16
|
+
setMounted(true);
|
|
17
|
+
}, []);
|
|
18
|
+
|
|
19
|
+
return mounted && ref.current ? createPortal(children, ref.current) : null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default PageActions;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import Panel from './index';
|
|
2
|
+
|
|
3
|
+
export default { title: 'Components/Panel', component: Panel };
|
|
4
|
+
|
|
5
|
+
export const Default = (): React.ReactElement => <Panel>Example Panel</Panel>;
|
|
6
|
+
|
|
7
|
+
export const WithTitle = (): React.ReactElement => (
|
|
8
|
+
<Panel title="Example Title">Example Panel</Panel>
|
|
9
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface PanelProps {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
title?: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
function Panel({ children, title }: Readonly<PanelProps>): React.ReactElement {
|
|
7
|
+
return (
|
|
8
|
+
<article>
|
|
9
|
+
{title ? <h3>{title}</h3> : null}
|
|
10
|
+
{children}
|
|
11
|
+
</article>
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default Panel;
|
|
@@ -1,42 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Suspense } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { ClassNames, Toaster, registerClassNames } from '@sqrzro/components';
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import { setConfig } from '../../services/ConfigService';
|
|
6
|
+
import type { Config as ConfigObject } from '../../services/ConfigService';
|
|
7
7
|
|
|
8
|
-
import
|
|
8
|
+
import classNames from '../../styles/config';
|
|
9
9
|
|
|
10
|
-
import
|
|
10
|
+
import Config from '../Config';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
interface RootLayoutProps {
|
|
12
|
+
export interface RootLayoutProps {
|
|
15
13
|
children: React.ReactNode;
|
|
16
|
-
config
|
|
14
|
+
config?: ConfigObject;
|
|
17
15
|
}
|
|
18
16
|
|
|
19
|
-
function RootLayout({ children, config }: RootLayoutProps): React.ReactElement {
|
|
20
|
-
|
|
17
|
+
function RootLayout({ children, config }: Readonly<RootLayoutProps>): React.ReactElement {
|
|
18
|
+
registerClassNames(classNames);
|
|
19
|
+
|
|
20
|
+
if (config) {
|
|
21
|
+
setConfig(config);
|
|
22
|
+
}
|
|
21
23
|
|
|
22
24
|
return (
|
|
23
|
-
<html>
|
|
24
|
-
<head
|
|
25
|
-
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<body className="bg-slate-50">
|
|
33
|
-
<ConfigProvider value={config}>
|
|
34
|
-
{children}
|
|
35
|
-
<div id="alert-portal" />
|
|
36
|
-
<div id="modal-portal" />
|
|
37
|
-
<ConfirmModal />
|
|
38
|
-
<Toast />
|
|
39
|
-
</ConfigProvider>
|
|
25
|
+
<html lang="en">
|
|
26
|
+
<head />
|
|
27
|
+
<body>
|
|
28
|
+
<Config data={config} />
|
|
29
|
+
<ClassNames data={classNames} />
|
|
30
|
+
{children}
|
|
31
|
+
<Suspense fallback={null}>
|
|
32
|
+
<Toaster />
|
|
33
|
+
</Suspense>
|
|
40
34
|
</body>
|
|
41
35
|
</html>
|
|
42
36
|
);
|