@salt-ds/lab 1.0.0-alpha.28 → 1.0.0-alpha.29
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-lab.css +33 -110
- package/dist-cjs/color-chooser/ColorChooser.css.js +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js +52 -55
- package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
- package/dist-cjs/index.js +4 -8
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/overlay/Overlay.css.js +1 -1
- package/dist-cjs/overlay/Overlay.js +89 -60
- package/dist-cjs/overlay/Overlay.js.map +1 -1
- package/dist-cjs/overlay/OverlayContext.js +43 -0
- package/dist-cjs/overlay/OverlayContext.js.map +1 -0
- package/dist-cjs/overlay/OverlayPanel.js +64 -0
- package/dist-cjs/overlay/OverlayPanel.js.map +1 -0
- package/dist-cjs/overlay/OverlayPanelBase.js +65 -0
- package/dist-cjs/overlay/OverlayPanelBase.js.map +1 -0
- package/dist-cjs/overlay/OverlayTrigger.js +40 -0
- package/dist-cjs/overlay/OverlayTrigger.js.map +1 -0
- package/dist-es/color-chooser/ColorChooser.css.js +1 -1
- package/dist-es/color-chooser/ColorChooser.js +53 -56
- package/dist-es/color-chooser/ColorChooser.js.map +1 -1
- package/dist-es/index.js +2 -4
- package/dist-es/index.js.map +1 -1
- package/dist-es/overlay/Overlay.css.js +1 -1
- package/dist-es/overlay/Overlay.js +91 -62
- package/dist-es/overlay/Overlay.js.map +1 -1
- package/dist-es/overlay/OverlayContext.js +38 -0
- package/dist-es/overlay/OverlayContext.js.map +1 -0
- package/dist-es/overlay/OverlayPanel.js +60 -0
- package/dist-es/overlay/OverlayPanel.js.map +1 -0
- package/dist-es/overlay/OverlayPanelBase.js +57 -0
- package/dist-es/overlay/OverlayPanelBase.js.map +1 -0
- package/dist-es/overlay/OverlayTrigger.js +36 -0
- package/dist-es/overlay/OverlayTrigger.js.map +1 -0
- package/dist-types/index.d.ts +0 -1
- package/dist-types/overlay/Overlay.d.ts +6 -14
- package/dist-types/overlay/OverlayContext.d.ts +26 -0
- package/dist-types/overlay/OverlayPanel.d.ts +4 -0
- package/dist-types/overlay/OverlayPanelBase.d.ts +2 -0
- package/dist-types/overlay/OverlayTrigger.d.ts +5 -0
- package/dist-types/overlay/index.d.ts +2 -1
- package/package.json +2 -2
- package/dist-cjs/file-drop-zone/FileDropZone.css.js +0 -6
- package/dist-cjs/file-drop-zone/FileDropZone.css.js.map +0 -1
- package/dist-cjs/file-drop-zone/FileDropZone.js +0 -94
- package/dist-cjs/file-drop-zone/FileDropZone.js.map +0 -1
- package/dist-cjs/file-drop-zone/FileDropZoneIcon.js +0 -25
- package/dist-cjs/file-drop-zone/FileDropZoneIcon.js.map +0 -1
- package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +0 -52
- package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +0 -1
- package/dist-cjs/file-drop-zone/internal/utils.js +0 -30
- package/dist-cjs/file-drop-zone/internal/utils.js.map +0 -1
- package/dist-cjs/overlay/useOverlay.js +0 -97
- package/dist-cjs/overlay/useOverlay.js.map +0 -1
- package/dist-es/file-drop-zone/FileDropZone.css.js +0 -4
- package/dist-es/file-drop-zone/FileDropZone.css.js.map +0 -1
- package/dist-es/file-drop-zone/FileDropZone.js +0 -90
- package/dist-es/file-drop-zone/FileDropZone.js.map +0 -1
- package/dist-es/file-drop-zone/FileDropZoneIcon.js +0 -21
- package/dist-es/file-drop-zone/FileDropZoneIcon.js.map +0 -1
- package/dist-es/file-drop-zone/FileDropZoneTrigger.js +0 -48
- package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +0 -1
- package/dist-es/file-drop-zone/internal/utils.js +0 -25
- package/dist-es/file-drop-zone/internal/utils.js.map +0 -1
- package/dist-es/overlay/useOverlay.js +0 -93
- package/dist-es/overlay/useOverlay.js.map +0 -1
- package/dist-types/file-drop-zone/FileDropZone.d.ts +0 -17
- package/dist-types/file-drop-zone/FileDropZoneIcon.d.ts +0 -9
- package/dist-types/file-drop-zone/FileDropZoneTrigger.d.ts +0 -22
- package/dist-types/file-drop-zone/index.d.ts +0 -3
- package/dist-types/file-drop-zone/internal/utils.d.ts +0 -3
- package/dist-types/overlay/useOverlay.d.ts +0 -8
package/css/salt-lab.css
CHANGED
|
@@ -299,9 +299,6 @@
|
|
|
299
299
|
width: var(--salt-size-container-spacing);
|
|
300
300
|
display: contents;
|
|
301
301
|
}
|
|
302
|
-
.saltColorChooser-overlayButtonClose {
|
|
303
|
-
margin: 5px;
|
|
304
|
-
}
|
|
305
302
|
.saltColorChooser-defaultButton {
|
|
306
303
|
float: right;
|
|
307
304
|
background: transparent;
|
|
@@ -1231,43 +1228,6 @@
|
|
|
1231
1228
|
outline: none;
|
|
1232
1229
|
}
|
|
1233
1230
|
|
|
1234
|
-
/* src/file-drop-zone/FileDropZone.css */
|
|
1235
|
-
.saltFileDropZone {
|
|
1236
|
-
color: var(--saltFileDropZone-text-color, var(--salt-text-primary-foreground));
|
|
1237
|
-
display: inline-flex;
|
|
1238
|
-
background: var(--saltFileDropZone-background, var(--salt-container-primary-background));
|
|
1239
|
-
text-align: center;
|
|
1240
|
-
align-items: center;
|
|
1241
|
-
justify-content: center;
|
|
1242
|
-
border: var(--saltFileDropZone-border, var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor));
|
|
1243
|
-
flex-direction: column;
|
|
1244
|
-
padding: var(--salt-spacing-200);
|
|
1245
|
-
gap: var(--salt-spacing-200);
|
|
1246
|
-
width: 100%;
|
|
1247
|
-
font-size: var(--saltFileDropZone-fontSize, var(--salt-text-fontSize));
|
|
1248
|
-
font-family: var(--saltFileDropZone-fontFamily, var(--salt-text-fontFamily));
|
|
1249
|
-
line-height: var(--saltFileDropZone-lineHeight, var(--salt-text-lineHeight));
|
|
1250
|
-
}
|
|
1251
|
-
.saltFileDropZone-active {
|
|
1252
|
-
background: var(--salt-target-background-hover);
|
|
1253
|
-
border: var(--salt-size-border-strong) var(--salt-target-borderStyle-hover) var(--salt-target-borderColor-hover);
|
|
1254
|
-
}
|
|
1255
|
-
.saltFileDropZone-error {
|
|
1256
|
-
border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-error-borderColor);
|
|
1257
|
-
}
|
|
1258
|
-
.saltFileDropZone-success {
|
|
1259
|
-
border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-success-borderColor);
|
|
1260
|
-
}
|
|
1261
|
-
.saltFileDropZone .input-hidden {
|
|
1262
|
-
display: none;
|
|
1263
|
-
}
|
|
1264
|
-
.saltFileDropZone-disabled {
|
|
1265
|
-
background: var(--salt-container-primary-background-disabled);
|
|
1266
|
-
border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor-disabled);
|
|
1267
|
-
cursor: var(--salt-target-cursor-disabled);
|
|
1268
|
-
color: var(--salt-content-primary-foreground-disabled);
|
|
1269
|
-
}
|
|
1270
|
-
|
|
1271
1231
|
/* src/form-field-legacy/FormActivationIndicator.css */
|
|
1272
1232
|
.salt-density-touch {
|
|
1273
1233
|
--formFieldLegacy-activationIndicator-icon-size: 7px;
|
|
@@ -2432,81 +2392,44 @@
|
|
|
2432
2392
|
}
|
|
2433
2393
|
|
|
2434
2394
|
/* src/overlay/Overlay.css */
|
|
2435
|
-
.
|
|
2436
|
-
--overlay-
|
|
2437
|
-
--overlay-
|
|
2438
|
-
--overlay-fontSize: var(--salt-text-fontSize);
|
|
2439
|
-
--overlay-background: var(--salt-container-primary-background);
|
|
2440
|
-
--overlay-borderColor: var(--salt-container-primary-borderColor);
|
|
2441
|
-
--overlay-zindex: var(--salt-zIndex-flyover);
|
|
2442
|
-
}
|
|
2443
|
-
.saltOverlay-secondary.saltOverlay {
|
|
2444
|
-
--overlay-background: var(--salt-container-secondary-background);
|
|
2445
|
-
--overlay-borderColor: var(--salt-container-secondary-borderColor);
|
|
2446
|
-
}
|
|
2447
|
-
.saltOverlay-content {
|
|
2448
|
-
display: flex;
|
|
2449
|
-
padding: calc(var(--overlay-spacing) * 2);
|
|
2450
|
-
font-size: var(--overlay-fontSize);
|
|
2451
|
-
border: 1px solid var(--overlay-borderColor);
|
|
2452
|
-
box-shadow: var(--salt-overlayable-shadow-popout);
|
|
2453
|
-
line-height: var(--salt-text-lineHeight);
|
|
2454
|
-
background: var(--overlay-background);
|
|
2455
|
-
color: var(--overlay-text-color);
|
|
2456
|
-
position: relative;
|
|
2457
|
-
opacity: 1;
|
|
2458
|
-
overflow: visible;
|
|
2459
|
-
z-index: var(--overlay-zindex);
|
|
2460
|
-
}
|
|
2461
|
-
.saltOverlay-arrow,
|
|
2462
|
-
.saltOverlay-arrow::after {
|
|
2463
|
-
border: 8px solid transparent;
|
|
2464
|
-
position: absolute;
|
|
2465
|
-
}
|
|
2466
|
-
.saltOverlay-arrow::after {
|
|
2467
|
-
content: "";
|
|
2468
|
-
}
|
|
2469
|
-
.saltOverlay[data-placement^=top] .saltOverlay-arrow {
|
|
2470
|
-
border-top-color: var(--overlay-borderColor);
|
|
2471
|
-
bottom: -17px;
|
|
2395
|
+
.saltOverlayPanel {
|
|
2396
|
+
--overlay-borderColor: var(--saltOverlay-borderColor, var(--salt-container-primary-borderColor));
|
|
2397
|
+
--overlay-background: var(--saltOverlay-background, var(--salt-container-primary-background));
|
|
2472
2398
|
}
|
|
2473
|
-
.
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
border-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
border-top-color: var(--overlay-background);
|
|
2487
|
-
bottom: -7px;
|
|
2488
|
-
left: calc(100% - 8px);
|
|
2399
|
+
.saltOverlayPanel {
|
|
2400
|
+
font-family: var(--salt-text-fontFamily);
|
|
2401
|
+
font-size: var(--saltOverlay-fontSize, var(--salt-text-fontSize));
|
|
2402
|
+
font-weight: var(--saltOverlay-fontWeight, var(--salt-text-fontWeight));
|
|
2403
|
+
line-height: var(--saltOverlay-lineHeight, var(--salt-text-lineHeight));
|
|
2404
|
+
border-color: var(--overlay-borderColor);
|
|
2405
|
+
border-style: var(--saltOverlay-borderStyle, var(--salt-container-borderStyle));
|
|
2406
|
+
border-width: var(--saltOverlay-borderWidth, var(--salt-size-border));
|
|
2407
|
+
background: var(--overlay-background);
|
|
2408
|
+
box-shadow: var(--saltOverlay-boxShadow, var(--salt-overlayable-shadow-popout));
|
|
2409
|
+
color: var(--saltOverlay-text-color, var(--salt-text-primary-foreground));
|
|
2410
|
+
z-index: var(--saltOverlay-zIndex, var(--salt-zIndex-flyover));
|
|
2411
|
+
width: max-content;
|
|
2489
2412
|
}
|
|
2490
|
-
.
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
left: calc(100% - 8px);
|
|
2413
|
+
.saltOverlayPanelBase-container {
|
|
2414
|
+
animation: fade-in var(--salt-duration-perceptible) ease-in-out;
|
|
2415
|
+
position: relative;
|
|
2494
2416
|
}
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2417
|
+
@keyframes fade-in {
|
|
2418
|
+
0% {
|
|
2419
|
+
opacity: 0;
|
|
2420
|
+
}
|
|
2421
|
+
100% {
|
|
2422
|
+
opacity: 1;
|
|
2423
|
+
}
|
|
2499
2424
|
}
|
|
2500
|
-
.
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
top: calc(100% - 8px);
|
|
2425
|
+
.saltOverlayPanelBase-content {
|
|
2426
|
+
overflow: auto;
|
|
2427
|
+
padding: var(--saltOverlay-content-padding, var(--salt-spacing-100) 0 var(--salt-spacing-100) var(--salt-spacing-100));
|
|
2504
2428
|
}
|
|
2505
|
-
.
|
|
2506
|
-
position:
|
|
2507
|
-
right: 0;
|
|
2429
|
+
.saltButton-secondary.saltOverlayPanelBase-closeButton {
|
|
2430
|
+
position: sticky;
|
|
2508
2431
|
top: 0;
|
|
2509
|
-
|
|
2432
|
+
float: right;
|
|
2510
2433
|
}
|
|
2511
2434
|
|
|
2512
2435
|
/* src/parent-child-item/ParentChildItem.css */
|
|
@@ -4530,4 +4453,4 @@
|
|
|
4530
4453
|
margin: calc(var(--salt-size-unit) / 2) 0;
|
|
4531
4454
|
}
|
|
4532
4455
|
|
|
4533
|
-
/* src/
|
|
4456
|
+
/* src/27e047fc-7972-45b3-8cb5-dc5a2753214f.css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltColorChooser-overlayButtonSwatch {\n margin-right: 10px;\n height: calc(2 * var(--salt-size-unit));\n width: calc(2 * var(--salt-size-unit));\n}\n\n.saltColorChooser-overlayButtonSwatchWithBorder {\n border: 0.2px solid var(--salt-editable-borderColor);\n}\n\n.saltColorChooser-overlayButtonSwatchTransparent {\n height: calc(var(--salt-size-container-spacing) - 2px) !important;\n width: calc(var(--salt-size-container-spacing) - 2px) !important;\n border: 1px solid var(--salt-status-negative-foreground);\n /* RGBA using red-700 */\n background: linear-gradient(\n to top left,\n rgba(166, 21, 11, 0) 0%,\n rgba(166, 21, 11, 0) calc(50% - 0.8px),\n rgba(166, 21, 11, 1) 50%,\n rgba(166, 21, 11, 0) calc(50% + 0.8px),\n rgba(166, 21, 11, 0) 100%\n );\n}\n\n.saltColorChooser-overlayButtonText {\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--saltButton-fontFamily, var(--salt-text-fontFamily));\n font-size: var(--salt-text-fontSize);\n letter-spacing: normal;\n}\n\n.saltColorChooser-overlayButton {\n background: transparent;\n text-transform: none;\n justify-content: flex-start;\n}\n\n.saltColorChooser-overlayButtonHiddenLabel {\n width: var(--salt-size-container-spacing);\n display: contents;\n}\n\n.saltColorChooser-
|
|
3
|
+
var css_248z = ".saltColorChooser-overlayButtonSwatch {\n margin-right: 10px;\n height: calc(2 * var(--salt-size-unit));\n width: calc(2 * var(--salt-size-unit));\n}\n\n.saltColorChooser-overlayButtonSwatchWithBorder {\n border: 0.2px solid var(--salt-editable-borderColor);\n}\n\n.saltColorChooser-overlayButtonSwatchTransparent {\n height: calc(var(--salt-size-container-spacing) - 2px) !important;\n width: calc(var(--salt-size-container-spacing) - 2px) !important;\n border: 1px solid var(--salt-status-negative-foreground);\n /* RGBA using red-700 */\n background: linear-gradient(\n to top left,\n rgba(166, 21, 11, 0) 0%,\n rgba(166, 21, 11, 0) calc(50% - 0.8px),\n rgba(166, 21, 11, 1) 50%,\n rgba(166, 21, 11, 0) calc(50% + 0.8px),\n rgba(166, 21, 11, 0) 100%\n );\n}\n\n.saltColorChooser-overlayButtonText {\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--saltButton-fontFamily, var(--salt-text-fontFamily));\n font-size: var(--salt-text-fontSize);\n letter-spacing: normal;\n}\n\n.saltColorChooser-overlayButton {\n background: transparent;\n text-transform: none;\n justify-content: flex-start;\n}\n\n.saltColorChooser-overlayButtonHiddenLabel {\n width: var(--salt-size-container-spacing);\n display: contents;\n}\n\n.saltColorChooser-defaultButton {\n float: right;\n background: transparent;\n padding: 6px 2px 6px 2px;\n height: var(--salt-size-stackable);\n}\n\n.saltColorChooser-defaultButton {\n border-bottom: var(--salt-size-border) var(--salt-editable-borderStyle) var(--salt-editable-borderColor);\n}\n\n.saltColorChooser-overlayContent {\n max-width: 100%;\n}\n\n.saltColorChooser-refreshIcon {\n padding-right: 5px;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=ColorChooser.css.js.map
|
|
@@ -6,7 +6,8 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
8
|
var Overlay = require('../overlay/Overlay.js');
|
|
9
|
-
var
|
|
9
|
+
var OverlayTrigger = require('../overlay/OverlayTrigger.js');
|
|
10
|
+
var OverlayPanel = require('../overlay/OverlayPanel.js');
|
|
10
11
|
var core = require('@salt-ds/core');
|
|
11
12
|
var icons = require('@salt-ds/icons');
|
|
12
13
|
var colorUtils = require('./color-utils.js');
|
|
@@ -18,6 +19,7 @@ var createTabsMapping = require('./createTabsMapping.js');
|
|
|
18
19
|
var window = require('@salt-ds/window');
|
|
19
20
|
var styles = require('@salt-ds/styles');
|
|
20
21
|
var ColorChooser$1 = require('./ColorChooser.css.js');
|
|
22
|
+
var OverlayContext = require('../overlay/OverlayContext.js');
|
|
21
23
|
|
|
22
24
|
const withBaseName = core.makePrefixer("saltColorChooser");
|
|
23
25
|
function getActiveTab(hexValue, tabs, saltColorOverrides) {
|
|
@@ -94,72 +96,67 @@ const ColorChooser = ({
|
|
|
94
96
|
const onTabClick = (index) => {
|
|
95
97
|
setActiveTab(index);
|
|
96
98
|
};
|
|
97
|
-
const
|
|
99
|
+
const OverlayContent = () => {
|
|
100
|
+
const { id } = OverlayContext.useOverlayContext();
|
|
101
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
102
|
+
id: `${id}-content`,
|
|
103
|
+
className: clsx.clsx(withBaseName("overlayContent")),
|
|
104
|
+
"data-testid": "overlay-content",
|
|
105
|
+
children: [
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsxs(core.Button, {
|
|
107
|
+
"data-testid": "default-button",
|
|
108
|
+
variant: "secondary",
|
|
109
|
+
className: clsx.clsx(withBaseName("defaultButton")),
|
|
110
|
+
onClick: onDefaultSelected,
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.RefreshIcon, {
|
|
113
|
+
className: clsx.clsx(withBaseName("refreshIcon"))
|
|
114
|
+
}),
|
|
115
|
+
"Default"
|
|
116
|
+
]
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ jsxRuntime.jsx(DictTabs.DictTabs, {
|
|
119
|
+
tabs: tabsMapping,
|
|
120
|
+
hexValue: color == null ? void 0 : color.hex,
|
|
121
|
+
onTabClick,
|
|
122
|
+
activeTab
|
|
123
|
+
})
|
|
124
|
+
]
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Overlay.Overlay, {
|
|
98
128
|
placement: "bottom",
|
|
99
|
-
|
|
100
|
-
onOpenChange: handleOpenChange
|
|
101
|
-
});
|
|
102
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
129
|
+
"data-testid": "color-chooser-overlay",
|
|
103
130
|
children: [
|
|
104
|
-
/* @__PURE__ */ jsxRuntime.
|
|
105
|
-
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(OverlayTrigger.OverlayTrigger, {
|
|
132
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(core.Button, {
|
|
106
133
|
className: clsx.clsx(withBaseName("overlayButton"), {
|
|
107
134
|
[withBaseName("overlayButtonHiddenLabel")]: hideLabel
|
|
108
135
|
}),
|
|
109
136
|
"data-testid": "color-chooser-overlay-button",
|
|
110
137
|
disabled: readOnly,
|
|
111
|
-
...buttonProps
|
|
112
|
-
}),
|
|
113
|
-
children: [
|
|
114
|
-
color && /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
115
|
-
className: clsx.clsx(withBaseName("overlayButtonSwatch"), {
|
|
116
|
-
[withBaseName("overlayButtonSwatchWithBorder")]: color == null ? void 0 : color.hex.startsWith("#ffffff"),
|
|
117
|
-
[withBaseName("overlayButtonSwatchTransparent")]: colorUtils.isTransparent(
|
|
118
|
-
color == null ? void 0 : color.hex
|
|
119
|
-
)
|
|
120
|
-
}),
|
|
121
|
-
style: {
|
|
122
|
-
backgroundColor: color == null ? void 0 : color.hex
|
|
123
|
-
}
|
|
124
|
-
}),
|
|
125
|
-
!hideLabel && /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
126
|
-
className: withBaseName("overlayButtonText"),
|
|
127
|
-
children: (_c = displayColorName != null ? displayColorName : placeholder) != null ? _c : "No color selected"
|
|
128
|
-
})
|
|
129
|
-
]
|
|
130
|
-
}),
|
|
131
|
-
/* @__PURE__ */ jsxRuntime.jsx(Overlay.Overlay, {
|
|
132
|
-
...getOverlayProps({
|
|
133
|
-
adaExceptions: {
|
|
134
|
-
showClose: false
|
|
135
|
-
},
|
|
136
|
-
"data-testid": "color-chooser-overlay",
|
|
137
|
-
className: clsx.clsx(withBaseName("overlayButtonClose"))
|
|
138
|
-
}),
|
|
139
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
140
|
-
className: clsx.clsx(withBaseName("overlayContent")),
|
|
141
|
-
"data-testid": "overlay-content",
|
|
138
|
+
...buttonProps,
|
|
142
139
|
children: [
|
|
143
|
-
/* @__PURE__ */ jsxRuntime.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
]
|
|
140
|
+
color && /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
141
|
+
className: clsx.clsx(withBaseName("overlayButtonSwatch"), {
|
|
142
|
+
[withBaseName("overlayButtonSwatchWithBorder")]: color == null ? void 0 : color.hex.startsWith("#ffffff"),
|
|
143
|
+
[withBaseName("overlayButtonSwatchTransparent")]: colorUtils.isTransparent(
|
|
144
|
+
color == null ? void 0 : color.hex
|
|
145
|
+
)
|
|
146
|
+
}),
|
|
147
|
+
style: {
|
|
148
|
+
backgroundColor: color == null ? void 0 : color.hex
|
|
149
|
+
}
|
|
154
150
|
}),
|
|
155
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
onTabClick,
|
|
159
|
-
activeTab
|
|
151
|
+
!hideLabel && /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
152
|
+
className: withBaseName("overlayButtonText"),
|
|
153
|
+
children: (_c = displayColorName != null ? displayColorName : placeholder) != null ? _c : "No color selected"
|
|
160
154
|
})
|
|
161
155
|
]
|
|
162
156
|
})
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ jsxRuntime.jsx(OverlayPanel.OverlayPanel, {
|
|
159
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(OverlayContent, {})
|
|
163
160
|
})
|
|
164
161
|
]
|
|
165
162
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorChooser.js","sources":["../src/color-chooser/ColorChooser.tsx"],"sourcesContent":["import { ChangeEvent, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { Overlay, useOverlay } from \"../overlay\";\nimport { Button, ButtonProps, makePrefixer } from \"@salt-ds/core\";\nimport { RefreshIcon } from \"@salt-ds/icons\";\nimport { Color } from \"./Color\";\nimport { isTransparent } from \"./color-utils\";\n\nimport {\n convertColorMapValueToHex,\n getColorNameByHexValue,\n getHexValue,\n hexValueWithoutAlpha,\n} from \"./ColorHelpers\";\nimport { saltColorMap } from \"./colorMap\";\nimport { ColorChooserTabs, DictTabs } from \"./DictTabs\";\nimport { getColorPalettes } from \"./GetColorPalettes\";\nimport { createTabsMapping } from \"./createTabsMapping\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport colorChooserCss from \"./ColorChooser.css\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\nfunction getActiveTab(\n hexValue: string | undefined,\n tabs: ColorChooserTabs,\n saltColorOverrides: Record<string, string> | undefined\n): number {\n if (tabs.Swatches && tabs[\"Color Picker\"]) {\n const hexNoAlpha: string | undefined = hexValueWithoutAlpha(hexValue);\n const colors = saltColorOverrides ?? saltColorMap;\n // if hexNoAlpha is a Salt color or null/undefined then set the active tab as Swatches\n if (\n hexNoAlpha &&\n !Object.keys(colors).find(\n (key: string) =>\n convertColorMapValueToHex(colors[key])?.toLowerCase() ===\n hexNoAlpha?.toLowerCase()\n )\n ) {\n return 1;\n }\n }\n return 0;\n}\n\nexport interface ColorChooserProps {\n color: Color | undefined;\n defaultAlpha?: number;\n disableAlphaChooser?: boolean;\n displayHexOnly?: boolean;\n hideLabel?: boolean;\n onClear: () => void; // called when user clicks \"default\" button\n onSelect: (\n color: Color | undefined,\n finalSelection: boolean,\n event?: ChangeEvent\n ) => void;\n placeholder?: string;\n buttonProps?: Partial<ButtonProps>;\n saltColorOverrides?: Record<string, string>;\n showSwatches?: boolean;\n showColorPicker?: boolean;\n readOnly?: boolean;\n}\n\nexport const ColorChooser = ({\n onClear,\n onSelect,\n color,\n showSwatches = true,\n showColorPicker = true,\n defaultAlpha = 1,\n disableAlphaChooser = false,\n hideLabel = false,\n placeholder,\n buttonProps,\n saltColorOverrides,\n readOnly = false,\n displayHexOnly = false,\n}: ColorChooserProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-chooser\",\n css: colorChooserCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n\n const allColors: string[][] = saltColorOverrides\n ? getColorPalettes(saltColorOverrides)\n : getColorPalettes();\n const displayColorName = displayHexOnly\n ? getHexValue(color?.hex, disableAlphaChooser)\n : getColorNameByHexValue(\n color?.hex,\n disableAlphaChooser,\n saltColorOverrides\n );\n\n const handleOpenChange = (open: boolean) => setOpen(open);\n\n const alphaForTabs = isTransparent(color?.hex)\n ? defaultAlpha\n : color?.rgba?.a ?? defaultAlpha;\n\n const tabsMapping = createTabsMapping({\n swatches: showSwatches,\n colorPicker: showColorPicker,\n disableAlphaChooser,\n allColors,\n color,\n alpha: alphaForTabs,\n handleColorChange: onSelect,\n displayColorName,\n placeholder,\n onDialogClosed: () => {\n setOpen(false);\n },\n });\n\n const [activeTab, setActiveTab] = useState<number>(\n getActiveTab(color?.hex, tabsMapping, saltColorOverrides)\n );\n const onDefaultSelected = (): void => {\n if (activeTab === 0 && showSwatches) {\n onClear();\n handleOpenChange(false);\n } else {\n onClear();\n }\n };\n const onTabClick = (index: number): void => {\n setActiveTab(index);\n };\n\n const { getTriggerProps, getOverlayProps } = useOverlay({\n placement: \"bottom\",\n open,\n onOpenChange: handleOpenChange,\n });\n\n return (\n <>\n <Button\n {...getTriggerProps<typeof Button>({\n className: clsx(withBaseName(\"overlayButton\"), {\n [withBaseName(\"overlayButtonHiddenLabel\")]: hideLabel,\n }),\n // @ts-ignore\n \"data-testid\": \"color-chooser-overlay-button\",\n disabled: readOnly,\n ...buttonProps,\n })}\n >\n {color && (\n <div\n className={clsx(withBaseName(\"overlayButtonSwatch\"), {\n [withBaseName(\"overlayButtonSwatchWithBorder\")]:\n color?.hex.startsWith(\"#ffffff\"),\n [withBaseName(\"overlayButtonSwatchTransparent\")]: isTransparent(\n color?.hex\n ),\n })}\n style={{\n backgroundColor: color?.hex,\n }}\n />\n )}\n {!hideLabel && (\n <div className={withBaseName(\"overlayButtonText\")}>\n {displayColorName ?? placeholder ?? \"No color selected\"}\n </div>\n )}\n </Button>\n <Overlay\n {...getOverlayProps({\n adaExceptions: {\n showClose: false,\n },\n // @ts-ignore\n \"data-testid\": \"color-chooser-overlay\",\n className: clsx(withBaseName(\"overlayButtonClose\")),\n })}\n >\n <div\n className={clsx(withBaseName(\"overlayContent\"))}\n data-testid=\"overlay-content\"\n >\n <Button\n data-testid=\"default-button\"\n variant=\"secondary\"\n className={clsx(withBaseName(\"defaultButton\"))}\n onClick={onDefaultSelected}\n >\n <RefreshIcon className={clsx(withBaseName(\"refreshIcon\"))} />\n Default\n </Button>\n <DictTabs\n tabs={tabsMapping}\n hexValue={color?.hex}\n onTabClick={onTabClick}\n activeTab={activeTab}\n />\n </div>\n </Overlay>\n </>\n );\n};\n"],"names":["makePrefixer","hexValueWithoutAlpha","saltColorMap","convertColorMapValueToHex","useWindow","useComponentCssInjection","colorChooserCss","useState","getColorPalettes","getHexValue","getColorNameByHexValue","open","isTransparent","createTabsMapping","useOverlay","jsxs","Fragment","Button","clsx","jsx","Overlay","RefreshIcon","DictTabs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColorChooser.js","sources":["../src/color-chooser/ColorChooser.tsx"],"sourcesContent":["import { ChangeEvent, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { Overlay, OverlayPanel, OverlayTrigger } from \"../overlay\";\nimport { Button, ButtonProps, makePrefixer } from \"@salt-ds/core\";\nimport { RefreshIcon } from \"@salt-ds/icons\";\nimport { Color } from \"./Color\";\nimport { isTransparent } from \"./color-utils\";\n\nimport {\n convertColorMapValueToHex,\n getColorNameByHexValue,\n getHexValue,\n hexValueWithoutAlpha,\n} from \"./ColorHelpers\";\nimport { saltColorMap } from \"./colorMap\";\nimport { ColorChooserTabs, DictTabs } from \"./DictTabs\";\nimport { getColorPalettes } from \"./GetColorPalettes\";\nimport { createTabsMapping } from \"./createTabsMapping\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport colorChooserCss from \"./ColorChooser.css\";\nimport { useOverlayContext } from \"../overlay/OverlayContext\";\n\nconst withBaseName = makePrefixer(\"saltColorChooser\");\n\nfunction getActiveTab(\n hexValue: string | undefined,\n tabs: ColorChooserTabs,\n saltColorOverrides: Record<string, string> | undefined\n): number {\n if (tabs.Swatches && tabs[\"Color Picker\"]) {\n const hexNoAlpha: string | undefined = hexValueWithoutAlpha(hexValue);\n const colors = saltColorOverrides ?? saltColorMap;\n // if hexNoAlpha is a Salt color or null/undefined then set the active tab as Swatches\n if (\n hexNoAlpha &&\n !Object.keys(colors).find(\n (key: string) =>\n convertColorMapValueToHex(colors[key])?.toLowerCase() ===\n hexNoAlpha?.toLowerCase()\n )\n ) {\n return 1;\n }\n }\n return 0;\n}\n\nexport interface ColorChooserProps {\n color: Color | undefined;\n defaultAlpha?: number;\n disableAlphaChooser?: boolean;\n displayHexOnly?: boolean;\n hideLabel?: boolean;\n onClear: () => void; // called when user clicks \"default\" button\n onSelect: (\n color: Color | undefined,\n finalSelection: boolean,\n event?: ChangeEvent\n ) => void;\n placeholder?: string;\n buttonProps?: Partial<ButtonProps>;\n saltColorOverrides?: Record<string, string>;\n showSwatches?: boolean;\n showColorPicker?: boolean;\n readOnly?: boolean;\n}\n\nexport const ColorChooser = ({\n onClear,\n onSelect,\n color,\n showSwatches = true,\n showColorPicker = true,\n defaultAlpha = 1,\n disableAlphaChooser = false,\n hideLabel = false,\n placeholder,\n buttonProps,\n saltColorOverrides,\n readOnly = false,\n displayHexOnly = false,\n}: ColorChooserProps): JSX.Element => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-color-chooser\",\n css: colorChooserCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n\n const allColors: string[][] = saltColorOverrides\n ? getColorPalettes(saltColorOverrides)\n : getColorPalettes();\n const displayColorName = displayHexOnly\n ? getHexValue(color?.hex, disableAlphaChooser)\n : getColorNameByHexValue(\n color?.hex,\n disableAlphaChooser,\n saltColorOverrides\n );\n\n const handleOpenChange = (open: boolean) => setOpen(open);\n\n const alphaForTabs = isTransparent(color?.hex)\n ? defaultAlpha\n : color?.rgba?.a ?? defaultAlpha;\n\n const tabsMapping = createTabsMapping({\n swatches: showSwatches,\n colorPicker: showColorPicker,\n disableAlphaChooser,\n allColors,\n color,\n alpha: alphaForTabs,\n handleColorChange: onSelect,\n displayColorName,\n placeholder,\n onDialogClosed: () => {\n setOpen(false);\n },\n });\n\n const [activeTab, setActiveTab] = useState<number>(\n getActiveTab(color?.hex, tabsMapping, saltColorOverrides)\n );\n const onDefaultSelected = (): void => {\n if (activeTab === 0 && showSwatches) {\n onClear();\n handleOpenChange(false);\n } else {\n onClear();\n }\n };\n\n const onTabClick = (index: number): void => {\n setActiveTab(index);\n };\n\n const OverlayContent = () => {\n const { id } = useOverlayContext();\n\n return (\n <div\n id={`${id}-content`}\n className={clsx(withBaseName(\"overlayContent\"))}\n data-testid=\"overlay-content\"\n >\n <Button\n data-testid=\"default-button\"\n variant=\"secondary\"\n className={clsx(withBaseName(\"defaultButton\"))}\n onClick={onDefaultSelected}\n >\n <RefreshIcon className={clsx(withBaseName(\"refreshIcon\"))} />\n Default\n </Button>\n <DictTabs\n tabs={tabsMapping}\n hexValue={color?.hex}\n onTabClick={onTabClick}\n activeTab={activeTab}\n />\n </div>\n );\n };\n\n return (\n <Overlay placement=\"bottom\" data-testid=\"color-chooser-overlay\">\n <OverlayTrigger>\n <Button\n className={clsx(withBaseName(\"overlayButton\"), {\n [withBaseName(\"overlayButtonHiddenLabel\")]: hideLabel,\n })}\n // @ts-ignore\n data-testid=\"color-chooser-overlay-button\"\n disabled={readOnly}\n {...buttonProps}\n >\n {color && (\n <div\n className={clsx(withBaseName(\"overlayButtonSwatch\"), {\n [withBaseName(\"overlayButtonSwatchWithBorder\")]:\n color?.hex.startsWith(\"#ffffff\"),\n [withBaseName(\"overlayButtonSwatchTransparent\")]: isTransparent(\n color?.hex\n ),\n })}\n style={{\n backgroundColor: color?.hex,\n }}\n />\n )}\n {!hideLabel && (\n <div className={withBaseName(\"overlayButtonText\")}>\n {displayColorName ?? placeholder ?? \"No color selected\"}\n </div>\n )}\n </Button>\n </OverlayTrigger>\n <OverlayPanel>\n <OverlayContent />\n </OverlayPanel>\n </Overlay>\n );\n};\n"],"names":["makePrefixer","hexValueWithoutAlpha","saltColorMap","convertColorMapValueToHex","useWindow","useComponentCssInjection","colorChooserCss","useState","getColorPalettes","getHexValue","getColorNameByHexValue","open","isTransparent","createTabsMapping","useOverlayContext","jsxs","clsx","Button","jsx","RefreshIcon","DictTabs","Overlay","OverlayTrigger","OverlayPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA,CAAA;AAEpD,SAAS,YAAA,CACP,QACA,EAAA,IAAA,EACA,kBACQ,EAAA;AACR,EAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,cAAiB,CAAA,EAAA;AACzC,IAAM,MAAA,UAAA,GAAiCC,kCAAqB,QAAQ,CAAA,CAAA;AACpE,IAAA,MAAM,SAAS,kBAAsB,IAAA,IAAA,GAAA,kBAAA,GAAAC,qBAAA,CAAA;AAErC,IAAA,IACE,UACA,IAAA,CAAC,MAAO,CAAA,IAAA,CAAK,MAAM,CAAE,CAAA,IAAA;AAAA,MACnB,CAAC,GAAa,KAAA;AAvCtB,QAAA,IAAA,EAAA,CAAA;AAwCU,QAAA,OAAA,CAAA,CAAA,EAAA,GAAAC,sCAAA,CAA0B,MAAO,CAAA,GAAA,CAAI,CAArC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAwC,oBACxC,UAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,WAAA,EAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAEhB,EAAA;AACA,MAAO,OAAA,CAAA,CAAA;AAAA,KACT;AAAA,GACF;AACA,EAAO,OAAA,CAAA,CAAA;AACT,CAAA;AAsBO,MAAM,eAAe,CAAC;AAAA,EAC3B,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAe,GAAA,IAAA;AAAA,EACf,eAAkB,GAAA,IAAA;AAAA,EAClB,YAAe,GAAA,CAAA;AAAA,EACf,mBAAsB,GAAA,KAAA;AAAA,EACtB,SAAY,GAAA,KAAA;AAAA,EACZ,WAAA;AAAA,EACA,WAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,cAAiB,GAAA,KAAA;AACnB,CAAsC,KAAA;AApFtC,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAqFE,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAC,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAAS,KAAK,CAAA,CAAA;AAEtC,EAAA,MAAM,SAAwB,GAAA,kBAAA,GAC1BC,iCAAiB,CAAA,kBAAkB,IACnCA,iCAAiB,EAAA,CAAA;AACrB,EAAA,MAAM,mBAAmB,cACrB,GAAAC,wBAAA,CAAY,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAK,mBAAmB,CAC3C,GAAAC,mCAAA;AAAA,IACE,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA;AAAA,IACP,mBAAA;AAAA,IACA,kBAAA;AAAA,GACF,CAAA;AAEJ,EAAA,MAAM,gBAAmB,GAAA,CAACC,KAAkB,KAAA,OAAA,CAAQA,KAAI,CAAA,CAAA;AAExD,EAAM,MAAA,YAAA,GAAeC,wBAAc,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,GAAG,CAAA,GACzC,gBACA,EAAO,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,IAAA,KAAP,IAAa,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA,KAAb,IAAkB,GAAA,EAAA,GAAA,YAAA,CAAA;AAEtB,EAAA,MAAM,cAAcC,mCAAkB,CAAA;AAAA,IACpC,QAAU,EAAA,YAAA;AAAA,IACV,WAAa,EAAA,eAAA;AAAA,IACb,mBAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAO,EAAA,YAAA;AAAA,IACP,iBAAmB,EAAA,QAAA;AAAA,IACnB,gBAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAgB,MAAM;AACpB,MAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,KACf;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAN,cAAA;AAAA,IAChC,YAAa,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,GAAK,EAAA,WAAA,EAAa,kBAAkB,CAAA;AAAA,GAC1D,CAAA;AACA,EAAA,MAAM,oBAAoB,MAAY;AACpC,IAAI,IAAA,SAAA,KAAc,KAAK,YAAc,EAAA;AACnC,MAAQ,OAAA,EAAA,CAAA;AACR,MAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,KACjB,MAAA;AACL,MAAQ,OAAA,EAAA,CAAA;AAAA,KACV;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,KAAwB,KAAA;AAC1C,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAM,MAAA,EAAE,EAAG,EAAA,GAAIO,gCAAkB,EAAA,CAAA;AAEjC,IAAA,uBACGC,eAAA,CAAA,KAAA,EAAA;AAAA,MACC,IAAI,CAAG,EAAA,EAAA,CAAA,QAAA,CAAA;AAAA,MACP,SAAW,EAAAC,SAAA,CAAK,YAAa,CAAA,gBAAgB,CAAC,CAAA;AAAA,MAC9C,aAAY,EAAA,iBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAACD,eAAA,CAAAE,WAAA,EAAA;AAAA,UACC,aAAY,EAAA,gBAAA;AAAA,UACZ,OAAQ,EAAA,WAAA;AAAA,UACR,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,eAAe,CAAC,CAAA;AAAA,UAC7C,OAAS,EAAA,iBAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAACE,cAAA,CAAAC,iBAAA,EAAA;AAAA,cAAY,SAAW,EAAAH,SAAA,CAAK,YAAa,CAAA,aAAa,CAAC,CAAA;AAAA,aAAG,CAAA;AAAA,YAAE,SAAA;AAAA,WAAA;AAAA,SAE/D,CAAA;AAAA,wBACCE,cAAA,CAAAE,iBAAA,EAAA;AAAA,UACC,IAAM,EAAA,WAAA;AAAA,UACN,UAAU,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA;AAAA,UACjB,UAAA;AAAA,UACA,SAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACGL,eAAA,CAAAM,eAAA,EAAA;AAAA,IAAQ,SAAU,EAAA,QAAA;AAAA,IAAS,aAAY,EAAA,uBAAA;AAAA,IACtC,QAAA,EAAA;AAAA,sBAACH,cAAA,CAAAI,6BAAA,EAAA;AAAA,QACC,QAAC,kBAAAP,eAAA,CAAAE,WAAA,EAAA;AAAA,UACC,SAAW,EAAAD,SAAA,CAAK,YAAa,CAAA,eAAe,CAAG,EAAA;AAAA,YAC7C,CAAC,YAAa,CAAA,0BAA0B,CAAI,GAAA,SAAA;AAAA,WAC7C,CAAA;AAAA,UAED,aAAY,EAAA,8BAAA;AAAA,UACZ,QAAU,EAAA,QAAA;AAAA,UACT,GAAG,WAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YAAA,KAAA,oBACEE,cAAA,CAAA,KAAA,EAAA;AAAA,cACC,SAAW,EAAAF,SAAA,CAAK,YAAa,CAAA,qBAAqB,CAAG,EAAA;AAAA,gBACnD,CAAC,YAAa,CAAA,+BAA+B,CAC3C,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,IAAI,UAAW,CAAA,SAAA,CAAA;AAAA,gBACxB,CAAC,YAAa,CAAA,gCAAgC,CAAI,GAAAJ,wBAAA;AAAA,kBAChD,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA;AAAA,iBACT;AAAA,eACD,CAAA;AAAA,cACD,KAAO,EAAA;AAAA,gBACL,iBAAiB,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA;AAAA,eAC1B;AAAA,aACF,CAAA;AAAA,YAED,CAAC,6BACCM,cAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,cAC7C,QAAA,EAAA,CAAA,EAAA,GAAA,gBAAA,IAAA,IAAA,GAAA,gBAAA,GAAoB,gBAApB,IAAmC,GAAA,EAAA,GAAA,mBAAA;AAAA,aACtC,CAAA;AAAA,WAAA;AAAA,SAEJ,CAAA;AAAA,OACF,CAAA;AAAA,sBACCA,cAAA,CAAAK,yBAAA,EAAA;AAAA,QACC,yCAAC,cAAe,EAAA,EAAA,CAAA;AAAA,OAClB,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
package/dist-cjs/index.js
CHANGED
|
@@ -75,9 +75,6 @@ var Dropdown = require('./dropdown/Dropdown.js');
|
|
|
75
75
|
var useDropdownBase = require('./dropdown/useDropdownBase.js');
|
|
76
76
|
var DropdownNext = require('./dropdown-next/DropdownNext.js');
|
|
77
77
|
var EditableLabel = require('./editable-label/EditableLabel.js');
|
|
78
|
-
var FileDropZone = require('./file-drop-zone/FileDropZone.js');
|
|
79
|
-
var FileDropZoneIcon = require('./file-drop-zone/FileDropZoneIcon.js');
|
|
80
|
-
var FileDropZoneTrigger = require('./file-drop-zone/FileDropZoneTrigger.js');
|
|
81
78
|
var FormFieldLegacy = require('./form-field-legacy/FormFieldLegacy.js');
|
|
82
79
|
var FormLabel = require('./form-field-legacy/FormLabel.js');
|
|
83
80
|
var FormFieldLegacyContext = require('./form-field-context-legacy/FormFieldLegacyContext.js');
|
|
@@ -106,7 +103,8 @@ var MetricContent = require('./metric/MetricContent.js');
|
|
|
106
103
|
var Option = require('./option/Option.js');
|
|
107
104
|
var OptionGroup = require('./option/OptionGroup.js');
|
|
108
105
|
var Overlay = require('./overlay/Overlay.js');
|
|
109
|
-
var
|
|
106
|
+
var OverlayTrigger = require('./overlay/OverlayTrigger.js');
|
|
107
|
+
var OverlayPanel = require('./overlay/OverlayPanel.js');
|
|
110
108
|
var ParentChildItem = require('./parent-child-item/ParentChildItem.js');
|
|
111
109
|
var ParentChildLayout = require('./parent-child-layout/ParentChildLayout.js');
|
|
112
110
|
var Portal = require('./portal/Portal.js');
|
|
@@ -233,9 +231,6 @@ exports.Dropdown = Dropdown.Dropdown;
|
|
|
233
231
|
exports.useDropdownBase = useDropdownBase.useDropdownBase;
|
|
234
232
|
exports.DropdownNext = DropdownNext.DropdownNext;
|
|
235
233
|
exports.EditableLabel = EditableLabel.EditableLabel;
|
|
236
|
-
exports.FileDropZone = FileDropZone.FileDropZone;
|
|
237
|
-
exports.FileDropZoneIcon = FileDropZoneIcon.FileDropZoneIcon;
|
|
238
|
-
exports.FileDropZoneTrigger = FileDropZoneTrigger.FileDropZoneTrigger;
|
|
239
234
|
exports.FormField = FormFieldLegacy.FormFieldLegacy;
|
|
240
235
|
exports.FormLabel = FormLabel.FormLabel;
|
|
241
236
|
exports.FormFieldLegacyContext = FormFieldLegacyContext.FormFieldLegacyContext;
|
|
@@ -266,7 +261,8 @@ exports.MetricContent = MetricContent.MetricContent;
|
|
|
266
261
|
exports.Option = Option.Option;
|
|
267
262
|
exports.OptionGroup = OptionGroup.OptionGroup;
|
|
268
263
|
exports.Overlay = Overlay.Overlay;
|
|
269
|
-
exports.
|
|
264
|
+
exports.OverlayTrigger = OverlayTrigger.OverlayTrigger;
|
|
265
|
+
exports.OverlayPanel = OverlayPanel.OverlayPanel;
|
|
270
266
|
exports.ParentChildItem = ParentChildItem.ParentChildItem;
|
|
271
267
|
exports.ParentChildLayout = ParentChildLayout.ParentChildLayout;
|
|
272
268
|
exports.Portal = Portal.Portal;
|
package/dist-cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = "
|
|
3
|
+
var css_248z = ".saltOverlayPanel {\n --overlay-borderColor: var(--saltOverlay-borderColor, var(--salt-container-primary-borderColor));\n --overlay-background: var(--saltOverlay-background, var(--salt-container-primary-background));\n}\n\n.saltOverlayPanel {\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltOverlay-fontSize, var(--salt-text-fontSize));\n font-weight: var(--saltOverlay-fontWeight, var(--salt-text-fontWeight));\n line-height: var(--saltOverlay-lineHeight, var(--salt-text-lineHeight));\n\n border-color: var(--overlay-borderColor);\n border-style: var(--saltOverlay-borderStyle, var(--salt-container-borderStyle));\n border-width: var(--saltOverlay-borderWidth, var(--salt-size-border));\n\n background: var(--overlay-background);\n box-shadow: var(--saltOverlay-boxShadow, var(--salt-overlayable-shadow-popout));\n\n color: var(--saltOverlay-text-color, var(--salt-text-primary-foreground));\n z-index: var(--saltOverlay-zIndex, var(--salt-zIndex-flyover));\n width: max-content;\n}\n\n.saltOverlayPanelBase-container {\n animation: fade-in var(--salt-duration-perceptible) ease-in-out;\n position: relative;\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.saltOverlayPanelBase-content {\n overflow: auto;\n padding: var(--saltOverlay-content-padding, var(--salt-spacing-100) 0 var(--salt-spacing-100) var(--salt-spacing-100));\n}\n\n.saltButton-secondary.saltOverlayPanelBase-closeButton {\n position: sticky;\n top: 0;\n float: right;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=Overlay.css.js.map
|
|
@@ -3,73 +3,102 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var core = require('@salt-ds/core');
|
|
7
|
-
var icons = require('@salt-ds/icons');
|
|
8
|
-
var clsx = require('clsx');
|
|
9
6
|
var React = require('react');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var WindowContext = require('../window/WindowContext.js');
|
|
14
|
-
require('../window/ElectronWindow.js');
|
|
15
|
-
var Overlay$1 = require('./Overlay.css.js');
|
|
7
|
+
var OverlayContext = require('./OverlayContext.js');
|
|
8
|
+
var core = require('@salt-ds/core');
|
|
9
|
+
var react = require('@floating-ui/react');
|
|
16
10
|
|
|
17
|
-
const withBaseName = core.makePrefixer("saltOverlay");
|
|
18
11
|
const Overlay = React.forwardRef(
|
|
19
|
-
({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
function Overlay2(props, ref) {
|
|
13
|
+
const {
|
|
14
|
+
children,
|
|
15
|
+
open,
|
|
16
|
+
onOpenChange,
|
|
17
|
+
placement: placementProp = "top",
|
|
18
|
+
id: idProp,
|
|
19
|
+
onClose,
|
|
20
|
+
...rest
|
|
21
|
+
} = props;
|
|
22
|
+
const id = core.useId(idProp);
|
|
23
|
+
const arrowRef = React.useRef(null);
|
|
24
|
+
const [openState, setOpenState] = core.useControlled({
|
|
25
|
+
controlled: open,
|
|
26
|
+
default: false,
|
|
27
|
+
name: "Overlay",
|
|
28
|
+
state: "open"
|
|
29
|
+
});
|
|
30
|
+
const {
|
|
31
|
+
x,
|
|
32
|
+
y,
|
|
33
|
+
strategy,
|
|
34
|
+
context,
|
|
35
|
+
elements,
|
|
36
|
+
floating,
|
|
37
|
+
reference,
|
|
38
|
+
middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },
|
|
39
|
+
placement
|
|
40
|
+
} = core.useFloatingUI({
|
|
41
|
+
open: openState,
|
|
42
|
+
onOpenChange: setOpenState,
|
|
43
|
+
placement: placementProp,
|
|
44
|
+
middleware: [
|
|
45
|
+
react.offset(11),
|
|
46
|
+
react.flip(),
|
|
47
|
+
react.shift({ limiter: react.limitShift() }),
|
|
48
|
+
react.arrow({ element: arrowRef })
|
|
49
|
+
]
|
|
36
50
|
});
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
51
|
+
const { getReferenceProps, getFloatingProps } = react.useInteractions([
|
|
52
|
+
react.useRole(context, { role: "dialog" }),
|
|
53
|
+
react.useClick(context),
|
|
54
|
+
react.useDismiss(context)
|
|
55
|
+
]);
|
|
56
|
+
const floatingStyles = React.useMemo(() => {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
return {
|
|
59
|
+
top: y != null ? y : 0,
|
|
60
|
+
left: x != null ? x : 0,
|
|
61
|
+
position: strategy,
|
|
62
|
+
width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
|
|
63
|
+
height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight
|
|
64
|
+
};
|
|
65
|
+
}, [elements.floating, strategy, x, y]);
|
|
66
|
+
const setOpen = (event, newOpen) => {
|
|
67
|
+
setOpenState(newOpen);
|
|
68
|
+
onOpenChange == null ? void 0 : onOpenChange(event, newOpen);
|
|
69
|
+
};
|
|
70
|
+
const arrowProps = {
|
|
71
|
+
ref: arrowRef,
|
|
72
|
+
context,
|
|
73
|
+
style: {
|
|
74
|
+
position: strategy,
|
|
75
|
+
left: arrowX != null ? arrowX : 0,
|
|
76
|
+
top: arrowY != null ? arrowY : 0
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const handleCloseButton = (event) => {
|
|
80
|
+
setOpen(event, false);
|
|
81
|
+
onClose == null ? void 0 : onClose(event);
|
|
41
82
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
83
|
+
return /* @__PURE__ */ jsxRuntime.jsx(OverlayContext.OverlayContext.Provider, {
|
|
84
|
+
value: {
|
|
85
|
+
id: id != null ? id : "",
|
|
86
|
+
openState,
|
|
87
|
+
setOpen,
|
|
88
|
+
floatingStyles,
|
|
89
|
+
placement,
|
|
90
|
+
context,
|
|
91
|
+
arrowProps,
|
|
92
|
+
floating,
|
|
93
|
+
reference,
|
|
94
|
+
handleCloseButton,
|
|
95
|
+
getFloatingProps,
|
|
96
|
+
getReferenceProps
|
|
97
|
+
},
|
|
98
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
51
99
|
ref,
|
|
52
100
|
...rest,
|
|
53
|
-
children
|
|
54
|
-
className: clsx.clsx(withBaseName("content")),
|
|
55
|
-
"data-testid": "overlay-content",
|
|
56
|
-
children: [
|
|
57
|
-
showClose && /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
|
|
58
|
-
onClick: handleCloseButton,
|
|
59
|
-
className: withBaseName("close"),
|
|
60
|
-
variant: "secondary",
|
|
61
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, {
|
|
62
|
-
"accessible-text": "close overlay",
|
|
63
|
-
className: withBaseName("closeIcon")
|
|
64
|
-
})
|
|
65
|
-
}),
|
|
66
|
-
children,
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
68
|
-
className: withBaseName("arrow"),
|
|
69
|
-
...arrowProps
|
|
70
|
-
})
|
|
71
|
-
]
|
|
72
|
-
})
|
|
101
|
+
children
|
|
73
102
|
})
|
|
74
103
|
});
|
|
75
104
|
}
|