@react-md/core 1.0.0-next.6 → 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.
Files changed (59) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/CHANGELOG.md +12 -0
  3. package/coverage/clover.xml +264 -389
  4. package/coverage/coverage-final.json +2 -3
  5. package/coverage/lcov-report/MenuItemCheckbox.tsx.html +223 -0
  6. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +178 -232
  7. package/coverage/lcov-report/MenuItemRadio.tsx.html +436 -0
  8. package/coverage/lcov-report/SrOnly.tsx.html +328 -0
  9. package/coverage/lcov-report/Typography.tsx.html +1027 -0
  10. package/coverage/lcov-report/index.html +15 -30
  11. package/coverage/lcov-report/menuItemInputToggleStyles.ts.html +319 -0
  12. package/coverage/lcov.info +304 -436
  13. package/dist/_core.scss +49 -43
  14. package/dist/badge/_badge.scss +23 -19
  15. package/dist/form/MenuItemInputToggle.d.ts +2 -15
  16. package/dist/form/MenuItemInputToggle.js +26 -37
  17. package/dist/form/MenuItemInputToggle.js.map +1 -1
  18. package/dist/form/_form.scss +109 -87
  19. package/dist/form/menuItemInputToggleStyles.d.ts +39 -0
  20. package/dist/form/menuItemInputToggleStyles.js +31 -0
  21. package/dist/form/menuItemInputToggleStyles.js.map +1 -0
  22. package/dist/icon/_icon.scss +7 -5
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/interaction/_interaction.scss +56 -44
  27. package/dist/list/types.d.ts +10 -1
  28. package/dist/list/types.js.map +1 -1
  29. package/dist/menu/_menu.scss +1 -0
  30. package/dist/theme/_theme.scss +192 -34
  31. package/dist/typography/SrOnly.d.ts +3 -3
  32. package/dist/typography/SrOnly.js +4 -4
  33. package/dist/typography/SrOnly.js.map +1 -1
  34. package/dist/typography/Typography.d.ts +19 -19
  35. package/dist/typography/Typography.js +19 -19
  36. package/dist/typography/Typography.js.map +1 -1
  37. package/dist/typography/_typography.scss +65 -25
  38. package/package.json +11 -11
  39. package/src/_core.scss +49 -43
  40. package/src/badge/_badge.scss +23 -19
  41. package/src/button/__tests__/__snapshots__/Button.tsx.snap +1 -1
  42. package/src/form/MenuItemInputToggle.tsx +46 -64
  43. package/src/form/__tests__/MenuItemCheckbox.tsx +53 -0
  44. package/src/form/__tests__/MenuItemRadio.tsx +53 -0
  45. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +23 -23
  46. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +96 -0
  47. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +96 -0
  48. package/src/form/_form.scss +109 -87
  49. package/src/form/menuItemInputToggleStyles.ts +78 -0
  50. package/src/icon/_icon.scss +7 -5
  51. package/src/index.ts +1 -0
  52. package/src/interaction/_interaction.scss +56 -44
  53. package/src/list/types.ts +12 -1
  54. package/src/menu/_menu.scss +1 -0
  55. package/src/theme/_theme.scss +192 -34
  56. package/src/typography/SrOnly.tsx +9 -9
  57. package/src/typography/Typography.tsx +19 -19
  58. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +5 -5
  59. package/src/typography/_typography.scss +65 -25
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
- @include css-reset;
366
-
367
- @layer #{$_layer-order};
368
- @include css-utils;
369
-
370
- @include app-bar.styles;
371
- @include avatar.styles;
372
- @include badge.styles;
373
- @include box.styles;
374
- @include button.styles;
375
- @include card.styles;
376
- @include chip.styles;
377
- @include dialog.styles;
378
- @include divider.styles;
379
- @include draggable.styles;
380
- @include expansion-panel.styles;
381
- @include form.styles;
382
- @include icon.styles;
383
- @include interaction.styles;
384
- @include layout.styles;
385
- @include link.styles;
386
- @include list.styles;
387
- @include menu.styles;
388
- @include overlay.styles;
389
- @include progress.styles;
390
- @include responsive-item.styles;
391
- @include segmented-button.styles;
392
- @include sheet.styles;
393
- @include snackbar.styles;
394
- @include table.styles;
395
- @include tabs.styles;
396
- @include tooltip.styles;
397
- @include transition.transition-styles;
398
- @include tree.styles;
399
- @include typography.typography-styles;
400
- @include window-splitter.styles;
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 not
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
  }
