@ya-accelerators/nextjs-framework 0.0.85 → 0.0.87

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.
Files changed (39) hide show
  1. package/dist/env.d.ts +0 -2
  2. package/dist/env.js +0 -6
  3. package/dist/env.js.map +1 -1
  4. package/dist/hooks/mounted/index.d.ts +1 -0
  5. package/dist/hooks/mounted/index.js +14 -0
  6. package/dist/hooks/mounted/index.js.map +1 -0
  7. package/dist/i18n/strings/ja-JP.json +5 -1
  8. package/dist/lib/index.d.ts +0 -2
  9. package/dist/lib/index.js +0 -2
  10. package/dist/lib/index.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/ui/composite/index.d.ts +28 -13
  13. package/dist/ui/composite/input/datePicker/index.d.ts +3 -1
  14. package/dist/ui/composite/input/datePicker/index.jsx +69 -19
  15. package/dist/ui/composite/input/datePicker/index.jsx.map +1 -1
  16. package/dist/ui/composite/input/dateTimePicker/index.jsx +12 -2
  17. package/dist/ui/composite/input/dateTimePicker/index.jsx.map +1 -1
  18. package/dist/ui/composite/input/file/index.d.ts +22 -0
  19. package/dist/ui/composite/input/file/index.jsx +225 -0
  20. package/dist/ui/composite/input/file/index.jsx.map +1 -0
  21. package/dist/ui/composite/input/index.d.ts +28 -13
  22. package/dist/ui/composite/input/index.js +2 -0
  23. package/dist/ui/composite/input/index.js.map +1 -1
  24. package/dist/ui/composite/input/list/index.d.ts +5 -15
  25. package/dist/ui/composite/input/list/index.jsx +36 -18
  26. package/dist/ui/composite/input/list/index.jsx.map +1 -1
  27. package/dist/ui/layout/form/index.d.ts +7 -3
  28. package/dist/ui/layout/form/index.jsx +72 -101
  29. package/dist/ui/layout/form/index.jsx.map +1 -1
  30. package/dist/ui/layout/form/renderItem.d.ts +21 -0
  31. package/dist/ui/layout/form/renderItem.jsx +123 -0
  32. package/dist/ui/layout/form/renderItem.jsx.map +1 -0
  33. package/dist/ui/layout/index.d.ts +10 -2
  34. package/dist/ui/types/index.d.ts +17 -4
  35. package/dist/ui/types/index.js.map +1 -1
  36. package/package.json +1 -2
  37. package/dist/lib/s3/index.d.ts +0 -2
  38. package/dist/lib/s3/index.js +0 -18
  39. package/dist/lib/s3/index.js.map +0 -1
@@ -130,25 +130,39 @@ export declare const Composite: {
130
130
  disabled?: boolean;
131
131
  required?: boolean;
132
132
  }) => import("react").JSX.Element;
