@lumx/react 2.2.4 → 2.2.5

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 (97) hide show
  1. package/esm/_internal/AlertDialog.js +1 -2
  2. package/esm/_internal/AlertDialog.js.map +1 -1
  3. package/esm/_internal/AutocompleteMultiple.js +1 -2
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -1
  5. package/esm/_internal/Button2.js +1 -1
  6. package/esm/_internal/Checkbox2.js +1 -2
  7. package/esm/_internal/Checkbox2.js.map +1 -1
  8. package/esm/_internal/DatePickerField.js +1 -1
  9. package/esm/_internal/DragHandle.js +1 -2
  10. package/esm/_internal/DragHandle.js.map +1 -1
  11. package/esm/_internal/ExpansionPanel.js +1 -1
  12. package/esm/_internal/Icon2.js +23 -3
  13. package/esm/_internal/Icon2.js.map +1 -1
  14. package/esm/_internal/IconButton.js +1 -1
  15. package/esm/_internal/Lightbox2.js +1 -1
  16. package/esm/_internal/Link2.js +1 -1
  17. package/esm/_internal/LinkPreview.js +1 -1
  18. package/esm/_internal/LinkPreview.js.map +1 -1
  19. package/esm/_internal/Message2.js +3 -3
  20. package/esm/_internal/Message2.js.map +1 -1
  21. package/esm/_internal/Notification2.js +1 -2
  22. package/esm/_internal/Notification2.js.map +1 -1
  23. package/esm/_internal/ProgressTrackerStepPanel.js +1 -2
  24. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
  25. package/esm/_internal/SelectMultiple.js +1 -2
  26. package/esm/_internal/SelectMultiple.js.map +1 -1
  27. package/esm/_internal/SideNavigationItem.js +1 -2
  28. package/esm/_internal/SideNavigationItem.js.map +1 -1
  29. package/esm/_internal/SlideshowControls.js +1 -1
  30. package/esm/_internal/TabPanel.js +1 -1
  31. package/esm/_internal/TableRow.js +1 -2
  32. package/esm/_internal/TableRow.js.map +1 -1
  33. package/esm/_internal/TextField.js +1 -2
  34. package/esm/_internal/TextField.js.map +1 -1
  35. package/esm/_internal/Thumbnail2.js +1 -2
  36. package/esm/_internal/Thumbnail2.js.map +1 -1
  37. package/esm/_internal/alert-dialog.js +1 -2
  38. package/esm/_internal/alert-dialog.js.map +1 -1
  39. package/esm/_internal/autocomplete.js +1 -2
  40. package/esm/_internal/autocomplete.js.map +1 -1
  41. package/esm/_internal/avatar.js +1 -2
  42. package/esm/_internal/avatar.js.map +1 -1
  43. package/esm/_internal/button.js +1 -1
  44. package/esm/_internal/checkbox.js +1 -2
  45. package/esm/_internal/checkbox.js.map +1 -1
  46. package/esm/_internal/comment-block.js +1 -2
  47. package/esm/_internal/comment-block.js.map +1 -1
  48. package/esm/_internal/date-picker.js +1 -2
  49. package/esm/_internal/date-picker.js.map +1 -1
  50. package/esm/_internal/drag-handle.js +1 -2
  51. package/esm/_internal/drag-handle.js.map +1 -1
  52. package/esm/_internal/expansion-panel.js +1 -2
  53. package/esm/_internal/expansion-panel.js.map +1 -1
  54. package/esm/_internal/flag.js +1 -1
  55. package/esm/_internal/icon.js +1 -1
  56. package/esm/_internal/image-block.js +1 -2
  57. package/esm/_internal/image-block.js.map +1 -1
  58. package/esm/_internal/lightbox.js +1 -2
  59. package/esm/_internal/lightbox.js.map +1 -1
  60. package/esm/_internal/link-preview.js +1 -2
  61. package/esm/_internal/link-preview.js.map +1 -1
  62. package/esm/_internal/link.js +1 -1
  63. package/esm/_internal/message.js +1 -2
  64. package/esm/_internal/message.js.map +1 -1
  65. package/esm/_internal/mosaic.js +1 -2
  66. package/esm/_internal/mosaic.js.map +1 -1
  67. package/esm/_internal/notification.js +1 -2
  68. package/esm/_internal/notification.js.map +1 -1
  69. package/esm/_internal/post-block.js +1 -2
  70. package/esm/_internal/post-block.js.map +1 -1
  71. package/esm/_internal/progress-tracker.js +1 -2
  72. package/esm/_internal/progress-tracker.js.map +1 -1
  73. package/esm/_internal/select.js +1 -2
  74. package/esm/_internal/select.js.map +1 -1
  75. package/esm/_internal/side-navigation.js +1 -2
  76. package/esm/_internal/side-navigation.js.map +1 -1
  77. package/esm/_internal/slideshow.js +1 -2
  78. package/esm/_internal/slideshow.js.map +1 -1
  79. package/esm/_internal/table.js +1 -2
  80. package/esm/_internal/table.js.map +1 -1
  81. package/esm/_internal/tabs.js +1 -1
  82. package/esm/_internal/text-field.js +1 -2
  83. package/esm/_internal/text-field.js.map +1 -1
  84. package/esm/_internal/thumbnail.js +1 -2
  85. package/esm/_internal/thumbnail.js.map +1 -1
  86. package/esm/_internal/uploader.js +1 -1
  87. package/esm/_internal/user-block.js +1 -2
  88. package/esm/_internal/user-block.js.map +1 -1
  89. package/esm/index.js +1 -2
  90. package/esm/index.js.map +1 -1
  91. package/package.json +4 -4
  92. package/src/components/icon/Icon.tsx +5 -0
  93. package/src/components/link-preview/LinkPreview.tsx +1 -1
  94. package/src/components/link-preview/__snapshots__/LinkPreview.test.tsx.snap +2 -2
  95. package/src/components/message/Message.tsx +3 -1
  96. package/esm/_internal/mdi.js +0 -22
  97. package/esm/_internal/mdi.js.map +0 -1
@@ -2,12 +2,12 @@ import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } fro
2
2
  import { Emphasis, Size, Theme } from './components.js';
3
3
  import React, { forwardRef } from 'react';
4
4
  import { g as getRootClassName } from './getRootClassName.js';
5
+ import { I as Icon } from './Icon2.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
7
8
  import 'lodash/kebabCase';
8
9
  import 'lodash/noop';
9
10
  import { B as ButtonRoot } from './ButtonRoot.js';
10
- import { I as Icon } from './Icon2.js';
11
11
  import { T as Tooltip } from './Tooltip2.js';
12
12
 
