@wavelengthusaf/components 2.4.0 → 2.5.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/README.md CHANGED
@@ -14,6 +14,12 @@ npm install @wavelengthusaf/components
14
14
 
15
15
  ## Release Notes
16
16
 
17
+ ### 2.5.0
18
+
19
+ - 03/06/2025
20
+ - Added a new component, WavelengthDragAndDrop
21
+ - Updated WavelengthTextField component to take in a prop called type
22
+
17
23
  ### 2.4.0
18
24
 
19
25
  - 03/03/2025
@@ -4613,6 +4613,70 @@ function WavelengthSpinningLogo({ svg = /* @__PURE__ */ _jsxruntime.jsx.call(voi
4613
4613
  return loadingSymbol;
4614
4614
  }
4615
4615
 
4616
+ // src/components/PageComponents/WavelengthDragAndDrop.tsx
4617
+
4618
+ function WavelengthDragAndDrop({
4619
+ width: width2 = "550px",
4620
+ height: height2 = "230px",
4621
+ onFilesSelected,
4622
+ border: border2,
4623
+ textColor,
4624
+ fontSize = "12px",
4625
+ allowedFileMIME,
4626
+ allowedFileExtensions,
4627
+ backgroundColor: backgroundColor2 = "transparent"
4628
+ }) {
4629
+ const handleFileChange = (event) => {
4630
+ const selectedFiles = event.target.files;
4631
+ if (selectedFiles && selectedFiles.length > 0) {
4632
+ const newFiles = Array.from(selectedFiles);
4633
+ onFilesSelected(newFiles);
4634
+ }
4635
+ };
4636
+ const handleDrop = (event) => {
4637
+ event.preventDefault();
4638
+ const droppedFiles = event.dataTransfer.files;
4639
+ if (droppedFiles.length > 0) {
4640
+ const newFiles = Array.from(droppedFiles);
4641
+ const allowedTypes = allowedFileMIME ? allowedFileMIME : "*/*";
4642
+ const validFiles = newFiles.filter((file) => allowedTypes === "*/*" || allowedTypes.includes(file.type));
4643
+ if (validFiles.length > 0) {
4644
+ onFilesSelected(validFiles);
4645
+ } else {
4646
+ alert(`Invalid file type`);
4647
+ }
4648
+ }
4649
+ };
4650
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4651
+ "div",
4652
+ {
4653
+ style: {
4654
+ backgroundColor: backgroundColor2,
4655
+ border: border2 ? border2 : "1px dashed rgba(14, 178, 178, 1)",
4656
+ borderRadius: "8px",
4657
+ paddingTop: "10px",
4658
+ boxSizing: "border-box",
4659
+ width: width2,
4660
+ height: height2,
4661
+ cursor: "pointer",
4662
+ display: "flex",
4663
+ flexDirection: "column",
4664
+ justifyContent: "center",
4665
+ alignItems: "center",
4666
+ overflow: "scroll"
4667
+ },
4668
+ onDrop: handleDrop,
4669
+ onDragOver: (event) => event.preventDefault(),
4670
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { style: { fontSize, color: textColor }, children: [
4671
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "file", hidden: true, multiple: true, id: "browse", onChange: handleFileChange, accept: allowedFileExtensions }),
4672
+ "Drag File here or",
4673
+ " ",
4674
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { htmlFor: "browse", style: { textDecoration: "underline", cursor: "pointer" }, children: "select from files" })
4675
+ ] })
4676
+ }
4677
+ );
4678
+ }
4679
+
4616
4680
  // src/components/footers/WavelengthFooter/WavelengthFooter.tsx
4617
4681
 
4618
4682
  var _Box = require('@mui/material/Box'); var _Box2 = _interopRequireDefault(_Box);
