@salt-ds/core 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/salt-core.css +181 -1
- package/dist-cjs/dialog/Dialog.css.js +6 -0
- package/dist-cjs/dialog/Dialog.css.js.map +1 -0
- package/dist-cjs/dialog/Dialog.js +120 -0
- package/dist-cjs/dialog/Dialog.js.map +1 -0
- package/dist-cjs/dialog/DialogActions.css.js +6 -0
- package/dist-cjs/dialog/DialogActions.css.js.map +1 -0
- package/dist-cjs/dialog/DialogActions.js +37 -0
- package/dist-cjs/dialog/DialogActions.js.map +1 -0
- package/dist-cjs/dialog/DialogCloseButton.css.js +6 -0
- package/dist-cjs/dialog/DialogCloseButton.css.js.map +1 -0
- package/dist-cjs/dialog/DialogCloseButton.js +44 -0
- package/dist-cjs/dialog/DialogCloseButton.js.map +1 -0
- package/dist-cjs/dialog/DialogContent.css.js +6 -0
- package/dist-cjs/dialog/DialogContent.css.js.map +1 -0
- package/dist-cjs/dialog/DialogContent.js +49 -0
- package/dist-cjs/dialog/DialogContent.js.map +1 -0
- package/dist-cjs/dialog/DialogContext.js +17 -0
- package/dist-cjs/dialog/DialogContext.js.map +1 -0
- package/dist-cjs/dialog/DialogHeader.css.js +6 -0
- package/dist-cjs/dialog/DialogHeader.css.js.map +1 -0
- package/dist-cjs/dialog/DialogHeader.js +79 -0
- package/dist-cjs/dialog/DialogHeader.js.map +1 -0
- package/dist-cjs/index.js +14 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
- package/dist-cjs/navigation-item/NavigationItem.css.js +1 -1
- package/dist-cjs/panel/Panel.css.js +1 -1
- package/dist-cjs/tooltip/useTooltip.js +5 -2
- package/dist-cjs/tooltip/useTooltip.js.map +1 -1
- package/dist-es/dialog/Dialog.css.js +4 -0
- package/dist-es/dialog/Dialog.css.js.map +1 -0
- package/dist-es/dialog/Dialog.js +115 -0
- package/dist-es/dialog/Dialog.js.map +1 -0
- package/dist-es/dialog/DialogActions.css.js +4 -0
- package/dist-es/dialog/DialogActions.css.js.map +1 -0
- package/dist-es/dialog/DialogActions.js +33 -0
- package/dist-es/dialog/DialogActions.js.map +1 -0
- package/dist-es/dialog/DialogCloseButton.css.js +4 -0
- package/dist-es/dialog/DialogCloseButton.css.js.map +1 -0
- package/dist-es/dialog/DialogCloseButton.js +36 -0
- package/dist-es/dialog/DialogCloseButton.js.map +1 -0
- package/dist-es/dialog/DialogContent.css.js +4 -0
- package/dist-es/dialog/DialogContent.css.js.map +1 -0
- package/dist-es/dialog/DialogContent.js +45 -0
- package/dist-es/dialog/DialogContent.js.map +1 -0
- package/dist-es/dialog/DialogContext.js +12 -0
- package/dist-es/dialog/DialogContext.js.map +1 -0
- package/dist-es/dialog/DialogHeader.css.js +4 -0
- package/dist-es/dialog/DialogHeader.css.js.map +1 -0
- package/dist-es/dialog/DialogHeader.js +71 -0
- package/dist-es/dialog/DialogHeader.js.map +1 -0
- package/dist-es/index.js +6 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/multiline-input/MultilineInput.css.js +1 -1
- package/dist-es/navigation-item/NavigationItem.css.js +1 -1
- package/dist-es/panel/Panel.css.js +1 -1
- package/dist-es/tooltip/useTooltip.js +6 -3
- package/dist-es/tooltip/useTooltip.js.map +1 -1
- package/dist-types/dialog/Dialog.d.ts +46 -0
- package/dist-types/dialog/DialogActions.d.ts +8 -0
- package/dist-types/dialog/DialogCloseButton.d.ts +2 -0
- package/dist-types/dialog/DialogContent.d.ts +8 -0
- package/dist-types/dialog/DialogContext.d.ts +8 -0
- package/dist-types/dialog/DialogHeader.d.ts +22 -0
- package/dist-types/dialog/index.d.ts +6 -0
- package/dist-types/index.d.ts +1 -0
- package/package.json +1 -1
package/css/salt-core.css
CHANGED
|
@@ -668,6 +668,183 @@ a:link .saltInteractableCard * {
|
|
|
668
668
|
color: var(--salt-content-primary-foreground);
|
|
669
669
|
}
|
|
670
670
|
|
|
671
|
+
/* src/dialog/Dialog.css */
|
|
672
|
+
.saltDialog {
|
|
673
|
+
position: fixed;
|
|
674
|
+
left: 0;
|
|
675
|
+
right: 0;
|
|
676
|
+
top: 0;
|
|
677
|
+
bottom: 0;
|
|
678
|
+
margin: auto;
|
|
679
|
+
display: flex;
|
|
680
|
+
flex-direction: column;
|
|
681
|
+
padding-top: var(--salt-spacing-300);
|
|
682
|
+
padding-bottom: var(--salt-spacing-300);
|
|
683
|
+
background: var(--salt-container-primary-background);
|
|
684
|
+
box-shadow: var(--salt-overlayable-shadow-modal);
|
|
685
|
+
overflow-y: auto;
|
|
686
|
+
z-index: var(--salt-zIndex-drawer);
|
|
687
|
+
height: min-content;
|
|
688
|
+
border: var(--salt-container-borderStyle) var(--salt-separable-tertiary-borderColor) var(--salt-size-border);
|
|
689
|
+
box-sizing: border-box;
|
|
690
|
+
border-radius: var(--salt-palette-corner, 0);
|
|
691
|
+
}
|
|
692
|
+
.saltDialog-info {
|
|
693
|
+
border-color: var(--salt-status-info-borderColor);
|
|
694
|
+
}
|
|
695
|
+
.saltDialog-error {
|
|
696
|
+
border-color: var(--salt-status-error-borderColor);
|
|
697
|
+
}
|
|
698
|
+
.saltDialog-warning {
|
|
699
|
+
border-color: var(--salt-status-warning-borderColor);
|
|
700
|
+
}
|
|
701
|
+
.saltDialog-success {
|
|
702
|
+
border-color: var(--salt-status-success-borderColor);
|
|
703
|
+
}
|
|
704
|
+
.saltDialog.saltDialog-enterAnimation {
|
|
705
|
+
animation: var(--salt-animation-fade-in-center);
|
|
706
|
+
}
|
|
707
|
+
.saltDialog.saltDialog-exitAnimation {
|
|
708
|
+
animation: var(--salt-animation-fade-out-back);
|
|
709
|
+
}
|
|
710
|
+
.saltDialog-small-xs {
|
|
711
|
+
width: 100%;
|
|
712
|
+
max-height: 48%;
|
|
713
|
+
}
|
|
714
|
+
.saltDialog-small-sm {
|
|
715
|
+
width: 56%;
|
|
716
|
+
max-height: 48%;
|
|
717
|
+
}
|
|
718
|
+
.saltDialog-small-md {
|
|
719
|
+
width: 36%;
|
|
720
|
+
max-height: 48%;
|
|
721
|
+
}
|
|
722
|
+
.saltDialog-small-lg {
|
|
723
|
+
width: 24%;
|
|
724
|
+
max-height: 48%;
|
|
725
|
+
}
|
|
726
|
+
.saltDialog-small-xl {
|
|
727
|
+
width: 24%;
|
|
728
|
+
max-height: 48%;
|
|
729
|
+
}
|
|
730
|
+
.saltDialog-medium-xs {
|
|
731
|
+
width: 100%;
|
|
732
|
+
max-height: 72%;
|
|
733
|
+
}
|
|
734
|
+
.saltDialog-medium-sm {
|
|
735
|
+
width: 84%;
|
|
736
|
+
max-height: 72%;
|
|
737
|
+
}
|
|
738
|
+
.saltDialog-medium-md {
|
|
739
|
+
width: 68%;
|
|
740
|
+
max-height: 72%;
|
|
741
|
+
}
|
|
742
|
+
.saltDialog-medium-lg {
|
|
743
|
+
width: 48%;
|
|
744
|
+
max-height: 72%;
|
|
745
|
+
}
|
|
746
|
+
.saltDialog-medium-xl {
|
|
747
|
+
width: 48%;
|
|
748
|
+
max-height: 72%;
|
|
749
|
+
}
|
|
750
|
+
.saltDialog-large-xs {
|
|
751
|
+
width: 100%;
|
|
752
|
+
max-height: 84%;
|
|
753
|
+
}
|
|
754
|
+
.saltDialog-large-sm {
|
|
755
|
+
width: 96%;
|
|
756
|
+
max-height: 84%;
|
|
757
|
+
}
|
|
758
|
+
.saltDialog-large-md {
|
|
759
|
+
width: 84%;
|
|
760
|
+
max-height: 84%;
|
|
761
|
+
}
|
|
762
|
+
.saltDialog-large-lg {
|
|
763
|
+
width: 72%;
|
|
764
|
+
max-height: 84%;
|
|
765
|
+
}
|
|
766
|
+
.saltDialog-large-xl {
|
|
767
|
+
width: 72%;
|
|
768
|
+
max-height: 84%;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/* src/dialog/DialogActions.css */
|
|
772
|
+
.saltDialogActions {
|
|
773
|
+
padding: var(--salt-spacing-300);
|
|
774
|
+
padding-bottom: 0;
|
|
775
|
+
display: flex;
|
|
776
|
+
justify-content: flex-end;
|
|
777
|
+
gap: var(--salt-spacing-100);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
/* src/dialog/DialogCloseButton.css */
|
|
781
|
+
.saltButton.saltDialogCloseButton {
|
|
782
|
+
position: absolute;
|
|
783
|
+
top: 0;
|
|
784
|
+
right: 0;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
/* src/dialog/DialogContent.css */
|
|
788
|
+
.saltDialogContent {
|
|
789
|
+
color: var(--salt-content-primary-foreground);
|
|
790
|
+
min-height: var(--salt-text-lineHeight);
|
|
791
|
+
overflow-y: auto;
|
|
792
|
+
background: var(--salt-container-primary-background);
|
|
793
|
+
padding-bottom: var(--salt-spacing-50);
|
|
794
|
+
margin-left: var(--salt-spacing-200);
|
|
795
|
+
margin-right: var(--salt-spacing-300);
|
|
796
|
+
padding-right: var(--salt-spacing-300);
|
|
797
|
+
padding-left: var(--salt-spacing-100);
|
|
798
|
+
border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) transparent;
|
|
799
|
+
box-shadow: none;
|
|
800
|
+
}
|
|
801
|
+
.saltDialogContent-scroll {
|
|
802
|
+
border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-tertiary-borderColor);
|
|
803
|
+
box-shadow: var(--salt-overlayable-shadow-scroll);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
/* src/dialog/DialogHeader.css */
|
|
807
|
+
.saltDialogHeader {
|
|
808
|
+
padding-bottom: var(--salt-spacing-100);
|
|
809
|
+
padding-left: var(--salt-spacing-300);
|
|
810
|
+
padding-right: var(--salt-spacing-300);
|
|
811
|
+
align-items: center;
|
|
812
|
+
display: flex;
|
|
813
|
+
flex-direction: row;
|
|
814
|
+
gap: var(--salt-spacing-100);
|
|
815
|
+
box-sizing: border-box;
|
|
816
|
+
}
|
|
817
|
+
.saltDialogHeader-header {
|
|
818
|
+
margin: 0;
|
|
819
|
+
}
|
|
820
|
+
.saltDialogHeader .saltStatusIndicator.saltIcon {
|
|
821
|
+
--icon-size: var(--salt-text-h2-lineHeight);
|
|
822
|
+
}
|
|
823
|
+
.saltDialogHeader-withAccent {
|
|
824
|
+
position: relative;
|
|
825
|
+
}
|
|
826
|
+
.saltDialogHeader-withAccent::before {
|
|
827
|
+
content: "";
|
|
828
|
+
position: absolute;
|
|
829
|
+
top: 0;
|
|
830
|
+
left: 0;
|
|
831
|
+
bottom: var(--salt-spacing-100);
|
|
832
|
+
width: var(--salt-size-accent);
|
|
833
|
+
background: var(--salt-accent-background);
|
|
834
|
+
}
|
|
835
|
+
.saltDialogHeader-error::before {
|
|
836
|
+
background: var(--salt-status-error-borderColor);
|
|
837
|
+
}
|
|
838
|
+
.saltDialogHeader-info::before {
|
|
839
|
+
background: var(--salt-status-info-borderColor);
|
|
840
|
+
}
|
|
841
|
+
.saltDialogHeader-success::before {
|
|
842
|
+
background: var(--salt-status-success-borderColor);
|
|
843
|
+
}
|
|
844
|
+
.saltDialogHeader-warning::before {
|
|
845
|
+
background: var(--salt-status-warning-borderColor);
|
|
846
|
+
}
|
|
847
|
+
|
|
671
848
|
/* src/drawer/Drawer.css */
|
|
672
849
|
.saltDrawer {
|
|
673
850
|
background: var(--drawer-background);
|
|
@@ -1319,6 +1496,7 @@ a:link .saltInteractableCard * {
|
|
|
1319
1496
|
padding-right: var(--salt-spacing-100);
|
|
1320
1497
|
position: relative;
|
|
1321
1498
|
width: 100%;
|
|
1499
|
+
box-sizing: border-box;
|
|
1322
1500
|
}
|
|
1323
1501
|
.saltMultilineInput:hover {
|
|
1324
1502
|
--multilineInput-borderStyle: var(--salt-editable-borderStyle-hover);
|
|
@@ -1500,6 +1678,7 @@ a:link .saltInteractableCard * {
|
|
|
1500
1678
|
text-decoration: none;
|
|
1501
1679
|
cursor: var(--salt-selectable-cursor-hover);
|
|
1502
1680
|
transition: all var(--salt-duration-instant) ease-in-out;
|
|
1681
|
+
box-sizing: border-box;
|
|
1503
1682
|
}
|
|
1504
1683
|
.saltNavigationItem-rootItem {
|
|
1505
1684
|
font-weight: var(--salt-text-fontWeight-strong);
|
|
@@ -1702,6 +1881,7 @@ a:link .saltInteractableCard * {
|
|
|
1702
1881
|
padding: var(--saltPanel-padding, var(--salt-size-container-spacing));
|
|
1703
1882
|
width: var(--saltPanel-width, 100%);
|
|
1704
1883
|
border-radius: var(--saltPanel-borderRadius, var(--salt-palette-corner, 0));
|
|
1884
|
+
box-sizing: border-box;
|
|
1705
1885
|
}
|
|
1706
1886
|
|
|
1707
1887
|
/* src/pill/Pill.css */
|
|
@@ -2575,4 +2755,4 @@ label.saltText small,
|
|
|
2575
2755
|
padding-left: var(--salt-spacing-100);
|
|
2576
2756
|
}
|
|
2577
2757
|
|
|
2578
|
-
/* src/
|
|
2758
|
+
/* src/4ac14efc-3221-403f-9025-57897d045d58.css */
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = "/* Styles applied to Dialog component */\n.saltDialog {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n display: flex;\n flex-direction: column;\n padding-top: var(--salt-spacing-300);\n padding-bottom: var(--salt-spacing-300);\n background: var(--salt-container-primary-background);\n box-shadow: var(--salt-overlayable-shadow-modal);\n overflow-y: auto;\n z-index: var(--salt-zIndex-drawer);\n height: min-content;\n border: var(--salt-container-borderStyle) var(--salt-separable-tertiary-borderColor) var(--salt-size-border);\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n/* Styles applied to Dialog when a status=\"info\" */\n.saltDialog-info {\n border-color: var(--salt-status-info-borderColor);\n}\n\n/* Styles applied to Dialog when a status=\"error\" */\n.saltDialog-error {\n border-color: var(--salt-status-error-borderColor);\n}\n\n/* Styles applied to Dialog when a status=\"warning\" */\n.saltDialog-warning {\n border-color: var(--salt-status-warning-borderColor);\n}\n\n/* Styles applied to Dialog when a status=\"success\" */\n.saltDialog-success {\n border-color: var(--salt-status-success-borderColor);\n}\n\n/* Styles applied when the component mounts */\n.saltDialog.saltDialog-enterAnimation {\n animation: var(--salt-animation-fade-in-center);\n}\n\n/* Styles applied when the component unmounts */\n.saltDialog.saltDialog-exitAnimation {\n animation: var(--salt-animation-fade-out-back);\n}\n\n/* Pending design decision on heights and widths */\n.saltDialog-small-xs {\n width: 100%;\n max-height: 48%;\n}\n\n.saltDialog-small-sm {\n width: 56%;\n max-height: 48%;\n}\n\n.saltDialog-small-md {\n width: 36%;\n max-height: 48%;\n}\n\n.saltDialog-small-lg {\n width: 24%;\n max-height: 48%;\n}\n\n.saltDialog-small-xl {\n width: 24%;\n max-height: 48%;\n}\n\n.saltDialog-medium-xs {\n width: 100%;\n max-height: 72%;\n}\n\n.saltDialog-medium-sm {\n width: 84%;\n max-height: 72%;\n}\n\n.saltDialog-medium-md {\n width: 68%;\n max-height: 72%;\n}\n\n.saltDialog-medium-lg {\n width: 48%;\n max-height: 72%;\n}\n\n.saltDialog-medium-xl {\n width: 48%;\n max-height: 72%;\n}\n\n.saltDialog-large-xs {\n width: 100%;\n max-height: 84%;\n}\n\n.saltDialog-large-sm {\n width: 96%;\n max-height: 84%;\n}\n\n.saltDialog-large-md {\n width: 84%;\n max-height: 84%;\n}\n\n.saltDialog-large-lg {\n width: 72%;\n max-height: 84%;\n}\n\n.saltDialog-large-xl {\n width: 72%;\n max-height: 84%;\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=Dialog.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var react = require('@floating-ui/react');
|
|
9
|
+
var makePrefixer = require('../utils/makePrefixer.js');
|
|
10
|
+
var useFloatingUI = require('../utils/useFloatingUI/useFloatingUI.js');
|
|
11
|
+
var useForkRef = require('../utils/useForkRef.js');
|
|
12
|
+
var useId = require('../utils/useId.js');
|
|
13
|
+
var useResponsiveProp = require('../utils/useResponsiveProp.js');
|
|
14
|
+
var Scrim = require('../scrim/Scrim.js');
|
|
15
|
+
var window = require('@salt-ds/window');
|
|
16
|
+
var styles = require('@salt-ds/styles');
|
|
17
|
+
var Dialog$1 = require('./Dialog.css.js');
|
|
18
|
+
var DialogContext = require('./DialogContext.js');
|
|
19
|
+
|
|
20
|
+
const ConditionalScrimWrapper = ({
|
|
21
|
+
condition,
|
|
22
|
+
children
|
|
23
|
+
}) => {
|
|
24
|
+
return condition ? /* @__PURE__ */ jsxRuntime.jsx(Scrim.Scrim, {
|
|
25
|
+
fixed: true,
|
|
26
|
+
children
|
|
27
|
+
}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
28
|
+
children: [
|
|
29
|
+
children,
|
|
30
|
+
" "
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const withBaseName = makePrefixer.makePrefixer("saltDialog");
|
|
35
|
+
const Dialog = React.forwardRef(function Dialog2(props, ref) {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const {
|
|
38
|
+
children,
|
|
39
|
+
className,
|
|
40
|
+
open = false,
|
|
41
|
+
onOpenChange,
|
|
42
|
+
status,
|
|
43
|
+
disableDismiss,
|
|
44
|
+
size = "medium",
|
|
45
|
+
disableScrim,
|
|
46
|
+
idProp,
|
|
47
|
+
...rest
|
|
48
|
+
} = props;
|
|
49
|
+
const targetWindow = window.useWindow();
|
|
50
|
+
styles.useComponentCssInjection({
|
|
51
|
+
testId: "salt-dialog",
|
|
52
|
+
css: Dialog$1,
|
|
53
|
+
window: targetWindow
|
|
54
|
+
});
|
|
55
|
+
const id = useId.useId(idProp);
|
|
56
|
+
const currentbreakpoint = useResponsiveProp.useCurrentBreakpoint();
|
|
57
|
+
const [showComponent, setShowComponent] = React.useState(false);
|
|
58
|
+
const { context, floating, elements } = useFloatingUI.useFloatingUI({
|
|
59
|
+
open,
|
|
60
|
+
onOpenChange
|
|
61
|
+
});
|
|
62
|
+
const { getFloatingProps } = react.useInteractions([
|
|
63
|
+
react.useClick(context),
|
|
64
|
+
react.useDismiss(context, { enabled: !disableDismiss })
|
|
65
|
+
]);
|
|
66
|
+
const { Component: FloatingComponent } = useFloatingUI.useFloatingComponent();
|
|
67
|
+
const floatingRef = useForkRef.useForkRef(floating, ref);
|
|
68
|
+
React.useEffect(() => {
|
|
69
|
+
if (open && !showComponent) {
|
|
70
|
+
setShowComponent(true);
|
|
71
|
+
}
|
|
72
|
+
if (!open && showComponent) {
|
|
73
|
+
const animate = setTimeout(() => {
|
|
74
|
+
setShowComponent(false);
|
|
75
|
+
}, 300);
|
|
76
|
+
return () => clearTimeout(animate);
|
|
77
|
+
}
|
|
78
|
+
}, [open, showComponent, setShowComponent]);
|
|
79
|
+
const contextValue = React.useMemo(() => ({ status, id }), [status, id]);
|
|
80
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogContext.DialogContext.Provider, {
|
|
81
|
+
value: contextValue,
|
|
82
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ConditionalScrimWrapper, {
|
|
83
|
+
condition: open && !disableScrim,
|
|
84
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(FloatingComponent, {
|
|
85
|
+
open: showComponent,
|
|
86
|
+
role: "dialog",
|
|
87
|
+
"aria-modal": "true",
|
|
88
|
+
"aria-labelledby": id,
|
|
89
|
+
ref: floatingRef,
|
|
90
|
+
width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
|
|
91
|
+
height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
|
|
92
|
+
focusManagerProps: {
|
|
93
|
+
context
|
|
94
|
+
},
|
|
95
|
+
className: clsx.clsx(
|
|
96
|
+
withBaseName(),
|
|
97
|
+
withBaseName(size, currentbreakpoint),
|
|
98
|
+
{
|
|
99
|
+
[withBaseName("enterAnimation")]: open,
|
|
100
|
+
[withBaseName("exitAnimation")]: !open,
|
|
101
|
+
[withBaseName(status)]: status
|
|
102
|
+
},
|
|
103
|
+
className
|
|
104
|
+
),
|
|
105
|
+
onAnimationEnd: () => {
|
|
106
|
+
if (!open && showComponent) {
|
|
107
|
+
setShowComponent(false);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
...getFloatingProps(),
|
|
111
|
+
...rest,
|
|
112
|
+
children
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
exports.ConditionalScrimWrapper = ConditionalScrimWrapper;
|
|
119
|
+
exports.Dialog = Dialog;
|
|
120
|
+
//# sourceMappingURL=Dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../src/dialog/Dialog.tsx"],"sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n useEffect,\n useMemo,\n useState,\n ComponentProps,\n ReactNode,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport {\n FloatingFocusManager,\n useClick,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport {\n makePrefixer,\n useFloatingComponent,\n useFloatingUI,\n useCurrentBreakpoint,\n useForkRef,\n useId,\n} from \"../utils\";\nimport { Scrim } from \"../scrim\";\nimport { ValidationStatus } from \"../status-indicator\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport dialogCss from \"./Dialog.css\";\nimport { DialogContext } from \"./DialogContext\";\n\ninterface ConditionalScrimWrapperProps {\n children?: ReactNode;\n condition: boolean;\n}\n\nexport const ConditionalScrimWrapper = ({\n condition,\n children,\n}: ConditionalScrimWrapperProps) => {\n return condition ? <Scrim fixed>{children}</Scrim> : <>{children} </>;\n};\n\nexport interface DialogProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * The status of the Dialog\n * */\n status?: ValidationStatus;\n /**\n * Which element to initially focus. Can be either a number (tabbable index as specified by the order) or a ref.\n * Default value is 0 (first tabbable element).\n * */\n initialFocus?: ComponentProps<typeof FloatingFocusManager>[\"initialFocus\"];\n /**\n * Size of the Dialog\n * */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Prevent the dialog closing on click away\n * */\n disableDismiss?: boolean;\n /**\n * Prevent Scrim from rendering\n * */\n disableScrim?: boolean;\n /**\n * Optional id prop\n * Used for accessibility purposes to announce the title and subtitle when using a screen reader\n * */\n idProp?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltDialog\");\n\nexport const Dialog = forwardRef<HTMLDivElement, DialogProps>(function Dialog(\n props,\n ref\n) {\n const {\n children,\n className,\n open = false,\n onOpenChange,\n status,\n disableDismiss,\n size = \"medium\",\n disableScrim,\n idProp,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dialog\",\n css: dialogCss,\n window: targetWindow,\n });\n\n const id = useId(idProp);\n\n const currentbreakpoint = useCurrentBreakpoint();\n\n const [showComponent, setShowComponent] = useState(false);\n\n const { context, floating, elements } = useFloatingUI({\n open,\n onOpenChange,\n });\n\n const { getFloatingProps } = useInteractions([\n useClick(context),\n useDismiss(context, { enabled: !disableDismiss }),\n ]);\n\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const floatingRef = useForkRef<HTMLDivElement>(floating, ref);\n\n useEffect(() => {\n if (open && !showComponent) {\n setShowComponent(true);\n }\n\n if (!open && showComponent) {\n const animate = setTimeout(() => {\n setShowComponent(false);\n }, 300); // var(--salt-duration-perceptible)\n return () => clearTimeout(animate);\n }\n }, [open, showComponent, setShowComponent]);\n\n const contextValue = useMemo(() => ({ status, id }), [status, id]);\n\n return (\n <DialogContext.Provider value={contextValue}>\n <ConditionalScrimWrapper condition={open && !disableScrim}>\n <FloatingComponent\n open={showComponent}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={id}\n ref={floatingRef}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n focusManagerProps={{\n context: context,\n }}\n className={clsx(\n withBaseName(),\n withBaseName(size, currentbreakpoint),\n {\n [withBaseName(\"enterAnimation\")]: open,\n [withBaseName(\"exitAnimation\")]: !open,\n [withBaseName(status as string)]: status,\n },\n className\n )}\n onAnimationEnd={() => {\n if (!open && showComponent) {\n setShowComponent(false);\n }\n }}\n {...getFloatingProps()}\n {...rest}\n >\n {children}\n </FloatingComponent>\n </ConditionalScrimWrapper>\n </DialogContext.Provider>\n );\n});\n"],"names":["jsx","Scrim","jsxs","Fragment","makePrefixer","forwardRef","Dialog","useWindow","useComponentCssInjection","dialogCss","useId","useCurrentBreakpoint","useState","useFloatingUI","useInteractions","useClick","useDismiss","useFloatingComponent","useForkRef","useEffect","useMemo","DialogContext","clsx"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".saltDialogActions {\n padding: var(--salt-spacing-300);\n padding-bottom: 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--salt-spacing-100);\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=DialogActions.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogActions.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var makePrefixer = require('../utils/makePrefixer.js');
|
|
9
|
+
require('../utils/useFloatingUI/useFloatingUI.js');
|
|
10
|
+
require('../utils/useId.js');
|
|
11
|
+
require('../salt-provider/SaltProvider.js');
|
|
12
|
+
require('../viewport/ViewportProvider.js');
|
|
13
|
+
var window = require('@salt-ds/window');
|
|
14
|
+
var styles = require('@salt-ds/styles');
|
|
15
|
+
var DialogActions$1 = require('./DialogActions.css.js');
|
|
16
|
+
|
|
17
|
+
const withBaseName = makePrefixer.makePrefixer("saltDialogActions");
|
|
18
|
+
const DialogActions = React.forwardRef(
|
|
19
|
+
function DialogActions2(props, ref) {
|
|
20
|
+
const { children, className, ...rest } = props;
|
|
21
|
+
const targetWindow = window.useWindow();
|
|
22
|
+
styles.useComponentCssInjection({
|
|
23
|
+
testId: "salt-dialog-actions",
|
|
24
|
+
css: DialogActions$1,
|
|
25
|
+
window: targetWindow
|
|
26
|
+
});
|
|
27
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
28
|
+
className: clsx.clsx(withBaseName(), className),
|
|
29
|
+
...rest,
|
|
30
|
+
ref,
|
|
31
|
+
children
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
exports.DialogActions = DialogActions;
|
|
37
|
+
//# sourceMappingURL=DialogActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogActions.js","sources":["../src/dialog/DialogActions.tsx"],"sourcesContent":["import { forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport dialogActionsCss from \"./DialogActions.css\";\n\nconst withBaseName = makePrefixer(\"saltDialogActions\");\n\nexport interface DialogActionsProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * The content of Dialog Actions\n */\n children?: ReactNode;\n}\n\nexport const DialogActions = forwardRef<HTMLDivElement, DialogActionsProps>(\n function DialogActions(props, ref) {\n const { children, className, ...rest } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dialog-actions\",\n css: dialogActionsCss,\n window: targetWindow,\n });\n\n return (\n <div className={clsx(withBaseName(), className)} {...rest} ref={ref}>\n {children}\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","DialogActions","useWindow","useComponentCssInjection","dialogActionsCss","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA,CAAA;AAS9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAA,MAAM,EAAE,QAAA,EAAU,SAAc,EAAA,GAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AACzC,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,eAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MAAI,GAAG,IAAA;AAAA,MAAM,GAAA;AAAA,MACxD,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogCloseButton.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var Button = require('../button/Button.js');
|
|
9
|
+
var makePrefixer = require('../utils/makePrefixer.js');
|
|
10
|
+
require('../utils/useFloatingUI/useFloatingUI.js');
|
|
11
|
+
require('../utils/useId.js');
|
|
12
|
+
require('../salt-provider/SaltProvider.js');
|
|
13
|
+
require('../viewport/ViewportProvider.js');
|
|
14
|
+
var window = require('@salt-ds/window');
|
|
15
|
+
var styles = require('@salt-ds/styles');
|
|
16
|
+
var icons = require('@salt-ds/icons');
|
|
17
|
+
var DialogCloseButton$1 = require('./DialogCloseButton.css.js');
|
|
18
|
+
|
|
19
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
|
+
|
|
21
|
+
var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
|
|
22
|
+
|
|
23
|
+
const withBaseName = makePrefixer.makePrefixer("saltDialogCloseButton");
|
|
24
|
+
const DialogCloseButton = React.forwardRef(
|
|
25
|
+
function DialogCloseButton2({ className, ...rest }, ref) {
|
|
26
|
+
const targetWindow = window.useWindow();
|
|
27
|
+
styles.useComponentCssInjection({
|
|
28
|
+
testId: "salt-dialog-close-button",
|
|
29
|
+
css: DialogCloseButton$1,
|
|
30
|
+
window: targetWindow
|
|
31
|
+
});
|
|
32
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
|
|
33
|
+
ref,
|
|
34
|
+
"aria-label": "Close dialog",
|
|
35
|
+
variant: "secondary",
|
|
36
|
+
className: clsx__default["default"](withBaseName(), className),
|
|
37
|
+
...rest,
|
|
38
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, {})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
exports.DialogCloseButton = DialogCloseButton;
|
|
44
|
+
//# sourceMappingURL=DialogCloseButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogCloseButton.js","sources":["../src/dialog/DialogCloseButton.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Button, ButtonProps } from \"../button\";\nimport { makePrefixer } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { CloseIcon } from \"@salt-ds/icons\";\n\nimport dialogCloseButtonCss from \"./DialogCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltDialogCloseButton\");\n\nexport const DialogCloseButton = forwardRef<HTMLButtonElement, ButtonProps>(\n function DialogCloseButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dialog-close-button\",\n css: dialogCloseButtonCss,\n window: targetWindow,\n });\n\n return (\n <Button\n ref={ref}\n aria-label=\"Close dialog\"\n variant=\"secondary\"\n className={clsx(withBaseName(), className)}\n {...rest}\n >\n <CloseIcon />\n </Button>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","DialogCloseButton","useWindow","useComponentCssInjection","dialogCloseButtonCss","jsx","Button","clsx","CloseIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,0BAAa,uBAAuB,CAAA,CAAA;AAElD,MAAM,iBAAoB,GAAAC,gBAAA;AAAA,EAC/B,SAASC,kBAAkB,CAAA,EAAE,SAAc,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtD,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,0BAAA;AAAA,MACR,GAAK,EAAAC,mBAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACGC,cAAA,CAAAC,aAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,YAAW,EAAA,cAAA;AAAA,MACX,OAAQ,EAAA,WAAA;AAAA,MACR,SAAW,EAAAC,wBAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACxC,GAAG,IAAA;AAAA,MAEJ,yCAACC,eAAU,EAAA,EAAA,CAAA;AAAA,KACb,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".saltDialogContent {\n color: var(--salt-content-primary-foreground);\n min-height: var(--salt-text-lineHeight);\n overflow-y: auto;\n background: var(--salt-container-primary-background);\n padding-bottom: var(--salt-spacing-50);\n\n margin-left: var(--salt-spacing-200);\n margin-right: var(--salt-spacing-300);\n padding-right: var(--salt-spacing-300);\n padding-left: var(--salt-spacing-100);\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) transparent;\n box-shadow: none;\n}\n\n.saltDialogContent-scroll {\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-tertiary-borderColor);\n box-shadow: var(--salt-overlayable-shadow-scroll);\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=DialogContent.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogContent.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var makePrefixer = require('../utils/makePrefixer.js');
|
|
9
|
+
require('../utils/useFloatingUI/useFloatingUI.js');
|
|
10
|
+
require('../utils/useId.js');
|
|
11
|
+
require('../salt-provider/SaltProvider.js');
|
|
12
|
+
require('../viewport/ViewportProvider.js');
|
|
13
|
+
var window = require('@salt-ds/window');
|
|
14
|
+
var styles = require('@salt-ds/styles');
|
|
15
|
+
var DialogContent$1 = require('./DialogContent.css.js');
|
|
16
|
+
|
|
17
|
+
const withBaseName = makePrefixer.makePrefixer("saltDialogContent");
|
|
18
|
+
const DialogContent = React.forwardRef(
|
|
19
|
+
function DialogContent2(props, ref) {
|
|
20
|
+
const { children, className, ...rest } = props;
|
|
21
|
+
const [scrollTop, setScrollTop] = React.useState(0);
|
|
22
|
+
const handleScroll = (event) => {
|
|
23
|
+
setScrollTop(event.currentTarget.scrollTop);
|
|
24
|
+
};
|
|
25
|
+
const targetWindow = window.useWindow();
|
|
26
|
+
styles.useComponentCssInjection({
|
|
27
|
+
testId: "salt-dialog-content",
|
|
28
|
+
css: DialogContent$1,
|
|
29
|
+
window: targetWindow
|
|
30
|
+
});
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
34
|
+
className: clsx.clsx({ [withBaseName("scroll")]: scrollTop > 0 })
|
|
35
|
+
}),
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
37
|
+
className: clsx.clsx(withBaseName(), className),
|
|
38
|
+
onScroll: handleScroll,
|
|
39
|
+
...rest,
|
|
40
|
+
ref,
|
|
41
|
+
children
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
exports.DialogContent = DialogContent;
|
|
49
|
+
//# sourceMappingURL=DialogContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogContent.js","sources":["../src/dialog/DialogContent.tsx"],"sourcesContent":["import { forwardRef, HTMLAttributes, ReactNode, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport dialogContentCss from \"./DialogContent.css\";\n\nconst withBaseName = makePrefixer(\"saltDialogContent\");\n\nexport interface DialogContentProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * The content of Dialog Content\n */\n children?: ReactNode;\n}\n\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n function DialogContent(props, ref) {\n const { children, className, ...rest } = props;\n const [scrollTop, setScrollTop] = useState(0);\n\n const handleScroll = (event: React.UIEvent<HTMLElement>) => {\n setScrollTop(event.currentTarget.scrollTop);\n };\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dialog-content\",\n css: dialogContentCss,\n window: targetWindow,\n });\n\n return (\n <>\n <div className={clsx({ [withBaseName(\"scroll\")]: scrollTop > 0 })} />\n <div\n className={clsx(withBaseName(), className)}\n onScroll={handleScroll}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n </>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","DialogContent","useState","useWindow","useComponentCssInjection","dialogContentCss","jsxs","Fragment","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,0BAAa,mBAAmB,CAAA,CAAA;AAS9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAA,MAAM,EAAE,QAAA,EAAU,SAAc,EAAA,GAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AACzC,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,eAAS,CAAC,CAAA,CAAA;AAE5C,IAAM,MAAA,YAAA,GAAe,CAAC,KAAsC,KAAA;AAC1D,MAAa,YAAA,CAAA,KAAA,CAAM,cAAc,SAAS,CAAA,CAAA;AAAA,KAC5C,CAAA;AAEA,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,eAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IACE,uBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAWC,UAAK,EAAE,CAAC,aAAa,QAAQ,CAAA,GAAI,SAAY,GAAA,CAAA,EAAG,CAAA;AAAA,SAAG,CAAA;AAAA,wBAClED,cAAA,CAAA,KAAA,EAAA;AAAA,UACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,UACzC,QAAU,EAAA,YAAA;AAAA,UACT,GAAG,IAAA;AAAA,UACJ,GAAA;AAAA,UAEC,QAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
const DialogContext = React.createContext({
|
|
8
|
+
status: void 0,
|
|
9
|
+
id: ""
|
|
10
|
+
});
|
|
11
|
+
const useDialogContext = () => {
|
|
12
|
+
return React.useContext(DialogContext);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
exports.DialogContext = DialogContext;
|
|
16
|
+
exports.useDialogContext = useDialogContext;
|
|
17
|
+
//# sourceMappingURL=DialogContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogContext.js","sources":["../src/dialog/DialogContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { ValidationStatus } from \"../status-indicator\";\n\nexport const DialogContext = createContext<{\n status?: ValidationStatus;\n id: string | undefined;\n}>({\n status: undefined,\n id: \"\",\n});\n\nexport const useDialogContext = () => {\n return useContext(DialogContext);\n};\n"],"names":["createContext","useContext"],"mappings":";;;;;;AAGO,MAAM,gBAAgBA,mBAG1B,CAAA;AAAA,EACD,MAAQ,EAAA,KAAA,CAAA;AAAA,EACR,EAAI,EAAA,EAAA;AACN,CAAC,EAAA;AAEM,MAAM,mBAAmB,MAAM;AACpC,EAAA,OAAOC,iBAAW,aAAa,CAAA,CAAA;AACjC;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = "/* Styles applied to the root element */\n.saltDialogHeader {\n padding-bottom: var(--salt-spacing-100);\n padding-left: var(--salt-spacing-300);\n padding-right: var(--salt-spacing-300);\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: var(--salt-spacing-100);\n box-sizing: border-box;\n}\n\n.saltDialogHeader-header {\n margin: 0;\n}\n\n/* Styles applied to the status indicator icon overriding its default size */\n.saltDialogHeader .saltStatusIndicator.saltIcon {\n --icon-size: var(--salt-text-h2-lineHeight);\n}\n\n/* Styles applied to DialogTitle when accent={true} */\n.saltDialogHeader-withAccent {\n position: relative;\n}\n\n.saltDialogHeader-withAccent::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n bottom: var(--salt-spacing-100);\n width: var(--salt-size-accent);\n background: var(--salt-accent-background);\n}\n\n.saltDialogHeader-error::before {\n background: var(--salt-status-error-borderColor);\n}\n\n.saltDialogHeader-info::before {\n background: var(--salt-status-info-borderColor);\n}\n\n.saltDialogHeader-success::before {\n background: var(--salt-status-success-borderColor);\n}\n\n.saltDialogHeader-warning::before {\n background: var(--salt-status-warning-borderColor);\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=DialogHeader.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogHeader.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|