@tipp/ui 1.5.10 → 1.6.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/dist/app/index.cjs +274 -264
- package/dist/app/index.cjs.map +1 -1
- package/dist/app/index.js +29 -31
- package/dist/app/platform/coach-question-list.cjs +1 -1
- package/dist/app/platform/coach-question-list.cjs.map +1 -1
- package/dist/app/platform/coach-question-list.js +4 -4
- package/dist/app/platform/edit-coaching-time.cjs +63 -59
- package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
- package/dist/app/platform/edit-coaching-time.js +12 -14
- package/dist/app/platform/edit-service-type.cjs +2 -1
- package/dist/app/platform/edit-service-type.cjs.map +1 -1
- package/dist/app/platform/edit-service-type.js +12 -12
- package/dist/app/platform/goal-manage-card-edit.cjs +24 -4
- package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-edit.js +12 -12
- package/dist/app/platform/goal-manage-card-read.cjs +10 -8
- package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-read.js +5 -5
- package/dist/app/platform/on-offline-radio-card.cjs +2 -1
- package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
- package/dist/app/platform/on-offline-radio-card.js +11 -11
- package/dist/app/platform/report-card.cjs +1 -1
- package/dist/app/platform/report-card.cjs.map +1 -1
- package/dist/app/platform/report-card.js +4 -4
- package/dist/app/platform/reservation-card.cjs +81 -9
- package/dist/app/platform/reservation-card.cjs.map +1 -1
- package/dist/app/platform/reservation-card.d.cts +2 -0
- package/dist/app/platform/reservation-card.d.ts +2 -0
- package/dist/app/platform/reservation-card.js +12 -12
- package/dist/app/platform/session-card.cjs +104 -100
- package/dist/app/platform/session-card.cjs.map +1 -1
- package/dist/app/platform/session-card.js +14 -16
- package/dist/app/platform/session-review-simple-read.cjs +1 -1
- package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
- package/dist/app/platform/session-review-simple-read.js +4 -4
- package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +10 -34
- package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/index.js +9 -9
- package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +4 -11
- package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/large.d.cts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/large.d.ts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/large.js +6 -6
- package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +4 -11
- package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/medium.d.cts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/medium.d.ts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/medium.js +6 -6
- package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +4 -12
- package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/small.d.cts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/small.d.ts +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/small.js +5 -5
- package/dist/app/platform/userInfos/session-user-info-detail.cjs +1 -1
- package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
- package/dist/app/platform/userInfos/session-user-info-detail.js +6 -6
- package/dist/app/platform/userInfos/utils.cjs +1 -1
- package/dist/app/platform/userInfos/utils.cjs.map +1 -1
- package/dist/app/platform/userInfos/utils.d.cts +1 -0
- package/dist/app/platform/userInfos/utils.d.ts +1 -0
- package/dist/app/platform/userInfos/utils.js +5 -5
- package/dist/atoms/dialog.js +2 -2
- package/dist/atoms/drawer.cjs +38 -9
- package/dist/atoms/drawer.cjs.map +1 -1
- package/dist/atoms/drawer.js +2 -1
- package/dist/atoms/index.cjs +24 -2
- package/dist/atoms/index.cjs.map +1 -1
- package/dist/atoms/index.d.cts +1 -1
- package/dist/atoms/index.d.ts +1 -1
- package/dist/atoms/index.js +10 -8
- package/dist/chunk-2MNNK576.js +52 -0
- package/dist/chunk-2MNNK576.js.map +1 -0
- package/dist/chunk-3BDAXSFJ.js +46 -0
- package/dist/chunk-3BDAXSFJ.js.map +1 -0
- package/dist/chunk-3F6KWGBZ.js +89 -0
- package/dist/chunk-3F6KWGBZ.js.map +1 -0
- package/dist/chunk-4DHKHART.js +177 -0
- package/dist/chunk-4DHKHART.js.map +1 -0
- package/dist/chunk-4VVKVY67.js +45 -0
- package/dist/chunk-4VVKVY67.js.map +1 -0
- package/dist/chunk-55BS56C7.js +165 -0
- package/dist/chunk-55BS56C7.js.map +1 -0
- package/dist/chunk-5QTFO46W.js +177 -0
- package/dist/chunk-5QTFO46W.js.map +1 -0
- package/dist/chunk-5QXQPRW7.js +89 -0
- package/dist/chunk-5QXQPRW7.js.map +1 -0
- package/dist/chunk-643OBFGH.js +145 -0
- package/dist/chunk-643OBFGH.js.map +1 -0
- package/dist/chunk-6LNT56PI.js +30 -0
- package/dist/chunk-6LNT56PI.js.map +1 -0
- package/dist/chunk-6NK4TENV.js +244 -0
- package/dist/chunk-6NK4TENV.js.map +1 -0
- package/dist/chunk-6RTDC4IZ.js +145 -0
- package/dist/chunk-6RTDC4IZ.js.map +1 -0
- package/dist/chunk-7HTPOEYY.js +60 -0
- package/dist/chunk-7HTPOEYY.js.map +1 -0
- package/dist/chunk-7QSHSKGH.js +250 -0
- package/dist/chunk-7QSHSKGH.js.map +1 -0
- package/dist/chunk-7XPVJ35J.js +177 -0
- package/dist/chunk-7XPVJ35J.js.map +1 -0
- package/dist/chunk-AEM57IUZ.js +145 -0
- package/dist/chunk-AEM57IUZ.js.map +1 -0
- package/dist/chunk-BN23HSLB.js +145 -0
- package/dist/chunk-BN23HSLB.js.map +1 -0
- package/dist/chunk-BSDY5S2S.js +177 -0
- package/dist/chunk-BSDY5S2S.js.map +1 -0
- package/dist/chunk-BXSGWGPX.js +51 -0
- package/dist/chunk-BXSGWGPX.js.map +1 -0
- package/dist/chunk-C54BNXQ3.js +174 -0
- package/dist/chunk-C54BNXQ3.js.map +1 -0
- package/dist/chunk-DAAG2ECN.js +145 -0
- package/dist/chunk-DAAG2ECN.js.map +1 -0
- package/dist/chunk-DEC74YZM.js +277 -0
- package/dist/chunk-DEC74YZM.js.map +1 -0
- package/dist/chunk-EDGXK4S3.js +30 -0
- package/dist/chunk-EDGXK4S3.js.map +1 -0
- package/dist/chunk-EPHO2NHY.js +165 -0
- package/dist/chunk-EPHO2NHY.js.map +1 -0
- package/dist/chunk-FLHTCZJ6.js +145 -0
- package/dist/chunk-FLHTCZJ6.js.map +1 -0
- package/dist/chunk-FYMXBVJN.js +163 -0
- package/dist/chunk-FYMXBVJN.js.map +1 -0
- package/dist/chunk-G4HAO2PO.js +145 -0
- package/dist/chunk-G4HAO2PO.js.map +1 -0
- package/dist/chunk-GWJPOXZB.js +145 -0
- package/dist/chunk-GWJPOXZB.js.map +1 -0
- package/dist/chunk-GWV7ZQS7.js +165 -0
- package/dist/chunk-GWV7ZQS7.js.map +1 -0
- package/dist/chunk-HAXSZIZN.js +174 -0
- package/dist/chunk-HAXSZIZN.js.map +1 -0
- package/dist/chunk-HVKX7LGP.js +63 -0
- package/dist/chunk-HVKX7LGP.js.map +1 -0
- package/dist/chunk-HW5TXRPH.js +51 -0
- package/dist/chunk-HW5TXRPH.js.map +1 -0
- package/dist/chunk-HXUZQJQY.js +60 -0
- package/dist/chunk-HXUZQJQY.js.map +1 -0
- package/dist/chunk-I5NKXTH5.js +63 -0
- package/dist/chunk-I5NKXTH5.js.map +1 -0
- package/dist/chunk-ID5SXFYY.js +277 -0
- package/dist/chunk-ID5SXFYY.js.map +1 -0
- package/dist/chunk-JFAEGRYZ.js +145 -0
- package/dist/chunk-JFAEGRYZ.js.map +1 -0
- package/dist/chunk-JHZGOPC4.js +104 -0
- package/dist/chunk-JHZGOPC4.js.map +1 -0
- package/dist/chunk-KEVIRRIU.js +250 -0
- package/dist/chunk-KEVIRRIU.js.map +1 -0
- package/dist/chunk-KWVMO7QA.js +145 -0
- package/dist/chunk-KWVMO7QA.js.map +1 -0
- package/dist/chunk-KZQALSCC.js +277 -0
- package/dist/chunk-KZQALSCC.js.map +1 -0
- package/dist/chunk-LSZ6443S.js +250 -0
- package/dist/chunk-LSZ6443S.js.map +1 -0
- package/dist/chunk-MEVO4WQM.js +163 -0
- package/dist/chunk-MEVO4WQM.js.map +1 -0
- package/dist/chunk-MR7H7IVE.js +192 -0
- package/dist/chunk-MR7H7IVE.js.map +1 -0
- package/dist/chunk-NCAJKLJL.js +277 -0
- package/dist/chunk-NCAJKLJL.js.map +1 -0
- package/dist/chunk-NOU2SQ3S.js +145 -0
- package/dist/chunk-NOU2SQ3S.js.map +1 -0
- package/dist/chunk-NTS2GASQ.js +30 -0
- package/dist/chunk-NTS2GASQ.js.map +1 -0
- package/dist/chunk-OCCR3BYX.js +145 -0
- package/dist/chunk-OCCR3BYX.js.map +1 -0
- package/dist/chunk-P3IQELLW.js +103 -0
- package/dist/chunk-P3IQELLW.js.map +1 -0
- package/dist/chunk-P7MEVIA2.js +177 -0
- package/dist/chunk-P7MEVIA2.js.map +1 -0
- package/dist/chunk-PM2MEPSY.js +145 -0
- package/dist/chunk-PM2MEPSY.js.map +1 -0
- package/dist/chunk-PYR4SVP5.js +146 -0
- package/dist/chunk-PYR4SVP5.js.map +1 -0
- package/dist/chunk-Q4B4TVV6.js +52 -0
- package/dist/chunk-Q4B4TVV6.js.map +1 -0
- package/dist/chunk-Q76YER7W.js +177 -0
- package/dist/chunk-Q76YER7W.js.map +1 -0
- package/dist/chunk-QW3Q5PDH.js +250 -0
- package/dist/chunk-QW3Q5PDH.js.map +1 -0
- package/dist/chunk-RSCMNIHH.js +165 -0
- package/dist/chunk-RSCMNIHH.js.map +1 -0
- package/dist/chunk-RZDYA4LT.js +174 -0
- package/dist/chunk-RZDYA4LT.js.map +1 -0
- package/dist/chunk-S3F7WBI2.js +45 -0
- package/dist/chunk-S3F7WBI2.js.map +1 -0
- package/dist/chunk-SDY76VWM.js +145 -0
- package/dist/chunk-SDY76VWM.js.map +1 -0
- package/dist/chunk-SNL4BT3L.js +249 -0
- package/dist/chunk-SNL4BT3L.js.map +1 -0
- package/dist/chunk-T24Z37LZ.js +51 -0
- package/dist/chunk-T24Z37LZ.js.map +1 -0
- package/dist/chunk-TDRNTGNE.js +164 -0
- package/dist/chunk-TDRNTGNE.js.map +1 -0
- package/dist/chunk-TU453YST.js +63 -0
- package/dist/chunk-TU453YST.js.map +1 -0
- package/dist/chunk-UTBSTESQ.js +30 -0
- package/dist/chunk-UTBSTESQ.js.map +1 -0
- package/dist/chunk-VF5Q4NSV.js +174 -0
- package/dist/chunk-VF5Q4NSV.js.map +1 -0
- package/dist/chunk-VIOAD7BY.js +145 -0
- package/dist/chunk-VIOAD7BY.js.map +1 -0
- package/dist/chunk-VKXZLSWB.js +249 -0
- package/dist/chunk-VKXZLSWB.js.map +1 -0
- package/dist/chunk-VVZ6M3AZ.js +145 -0
- package/dist/chunk-VVZ6M3AZ.js.map +1 -0
- package/dist/chunk-WHPYQRMZ.js +145 -0
- package/dist/chunk-WHPYQRMZ.js.map +1 -0
- package/dist/chunk-WNSDISYV.js +54 -0
- package/dist/chunk-WNSDISYV.js.map +1 -0
- package/dist/chunk-X7RBL443.js +145 -0
- package/dist/chunk-X7RBL443.js.map +1 -0
- package/dist/chunk-XM5HV4U7.js +145 -0
- package/dist/chunk-XM5HV4U7.js.map +1 -0
- package/dist/chunk-XY5462PL.js +277 -0
- package/dist/chunk-XY5462PL.js.map +1 -0
- package/dist/chunk-YDPVHTY2.js +163 -0
- package/dist/chunk-YDPVHTY2.js.map +1 -0
- package/dist/chunk-ZILPOC5V.js +277 -0
- package/dist/chunk-ZILPOC5V.js.map +1 -0
- package/dist/index.cjs +261 -250
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -2
- package/dist/index.d.ts +1 -2
- package/dist/index.js +48 -51
- package/dist/layouts/index.cjs.map +1 -1
- package/dist/layouts/index.js +26 -26
- package/dist/layouts/response-display.cjs.map +1 -1
- package/dist/layouts/response-display.js +26 -26
- package/dist/molecules/date-picker/date-picker-button.cjs +1 -1
- package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
- package/dist/molecules/date-picker/date-picker-button.js +4 -4
- package/dist/molecules/expand-table/index.cjs +1 -1
- package/dist/molecules/expand-table/index.cjs.map +1 -1
- package/dist/molecules/expand-table/index.js +4 -4
- package/dist/molecules/expand-table/row.cjs +1 -1
- package/dist/molecules/expand-table/row.cjs.map +1 -1
- package/dist/molecules/expand-table/row.js +4 -4
- package/dist/molecules/form/form.cjs +251 -0
- package/dist/molecules/form/form.cjs.map +1 -0
- package/dist/molecules/form/form.d.cts +33 -0
- package/dist/molecules/form/form.d.ts +33 -0
- package/dist/molecules/form/form.js +12 -0
- package/dist/molecules/form/form.js.map +1 -0
- package/dist/molecules/form/index.cjs +253 -0
- package/dist/molecules/form/index.cjs.map +1 -0
- package/dist/molecules/form/index.d.cts +3 -0
- package/dist/molecules/form/index.d.ts +3 -0
- package/dist/molecules/form/index.js +12 -0
- package/dist/molecules/form/index.js.map +1 -0
- package/dist/molecules/index.cjs +27 -4
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.js +15 -15
- package/dist/molecules/navigation.cjs +1 -1
- package/dist/molecules/navigation.cjs.map +1 -1
- package/dist/molecules/navigation.js +4 -4
- package/dist/molecules/radio-button-card.cjs +1 -1
- package/dist/molecules/radio-button-card.cjs.map +1 -1
- package/dist/molecules/radio-button-card.js +4 -4
- package/dist/molecules/tag-selector.cjs +1 -1
- package/dist/molecules/tag-selector.cjs.map +1 -1
- package/dist/molecules/tag-selector.js +4 -4
- package/dist/molecules/time-select.cjs +27 -4
- package/dist/molecules/time-select.cjs.map +1 -1
- package/dist/molecules/time-select.d.cts +6 -1
- package/dist/molecules/time-select.d.ts +6 -1
- package/dist/molecules/time-select.js +7 -7
- package/dist/utils/index.js +6 -6
- package/package.json +1 -1
- package/src/app/platform/edit-coaching-time.tsx +3 -2
- package/src/app/platform/goal-manage-card-read.tsx +10 -7
- package/src/app/platform/reservation-card.tsx +39 -2
- package/src/app/platform/userInfos/coaching-customer-info/large.tsx +3 -15
- package/src/app/platform/userInfos/coaching-customer-info/medium.tsx +3 -15
- package/src/app/platform/userInfos/coaching-customer-info/small.tsx +4 -18
- package/src/app/platform/userInfos/utils.tsx +1 -0
- package/src/atoms/drawer.tsx +2 -0
- package/src/atoms/index.ts +1 -1
- package/src/index.ts +0 -1
- package/src/molecules/{form.tsx → form/form.tsx} +32 -6
- package/src/molecules/form/index.ts +1 -0
- package/src/molecules/time-select.tsx +37 -6
- package/src/layouts/index.ts +0 -1
- package/src/layouts/response-display.tsx +0 -62
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import {
|
|
3
|
-
getColorFromProjectState,
|
|
4
|
-
getTextFromProjectState,
|
|
5
|
-
} from '@tipp/biz-utils';
|
|
6
|
-
import { Badge, Box, Flex, Grid, Heading, Typo } from '../../../../atoms';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box, Flex, Grid, Heading, Typo } from '../../../../atoms';
|
|
7
3
|
import type { CoachingCustomerInfoProps } from '../utils';
|
|
8
4
|
|
|
9
5
|
export function CoachingCustomerInfoSmall({
|
|
10
6
|
customer,
|
|
11
|
-
session,
|
|
12
7
|
children,
|
|
8
|
+
badge,
|
|
13
9
|
}: CoachingCustomerInfoProps): React.ReactElement {
|
|
14
|
-
const badgeColor = useMemo(() => {
|
|
15
|
-
return getColorFromProjectState(session?.state);
|
|
16
|
-
}, [session?.state]);
|
|
17
|
-
|
|
18
|
-
const sessionText = useMemo(() => {
|
|
19
|
-
return getTextFromProjectState(session?.state);
|
|
20
|
-
}, [session?.state]);
|
|
21
|
-
|
|
22
10
|
return (
|
|
23
11
|
<Flex
|
|
24
12
|
direction={{ initial: 'column', xs: 'row' }}
|
|
@@ -34,9 +22,7 @@ export function CoachingCustomerInfoSmall({
|
|
|
34
22
|
<Typo color="gray" truncate variant="body">
|
|
35
23
|
{customer?.company}
|
|
36
24
|
</Typo>
|
|
37
|
-
<Box style={{ justifySelf: 'end' }}>
|
|
38
|
-
<Badge color={badgeColor}>{sessionText}</Badge>
|
|
39
|
-
</Box>
|
|
25
|
+
<Box style={{ justifySelf: 'end' }}>{badge}</Box>
|
|
40
26
|
</Grid>
|
|
41
27
|
</Box>
|
|
42
28
|
{children}
|
package/src/atoms/drawer.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import { ClosePanelArrowIcon } from '../icons/close-panel-arrow';
|
|
|
5
5
|
import { Flex } from './flex';
|
|
6
6
|
import { Separator } from './separator';
|
|
7
7
|
import { IconButton } from './icon-button';
|
|
8
|
+
import { ToastContainer } from './toast';
|
|
8
9
|
|
|
9
10
|
export function Root(props: Dialog.DialogProps): React.ReactNode {
|
|
10
11
|
return <Dialog.Root {...props} />;
|
|
@@ -37,6 +38,7 @@ export function Content(props: ContentProps): React.ReactElement {
|
|
|
37
38
|
<Dialog.Portal container={containerRef.current}>
|
|
38
39
|
<Theme>
|
|
39
40
|
<Dialog.Overlay className="DrawerOverlay" />
|
|
41
|
+
<ToastContainer />
|
|
40
42
|
<Dialog.Content
|
|
41
43
|
className={`DrawerContent ${position} ${className || ''}`}
|
|
42
44
|
onPointerDownOutside={preventDefault}
|
package/src/atoms/index.ts
CHANGED
|
@@ -52,6 +52,6 @@ export * from './field-error-wrapper';
|
|
|
52
52
|
export * from './ellipsis-tooltip';
|
|
53
53
|
export * from './drawer';
|
|
54
54
|
export * from './toast';
|
|
55
|
-
export * from '../molecules/form';
|
|
55
|
+
export * from '../molecules/form/form';
|
|
56
56
|
export * from './auto-sizing-input';
|
|
57
57
|
export * from './bullet-text';
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as RadixForm from '@radix-ui/react-form';
|
|
2
2
|
import { createContext, forwardRef, useContext, useMemo } from 'react';
|
|
3
3
|
import type { HeadingProps } from '@radix-ui/themes';
|
|
4
|
-
import { Heading } from '
|
|
5
|
-
import type { TypoProps } from '
|
|
6
|
-
import { Typo } from '
|
|
4
|
+
import { Heading } from '../../atoms/heading';
|
|
5
|
+
import type { TypoProps } from '../../atoms/typo';
|
|
6
|
+
import { Typo } from '../../atoms/typo';
|
|
7
7
|
|
|
8
8
|
const Root = forwardRef<HTMLFormElement, RadixForm.FormProps>(
|
|
9
9
|
({ children, className, ...rest }, ref) => {
|
|
@@ -21,7 +21,7 @@ const Root = forwardRef<HTMLFormElement, RadixForm.FormProps>(
|
|
|
21
21
|
|
|
22
22
|
Root.displayName = 'FORM_ROOT';
|
|
23
23
|
|
|
24
|
-
type FormFieldProps = RadixForm.FormFieldProps & { required?: boolean };
|
|
24
|
+
export type FormFieldProps = RadixForm.FormFieldProps & { required?: boolean };
|
|
25
25
|
|
|
26
26
|
const FieldContext = createContext<FormFieldProps>({
|
|
27
27
|
name: '',
|
|
@@ -42,7 +42,7 @@ const Field = forwardRef<HTMLDivElement, FormFieldProps>(
|
|
|
42
42
|
);
|
|
43
43
|
Field.displayName = 'FORM_FIELD';
|
|
44
44
|
|
|
45
|
-
type
|
|
45
|
+
export type FormLabelProps = RadixForm.FormLabelProps & {
|
|
46
46
|
/** label의 타입을 지정 */
|
|
47
47
|
variant?: 'title' | 'body' | 'caption';
|
|
48
48
|
};
|
|
@@ -63,7 +63,7 @@ function CaptionLabel(props: TypoProps): React.ReactElement {
|
|
|
63
63
|
);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const Label = forwardRef<HTMLLabelElement,
|
|
66
|
+
const Label = forwardRef<HTMLLabelElement, FormLabelProps>(
|
|
67
67
|
({ children, className, variant, ...rest }, ref) => {
|
|
68
68
|
const Comp = useMemo(() => {
|
|
69
69
|
switch (variant) {
|
|
@@ -131,6 +131,31 @@ const Control = forwardRef<HTMLInputElement, ControlProps>(
|
|
|
131
131
|
);
|
|
132
132
|
Control.displayName = 'FORM_Control';
|
|
133
133
|
|
|
134
|
+
interface FormItemProps extends FormFieldProps {
|
|
135
|
+
children: React.ReactElement;
|
|
136
|
+
label: string;
|
|
137
|
+
labelVariant?: FormLabelProps['variant'];
|
|
138
|
+
errorMessage?: string;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export function FormItem({
|
|
142
|
+
label,
|
|
143
|
+
labelVariant,
|
|
144
|
+
children,
|
|
145
|
+
errorMessage,
|
|
146
|
+
...fieldProps
|
|
147
|
+
}: FormItemProps): React.JSX.Element {
|
|
148
|
+
return (
|
|
149
|
+
<Form.Field {...fieldProps}>
|
|
150
|
+
<Form.Label variant={labelVariant}>{label}</Form.Label>
|
|
151
|
+
{children}
|
|
152
|
+
<Form.Message forceMatch={Boolean(errorMessage)}>
|
|
153
|
+
{errorMessage}
|
|
154
|
+
</Form.Message>
|
|
155
|
+
</Form.Field>
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
134
159
|
export const Form = {
|
|
135
160
|
Root,
|
|
136
161
|
Field,
|
|
@@ -138,4 +163,5 @@ export const Form = {
|
|
|
138
163
|
Message,
|
|
139
164
|
Control: RadixForm.Control,
|
|
140
165
|
Submit: RadixForm.Submit,
|
|
166
|
+
FormItem,
|
|
141
167
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './form';
|
|
@@ -1,27 +1,58 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
+
import { format } from 'date-fns';
|
|
2
3
|
import type { SelectRootProps } from '../atoms';
|
|
3
4
|
import { Flex, Select } from '../atoms';
|
|
4
5
|
import { getTimeOptions } from '../utils';
|
|
5
6
|
|
|
7
|
+
interface TimeSelectProps extends SelectRootProps {
|
|
8
|
+
maxTime?: Date;
|
|
9
|
+
minTime?: Date;
|
|
10
|
+
time?: Date;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const getOptionValue = (date?: Date, timeValue?: Date): string | undefined => {
|
|
14
|
+
if (date && timeValue) {
|
|
15
|
+
if (format(date, 'yyyyMMdd') === format(timeValue, 'yyyyMMdd')) {
|
|
16
|
+
return format(date, 'HH:mm');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
6
21
|
export function TimeSelect({
|
|
7
22
|
value,
|
|
23
|
+
maxTime,
|
|
24
|
+
minTime,
|
|
25
|
+
time,
|
|
8
26
|
...rest
|
|
9
|
-
}:
|
|
27
|
+
}: TimeSelectProps): React.ReactElement {
|
|
10
28
|
const timeOptions = useMemo(() => {
|
|
11
29
|
return getTimeOptions();
|
|
12
30
|
}, []);
|
|
13
31
|
|
|
32
|
+
const [minOption, maxOption] = useMemo(() => {
|
|
33
|
+
return [getOptionValue(minTime, time), getOptionValue(maxTime, time)];
|
|
34
|
+
}, [maxTime, minTime, time]);
|
|
35
|
+
|
|
14
36
|
return (
|
|
15
37
|
<Select.Root value={value} {...rest}>
|
|
16
38
|
<Flex direction="column" width="100%">
|
|
17
39
|
<Select.Trigger placeholder="- " style={{ minWidth: '100px' }} />
|
|
18
40
|
</Flex>
|
|
19
41
|
<Select.Content>
|
|
20
|
-
{timeOptions.map((
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
42
|
+
{timeOptions.map((option) => {
|
|
43
|
+
const visible =
|
|
44
|
+
(!minOption || option >= minOption) &&
|
|
45
|
+
(!maxOption || option <= maxOption);
|
|
46
|
+
|
|
47
|
+
if (!visible) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return (
|
|
51
|
+
<Select.Item key={option} value={option}>
|
|
52
|
+
{option}
|
|
53
|
+
</Select.Item>
|
|
54
|
+
);
|
|
55
|
+
})}
|
|
25
56
|
</Select.Content>
|
|
26
57
|
</Select.Root>
|
|
27
58
|
);
|
package/src/layouts/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './response-display';
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { Breakpoint, Responsive } from '@radix-ui/themes/props';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import type { BoxProps } from '../atoms';
|
|
4
|
-
import { Box } from '../atoms';
|
|
5
|
-
|
|
6
|
-
type Children = React.ReactElement;
|
|
7
|
-
export type ResponseDisplayProps = Responsive<Children>;
|
|
8
|
-
|
|
9
|
-
const breakpoints: Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];
|
|
10
|
-
|
|
11
|
-
const sortByBreakpoint = (
|
|
12
|
-
a: [string, Children],
|
|
13
|
-
b: [string, Children]
|
|
14
|
-
): number => {
|
|
15
|
-
return (
|
|
16
|
-
breakpoints.indexOf(a[0] as Breakpoint) -
|
|
17
|
-
breakpoints.indexOf(b[0] as Breakpoint)
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const getDisplay = (
|
|
22
|
-
prev: Breakpoint | undefined,
|
|
23
|
-
cur: Breakpoint | undefined,
|
|
24
|
-
index: Breakpoint | undefined
|
|
25
|
-
): BoxProps['display'] => {
|
|
26
|
-
const result: BoxProps['display'] = {};
|
|
27
|
-
if (prev) {
|
|
28
|
-
result.initial = 'none';
|
|
29
|
-
}
|
|
30
|
-
if (cur) {
|
|
31
|
-
result[cur] = 'block';
|
|
32
|
-
}
|
|
33
|
-
if (index) {
|
|
34
|
-
result[index] = 'none';
|
|
35
|
-
}
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export function ResponseDisplay(
|
|
40
|
-
props: ResponseDisplayProps
|
|
41
|
-
): React.ReactElement {
|
|
42
|
-
const sortedChildren = Object.entries(props).sort(sortByBreakpoint);
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<>
|
|
46
|
-
{sortedChildren.map(([key, value], index) => {
|
|
47
|
-
return (
|
|
48
|
-
<Box
|
|
49
|
-
display={getDisplay(
|
|
50
|
-
sortedChildren[index - 1]?.[0] as Breakpoint,
|
|
51
|
-
sortedChildren[index]?.[0] as Breakpoint,
|
|
52
|
-
sortedChildren[index + 1]?.[0] as Breakpoint
|
|
53
|
-
)}
|
|
54
|
-
key={key}
|
|
55
|
-
>
|
|
56
|
-
{value}
|
|
57
|
-
</Box>
|
|
58
|
-
);
|
|
59
|
-
})}
|
|
60
|
-
</>
|
|
61
|
-
);
|
|
62
|
-
}
|