@ctlyst.id/internal-ui 3.3.15 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
  ]
@@ -1237,6 +1263,539 @@ import { cx as cx8 } from "@chakra-ui/shared-utils";
1237
1263
  import { Calendar, Close as Close3 } from "@ctlyst.id/internal-icon";
1238
1264
  import ReactDatePicker from "react-datepicker";
1239
1265
 
1266
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs
1267
+ function buildFormatLongFn(args) {
1268
+ return (options = {}) => {
1269
+ const width = options.width ? String(options.width) : args.defaultWidth;
1270
+ const format = args.formats[width] || args.formats[args.defaultWidth];
1271
+ return format;
1272
+ };
1273
+ }
1274
+
1275
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
1276
+ function buildLocalizeFn(args) {
1277
+ return (value, options) => {
1278
+ const context = (options == null ? void 0 : options.context) ? String(options.context) : "standalone";
1279
+ let valuesArray;
1280
+ if (context === "formatting" && args.formattingValues) {
1281
+ const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
1282
+ const width = (options == null ? void 0 : options.width) ? String(options.width) : defaultWidth;
1283
+ valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
1284
+ } else {
1285
+ const defaultWidth = args.defaultWidth;
1286
+ const width = (options == null ? void 0 : options.width) ? String(options.width) : args.defaultWidth;
1287
+ valuesArray = args.values[width] || args.values[defaultWidth];
1288
+ }
1289
+ const index = args.argumentCallback ? args.argumentCallback(value) : value;
1290
+ return valuesArray[index];
1291
+ };
1292
+ }
1293
+
1294
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchFn.mjs
1295
+ function buildMatchFn(args) {
1296
+ return (string, options = {}) => {
1297
+ const width = options.width;
1298
+ const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
1299
+ const matchResult = string.match(matchPattern);
1300
+ if (!matchResult) {
1301
+ return null;
1302
+ }
1303
+ const matchedString = matchResult[0];
1304
+ const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
1305
+ const key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) : (
1306
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type
1307
+ findKey(parsePatterns, (pattern) => pattern.test(matchedString))
1308
+ );
1309
+ let value;
1310
+ value = args.valueCallback ? args.valueCallback(key) : key;
1311
+ value = options.valueCallback ? (
1312
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type
1313
+ options.valueCallback(value)
1314
+ ) : value;
1315
+ const rest = string.slice(matchedString.length);
1316
+ return { value, rest };
1317
+ };
1318
+ }
1319
+ function findKey(object, predicate) {
1320
+ for (const key in object) {
1321
+ if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key])) {
1322
+ return key;
1323
+ }
1324
+ }
1325
+ return void 0;
1326
+ }
1327
+ function findIndex(array, predicate) {
1328
+ for (let key = 0; key < array.length; key++) {
1329
+ if (predicate(array[key])) {
1330
+ return key;
1331
+ }
1332
+ }
1333
+ return void 0;
1334
+ }
1335
+
1336
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs
1337
+ function buildMatchPatternFn(args) {
1338
+ return (string, options = {}) => {
1339
+ const matchResult = string.match(args.matchPattern);
1340
+ if (!matchResult) return null;
1341
+ const matchedString = matchResult[0];
1342
+ const parseResult = string.match(args.parsePattern);
1343
+ if (!parseResult) return null;
1344
+ let value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
1345
+ value = options.valueCallback ? options.valueCallback(value) : value;
1346
+ const rest = string.slice(matchedString.length);
1347
+ return { value, rest };
1348
+ };
1349
+ }
1350
+
1351
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id/_lib/formatDistance.mjs
1352
+ var formatDistanceLocale = {
1353
+ lessThanXSeconds: {
1354
+ one: "kurang dari 1 detik",
1355
+ other: "kurang dari {{count}} detik"
1356
+ },
1357
+ xSeconds: {
1358
+ one: "1 detik",
1359
+ other: "{{count}} detik"
1360
+ },
1361
+ halfAMinute: "setengah menit",
1362
+ lessThanXMinutes: {
1363
+ one: "kurang dari 1 menit",
1364
+ other: "kurang dari {{count}} menit"
1365
+ },
1366
+ xMinutes: {
1367
+ one: "1 menit",
1368
+ other: "{{count}} menit"
1369
+ },
1370
+ aboutXHours: {
1371
+ one: "sekitar 1 jam",
1372
+ other: "sekitar {{count}} jam"
1373
+ },
1374
+ xHours: {
1375
+ one: "1 jam",
1376
+ other: "{{count}} jam"
1377
+ },
1378
+ xDays: {
1379
+ one: "1 hari",
1380
+ other: "{{count}} hari"
1381
+ },
1382
+ aboutXWeeks: {
1383
+ one: "sekitar 1 minggu",
1384
+ other: "sekitar {{count}} minggu"
1385
+ },
1386
+ xWeeks: {
1387
+ one: "1 minggu",
1388
+ other: "{{count}} minggu"
1389
+ },
1390
+ aboutXMonths: {
1391
+ one: "sekitar 1 bulan",
1392
+ other: "sekitar {{count}} bulan"
1393
+ },
1394
+ xMonths: {
1395
+ one: "1 bulan",
1396
+ other: "{{count}} bulan"
1397
+ },
1398
+ aboutXYears: {
1399
+ one: "sekitar 1 tahun",
1400
+ other: "sekitar {{count}} tahun"
1401
+ },
1402
+ xYears: {
1403
+ one: "1 tahun",
1404
+ other: "{{count}} tahun"
1405
+ },
1406
+ overXYears: {
1407
+ one: "lebih dari 1 tahun",
1408
+ other: "lebih dari {{count}} tahun"
1409
+ },
1410
+ almostXYears: {
1411
+ one: "hampir 1 tahun",
1412
+ other: "hampir {{count}} tahun"
1413
+ }
1414
+ };
1415
+ var formatDistance = (token, count, options) => {
1416
+ let result;
1417
+ const tokenValue = formatDistanceLocale[token];
1418
+ if (typeof tokenValue === "string") {
1419
+ result = tokenValue;
1420
+ } else if (count === 1) {
1421
+ result = tokenValue.one;
1422
+ } else {
1423
+ result = tokenValue.other.replace("{{count}}", count.toString());
1424
+ }
1425
+ if (options == null ? void 0 : options.addSuffix) {
1426
+ if (options.comparison && options.comparison > 0) {
1427
+ return "dalam waktu " + result;
1428
+ } else {
1429
+ return result + " yang lalu";
1430
+ }
1431
+ }
1432
+ return result;
1433
+ };
1434
+
1435
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id/_lib/formatLong.mjs
1436
+ var dateFormats = {
1437
+ full: "EEEE, d MMMM yyyy",
1438
+ long: "d MMMM yyyy",
1439
+ medium: "d MMM yyyy",
1440
+ short: "d/M/yyyy"
1441
+ };
1442
+ var timeFormats = {
1443
+ full: "HH.mm.ss",
1444
+ long: "HH.mm.ss",
1445
+ medium: "HH.mm",
1446
+ short: "HH.mm"
1447
+ };
1448
+ var dateTimeFormats = {
1449
+ full: "{{date}} 'pukul' {{time}}",
1450
+ long: "{{date}} 'pukul' {{time}}",
1451
+ medium: "{{date}}, {{time}}",
1452
+ short: "{{date}}, {{time}}"
1453
+ };
1454
+ var formatLong = {
1455
+ date: buildFormatLongFn({
1456
+ formats: dateFormats,
1457
+ defaultWidth: "full"
1458
+ }),
1459
+ time: buildFormatLongFn({
1460
+ formats: timeFormats,
1461
+ defaultWidth: "full"
1462
+ }),
1463
+ dateTime: buildFormatLongFn({
1464
+ formats: dateTimeFormats,
1465
+ defaultWidth: "full"
1466
+ })
1467
+ };
1468
+
1469
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id/_lib/formatRelative.mjs
1470
+ var formatRelativeLocale = {
1471
+ lastWeek: "eeee 'lalu pukul' p",
1472
+ yesterday: "'Kemarin pukul' p",
1473
+ today: "'Hari ini pukul' p",
1474
+ tomorrow: "'Besok pukul' p",
1475
+ nextWeek: "eeee 'pukul' p",
1476
+ other: "P"
1477
+ };
1478
+ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];
1479
+
1480
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id/_lib/localize.mjs
1481
+ var eraValues = {
1482
+ narrow: ["SM", "M"],
1483
+ abbreviated: ["SM", "M"],
1484
+ wide: ["Sebelum Masehi", "Masehi"]
1485
+ };
1486
+ var quarterValues = {
1487
+ narrow: ["1", "2", "3", "4"],
1488
+ abbreviated: ["K1", "K2", "K3", "K4"],
1489
+ wide: ["Kuartal ke-1", "Kuartal ke-2", "Kuartal ke-3", "Kuartal ke-4"]
1490
+ };
1491
+ var monthValues = {
1492
+ narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
1493
+ abbreviated: [
1494
+ "Jan",
1495
+ "Feb",
1496
+ "Mar",
1497
+ "Apr",
1498
+ "Mei",
1499
+ "Jun",
1500
+ "Jul",
1501
+ "Agt",
1502
+ "Sep",
1503
+ "Okt",
1504
+ "Nov",
1505
+ "Des"
1506
+ ],
1507
+ wide: [
1508
+ "Januari",
1509
+ "Februari",
1510
+ "Maret",
1511
+ "April",
1512
+ "Mei",
1513
+ "Juni",
1514
+ "Juli",
1515
+ "Agustus",
1516
+ "September",
1517
+ "Oktober",
1518
+ "November",
1519
+ "Desember"
1520
+ ]
1521
+ };
1522
+ var dayValues = {
1523
+ narrow: ["M", "S", "S", "R", "K", "J", "S"],
1524
+ short: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
1525
+ abbreviated: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
1526
+ wide: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"]
1527
+ };
1528
+ var dayPeriodValues = {
1529
+ narrow: {
1530
+ am: "AM",
1531
+ pm: "PM",
1532
+ midnight: "tengah malam",
1533
+ noon: "tengah hari",
1534
+ morning: "pagi",
1535
+ afternoon: "siang",
1536
+ evening: "sore",
1537
+ night: "malam"
1538
+ },
1539
+ abbreviated: {
1540
+ am: "AM",
1541
+ pm: "PM",
1542
+ midnight: "tengah malam",
1543
+ noon: "tengah hari",
1544
+ morning: "pagi",
1545
+ afternoon: "siang",
1546
+ evening: "sore",
1547
+ night: "malam"
1548
+ },
1549
+ wide: {
1550
+ am: "AM",
1551
+ pm: "PM",
1552
+ midnight: "tengah malam",
1553
+ noon: "tengah hari",
1554
+ morning: "pagi",
1555
+ afternoon: "siang",
1556
+ evening: "sore",
1557
+ night: "malam"
1558
+ }
1559
+ };
1560
+ var formattingDayPeriodValues = {
1561
+ narrow: {
1562
+ am: "AM",
1563
+ pm: "PM",
1564
+ midnight: "tengah malam",
1565
+ noon: "tengah hari",
1566
+ morning: "pagi",
1567
+ afternoon: "siang",
1568
+ evening: "sore",
1569
+ night: "malam"
1570
+ },
1571
+ abbreviated: {
1572
+ am: "AM",
1573
+ pm: "PM",
1574
+ midnight: "tengah malam",
1575
+ noon: "tengah hari",
1576
+ morning: "pagi",
1577
+ afternoon: "siang",
1578
+ evening: "sore",
1579
+ night: "malam"
1580
+ },
1581
+ wide: {
1582
+ am: "AM",
1583
+ pm: "PM",
1584
+ midnight: "tengah malam",
1585
+ noon: "tengah hari",
1586
+ morning: "pagi",
1587
+ afternoon: "siang",
1588
+ evening: "sore",
1589
+ night: "malam"
1590
+ }
1591
+ };
1592
+ var ordinalNumber = (dirtyNumber, _options) => {
1593
+ const number = Number(dirtyNumber);
1594
+ return "ke-" + number;
1595
+ };
1596
+ var localize = {
1597
+ ordinalNumber,
1598
+ era: buildLocalizeFn({
1599
+ values: eraValues,
1600
+ defaultWidth: "wide"
1601
+ }),
1602
+ quarter: buildLocalizeFn({
1603
+ values: quarterValues,
1604
+ defaultWidth: "wide",
1605
+ argumentCallback: (quarter) => quarter - 1
1606
+ }),
1607
+ month: buildLocalizeFn({
1608
+ values: monthValues,
1609
+ defaultWidth: "wide"
1610
+ }),
1611
+ day: buildLocalizeFn({
1612
+ values: dayValues,
1613
+ defaultWidth: "wide"
1614
+ }),
1615
+ dayPeriod: buildLocalizeFn({
1616
+ values: dayPeriodValues,
1617
+ defaultWidth: "wide",
1618
+ formattingValues: formattingDayPeriodValues,
1619
+ defaultFormattingWidth: "wide"
1620
+ })
1621
+ };
1622
+
1623
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id/_lib/match.mjs
1624
+ var matchOrdinalNumberPattern = /^ke-(\d+)?/i;
1625
+ var parseOrdinalNumberPattern = /\d+/i;
1626
+ var matchEraPatterns = {
1627
+ narrow: /^(sm|m)/i,
1628
+ abbreviated: /^(s\.?\s?m\.?|s\.?\s?e\.?\s?u\.?|m\.?|e\.?\s?u\.?)/i,
1629
+ wide: /^(sebelum masehi|sebelum era umum|masehi|era umum)/i
1630
+ };
1631
+ var parseEraPatterns = {
1632
+ any: [/^s/i, /^(m|e)/i]
1633
+ };
1634
+ var matchQuarterPatterns = {
1635
+ narrow: /^[1234]/i,
1636
+ abbreviated: /^K-?\s[1234]/i,
1637
+ wide: /^Kuartal ke-?\s?[1234]/i
1638
+ };
1639
+ var parseQuarterPatterns = {
1640
+ any: [/1/i, /2/i, /3/i, /4/i]
1641
+ };
1642
+ var matchMonthPatterns = {
1643
+ narrow: /^[jfmasond]/i,
1644
+ abbreviated: /^(jan|feb|mar|apr|mei|jun|jul|agt|sep|okt|nov|des)/i,
1645
+ wide: /^(januari|februari|maret|april|mei|juni|juli|agustus|september|oktober|november|desember)/i
1646
+ };
1647
+ var parseMonthPatterns = {
1648
+ narrow: [
1649
+ /^j/i,
1650
+ /^f/i,
1651
+ /^m/i,
1652
+ /^a/i,
1653
+ /^m/i,
1654
+ /^j/i,
1655
+ /^j/i,
1656
+ /^a/i,
1657
+ /^s/i,
1658
+ /^o/i,
1659
+ /^n/i,
1660
+ /^d/i
1661
+ ],
1662
+ any: [
1663
+ /^ja/i,
1664
+ /^f/i,
1665
+ /^ma/i,
1666
+ /^ap/i,
1667
+ /^me/i,
1668
+ /^jun/i,
1669
+ /^jul/i,
1670
+ /^ag/i,
1671
+ /^s/i,
1672
+ /^o/i,
1673
+ /^n/i,
1674
+ /^d/i
1675
+ ]
1676
+ };
1677
+ var matchDayPatterns = {
1678
+ narrow: /^[srkjm]/i,
1679
+ short: /^(min|sen|sel|rab|kam|jum|sab)/i,
1680
+ abbreviated: /^(min|sen|sel|rab|kam|jum|sab)/i,
1681
+ wide: /^(minggu|senin|selasa|rabu|kamis|jumat|sabtu)/i
1682
+ };
1683
+ var parseDayPatterns = {
1684
+ narrow: [/^m/i, /^s/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i],
1685
+ any: [/^m/i, /^sen/i, /^sel/i, /^r/i, /^k/i, /^j/i, /^sa/i]
1686
+ };
1687
+ var matchDayPeriodPatterns = {
1688
+ narrow: /^(a|p|tengah m|tengah h|(di(\swaktu)?) (pagi|siang|sore|malam))/i,
1689
+ any: /^([ap]\.?\s?m\.?|tengah malam|tengah hari|(di(\swaktu)?) (pagi|siang|sore|malam))/i
1690
+ };
1691
+ var parseDayPeriodPatterns = {
1692
+ any: {
1693
+ am: /^a/i,
1694
+ pm: /^pm/i,
1695
+ midnight: /^tengah m/i,
1696
+ noon: /^tengah h/i,
1697
+ morning: /pagi/i,
1698
+ afternoon: /siang/i,
1699
+ evening: /sore/i,
1700
+ night: /malam/i
1701
+ }
1702
+ };
1703
+ var match = {
1704
+ ordinalNumber: buildMatchPatternFn({
1705
+ matchPattern: matchOrdinalNumberPattern,
1706
+ parsePattern: parseOrdinalNumberPattern,
1707
+ valueCallback: (value) => parseInt(value, 10)
1708
+ }),
1709
+ era: buildMatchFn({
1710
+ matchPatterns: matchEraPatterns,
1711
+ defaultMatchWidth: "wide",
1712
+ parsePatterns: parseEraPatterns,
1713
+ defaultParseWidth: "any"
1714
+ }),
1715
+ quarter: buildMatchFn({
1716
+ matchPatterns: matchQuarterPatterns,
1717
+ defaultMatchWidth: "wide",
1718
+ parsePatterns: parseQuarterPatterns,
1719
+ defaultParseWidth: "any",
1720
+ valueCallback: (index) => index + 1
1721
+ }),
1722
+ month: buildMatchFn({
1723
+ matchPatterns: matchMonthPatterns,
1724
+ defaultMatchWidth: "wide",
1725
+ parsePatterns: parseMonthPatterns,
1726
+ defaultParseWidth: "any"
1727
+ }),
1728
+ day: buildMatchFn({
1729
+ matchPatterns: matchDayPatterns,
1730
+ defaultMatchWidth: "wide",
1731
+ parsePatterns: parseDayPatterns,
1732
+ defaultParseWidth: "any"
1733
+ }),
1734
+ dayPeriod: buildMatchFn({
1735
+ matchPatterns: matchDayPeriodPatterns,
1736
+ defaultMatchWidth: "any",
1737
+ parsePatterns: parseDayPeriodPatterns,
1738
+ defaultParseWidth: "any"
1739
+ })
1740
+ };
1741
+
1742
+ // ../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/id.mjs
1743
+ var id = {
1744
+ code: "id",
1745
+ formatDistance,
1746
+ formatLong,
1747
+ formatRelative,
1748
+ localize,
1749
+ match,
1750
+ options: {
1751
+ weekStartsOn: 1,
1752
+ firstWeekContainsDate: 1
1753
+ }
1754
+ };
1755
+
1756
+ // src/utils/locale/_lib/buildLocalizeFn/index.ts
1757
+ function buildLocalizeFn2(args) {
1758
+ return (value, options) => {
1759
+ const context = (options == null ? void 0 : options.context) ? String(options.context) : "standalone";
1760
+ let valuesArray;
1761
+ if (context === "formatting" && args.formattingValues) {
1762
+ const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
1763
+ const width = (options == null ? void 0 : options.width) ? String(options.width) : defaultWidth;
1764
+ valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
1765
+ } else {
1766
+ const { defaultWidth } = args;
1767
+ const width = (options == null ? void 0 : options.width) ? String(options.width) : args.defaultWidth;
1768
+ valuesArray = args.values[width] || args.values[defaultWidth];
1769
+ }
1770
+ const index = args.argumentCallback ? args.argumentCallback(value) : value;
1771
+ return valuesArray[index];
1772
+ };
1773
+ }
1774
+
1775
+ // src/utils/locale/id/index.ts
1776
+ var monthValues2 = {
1777
+ narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
1778
+ abbreviated: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des"],
1779
+ wide: [
1780
+ "Januari",
1781
+ "Februari",
1782
+ "Maret",
1783
+ "April",
1784
+ "Mei",
1785
+ "Juni",
1786
+ "Juli",
1787
+ "Agustus",
1788
+ "September",
1789
+ "Oktober",
1790
+ "November",
1791
+ "Desember"
1792
+ ]
1793
+ };
1794
+ id.localize.month = buildLocalizeFn2({
1795
+ values: monthValues2,
1796
+ defaultWidth: "wide"
1797
+ });
1798
+
1240
1799
  // src/components/datepicker/components/styles.tsx