@@ -5817,6 +5881,7 @@ function WavelengthTextField(props) {
5817
5881
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5818
5882
  _TextField2.default,
5819
5883
  {
5884
+ type: props.type,
5820
5885
  required: props.required,
5821
5886
  label: props.label,
5822
5887
  onChange: (e) => {
@@ -5898,7 +5963,8 @@ function WavelengthTextField(props) {
5898
5963
 
5899
5964
 
5900
5965
 
5901
- exports.AppLogo = AppLogo; exports.ButtonIcon = ButtonIcon; exports.ButtonMenu = ButtonMenu; exports.DefaultCarousel = DefaultCarousel; exports.DefaultIcon = DefaultIcon; exports.DefaultPagination = DefaultPagination; exports.ManyPlanesComponent = ManyPlanesComponent; exports.NotAvailablePage = NotAvailablePage; exports.SearchTextField = SearchTextField; exports.SliderCardCarousel = SliderCardCarousel; exports.TestSnackbar = TestSnackbar; exports.WavelengthAppTheme = WavelengthAppTheme; exports.WavelengthAutocomplete = WavelengthAutocomplete; exports.WavelengthBanner = WavelengthBanner; exports.WavelengthBox = WavelengthBox; exports.WavelengthButton = WavelengthButton; exports.WavelengthConfirmationModal = WavelengthConfirmationModal; exports.WavelengthContentModal = WavelengthContentModal; exports.WavelengthContentPlaceholder = WavelengthContentPlaceholder; exports.WavelengthDropdown = WavelengthDropdown; exports.WavelengthDropdownButton = WavelengthDropdownButton; exports.WavelengthExampleComponent = WavelengthExampleComponent; exports.WavelengthFileDownloader = WavelengthFileDownloader; exports.WavelengthFooter = WavelengthFooter; exports.WavelengthPlaneTrail = WavelengthPlaneTrail; exports.WavelengthPopUpMenu = WavelengthPopUpMenu; exports.WavelengthSearch = WavelengthSearch; exports.WavelengthSideBar = WavelengthSideBar; exports.WavelengthSlider = WavelengthSlider; exports.WavelengthSnackbar = WavelengthSnackbar; exports.WavelengthSpinningLogo = WavelengthSpinningLogo; exports.WavelengthSpinningOuterCircle = WavelengthSpinningOuterCircle; exports.WavelengthStandardSnackbar = WavelengthStandardSnackbar; exports.WavelengthStyledButton = WavelengthStyledButton; exports.WavelengthTextField = WavelengthTextField; exports.WavelengthTitleBar = WavelengthTitleBar; exports.add = add; exports.ascendingRange = ascendingRange; exports.concat = concat; exports.findBestStringMatch = findBestStringMatch; exports.range = range; exports.useOutsideClick = useOutsideClick; exports.useThemeContext = useThemeContext;
5966
+
5967
+ exports.AppLogo = AppLogo; exports.ButtonIcon = ButtonIcon; exports.ButtonMenu = ButtonMenu; exports.DefaultCarousel = DefaultCarousel; exports.DefaultIcon = DefaultIcon; exports.DefaultPagination = DefaultPagination; exports.ManyPlanesComponent = ManyPlanesComponent; exports.NotAvailablePage = NotAvailablePage; exports.SearchTextField = SearchTextField; exports.SliderCardCarousel = SliderCardCarousel; exports.TestSnackbar = TestSnackbar; exports.WavelengthAppTheme = WavelengthAppTheme; exports.WavelengthAutocomplete = WavelengthAutocomplete; exports.WavelengthBanner = WavelengthBanner; exports.WavelengthBox = WavelengthBox; exports.WavelengthButton = WavelengthButton; exports.WavelengthConfirmationModal = WavelengthConfirmationModal; exports.WavelengthContentModal = WavelengthContentModal; exports.WavelengthContentPlaceholder = WavelengthContentPlaceholder; exports.WavelengthDragAndDrop = WavelengthDragAndDrop; exports.WavelengthDropdown = WavelengthDropdown; exports.WavelengthDropdownButton = WavelengthDropdownButton; exports.WavelengthExampleComponent = WavelengthExampleComponent; exports.WavelengthFileDownloader = WavelengthFileDownloader; exports.WavelengthFooter = WavelengthFooter; exports.WavelengthPlaneTrail = WavelengthPlaneTrail; exports.WavelengthPopUpMenu = WavelengthPopUpMenu; exports.WavelengthSearch = WavelengthSearch; exports.WavelengthSideBar = WavelengthSideBar; exports.WavelengthSlider = WavelengthSlider; exports.WavelengthSnackbar = WavelengthSnackbar; exports.WavelengthSpinningLogo = WavelengthSpinningLogo; exports.WavelengthSpinningOuterCircle = WavelengthSpinningOuterCircle; exports.WavelengthStandardSnackbar = WavelengthStandardSnackbar; exports.WavelengthStyledButton = WavelengthStyledButton; exports.WavelengthTextField = WavelengthTextField; exports.WavelengthTitleBar = WavelengthTitleBar; exports.add = add; exports.ascendingRange = ascendingRange; exports.concat = concat; exports.findBestStringMatch = findBestStringMatch; exports.range = range; exports.useOutsideClick = useOutsideClick; exports.useThemeContext = useThemeContext;
5902
5968
  /*! Bundled license information:
5903
5969
 
5904
5970
  react-is/cjs/react-is.production.min.js: