@ctlyst.id/internal-ui 3.3.14 → 3.3.16

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.mjs CHANGED
@@ -946,26 +946,32 @@ var getCommonPinningStyles = (column) => {
946
946
  ...isLastLeftPinnedColumn ? {
947
947
  padding: "16px 8px 16px 8px",
948
948
  "&:after": {
949
+ transition: "all 0.3s",
949
950
  content: "''",
950
951
  position: "absolute",
951
952
  width: "30px",
952
953
  right: "0px",
953
954
  bottom: "-1px",
954
955
  top: 0,
955
- transform: "translateX(100%)",
956
+ transform: "translateX(100%)"
957
+ },
958
+ "[pin-left=true] &:after": {
956
959
  boxShadow: "inset 14px 0px 20px -10px #00000010"
957
960
  }
958
961
  } : {},
959
962
  ...isFirstRightPinnedColumn ? {
960
963
  padding: "16px 8px 16px 8px",
961
964
  "&:after": {
965
+ transition: "all 0.3s",
962
966
  content: "''",
963
967
  position: "absolute",
964
968
  width: "30px",
965
969
  left: "0%",
966
970
  top: 0,
967
971
  bottom: "-1px",
968
- transform: "translateX(-100%)",
972
+ transform: "translateX(-100%)"
973
+ },
974
+ "[pin-right=true] &:after": {
969
975
  boxShadow: "inset -14px 0px 20px -10px #00000010"
970
976
  }
971
977
  } : {}
@@ -1065,22 +1071,39 @@ var useDataTable = ({
1065
1071
  };
1066
1072
  };
1067
1073
  var DataTable = React5.forwardRef((props, ref) => {
1068
- var _a, _b;
1074
+ var _a, _b, _c;
1069
1075
  const { isLoading, styles, headerSticky, onRowClick, container, columnPinning } = props;
1070
1076
  const { table, toggleAllRowsSelected, generateColumn } = useDataTable(props);
1077
+ const refTable = React5.useRef(null);
1071
1078
  React5.useImperativeHandle(ref, () => ({
1072
1079
  toggleAllRowsSelected
1073
1080
  }));
1081
+ let lastPinnedColumn = 0;
1082
+ (_a = refTable.current) == null ? void 0 : _a.addEventListener("scroll", (s) => {
1083
+ var _a2, _b2, _c2, _d;
1084
+ const element = s.currentTarget;
1085
+ if (element.scrollLeft > 0) {
1086
+ (_a2 = refTable.current) == null ? void 0 : _a2.setAttribute("pin-left", "true");
1087
+ } else {
1088
+ (_b2 = refTable.current) == null ? void 0 : _b2.removeAttribute("pin-left");
1089
+ }
1090
+ if (element.scrollLeft < element.scrollWidth - (lastPinnedColumn + element.offsetWidth)) {
1091
+ (_c2 = refTable.current) == null ? void 0 : _c2.setAttribute("pin-right", "true");
1092
+ } else {
1093
+ (_d = refTable.current) == null ? void 0 : _d.removeAttribute("pin-right");
1094
+ }
1095
+ });
1074
1096
  return /* @__PURE__ */ jsx24(
1075
1097
  Box11,
1076
1098
  {
1077
1099
  overflowX: "auto",
1078
1100
  overflowY: "hidden",
1079
1101
  position: "relative",
1080
- pl: ((_a = columnPinning == null ? void 0 : columnPinning.left) == null ? void 0 : _a.length) ? 0 : 4,
1081
- pr: ((_b = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _b.length) ? 0 : 4,
1102
+ pl: ((_b = columnPinning == null ? void 0 : columnPinning.left) == null ? void 0 : _b.length) ? 0 : 4,
1103
+ pr: ((_c = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _c.length) ? 0 : 4,
1082
1104
  maxW: "100%",
1083
1105
  w: "full",
1106
+ ref: refTable,
1084
1107
  ...container,
1085
1108
  children: isLoading ? /* @__PURE__ */ jsxs8(Table, { ...styles == null ? void 0 : styles.table, "data-loading": "true", children: [
1086
1109
  /* @__PURE__ */ jsx24(Thead, { ...(styles == null ? void 0 : styles.tableHead, headerSticky ? { position: "sticky", top: 0, bg: "white", zIndex: 1 } : {}), children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx24(Tr, { mx: "2", ...styles == null ? void 0 : styles.tableRow, children: headerGroup.headers.map((header, index) => /* @__PURE__ */ jsx24(
@@ -1110,7 +1133,10 @@ var DataTable = React5.forwardRef((props, ref) => {
1110
1133
  maxH: "50px",
1111
1134
  ...(styles == null ? void 0 : styles.tableHead, headerSticky ? { position: "sticky", top: 0, bg: "white", zIndex: 1 } : {}),
1112
1135
  children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx24(Tr, { bg: useColorModeValue("initial", "ebony-clay.700"), ...styles == null ? void 0 : styles.tableRow, children: headerGroup.headers.map((header, index) => {
1113
- var _a2;
1136
+ var _a2, _b2;
1137
+ if (!!((_a2 = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _a2.length) && header.column.getIsFirstColumn("right")) {
1138
+ lastPinnedColumn = header.column.getAfter("right");
1139
+ }
1114
1140
  return /* @__PURE__ */ jsx24(
1115
1141
  Th,
1116
1142
  {
@@ -1137,10 +1163,10 @@ var DataTable = React5.forwardRef((props, ref) => {
1137
1163
  cursor: header.column.getCanSort() ? "pointer" : "default",
1138
1164
  "data-test-id": `CT_Container_SortingIcon_${header.id}`,
1139
1165
  onClick: header.column.getToggleSortingHandler(),
1140
- children: (_a2 = header.column.getCanSort() && {
1166
+ children: (_b2 = header.column.getCanSort() && {
1141
1167
  asc: /* @__PURE__ */ jsx24(ChevronUpIcon, { h: 4, w: 4, color: "neutral.500" }),
1142
1168
  desc: /* @__PURE__ */ jsx24(ChevronDownIcon, { h: 4, w: 4, color: "neutral.500" })
1143
- }[header.column.getIsSorted()]) != null ? _a2 : /* @__PURE__ */ jsx24(Box11, { display: "flex", justifyContent: "center", alignItems: "center", boxSize: 4, children: /* @__PURE__ */ jsx24(UpDownIcon, { color: "neutral.500" }) })
1169
+ }[header.column.getIsSorted()]) != null ? _b2 : /* @__PURE__ */ jsx24(Box11, { display: "flex", justifyContent: "center", alignItems: "center", boxSize: 4, children: /* @__PURE__ */ jsx24(UpDownIcon, { color: "neutral.500" }) })
1144
1170
  }
1145
1171
  )
1146
1172
  ]
@@ -4665,14 +4691,14 @@ import { marry } from "@zamiru/timescape";
4665
4691
  import {
4666
4692
  useEffect as useEffect2,
4667
4693
  useLayoutEffect,
4668
- useRef,
4694
+ useRef as useRef2,
4669
4695
  useState as useState4
4670
4696
  } from "react";
4671
4697
  var useTimescape = (options = {}) => {
4672
4698
  var _a;
4673
4699
  const { date, onChangeDate, ...rest } = options;
4674
4700
  const [manager] = useState4(() => new TimescapeManager(date, rest));
4675
- const onChangeDateRef = useRef(onChangeDate);
4701
+ const onChangeDateRef = useRef2(onChangeDate);
4676
4702
  useLayoutEffect(() => {
4677
4703
  onChangeDateRef.current = onChangeDate;
4678
4704
  }, [onChangeDate]);
@@ -4785,10 +4811,12 @@ var TimeInput2 = forwardRef12(
4785
4811
  isSuccess,
4786
4812
  onChangeTime
4787
4813
  }, ref) => {
4788
- const dateVal = value != null ? value : config2 == null ? void 0 : config2.date;
4814
+ const timeVal = value != null ? value : new Time(0, 0, 0);
4815
+ const dateVal = /* @__PURE__ */ new Date();
4816
+ dateVal.setHours(timeVal.hours, timeVal.minutes, timeVal.seconds, 0);
4789
4817
  const defaultDate = /* @__PURE__ */ new Date();
4790
4818
  defaultDate.setHours(0, 0, 0, 0);
4791
- const date = dateVal ? new Date(dateVal) : defaultDate;
4819
+ const date = dateVal || defaultDate;
4792
4820
  const timeValue = new Time();
4793
4821
  const { getRootProps, getInputProps, options, update, _manager } = useTimescape({
4794
4822
  date,
@@ -5047,7 +5075,7 @@ import {
5047
5075
  UnorderedList as UnorderedList2
5048
5076
  } from "@chakra-ui/react";
5049
5077
  import { Close as X, Plus } from "@ctlyst.id/internal-icon";
5050
- import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef2, useState as useState5 } from "react";
5078
+ import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef3, useState as useState5 } from "react";
5051
5079
  import { useDropzone } from "react-dropzone";
5052
5080
 
5053
5081
  // src/components/uploader/constants.ts
@@ -5107,7 +5135,7 @@ var Uploader = ({
5107
5135
  size: size2 = "lg",
5108
5136
  ...props
5109
5137
  }) => {
5110
- const inputRef = useRef2(null);
5138
+ const inputRef = useRef3(null);
5111
5139
  const [filePreview, setFilePreview] = useState5();
5112
5140
  const toast2 = useToast();
5113
5141
  const handleRejection = useCallback2(
@@ -5166,7 +5194,16 @@ var Uploader = ({
5166
5194
  });
5167
5195
  const renderHelperText = () => {
5168
5196
  if (Array.isArray(helperText)) {
5169
- return /* @__PURE__ */ jsx66(UnorderedList2, { pl: 2, fontSize: 12, color: "gray.600", "data-test-id": "CT_component_base-image-uploader_helperText", children: helperText.map((text2) => /* @__PURE__ */ jsx66(ListItem2, { children: text2 }, text2)) });
5197
+ return /* @__PURE__ */ jsx66(
5198
+ UnorderedList2,
5199
+ {
5200
+ pl: 2,
5201
+ fontSize: 12,
5202
+ color: "black.medium",
5203
+ "data-test-id": "CT_component_base-image-uploader_helperText",
5204
+ children: helperText.map((text2) => /* @__PURE__ */ jsx66(ListItem2, { children: text2 }, text2))
5205
+ }
5206
+ );
5170
5207
  }
5171
5208
  return helperText;
5172
5209
  };
@@ -5193,7 +5230,6 @@ var Uploader = ({
5193
5230
  const color = isDisabled ? "neutral.500" : "primary.500";
5194
5231
  const containerHeight = !isSmall ? "160px" : "120px";
5195
5232
  const cursorType = filePreview ? "initial" : "pointer";
5196
- console.log(isDragActive);
5197
5233
  return /* @__PURE__ */ jsxs31(FormControl4, { isRequired, children: [
5198
5234
  label && typeof label === "string" ? (
5199
5235
  // eslint-disable-next-line react/jsx-no-useless-fragment
@@ -7012,7 +7048,7 @@ import { useMemo as useMemo5 } from "react";
7012
7048
 
7013
7049
  // src/provider/components/provider.tsx
7014
7050
  import axios from "axios";
7015
- import { createContext as createContext2, useContext, useEffect as useEffect5, useMemo as useMemo4, useRef as useRef3 } from "react";
7051
+ import { createContext as createContext2, useContext, useEffect as useEffect5, useMemo as useMemo4, useRef as useRef4 } from "react";
7016
7052
  import { ToastContainer as ToastContainer2 } from "react-toastify";
7017
7053
  import { jsx as jsx67, jsxs as jsxs32 } from "react/jsx-runtime";
7018
7054
  var ProviderContext = createContext2({
@@ -7023,7 +7059,7 @@ var useInternalUI = () => {
7023
7059
  return { instance };
7024
7060
  };
7025
7061
  var Provider = ({ children, config: config2, requestInterceptors, responseInterceptors }) => {
7026
- const instanceRef = useRef3(axios.create(config2));
7062
+ const instanceRef = useRef4(axios.create(config2));
7027
7063
  useEffect5(() => {
7028
7064
  requestInterceptors == null ? void 0 : requestInterceptors.forEach((interceptor) => {
7029
7065
  instanceRef.current.interceptors.request.use(interceptor);