@salt-ds/lab 1.0.0-alpha.69 → 1.0.0-alpha.70
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/CHANGELOG.md +13 -0
- package/css/salt-lab.css +9 -9
- package/dist-cjs/cascading-menu/CascadingMenuItem.css.js +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.css.js +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @salt-ds/lab
|
|
2
2
|
|
|
3
|
+
## 1.0.0-alpha.70
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5f6c967: Fixed CascadingMenu styles clashing with Menu styles.
|
|
8
|
+
- Updated dependencies [b99afaa]
|
|
9
|
+
- Updated dependencies [dd3e21d]
|
|
10
|
+
- Updated dependencies [edcd33d]
|
|
11
|
+
- Updated dependencies [a3a0608]
|
|
12
|
+
- Updated dependencies [0c140c0]
|
|
13
|
+
- @salt-ds/core@1.47.0
|
|
14
|
+
- @salt-ds/icons@1.14.0
|
|
15
|
+
|
|
3
16
|
## 1.0.0-alpha.69
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/css/salt-lab.css
CHANGED
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
/* src/cascading-menu/CascadingMenuItem.css */
|
|
380
|
-
.
|
|
380
|
+
.saltCascadingMenuItem {
|
|
381
381
|
background: var(--salt-selectable-background);
|
|
382
382
|
display: flex;
|
|
383
383
|
align-items: center;
|
|
@@ -390,27 +390,27 @@
|
|
|
390
390
|
white-space: nowrap;
|
|
391
391
|
text-overflow: ellipsis;
|
|
392
392
|
}
|
|
393
|
-
.
|
|
393
|
+
.saltCascadingMenuItem-menuItemText {
|
|
394
394
|
flex-grow: 2;
|
|
395
395
|
white-space: nowrap;
|
|
396
396
|
}
|
|
397
|
-
.
|
|
397
|
+
.saltCascadingMenuItem-menuItemEndAdornment {
|
|
398
398
|
margin-left: 8px;
|
|
399
399
|
}
|
|
400
|
-
.
|
|
400
|
+
.saltCascadingMenuItem-menuItemStartAdornmentContainer {
|
|
401
401
|
margin-right: var(--salt-size-unit);
|
|
402
402
|
width: 12px;
|
|
403
403
|
}
|
|
404
|
-
.
|
|
404
|
+
.saltCascadingMenuItem-menuItemAdornmentHidden {
|
|
405
405
|
visibility: hidden;
|
|
406
406
|
}
|
|
407
|
-
.
|
|
407
|
+
.saltCascadingMenuItem.saltCascadingMenuItem-menuItemDivider {
|
|
408
408
|
border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);
|
|
409
409
|
}
|
|
410
|
-
.
|
|
410
|
+
.saltCascadingMenuItem-menuItemHover:hover {
|
|
411
411
|
background: var(--salt-selectable-background-hover);
|
|
412
412
|
}
|
|
413
|
-
.
|
|
413
|
+
.saltCascadingMenuItem.saltCascadingMenuItem-menuItemBlurSelected {
|
|
414
414
|
background: var(--salt-selectable-background-blurSelected) !important;
|
|
415
415
|
}
|
|
416
416
|
|
|
@@ -4328,4 +4328,4 @@
|
|
|
4328
4328
|
margin: calc(var(--salt-size-unit) / 2) 0;
|
|
4329
4329
|
}
|
|
4330
4330
|
|
|
4331
|
-
/* src/
|
|
4331
|
+
/* src/b7f34c1b-5966-4c6a-93b8-eb0aacce789c.css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".
|
|
3
|
+
var css_248z = ".saltCascadingMenuItem {\n background: var(--salt-selectable-background);\n display: flex;\n\n align-items: center;\n justify-content: space-between;\n\n right: 0;\n cursor: pointer;\n overflow: hidden;\n text-align: left;\n user-select: none;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.saltCascadingMenuItem-menuItemText {\n flex-grow: 2;\n white-space: nowrap;\n}\n\n.saltCascadingMenuItem-menuItemEndAdornment {\n margin-left: 8px; /* density */\n}\n\n.saltCascadingMenuItem-menuItemStartAdornmentContainer {\n margin-right: var(--salt-size-unit);\n width: 12px;\n}\n\n.saltCascadingMenuItem-menuItemAdornmentHidden {\n visibility: hidden;\n}\n\n.saltCascadingMenuItem.saltCascadingMenuItem-menuItemDivider {\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltCascadingMenuItem-menuItemHover:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n/* extra specificity requred to override ListItem selected */\n.saltCascadingMenuItem.saltCascadingMenuItem-menuItemBlurSelected {\n background: var(--salt-selectable-background-blurSelected) !important;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=CascadingMenuItem.css.js.map
|
|
@@ -15,7 +15,7 @@ var window = require('@salt-ds/window');
|
|
|
15
15
|
var CascadingMenuItem = require('./CascadingMenuItem.css.js');
|
|
16
16
|
|
|
17
17
|
const noop = () => void 0;
|
|
18
|
-
const withBaseName = core.makePrefixer("
|
|
18
|
+
const withBaseName = core.makePrefixer("saltCascadingMenuItem");
|
|
19
19
|
const getIcon = (sourceItem, isDisabled = false) => {
|
|
20
20
|
const CustomIcon = sourceItem.icon;
|
|
21
21
|
if (CustomIcon) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"
|
|
1
|
+
{"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"saltCascadingMenuItem\");\n\nconst getIcon = (sourceItem: MenuDescriptor, isDisabled = false) => {\n const CustomIcon = sourceItem.icon;\n if (CustomIcon) {\n return (\n <CustomIcon\n className={clsx(withBaseName(\"menuItemStartAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n );\n }\n return null;\n};\n\nexport interface MenuItemProps extends ListItemProps<MenuDescriptor> {\n blurSelected: boolean;\n className?: string;\n hasEndAdornment: boolean;\n hasScrollbar: boolean;\n hasStartAdornment: boolean;\n hasSubMenu: boolean;\n isInteracted: boolean;\n isChildMenuOpen: boolean;\n isNavigatingWithKeyboard: boolean;\n itemToString: Required<ListItemProps<MenuDescriptor>>[\"itemToString\"];\n onItemClick?: (\n sourceItem: MenuDescriptor,\n event: MouseEvent | KeyboardEvent,\n ) => void;\n sourceItem: MenuDescriptor;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const DefaultMenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (props, ref) => {\n const {\n blurSelected,\n className,\n hasEndAdornment,\n hasScrollbar,\n hasStartAdornment,\n onItemClick,\n itemToString,\n isInteracted,\n isNavigatingWithKeyboard,\n isChildMenuOpen,\n hasSubMenu,\n sourceItem,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-item\",\n css: cascadingMenuItemCss,\n window: targetWindow,\n });\n const { ExpandGroupIcon } = useIcon();\n const menuTextRef = useRef<HTMLDivElement>(null);\n const [hasTooltip, setHasTooltip] = useState(false);\n const menuText = itemToString(sourceItem);\n\n useEffect(() => {\n const element = menuTextRef.current;\n if (element) {\n if (element.offsetWidth < element.scrollWidth) {\n setHasTooltip(true);\n }\n }\n }, [menuText]);\n\n const isDisabled = sourceItem.disabled;\n const divider = sourceItem.divider;\n\n const onClick = isDisabled || hasSubMenu ? noop : onItemClick;\n\n const handleOnClick = (event: MouseEvent) => {\n if (!isDisabled && !hasSubMenu) {\n onClick?.(sourceItem, event);\n }\n };\n const interactionClasses = isNavigatingWithKeyboard\n ? {\n [withBaseName(\"menuItemKeyboardActive\")]:\n !isDisabled && isInteracted && !blurSelected,\n [withBaseName(\"menuItemKeyboardDisabled\")]:\n isDisabled && isInteracted,\n }\n : {\n [withBaseName(\"menuItemHover\")]: !isDisabled && !blurSelected,\n };\n\n const icon = hasStartAdornment ? getIcon(sourceItem, isDisabled) : null;\n const tooltipTitle = sourceItem.tooltip || menuText;\n\n return (\n <Tooltip\n disableFocusListener\n disableHoverListener\n enterDelay={tooltipEnterDelay}\n leaveDelay={tooltipLeaveDelay}\n placement=\"top\"\n disabled={!tooltipTitle || !hasTooltip || isChildMenuOpen}\n content={tooltipTitle}\n >\n <ListItem\n ref={ref}\n aria-expanded={isChildMenuOpen || undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"menuItemDivider\")]: divider,\n [withBaseName(\"menuItemBlurSelected\")]: blurSelected,\n [withBaseName(\"menuItemSelected\")]:\n !isDisabled && !hasSubMenu && isInteracted,\n ...interactionClasses,\n [withBaseName(\"menuItemWithScrollbar\")]: hasScrollbar,\n },\n className,\n )}\n disabled={isDisabled}\n role=\"menuitem\"\n onClick={handleOnClick}\n item={sourceItem}\n // TODO highlightProps - see original code?\n {...restProps}\n >\n {hasStartAdornment && (\n <div className={withBaseName(\"menuItemStartAdornmentContainer\")}>\n {icon}\n </div>\n )}\n <div\n className={clsx(withBaseName(\"menuItemText\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n ref={menuTextRef}\n >\n {menuText}\n </div>\n {hasEndAdornment && (\n <div\n className={clsx(withBaseName(\"menuItemEndAdornmentContainer\"), {\n [withBaseName(\"menuItemAdornmentHidden\")]: !hasSubMenu,\n })}\n >\n <ExpandGroupIcon\n className={clsx(withBaseName(\"menuItemEndAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n </div>\n )}\n {divider && <div role=\"separator\" />}\n </ListItem>\n </Tooltip>\n );\n },\n);\n"],"names":["makePrefixer","jsx","clsx","forwardRef","useWindow","useComponentCssInjection","cascadingMenuItemCss","useIcon","useRef","useState","useEffect","Tooltip","jsxs","ListItem"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var css_248z = ".
|
|
1
|
+
var css_248z = ".saltCascadingMenuItem {\n background: var(--salt-selectable-background);\n display: flex;\n\n align-items: center;\n justify-content: space-between;\n\n right: 0;\n cursor: pointer;\n overflow: hidden;\n text-align: left;\n user-select: none;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.saltCascadingMenuItem-menuItemText {\n flex-grow: 2;\n white-space: nowrap;\n}\n\n.saltCascadingMenuItem-menuItemEndAdornment {\n margin-left: 8px; /* density */\n}\n\n.saltCascadingMenuItem-menuItemStartAdornmentContainer {\n margin-right: var(--salt-size-unit);\n width: 12px;\n}\n\n.saltCascadingMenuItem-menuItemAdornmentHidden {\n visibility: hidden;\n}\n\n.saltCascadingMenuItem.saltCascadingMenuItem-menuItemDivider {\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltCascadingMenuItem-menuItemHover:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n/* extra specificity requred to override ListItem selected */\n.saltCascadingMenuItem.saltCascadingMenuItem-menuItemBlurSelected {\n background: var(--salt-selectable-background-blurSelected) !important;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { css_248z as default };
|
|
4
4
|
//# sourceMappingURL=CascadingMenuItem.css.js.map
|
|
@@ -13,7 +13,7 @@ import { useWindow } from '@salt-ds/window';
|
|
|
13
13
|
import css_248z from './CascadingMenuItem.css.js';
|
|
14
14
|
|
|
15
15
|
const noop = () => void 0;
|
|
16
|
-
const withBaseName = makePrefixer("
|
|
16
|
+
const withBaseName = makePrefixer("saltCascadingMenuItem");
|
|
17
17
|
const getIcon = (sourceItem, isDisabled = false) => {
|
|
18
18
|
const CustomIcon = sourceItem.icon;
|
|
19
19
|
if (CustomIcon) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"
|
|
1
|
+
{"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"saltCascadingMenuItem\");\n\nconst getIcon = (sourceItem: MenuDescriptor, isDisabled = false) => {\n const CustomIcon = sourceItem.icon;\n if (CustomIcon) {\n return (\n <CustomIcon\n className={clsx(withBaseName(\"menuItemStartAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n );\n }\n return null;\n};\n\nexport interface MenuItemProps extends ListItemProps<MenuDescriptor> {\n blurSelected: boolean;\n className?: string;\n hasEndAdornment: boolean;\n hasScrollbar: boolean;\n hasStartAdornment: boolean;\n hasSubMenu: boolean;\n isInteracted: boolean;\n isChildMenuOpen: boolean;\n isNavigatingWithKeyboard: boolean;\n itemToString: Required<ListItemProps<MenuDescriptor>>[\"itemToString\"];\n onItemClick?: (\n sourceItem: MenuDescriptor,\n event: MouseEvent | KeyboardEvent,\n ) => void;\n sourceItem: MenuDescriptor;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const DefaultMenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (props, ref) => {\n const {\n blurSelected,\n className,\n hasEndAdornment,\n hasScrollbar,\n hasStartAdornment,\n onItemClick,\n itemToString,\n isInteracted,\n isNavigatingWithKeyboard,\n isChildMenuOpen,\n hasSubMenu,\n sourceItem,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-item\",\n css: cascadingMenuItemCss,\n window: targetWindow,\n });\n const { ExpandGroupIcon } = useIcon();\n const menuTextRef = useRef<HTMLDivElement>(null);\n const [hasTooltip, setHasTooltip] = useState(false);\n const menuText = itemToString(sourceItem);\n\n useEffect(() => {\n const element = menuTextRef.current;\n if (element) {\n if (element.offsetWidth < element.scrollWidth) {\n setHasTooltip(true);\n }\n }\n }, [menuText]);\n\n const isDisabled = sourceItem.disabled;\n const divider = sourceItem.divider;\n\n const onClick = isDisabled || hasSubMenu ? noop : onItemClick;\n\n const handleOnClick = (event: MouseEvent) => {\n if (!isDisabled && !hasSubMenu) {\n onClick?.(sourceItem, event);\n }\n };\n const interactionClasses = isNavigatingWithKeyboard\n ? {\n [withBaseName(\"menuItemKeyboardActive\")]:\n !isDisabled && isInteracted && !blurSelected,\n [withBaseName(\"menuItemKeyboardDisabled\")]:\n isDisabled && isInteracted,\n }\n : {\n [withBaseName(\"menuItemHover\")]: !isDisabled && !blurSelected,\n };\n\n const icon = hasStartAdornment ? getIcon(sourceItem, isDisabled) : null;\n const tooltipTitle = sourceItem.tooltip || menuText;\n\n return (\n <Tooltip\n disableFocusListener\n disableHoverListener\n enterDelay={tooltipEnterDelay}\n leaveDelay={tooltipLeaveDelay}\n placement=\"top\"\n disabled={!tooltipTitle || !hasTooltip || isChildMenuOpen}\n content={tooltipTitle}\n >\n <ListItem\n ref={ref}\n aria-expanded={isChildMenuOpen || undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"menuItemDivider\")]: divider,\n [withBaseName(\"menuItemBlurSelected\")]: blurSelected,\n [withBaseName(\"menuItemSelected\")]:\n !isDisabled && !hasSubMenu && isInteracted,\n ...interactionClasses,\n [withBaseName(\"menuItemWithScrollbar\")]: hasScrollbar,\n },\n className,\n )}\n disabled={isDisabled}\n role=\"menuitem\"\n onClick={handleOnClick}\n item={sourceItem}\n // TODO highlightProps - see original code?\n {...restProps}\n >\n {hasStartAdornment && (\n <div className={withBaseName(\"menuItemStartAdornmentContainer\")}>\n {icon}\n </div>\n )}\n <div\n className={clsx(withBaseName(\"menuItemText\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n ref={menuTextRef}\n >\n {menuText}\n </div>\n {hasEndAdornment && (\n <div\n className={clsx(withBaseName(\"menuItemEndAdornmentContainer\"), {\n [withBaseName(\"menuItemAdornmentHidden\")]: !hasSubMenu,\n })}\n >\n <ExpandGroupIcon\n className={clsx(withBaseName(\"menuItemEndAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n </div>\n )}\n {divider && <div role=\"separator\" />}\n </ListItem>\n </Tooltip>\n );\n },\n);\n"],"names":["cascadingMenuItemCss","ListItem"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salt-ds/lab",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.70",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@floating-ui/react": "^0.26.28",
|
|
24
|
-
"@salt-ds/core": "^1.
|
|
24
|
+
"@salt-ds/core": "^1.47.0",
|
|
25
25
|
"@salt-ds/date-adapters": "0.1.0-alpha.4",
|
|
26
|
-
"@salt-ds/icons": "^1.
|
|
26
|
+
"@salt-ds/icons": "^1.14.0",
|
|
27
27
|
"@salt-ds/styles": "0.2.1",
|
|
28
28
|
"@salt-ds/window": "0.1.1",
|
|
29
29
|
"@types/react-window": "^1.8.2",
|