@elliemae/ds-left-navigation 3.11.0-next.1 → 3.11.0-next.3

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 (139) hide show
  1. package/dist/cjs/LeftNavigationContext.js +2 -1
  2. package/dist/cjs/LeftNavigationContext.js.map +2 -2
  3. package/dist/cjs/common/getItemBackgroundStyle.js.map +2 -2
  4. package/dist/cjs/common/getLeftBorderStyle.js +1 -5
  5. package/dist/cjs/common/getLeftBorderStyle.js.map +2 -2
  6. package/dist/cjs/constants/constants.js +65 -0
  7. package/dist/cjs/constants/constants.js.map +7 -0
  8. package/dist/cjs/{outOfTheBox/ItemLink/styled.js → constants/index.js} +5 -17
  9. package/dist/cjs/constants/index.js.map +7 -0
  10. package/dist/cjs/exported-related/ItemRenderer/index.js +36 -44
  11. package/dist/cjs/exported-related/ItemRenderer/index.js.map +3 -3
  12. package/dist/cjs/exported-related/ItemRenderer/styled.js +24 -9
  13. package/dist/cjs/exported-related/ItemRenderer/styled.js.map +2 -2
  14. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +1 -1
  15. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js.map +2 -2
  16. package/dist/cjs/exported-related/Notifications/index.js +9 -5
  17. package/dist/cjs/exported-related/Notifications/index.js.map +2 -2
  18. package/dist/cjs/index.d.js.map +1 -1
  19. package/dist/cjs/index.js +7 -4
  20. package/dist/cjs/index.js.map +3 -3
  21. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js +11 -12
  22. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js.map +3 -3
  23. package/dist/cjs/outOfTheBox/ItemHeader/index.js +8 -10
  24. package/dist/cjs/outOfTheBox/ItemHeader/index.js.map +3 -3
  25. package/dist/cjs/outOfTheBox/ItemLink/index.js +8 -10
  26. package/dist/cjs/outOfTheBox/ItemLink/index.js.map +3 -3
  27. package/dist/cjs/outOfTheBox/ItemSection/index.js +4 -5
  28. package/dist/cjs/outOfTheBox/ItemSection/index.js.map +3 -3
  29. package/dist/cjs/outOfTheBox/ItemSeparator/index.js +2 -1
  30. package/dist/cjs/outOfTheBox/ItemSeparator/index.js.map +2 -2
  31. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js +8 -9
  32. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js.map +3 -3
  33. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js +1 -1
  34. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js.map +1 -1
  35. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +12 -12
  36. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +3 -3
  37. package/dist/cjs/outOfTheBox/ItemWithDate/index.js +7 -10
  38. package/dist/cjs/outOfTheBox/ItemWithDate/index.js.map +3 -3
  39. package/dist/cjs/outOfTheBox/styled.js +122 -0
  40. package/dist/cjs/outOfTheBox/styled.js.map +7 -0
  41. package/dist/cjs/parts/LeftNavContent/index.js +14 -7
  42. package/dist/cjs/parts/LeftNavContent/index.js.map +2 -2
  43. package/dist/cjs/parts/LeftNavContent/styled.js +32 -43
  44. package/dist/cjs/parts/LeftNavContent/styled.js.map +2 -2
  45. package/dist/cjs/parts/LeftNavFooterItem/index.js +54 -67
  46. package/dist/cjs/parts/LeftNavFooterItem/index.js.map +3 -3
  47. package/dist/cjs/parts/LeftNavFooterItem/styled.js +22 -15
  48. package/dist/cjs/parts/LeftNavFooterItem/styled.js.map +2 -2
  49. package/dist/cjs/parts/LeftNavLoading/index.js +2 -1
  50. package/dist/cjs/parts/LeftNavLoading/index.js.map +2 -2
  51. package/dist/cjs/parts/OutOfTheBoxMapItem.js +2 -0
  52. package/dist/cjs/parts/OutOfTheBoxMapItem.js.map +2 -2
  53. package/dist/cjs/prop-types.js +0 -1
  54. package/dist/cjs/prop-types.js.map +2 -2
  55. package/dist/esm/LeftNavigationContext.js +2 -1
  56. package/dist/esm/LeftNavigationContext.js.map +2 -2
  57. package/dist/esm/common/getItemBackgroundStyle.js.map +2 -2
  58. package/dist/esm/common/getLeftBorderStyle.js +1 -5
  59. package/dist/esm/common/getLeftBorderStyle.js.map +2 -2
  60. package/dist/esm/constants/constants.js +39 -0
  61. package/dist/esm/constants/constants.js.map +7 -0
  62. package/dist/esm/constants/index.js +3 -0
  63. package/dist/esm/constants/index.js.map +7 -0
  64. package/dist/esm/exported-related/ItemRenderer/index.js +37 -45
  65. package/dist/esm/exported-related/ItemRenderer/index.js.map +2 -2
  66. package/dist/esm/exported-related/ItemRenderer/styled.js +24 -9
  67. package/dist/esm/exported-related/ItemRenderer/styled.js.map +2 -2
  68. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +1 -1
  69. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js.map +2 -2
  70. package/dist/esm/exported-related/Notifications/index.js +9 -5
  71. package/dist/esm/exported-related/Notifications/index.js.map +2 -2
  72. package/dist/esm/index.js +6 -3
  73. package/dist/esm/index.js.map +2 -2
  74. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js +11 -12
  75. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js.map +2 -2
  76. package/dist/esm/outOfTheBox/ItemHeader/index.js +14 -10
  77. package/dist/esm/outOfTheBox/ItemHeader/index.js.map +3 -3
  78. package/dist/esm/outOfTheBox/ItemLink/index.js +8 -10
  79. package/dist/esm/outOfTheBox/ItemLink/index.js.map +2 -2
  80. package/dist/esm/outOfTheBox/ItemSection/index.js +10 -5
  81. package/dist/esm/outOfTheBox/ItemSection/index.js.map +2 -2
  82. package/dist/esm/outOfTheBox/ItemSeparator/index.js +2 -1
  83. package/dist/esm/outOfTheBox/ItemSeparator/index.js.map +2 -2
  84. package/dist/esm/outOfTheBox/ItemSubmenu/index.js +14 -9
  85. package/dist/esm/outOfTheBox/ItemSubmenu/index.js.map +3 -3
  86. package/dist/esm/outOfTheBox/ItemTextLabel/index.js +1 -1
  87. package/dist/esm/outOfTheBox/ItemTextLabel/index.js.map +1 -1
  88. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +12 -12
  89. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +2 -2
  90. package/dist/esm/outOfTheBox/ItemWithDate/index.js +7 -10
  91. package/dist/esm/outOfTheBox/ItemWithDate/index.js.map +2 -2
  92. package/dist/esm/outOfTheBox/styled.js +96 -0
  93. package/dist/esm/outOfTheBox/styled.js.map +7 -0
  94. package/dist/esm/parts/LeftNavContent/index.js +14 -8
  95. package/dist/esm/parts/LeftNavContent/index.js.map +2 -2
  96. package/dist/esm/parts/LeftNavContent/styled.js +33 -48
  97. package/dist/esm/parts/LeftNavContent/styled.js.map +2 -2
  98. package/dist/esm/parts/LeftNavFooterItem/index.js +57 -71
  99. package/dist/esm/parts/LeftNavFooterItem/index.js.map +2 -2
  100. package/dist/esm/parts/LeftNavFooterItem/styled.js +22 -15
  101. package/dist/esm/parts/LeftNavFooterItem/styled.js.map +2 -2
  102. package/dist/esm/parts/LeftNavLoading/index.js +2 -1
  103. package/dist/esm/parts/LeftNavLoading/index.js.map +2 -2
  104. package/dist/esm/parts/OutOfTheBoxMapItem.js +2 -0
  105. package/dist/esm/parts/OutOfTheBoxMapItem.js.map +2 -2
  106. package/dist/esm/prop-types.js +0 -1
  107. package/dist/esm/prop-types.js.map +2 -2
  108. package/package.json +8 -8
  109. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +0 -46
  110. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/styled.js.map +0 -7
  111. package/dist/cjs/outOfTheBox/ItemHeader/styled.js +0 -46
  112. package/dist/cjs/outOfTheBox/ItemHeader/styled.js.map +0 -7
  113. package/dist/cjs/outOfTheBox/ItemLink/styled.js.map +0 -7
  114. package/dist/cjs/outOfTheBox/ItemSection/styled.js +0 -50
  115. package/dist/cjs/outOfTheBox/ItemSection/styled.js.map +0 -7
  116. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js +0 -46
  117. package/dist/cjs/outOfTheBox/ItemSubmenu/styled.js.map +0 -7
  118. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js +0 -40
  119. package/dist/cjs/outOfTheBox/ItemTextLabel/styled.js.map +0 -7
  120. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -46
  121. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +0 -7
  122. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js +0 -46
  123. package/dist/cjs/outOfTheBox/ItemWithDate/styled.js.map +0 -7
  124. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js +0 -20
  125. package/dist/esm/outOfTheBox/ItemControlledDrilldown/styled.js.map +0 -7
  126. package/dist/esm/outOfTheBox/ItemHeader/styled.js +0 -20
  127. package/dist/esm/outOfTheBox/ItemHeader/styled.js.map +0 -7
  128. package/dist/esm/outOfTheBox/ItemLink/styled.js +0 -12
  129. package/dist/esm/outOfTheBox/ItemLink/styled.js.map +0 -7
  130. package/dist/esm/outOfTheBox/ItemSection/styled.js +0 -24
  131. package/dist/esm/outOfTheBox/ItemSection/styled.js.map +0 -7
  132. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js +0 -20
  133. package/dist/esm/outOfTheBox/ItemSubmenu/styled.js.map +0 -7
  134. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js +0 -14
  135. package/dist/esm/outOfTheBox/ItemTextLabel/styled.js.map +0 -7
  136. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +0 -20
  137. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js.map +0 -7
  138. package/dist/esm/outOfTheBox/ItemWithDate/styled.js +0 -20
  139. package/dist/esm/outOfTheBox/ItemWithDate/styled.js.map +0 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/outOfTheBox/styled.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled, type Theme } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronSmallLeft } from '@elliemae/ds-icons';\nimport { DSLeftNavigationName, DSLeftNavigationSlots } from '../constants';\n\ntype ColorsKey = keyof Theme['colors'];\n\ninterface StyledLabelT {\n labelBold?: boolean;\n labelOverflow?: string;\n labelColor?: [ColorsKey, keyof Theme['colors'][ColorsKey]];\n}\n\nexport const StyledLabel = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.ITEM_LABEL,\n})<StyledLabelT>`\n font-size: 13px;\n font-weight: ${(props) => (props.labelBold ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular)};\n color: ${({ labelColor, theme }) =>\n labelColor ? theme.colors[labelColor[0]][labelColor[1]] : theme.colors.neutral[800]};\n line-height: 14px;\n word-break: ${(props) => (props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal')};\n`;\n\nexport const StyledDate = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.ITEM_DATE })`\n font-size: 12px;\n color: ${(props) => props.theme.colors.neutral[600]};\n line-height: 14px;\n`;\n\nexport const StyledArrowContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.ARROW_CONTAINER,\n})``;\n\nexport const StyledRightContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.RIGHT_CONTAINER,\n})``;\n\nexport const StyledSectionLabel = styled('span', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.SECTION_LABEL,\n})`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral[700]};\n margin-left: ${(props) => props.theme.space.xxs};\n line-height: 13px;\n`;\n\nexport const StyledVerticalSeparator = styled('div', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.VERTICAL_SEPARATOR,\n})`\n margin: 0 ${(props) => props.theme.space.xxs};\n width: 1px;\n height: 13px;\n background: ${(props) => props.theme.colors.neutral[600]};\n`;\n\nexport const StyledRightLabel = styled('span', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.SECTION_RIGHT_LABEL,\n})`\n font-size: 12px;\n line-height: 13px;\n`;\n\nexport const StyledSectionContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.SECTION_CONTAINER,\n})``;\n\nexport const StyledBottomContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.BOTTOM_CONTAINER,\n})`\n grid-column: span 3;\n`;\n\nexport const StyledLeftContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.LEFT_CONTAINER,\n})``;\n\nexport const StyledItemLabel = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.ITEM_LABEL })<{\n labelOverflow: string;\n}>`\n font-size: 14px;\n color: ${(props) => props.theme.colors.neutral[800]};\n word-break: ${(props) => (props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal')};\n`;\n\nexport const StyledChevronLeft = styled(ChevronSmallLeft, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.ITEM_CHEVRON_BACK,\n})`\n cursor: pointer;\n :focus {\n outline: 2px solid ${(props) => props.theme.colors.brand[800]};\n }\n`;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAA0B;AACnC,SAAS,YAAY;AACrB,SAAS,wBAAwB;AACjC,SAAS,sBAAsB,6BAA6B;AAUrD,MAAM,cAAc,OAAO,MAAM;AAAA,EACtC,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA,iBAEgB,CAAC,UAAW,MAAM,YAAY,MAAM,MAAM,YAAY,WAAW,MAAM,MAAM,YAAY;AAAA,WAC/F,CAAC,EAAE,YAAY,MAAM,MAC5B,aAAa,MAAM,OAAO,WAAW,IAAI,WAAW,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAEnE,CAAC,UAAW,MAAM,kBAAkB,YAAY,cAAc;AAAA;AAGvE,MAAM,aAAa,OAAO,MAAM,EAAE,MAAM,sBAAsB,MAAM,sBAAsB,UAAU,CAAC;AAAA;AAAA,WAEjG,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAI1C,MAAM,uBAAuB,OAAO,MAAM;AAAA,EAC/C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAEM,MAAM,uBAAuB,OAAO,MAAM;AAAA,EAC/C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAEM,MAAM,qBAAqB,OAAO,QAAQ;AAAA,EAC/C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA,WAEU,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,iBAChC,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAAA;AAIvC,MAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA,cACa,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAAA;AAAA,gBAG3B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAG/C,MAAM,mBAAmB,OAAO,QAAQ;AAAA,EAC7C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;AAKM,MAAM,yBAAyB,OAAO,MAAM;AAAA,EACjD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAEM,MAAM,wBAAwB,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAIM,MAAM,sBAAsB,OAAO,MAAM;AAAA,EAC9C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAEM,MAAM,kBAAkB,OAAO,MAAM,EAAE,MAAM,sBAAsB,MAAM,sBAAsB,WAAW,CAAC;AAAA;AAAA,WAIvG,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,gBACjC,CAAC,UAAW,MAAM,kBAAkB,YAAY,cAAc;AAAA;AAGvE,MAAM,oBAAoB,OAAO,kBAAkB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA,yBAGwB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,6 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import React2 from "react";
