@elliemae/ds-global-header 3.55.0-next.9 → 3.56.0-rc.1

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 (91) hide show
  1. package/dist/cjs/DSGlobalHeader.js +1 -1
  2. package/dist/cjs/DSGlobalHeader.js.map +2 -2
  3. package/dist/cjs/DSGlobalHeaderContext.js.map +2 -2
  4. package/dist/cjs/config/useGlobalHeader.js +2 -2
  5. package/dist/cjs/config/useGlobalHeader.js.map +2 -2
  6. package/dist/cjs/config/useValidateProps.js.map +2 -2
  7. package/dist/cjs/exported-related/index.js +3 -13
  8. package/dist/cjs/exported-related/index.js.map +2 -2
  9. package/dist/cjs/index.js +3 -10
  10. package/dist/cjs/index.js.map +3 -3
  11. package/dist/cjs/parts/Breadcrumb/GlobalHeaderBreadcrumb.js +1 -1
  12. package/dist/cjs/parts/Breadcrumb/GlobalHeaderBreadcrumb.js.map +2 -2
  13. package/dist/cjs/parts/Breadcrumb/PureBreadcrumb.js +14 -3
  14. package/dist/cjs/parts/Breadcrumb/PureBreadcrumb.js.map +2 -2
  15. package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +2 -2
  16. package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +2 -2
  17. package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js +115 -89
  18. package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js.map +3 -3
  19. package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +12 -5
  20. package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +2 -2
  21. package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +6 -4
  22. package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +2 -2
  23. package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +5 -3
  24. package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
  25. package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +10 -8
  26. package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +2 -2
  27. package/dist/cjs/react-desc-prop-types.js +23 -28
  28. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  29. package/dist/cjs/sharedTypes.js.map +1 -1
  30. package/dist/cjs/typescript-testing/typescript-global-header-valid.js +11 -21
  31. package/dist/cjs/typescript-testing/typescript-global-header-valid.js.map +2 -2
  32. package/dist/esm/DSGlobalHeader.js +2 -2
  33. package/dist/esm/DSGlobalHeader.js.map +2 -2
  34. package/dist/esm/DSGlobalHeaderContext.js.map +2 -2
  35. package/dist/esm/config/useGlobalHeader.js +2 -2
  36. package/dist/esm/config/useGlobalHeader.js.map +2 -2
  37. package/dist/esm/config/useValidateProps.js +5 -5
  38. package/dist/esm/config/useValidateProps.js.map +2 -2
  39. package/dist/esm/exported-related/index.js +2 -9
  40. package/dist/esm/exported-related/index.js.map +2 -2
  41. package/dist/esm/index.js +2 -16
  42. package/dist/esm/index.js.map +3 -3
  43. package/dist/esm/parts/Breadcrumb/GlobalHeaderBreadcrumb.js +1 -1
  44. package/dist/esm/parts/Breadcrumb/GlobalHeaderBreadcrumb.js.map +2 -2
  45. package/dist/esm/parts/Breadcrumb/PureBreadcrumb.js +14 -3
  46. package/dist/esm/parts/Breadcrumb/PureBreadcrumb.js.map +2 -2
  47. package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +3 -3
  48. package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +2 -2
  49. package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js +113 -87
  50. package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js.map +3 -3
  51. package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +12 -5
  52. package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +2 -2
  53. package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +6 -4
  54. package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +2 -2
  55. package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +5 -3
  56. package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
  57. package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +8 -6
  58. package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +2 -2
  59. package/dist/esm/react-desc-prop-types.js +23 -28
  60. package/dist/esm/react-desc-prop-types.js.map +2 -2
  61. package/dist/esm/typescript-testing/typescript-global-header-valid.js +11 -21
  62. package/dist/esm/typescript-testing/typescript-global-header-valid.js.map +2 -2
  63. package/dist/types/DSGlobalHeader.d.ts +1 -1
  64. package/dist/types/DSGlobalHeaderContext.d.ts +2 -2
  65. package/dist/types/config/useGlobalHeader.d.ts +3 -2
  66. package/dist/types/exported-related/index.d.ts +2 -2
  67. package/dist/types/index.d.ts +4 -4
  68. package/dist/types/parts/Breadcrumb/PureBreadcrumb.d.ts +2 -6
  69. package/dist/types/parts/Breadcrumb/useGlobalHeaderBreadcrumb.d.ts +4 -4
  70. package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.d.ts +2 -6
  71. package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.d.ts +2 -2
  72. package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.d.ts +2 -2
  73. package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.d.ts +2 -2
  74. package/dist/types/react-desc-prop-types.d.ts +6 -151
  75. package/dist/types/sharedTypes.d.ts +133 -47
  76. package/package.json +11 -11
  77. package/dist/cjs/typescript-testing/typescript-global-header-breadcrumb-types.js +0 -67
  78. package/dist/cjs/typescript-testing/typescript-global-header-breadcrumb-types.js.map +0 -7
  79. package/dist/cjs/typescript-testing/typescript-global-header-deprecated.js +0 -73
  80. package/dist/cjs/typescript-testing/typescript-global-header-deprecated.js.map +0 -7
  81. package/dist/cjs/typescript-testing/typescript-global-header-toolbar-types.js +0 -285
  82. package/dist/cjs/typescript-testing/typescript-global-header-toolbar-types.js.map +0 -7
  83. package/dist/esm/typescript-testing/typescript-global-header-breadcrumb-types.js +0 -37
  84. package/dist/esm/typescript-testing/typescript-global-header-breadcrumb-types.js.map +0 -7
  85. package/dist/esm/typescript-testing/typescript-global-header-deprecated.js +0 -50
  86. package/dist/esm/typescript-testing/typescript-global-header-deprecated.js.map +0 -7
  87. package/dist/esm/typescript-testing/typescript-global-header-toolbar-types.js +0 -255
  88. package/dist/esm/typescript-testing/typescript-global-header-toolbar-types.js.map +0 -7
  89. package/dist/types/typescript-testing/typescript-global-header-breadcrumb-types.d.ts +0 -3
  90. package/dist/types/typescript-testing/typescript-global-header-deprecated.d.ts +0 -1
  91. package/dist/types/typescript-testing/typescript-global-header-toolbar-types.d.ts +0 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/typescript-testing/typescript-global-header-valid.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-unused-vars, no-unused-vars */\nimport React from 'react';\nimport type { DSGlobalHeaderT } from '../index.js';\nimport { DSGlobalHeader } from '../index.js';\nimport { breadcrumbItems, breadcrumbItemsAsSyntax } from './typescript-global-header-breadcrumb-types.js';\nimport { toolbarItemsStrict, toolbarItemsAsSyntax } from './typescript-global-header-toolbar-types.js';\n\n// test we expose the namespace and the namespace follows our deliverable conventions\ntype ComponentPropsForApp = DSGlobalHeaderT.Props;\ntype ComponentPropsInternals = DSGlobalHeaderT.InternalProps;\ntype ComponentPropsDefaultProps = DSGlobalHeaderT.DefaultProps;\n\n// difference Props and InternalProps is that InternalProps has all the default props filled in\n// Props allows for partial defaults\nconst testPartialDefaults: Partial<ComponentPropsDefaultProps> = {\n breadcrumb: breadcrumbItems,\n toolbar: toolbarItemsStrict,\n LogoWithBrand: () => null,\n Logo: () => null,\n};\n\nconst testPropsAsSyntax = {\n ...testPartialDefaults,\n} as ComponentPropsForApp;\n\n// InternalProps requires all defaults to be filled in\nconst testCompleteDefaults: Required<ComponentPropsDefaultProps> = {\n breadcrumb: breadcrumbItems,\n toolbar: toolbarItemsStrict,\n LogoWithBrand: () => null,\n Logo: () => null,\n CustomNavigation: () => null,\n};\n\nconst testInternalProps: ComponentPropsInternals = {\n ...testCompleteDefaults,\n};\n\nconst testInternalPropsAsSyntax = {\n ...testCompleteDefaults,\n} as ComponentPropsInternals;\n\n// using the explicit type definition, if there is an error, it will be marked on the key that is wrong\nconst testExplicitDefinition: ComponentPropsForApp = {\n breadcrumb: breadcrumbItems,\n toolbar: toolbarItemsStrict,\n LogoWithBrand: () => null,\n Logo: () => null,\n};\n\n// using the \"as\" syntax, if there is an error, it will be marking the whole object as wrong because it is not compatible with the type\nconst testInferedTypeCompatibility = {\n breadcrumb: breadcrumbItemsAsSyntax,\n toolbar: toolbarItemsAsSyntax,\n LogoWithBrand: () => null,\n Logo: () => null,\n} as ComponentPropsForApp;\n\nconst testDefinitionAsConst = {\n breadcrumb: breadcrumbItemsAsSyntax,\n toolbar: toolbarItemsAsSyntax,\n LogoWithBrand: () => null,\n Logo: () => null,\n} as const;\n\nconst ExampleUsageComponent = () => (\n <>\n {/* works with explicitly casted props, all syntaxes */}\n <DSGlobalHeader {...testExplicitDefinition} />\n <DSGlobalHeader {...testInferedTypeCompatibility} />\n <DSGlobalHeader {...testDefinitionAsConst} />\n {/* works with inline values */}\n <DSGlobalHeader\n breadcrumb={breadcrumbItems}\n toolbar={toolbarItemsStrict}\n LogoWithBrand={() => null}\n Logo={() => null}\n />\n </>\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAuB;ACmErB;AA/DF,eAA+B;AAC/B,uDAAyD;AACzD,oDAAyD;AASzD,MAAM,sBAA2D;AAAA,EAC/D,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,oBAAoB;AAAA,EACxB,GAAG;AACL;AAGA,MAAM,uBAA6D;AAAA,EACjE,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AAAA,EACZ,kBAAkB,MAAM;AAC1B;AAEA,MAAM,oBAA6C;AAAA,EACjD,GAAG;AACL;AAEA,MAAM,4BAA4B;AAAA,EAChC,GAAG;AACL;AAGA,MAAM,yBAA+C;AAAA,EACnD,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAGA,MAAM,+BAA+B;AAAA,EACnC,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,wBAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,wBAAwB,MAC5B,4EAEE;AAAA,8CAAC,2BAAgB,GAAG,wBAAwB;AAAA,EAC5C,4CAAC,2BAAgB,GAAG,8BAA8B;AAAA,EAClD,4CAAC,2BAAgB,GAAG,uBAAuB;AAAA,EAE3C;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,eAAe,MAAM;AAAA,MACrB,MAAM,MAAM;AAAA;AAAA,EACd;AAAA,GACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars, no-unused-vars */\nimport { createRef } from 'react';\nimport { DSGlobalHeader } from '../index.js';\nimport type { DSGlobalHeaderInternalsT, DSGlobalHeaderT } from '../index.js';\n\n// test we expose the namespace and the namespace follows our deliverable conventions\ntype ComponentPropsForApp = DSGlobalHeaderT.Props;\ntype ComponentPropsInternals = DSGlobalHeaderInternalsT.InternalProps;\ntype ComponentPropsDefaultProps = DSGlobalHeaderInternalsT.DefaultProps;\n\n// difference Props and InternalProps is that InternalProps has all the default props filled in\n// Props allows for partial defaults\nconst testPartialDefaults: Partial<ComponentPropsDefaultProps> = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: () => null,\n Logo: () => null,\n};\n\nconst testPropsAsSyntax = {\n ...testPartialDefaults,\n} as ComponentPropsForApp;\n\n// InternalProps requires all defaults to be filled in\nconst testCompleteDefaults: Required<ComponentPropsDefaultProps> = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: () => null,\n Logo: () => null,\n CustomNavigation: () => null,\n};\n\nconst testInternalProps: ComponentPropsInternals = {\n ...testCompleteDefaults,\n};\n\nconst testInternalPropsAsSyntax = {\n ...testCompleteDefaults,\n} as ComponentPropsInternals;\n\n// using the explicit type definition, if there is an error, it will be marked on the key that is wrong\nconst testExplicitDefinition: ComponentPropsForApp = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: () => null,\n Logo: () => null,\n};\n\n// using the \"as\" syntax, if there is an error, it will be marking the whole object as wrong because it is not compatible with the type\nconst testInferedTypeCompatibility = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: () => null,\n Logo: () => null,\n} as ComponentPropsForApp;\n\nconst testDefinitionAsConst = {\n breadcrumb: [] as DSGlobalHeaderInternalsT.BreadcrumbItem[],\n toolbar: [] as DSGlobalHeaderInternalsT.ToolbarItem[],\n LogoWithBrand: () => null,\n Logo: () => null,\n} as const;\n\nconst ExampleUsageComponent = () => (\n <>\n {/* works with explicitly casted props, all syntaxes */}\n <DSGlobalHeader {...testExplicitDefinition} />\n <DSGlobalHeader {...testInferedTypeCompatibility} />\n <DSGlobalHeader {...testDefinitionAsConst} />\n {/* works with inline values */}\n <DSGlobalHeader breadcrumb={[]} toolbar={[]} LogoWithBrand={() => null} Logo={() => null} />\n </>\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAuB;ACgErB;AA9DF,eAA+B;AAU/B,MAAM,sBAA2D;AAAA,EAC/D,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,oBAAoB;AAAA,EACxB,GAAG;AACL;AAGA,MAAM,uBAA6D;AAAA,EACjE,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AAAA,EACZ,kBAAkB,MAAM;AAC1B;AAEA,MAAM,oBAA6C;AAAA,EACjD,GAAG;AACL;AAEA,MAAM,4BAA4B;AAAA,EAChC,GAAG;AACL;AAGA,MAAM,yBAA+C;AAAA,EACnD,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAGA,MAAM,+BAA+B;AAAA,EACnC,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,wBAAwB;AAAA,EAC5B,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe,MAAM;AAAA,EACrB,MAAM,MAAM;AACd;AAEA,MAAM,wBAAwB,MAC5B,4EAEE;AAAA,8CAAC,2BAAgB,GAAG,wBAAwB;AAAA,EAC5C,4CAAC,2BAAgB,GAAG,8BAA8B;AAAA,EAClD,4CAAC,2BAAgB,GAAG,uBAAuB;AAAA,EAE3C,4CAAC,2BAAe,YAAY,CAAC,GAAG,SAAS,CAAC,GAAG,eAAe,MAAM,MAAM,MAAM,MAAM,MAAM;AAAA,GAC5F;",
