boreal-ui 0.0.50 → 0.0.54
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-YD4BgNEU.js → Card-BjLC4t0w.js} +20 -47
- package/dist/core/Card-BjLC4t0w.js.map +1 -0
- package/dist/core/{Card-C57chjAP.cjs → Card-DRM65kM-.cjs} +20 -47
- package/dist/core/Card-DRM65kM-.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/{FileUpload-C0eHx1h8.js → FileUpload-9fIxslAo.js} +2 -2
- package/dist/core/{FileUpload-C0eHx1h8.js.map → FileUpload-9fIxslAo.js.map} +1 -1
- package/dist/core/{FileUpload-BJ3RJxT3.cjs → FileUpload-DbMxpH-U.cjs} +2 -2
- package/dist/core/{FileUpload-BJ3RJxT3.cjs.map → FileUpload-DbMxpH-U.cjs.map} +1 -1
- package/dist/core/FileUpload.cjs.js +1 -1
- package/dist/core/FileUpload.js +1 -1
- package/dist/core/{MessagePopup-B3lEfar7.js → MessagePopup-BMGIVKoJ.js} +4 -4
- package/dist/core/{MessagePopup-B3lEfar7.js.map → MessagePopup-BMGIVKoJ.js.map} +1 -1
- package/dist/core/{MessagePopup-CtdpuRFv.cjs → MessagePopup-DQQKRCGF.cjs} +4 -4
- package/dist/core/{MessagePopup-CtdpuRFv.cjs.map → MessagePopup-DQQKRCGF.cjs.map} +1 -1
- package/dist/core/MessagePopup.cjs.js +4 -0
- package/dist/core/MessagePopup.cjs.js.map +1 -0
- package/dist/core/MessagePopup.js +5 -0
- package/dist/core/MessagePopup.js.map +1 -0
- package/dist/core/{ProgressBar-DaA5vvnq.js → ProgressBar-BLcSyVgQ.js} +51 -21
- package/dist/core/ProgressBar-BLcSyVgQ.js.map +1 -0
- package/dist/core/{ProgressBar-BwjYOqoE.cjs → ProgressBar-BbIZLV1t.cjs} +50 -20
- package/dist/core/ProgressBar-BbIZLV1t.cjs.map +1 -0
- package/dist/core/ProgressBar.cjs.js +1 -1
- package/dist/core/ProgressBar.js +1 -1
- package/dist/core/{Taginput-BXCxdLf0.cjs → TagInput-BXCxdLf0.cjs} +1 -1
- package/dist/core/TagInput-BXCxdLf0.cjs.map +1 -0
- package/dist/core/{Taginput-CoxxwLXg.js → TagInput-CoxxwLXg.js} +1 -1
- package/dist/core/TagInput-CoxxwLXg.js.map +1 -0
- package/dist/core/TagInput.cjs.js +2 -2
- package/dist/core/TagInput.js +1 -1
- package/dist/core/boreal-ui.css +31 -0
- package/dist/core/index.cjs.js +7 -7
- package/dist/core/index.js +6 -6
- package/dist/next/{Avatar-B-Ws4Ueo.js → Avatar-B24bFFqY.js} +3 -3
- package/dist/next/{Avatar-B-Ws4Ueo.js.map → Avatar-B24bFFqY.js.map} +1 -1
- package/dist/next/{Avatar-B9sMyRWr.cjs → Avatar-CPaxiA0r.cjs} +3 -3
- package/dist/next/{Avatar-B9sMyRWr.cjs.map → Avatar-CPaxiA0r.cjs.map} +1 -1
- package/dist/next/Avatar.cjs.js +1 -1
- package/dist/next/Avatar.js +1 -1
- package/dist/next/{Breadcrumbs-CrKRsQf3.cjs → Breadcrumbs-BlFi63K8.cjs} +3 -3
- package/dist/next/{Breadcrumbs-CrKRsQf3.cjs.map → Breadcrumbs-BlFi63K8.cjs.map} +1 -1
- package/dist/next/{Breadcrumbs-ZK64MIGd.js → Breadcrumbs-D9BMYEZi.js} +3 -3
- package/dist/next/{Breadcrumbs-ZK64MIGd.js.map → Breadcrumbs-D9BMYEZi.js.map} +1 -1
- package/dist/next/Breadcrumbs.cjs.js +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Button-BI0LErYM.cjs → Button-DPoX7ahh.cjs} +2 -2
- package/dist/next/{Button-BI0LErYM.cjs.map → Button-DPoX7ahh.cjs.map} +1 -1
- package/dist/next/{Button-qs4m4zx0.js → Button-DhH3Gy0J.js} +2 -2
- package/dist/next/{Button-qs4m4zx0.js.map → Button-DhH3Gy0J.js.map} +1 -1
- package/dist/next/Button.cjs.js +1 -1
- package/dist/next/Button.js +1 -1
- package/dist/next/{Card-CNwE1Mkt.js → Card-4SKxHmOQ.js} +23 -50
- package/dist/next/Card-4SKxHmOQ.js.map +1 -0
- package/dist/next/{Card-CddrG8Xx.cjs → Card-BdzmlYGf.cjs} +23 -50
- package/dist/next/Card-BdzmlYGf.cjs.map +1 -0
- package/dist/next/Card.cjs.js +1 -1
- package/dist/next/Card.js +1 -1
- package/dist/next/{Chip-D2mvW5L7.js → Chip-BqMZEDW_.js} +2 -2
- package/dist/next/{Chip-D2mvW5L7.js.map → Chip-BqMZEDW_.js.map} +1 -1
- package/dist/next/{Chip-BWTBVAIE.cjs → Chip-CqvlZI-K.cjs} +2 -2
- package/dist/next/{Chip-BWTBVAIE.cjs.map → Chip-CqvlZI-K.cjs.map} +1 -1
- package/dist/next/Chip.cjs.js +1 -1
- package/dist/next/Chip.js +1 -1
- package/dist/next/{CommandPalette-BO6R9zQs.cjs → CommandPalette-C0NN-NWE.cjs} +2 -2
- package/dist/next/{CommandPalette-BO6R9zQs.cjs.map → CommandPalette-C0NN-NWE.cjs.map} +1 -1
- package/dist/next/{CommandPalette-CN0BiN0R.js → CommandPalette-vklqlRV0.js} +2 -2
- package/dist/next/{CommandPalette-CN0BiN0R.js.map → CommandPalette-vklqlRV0.js.map} +1 -1
- package/dist/next/CommandPalette.cjs.js +1 -1
- package/dist/next/CommandPalette.js +1 -1
- package/dist/next/{Dropdown-Czc7qKPn.js → Dropdown-BjxT8ivq.js} +2 -2
- package/dist/next/{Dropdown-Czc7qKPn.js.map → Dropdown-BjxT8ivq.js.map} +1 -1
- package/dist/next/{Dropdown-BnuZW883.cjs → Dropdown-IW2Ph6-e.cjs} +2 -2
- package/dist/next/{Dropdown-BnuZW883.cjs.map → Dropdown-IW2Ph6-e.cjs.map} +1 -1
- package/dist/next/Dropdown.cjs.js +1 -1
- package/dist/next/Dropdown.js +1 -1
- package/dist/next/{EmptyState-Bb90F-ej.cjs → EmptyState-BS6-CuHp.cjs} +2 -2
- package/dist/next/{EmptyState-Bb90F-ej.cjs.map → EmptyState-BS6-CuHp.cjs.map} +1 -1
- package/dist/next/{EmptyState-Brd4N36F.js → EmptyState-D_Gcrj_3.js} +2 -2
- package/dist/next/{EmptyState-Brd4N36F.js.map → EmptyState-D_Gcrj_3.js.map} +1 -1
- package/dist/next/EmptyState.cjs.js +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-Drm5_xEx.cjs → FileUpload-Cj99fQhe.cjs} +4 -4
- package/dist/next/{FileUpload-Drm5_xEx.cjs.map → FileUpload-Cj99fQhe.cjs.map} +1 -1
- package/dist/next/{FileUpload-BMMpH1El.js → FileUpload-St2eEaTn.js} +4 -4
- package/dist/next/{FileUpload-BMMpH1El.js.map → FileUpload-St2eEaTn.js.map} +1 -1
- package/dist/next/FileUpload.cjs.js +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/{Footer-EF2-ryvY.cjs → Footer-B3KTDWBR.cjs} +4 -4
- package/dist/next/{Footer-EF2-ryvY.cjs.map → Footer-B3KTDWBR.cjs.map} +1 -1
- package/dist/next/{Footer-B6_LG958.js → Footer-dtGtOPyR.js} +4 -4
- package/dist/next/{Footer-B6_LG958.js.map → Footer-dtGtOPyR.js.map} +1 -1
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{IconButton-BTUFKRZt.js → IconButton-Ct3YtlG9.js} +2 -2
- package/dist/next/{IconButton-BTUFKRZt.js.map → IconButton-Ct3YtlG9.js.map} +1 -1
- package/dist/next/{IconButton-2l-_HOMB.cjs → IconButton-aF7cTy19.cjs} +2 -2
- package/dist/next/{IconButton-2l-_HOMB.cjs.map → IconButton-aF7cTy19.cjs.map} +1 -1
- package/dist/next/IconButton.cjs.js +1 -1
- package/dist/next/IconButton.js +1 -1
- package/dist/next/{MessagePopup-WUBGyJ_F.js → MessagePopup-C4n0Qw7n.js} +6 -6
- package/dist/next/{MessagePopup-WUBGyJ_F.js.map → MessagePopup-C4n0Qw7n.js.map} +1 -1
- package/dist/next/{MessagePopup-DsquzWSn.cjs → MessagePopup-CwOeZAAM.cjs} +6 -6
- package/dist/next/{MessagePopup-DsquzWSn.cjs.map → MessagePopup-CwOeZAAM.cjs.map} +1 -1
- package/dist/next/MessagePopup.cjs.js +4 -0
- package/dist/next/MessagePopup.cjs.js.map +1 -0
- package/dist/next/MessagePopup.js +5 -0
- package/dist/next/MessagePopup.js.map +1 -0
- package/dist/next/{Modal-B2ilLCoi.js → Modal-CIzoBs9H.js} +2 -2
- package/dist/next/{Modal-B2ilLCoi.js.map → Modal-CIzoBs9H.js.map} +1 -1
- package/dist/next/{Modal-CVKVAEdd.cjs → Modal-DCNGQN70.cjs} +2 -2
- package/dist/next/{Modal-CVKVAEdd.cjs.map → Modal-DCNGQN70.cjs.map} +1 -1
- package/dist/next/Modal.cjs.js +1 -1
- package/dist/next/Modal.js +1 -1
- package/dist/next/{NavBar-DVEf0iJH.cjs → NavBar-DDu46bCF.cjs} +3 -3
- package/dist/next/{NavBar-DVEf0iJH.cjs.map → NavBar-DDu46bCF.cjs.map} +1 -1
- package/dist/next/{NavBar-CmvgkEZt.js → NavBar-DyI3rKSN.js} +3 -3
- package/dist/next/{NavBar-CmvgkEZt.js.map → NavBar-DyI3rKSN.js.map} +1 -1
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{NotificationCenter-CtM10CVj.js → NotificationCenter-BIuKaeXk.js} +3 -3
- package/dist/next/{NotificationCenter-CtM10CVj.js.map → NotificationCenter-BIuKaeXk.js.map} +1 -1
- package/dist/next/{NotificationCenter-CtL6rozQ.cjs → NotificationCenter-CzdOOnWg.cjs} +3 -3
- package/dist/next/{NotificationCenter-CtL6rozQ.cjs.map → NotificationCenter-CzdOOnWg.cjs.map} +1 -1
- package/dist/next/NotificationCenter.cjs.js +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-Bxxewb8I.cjs → Pager-C6vww_Lf.cjs} +3 -3
- package/dist/next/{Pager-Bxxewb8I.cjs.map → Pager-C6vww_Lf.cjs.map} +1 -1
- package/dist/next/{Pager-D0Mw7o7v.js → Pager-DkXLe3dd.js} +3 -3
- package/dist/next/{Pager-D0Mw7o7v.js.map → Pager-DkXLe3dd.js.map} +1 -1
- package/dist/next/Pager.cjs.js +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/ProgressBar-BM0Rp63R.js +188 -0
- package/dist/next/ProgressBar-BM0Rp63R.js.map +1 -0
- package/dist/next/ProgressBar-CDhjp_gn.cjs +187 -0
- package/dist/next/ProgressBar-CDhjp_gn.cjs.map +1 -0
- package/dist/next/ProgressBar.cjs.js +1 -1
- package/dist/next/ProgressBar.js +1 -1
- package/dist/next/{Sidebar-DajVSn82.cjs → Sidebar-CBC-Gu5d.cjs} +3 -3
- package/dist/next/{Sidebar-DajVSn82.cjs.map → Sidebar-CBC-Gu5d.cjs.map} +1 -1
- package/dist/next/{Sidebar-CJ4VrQIW.js → Sidebar-oJzZMxwu.js} +3 -3
- package/dist/next/{Sidebar-CJ4VrQIW.js.map → Sidebar-oJzZMxwu.js.map} +1 -1
- package/dist/next/Sidebar.cjs.js +1 -1
- package/dist/next/Sidebar.js +1 -1
- package/dist/next/{Stepper-BvA_ZAho.js → Stepper-DBwramgz.js} +2 -2
- package/dist/next/{Stepper-BvA_ZAho.js.map → Stepper-DBwramgz.js.map} +1 -1
- package/dist/next/{Stepper-D6X70Sr6.cjs → Stepper-YQqjSOG0.cjs} +2 -2
- package/dist/next/{Stepper-D6X70Sr6.cjs.map → Stepper-YQqjSOG0.cjs.map} +1 -1
- package/dist/next/Stepper.cjs.js +1 -1
- package/dist/next/Stepper.js +1 -1
- package/dist/next/{TagInput-DfNJiPKh.cjs → TagInput-B38cJqaG.cjs} +3 -3
- package/dist/next/TagInput-B38cJqaG.cjs.map +1 -0
- package/dist/next/{TagInput-DKzxPiwU.js → TagInput-BDbDZ1W8.js} +3 -3
- package/dist/next/TagInput-BDbDZ1W8.js.map +1 -0
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{TextInput-C1TUvbWx.cjs → TextInput-C3cLfd6E.cjs} +2 -2
- package/dist/next/{TextInput-C1TUvbWx.cjs.map → TextInput-C3cLfd6E.cjs.map} +1 -1
- package/dist/next/{TextInput-CyGkgvS3.js → TextInput-D68lumzk.js} +2 -2
- package/dist/next/{TextInput-CyGkgvS3.js.map → TextInput-D68lumzk.js.map} +1 -1
- package/dist/next/TextInput.cjs.js +1 -1
- package/dist/next/TextInput.js +1 -1
- package/dist/next/{Toolbar-PwnuYGDR.cjs → Toolbar-B-APlNjI.cjs} +2 -2
- package/dist/next/{Toolbar-PwnuYGDR.cjs.map → Toolbar-B-APlNjI.cjs.map} +1 -1
- package/dist/next/{Toolbar-wbusnAUV.js → Toolbar-DHyc9uqa.js} +2 -2
- package/dist/next/{Toolbar-wbusnAUV.js.map → Toolbar-DHyc9uqa.js.map} +1 -1
- package/dist/next/Toolbar.cjs.js +1 -1
- package/dist/next/Toolbar.js +1 -1
- package/dist/next/boreal-ui.css +122 -72
- package/dist/next/{image-BBS8QO15.js → image-B9PuwflE.js} +47 -3
- package/dist/next/image-B9PuwflE.js.map +1 -0
- package/dist/next/{image-A4nTeRaX.cjs → image-Bo_vHlt1.cjs} +47 -3
- package/dist/next/image-Bo_vHlt1.cjs.map +1 -0
- package/dist/next/index.cjs.js +23 -23
- package/dist/next/index.js +23 -23
- package/dist/next/{link-lNk_lOdS.cjs → link-B1N-q38H.cjs} +276 -49
- package/dist/next/link-B1N-q38H.cjs.map +1 -0
- package/dist/next/{link-CxWP3aXr.js → link-CyxHztrS.js} +276 -49
- package/dist/next/link-CyxHztrS.js.map +1 -0
- package/dist/next/{navigation-DxXFNXZM.js → navigation-C2hD8Jlk.js} +157 -199
- package/dist/next/navigation-C2hD8Jlk.js.map +1 -0
- package/dist/next/{navigation-CZU71Pmb.cjs → navigation-C3npGZmO.cjs} +157 -199
- package/dist/next/navigation-C3npGZmO.cjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Card/Card.types.d.ts +4 -4
- 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/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts +2 -2
- package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts.map +1 -1
- package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts.map +1 -1
- package/dist/types/components/MessagePopup/core/MessagePopup.d.ts +6 -0
- package/dist/types/components/{MessagePopUp → MessagePopup}/core/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/MessagePopup/next/MessagePopup.d.ts +5 -0
- package/dist/types/components/{MessagePopUp → MessagePopup}/next/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/ProgressBar.types.d.ts +10 -1
- package/dist/types/components/ProgressBar/ProgressBar.types.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/ProgressBarBase.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/core/ProgressBar.d.ts.map +1 -1
- package/dist/types/components/TagInput/{Taginput.types.d.ts → TagInput.types.d.ts} +1 -1
- package/dist/types/components/TagInput/{Taginput.types.d.ts.map → TagInput.types.d.ts.map} +1 -1
- package/dist/types/components/TagInput/TagInputBase.d.ts +1 -1
- package/dist/types/components/TagInput/core/TagInput.d.ts +6 -0
- package/dist/types/components/TagInput/core/{Taginput.d.ts.map → TagInput.d.ts.map} +1 -1
- package/dist/types/components/TagInput/next/TagInput.d.ts +1 -1
- package/dist/types/index.core.d.ts +2 -2
- package/dist/types/index.next.d.ts +1 -1
- package/dist/types/public.types.d.ts +2 -2
- package/package.json +8 -8
- package/dist/core/Card-C57chjAP.cjs.map +0 -1
- package/dist/core/Card-YD4BgNEU.js.map +0 -1
- package/dist/core/MessagePopUp.cjs.js +0 -4
- package/dist/core/MessagePopUp.cjs.js.map +0 -1
- package/dist/core/MessagePopUp.js +0 -5
- package/dist/core/MessagePopUp.js.map +0 -1
- package/dist/core/ProgressBar-BwjYOqoE.cjs.map +0 -1
- package/dist/core/ProgressBar-DaA5vvnq.js.map +0 -1
- package/dist/core/Taginput-BXCxdLf0.cjs.map +0 -1
- package/dist/core/Taginput-CoxxwLXg.js.map +0 -1
- package/dist/next/Card-CNwE1Mkt.js.map +0 -1
- package/dist/next/Card-CddrG8Xx.cjs.map +0 -1
- package/dist/next/MessagePopUp.cjs.js +0 -4
- package/dist/next/MessagePopUp.cjs.js.map +0 -1
- package/dist/next/MessagePopUp.js +0 -5
- package/dist/next/MessagePopUp.js.map +0 -1
- package/dist/next/ProgressBar-BMuv0kis.cjs +0 -151
- package/dist/next/ProgressBar-BMuv0kis.cjs.map +0 -1
- package/dist/next/ProgressBar-DuaWQouO.js +0 -152
- package/dist/next/ProgressBar-DuaWQouO.js.map +0 -1
- package/dist/next/TagInput-DKzxPiwU.js.map +0 -1
- package/dist/next/TagInput-DfNJiPKh.cjs.map +0 -1
- package/dist/next/image-A4nTeRaX.cjs.map +0 -1
- package/dist/next/image-BBS8QO15.js.map +0 -1
- package/dist/next/link-CxWP3aXr.js.map +0 -1
- package/dist/next/link-lNk_lOdS.cjs.map +0 -1
- package/dist/next/navigation-CZU71Pmb.cjs.map +0 -1
- package/dist/next/navigation-DxXFNXZM.js.map +0 -1
- package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts +0 -6
- package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts +0 -5
- package/dist/types/components/TagInput/core/Taginput.d.ts +0 -6
- /package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts +0 -0
|
@@ -6,8 +6,8 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
6
6
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
7
7
|
import { a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { B as Button } from "./Button-
|
|
10
|
-
import { I as IconButton } from "./IconButton-
|
|
9
|
+
import { B as Button } from "./Button-DhH3Gy0J.js";
|
|
10
|
+
import { I as IconButton } from "./IconButton-Ct3YtlG9.js";
|
|
11
11
|
const BaseMessagePopup = ({
|
|
12
12
|
message: message2,
|
|
13
13
|
onClose,
|
|
@@ -210,7 +210,7 @@ const styles = {
|
|
|
210
210
|
shadowStrong,
|
|
211
211
|
shadowIntense
|
|
212
212
|
};
|
|
213
|
-
const
|
|
213
|
+
const MessagePopup = (props) => {
|
|
214
214
|
return /* @__PURE__ */ jsx(
|
|
215
215
|
BaseMessagePopup,
|
|
216
216
|
{
|
|
@@ -221,8 +221,8 @@ const MessagePopUp = (props) => {
|
|
|
221
221
|
}
|
|
222
222
|
);
|
|
223
223
|
};
|
|
224
|
-
|
|
224
|
+
MessagePopup.displayName = "MessagePopup";
|
|
225
225
|
export {
|
|
226
|
-
|
|
226
|
+
MessagePopup as M
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=MessagePopup-
|
|
228
|
+
//# sourceMappingURL=MessagePopup-C4n0Qw7n.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagePopup-WUBGyJ_F.js","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseMessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const roots = Array.from(document.body.children);\r\n const restored: Array<HTMLElement> = [];\r\n roots.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n restored.push(el as HTMLElement);\r\n }\r\n });\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEscape);\r\n\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n restored.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (!dialogRef.current) return;\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n\r\n const target =\r\n firstButtonRef.current ||\r\n cancelButtonRef.current ||\r\n (closeBtnRef.current as HTMLElement | null) ||\r\n focusablesRef.current[0];\r\n target?.focus?.();\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n ref={cancelButtonRef}\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseMessagePopup.displayName = \"BaseMessagePopup\";\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nMessagePopUp.displayName = \"MessagePopUp\";\r\nexport default MessagePopUp;\r\n"],"names":["message","Button","IconButton","BaseMessagePopUp"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessagePopup-C4n0Qw7n.js","sources":["../../src/components/MessagePopup/MessagePopupBase.tsx","../../src/components/MessagePopup/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseMessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const roots = Array.from(document.body.children);\r\n const restored: Array<HTMLElement> = [];\r\n roots.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n restored.push(el as HTMLElement);\r\n }\r\n });\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEscape);\r\n\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n restored.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (!dialogRef.current) return;\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n\r\n const target =\r\n firstButtonRef.current ||\r\n cancelButtonRef.current ||\r\n (closeBtnRef.current as HTMLElement | null) ||\r\n focusablesRef.current[0];\r\n target?.focus?.();\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n ref={cancelButtonRef}\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseMessagePopup.displayName = \"BaseMessagePopup\";\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nMessagePopup.displayName = \"MessagePopup\";\r\nexport default MessagePopup;\r\n"],"names":["message","Button","IconButton","BaseMessagePopUp"],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
7
7
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
8
8
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
|
-
const Button = require("./Button-
|
|
11
|
-
const IconButton = require("./IconButton-
|
|
10
|
+
const Button = require("./Button-DPoX7ahh.cjs");
|
|
11
|
+
const IconButton = require("./IconButton-aF7cTy19.cjs");
|
|
12
12
|
const BaseMessagePopup = ({
|
|
13
13
|
message: message2,
|
|
14
14
|
onClose,
|
|
@@ -211,7 +211,7 @@ const styles = {
|
|
|
211
211
|
shadowStrong,
|
|
212
212
|
shadowIntense
|
|
213
213
|
};
|
|
214
|
-
const
|
|
214
|
+
const MessagePopup = (props) => {
|
|
215
215
|
return /* @__PURE__ */ require$$2.jsx(
|
|
216
216
|
BaseMessagePopup,
|
|
217
217
|
{
|
|
@@ -222,6 +222,6 @@ const MessagePopUp = (props) => {
|
|
|
222
222
|
}
|
|
223
223
|
);
|
|
224
224
|
};
|
|
225
|
-
|
|
226
|
-
exports.
|
|
227
|
-
//# sourceMappingURL=MessagePopup-
|
|
225
|
+
MessagePopup.displayName = "MessagePopup";
|
|
226
|
+
exports.MessagePopup = MessagePopup;
|
|
227
|
+
//# sourceMappingURL=MessagePopup-CwOeZAAM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagePopup-DsquzWSn.cjs","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseMessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const roots = Array.from(document.body.children);\r\n const restored: Array<HTMLElement> = [];\r\n roots.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n restored.push(el as HTMLElement);\r\n }\r\n });\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEscape);\r\n\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n restored.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (!dialogRef.current) return;\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n\r\n const target =\r\n firstButtonRef.current ||\r\n cancelButtonRef.current ||\r\n (closeBtnRef.current as HTMLElement | null) ||\r\n focusablesRef.current[0];\r\n target?.focus?.();\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n ref={cancelButtonRef}\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseMessagePopup.displayName = \"BaseMessagePopup\";\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nMessagePopUp.displayName = \"MessagePopUp\";\r\nexport default MessagePopUp;\r\n"],"names":["message","getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon","BaseMessagePopUp"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessagePopup-CwOeZAAM.cjs","sources":["../../src/components/MessagePopup/MessagePopupBase.tsx","../../src/components/MessagePopup/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseMessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const roots = Array.from(document.body.children);\r\n const restored: Array<HTMLElement> = [];\r\n roots.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n restored.push(el as HTMLElement);\r\n }\r\n });\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEscape);\r\n\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n restored.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (!dialogRef.current) return;\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n\r\n const target =\r\n firstButtonRef.current ||\r\n cancelButtonRef.current ||\r\n (closeBtnRef.current as HTMLElement | null) ||\r\n focusablesRef.current[0];\r\n target?.focus?.();\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n type=\"button\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n ref={cancelButtonRef}\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseMessagePopup.displayName = \"BaseMessagePopup\";\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nMessagePopup.displayName = \"MessagePopup\";\r\nexport default MessagePopup;\r\n"],"names":["message","getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon","BaseMessagePopUp"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagePopup.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagePopup.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -6,7 +6,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
6
6
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
7
7
|
import { a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { I as IconButton } from "./IconButton-
|
|
9
|
+
import { I as IconButton } from "./IconButton-Ct3YtlG9.js";
|
|
10
10
|
const BaseModal = ({
|
|
11
11
|
className = "",
|
|
12
12
|
children,
|
|
@@ -192,4 +192,4 @@ Modal.displayName = "Modal";
|
|
|
192
192
|
export {
|
|
193
193
|
Modal as M
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=Modal-
|
|
195
|
+
//# sourceMappingURL=Modal-CIzoBs9H.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal-
|
|
1
|
+
{"version":3,"file":"Modal-CIzoBs9H.js","sources":["../../src/components/Modal/ModalBase.tsx","../../src/components/Modal/next/Modal.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseModalProps } from \"./Modal.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseModal: React.FC<BaseModalProps> = ({\r\n className = \"\",\r\n children,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n onClose,\r\n \"data-testid\": testId = \"modal\",\r\n IconButton,\r\n classMap,\r\n portalId = \"widget-portal\",\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n\r\n const overlayRef = useRef<HTMLDivElement>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n\r\n const uid = useId();\r\n const labelId = `${uid}-label`;\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(portalId);\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = portalId;\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n const siblings = Array.from(document.body.children) as HTMLElement[];\r\n const hidden: HTMLElement[] = [];\r\n siblings.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n hidden.push(el);\r\n }\r\n });\r\n\r\n const handleEsc = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEsc);\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n document.removeEventListener(\"keydown\", handleEsc);\r\n hidden.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [portalId, onClose]);\r\n\r\n useEffect(() => {\r\n if (!isMounted) return;\r\n requestAnimationFrame(() => {\r\n setIsVisible(true);\r\n\r\n if (dialogRef.current) {\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n }\r\n\r\n (\r\n focusablesRef.current[0] ??\r\n closeBtnRef.current ??\r\n dialogRef.current\r\n )?.focus?.();\r\n });\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setIsVisible(false);\r\n setTimeout(() => onClose(), 200);\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const contentClassName = combineClassNames(\r\n classMap.content,\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n ref={overlayRef}\r\n className={combineClassNames(\r\n classMap.overlay,\r\n isVisible ? classMap.visible : classMap.hidden\r\n )}\r\n onClick={handleClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n ref={dialogRef}\r\n className={contentClassName}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={labelId}\r\n tabIndex={-1}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-content`}\r\n >\r\n <h2 id={labelId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Modal Dialog\r\n </h2>\r\n\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.closeButton}\r\n state=\"error\"\r\n size=\"small\"\r\n icon={CloseIcon}\r\n ariaLabel=\"Close modal\"\r\n onClick={(e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n handleClose();\r\n }}\r\n title=\"Close\"\r\n data-testid={`${testId}-close`}\r\n type=\"button\"\r\n />\r\n\r\n {children}\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseModal.displayName = \"BaseModal\";\r\nexport default BaseModal;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseModal from \"../ModalBase\";\r\nimport styles from \"./Modal.module.scss\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport { ModalProps } from \"../Modal.types\";\r\n\r\nconst Modal: React.FC<ModalProps> = (props) => {\r\n return <BaseModal {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\nModal.displayName = \"Modal\";\r\nexport default Modal;\r\n"],"names":["IconButton","hidden"],"mappings":";;;;;;;;;AAiBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,YAAY;AAAA,EACZ;AAAA,EACA,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,YAAAA;AAAA,EACA;AAAA,EACA,WAAW;AACb,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,IAAI;AAE3E,QAAM,aAAa,OAAuB,IAAI;AAC9C,QAAM,YAAY,OAAuB,IAAI;AAC7C,QAAM,cAAc,OAA0B,IAAI;AAClD,QAAM,YAAY,OAA2B,IAAI;AACjD,QAAM,gBAAgB,OAAsB,EAAE;AAE9C,QAAM,MAAM,MAAA;AACZ,QAAM,UAAU,GAAG,GAAG;AAEtB,YAAU,MAAM;AACd,iBAAa,IAAI;AACjB,cAAU,UAAW,SAAS,iBAAiC;AAE/D,QAAI,SAAS,SAAS,eAAe,QAAQ;AAC7C,QAAI,CAAC,QAAQ;AACX,eAAS,SAAS,cAAc,KAAK;AACrC,aAAO,KAAK;AACZ,eAAS,KAAK,YAAY,MAAM;AAAA,IAClC;AACA,qBAAiB,MAAM;AACvB,aAAS,KAAK,UAAU,IAAI,UAAU;AAEtC,UAAM,WAAW,MAAM,KAAK,SAAS,KAAK,QAAQ;AAClD,UAAMC,UAAwB,CAAA;AAC9B,aAAS,QAAQ,CAAC,OAAO;AACvB,UAAI,OAAO,UAAU,CAAC,GAAG,aAAa,aAAa,GAAG;AACpD,WAAG,aAAa,eAAe,MAAM;AACrC,QAAAA,QAAO,KAAK,EAAE;AAAA,MAChB;AAAA,IACF,CAAC;AAED,UAAM,YAAY,CAAC,MAAgC;AACjD,UAAI,EAAE,QAAQ,SAAU,SAAA;AAAA,IAC1B;AACA,aAAS,iBAAiB,WAAW,SAAS;AAE9C,WAAO,MAAM;;AACX,eAAS,KAAK,UAAU,OAAO,UAAU;AACzC,eAAS,oBAAoB,WAAW,SAAS;AACjD,MAAAA,QAAO,QAAQ,CAAC,OAAO,GAAG,gBAAgB,aAAa,CAAC;AACxD,4BAAU,YAAV,mBAAmB,UAAnB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,YAAU,MAAM;AACd,QAAI,CAAC,UAAW;AAChB,0BAAsB,MAAM;;AAC1B,mBAAa,IAAI;AAEjB,UAAI,UAAU,SAAS;AACrB,sBAAc,UAAU,MAAM;AAAA,UAC5B,UAAU,QAAQ;AAAA,YAChB;AAAA,UAAA;AAAA,QACF,EACA,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,UAAU,KAAK,GAAG,aAAa,EAAE;AAAA,MACrE;AAEA,OACE,yBAAc,QAAQ,CAAC,KACvB,YAAY,WACZ,UAAU,YAFV,mBAGC,UAHD;AAAA,IAIJ,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,gBAAgB,CAAC,MAAqC;AAC1D,QAAI,EAAE,QAAQ,MAAO;AACrB,UAAM,OAAO,cAAc;AAC3B,QAAI,CAAC,KAAK,OAAQ;AAElB,UAAM,QAAQ,KAAK,CAAC;AACpB,UAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AAEjC,QAAI,EAAE,YAAY,SAAS,kBAAkB,OAAO;AAClD,QAAE,eAAA;AACF,WAAK,MAAA;AAAA,IACP,WAAW,CAAC,EAAE,YAAY,SAAS,kBAAkB,MAAM;AACzD,QAAE,eAAA;AACF,YAAM,MAAA;AAAA,IACR;AAAA,EACF;AAEA,QAAM,cAAc,MAAM;AACxB,iBAAa,KAAK;AAClB,eAAW,MAAM,QAAA,GAAW,GAAG;AAAA,EACjC;AAEA,MAAI,CAAC,aAAa,CAAC,cAAe,QAAO;AAEzC,QAAM,mBAAmB;AAAA,IACvB,SAAS;AAAA,IACT;AAAA,IACA,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,IAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,EAAA;AAGrD,SAAO,SAAS;AAAA,IACd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,WAAW;AAAA,UACT,SAAS;AAAA,UACT,YAAY,SAAS,UAAU,SAAS;AAAA,QAAA;AAAA,QAE1C,SAAS;AAAA,QACT,MAAK;AAAA,QACL,eAAa;AAAA,QAEb,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,WAAW;AAAA,YACX,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,YAClB,MAAK;AAAA,YACL,cAAW;AAAA,YACX,mBAAiB;AAAA,YACjB,UAAU;AAAA,YACV,WAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAEtB,UAAA;AAAA,cAAA,oBAAC,QAAG,IAAI,SAAS,WAAW,SAAS,UAAU,WAAW,UAAA,eAAA,CAE1D;AAAA,cAEA;AAAA,gBAACD;AAAA,gBAAA;AAAA,kBACC,KAAK;AAAA,kBACL,WAAW,SAAS;AAAA,kBACpB,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,MAAM;AAAA,kBACN,WAAU;AAAA,kBACV,SAAS,CAAC,MAAwB;AAChC,sBAAE,gBAAA;AACF,gCAAA;AAAA,kBACF;AAAA,kBACA,OAAM;AAAA,kBACN,eAAa,GAAG,MAAM;AAAA,kBACtB,MAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGN;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA;AAEJ;AAEA,UAAU,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzKxB,MAAM,QAA8B,CAAC,UAAU;AAC7C,6BAAQ,WAAA,EAAW,GAAG,OAAO,YAAwB,UAAU,QAAQ;AACzE;AACA,MAAM,cAAc;"}
|
|
@@ -7,7 +7,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
7
7
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
8
8
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
|
-
const IconButton = require("./IconButton-
|
|
10
|
+
const IconButton = require("./IconButton-aF7cTy19.cjs");
|
|
11
11
|
const BaseModal = ({
|
|
12
12
|
className = "",
|
|
13
13
|
children,
|
|
@@ -191,4 +191,4 @@ const Modal = (props) => {
|
|
|
191
191
|
};
|
|
192
192
|
Modal.displayName = "Modal";
|
|
193
193
|
exports.Modal = Modal;
|
|
194
|
-
//# sourceMappingURL=Modal-
|
|
194
|
+
//# sourceMappingURL=Modal-DCNGQN70.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal-
|
|
1
|
+
{"version":3,"file":"Modal-DCNGQN70.cjs","sources":["../../src/components/Modal/ModalBase.tsx","../../src/components/Modal/next/Modal.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { BaseModalProps } from \"./Modal.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseModal: React.FC<BaseModalProps> = ({\r\n className = \"\",\r\n children,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n onClose,\r\n \"data-testid\": testId = \"modal\",\r\n IconButton,\r\n classMap,\r\n portalId = \"widget-portal\",\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n\r\n const overlayRef = useRef<HTMLDivElement>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const closeBtnRef = useRef<HTMLButtonElement>(null);\r\n const openerRef = useRef<HTMLElement | null>(null);\r\n const focusablesRef = useRef<HTMLElement[]>([]);\r\n\r\n const uid = useId();\r\n const labelId = `${uid}-label`;\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n openerRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n let portal = document.getElementById(portalId);\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = portalId;\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n const siblings = Array.from(document.body.children) as HTMLElement[];\r\n const hidden: HTMLElement[] = [];\r\n siblings.forEach((el) => {\r\n if (el !== portal && !el.hasAttribute(\"aria-hidden\")) {\r\n el.setAttribute(\"aria-hidden\", \"true\");\r\n hidden.push(el);\r\n }\r\n });\r\n\r\n const handleEsc = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n document.addEventListener(\"keydown\", handleEsc);\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n document.removeEventListener(\"keydown\", handleEsc);\r\n hidden.forEach((el) => el.removeAttribute(\"aria-hidden\"));\r\n openerRef.current?.focus?.();\r\n };\r\n }, [portalId, onClose]);\r\n\r\n useEffect(() => {\r\n if (!isMounted) return;\r\n requestAnimationFrame(() => {\r\n setIsVisible(true);\r\n\r\n if (dialogRef.current) {\r\n focusablesRef.current = Array.from(\r\n dialogRef.current.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n )\r\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.tabIndex !== -1);\r\n }\r\n\r\n (\r\n focusablesRef.current[0] ??\r\n closeBtnRef.current ??\r\n dialogRef.current\r\n )?.focus?.();\r\n });\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n const list = focusablesRef.current;\r\n if (!list.length) return;\r\n\r\n const first = list[0];\r\n const last = list[list.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setIsVisible(false);\r\n setTimeout(() => onClose(), 200);\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const contentClassName = combineClassNames(\r\n classMap.content,\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n ref={overlayRef}\r\n className={combineClassNames(\r\n classMap.overlay,\r\n isVisible ? classMap.visible : classMap.hidden\r\n )}\r\n onClick={handleClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n ref={dialogRef}\r\n className={contentClassName}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={labelId}\r\n tabIndex={-1}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-content`}\r\n >\r\n <h2 id={labelId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Modal Dialog\r\n </h2>\r\n\r\n <IconButton\r\n ref={closeBtnRef}\r\n className={classMap.closeButton}\r\n state=\"error\"\r\n size=\"small\"\r\n icon={CloseIcon}\r\n ariaLabel=\"Close modal\"\r\n onClick={(e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n handleClose();\r\n }}\r\n title=\"Close\"\r\n data-testid={`${testId}-close`}\r\n type=\"button\"\r\n />\r\n\r\n {children}\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nBaseModal.displayName = \"BaseModal\";\r\nexport default BaseModal;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseModal from \"../ModalBase\";\r\nimport styles from \"./Modal.module.scss\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport { ModalProps } from \"../Modal.types\";\r\n\r\nconst Modal: React.FC<ModalProps> = (props) => {\r\n return <BaseModal {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\nModal.displayName = \"Modal\";\r\nexport default Modal;\r\n"],"names":["getDefaultRounding","getDefaultShadow","IconButton","useState","useRef","useId","useEffect","hidden","combineClassNames","capitalize","jsx","jsxs","CloseIcon"],"mappings":"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"}
|
package/dist/next/Modal.cjs.js
CHANGED
package/dist/next/Modal.js
CHANGED
|
@@ -4,8 +4,8 @@ const React = require("react");
|
|
|
4
4
|
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
|
-
const link = require("./link-
|
|
8
|
-
const navigation = require("./navigation-
|
|
7
|
+
const link = require("./link-B1N-q38H.cjs");
|
|
8
|
+
const navigation = require("./navigation-C3npGZmO.cjs");
|
|
9
9
|
const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
|
|
10
10
|
const slugify = (s) => s.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^a-z0-9]/g, "");
|
|
11
11
|
const BaseNavBar = ({
|
|
@@ -171,4 +171,4 @@ const NavBar = ({
|
|
|
171
171
|
};
|
|
172
172
|
NavBar.displayName = "NavBar";
|
|
173
173
|
exports.NavBar = NavBar;
|
|
174
|
-
//# sourceMappingURL=NavBar-
|
|
174
|
+
//# sourceMappingURL=NavBar-DDu46bCF.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar-
|
|
1
|
+
{"version":3,"file":"NavBar-DDu46bCF.cjs","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/next/NavBar.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\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\nimport { BaseNavBarProps } from \"./NavBar.types\";\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\nconst slugify = (s: string) =>\r\n s\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9]/g, \"\");\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme, className]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const current = normalizePath(currentPath ?? \"/\");\r\n\r\n return (\r\n <nav\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n <ul className={classMap.list}>\r\n {items.map((item) => {\r\n const isActive = normalizePath(item.path) === current;\r\n const slug = slugify(item.label || item.path);\r\n\r\n return (\r\n <li key={`${item.path}-${slug}`} className={classMap.listItem}>\r\n <LinkWrapper\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap.item_active\r\n )}\r\n data-testid={`${testId}-nav-item-${slug}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <span className={classMap.linkContent}>\r\n {item.icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${slug}`}\r\n >\r\n {item.icon}\r\n </span>\r\n )}\r\n <span className={classMap.label}>{item.label}</span>\r\n </span>\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n\r\nBaseNavBar.displayName = \"BaseNavBar\";\r\nexport default BaseNavBar;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport Link from \"next/link\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport styles from \"./NavBar.module.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst NavBar: React.FC<NavBarProps & { mockPath?: string }> = ({\r\n mockPath,\r\n ...props\r\n}) => {\r\n const pathname = usePathname();\r\n const resolvedPath = mockPath ?? pathname;\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={resolvedPath || \"/\"}\r\n LinkWrapper={({\r\n href,\r\n children,\r\n className,\r\n isActive,\r\n \"data-testid\": testId,\r\n }) => (\r\n <Link\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nNavBar.displayName = \"NavBar\";\r\nexport default NavBar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useMemo","combineClassNames","capitalize","jsx","item","jsxs","usePathname","Link"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { useMemo } from "react";
|
|
|
3
3
|
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
4
4
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
5
5
|
import { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
|
|
6
|
-
import { L as Link } from "./link-
|
|
7
|
-
import { n as navigationExports } from "./navigation-
|
|
6
|
+
import { L as Link } from "./link-CyxHztrS.js";
|
|
7
|
+
import { n as navigationExports } from "./navigation-C2hD8Jlk.js";
|
|
8
8
|
const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
|
|
9
9
|
const slugify = (s) => s.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^a-z0-9]/g, "");
|
|
10
10
|
const BaseNavBar = ({
|
|
@@ -172,4 +172,4 @@ NavBar.displayName = "NavBar";
|
|
|
172
172
|
export {
|
|
173
173
|
NavBar as N
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=NavBar-
|
|
175
|
+
//# sourceMappingURL=NavBar-DyI3rKSN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar-
|
|
1
|
+
{"version":3,"file":"NavBar-DyI3rKSN.js","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/next/NavBar.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\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\nimport { BaseNavBarProps } from \"./NavBar.types\";\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\nconst slugify = (s: string) =>\r\n s\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9]/g, \"\");\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme, className]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const current = normalizePath(currentPath ?? \"/\");\r\n\r\n return (\r\n <nav\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n <ul className={classMap.list}>\r\n {items.map((item) => {\r\n const isActive = normalizePath(item.path) === current;\r\n const slug = slugify(item.label || item.path);\r\n\r\n return (\r\n <li key={`${item.path}-${slug}`} className={classMap.listItem}>\r\n <LinkWrapper\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap.item_active\r\n )}\r\n data-testid={`${testId}-nav-item-${slug}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <span className={classMap.linkContent}>\r\n {item.icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${slug}`}\r\n >\r\n {item.icon}\r\n </span>\r\n )}\r\n <span className={classMap.label}>{item.label}</span>\r\n </span>\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n\r\nBaseNavBar.displayName = \"BaseNavBar\";\r\nexport default BaseNavBar;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport Link from \"next/link\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport styles from \"./NavBar.module.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst NavBar: React.FC<NavBarProps & { mockPath?: string }> = ({\r\n mockPath,\r\n ...props\r\n}) => {\r\n const pathname = usePathname();\r\n const resolvedPath = mockPath ?? pathname;\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={resolvedPath || \"/\"}\r\n LinkWrapper={({\r\n href,\r\n children,\r\n className,\r\n isActive,\r\n \"data-testid\": testId,\r\n }) => (\r\n <Link\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nNavBar.displayName = \"NavBar\";\r\nexport default NavBar;\r\n"],"names":["item","usePathname"],"mappings":"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"}
|
package/dist/next/NavBar.cjs.js
CHANGED
package/dist/next/NavBar.js
CHANGED
|
@@ -5,8 +5,8 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
5
5
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
6
6
|
import { a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
import { B as Button } from "./Button-
|
|
9
|
-
import { I as IconButton } from "./IconButton-
|
|
8
|
+
import { B as Button } from "./Button-DhH3Gy0J.js";
|
|
9
|
+
import { I as IconButton } from "./IconButton-Ct3YtlG9.js";
|
|
10
10
|
var DefaultContext = {
|
|
11
11
|
color: void 0,
|
|
12
12
|
size: void 0,
|
|
@@ -421,4 +421,4 @@ export {
|
|
|
421
421
|
NotificationCenter as N,
|
|
422
422
|
themeIcons as t
|
|
423
423
|
};
|
|
424
|
-
//# sourceMappingURL=NotificationCenter-
|
|
424
|
+
//# sourceMappingURL=NotificationCenter-BIuKaeXk.js.map
|