virtual-ui-lib 1.0.31 → 1.0.32

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.js CHANGED
@@ -34,6 +34,7 @@ __export(index_exports, {
34
34
  Button: () => Button,
35
35
  Card: () => Card,
36
36
  CopyButton: () => CopyButton,
37
+ DateRangePicker: () => DateRangePicker,
37
38
  Dropdown: () => Dropdown,
38
39
  EmptyState: () => EmptyState,
39
40
  Footer: () => Footer,
@@ -962,6 +963,42 @@ var MultiStepProgress = ({
962
963
  cursor: currentStep === steps.length - 1 ? "not-allowed" : "pointer"
963
964
  } }, "Next")));
964
965
  };
966
+
967
+ // src/components/DateRangePicker/DateRangePicker.jsx
968
+ var import_react19 = __toESM(require("react"));
969
+ var DateRangePicker = ({
970
+ startDate = /* @__PURE__ */ new Date(),
971
+ endDate = new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + 7)),
972
+ onChange,
973
+ bg = "#0f172a",
974
+ highlightColor = "#2563eb",
975
+ borderColor = "#7c3aed",
976
+ borderRadius = "12px",
977
+ textColor = "#f1f5f9"
978
+ }) => {
979
+ const [selectedStart, setSelectedStart] = (0, import_react19.useState)(startDate);
980
+ const [selectedEnd, setSelectedEnd] = (0, import_react19.useState)(endDate);
981
+ const daysArray = Array.from({ length: 30 }, (_, i) => new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + i)));
982
+ const handleSelect = (date) => {
983
+ if (!selectedStart || selectedEnd && date < selectedStart) {
984
+ setSelectedStart(date);
985
+ setSelectedEnd(null);
986
+ } else {
987
+ setSelectedEnd(date);
988
+ }
989
+ onChange && onChange(selectedStart, selectedEnd);
990
+ };
991
+ return /* @__PURE__ */ import_react19.default.createElement("div", { style: { display: "flex", flexDirection: "column", background: bg, padding: "16px", borderRadius, border: `1px solid ${borderColor}`, boxShadow: "0 4px 20px rgba(0, 0, 0, 0.2)", fontFamily: "system-ui, sans-serif" } }, /* @__PURE__ */ import_react19.default.createElement("h3", { style: { color: textColor, margin: "0 0 12px", fontSize: "16px", fontWeight: "600" } }, "Select Date Range"), /* @__PURE__ */ import_react19.default.createElement("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: "8px" } }, daysArray.map((date, index) => /* @__PURE__ */ import_react19.default.createElement("button", { key: index, onClick: () => handleSelect(date), style: {
992
+ background: date >= selectedStart && date <= selectedEnd ? highlightColor : "#334155",
993
+ color: textColor,
994
+ padding: "10px 0",
995
+ borderRadius,
996
+ border: "none",
997
+ cursor: "pointer",
998
+ transition: "background 0.3s",
999
+ fontSize: "14px"
1000
+ } }, date.getDate()))));
1001
+ };
965
1002
  // Annotate the CommonJS export names for ESM import in node:
966
1003
  0 && (module.exports = {
967
1004
  AlertBanner,
@@ -969,6 +1006,7 @@ var MultiStepProgress = ({
969
1006
  Button,
970
1007
  Card,
971
1008
  CopyButton,
1009
+ DateRangePicker,
972
1010
  Dropdown,
973
1011
  EmptyState,
974
1012
  Footer,
package/dist/index.mjs CHANGED
@@ -910,12 +910,49 @@ var MultiStepProgress = ({
910
910
  cursor: currentStep === steps.length - 1 ? "not-allowed" : "pointer"
911
911
  } }, "Next")));
912
912
  };
913
+
914
+ // src/components/DateRangePicker/DateRangePicker.jsx
915
+ import React19, { useState as useState13 } from "react";
916
+ var DateRangePicker = ({
917
+ startDate = /* @__PURE__ */ new Date(),
918
+ endDate = new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + 7)),
919
+ onChange,
920
+ bg = "#0f172a",
921
+ highlightColor = "#2563eb",
922
+ borderColor = "#7c3aed",
923
+ borderRadius = "12px",
924
+ textColor = "#f1f5f9"
925
+ }) => {
926
+ const [selectedStart, setSelectedStart] = useState13(startDate);
927
+ const [selectedEnd, setSelectedEnd] = useState13(endDate);
928
+ const daysArray = Array.from({ length: 30 }, (_, i) => new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + i)));
929
+ const handleSelect = (date) => {
930
+ if (!selectedStart || selectedEnd && date < selectedStart) {
931
+ setSelectedStart(date);
932
+ setSelectedEnd(null);
933
+ } else {
934
+ setSelectedEnd(date);
935
+ }
936
+ onChange && onChange(selectedStart, selectedEnd);
937
+ };
938
+ return /* @__PURE__ */ React19.createElement("div", { style: { display: "flex", flexDirection: "column", background: bg, padding: "16px", borderRadius, border: `1px solid ${borderColor}`, boxShadow: "0 4px 20px rgba(0, 0, 0, 0.2)", fontFamily: "system-ui, sans-serif" } }, /* @__PURE__ */ React19.createElement("h3", { style: { color: textColor, margin: "0 0 12px", fontSize: "16px", fontWeight: "600" } }, "Select Date Range"), /* @__PURE__ */ React19.createElement("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: "8px" } }, daysArray.map((date, index) => /* @__PURE__ */ React19.createElement("button", { key: index, onClick: () => handleSelect(date), style: {
939
+ background: date >= selectedStart && date <= selectedEnd ? highlightColor : "#334155",
940
+ color: textColor,
941
+ padding: "10px 0",
942
+ borderRadius,
943
+ border: "none",
944
+ cursor: "pointer",
945
+ transition: "background 0.3s",
946
+ fontSize: "14px"
947
+ } }, date.getDate()))));
948
+ };
913
949
  export {
914
950
  AlertBanner,
915
951
  AnimatedProgressBar,
916
952
  Button,
917
953
  Card,
918
954
  CopyButton,
955
+ DateRangePicker,
919
956
  Dropdown,
920
957
  EmptyState,
921
958
  Footer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "virtual-ui-lib",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "description": "Virtual UI React Component Library",
5
5
  "author": "Ankush",
6
6
  "license": "ISC",