6
6
  "names": []
7
7
  }
@@ -4,7 +4,7 @@ import { useMemo } from "react";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
5
  import { useGetLayoutMode } from "@elliemae/ds-system";
6
6
  import { useGetGlobalAttributes, useGetXstyledProps, describe } from "@elliemae/ds-props-helpers";
7
- import { DSGlobalHeaderPropTypesSchema } from "./react-desc-prop-types.js";
7
+ import { propTypes } from "./react-desc-prop-types.js";
8
8
  import { GlobalHeaderLogo } from "./parts/Logo/GlobalHeaderLogo.js";
9
9
  import { GlobalHeaderBreadcrumb } from "./parts/Breadcrumb/GlobalHeaderBreadcrumb.js";
10
10
  import { GlobalHeaderToolbar } from "./parts/Toolbar/GlobalHeaderToolbar.js";
@@ -68,7 +68,7 @@ const DSGlobalHeader = (props) => {
68
68
  };
69
69
  DSGlobalHeader.displayName = DSGlobalHeaderName;
70
70
  const DSGlobalHeaderWithSchema = describe(DSGlobalHeader).description("DSGlobalHeader");
71
- DSGlobalHeaderWithSchema.propTypes = DSGlobalHeaderPropTypesSchema;
71
+ DSGlobalHeaderWithSchema.propTypes = propTypes;
72
72
  const GlobalHeader = DSGlobalHeader;
