@bigtablet/design-system 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +71 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.js +64 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -866,6 +866,77 @@
|
|
|
866
866
|
box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15) !important;
|
|
867
867
|
}
|
|
868
868
|
|
|
869
|
+
/* src/ui/form/date-picker/style.scss */
|
|
870
|
+
.date_picker {
|
|
871
|
+
display: flex;
|
|
872
|
+
gap: 0.5rem;
|
|
873
|
+
}
|
|
874
|
+
.date_picker select {
|
|
875
|
+
min-width: 88px;
|
|
876
|
+
height: 44px;
|
|
877
|
+
padding: 0 0.75rem;
|
|
878
|
+
font-family: "Pretendard", sans-serif;
|
|
879
|
+
font-size: 0.9375rem;
|
|
880
|
+
line-height: 1.5;
|
|
881
|
+
color: #1a1a1a;
|
|
882
|
+
background-color: #ffffff;
|
|
883
|
+
border: 1px solid #e5e5e5;
|
|
884
|
+
border-radius: 6px;
|
|
885
|
+
cursor: pointer;
|
|
886
|
+
transition:
|
|
887
|
+
border-color 0.1s ease-out,
|
|
888
|
+
box-shadow 0.1s ease-out,
|
|
889
|
+
background-color 0.1s ease-out;
|
|
890
|
+
appearance: none;
|
|
891
|
+
background-image:
|
|
892
|
+
linear-gradient(
|
|
893
|
+
45deg,
|
|
894
|
+
transparent 50%,
|
|
895
|
+
#666666 50%),
|
|
896
|
+
linear-gradient(
|
|
897
|
+
135deg,
|
|
898
|
+
#666666 50%,
|
|
899
|
+
transparent 50%);
|
|
900
|
+
background-position: calc(100% - 16px) calc(50% - 3px), calc(100% - 11px) calc(50% - 3px);
|
|
901
|
+
background-size: 5px 5px;
|
|
902
|
+
background-repeat: no-repeat;
|
|
903
|
+
}
|
|
904
|
+
.date_picker select:hover:not(:disabled) {
|
|
905
|
+
border-color: #000000;
|
|
906
|
+
background-color: #fafafa;
|
|
907
|
+
}
|
|
908
|
+
.date_picker select:focus-visible {
|
|
909
|
+
outline: none;
|
|
910
|
+
border-color: #000000;
|
|
911
|
+
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.15);
|
|
912
|
+
background-color: #ffffff;
|
|
913
|
+
}
|
|
914
|
+
.date_picker select:disabled {
|
|
915
|
+
cursor: not-allowed;
|
|
916
|
+
color: #9ca3af;
|
|
917
|
+
background-color: #fafafa;
|
|
918
|
+
border-color: rgba(0, 0, 0, 0.08);
|
|
919
|
+
}
|
|
920
|
+
.date_picker select option {
|
|
921
|
+
color: #1a1a1a;
|
|
922
|
+
}
|
|
923
|
+
.date_picker select:nth-child(1) {
|
|
924
|
+
min-width: 96px;
|
|
925
|
+
}
|
|
926
|
+
.date_picker select:nth-child(2),
|
|
927
|
+
.date_picker select:nth-child(3) {
|
|
928
|
+
min-width: 72px;
|
|
929
|
+
}
|
|
930
|
+
@media (max-width: 480px) {
|
|
931
|
+
.date_picker {
|
|
932
|
+
gap: 0.25rem;
|
|
933
|
+
}
|
|
934
|
+
.date_picker select {
|
|
935
|
+
min-width: 0;
|
|
936
|
+
flex: 1;
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
|
|
869
940
|
/* src/ui/navigation/pagination/style.scss */
|
|
870
941
|
.pagination {
|
|
871
942
|
display: flex;
|
package/dist/index.d.ts
CHANGED
|
@@ -123,6 +123,17 @@ interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement
|
|
|
123
123
|
}
|
|
124
124
|
declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement>>;
|
|
125
125
|
|
|
126
|
+
type DatePickerMode = "year-month" | "year-month-day";
|
|
127
|
+
interface DatePickerProps {
|
|
128
|
+
value?: string;
|
|
129
|
+
onChange: (value: string) => void;
|
|
130
|
+
mode?: DatePickerMode;
|
|
131
|
+
startYear?: number;
|
|
132
|
+
endYear?: number;
|
|
133
|
+
disabled?: boolean;
|
|
134
|
+
}
|
|
135
|
+
declare const DatePicker: ({ value, onChange, mode, startYear, endYear, disabled, }: DatePickerProps) => react_jsx_runtime.JSX.Element;
|
|
136
|
+
|
|
126
137
|
interface PaginationProps {
|
|
127
138
|
page: number;
|
|
128
139
|
totalPages: number;
|
|
@@ -139,4 +150,4 @@ interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title">
|
|
|
139
150
|
}
|
|
140
151
|
declare const Modal: ({ open, onClose, closeOnOverlay, width, title, children, className, ...props }: ModalProps) => react_jsx_runtime.JSX.Element | null;
|
|
141
152
|
|
|
142
|
-
export { AlertProvider, Button, Card, Checkbox, FileInput, Loading, Modal, Pagination, Radio, Select, type SelectOption, Switch, TextField, ToastProvider, useAlert, useToast };
|
|
153
|
+
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Loading, Modal, Pagination, Radio, Select, type SelectOption, Switch, TextField, ToastProvider, useAlert, useToast };
|
package/dist/index.js
CHANGED
|
@@ -524,6 +524,69 @@ var TextField = React3.forwardRef(
|
|
|
524
524
|
}
|
|
525
525
|
);
|
|
526
526
|
TextField.displayName = "TextField";
|
|
527
|
+
var pad = (n) => String(n).padStart(2, "0");
|
|
528
|
+
var getDaysInMonth = (year, month) => new Date(year, month, 0).getDate();
|
|
529
|
+
var DatePicker = ({
|
|
530
|
+
value,
|
|
531
|
+
onChange,
|
|
532
|
+
mode = "year-month-day",
|
|
533
|
+
startYear = 1950,
|
|
534
|
+
endYear = (/* @__PURE__ */ new Date()).getFullYear() + 10,
|
|
535
|
+
disabled
|
|
536
|
+
}) => {
|
|
537
|
+
const [y, m, d] = value?.split("-").map(Number) ?? [];
|
|
538
|
+
const year = y ?? "";
|
|
539
|
+
const month = m ?? "";
|
|
540
|
+
const day = d ?? "";
|
|
541
|
+
const days = year && month ? getDaysInMonth(year, month) : 31;
|
|
542
|
+
const emit = (yy, mm, dd) => {
|
|
543
|
+
const result = mode === "year-month" ? `${yy}-${pad(mm)}-01` : `${yy}-${pad(mm)}-${pad(dd ?? 1)}`;
|
|
544
|
+
onChange(result);
|
|
545
|
+
};
|
|
546
|
+
return /* @__PURE__ */ jsxs("div", { className: "date_picker", children: [
|
|
547
|
+
/* @__PURE__ */ jsxs(
|
|
548
|
+
"select",
|
|
549
|
+
{
|
|
550
|
+
value: year,
|
|
551
|
+
disabled,
|
|
552
|
+
onChange: (e) => emit(Number(e.target.value), month || 1, day || 1),
|
|
553
|
+
children: [
|
|
554
|
+
/* @__PURE__ */ jsx("option", { value: "", disabled: true }),
|
|
555
|
+
Array.from(
|
|
556
|
+
{ length: endYear - startYear + 1 },
|
|
557
|
+
(_, i) => startYear + i
|
|
558
|
+
).map((y2) => /* @__PURE__ */ jsx("option", { value: y2, children: y2 }, y2))
|
|
559
|
+
]
|
|
560
|
+
}
|
|
561
|
+
),
|
|
562
|
+
/* @__PURE__ */ jsxs(
|
|
563
|
+
"select",
|
|
564
|
+
{
|
|
565
|
+
value: month,
|
|
566
|
+
disabled: disabled || !year,
|
|
567
|
+
onChange: (e) => emit(year, Number(e.target.value), day || 1),
|
|
568
|
+
children: [
|
|
569
|
+
/* @__PURE__ */ jsx("option", { value: "", disabled: true }),
|
|
570
|
+
Array.from({ length: 12 }, (_, i) => i + 1).map((m2) => /* @__PURE__ */ jsx("option", { value: m2, children: pad(m2) }, m2))
|
|
571
|
+
]
|
|
572
|
+
}
|
|
573
|
+
),
|
|
574
|
+
mode === "year-month-day" && /* @__PURE__ */ jsxs(
|
|
575
|
+
"select",
|
|
576
|
+
{
|
|
577
|
+
value: day,
|
|
578
|
+
disabled: disabled || !month,
|
|
579
|
+
onChange: (e) => emit(year, month, Number(e.target.value)),
|
|
580
|
+
children: [
|
|
581
|
+
/* @__PURE__ */ jsx("option", { value: "", disabled: true }),
|
|
582
|
+
Array.from({ length: days }, (_, i) => i + 1).map(
|
|
583
|
+
(d2) => /* @__PURE__ */ jsx("option", { value: d2, children: pad(d2) }, d2)
|
|
584
|
+
)
|
|
585
|
+
]
|
|
586
|
+
}
|
|
587
|
+
)
|
|
588
|
+
] });
|
|
589
|
+
};
|
|
527
590
|
var range = (start, end) => {
|
|
528
591
|
const out = [];
|
|
529
592
|
for (let i = start; i <= end; i += 1) out.push(i);
|
|
@@ -632,4 +695,4 @@ var Modal = ({
|
|
|
632
695
|
);
|
|
633
696
|
};
|
|
634
697
|
|
|
635
|
-
export { AlertProvider, Button, Card, Checkbox, FileInput, Loading, Modal, Pagination, Radio, Select, Switch, TextField, ToastProvider, useAlert, useToast };
|
|
698
|
+
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Loading, Modal, Pagination, Radio, Select, Switch, TextField, ToastProvider, useAlert, useToast };
|