13
13
  /**
@@ -2,7 +2,7 @@ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBab
2
2
  import { ColorPalette, Emphasis } from './components.js';
3
3
  import React, { forwardRef, useRef } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
5
- import { d as mdiClose } from './mdi.js';
5
+ import { d as mdiClose } from './Icon2.js';
6
6
  import { D as DOCUMENT } from './constants.js';
7
7
  import { m as mergeRefs } from './mergeRefs.js';
8
8
  import { I as IconButton } from './IconButton.js';
@@ -2,9 +2,9 @@ import { b as _objectWithoutProperties, a as _defineProperty, c as _extends, _ a
2
2
  import { Size, Typography } from './components.js';
3
3
  import React, { forwardRef, useMemo } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
5
+ import { I as Icon } from './Icon2.js';
5
6
  import isEmpty from 'lodash/isEmpty';
6
7
  import { r as renderLink } from './renderLink.js';
7
- import { I as Icon } from './Icon2.js';
8
8
 
9
9
  /**
10
10
  * Component display name.
@@ -83,7 +83,7 @@ var LinkPreview = forwardRef(function (props, ref) {
83
83
  className: classnames("".concat(CLASSNAME, "__link"), linkProps === null || linkProps === void 0 ? void 0 : linkProps.className),
84
84
  target: "_blank",
85
85
  href: link,
86
- color: theme === Theme.light ? ColorPalette.blue : ColorPalette.light,
86
+ color: theme === Theme.light ? ColorPalette.primary : ColorPalette.light,
87
87
  colorVariant: ColorVariant.N
88
88
  }), link)))));
89
89
  });
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPreview.js","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n AspectRatio,\n ColorPalette,\n ColorVariant,\n Link,\n LinkProps,\n Size,\n Theme,\n Thumbnail,\n ThumbnailProps,\n} from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface LinkPreviewProps extends GenericProps {\n /** Description (either a string, or sanitized html). */\n description?: string | { __html: string };\n /** Link URL. */\n link: string;\n /** Props to pass to the link (minus those already set by the LinkPreview props). */\n linkProps?: Omit<LinkProps, 'color' | 'colorVariant' | 'href' | 'target'>;\n /** Size variant. */\n size?: Extract<Size, 'regular' | 'big'>;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Thumbnail for the link preview. */\n thumbnailProps?: ThumbnailProps;\n /** Title. */\n title?: string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'LinkPreview';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<LinkPreviewProps> = {\n size: Size.regular,\n theme: Theme.light,\n};\n\n/**\n * LinkPreview component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const LinkPreview: Comp<LinkPreviewProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { className, description, link, linkProps, size, theme, thumbnailProps, title, ...forwardedProps } = props;\n\n //TODO: a11y\n const goToUrl = useCallback(() => window.open(link, '_blank'), [link]);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n size: size === Size.big && thumbnailProps ? Size.big : Size.regular,\n theme,\n }),\n )}\n >\n <div className={`${CLASSNAME}__wrapper`}>\n {thumbnailProps && (\n <div className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail\n {...thumbnailProps}\n onClick={goToUrl}\n role=\"link\"\n aspectRatio={AspectRatio.free}\n fillHeight\n />\n </div>\n )}\n\n <div className={`${CLASSNAME}__container`}>\n {title && (\n <div className={`${CLASSNAME}__title`}>\n <Link\n {...linkProps}\n target=\"_blank\"\n href={link}\n color={theme === Theme.light ? ColorPalette.dark : ColorPalette.light}\n colorVariant={ColorVariant.N}\n >\n {title}\n </Link>\n </div>\n )}\n {description && <p className={`${CLASSNAME}__description`}>{description}</p>}\n\n <div className={`${CLASSNAME}__link`}>\n <Link\n {...linkProps}\n className={classNames(`${CLASSNAME}__link`, linkProps?.className)}\n target=\"_blank\"\n href={link}\n color={theme === Theme.light ? ColorPalette.blue : ColorPalette.light}\n colorVariant={ColorVariant.N}\n >\n {link}\n </Link>\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nLinkPreview.displayName = COMPONENT_NAME;\nLinkPreview.className = CLASSNAME;\nLinkPreview.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","regular","theme","Theme","light","LinkPreview","forwardRef","props","ref","className","description","link","linkProps","thumbnailProps","title","forwardedProps","goToUrl","useCallback","window","open","classNames","handleBasicClasses","prefix","big","AspectRatio","free","ColorPalette","dark","ColorVariant","N","blue","displayName","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"LinkPreview.js","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n AspectRatio,\n ColorPalette,\n ColorVariant,\n Link,\n LinkProps,\n Size,\n Theme,\n Thumbnail,\n ThumbnailProps,\n} from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface LinkPreviewProps extends GenericProps {\n /** Description (either a string, or sanitized html). */\n description?: string | { __html: string };\n /** Link URL. */\n link: string;\n /** Props to pass to the link (minus those already set by the LinkPreview props). */\n linkProps?: Omit<LinkProps, 'color' | 'colorVariant' | 'href' | 'target'>;\n /** Size variant. */\n size?: Extract<Size, 'regular' | 'big'>;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Thumbnail for the link preview. */\n thumbnailProps?: ThumbnailProps;\n /** Title. */\n title?: string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'LinkPreview';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<LinkPreviewProps> = {\n size: Size.regular,\n theme: Theme.light,\n};\n\n/**\n * LinkPreview component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const LinkPreview: Comp<LinkPreviewProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { className, description, link, linkProps, size, theme, thumbnailProps, title, ...forwardedProps } = props;\n\n //TODO: a11y\n const goToUrl = useCallback(() => window.open(link, '_blank'), [link]);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n size: size === Size.big && thumbnailProps ? Size.big : Size.regular,\n theme,\n }),\n )}\n >\n <div className={`${CLASSNAME}__wrapper`}>\n {thumbnailProps && (\n <div className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail\n {...thumbnailProps}\n onClick={goToUrl}\n role=\"link\"\n aspectRatio={AspectRatio.free}\n fillHeight\n />\n </div>\n )}\n\n <div className={`${CLASSNAME}__container`}>\n {title && (\n <div className={`${CLASSNAME}__title`}>\n <Link\n {...linkProps}\n target=\"_blank\"\n href={link}\n color={theme === Theme.light ? ColorPalette.dark : ColorPalette.light}\n colorVariant={ColorVariant.N}\n >\n {title}\n </Link>\n </div>\n )}\n {description && <p className={`${CLASSNAME}__description`}>{description}</p>}\n\n <div className={`${CLASSNAME}__link`}>\n <Link\n {...linkProps}\n className={classNames(`${CLASSNAME}__link`, linkProps?.className)}\n target=\"_blank\"\n href={link}\n color={theme === Theme.light ? ColorPalette.primary : ColorPalette.light}\n colorVariant={ColorVariant.N}\n >\n {link}\n </Link>\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nLinkPreview.displayName = COMPONENT_NAME;\nLinkPreview.className = CLASSNAME;\nLinkPreview.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","regular","theme","Theme","light","LinkPreview","forwardRef","props","ref","className","description","link","linkProps","thumbnailProps","title","forwardedProps","goToUrl","useCallback","window","open","classNames","handleBasicClasses","prefix","big","AspectRatio","free","ColorPalette","dark","ColorVariant","N","primary","displayName","defaultProps"],"mappings":"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"}
@@ -2,8 +2,7 @@ import { a as _defineProperty, b as _objectWithoutProperties, c as _extends } fr
2
2
  import { Size, ColorPalette, Kind } from './components.js';
3
3
  import React, { forwardRef } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
5
- import { m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle } from './mdi.js';
6
- import { I as Icon } from './Icon2.js';
5
+ import { I as Icon, m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle } from './Icon2.js';
7
6
 
8
7
  var _CONFIG;
9
8
  /**
@@ -66,7 +65,8 @@ var Message = forwardRef(function (props, ref) {
66
65
  }, forwardedProps), (customIcon || icon) && React.createElement(Icon, {
67
66
  className: "".concat(CLASSNAME, "__icon"),
68
67
  icon: customIcon || icon,
69
- size: Size.xs
68
+ size: Size.xs,
69
+ color: color
70
70
  }), React.createElement("div", {
71
71
  className: "".concat(CLASSNAME, "__text")
72
72
  }, children));
@@ -1 +1 @@
1
- {"version":3,"file":"Message2.js","sources":["../../../src/components/message/Message.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\nimport { ColorPalette, Icon, Kind, Size } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface MessageProps extends GenericProps {\n /** Content. */\n children?: ReactNode;\n /** Whether the message has a background or not. */\n hasBackground?: boolean;\n /** Message variant. */\n kind?: Kind;\n /** Message custom icon SVG path. */\n icon?: string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Message';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Associative map from message kind to color and icon.\n */\nconst CONFIG = {\n [Kind.error]: { color: ColorPalette.red, icon: mdiAlert },\n [Kind.info]: { color: ColorPalette.dark, icon: mdiInformation },\n [Kind.success]: { color: ColorPalette.green, icon: mdiCheckCircle },\n [Kind.warning]: { color: ColorPalette.yellow, icon: mdiAlertCircle },\n};\n\n/**\n * Message component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Message: Comp<MessageProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, hasBackground, kind, icon: customIcon, ...forwardedProps } = props;\n const { color, icon } = CONFIG[kind as Kind] || {};\n\n return (\n <div\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasBackground,\n prefix: CLASSNAME,\n }),\n )}\n {...forwardedProps}\n >\n {(customIcon || icon) && <Icon className={`${CLASSNAME}__icon`} icon={customIcon || icon} size={Size.xs} />}\n <div className={`${CLASSNAME}__text`}>{children}</div>\n </div>\n );\n});\nMessage.displayName = COMPONENT_NAME;\nMessage.className = CLASSNAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","CONFIG","Kind","error","color","ColorPalette","red","icon","mdiAlert","info","dark","mdiInformation","success","green","mdiCheckCircle","warning","yellow","mdiAlertCircle","Message","forwardRef","props","ref","children","className","hasBackground","kind","customIcon","forwardedProps","classNames","handleBasicClasses","prefix","Size","xs","displayName"],"mappings":";;;;;;;;AAMA;;;;AAcA;;;AAGA,IAAMA,cAAc,GAAG,SAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,MAAM,2CACPC,IAAI,CAACC,KADE,EACM;AAAEC,EAAAA,KAAK,EAAEC,YAAY,CAACC,GAAtB;AAA2BC,EAAAA,IAAI,EAAEC;AAAjC,CADN,4BAEPN,IAAI,CAACO,IAFE,EAEK;AAAEL,EAAAA,KAAK,EAAEC,YAAY,CAACK,IAAtB;AAA4BH,EAAAA,IAAI,EAAEI;AAAlC,CAFL,4BAGPT,IAAI,CAACU,OAHE,EAGQ;AAAER,EAAAA,KAAK,EAAEC,YAAY,CAACQ,KAAtB;AAA6BN,EAAAA,IAAI,EAAEO;AAAnC,CAHR,4BAIPZ,IAAI,CAACa,OAJE,EAIQ;AAAEX,EAAAA,KAAK,EAAEC,YAAY,CAACW,MAAtB;AAA8BT,EAAAA,IAAI,EAAEU;AAApC,CAJR,WAAZ;AAOA;;;;;;;;IAOaC,OAA2C,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC1EC,QAD0E,GACQF,KADR,CAC1EE,QAD0E;AAAA,MAChEC,SADgE,GACQH,KADR,CAChEG,SADgE;AAAA,MACrDC,aADqD,GACQJ,KADR,CACrDI,aADqD;AAAA,MACtCC,IADsC,GACQL,KADR,CACtCK,IADsC;AAAA,MAC1BC,UAD0B,GACQN,KADR,CAChCb,IADgC;AAAA,MACXoB,cADW,4BACQP,KADR;;AAAA,aAE1DnB,MAAM,CAACwB,IAAD,CAAN,IAAwB,EAFkC;AAAA,MAE1ErB,KAF0E,QAE1EA,KAF0E;AAAA,MAEnEG,IAFmE,QAEnEA,IAFmE;;AAIlF,SACI;AACI,IAAA,GAAG,EAAEc,GADT;AAEI,IAAA,SAAS,EAAEO,UAAU,CACjBL,SADiB,EAEjBM,kBAAkB,CAAC;AACfzB,MAAAA,KAAK,EAALA,KADe;AAEfoB,MAAAA,aAAa,EAAbA,aAFe;AAGfM,MAAAA,MAAM,EAAE/B;AAHO,KAAD,CAFD;AAFzB,KAUQ4B,cAVR,GAYK,CAACD,UAAU,IAAInB,IAAf,KAAwB,oBAAC,IAAD;AAAM,IAAA,SAAS,YAAKR,SAAL,WAAf;AAAuC,IAAA,IAAI,EAAE2B,UAAU,IAAInB,IAA3D;AAAiE,IAAA,IAAI,EAAEwB,IAAI,CAACC;AAA5E,IAZ7B,EAaI;AAAK,IAAA,SAAS,YAAKjC,SAAL;AAAd,KAAuCuB,QAAvC,CAbJ,CADJ;AAiBH,CArBoE;AAsBrEJ,OAAO,CAACe,WAAR,GAAsBnC,cAAtB;AACAoB,OAAO,CAACK,SAAR,GAAoBxB,SAApB;;;;"}
1
+ {"version":3,"file":"Message2.js","sources":["../../../src/components/message/Message.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\nimport { ColorPalette, Icon, Kind, Size } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface MessageProps extends GenericProps {\n /** Content. */\n children?: ReactNode;\n /** Whether the message has a background or not. */\n hasBackground?: boolean;\n /** Message variant. */\n kind?: Kind;\n /** Message custom icon SVG path. */\n icon?: string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Message';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Associative map from message kind to color and icon.\n */\nconst CONFIG = {\n [Kind.error]: { color: ColorPalette.red, icon: mdiAlert },\n [Kind.info]: { color: ColorPalette.dark, icon: mdiInformation },\n [Kind.success]: { color: ColorPalette.green, icon: mdiCheckCircle },\n [Kind.warning]: { color: ColorPalette.yellow, icon: mdiAlertCircle },\n};\n\n/**\n * Message component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Message: Comp<MessageProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, hasBackground, kind, icon: customIcon, ...forwardedProps } = props;\n const { color, icon } = CONFIG[kind as Kind] || {};\n\n return (\n <div\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasBackground,\n prefix: CLASSNAME,\n }),\n )}\n {...forwardedProps}\n >\n {(customIcon || icon) && (\n <Icon className={`${CLASSNAME}__icon`} icon={customIcon || icon} size={Size.xs} color={color} />\n )}\n <div className={`${CLASSNAME}__text`}>{children}</div>\n </div>\n );\n});\nMessage.displayName = COMPONENT_NAME;\nMessage.className = CLASSNAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","CONFIG","Kind","error","color","ColorPalette","red","icon","mdiAlert","info","dark","mdiInformation","success","green","mdiCheckCircle","warning","yellow","mdiAlertCircle","Message","forwardRef","props","ref","children","className","hasBackground","kind","customIcon","forwardedProps","classNames","handleBasicClasses","prefix","Size","xs","displayName"],"mappings":";;;;;;;AAMA;;;;AAcA;;;AAGA,IAAMA,cAAc,GAAG,SAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,MAAM,2CACPC,IAAI,CAACC,KADE,EACM;AAAEC,EAAAA,KAAK,EAAEC,YAAY,CAACC,GAAtB;AAA2BC,EAAAA,IAAI,EAAEC;AAAjC,CADN,4BAEPN,IAAI,CAACO,IAFE,EAEK;AAAEL,EAAAA,KAAK,EAAEC,YAAY,CAACK,IAAtB;AAA4BH,EAAAA,IAAI,EAAEI;AAAlC,CAFL,4BAGPT,IAAI,CAACU,OAHE,EAGQ;AAAER,EAAAA,KAAK,EAAEC,YAAY,CAACQ,KAAtB;AAA6BN,EAAAA,IAAI,EAAEO;AAAnC,CAHR,4BAIPZ,IAAI,CAACa,OAJE,EAIQ;AAAEX,EAAAA,KAAK,EAAEC,YAAY,CAACW,MAAtB;AAA8BT,EAAAA,IAAI,EAAEU;AAApC,CAJR,WAAZ;AAOA;;;;;;;;IAOaC,OAA2C,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC1EC,QAD0E,GACQF,KADR,CAC1EE,QAD0E;AAAA,MAChEC,SADgE,GACQH,KADR,CAChEG,SADgE;AAAA,MACrDC,aADqD,GACQJ,KADR,CACrDI,aADqD;AAAA,MACtCC,IADsC,GACQL,KADR,CACtCK,IADsC;AAAA,MAC1BC,UAD0B,GACQN,KADR,CAChCb,IADgC;AAAA,MACXoB,cADW,4BACQP,KADR;;AAAA,aAE1DnB,MAAM,CAACwB,IAAD,CAAN,IAAwB,EAFkC;AAAA,MAE1ErB,KAF0E,QAE1EA,KAF0E;AAAA,MAEnEG,IAFmE,QAEnEA,IAFmE;;AAIlF,SACI;AACI,IAAA,GAAG,EAAEc,GADT;AAEI,IAAA,SAAS,EAAEO,UAAU,CACjBL,SADiB,EAEjBM,kBAAkB,CAAC;AACfzB,MAAAA,KAAK,EAALA,KADe;AAEfoB,MAAAA,aAAa,EAAbA,aAFe;AAGfM,MAAAA,MAAM,EAAE/B;AAHO,KAAD,CAFD;AAFzB,KAUQ4B,cAVR,GAYK,CAACD,UAAU,IAAInB,IAAf,KACG,oBAAC,IAAD;AAAM,IAAA,SAAS,YAAKR,SAAL,WAAf;AAAuC,IAAA,IAAI,EAAE2B,UAAU,IAAInB,IAA3D;AAAiE,IAAA,IAAI,EAAEwB,IAAI,CAACC,EAA5E;AAAgF,IAAA,KAAK,EAAE5B;AAAvF,IAbR,EAeI;AAAK,IAAA,SAAS,YAAKL,SAAL;AAAd,KAAuCuB,QAAvC,CAfJ,CADJ;AAmBH,CAvBoE;AAwBrEJ,OAAO,CAACe,WAAR,GAAsBnC,cAAtB;AACAoB,OAAO,CAACK,SAAR,GAAoBxB,SAApB;;;;"}
@@ -2,13 +2,12 @@ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBab
2
2
  import { Size, Emphasis, Theme } from './components.js';