@@ -69,31 +69,35 @@ $variables: (
69
69
  }
70
70
 
71
71
  @mixin use-light-theme {
72
- @if $light-theme-greyscale-background-color !=
73
- $dark-theme-greyscale-background-color
74
- {
75
- @include set-var(
76
- greyscale-background-color,
77
- $light-theme-greyscale-background-color
78
- );
79
- }
80
- @if $light-theme-greyscale-color != $dark-theme-greyscale-color {
81
- @include set-var(greyscale-color, $light-theme-greyscale-color);
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 $light-theme-greyscale-background-color !=
87
- $dark-theme-greyscale-background-color
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
- @if $light-theme-greyscale-color != $dark-theme-greyscale-color {
96
- @include set-var(greyscale-color, $dark-theme-greyscale-color);
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 (typeof propIcon === "undefined") {
38
- if (type === "switch") {
39
- icon = /*#__PURE__*/ _jsx(SwitchTrack, {
40
- style: trackStyle,
41
- ...trackProps,
42
- className: cnb(styles("track"), trackClassName, trackProps?.className),
43
- active: checked,
44
- ballProps: ballProps,
45
- ballStyle: ballStyle,
46
- ballClassName: cnb(styles("ball"), ballClassName)
47
- });
48
- } else {
49
- icon = /*#__PURE__*/ _jsx(InputToggleIcon, {
50
- style: iconStyle,
51
- disableEm: true,
52
- ...iconProps,
53
- className: cnb(styles("icon"), iconClassName, iconProps?.className),
54
- size: size,
55
- type: type,
56
- checked: checked,
57
- disabled: disabled,
58
- icon: propIcon,
59
- checkedIcon: checkedIcon,
60
- indeterminate: indeterminate,
61
- indeterminateIcon: indeterminateIcon
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":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SACEC,UAAU,QAKL,QAAQ;AACf,SAASC,QAAQ,QAAQ,sBAAsB;AAO/C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,GAAG,QAAQ,kBAAkB;AAKtC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,WAAW,QAAQ,mBAAmB;AAG/C,MAAMC,OAAO;AACX,aAAa;AACf;AACA,MAAMC,SAASJ,IAAI;AAQnB;;CAEC,GACD,OAAO,SAASK,oBACdC,OAA4C;IAE5C,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGF;IAC5B,OAAOV,IACL,CAAC,IAAI,EAAEY,KAAK,UAAU,CAAC,EACvBJ,OAAO;QAAEK,QAAQD,SAAS;IAAS,IACnCD;AAEJ;AAmGA;;;;;;;;;;;CAWC,GACD,OAAO,MAAMG,oCAAsBb,WAGjC,SAASa,oBAAoBC,KAAK,EAAEC,GAAG;IACvC,MAAM,EACJC,IAAIC,MAAM,EACVN,IAAI,EACJO,WAAW,KAAK,EAChBC,OAAO,EACPC,eAAe,EACfC,yBAAyB,KAAK,EAC9BC,UAAUhB,IAAI,EACdI,SAAS,EACTa,WAAW,CAAC,CAAC,EACbC,QAAQ,EACRC,OAAO,MAAM,EACbC,MAAMC,QAAQ,EACdC,YAAY,KAAK,EACjBC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EACjBC,KAAK,EACLC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,yBAAyB,EACzBC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,cAAc,EACd,GAAGC,WACJ,GAAGhC;IAEJ,MAAME,KAAKd,aAAae,QAAQ;IAEhC,IAAIS,OAAOC;IACX,IAAI,OAAOA,aAAa,aAAa;QACnC,IAAIhB,SAAS,UAAU;YACrBe,qBACE,KAACrB;gBACC0C,OAAOH;gBACN,GAAGD,UAAU;gBACdjC,WAAWX,IACTQ,OAAO,UACPsC,gBACAF,YAAYjC;gBAEdsC,QAAQ7B;gBACRqB,WAAWA;gBACXC,WAAWA;gBACXC,eAAe3C,IAAIQ,OAAO,SAASmC;;QAGzC,OAAO;YACLhB,qBACE,KAACtB;gBACC2C,OAAOjB;gBACPmB,SAAS;gBACR,GAAGpB,SAAS;gBACbnB,WAAWX,IAAIQ,OAAO,SAASwB,eAAeF,WAAWnB;gBACzDe,MAAMA;gBACNd,MAAMA;gBACNQ,SAASA;gBACTD,UAAUA;gBACVQ,MAAMC;gBACNK,aAAaA;gBACbC,eAAeA;gBACfC,mBAAmBA;;QAGzB;IACF;IAEA,IAAIgB;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAI/B,WAAW;QACbsB,YAAYf;QACZgB,gBAAgBf;QAChBgB,oBAAoBf;QACpBgB,qBAAqBf;QACrBgB,gCAAgCf;QAChCgB,aAAa7B;IACf,OAAO;QACLwB,YAAYxB;QACZ6B,aAAapB;QACbqB,iBAAiBpB;QACjBqB,qBAAqBpB;QACrBqB,sBAAsBpB;QACtBqB,iCAAiCpB;IACnC;IAEA,qBACE,KAACtC;QACE,GAAG6C,SAAS;QACb,2CAA2C;QAC3Cc,gBAAc3B,iBAAiBd,UAAU,UAAUA;QACnDH,IAAIA;QACJ6C,MAAMlD,SAAS,UAAU,kBAAkB;QAC3CW,SAAS,CAACwC;YACRxC,QAAQwC;YACR1C,gBAAgB,CAACD,SAAS2C;YAE1B,IAAIzC,wBAAwB;gBAC1ByC,MAAMC,eAAe;YACvB;QACF;QACAhD,KAAKA;QACLL,WAAWF,oBAAoB;YAAEG;YAAMD;QAAU;QACjDQ,UAAUA;QACVK,UAAUA;QACV2B,WAAWA;QACXC,eAAeA;QACfC,mBAAmBA;QACnBC,oBAAoBA;QACpBC,+BAA+BA;QAC/BC,YAAYA;QACZC,gBAAgBA;QAChBC,oBAAoBA;QACpBC,qBAAqBA;QACrBC,gCAAgCA;kBAE/BnC;;AAGP,GAAG"}
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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"}
@@ -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
- @include set-var(
335
- text-field-filled-color,
336
- $text-field-light-filled-background-color
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
- @include set-var(
386
- text-field-filled-color,
387
- $text-field-dark-filled-background-color
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(label-left-offset));
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 {
@@ -2041,96 +2064,95 @@ $variables: (
2041
2064
  @mixin styles($disable-layer: false) {
2042
2065
  @if not $disable-everything {
2043
2066
  @include utils.optional-layer(form, $disable-layer) {
2044
- }
2045
-
2046
- @include theme.default-system-theme {
2047
- @include use-dark-theme;
2048
- }
2067
+ @include theme.default-system-theme {
2068
+ @include use-dark-theme;
2069
+ }
2049
2070
 
2050
- @if not $disable-fieldset {
2051
- .rmd-fieldset {
2052
- &--unstyled {
2053
- border: 0;
2054
- margin: 0;
2055
- min-width: 0; // just so it can shrink correctly in flex or grid
2056
- padding: 0;
2057
- }
2071
+ @if not $disable-fieldset {
2072
+ .rmd-fieldset {
2073
+ &--unstyled {
2074
+ border: 0;
2075
+ margin: 0;
2076
+ min-width: 0; // just so it can shrink correctly in flex or grid
2077
+ padding: 0;
2078
+ }
2058
2079
 
2059
- &--full-width {
2060
- flex: 1 1 auto;
2061
- width: 100%;
2080
+ &--full-width {
2081
+ flex: 1 1 auto;
2082
+ width: 100%;
2083
+ }
2062
2084
  }
2063
2085
  }
2064
- }
2065
2086
 
2066
- @if not $disable-label {
2067
- @include label-styles(true);
2068
- }
2087
+ @if not $disable-label {
2088
+ @include label-styles(true);
2089
+ }
2069
2090
 
2070
- @if not $disable-file-input {
2071
- @include file-input-styles(true);
2072
- }
2091
+ @if not $disable-file-input {
2092
+ @include file-input-styles(true);
2093
+ }
2073
2094
 
2074
- @if not $disable-message {
2075
- @include form-message-styles(true);
2076
- }
2095
+ @if not $disable-message {
2096
+ @include form-message-styles(true);
2097
+ }
2077
2098
 
2078
- @if not $_disable-text-field-container {
2079
- @include text-field-container-styles(true);
2080
- }
2099
+ @if not $_disable-text-field-container {
2100
+ @include text-field-container-styles(true);
2101
+ }
2081
2102
 
2082
- @if not
2083
- $disable-text-field or not
2084
- $disable-password or not
2085
- $disable-textarea
2086
- {
2087
- @include text-field-styles(true);
2088
- }
2103
+ @if not
2104
+ $disable-text-field or not
2105
+ $disable-password or not
2106
+ $disable-textarea
2107
+ {
2108
+ @include text-field-styles(true);
2109
+ }
2089
2110
 
2090
- @if not $disable-password {
2091
- @include password-styles(true);
2092
- }
2111
+ @if not $disable-password {
2112
+ @include password-styles(true);
2113
+ }
2093
2114
 
2094
- @if not $disable-textarea {
2095
- @include textarea-container-styles(true);
2096
- @include textarea-styles(true);
2097
- }
2115
+ @if not $disable-textarea {
2116
+ @include textarea-container-styles(true);
2117
+ @include textarea-styles(true);
2118
+ }
2098
2119
 
2099
- @if not $disable-select {
2100
- @include select-styles(true);
2101
- }
2120
+ @if not $disable-select {
2121
+ @include select-styles(true);
2122
+ }
2102
2123
 
2103
- @if not $disable-option {
2104
- @include option-styles(true);
2105
- }
2124
+ @if not $disable-option {
2125
+ @include option-styles(true);
2126
+ }
2106
2127
 
2107
- @if not $disable-native-select {
2108
- @include native-select-styles(true);
2109
- }
2128
+ @if not $disable-native-select {
2129
+ @include native-select-styles(true);
2130
+ }
2110
2131
 
2111
- @if not $disable-text-field-addon {
2112
- @include text-field-addon-styles(true);
2113
- }
2132
+ @if not $disable-text-field-addon {
2133
+ @include text-field-addon-styles(true);
2134
+ }
2114
2135
 
2115
- @if not $disable-checkbox or not $disable-radio or not $disable-switch {
2116
- @include hidden-input-styles(true);
2117
- @include input-toggle-styles(true);
2118
- }
2136
+ @if not $disable-checkbox or not $disable-radio or not $disable-switch {
2137
+ @include hidden-input-styles(true);
2138
+ @include input-toggle-styles(true);
2139
+ }
2119
2140
 
2120
- @if not $disable-switch {
2121
- @include switch-styles(true);
2122
- }
2141
+ @if not $disable-switch {
2142
+ @include switch-styles(true);
2143
+ }
2123
2144
 
2124
- @if not
2125
- $disable-menu-item-checkbox or not
2126
- $disable-menu-item-radio or not
2127
- $disable-menu-item-switch
2128
- {
2129
- @include menu-item-input-toggle-styles(true);
2130
- }
2145
+ @if not
2146
+ $disable-menu-item-checkbox or not
2147
+ $disable-menu-item-radio or not
2148
+ $disable-menu-item-switch
2149
+ {
2150
+ @include menu-item-input-toggle-styles(true);
2151
+ }
2131
2152
 
2132
- @if not $disable-slider {
2133
- @include slider-styles(true);
2153
+ @if not $disable-slider {
2154
+ @include slider-styles(true);
2155
+ }
2134
2156
  }
2135
2157
  }
2136
2158
  }