@dinhn1202/ui-kit 0.1.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.
Files changed (76) hide show
  1. package/README.md +129 -0
  2. package/dist/components/Button/Button.d.ts +6 -0
  3. package/dist/components/Button/Button.d.ts.map +1 -0
  4. package/dist/components/Button/index.d.ts +3 -0
  5. package/dist/components/Button/index.d.ts.map +1 -0
  6. package/dist/components/DatePicker/DatePicker.d.ts +6 -0
  7. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
  8. package/dist/components/DatePicker/index.d.ts +2 -0
  9. package/dist/components/DatePicker/index.d.ts.map +1 -0
  10. package/dist/components/Input/Input.d.ts +4 -0
  11. package/dist/components/Input/Input.d.ts.map +1 -0
  12. package/dist/components/Input/index.d.ts +3 -0
  13. package/dist/components/Input/index.d.ts.map +1 -0
  14. package/dist/components/InputNumber/InputNumber.d.ts +6 -0
  15. package/dist/components/InputNumber/InputNumber.d.ts.map +1 -0
  16. package/dist/components/InputNumber/index.d.ts +3 -0
  17. package/dist/components/InputNumber/index.d.ts.map +1 -0
  18. package/dist/components/Loading/Loading.d.ts +18 -0
  19. package/dist/components/Loading/Loading.d.ts.map +1 -0
  20. package/dist/components/Loading/index.d.ts +3 -0
  21. package/dist/components/Loading/index.d.ts.map +1 -0
  22. package/dist/components/Modal/Modal.d.ts +4 -0
  23. package/dist/components/Modal/Modal.d.ts.map +1 -0
  24. package/dist/components/Modal/index.d.ts +3 -0
  25. package/dist/components/Modal/index.d.ts.map +1 -0
  26. package/dist/components/Radio/Radio.d.ts +9 -0
  27. package/dist/components/Radio/Radio.d.ts.map +1 -0
  28. package/dist/components/Radio/index.d.ts +3 -0
  29. package/dist/components/Radio/index.d.ts.map +1 -0
  30. package/dist/components/Select/Select.d.ts +9 -0
  31. package/dist/components/Select/Select.d.ts.map +1 -0
  32. package/dist/components/Select/index.d.ts +3 -0
  33. package/dist/components/Select/index.d.ts.map +1 -0
  34. package/dist/components/Table/Table.d.ts +12 -0
  35. package/dist/components/Table/Table.d.ts.map +1 -0
  36. package/dist/components/Table/index.d.ts +3 -0
  37. package/dist/components/Table/index.d.ts.map +1 -0
  38. package/dist/components/TimePicker/TimePicker.d.ts +6 -0
  39. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -0
  40. package/dist/components/TimePicker/index.d.ts +2 -0
  41. package/dist/components/TimePicker/index.d.ts.map +1 -0
  42. package/dist/components/TreeSelect/TreeSelect.d.ts +6 -0
  43. package/dist/components/TreeSelect/TreeSelect.d.ts.map +1 -0
  44. package/dist/components/TreeSelect/index.d.ts +3 -0
  45. package/dist/components/TreeSelect/index.d.ts.map +1 -0
  46. package/dist/components/Upload/Upload.d.ts +6 -0
  47. package/dist/components/Upload/Upload.d.ts.map +1 -0
  48. package/dist/components/Upload/index.d.ts +3 -0
  49. package/dist/components/Upload/index.d.ts.map +1 -0
  50. package/dist/components/UserSelect/UserSelect.d.ts +30 -0
  51. package/dist/components/UserSelect/UserSelect.d.ts.map +1 -0
  52. package/dist/components/UserSelect/index.d.ts +2 -0
  53. package/dist/components/UserSelect/index.d.ts.map +1 -0
  54. package/dist/components/index.d.ts +14 -0
  55. package/dist/components/index.d.ts.map +1 -0
  56. package/dist/dto-ui-kit.cjs +22 -0
  57. package/dist/dto-ui-kit.css +1 -0
  58. package/dist/dto-ui-kit.js +919 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/theme/ThemeProvider.d.ts +8 -0
  62. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  63. package/dist/theme/components.d.ts +3 -0
  64. package/dist/theme/components.d.ts.map +1 -0
  65. package/dist/theme/index.d.ts +5 -0
  66. package/dist/theme/index.d.ts.map +1 -0
  67. package/dist/theme/theme.d.ts +3 -0
  68. package/dist/theme/theme.d.ts.map +1 -0
  69. package/dist/theme/tokens.d.ts +3 -0
  70. package/dist/theme/tokens.d.ts.map +1 -0
  71. package/dist/types/index.d.ts +2 -0
  72. package/dist/types/index.d.ts.map +1 -0
  73. package/dist/utils/index.d.ts +2 -0
  74. package/dist/utils/index.d.ts.map +1 -0
  75. package/dist/vite.svg +1 -0
  76. package/package.json +58 -0