73
73
  export {
74
74
  DSGlobalHeader,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/DSGlobalHeader.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport { type DSGridT, Grid } from '@elliemae/ds-grid';\nimport { useGetLayoutMode } from '@elliemae/ds-system';\nimport { useGetGlobalAttributes, useGetXstyledProps, describe } from '@elliemae/ds-props-helpers';\nimport { DSGlobalHeaderPropTypesSchema, type DSGlobalHeaderT } from './react-desc-prop-types.js';\nimport { GlobalHeaderLogo } from './parts/Logo/GlobalHeaderLogo.js';\nimport { GlobalHeaderBreadcrumb } from './parts/Breadcrumb/GlobalHeaderBreadcrumb.js';\nimport { GlobalHeaderToolbar } from './parts/Toolbar/GlobalHeaderToolbar.js';\nimport { DSGlobalHeaderContext } from './DSGlobalHeaderContext.js';\nimport { useGlobalHeader } from './config/useGlobalHeader.js';\nimport { useValidateProps } from './config/useValidateProps.js';\nimport { DSGlobalHeaderName } from './exported-related/index.js';\nimport { FONT_DETECTOR } from './config/constants.js';\nimport { Container } from './parts/styles.js';\n\nconst DSGlobalHeader = (props: DSGlobalHeaderT.Props): JSX.Element => {\n useValidateProps(props);\n const ctx = useGlobalHeader(props);\n const {\n props: { toolbar },\n ownerProps,\n fontDetector,\n } = ctx;\n const propsWithDefaults = ctx.props;\n const globalAttrs = useGetGlobalAttributes<DSGlobalHeaderT.Props, HTMLDivElement, DSGridT.Props>(propsWithDefaults);\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults);\n const layoutMode = useGetLayoutMode();\n\n const cols2 = useMemo(() => {\n if (['l'].includes(layoutMode!)) {\n return ['1fr', 'auto'];\n }\n if (['m', 's'].includes(layoutMode!)) {\n return ['1fr'];\n }\n if (['xs'].includes(layoutMode!)) {\n return ['auto'];\n }\n if (fontDetector > FONT_DETECTOR.SMALL) {\n return ['auto', '1fr'];\n }\n return ['1fr', 'auto'];\n }, [fontDetector, layoutMode]);\n\n const cols = useMemo(() => {\n if (['xs'].includes(layoutMode!)) {\n return ['auto'];\n }\n return ['auto', '1fr'];\n }, [layoutMode]);\n\n return (\n <Container\n {...globalAttrs}\n {...xstyledAttrs}\n {...ownerProps}\n forwardedAs=\"header\"\n data-testid=\"ds-global-header\"\n cols={cols2}\n >\n <DSGlobalHeaderContext.Provider value={ctx}>\n <Grid cols={cols}>\n <GlobalHeaderLogo />\n <GlobalHeaderBreadcrumb />\n </Grid>\n {toolbar.length ? <GlobalHeaderToolbar /> : null}\n </DSGlobalHeaderContext.Provider>\n </Container>\n );\n};\n\nDSGlobalHeader.displayName = DSGlobalHeaderName;\nconst DSGlobalHeaderWithSchema = describe(DSGlobalHeader).description('DSGlobalHeader');\nDSGlobalHeaderWithSchema.propTypes = DSGlobalHeaderPropTypesSchema;\n\nconst GlobalHeader = DSGlobalHeader;\n\nexport { GlobalHeader, DSGlobalHeader, DSGlobalHeaderWithSchema };\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC6Df,SACE,KADF;AA7DR,SAAgB,eAAe;AAC/B,SAAuB,YAAY;AACnC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB,oBAAoB,gBAAgB;AACrE,SAAS,qCAA2D;AACpE,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAE1B,MAAM,iBAAiB,CAAC,UAA8C;AACpE,mBAAiB,KAAK;AACtB,QAAM,MAAM,gBAAgB,KAAK;AACjC,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ;AAAA,IACjB;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,oBAAoB,IAAI;AAC9B,QAAM,cAAc,uBAA6E,iBAAiB;AAClH,QAAM,eAAe,mBAAmB,iBAAiB;AACzD,QAAM,aAAa,iBAAiB;AAEpC,QAAM,QAAQ,QAAQ,MAAM;AAC1B,QAAI,CAAC,GAAG,EAAE,SAAS,UAAW,GAAG;AAC/B,aAAO,CAAC,OAAO,MAAM;AAAA,IACvB;AACA,QAAI,CAAC,KAAK,GAAG,EAAE,SAAS,UAAW,GAAG;AACpC,aAAO,CAAC,KAAK;AAAA,IACf;AACA,QAAI,CAAC,IAAI,EAAE,SAAS,UAAW,GAAG;AAChC,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,QAAI,eAAe,cAAc,OAAO;AACtC,aAAO,CAAC,QAAQ,KAAK;AAAA,IACvB;AACA,WAAO,CAAC,OAAO,MAAM;AAAA,EACvB,GAAG,CAAC,cAAc,UAAU,CAAC;AAE7B,QAAM,OAAO,QAAQ,MAAM;AACzB,QAAI,CAAC,IAAI,EAAE,SAAS,UAAW,GAAG;AAChC,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC,QAAQ,KAAK;AAAA,EACvB,GAAG,CAAC,UAAU,CAAC;AAEf,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,aAAY;AAAA,MACZ,eAAY;AAAA,MACZ,MAAM;AAAA,MAEN,+BAAC,sBAAsB,UAAtB,EAA+B,OAAO,KACrC;AAAA,6BAAC,QAAK,MACJ;AAAA,8BAAC,oBAAiB;AAAA,UAClB,oBAAC,0BAAuB;AAAA,WAC1B;AAAA,QACC,QAAQ,SAAS,oBAAC,uBAAoB,IAAK;AAAA,SAC9C;AAAA;AAAA,EACF;AAEJ;AAEA,eAAe,cAAc;AAC7B,MAAM,2BAA2B,SAAS,cAAc,EAAE,YAAY,gBAAgB;AACtF,yBAAyB,YAAY;AAErC,MAAM,eAAe;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport { type DSGridT, Grid } from '@elliemae/ds-grid';\nimport { useGetLayoutMode } from '@elliemae/ds-system';\nimport { useGetGlobalAttributes, useGetXstyledProps, describe } from '@elliemae/ds-props-helpers';\nimport { propTypes, type DSGlobalHeaderT } from './react-desc-prop-types.js';\nimport { GlobalHeaderLogo } from './parts/Logo/GlobalHeaderLogo.js';\nimport { GlobalHeaderBreadcrumb } from './parts/Breadcrumb/GlobalHeaderBreadcrumb.js';\nimport { GlobalHeaderToolbar } from './parts/Toolbar/GlobalHeaderToolbar.js';\nimport { DSGlobalHeaderContext } from './DSGlobalHeaderContext.js';\nimport { useGlobalHeader } from './config/useGlobalHeader.js';\nimport { useValidateProps } from './config/useValidateProps.js';\nimport { DSGlobalHeaderName } from './exported-related/index.js';\nimport { FONT_DETECTOR } from './config/constants.js';\nimport { Container } from './parts/styles.js';\n\nconst DSGlobalHeader = (props: DSGlobalHeaderT.Props): JSX.Element => {\n useValidateProps(props);\n const ctx = useGlobalHeader(props);\n const {\n props: { toolbar },\n ownerProps,\n fontDetector,\n } = ctx;\n const propsWithDefaults = ctx.props;\n const globalAttrs = useGetGlobalAttributes<DSGlobalHeaderT.Props, HTMLDivElement, DSGridT.Props>(propsWithDefaults);\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults);\n const layoutMode = useGetLayoutMode();\n\n const cols2 = useMemo(() => {\n if (['l'].includes(layoutMode!)) {\n return ['1fr', 'auto'];\n }\n if (['m', 's'].includes(layoutMode!)) {\n return ['1fr'];\n }\n if (['xs'].includes(layoutMode!)) {\n return ['auto'];\n }\n if (fontDetector > FONT_DETECTOR.SMALL) {\n return ['auto', '1fr'];\n }\n return ['1fr', 'auto'];\n }, [fontDetector, layoutMode]);\n\n const cols = useMemo(() => {\n if (['xs'].includes(layoutMode!)) {\n return ['auto'];\n }\n return ['auto', '1fr'];\n }, [layoutMode]);\n\n return (\n <Container\n {...globalAttrs}\n {...xstyledAttrs}\n {...ownerProps}\n forwardedAs=\"header\"\n data-testid=\"ds-global-header\"\n cols={cols2}\n >\n <DSGlobalHeaderContext.Provider value={ctx}>\n <Grid cols={cols}>\n <GlobalHeaderLogo />\n <GlobalHeaderBreadcrumb />\n </Grid>\n {toolbar.length ? <GlobalHeaderToolbar /> : null}\n </DSGlobalHeaderContext.Provider>\n </Container>\n );\n};\n\nDSGlobalHeader.displayName = DSGlobalHeaderName;\nconst DSGlobalHeaderWithSchema = describe(DSGlobalHeader).description('DSGlobalHeader');\nDSGlobalHeaderWithSchema.propTypes = propTypes;\n\nconst GlobalHeader = DSGlobalHeader;\n\nexport { GlobalHeader, DSGlobalHeader, DSGlobalHeaderWithSchema };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC6Df,SACE,KADF;AA7DR,SAAgB,eAAe;AAC/B,SAAuB,YAAY;AACnC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB,oBAAoB,gBAAgB;AACrE,SAAS,iBAAuC;AAChD,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAE1B,MAAM,iBAAiB,CAAC,UAA8C;AACpE,mBAAiB,KAAK;AACtB,QAAM,MAAM,gBAAgB,KAAK;AACjC,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ;AAAA,IACjB;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,oBAAoB,IAAI;AAC9B,QAAM,cAAc,uBAA6E,iBAAiB;AAClH,QAAM,eAAe,mBAAmB,iBAAiB;AACzD,QAAM,aAAa,iBAAiB;AAEpC,QAAM,QAAQ,QAAQ,MAAM;AAC1B,QAAI,CAAC,GAAG,EAAE,SAAS,UAAW,GAAG;AAC/B,aAAO,CAAC,OAAO,MAAM;AAAA,IACvB;AACA,QAAI,CAAC,KAAK,GAAG,EAAE,SAAS,UAAW,GAAG;AACpC,aAAO,CAAC,KAAK;AAAA,IACf;AACA,QAAI,CAAC,IAAI,EAAE,SAAS,UAAW,GAAG;AAChC,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,QAAI,eAAe,cAAc,OAAO;AACtC,aAAO,CAAC,QAAQ,KAAK;AAAA,IACvB;AACA,WAAO,CAAC,OAAO,MAAM;AAAA,EACvB,GAAG,CAAC,cAAc,UAAU,CAAC;AAE7B,QAAM,OAAO,QAAQ,MAAM;AACzB,QAAI,CAAC,IAAI,EAAE,SAAS,UAAW,GAAG;AAChC,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC,QAAQ,KAAK;AAAA,EACvB,GAAG,CAAC,UAAU,CAAC;AAEf,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,aAAY;AAAA,MACZ,eAAY;AAAA,MACZ,MAAM;AAAA,MAEN,+BAAC,sBAAsB,UAAtB,EAA+B,OAAO,KACrC;AAAA,6BAAC,QAAK,MACJ;AAAA,8BAAC,oBAAiB;AAAA,UAClB,oBAAC,0BAAuB;AAAA,WAC1B;AAAA,QACC,QAAQ,SAAS,oBAAC,uBAAoB,IAAK;AAAA,SAC9C;AAAA;AAAA,EACF;AAEJ;AAEA,eAAe,cAAc;AAC7B,MAAM,2BAA2B,SAAS,cAAc,EAAE,YAAY,gBAAgB;AACtF,yBAAyB,YAAY;AAErC,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/DSGlobalHeaderContext.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createContext } from 'react';\nimport type { DSGlobalHeaderT } from './react-desc-prop-types.js';\n\nconst defaultContext = {} as DSGlobalHeaderT.Context;\n\nexport const DSGlobalHeaderContext = createContext<DSGlobalHeaderT.Context>(defaultContext);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,qBAAqB;AAG9B,MAAM,iBAAiB,CAAC;AAEjB,MAAM,wBAAwB,cAAuC,cAAc;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createContext } from 'react';\nimport type { DSGlobalHeaderInternalsT } from './sharedTypes.js';\n\nconst defaultContext = {} as DSGlobalHeaderInternalsT.Context;\n\nexport const DSGlobalHeaderContext = createContext<DSGlobalHeaderInternalsT.Context>(defaultContext);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,qBAAqB;AAG9B,MAAM,iBAAiB,CAAC;AAEjB,MAAM,wBAAwB,cAAgD,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
+ import { useState, useMemo } from "react";
3
+ import { uid } from "uid";
2
4
  import { useFontsizeMedia } from "@elliemae/ds-hooks-fontsize-media";
3
5
  import { useMemoMergePropsWithDefault, useOwnerProps } from "@elliemae/ds-props-helpers";
4
- import { useMemo, useState } from "react";
5
- import { uid } from "uid";
6
6
  import { defaultProps } from "../react-desc-prop-types.js";
7
7
  import { FONT_DETECTOR } from "./constants.js";
8
8
  const useGlobalHeader = (props) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGlobalHeader.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useFontsizeMedia } from '@elliemae/ds-hooks-fontsize-media';\nimport { useMemoMergePropsWithDefault, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { useMemo, useState } from 'react';\nimport { uid } from 'uid';\nimport { defaultProps, type DSGlobalHeaderT } from '../react-desc-prop-types.js';\nimport { FONT_DETECTOR } from './constants.js';\n\nexport const useGlobalHeader = (props: DSGlobalHeaderT.Props) => {\n const [showIconOnly, setShowIconOnly] = useState<boolean>(false);\n\n const propsWithDefaults = useMemoMergePropsWithDefault<DSGlobalHeaderT.InternalProps>(props, defaultProps);\n\n const instanceUID = useMemo(() => uid(5), []);\n\n const globalHeaderToolbarGrid = useMemo(\n () => new Array(propsWithDefaults.toolbar.length).fill('auto') as string[],\n [propsWithDefaults.toolbar],\n );\n\n const ownerProps = useOwnerProps(props);\n\n const fontDetector = useFontsizeMedia({\n largeFont: FONT_DETECTOR.LARGE,\n mediumFont: FONT_DETECTOR.MEDIUM,\n smallFont: FONT_DETECTOR.SMALL,\n });\n\n return useMemo(\n () => ({\n props: propsWithDefaults,\n showIconOnly,\n setShowIconOnly,\n instanceUID,\n globalHeaderToolbarGrid,\n fontDetector,\n ownerProps,\n }),\n [propsWithDefaults, ownerProps, showIconOnly, instanceUID, fontDetector, globalHeaderToolbarGrid],\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,wBAAwB;AACjC,SAAS,8BAA8B,qBAAqB;AAC5D,SAAS,SAAS,gBAAgB;AAClC,SAAS,WAAW;AACpB,SAAS,oBAA0C;AACnD,SAAS,qBAAqB;AAEvB,MAAM,kBAAkB,CAAC,UAAiC;AAC/D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AAE/D,QAAM,oBAAoB,6BAA4D,OAAO,YAAY;AAEzG,QAAM,cAAc,QAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAE5C,QAAM,0BAA0B;AAAA,IAC9B,MAAM,IAAI,MAAM,kBAAkB,QAAQ,MAAM,EAAE,KAAK,MAAM;AAAA,IAC7D,CAAC,kBAAkB,OAAO;AAAA,EAC5B;AAEA,QAAM,aAAa,cAAc,KAAK;AAEtC,QAAM,eAAe,iBAAiB;AAAA,IACpC,WAAW,cAAc;AAAA,IACzB,YAAY,cAAc;AAAA,IAC1B,WAAW,cAAc;AAAA,EAC3B,CAAC;AAED,SAAO;AAAA,IACL,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,YAAY,cAAc,aAAa,cAAc,uBAAuB;AAAA,EAClG;AACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useState, useMemo } from 'react';\nimport { uid } from 'uid';\nimport { useFontsizeMedia } from '@elliemae/ds-hooks-fontsize-media';\nimport { useMemoMergePropsWithDefault, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { defaultProps, type DSGlobalHeaderT } from '../react-desc-prop-types.js';\nimport { type DSGlobalHeaderInternalsT } from '../sharedTypes.js';\n\nimport { FONT_DETECTOR } from './constants.js';\nexport const useGlobalHeader = (props: DSGlobalHeaderT.Props) => {\n const [showIconOnly, setShowIconOnly] = useState<boolean>(false);\n\n const propsWithDefaults = useMemoMergePropsWithDefault<DSGlobalHeaderInternalsT.InternalProps>(props, defaultProps);\n\n const instanceUID = useMemo(() => uid(5), []);\n\n const globalHeaderToolbarGrid = useMemo(\n () => new Array(propsWithDefaults.toolbar.length).fill('auto') as string[],\n [propsWithDefaults.toolbar],\n );\n\n const ownerProps = useOwnerProps(props);\n\n const fontDetector = useFontsizeMedia({\n largeFont: FONT_DETECTOR.LARGE,\n mediumFont: FONT_DETECTOR.MEDIUM,\n smallFont: FONT_DETECTOR.SMALL,\n });\n\n return useMemo(\n () => ({\n props: propsWithDefaults,\n showIconOnly,\n setShowIconOnly,\n instanceUID,\n globalHeaderToolbarGrid,\n fontDetector,\n ownerProps,\n }),\n [propsWithDefaults, ownerProps, showIconOnly, instanceUID, fontDetector, globalHeaderToolbarGrid],\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,UAAU,eAAe;AAClC,SAAS,WAAW;AACpB,SAAS,wBAAwB;AACjC,SAAS,8BAA8B,qBAAqB;AAC5D,SAAS,oBAA0C;AAGnD,SAAS,qBAAqB;AACvB,MAAM,kBAAkB,CAAC,UAAiC;AAC/D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AAE/D,QAAM,oBAAoB,6BAAqE,OAAO,YAAY;AAElH,QAAM,cAAc,QAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAE5C,QAAM,0BAA0B;AAAA,IAC9B,MAAM,IAAI,MAAM,kBAAkB,QAAQ,MAAM,EAAE,KAAK,MAAM;AAAA,IAC7D,CAAC,kBAAkB,OAAO;AAAA,EAC5B;AAEA,QAAM,aAAa,cAAc,KAAK;AAEtC,QAAM,eAAe,iBAAiB;AAAA,IACpC,WAAW,cAAc;AAAA,IACzB,YAAY,cAAc;AAAA,IAC1B,WAAW,cAAc;AAAA,EAC3B,CAAC;AAED,SAAO;AAAA,IACL,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,YAAY,cAAc,aAAa,cAAc,uBAAuB;AAAA,EAClG;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import * as React from "react";
2
2
  import {
3
- isObject,
4
- isValidToolbarType,
5
- throwBreadcrumbItemError,
6
- throwLogoError,
3
+ throwToolbarPopupItemError,
7
4
  throwToolbarAppPickerItemError,
8
5
  throwToolbarItemGenericError,
9
- throwToolbarPopupItemError
6
+ throwLogoError,
7
+ throwBreadcrumbItemError,
8
+ isValidToolbarType,
9
+ isObject
10
10
  } from "./validateHelpers.js";
11
11
  const validatePopupItem = (componentProps) => {
12
12
  if (componentProps.options && !Array.isArray(componentProps.options)) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useValidateProps.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { DSGlobalHeaderT } from '../react-desc-prop-types.js';\nimport {\n isObject,\n isValidToolbarType,\n throwBreadcrumbItemError,\n throwLogoError,\n throwToolbarAppPickerItemError,\n throwToolbarItemGenericError,\n throwToolbarPopupItemError,\n} from './validateHelpers.js';\n\nconst validatePopupItem = (componentProps: DSGlobalHeaderT.PopupMenuComponentProps): void => {\n if (componentProps.options && !Array.isArray(componentProps.options)) {\n throwToolbarPopupItemError('options', componentProps.options);\n }\n if (componentProps.closeOnClick && typeof componentProps.closeOnClick !== 'boolean') {\n throwToolbarPopupItemError('closeOnClick', componentProps.closeOnClick);\n }\n};\n\nconst validateAppPickerItem = (componentProps: DSGlobalHeaderT.AppPickerComponentProps): void => {\n if (componentProps.apps && !Array.isArray(componentProps.apps)) {\n throwToolbarAppPickerItemError('apps', componentProps.apps);\n }\n if (componentProps.customApps && !Array.isArray(componentProps.customApps)) {\n throwToolbarAppPickerItemError('customApps', componentProps.customApps);\n }\n if (componentProps.sectionTitle && typeof componentProps.sectionTitle !== 'string') {\n throwToolbarAppPickerItemError('sectionTitle', componentProps.sectionTitle);\n }\n if (componentProps.customSectionTitle && typeof componentProps.customSectionTitle !== 'string') {\n throwToolbarAppPickerItemError('customSectionTitle', componentProps.customSectionTitle);\n }\n};\n\nexport const useValidateProps = (props: DSGlobalHeaderT.Props): void => {\n const { breadcrumb, toolbar, Logo, LogoWithBrand } = props;\n\n if (Logo && typeof Logo !== 'function') {\n throwLogoError('Logo', Logo);\n }\n\n if (LogoWithBrand && typeof LogoWithBrand !== 'function') {\n throwLogoError('LogoWithBrand', LogoWithBrand);\n }\n\n breadcrumb?.forEach((breadcrumbItem) => {\n if (breadcrumbItem.label && typeof breadcrumbItem.label !== 'string') {\n throwBreadcrumbItemError('label', breadcrumbItem.label);\n }\n if (breadcrumbItem.onClick && typeof breadcrumbItem.onClick !== 'function') {\n throwBreadcrumbItemError('onClick', breadcrumbItem.onClick);\n }\n if (breadcrumbItem.hasNext && typeof breadcrumbItem.hasNext !== 'boolean') {\n throwBreadcrumbItemError('hasNext', breadcrumbItem.hasNext);\n }\n if (breadcrumbItem.isSelected && typeof breadcrumbItem.isSelected !== 'boolean') {\n throwBreadcrumbItemError('isSelected', breadcrumbItem.isSelected);\n }\n });\n\n toolbar?.forEach((toolbarItem) => {\n if (toolbarItem.type) {\n if (!isValidToolbarType(toolbarItem.type)) {\n throwToolbarItemGenericError('type', toolbarItem.type);\n }\n if (toolbarItem.componentProps && !isObject(toolbarItem.componentProps)) {\n throwToolbarItemGenericError('componentProps', toolbarItem.componentProps);\n }\n if (toolbarItem.type === 'ds-popup-menu') {\n validatePopupItem(toolbarItem.componentProps);\n }\n if (toolbarItem.type === 'ds-app-picker' && toolbarItem.componentProps) {\n validateAppPickerItem(toolbarItem.componentProps);\n }\n }\n });\n};\n\n// Validation Needs to be checked carefully to avoid any breaking change\n// const validateGenericToolbarItem = (item: DSGlobalHeaderT.ToolbarItem): void => {\n// if (item.label && typeof item.label !== 'string') {\n// throwToolbarItemGenericError('label', item.label);\n// }\n// if (item.onClick && typeof item.onClick !== 'function') {\n// throwToolbarItemGenericError('onClick', item.onClick);\n// }\n// if (item.Icon && typeof item.Icon !== 'function') {\n// if (item.type === 'ds-app-picker') return;\n// throwToolbarItemGenericError('Icon', item.Icon);\n// }\n// };\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACCvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,oBAAoB,CAAC,mBAAkE;AAC3F,MAAI,eAAe,WAAW,CAAC,MAAM,QAAQ,eAAe,OAAO,GAAG;AACpE,+BAA2B,WAAW,eAAe,OAAO;AAAA,EAC9D;AACA,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,WAAW;AACnF,+BAA2B,gBAAgB,eAAe,YAAY;AAAA,EACxE;AACF;AAEA,MAAM,wBAAwB,CAAC,mBAAkE;AAC/F,MAAI,eAAe,QAAQ,CAAC,MAAM,QAAQ,eAAe,IAAI,GAAG;AAC9D,mCAA+B,QAAQ,eAAe,IAAI;AAAA,EAC5D;AACA,MAAI,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,GAAG;AAC1E,mCAA+B,cAAc,eAAe,UAAU;AAAA,EACxE;AACA,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,UAAU;AAClF,mCAA+B,gBAAgB,eAAe,YAAY;AAAA,EAC5E;AACA,MAAI,eAAe,sBAAsB,OAAO,eAAe,uBAAuB,UAAU;AAC9F,mCAA+B,sBAAsB,eAAe,kBAAkB;AAAA,EACxF;AACF;AAEO,MAAM,mBAAmB,CAAC,UAAuC;AACtE,QAAM,EAAE,YAAY,SAAS,MAAM,cAAc,IAAI;AAErD,MAAI,QAAQ,OAAO,SAAS,YAAY;AACtC,mBAAe,QAAQ,IAAI;AAAA,EAC7B;AAEA,MAAI,iBAAiB,OAAO,kBAAkB,YAAY;AACxD,mBAAe,iBAAiB,aAAa;AAAA,EAC/C;AAEA,cAAY,QAAQ,CAAC,mBAAmB;AACtC,QAAI,eAAe,SAAS,OAAO,eAAe,UAAU,UAAU;AACpE,+BAAyB,SAAS,eAAe,KAAK;AAAA,IACxD;AACA,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,YAAY;AAC1E,+BAAyB,WAAW,eAAe,OAAO;AAAA,IAC5D;AACA,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,WAAW;AACzE,+BAAyB,WAAW,eAAe,OAAO;AAAA,IAC5D;AACA,QAAI,eAAe,cAAc,OAAO,eAAe,eAAe,WAAW;AAC/E,+BAAyB,cAAc,eAAe,UAAU;AAAA,IAClE;AAAA,EACF,CAAC;AAED,WAAS,QAAQ,CAAC,gBAAgB;AAChC,QAAI,YAAY,MAAM;AACpB,UAAI,CAAC,mBAAmB,YAAY,IAAI,GAAG;AACzC,qCAA6B,QAAQ,YAAY,IAAI;AAAA,MACvD;AACA,UAAI,YAAY,kBAAkB,CAAC,SAAS,YAAY,cAAc,GAAG;AACvE,qCAA6B,kBAAkB,YAAY,cAAc;AAAA,MAC3E;AACA,UAAI,YAAY,SAAS,iBAAiB;AACxC,0BAAkB,YAAY,cAAc;AAAA,MAC9C;AACA,UAAI,YAAY,SAAS,mBAAmB,YAAY,gBAAgB;AACtE,8BAAsB,YAAY,cAAc;AAAA,MAClD;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n throwToolbarPopupItemError,\n throwToolbarAppPickerItemError,\n throwToolbarItemGenericError,\n throwLogoError,\n throwBreadcrumbItemError,\n isValidToolbarType,\n isObject,\n} from './validateHelpers.js';\nimport type { DSGlobalHeaderT } from '../react-desc-prop-types.js';\nimport type { DSGlobalHeaderInternalsT } from '../sharedTypes.js';\n\nconst validatePopupItem = (componentProps: DSGlobalHeaderInternalsT.PopupMenuComponentProps): void => {\n if (componentProps.options && !Array.isArray(componentProps.options)) {\n throwToolbarPopupItemError('options', componentProps.options);\n }\n if (componentProps.closeOnClick && typeof componentProps.closeOnClick !== 'boolean') {\n throwToolbarPopupItemError('closeOnClick', componentProps.closeOnClick);\n }\n};\n\nconst validateAppPickerItem = (componentProps: DSGlobalHeaderInternalsT.AppPickerComponentProps): void => {\n if (componentProps.apps && !Array.isArray(componentProps.apps)) {\n throwToolbarAppPickerItemError('apps', componentProps.apps);\n }\n if (componentProps.customApps && !Array.isArray(componentProps.customApps)) {\n throwToolbarAppPickerItemError('customApps', componentProps.customApps);\n }\n if (componentProps.sectionTitle && typeof componentProps.sectionTitle !== 'string') {\n throwToolbarAppPickerItemError('sectionTitle', componentProps.sectionTitle);\n }\n if (componentProps.customSectionTitle && typeof componentProps.customSectionTitle !== 'string') {\n throwToolbarAppPickerItemError('customSectionTitle', componentProps.customSectionTitle);\n }\n};\n\nexport const useValidateProps = (props: DSGlobalHeaderT.Props): void => {\n const { breadcrumb, toolbar, Logo, LogoWithBrand } = props;\n\n if (Logo && typeof Logo !== 'function') {\n throwLogoError('Logo', Logo);\n }\n\n if (LogoWithBrand && typeof LogoWithBrand !== 'function') {\n throwLogoError('LogoWithBrand', LogoWithBrand);\n }\n\n breadcrumb?.forEach((breadcrumbItem) => {\n if (breadcrumbItem.label && typeof breadcrumbItem.label !== 'string') {\n throwBreadcrumbItemError('label', breadcrumbItem.label);\n }\n if (breadcrumbItem.onClick && typeof breadcrumbItem.onClick !== 'function') {\n throwBreadcrumbItemError('onClick', breadcrumbItem.onClick);\n }\n if (breadcrumbItem.hasNext && typeof breadcrumbItem.hasNext !== 'boolean') {\n throwBreadcrumbItemError('hasNext', breadcrumbItem.hasNext);\n }\n if (breadcrumbItem.isSelected && typeof breadcrumbItem.isSelected !== 'boolean') {\n throwBreadcrumbItemError('isSelected', breadcrumbItem.isSelected);\n }\n });\n\n toolbar?.forEach((toolbarItem) => {\n if (toolbarItem.type) {\n if (!isValidToolbarType(toolbarItem.type)) {\n throwToolbarItemGenericError('type', toolbarItem.type);\n }\n if (toolbarItem.componentProps && !isObject(toolbarItem.componentProps)) {\n throwToolbarItemGenericError('componentProps', toolbarItem.componentProps);\n }\n if (toolbarItem.type === 'ds-popup-menu') {\n validatePopupItem(toolbarItem.componentProps as DSGlobalHeaderInternalsT.PopupMenuComponentProps);\n }\n if (toolbarItem.type === 'ds-app-picker' && toolbarItem.componentProps) {\n validateAppPickerItem(toolbarItem.componentProps as DSGlobalHeaderInternalsT.AppPickerComponentProps);\n }\n }\n });\n};\n\n// Validation Needs to be checked carefully to avoid any breaking change\n// const validateGenericToolbarItem = (item: DSGlobalHeaderInternalsT.ToolbarItem): void => {\n// if (item.label && typeof item.label !== 'string') {\n// throwToolbarItemGenericError('label', item.label);\n// }\n// if (item.onClick && typeof item.onClick !== 'function') {\n// throwToolbarItemGenericError('onClick', item.onClick);\n// }\n// if (item.Icon && typeof item.Icon !== 'function') {\n// if (item.type === 'ds-app-picker') return;\n// throwToolbarItemGenericError('Icon', item.Icon);\n// }\n// };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,MAAM,oBAAoB,CAAC,mBAA2E;AACpG,MAAI,eAAe,WAAW,CAAC,MAAM,QAAQ,eAAe,OAAO,GAAG;AACpE,+BAA2B,WAAW,eAAe,OAAO;AAAA,EAC9D;AACA,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,WAAW;AACnF,+BAA2B,gBAAgB,eAAe,YAAY;AAAA,EACxE;AACF;AAEA,MAAM,wBAAwB,CAAC,mBAA2E;AACxG,MAAI,eAAe,QAAQ,CAAC,MAAM,QAAQ,eAAe,IAAI,GAAG;AAC9D,mCAA+B,QAAQ,eAAe,IAAI;AAAA,EAC5D;AACA,MAAI,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,GAAG;AAC1E,mCAA+B,cAAc,eAAe,UAAU;AAAA,EACxE;AACA,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,UAAU;AAClF,mCAA+B,gBAAgB,eAAe,YAAY;AAAA,EAC5E;AACA,MAAI,eAAe,sBAAsB,OAAO,eAAe,uBAAuB,UAAU;AAC9F,mCAA+B,sBAAsB,eAAe,kBAAkB;AAAA,EACxF;AACF;AAEO,MAAM,mBAAmB,CAAC,UAAuC;AACtE,QAAM,EAAE,YAAY,SAAS,MAAM,cAAc,IAAI;AAErD,MAAI,QAAQ,OAAO,SAAS,YAAY;AACtC,mBAAe,QAAQ,IAAI;AAAA,EAC7B;AAEA,MAAI,iBAAiB,OAAO,kBAAkB,YAAY;AACxD,mBAAe,iBAAiB,aAAa;AAAA,EAC/C;AAEA,cAAY,QAAQ,CAAC,mBAAmB;AACtC,QAAI,eAAe,SAAS,OAAO,eAAe,UAAU,UAAU;AACpE,+BAAyB,SAAS,eAAe,KAAK;AAAA,IACxD;AACA,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,YAAY;AAC1E,+BAAyB,WAAW,eAAe,OAAO;AAAA,IAC5D;AACA,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,WAAW;AACzE,+BAAyB,WAAW,eAAe,OAAO;AAAA,IAC5D;AACA,QAAI,eAAe,cAAc,OAAO,eAAe,eAAe,WAAW;AAC/E,+BAAyB,cAAc,eAAe,UAAU;AAAA,IAClE;AAAA,EACF,CAAC;AAED,WAAS,QAAQ,CAAC,gBAAgB;AAChC,QAAI,YAAY,MAAM;AACpB,UAAI,CAAC,mBAAmB,YAAY,IAAI,GAAG;AACzC,qCAA6B,QAAQ,YAAY,IAAI;AAAA,MACvD;AACA,UAAI,YAAY,kBAAkB,CAAC,SAAS,YAAY,cAAc,GAAG;AACvE,qCAA6B,kBAAkB,YAAY,cAAc;AAAA,MAC3E;AACA,UAAI,YAAY,SAAS,iBAAiB;AACxC,0BAAkB,YAAY,cAAkE;AAAA,MAClG;AACA,UAAI,YAAY,SAAS,mBAAmB,YAAY,gBAAgB;AACtE,8BAAsB,YAAY,cAAkE;AAAA,MACtG;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,4 @@
1
1
  import * as React from "react";
2
- import { DSGlobalHeaderName, DSGlobalHeaderSlots, DSGlobalHeaderSlotsFlattened } from "./theming.js";
3
- import { DSGlobalHeaderDatatestid, DSGlobalHeaderDatatestidFlattened } from "./DSGlobalHeaderDatatestid.js";
4
- export {
5
- DSGlobalHeaderDatatestid,
6
- DSGlobalHeaderDatatestidFlattened,
7
- DSGlobalHeaderName,
8
- DSGlobalHeaderSlots,
9
- DSGlobalHeaderSlotsFlattened
10
- };
2
+ export * from "./theming.js";
3
+ export * from "./DSGlobalHeaderDatatestid.js";
11
4
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/index.ts"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSGlobalHeaderName, DSGlobalHeaderSlots, DSGlobalHeaderSlotsFlattened } from './theming.js';\nexport { DSGlobalHeaderDatatestid, DSGlobalHeaderDatatestidFlattened } from './DSGlobalHeaderDatatestid.js';\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,oBAAoB,qBAAqB,oCAAoC;AACtF,SAAS,0BAA0B,yCAAyC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './theming.js';\nexport * from './DSGlobalHeaderDatatestid.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,23 +1,9 @@
1
1
  import * as React from "react";
2
2
  import { DSGlobalHeader } from "./DSGlobalHeader.js";
3
+ export * from "./DSGlobalHeader.js";
4
+ export * from "./exported-related/index.js";
3
5
  var index_default = DSGlobalHeader;
4
- import { DSGlobalHeader as DSGlobalHeader2, DSGlobalHeaderWithSchema, GlobalHeader } from "./DSGlobalHeader.js";
5
- import {
6
- DSGlobalHeaderDatatestid,
7
- DSGlobalHeaderDatatestidFlattened,
8
- DSGlobalHeaderName,
9
- DSGlobalHeaderSlots,
10
- DSGlobalHeaderSlotsFlattened
11
- } from "./exported-related/index.js";
12
6
  export {
13
- DSGlobalHeader2 as DSGlobalHeader,
14
- DSGlobalHeaderDatatestid,
15
- DSGlobalHeaderDatatestidFlattened,
16
- DSGlobalHeaderName,
17
- DSGlobalHeaderSlots,
18
- DSGlobalHeaderSlotsFlattened,
19
- DSGlobalHeaderWithSchema,
20
- GlobalHeader,
21
7
  index_default as default
22
8
  };
23
9
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.ts"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { DSGlobalHeader } from './DSGlobalHeader.js';\n\nexport default DSGlobalHeader;\nexport { DSGlobalHeader, DSGlobalHeaderWithSchema, GlobalHeader } from './DSGlobalHeader.js';\nexport {\n DSGlobalHeaderDatatestid,\n DSGlobalHeaderDatatestidFlattened,\n DSGlobalHeaderName,\n DSGlobalHeaderSlots,\n DSGlobalHeaderSlotsFlattened,\n} from './exported-related/index.js';\nexport type { DSGlobalHeaderT } from './react-desc-prop-types.js';\nexport type { DSGlobalHeaderInternalsT } from './sharedTypes.js';\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,sBAAsB;AAE/B,IAAO,gBAAQ;AACf,SAAS,kBAAAA,iBAAgB,0BAA0B,oBAAoB;AACvE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
6
- "names": ["DSGlobalHeader"]
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { DSGlobalHeader } from './DSGlobalHeader.js';\nexport * from './DSGlobalHeader.js';\nexport * from './exported-related/index.js';\nexport type { DSGlobalHeaderInternalsT } from './sharedTypes.js';\nexport type { DSGlobalHeaderT } from './react-desc-prop-types.js';\nexport default DSGlobalHeader;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,sBAAsB;AAC/B,cAAc;AACd,cAAc;AAGd,IAAO,gBAAQ;",
6
+ "names": []
7
7
  }
@@ -42,7 +42,7 @@ const GlobalHeaderBreadcrumb = () => {
42
42
  onKeyDown: onClick && handleOnKeyDown(onClick),
43
43
  ...getGlobalAttributes(rest),
44
44
  onClick,
45
- fullBreadcrumbListLength: breadcrumb.length
45
+ length: breadcrumb.length
46
46
  },
47
47
  `${instanceUID}-breadcrumb-item-${label}`
48
48
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Breadcrumb/GlobalHeaderBreadcrumb.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useGetLayoutMode } from '@elliemae/ds-system';\nimport { getGlobalAttributes } from '@elliemae/ds-props-helpers';\nimport { StyledBreadcrumbContainer, StyledPipe, StyledBreadcrumbList } from './styles.js';\nimport { useGlobalHeaderBreadcrumb } from './useGlobalHeaderBreadcrumb.js';\nimport { PureBreadcrumb } from './PureBreadcrumb.js';\nimport { DSGlobalHeaderDatatestid } from '../../exported-related/index.js';\n\nexport const GlobalHeaderBreadcrumb = (): JSX.Element => {\n const { breadcrumb, CustomNavigation, showIconOnly, flexRegionRef, handleOnKeyDown, instanceUID, ownerProps } =\n useGlobalHeaderBreadcrumb();\n const layoutMode = useGetLayoutMode();\n\n const smalScreen = layoutMode === 'xs' || layoutMode === 's' || (!layoutMode && showIconOnly);\n\n return (\n <StyledBreadcrumbContainer\n height=\"100%\"\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n aria-label=\"breadcrumb\"\n cols={['auto', 'auto', '1fr']}\n forwardedAs=\"nav\"\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.CONTAINER}\n {...ownerProps}\n >\n <StyledPipe\n showIconOnly={smalScreen}\n aria-hidden\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.PIPE}\n {...ownerProps}\n />\n <StyledBreadcrumbList data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.LIST} {...ownerProps}>\n {CustomNavigation !== undefined ? (\n <CustomNavigation />\n ) : (\n breadcrumb?.map((item) => {\n const { onClick, isSelected, label, hasNext, ...rest } = item;\n return (\n <PureBreadcrumb\n label={label}\n hasNext={hasNext}\n isSelected={isSelected}\n key={`${instanceUID}-breadcrumb-item-${label}`}\n onKeyDown={onClick && handleOnKeyDown(onClick)}\n {...getGlobalAttributes(rest)}\n onClick={onClick}\n fullBreadcrumbListLength={breadcrumb.length}\n />\n );\n })\n )}\n </StyledBreadcrumbList>\n <div id=\"global-header-flex-region\" ref={flexRegionRef} aria-hidden />\n </StyledBreadcrumbContainer>\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACgBnB,SAUE,KAVF;AAfJ,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B,YAAY,4BAA4B;AAC5E,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC;AAElC,MAAM,yBAAyB,MAAmB;AACvD,QAAM,EAAE,YAAY,kBAAkB,cAAc,eAAe,iBAAiB,aAAa,WAAW,IAC1G,0BAA0B;AAC5B,QAAM,aAAa,iBAAiB;AAEpC,QAAM,aAAa,eAAe,QAAQ,eAAe,OAAQ,CAAC,cAAc;AAEhF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,cAAW;AAAA,MACX,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,aAAY;AAAA,MACZ,eAAa,yBAAyB,WAAW;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAc;AAAA,YACd,eAAW;AAAA,YACX,eAAa,yBAAyB,WAAW;AAAA,YAChD,GAAG;AAAA;AAAA,QACN;AAAA,QACA,oBAAC,wBAAqB,eAAa,yBAAyB,WAAW,MAAO,GAAG,YAC9E,+BAAqB,SACpB,oBAAC,oBAAiB,IAElB,YAAY,IAAI,CAAC,SAAS;AACxB,gBAAM,EAAE,SAAS,YAAY,OAAO,SAAS,GAAG,KAAK,IAAI;AACzD,iBACE;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cAEA,WAAW,WAAW,gBAAgB,OAAO;AAAA,cAC5C,GAAG,oBAAoB,IAAI;AAAA,cAC5B;AAAA,cACA,0BAA0B,WAAW;AAAA;AAAA,YAJhC,GAAG,WAAW,oBAAoB,KAAK;AAAA,UAK9C;AAAA,QAEJ,CAAC,GAEL;AAAA,QACA,oBAAC,SAAI,IAAG,6BAA4B,KAAK,eAAe,eAAW,MAAC;AAAA;AAAA;AAAA,EACtE;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useGetLayoutMode } from '@elliemae/ds-system';\nimport { getGlobalAttributes } from '@elliemae/ds-props-helpers';\nimport { StyledBreadcrumbContainer, StyledPipe, StyledBreadcrumbList } from './styles.js';\nimport { useGlobalHeaderBreadcrumb } from './useGlobalHeaderBreadcrumb.js';\nimport { PureBreadcrumb } from './PureBreadcrumb.js';\nimport { DSGlobalHeaderDatatestid } from '../../exported-related/index.js';\n\nexport const GlobalHeaderBreadcrumb = (): JSX.Element => {\n const { breadcrumb, CustomNavigation, showIconOnly, flexRegionRef, handleOnKeyDown, instanceUID, ownerProps } =\n useGlobalHeaderBreadcrumb();\n const layoutMode = useGetLayoutMode();\n\n const smalScreen = layoutMode === 'xs' || layoutMode === 's' || (!layoutMode && showIconOnly);\n\n return (\n <StyledBreadcrumbContainer\n height=\"100%\"\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n aria-label=\"breadcrumb\"\n cols={['auto', 'auto', '1fr']}\n forwardedAs=\"nav\"\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.CONTAINER}\n {...ownerProps}\n >\n <StyledPipe\n showIconOnly={smalScreen}\n aria-hidden\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.PIPE}\n {...ownerProps}\n />\n <StyledBreadcrumbList data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.LIST} {...ownerProps}>\n {CustomNavigation !== undefined ? (\n <CustomNavigation />\n ) : (\n breadcrumb?.map((item) => {\n const { onClick, isSelected, label, hasNext, ...rest } = item;\n return (\n <PureBreadcrumb\n label={label}\n hasNext={hasNext}\n isSelected={isSelected}\n key={`${instanceUID}-breadcrumb-item-${label}`}\n onKeyDown={onClick && handleOnKeyDown(onClick)}\n {...getGlobalAttributes(rest)}\n onClick={onClick}\n length={breadcrumb.length}\n />\n );\n })\n )}\n </StyledBreadcrumbList>\n <div id=\"global-header-flex-region\" ref={flexRegionRef} aria-hidden />\n </StyledBreadcrumbContainer>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACgBnB,SAUE,KAVF;AAfJ,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B,YAAY,4BAA4B;AAC5E,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC;AAElC,MAAM,yBAAyB,MAAmB;AACvD,QAAM,EAAE,YAAY,kBAAkB,cAAc,eAAe,iBAAiB,aAAa,WAAW,IAC1G,0BAA0B;AAC5B,QAAM,aAAa,iBAAiB;AAEpC,QAAM,aAAa,eAAe,QAAQ,eAAe,OAAQ,CAAC,cAAc;AAEhF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,cAAW;AAAA,MACX,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,aAAY;AAAA,MACZ,eAAa,yBAAyB,WAAW;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAc;AAAA,YACd,eAAW;AAAA,YACX,eAAa,yBAAyB,WAAW;AAAA,YAChD,GAAG;AAAA;AAAA,QACN;AAAA,QACA,oBAAC,wBAAqB,eAAa,yBAAyB,WAAW,MAAO,GAAG,YAC9E,+BAAqB,SACpB,oBAAC,oBAAiB,IAElB,YAAY,IAAI,CAAC,SAAS;AACxB,gBAAM,EAAE,SAAS,YAAY,OAAO,SAAS,GAAG,KAAK,IAAI;AACzD,iBACE;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cAEA,WAAW,WAAW,gBAAgB,OAAO;AAAA,cAC5C,GAAG,oBAAoB,IAAI;AAAA,cAC5B;AAAA,cACA,QAAQ,WAAW;AAAA;AAAA,YAJd,GAAG,WAAW,oBAAoB,KAAK;AAAA,UAK9C;AAAA,QAEJ,CAAC,GAEL;AAAA,QACA,oBAAC,SAAI,IAAG,6BAA4B,KAAK,eAAe,eAAW,MAAC;AAAA;AAAA;AAAA,EACtE;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,34 @@
1
1
  import * as React from "react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React2 from "react";
4
+ import { StyledBreadcrumbItem, StyledLink, StyledLabel, StyledChevron } from "./styles.js";
4
5
  import { DSGlobalHeaderDatatestid } from "../../exported-related/index.js";
5
- import { StyledBreadcrumbItem, StyledChevron, StyledLabel, StyledLink } from "./styles.js";
6
6
  const PureBreadcrumb = React2.memo(
7
- ({ onClick, isSelected, fullBreadcrumbListLength, label, hasNext, ...rest }) => /* @__PURE__ */ jsxs(StyledBreadcrumbItem, { "data-testid": DSGlobalHeaderDatatestid.BREADCRUMB.ITEM, children: [
7
+ ({
8
+ onClick,
9
+ onKeyDown,
10
+ isSelected,
11
+ length,
12
+ label,
13
+ hasNext,
14
+ id,
15
+ ...rest
16
+ }) => /* @__PURE__ */ jsxs(StyledBreadcrumbItem, { "data-testid": DSGlobalHeaderDatatestid.BREADCRUMB.ITEM, children: [
8
17
  /* @__PURE__ */ jsx(
9
18
  StyledLink,
10
19
  {
11
20
  onClick,
21
+ onKeyDown,
12
22
  "data-testid": DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK,
13
23
  "aria-current": isSelected,
24
+ id,
14
25
  tabIndex: 0,
15
26
  ...rest,
16
27
  children: /* @__PURE__ */ jsx(
17
28
  StyledLabel,
18
29
  {
19
30
  isSelected: !!isSelected,
20
- isOnlyItem: fullBreadcrumbListLength === 1,
31
+ isOnlyItem: length === 1,
21
32
  "data-testid": DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK_LABEL,
22
33
  children: label
23
34
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Breadcrumb/PureBreadcrumb.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { DSGlobalHeaderDatatestid } from '../../exported-related/index.js';\nimport type { DSGlobalHeaderT } from '../../react-desc-prop-types.js';\nimport { StyledBreadcrumbItem, StyledChevron, StyledLabel, StyledLink } from './styles.js';\n\ntype PureBreadcrumbProps = DSGlobalHeaderT.BreadcrumbItem & { fullBreadcrumbListLength: number };\n\nexport const PureBreadcrumb = React.memo(\n ({ onClick, isSelected, fullBreadcrumbListLength, label, hasNext, ...rest }: PureBreadcrumbProps) => (\n <StyledBreadcrumbItem data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM}>\n <StyledLink\n onClick={onClick}\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK}\n aria-current={isSelected}\n tabIndex={0}\n {...rest}\n >\n <StyledLabel\n isSelected={!!isSelected}\n isOnlyItem={fullBreadcrumbListLength === 1}\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK_LABEL}\n >\n {label}\n </StyledLabel>\n </StyledLink>\n {hasNext && <StyledChevron size=\"m\" aria-hidden />}\n </StyledBreadcrumbItem>\n ),\n);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACSnB,SAQI,KARJ;AATJ,OAAOA,YAAW;AAClB,SAAS,gCAAgC;AAEzC,SAAS,sBAAsB,eAAe,aAAa,kBAAkB;AAItE,MAAM,iBAAiBA,OAAM;AAAA,EAClC,CAAC,EAAE,SAAS,YAAY,0BAA0B,OAAO,SAAS,GAAG,KAAK,MACxE,qBAAC,wBAAqB,eAAa,yBAAyB,WAAW,MACrE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAa,yBAAyB,WAAW;AAAA,QACjD,gBAAc;AAAA,QACd,UAAU;AAAA,QACT,GAAG;AAAA,QAEJ;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,CAAC,CAAC;AAAA,YACd,YAAY,6BAA6B;AAAA,YACzC,eAAa,yBAAyB,WAAW;AAAA,YAEhD;AAAA;AAAA,QACH;AAAA;AAAA,IACF;AAAA,IACC,WAAW,oBAAC,iBAAc,MAAK,KAAI,eAAW,MAAC;AAAA,KAClD;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { StyledBreadcrumbItem, StyledLink, StyledLabel, StyledChevron } from './styles.js';\nimport { DSGlobalHeaderDatatestid } from '../../exported-related/index.js';\nimport type { DSGlobalHeaderInternalsT } from '../../sharedTypes.js';\nexport const PureBreadcrumb = React.memo(\n ({\n onClick,\n onKeyDown,\n isSelected,\n length,\n label,\n hasNext,\n id,\n ...rest\n }: DSGlobalHeaderInternalsT.BreadcrumbItem) => (\n <StyledBreadcrumbItem data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM}>\n <StyledLink\n onClick={onClick}\n onKeyDown={onKeyDown}\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK}\n aria-current={isSelected}\n id={id}\n tabIndex={0}\n {...rest}\n >\n <StyledLabel\n isSelected={!!isSelected}\n isOnlyItem={length === 1}\n data-testid={DSGlobalHeaderDatatestid.BREADCRUMB.ITEM_LINK_LABEL}\n >\n {label}\n </StyledLabel>\n </StyledLink>\n {hasNext && <StyledChevron size=\"m\" aria-hidden />}\n </StyledBreadcrumbItem>\n ),\n);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACenB,SAUI,KAVJ;AAfJ,OAAOA,YAAW;AAClB,SAAS,sBAAsB,YAAY,aAAa,qBAAqB;AAC7E,SAAS,gCAAgC;AAElC,MAAM,iBAAiBA,OAAM;AAAA,EAClC,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MACE,qBAAC,wBAAqB,eAAa,yBAAyB,WAAW,MACrE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,eAAa,yBAAyB,WAAW;AAAA,QACjD,gBAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,QACT,GAAG;AAAA,QAEJ;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,CAAC,CAAC;AAAA,YACd,YAAY,WAAW;AAAA,YACvB,eAAa,yBAAyB,WAAW;AAAA,YAEhD;AAAA;AAAA,QACH;AAAA;AAAA,IACF;AAAA,IACC,WAAW,oBAAC,iBAAc,MAAK,KAAI,eAAW,MAAC;AAAA,KAClD;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
- import { useCallback, useContext, useEffect, useRef } from "react";
3
- import { FONT_DETECTOR } from "../../config/constants.js";
2
+ import { useEffect, useRef, useContext, useCallback } from "react";
4
3
  import { DSGlobalHeaderContext } from "../../DSGlobalHeaderContext.js";
4
+ import { FONT_DETECTOR } from "../../config/constants.js";
5
5
  const useGlobalHeaderBreadcrumb = () => {
6
6
  const {
7
7
  props: { breadcrumb, CustomNavigation },
@@ -30,7 +30,7 @@ const useGlobalHeaderBreadcrumb = () => {
30
30
  const handleOnKeyDown = useCallback(
31
31
  (onClick) => (e) => {
32
32
  if (e.key === " " || e.key === "Enter") {
33
- onClick(e);
33
+ onClick();
34
34
  }
35
35
  },
36
36
  []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/Breadcrumb/useGlobalHeaderBreadcrumb.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type React from 'react';\nimport { useCallback, useContext, useEffect, useRef } from 'react';\nimport { FONT_DETECTOR } from '../../config/constants.js';\nimport { DSGlobalHeaderContext } from '../../DSGlobalHeaderContext.js';\nimport type { DSGlobalHeaderT } from '../../react-desc-prop-types.js';\n\ninterface UseGlobalHeaderBreadcrumbReturnT {\n breadcrumb: DSGlobalHeaderT.BreadcrumbItem[];\n CustomNavigation: React.ComponentType;\n showIconOnly: boolean;\n flexRegionRef: React.MutableRefObject<HTMLDivElement | null>;\n handleOnKeyDown: (\n onClick: (event: React.MouseEvent | React.KeyboardEvent) => void,\n ) => (event: React.KeyboardEvent) => void;\n instanceUID: string;\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n}\n\nexport const useGlobalHeaderBreadcrumb = (): UseGlobalHeaderBreadcrumbReturnT => {\n const {\n props: { breadcrumb, CustomNavigation },\n ownerProps,\n instanceUID,\n showIconOnly,\n setShowIconOnly,\n fontDetector,\n } = useContext(DSGlobalHeaderContext);\n\n const breakpointRef = useRef<number | null>(null);\n const flexRegionRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const evaluateShowIconOnly = () => {\n if (\n (flexRegionRef.current && flexRegionRef.current.offsetWidth <= 0 && !breakpointRef.current) ||\n fontDetector === FONT_DETECTOR.LARGE ||\n fontDetector === FONT_DETECTOR.MEDIUM\n ) {\n setShowIconOnly(true);\n breakpointRef.current = window.innerWidth;\n } else if (breakpointRef.current && window.innerWidth >= breakpointRef.current) {\n setShowIconOnly(false);\n breakpointRef.current = null;\n }\n };\n\n evaluateShowIconOnly();\n\n window.addEventListener('resize', evaluateShowIconOnly);\n return () => window.removeEventListener('resize', evaluateShowIconOnly);\n }, [breakpointRef, flexRegionRef, setShowIconOnly, fontDetector]);\n\n const handleOnKeyDown = useCallback(\n (onClick: (event: React.MouseEvent | React.KeyboardEvent) => void) => (e: React.KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n onClick(e);\n }\n },\n [],\n );\n\n return {\n breadcrumb,\n CustomNavigation,\n showIconOnly,\n flexRegionRef,\n handleOnKeyDown,\n instanceUID,\n ownerProps,\n };\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,aAAa,YAAY,WAAW,cAAc;AAC3D,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B;AAkB/B,MAAM,4BAA4B,MAAwC;AAC/E,QAAM;AAAA,IACJ,OAAO,EAAE,YAAY,iBAAiB;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,qBAAqB;AAEpC,QAAM,gBAAgB,OAAsB,IAAI;AAChD,QAAM,gBAAgB,OAAuB,IAAI;AAEjD,YAAU,MAAM;AACd,UAAM,uBAAuB,MAAM;AACjC,UACG,cAAc,WAAW,cAAc,QAAQ,eAAe,KAAK,CAAC,cAAc,WACnF,iBAAiB,cAAc,SAC/B,iBAAiB,cAAc,QAC/B;AACA,wBAAgB,IAAI;AACpB,sBAAc,UAAU,OAAO;AAAA,MACjC,WAAW,cAAc,WAAW,OAAO,cAAc,cAAc,SAAS;AAC9E,wBAAgB,KAAK;AACrB,sBAAc,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,yBAAqB;AAErB,WAAO,iBAAiB,UAAU,oBAAoB;AACtD,WAAO,MAAM,OAAO,oBAAoB,UAAU,oBAAoB;AAAA,EACxE,GAAG,CAAC,eAAe,eAAe,iBAAiB,YAAY,CAAC;AAEhE,QAAM,kBAAkB;AAAA,IACtB,CAAC,YAAqE,CAAC,MAA2B;AAChG,UAAI,EAAE,QAAQ,OAAO,EAAE,QAAQ,SAAS;AACtC,gBAAQ,CAAC;AAAA,MACX;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type React from 'react';\nimport { useEffect, useRef, useContext, useCallback } from 'react';\nimport { DSGlobalHeaderContext } from '../../DSGlobalHeaderContext.js';\nimport type { DSGlobalHeaderInternalsT } from '../../sharedTypes.js';\nimport { FONT_DETECTOR } from '../../config/constants.js';\ninterface UseGlobalHeaderBreadcrumbReturnT {\n breadcrumb: DSGlobalHeaderInternalsT.BreadcrumbItem[];\n CustomNavigation: React.ComponentType;\n showIconOnly: boolean;\n flexRegionRef: React.MutableRefObject<HTMLDivElement | null>;\n handleOnKeyDown: (onClick: (event?: React.MouseEvent) => void) => (event: React.KeyboardEvent) => void;\n instanceUID: string;\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderInternalsT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n}\n\nexport const useGlobalHeaderBreadcrumb = (): UseGlobalHeaderBreadcrumbReturnT => {\n const {\n props: { breadcrumb, CustomNavigation },\n ownerProps,\n instanceUID,\n showIconOnly,\n setShowIconOnly,\n fontDetector,\n } = useContext(DSGlobalHeaderContext);\n\n const breakpointRef = useRef<number | null>(null);\n const flexRegionRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const evaluateShowIconOnly = () => {\n if (\n (flexRegionRef.current && flexRegionRef.current.offsetWidth <= 0 && !breakpointRef.current) ||\n fontDetector === FONT_DETECTOR.LARGE ||\n fontDetector === FONT_DETECTOR.MEDIUM\n ) {\n setShowIconOnly(true);\n breakpointRef.current = window.innerWidth;\n } else if (breakpointRef.current && window.innerWidth >= breakpointRef.current) {\n setShowIconOnly(false);\n breakpointRef.current = null;\n }\n };\n\n evaluateShowIconOnly();\n\n window.addEventListener('resize', evaluateShowIconOnly);\n return () => window.removeEventListener('resize', evaluateShowIconOnly);\n }, [breakpointRef, flexRegionRef, setShowIconOnly, fontDetector]);\n\n const handleOnKeyDown = useCallback(\n (onClick: (event?: React.MouseEvent) => void) => (e: React.KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n onClick();\n }\n },\n [],\n );\n\n return {\n breadcrumb,\n CustomNavigation,\n showIconOnly,\n flexRegionRef,\n handleOnKeyDown,\n instanceUID,\n ownerProps,\n };\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,WAAW,QAAQ,YAAY,mBAAmB;AAC3D,SAAS,6BAA6B;AAEtC,SAAS,qBAAqB;AAcvB,MAAM,4BAA4B,MAAwC;AAC/E,QAAM;AAAA,IACJ,OAAO,EAAE,YAAY,iBAAiB;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,qBAAqB;AAEpC,QAAM,gBAAgB,OAAsB,IAAI;AAChD,QAAM,gBAAgB,OAAuB,IAAI;AAEjD,YAAU,MAAM;AACd,UAAM,uBAAuB,MAAM;AACjC,UACG,cAAc,WAAW,cAAc,QAAQ,eAAe,KAAK,CAAC,cAAc,WACnF,iBAAiB,cAAc,SAC/B,iBAAiB,cAAc,QAC/B;AACA,wBAAgB,IAAI;AACpB,sBAAc,UAAU,OAAO;AAAA,MACjC,WAAW,cAAc,WAAW,OAAO,cAAc,cAAc,SAAS;AAC9E,wBAAgB,KAAK;AACrB,sBAAc,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,yBAAqB;AAErB,WAAO,iBAAiB,UAAU,oBAAoB;AACtD,WAAO,MAAM,OAAO,oBAAoB,UAAU,oBAAoB;AAAA,EACxE,GAAG,CAAC,eAAe,eAAe,iBAAiB,YAAY,CAAC;AAEhE,QAAM,kBAAkB;AAAA,IACtB,CAAC,YAAgD,CAAC,MAA2B;AAC3E,UAAI,EAAE,QAAQ,OAAO,EAAE,QAAQ,SAAS;AACtC,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,14 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { getGlobalAttributes } from "@elliemae/ds-props-helpers";
4
3
  import { useContext } from "react";
5
- import { FONT_DETECTOR } from "../../config/constants.js";
4
+ import { getGlobalAttributes } from "@elliemae/ds-props-helpers";
5
+ import { StyledList, StyledMenubarContainer, StyledToolbarItem } from "./styles.js";
6
+ import { AppPicker, PopupMenu, SearchToggle } from "./outOfTheBox/index.js";
7
+ import { StyledButton } from "../styles.js";
6
8
  import { DSGlobalHeaderContext } from "../../DSGlobalHeaderContext.js";
7
9
  import { DSGlobalHeaderDatatestid } from "../../exported-related/index.js";
8
- import { StyledButton } from "../styles.js";
9
- import { AppPicker, PopupMenu, SearchToggle } from "./outOfTheBox/index.js";
10
- import { StyledList, StyledMenubarContainer, StyledToolbarItem } from "./styles.js";
11
10
  import { useGlobalHeaderToolbar } from "./useGlobalHeaderToolbar.js";
11
+ import { FONT_DETECTOR } from "../../config/constants.js";
12
12
  const GlobalHeaderToolbar = () => {
13
13
  const {
14
14
  props: { toolbar },
@@ -39,89 +39,115 @@ const GlobalHeaderToolbar = () => {
39
39
  "data-testid": DSGlobalHeaderDatatestid.MENUBAR.LIST,
40
40
  ...ownerProps,
41
41
  children: toolbar.map((item, index) => {
42
- const { type } = item;
43
- const setRefIndex = setRef(index);
44
- if (type === "ds-popup-menu") {
45
- const { label: label2, ...otherProps2 } = item;
46
- return /* @__PURE__ */ jsx(
47
- StyledToolbarItem,
48
- {
49
- role: "menuitem",
50
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
51
- ...ownerProps,
52
- children: /* @__PURE__ */ jsx(
53
- PopupMenu,
54
- {
55
- title: label2,
56
- setRef: setRefIndex,
57
- ...otherProps2
58
- }
59
- )
60
- },
61
- `${instanceUID}-ds-toolbar-item-${label2}`
62
- );
63
- }
64
- if (type === "ds-app-picker") {
65
- const { label: label2, ...otherProps2 } = item;
66
- return /* @__PURE__ */ jsx(
67
- StyledToolbarItem,
68
- {
69
- role: "menuitem",
70
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
71
- ...ownerProps,
72
- children: /* @__PURE__ */ jsx(AppPicker, { label: label2, setRef: setRefIndex, ...otherProps2 })
73
- },
74
- `${instanceUID}-ds-toolbar-item-${label2}`
75
- );
76
- }
77
- if (type === "ds-search-toggle") {
78
- const { label: label2, ...otherProps2 } = item;
79
- return /* @__PURE__ */ jsx(
80
- StyledToolbarItem,
81
- {
82
- role: "menuitem",
83
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
84
- ...ownerProps,
85
- children: /* @__PURE__ */ jsx(SearchToggle, { setRef: setRefIndex, ...otherProps2 })
86
- },
87
- `${instanceUID}-ds-toolbar-item-${label2}`
88
- );
89
- }
90
- if (type === "custom") {
91
- const { label: label2, CustomComponent } = item;
92
- if (!CustomComponent) return null;
93
- return /* @__PURE__ */ jsx(
94
- StyledToolbarItem,
95
- {
96
- role: "menuitem",
97
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
98
- ...ownerProps,
99
- children: CustomComponent && /* @__PURE__ */ jsx(CustomComponent, { item, setRef: setRefIndex })
100
- },
101
- `${instanceUID}-ds-toolbar-item-${label2}`
102
- );
103
- }
104
- const { label, Icon, ...otherProps } = item;
105
- return /* @__PURE__ */ jsx(
106
- StyledToolbarItem,
107
- {
108
- role: "menuitem",
109
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
110
- ...ownerProps,
111
- children: /* @__PURE__ */ jsx(
112
- StyledButton,
42
+ const {
43
+ Icon,
44
+ type,
45
+ onClick,
46
+ onKeyPress,
47
+ CustomComponent,
48
+ label,
49
+ id = "",
50
+ componentProps = {},
51
+ ...otherProps
52
+ } = item;
53
+ switch (type) {
54
+ case "ds-popup-menu":
55
+ return /* @__PURE__ */ jsx(
56
+ StyledToolbarItem,
57
+ {
58
+ role: "menuitem",
59
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
60
+ ...ownerProps,
61
+ children: /* @__PURE__ */ jsx(
62
+ PopupMenu,
63
+ {
64
+ title: label,
65
+ Icon,
66
+ onClick,
67
+ onKeyPress,
68
+ setRef: setRef(index),
69
+ id,
70
+ componentProps,
71
+ ...otherProps
72
+ }
73
+ )
74
+ },
75
+ `${instanceUID}-ds-toolbar-item-${label}`
76
+ );
77
+ case "ds-app-picker":
78
+ return /* @__PURE__ */ jsx(
79
+ StyledToolbarItem,
113
80
  {
114
- title: label,
115
- "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM_BUTTON,
116
- innerRef: setRefIndex,
117
- ...getGlobalAttributes(otherProps),
118
- type: "button",
119
- children: Icon && /* @__PURE__ */ jsx(Icon, { size: "m" })
120
- }
121
- )
122
- },
123
- `${instanceUID}-ds-toolbar-item-${label}`
124
- );
81
+ role: "menuitem",
82
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
83
+ ...ownerProps,
84
+ children: /* @__PURE__ */ jsx(
85
+ AppPicker,
86
+ {
87
+ label,
88
+ id,
89
+ setRef: setRef(index),
90
+ componentProps,
91
+ ...otherProps
92
+ }
93
+ )
94
+ },
95
+ `${instanceUID}-ds-toolbar-item-${label}`
96
+ );
97
+ case "ds-search-toggle":
98
+ return /* @__PURE__ */ jsx(
99
+ StyledToolbarItem,
100
+ {
101
+ role: "menuitem",
102
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
103
+ ...ownerProps,
104
+ children: /* @__PURE__ */ jsx(
105
+ SearchToggle,
106
+ {
107
+ id,
108
+ setRef: setRef(index),
109
+ componentProps,
110
+ ...otherProps
111
+ }
112
+ )
113
+ },
114
+ `${instanceUID}-ds-toolbar-item-${label}`
115
+ );
116
+ case "custom":
117
+ return /* @__PURE__ */ jsx(
118
+ StyledToolbarItem,
119
+ {
120
+ role: "menuitem",
121
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
122
+ ...ownerProps,
123
+ children: CustomComponent && /* @__PURE__ */ jsx(CustomComponent, { item, setRef: setRef(index) })
124
+ },
125
+ `${instanceUID}-ds-toolbar-item-${label}`
126
+ );
127
+ default:
128
+ return /* @__PURE__ */ jsx(
129
+ StyledToolbarItem,
130
+ {
131
+ role: "menuitem",
132
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM,
133
+ ...ownerProps,
134
+ children: /* @__PURE__ */ jsx(
135
+ StyledButton,
136
+ {
137
+ onClick,
138
+ title: label,
139
+ "data-testid": DSGlobalHeaderDatatestid.MENUBAR.ITEM_BUTTON,
140
+ id,
141
+ innerRef: setRef(index),
142
+ ...getGlobalAttributes(otherProps),
143
+ type: "button",
144
+ children: Icon && /* @__PURE__ */ jsx(Icon, { size: "m" })
145
+ }
146
+ )
147
+ },
148
+ `${instanceUID}-ds-toolbar-item-${label}`
149
+ );
150
+ }
125
151
  })
126
152
  }
127
153
  )