3
3
  import React, { forwardRef } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses, N as NOTIFICATION_TRANSITION_DURATION } from './getRootClassName.js';
5
- import { m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle } from './mdi.js';
5
+ import { m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle, I as Icon } from './Icon2.js';
6
6
  import { D as DOCUMENT } from './constants.js';
7
7
  import { a as Button } from './Button2.js';
8
8
  import isFunction from 'lodash/isFunction';
9
9
  import { createPortal } from 'react-dom';
10
10
  import { u as useDelayedVisibility } from './useDelayedVisibility.js';
11
- import { I as Icon } from './Icon2.js';
12
11
 
13
12
  /**
14
13
  * Notification icon and colors according to their type.
@@ -1 +1 @@
1
- {"version":3,"file":"Notification2.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'dark',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\n\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useDelayedVisibility } from '@lumx/react/hooks/useDelayedVisibility';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<NotificationProps> = {\n theme: Theme.light,\n zIndex: 9999,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification: Comp<NotificationProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme,\n type,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const isVisible = useDelayedVisibility(!!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n return type && isVisible\n ? createPortal(\n <div\n ref={ref}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>,\n document.body,\n )\n : null;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","zIndex","Notification","forwardRef","props","ref","actionLabel","className","content","isOpen","onActionClick","onClick","type","forwardedProps","DOCUMENT","isVisible","useDelayedVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","createPortal","classNames","handleBasicClasses","isHidden","prefix","Size","s","Emphasis","medium","document","body","displayName","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Notification2.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'dark',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\n\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useDelayedVisibility } from '@lumx/react/hooks/useDelayedVisibility';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<NotificationProps> = {\n theme: Theme.light,\n zIndex: 9999,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification: Comp<NotificationProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme,\n type,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const isVisible = useDelayedVisibility(!!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n return type && isVisible\n ? createPortal(\n <div\n ref={ref}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>,\n document.body,\n )\n : null;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","zIndex","Notification","forwardRef","props","ref","actionLabel","className","content","isOpen","onActionClick","onClick","type","forwardedProps","DOCUMENT","isVisible","useDelayedVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","createPortal","classNames","handleBasicClasses","isHidden","prefix","Size","s","Emphasis","medium","document","body","displayName","defaultProps"],"mappings":"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"}
@@ -2,9 +2,8 @@ import { b as _objectWithoutProperties, d as _slicedToArray, _ as _objectSpread2
2
2
  import { Size, Kind } from './components.js';
3
3
  import React, { useReducer, useEffect, forwardRef, useCallback } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses, C as CSS_PREFIX } from './getRootClassName.js';
5
- import { b as mdiCheckCircle, c as mdiAlertCircle, k as mdiRadioboxMarked, l as mdiRadioboxBlank } from './mdi.js';
5
+ import { I as Icon, b as mdiCheckCircle, c as mdiAlertCircle, k as mdiRadioboxMarked, l as mdiRadioboxBlank } from './Icon2.js';
6
6
  import { m as mergeRefs } from './mergeRefs.js';
7
- import { I as Icon } from './Icon2.js';
8
7
  import { I as InputHelper } from './InputHelper.js';
9
8
  import { I as InputLabel } from './InputLabel.js';
10
9
  import { r as reducer, I as INIT_STATE, T as TabProviderContext, u as useRovingTabIndex, a as useTabProviderContextState, b as useTabProviderContext } from './useRovingTabIndex.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressTrackerStepPanel.js","sources":["../../../src/components/progress-tracker/ProgressTrackerProvider.tsx","../../../src/components/progress-tracker/ProgressTracker.tsx","../../../src/components/progress-tracker/ProgressTrackerStep.tsx","../../../src/components/progress-tracker/ProgressTrackerStepPanel.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from '../tabs/state';\n\nexport interface ProgressTrackerProviderProps {\n /** Active step index. */\n activeStepIndex?: number;\n /** ProgressTrackerProvider children. */\n children: ReactNode;\n /** Step panel children should not render if the step panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n /** Step change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<ProgressTrackerProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which steps can be defined and linked to their step panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel\n * components in the react tree.\n *\n * This works exactly as TabProvider so it uses TabProviderContext and tabs state.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const ProgressTrackerProvider: React.FC<ProgressTrackerProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({\n type: 'update',\n payload: {\n ...propState,\n activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex,\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nProgressTrackerProvider.defaultProps = DEFAULT_PROPS;\n","import React, { forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\nimport { useTabProviderContextState } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerProps extends GenericProps {\n /** ARIA label (purpose of the set of steps). */\n ['aria-label']: string;\n /** Step list. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTracker';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerProps> = {};\n\n/**\n * ProgressTracker component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTracker: Comp<ProgressTrackerProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { 'aria-label': ariaLabel, children, className, ...forwardedProps } = props;\n const stepListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: stepListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n const state = useTabProviderContextState();\n const numberOfSteps = state?.ids?.tab?.length || 0;\n const backgroundPosition: number = numberOfSteps > 0 ? 100 / (numberOfSteps * 2) : 0;\n const trackPosition: number =\n numberOfSteps > 0 ? ((100 / (numberOfSteps - 1)) * (state?.activeTabIndex || 0)) / 100 : 0;\n\n return (\n <div\n ref={mergeRefs(ref, stepListRef)}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME }))}\n >\n <div className={`${CLASSNAME}__steps`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n\n <div\n className={`${CLASSNAME}__background-bar`}\n style={{ left: `${backgroundPosition}%`, right: `${backgroundPosition}%` }}\n />\n\n <div\n className={`${CLASSNAME}__foreground-bar`}\n style={{\n left: `${backgroundPosition}%`,\n right: `${backgroundPosition}%`,\n transform: `scaleX(${trackPosition})`,\n }}\n />\n </div>\n );\n});\nProgressTracker.displayName = COMPONENT_NAME;\nProgressTracker.className = CLASSNAME;\nProgressTracker.defaultProps = DEFAULT_PROPS;\n","import React, { FocusEventHandler, forwardRef, KeyboardEventHandler, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon, InputHelper, InputLabel, Kind, Size } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiRadioboxBlank, mdiRadioboxMarked } from '@lumx/icons';\nimport { useTabProviderContext } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Whether the step should be in error state or not. */\n hasError?: boolean;\n /** Helper text. */\n helper?: string | null;\n /** Native id property. */\n id?: string;\n /** Whether the current step is active or not. */\n isActive?: boolean;\n /** Whether the current step is completed or not. */\n isComplete?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string | null;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStep';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepProps> = {};\n\n/**\n * ProgressTrackerStep component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStep: Comp<ProgressTrackerStepProps, HTMLButtonElement> = forwardRef((props, ref) => {\n const {\n className,\n disabled,\n hasError,\n helper,\n id,\n isActive: propIsActive,\n isComplete,\n isDisabled = disabled,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = props;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n const getIcon = (): string => {\n if (isComplete) {\n return mdiCheckCircle;\n }\n\n if (isActive) {\n return hasError ? mdiAlertCircle : mdiRadioboxMarked;\n }\n\n return mdiRadioboxBlank;\n };\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n hasError,\n isActive,\n isClickable: state && !isDisabled,\n isComplete,\n }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n <Icon className={`${CLASSNAME}__state`} icon={getIcon()} size={Size.s} />\n\n <InputLabel htmlFor={state?.tabId || ''} className={`${CLASSNAME}__label`}>\n {label}\n </InputLabel>\n\n {helper && (\n <InputHelper kind={hasError ? Kind.error : Kind.info} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </button>\n );\n});\nProgressTrackerStep.displayName = COMPONENT_NAME;\nProgressTrackerStep.className = CLASSNAME;\nProgressTrackerStep.defaultProps = DEFAULT_PROPS;\n","import { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps, handleBasicClasses } from '@lumx/react/utils';\n\nimport classNames from 'classnames';\nimport React, { forwardRef } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepPanelProps extends GenericProps {\n /** Native id property. */\n id?: string;\n /** Whether the step is active or not. */\n isActive?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStepPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-step-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepPanelProps> = {};\n\n/**\n * ProgressTrackerStepPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStepPanel: Comp<ProgressTrackerStepPanelProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n },\n);\nProgressTrackerStepPanel.displayName = COMPONENT_NAME;\nProgressTrackerStepPanel.className = CLASSNAME;\nProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","ProgressTrackerProvider","props","children","onChange","propState","useReducer","reducer","state","dispatch","useEffect","type","payload","activeTabIndex","activeStepIndex","Object","values","defaultProps","COMPONENT_NAME","CLASSNAME","getRootClassName","ProgressTracker","forwardRef","ref","ariaLabel","className","forwardedProps","stepListRef","React","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","useTabProviderContextState","numberOfSteps","ids","tab","length","backgroundPosition","trackPosition","mergeRefs","classNames","handleBasicClasses","prefix","left","right","transform","displayName","ProgressTrackerStep","disabled","hasError","helper","id","propIsActive","isActive","isComplete","isDisabled","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","getIcon","mdiCheckCircle","mdiAlertCircle","mdiRadioboxMarked","mdiRadioboxBlank","tabId","isClickable","tabPanelId","Size","s","Kind","error","info","CSS_PREFIX","ProgressTrackerStepPanel"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressTrackerStepPanel.js","sources":["../../../src/components/progress-tracker/ProgressTrackerProvider.tsx","../../../src/components/progress-tracker/ProgressTracker.tsx","../../../src/components/progress-tracker/ProgressTrackerStep.tsx","../../../src/components/progress-tracker/ProgressTrackerStepPanel.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from '../tabs/state';\n\nexport interface ProgressTrackerProviderProps {\n /** Active step index. */\n activeStepIndex?: number;\n /** ProgressTrackerProvider children. */\n children: ReactNode;\n /** Step panel children should not render if the step panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n /** Step change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<ProgressTrackerProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which steps can be defined and linked to their step panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel\n * components in the react tree.\n *\n * This works exactly as TabProvider so it uses TabProviderContext and tabs state.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const ProgressTrackerProvider: React.FC<ProgressTrackerProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({\n type: 'update',\n payload: {\n ...propState,\n activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex,\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nProgressTrackerProvider.defaultProps = DEFAULT_PROPS;\n","import React, { forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\nimport { useTabProviderContextState } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerProps extends GenericProps {\n /** ARIA label (purpose of the set of steps). */\n ['aria-label']: string;\n /** Step list. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTracker';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerProps> = {};\n\n/**\n * ProgressTracker component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTracker: Comp<ProgressTrackerProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { 'aria-label': ariaLabel, children, className, ...forwardedProps } = props;\n const stepListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: stepListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n const state = useTabProviderContextState();\n const numberOfSteps = state?.ids?.tab?.length || 0;\n const backgroundPosition: number = numberOfSteps > 0 ? 100 / (numberOfSteps * 2) : 0;\n const trackPosition: number =\n numberOfSteps > 0 ? ((100 / (numberOfSteps - 1)) * (state?.activeTabIndex || 0)) / 100 : 0;\n\n return (\n <div\n ref={mergeRefs(ref, stepListRef)}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME }))}\n >\n <div className={`${CLASSNAME}__steps`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n\n <div\n className={`${CLASSNAME}__background-bar`}\n style={{ left: `${backgroundPosition}%`, right: `${backgroundPosition}%` }}\n />\n\n <div\n className={`${CLASSNAME}__foreground-bar`}\n style={{\n left: `${backgroundPosition}%`,\n right: `${backgroundPosition}%`,\n transform: `scaleX(${trackPosition})`,\n }}\n />\n </div>\n );\n});\nProgressTracker.displayName = COMPONENT_NAME;\nProgressTracker.className = CLASSNAME;\nProgressTracker.defaultProps = DEFAULT_PROPS;\n","import React, { FocusEventHandler, forwardRef, KeyboardEventHandler, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon, InputHelper, InputLabel, Kind, Size } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiRadioboxBlank, mdiRadioboxMarked } from '@lumx/icons';\nimport { useTabProviderContext } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Whether the step should be in error state or not. */\n hasError?: boolean;\n /** Helper text. */\n helper?: string | null;\n /** Native id property. */\n id?: string;\n /** Whether the current step is active or not. */\n isActive?: boolean;\n /** Whether the current step is completed or not. */\n isComplete?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string | null;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStep';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepProps> = {};\n\n/**\n * ProgressTrackerStep component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStep: Comp<ProgressTrackerStepProps, HTMLButtonElement> = forwardRef((props, ref) => {\n const {\n className,\n disabled,\n hasError,\n helper,\n id,\n isActive: propIsActive,\n isComplete,\n isDisabled = disabled,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = props;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n const getIcon = (): string => {\n if (isComplete) {\n return mdiCheckCircle;\n }\n\n if (isActive) {\n return hasError ? mdiAlertCircle : mdiRadioboxMarked;\n }\n\n return mdiRadioboxBlank;\n };\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n hasError,\n isActive,\n isClickable: state && !isDisabled,\n isComplete,\n }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n <Icon className={`${CLASSNAME}__state`} icon={getIcon()} size={Size.s} />\n\n <InputLabel htmlFor={state?.tabId || ''} className={`${CLASSNAME}__label`}>\n {label}\n </InputLabel>\n\n {helper && (\n <InputHelper kind={hasError ? Kind.error : Kind.info} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </button>\n );\n});\nProgressTrackerStep.displayName = COMPONENT_NAME;\nProgressTrackerStep.className = CLASSNAME;\nProgressTrackerStep.defaultProps = DEFAULT_PROPS;\n","import { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps, handleBasicClasses } from '@lumx/react/utils';\n\nimport classNames from 'classnames';\nimport React, { forwardRef } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepPanelProps extends GenericProps {\n /** Native id property. */\n id?: string;\n /** Whether the step is active or not. */\n isActive?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStepPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-step-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepPanelProps> = {};\n\n/**\n * ProgressTrackerStepPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStepPanel: Comp<ProgressTrackerStepPanelProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n },\n);\nProgressTrackerStepPanel.displayName = COMPONENT_NAME;\nProgressTrackerStepPanel.className = CLASSNAME;\nProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","ProgressTrackerProvider","props","children","onChange","propState","useReducer","reducer","state","dispatch","useEffect","type","payload","activeTabIndex","activeStepIndex","Object","values","defaultProps","COMPONENT_NAME","CLASSNAME","getRootClassName","ProgressTracker","forwardRef","ref","ariaLabel","className","forwardedProps","stepListRef","React","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","useTabProviderContextState","numberOfSteps","ids","tab","length","backgroundPosition","trackPosition","mergeRefs","classNames","handleBasicClasses","prefix","left","right","transform","displayName","ProgressTrackerStep","disabled","hasError","helper","id","propIsActive","isActive","isComplete","isDisabled","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","getIcon","mdiCheckCircle","mdiAlertCircle","mdiRadioboxMarked","mdiRadioboxBlank","tabId","isClickable","tabPanelId","Size","s","Kind","error","info","CSS_PREFIX","ProgressTrackerStepPanel"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { d as _slicedToArray, c as _extends, b as _objectWithoutProperties, _ as