package/README.md ADDED
@@ -0,0 +1,129 @@
1
+ # @dto/ui-kit
2
+
3
+ DTO shared React TypeScript UI kit based on Ant Design v6.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @dto/ui-kit
9
+ ```
10
+
11
+ Peer dependencies:
12
+
13
+ ```bash
14
+ npm install react react-dom antd@^6.5.0
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```tsx
20
+ import { CustomButton, CustomThemeProvider } from "@dto/ui-kit";
21
+
22
+ function App() {
23
+ return (
24
+ <CustomThemeProvider>
25
+ <CustomButton type="primary">Save</CustomButton>
26
+ </CustomThemeProvider>
27
+ );
28
+ }
29
+
30
+ export default App;
31
+ ```
32
+
33
+ ## Override theme
34
+
35
+ ```tsx
36
+ import { CustomThemeProvider } from "@dto/ui-kit";
37
+
38
+ const customTheme = {
39
+ token: {
40
+ colorPrimary: "#722ed1",
41
+ borderRadius: 12,
42
+ },
43
+ };
44
+
45
+ function App() {
46
+ return (
47
+ <CustomThemeProvider theme={customTheme}>
48
+ <YourApp />
49
+ </CustomThemeProvider>
50
+ );
51
+ }
52
+ ```
53
+
54
+ ## Available components
55
+
56
+ ```tsx
57
+ import {
58
+ CustomButton,
59
+ CustomDatePicker,
60
+ CustomInput,
61
+ CustomInputNumber,
62
+ CustomLoading,
63
+ CustomModal,
64
+ CustomRadio,
65
+ CustomRadioGroup,
66
+ CustomSelect,
67
+ CustomTable,
68
+ CustomThemeProvider,
69
+ CustomTimePicker,
70
+ CustomTreeSelect,
71
+ CustomUpload,
72
+ CustomUploadDragger,
73
+ CustomUserSelect,
74
+ type UserSearchService,
75
+ } from "@dto/ui-kit";
76
+ ```
77
+
78
+ `CustomButton` provides an optional `customVariant` (`primary`, `secondary`, or
79
+ `danger`). `CustomSelect`, `CustomInputNumber`, `CustomDatePicker`, `CustomTimePicker`, `CustomTreeSelect`, and `CustomTable` provide an optional `fullWidth` prop. By
80
+ default, `CustomTable` adds client-side sorting, value filters, global search, and
81
+ multi-column text filtering to flat, simple `dataIndex` columns. Its toolbar
82
+ also provides a searchable column chooser with drag-and-drop reordering. Set
83
+ `enableColumnFeatures={false}` to render the unenhanced Ant Design table;
84
+ `enableGlobalSearch` and `enableMultiColumnFiltering` can be disabled
85
+ independently. Pagination is shown by default with a page size selector and
86
+ quick jumper; pass `pagination={false}` to disable it.
87
+ All other Ant Design props remain available on their DTO wrappers.
88
+
89
+ `CustomLoading` renders the four-color animated dot treatment from the Framas splash reference. Pass `fullScreen` for a fixed viewport overlay, or wrap content with `overlay` to cover only that content area. Use `logoSrc` to render a brand image above the dots.
90
+
91
+ ## User Select service
92
+
93
+ `CustomUserSelect` does not include the Microsoft Graph SDK or own authentication. Pass a service that searches your directory and, optionally, resolves each photo URL. The component debounces queries, cancels stale requests, and fetches missing avatars in parallel.
94
+
95
+ ```tsx
96
+ import { CustomUserSelect, type UserSearchService } from "@dto/ui-kit";
97
+
98
+ const graphUserService: UserSearchService = {
99
+ searchUsers: (query, signal) => graphDirectory.searchUsers(query, signal),
100
+ getUserAvatar: (user, signal) => graphDirectory.getAvatarUrl(user.id, signal),
101
+ };
102
+
103
+ <CustomUserSelect
104
+ fullWidth
105
+ placeholder="Search by name or email"
106
+ service={graphUserService}
107
+ onChange={(userId, user) => console.log(userId, user)}
108
+ />
109
+ ```
110
+
111
+ `searchUsers` must return `{ id, displayName, email?, avatarUrl? }`. If `avatarUrl` is not included, implement `getUserAvatar` to fetch the Graph profile photo; initials are shown while no photo is available.
112
+
113
+ ## Node.js compatibility
114
+
115
+ This package is configured for:
116
+
117
+ ```txt
118
+ Node.js v18.20.8
119
+ Vite 6.4.3
120
+ @vitejs/plugin-react 4.7.0
121
+ vite-plugin-dts 4.5.4
122
+ ```
123
+
124
+ Do not upgrade Vite to v7+ unless Node.js is upgraded to a compatible version.
125
+
126
+ ## Notes
127
+
128
+ This package wraps Ant Design components while preserving their original props.
129
+ Each DTO component extends the corresponding Ant Design component props.
@@ -0,0 +1,6 @@
1
+ import { ButtonProps as AntButtonProps } from 'antd';
2
+ export interface ButtonProps extends AntButtonProps {
3
+ customVariant?: "primary" | "secondary" | "danger";
4
+ }
5
+ export declare const CustomButton: ({ customVariant, className, children, ...props }: ButtonProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAI1D,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,aAAa,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CACpD;AAED,eAAO,MAAM,YAAY,GAAI,kDAK1B,WAAW,gCAOb,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomButton } from './Button';
2
+ export type { ButtonProps } from './Button';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DatePickerProps as AntDatePickerProps } from 'antd';
2
+ export interface DatePickerProps extends AntDatePickerProps {
3
+ fullWidth?: boolean;
4
+ }
5
+ export declare const CustomDatePicker: ({ fullWidth, className, style, ...props }: DatePickerProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAIlE,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,GAAI,2CAK9B,eAAe,gCAMjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './DatePicker';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { InputProps as AntInputProps } from 'antd';
2
+ export type InputProps = AntInputProps;
3
+ export declare const CustomInput: ({ className, ...props }: InputProps) => import("react").JSX.Element;
4
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAIxD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,eAAO,MAAM,WAAW,GAAI,yBAAyB,UAAU,gCAE9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomInput } from './Input';
2
+ export type { InputProps } from './Input';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { InputNumberProps as AntInputNumberProps } from 'antd';
2
+ export interface InputNumberProps extends AntInputNumberProps {
3
+ fullWidth?: boolean;
4
+ }
5
+ export declare const CustomInputNumber: ({ fullWidth, className, style, ...props }: InputNumberProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=InputNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputNumber.d.ts","sourceRoot":"","sources":["../../../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAIpE,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,GAAI,2CAK/B,gBAAgB,gCAMlB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomInputNumber } from './InputNumber';
2
+ export type { InputNumberProps } from './InputNumber';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InputNumber/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ export interface LoadingProps {
3
+ /** Renders the loader as a fixed viewport overlay. */
4
+ fullScreen?: boolean;
5
+ /** Covers only the wrapped children instead of taking up its own layout space. */
6
+ overlay?: boolean;
7
+ children?: ReactNode;
8
+ /** Optional brand image displayed above the animated dots. */
9
+ logoSrc?: string;
10
+ logoAlt?: string;
11
+ /** Width of the logo and the dot track in pixels. */
12
+ logoWidth?: number;
13
+ /** Accessible text announced while the loader is visible. */
14
+ label?: string;
15
+ className?: string;
16
+ }
17
+ export declare const CustomLoading: ({ fullScreen, overlay, children, logoSrc, logoAlt, logoWidth, label, className, }: LoadingProps) => import("react").JSX.Element;
18
+ //# sourceMappingURL=Loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/components/Loading/Loading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,mFAS3B,YAAY,gCAgCd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomLoading } from './Loading';
2
+ export type { LoadingProps } from './Loading';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Loading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ModalProps as AntModalProps } from 'antd';
2
+ export type ModalProps = AntModalProps;
3
+ export declare const CustomModal: ({ className, children, ...props }: ModalProps) => import("react").JSX.Element;
4
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAIxD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,eAAO,MAAM,WAAW,GAAI,mCAAmC,UAAU,gCAIxE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomModal } from './Modal';
2
+ export type { ModalProps } from './Modal';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { RadioGroupProps as AntRadioGroupProps, RadioProps as AntRadioProps } from 'antd';
2
+ export type RadioProps = AntRadioProps;
3
+ export interface RadioGroupProps extends AntRadioGroupProps {
4
+ fullWidth?: boolean;
5
+ }
6
+ export declare const CustomRadio: ({ className, ...props }: RadioProps) => import("react").JSX.Element;
7
+ export declare const CustomRadioButton: ({ className, ...props }: RadioProps) => import("react").JSX.Element;
8
+ export declare const CustomRadioGroup: ({ fullWidth, className, style, ...props }: RadioGroupProps) => import("react").JSX.Element;
9
+ //# sourceMappingURL=Radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../src/components/Radio/Radio.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,IAAI,kBAAkB,EACrC,UAAU,IAAI,aAAa,EAC5B,MAAM,MAAM,CAAC;AAId,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GAAI,yBAAyB,UAAU,gCAE9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,yBAAyB,UAAU,gCAEpE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,2CAK9B,eAAe,gCAMjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomRadio, CustomRadioButton, CustomRadioGroup } from './Radio';
2
+ export type { RadioGroupProps, RadioProps } from './Radio';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Radio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SelectProps as AntSelectProps } from 'antd';
2
+ import { BaseOptionType, DefaultOptionType } from 'antd/es/select';
3
+ type DefaultSelectValueType = AntSelectProps["value"];
4
+ export interface SelectProps<ValueType = DefaultSelectValueType, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends AntSelectProps<ValueType, OptionType> {
5
+ fullWidth?: boolean;
6
+ }
7
+ export declare const CustomSelect: <ValueType = DefaultSelectValueType, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>({ fullWidth, className, popupClassName, style, ...props }: SelectProps<ValueType, OptionType>) => import("react").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxE,KAAK,sBAAsB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AAEtD,MAAM,WAAW,WAAW,CAC1B,SAAS,GAAG,sBAAsB,EAClC,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CACzE,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,GAAG,sBAAsB,EAClC,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,EACzE,2DAMC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,gCAOpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomSelect } from './Select';
2
+ export type { SelectProps } from './Select';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TableProps as AntTableProps } from 'antd';
2
+ export interface TableProps<RecordType extends object = object> extends AntTableProps<RecordType> {
3
+ fullWidth?: boolean;
4
+ /** Enables automatic sort/filter controls and the table toolbar. */
5
+ enableColumnFeatures?: boolean;
6
+ /** Enables client-side search across simple dataIndex columns. */
7
+ enableGlobalSearch?: boolean;
8
+ /** Enables client-side text filters that are combined across columns. */
9
+ enableMultiColumnFiltering?: boolean;
10
+ }
11
+ export declare const CustomTable: <RecordType extends object = object>({ fullWidth, enableColumnFeatures, enableGlobalSearch, enableMultiColumnFiltering, className, columns, dataSource, pagination, style, ...props }: TableProps<RecordType>) => import("react").JSX.Element;
12
+ //# sourceMappingURL=Table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAIV,UAAU,IAAI,aAAa,EAC5B,MAAM,MAAM,CAAC;AAkHd,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,CAC5D,SAAQ,aAAa,CAAC,UAAU,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,WAAW,GAAI,UAAU,SAAS,MAAM,GAAG,MAAM,EAAE,kJAW7D,UAAU,CAAC,UAAU,CAAC,gCAgbxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomTable } from './Table';
2
+ export type { TableProps } from './Table';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TimePickerProps as AntTimePickerProps } from 'antd';
2
+ export interface TimePickerProps extends AntTimePickerProps {
3
+ fullWidth?: boolean;
4
+ }
5
+ export declare const CustomTimePicker: ({ fullWidth, className, style, ...props }: TimePickerProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=TimePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAIlE,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,GAAI,2CAK9B,eAAe,gCAMjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './TimePicker';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TreeSelectProps as AntTreeSelectProps } from 'antd';
2
+ export interface TreeSelectProps extends AntTreeSelectProps {
3
+ fullWidth?: boolean;
4
+ }
5
+ export declare const CustomTreeSelect: ({ fullWidth, className, popupClassName, style, ...props }: TreeSelectProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=TreeSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeSelect.d.ts","sourceRoot":"","sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAIlE,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,GAAI,2DAM9B,eAAe,gCAOjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomTreeSelect } from './TreeSelect';
2
+ export type { TreeSelectProps } from './TreeSelect';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TreeSelect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DraggerProps as AntUploadDraggerProps, UploadProps as AntUploadProps } from 'antd';
2
+ export type UploadProps = AntUploadProps;
3
+ export type UploadDraggerProps = AntUploadDraggerProps;
4
+ export declare const CustomUpload: ({ className, ...props }: UploadProps) => import("react").JSX.Element;
5
+ export declare const CustomUploadDragger: ({ className, ...props }: UploadDraggerProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=Upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Upload.d.ts","sourceRoot":"","sources":["../../../src/components/Upload/Upload.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,WAAW,IAAI,cAAc,EAC9B,MAAM,MAAM,CAAC;AAId,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC;AACzC,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEvD,eAAO,MAAM,YAAY,GAAI,yBAAyB,WAAW,gCAEhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,yBAAyB,kBAAkB,gCAE9E,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CustomUpload, CustomUploadDragger } from './Upload';
2
+ export type { UploadDraggerProps, UploadProps } from './Upload';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Upload/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { SelectProps as AntSelectProps } from 'antd';
2
+ import { DefaultOptionType } from 'antd/es/select';
3
+ export interface UserSelectUser {
4
+ id: string;
5
+ displayName: string;
6
+ email?: string;
7
+ avatarUrl?: string;
8
+ }
9
+ export interface UserSearchService {
10
+ searchUsers: (query: string, signal?: AbortSignal) => Promise<UserSelectUser[]>;
11
+ getUserAvatar?: (user: UserSelectUser, signal?: AbortSignal) => Promise<string | undefined>;
12
+ }
13
+ interface UserSelectOption extends DefaultOptionType {
14
+ value: string;
15
+ label: string;
16
+ user: UserSelectUser;
17
+ }
18
+ export interface UserSelectProps extends Omit<AntSelectProps<string, UserSelectOption>, "filterOption" | "labelRender" | "loading" | "mode" | "notFoundContent" | "onChange" | "onSearch" | "options" | "optionRender" | "searchValue" | "showSearch"> {
19
+ /** Service that searches Microsoft Graph (or another user directory). */
20
+ service: UserSearchService;
21
+ /** Minimum number of characters required before searching. */
22
+ minSearchLength?: number;
23
+ /** Delay before submitting a search request. */
24
+ debounceMs?: number;
25
+ fullWidth?: boolean;
26
+ onChange?: (userId: string | undefined, user?: UserSelectUser) => void;
27
+ }
28
+ export declare const CustomUserSelect: ({ className, debounceMs, fullWidth, minSearchLength, onChange, popupClassName, service, ...props }: UserSelectProps) => import("react").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=UserSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSelect.d.ts","sourceRoot":"","sources":["../../../src/components/UserSelect/UserSelect.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAChF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7F;AAED,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,cAAc,GACd,aAAa,GACb,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,SAAS,GACT,cAAc,GACd,aAAa,GACb,YAAY,CACf;IACC,yEAAyE;IACzE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACxE;AAuBD,eAAO,MAAM,gBAAgB,GAAI,oGAS9B,eAAe,gCAyHjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './UserSelect';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UserSelect/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ export * from './Button';
2
+ export * from './Input';
3
+ export * from './Select';
4
+ export * from './UserSelect';
5
+ export * from './Modal';
6
+ export * from './Table';
7
+ export * from './Loading';
8
+ export * from './InputNumber';
9
+ export * from './DatePicker';
10
+ export * from './TimePicker';
11
+ export * from './Radio';
12
+ export * from './TreeSelect';
13
+ export * from './Upload';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),b=require("antd"),K=require("@ant-design/icons");var le={exports:{}},ee={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var me;function Ne(){if(me)return ee;me=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function i(a,u,m){var g=null;if(m!==void 0&&(g=""+m),u.key!==void 0&&(g=""+u.key),"key"in u){m={};for(var N in u)N!=="key"&&(m[N]=u[N])}else m=u;return u=m.ref,{$$typeof:t,type:a,key:g,ref:u!==void 0?u:null,props:m}}return ee.Fragment=r,ee.jsx=i,ee.jsxs=i,ee}var te={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var fe;function Te(){return fe||(fe=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===B?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case F:return"Profiler";case H:return"StrictMode";case x:return"Suspense";case j:return"SuspenseList";case D:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case z:return"Portal";case U:return e.displayName||"Context";case q:return(e._context.displayName||"Context")+".Consumer";case S:var c=e.render;return e=e.displayName,e||(e=c.displayName||c.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case X:return c=e.displayName||null,c!==null?c:t(e.type)||"Memo";case T:c=e._payload,e=e._init;try{return t(e(c))}catch{}}return null}function r(e){return""+e}function i(e){try{r(e);var c=!1}catch{c=!0}if(c){c=console;var f=c.error,h=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return f.call(c,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",h),r(e)}}function a(e){if(e===O)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===T)return"<...>";try{var c=t(e);return c?"<"+c+">":"<...>"}catch{return"<...>"}}function u(){var e=_.A;return e===null?null:e.getOwner()}function m(){return Error("react-stack-top-frame")}function g(e){if(y.call(e,"key")){var c=Object.getOwnPropertyDescriptor(e,"key").get;if(c&&c.isReactWarning)return!1}return e.key!==void 0}function N(e,c){function f(){Z||(Z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",c))}f.isReactWarning=!0,Object.defineProperty(e,"key",{get:f,configurable:!0})}function P(){var e=t(this.type);return oe[e]||(oe[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function J(e,c,f,h,s,l){var n=f.ref;return e={$$typeof:M,type:e,key:c,props:f,_owner:h},(n!==void 0?n:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:P}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:s}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:l}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function $(e,c,f,h,s,l){var n=c.children;if(n!==void 0)if(h)if(G(n)){for(h=0;h<n.length;h++)I(n[h]);Object.freeze&&Object.freeze(n)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else I(n);if(y.call(c,"key")){n=t(e);var p=Object.keys(c).filter(function(L){return L!=="key"});h=0<p.length?"{key: someKey, "+p.join(": ..., ")+": ...}":"{key: someKey}",ae[n+h]||(p=0<p.length?"{"+p.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,h,n,p,n),ae[n+h]=!0)}if(n=null,f!==void 0&&(i(f),n=""+f),g(c)&&(i(c.key),n=""+c.key),"key"in c){f={};for(var R in c)R!=="key"&&(f[R]=c[R])}else f=c;return n&&N(f,typeof e=="function"?e.displayName||e.name||"Unknown":e),J(e,n,f,u(),s,l)}function I(e){Y(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===T&&(e._payload.status==="fulfilled"?Y(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function Y(e){return typeof e=="object"&&e!==null&&e.$$typeof===M}var A=d,M=Symbol.for("react.transitional.element"),z=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),H=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),q=Symbol.for("react.consumer"),U=Symbol.for("react.context"),S=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),X=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),D=Symbol.for("react.activity"),B=Symbol.for("react.client.reference"),_=A.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,y=Object.prototype.hasOwnProperty,G=Array.isArray,Q=console.createTask?console.createTask:function(){return null};A={react_stack_bottom_frame:function(e){return e()}};var Z,oe={},se=A.react_stack_bottom_frame.bind(A,m)(),ne=Q(a(m)),ae={};te.Fragment=O,te.jsx=function(e,c,f){var h=1e4>_.recentlyCreatedOwnerStacks++;return $(e,c,f,!1,h?Error("react-stack-top-frame"):se,h?Q(a(e)):ne)},te.jsxs=function(e,c,f){var h=1e4>_.recentlyCreatedOwnerStacks++;return $(e,c,f,!0,h?Error("react-stack-top-frame"):se,h?Q(a(e)):ne)}})()),te}var pe;function Re(){return pe||(pe=1,process.env.NODE_ENV==="production"?le.exports=Ne():le.exports=Te()),le.exports}var o=Re();function xe(t){var r,i,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var u=t.length;for(r=0;r<u;r++)t[r]&&(i=xe(t[r]))&&(a&&(a+=" "),a+=i)}else for(i in t)t[i]&&(a&&(a+=" "),a+=i);return a}function v(){for(var t,r,i=0,a="",u=arguments.length;i<u;i++)(t=arguments[i])&&(r=xe(t))&&(a&&(a+=" "),a+=r);return a}const Ee="_button_1wcp1_1",ke="_secondary_1wcp1_31",Pe="_danger_1wcp1_37",_e={button:Ee,secondary:ke,danger:Pe},re=({customVariant:t="primary",className:r,children:i,...a})=>o.jsx(b.Button,{...a,className:v(_e.button,_e[t],r),children:i}),Ie="_input_1tcmw_1",Ae={input:Ie},ie=({className:t,...r})=>o.jsx(b.Input,{...r,className:v(Ae.input,t)}),Oe="_select_e8rgx_1",De="_popup_e8rgx_10",ge={select:Oe,popup:De},ye=({fullWidth:t,className:r,popupClassName:i,style:a,...u})=>o.jsx(b.Select,{...u,className:v(ge.select,r),popupClassName:v(ge.popup,i),style:{...t?{width:"100%"}:{},...a}}),$e="_userSelect_zu1fg_1",Me="_identity_zu1fg_5",Fe="_identityCompact_zu1fg_12",Ue="_avatar_zu1fg_16",ze="_userDetails_zu1fg_24",He="_displayName_zu1fg_30",Be="_email_zu1fg_31",Le="_message_zu1fg_47",Ye="_popup_zu1fg_58",k={userSelect:$e,identity:Me,identityCompact:Fe,avatar:Ue,userDetails:ze,displayName:He,email:Be,message:Le,popup:Ye},qe=t=>t.split(" ").filter(Boolean).slice(0,2).map(r=>r[0]).join("").toUpperCase(),he=({compact:t=!1,user:r})=>o.jsxs("span",{className:v(k.identity,{[k.identityCompact]:t}),children:[o.jsx(b.Avatar,{alt:r.displayName,className:k.avatar,size:t?22:32,src:r.avatarUrl,children:qe(r.displayName)}),o.jsxs("span",{className:k.userDetails,children:[o.jsx("span",{className:k.displayName,children:r.displayName}),!t&&r.email?o.jsx("span",{className:k.email,children:r.email}):null]})]}),Ge=({className:t,debounceMs:r=300,fullWidth:i,minSearchLength:a=2,onChange:u,popupClassName:m,service:g,...N})=>{const[P,J]=d.useState(""),[$,I]=d.useState([]),[Y,A]=d.useState({}),[M,z]=d.useState(!1),[O,H]=d.useState(!1),F=d.useRef(0);d.useEffect(()=>{const S=P.trim(),x=++F.current;if(S.length<a){I([]),H(!1),z(!1);return}const j=new AbortController,X=window.setTimeout(()=>{(async()=>{z(!0),H(!0);try{const D=await g.searchUsers(S,j.signal);if(j.signal.aborted||x!==F.current||(I(D),A(_=>({..._,...Object.fromEntries(D.map(y=>[y.id,y]))})),!g.getUserAvatar))return;const B=await Promise.all(D.map(async _=>{var y;if(_.avatarUrl)return _;try{const G=await((y=g.getUserAvatar)==null?void 0:y.call(g,_,j.signal));return G?{..._,avatarUrl:G}:_}catch{return _}}));if(j.signal.aborted||x!==F.current)return;I(B),A(_=>({..._,...Object.fromEntries(B.map(y=>[y.id,y]))}))}catch{!j.signal.aborted&&x===F.current&&I([])}finally{!j.signal.aborted&&x===F.current&&z(!1)}})()},r);return()=>{window.clearTimeout(X),j.abort()}},[r,a,P,g]);const q=d.useMemo(()=>$.map(S=>({label:S.displayName,user:S,value:S.id})),[$]),U=M?o.jsxs("span",{className:k.message,children:[o.jsx(b.Spin,{size:"small"})," Searching users..."]}):P.trim().length<a?o.jsxs("span",{className:k.message,children:["Type at least ",a," characters to search."]}):O?o.jsx("span",{className:k.message,children:"No users found."}):null;return o.jsx(ye,{...N,className:v(k.userSelect,t),filterOption:!1,fullWidth:i,labelRender:({value:S})=>{const x=Y[String(S)];return x?o.jsx(he,{compact:!0,user:x}):String(S)},loading:M,notFoundContent:U,options:q,optionRender:({data:S})=>o.jsx(he,{user:S.user}),popupClassName:v(k.popup,m),showSearch:!0,onChange:(S,x)=>{const j=Array.isArray(x)?x[0]:x;u==null||u(S,j==null?void 0:j.user)},onSearch:J})},Ve={},We=({className:t,children:r,...i})=>o.jsx(b.Modal,{...i,className:v(Ve.modal,t),children:r}),Je="_container_we3bi_1",Xe="_toolbar_we3bi_5",Qe="_toolbarActions_we3bi_13",Ze="_globalSearch_we3bi_19",Ke="_columnChooser_we3bi_23",et="_filterPanel_we3bi_24",tt="_popoverHeader_we3bi_30",rt="_popoverSearch_we3bi_52",ot="_columnList_we3bi_56",st="_columnItem_we3bi_63",nt="_columnItemDragging_we3bi_79",at="_columnItemDropTarget_we3bi_83",lt="_columnItemContent_we3bi_88",it="_dragHandle_we3bi_95",ct="_filterFields_we3bi_107",ut="_filterField_we3bi_107",dt="_keywordHighlight_we3bi_122",mt="_emptyState_we3bi_129",ft="_table_we3bi_136",C={container:Je,toolbar:Xe,toolbarActions:Qe,globalSearch:Ze,columnChooser:Ke,filterPanel:et,popoverHeader:tt,popoverSearch:rt,columnList:ot,columnItem:st,columnItemDragging:nt,columnItemDropTarget:at,columnItemContent:lt,dragHandle:it,filterFields:ct,filterField:ut,keywordHighlight:dt,emptyState:mt,table:ft},pt=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),_t=(t,r,i)=>!r||typeof t!="string"&&typeof t!="number"?t:String(t).split(r).map((a,u)=>r.test(a)?o.jsx("mark",{className:i,children:a},`${a}-${u}`):a),be=t=>"children"in t,gt=(t,r)=>t.key!==void 0?String(t.key):t.dataIndex!==void 0?Array.isArray(t.dataIndex)?t.dataIndex.join("."):String(t.dataIndex):`column-${r}`,ue=(t,r)=>typeof t.title=="string"||typeof t.title=="number"?String(t.title):r,V=(t,r)=>r===void 0?void 0:(Array.isArray(r)?r:[r]).reduce((a,u)=>{if(!(a===null||typeof a!="object")&&!(typeof u!="string"&&typeof u!="number"&&typeof u!="symbol"))return a[u]},t),W=t=>String(t??"").toLocaleLowerCase(),ht=(t,r)=>typeof t=="number"&&typeof r=="number"?t-r:String(t??"").localeCompare(String(r??""),void 0,{numeric:!0,sensitivity:"base"}),bt=({fullWidth:t,enableColumnFeatures:r=!0,enableGlobalSearch:i=!0,enableMultiColumnFiltering:a=!0,className:u,columns:m,dataSource:g,pagination:N,style:P,...J})=>{const[$,I]=d.useState(()=>new Set),[Y,A]=d.useState([]),[M,z]=d.useState(""),[O,H]=d.useState(null),[F,q]=d.useState(null),[U,S]=d.useState(""),[x,j]=d.useState({}),X=d.useMemo(()=>N===!1?!1:{pageSize:10,showSizeChanger:!0,showQuickJumper:!0,hideOnSinglePage:!1,showTotal:(s,l)=>`${l[0]}-${l[1]} of ${s} items`,...N},[N]),T=d.useMemo(()=>m?m.flatMap((s,l)=>be(s)?[]:[{column:s,id:gt(s,l)}]):[],[m]),D=d.useMemo(()=>new Map(T.map(s=>[s.id,s])),[T]),B=d.useMemo(()=>(m==null?void 0:m.some(s=>be(s)))??!1,[m]),_=d.useMemo(()=>T.filter(s=>s.column.dataIndex!==void 0),[T]),y=d.useMemo(()=>{const s=T.map(n=>n.id),l=Y.filter(n=>s.includes(n));return[...l,...s.filter(n=>!l.includes(n))]},[T,Y]),G=d.useMemo(()=>{const s=W(M).trim();return y.flatMap(l=>{const n=D.get(l);if(!n)return[];const p=ue(n.column,l);return s&&!W(p).includes(s)?[]:[n]})},[D,M,y]),Q=d.useMemo(()=>{if(!g||_.length===0)return g;const s=W(U).trim(),l=_.filter(({id:n})=>{var p;return!!((p=x[n])!=null&&p.trim())});return!s&&l.length===0?g:g.filter(n=>{const p=!s||_.some(({column:L})=>W(V(n,L.dataIndex)).includes(s)),R=l.every(({column:L,id:w})=>W(V(n,L.dataIndex)).includes(W(x[w]).trim()));return p&&R})},[g,_,U,x]),Z=d.useMemo(()=>{const s=Array.from(new Set([U,...Object.values(x)].map(l=>l.trim()).filter(Boolean).sort((l,n)=>n.length-l.length)));return s.length>0?new RegExp(`(${s.map(pt).join("|")})`,"i"):void 0},[U,x]),oe=d.useMemo(()=>!m||!r||B?m:y.flatMap(s=>{var L;if($.has(s))return[];const l=(L=D.get(s))==null?void 0:L.column;if(!l)return[];const n=l.dataIndex;if(n===void 0)return[l];const R=Array.from(new Set((g??[]).map(w=>V(w,n)).filter(w=>w!=null))).map(w=>({text:String(w),value:String(w)}));return[{...l,render:l.render??(w=>_t(w,Z,C.keywordHighlight)),...l.sorter===void 0?{sorter:(w,ce)=>ht(V(w,n),V(ce,n))}:{},...l.filters===void 0&&l.onFilter===void 0&&l.filterDropdown===void 0&&R.length>0?{filterSearch:!0,filters:R,onFilter:(w,ce)=>String(V(ce,n))===String(w)}:{}}]}),[D,m,g,r,B,$,Z,y]),se=s=>{I(l=>{const n=new Set(l);return n.has(s)?n.delete(s):n.add(s),n})},ne=(s,l)=>{A(()=>{const n=y.indexOf(s),p=y.indexOf(l);if(n<0||p<0||n===p)return y;const R=[...y];return R.splice(n,1),R.splice(n<p?p-1:p,0,s),R})},ae=()=>{I(new Set),A([]),z("")},e=(s,l)=>{j(n=>({...n,[s]:l}))},c=r&&T.length>0&&!B?o.jsx(b.Popover,{trigger:"click",placement:"bottomRight",content:o.jsxs("div",{className:C.columnChooser,children:[o.jsxs("div",{className:C.popoverHeader,children:[o.jsxs("div",{children:[o.jsx("strong",{children:"Manage columns"}),o.jsx("span",{children:"Choose visibility and order"})]}),o.jsx(re,{size:"small",type:"link",onClick:ae,children:"Reset"})]}),o.jsx(ie,{className:C.popoverSearch,value:M,allowClear:!0,placeholder:"Search columns",prefix:o.jsx(K.SearchOutlined,{}),onChange:s=>z(s.target.value)}),o.jsx("div",{className:C.columnList,role:"list",children:G.length>0?G.map(s=>{const l=ue(s.column,s.id);return o.jsx("div",{"aria-label":`Drag ${l} to change column order`,className:v(C.columnItem,{[C.columnItemDragging]:O===s.id,[C.columnItemDropTarget]:F===s.id&&O!==s.id}),draggable:!0,role:"listitem",onDragEnd:()=>{H(null),q(null)},onDragOver:n=>{n.preventDefault(),n.dataTransfer.dropEffect="move",O!==s.id&&q(s.id)},onDragStart:n=>{n.dataTransfer.effectAllowed="move",n.dataTransfer.setData("text/plain",s.id),H(s.id)},onDrop:n=>{n.preventDefault();const p=O??n.dataTransfer.getData("text/plain");p&&p!==s.id&&ne(p,s.id),H(null),q(null)},children:o.jsxs("div",{className:C.columnItemContent,children:[o.jsx("span",{className:C.dragHandle,"aria-hidden":"true",children:o.jsx(K.HolderOutlined,{})}),o.jsx(b.Checkbox,{checked:!$.has(s.id),onChange:()=>se(s.id),children:l})]})},s.id)}):o.jsx("p",{className:C.emptyState,children:"No matching columns"})})]}),children:o.jsx(re,{icon:o.jsx(K.SettingOutlined,{}),size:"small",type:"text",children:"Columns"})}):null,f=a&&_.length>0?o.jsx(b.Popover,{trigger:"click",placement:"bottomRight",content:o.jsxs("div",{className:C.filterPanel,children:[o.jsxs("div",{className:C.popoverHeader,children:[o.jsxs("div",{children:[o.jsx("strong",{children:"Filter rows"}),o.jsx("span",{children:"Match all conditions"})]}),o.jsx(re,{size:"small",type:"link",onClick:()=>j({}),children:"Clear"})]}),o.jsx("div",{className:C.filterFields,children:_.map(s=>{const l=ue(s.column,s.id);return o.jsxs("label",{className:C.filterField,children:[o.jsx("span",{children:l}),o.jsx(ie,{value:x[s.id]??"",allowClear:!0,placeholder:`Filter ${l}`,onChange:n=>e(s.id,n.target.value)})]},s.id)})})]}),children:o.jsx(re,{icon:o.jsx(K.FilterOutlined,{}),size:"small",type:"text",children:"Filters"})}):null,h=i&&_.length>0||f||c?o.jsxs("div",{className:C.toolbar,children:[i&&_.length>0?o.jsx(ie,{className:C.globalSearch,value:U,allowClear:!0,placeholder:"Search all columns",prefix:o.jsx(K.SearchOutlined,{}),onChange:s=>S(s.target.value)}):o.jsx("span",{}),o.jsxs("div",{className:C.toolbarActions,children:[f,c]})]}):null;return o.jsxs("div",{className:C.container,children:[h,o.jsx(b.Table,{...J,columns:oe,dataSource:Q,pagination:X,className:v(C.table,u),style:{...t?{width:"100%"}:{},...P}})]})},vt="_loading_10h4y_1",xt="_fullScreen_10h4y_9",yt="_overlayContainer_10h4y_16",Ct="_overlay_10h4y_16",St="_content_10h4y_27",jt="_logo_10h4y_33",wt="_dots_10h4y_39",Nt="_dot_10h4y_39",E={loading:vt,fullScreen:xt,overlayContainer:yt,overlay:Ct,content:St,logo:jt,dots:wt,dot:Nt},Tt=({fullScreen:t=!1,overlay:r=!1,children:i,logoSrc:a,logoAlt:u="",logoWidth:m=160,label:g="Loading",className:N})=>{const P=o.jsx("div",{"aria-label":g,"aria-live":"polite",className:v(E.loading,{[E.fullScreen]:t&&!r,[E.overlay]:r},N),role:"status",children:o.jsxs("div",{className:E.content,style:{width:m},children:[a?o.jsx("img",{alt:u,className:E.logo,src:a}):null,o.jsxs("div",{"aria-hidden":"true",className:E.dots,children:[o.jsx("span",{className:E.dot}),o.jsx("span",{className:E.dot}),o.jsx("span",{className:E.dot}),o.jsx("span",{className:E.dot})]})]})});return r?o.jsxs("div",{className:E.overlayContainer,children:[i,P]}):P},Rt="_inputNumber_121a8_1",Et={inputNumber:Rt},kt=({fullWidth:t,className:r,style:i,...a})=>o.jsx(b.InputNumber,{...a,className:v(Et.inputNumber,r),style:{...t?{width:"100%"}:{},...i}}),Pt="_datePicker_zf87q_1",It={datePicker:Pt},At=({fullWidth:t,className:r,style:i,...a})=>o.jsx(b.DatePicker,{...a,className:v(It.datePicker,r),style:{...t?{width:"100%"}:{},...i}}),Ot="_timePicker_1usbo_1",Dt={timePicker:Ot},$t=({fullWidth:t,className:r,style:i,...a})=>o.jsx(b.TimePicker,{...a,className:v(Dt.timePicker,r),style:{...t?{width:"100%"}:{},...i}}),Mt="_radio_16nmm_1",Ft="_radioButton_16nmm_2",Ut="_group_16nmm_3",de={radio:Mt,radioButton:Ft,group:Ut},zt=({className:t,...r})=>o.jsx(b.Radio,{...r,className:v(de.radio,t)}),Ht=({className:t,...r})=>o.jsx(b.Radio.Button,{...r,className:v(de.radioButton,t)}),Bt=({fullWidth:t,className:r,style:i,...a})=>o.jsx(b.Radio.Group,{...a,className:v(de.group,r),style:{...t?{width:"100%"}:{},...i}}),Lt="_treeSelect_16xy2_1",Yt="_popup_16xy2_10",ve={treeSelect:Lt,popup:Yt},qt=({fullWidth:t,className:r,popupClassName:i,style:a,...u})=>o.jsx(b.TreeSelect,{...u,className:v(ve.treeSelect,r),popupClassName:v(ve.popup,i),style:{...t?{width:"100%"}:{},...a}}),Gt="_upload_wwgt2_1",Vt="_dragger_wwgt2_2",Ce={upload:Gt,dragger:Vt},Wt=({className:t,...r})=>o.jsx(b.Upload,{...r,className:v(Ce.upload,t)}),Jt=({className:t,...r})=>o.jsx(b.Upload.Dragger,{...r,className:v(Ce.dragger,t)}),Se={Button:{borderRadius:8,controlHeight:40},Input:{borderRadius:8,controlHeight:40,hoverBorderColor:"#000000",activeBorderColor:"#000000",activeShadow:"0 0 0 2px rgb(0 0 0 / 12%)"},Select:{borderRadius:8,controlHeight:40,hoverBorderColor:"#000000",activeBorderColor:"#000000",activeOutlineColor:"rgb(0 0 0 / 12%)",optionSelectedBg:"#404040",optionSelectedColor:"#ffffff"},Modal:{},Table:{}},je={colorPrimary:"#1677ff",borderRadius:8,controlHeight:40},we={token:je,components:Se},Xt=({children:t,theme:r})=>o.jsx(b.ConfigProvider,{theme:r??we,children:o.jsx(b.App,{children:t})});exports.CustomButton=re;exports.CustomDatePicker=At;exports.CustomInput=ie;exports.CustomInputNumber=kt;exports.CustomLoading=Tt;exports.CustomModal=We;exports.CustomRadio=zt;exports.CustomRadioButton=Ht;exports.CustomRadioGroup=Bt;exports.CustomSelect=ye;exports.CustomTable=bt;exports.CustomThemeProvider=Xt;exports.CustomTimePicker=$t;exports.CustomTreeSelect=qt;exports.CustomUpload=Wt;exports.CustomUploadDragger=Jt;exports.CustomUserSelect=Ge;exports.baseTokens=je;exports.componentTokens=Se;exports.dtoTheme=we;
@@ -0,0 +1 @@
1
+ ._button_1wcp1_1{border-radius:var(--ant-border-radius)}._button_1wcp1_1.ant-btn-primary:not(:disabled){color:#fff!important;background-color:#404040!important;border-color:#404040!important}._button_1wcp1_1.ant-btn-primary:not(:disabled):hover{background-color:#525252!important;border-color:#525252!important}._button_1wcp1_1.ant-btn-primary:not(:disabled):active{background-color:#2f2f2f!important;border-color:#2f2f2f!important}._button_1wcp1_1.ant-btn-link:not(:disabled),._button_1wcp1_1.ant-btn-text:not(:disabled){color:#404040!important}._button_1wcp1_1.ant-btn-link:not(:disabled):hover,._button_1wcp1_1.ant-btn-text:not(:disabled):hover{color:#000!important}._secondary_1wcp1_31{background-color:transparent;border-color:var(--ant-color-border);color:var(--ant-color-text)}._danger_1wcp1_37{background-color:var(--ant-color-error);border-color:var(--ant-color-error);color:var(--ant-color-text-light-solid)}._danger_1wcp1_37.ant-btn-primary:not(:disabled){background-color:var(--ant-color-error)!important;border-color:var(--ant-color-error)!important}._input_1tcmw_1{box-sizing:border-box}._input_1tcmw_1.ant-input-outlined:hover,._input_1tcmw_1.ant-input-outlined:focus{border-color:#000!important}._input_1tcmw_1.ant-input-outlined:focus{box-shadow:0 0 0 2px #0000001f!important}._select_e8rgx_1.ant-select-outlined:hover,._select_e8rgx_1.ant-select-outlined.ant-select-focused{border-color:#000!important}._select_e8rgx_1.ant-select-outlined.ant-select-focused{box-shadow:0 0 0 2px #0000001f!important}._popup_e8rgx_10 .ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:#fff!important;background:#404040!important}._popup_e8rgx_10 .ant-select-item-option-selected .ant-select-item-option-state{color:#fff!important}._userSelect_zu1fg_1{box-sizing:border-box}._identity_zu1fg_5{display:flex;align-items:center;gap:10px;min-width:0}._identityCompact_zu1fg_12{gap:8px}._avatar_zu1fg_16{flex:0 0 auto;color:#fff!important;background:#404040!important;font-size:11px;font-weight:700}._userDetails_zu1fg_24{display:grid;min-width:0;line-height:1.35}._displayName_zu1fg_30,._email_zu1fg_31{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._displayName_zu1fg_30{color:#1d2939;font-weight:600}._email_zu1fg_31{color:#667085;font-size:12px}._message_zu1fg_47{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;color:#667085;font-size:13px;text-align:center}._popup_zu1fg_58 .ant-select-item-option-content{display:block}._container_we3bi_1{width:100%}._toolbar_we3bi_5{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}._toolbarActions_we3bi_13{display:inline-flex;align-items:center;gap:2px}._globalSearch_we3bi_19{width:min(100%,320px)}._columnChooser_we3bi_23,._filterPanel_we3bi_24{display:grid;width:min(340px,100vw - 48px);gap:14px}._popoverHeader_we3bi_30{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}._popoverHeader_we3bi_30>div{display:grid;gap:3px}._popoverHeader_we3bi_30 strong{color:#182230;font-size:14px}._popoverHeader_we3bi_30 span{color:#667085;font-size:12px}._popoverSearch_we3bi_52{width:100%}._columnList_we3bi_56{display:grid;max-height:280px;gap:2px;overflow-y:auto}._columnItem_we3bi_63{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:3px 8px;border-radius:8px;cursor:grab;transition:background-color .12s ease,box-shadow .12s ease,opacity .12s ease}._columnItem_we3bi_63:hover{background:#f8fafc}._columnItemDragging_we3bi_79{opacity:.45}._columnItemDropTarget_we3bi_83{background:#eff8ff;box-shadow:inset 0 0 0 1px #84caff}._columnItemContent_we3bi_88{display:inline-flex;align-items:center;min-width:0;gap:8px}._dragHandle_we3bi_95{display:inline-flex;flex:0 0 auto;color:#98a2b3;cursor:grab}._dragHandle_we3bi_95:active,._columnItem_we3bi_63:active{cursor:grabbing}._filterFields_we3bi_107{display:grid;max-height:320px;gap:12px;overflow-y:auto}._filterField_we3bi_107{display:grid;gap:6px;color:#344054;font-size:12px;font-weight:600}._keywordHighlight_we3bi_122{padding:0 2px;color:inherit;background:#fff3bf;border-radius:2px}._emptyState_we3bi_129{margin:8px 0;color:#98a2b3;font-size:13px;text-align:center}._table_we3bi_136{box-sizing:border-box}._table_we3bi_136 .ant-table-thead>tr>th{color:#fff;background:#404040;border-bottom-color:#404040}._table_we3bi_136 .ant-table-thead>tr>th:before{display:none}._table_we3bi_136 .ant-table-thead .ant-table-column-sorter,._table_we3bi_136 .ant-table-thead .ant-table-filter-trigger{color:#ffffffb8}._table_we3bi_136 .ant-table-thead .ant-table-column-sorter-up.active,._table_we3bi_136 .ant-table-thead .ant-table-column-sorter-down.active,._table_we3bi_136 .ant-table-thead .ant-table-filter-trigger.active,._table_we3bi_136 .ant-table-thead .ant-table-filter-trigger:hover{color:#fff}@media(max-width:560px){._toolbar_we3bi_5{align-items:stretch;flex-direction:column}._globalSearch_we3bi_19{width:100%}._toolbarActions_we3bi_13{justify-content:flex-end}}._loading_10h4y_1{display:grid;width:100%;min-height:160px;place-items:center;background:#fff}._fullScreen_10h4y_9{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;min-height:100dvh}._overlayContainer_10h4y_16{position:relative}._overlay_10h4y_16{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;min-height:0}._content_10h4y_27{display:flex;flex-direction:column;align-items:center}._logo_10h4y_33{width:100%;height:60px;object-fit:contain}._dots_10h4y_39{display:flex;justify-content:space-between;width:100%;margin-top:25px}._dot_10h4y_39{width:16px;height:16px;border-radius:50%;animation:_bounce_10h4y_1 .5s ease-in-out infinite alternate}._dot_10h4y_39:nth-child(1){background:#4285f4;animation-delay:-.25s}._dot_10h4y_39:nth-child(2){background:#ea4335;animation-delay:-.5s}._dot_10h4y_39:nth-child(3){background:#fbbc05;animation-delay:-.75s}._dot_10h4y_39:nth-child(4){background:#34a853;animation-delay:-1s}@keyframes _bounce_10h4y_1{0%{transform:translateY(-8px)}to{transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){._dot_10h4y_39{animation:none}}._inputNumber_121a8_1{box-sizing:border-box}._inputNumber_121a8_1.ant-input-number-outlined:hover,._inputNumber_121a8_1.ant-input-number-outlined:focus-within{border-color:#000!important}._inputNumber_121a8_1.ant-input-number-outlined:focus-within{box-shadow:0 0 0 2px #0000001f!important}._datePicker_zf87q_1{box-sizing:border-box}._datePicker_zf87q_1.ant-picker-outlined:hover,._datePicker_zf87q_1.ant-picker-outlined:focus-within{border-color:#000!important}._datePicker_zf87q_1.ant-picker-outlined:focus-within{box-shadow:0 0 0 2px #0000001f!important}._timePicker_1usbo_1{box-sizing:border-box}._timePicker_1usbo_1.ant-picker-outlined:hover,._timePicker_1usbo_1.ant-picker-outlined:focus-within{border-color:#000!important}._timePicker_1usbo_1.ant-picker-outlined:focus-within{box-shadow:0 0 0 2px #0000001f!important}._radio_16nmm_1,._radioButton_16nmm_2,._group_16nmm_3{box-sizing:border-box}.ant-radio-checked .ant-radio-inner{background:#404040!important;border-color:#404040!important}.ant-radio-wrapper .ant-radio-checked{background-color:#404040!important;border-color:#404040!important}.ant-radio-wrapper:hover .ant-radio-inner{border-color:#404040!important}.ant-radio-wrapper:hover:not(.ant-radio-wrapper-disabled) .ant-radio{border-color:#404040!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff!important;background:#404040!important;border-color:#404040!important}._treeSelect_16xy2_1.ant-select-outlined:hover,._treeSelect_16xy2_1.ant-select-outlined.ant-select-focused{border-color:#000!important}._treeSelect_16xy2_1.ant-select-outlined.ant-select-focused{box-shadow:0 0 0 2px #0000001f!important}._popup_16xy2_10 .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{color:#fff!important;background:#404040!important}._upload_wwgt2_1,._dragger_wwgt2_2{box-sizing:border-box}