133
- List: ({ name, rounded, defaultList, minListLength, maxListLength, valueLength, isFirstItem, required, input, }: {
133
+ List: ({ name, rounded, columns, scalarArray, defaultValues, minListLength, maxListLength, isFirstItem, }: {
134
134
  name: string;
135
135
  rounded?: import("..").Rounded;
136
- defaultList: string[][];
136
+ columns: import("..").FormListColumn[];
137
+ scalarArray?: boolean;
138
+ defaultValues?: Record<string, string | number | boolean | Date | string[]>[];
137
139
  minListLength?: number;
138
140
  maxListLength?: number;
139
- valueLength: number;
140
141
  isFirstItem: boolean;
142
+ }) => import("react").JSX.Element;
143
+ File: ({ name, accept, multiple, rounded, disabled, required, onChange, upload, className, }: {
144
+ name: string;
145
+ accept?: string;
146
+ multiple?: boolean;
147
+ rounded?: import("..").Rounded;
148
+ disabled?: boolean;
141
149
  required?: boolean;
142
- input: (props: {
150
+ onChange?: (value?: {
151
+ key: string;
143
152
  name: string;
144
- autoFocus: boolean;
145
- required: boolean;
146
- values: string[];
147
- onChange: (index: number, value: string) => void;
148
- }) => {
149
- node: import("react").ReactNode;
150
- disabled?: boolean;
151
- };
153
+ mimeType: string;
154
+ size: number;
155
+ } | {
156
+ key: string;
157
+ name: string;
158
+ mimeType: string;
159
+ size: number;
160
+ }[]) => void;
161
+ upload?: () => Promise<{
162
+ token: string;
163
+ url: string;
164
+ }>;
165
+ className?: string;
152
166
  }) => import("react").JSX.Element;
153
167
  DateTimeRange: ({ defaultValue, name, disabled, error, stepMinutes, onChange, ...props }: Omit<import("react").ComponentProps<typeof import("./input/dateTimePicker").DateTimePicker>, "defaultValue" | "onChange"> & {
154
168
  defaultValue?: {
@@ -187,7 +201,7 @@ export declare const Composite: {
187
201
  end?: Date;
188
202
  }) => void;
189
203
  }) => import("react").JSX.Element;
190
- DatePicker: (props: Parameters<({ name, rounded, placement, defaultValue, value, min, max, onChange, disabled, className, required, error, autoFocus, }: {
204
+ DatePicker: (props: Parameters<({ name, rounded, placement, defaultValue, value, min, max, precision, onChange, disabled, className, required, error, autoFocus, }: {
191
205
  name: string;
192
206
  rounded?: import("..").Rounded;
193
207
  placement?: "top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end";
@@ -195,6 +209,7 @@ export declare const Composite: {
195
209
  value?: Date;
196
210
  min?: Date;
197
211
  max?: Date;
212
+ precision?: "year" | "month" | "day";
198
213
  onChange?: (value?: Date) => void;
199
214
  disabled?: boolean;
200
215
  className?: string;
@@ -1,7 +1,8 @@
1
1
  import 'react-datepicker/dist/react-datepicker.css';
2
2
  import { Rounded } from '../../../theme';
3
+ type Precision = 'year' | 'month' | 'day';
3
4
  export declare const DatePicker: (props: Parameters<typeof DatePickerImpl>[0]) => import("react").JSX.Element;
4
- declare const DatePickerImpl: ({ name, rounded, placement, defaultValue, value, min, max, onChange, disabled, className, required, error, autoFocus, }: {
5
+ declare const DatePickerImpl: ({ name, rounded, placement, defaultValue, value, min, max, precision, onChange, disabled, className, required, error, autoFocus, }: {
5
6
  name: string;
6
7
  rounded?: Rounded;
7
8
  placement?: "top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end";
@@ -9,6 +10,7 @@ declare const DatePickerImpl: ({ name, rounded, placement, defaultValue, value,
9
10
  value?: Date;
10
11
  min?: Date;
11
12
  max?: Date;
13
+ precision?: Precision;
12
14
  onChange?: (value?: Date) => void;
13
15
  disabled?: boolean;
14
16
  className?: string;
@@ -5,38 +5,72 @@ import NavigateBeforeOutlinedIcon from '@mui/icons-material/NavigateBeforeOutlin
5
5
  import NavigateNextOutlinedIcon from '@mui/icons-material/NavigateNextOutlined';
6
6
  import classNames from 'classnames';
7
7
  import { enGB, enUS, ja } from 'date-fns/locale';
8
+ import { useLocale } from 'next-intl';
8
9
  import { forwardRef, useMemo, useState } from 'react';
9
10
  import RDatePicker, { registerLocale } from 'react-datepicker';
10
11
  import { useDateFormat } from '../../../../hooks/date';
12
+ import { useMounted } from '../../../../hooks/mounted';
11
13
  import { Component } from '../../../component';
12
14
  import { Rounded, TextColorTypes } from '../../../theme';
13
15
  import { Text } from '../text';
16
+ // Register both the BCP-47 tags the app uses (en-GB / en-US / ja-JP) and their bare-language
17
+ // aliases, so react-datepicker localizes even when the active locale is a short code (`ja` / `en`).
18
+ registerLocale('en', enGB);
14
19
  registerLocale('en-GB', enGB);
15
20
  registerLocale('en-US', enUS);
21
+ registerLocale('ja', ja);
16
22
  registerLocale('ja-JP', ja);
23
+ // Snap a date to the start of its precision unit so the persisted value carries no spurious
24
+ // day/month component (a month picker must not leak the day it happened to open on).
25
+ const snapToPrecision = (date, precision) => {
26
+ if (precision === 'year') {
27
+ return new Date(date.getFullYear(), 0, 1);
28
+ }
29
+ if (precision === 'month') {
30
+ return new Date(date.getFullYear(), date.getMonth(), 1);
31
+ }
32
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
33
+ };
17
34
  export const DatePicker = (props) => {
18
35
  const { name, value, ...rest } = props;
19
- const key = useMemo(() => `${name}-${value?.toISOString()}`, [name, value]);
36
+ // Key on the value only, not the name: DatePickerImpl re-inits its `date` state from `value` on remount,
37
+ // so it must remount when the controlled value changes — but a name change (e.g. a list row re-indexing
38
+ // list[1]→list[0] after a removal) must NOT remount it, or an uncontrolled picked date would be lost.
39
+ const key = useMemo(() => value?.toISOString(), [value]);
20
40
  return <DatePickerImpl {...rest} key={key} name={name} value={value}/>;
21
41
  };
22
- const DatePickerImpl = ({ name, rounded = Rounded.m, placement, defaultValue, value, min, max, onChange, disabled, className, required, error, autoFocus, }) => {
23
- const { toDateString, dataFormat } = useDateFormat();
42
+ const DatePickerImpl = ({ name, rounded = Rounded.m, placement, defaultValue, value, min, max, precision = 'day', onChange, disabled, className, required, error, autoFocus, }) => {
43
+ const { toString, toDateString, dataFormat } = useDateFormat();
44
+ const locale = useLocale();
45
+ const mounted = useMounted();
24
46
  const [date, setDate] = useState(() => {
25
47
  const dateToUse = value ?? defaultValue;
26
- if (dateToUse) {
27
- return new Date(dateToUse.getFullYear(), dateToUse.getMonth(), dateToUse.getDate());
28
- }
29
- return undefined;
48
+ return dateToUse ? snapToPrecision(dateToUse, precision) : undefined;
30
49
  });
50
+ // The rendered value is TZ-derived (snapToPrecision uses runtime-local Date parts), so it must not be
51
+ // emitted on the server; render it only after mount so the first client render matches the server.
52
+ const renderedDate = mounted ? date : undefined;
31
53
  const [onFocus, setOnFocus] = useState(autoFocus ?? false);
54
+ const displayValue = (target) => {
55
+ if (!target) {
56
+ return '-';
57
+ }
58
+ if (precision === 'year') {
59
+ return toString(target, { year: 'numeric' });
60
+ }
61
+ if (precision === 'month') {
62
+ return toString(target, { year: 'numeric', month: '2-digit' });
63
+ }
64
+ return toDateString(target);
65
+ };
32
66
  return (<div className={classNames('flex w-full min-w-[100px] cursor-pointer', className)}>
33
- <input className='absolute size-0 opacity-0' name={name} value={date ? date.toISOString() : ''} onChange={() => { }} required={required}/>
67
+ <input className='absolute size-0 opacity-0' name={name} value={renderedDate ? renderedDate.toISOString() : ''} onChange={() => { }} required={required}/>
34
68
  <div className='relative w-full'>
35
- <RDatePicker portalId='portal' wrapperClassName='w-full' selected={date} minDate={min ?? undefined} maxDate={max ?? undefined} onChange={(e) => {
69
+ <RDatePicker portalId='portal' wrapperClassName='w-full' locale={locale} selected={renderedDate} minDate={min ?? undefined} maxDate={max ?? undefined} showMonthYearPicker={precision === 'month'} showYearPicker={precision === 'year'} onChange={(e) => {
36
70
  if (e) {
37
- const localDate = new Date(e.getFullYear(), e.getMonth(), e.getDate());
38
- setDate(localDate);
39
- onChange?.(localDate);
71
+ const snapped = snapToPrecision(e, precision);
72
+ setDate(snapped);
73
+ onChange?.(snapped);
40
74
  }
41
75
  else {
42
76
  setDate(undefined);
@@ -47,8 +81,10 @@ const DatePickerImpl = ({ name, rounded = Rounded.m, placement, defaultValue, va
47
81
  const event = new Event('change', { bubbles: true });
48
82
  hiddenInput.dispatchEvent(event);
49
83
  }
50
- }} placeholderText={toDateString(new Date())} dateFormat={dataFormat} renderCustomHeader={({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }) => (<CustomCalendarHeader date={date} changeYear={changeYear} changeMonth={changeMonth} decreaseMonth={decreaseMonth} increaseMonth={increaseMonth} prevMonthButtonDisabled={prevMonthButtonDisabled} nextMonthButtonDisabled={nextMonthButtonDisabled} minYear={min?.getFullYear()} maxYear={max?.getFullYear()}/>)} onCalendarOpen={() => setOnFocus(true)} onCalendarClose={() => setOnFocus(false)} customInput={<CustomInput value={toDateString(date)} focused={onFocus} rounded={rounded} disabled={disabled} error={error}/>} popperPlacement={placement} disabled={disabled} required={false}/>
51
- {required !== true && date && (<div className='absolute top-0 right-0 bottom-0 flex items-center justify-center p-control-padding-base'>
84
+ }} placeholderText={mounted ? displayValue(new Date()) : ''} dateFormat={precision === 'year' ? 'yyyy' : precision === 'month' ? 'yyyy-MM' : dataFormat} renderCustomHeader={precision === 'year'
85
+ ? undefined
86
+ : ({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, decreaseYear, increaseYear, prevMonthButtonDisabled, nextMonthButtonDisabled, prevYearButtonDisabled, nextYearButtonDisabled, }) => (<CustomCalendarHeader precision={precision} date={date} changeYear={changeYear} changeMonth={changeMonth} decreaseMonth={decreaseMonth} increaseMonth={increaseMonth} decreaseYear={decreaseYear} increaseYear={increaseYear} prevMonthButtonDisabled={prevMonthButtonDisabled} nextMonthButtonDisabled={nextMonthButtonDisabled} prevYearButtonDisabled={prevYearButtonDisabled} nextYearButtonDisabled={nextYearButtonDisabled} minYear={min?.getFullYear()} maxYear={max?.getFullYear()}/>)} onCalendarOpen={() => setOnFocus(true)} onCalendarClose={() => setOnFocus(false)} customInput={<CustomInput value={displayValue(renderedDate)} focused={onFocus} rounded={rounded} disabled={disabled} error={error}/>} popperPlacement={placement} disabled={disabled} required={false}/>
87
+ {required !== true && renderedDate && (<div className='absolute top-0 right-0 bottom-0 flex items-center justify-center p-control-padding-base'>
52
88
  <ClearIcon className='size-control-sm! cursor-pointer! bg-transparent!' onClick={() => {
53
89
  setDate(undefined);
54
90
  onChange?.(undefined);
@@ -68,17 +104,31 @@ const CustomInput = forwardRef(({ value, focused, rounded, disabled, error, plac
68
104
  </div>);
69
105
  });
70
106
  CustomInput.displayName = 'CustomInput';
71
- const CustomCalendarHeader = ({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, minYear, maxYear, }) => {
107
+ const CustomCalendarHeader = ({ precision, date, changeYear, changeMonth, decreaseMonth, increaseMonth, decreaseYear, increaseYear, prevMonthButtonDisabled, nextMonthButtonDisabled, prevYearButtonDisabled, nextYearButtonDisabled, minYear, maxYear, }) => {
72
108
  const { toString } = useDateFormat();
73
109
  const years = useMemo(() => [...Array((maxYear ?? new Date().getFullYear() + 50) - (minYear ?? 1970) + 1)].map((_, i) => (minYear ?? 1970) + i), [minYear, maxYear]);
74
110
  const handleYearChange = (e) => {
75
- const year = Number(e.target.value);
76
- changeYear(year);
111
+ changeYear(Number(e.target.value));
77
112
  };
78
113
  const handleMonthChange = (e) => {
79
- const month = Number(e.target.value);
80
- changeMonth(month);
114
+ changeMonth(Number(e.target.value));
81
115
  };
116
+ // Month precision picks the month from the grid, so the header only navigates the year.
117
+ if (precision === 'month') {
118
+ return (<div className='flex flex-col'>
119
+ <div className='flex items-center justify-between'>
120
+ <Component.Button variant='text' className='bg-transparent!' icon={NavigateBeforeOutlinedIcon} color={TextColorTypes.sub} onClick={decreaseYear} disabled={prevYearButtonDisabled}/>
121
+ <div className='flex items-center justify-center'>
122
+ <select key={`year-${date.getFullYear()}`} defaultValue={date.getFullYear()} onChange={handleYearChange}>
123
+ {years.map((year) => (<option key={year} value={year}>
124
+ {year}
125
+ </option>))}
126
+ </select>
127
+ </div>
128
+ <Component.Button variant='text' className='bg-transparent!' icon={NavigateNextOutlinedIcon} color={TextColorTypes.sub} onClick={increaseYear} disabled={nextYearButtonDisabled}/>
129
+ </div>
130
+ </div>);
131
+ }
82
132
  return (<div className='flex flex-col'>
83
133
  <div className='flex items-center justify-between'>
84
134
  <Component.Button variant='text' className='bg-transparent!' icon={NavigateBeforeOutlinedIcon} color={TextColorTypes.sub} onClick={decreaseMonth} disabled={prevMonthButtonDisabled}/>
@@ -1 +1 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/datePicker/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,4CAA4C,CAAA;AAEnD,OAAO,SAAS,MAAM,2BAA2B,CAAA;AACjD,OAAO,0BAA0B,MAAM,4CAA4C,CAAA;AACnF,OAAO,wBAAwB,MAAM,0CAA0C,CAAA;AAC/E,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrD,OAAO,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC7B,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC7B,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA2C,EAAE,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3E,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAG,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,EACtB,IAAI,EACJ,OAAO,GAAG,OAAO,CAAC,CAAC,EACnB,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,KAAK,EACL,SAAS,GA2BV,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAA;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACpC,MAAM,SAAS,GAAG,KAAK,IAAI,YAAY,CAAA;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACrF,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,CAAA;IAC1D,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,0CAA0C,EAAE,SAAS,CAAC,CAAC,CAChF;MAAA,CAAC,KAAK,CACJ,SAAS,CAAC,2BAA2B,CACrC,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnB,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAErB;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAC9B;QAAA,CAAC,WAAW,CACV,QAAQ,CAAC,QAAQ,CACjB,gBAAgB,CAAC,QAAQ,CACzB,QAAQ,CAAC,CAAC,IAAI,CAAC,CACf,OAAO,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAC1B,OAAO,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAC1B,QAAQ,CAAC,CAAC,CAAC,CAAc,EAAE,EAAE;YAC3B,IAAI,CAAC,EAAE,CAAC;gBACN,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;gBACtE,OAAO,CAAC,SAAS,CAAC,CAAA;gBAClB,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,SAAS,CAAC,CAAA;gBAClB,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;YACvB,CAAC;YACD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;YACnE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;gBACpD,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAC,CACF,eAAe,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAC1C,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,kBAAkB,CAAC,CAAC,CAAC,EACnB,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,uBAAuB,GACxB,EAAE,EAAE,CAAC,CACJ,CAAC,oBAAoB,CACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,uBAAuB,CAAC,CAAC,uBAAuB,CAAC,CACjD,uBAAuB,CAAC,CAAC,uBAAuB,CAAC,CACjD,OAAO,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAC5B,OAAO,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAC5B,CACH,CAAC,CACF,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACvC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACzC,WAAW,CAAC,CACV,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,KAAK,CAAC,CAAC,KAAK,CAAC,EAEjB,CAAC,CACD,eAAe,CAAC,CAAC,SAAS,CAAC,CAC3B,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,QAAQ,CAAC,CAAC,KAAK,CAAC,EAElB;QAAA,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,CAC5B,CAAC,GAAG,CAAC,SAAS,CAAC,yFAAyF,CACtG;YAAA,CAAC,SAAS,CACR,SAAS,CAAC,kDAAkD,CAC5D,OAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,OAAO,CAAC,SAAS,CAAC,CAAA;gBAClB,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;gBACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;gBACnE,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;oBACpD,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC,CAAC,EAEN;UAAA,EAAE,GAAG,CAAC,CACP,CACH;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CAAA;AAcD,MAAM,WAAW,GAAG,UAAU,CAC5B,CACE,EACE,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,GAUR,EACD,GAAmC,EACnC,EAAE;IACF,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACvC;QAAA,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,CAAC,CACX,IAAI,CAAC,EAAE,CACP,YAAY,CAAC,KAAK,CAClB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,cAAc,CAAC,uCAAuC,CACtD,QAAQ,CAAC,CAAC,KAAK,CAAC,CAChB,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,IAAI,CAAC,CACf,GAAG,CAAC,CAAC,GAAG,CAAC,EAEb;MAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,MAAM,oBAAoB,GAAG,CAAC,EAC5B,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,OAAO,EACP,OAAO,GACmB,EAAE,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CACH,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAChF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAChC,EACH,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,CAAiC,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnC,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,CAAiC,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,WAAW,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAC5B;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAmC,CAChD;QAAA,CAAC,SAAS,CAAC,MAAM,CACf,OAAO,CAAC,MAAM,CACd,SAAS,CAAC,iBAAiB,CAC3B,IAAI,CAAC,CAAC,0BAA0B,CAAC,CACjC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAEpC;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,kCAAkC,CAC/C;UAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CACtG;YAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC7B;gBAAA,CAAC,IAAI,CACP;cAAA,EAAE,MAAM,CAAC,CACV,CAAC,CACJ;UAAA,EAAE,MAAM,CACR;UAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAClG;YAAA,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACvC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACjE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACtB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAC/B;gBAAA,CAAC,KAAK,CACR;cAAA,EAAE,MAAM,CAAC,CACV,CAAC,CACJ;UAAA,EAAE,MAAM,CACV;QAAA,EAAE,GAAG,CACL;QAAA,CAAC,SAAS,CAAC,MAAM,CACf,OAAO,CAAC,MAAM,CACd,SAAS,CAAC,iBAAiB,CAC3B,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAC/B,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAEtC;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/datePicker/index.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { useState } from 'react';
3
+ import { useMounted } from '../../../../hooks/mounted';
3
4
  import { DatePicker } from '../datePicker';
4
5
  import { TimePicker } from '../timePicker';
5
6
  // TimePicker consumes a fixed 24h `HH:MM` string (it parses via split(':').map(Number) and builds its
@@ -7,6 +8,7 @@ import { TimePicker } from '../timePicker';
7
8
  // so format the picker's time from the fixed 24h getHours()/getMinutes(), independent of locale.
8
9
  const toTimeValue = (date) => `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;
9
10
  export const DateTimePicker = ({ name, defaultValue, value, min, max, onChange, disabled, required, error, stepMinutes, timeSelectRef, }) => {
11
+ const mounted = useMounted();
10
12
  const [dateTime, setDateTime] = useState(() => {
11
13
  const dateToUse = value ?? defaultValue;
12
14
  if (dateToUse === undefined) {
@@ -24,7 +26,11 @@ export const DateTimePicker = ({ name, defaultValue, value, min, max, onChange,
24
26
  return ret;
25
27
  });
26
28
  return (<>
27
- <input className='absolute size-0 opacity-0' name={name} value={dateTime?.toISOString() ?? ''} onChange={() => { }} required={required}/>
29
+ <input className='absolute size-0 opacity-0' name={name}
30
+ // `dateTime` is step-rounded via local getMinutes/setMinutes, so for a fractional-hour browser
31
+ // offset (e.g. +5:30 / +5:45) its instant can differ from the server's — gate the emitted value on
32
+ // mount so the first client render matches the server (empty) rather than a diverging ISO string.
33
+ value={mounted && dateTime ? dateTime.toISOString() : ''} onChange={() => { }} required={required}/>
28
34
  <div className='flex w-full items-center gap-control-padding-base'>
29
35
  <div className='flex-3'>
30
36
  <DatePicker name='' key={`date-${dateTime?.toISOString()}`} value={dateTime} min={min} max={max} onChange={(e) => {
@@ -47,7 +53,11 @@ export const DateTimePicker = ({ name, defaultValue, value, min, max, onChange,
47
53
  }} disabled={disabled} required={required} error={error}/>
48
54
  </div>
49
55
  <div className='flex-2'>
50
- <TimePicker name='' key={`time-${dateTime?.toISOString()}`} value={dateTime ? toTimeValue(dateTime) : undefined} min={min && dateTime && min.toDateString() === dateTime.toDateString() ? toTimeValue(min) : undefined} max={max && dateTime && max.toDateString() === dateTime.toDateString() ? toTimeValue(max) : undefined} onChange={(e) => {
56
+ <TimePicker name='' key={`time-${mounted}-${dateTime?.toISOString()}`} value={mounted && dateTime ? toTimeValue(dateTime) : undefined} min={mounted && min && dateTime && min.toDateString() === dateTime.toDateString()
57
+ ? toTimeValue(min)
58
+ : undefined} max={mounted && max && dateTime && max.toDateString() === dateTime.toDateString()
59
+ ? toTimeValue(max)
60
+ : undefined} onChange={(e) => {
51
61
  if (!e) {
52
62
  setDateTime(undefined);
53
63
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/dateTimePicker/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/dateTimePicker/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Rounded } from '../../../theme';
2
+ type FileUpload = {
3
+ key: string;
4
+ name: string;
5
+ mimeType: string;
6
+ size: number;
7
+ };
8
+ export declare const File: ({ name, accept, multiple, rounded, disabled, required, onChange, upload, className, }: {
9
+ name: string;
10
+ accept?: string;
11
+ multiple?: boolean;
12
+ rounded?: Rounded;
13
+ disabled?: boolean;
14
+ required?: boolean;
15
+ onChange?: (value?: FileUpload | FileUpload[]) => void;
16
+ upload?: () => Promise<{
17
+ token: string;
18
+ url: string;
19
+ }>;
20
+ className?: string;
21
+ }) => import("react").JSX.Element;
22
+ export {};
@@ -0,0 +1,225 @@
1
+ 'use client';
2
+ import CheckCircleIcon from '@mui/icons-material/CheckCircle';
3
+ import ClearIcon from '@mui/icons-material/Clear';
4
+ import CloudUploadOutlinedIcon from '@mui/icons-material/CloudUploadOutlined';
5
+ import ErrorOutlinedIcon from '@mui/icons-material/ErrorOutlined';
6
+ import classNames from 'classnames';
7
+ import { useEffect, useRef, useState } from 'react';
8
+ import { logger } from '../../../../logger';
9
+ import { Component } from '../../../component';
10
+ import { BackgroundColorTypes, BorderColorTypes, BorderWidth, ColorTypes, getBackgroundColorTypeClassName, getBorderColorTypeClassName, getColorTypeClassName, getRoundedClassName, getTextColorTypeClassName, Rounded, TextColorTypes, } from '../../../theme';
11
+ export const File = ({ name, accept, multiple = false, rounded = Rounded.m, disabled, required, onChange, upload, className, }) => {
12
+ const pickerRef = useRef(null);
13
+ const [committed, setCommitted] = useState([]);
14
+ const [batch, setBatch] = useState([]);
15
+ const [open, setOpen] = useState(false);
16
+ const [dragging, setDragging] = useState(false);
17
+ const xhrsRef = useRef(new Map());
18
+ const removedRef = useRef(new Set());
19
+ const committedRef = useRef([]);
20
+ const idSeq = useRef(0);
21
+ const uploading = batch.some((it) => it.status === 'uploading');
22
+ useEffect(() => () => {
23
+ xhrsRef.current.forEach((x) => x.abort());
24
+ xhrsRef.current.clear();
25
+ }, []);
26
+ // onChange fires here, not inside a setCommitted updater — React Strict Mode runs updaters twice and
27
+ // would double-fire it. committedRef mirrors the state so handlers append to / filter the latest list
28
+ // instead of a stale closure `prev`.
29
+ const commit = (next) => {
30
+ committedRef.current = next;
31
+ setCommitted(next);
32
+ onChange?.(next.length === 0 ? undefined : multiple ? next : next[0]);
33
+ };
34
+ const patchBatch = (id, next) => setBatch((prev) => prev.map((it) => (it.id === id ? { ...it, ...next } : it)));
35
+ const addFiles = (selected) => {
36
+ if (!selected || selected.length === 0) {
37
+ return;
38
+ }
39
+ setOpen(true);
40
+ const picked = multiple ? Array.from(selected) : Array.from(selected).slice(0, 1);
41
+ const created = picked.map((f) => ({
42
+ id: `u${idSeq.current++}`,
43
+ name: f.name,
44
+ size: f.size,
45
+ progress: 0,
46
+ status: 'uploading',
47
+ }));
48
+ if (multiple) {
49
+ setBatch((prev) => [...prev, ...created]);
50
+ }
51
+ else {
52
+ // single-file: a new selection replaces the previous one. Abort any prior XHR that exists (its onload
53
+ // won't fire); an item still awaiting `upload()` (no XHR yet) is marked removed so its pre-send bail
54
+ // drops it before POSTing the superseded file. Only pre-XHR items need the marker, keeping removedRef
55
+ // bounded.
56
+ batch.forEach((it) => {
57
+ const xhr = xhrsRef.current.get(it.id);
58
+ if (xhr) {
59
+ xhr.abort();
60
+ }
61
+ else if (it.status === 'uploading') {
62
+ removedRef.current.add(it.id);
63
+ }
64
+ });
65
+ xhrsRef.current.clear();
66
+ setBatch(created);
67
+ }
68
+ picked.forEach(async (f, i) => {
69
+ const id = created[i].id;
70
+ const fail = (error) => {
71
+ xhrsRef.current.delete(id);
72
+ logger.error('upload', { name, error });
73
+ patchBatch(id, { status: 'error' });
74
+ };
75
+ if (!upload) {
76
+ fail(new Error('upload action not configured'));
77
+ return;
78
+ }
79
+ try {
80
+ const { token, url } = await upload();
81
+ // The item may have been removed (single-file re-select / removeItem) while `upload()` was in flight,
82
+ // before any XHR existed to abort. Bail before sending so its bytes are never POSTed (no wasted
83
+ // quota, no orphan object); the onload guard below only stops the stale ref from committing.
84
+ if (removedRef.current.has(id)) {
85
+ removedRef.current.delete(id);
86
+ return;
87
+ }
88
+ const xhr = new XMLHttpRequest();
89
+ xhrsRef.current.set(id, xhr);
90
+ // Send the one-time token and the original filename as request headers, not query params: a URL's
91
+ // query string is captured verbatim by proxy / CDN / access logs, leaking the replayable token and a
92
+ // filename that can be a direct identifier; header values are not written to those request-line logs.
93
+ xhr.open('POST', url);
94
+ xhr.setRequestHeader('authorization', `Bearer ${token}`);
95
+ xhr.setRequestHeader('x-upload-filename', encodeURIComponent(f.name));
96
+ xhr.setRequestHeader('content-type', f.type || 'application/octet-stream');
97
+ xhr.upload.onprogress = (e) => {
98
+ if (e.lengthComputable) {
99
+ patchBatch(id, { progress: e.total > 0 ? Math.round((e.loaded / e.total) * 100) : 100 });
100
+ }
101
+ };
102
+ xhr.onload = () => {
103
+ xhrsRef.current.delete(id);
104
+ if (removedRef.current.has(id)) {
105
+ return;
106
+ }
107
+ if (xhr.status < 200 || xhr.status >= 300) {
108
+ fail(new Error(`upload failed (${xhr.status})`));
109
+ return;
110
+ }
111
+ let ref;
112
+ try {
113
+ ref = JSON.parse(xhr.responseText);
114
+ }
115
+ catch (err) {
116
+ fail(err);
117
+ return;
118
+ }
119
+ patchBatch(id, { progress: 100, status: 'done', ref });
120
+ commit(multiple ? [...committedRef.current, ref] : [ref]);
121
+ };
122
+ xhr.onerror = () => fail(new Error('upload failed'));
123
+ xhr.send(f);
124
+ }
125
+ catch (e) {
126
+ fail(e);
127
+ }
128
+ });
129
+ if (pickerRef.current) {
130
+ pickerRef.current.value = '';
131
+ }
132
+ };
133
+ const removeItem = (item) => {
134
+ const xhr = xhrsRef.current.get(item.id);
135
+ if (xhr) {
136
+ xhr.abort();
137
+ xhrsRef.current.delete(item.id);
138
+ }
139
+ else if (item.status === 'uploading') {
140
+ removedRef.current.add(item.id);
141
+ }
142
+ setBatch((prev) => prev.filter((it) => it.id !== item.id));
143
+ if (item.ref) {
144
+ commit(committedRef.current.filter((c) => c.key !== item.ref?.key));
145
+ }
146
+ };
147
+ const removeCommitted = (key) => {
148
+ setBatch((prev) => prev.filter((it) => it.ref?.key !== key));
149
+ commit(committedRef.current.filter((c) => c.key !== key));
150
+ };
151
+ return (<div className={classNames('flex w-full flex-col gap-control-padding-md', className)}>
152
+ <input className='absolute size-0 opacity-0' name={name} value={committed.length === 0 ? '' : JSON.stringify(multiple ? committed : committed[0])} onChange={() => { }} required={required}/>
153
+ <input ref={pickerRef} type='file' accept={accept} multiple={multiple} disabled={disabled} className='hidden' onChange={(e) => addFiles(e.target.files)}/>
154
+ <div onClick={() => {
155
+ if (!disabled) {
156
+ pickerRef.current?.click();
157
+ }
158
+ }} onDragOver={(e) => {
159
+ if (disabled) {
160
+ return;
161
+ }
162
+ e.preventDefault();
163
+ setDragging(true);
164
+ }} onDragLeave={() => setDragging(false)} onDrop={(e) => {
165
+ if (disabled) {
166
+ return;
167
+ }
168
+ e.preventDefault();
169
+ setDragging(false);
170
+ addFiles(e.dataTransfer.files);
171
+ }} className={classNames('flex w-full flex-col items-center justify-center gap-control-padding-sm px-2xl py-3xl text-center outline-dashed', disabled ? 'clickable-disabled' : 'clickable-enabled', getRoundedClassName(rounded), getBackgroundColorTypeClassName(dragging ? BackgroundColorTypes.container : BackgroundColorTypes.default), getBorderColorTypeClassName({
172
+ color: dragging ? BorderColorTypes.primary : BorderColorTypes.default,
173
+ container: true,
174
+ width: BorderWidth.lg,
175
+ type: 'outline',
176
+ }))}>
177
+ <CloudUploadOutlinedIcon className='size-control-3xl! opacity-60'/>
178
+ <Component.Typography.P color={TextColorTypes.sub}>Drag & drop to upload</Component.Typography.P>
179
+ <Component.Typography.P color={TextColorTypes.primary}>or browse</Component.Typography.P>
180
+ </div>
181
+ {committed.length > 0 && (<div className='flex w-full flex-wrap items-center gap-control-padding-base'>
182
+ {committed.map((c) => (<div key={c.key} className={classNames('flex items-center gap-control-padding-sm px-control-padding-base py-control-padding-md', getBackgroundColorTypeClassName(BackgroundColorTypes.default), getRoundedClassName(rounded), getBorderColorTypeClassName({
183
+ color: BorderColorTypes.default,
184
+ container: true,
185
+ width: BorderWidth.base,
186
+ type: 'outline',
187
+ }))}>
188
+ <span className='truncate text-sm'>{c.name}</span>
189
+ {!disabled && (<ClearIcon className='size-control-sm! shrink-0 cursor-pointer! bg-transparent!' onClick={() => removeCommitted(c.key)}/>)}
190
+ </div>))}
191
+ </div>)}
192
+ {open && (<div className={classNames('fixed inset-0 z-popup flex items-center justify-center', getBackgroundColorTypeClassName(BackgroundColorTypes.overlay))} onClick={(e) => {
193
+ if (e.target === e.currentTarget && !uploading) {
194
+ setOpen(false);
195
+ }
196
+ }}>
197
+ <Component.ModalCard showCloseButton={false}>
198
+ <Component.Typography.H4 className='font-bold' container>
199
+ Upload
200
+ </Component.Typography.H4>
201
+ {batch.length > 0 && (<div className='flex flex-col gap-control-padding-md'>
202
+ {batch.map((it) => (<div key={it.id} className='flex items-center gap-base'>
203
+ <div className='flex min-w-0 flex-1 flex-col gap-control-padding-sm'>
204
+ <div className='flex items-center justify-between gap-base'>
205
+ <span className='truncate text-sm'>{it.name}</span>
206
+ <Component.Typography.Label color={TextColorTypes.sub} className='text-xs' container>
207
+ {`${Math.ceil(it.size / 1024)} KB`}
208
+ </Component.Typography.Label>
209
+ </div>
210
+ {it.status === 'uploading' && (<div className={classNames('h-control-xs w-full overflow-hidden', getRoundedClassName(Rounded.s), getBackgroundColorTypeClassName(BackgroundColorTypes.container))}>
211
+ <div className={classNames('h-full transition-all duration-300 ease-out', getColorTypeClassName(ColorTypes.primary, false))} style={{ width: `${it.progress}%` }}/>
212
+ </div>)}
213
+ </div>
214
+ {it.status === 'uploading' ? (<Component.Typography.Label color={TextColorTypes.sub} className='w-control-2xl shrink-0 text-right text-xs' container>
215
+ {it.progress}%
216
+ </Component.Typography.Label>) : it.status === 'done' ? (<CheckCircleIcon className={classNames('size-control-base! shrink-0', getTextColorTypeClassName(TextColorTypes.success, true))}/>) : (<ErrorOutlinedIcon className={classNames('size-control-base! shrink-0', getTextColorTypeClassName(TextColorTypes.error, true))}/>)}
217
+ <ClearIcon className='size-control-sm! shrink-0 cursor-pointer! bg-transparent!' onClick={() => removeItem(it)}/>
218
+ </div>))}
219
+ </div>)}
220
+ <Component.Button type='button' variant='colored' color={ColorTypes.primary} rounded={rounded} className='w-full' label='Done' disabled={uploading} onClick={() => setOpen(false)}/>
221
+ </Component.ModalCard>
222
+ </div>)}
223
+ </div>);
224
+ };
225
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/file/index.tsx"],"names":[],"mappings":"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"}