4
+ import { useGetGlobalAttributes } from "@elliemae/ds-utilities";
4
5
  import { LeftNavContext } from "../../LeftNavigationContext";
5
6
  import { LeftNavFooterItem } from "../LeftNavFooterItem";
6
7
  import { OutOfTheBoxMapItem } from "../OutOfTheBoxMapItem";
@@ -11,7 +12,6 @@ import {
11
12
  StyledLeftNavBodyAreasContainer,
12
13
  StyledLeftNavBodyHeaderArea,
13
14
  StyledLeftNavBodyItemsArea,
14
- StyledLeftNavFooterArea,
15
15
  StyledLeftNavContentWithScrollbar
16
16
  } from "./styled";
17
17
  import { LeftNavLoading } from "../LeftNavLoading";
@@ -31,6 +31,8 @@ const LeftNavInnerContent = () => {
31
31
  }) : null
32
32
  }),
33
33
  /* @__PURE__ */ jsxs(StyledLeftNavBodyAreasContainer, {
34
+ cols: ["1fr"],
35
+ rows: ["auto", "1fr"],
34
36
  children: [
35
37
  /* @__PURE__ */ jsx(StyledLeftNavBodyHeaderArea, {
36
38
  "data-testid": "leftnav-body-header-area",
@@ -57,27 +59,31 @@ const LeftNavInnerContent = () => {
57
59
  const LeftNavContent = () => {
58
60
  const {
59
61
  expandedForAnimation,
60
- leftNavProps: { expanded, expandedWidth, footerLabel, onFooterExpand, onFooterClose, loading }
62
+ leftNavProps: { expanded, expandedWidth, footerLabel, onFooterExpand, onFooterClose, loading },
63
+ leftNavProps
61
64
  } = React2.useContext(LeftNavContext);
65
+ const globalProps = useGetGlobalAttributes(leftNavProps);
62
66
  return /* @__PURE__ */ jsx(StyledLeftNavExpandAnimationWrapper, {
63
67
  expandedWidth,
64
68
  expanded,
65
69
  "data-testid": "leftnav-component",
66
70
  "aria-label": leftNavScreenReaderInstructions,
71
+ role: "menu",
72
+ ...globalProps,
67
73
  children: /* @__PURE__ */ jsxs(StyledLeftNavAreasContainer, {
68
74
  expandedWidth,
69
75
  expanded: expandedForAnimation,
76
+ rows: ["auto", "1fr", "auto"],
77
+ cols: ["1fr"],
70
78
  children: [
71
79
  loading && /* @__PURE__ */ jsx(LeftNavLoading, {
72
80
  expanded: expandedForAnimation
73
81
  }),
74
82
  !loading && /* @__PURE__ */ jsx(LeftNavInnerContent, {}),
75
- /* @__PURE__ */ jsx(StyledLeftNavFooterArea, {
76
- children: /* @__PURE__ */ jsx(LeftNavFooterItem, {
77
- footerLabel,
78
- onFooterExpand,
79
- onFooterClose
80
- })
83
+ /* @__PURE__ */ jsx(LeftNavFooterItem, {
84
+ footerLabel,
85
+ onFooterExpand,
86
+ onFooterClose
81
87
  })
82
88
  ]
83
89
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/LeftNavContent/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { LeftNavContext } from '../../LeftNavigationContext';\nimport { LeftNavFooterItem } from '../LeftNavFooterItem';\nimport { OutOfTheBoxMapItem } from '../OutOfTheBoxMapItem';\nimport {\n StyledLeftNavExpandAnimationWrapper,\n StyledLeftNavAreasContainer,\n StyledLeftNavHeaderArea,\n StyledLeftNavBodyAreasContainer,\n StyledLeftNavBodyHeaderArea,\n StyledLeftNavBodyItemsArea,\n StyledLeftNavFooterArea,\n StyledLeftNavContentWithScrollbar,\n} from './styled';\nimport { LeftNavLoading } from '../LeftNavLoading';\n\nconst leftNavScreenReaderInstructions =\n 'Left Navigation. You can navigate through the items using the Up/Down arrows. ' +\n 'To expand or select an item, use the Enter/Return or Space keys. ' +\n 'Expandable items can also be opened/closed with the Right/Left arrows. ' +\n 'The Home and End keys will take you to the first and last item respectively.';\n\nconst LeftNavInnerContent = () => {\n const {\n leftNavProps: { HeaderComponent, BodyHeaderComponent, openedItem, items, withoutBodyShadow },\n selectedItem,\n } = React.useContext(LeftNavContext);\n return (\n <>\n <StyledLeftNavHeaderArea\n data-testid=\"leftnav-header-area\"\n selected={HeaderComponent && [selectedItem, openedItem].includes(HeaderComponent.dsId)}\n >\n {HeaderComponent ? <OutOfTheBoxMapItem item={HeaderComponent} /> : null}\n </StyledLeftNavHeaderArea>\n <StyledLeftNavBodyAreasContainer>\n <StyledLeftNavBodyHeaderArea\n data-testid=\"leftnav-body-header-area\"\n selected={BodyHeaderComponent && [selectedItem, openedItem].includes(BodyHeaderComponent.dsId)}\n >\n {BodyHeaderComponent ? <OutOfTheBoxMapItem item={BodyHeaderComponent} /> : null}\n </StyledLeftNavBodyHeaderArea>\n <StyledLeftNavBodyItemsArea\n selected={!withoutBodyShadow && openedItem !== null}\n data-testid=\"leftnav-body-items-area\"\n tabIndex={-1}\n >\n <StyledLeftNavContentWithScrollbar>\n {items.map((item) => (\n <OutOfTheBoxMapItem item={item} key={item.dsId} />\n ))}\n </StyledLeftNavContentWithScrollbar>\n </StyledLeftNavBodyItemsArea>\n </StyledLeftNavBodyAreasContainer>\n </>\n );\n};\n\nconst LeftNavContent: React.ComponentType = () => {\n const {\n expandedForAnimation,\n leftNavProps: { expanded, expandedWidth, footerLabel, onFooterExpand, onFooterClose, loading },\n } = React.useContext(LeftNavContext);\n\n return (\n <StyledLeftNavExpandAnimationWrapper\n expandedWidth={expandedWidth}\n expanded={expanded}\n data-testid=\"leftnav-component\"\n aria-label={leftNavScreenReaderInstructions}\n >\n <StyledLeftNavAreasContainer expandedWidth={expandedWidth} expanded={expandedForAnimation}>\n {loading && <LeftNavLoading expanded={expandedForAnimation} />}\n {!loading && <LeftNavInnerContent />}\n <StyledLeftNavFooterArea>\n <LeftNavFooterItem footerLabel={footerLabel} onFooterExpand={onFooterExpand} onFooterClose={onFooterClose} />\n </StyledLeftNavFooterArea>\n </StyledLeftNavAreasContainer>\n </StyledLeftNavExpandAnimationWrapper>\n );\n};\n\nexport default LeftNavContent;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,OAAOA,YAAW;AAClB,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAE/B,MAAM,kCACJ;AAKF,MAAM,sBAAsB,MAAM;AAChC,QAAM;AAAA,IACJ,cAAc,EAAE,iBAAiB,qBAAqB,YAAY,OAAO,kBAAkB;AAAA,IAC3F;AAAA,EACF,IAAIA,OAAM,WAAW,cAAc;AACnC,SACE;AAAA,IACE;AAAA,0BAAC;AAAA,QACC,eAAY;AAAA,QACZ,UAAU,mBAAmB,CAAC,cAAc,UAAU,EAAE,SAAS,gBAAgB,IAAI;AAAA,QAEpF,4BAAkB,oBAAC;AAAA,UAAmB,MAAM;AAAA,SAAiB,IAAK;AAAA,OACrE;AAAA,MACA,qBAAC;AAAA,QACC;AAAA,8BAAC;AAAA,YACC,eAAY;AAAA,YACZ,UAAU,uBAAuB,CAAC,cAAc,UAAU,EAAE,SAAS,oBAAoB,IAAI;AAAA,YAE5F,gCAAsB,oBAAC;AAAA,cAAmB,MAAM;AAAA,aAAqB,IAAK;AAAA,WAC7E;AAAA,UACA,oBAAC;AAAA,YACC,UAAU,CAAC,qBAAqB,eAAe;AAAA,YAC/C,eAAY;AAAA,YACZ,UAAU;AAAA,YAEV,8BAAC;AAAA,cACE,gBAAM,IAAI,CAAC,SACV,oBAAC;AAAA,gBAAmB;AAAA,iBAAiB,KAAK,IAAM,CACjD;AAAA,aACH;AAAA,WACF;AAAA;AAAA,OACF;AAAA;AAAA,GACF;AAEJ;AAEA,MAAM,iBAAsC,MAAM;AAChD,QAAM;AAAA,IACJ;AAAA,IACA,cAAc,EAAE,UAAU,eAAe,aAAa,gBAAgB,eAAe,QAAQ;AAAA,EAC/F,IAAIA,OAAM,WAAW,cAAc;AAEnC,SACE,oBAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,eAAY;AAAA,IACZ,cAAY;AAAA,IAEZ,+BAAC;AAAA,MAA4B;AAAA,MAA8B,UAAU;AAAA,MAClE;AAAA,mBAAW,oBAAC;AAAA,UAAe,UAAU;AAAA,SAAsB;AAAA,QAC3D,CAAC,WAAW,oBAAC,uBAAoB;AAAA,QAClC,oBAAC;AAAA,UACC,8BAAC;AAAA,YAAkB;AAAA,YAA0B;AAAA,YAAgC;AAAA,WAA8B;AAAA,SAC7G;AAAA;AAAA,KACF;AAAA,GACF;AAEJ;AAEA,IAAO,yBAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useGetGlobalAttributes } from '@elliemae/ds-utilities';\nimport { LeftNavContext } from '../../LeftNavigationContext';\nimport { LeftNavFooterItem } from '../LeftNavFooterItem';\nimport { OutOfTheBoxMapItem } from '../OutOfTheBoxMapItem';\nimport {\n StyledLeftNavExpandAnimationWrapper,\n StyledLeftNavAreasContainer,\n StyledLeftNavHeaderArea,\n StyledLeftNavBodyAreasContainer,\n StyledLeftNavBodyHeaderArea,\n StyledLeftNavBodyItemsArea,\n StyledLeftNavContentWithScrollbar,\n} from './styled';\nimport { LeftNavLoading } from '../LeftNavLoading';\n\nconst leftNavScreenReaderInstructions =\n 'Left Navigation. You can navigate through the items using the Up/Down arrows. ' +\n 'To expand or select an item, use the Enter/Return or Space keys. ' +\n 'Expandable items can also be opened/closed with the Right/Left arrows. ' +\n 'The Home and End keys will take you to the first and last item respectively.';\n\nconst LeftNavInnerContent = () => {\n const {\n leftNavProps: { HeaderComponent, BodyHeaderComponent, openedItem, items, withoutBodyShadow },\n selectedItem,\n } = React.useContext(LeftNavContext);\n return (\n <>\n <StyledLeftNavHeaderArea\n data-testid=\"leftnav-header-area\"\n selected={HeaderComponent && [selectedItem, openedItem].includes(HeaderComponent.dsId as string)}\n >\n {HeaderComponent ? <OutOfTheBoxMapItem item={HeaderComponent} /> : null}\n </StyledLeftNavHeaderArea>\n <StyledLeftNavBodyAreasContainer cols={['1fr']} rows={['auto', '1fr']}>\n <StyledLeftNavBodyHeaderArea\n data-testid=\"leftnav-body-header-area\"\n selected={BodyHeaderComponent && [selectedItem, openedItem].includes(BodyHeaderComponent.dsId as string)}\n >\n {BodyHeaderComponent ? <OutOfTheBoxMapItem item={BodyHeaderComponent} /> : null}\n </StyledLeftNavBodyHeaderArea>\n <StyledLeftNavBodyItemsArea\n selected={!withoutBodyShadow && openedItem !== null}\n data-testid=\"leftnav-body-items-area\"\n tabIndex={-1}\n >\n <StyledLeftNavContentWithScrollbar>\n {items.map((item) => (\n <OutOfTheBoxMapItem item={item} key={item.dsId} />\n ))}\n </StyledLeftNavContentWithScrollbar>\n </StyledLeftNavBodyItemsArea>\n </StyledLeftNavBodyAreasContainer>\n </>\n );\n};\n\nconst LeftNavContent: React.ComponentType = () => {\n const {\n expandedForAnimation,\n leftNavProps: { expanded, expandedWidth, footerLabel, onFooterExpand, onFooterClose, loading },\n leftNavProps,\n } = React.useContext(LeftNavContext);\n\n const globalProps = useGetGlobalAttributes(leftNavProps);\n\n return (\n <StyledLeftNavExpandAnimationWrapper\n expandedWidth={expandedWidth}\n expanded={expanded}\n data-testid=\"leftnav-component\"\n aria-label={leftNavScreenReaderInstructions}\n role=\"menu\"\n {...globalProps}\n >\n <StyledLeftNavAreasContainer\n expandedWidth={expandedWidth}\n expanded={expandedForAnimation}\n rows={['auto', '1fr', 'auto']}\n cols={['1fr']}\n >\n {loading && <LeftNavLoading expanded={expandedForAnimation} />}\n {!loading && <LeftNavInnerContent />}\n <LeftNavFooterItem footerLabel={footerLabel} onFooterExpand={onFooterExpand} onFooterClose={onFooterClose} />\n </StyledLeftNavAreasContainer>\n </StyledLeftNavExpandAnimationWrapper>\n );\n};\n\nexport default LeftNavContent;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,OAAOA,YAAW;AAClB,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAE/B,MAAM,kCACJ;AAKF,MAAM,sBAAsB,MAAM;AAChC,QAAM;AAAA,IACJ,cAAc,EAAE,iBAAiB,qBAAqB,YAAY,OAAO,kBAAkB;AAAA,IAC3F;AAAA,EACF,IAAIA,OAAM,WAAW,cAAc;AACnC,SACE;AAAA,IACE;AAAA,0BAAC;AAAA,QACC,eAAY;AAAA,QACZ,UAAU,mBAAmB,CAAC,cAAc,UAAU,EAAE,SAAS,gBAAgB,IAAc;AAAA,QAE9F,4BAAkB,oBAAC;AAAA,UAAmB,MAAM;AAAA,SAAiB,IAAK;AAAA,OACrE;AAAA,MACA,qBAAC;AAAA,QAAgC,MAAM,CAAC,KAAK;AAAA,QAAG,MAAM,CAAC,QAAQ,KAAK;AAAA,QAClE;AAAA,8BAAC;AAAA,YACC,eAAY;AAAA,YACZ,UAAU,uBAAuB,CAAC,cAAc,UAAU,EAAE,SAAS,oBAAoB,IAAc;AAAA,YAEtG,gCAAsB,oBAAC;AAAA,cAAmB,MAAM;AAAA,aAAqB,IAAK;AAAA,WAC7E;AAAA,UACA,oBAAC;AAAA,YACC,UAAU,CAAC,qBAAqB,eAAe;AAAA,YAC/C,eAAY;AAAA,YACZ,UAAU;AAAA,YAEV,8BAAC;AAAA,cACE,gBAAM,IAAI,CAAC,SACV,oBAAC;AAAA,gBAAmB;AAAA,iBAAiB,KAAK,IAAM,CACjD;AAAA,aACH;AAAA,WACF;AAAA;AAAA,OACF;AAAA;AAAA,GACF;AAEJ;AAEA,MAAM,iBAAsC,MAAM;AAChD,QAAM;AAAA,IACJ;AAAA,IACA,cAAc,EAAE,UAAU,eAAe,aAAa,gBAAgB,eAAe,QAAQ;AAAA,IAC7F;AAAA,EACF,IAAIA,OAAM,WAAW,cAAc;AAEnC,QAAM,cAAc,uBAAuB,YAAY;AAEvD,SACE,oBAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,eAAY;AAAA,IACZ,cAAY;AAAA,IACZ,MAAK;AAAA,IACJ,GAAG;AAAA,IAEJ,+BAAC;AAAA,MACC;AAAA,MACA,UAAU;AAAA,MACV,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,MAAM,CAAC,KAAK;AAAA,MAEX;AAAA,mBAAW,oBAAC;AAAA,UAAe,UAAU;AAAA,SAAsB;AAAA,QAC3D,CAAC,WAAW,oBAAC,uBAAoB;AAAA,QAClC,oBAAC;AAAA,UAAkB;AAAA,UAA0B;AAAA,UAAgC;AAAA,SAA8B;AAAA;AAAA,KAC7G;AAAA,GACF;AAEJ;AAEA,IAAO,yBAAQ;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,10 +1,7 @@
1
1
  import * as React from "react";
2
- import { css, styled } from "@elliemae/ds-system";
3
- import {
4
- DSScrollableContainer,
5
- DSScrollableContainerName,
6
- DSScrollableContainerSlots
7
- } from "@elliemae/ds-scrollable-container";
2
+ import { Grid } from "@elliemae/ds-grid";
3
+ import { styled } from "@elliemae/ds-system";
4
+ import { DSLeftNavigationName, DSLeftNavigationSlots } from "../../constants";
8
5
  const getLeftShadowStyles = ({
9
6
  selected,
10
7
  selectedParent,
@@ -23,7 +20,10 @@ const getLeftShadowStyles = ({
23
20
  }
24
21
  return `box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};`;
25
22
  };
26
- const StyledLeftNavExpandAnimationWrapper = styled.nav`
23
+ const StyledLeftNavExpandAnimationWrapper = styled("nav", {
24
+ name: DSLeftNavigationName,
25
+ slot: DSLeftNavigationSlots.ROOT
26
+ })`
27
27
  width: ${(props) => props.expanded ? props.expandedWidth : "48px"};
28
28
  transition: width ${(props) => props.expanded ? "ease-out" : "ease-in"} 350ms;
29
29
  box-shadow: -1px 0 0 0 ${(props) => props.theme.colors.neutral[100]};
@@ -32,63 +32,49 @@ const StyledLeftNavExpandAnimationWrapper = styled.nav`
32
32
  height: 100%;
33
33
  position: relative;
34
34
  `;
35
- const StyledLeftNavAreasContainer = styled.div`
36
- position: absolute;
35
+ const StyledLeftNavAreasContainer = styled(Grid, {
36
+ name: DSLeftNavigationName,
37
+ slot: DSLeftNavigationSlots.AREAS_CONTAINER
38
+ })`
37
39
  width: ${(props) => props.expanded ? `calc(${props.expandedWidth} - 2px)` : "46px"};
38
40
  height: 100%;
39
- display: grid;
40
- grid-template-columns: 1fr;
41
- grid-template-rows: auto 1fr auto;
42
- grid-template-areas:
43
- 'left-nav-header'
44
- 'left-nav-body'
45
- 'left-nav-footer';
46
41
  `;
47
- const StyledLeftNavHeaderArea = styled.div`
48
- grid-area: left-nav-header;
42
+ const StyledLeftNavHeaderArea = styled("div", {
43
+ name: DSLeftNavigationName,
44
+ slot: DSLeftNavigationSlots.HEADER_AREA
45
+ })`
49
46
  ${getLeftShadowStyles}
50
47
  `;
51
- const StyledLeftNavBodyAreasContainer = styled.div`
52
- position: absolute;
48
+ const StyledLeftNavBodyAreasContainer = styled(Grid, {
49
+ name: DSLeftNavigationName,
50
+ slot: DSLeftNavigationSlots.BODY_AREAS_CONTAINER
51
+ })`
53
52
  width: 100%;
54
53
  height: 100%;
55
- display: grid;
56
- grid-template-columns: 1fr;
57
- grid-template-rows: auto 1fr;
58
- grid-template-areas:
59
- 'left-nav-body-header'
60
- 'left-nav-body-body';
61
- grid-area: left-nav-body;
62
54
  `;
63
- const StyledLeftNavBodyHeaderArea = styled.div`
55
+ const StyledLeftNavBodyHeaderArea = styled("div", {
56
+ name: DSLeftNavigationName,
57
+ slot: DSLeftNavigationSlots.BODY_HEADER_AREA
58
+ })`
64
59
  width: 100%;
65
- grid-area: left-nav-body-header;
66
60
  ${getLeftShadowStyles}
67
61
  `;
68
- const StyledLeftNavBodyItemsArea = styled.div`
62
+ const StyledLeftNavBodyItemsArea = styled("div", {
63
+ name: DSLeftNavigationName,
64
+ slot: DSLeftNavigationSlots.BODY_ITEMS_AREA
65
+ })`
69
66
  width: 100%;
70
- grid-area: left-nav-body-body;
71
67
  max-height: 100%;
72
68
  overflow-y: hidden;
73
69
  overflow-x: hidden;
74
70
  box-shadow: inset 4px 0 0 0 ${(props) => props.selected ? props.theme.colors.brand[400] : "transparent"};
75
71
  `;
76
- const StyledLeftNavFooterArea = styled.div`
77
- width: 100%;
78
- grid-area: left-nav-footer;
79
- `;
80
- const allSlotsCombined = Object.values(DSScrollableContainerSlots).map((slot) => `.${DSScrollableContainerName}-${slot}`).join(", ");
81
- const inheritBoxShadowCss = css`
82
- box-shadow: inherit;
83
- `;
84
- const StyledLeftNavContentWithScrollbar = styled(DSScrollableContainer)`
85
- &,
86
- .${DSScrollableContainerName}-${DSScrollableContainerSlots.HOST} {
87
- height: 100%;
88
- }
89
- ${allSlotsCombined} {
90
- ${inheritBoxShadowCss}
91
- }
72
+ const StyledLeftNavContentWithScrollbar = styled("div", {
73
+ name: DSLeftNavigationName,
74
+ slot: DSLeftNavigationSlots.CONTENT_WITH_SCROLLBAR
75
+ })`
76
+ height: 100%;
77
+ overflow: auto;
92
78
  `;
93
79
  export {
94
80
  StyledLeftNavAreasContainer,
@@ -97,7 +83,6 @@ export {
97
83
  StyledLeftNavBodyItemsArea,
98
84
  StyledLeftNavContentWithScrollbar,
99
85
  StyledLeftNavExpandAnimationWrapper,
100
- StyledLeftNavFooterArea,
101
86
  StyledLeftNavHeaderArea
102
87
  };
103
88
  //# sourceMappingURL=styled.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/LeftNavContent/styled.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { css, styled } from '@elliemae/ds-system';\nimport {\n DSScrollableContainer,\n DSScrollableContainerName,\n DSScrollableContainerSlots,\n} from '@elliemae/ds-scrollable-container';\n\ntype LeftNavProps = {\n expanded: boolean;\n expandedWidth: string;\n};\n\nconst getLeftShadowStyles = ({\n selected,\n selectedParent,\n theme,\n}: {\n selected: boolean;\n selectedParent: boolean;\n theme: any;\n}) => {\n if (!selected && !selectedParent) {\n return `\n box-shadow: inset 4px 0 0 0 transparent;\n :hover {\n box-shadow: inset 4px 0 0 0 ${theme.colors.brand[300]};\n }\n :active {\n box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};\n }\n `;\n }\n return `box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};`;\n};\n\nexport const StyledLeftNavExpandAnimationWrapper = styled.nav<LeftNavProps>`\n width: ${(props) => (props.expanded ? props.expandedWidth : '48px')};\n transition: width ${(props) => (props.expanded ? 'ease-out' : 'ease-in')} 350ms;\n box-shadow: -1px 0 0 0 ${(props) => props.theme.colors.neutral[100]};\n border: 1px solid ${(props) => props.theme.colors.neutral[100]};\n overflow: hidden;\n height: 100%;\n position: relative;\n`;\nexport const StyledLeftNavAreasContainer = styled.div<LeftNavProps>`\n position: absolute;\n width: ${(props) => (props.expanded ? `calc(${props.expandedWidth} - 2px)` : '46px')};\n height: 100%;\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr auto;\n grid-template-areas:\n 'left-nav-header'\n 'left-nav-body'\n 'left-nav-footer';\n`;\n\nexport const StyledLeftNavHeaderArea = styled.div<{ selected: boolean }>`\n grid-area: left-nav-header;\n ${getLeftShadowStyles}\n`;\n\nexport const StyledLeftNavBodyAreasContainer = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr;\n grid-template-areas:\n 'left-nav-body-header'\n 'left-nav-body-body';\n grid-area: left-nav-body;\n`;\n\nexport const StyledLeftNavBodyHeaderArea = styled.div<{ selected: boolean }>`\n width: 100%;\n grid-area: left-nav-body-header;\n ${getLeftShadowStyles}\n`;\n\nexport const StyledLeftNavBodyItemsArea = styled.div<{ selected: boolean }>`\n width: 100%;\n grid-area: left-nav-body-body;\n max-height: 100%;\n overflow-y: hidden;\n overflow-x: hidden;\n box-shadow: inset 4px 0 0 0 ${(props) => (props.selected ? props.theme.colors.brand[400] : 'transparent')};\n`;\n\nexport const StyledLeftNavFooterArea = styled.div`\n width: 100%;\n grid-area: left-nav-footer;\n`;\n\nconst allSlotsCombined = Object.values(DSScrollableContainerSlots)\n .map((slot) => `.${DSScrollableContainerName}-${slot}`)\n .join(', ');\n\nconst inheritBoxShadowCss = css`\n box-shadow: inherit;\n`;\n\nexport const StyledLeftNavContentWithScrollbar = styled(DSScrollableContainer)`\n &,\n .${DSScrollableContainerName}-${DSScrollableContainerSlots.HOST} {\n height: 100%;\n }\n ${allSlotsCombined} {\n ${inheritBoxShadowCss}\n }\n`;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,KAAK,cAAc;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP,MAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,MAAI,CAAC,YAAY,CAAC,gBAAgB;AAChC,WAAO;AAAA;AAAA;AAAA,sCAG2B,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA,sCAGnB,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA,EAGvD;AACA,SAAO,+BAA+B,MAAM,OAAO,MAAM;AAC3D;AAEO,MAAM,sCAAsC,OAAO;AAAA,WAC/C,CAAC,UAAW,MAAM,WAAW,MAAM,gBAAgB;AAAA,sBACxC,CAAC,UAAW,MAAM,WAAW,aAAa;AAAA,2BACrC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,sBAC3C,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAKrD,MAAM,8BAA8B,OAAO;AAAA;AAAA,WAEvC,CAAC,UAAW,MAAM,WAAW,QAAQ,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWxE,MAAM,0BAA0B,OAAO;AAAA;AAAA,IAE1C;AAAA;AAGG,MAAM,kCAAkC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa/C,MAAM,8BAA8B,OAAO;AAAA;AAAA;AAAA,IAG9C;AAAA;AAGG,MAAM,6BAA6B,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAMjB,CAAC,UAAW,MAAM,WAAW,MAAM,MAAM,OAAO,MAAM,OAAO;AAAA;AAGtF,MAAM,0BAA0B,OAAO;AAAA;AAAA;AAAA;AAK9C,MAAM,mBAAmB,OAAO,OAAO,0BAA0B,EAC9D,IAAI,CAAC,SAAS,IAAI,6BAA6B,MAAM,EACrD,KAAK,IAAI;AAEZ,MAAM,sBAAsB;AAAA;AAAA;AAIrB,MAAM,oCAAoC,OAAO,qBAAqB;AAAA;AAAA,KAExE,6BAA6B,2BAA2B;AAAA;AAAA;AAAA,IAGzD;AAAA,MACE;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { Grid } from '@elliemae/ds-grid';\nimport { styled, Theme } from '@elliemae/ds-system';\nimport { DSLeftNavigationName, DSLeftNavigationSlots } from '../../constants';\n\ntype LeftNavProps = {\n expanded: boolean;\n expandedWidth: string;\n};\n\nconst getLeftShadowStyles = ({\n selected,\n selectedParent,\n theme,\n}: {\n selected: boolean;\n selectedParent: boolean;\n theme: Theme;\n}) => {\n if (!selected && !selectedParent) {\n return `\n box-shadow: inset 4px 0 0 0 transparent;\n :hover {\n box-shadow: inset 4px 0 0 0 ${theme.colors.brand[300]};\n }\n :active {\n box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};\n }\n `;\n }\n return `box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};`;\n};\n\nexport const StyledLeftNavExpandAnimationWrapper = styled('nav', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.ROOT,\n})<LeftNavProps>`\n width: ${(props) => (props.expanded ? props.expandedWidth : '48px')};\n transition: width ${(props) => (props.expanded ? 'ease-out' : 'ease-in')} 350ms;\n box-shadow: -1px 0 0 0 ${(props) => props.theme.colors.neutral[100]};\n border: 1px solid ${(props) => props.theme.colors.neutral[100]};\n overflow: hidden;\n height: 100%;\n position: relative;\n`;\n\nexport const StyledLeftNavAreasContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.AREAS_CONTAINER,\n})<LeftNavProps>`\n width: ${(props) => (props.expanded ? `calc(${props.expandedWidth} - 2px)` : '46px')};\n height: 100%;\n`;\n\nexport const StyledLeftNavHeaderArea = styled('div', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.HEADER_AREA,\n})<{ selected: boolean; selectedParent: boolean }>`\n ${getLeftShadowStyles}\n`;\n\nexport const StyledLeftNavBodyAreasContainer = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.BODY_AREAS_CONTAINER,\n})`\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledLeftNavBodyHeaderArea = styled('div', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.BODY_HEADER_AREA,\n})<{ selected: boolean; selectedParent: boolean }>`\n width: 100%;\n ${getLeftShadowStyles}\n`;\n\nexport const StyledLeftNavBodyItemsArea = styled('div', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.BODY_ITEMS_AREA,\n})<{ selected: boolean }>`\n width: 100%;\n max-height: 100%;\n overflow-y: hidden;\n overflow-x: hidden;\n box-shadow: inset 4px 0 0 0 ${(props) => (props.selected ? props.theme.colors.brand[400] : 'transparent')};\n`;\n\nexport const StyledLeftNavContentWithScrollbar = styled('div', {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.CONTENT_WITH_SCROLLBAR,\n})`\n height: 100%;\n overflow: auto;\n`;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,YAAY;AACrB,SAAS,cAAqB;AAC9B,SAAS,sBAAsB,6BAA6B;AAO5D,MAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,MAAI,CAAC,YAAY,CAAC,gBAAgB;AAChC,WAAO;AAAA;AAAA;AAAA,sCAG2B,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA,sCAGnB,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA,EAGvD;AACA,SAAO,+BAA+B,MAAM,OAAO,MAAM;AAC3D;AAEO,MAAM,sCAAsC,OAAO,OAAO;AAAA,EAC/D,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA,WACU,CAAC,UAAW,MAAM,WAAW,MAAM,gBAAgB;AAAA,sBACxC,CAAC,UAAW,MAAM,WAAW,aAAa;AAAA,2BACrC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,sBAC3C,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAMrD,MAAM,8BAA8B,OAAO,MAAM;AAAA,EACtD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA,WACU,CAAC,UAAW,MAAM,WAAW,QAAQ,MAAM,yBAAyB;AAAA;AAAA;AAIxE,MAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA,IACG;AAAA;AAGG,MAAM,kCAAkC,OAAO,MAAM;AAAA,EAC1D,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;AAKM,MAAM,8BAA8B,OAAO,OAAO;AAAA,EACvD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA,IAEG;AAAA;AAGG,MAAM,6BAA6B,OAAO,OAAO;AAAA,EACtD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gCAK+B,CAAC,UAAW,MAAM,WAAW,MAAM,MAAM,OAAO,MAAM,OAAO;AAAA;AAGtF,MAAM,oCAAoC,OAAO,OAAO;AAAA,EAC7D,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -2,15 +2,12 @@ import * as React from "react";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useContext } from "react";
4
4
  import { MenuExpand } from "@elliemae/ds-icons";
5
- import { PropTypes } from "@elliemae/ds-utilities";
6
- import Grid from "@elliemae/ds-grid";
7
5
  import { SimpleTruncatedTooltipText } from "@elliemae/ds-truncated-tooltip-text";
8
6
  import {
9
7
  StyledFooterMenu,
10
- StyledItem,
11
- StyledItemWrapper,
12
- StyledLabel,
13
- StyledSeparator,
8
+ StyledFooterItem,
9
+ StyledFooterLabel,
10
+ StyledFooterSeparator,
14
11
  StyledMenuCollapse
15
12
  } from "./styled";
16
13
  import { useKeyboardNavigation } from "../../hooks";
@@ -19,9 +16,8 @@ import { FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from "../../exported-related/co
19
16
  const LeftNavFooterItem = (props) => {
20
17
  const { footerLabel, onFooterExpand = () => null, onFooterClose = () => null } = props;
21
18
  const {
22
- leftNavProps: { labelOverflow, openedItem },
19
+ leftNavProps: { labelOverflow },
23
20
  expandedForAnimation,
24
- setSelectedItem,
25
21
  setFocusedItem,
26
22
  visibleItemsRefs
27
23
  } = useContext(LeftNavigationContext);
@@ -40,73 +36,63 @@ const LeftNavFooterItem = (props) => {
40
36
  });
41
37
  return /* @__PURE__ */ jsx(StyledFooterMenu, {
42
38
  "data-testid": "leftnav-container",
43
- children: /* @__PURE__ */ jsx(StyledItemWrapper, {
44
- children: /* @__PURE__ */ jsx(StyledItem, {
45
- ref: visibleItemsRefs.current[id],
46
- tabIndex: expandedForAnimation ? -1 : 0,
47
- expanded: expandedForAnimation,
48
- pt: "xxs2",
49
- height: expandedForAnimation ? "auto" : "48px",
50
- alignItems: "flex-start",
51
- pl: "xxs",
52
- cols: expandedForAnimation ? ["auto", "1fr", "auto"] : ["38px"],
53
- onClick: expandedForAnimation ? () => null : handleOnClick,
54
- onKeyDown,
55
- onFocus: () => setFocusedItem(id),
56
- "data-testid": "leftnav-item-container",
57
- role: "menuitem",
58
- "aria-label": expandedForAnimation ? `Footer, ${footerLabel}` : `Expand left navigation`,
59
- children: !expandedForAnimation ? /* @__PURE__ */ jsx(MenuExpand, {
60
- size: "m",
61
- color: ["brand-primary", 800],
62
- "data-testid": "leftnav-footer-btn"
63
- }) : /* @__PURE__ */ jsxs(Fragment, {
64
- children: [
65
- /* @__PURE__ */ jsx(StyledLabel, {
66
- mt: "5px",
67
- mr: "12px",
68
- mb: "16px",
69
- "data-testid": "leftnav-itemlabel",
70
- labelOverflow,
71
- "aria-live": "polite",
72
- children: labelOverflow === "truncate" ? /* @__PURE__ */ jsx(SimpleTruncatedTooltipText, {
73
- value: footerLabel,
74
- placement: "bottom-start"
75
- }) : footerLabel
76
- }),
77
- /* @__PURE__ */ jsx(StyledSeparator, {
78
- mt: "xxxs"
79
- }),
80
- /* @__PURE__ */ jsx(Grid, {
81
- m: "0 12px",
82
- children: /* @__PURE__ */ jsx(StyledMenuCollapse, {
83
- size: "m",
84
- color: ["brand-primary", 800],
85
- onClick: (e) => {
86
- e.stopPropagation();
87
- handleOnClick(e);
88
- },
89
- "data-testid": "leftnav-footer-btn",
90
- tabIndex: 0,
91
- onFocus: (e) => {
92
- e.stopPropagation();
93
- setFocusedItem(FOOTER_MENU_CLOSE_DS_ID);
94
- },
95
- role: "button",
96
- "aria-label": "Collapse left navigation"
97
- })
98
- })
99
- ]
100
- })
39
+ children: /* @__PURE__ */ jsx(StyledFooterItem, {
40
+ ref: visibleItemsRefs.current[id],
41
+ tabIndex: expandedForAnimation ? -1 : 0,
42
+ expanded: expandedForAnimation,
43
+ pt: "xxs2",
44
+ height: expandedForAnimation ? "auto" : "48px",
45
+ alignItems: "flex-start",
46
+ pl: "xxs2",
47
+ cols: expandedForAnimation ? ["auto", "1fr", "auto"] : ["38px"],
48
+ onClick: expandedForAnimation ? () => null : handleOnClick,
49
+ onKeyDown,
50
+ onFocus: () => setFocusedItem(id),
51
+ "data-testid": "leftnav-item-container",
52
+ role: "menuitem",
53
+ "aria-label": expandedForAnimation ? `Footer, ${typeof footerLabel === "string" ? footerLabel : ""}` : `Expand left navigation`,
54
+ children: !expandedForAnimation ? /* @__PURE__ */ jsx(MenuExpand, {
55
+ size: "m",
56
+ color: ["brand-primary", 800],
57
+ "data-testid": "leftnav-footer-btn"
58
+ }) : /* @__PURE__ */ jsxs(Fragment, {
59
+ children: [
60
+ /* @__PURE__ */ jsx(StyledFooterLabel, {
61
+ mt: "5px",
62
+ mr: "12px",
63
+ mb: "16px",
64
+ "data-testid": "leftnav-itemlabel",
65
+ labelOverflow,
66
+ "aria-live": "polite",
67
+ children: labelOverflow === "truncate" ? /* @__PURE__ */ jsx(SimpleTruncatedTooltipText, {
68
+ value: footerLabel,
69
+ placement: "bottom-start"
70
+ }) : footerLabel
71
+ }),
72
+ /* @__PURE__ */ jsx(StyledFooterSeparator, {
73
+ mt: "xxxs"
74
+ }),
75
+ /* @__PURE__ */ jsx(StyledMenuCollapse, {
76
+ size: "m",
77
+ color: ["brand-primary", 800],
78
+ onClick: (e) => {
79
+ e.stopPropagation();
80
+ handleOnClick(e);
81
+ },
82
+ "data-testid": "leftnav-footer-btn",
83
+ tabIndex: 0,
84
+ onFocus: (e) => {
85
+ e.stopPropagation();
86
+ setFocusedItem(FOOTER_MENU_CLOSE_DS_ID);
87
+ },
88
+ role: "button",
89
+ "aria-label": "Collapse left navigation"
90
+ })
91
+ ]
101
92
  })
102
93
  })
103
94
  }, id);
104
95
  };
105
- LeftNavFooterItem.propTypes = {
106
- footerLabel: PropTypes.any,
107
- onFooterExpand: PropTypes.func,
108
- onFooterClose: PropTypes.func
109
- };
110
96
  var LeftNavFooterItem_default = LeftNavFooterItem;
111
97
  export {
112
98
  LeftNavFooterItem,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/LeftNavFooterItem/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useContext } from 'react';\nimport { MenuExpand } from '@elliemae/ds-icons';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport Grid from '@elliemae/ds-grid';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport {\n StyledFooterMenu,\n StyledItem,\n StyledItemWrapper,\n StyledLabel,\n StyledSeparator,\n StyledMenuCollapse,\n} from './styled';\nimport { useKeyboardNavigation } from '../../hooks';\nimport LeftNavigationContext from '../../LeftNavigationContext';\nimport { FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from '../../exported-related/constants';\n\ntype LeftNavFooterItemProps = {\n footerLabel: string | JSX.Element;\n onFooterExpand: React.MouseEventHandler & React.KeyboardEventHandler;\n onFooterClose: React.MouseEventHandler & React.KeyboardEventHandler;\n};\n\nexport const LeftNavFooterItem: React.ComponentType<LeftNavFooterItemProps> = (props) => {\n const { footerLabel, onFooterExpand = () => null, onFooterClose = () => null } = props;\n const {\n leftNavProps: { labelOverflow, openedItem },\n expandedForAnimation,\n setSelectedItem,\n setFocusedItem,\n visibleItemsRefs,\n } = useContext(LeftNavigationContext);\n\n const id = FOOTER_DS_ID;\n\n const handleOnClick = expandedForAnimation ? onFooterClose : onFooterExpand;\n\n const onKeyDown = useKeyboardNavigation({\n item: {\n dsId: id,\n itemOpts: {\n selectable: !expandedForAnimation,\n openable: false,\n closable: false,\n },\n },\n onClick: handleOnClick,\n });\n\n return (\n <StyledFooterMenu key={id} data-testid=\"leftnav-container\">\n <StyledItemWrapper>\n <StyledItem\n ref={visibleItemsRefs.current[id]}\n tabIndex={expandedForAnimation ? -1 : 0}\n expanded={expandedForAnimation}\n pt=\"xxs2\"\n height={expandedForAnimation ? 'auto' : '48px'}\n alignItems=\"flex-start\"\n pl=\"xxs\"\n cols={expandedForAnimation ? ['auto', '1fr', 'auto'] : ['38px']}\n onClick={expandedForAnimation ? () => null : handleOnClick}\n onKeyDown={onKeyDown}\n onFocus={() => setFocusedItem(id)}\n data-testid=\"leftnav-item-container\"\n role=\"menuitem\"\n aria-label={expandedForAnimation ? `Footer, ${footerLabel}` : `Expand left navigation`}\n >\n {!expandedForAnimation ? (\n <MenuExpand size=\"m\" color={['brand-primary', 800]} data-testid=\"leftnav-footer-btn\" />\n ) : (\n <>\n <StyledLabel\n mt=\"5px\"\n mr=\"12px\"\n mb=\"16px\"\n data-testid=\"leftnav-itemlabel\"\n labelOverflow={labelOverflow}\n aria-live=\"polite\"\n >\n {labelOverflow === 'truncate' ? (\n <SimpleTruncatedTooltipText value={footerLabel} placement=\"bottom-start\" />\n ) : (\n footerLabel\n )}\n </StyledLabel>\n <StyledSeparator mt=\"xxxs\" />\n <Grid m=\"0 12px\">\n <StyledMenuCollapse\n size=\"m\"\n color={['brand-primary', 800]}\n onClick={(e) => {\n e.stopPropagation();\n handleOnClick(e);\n }}\n data-testid=\"leftnav-footer-btn\"\n tabIndex={0}\n onFocus={(e) => {\n e.stopPropagation();\n setFocusedItem(FOOTER_MENU_CLOSE_DS_ID);\n }}\n role=\"button\"\n aria-label=\"Collapse left navigation\"\n />\n </Grid>\n </>\n )}\n </StyledItem>\n </StyledItemWrapper>\n </StyledFooterMenu>\n );\n};\n\nLeftNavFooterItem.propTypes = {\n footerLabel: PropTypes.any,\n onFooterExpand: PropTypes.func,\n onFooterClose: PropTypes.func,\n};\n\nexport default LeftNavFooterItem;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAgB,kBAAkB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,OAAO,UAAU;AACjB,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,OAAO,2BAA2B;AAClC,SAAS,cAAc,+BAA+B;AAQ/C,MAAM,oBAAiE,CAAC,UAAU;AACvF,QAAM,EAAE,aAAa,iBAAiB,MAAM,MAAM,gBAAgB,MAAM,KAAK,IAAI;AACjF,QAAM;AAAA,IACJ,cAAc,EAAE,eAAe,WAAW;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,qBAAqB;AAEpC,QAAM,KAAK;AAEX,QAAM,gBAAgB,uBAAuB,gBAAgB;AAE7D,QAAM,YAAY,sBAAsB;AAAA,IACtC,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,QACR,YAAY,CAAC;AAAA,QACb,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AAED,SACE,oBAAC;AAAA,IAA0B,eAAY;AAAA,IACrC,8BAAC;AAAA,MACC,8BAAC;AAAA,QACC,KAAK,iBAAiB,QAAQ;AAAA,QAC9B,UAAU,uBAAuB,KAAK;AAAA,QACtC,UAAU;AAAA,QACV,IAAG;AAAA,QACH,QAAQ,uBAAuB,SAAS;AAAA,QACxC,YAAW;AAAA,QACX,IAAG;AAAA,QACH,MAAM,uBAAuB,CAAC,QAAQ,OAAO,MAAM,IAAI,CAAC,MAAM;AAAA,QAC9D,SAAS,uBAAuB,MAAM,OAAO;AAAA,QAC7C;AAAA,QACA,SAAS,MAAM,eAAe,EAAE;AAAA,QAChC,eAAY;AAAA,QACZ,MAAK;AAAA,QACL,cAAY,uBAAuB,WAAW,gBAAgB;AAAA,QAE7D,WAAC,uBACA,oBAAC;AAAA,UAAW,MAAK;AAAA,UAAI,OAAO,CAAC,iBAAiB,GAAG;AAAA,UAAG,eAAY;AAAA,SAAqB,IAErF;AAAA,UACE;AAAA,gCAAC;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,eAAY;AAAA,cACZ;AAAA,cACA,aAAU;AAAA,cAET,4BAAkB,aACjB,oBAAC;AAAA,gBAA2B,OAAO;AAAA,gBAAa,WAAU;AAAA,eAAe,IAEzE;AAAA,aAEJ;AAAA,YACA,oBAAC;AAAA,cAAgB,IAAG;AAAA,aAAO;AAAA,YAC3B,oBAAC;AAAA,cAAK,GAAE;AAAA,cACN,8BAAC;AAAA,gBACC,MAAK;AAAA,gBACL,OAAO,CAAC,iBAAiB,GAAG;AAAA,gBAC5B,SAAS,CAAC,MAAM;AACd,oBAAE,gBAAgB;AAClB,gCAAc,CAAC;AAAA,gBACjB;AAAA,gBACA,eAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,SAAS,CAAC,MAAM;AACd,oBAAE,gBAAgB;AAClB,iCAAe,uBAAuB;AAAA,gBACxC;AAAA,gBACA,MAAK;AAAA,gBACL,cAAW;AAAA,eACb;AAAA,aACF;AAAA;AAAA,SACF;AAAA,OAEJ;AAAA,KACF;AAAA,KA1DqB,EA2DvB;AAEJ;AAEA,kBAAkB,YAAY;AAAA,EAC5B,aAAa,UAAU;AAAA,EACvB,gBAAgB,UAAU;AAAA,EAC1B,eAAe,UAAU;AAC3B;AAEA,IAAO,4BAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useContext } from 'react';\nimport { MenuExpand } from '@elliemae/ds-icons';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport {\n StyledFooterMenu,\n StyledFooterItem,\n StyledFooterWrapper,\n StyledFooterLabel,\n StyledFooterSeparator,\n StyledMenuCollapse,\n} from './styled';\nimport { useKeyboardNavigation } from '../../hooks';\nimport LeftNavigationContext from '../../LeftNavigationContext';\nimport { FOOTER_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from '../../exported-related/constants';\n\ntype LeftNavFooterItemProps = {\n footerLabel: string | JSX.Element;\n onFooterExpand: React.MouseEventHandler & React.KeyboardEventHandler;\n onFooterClose: React.MouseEventHandler & React.KeyboardEventHandler;\n};\n\nexport const LeftNavFooterItem: React.ComponentType<LeftNavFooterItemProps> = (props) => {\n const { footerLabel, onFooterExpand = () => null, onFooterClose = () => null } = props;\n const {\n leftNavProps: { labelOverflow },\n expandedForAnimation,\n setFocusedItem,\n visibleItemsRefs,\n } = useContext(LeftNavigationContext);\n\n const id = FOOTER_DS_ID;\n\n const handleOnClick = expandedForAnimation ? onFooterClose : onFooterExpand;\n\n const onKeyDown = useKeyboardNavigation({\n item: {\n dsId: id,\n itemOpts: {\n selectable: !expandedForAnimation,\n openable: false,\n closable: false,\n },\n },\n onClick: handleOnClick,\n });\n\n return (\n <StyledFooterMenu key={id} data-testid=\"leftnav-container\">\n <StyledFooterItem\n ref={visibleItemsRefs.current[id] as React.RefObject<HTMLDivElement>}\n tabIndex={expandedForAnimation ? -1 : 0}\n expanded={expandedForAnimation}\n pt=\"xxs2\"\n height={expandedForAnimation ? 'auto' : '48px'}\n alignItems=\"flex-start\"\n pl=\"xxs2\"\n cols={expandedForAnimation ? ['auto', '1fr', 'auto'] : ['38px']}\n onClick={expandedForAnimation ? () => null : handleOnClick}\n onKeyDown={onKeyDown}\n onFocus={() => setFocusedItem(id)}\n data-testid=\"leftnav-item-container\"\n role=\"menuitem\"\n aria-label={\n expandedForAnimation\n ? `Footer, ${typeof footerLabel === 'string' ? footerLabel : ''}`\n : `Expand left navigation`\n }\n >\n {!expandedForAnimation ? (\n <MenuExpand size=\"m\" color={['brand-primary', 800]} data-testid=\"leftnav-footer-btn\" />\n ) : (\n <>\n <StyledFooterLabel\n mt=\"5px\"\n mr=\"12px\"\n mb=\"16px\"\n data-testid=\"leftnav-itemlabel\"\n labelOverflow={labelOverflow}\n aria-live=\"polite\"\n >\n {labelOverflow === 'truncate' ? (\n <SimpleTruncatedTooltipText value={footerLabel} placement=\"bottom-start\" />\n ) : (\n footerLabel\n )}\n </StyledFooterLabel>\n <StyledFooterSeparator mt=\"xxxs\" />\n <StyledMenuCollapse\n size=\"m\"\n color={['brand-primary', 800]}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n handleOnClick(e);\n }}\n data-testid=\"leftnav-footer-btn\"\n tabIndex={0}\n onFocus={(e: React.FocusEvent) => {\n e.stopPropagation();\n setFocusedItem(FOOTER_MENU_CLOSE_DS_ID);\n }}\n role=\"button\"\n aria-label=\"Collapse left navigation\"\n />\n </>\n )}\n </StyledFooterItem>\n </StyledFooterMenu>\n );\n};\n\nexport default LeftNavFooterItem;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAgB,kBAAkB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,OAAO,2BAA2B;AAClC,SAAS,cAAc,+BAA+B;AAQ/C,MAAM,oBAAiE,CAAC,UAAU;AACvF,QAAM,EAAE,aAAa,iBAAiB,MAAM,MAAM,gBAAgB,MAAM,KAAK,IAAI;AACjF,QAAM;AAAA,IACJ,cAAc,EAAE,cAAc;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,qBAAqB;AAEpC,QAAM,KAAK;AAEX,QAAM,gBAAgB,uBAAuB,gBAAgB;AAE7D,QAAM,YAAY,sBAAsB;AAAA,IACtC,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,QACR,YAAY,CAAC;AAAA,QACb,UAAU;AAAA,QACV,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AAED,SACE,oBAAC;AAAA,IAA0B,eAAY;AAAA,IACrC,8BAAC;AAAA,MACC,KAAK,iBAAiB,QAAQ;AAAA,MAC9B,UAAU,uBAAuB,KAAK;AAAA,MACtC,UAAU;AAAA,MACV,IAAG;AAAA,MACH,QAAQ,uBAAuB,SAAS;AAAA,MACxC,YAAW;AAAA,MACX,IAAG;AAAA,MACH,MAAM,uBAAuB,CAAC,QAAQ,OAAO,MAAM,IAAI,CAAC,MAAM;AAAA,MAC9D,SAAS,uBAAuB,MAAM,OAAO;AAAA,MAC7C;AAAA,MACA,SAAS,MAAM,eAAe,EAAE;AAAA,MAChC,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,cACE,uBACI,WAAW,OAAO,gBAAgB,WAAW,cAAc,OAC3D;AAAA,MAGL,WAAC,uBACA,oBAAC;AAAA,QAAW,MAAK;AAAA,QAAI,OAAO,CAAC,iBAAiB,GAAG;AAAA,QAAG,eAAY;AAAA,OAAqB,IAErF;AAAA,QACE;AAAA,8BAAC;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,eAAY;AAAA,YACZ;AAAA,YACA,aAAU;AAAA,YAET,4BAAkB,aACjB,oBAAC;AAAA,cAA2B,OAAO;AAAA,cAAa,WAAU;AAAA,aAAe,IAEzE;AAAA,WAEJ;AAAA,UACA,oBAAC;AAAA,YAAsB,IAAG;AAAA,WAAO;AAAA,UACjC,oBAAC;AAAA,YACC,MAAK;AAAA,YACL,OAAO,CAAC,iBAAiB,GAAG;AAAA,YAC5B,SAAS,CAAC,MAAwB;AAChC,gBAAE,gBAAgB;AAClB,4BAAc,CAAC;AAAA,YACjB;AAAA,YACA,eAAY;AAAA,YACZ,UAAU;AAAA,YACV,SAAS,CAAC,MAAwB;AAChC,gBAAE,gBAAgB;AAClB,6BAAe,uBAAuB;AAAA,YACxC;AAAA,YACA,MAAK;AAAA,YACL,cAAW;AAAA,WACb;AAAA;AAAA,OACF;AAAA,KAEJ;AAAA,KA1DqB,EA2DvB;AAEJ;AAEA,IAAO,4BAAQ;",
6
6
  "names": []
7
7
  }
@@ -3,20 +3,18 @@ import { styled } from "@elliemae/ds-system";
3
3
  import { Grid } from "@elliemae/ds-grid";
4
4
  import { MenuCollapse } from "@elliemae/ds-icons";
5
5
  import { getLeftBorderStyle, getItemBackgroundStyle } from "../../common";
6
- const StyledFooterMenu = styled(Grid)`
6
+ import { DSLeftNavigationName, DSLeftNavigationSlots } from "../../constants";
7
+ const StyledFooterMenu = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.FOOTER_MENU })`
7
8
  width: 100%;
8
9
  margin-top: auto;
9
10
  background: ${(props) => props.theme.colors.neutral["000"]};
10
11
 
11
- ${getLeftBorderStyle}
12
-
13
12
  border-top: 1px solid ${(props) => props.theme.colors.neutral[100]};
14
13
  `;
15
- const StyledItemWrapper = styled(Grid)`
14
+ const StyledFooterItem = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.FOOTER_ITEM })`
16
15
  position: relative;
17
- padding-left: ${(props) => props.theme.space.xxxs};
18
- `;
19
- const StyledItem = styled(Grid)`
16
+ ${getLeftBorderStyle}
17
+
20
18
  min-height: 48px;
21
19
  cursor: ${(props) => props.expanded ? "auto" : "pointer"};
22
20
 
@@ -37,29 +35,38 @@ const StyledItem = styled(Grid)`
37
35
  }
38
36
  }
39
37
  `;
40
- const StyledLabel = styled(Grid)`
38
+ const StyledFooterLabel = styled(Grid, {
39
+ name: DSLeftNavigationName,
40
+ slot: DSLeftNavigationSlots.FOOTER_LABEL
41
+ })`
41
42
  font-size: 11px;
42
43
  color: ${(props) => props.theme.colors.neutral[500]};
43
44
  line-height: 14px;
44
45
  word-break: ${(props) => props.labelOverflow === "wrapAll" ? "break-all" : "normal"};
45
46
  `;
46
- const StyledSeparator = styled(Grid)`
47
+ const StyledFooterSeparator = styled(Grid, {
48
+ name: DSLeftNavigationName,
49
+ slot: DSLeftNavigationSlots.FOOTER_SEPARATOR
50
+ })`
47
51
  height: 16px;
48
52
  width: 1px;
49
53
  background-color: ${(props) => props.theme.colors.neutral[100]};
50
54
  `;
51
- const StyledMenuCollapse = styled(MenuCollapse)`
55
+ const StyledMenuCollapse = styled(MenuCollapse, {
56
+ name: DSLeftNavigationName,
57
+ slot: DSLeftNavigationSlots.FOOTER_MENU_COLLAPSE
58
+ })`
59
+ margin: 0 12px;
52
60
  cursor: pointer;
53
61
  :focus {
54
62
  outline: 2px solid ${(props) => props.theme.colors.brand[700]};
55
63
  }
56
64
  `;
57
65
  export {
66
+ StyledFooterItem,
67
+ StyledFooterLabel,
58
68
  StyledFooterMenu,
59
- StyledItem,
60
- StyledItemWrapper,
61
- StyledLabel,
62
- StyledMenuCollapse,
63
- StyledSeparator
69
+ StyledFooterSeparator,
70
+ StyledMenuCollapse
64
71
  };
65
72
  //# sourceMappingURL=styled.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/LeftNavFooterItem/styled.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { MenuCollapse } from '@elliemae/ds-icons';\nimport { getLeftBorderStyle, getItemBackgroundStyle } from '../../common';\n\nexport const StyledFooterMenu = styled(Grid)`\n width: 100%;\n margin-top: auto;\n background: ${(props) => props.theme.colors.neutral['000']};\n\n ${getLeftBorderStyle}\n\n border-top: 1px solid ${(props) => props.theme.colors.neutral[100]};\n`;\n\nexport const StyledItemWrapper = styled(Grid)`\n position: relative;\n padding-left: ${(props) => props.theme.space.xxxs};\n`;\n\nexport const StyledItem = styled(Grid)`\n min-height: 48px;\n cursor: ${(props) => (props.expanded ? 'auto' : 'pointer')};\n\n ${getItemBackgroundStyle}\n\n outline: none;\n\n :focus {\n &:before {\n content: '';\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0px;\n border: 2px solid ${(props) => props.theme.colors.brand[600]};\n pointer-events: none;\n }\n }\n`;\n\nexport const StyledLabel = styled(Grid)`\n font-size: 11px;\n color: ${(props) => props.theme.colors.neutral[500]};\n line-height: 14px;\n word-break: ${(props) => (props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal')};\n`;\n\nexport const StyledSeparator = styled(Grid)`\n height: 16px;\n width: 1px;\n background-color: ${(props) => props.theme.colors.neutral[100]};\n`;\n\nexport const StyledMenuCollapse = styled(MenuCollapse)`\n cursor: pointer;\n :focus {\n outline: 2px solid ${(props) => props.theme.colors.brand[700]};\n }\n`;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB,8BAA8B;AAEpD,MAAM,mBAAmB,OAAO,IAAI;AAAA;AAAA;AAAA,gBAG3B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,IAElD;AAAA;AAAA,0BAEsB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGzD,MAAM,oBAAoB,OAAO,IAAI;AAAA;AAAA,kBAE1B,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAGxC,MAAM,aAAa,OAAO,IAAI;AAAA;AAAA,YAEzB,CAAC,UAAW,MAAM,WAAW,SAAS;AAAA;AAAA,IAE9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAYsB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAMvD,MAAM,cAAc,OAAO,IAAI;AAAA;AAAA,WAE3B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAEjC,CAAC,UAAW,MAAM,kBAAkB,YAAY,cAAc;AAAA;AAGvE,MAAM,kBAAkB,OAAO,IAAI;AAAA;AAAA;AAAA,sBAGpB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGrD,MAAM,qBAAqB,OAAO,YAAY;AAAA;AAAA;AAAA,yBAG5B,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { MenuCollapse } from '@elliemae/ds-icons';\nimport { getLeftBorderStyle, getItemBackgroundStyle } from '../../common';\nimport { DSLeftNavigationName, DSLeftNavigationSlots } from '../../constants';\n\nexport const StyledFooterMenu = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.FOOTER_MENU })`\n width: 100%;\n margin-top: auto;\n background: ${(props) => props.theme.colors.neutral['000']};\n\n border-top: 1px solid ${(props) => props.theme.colors.neutral[100]};\n`;\n\nexport const StyledFooterItem = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.FOOTER_ITEM })<{\n expanded: boolean;\n opened: boolean;\n selected: boolean;\n}>`\n position: relative;\n ${getLeftBorderStyle}\n\n min-height: 48px;\n cursor: ${(props) => (props.expanded ? 'auto' : 'pointer')};\n\n ${getItemBackgroundStyle}\n\n outline: none;\n\n :focus {\n &:before {\n content: '';\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0px;\n border: 2px solid ${(props) => props.theme.colors.brand[600]};\n pointer-events: none;\n }\n }\n`;\n\nexport const StyledFooterLabel = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.FOOTER_LABEL,\n})<{ labelOverflow: string }>`\n font-size: 11px;\n color: ${(props) => props.theme.colors.neutral[500]};\n line-height: 14px;\n word-break: ${(props) => (props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal')};\n`;\n\nexport const StyledFooterSeparator = styled(Grid, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.FOOTER_SEPARATOR,\n})`\n height: 16px;\n width: 1px;\n background-color: ${(props) => props.theme.colors.neutral[100]};\n`;\n\nexport const StyledMenuCollapse = styled(MenuCollapse, {\n name: DSLeftNavigationName,\n slot: DSLeftNavigationSlots.FOOTER_MENU_COLLAPSE,\n})`\n margin: 0 12px;\n cursor: pointer;\n :focus {\n outline: 2px solid ${(props) => props.theme.colors.brand[700]};\n }\n`;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB,8BAA8B;AAC3D,SAAS,sBAAsB,6BAA6B;AAErD,MAAM,mBAAmB,OAAO,MAAM,EAAE,MAAM,sBAAsB,MAAM,sBAAsB,YAAY,CAAC;AAAA;AAAA;AAAA,gBAGpG,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,0BAE5B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGzD,MAAM,mBAAmB,OAAO,MAAM,EAAE,MAAM,sBAAsB,MAAM,sBAAsB,YAAY,CAAC;AAAA;AAAA,IAMhH;AAAA;AAAA;AAAA,YAGQ,CAAC,UAAW,MAAM,WAAW,SAAS;AAAA;AAAA,IAE9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAYsB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAMvD,MAAM,oBAAoB,OAAO,MAAM;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA,WAEU,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAEjC,CAAC,UAAW,MAAM,kBAAkB,YAAY,cAAc;AAAA;AAGvE,MAAM,wBAAwB,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA,sBAGqB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGrD,MAAM,qBAAqB,OAAO,cAAc;AAAA,EACrD,MAAM;AAAA,EACN,MAAM,sBAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;AAAA,yBAIwB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,8 @@ import { jsx } from "react/jsx-runtime";
3
3
  import DSCircularProgressIndicator from "@elliemae/ds-circular-progress-indicator";
4
4
  import Grid from "@elliemae/ds-grid";
5
5
  import { styled } from "@elliemae/ds-system";
6
- const StyledLoaderWrapper = styled(Grid)`
6
+ import { DSLeftNavigationName, DSLeftNavigationSlots } from "../../constants";
7
+ const StyledLoaderWrapper = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.LOADER_WRAPPER })`
7
8
  grid-area: left-nav-body;
8
9
  height: 100%;
9
10
  place-items: center;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/LeftNavLoading/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport DSCircularProgressIndicator from '@elliemae/ds-circular-progress-indicator';\nimport Grid from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\n\nconst StyledLoaderWrapper = styled(Grid)`\n grid-area: left-nav-body;\n height: 100%;\n place-items: center;\n z-index: 0;\n background-color: white;\n`;\n\nexport const LeftNavLoading: React.ComponentType<{ expanded: boolean }> = ({ expanded }) => (\n <StyledLoaderWrapper>\n <DSCircularProgressIndicator\n size={expanded ? 'xl' : 'm'}\n loading\n showLabel={expanded}\n waiting={false}\n showTooltip={!expanded}\n />\n </StyledLoaderWrapper>\n);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,OAAO,iCAAiC;AACxC,OAAO,UAAU;AACjB,SAAS,cAAc;AAEvB,MAAM,sBAAsB,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQhC,MAAM,iBAA6D,CAAC,EAAE,SAAS,MACpF,oBAAC;AAAA,EACC,8BAAC;AAAA,IACC,MAAM,WAAW,OAAO;AAAA,IACxB,SAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,aAAa,CAAC;AAAA,GAChB;AAAA,CACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport DSCircularProgressIndicator from '@elliemae/ds-circular-progress-indicator';\nimport Grid from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DSLeftNavigationName, DSLeftNavigationSlots } from '../../constants';\n\nconst StyledLoaderWrapper = styled(Grid, { name: DSLeftNavigationName, slot: DSLeftNavigationSlots.LOADER_WRAPPER })`\n grid-area: left-nav-body;\n height: 100%;\n place-items: center;\n z-index: 0;\n background-color: white;\n`;\n\nexport const LeftNavLoading: React.ComponentType<{ expanded: boolean }> = ({ expanded }) => (\n <StyledLoaderWrapper>\n <DSCircularProgressIndicator\n size={expanded ? 'xl' : 'm'}\n loading\n showLabel={expanded}\n waiting={false}\n showTooltip={!expanded}\n />\n </StyledLoaderWrapper>\n);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,OAAO,iCAAiC;AACxC,OAAO,UAAU;AACjB,SAAS,cAAc;AACvB,SAAS,sBAAsB,6BAA6B;AAE5D,MAAM,sBAAsB,OAAO,MAAM,EAAE,MAAM,sBAAsB,MAAM,sBAAsB,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ5G,MAAM,iBAA6D,CAAC,EAAE,SAAS,MACpF,oBAAC;AAAA,EACC,8BAAC;AAAA,IACC,MAAM,WAAW,OAAO;AAAA,IACxB,SAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,aAAa,CAAC;AAAA,GAChB;AAAA,CACF;",
6
6
  "names": []
7
7
  }
@@ -16,6 +16,8 @@ const OutOfTheBoxMapItem = (props) => {
16
16
  ctx
17
17
  });
18
18
  }
19
+ if (!Component)
20
+ return null;
19
21
  return /* @__PURE__ */ jsx(Component, {
20
22
  item,
21
23
  ctx
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/OutOfTheBoxMapItem.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { outOfTheBoxComponents } from '../outOfTheBox';\nimport { OutOfTheBoxMapItemT } from '../index.d';\nimport { LeftNavContext } from '../LeftNavigationContext';\n\nexport const OutOfTheBoxMapItem = (props: OutOfTheBoxMapItemT): JSX.Element => {\n const {\n item,\n item: { type, Component },\n } = props;\n const ctx = React.useContext(LeftNavContext);\n\n if (typeof type === 'string' && !!outOfTheBoxComponents[type]) {\n const OutOfTheBoxComponent = outOfTheBoxComponents[type];\n return <OutOfTheBoxComponent item={{ itemOpts: {}, ...item }} ctx={ctx} />;\n }\n // we expect an error to be threw if Component is not defined and type is not a valid out-of-the-box...\n return <Component item={item} ctx={ctx} />;\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,OAAOA,YAAW;AAClB,SAAS,6BAA6B;AAEtC,SAAS,sBAAsB;AAExB,MAAM,qBAAqB,CAAC,UAA4C;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU;AAAA,EAC1B,IAAI;AACJ,QAAM,MAAMA,OAAM,WAAW,cAAc;AAE3C,MAAI,OAAO,SAAS,YAAY,CAAC,CAAC,sBAAsB,OAAO;AAC7D,UAAM,uBAAuB,sBAAsB;AACnD,WAAO,oBAAC;AAAA,MAAqB,MAAM,EAAE,UAAU,CAAC,GAAG,GAAG,KAAK;AAAA,MAAG;AAAA,KAAU;AAAA,EAC1E;AAEA,SAAO,oBAAC;AAAA,IAAU;AAAA,IAAY;AAAA,GAAU;AAC1C;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { outOfTheBoxComponents } from '../outOfTheBox';\nimport { OutOfTheBoxMapItemT } from '../index.d';\nimport { LeftNavContext } from '../LeftNavigationContext';\n\nexport const OutOfTheBoxMapItem: React.ComponentType<OutOfTheBoxMapItemT> = (props) => {\n const {\n item,\n item: { type, Component },\n } = props;\n const ctx = React.useContext(LeftNavContext);\n\n if (typeof type === 'string' && !!outOfTheBoxComponents[type]) {\n const OutOfTheBoxComponent = outOfTheBoxComponents[type];\n return <OutOfTheBoxComponent item={{ itemOpts: {}, ...item }} ctx={ctx} />;\n }\n if (!Component) return null;\n // we expect an error to be threw if Component is not defined and type is not a valid out-of-the-box...\n return <Component item={item} ctx={ctx} />;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,OAAOA,YAAW;AAClB,SAAS,6BAA6B;AAEtC,SAAS,sBAAsB;AAExB,MAAM,qBAA+D,CAAC,UAAU;AACrF,QAAM;AAAA,IACJ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU;AAAA,EAC1B,IAAI;AACJ,QAAM,MAAMA,OAAM,WAAW,cAAc;AAE3C,MAAI,OAAO,SAAS,YAAY,CAAC,CAAC,sBAAsB,OAAO;AAC7D,UAAM,uBAAuB,sBAAsB;AACnD,WAAO,oBAAC;AAAA,MAAqB,MAAM,EAAE,UAAU,CAAC,GAAG,GAAG,KAAK;AAAA,MAAG;AAAA,KAAU;AAAA,EAC1E;AACA,MAAI,CAAC;AAAW,WAAO;AAEvB,SAAO,oBAAC;AAAA,IAAU;AAAA,IAAY;AAAA,GAAU;AAC1C;",
6
6
  "names": ["React"]
7
7
  }