1241
1800
  import { useColorMode } from "@chakra-ui/system";
1242
1801
  import { Global } from "@emotion/react";
@@ -2135,7 +2694,7 @@ var time_input_default = TimeInput;
2135
2694
  // src/components/datepicker/components/datepicker.tsx
2136
2695
  import { Fragment as Fragment2, jsx as jsx27, jsxs as jsxs10 } from "react/jsx-runtime";
2137
2696
  var Datepicker = ({
2138
- id,
2697
+ id: id2,
2139
2698
  label,
2140
2699
  error,
2141
2700
  isError,
@@ -2147,11 +2706,12 @@ var Datepicker = ({
2147
2706
  onClear,
2148
2707
  showMonth,
2149
2708
  shortMonth,
2709
+ timezoneLabel,
2150
2710
  ...props
2151
2711
  }) => {
2152
2712
  var _a, _b;
2153
2713
  const selected = value ? new Date(value) : void 0;
2154
- const dateFormat = ((_a = props.dateFormat) != null ? _a : withTime) ? "dd MMMM yyyy, HH:mm" : "dd MMMM yyyy";
2714
+ const dateFormat = ((_a = props.dateFormat) != null ? _a : withTime) ? `dd MMM yyyy, HH:mm '${timezoneLabel}'` : "dd MMM yyyy";
2155
2715
  const getTimeProps = () => {
2156
2716
  if (!withTime) return {};
2157
2717
  return {
@@ -2166,7 +2726,7 @@ var Datepicker = ({
2166
2726
  /* @__PURE__ */ jsx27(
2167
2727
  ReactDatePicker,
2168
2728
  {
2169
- id,
2729
+ id: id2,
2170
2730
  name,
2171
2731
  selected,
2172
2732
  customInput: /* @__PURE__ */ jsx27(
@@ -2204,6 +2764,7 @@ var Datepicker = ({
2204
2764
  shouldCloseOnSelect: !(props.selectsRange || withTime),
2205
2765
  useShortMonthInDropdown: showMonth ? shortMonth : false,
2206
2766
  dateFormat,
2767
+ locale: id,
2207
2768
  ...getTimeProps(),
2208
2769
  ...props
2209
2770
  }
@@ -4665,14 +5226,14 @@ import { marry } from "@zamiru/timescape";
4665
5226
  import {
4666
5227
  useEffect as useEffect2,
4667
5228
  useLayoutEffect,
4668
- useRef,
5229
+ useRef as useRef2,
4669
5230
  useState as useState4
4670
5231
  } from "react";
4671
5232
  var useTimescape = (options = {}) => {
4672
5233
  var _a;
4673
5234
  const { date, onChangeDate, ...rest } = options;
4674
5235
  const [manager] = useState4(() => new TimescapeManager(date, rest));
4675
- const onChangeDateRef = useRef(onChangeDate);
5236
+ const onChangeDateRef = useRef2(onChangeDate);
4676
5237
  useLayoutEffect(() => {
4677
5238
  onChangeDateRef.current = onChangeDate;
4678
5239
  }, [onChangeDate]);
@@ -5027,7 +5588,7 @@ var useToast = () => {
5027
5588
  style: { backgroundColor: style == null ? void 0 : style.backgroundColor, color: style == null ? void 0 : style.color }
5028
5589
  });
5029
5590
  },
5030
- dismiss: (id) => toast.dismiss(id)
5591
+ dismiss: (id2) => toast.dismiss(id2)
5031
5592
  };
5032
5593
  };
5033
5594
 
@@ -5049,7 +5610,7 @@ import {
5049
5610
  UnorderedList as UnorderedList2
5050
5611
  } from "@chakra-ui/react";
5051
5612
  import { Close as X, Plus } from "@ctlyst.id/internal-icon";
5052
- import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef2, useState as useState5 } from "react";
5613
+ import { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef3, useState as useState5 } from "react";
5053
5614
  import { useDropzone } from "react-dropzone";
5054
5615
 
5055
5616
  // src/components/uploader/constants.ts
@@ -5109,7 +5670,7 @@ var Uploader = ({
5109
5670
  size: size2 = "lg",
5110
5671
  ...props
5111
5672
  }) => {
5112
- const inputRef = useRef2(null);
5673
+ const inputRef = useRef3(null);
5113
5674
  const [filePreview, setFilePreview] = useState5();
5114
5675
  const toast2 = useToast();
5115
5676
  const handleRejection = useCallback2(
@@ -7022,7 +7583,7 @@ import { useMemo as useMemo5 } from "react";
7022
7583
 
7023
7584
  // src/provider/components/provider.tsx
7024
7585
  import axios from "axios";
7025
- import { createContext as createContext2, useContext, useEffect as useEffect5, useMemo as useMemo4, useRef as useRef3 } from "react";
7586
+ import { createContext as createContext2, useContext, useEffect as useEffect5, useMemo as useMemo4, useRef as useRef4 } from "react";
7026
7587
  import { ToastContainer as ToastContainer2 } from "react-toastify";
7027
7588
  import { jsx as jsx67, jsxs as jsxs32 } from "react/jsx-runtime";
7028
7589
  var ProviderContext = createContext2({
@@ -7033,7 +7594,7 @@ var useInternalUI = () => {
7033
7594
  return { instance };
7034
7595
  };
7035
7596
  var Provider = ({ children, config: config2, requestInterceptors, responseInterceptors }) => {
7036
- const instanceRef = useRef3(axios.create(config2));
7597
+ const instanceRef = useRef4(axios.create(config2));
7037
7598
  useEffect5(() => {
7038
7599
  requestInterceptors == null ? void 0 : requestInterceptors.forEach((interceptor) => {
7039
7600
  instanceRef.current.interceptors.request.use(interceptor);