2
2
  import { Kind, Theme, Size, Emphasis } from './components.js';
3
3
  import React, { useState, useEffect, useMemo, useRef, useCallback, forwardRef } from 'react';
4
4
  import { c as classnames, h as handleBasicClasses, g as getRootClassName } from './getRootClassName.js';
5
- import { b as mdiCheckCircle, c as mdiAlertCircle, n as mdiCloseCircle, o as mdiMenuDown, d as mdiClose } from './mdi.js';
5
+ import { I as Icon, b as mdiCheckCircle, c as mdiAlertCircle, n as mdiCloseCircle, o as mdiMenuDown, d as mdiClose } from './Icon2.js';
6
6
  import { u as uid } from '../index2.js';
7
7
  import isEmpty from 'lodash/isEmpty';
8
8
  import { P as Placement } from './Popover2.js';
@@ -10,7 +10,6 @@ import { m as mergeRefs } from './mergeRefs.js';
10
10
  import { I as IconButton } from './IconButton.js';
11
11
  import { C as Chip } from './Chip2.js';
12
12
  import { D as Dropdown } from './Dropdown2.js';
13
- import { I as Icon } from './Icon2.js';
14
13
  import { I as InputHelper } from './InputHelper.js';
15
14
  import { I as InputLabel } from './InputLabel.js';
