@react-md/core 1.0.0-next.7 → 1.0.0-next.8
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/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +6 -0
- package/coverage/clover.xml +264 -389
- package/coverage/coverage-final.json +2 -3
- package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
- package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
- package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
- package/coverage/lcov-report/SrOnly.tsx.html +328 -0
- package/coverage/lcov-report/Typography.tsx.html +1027 -0
- package/coverage/lcov-report/index.html +15 -30
- package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
- package/coverage/lcov.info +304 -436
- package/dist/_core.scss +49 -43
- package/dist/badge/_badge.scss +23 -19
- package/dist/form/MenuItemInputToggle.d.ts +2 -15
- package/dist/form/MenuItemInputToggle.js +26 -37
- package/dist/form/MenuItemInputToggle.js.map +1 -1
- package/dist/form/_form.scss +39 -16
- package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
- package/dist/form/menuItemInputToggleStyles.js +31 -0
- package/dist/form/menuItemInputToggleStyles.js.map +1 -0
- package/dist/icon/_icon.scss +7 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interaction/_interaction.scss +56 -44
- package/dist/list/types.d.ts +10 -1
- package/dist/list/types.js.map +1 -1
- package/dist/menu/_menu.scss +1 -0
- package/dist/theme/_theme.scss +192 -34
- package/dist/typography/SrOnly.d.ts +3 -3
- package/dist/typography/SrOnly.js +4 -4
- package/dist/typography/SrOnly.js.map +1 -1
- package/dist/typography/Typography.d.ts +19 -19
- package/dist/typography/Typography.js +19 -19
- package/dist/typography/Typography.js.map +1 -1
- package/dist/typography/_typography.scss +65 -25
- package/package.json +11 -11
- package/src/_core.scss +49 -43
- package/src/badge/_badge.scss +23 -19
- package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
- package/src/form/MenuItemInputToggle.tsx +46 -64
- package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
- package/src/form/__tests__/MenuItemRadio.tsx +53 -0
- package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
- package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
- package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
- package/src/form/_form.scss +39 -16
- package/src/form/menuItemInputToggleStyles.ts +78 -0
- package/src/icon/_icon.scss +7 -5
- package/src/index.ts +1 -0
- package/src/interaction/_interaction.scss +56 -44
- package/src/list/types.ts +12 -1
- package/src/menu/_menu.scss +1 -0
- package/src/theme/_theme.scss +192 -34
- package/src/typography/SrOnly.tsx +9 -9
- package/src/typography/Typography.tsx +19 -19
- package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
- package/src/typography/_typography.scss +65 -25
- package/.turbo/turbo-lint.log +0 -12
package/dist/_core.scss
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
@forward "icon/icon" as icon-*;
|
|
14
14
|
@forward "divider/divider" as divider-*;
|
|
15
15
|
@forward "progress/progress" as progress-*;
|
|
16
|
+
@forward "overlay/overlay" as overlay-*;
|
|
16
17
|
@forward "button/button" as button-*;
|
|
17
18
|
@forward "badge/badge" as badge-*;
|
|
18
19
|
@forward "tabs/tabs" as tabs-*;
|
|
@@ -21,7 +22,6 @@
|
|
|
21
22
|
@forward "table/table" as table-*;
|
|
22
23
|
@forward "app-bar/app-bar" as app-bar-*;
|
|
23
24
|
@forward "responsive-item/responsive-item" as responsive-item-*;
|
|
24
|
-
@forward "overlay/overlay" as overlay-*;
|
|
25
25
|
@forward "card/card" as card-*;
|
|
26
26
|
@forward "link/link" as link-*;
|
|
27
27
|
@forward "list/list" as list-*;
|
|
@@ -361,53 +361,59 @@ $_layer-order: (
|
|
|
361
361
|
@include typography.typography-variables;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
@mixin styles
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
@
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
@
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
@
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
@include
|
|
381
|
-
@include
|
|
382
|
-
@include
|
|
383
|
-
@include
|
|
384
|
-
@include
|
|
385
|
-
@include
|
|
386
|
-
@include
|
|
387
|
-
@include
|
|
388
|
-
@include
|
|
389
|
-
@include
|
|
390
|
-
@include
|
|
391
|
-
@include
|
|
392
|
-
@include
|
|
393
|
-
@include
|
|
394
|
-
@include
|
|
395
|
-
@include
|
|
396
|
-
@include
|
|
397
|
-
@include
|
|
398
|
-
@include
|
|
399
|
-
@include
|
|
400
|
-
@include
|
|
364
|
+
@mixin styles(
|
|
365
|
+
$disable-layer: false,
|
|
366
|
+
$disable-layer-order: $disable-layer,
|
|
367
|
+
$disable-reset: false,
|
|
368
|
+
$disable-css-utils: false
|
|
369
|
+
) {
|
|
370
|
+
@if not $disable-layer-order {
|
|
371
|
+
@layer #{$_layer-order};
|
|
372
|
+
}
|
|
373
|
+
@if not $disable-reset {
|
|
374
|
+
@include css-reset;
|
|
375
|
+
}
|
|
376
|
+
@if not $disable-css-utils {
|
|
377
|
+
@include css-utils($disable-layer);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
@include app-bar.styles($disable-layer);
|
|
381
|
+
@include avatar.styles($disable-layer);
|
|
382
|
+
@include badge.styles($disable-layer);
|
|
383
|
+
@include box.styles($disable-layer);
|
|
384
|
+
@include button.styles($disable-layer);
|
|
385
|
+
@include card.styles($disable-layer);
|
|
386
|
+
@include chip.styles($disable-layer);
|
|
387
|
+
@include dialog.styles($disable-layer);
|
|
388
|
+
@include divider.styles($disable-layer);
|
|
389
|
+
@include draggable.styles($disable-layer);
|
|
390
|
+
@include expansion-panel.styles($disable-layer);
|
|
391
|
+
@include form.styles($disable-layer);
|
|
392
|
+
@include icon.styles($disable-layer);
|
|
393
|
+
@include interaction.styles($disable-layer);
|
|
394
|
+
@include layout.styles($disable-layer);
|
|
395
|
+
@include link.styles($disable-layer);
|
|
396
|
+
@include list.styles($disable-layer);
|
|
397
|
+
@include menu.styles($disable-layer);
|
|
398
|
+
@include overlay.styles($disable-layer);
|
|
399
|
+
@include progress.styles($disable-layer);
|
|
400
|
+
@include responsive-item.styles($disable-layer);
|
|
401
|
+
@include segmented-button.styles($disable-layer);
|
|
402
|
+
@include sheet.styles($disable-layer);
|
|
403
|
+
@include snackbar.styles($disable-layer);
|
|
404
|
+
@include table.styles($disable-layer);
|
|
405
|
+
@include tabs.styles($disable-layer);
|
|
406
|
+
@include tooltip.styles($disable-layer);
|
|
407
|
+
@include transition.transition-styles($disable-layer);
|
|
408
|
+
@include tree.styles($disable-layer);
|
|
409
|
+
@include typography.typography-styles($disable-layer);
|
|
410
|
+
@include window-splitter.styles($disable-layer);
|
|
401
411
|
|
|
402
412
|
@if not theme.$disable-default-root-theme {
|
|
403
413
|
:root {
|
|
404
414
|
@include variables;
|
|
405
415
|
|
|
406
|
-
@if
|
|
407
|
-
theme.$disable-default-system-theme and
|
|
408
|
-
theme.$color-scheme ==
|
|
409
|
-
system
|
|
410
|
-
{
|
|
416
|
+
@if theme.$color-scheme == system {
|
|
411
417
|
@media (prefers-color-scheme: dark) {
|
|
412
418
|
@include use-dark-theme;
|
|
413
419
|
}
|
package/dist/badge/_badge.scss
CHANGED
|
@@ -69,31 +69,35 @@ $variables: (
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
@mixin use-light-theme {
|
|
72
|
-
@if $
|
|
73
|
-
$
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
@
|
|
72
|
+
@if not $disable-everything {
|
|
73
|
+
@if $light-theme-greyscale-background-color !=
|
|
74
|
+
$dark-theme-greyscale-background-color
|
|
75
|
+
{
|
|
76
|
+
@include set-var(
|
|
77
|
+
greyscale-background-color,
|
|
78
|
+
$light-theme-greyscale-background-color
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
@if $light-theme-greyscale-color != $dark-theme-greyscale-color {
|
|
82
|
+
@include set-var(greyscale-color, $light-theme-greyscale-color);
|
|
83
|
+
}
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
@mixin use-dark-theme {
|
|
86
|
-
@if $
|
|
87
|
-
$
|
|
88
|
-
{
|
|
89
|
-
@include set-var(
|
|
90
|
-
greyscale-background-color,
|
|
88
|
+
@if not $disable-everything {
|
|
89
|
+
@if $light-theme-greyscale-background-color !=
|
|
91
90
|
$dark-theme-greyscale-background-color
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
{
|
|
92
|
+
@include set-var(
|
|
93
|
+
greyscale-background-color,
|
|
94
|
+
$dark-theme-greyscale-background-color
|
|
95
|
+
);
|
|
96
|
+
}
|
|
94
97
|
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
@if $light-theme-greyscale-color != $dark-theme-greyscale-color {
|
|
99
|
+
@include set-var(greyscale-color, $dark-theme-greyscale-color);
|
|
100
|
+
}
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
import { type CSSProperties, type HTMLAttributes, type MouseEvent, type ReactNode } from "react";
|
|
2
|
-
import { type ListItemAddonPosition, type ListItemAddonType, type ListItemHeight } from "../list/types.js";
|
|
2
|
+
import { type ListItemAddonPosition, type ListItemAddonType, type ListItemChildrenTextProps, type ListItemHeight } from "../list/types.js";
|
|
3
3
|
import { type PropsWithRef } from "../types.js";
|
|
4
4
|
import { type IndeterminateCheckboxProps, type InputToggleIconProps } from "./InputToggle.js";
|
|
5
5
|
import { type InputToggleSize } from "./inputToggleStyles.js";
|
|
6
|
-
/** @remarks \@since 6.0.0 */
|
|
7
|
-
export interface MenuItemInputToggleClassNameOptions {
|
|
8
|
-
className?: string;
|
|
9
|
-
type: "radio" | "checkbox" | "switch";
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* @remarks \@since 6.0.0
|
|
13
|
-
*/
|
|
14
|
-
export declare function menuItemInputToggle(options: MenuItemInputToggleClassNameOptions): string;
|
|
15
6
|
/**
|
|
16
7
|
* @remarks \@since 6.0.0
|
|
17
8
|
*/
|
|
18
9
|
export type MenuItemInputToggleCheckedCallback = (checked: boolean, event: MouseEvent<HTMLLIElement>) => void;
|
|
19
10
|
/** @remarks \@since 2.8.0 */
|
|
20
|
-
export interface BaseMenuItemInputToggleProps extends HTMLAttributes<HTMLLIElement>, InputToggleIconProps {
|
|
11
|
+
export interface BaseMenuItemInputToggleProps extends HTMLAttributes<HTMLLIElement>, InputToggleIconProps, ListItemChildrenTextProps {
|
|
21
12
|
checked: boolean;
|
|
22
13
|
onCheckedChange: MenuItemInputToggleCheckedCallback;
|
|
23
14
|
/**
|
|
@@ -47,10 +38,6 @@ export interface BaseMenuItemInputToggleProps extends HTMLAttributes<HTMLLIEleme
|
|
|
47
38
|
/** @defaultValue `"auto"` */
|
|
48
39
|
height?: ListItemHeight;
|
|
49
40
|
/** @defaultValue `false` */
|
|
50
|
-
multiline?: boolean;
|
|
51
|
-
/** @defaultValue `false` */
|
|
52
|
-
disableTextChildren?: boolean;
|
|
53
|
-
/** @defaultValue `false` */
|
|
54
41
|
iconAfter?: boolean;
|
|
55
42
|
addon?: ReactNode;
|
|
56
43
|
addonType?: ListItemAddonType;
|
|
@@ -4,21 +4,12 @@ import { cnb } from "cnbuilder";
|
|
|
4
4
|
import { forwardRef } from "react";
|
|
5
5
|
import { ListItem } from "../list/ListItem.js";
|
|
6
6
|
import { useEnsuredId } from "../useEnsuredId.js";
|
|
7
|
-
import { bem } from "../utils/bem.js";
|
|
8
7
|
import { InputToggleIcon } from "./InputToggleIcon.js";
|
|
9
8
|
import { SwitchTrack } from "./SwitchTrack.js";
|
|
9
|
+
import { menuItemInputToggle, menuItemInputToggleBall, menuItemInputToggleIcon, menuItemInputToggleTrack } from "./menuItemInputToggleStyles.js";
|
|
10
10
|
const noop = ()=>{
|
|
11
11
|
// do nothing
|
|
12
12
|
};
|
|
13
|
-
const styles = bem("rmd-menu-item-input-toggle");
|
|
14
|
-
/**
|
|
15
|
-
* @remarks \@since 6.0.0
|
|
16
|
-
*/ export function menuItemInputToggle(options) {
|
|
17
|
-
const { className, type } = options;
|
|
18
|
-
return cnb(`rmd-${type}-menu-item`, styles({
|
|
19
|
-
switch: type === "switch"
|
|
20
|
-
}), className);
|
|
21
|
-
}
|
|
22
13
|
/**
|
|
23
14
|
* **Client Component**
|
|
24
15
|
*
|
|
@@ -34,33 +25,31 @@ const styles = bem("rmd-menu-item-input-toggle");
|
|
|
34
25
|
const { id: propId, type, disabled = false, checked, onCheckedChange, preventMenuHideOnClick = false, onClick = noop, className, tabIndex = -1, children, size = "auto", icon: propIcon, iconAfter = false, iconProps, iconStyle, iconClassName, checkedIcon, indeterminate, indeterminateIcon, addon, addonType, addonPosition, addonForceWrap, disableAddonCenteredMedia, ballProps, ballStyle, ballClassName, trackProps, trackStyle, trackClassName, ...remaining } = props;
|
|
35
26
|
const id = useEnsuredId(propId, "menu-item");
|
|
36
27
|
let icon = propIcon;
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
});
|
|
63
|
-
}
|
|
28
|
+
if (type === "switch") {
|
|
29
|
+
icon = /*#__PURE__*/ _jsx(SwitchTrack, {
|
|
30
|
+
style: trackStyle,
|
|
31
|
+
...trackProps,
|
|
32
|
+
className: cnb(menuItemInputToggleTrack(), trackClassName, trackProps?.className),
|
|
33
|
+
active: checked,
|
|
34
|
+
ballProps: ballProps,
|
|
35
|
+
ballStyle: ballStyle,
|
|
36
|
+
ballClassName: cnb(menuItemInputToggleBall(), ballClassName)
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
icon = /*#__PURE__*/ _jsx(InputToggleIcon, {
|
|
40
|
+
style: iconStyle,
|
|
41
|
+
disableEm: true,
|
|
42
|
+
...iconProps,
|
|
43
|
+
className: cnb(menuItemInputToggleIcon(), iconClassName, iconProps?.className),
|
|
44
|
+
size: size,
|
|
45
|
+
type: type,
|
|
46
|
+
checked: checked,
|
|
47
|
+
disabled: disabled,
|
|
48
|
+
icon: propIcon,
|
|
49
|
+
checkedIcon: checkedIcon,
|
|
50
|
+
indeterminate: indeterminate,
|
|
51
|
+
indeterminateIcon: indeterminateIcon
|
|
52
|
+
});
|
|
64
53
|
}
|
|
65
54
|
let leftAddon;
|
|
66
55
|
let leftAddonType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/form/MenuItemInputToggle.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type MouseEvent,\n type ReactNode,\n} from \"react\";\nimport { ListItem } from \"../list/ListItem.js\";\nimport {\n type ListItemAddonPosition,\n type ListItemAddonType,\n type ListItemHeight,\n} from \"../list/types.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { bem } from \"../utils/bem.js\";\nimport {\n type IndeterminateCheckboxProps,\n type InputToggleIconProps,\n} from \"./InputToggle.js\";\nimport { InputToggleIcon } from \"./InputToggleIcon.js\";\nimport { SwitchTrack } from \"./SwitchTrack.js\";\nimport { type InputToggleSize } from \"./inputToggleStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\nconst styles = bem(\"rmd-menu-item-input-toggle\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface MenuItemInputToggleClassNameOptions {\n className?: string;\n type: \"radio\" | \"checkbox\" | \"switch\";\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggle(\n options: MenuItemInputToggleClassNameOptions\n): string {\n const { className, type } = options;\n return cnb(\n `rmd-${type}-menu-item`,\n styles({ switch: type === \"switch\" }),\n className\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuItemInputToggleCheckedCallback = (\n checked: boolean,\n event: MouseEvent<HTMLLIElement>\n) => void;\n\n/** @remarks \\@since 2.8.0 */\nexport interface BaseMenuItemInputToggleProps\n extends HTMLAttributes<HTMLLIElement>,\n InputToggleIconProps {\n checked: boolean;\n onCheckedChange: MenuItemInputToggleCheckedCallback;\n\n /**\n * @defaultValue `\"menu-item-\" + useId()`\n */\n id?: string;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * Set this to `true` if the `Menu` should not close when the input toggle is\n * clicked. This can be useful when interacting with a checkbox group within a\n * menu or allowing the user to select multiple options before closing the\n * menu.\n *\n * @defaultValue `false`\n */\n preventMenuHideOnClick?: boolean;\n\n /**\n * This is set to `\"auto\"` by default so the icon shrinks back down to the\n * default icon size instead of relative to the current font size. You\n * probably don't want to change this since it'll also modify the height of\n * the menu item\n *\n * @defaultValue `\"auto\"`\n */\n size?: InputToggleSize;\n\n /** @defaultValue `\"auto\"` */\n height?: ListItemHeight;\n\n /** @defaultValue `false` */\n multiline?: boolean;\n\n /** @defaultValue `false` */\n disableTextChildren?: boolean;\n\n /** @defaultValue `false` */\n iconAfter?: boolean;\n\n addon?: ReactNode;\n addonType?: ListItemAddonType;\n addonPosition?: ListItemAddonPosition;\n\n /** @defaultValue `false` */\n addonForceWrap?: boolean;\n\n /** @defaultValue `false` */\n disableAddonCenteredMedia?: boolean;\n}\n\nexport interface MenuItemCheckboxProps\n extends BaseMenuItemInputToggleProps,\n IndeterminateCheckboxProps {}\n\nexport type MenuItemRadioProps = BaseMenuItemInputToggleProps;\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Added additional props for styling the track and ball.\n */\nexport interface MenuItemSwitchProps extends BaseMenuItemInputToggleProps {\n trackProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n trackStyle?: CSSProperties;\n trackClassName?: string;\n ballProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n ballStyle?: CSSProperties;\n ballClassName?: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Updated to be a union of the different props to enforce the\n * correct props based on `type`\n */\nexport type MenuItemInputToggleProps =\n | (MenuItemCheckboxProps & { type: \"checkbox\" })\n | (MenuItemRadioProps & { type: \"radio\" })\n | (MenuItemSwitchProps & { type: \"switch\" });\n\n/**\n * **Client Component**\n *\n * This is a low-level component that should probably not be used externally and\n * instead the `MenuItemCheckbox`, `MenuItemRadio`, or `MenuItemSwitch` should\n * be used instead.\n *\n * @see {@link MenuItemCheckbox} for checkbox examples\n * @see {@link MenuItemRadio} for radio examples\n * @see {@link MenuItemSwitch} for switch examples\n * @remarks \\@since 2.8.0\n */\nexport const MenuItemInputToggle = forwardRef<\n HTMLLIElement,\n MenuItemInputToggleProps\n>(function MenuItemInputToggle(props, ref) {\n const {\n id: propId,\n type,\n disabled = false,\n checked,\n onCheckedChange,\n preventMenuHideOnClick = false,\n onClick = noop,\n className,\n tabIndex = -1,\n children,\n size = \"auto\",\n icon: propIcon,\n iconAfter = false,\n iconProps,\n iconStyle,\n iconClassName,\n checkedIcon,\n indeterminate,\n indeterminateIcon,\n addon,\n addonType,\n addonPosition,\n addonForceWrap,\n disableAddonCenteredMedia,\n ballProps,\n ballStyle,\n ballClassName,\n trackProps,\n trackStyle,\n trackClassName,\n ...remaining\n } = props as MenuItemSwitchProps &\n MenuItemCheckboxProps & { type: \"checkbox\" | \"radio\" | \"switch\" };\n const id = useEnsuredId(propId, \"menu-item\");\n\n let icon = propIcon;\n if (typeof propIcon === \"undefined\") {\n if (type === \"switch\") {\n icon = (\n <SwitchTrack\n style={trackStyle}\n {...trackProps}\n className={cnb(\n styles(\"track\"),\n trackClassName,\n trackProps?.className\n )}\n active={checked}\n ballProps={ballProps}\n ballStyle={ballStyle}\n ballClassName={cnb(styles(\"ball\"), ballClassName)}\n />\n );\n } else {\n icon = (\n <InputToggleIcon\n style={iconStyle}\n disableEm\n {...iconProps}\n className={cnb(styles(\"icon\"), iconClassName, iconProps?.className)}\n size={size}\n type={type}\n checked={checked}\n disabled={disabled}\n icon={propIcon}\n checkedIcon={checkedIcon}\n indeterminate={indeterminate}\n indeterminateIcon={indeterminateIcon}\n />\n );\n }\n }\n\n let leftAddon: ReactNode;\n let leftAddonType: ListItemAddonType | undefined;\n let leftAddonPosition: ListItemAddonPosition | undefined;\n let leftAddonForceWrap: boolean | undefined;\n let disableLeftAddonCenteredMedia: boolean | undefined;\n let rightAddon: ReactNode;\n let rightAddonType: ListItemAddonType | undefined;\n let rightAddonPosition: ListItemAddonPosition | undefined;\n let rightAddonForceWrap: boolean | undefined;\n let disableRightAddonCenteredMedia: boolean | undefined;\n if (iconAfter) {\n leftAddon = addon;\n leftAddonType = addonType;\n leftAddonPosition = addonPosition;\n leftAddonForceWrap = addonForceWrap;\n disableLeftAddonCenteredMedia = disableAddonCenteredMedia;\n rightAddon = icon;\n } else {\n leftAddon = icon;\n rightAddon = addon;\n rightAddonType = addonType;\n rightAddonPosition = addonPosition;\n rightAddonForceWrap = addonForceWrap;\n disableRightAddonCenteredMedia = disableAddonCenteredMedia;\n }\n\n return (\n <ListItem\n {...remaining}\n // I'm not actually sure if this is correct\n aria-checked={indeterminate && checked ? \"mixed\" : checked}\n id={id}\n role={type === \"radio\" ? \"menuitemradio\" : \"menuitemcheckbox\"}\n onClick={(event) => {\n onClick(event);\n onCheckedChange(!checked, event);\n\n if (preventMenuHideOnClick) {\n event.stopPropagation();\n }\n }}\n ref={ref}\n className={menuItemInputToggle({ type, className })}\n disabled={disabled}\n tabIndex={tabIndex}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonForceWrap={leftAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonForceWrap={rightAddonForceWrap}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItem>\n );\n});\n"],"names":["cnb","forwardRef","ListItem","useEnsuredId","bem","InputToggleIcon","SwitchTrack","noop","styles","menuItemInputToggle","options","className","type","switch","MenuItemInputToggle","props","ref","id","propId","disabled","checked","onCheckedChange","preventMenuHideOnClick","onClick","tabIndex","children","size","icon","propIcon","iconAfter","iconProps","iconStyle","iconClassName","checkedIcon","indeterminate","indeterminateIcon","addon","addonType","addonPosition","addonForceWrap","disableAddonCenteredMedia","ballProps","ballStyle","ballClassName","trackProps","trackStyle","trackClassName","remaining","style","active","disableEm","leftAddon","leftAddonType","leftAddonPosition","leftAddonForceWrap","disableLeftAddonCenteredMedia","rightAddon","rightAddonType","rightAddonPosition","rightAddonForceWrap","disableRightAddonCenteredMedia","aria-checked","role","event","stopPropagation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/form/MenuItemInputToggle.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type MouseEvent,\n type ReactNode,\n} from \"react\";\nimport { ListItem } from \"../list/ListItem.js\";\nimport {\n type ListItemAddonPosition,\n type ListItemAddonType,\n type ListItemChildrenTextProps,\n type ListItemHeight,\n} from \"../list/types.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n type IndeterminateCheckboxProps,\n type InputToggleIconProps,\n} from \"./InputToggle.js\";\nimport { InputToggleIcon } from \"./InputToggleIcon.js\";\nimport { SwitchTrack } from \"./SwitchTrack.js\";\nimport { type InputToggleSize } from \"./inputToggleStyles.js\";\nimport {\n menuItemInputToggle,\n menuItemInputToggleBall,\n menuItemInputToggleIcon,\n menuItemInputToggleTrack,\n} from \"./menuItemInputToggleStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuItemInputToggleCheckedCallback = (\n checked: boolean,\n event: MouseEvent<HTMLLIElement>\n) => void;\n\n/** @remarks \\@since 2.8.0 */\nexport interface BaseMenuItemInputToggleProps\n extends HTMLAttributes<HTMLLIElement>,\n InputToggleIconProps,\n ListItemChildrenTextProps {\n checked: boolean;\n onCheckedChange: MenuItemInputToggleCheckedCallback;\n\n /**\n * @defaultValue `\"menu-item-\" + useId()`\n */\n id?: string;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * Set this to `true` if the `Menu` should not close when the input toggle is\n * clicked. This can be useful when interacting with a checkbox group within a\n * menu or allowing the user to select multiple options before closing the\n * menu.\n *\n * @defaultValue `false`\n */\n preventMenuHideOnClick?: boolean;\n\n /**\n * This is set to `\"auto\"` by default so the icon shrinks back down to the\n * default icon size instead of relative to the current font size. You\n * probably don't want to change this since it'll also modify the height of\n * the menu item\n *\n * @defaultValue `\"auto\"`\n */\n size?: InputToggleSize;\n\n /** @defaultValue `\"auto\"` */\n height?: ListItemHeight;\n\n /** @defaultValue `false` */\n iconAfter?: boolean;\n\n addon?: ReactNode;\n addonType?: ListItemAddonType;\n addonPosition?: ListItemAddonPosition;\n\n /** @defaultValue `false` */\n addonForceWrap?: boolean;\n\n /** @defaultValue `false` */\n disableAddonCenteredMedia?: boolean;\n}\n\nexport interface MenuItemCheckboxProps\n extends BaseMenuItemInputToggleProps,\n IndeterminateCheckboxProps {}\n\nexport type MenuItemRadioProps = BaseMenuItemInputToggleProps;\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Added additional props for styling the track and ball.\n */\nexport interface MenuItemSwitchProps extends BaseMenuItemInputToggleProps {\n trackProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n trackStyle?: CSSProperties;\n trackClassName?: string;\n ballProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n ballStyle?: CSSProperties;\n ballClassName?: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Updated to be a union of the different props to enforce the\n * correct props based on `type`\n */\nexport type MenuItemInputToggleProps =\n | (MenuItemCheckboxProps & { type: \"checkbox\" })\n | (MenuItemRadioProps & { type: \"radio\" })\n | (MenuItemSwitchProps & { type: \"switch\" });\n\n/**\n * **Client Component**\n *\n * This is a low-level component that should probably not be used externally and\n * instead the `MenuItemCheckbox`, `MenuItemRadio`, or `MenuItemSwitch` should\n * be used instead.\n *\n * @see {@link MenuItemCheckbox} for checkbox examples\n * @see {@link MenuItemRadio} for radio examples\n * @see {@link MenuItemSwitch} for switch examples\n * @remarks \\@since 2.8.0\n */\nexport const MenuItemInputToggle = forwardRef<\n HTMLLIElement,\n MenuItemInputToggleProps\n>(function MenuItemInputToggle(props, ref) {\n const {\n id: propId,\n type,\n disabled = false,\n checked,\n onCheckedChange,\n preventMenuHideOnClick = false,\n onClick = noop,\n className,\n tabIndex = -1,\n children,\n size = \"auto\",\n icon: propIcon,\n iconAfter = false,\n iconProps,\n iconStyle,\n iconClassName,\n checkedIcon,\n indeterminate,\n indeterminateIcon,\n addon,\n addonType,\n addonPosition,\n addonForceWrap,\n disableAddonCenteredMedia,\n ballProps,\n ballStyle,\n ballClassName,\n trackProps,\n trackStyle,\n trackClassName,\n ...remaining\n } = props as MenuItemSwitchProps &\n MenuItemCheckboxProps & { type: \"checkbox\" | \"radio\" | \"switch\" };\n const id = useEnsuredId(propId, \"menu-item\");\n\n let icon = propIcon;\n if (type === \"switch\") {\n icon = (\n <SwitchTrack\n style={trackStyle}\n {...trackProps}\n className={cnb(\n menuItemInputToggleTrack(),\n trackClassName,\n trackProps?.className\n )}\n active={checked}\n ballProps={ballProps}\n ballStyle={ballStyle}\n ballClassName={cnb(menuItemInputToggleBall(), ballClassName)}\n />\n );\n } else {\n icon = (\n <InputToggleIcon\n style={iconStyle}\n disableEm\n {...iconProps}\n className={cnb(\n menuItemInputToggleIcon(),\n iconClassName,\n iconProps?.className\n )}\n size={size}\n type={type}\n checked={checked}\n disabled={disabled}\n icon={propIcon}\n checkedIcon={checkedIcon}\n indeterminate={indeterminate}\n indeterminateIcon={indeterminateIcon}\n />\n );\n }\n\n let leftAddon: ReactNode;\n let leftAddonType: ListItemAddonType | undefined;\n let leftAddonPosition: ListItemAddonPosition | undefined;\n let leftAddonForceWrap: boolean | undefined;\n let disableLeftAddonCenteredMedia: boolean | undefined;\n let rightAddon: ReactNode;\n let rightAddonType: ListItemAddonType | undefined;\n let rightAddonPosition: ListItemAddonPosition | undefined;\n let rightAddonForceWrap: boolean | undefined;\n let disableRightAddonCenteredMedia: boolean | undefined;\n if (iconAfter) {\n leftAddon = addon;\n leftAddonType = addonType;\n leftAddonPosition = addonPosition;\n leftAddonForceWrap = addonForceWrap;\n disableLeftAddonCenteredMedia = disableAddonCenteredMedia;\n rightAddon = icon;\n } else {\n leftAddon = icon;\n rightAddon = addon;\n rightAddonType = addonType;\n rightAddonPosition = addonPosition;\n rightAddonForceWrap = addonForceWrap;\n disableRightAddonCenteredMedia = disableAddonCenteredMedia;\n }\n\n return (\n <ListItem\n {...remaining}\n // I'm not actually sure if this is correct\n aria-checked={indeterminate && checked ? \"mixed\" : checked}\n id={id}\n role={type === \"radio\" ? \"menuitemradio\" : \"menuitemcheckbox\"}\n onClick={(event) => {\n onClick(event);\n onCheckedChange(!checked, event);\n\n if (preventMenuHideOnClick) {\n event.stopPropagation();\n }\n }}\n ref={ref}\n className={menuItemInputToggle({ type, className })}\n disabled={disabled}\n tabIndex={tabIndex}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonForceWrap={leftAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonForceWrap={rightAddonForceWrap}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItem>\n );\n});\n"],"names":["cnb","forwardRef","ListItem","useEnsuredId","InputToggleIcon","SwitchTrack","menuItemInputToggle","menuItemInputToggleBall","menuItemInputToggleIcon","menuItemInputToggleTrack","noop","MenuItemInputToggle","props","ref","id","propId","type","disabled","checked","onCheckedChange","preventMenuHideOnClick","onClick","className","tabIndex","children","size","icon","propIcon","iconAfter","iconProps","iconStyle","iconClassName","checkedIcon","indeterminate","indeterminateIcon","addon","addonType","addonPosition","addonForceWrap","disableAddonCenteredMedia","ballProps","ballStyle","ballClassName","trackProps","trackStyle","trackClassName","remaining","style","active","disableEm","leftAddon","leftAddonType","leftAddonPosition","leftAddonForceWrap","disableLeftAddonCenteredMedia","rightAddon","rightAddonType","rightAddonPosition","rightAddonForceWrap","disableRightAddonCenteredMedia","aria-checked","role","event","stopPropagation"],"mappings":"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"}
|
package/dist/form/_form.scss
CHANGED
|
@@ -271,6 +271,7 @@ $variables: (
|
|
|
271
271
|
focus-color,
|
|
272
272
|
addon-top,
|
|
273
273
|
addon-margin-top,
|
|
274
|
+
addon-left-offset,
|
|
274
275
|
label-floating-top,
|
|
275
276
|
label-left-offset,
|
|
276
277
|
label-top-offset,
|
|
@@ -331,10 +332,12 @@ $variables: (
|
|
|
331
332
|
text-field-hover-border-color,
|
|
332
333
|
$text-field-light-hover-border-color
|
|
333
334
|
);
|
|
334
|
-
@
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
335
|
+
@if not $disable-text-field-filled-theme {
|
|
336
|
+
@include set-var(
|
|
337
|
+
text-field-filled-color,
|
|
338
|
+
$text-field-light-filled-background-color
|
|
339
|
+
);
|
|
340
|
+
}
|
|
338
341
|
@if not $disable-switch {
|
|
339
342
|
@include set-var(
|
|
340
343
|
switch-track-background-color,
|
|
@@ -382,10 +385,12 @@ $variables: (
|
|
|
382
385
|
text-field-hover-border-color,
|
|
383
386
|
$text-field-dark-hover-border-color
|
|
384
387
|
);
|
|
385
|
-
@
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
388
|
+
@if not $disable-text-field-filled-theme {
|
|
389
|
+
@include set-var(
|
|
390
|
+
text-field-filled-color,
|
|
391
|
+
$text-field-dark-filled-background-color
|
|
392
|
+
);
|
|
393
|
+
}
|
|
389
394
|
@if not $disable-switch {
|
|
390
395
|
@include set-var(
|
|
391
396
|
switch-track-background-color,
|
|
@@ -615,7 +620,6 @@ $variables: (
|
|
|
615
620
|
@mixin text-field-container-styles($disable-layer: false) {
|
|
616
621
|
@include utils.optional-layer(form, $disable-layer) {
|
|
617
622
|
.rmd-text-field-container {
|
|
618
|
-
@include set-var(label-left-offset, get-var(text-field-padding-left));
|
|
619
623
|
@include use-var(height, text-field-height);
|
|
620
624
|
|
|
621
625
|
align-items: center;
|
|
@@ -684,13 +688,20 @@ $variables: (
|
|
|
684
688
|
text-field-padding-right,
|
|
685
689
|
$text-field-outlined-padding
|
|
686
690
|
);
|
|
687
|
-
@include set-var(label-top-offset, -50%);
|
|
688
|
-
@include set-var(label-active-padding, 0 $label-floating-padding);
|
|
689
|
-
@include set-var(
|
|
690
|
-
label-active-background-color,
|
|
691
|
-
theme.theme-get-var(background-color)
|
|
692
|
-
);
|
|
693
691
|
@include use-var(border-color, text-field-border-color);
|
|
692
|
+
@if not $disable-text-field-addon {
|
|
693
|
+
@include set-var(addon-left-offset, $text-field-outlined-padding);
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
@if not $disable-floating-label {
|
|
697
|
+
@include set-var(label-left-offset, $text-field-outlined-padding);
|
|
698
|
+
@include set-var(label-top-offset, -50%);
|
|
699
|
+
@include set-var(label-active-padding, 0 $label-floating-padding);
|
|
700
|
+
@include set-var(
|
|
701
|
+
label-active-background-color,
|
|
702
|
+
theme.theme-get-var(background-color)
|
|
703
|
+
);
|
|
704
|
+
}
|
|
694
705
|
|
|
695
706
|
border-radius: $text-field-border-radius;
|
|
696
707
|
border-style: solid;
|
|
@@ -738,6 +749,17 @@ $variables: (
|
|
|
738
749
|
text-field-padding-right,
|
|
739
750
|
$text-field-filled-padding
|
|
740
751
|
);
|
|
752
|
+
@if not $disable-floating-label {
|
|
753
|
+
@include set-var(
|
|
754
|
+
label-left-offset,
|
|
755
|
+
$text-field-filled-padding + $label-floating-padding
|
|
756
|
+
);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
@if not $disable-text-field-addon {
|
|
760
|
+
@include set-var(addon-left-offset, $text-field-filled-padding);
|
|
761
|
+
}
|
|
762
|
+
|
|
741
763
|
@include use-var(background-color, text-field-filled-color);
|
|
742
764
|
}
|
|
743
765
|
}
|
|
@@ -1196,7 +1218,7 @@ $variables: (
|
|
|
1196
1218
|
// `.rmd-text-field-container` which would prevent these styles from being
|
|
1197
1219
|
// applied
|
|
1198
1220
|
&--before {
|
|
1199
|
-
@include utils.auto-rtl(left, get-var(
|
|
1221
|
+
@include utils.auto-rtl(left, get-var(addon-left-offset));
|
|
1200
1222
|
}
|
|
1201
1223
|
|
|
1202
1224
|
&--after {
|
|
@@ -1989,6 +2011,7 @@ $variables: (
|
|
|
1989
2011
|
@if not $disable-text-field-addon {
|
|
1990
2012
|
@include set-var(addon-top, auto);
|
|
1991
2013
|
@include set-var(addon-margin-top, 0px);
|
|
2014
|
+
@include set-var(addon-left-offset, 0px);
|
|
1992
2015
|
}
|
|
1993
2016
|
|
|
1994
2017
|
@if not $disable-switch {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** @remarks \@since 6.0.0 */
|
|
2
|
+
export interface MenuItemInputToggleClassNameOptions {
|
|
3
|
+
className?: string;
|
|
4
|
+
type: "radio" | "checkbox" | "switch";
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @remarks \@since 6.0.0
|
|
8
|
+
*/
|
|
9
|
+
export declare function menuItemInputToggle(options: MenuItemInputToggleClassNameOptions): string;
|
|
10
|
+
/**
|
|
11
|
+
* @remarks \@since 6.0.0
|
|
12
|
+
*/
|
|
13
|
+
export interface MenuItemInputToggleTrackClassNameOptions {
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @remarks \@since 6.0.0
|
|
18
|
+
*/
|
|
19
|
+
export declare function menuItemInputToggleTrack(options?: MenuItemInputToggleTrackClassNameOptions): string;
|
|
20
|
+
/**
|
|
21
|
+
* @remarks \@since 6.0.0
|
|
22
|
+
*/
|
|
23
|
+
export interface MenuItemInputToggleBallClassNameOptions {
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @remarks \@since 6.0.0
|
|
28
|
+
*/
|
|
29
|
+
export declare function menuItemInputToggleBall(options?: MenuItemInputToggleBallClassNameOptions): string;
|
|
30
|
+
/**
|
|
31
|
+
* @remarks \@since 6.0.0
|
|
32
|
+
*/
|
|
33
|
+
export interface MenuItemInputToggleIconClassNameOptions {
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @remarks \@since 6.0.0
|
|
38
|
+
*/
|
|
39
|
+
export declare function menuItemInputToggleIcon(options?: MenuItemInputToggleIconClassNameOptions): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cnb } from "cnbuilder";
|
|
2
|
+
import { bem } from "../utils/bem.js";
|
|
3
|
+
const styles = bem("rmd-menu-item-input-toggle");
|
|
4
|
+
/**
|
|
5
|
+
* @remarks \@since 6.0.0
|
|
6
|
+
*/ export function menuItemInputToggle(options) {
|
|
7
|
+
const { className, type } = options;
|
|
8
|
+
return cnb(`rmd-${type}-menu-item`, styles({
|
|
9
|
+
switch: type === "switch"
|
|
10
|
+
}), className);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @remarks \@since 6.0.0
|
|
14
|
+
*/ export function menuItemInputToggleTrack(options = {}) {
|
|
15
|
+
const { className } = options;
|
|
16
|
+
return cnb(styles("track"), className);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @remarks \@since 6.0.0
|
|
20
|
+
*/ export function menuItemInputToggleBall(options = {}) {
|
|
21
|
+
const { className } = options;
|
|
22
|
+
return cnb(styles("ball"), className);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @remarks \@since 6.0.0
|
|
26
|
+
*/ export function menuItemInputToggleIcon(options = {}) {
|
|
27
|
+
const { className } = options;
|
|
28
|
+
return cnb(styles("icon"), className);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=menuItemInputToggleStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/form/menuItemInputToggleStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-menu-item-input-toggle\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface MenuItemInputToggleClassNameOptions {\n className?: string;\n type: \"radio\" | \"checkbox\" | \"switch\";\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggle(\n options: MenuItemInputToggleClassNameOptions\n): string {\n const { className, type } = options;\n return cnb(\n `rmd-${type}-menu-item`,\n styles({ switch: type === \"switch\" }),\n className\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuItemInputToggleTrackClassNameOptions {\n className?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggleTrack(\n options: MenuItemInputToggleTrackClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"track\"), className);\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuItemInputToggleBallClassNameOptions {\n className?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggleBall(\n options: MenuItemInputToggleBallClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"ball\"), className);\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface MenuItemInputToggleIconClassNameOptions {\n className?: string;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggleIcon(\n options: MenuItemInputToggleIconClassNameOptions = {}\n): string {\n const { className } = options;\n\n return cnb(styles(\"icon\"), className);\n}\n"],"names":["cnb","bem","styles","menuItemInputToggle","options","className","type","switch","menuItemInputToggleTrack","menuItemInputToggleBall","menuItemInputToggleIcon"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAQnB;;CAEC,GACD,OAAO,SAASE,oBACdC,OAA4C;IAE5C,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGF;IAC5B,OAAOJ,IACL,CAAC,IAAI,EAAEM,KAAK,UAAU,CAAC,EACvBJ,OAAO;QAAEK,QAAQD,SAAS;IAAS,IACnCD;AAEJ;AASA;;CAEC,GACD,OAAO,SAASG,yBACdJ,UAAoD,CAAC,CAAC;IAEtD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOJ,IAAIE,OAAO,UAAUG;AAC9B;AASA;;CAEC,GACD,OAAO,SAASI,wBACdL,UAAmD,CAAC,CAAC;IAErD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOJ,IAAIE,OAAO,SAASG;AAC7B;AASA;;CAEC,GACD,OAAO,SAASK,wBACdN,UAAmD,CAAC,CAAC;IAErD,MAAM,EAAEC,SAAS,EAAE,GAAGD;IAEtB,OAAOJ,IAAIE,OAAO,SAASG;AAC7B"}
|
package/dist/icon/_icon.scss
CHANGED
|
@@ -58,6 +58,9 @@ $variables: (
|
|
|
58
58
|
symbol-optical-size
|
|
59
59
|
);
|
|
60
60
|
|
|
61
|
+
// shouldn't really use react-md without icons though...
|
|
62
|
+
$_disable-icons: $disable-font and $disable-svg and $disable-symbol;
|
|
63
|
+
|
|
61
64
|
@function get-var($name, $fallback: null) {
|
|
62
65
|
$var: utils.get-var-name($variables, $name, "icon");
|
|
63
66
|
@if $fallback {
|
|
@@ -78,13 +81,13 @@ $variables: (
|
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
@mixin use-light-theme {
|
|
81
|
-
@if not $
|
|
84
|
+
@if not $_disable-icons {
|
|
82
85
|
@include set-var(color, $light-theme-color);
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
@mixin use-dark-theme {
|
|
87
|
-
@if not $
|
|
90
|
+
@if not $_disable-icons {
|
|
88
91
|
@include set-var(color, $dark-theme-color);
|
|
89
92
|
}
|
|
90
93
|
}
|
|
@@ -96,7 +99,7 @@ $variables: (
|
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
@mixin variables {
|
|
99
|
-
@if not $
|
|
102
|
+
@if not $_disable-icons {
|
|
100
103
|
@include set-var(color, $color);
|
|
101
104
|
@include set-var(size, $size);
|
|
102
105
|
@include set-var(spacing, $spacing);
|
|
@@ -116,8 +119,7 @@ $variables: (
|
|
|
116
119
|
}
|
|
117
120
|
|
|
118
121
|
@mixin styles($disable-layer: false) {
|
|
119
|
-
|
|
120
|
-
@if not $disable-font or not $disable-svg or not $disable-symbol {
|
|
122
|
+
@if not $_disable-icons {
|
|
121
123
|
@include utils.optional-layer(icon, $disable-layer) {
|
|
122
124
|
@include theme.default-system-theme {
|
|
123
125
|
@include use-dark-theme;
|
package/dist/index.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export * from "./form/TextFieldContainerStyles.js";
|
|
|
86
86
|
export * from "./form/fileUtils.js";
|
|
87
87
|
export * from "./form/formConfig.js";
|
|
88
88
|
export * from "./form/formMessageStyles.js";
|
|
89
|
+
export * from "./form/menuItemInputToggleStyles.js";
|
|
89
90
|
export * from "./form/nativeSelectStyles.js";
|
|
90
91
|
export * from "./form/optionStyles.js";
|
|
91
92
|
export * from "./form/passwordStyles.js";
|
package/dist/index.js
CHANGED
|
@@ -86,6 +86,7 @@ export * from "./form/TextFieldContainerStyles.js";
|
|
|
86
86
|
export * from "./form/fileUtils.js";
|
|
87
87
|
export * from "./form/formConfig.js";
|
|
88
88
|
export * from "./form/formMessageStyles.js";
|
|
89
|
+
export * from "./form/menuItemInputToggleStyles.js";
|
|
89
90
|
export * from "./form/nativeSelectStyles.js";
|
|
90
91
|
export * from "./form/optionStyles.js";
|
|
91
92
|
export * from "./form/passwordStyles.js";
|