boreal-ui 0.0.47 → 0.0.49
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/core/{Card-CbGHr_tX.js → Card-BzpcEKgi.js} +52 -7
- package/dist/core/Card-BzpcEKgi.js.map +1 -0
- package/dist/core/{Card-De2epy0R.cjs → Card-D6SI33n_.cjs} +52 -7
- package/dist/core/Card-D6SI33n_.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/boreal-ui.css +897 -0
- package/dist/core/index.cjs.js +1 -1
- package/dist/core/index.js +1 -1
- package/dist/next/{Accordion-CFb5G7Ql.js → Accordion-CrUmV-HM.js} +50 -50
- package/dist/next/{Accordion-CFb5G7Ql.js.map → Accordion-CrUmV-HM.js.map} +1 -1
- package/dist/next/{Accordion-BvcUpiD3.cjs → Accordion-ugkSb5dI.cjs} +50 -50
- package/dist/next/{Accordion-BvcUpiD3.cjs.map → Accordion-ugkSb5dI.cjs.map} +1 -1
- package/dist/next/Accordion.cjs.js +1 -1
- package/dist/next/Accordion.js +1 -1
- package/dist/next/{Breadcrumbs-D5wEf2-N.cjs → Breadcrumbs-CrKRsQf3.cjs} +2 -2
- package/dist/next/{Breadcrumbs-D5wEf2-N.cjs.map → Breadcrumbs-CrKRsQf3.cjs.map} +1 -1
- package/dist/next/{Breadcrumbs-DZpS-GOj.js → Breadcrumbs-ZK64MIGd.js} +2 -2
- package/dist/next/{Breadcrumbs-DZpS-GOj.js.map → Breadcrumbs-ZK64MIGd.js.map} +1 -1
- package/dist/next/Breadcrumbs.cjs.js +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Button-Cyq8lKKp.cjs → Button-BI0LErYM.cjs} +46 -46
- package/dist/next/{Button-Cyq8lKKp.cjs.map → Button-BI0LErYM.cjs.map} +1 -1
- package/dist/next/{Button-CQUqfv7B.js → Button-qs4m4zx0.js} +46 -46
- package/dist/next/{Button-CQUqfv7B.js.map → Button-qs4m4zx0.js.map} +1 -1
- package/dist/next/Button.cjs.js +1 -1
- package/dist/next/Button.js +1 -1
- package/dist/next/{Card-CtUR7xR3.js → Card-CFPo7HrH.js} +144 -71
- package/dist/next/Card-CFPo7HrH.js.map +1 -0
- package/dist/next/{Card-D2vuSJt0.cjs → Card-CHnEexOi.cjs} +144 -71
- package/dist/next/Card-CHnEexOi.cjs.map +1 -0
- package/dist/next/Card.cjs.js +1 -1
- package/dist/next/Card.js +1 -1
- package/dist/next/CheckBox.cjs.js +1 -1
- package/dist/next/CheckBox.js +1 -1
- package/dist/next/{Checkbox-dANi8BjQ.js → Checkbox-DBidsakA.js} +44 -44
- package/dist/next/{Checkbox-dANi8BjQ.js.map → Checkbox-DBidsakA.js.map} +1 -1
- package/dist/next/{Checkbox-SXo9UmNY.cjs → Checkbox-hA321207.cjs} +44 -44
- package/dist/next/{Checkbox-SXo9UmNY.cjs.map → Checkbox-hA321207.cjs.map} +1 -1
- package/dist/next/{Chip-BYWlOMgj.cjs → Chip-BWTBVAIE.cjs} +50 -50
- package/dist/next/{Chip-BYWlOMgj.cjs.map → Chip-BWTBVAIE.cjs.map} +1 -1
- package/dist/next/{Chip-B3bTVcNN.js → Chip-D2mvW5L7.js} +50 -50
- package/dist/next/{Chip-B3bTVcNN.js.map → Chip-D2mvW5L7.js.map} +1 -1
- package/dist/next/Chip.cjs.js +1 -1
- package/dist/next/Chip.js +1 -1
- package/dist/next/{CircularProgress-6fmyMX4y.cjs → CircularProgress-BegWxawm.cjs} +37 -37
- package/dist/next/{CircularProgress-6fmyMX4y.cjs.map → CircularProgress-BegWxawm.cjs.map} +1 -1
- package/dist/next/{CircularProgress-CdvDDYyr.js → CircularProgress-wBHZUhul.js} +37 -37
- package/dist/next/{CircularProgress-CdvDDYyr.js.map → CircularProgress-wBHZUhul.js.map} +1 -1
- package/dist/next/CircularProgress.cjs.js +1 -1
- package/dist/next/CircularProgress.js +1 -1
- package/dist/next/{ColorPicker-DhQJXU30.js → ColorPicker-Dd9iz-i8.js} +38 -38
- package/dist/next/{ColorPicker-DhQJXU30.js.map → ColorPicker-Dd9iz-i8.js.map} +1 -1
- package/dist/next/{ColorPicker-DUYMHTpF.cjs → ColorPicker-Tla92spe.cjs} +38 -38
- package/dist/next/{ColorPicker-DUYMHTpF.cjs.map → ColorPicker-Tla92spe.cjs.map} +1 -1
- package/dist/next/ColorPicker.cjs.js +1 -1
- package/dist/next/ColorPicker.js +1 -1
- package/dist/next/{CommandPalette-GmgyP8kF.cjs → CommandPalette-BO6R9zQs.cjs} +41 -41
- package/dist/next/{CommandPalette-GmgyP8kF.cjs.map → CommandPalette-BO6R9zQs.cjs.map} +1 -1
- package/dist/next/{CommandPalette-Bzqc18YQ.js → CommandPalette-CN0BiN0R.js} +41 -41
- package/dist/next/{CommandPalette-Bzqc18YQ.js.map → CommandPalette-CN0BiN0R.js.map} +1 -1
- package/dist/next/CommandPalette.cjs.js +1 -1
- package/dist/next/CommandPalette.js +1 -1
- package/dist/next/{DataTable-Cy3GLZ1j.cjs → DataTable-CUJXAkHe.cjs} +40 -40
- package/dist/next/{DataTable-Cy3GLZ1j.cjs.map → DataTable-CUJXAkHe.cjs.map} +1 -1
- package/dist/next/{DataTable-BoXblTGY.js → DataTable-mMStogSP.js} +40 -40
- package/dist/next/{DataTable-BoXblTGY.js.map → DataTable-mMStogSP.js.map} +1 -1
- package/dist/next/DataTable.cjs.js +1 -1
- package/dist/next/DataTable.js +1 -1
- package/dist/next/{DateTimePicker-i4QztkDP.js → DateTimePicker-CphfYmZ8.js} +46 -46
- package/dist/next/{DateTimePicker-i4QztkDP.js.map → DateTimePicker-CphfYmZ8.js.map} +1 -1
- package/dist/next/{DateTimePicker-DYXQLrAL.cjs → DateTimePicker-DwS2xQNw.cjs} +46 -46
- package/dist/next/{DateTimePicker-DYXQLrAL.cjs.map → DateTimePicker-DwS2xQNw.cjs.map} +1 -1
- package/dist/next/DateTimePicker.cjs.js +1 -1
- package/dist/next/DateTimePicker.js +1 -1
- package/dist/next/{Divider-BAAb-2rY.cjs → Divider-cx8e80sS.cjs} +28 -28
- package/dist/next/{Divider-BAAb-2rY.cjs.map → Divider-cx8e80sS.cjs.map} +1 -1
- package/dist/next/{Divider-O6G6kig_.js → Divider-kiaQzYbi.js} +28 -28
- package/dist/next/{Divider-O6G6kig_.js.map → Divider-kiaQzYbi.js.map} +1 -1
- package/dist/next/Divider.cjs.js +1 -1
- package/dist/next/Divider.js +1 -1
- package/dist/next/{EmptyState-CU6_e2Yr.cjs → EmptyState-Bb90F-ej.cjs} +2 -2
- package/dist/next/{EmptyState-CU6_e2Yr.cjs.map → EmptyState-Bb90F-ej.cjs.map} +1 -1
- package/dist/next/{EmptyState-Cbj1OIeQ.js → EmptyState-Brd4N36F.js} +2 -2
- package/dist/next/{EmptyState-Cbj1OIeQ.js.map → EmptyState-Brd4N36F.js.map} +1 -1
- package/dist/next/EmptyState.cjs.js +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-CNxWsESt.js → FileUpload-BMMpH1El.js} +51 -51
- package/dist/next/{FileUpload-CNxWsESt.js.map → FileUpload-BMMpH1El.js.map} +1 -1
- package/dist/next/{FileUpload-D43mGC5b.cjs → FileUpload-Drm5_xEx.cjs} +51 -51
- package/dist/next/{FileUpload-D43mGC5b.cjs.map → FileUpload-Drm5_xEx.cjs.map} +1 -1
- package/dist/next/FileUpload.cjs.js +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/{Footer-CJ19dLJ4.js → Footer-B6_LG958.js} +40 -40
- package/dist/next/{Footer-CJ19dLJ4.js.map → Footer-B6_LG958.js.map} +1 -1
- package/dist/next/{Footer-haPH23Rz.cjs → Footer-EF2-ryvY.cjs} +40 -40
- package/dist/next/{Footer-haPH23Rz.cjs.map → Footer-EF2-ryvY.cjs.map} +1 -1
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{FormGroup-mHF2j4h8.cjs → FormGroup-Bg2QlTu7.cjs} +30 -30
- package/dist/next/{FormGroup-mHF2j4h8.cjs.map → FormGroup-Bg2QlTu7.cjs.map} +1 -1
- package/dist/next/{FormGroup-B_b5tAwN.js → FormGroup-DmQChKxA.js} +30 -30
- package/dist/next/{FormGroup-B_b5tAwN.js.map → FormGroup-DmQChKxA.js.map} +1 -1
- package/dist/next/FormGroup.cjs.js +1 -1
- package/dist/next/FormGroup.js +1 -1
- package/dist/next/MessagePopUp.cjs.js +1 -1
- package/dist/next/MessagePopUp.js +1 -1
- package/dist/next/{MessagePopup-C08ktRPS.cjs → MessagePopup-DsquzWSn.cjs} +2 -2
- package/dist/next/{MessagePopup-C08ktRPS.cjs.map → MessagePopup-DsquzWSn.cjs.map} +1 -1
- package/dist/next/{MessagePopup-BHMymhHd.js → MessagePopup-WUBGyJ_F.js} +2 -2
- package/dist/next/{MessagePopup-BHMymhHd.js.map → MessagePopup-WUBGyJ_F.js.map} +1 -1
- package/dist/next/{MetricBox-Cc5g8SBy.js → MetricBox-C5KGkv7l.js} +47 -47
- package/dist/next/{MetricBox-Cc5g8SBy.js.map → MetricBox-C5KGkv7l.js.map} +1 -1
- package/dist/next/{MetricBox-BDC6UsP1.cjs → MetricBox-D8eBxQ59.cjs} +47 -47
- package/dist/next/{MetricBox-BDC6UsP1.cjs.map → MetricBox-D8eBxQ59.cjs.map} +1 -1
- package/dist/next/MetricBox.cjs.js +1 -1
- package/dist/next/MetricBox.js +1 -1
- package/dist/next/{NavBar-BZPUPeLz.js → NavBar-CmvgkEZt.js} +37 -37
- package/dist/next/{NavBar-BZPUPeLz.js.map → NavBar-CmvgkEZt.js.map} +1 -1
- package/dist/next/{NavBar-DYUpzh7o.cjs → NavBar-DVEf0iJH.cjs} +37 -37
- package/dist/next/{NavBar-DYUpzh7o.cjs.map → NavBar-DVEf0iJH.cjs.map} +1 -1
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{NotificationCenter-ClijzbwL.cjs → NotificationCenter-CtL6rozQ.cjs} +42 -42
- package/dist/next/{NotificationCenter-ClijzbwL.cjs.map → NotificationCenter-CtL6rozQ.cjs.map} +1 -1
- package/dist/next/{NotificationCenter-C00Gj6Xv.js → NotificationCenter-CtM10CVj.js} +42 -42
- package/dist/next/{NotificationCenter-C00Gj6Xv.js.map → NotificationCenter-CtM10CVj.js.map} +1 -1
- package/dist/next/NotificationCenter.cjs.js +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-C1rpRIOe.cjs → Pager-Bxxewb8I.cjs} +2 -2
- package/dist/next/{Pager-C1rpRIOe.cjs.map → Pager-Bxxewb8I.cjs.map} +1 -1
- package/dist/next/{Pager-DzEFxEIM.js → Pager-D0Mw7o7v.js} +2 -2
- package/dist/next/{Pager-DzEFxEIM.js.map → Pager-D0Mw7o7v.js.map} +1 -1
- package/dist/next/Pager.cjs.js +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/{PopOver-J5eO0UOr.cjs → PopOver-gQfgHe9e.cjs} +40 -40
- package/dist/next/{PopOver-J5eO0UOr.cjs.map → PopOver-gQfgHe9e.cjs.map} +1 -1
- package/dist/next/{PopOver-DFjt5BfD.js → PopOver-qSTx5y8g.js} +40 -40
- package/dist/next/{PopOver-DFjt5BfD.js.map → PopOver-qSTx5y8g.js.map} +1 -1
- package/dist/next/PopOver.cjs.js +1 -1
- package/dist/next/PopOver.js +1 -1
- package/dist/next/{ProgressBar-lOd0cGdF.cjs → ProgressBar-BMuv0kis.cjs} +42 -42
- package/dist/next/{ProgressBar-lOd0cGdF.cjs.map → ProgressBar-BMuv0kis.cjs.map} +1 -1
- package/dist/next/{ProgressBar-hpSJQWrn.js → ProgressBar-DuaWQouO.js} +42 -42
- package/dist/next/{ProgressBar-hpSJQWrn.js.map → ProgressBar-DuaWQouO.js.map} +1 -1
- package/dist/next/ProgressBar.cjs.js +1 -1
- package/dist/next/ProgressBar.js +1 -1
- package/dist/next/{RadioButton-UlG9lzwh.js → RadioButton-CEvIACkL.js} +38 -38
- package/dist/next/{RadioButton-UlG9lzwh.js.map → RadioButton-CEvIACkL.js.map} +1 -1
- package/dist/next/{RadioButton-DkeBXAsO.cjs → RadioButton-D6oyNmVU.cjs} +38 -38
- package/dist/next/{RadioButton-DkeBXAsO.cjs.map → RadioButton-D6oyNmVU.cjs.map} +1 -1
- package/dist/next/RadioButton.cjs.js +1 -1
- package/dist/next/RadioButton.js +1 -1
- package/dist/next/{Rating-BuPujSZA.cjs → Rating-BbqxsFU9.cjs} +34 -34
- package/dist/next/{Rating-BuPujSZA.cjs.map → Rating-BbqxsFU9.cjs.map} +1 -1
- package/dist/next/{Rating-BhZSzD7o.js → Rating-umLbRaAb.js} +34 -34
- package/dist/next/{Rating-BhZSzD7o.js.map → Rating-umLbRaAb.js.map} +1 -1
- package/dist/next/Rating.cjs.js +1 -1
- package/dist/next/Rating.js +1 -1
- package/dist/next/{Skeleton-Cp1BE2Ac.cjs → Skeleton-C6wW8eyR.cjs} +26 -26
- package/dist/next/{Skeleton-Cp1BE2Ac.cjs.map → Skeleton-C6wW8eyR.cjs.map} +1 -1
- package/dist/next/{Skeleton-KKJc191y.js → Skeleton-DC4LJ059.js} +26 -26
- package/dist/next/{Skeleton-KKJc191y.js.map → Skeleton-DC4LJ059.js.map} +1 -1
- package/dist/next/Skeleton.cjs.js +1 -1
- package/dist/next/Skeleton.js +1 -1
- package/dist/next/{Slider-BK-N-zXi.cjs → Slider-g41Qvh6s.cjs} +43 -43
- package/dist/next/{Slider-BK-N-zXi.cjs.map → Slider-g41Qvh6s.cjs.map} +1 -1
- package/dist/next/{Slider-BvcM4-MS.js → Slider-wAbg8hOH.js} +43 -43
- package/dist/next/{Slider-BvcM4-MS.js.map → Slider-wAbg8hOH.js.map} +1 -1
- package/dist/next/Slider.cjs.js +1 -1
- package/dist/next/Slider.js +1 -1
- package/dist/next/{Spinner-Dh8iu4p8.js → Spinner-D3OQ29U9.js} +37 -37
- package/dist/next/{Spinner-Dh8iu4p8.js.map → Spinner-D3OQ29U9.js.map} +1 -1
- package/dist/next/{Spinner-DqTR9rvk.cjs → Spinner-Y53Z6fwK.cjs} +37 -37
- package/dist/next/{Spinner-DqTR9rvk.cjs.map → Spinner-Y53Z6fwK.cjs.map} +1 -1
- package/dist/next/Spinner.cjs.js +1 -1
- package/dist/next/Spinner.js +1 -1
- package/dist/next/{Stepper-nRipbdpR.js → Stepper-BvA_ZAho.js} +39 -39
- package/dist/next/{Stepper-nRipbdpR.js.map → Stepper-BvA_ZAho.js.map} +1 -1
- package/dist/next/{Stepper-RjdxxcS6.cjs → Stepper-D6X70Sr6.cjs} +39 -39
- package/dist/next/{Stepper-RjdxxcS6.cjs.map → Stepper-D6X70Sr6.cjs.map} +1 -1
- package/dist/next/Stepper.cjs.js +1 -1
- package/dist/next/Stepper.js +1 -1
- package/dist/next/{Tabs-D90stLbD.js → Tabs-Bur4oYVF.js} +44 -44
- package/dist/next/{Tabs-D90stLbD.js.map → Tabs-Bur4oYVF.js.map} +1 -1
- package/dist/next/{Tabs-BgKvtbgg.cjs → Tabs-D-5VRbfh.cjs} +44 -44
- package/dist/next/{Tabs-BgKvtbgg.cjs.map → Tabs-D-5VRbfh.cjs.map} +1 -1
- package/dist/next/Tabs.cjs.js +1 -1
- package/dist/next/Tabs.js +1 -1
- package/dist/next/{TagInput-I9GEOn4z.js → TagInput-DKzxPiwU.js} +46 -46
- package/dist/next/{TagInput-I9GEOn4z.js.map → TagInput-DKzxPiwU.js.map} +1 -1
- package/dist/next/{TagInput-C7ohFpQN.cjs → TagInput-DfNJiPKh.cjs} +46 -46
- package/dist/next/{TagInput-C7ohFpQN.cjs.map → TagInput-DfNJiPKh.cjs.map} +1 -1
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{Toolbar-B043HxPz.cjs → Toolbar-PwnuYGDR.cjs} +34 -34
- package/dist/next/{Toolbar-B043HxPz.cjs.map → Toolbar-PwnuYGDR.cjs.map} +1 -1
- package/dist/next/{Toolbar-DJ2eWNqF.js → Toolbar-wbusnAUV.js} +34 -34
- package/dist/next/{Toolbar-DJ2eWNqF.js.map → Toolbar-wbusnAUV.js.map} +1 -1
- package/dist/next/Toolbar.cjs.js +1 -1
- package/dist/next/Toolbar.js +1 -1
- package/dist/next/{Tooltip-BAv_JHBJ.cjs → Tooltip-DPFnMhUd.cjs} +39 -39
- package/dist/next/{Tooltip-BAv_JHBJ.cjs.map → Tooltip-DPFnMhUd.cjs.map} +1 -1
- package/dist/next/{Tooltip-BCtlhs_A.js → Tooltip-_GVlUXAq.js} +39 -39
- package/dist/next/{Tooltip-BCtlhs_A.js.map → Tooltip-_GVlUXAq.js.map} +1 -1
- package/dist/next/Tooltip.cjs.js +1 -1
- package/dist/next/Tooltip.js +1 -1
- package/dist/next/boreal-ui.css +3123 -2410
- package/dist/next/index.cjs.js +56 -56
- package/dist/next/index.js +56 -56
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Card/Card.types.d.ts +2 -1
- package/dist/types/components/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/Card/CardBase.d.ts.map +1 -1
- package/dist/types/components/Card/next/Card.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/Card-CbGHr_tX.js.map +0 -1
- package/dist/core/Card-De2epy0R.cjs.map +0 -1
- package/dist/next/Card-CtUR7xR3.js.map +0 -1
- package/dist/next/Card-D2vuSJt0.cjs.map +0 -1
|
@@ -4,10 +4,10 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
4
4
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
5
5
|
import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
import { B as Button } from "./Button-
|
|
7
|
+
import { B as Button } from "./Button-qs4m4zx0.js";
|
|
8
8
|
import { I as IconButton } from "./IconButton-BTUFKRZt.js";
|
|
9
|
-
import { F as FormGroup } from "./FormGroup-
|
|
10
|
-
import { P as ProgressBar } from "./ProgressBar-
|
|
9
|
+
import { F as FormGroup } from "./FormGroup-DmQChKxA.js";
|
|
10
|
+
import { P as ProgressBar } from "./ProgressBar-DuaWQouO.js";
|
|
11
11
|
const FileIcon = (props) => /* @__PURE__ */ jsxs(
|
|
12
12
|
"svg",
|
|
13
13
|
{
|
|
@@ -371,46 +371,46 @@ const BaseFileUpload = ({
|
|
|
371
371
|
);
|
|
372
372
|
};
|
|
373
373
|
BaseFileUpload.displayName = "BaseFileUpload";
|
|
374
|
-
const noScroll = "
|
|
375
|
-
const errorMessage = "
|
|
376
|
-
const loadingContainer = "
|
|
377
|
-
const hideScrollbar = "
|
|
378
|
-
const sr_only = "
|
|
379
|
-
const fileUpload = "
|
|
380
|
-
const dragOver = "
|
|
381
|
-
const disabled = "
|
|
382
|
-
const uploadActions = "
|
|
383
|
-
const uploadControls = "
|
|
384
|
-
const uploadProgress = "
|
|
385
|
-
const uploadButton = "
|
|
386
|
-
const removeButton = "
|
|
387
|
-
const hiddenInput = "
|
|
388
|
-
const fileList = "
|
|
389
|
-
const fileListItem = "
|
|
390
|
-
const rejectedFiles = "
|
|
391
|
-
const rejectedLabel = "
|
|
392
|
-
const rejectedList = "
|
|
393
|
-
const rejectedItem = "
|
|
394
|
-
const roundNone = "
|
|
395
|
-
const roundSmall = "
|
|
396
|
-
const roundMedium = "
|
|
397
|
-
const roundLarge = "
|
|
398
|
-
const roundFull = "
|
|
399
|
-
const shadowNone = "
|
|
400
|
-
const shadowLight = "
|
|
401
|
-
const shadowMedium = "
|
|
402
|
-
const shadowStrong = "
|
|
403
|
-
const shadowIntense = "
|
|
404
|
-
const primary = "
|
|
405
|
-
const secondary = "
|
|
406
|
-
const tertiary = "
|
|
407
|
-
const quaternary = "
|
|
408
|
-
const clear = "
|
|
409
|
-
const success = "
|
|
410
|
-
const error = "
|
|
411
|
-
const warning = "
|
|
412
|
-
const spin = "
|
|
413
|
-
const pulse = "
|
|
374
|
+
const noScroll = "_noScroll_v3ptf_108";
|
|
375
|
+
const errorMessage = "_errorMessage_v3ptf_109";
|
|
376
|
+
const loadingContainer = "_loadingContainer_v3ptf_110";
|
|
377
|
+
const hideScrollbar = "_hideScrollbar_v3ptf_102";
|
|
378
|
+
const sr_only = "_sr_only_v3ptf_111";
|
|
379
|
+
const fileUpload = "_fileUpload_v3ptf_552";
|
|
380
|
+
const dragOver = "_dragOver_v3ptf_588";
|
|
381
|
+
const disabled = "_disabled_v3ptf_592";
|
|
382
|
+
const uploadActions = "_uploadActions_v3ptf_599";
|
|
383
|
+
const uploadControls = "_uploadControls_v3ptf_605";
|
|
384
|
+
const uploadProgress = "_uploadProgress_v3ptf_617";
|
|
385
|
+
const uploadButton = "_uploadButton_v3ptf_621";
|
|
386
|
+
const removeButton = "_removeButton_v3ptf_624";
|
|
387
|
+
const hiddenInput = "_hiddenInput_v3ptf_628";
|
|
388
|
+
const fileList = "_fileList_v3ptf_631";
|
|
389
|
+
const fileListItem = "_fileListItem_v3ptf_648";
|
|
390
|
+
const rejectedFiles = "_rejectedFiles_v3ptf_674";
|
|
391
|
+
const rejectedLabel = "_rejectedLabel_v3ptf_684";
|
|
392
|
+
const rejectedList = "_rejectedList_v3ptf_688";
|
|
393
|
+
const rejectedItem = "_rejectedItem_v3ptf_692";
|
|
394
|
+
const roundNone = "_roundNone_v3ptf_696";
|
|
395
|
+
const roundSmall = "_roundSmall_v3ptf_700";
|
|
396
|
+
const roundMedium = "_roundMedium_v3ptf_704";
|
|
397
|
+
const roundLarge = "_roundLarge_v3ptf_708";
|
|
398
|
+
const roundFull = "_roundFull_v3ptf_712";
|
|
399
|
+
const shadowNone = "_shadowNone_v3ptf_716";
|
|
400
|
+
const shadowLight = "_shadowLight_v3ptf_720";
|
|
401
|
+
const shadowMedium = "_shadowMedium_v3ptf_724";
|
|
402
|
+
const shadowStrong = "_shadowStrong_v3ptf_728";
|
|
403
|
+
const shadowIntense = "_shadowIntense_v3ptf_732";
|
|
404
|
+
const primary = "_primary_v3ptf_736";
|
|
405
|
+
const secondary = "_secondary_v3ptf_740";
|
|
406
|
+
const tertiary = "_tertiary_v3ptf_744";
|
|
407
|
+
const quaternary = "_quaternary_v3ptf_748";
|
|
408
|
+
const clear = "_clear_v3ptf_752";
|
|
409
|
+
const success = "_success_v3ptf_756";
|
|
410
|
+
const error = "_error_v3ptf_109";
|
|
411
|
+
const warning = "_warning_v3ptf_772";
|
|
412
|
+
const spin = "_spin_v3ptf_1";
|
|
413
|
+
const pulse = "_pulse_v3ptf_1";
|
|
414
414
|
const styles = {
|
|
415
415
|
noScroll,
|
|
416
416
|
errorMessage,
|
|
@@ -450,15 +450,15 @@ const styles = {
|
|
|
450
450
|
success,
|
|
451
451
|
error,
|
|
452
452
|
warning,
|
|
453
|
-
"fade-in": "_fade-
|
|
454
|
-
"slide-up": "_slide-
|
|
455
|
-
"spin-3d": "_spin-
|
|
453
|
+
"fade-in": "_fade-in_v3ptf_1",
|
|
454
|
+
"slide-up": "_slide-up_v3ptf_1",
|
|
455
|
+
"spin-3d": "_spin-3d_v3ptf_1",
|
|
456
456
|
spin,
|
|
457
457
|
pulse,
|
|
458
|
-
"fade-in-up": "_fade-in-
|
|
459
|
-
"progress-grow": "_progress-
|
|
460
|
-
"indeterminate-move": "_indeterminate-
|
|
461
|
-
"skeleton-loading": "_skeleton-
|
|
458
|
+
"fade-in-up": "_fade-in-up_v3ptf_1",
|
|
459
|
+
"progress-grow": "_progress-grow_v3ptf_1",
|
|
460
|
+
"indeterminate-move": "_indeterminate-move_v3ptf_1",
|
|
461
|
+
"skeleton-loading": "_skeleton-loading_v3ptf_1"
|
|
462
462
|
};
|
|
463
463
|
const FileUpload = (props) => {
|
|
464
464
|
return /* @__PURE__ */ jsx(
|
|
@@ -477,4 +477,4 @@ FileUpload.displayName = "FileUpload";
|
|
|
477
477
|
export {
|
|
478
478
|
FileUpload as F
|
|
479
479
|
};
|
|
480
|
-
//# sourceMappingURL=FileUpload-
|
|
480
|
+
//# sourceMappingURL=FileUpload-BMMpH1El.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload-CNxWsESt.js","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport { Button, IconButton, Progressbar, FormGroup } from \"@/index.next\";\r\nimport styles from \"./FileUpload.module.scss\";\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={Progressbar}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["error","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","rejectedFiles"],"mappings":";;;;;;;;;;AAAA,MAAM,WAAoD,CAAC,UACzD;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;ACzBF,MAAM,YAAqD,CAAC,UAC1D;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACN,gBAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEP;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;AClBF,MAAM,iBAAgD,CAAC;AAAA,EACrD,QAAQ;AAAA,EACR;AAAA,EACA,OAAAA;AAAA,EACA,WAAW;AAAA,EACX,QAAQ,gBAAA;AAAA,EACR,kBAAkB,mBAAA;AAAA,EAClB,gBAAgB,iBAAA;AAAA,EAChB,UAAU;AAAA,EACV,kBAAkB,mBAAA;AAAA,EAClB,gBAAgB,iBAAA;AAAA,EAChB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,mBAAmB,CAAA;AAAA,EACnB;AAAA,EACA,gBAAAC;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,WAAAC;AAAA,EACA,UAAAC,YAAW;AAAA,EACX,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAI,SAAmB,CAAA,CAAE;AACvD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,CAAA,CAAE;AAC7C,QAAM,CAACC,gBAAe,gBAAgB,IAAI,SAExC,CAAA,CAAE;AACJ,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAiB,CAAC;AAClE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAwB,IAAI;AACtE,QAAM,YAAY,OAAgC,IAAI;AACtD,QAAM,cAAc,OAA8C,IAAI;AAEtE,QAAM,SAAS,QAAQ,MAAM;AAC3B,QAAI,CAAC,oBAAoB,iBAAiB,WAAW,EAAG,QAAO;AAC/D,WAAO,iBAAiB,KAAK,GAAG;AAAA,EAClC,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,gBAAgB,CAAC,aAAqB;AAC1C,UAAM,QAAgB,CAAA;AACtB,UAAM,WAA+C,CAAA;AAErD,aAAS,QAAQ,CAAC,SAAS;AACzB,YAAM,WAAW,KAAK,QAAQ;AAC9B,YAAM,MAAM,KAAK,KAAK,SAAS,GAAG,IAC9B,MAAM,KAAK,KAAK,MAAM,GAAG,EAAE,IAAA,EAAO,gBAClC;AACJ,YAAM,cACJ,iBAAiB,WAAW,KAC5B,iBAAiB,SAAS,KAAK,IAAI,KAClC,OAAO,iBAAiB,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,GAAG;AAEnE,UAAI,YAAY,aAAa;AAC3B,cAAM,KAAK,IAAI;AAAA,MACjB,OAAO;AACL,iBAAS,KAAK;AAAA,UACZ,MAAM,KAAK;AAAA,UACX,QAAQ,CAAC,WACL,wBAAwB,KAAK,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC,QAC3D,iBAAiB,KAAK,QAAQ,OAAO,SAAS;AAAA,QAAA,CACnD;AAAA,MACH;AAAA,IACF,CAAC;AAED,WAAO,EAAE,OAAO,SAAA;AAAA,EAClB;AAEA,QAAM,WAAW,CAAC,MAAe,EAAE,SAAS,KAAK,EAAE,MAAM,GAAG,EAAE,IAAI,QAAQ;AAE1E,QAAM,mBAAmB,CAAC,MAA2C;AACnE,UAAM,WAAW,EAAE,OAAO;AAC1B,QAAI,CAAC,YAAY,SAAS,WAAW,EAAG;AAExC,UAAM,EAAE,OAAO,SAAA,IAAa,cAAc,MAAM,KAAK,QAAQ,CAAC;AAC9D,UAAM,eAAe,WAAW,CAAC,GAAG,OAAO,GAAG,KAAK,IAAI;AAEvD,aAAS,YAAY;AACrB,iBAAa,aAAa,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;AACtD,qBAAiB,QAAQ;AAEzB,QAAI,UAAU,QAAS,WAAU,QAAQ,QAAQ;AAAA,EACnD;AAEA,QAAM,aAAa,CAAC,UAAkB;AACpC,UAAM,eAAe,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,KAAK;AACvD,aAAS,YAAY;AACrB,iBAAa,aAAa,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;AAAA,EACxD;AAEA,QAAM,iBAAiB,MAAM;AAC3B,QAAI,UAAU,SAAS,EAAG,QAAO,WAAW,cAAc;AAC1D,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,CAAC,MAAuB;AAC7C,MAAE,eAAA;AACF,kBAAc,IAAI;AAAA,EACpB;AAEA,QAAM,kBAAkB,MAAM;AAC5B,kBAAc,KAAK;AAAA,EACrB;AAEA,QAAM,aAAa,CAAC,MAAuB;AACzC,MAAE,eAAA;AACF,kBAAc,KAAK;AACnB,UAAM,eAAe,EAAE,aAAa;AACpC,QAAI,aAAa,SAAS,GAAG;AAC3B,uBAAiB;AAAA,QACf,QAAQ,EAAE,OAAO,aAAA;AAAA,MAAa,CACQ;AAAA,IAC1C;AAAA,EACF;AAEA,QAAM,eAAe,YAAY;AAC/B,QAAI,CAAC,MAAM,UAAU,UAAW;AAChC,iBAAa,IAAI;AACjB,wBAAoB,CAAC;AACrB,qBAAiB,IAAI;AAErB,QAAI;AACF,UAAIN,oBAAmB,QAAW;AAChC,oBAAY,UAAU,YAAY,MAAM;AACtC,8BAAoB,CAAC,SAAS;AAC5B,gBAAI,QAAQ,KAAK;AACf,kBAAI,YAAY,QAAS,eAAc,YAAY,OAAO;AAC1D,qBAAO;AAAA,YACT;AACA,mBAAO,OAAO;AAAA,UAChB,CAAC;AAAA,QACH,GAAG,GAAG;AAAA,MACR;AAEA,YAAM,QAAQ,QAAQ,qCAAW,MAAM;AACvC,uBAAiB,oBAAoB;AAAA,IACvC,QAAQ;AACN,uBAAiB,kCAAkC;AAAA,IACrD,UAAA;AACE,UAAI,YAAY,SAAS;AACvB,YAAIA,oBAAmB,OAAW,qBAAoB,GAAG;AACzD,sBAAc,YAAY,OAAO;AACjC,oBAAY,UAAU;AAAA,MACxB;AACA,iBAAW,MAAM,aAAa,KAAK,GAAG,GAAG;AAAA,IAC3C;AAAA,EACF;AAEA,YAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,YAAY,QAAS,eAAc,YAAY,OAAO;AAAA,IAC5D;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,qBAAqB;AAAA,IACzB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,iBAAiB,SAAS,SAAS,WAAW,aAAa,CAAC,EAAE;AAAA,MAC9D,mBAAmB,SAAS,QAAQ,WAAW,eAAe,CAAC,EAAE;AAAA,MACjED,UAAS,SAAS;AAAA,MAClB,cAAc,SAAS;AAAA,MACvBG,aAAY,SAAS;AAAA,IAAA;AAAA,IAEzB;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAH;AAAA,MACA;AAAA,MACAG;AAAA,IAAA;AAAA,EACF;AAGF,QAAM,cACJ;AAAA,IACE,cAAc,GAAG,MAAM,iBAAiB;AAAA,IACxCH,SAAQ,GAAG,MAAM,WAAW;AAAA,EAAA,EAE3B,OAAO,OAAO,EACd,KAAK,GAAG,KAAK;AAElB,SACE;AAAA,IAACE;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAAF;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MAEb,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,UACX,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,aAAW,aAAa;AAAA,UACxB,eAAa,SAAS,GAAG,MAAM,aAAa;AAAA,UAE5C,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK;AAAA,gBACL,IAAI,GAAG,MAAM;AAAA,gBACb,MAAK;AAAA,gBACL;AAAA,gBACA;AAAA,gBACA,UAAU;AAAA,gBACV,WAAW,SAAS;AAAA,gBACpB;AAAA,gBACA,cAAY;AAAA,gBACZ,oBAAkB;AAAA,gBAClB,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,cAAA;AAAA,YAAA;AAAA,YAG5C,oBAAC,OAAA,EAAI,WAAW,SAAS,eACvB,UAAA;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN,MAAK;AAAA,gBACL;AAAA,gBACA,OAAOJ,SAAQ,UAAU;AAAA,gBACzB,WAAW,SAAS;AAAA,gBACpB,UAAU,aAAaG;AAAA,gBACvB;AAAA,gBACA,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,SAAS,MAAA;;AAAM,yCAAU,YAAV,mBAAmB;AAAA;AAAA,gBAClC,cACE,UAAU,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI;AAAA,gBAEhD,eAAa,SAAS,GAAG,MAAM,iBAAiB;AAAA,gBAE/C,UAAA,eAAA;AAAA,cAAe;AAAA,YAAA,GAEpB;AAAA,YAECI,eAAc,SAAS,0BACrB,OAAA,EAAI,WAAW,SAAS,eACvB,UAAA;AAAA,cAAA,oBAAC,KAAA,EAAE,WAAW,SAAS,eAAe,UAAA,mBAAe;AAAA,cACrD,oBAAC,MAAA,EAAG,WAAW,SAAS,cACrB,UAAAA,eAAc,IAAI,CAAC,MAAM,UACxB,qBAAC,MAAA,EAAe,WAAW,SAAS,cAClC,UAAA;AAAA,gBAAA,oBAAC,QAAA,EAAM,eAAK,KAAA,CAAK;AAAA,gBACjB,qBAAC,QAAA,EAAK,WAAW,SAAS,gBACvB,UAAA;AAAA,kBAAA;AAAA,kBAAI;AAAA,kBACF,KAAK;AAAA,gBAAA,EAAA,CACV;AAAA,cAAA,EAAA,GALO,KAMT,CACD,EAAA,CACH;AAAA,YAAA,GACF;AAAA,YAGD,UAAU,SAAS,KAClB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,SAAS;AAAA,gBACpB,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,gBAE7C,UAAA;AAAA,kBAAA,oBAAC,MAAA,EAAG,WAAW,SAAS,UACrB,UAAA,UAAU,IAAI,CAAC,MAAM,UACpB,qBAAC,MAAA,EAAe,WAAW,SAAS,cAClC,UAAA;AAAA,oBAAA,oBAAC,UAAM,UAAA,KAAA,CAAK;AAAA,oBACZ;AAAA,sBAACF;AAAA,sBAAA;AAAA,wBACC,MAAM;AAAA,wBACN,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,MAAK;AAAA,wBACL,SAAO;AAAA,wBACP,cAAY,UAAU,IAAI;AAAA,wBAC1B,SAAS,MAAM,WAAW,KAAK;AAAA,wBAC/B,WAAW,SAAS;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACtB,KAXO,KAYT,CACD,GACH;AAAA,kBACC,aACC;AAAA,oBAACC;AAAA,oBAAA;AAAA,sBACC;AAAA,sBACA,WAAW,SAAS;AAAA,sBACpB,UAAUL,mBAAkB;AAAA,sBAC5B,eAAeA,oBAAmB;AAAA,sBAClC,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAGhD,CAAC,aACA;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC;AAAA,sBACA,OAAOJ,SAAQ,UAAU;AAAA,sBACzB,UAAUG,aAAY,MAAM,WAAW;AAAA,sBACvC,SAAS;AAAA,sBACT,SAAS;AAAA,sBACT,MAAK;AAAA,sBACL,WAAW,SAAS;AAAA,sBACpB,eAAa,SAAS,GAAG,MAAM,mBAAmB;AAAA,sBACnD,UAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA;AAAA,YAAA;AAAA,YAIN;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,aAAU;AAAA,gBACV,eAAY;AAAA,gBACZ,eAAa,SAAS,GAAG,MAAM,oBAAoB;AAAA,gBAElD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AACA,eAAe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/T7B,MAAM,aAAwC,CAAC,UAAU;AACvD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;AACA,WAAW,cAAc;"}
|
|
1
|
+
{"version":3,"file":"FileUpload-BMMpH1El.js","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport { Button, IconButton, Progressbar, FormGroup } from \"@/index.next\";\r\nimport styles from \"./FileUpload.module.scss\";\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={Progressbar}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["error","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","rejectedFiles"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
5
5
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
6
6
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
7
7
|
;/* empty css */
|
|
8
|
-
const Button = require("./Button-
|
|
8
|
+
const Button = require("./Button-BI0LErYM.cjs");
|
|
9
9
|
const IconButton = require("./IconButton-2l-_HOMB.cjs");
|
|
10
|
-
const FormGroup = require("./FormGroup-
|
|
11
|
-
const ProgressBar = require("./ProgressBar-
|
|
10
|
+
const FormGroup = require("./FormGroup-Bg2QlTu7.cjs");
|
|
11
|
+
const ProgressBar = require("./ProgressBar-BMuv0kis.cjs");
|
|
12
12
|
const FileIcon = (props) => /* @__PURE__ */ require$$2.jsxs(
|
|
13
13
|
"svg",
|
|
14
14
|
{
|
|
@@ -372,46 +372,46 @@ const BaseFileUpload = ({
|
|
|
372
372
|
);
|
|
373
373
|
};
|
|
374
374
|
BaseFileUpload.displayName = "BaseFileUpload";
|
|
375
|
-
const noScroll = "
|
|
376
|
-
const errorMessage = "
|
|
377
|
-
const loadingContainer = "
|
|
378
|
-
const hideScrollbar = "
|
|
379
|
-
const sr_only = "
|
|
380
|
-
const fileUpload = "
|
|
381
|
-
const dragOver = "
|
|
382
|
-
const disabled = "
|
|
383
|
-
const uploadActions = "
|
|
384
|
-
const uploadControls = "
|
|
385
|
-
const uploadProgress = "
|
|
386
|
-
const uploadButton = "
|
|
387
|
-
const removeButton = "
|
|
388
|
-
const hiddenInput = "
|
|
389
|
-
const fileList = "
|
|
390
|
-
const fileListItem = "
|
|
391
|
-
const rejectedFiles = "
|
|
392
|
-
const rejectedLabel = "
|
|
393
|
-
const rejectedList = "
|
|
394
|
-
const rejectedItem = "
|
|
395
|
-
const roundNone = "
|
|
396
|
-
const roundSmall = "
|
|
397
|
-
const roundMedium = "
|
|
398
|
-
const roundLarge = "
|
|
399
|
-
const roundFull = "
|
|
400
|
-
const shadowNone = "
|
|
401
|
-
const shadowLight = "
|
|
402
|
-
const shadowMedium = "
|
|
403
|
-
const shadowStrong = "
|
|
404
|
-
const shadowIntense = "
|
|
405
|
-
const primary = "
|
|
406
|
-
const secondary = "
|
|
407
|
-
const tertiary = "
|
|
408
|
-
const quaternary = "
|
|
409
|
-
const clear = "
|
|
410
|
-
const success = "
|
|
411
|
-
const error = "
|
|
412
|
-
const warning = "
|
|
413
|
-
const spin = "
|
|
414
|
-
const pulse = "
|
|
375
|
+
const noScroll = "_noScroll_v3ptf_108";
|
|
376
|
+
const errorMessage = "_errorMessage_v3ptf_109";
|
|
377
|
+
const loadingContainer = "_loadingContainer_v3ptf_110";
|
|
378
|
+
const hideScrollbar = "_hideScrollbar_v3ptf_102";
|
|
379
|
+
const sr_only = "_sr_only_v3ptf_111";
|
|
380
|
+
const fileUpload = "_fileUpload_v3ptf_552";
|
|
381
|
+
const dragOver = "_dragOver_v3ptf_588";
|
|
382
|
+
const disabled = "_disabled_v3ptf_592";
|
|
383
|
+
const uploadActions = "_uploadActions_v3ptf_599";
|
|
384
|
+
const uploadControls = "_uploadControls_v3ptf_605";
|
|
385
|
+
const uploadProgress = "_uploadProgress_v3ptf_617";
|
|
386
|
+
const uploadButton = "_uploadButton_v3ptf_621";
|
|
387
|
+
const removeButton = "_removeButton_v3ptf_624";
|
|
388
|
+
const hiddenInput = "_hiddenInput_v3ptf_628";
|
|
389
|
+
const fileList = "_fileList_v3ptf_631";
|
|
390
|
+
const fileListItem = "_fileListItem_v3ptf_648";
|
|
391
|
+
const rejectedFiles = "_rejectedFiles_v3ptf_674";
|
|
392
|
+
const rejectedLabel = "_rejectedLabel_v3ptf_684";
|
|
393
|
+
const rejectedList = "_rejectedList_v3ptf_688";
|
|
394
|
+
const rejectedItem = "_rejectedItem_v3ptf_692";
|
|
395
|
+
const roundNone = "_roundNone_v3ptf_696";
|
|
396
|
+
const roundSmall = "_roundSmall_v3ptf_700";
|
|
397
|
+
const roundMedium = "_roundMedium_v3ptf_704";
|
|
398
|
+
const roundLarge = "_roundLarge_v3ptf_708";
|
|
399
|
+
const roundFull = "_roundFull_v3ptf_712";
|
|
400
|
+
const shadowNone = "_shadowNone_v3ptf_716";
|
|
401
|
+
const shadowLight = "_shadowLight_v3ptf_720";
|
|
402
|
+
const shadowMedium = "_shadowMedium_v3ptf_724";
|
|
403
|
+
const shadowStrong = "_shadowStrong_v3ptf_728";
|
|
404
|
+
const shadowIntense = "_shadowIntense_v3ptf_732";
|
|
405
|
+
const primary = "_primary_v3ptf_736";
|
|
406
|
+
const secondary = "_secondary_v3ptf_740";
|
|
407
|
+
const tertiary = "_tertiary_v3ptf_744";
|
|
408
|
+
const quaternary = "_quaternary_v3ptf_748";
|
|
409
|
+
const clear = "_clear_v3ptf_752";
|
|
410
|
+
const success = "_success_v3ptf_756";
|
|
411
|
+
const error = "_error_v3ptf_109";
|
|
412
|
+
const warning = "_warning_v3ptf_772";
|
|
413
|
+
const spin = "_spin_v3ptf_1";
|
|
414
|
+
const pulse = "_pulse_v3ptf_1";
|
|
415
415
|
const styles = {
|
|
416
416
|
noScroll,
|
|
417
417
|
errorMessage,
|
|
@@ -451,15 +451,15 @@ const styles = {
|
|
|
451
451
|
success,
|
|
452
452
|
error,
|
|
453
453
|
warning,
|
|
454
|
-
"fade-in": "_fade-
|
|
455
|
-
"slide-up": "_slide-
|
|
456
|
-
"spin-3d": "_spin-
|
|
454
|
+
"fade-in": "_fade-in_v3ptf_1",
|
|
455
|
+
"slide-up": "_slide-up_v3ptf_1",
|
|
456
|
+
"spin-3d": "_spin-3d_v3ptf_1",
|
|
457
457
|
spin,
|
|
458
458
|
pulse,
|
|
459
|
-
"fade-in-up": "_fade-in-
|
|
460
|
-
"progress-grow": "_progress-
|
|
461
|
-
"indeterminate-move": "_indeterminate-
|
|
462
|
-
"skeleton-loading": "_skeleton-
|
|
459
|
+
"fade-in-up": "_fade-in-up_v3ptf_1",
|
|
460
|
+
"progress-grow": "_progress-grow_v3ptf_1",
|
|
461
|
+
"indeterminate-move": "_indeterminate-move_v3ptf_1",
|
|
462
|
+
"skeleton-loading": "_skeleton-loading_v3ptf_1"
|
|
463
463
|
};
|
|
464
464
|
const FileUpload = (props) => {
|
|
465
465
|
return /* @__PURE__ */ require$$2.jsx(
|
|
@@ -476,4 +476,4 @@ const FileUpload = (props) => {
|
|
|
476
476
|
};
|
|
477
477
|
FileUpload.displayName = "FileUpload";
|
|
478
478
|
exports.FileUpload = FileUpload;
|
|
479
|
-
//# sourceMappingURL=FileUpload-
|
|
479
|
+
//# sourceMappingURL=FileUpload-Drm5_xEx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload-D43mGC5b.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport { Button, IconButton, Progressbar, FormGroup } from \"@/index.next\";\r\nimport styles from \"./FileUpload.module.scss\";\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={Progressbar}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","error","getDefaultTheme","getDefaultRounding","getDefaultShadow","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","useState","rejectedFiles","useRef","useMemo","useEffect","combineClassNames","capitalize","Progressbar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload-Drm5_xEx.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport { Button, IconButton, Progressbar, FormGroup } from \"@/index.next\";\r\nimport styles from \"./FileUpload.module.scss\";\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={Progressbar}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","error","getDefaultTheme","getDefaultRounding","getDefaultShadow","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","useState","rejectedFiles","useRef","useMemo","useEffect","combineClassNames","capitalize","Progressbar"],"mappings":"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"}
|
package/dist/next/FileUpload.js
CHANGED
|
@@ -176,38 +176,38 @@ const FooterBase = ({
|
|
|
176
176
|
] }) });
|
|
177
177
|
};
|
|
178
178
|
FooterBase.displayName = "FooterBase";
|
|
179
|
-
const noScroll = "
|
|
180
|
-
const errorMessage = "
|
|
181
|
-
const loadingContainer = "
|
|
182
|
-
const hideScrollbar = "
|
|
183
|
-
const sr_only = "
|
|
184
|
-
const footer = "
|
|
185
|
-
const primary = "
|
|
186
|
-
const secondary = "
|
|
187
|
-
const tertiary = "
|
|
188
|
-
const quaternary = "
|
|
189
|
-
const clear = "
|
|
190
|
-
const roundNone = "
|
|
191
|
-
const roundSmall = "
|
|
192
|
-
const roundMedium = "
|
|
193
|
-
const roundLarge = "
|
|
194
|
-
const roundFull = "
|
|
195
|
-
const shadowNone = "
|
|
196
|
-
const shadowLight = "
|
|
197
|
-
const shadowMedium = "
|
|
198
|
-
const shadowStrong = "
|
|
199
|
-
const shadowIntense = "
|
|
200
|
-
const attachmentStatic = "
|
|
201
|
-
const attachmentSticky = "
|
|
202
|
-
const attachmentFixed = "
|
|
203
|
-
const content = "
|
|
204
|
-
const left = "
|
|
205
|
-
const links = "
|
|
206
|
-
const logo = "
|
|
207
|
-
const social = "
|
|
208
|
-
const themeToggle = "
|
|
209
|
-
const spin = "
|
|
210
|
-
const pulse = "
|
|
179
|
+
const noScroll = "_noScroll_1r3ca_108";
|
|
180
|
+
const errorMessage = "_errorMessage_1r3ca_109";
|
|
181
|
+
const loadingContainer = "_loadingContainer_1r3ca_110";
|
|
182
|
+
const hideScrollbar = "_hideScrollbar_1r3ca_102";
|
|
183
|
+
const sr_only = "_sr_only_1r3ca_111";
|
|
184
|
+
const footer = "_footer_1r3ca_552";
|
|
185
|
+
const primary = "_primary_1r3ca_557";
|
|
186
|
+
const secondary = "_secondary_1r3ca_561";
|
|
187
|
+
const tertiary = "_tertiary_1r3ca_565";
|
|
188
|
+
const quaternary = "_quaternary_1r3ca_569";
|
|
189
|
+
const clear = "_clear_1r3ca_573";
|
|
190
|
+
const roundNone = "_roundNone_1r3ca_577";
|
|
191
|
+
const roundSmall = "_roundSmall_1r3ca_581";
|
|
192
|
+
const roundMedium = "_roundMedium_1r3ca_585";
|
|
193
|
+
const roundLarge = "_roundLarge_1r3ca_589";
|
|
194
|
+
const roundFull = "_roundFull_1r3ca_593";
|
|
195
|
+
const shadowNone = "_shadowNone_1r3ca_597";
|
|
196
|
+
const shadowLight = "_shadowLight_1r3ca_600";
|
|
197
|
+
const shadowMedium = "_shadowMedium_1r3ca_603";
|
|
198
|
+
const shadowStrong = "_shadowStrong_1r3ca_606";
|
|
199
|
+
const shadowIntense = "_shadowIntense_1r3ca_609";
|
|
200
|
+
const attachmentStatic = "_attachmentStatic_1r3ca_612";
|
|
201
|
+
const attachmentSticky = "_attachmentSticky_1r3ca_615";
|
|
202
|
+
const attachmentFixed = "_attachmentFixed_1r3ca_623";
|
|
203
|
+
const content = "_content_1r3ca_632";
|
|
204
|
+
const left = "_left_1r3ca_651";
|
|
205
|
+
const links = "_links_1r3ca_674";
|
|
206
|
+
const logo = "_logo_1r3ca_714";
|
|
207
|
+
const social = "_social_1r3ca_730";
|
|
208
|
+
const themeToggle = "_themeToggle_1r3ca_747";
|
|
209
|
+
const spin = "_spin_1r3ca_1";
|
|
210
|
+
const pulse = "_pulse_1r3ca_1";
|
|
211
211
|
const styles = {
|
|
212
212
|
noScroll,
|
|
213
213
|
errorMessage,
|
|
@@ -239,15 +239,15 @@ const styles = {
|
|
|
239
239
|
logo,
|
|
240
240
|
social,
|
|
241
241
|
themeToggle,
|
|
242
|
-
"fade-in": "_fade-
|
|
243
|
-
"slide-up": "_slide-
|
|
244
|
-
"spin-3d": "_spin-
|
|
242
|
+
"fade-in": "_fade-in_1r3ca_1",
|
|
243
|
+
"slide-up": "_slide-up_1r3ca_1",
|
|
244
|
+
"spin-3d": "_spin-3d_1r3ca_1",
|
|
245
245
|
spin,
|
|
246
246
|
pulse,
|
|
247
|
-
"fade-in-up": "_fade-in-
|
|
248
|
-
"progress-grow": "_progress-
|
|
249
|
-
"indeterminate-move": "_indeterminate-
|
|
250
|
-
"skeleton-loading": "_skeleton-
|
|
247
|
+
"fade-in-up": "_fade-in-up_1r3ca_1",
|
|
248
|
+
"progress-grow": "_progress-grow_1r3ca_1",
|
|
249
|
+
"indeterminate-move": "_indeterminate-move_1r3ca_1",
|
|
250
|
+
"skeleton-loading": "_skeleton-loading_1r3ca_1"
|
|
251
251
|
};
|
|
252
252
|
const Footer = (props) => {
|
|
253
253
|
return /* @__PURE__ */ jsx(
|
|
@@ -267,4 +267,4 @@ export {
|
|
|
267
267
|
Footer as F,
|
|
268
268
|
UserThemeSettings as U
|
|
269
269
|
};
|
|
270
|
-
//# sourceMappingURL=Footer-
|
|
270
|
+
//# sourceMappingURL=Footer-B6_LG958.js.map
|