16
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMultiple.js","sources":["../../../src/hooks/useListenFocus.tsx","../../../src/components/select/constants.ts","../../../src/components/select/WithSelectContext.tsx","../../../src/components/select/Select.tsx","../../../src/components/select/SelectMultiple.tsx"],"sourcesContent":["import { RefObject, useEffect, useState } from 'react';\n\n/**\n * Listen on element focus to store the focus status.\n */\nexport function useListenFocus(ref: RefObject<HTMLElement>) {\n const [isFocus, setFocus] = useState(false);\n\n useEffect(() => {\n const { current: element } = ref;\n if (!element) {\n return undefined;\n }\n\n const onFocus = () => setFocus(true);\n const onBlur = () => setFocus(false);\n element.addEventListener('focus', onFocus);\n element.addEventListener('blur', onBlur);\n return () => {\n element.removeEventListener('focus', onFocus);\n element.removeEventListener('blur', onBlur);\n };\n }, [ref, setFocus]);\n\n return isFocus;\n}\n","import { IconButtonProps } from '@lumx/react';\nimport { Theme } from '@lumx/react/components';\nimport { GenericProps, ValueOf } from '@lumx/react/utils';\nimport { ReactNode, SyntheticEvent } from 'react';\n\n/**\n * Select variants.\n */\nexport const SelectVariant = { input: 'input', chip: 'chip' } as const;\nexport type SelectVariant = ValueOf<typeof SelectVariant>;\n\nexport interface CoreSelectProps extends GenericProps {\n /** Props to pass to the clear button (minus those already set by the Select props). If not specified, the button won't be displayed. */\n clearButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Whether the select (input variant) is displayed with error style or not. */\n hasError?: boolean;\n /** Error message. */\n error?: string | ReactNode;\n /** Helper text. */\n helper?: string;\n /** Whether the select should close on click. */\n closeOnClick?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the select (input variant) is displayed with valid style or not. */\n isValid?: boolean;\n /** Label text. */\n label?: string;\n /** Placeholder input text. */\n placeholder?: string;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Select variant. */\n variant?: SelectVariant;\n /** On clear callback. */\n onClear?(event: SyntheticEvent, value?: string): void;\n /** On blur callback. */\n onBlur?(): void;\n /** On filter text change callback (with 500ms debounce). */\n onFilter?(): void;\n /** On input click callback (can be used for dropdown toggle). */\n onInputClick?(): void;\n /** On dropdown close callback. */\n onDropdownClose?(): void;\n /** On scroll end callback. */\n onInfiniteScroll?(): void;\n /** Render value function. Default: Renders the value as a string. */\n selectedValueRender?(choice: string): ReactNode | string;\n}\n","import React, { Ref, useCallback, useMemo, useRef } from 'react';\n\nimport classNames from 'classnames';\nimport { uid } from 'uid';\n\nimport { Kind, Theme } from '@lumx/react/components';\nimport { Dropdown } from '@lumx/react/components/dropdown/Dropdown';\nimport { InputHelper } from '@lumx/react/components/input-helper/InputHelper';\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useListenFocus } from '@lumx/react/hooks/useListenFocus';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nexport const DEFAULT_PROPS: Partial<CoreSelectProps> = {\n theme: Theme.light,\n variant: SelectVariant.input,\n};\n\nexport const WithSelectContext = (\n SelectElement: React.FC<any>,\n {\n children,\n className,\n isMultiple,\n closeOnClick = !isMultiple,\n disabled,\n error,\n hasError,\n helper,\n id,\n isDisabled = disabled,\n isEmpty,\n isOpen,\n isRequired,\n isValid,\n label,\n onClear,\n onDropdownClose,\n onInfiniteScroll,\n onInputClick,\n placeholder,\n theme = DEFAULT_PROPS.theme,\n value,\n variant = DEFAULT_PROPS.variant,\n ...forwardedProps\n }: CoreSelectProps,\n ref: Ref<HTMLDivElement>,\n): React.ReactElement => {\n const selectId = useMemo(() => id || `select-${uid()}`, [id]);\n const anchorRef = useRef<HTMLElement>(null);\n const selectRef = useRef<HTMLDivElement>(null);\n const isFocus = useListenFocus(anchorRef);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if ((evt.key === 'Enter' || evt.key === ' ' || evt.key === 'ArrowDown') && onInputClick) {\n evt.preventDefault();\n onInputClick();\n }\n },\n [onInputClick],\n );\n\n const onClose = () => {\n if (onDropdownClose) {\n onDropdownClose();\n }\n anchorRef?.current?.blur();\n };\n\n return (\n <div\n ref={mergeRefs(ref, selectRef)}\n className={classNames(\n className,\n handleBasicClasses({\n hasError,\n hasLabel: Boolean(label),\n hasPlaceholder: Boolean(placeholder),\n hasValue: !isEmpty,\n isDisabled,\n isEmpty,\n isFocus,\n isOpen,\n isValid,\n prefix: CLASSNAME,\n theme: theme === Theme.light ? Theme.light : Theme.dark,\n }),\n )}\n >\n <SelectElement\n {...forwardedProps}\n anchorRef={anchorRef}\n aria-disabled={isDisabled}\n handleKeyboardNav={handleKeyboardNav}\n hasError={hasError}\n isDisabled={isDisabled}\n isEmpty={isEmpty}\n isRequired={isRequired}\n isValid={isValid}\n label={label}\n placeholder={placeholder}\n id={selectId}\n theme={theme}\n value={value}\n variant={variant}\n onClear={onClear}\n onInputClick={onInputClick}\n />\n <Dropdown\n anchorRef={anchorRef}\n closeOnClick={closeOnClick}\n closeOnClickAway\n closeOnEscape\n isOpen={!!isOpen}\n placement={Placement.BOTTOM_START}\n onClose={onClose}\n onInfiniteScroll={onInfiniteScroll}\n >\n {children}\n </Dropdown>\n {hasError && error && (\n <InputHelper className={`${CLASSNAME}__helper`} kind={Kind.error} theme={theme}>\n {error}\n </InputHelper>\n )}\n {helper && (\n <InputHelper className={`${CLASSNAME}__helper`} theme={theme}>\n {helper}\n </InputHelper>\n )}\n </div>\n );\n};\n","import React, { forwardRef, RefObject } from 'react';\n\nimport classNames from 'classnames';\nimport lodashIsEmpty from 'lodash/isEmpty';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Emphasis, Size } from '@lumx/react/components';\nimport { IconButton } from '@lumx/react/components/button/IconButton';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectProps extends CoreSelectProps {\n /** Selected value. */\n value: string;\n}\n\nexport { SelectVariant };\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectProps> = {\n selectedValueRender: (choice) => choice,\n};\n\nconst stopPropagation = (evt: Event) => evt.stopPropagation();\n\n/**\n * Select component.\n */\nconst SelectField: React.FC<SelectProps> = ({\n anchorRef,\n clearButtonProps,\n handleKeyboardNav,\n hasError,\n hasInputClear,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedValueRender,\n theme,\n value,\n variant,\n ...forwardedProps\n}) => {\n return (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n {...forwardedProps}\n >\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n isEmpty && placeholder && `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n\n {isEmpty && placeholder && <span>{placeholder}</span>}\n </div>\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n {hasInputClear && clearButtonProps && (\n <IconButton\n {...clearButtonProps}\n className={`${CLASSNAME}__input-clear`}\n icon={mdiCloseCircle}\n emphasis={Emphasis.low}\n size={Size.s}\n theme={theme}\n onClick={onClear}\n onKeyDown={stopPropagation}\n />\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n {...forwardedProps}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n </Chip>\n )}\n </>\n );\n};\n\n/**\n * Select component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Select: Comp<SelectProps, HTMLDivElement> = forwardRef((props, ref) => {\n const isEmpty = lodashIsEmpty(props.value);\n const hasInputClear = props.onClear && props.clearButtonProps && !isEmpty;\n\n return WithSelectContext(\n SelectField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasInputClear,\n hasUnique: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n hasInputClear,\n isEmpty,\n },\n ref,\n );\n});\nSelect.displayName = COMPONENT_NAME;\nSelect.className = CLASSNAME;\nSelect.defaultProps = DEFAULT_PROPS;\nSelect.className = CLASSNAME;\n","import React, { forwardRef, ReactNode, RefObject, SyntheticEvent } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiClose, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Size } from '@lumx/react/components';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { ChipGroup } from '@lumx/react/components/chip/ChipGroup';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectMultipleProps extends CoreSelectProps {\n /** Selected values. */\n value: string[];\n /** Selected value render function. Default: Renders the value inside of a Chip. */\n selectedChipRender?(\n choice: string,\n index: number,\n onClear?: (event: SyntheticEvent, choice: string) => void,\n isDisabled?: boolean,\n theme?: any,\n ): ReactNode | string;\n}\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectMultipleProps> = {\n selectedChipRender(choice, index, onClear, isDisabled?, theme?) {\n const onClick = (event: React.MouseEvent) => onClear && onClear(event, choice);\n return (\n <Chip\n key={index}\n after={onClear && <Icon icon={mdiClose} size={Size.xxs} />}\n isDisabled={isDisabled}\n size={Size.s}\n onAfterClick={onClick}\n onClick={onClick}\n theme={theme}\n >\n {choice}\n </Chip>\n );\n },\n selectedValueRender: (choice) => choice,\n};\n\nexport const SelectMultipleField: React.FC<SelectMultipleProps> = ({\n anchorRef,\n handleKeyboardNav,\n hasError,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedChipRender,\n selectedValueRender,\n theme,\n value,\n variant,\n}) => (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n >\n <div className={`${CLASSNAME}__chips`}>\n {!isEmpty &&\n value.map((val, index) => selectedChipRender?.(val, index, onClear, isDisabled, theme))}\n </div>\n\n {isEmpty && placeholder && (\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n <span>{placeholder}</span>\n </div>\n )}\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && (\n <span>\n <span>{selectedValueRender?.(value[0])}</span>\n\n {value.length > 1 && <span>&nbsp;+{value.length - 1}</span>}\n </span>\n )}\n </Chip>\n )}\n </>\n);\n\n/**\n * SelectMultiple component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SelectMultiple: Comp<SelectMultipleProps, HTMLDivElement> = forwardRef((props, ref) => {\n return WithSelectContext(\n SelectMultipleField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasMultiple: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n isEmpty: props.value.length === 0,\n isMultiple: true,\n },\n ref,\n );\n});\nSelectMultiple.displayName = COMPONENT_NAME;\nSelectMultiple.className = CLASSNAME;\nSelectMultiple.defaultProps = DEFAULT_PROPS;\n"],"names":["useListenFocus","ref","useState","isFocus","setFocus","useEffect","element","current","undefined","onFocus","onBlur","addEventListener","removeEventListener","SelectVariant","input","chip","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","variant","WithSelectContext","SelectElement","children","className","isMultiple","closeOnClick","disabled","error","hasError","helper","id","isDisabled","isEmpty","isOpen","isRequired","isValid","label","onClear","onDropdownClose","onInfiniteScroll","onInputClick","placeholder","value","forwardedProps","selectId","useMemo","uid","anchorRef","useRef","selectRef","handleKeyboardNav","useCallback","evt","key","preventDefault","onClose","blur","mergeRefs","classNames","handleBasicClasses","hasLabel","Boolean","hasPlaceholder","hasValue","prefix","dark","Placement","BOTTOM_START","Kind","selectedValueRender","choice","stopPropagation","SelectField","clearButtonProps","hasInputClear","mdiCheckCircle","mdiAlertCircle","Size","xxs","mdiCloseCircle","Emphasis","low","s","mdiMenuDown","Select","forwardRef","props","lodashIsEmpty","hasUnique","displayName","defaultProps","selectedChipRender","index","onClick","event","mdiClose","SelectMultipleField","map","val","length","SelectMultiple","hasMultiple"],"mappings":"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"}
1
+ {"version":3,"file":"SelectMultiple.js","sources":["../../../src/hooks/useListenFocus.tsx","../../../src/components/select/constants.ts","../../../src/components/select/WithSelectContext.tsx","../../../src/components/select/Select.tsx","../../../src/components/select/SelectMultiple.tsx"],"sourcesContent":["import { RefObject, useEffect, useState } from 'react';\n\n/**\n * Listen on element focus to store the focus status.\n */\nexport function useListenFocus(ref: RefObject<HTMLElement>) {\n const [isFocus, setFocus] = useState(false);\n\n useEffect(() => {\n const { current: element } = ref;\n if (!element) {\n return undefined;\n }\n\n const onFocus = () => setFocus(true);\n const onBlur = () => setFocus(false);\n element.addEventListener('focus', onFocus);\n element.addEventListener('blur', onBlur);\n return () => {\n element.removeEventListener('focus', onFocus);\n element.removeEventListener('blur', onBlur);\n };\n }, [ref, setFocus]);\n\n return isFocus;\n}\n","import { IconButtonProps } from '@lumx/react';\nimport { Theme } from '@lumx/react/components';\nimport { GenericProps, ValueOf } from '@lumx/react/utils';\nimport { ReactNode, SyntheticEvent } from 'react';\n\n/**\n * Select variants.\n */\nexport const SelectVariant = { input: 'input', chip: 'chip' } as const;\nexport type SelectVariant = ValueOf<typeof SelectVariant>;\n\nexport interface CoreSelectProps extends GenericProps {\n /** Props to pass to the clear button (minus those already set by the Select props). If not specified, the button won't be displayed. */\n clearButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Whether the select (input variant) is displayed with error style or not. */\n hasError?: boolean;\n /** Error message. */\n error?: string | ReactNode;\n /** Helper text. */\n helper?: string;\n /** Whether the select should close on click. */\n closeOnClick?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the select (input variant) is displayed with valid style or not. */\n isValid?: boolean;\n /** Label text. */\n label?: string;\n /** Placeholder input text. */\n placeholder?: string;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Select variant. */\n variant?: SelectVariant;\n /** On clear callback. */\n onClear?(event: SyntheticEvent, value?: string): void;\n /** On blur callback. */\n onBlur?(): void;\n /** On filter text change callback (with 500ms debounce). */\n onFilter?(): void;\n /** On input click callback (can be used for dropdown toggle). */\n onInputClick?(): void;\n /** On dropdown close callback. */\n onDropdownClose?(): void;\n /** On scroll end callback. */\n onInfiniteScroll?(): void;\n /** Render value function. Default: Renders the value as a string. */\n selectedValueRender?(choice: string): ReactNode | string;\n}\n","import React, { Ref, useCallback, useMemo, useRef } from 'react';\n\nimport classNames from 'classnames';\nimport { uid } from 'uid';\n\nimport { Kind, Theme } from '@lumx/react/components';\nimport { Dropdown } from '@lumx/react/components/dropdown/Dropdown';\nimport { InputHelper } from '@lumx/react/components/input-helper/InputHelper';\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useListenFocus } from '@lumx/react/hooks/useListenFocus';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nexport const DEFAULT_PROPS: Partial<CoreSelectProps> = {\n theme: Theme.light,\n variant: SelectVariant.input,\n};\n\nexport const WithSelectContext = (\n SelectElement: React.FC<any>,\n {\n children,\n className,\n isMultiple,\n closeOnClick = !isMultiple,\n disabled,\n error,\n hasError,\n helper,\n id,\n isDisabled = disabled,\n isEmpty,\n isOpen,\n isRequired,\n isValid,\n label,\n onClear,\n onDropdownClose,\n onInfiniteScroll,\n onInputClick,\n placeholder,\n theme = DEFAULT_PROPS.theme,\n value,\n variant = DEFAULT_PROPS.variant,\n ...forwardedProps\n }: CoreSelectProps,\n ref: Ref<HTMLDivElement>,\n): React.ReactElement => {\n const selectId = useMemo(() => id || `select-${uid()}`, [id]);\n const anchorRef = useRef<HTMLElement>(null);\n const selectRef = useRef<HTMLDivElement>(null);\n const isFocus = useListenFocus(anchorRef);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if ((evt.key === 'Enter' || evt.key === ' ' || evt.key === 'ArrowDown') && onInputClick) {\n evt.preventDefault();\n onInputClick();\n }\n },\n [onInputClick],\n );\n\n const onClose = () => {\n if (onDropdownClose) {\n onDropdownClose();\n }\n anchorRef?.current?.blur();\n };\n\n return (\n <div\n ref={mergeRefs(ref, selectRef)}\n className={classNames(\n className,\n handleBasicClasses({\n hasError,\n hasLabel: Boolean(label),\n hasPlaceholder: Boolean(placeholder),\n hasValue: !isEmpty,\n isDisabled,\n isEmpty,\n isFocus,\n isOpen,\n isValid,\n prefix: CLASSNAME,\n theme: theme === Theme.light ? Theme.light : Theme.dark,\n }),\n )}\n >\n <SelectElement\n {...forwardedProps}\n anchorRef={anchorRef}\n aria-disabled={isDisabled}\n handleKeyboardNav={handleKeyboardNav}\n hasError={hasError}\n isDisabled={isDisabled}\n isEmpty={isEmpty}\n isRequired={isRequired}\n isValid={isValid}\n label={label}\n placeholder={placeholder}\n id={selectId}\n theme={theme}\n value={value}\n variant={variant}\n onClear={onClear}\n onInputClick={onInputClick}\n />\n <Dropdown\n anchorRef={anchorRef}\n closeOnClick={closeOnClick}\n closeOnClickAway\n closeOnEscape\n isOpen={!!isOpen}\n placement={Placement.BOTTOM_START}\n onClose={onClose}\n onInfiniteScroll={onInfiniteScroll}\n >\n {children}\n </Dropdown>\n {hasError && error && (\n <InputHelper className={`${CLASSNAME}__helper`} kind={Kind.error} theme={theme}>\n {error}\n </InputHelper>\n )}\n {helper && (\n <InputHelper className={`${CLASSNAME}__helper`} theme={theme}>\n {helper}\n </InputHelper>\n )}\n </div>\n );\n};\n","import React, { forwardRef, RefObject } from 'react';\n\nimport classNames from 'classnames';\nimport lodashIsEmpty from 'lodash/isEmpty';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Emphasis, Size } from '@lumx/react/components';\nimport { IconButton } from '@lumx/react/components/button/IconButton';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectProps extends CoreSelectProps {\n /** Selected value. */\n value: string;\n}\n\nexport { SelectVariant };\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectProps> = {\n selectedValueRender: (choice) => choice,\n};\n\nconst stopPropagation = (evt: Event) => evt.stopPropagation();\n\n/**\n * Select component.\n */\nconst SelectField: React.FC<SelectProps> = ({\n anchorRef,\n clearButtonProps,\n handleKeyboardNav,\n hasError,\n hasInputClear,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedValueRender,\n theme,\n value,\n variant,\n ...forwardedProps\n}) => {\n return (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n {...forwardedProps}\n >\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n isEmpty && placeholder && `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n\n {isEmpty && placeholder && <span>{placeholder}</span>}\n </div>\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n {hasInputClear && clearButtonProps && (\n <IconButton\n {...clearButtonProps}\n className={`${CLASSNAME}__input-clear`}\n icon={mdiCloseCircle}\n emphasis={Emphasis.low}\n size={Size.s}\n theme={theme}\n onClick={onClear}\n onKeyDown={stopPropagation}\n />\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n {...forwardedProps}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n </Chip>\n )}\n </>\n );\n};\n\n/**\n * Select component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Select: Comp<SelectProps, HTMLDivElement> = forwardRef((props, ref) => {\n const isEmpty = lodashIsEmpty(props.value);\n const hasInputClear = props.onClear && props.clearButtonProps && !isEmpty;\n\n return WithSelectContext(\n SelectField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasInputClear,\n hasUnique: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n hasInputClear,\n isEmpty,\n },\n ref,\n );\n});\nSelect.displayName = COMPONENT_NAME;\nSelect.className = CLASSNAME;\nSelect.defaultProps = DEFAULT_PROPS;\nSelect.className = CLASSNAME;\n","import React, { forwardRef, ReactNode, RefObject, SyntheticEvent } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiClose, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Size } from '@lumx/react/components';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { ChipGroup } from '@lumx/react/components/chip/ChipGroup';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectMultipleProps extends CoreSelectProps {\n /** Selected values. */\n value: string[];\n /** Selected value render function. Default: Renders the value inside of a Chip. */\n selectedChipRender?(\n choice: string,\n index: number,\n onClear?: (event: SyntheticEvent, choice: string) => void,\n isDisabled?: boolean,\n theme?: any,\n ): ReactNode | string;\n}\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectMultipleProps> = {\n selectedChipRender(choice, index, onClear, isDisabled?, theme?) {\n const onClick = (event: React.MouseEvent) => onClear && onClear(event, choice);\n return (\n <Chip\n key={index}\n after={onClear && <Icon icon={mdiClose} size={Size.xxs} />}\n isDisabled={isDisabled}\n size={Size.s}\n onAfterClick={onClick}\n onClick={onClick}\n theme={theme}\n >\n {choice}\n </Chip>\n );\n },\n selectedValueRender: (choice) => choice,\n};\n\nexport const SelectMultipleField: React.FC<SelectMultipleProps> = ({\n anchorRef,\n handleKeyboardNav,\n hasError,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedChipRender,\n selectedValueRender,\n theme,\n value,\n variant,\n}) => (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n >\n <div className={`${CLASSNAME}__chips`}>\n {!isEmpty &&\n value.map((val, index) => selectedChipRender?.(val, index, onClear, isDisabled, theme))}\n </div>\n\n {isEmpty && placeholder && (\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n <span>{placeholder}</span>\n </div>\n )}\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && (\n <span>\n <span>{selectedValueRender?.(value[0])}</span>\n\n {value.length > 1 && <span>&nbsp;+{value.length - 1}</span>}\n </span>\n )}\n </Chip>\n )}\n </>\n);\n\n/**\n * SelectMultiple component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SelectMultiple: Comp<SelectMultipleProps, HTMLDivElement> = forwardRef((props, ref) => {\n return WithSelectContext(\n SelectMultipleField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasMultiple: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n isEmpty: props.value.length === 0,\n isMultiple: true,\n },\n ref,\n );\n});\nSelectMultiple.displayName = COMPONENT_NAME;\nSelectMultiple.className = CLASSNAME;\nSelectMultiple.defaultProps = DEFAULT_PROPS;\n"],"names":["useListenFocus","ref","useState","isFocus","setFocus","useEffect","element","current","undefined","onFocus","onBlur","addEventListener","removeEventListener","SelectVariant","input","chip","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","variant","WithSelectContext","SelectElement","children","className","isMultiple","closeOnClick","disabled","error","hasError","helper","id","isDisabled","isEmpty","isOpen","isRequired","isValid","label","onClear","onDropdownClose","onInfiniteScroll","onInputClick","placeholder","value","forwardedProps","selectId","useMemo","uid","anchorRef","useRef","selectRef","handleKeyboardNav","useCallback","evt","key","preventDefault","onClose","blur","mergeRefs","classNames","handleBasicClasses","hasLabel","Boolean","hasPlaceholder","hasValue","prefix","dark","Placement","BOTTOM_START","Kind","selectedValueRender","choice","stopPropagation","SelectField","clearButtonProps","hasInputClear","mdiCheckCircle","mdiAlertCircle","Size","xxs","mdiCloseCircle","Emphasis","low","s","mdiMenuDown","Select","forwardRef","props","lodashIsEmpty","hasUnique","displayName","defaultProps","selectedChipRender","index","onClick","event","mdiClose","SelectMultipleField","map","val","length","SelectMultiple","hasMultiple"],"mappings":"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"}
@@ -2,12 +2,11 @@ import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } fro
2
2
  import { Theme, Size, Emphasis } from './components.js';
3
3
  import React, { forwardRef, Children } from 'react';
4
4
  import { g as getRootClassName, c as classnames, h as handleBasicClasses, o as onEnterPressed } from './getRootClassName.js';
5
- import { i as mdiChevronUp, j as mdiChevronDown } from './mdi.js';
5
+ import { I as Icon, i as mdiChevronUp, j as mdiChevronDown } from './Icon2.js';
6
6
  import isEmpty from 'lodash/isEmpty';
7
7
  import { i as isComponent } from './type.js';
8
8
  import { r as renderLink } from './renderLink.js';
9
9
  import { I as IconButton } from './IconButton.js';
10
- import { I as Icon } from './Icon2.js';
11
10
 
12
11
  /**
13
12
  * Defines the props of the component.
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationItem.js","sources":["../../../src/components/side-navigation/SideNavigation.tsx","../../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, isComponent } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps {\n /** SideNavigationItem elements. */\n children: ReactNode;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation: Comp<SideNavigationProps, HTMLUListElement> = forwardRef((props, ref) => {\n const { children, className, theme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n theme === Theme.dark && 'lumx-color-font-light-N',\n handleBasicClasses({ prefix: CLASSNAME }),\n )}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\n\nimport {\n Callback,\n Comp,\n GenericProps,\n getRootClassName,\n handleBasicClasses,\n isComponent,\n onEnterPressed,\n} from '@lumx/react/utils';\nimport { renderLink } from '@lumx/react/utils/renderLink';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n {renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n onClick,\n tabIndex: 0,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n )}\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n />\n </div>\n ) : (\n renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n tabIndex: 0,\n onClick,\n onKeyDown: onClick ? onEnterPressed(onClick as Callback) : undefined,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n ),\n )\n )}\n\n {hasContent && isOpen && <ul className={`${CLASSNAME}__children`}>{content}</ul>}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","classNames","Theme","dark","handleBasicClasses","prefix","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","renderLink","tabIndex","Size","xs","mdiChevronUp","mdiChevronDown","m","low","onKeyDown","onEnterPressed","undefined","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"SideNavigationItem.js","sources":["../../../src/components/side-navigation/SideNavigation.tsx","../../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, isComponent } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps {\n /** SideNavigationItem elements. */\n children: ReactNode;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation: Comp<SideNavigationProps, HTMLUListElement> = forwardRef((props, ref) => {\n const { children, className, theme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n theme === Theme.dark && 'lumx-color-font-light-N',\n handleBasicClasses({ prefix: CLASSNAME }),\n )}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\n\nimport {\n Callback,\n Comp,\n GenericProps,\n getRootClassName,\n handleBasicClasses,\n isComponent,\n onEnterPressed,\n} from '@lumx/react/utils';\nimport { renderLink } from '@lumx/react/utils/renderLink';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n {renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n onClick,\n tabIndex: 0,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n )}\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n />\n </div>\n ) : (\n renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n tabIndex: 0,\n onClick,\n onKeyDown: onClick ? onEnterPressed(onClick as Callback) : undefined,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n ),\n )\n )}\n\n {hasContent && isOpen && <ul className={`${CLASSNAME}__children`}>{content}</ul>}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","classNames","Theme","dark","handleBasicClasses","prefix","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","renderLink","tabIndex","Size","xs","mdiChevronUp","mdiChevronDown","m","low","onKeyDown","onEnterPressed","undefined","defaultProps"],"mappings":"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"}