@elliemae/ds-app-picker 3.70.0-next.52 → 3.70.0-next.54

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 (80) hide show
  1. package/dist/cjs/DSAppPicker.js +6 -64
  2. package/dist/cjs/DSAppPicker.js.map +3 -3
  3. package/dist/cjs/DSAppPickerCTX.js +2 -22
  4. package/dist/cjs/DSAppPickerCTX.js.map +2 -2
  5. package/dist/cjs/config/useAppPicker.js +19 -5
  6. package/dist/cjs/config/useAppPicker.js.map +2 -2
  7. package/dist/cjs/config/useFocusTracker.js +24 -35
  8. package/dist/cjs/config/useFocusTracker.js.map +2 -2
  9. package/dist/cjs/constants/index.js +2 -0
  10. package/dist/cjs/constants/index.js.map +2 -2
  11. package/dist/cjs/parts/AppPanel.js +60 -43
  12. package/dist/cjs/parts/AppPanel.js.map +3 -3
  13. package/dist/cjs/parts/AppPickerFloatingContext/AppPickerContent.js +83 -0
  14. package/dist/cjs/parts/AppPickerFloatingContext/AppPickerContent.js.map +7 -0
  15. package/dist/cjs/parts/AppPickerFloatingContext/useAppPickerFloatingContext.js +171 -0
  16. package/dist/cjs/parts/AppPickerFloatingContext/useAppPickerFloatingContext.js.map +7 -0
  17. package/dist/cjs/parts/AppPickerItem.js +6 -10
  18. package/dist/cjs/parts/AppPickerItem.js.map +2 -2
  19. package/dist/cjs/parts/AppSection.js +2 -0
  20. package/dist/cjs/parts/AppSection.js.map +2 -2
  21. package/dist/cjs/parts/Trigger.js +14 -8
  22. package/dist/cjs/parts/Trigger.js.map +2 -2
  23. package/dist/cjs/parts/style.js +1 -7
  24. package/dist/cjs/parts/style.js.map +2 -2
  25. package/dist/cjs/react-desc-prop-types.js +6 -1
  26. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  27. package/dist/cjs/util/getChipId.js +36 -0
  28. package/dist/cjs/util/getChipId.js.map +7 -0
  29. package/dist/cjs/util/getChipRegionId.js +37 -0
  30. package/dist/cjs/util/getChipRegionId.js.map +7 -0
  31. package/dist/esm/DSAppPicker.js +7 -65
  32. package/dist/esm/DSAppPicker.js.map +3 -3
  33. package/dist/esm/DSAppPickerCTX.js +2 -22
  34. package/dist/esm/DSAppPickerCTX.js.map +2 -2
  35. package/dist/esm/config/useAppPicker.js +22 -8
  36. package/dist/esm/config/useAppPicker.js.map +2 -2
  37. package/dist/esm/config/useFocusTracker.js +23 -34
  38. package/dist/esm/config/useFocusTracker.js.map +2 -2
  39. package/dist/esm/constants/index.js +2 -0
  40. package/dist/esm/constants/index.js.map +2 -2
  41. package/dist/esm/parts/AppPanel.js +61 -44
  42. package/dist/esm/parts/AppPanel.js.map +3 -3
  43. package/dist/esm/parts/AppPickerFloatingContext/AppPickerContent.js +53 -0
  44. package/dist/esm/parts/AppPickerFloatingContext/AppPickerContent.js.map +7 -0
  45. package/dist/esm/parts/AppPickerFloatingContext/useAppPickerFloatingContext.js +141 -0
  46. package/dist/esm/parts/AppPickerFloatingContext/useAppPickerFloatingContext.js.map +7 -0
  47. package/dist/esm/parts/AppPickerItem.js +5 -9
  48. package/dist/esm/parts/AppPickerItem.js.map +2 -2
  49. package/dist/esm/parts/AppSection.js +2 -0
  50. package/dist/esm/parts/AppSection.js.map +2 -2
  51. package/dist/esm/parts/Trigger.js +15 -9
  52. package/dist/esm/parts/Trigger.js.map +2 -2
  53. package/dist/esm/parts/style.js +1 -7
  54. package/dist/esm/parts/style.js.map +2 -2
  55. package/dist/esm/react-desc-prop-types.js +6 -1
  56. package/dist/esm/react-desc-prop-types.js.map +2 -2
  57. package/dist/esm/util/getChipId.js +6 -0
  58. package/dist/esm/util/getChipId.js.map +7 -0
  59. package/dist/esm/util/getChipRegionId.js +7 -0
  60. package/dist/esm/util/getChipRegionId.js.map +7 -0
  61. package/dist/types/DSAppPicker.d.ts +1 -1
  62. package/dist/types/DSAppPickerCTX.d.ts +6 -17
  63. package/dist/types/config/useAppPicker.d.ts +109 -91
  64. package/dist/types/config/useFocusTracker.d.ts +10 -6
  65. package/dist/types/constants/index.d.ts +1 -0
  66. package/dist/types/parts/AppPanel.d.ts +1 -8
  67. package/dist/types/parts/AppPickerFloatingContext/AppPickerContent.d.ts +3 -0
  68. package/dist/types/parts/AppPickerFloatingContext/useAppPickerFloatingContext.d.ts +170 -0
  69. package/dist/types/parts/AppPickerItem.d.ts +1 -0
  70. package/dist/types/parts/Trigger.d.ts +10 -14
  71. package/dist/types/parts/style.d.ts +0 -1
  72. package/dist/types/react-desc-prop-types.d.ts +31 -1
  73. package/dist/types/util/getChipId.d.ts +2 -0
  74. package/dist/types/util/getChipRegionId.d.ts +1 -0
  75. package/package.json +13 -14
  76. package/dist/cjs/config/useAppPickerBehavior.js +0 -156
  77. package/dist/cjs/config/useAppPickerBehavior.js.map +0 -7
  78. package/dist/esm/config/useAppPickerBehavior.js +0 -126
  79. package/dist/esm/config/useAppPickerBehavior.js.map +0 -7
  80. package/dist/types/config/useAppPickerBehavior.d.ts +0 -39
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/react-desc-prop-types.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-empty-interface */\nimport React from 'react';\nimport { MenuPicker } from '@elliemae/ds-icons';\nimport type { SvgIconT } from '@elliemae/ds-icons';\nimport type { GlobalAttributesT, XstyledProps, DSPropTypesSchema, ValidationMap } from '@elliemae/ds-props-helpers';\nimport {\n PropTypes,\n getPropsPerSlotPropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSAppPickerName, DSAppPickerSlots } from './constants/index.js';\n\nexport declare namespace DSAppPickerT {\n export interface AppItem {\n label: string;\n icon: React.ComponentType<{ className: string; size: string }>;\n onClick?: (e: React.MouseEvent, item: AppItem) => void | null;\n disabled?: boolean;\n applyAriaDisabled?: boolean;\n id?: string;\n selected?: boolean;\n wrapText?: boolean;\n }\n\n export type ActionRef = React.MutableRefObject<{\n focusToIndex?: (index: number) => void;\n focusSelectedOrFirstAvailable?: () => void;\n focusWrapper: () => void;\n }>;\n\n export interface RequiredProps {}\n\n export type SlotFunctionArguments = {\n dsApppickerRoot: () => object;\n dsApppickerItem: () => object;\n dsApppickerTitle: () => object;\n dsApppickerSeparator: () => object;\n dsApppickerRow: () => object;\n dsApppickerChip: () => object;\n dsApppickerButton: () => object;\n dsApppickerFloatingWrapper: () => object;\n };\n\n export interface DefaultProps {\n apps: AppItem[];\n customApps: AppItem[];\n sectionTitle: string;\n customSectionTitle: string;\n icon: React.ComponentType<SvgIconT.Props>;\n }\n\n interface RenderTriggerProp {\n ref: React.RefCallback<HTMLButtonElement>;\n [key: string]: unknown;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSAppPickerName, typeof DSAppPickerSlots> {\n onClose?: () => void;\n onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\n onClickOutside?: (e: MouseEvent | React.MouseEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n actionRef?: ActionRef;\n renderTrigger?: (props: RenderTriggerProp) => React.ReactElement | null;\n isOpen?: boolean;\n triggerRef?: React.RefObject<HTMLButtonElement>;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSAppPickerT.DefaultProps = {\n apps: [],\n customApps: [],\n sectionTitle: 'APPLICATIONS',\n customSectionTitle: 'CUSTOM APPLICATIONS',\n icon: () => <MenuPicker color={['brand-primary', '700']} size=\"m\" />,\n};\n\n// =============================================================================\n// PropTypes\n// =============================================================================\n\nexport const DSAppPickerPropTypes: DSPropTypesSchema<DSAppPickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSAppPickerName, DSAppPickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n apps: PropTypes.array\n .description('Main items. Format: [{ label:string, icon:component, onClick:func, disabled:bool, selected:bool }]')\n .defaultValue([]),\n customApps: PropTypes.array\n .description('Custom items. Format: [{ label:string, icon:component, onClick:func, disabled:bool, selected:bool }]')\n .defaultValue([]),\n sectionTitle: PropTypes.string.description('main section title').defaultValue('APPLICATIONS'),\n customSectionTitle: PropTypes.string.description('custom section title').defaultValue('CUSTOM APPLICATIONS'),\n icon: PropTypes.func.description('trigger button s icon').defaultValue(MenuPicker),\n renderTrigger: PropTypes.func.description('Custom trigger component.'),\n actionRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'Ref containing a focusToIndex method. This method allows you to focus any App inside the AppPicker.',\n ),\n isOpen: PropTypes.bool.description('Wether the AppPicker should be open or not.'),\n onClose: PropTypes.func.description('Callback function when the AppPicker closes'),\n onKeyDown: PropTypes.func.description('OnKeyDown handler callback.'),\n onClick: PropTypes.func.description('Custom onClick for Trigger component.'),\n onClickOutside: PropTypes.func.description('Callback event when the user clicks outside the App Picker.'),\n triggerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'Ref to the trigger button.',\n ),\n};\n\nexport const DSAppPickerPropTypesSchema = DSAppPickerPropTypes as unknown as ValidationMap<DSAppPickerT.Props>;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC0FT;AAxFd,SAAS,kBAAkB;AAG3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,iBAAiB,wBAAwB;AAyE3C,MAAM,eAA0C;AAAA,EACrD,MAAM,CAAC;AAAA,EACP,YAAY,CAAC;AAAA,EACb,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,MAAM,MAAM,oBAAC,cAAW,OAAO,CAAC,iBAAiB,KAAK,GAAG,MAAK,KAAI;AACpE;AAMO,MAAM,uBAA8D;AAAA,EACzE,GAAG,yBAAyB,iBAAiB,gBAAgB;AAAA,EAC7D,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,UAAU,MACb,YAAY,oGAAoG,EAChH,aAAa,CAAC,CAAC;AAAA,EAClB,YAAY,UAAU,MACnB,YAAY,sGAAsG,EAClH,aAAa,CAAC,CAAC;AAAA,EAClB,cAAc,UAAU,OAAO,YAAY,oBAAoB,EAAE,aAAa,cAAc;AAAA,EAC5F,oBAAoB,UAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,qBAAqB;AAAA,EAC3G,MAAM,UAAU,KAAK,YAAY,uBAAuB,EAAE,aAAa,UAAU;AAAA,EACjF,eAAe,UAAU,KAAK,YAAY,2BAA2B;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,EAAE,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,QAAQ,UAAU,KAAK,YAAY,6CAA6C;AAAA,EAChF,SAAS,UAAU,KAAK,YAAY,6CAA6C;AAAA,EACjF,WAAW,UAAU,KAAK,YAAY,6BAA6B;AAAA,EACnE,SAAS,UAAU,KAAK,YAAY,uCAAuC;AAAA,EAC3E,gBAAgB,UAAU,KAAK,YAAY,6DAA6D;AAAA,EACxG,YAAY,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,EAAE,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;AAAA,IAC7F;AAAA,EACF;AACF;AAEO,MAAM,6BAA6B;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-empty-interface */\nimport React from 'react';\nimport { MenuPicker } from '@elliemae/ds-icons';\nimport type { SvgIconT } from '@elliemae/ds-icons';\nimport type { GlobalAttributesT, XstyledProps, DSPropTypesSchema, ValidationMap } from '@elliemae/ds-props-helpers';\nimport {\n PropTypes,\n getPropsPerSlotPropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSAppPickerName, DSAppPickerSlots } from './constants/index.js';\n\nexport declare namespace DSAppPickerT {\n export interface AppItem {\n label: string;\n icon: React.ComponentType<{ className: string; size: string }>;\n onClick?: (e: React.MouseEvent, item: AppItem) => void | null;\n disabled?: boolean;\n applyAriaDisabled?: boolean;\n id?: string;\n selected?: boolean;\n wrapText?: boolean;\n }\n\n export type ActionRef = React.MutableRefObject<{\n focusToIndex?: (index: number) => void;\n focusSelectedOrFirstAvailable?: () => void;\n focusWrapper: () => void;\n }>;\n\n /**\n * Why the panel opened. `trigger` carries the activating event and fires synchronously in the\n * trigger's click handler (AppPicker owns the open). `controlled` fires when the consumer flips\n * the `isOpen` prop themselves \u2014 no event, delivered when that flip takes effect.\n */\n export type OpenChange =\n { reason: 'trigger'; event: React.MouseEvent | React.KeyboardEvent } | { reason: 'controlled' };\n\n /**\n * Why the panel closed. The event-carrying reasons fire synchronously from the handler that owns\n * the close (AppPicker in uncontrolled mode): `escape` (a scoped Escape), `click-outside`, and\n * `trigger-toggle` (the trigger clicked while open). `controlled` fires when the consumer flips the\n * `isOpen` prop themselves \u2014 no event, delivered when that flip takes effect.\n */\n export type CloseChange =\n | { reason: 'escape'; event: KeyboardEvent }\n | { reason: 'click-outside'; event: MouseEvent | TouchEvent }\n | { reason: 'trigger-toggle'; event: React.MouseEvent | React.KeyboardEvent }\n | { reason: 'controlled' };\n\n export interface RequiredProps {}\n\n export type SlotFunctionArguments = {\n dsApppickerRoot: () => object;\n dsApppickerItem: () => object;\n dsApppickerTitle: () => object;\n dsApppickerSeparator: () => object;\n dsApppickerRow: () => object;\n dsApppickerChip: () => object;\n dsApppickerButton: () => object;\n dsApppickerFloatingWrapper: () => object;\n };\n\n export interface DefaultProps {\n apps: AppItem[];\n customApps: AppItem[];\n sectionTitle: string;\n customSectionTitle: string;\n icon: React.ComponentType<SvgIconT.Props>;\n }\n\n interface RenderTriggerProp {\n ref: React.RefCallback<HTMLButtonElement>;\n [key: string]: unknown;\n }\n\n export interface OptionalProps extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSAppPickerName,\n typeof DSAppPickerSlots\n > {\n onOpen?: (info: OpenChange) => void;\n onClose?: (info: CloseChange) => void;\n onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\n onClickOutside?: (e: MouseEvent | React.MouseEvent) => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n actionRef?: ActionRef;\n renderTrigger?: (props: RenderTriggerProp) => React.ReactElement | null;\n isOpen?: boolean;\n triggerRef?: React.RefObject<HTMLButtonElement>;\n }\n\n export interface Props\n extends\n Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends\n DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSAppPickerT.DefaultProps = {\n apps: [],\n customApps: [],\n sectionTitle: 'APPLICATIONS',\n customSectionTitle: 'CUSTOM APPLICATIONS',\n icon: () => <MenuPicker color={['brand-primary', '700']} size=\"m\" />,\n};\n\n// =============================================================================\n// PropTypes\n// =============================================================================\n\nexport const DSAppPickerPropTypes: DSPropTypesSchema<DSAppPickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSAppPickerName, DSAppPickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n apps: PropTypes.array\n .description('Main items. Format: [{ label:string, icon:component, onClick:func, disabled:bool, selected:bool }]')\n .defaultValue([]),\n customApps: PropTypes.array\n .description('Custom items. Format: [{ label:string, icon:component, onClick:func, disabled:bool, selected:bool }]')\n .defaultValue([]),\n sectionTitle: PropTypes.string.description('main section title').defaultValue('APPLICATIONS'),\n customSectionTitle: PropTypes.string.description('custom section title').defaultValue('CUSTOM APPLICATIONS'),\n icon: PropTypes.func.description('trigger button s icon').defaultValue(MenuPicker),\n renderTrigger: PropTypes.func.description('Custom trigger component.'),\n actionRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'Ref containing a focusToIndex method. This method allows you to focus any App inside the AppPicker.',\n ),\n isOpen: PropTypes.bool.description('Wether the AppPicker should be open or not.'),\n onOpen: PropTypes.func.description(\n 'Callback when the AppPicker opens; receives { reason: \"trigger\" | \"controlled\", event? }.',\n ),\n onClose: PropTypes.func.description(\n 'Callback when the AppPicker closes; receives { reason: \"escape\" | \"click-outside\" | \"trigger-toggle\" | \"controlled\", event? }.',\n ),\n onKeyDown: PropTypes.func.description('OnKeyDown handler callback.'),\n onClick: PropTypes.func.description('Custom onClick for Trigger component.'),\n onClickOutside: PropTypes.func.description('Callback event when the user clicks outside the App Picker.'),\n triggerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'Ref to the trigger button.',\n ),\n};\n\nexport const DSAppPickerPropTypesSchema = DSAppPickerPropTypes as unknown as ValidationMap<DSAppPickerT.Props>;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACmHT;AAjHd,SAAS,kBAAkB;AAG3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,iBAAiB,wBAAwB;AAkG3C,MAAM,eAA0C;AAAA,EACrD,MAAM,CAAC;AAAA,EACP,YAAY,CAAC;AAAA,EACb,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,MAAM,MAAM,oBAAC,cAAW,OAAO,CAAC,iBAAiB,KAAK,GAAG,MAAK,KAAI;AACpE;AAMO,MAAM,uBAA8D;AAAA,EACzE,GAAG,yBAAyB,iBAAiB,gBAAgB;AAAA,EAC7D,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,UAAU,MACb,YAAY,oGAAoG,EAChH,aAAa,CAAC,CAAC;AAAA,EAClB,YAAY,UAAU,MACnB,YAAY,sGAAsG,EAClH,aAAa,CAAC,CAAC;AAAA,EAClB,cAAc,UAAU,OAAO,YAAY,oBAAoB,EAAE,aAAa,cAAc;AAAA,EAC5F,oBAAoB,UAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,qBAAqB;AAAA,EAC3G,MAAM,UAAU,KAAK,YAAY,uBAAuB,EAAE,aAAa,UAAU;AAAA,EACjF,eAAe,UAAU,KAAK,YAAY,2BAA2B;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,EAAE,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,QAAQ,UAAU,KAAK,YAAY,6CAA6C;AAAA,EAChF,QAAQ,UAAU,KAAK;AAAA,IACrB;AAAA,EACF;AAAA,EACA,SAAS,UAAU,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EACA,WAAW,UAAU,KAAK,YAAY,6BAA6B;AAAA,EACnE,SAAS,UAAU,KAAK,YAAY,uCAAuC;AAAA,EAC3E,gBAAgB,UAAU,KAAK,YAAY,6DAA6D;AAAA,EACxG,YAAY,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,EAAE,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;AAAA,IAC7F;AAAA,EACF;AACF;AAEO,MAAM,6BAA6B;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ const getChipId = (app, flatIndex) => app.id ?? `${app.label}-${flatIndex}`;
3
+ export {
4
+ getChipId
5
+ };
6
+ //# sourceMappingURL=getChipId.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/util/getChipId.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { DSAppPickerT } from '../react-desc-prop-types.js';\n\n// Chip identity, assigned top-down from data the parent already holds: the app's own `id`, or a\n// deterministic `${label}-${flatIndex}` fallback for id-less apps (the flat index disambiguates\n// duplicate labels). Both the parent (the focus tracker's track* handlers) and the child\n// (AppPickerItem, via the `chipId` prop threaded through AppSection) derive identity through THIS\n// single function, so the parent can compute the exact region string a chip will match without the\n// chip generating an id and reporting it back up. That determinism removes the child\u2192parent\n// dependency entirely: focus can be addressed by identity alone, with no registry to keep in sync\n// and no wait for the child to mount and register.\n//\n// Kept as a standalone leaf util (depends only on a type) so both the hook and the parts can import\n// it without routing through the hook module \u2014 avoids any import cycle risk.\nexport const getChipId = (app: DSAppPickerT.AppItem, flatIndex: number): string =>\n app.id ?? `${app.label}-${flatIndex}`;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACahB,MAAM,YAAY,CAAC,KAA2B,cACnD,IAAI,MAAM,GAAG,IAAI,KAAK,IAAI,SAAS;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { CHIP_REGION_PREFIX } from "../constants/index.js";
3
+ const getChipRegionId = (chipId) => `${CHIP_REGION_PREFIX}${chipId}`;
4
+ export {
5
+ getChipRegionId
6
+ };
7
+ //# sourceMappingURL=getChipRegionId.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/util/getChipRegionId.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { CHIP_REGION_PREFIX } from '../constants/index.js';\n\n// Maps a chipId (see getChipId) to its focus-region identifier. Standalone leaf util \u2014 depends only\n// on the constants module \u2014 so the hook and the parts can share it without importing through the\n// hook, keeping the dependency graph acyclic.\nexport const getChipRegionId = (chipId: string): string => `${CHIP_REGION_PREFIX}${chipId}`;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,0BAA0B;AAK5B,MAAM,kBAAkB,CAAC,WAA2B,GAAG,kBAAkB,GAAG,MAAM;",
6
+ "names": []
7
+ }
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import type { DSAppPickerT } from './react-desc-prop-types.js';
3
3
  declare const DSAppPicker: React.ComponentType<DSAppPickerT.Props>;
4
4
  declare const AppPickerWithSchema: import("@elliemae/ds-props-helpers/dist/types/propTypes/types.js").DocumentedReactComponent<DSAppPickerT.Props>;
5
- export { DSAppPicker, AppPickerWithSchema };
5
+ export { AppPickerWithSchema, DSAppPicker };
@@ -1,17 +1,6 @@
1
- import React from 'react';
2
- import type { useFocusTracker } from './config/useFocusTracker.js';
3
- export type AppPickerFocusCTX = ReturnType<typeof useFocusTracker>;
4
- /** Focus tracker context for chip-level focus management inside DSAppPicker. */
5
- export declare const DSAppPickerContext: React.Context<{
6
- focusRegion: string;
7
- firstFocusableRef: React.MutableRefObject<HTMLElement | null>;
8
- lastFocusableRef: React.MutableRefObject<HTMLElement | null>;
9
- registerChip: (app: import("./react-desc-prop-types.js").DSAppPickerT.AppItem, chipId: string) => void;
10
- trackFocusChip: (chipId: string) => void;
11
- trackFocusRegionReset: () => void;
12
- trackFocusTrigger: () => void;
13
- trackFocusPanel: () => void;
14
- trackFocusSelectedItem: (apps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[], customApps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[]) => void;
15
- trackFocusFirstItem: (apps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[], customApps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[]) => void;
16
- trackFocusItemAtIndex: (apps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[], customApps: import("./react-desc-prop-types.js").DSAppPickerT.AppItem[], index: number) => void;
17
- }>;
1
+ import type { useAppPicker } from './config/useAppPicker.js';
2
+ export interface DSAppPickerCTX extends ReturnType<typeof useAppPicker> {
3
+ }
4
+ /** Single source of truth for DSAppPicker's parts — props, owner-props config, floating-context
5
+ * render state, and focus tracker. Replaces per-part prop drilling. */
6
+ export declare const DSAppPickerContext: import("react").Context<DSAppPickerCTX>;
@@ -1,40 +1,31 @@
1
1
  import React from 'react';
2
2
  import { type DSAppPickerT } from '../react-desc-prop-types.js';
3
3
  export declare const useAppPicker: (props: DSAppPickerT.Props) => {
4
+ focusTrackers: {
5
+ firstFocusableIdx: number;
6
+ lastFocusableIdx: number;
7
+ focusRegion: string;
8
+ firstFocusableRef: React.MutableRefObject<HTMLElement | null>;
9
+ lastFocusableRef: React.MutableRefObject<HTMLElement | null>;
10
+ trackFocusChip: (chipId: string) => void;
11
+ trackFocusRegionReset: () => void;
12
+ trackFocusTrigger: () => void;
13
+ trackFocusPanel: () => void;
14
+ trackFocusSelectedItem: () => void;
15
+ trackFocusFirstItem: () => void;
16
+ trackFocusItemAtIndex: (index: number) => void;
17
+ };
4
18
  propsWithDefault: DSAppPickerT.InternalProps;
5
19
  ownerPropsConfig: {
6
20
  getOwnerProps: () => DSAppPickerT.InternalProps;
7
21
  getOwnerPropsArguments: () => {};
8
22
  };
9
- globalAttributes: Partial<Pick<object, "title" | "cite" | "data" | "form" | "label" | "slot" | "span" | "style" | "summary" | "pattern" | "type" | "name" | "suppressHydrationWarning" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "target" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "classID" | "useMap" | "wmode" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "exportparts" | "part" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "download" | "hrefLang" | "alt" | "coords" | "shape" | "autoPlay" | "controls" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "dateTime" | "open" | "acceptCharset" | "action" | "autoComplete" | "encType" | "noValidate" | "manifest" | "allowFullScreen" | "allowTransparency" | "frameBorder" | "marginHeight" | "marginWidth" | "sandbox" | "scrolling" | "seamless" | "srcDoc" | "sizes" | "srcSet" | "accept" | "capture" | "checked" | "list" | "maxLength" | "minLength" | "multiple" | "placeholder" | "readOnly" | "required" | "size" | "step" | "challenge" | "keyType" | "keyParams" | "htmlFor" | "integrity" | "charSet" | "httpEquiv" | "high" | "low" | "optimum" | "reversed" | "start" | "selected" | "async" | "defer" | "scoped" | "cellPadding" | "cellSpacing" | "colSpan" | "headers" | "rowSpan" | "scope" | "cols" | "rows" | "wrap" | "default" | "kind" | "srcLang" | "poster"> & Omit<{
23
+ globalAttributes: Partial<Pick<object, "title" | "onClick" | "onKeyDown" | "form" | "list" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "slot" | "spellCheck" | "style" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "exportparts" | "part" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "checked" | "cite" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "data" | "dateTime" | "default" | "defer" | "disabled" | "download" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "height" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "label" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "multiple" | "muted" | "name" | "noValidate" | "open" | "optimum" | "pattern" | "placeholder" | "playsInline" | "poster" | "preload" | "readOnly" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "size" | "sizes" | "span" | "src" | "srcDoc" | "srcLang" | "srcSet" | "start" | "step" | "summary" | "target" | "type" | "useMap" | "value" | "width" | "wmode" | "wrap"> & Omit<{
10
24
  title?: string | undefined | undefined;
11
- cite?: string | undefined | undefined;
12
- data?: string | undefined | undefined;
25
+ onClick?: React.MouseEventHandler<Element> | undefined;
26
+ onKeyDown?: React.KeyboardEventHandler<Element> | undefined;
13
27
  form?: string | undefined | undefined;
14
- label?: string | undefined | undefined;
15
- slot?: string | undefined | undefined;
16
- span?: number | undefined | undefined;
17
- style?: React.CSSProperties | undefined;
18
- summary?: string | undefined | undefined;
19
- pattern?: string | undefined | undefined;
20
- type?: string | undefined | undefined;
21
- name?: string | undefined | undefined;
22
- suppressHydrationWarning?: boolean | undefined | undefined;
23
- className?: string | undefined | undefined;
24
- color?: string | undefined | undefined;
25
- height?: number | string | undefined | undefined;
26
- id?: string | undefined | undefined;
27
- lang?: string | undefined | undefined;
28
- max?: number | string | undefined | undefined;
29
- media?: string | undefined | undefined;
30
- method?: string | undefined | undefined;
31
- min?: number | string | undefined | undefined;
32
- target?: string | undefined | undefined;
33
- width?: number | string | undefined | undefined;
34
- role?: React.AriaRole | undefined;
35
- tabIndex?: 0 | -1 | undefined;
36
- crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
37
- href?: string | undefined | undefined;
28
+ list?: string | undefined | undefined;
38
29
  "aria-activedescendant"?: string | undefined | undefined;
39
30
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
40
31
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
@@ -121,7 +112,6 @@ export declare const useAppPicker: (props: DSAppPickerT.Props) => {
121
112
  onLoadCapture?: React.ReactEventHandler<Element> | undefined;
122
113
  onError?: React.ReactEventHandler<Element> | undefined;
123
114
  onErrorCapture?: React.ReactEventHandler<Element> | undefined;
124
- onKeyDown?: React.KeyboardEventHandler<Element> | undefined;
125
115
  onKeyDownCapture?: React.KeyboardEventHandler<Element> | undefined;
126
116
  onKeyPress?: React.KeyboardEventHandler<Element> | undefined;
127
117
  onKeyPressCapture?: React.KeyboardEventHandler<Element> | undefined;
@@ -173,7 +163,6 @@ export declare const useAppPicker: (props: DSAppPickerT.Props) => {
173
163
  onWaitingCapture?: React.ReactEventHandler<Element> | undefined;
174
164
  onAuxClick?: React.MouseEventHandler<Element> | undefined;
175
165
  onAuxClickCapture?: React.MouseEventHandler<Element> | undefined;
176
- onClick?: React.MouseEventHandler<Element> | undefined;
177
166
  onClickCapture?: React.MouseEventHandler<Element> | undefined;
178
167
  onContextMenu?: React.MouseEventHandler<Element> | undefined;
179
168
  onContextMenuCapture?: React.MouseEventHandler<Element> | undefined;
@@ -247,25 +236,30 @@ export declare const useAppPicker: (props: DSAppPickerT.Props) => {
247
236
  onAnimationIterationCapture?: React.AnimationEventHandler<Element> | undefined;
248
237
  onTransitionEnd?: React.TransitionEventHandler<Element> | undefined;
249
238
  onTransitionEndCapture?: React.TransitionEventHandler<Element> | undefined;
250
- classID?: string | undefined | undefined;
251
- useMap?: string | undefined | undefined;
252
- wmode?: string | undefined | undefined;
253
239
  defaultChecked?: boolean | undefined | undefined;
254
240
  defaultValue?: string | number | readonly string[] | undefined;
255
241
  suppressContentEditableWarning?: boolean | undefined | undefined;
242
+ suppressHydrationWarning?: boolean | undefined | undefined;
256
243
  accessKey?: string | undefined | undefined;
257
244
  autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
258
245
  autoFocus?: boolean | undefined | undefined;
246
+ className?: string | undefined | undefined;
259
247
  contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
260
248
  contextMenu?: string | undefined | undefined;
261
249
  dir?: string | undefined | undefined;
262
250
  draggable?: (boolean | "true" | "false") | undefined;
263
251
  enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
264
252
  hidden?: boolean | undefined | undefined;
253
+ id?: string | undefined | undefined;
254
+ lang?: string | undefined | undefined;
265
255
  nonce?: string | undefined | undefined;
256
+ slot?: string | undefined | undefined;
266
257
  spellCheck?: (boolean | "true" | "false") | undefined;
258
+ style?: React.CSSProperties | undefined;
259
+ tabIndex?: 0 | -1 | undefined;
267
260
  translate?: "yes" | "no" | undefined | undefined;
268
261
  radioGroup?: string | undefined | undefined;
262
+ role?: React.AriaRole | undefined;
269
263
  about?: string | undefined | undefined;
270
264
  content?: string | undefined | undefined;
271
265
  datatype?: string | undefined | undefined;
@@ -279,6 +273,7 @@ export declare const useAppPicker: (props: DSAppPickerT.Props) => {
279
273
  vocab?: string | undefined | undefined;
280
274
  autoCorrect?: string | undefined | undefined;
281
275
  autoSave?: string | undefined | undefined;
276
+ color?: string | undefined | undefined;
282
277
  itemProp?: string | undefined | undefined;
283
278
  itemScope?: boolean | undefined | undefined;
284
279
  itemType?: string | undefined | undefined;
@@ -291,86 +286,109 @@ export declare const useAppPicker: (props: DSAppPickerT.Props) => {
291
286
  is?: string | undefined | undefined;
292
287
  exportparts?: string | undefined | undefined;
293
288
  part?: string | undefined | undefined;
289
+ accept?: string | undefined | undefined;
290
+ acceptCharset?: string | undefined | undefined;
291
+ action?: string | undefined;
292
+ allowFullScreen?: boolean | undefined | undefined;
293
+ allowTransparency?: boolean | undefined | undefined;
294
+ alt?: string | undefined | undefined;
295
+ async?: boolean | undefined | undefined;
296
+ autoComplete?: string | undefined | undefined;
297
+ autoPlay?: boolean | undefined | undefined;
298
+ capture?: boolean | "user" | "environment" | undefined | undefined;
299
+ cellPadding?: number | string | undefined | undefined;
300
+ cellSpacing?: number | string | undefined | undefined;
301
+ charSet?: string | undefined | undefined;
302
+ challenge?: string | undefined | undefined;
303
+ checked?: boolean | undefined | undefined;
304
+ cite?: string | undefined | undefined;
305
+ classID?: string | undefined | undefined;
306
+ cols?: number | undefined | undefined;
307
+ colSpan?: number | undefined | undefined;
308
+ controls?: boolean | undefined | undefined;
309
+ coords?: string | undefined | undefined;
310
+ crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
311
+ data?: string | undefined | undefined;
312
+ dateTime?: string | undefined | undefined;
313
+ default?: boolean | undefined | undefined;
314
+ defer?: boolean | undefined | undefined;
294
315
  disabled?: boolean | undefined | undefined;
316
+ download?: any;
317
+ encType?: string | undefined | undefined;
295
318
  formAction?: string | undefined;
296
319
  formEncType?: string | undefined | undefined;
297
320
  formMethod?: string | undefined | undefined;
298
321
  formNoValidate?: boolean | undefined | undefined;
299
322
  formTarget?: string | undefined | undefined;
300
- value?: string | number | readonly string[] | undefined;
301
- download?: any;
323
+ frameBorder?: number | string | undefined | undefined;
324
+ headers?: string | undefined | undefined;
325
+ height?: number | string | undefined | undefined;
326
+ high?: number | undefined | undefined;
327
+ href?: string | undefined | undefined;
302
328
  hrefLang?: string | undefined | undefined;
303
- alt?: string | undefined | undefined;
304
- coords?: string | undefined | undefined;
305
- shape?: string | undefined | undefined;
306
- autoPlay?: boolean | undefined | undefined;
307
- controls?: boolean | undefined | undefined;
329
+ htmlFor?: string | undefined | undefined;
330
+ httpEquiv?: string | undefined | undefined;
331
+ integrity?: string | undefined | undefined;
332
+ keyParams?: string | undefined | undefined;
333
+ keyType?: string | undefined | undefined;
334
+ kind?: string | undefined | undefined;
335
+ label?: string | undefined | undefined;
308
336
  loop?: boolean | undefined | undefined;
309
- mediaGroup?: string | undefined | undefined;
310
- muted?: boolean | undefined | undefined;
311
- playsInline?: boolean | undefined | undefined;
312
- preload?: string | undefined | undefined;
313
- src?: string | undefined | undefined;
314
- dateTime?: string | undefined | undefined;
315
- open?: boolean | undefined | undefined;
316
- acceptCharset?: string | undefined | undefined;
317
- action?: string | undefined;
318
- autoComplete?: string | undefined | undefined;
319
- encType?: string | undefined | undefined;
320
- noValidate?: boolean | undefined | undefined;
337
+ low?: number | undefined | undefined;
321
338
  manifest?: string | undefined | undefined;
322
- allowFullScreen?: boolean | undefined | undefined;
323
- allowTransparency?: boolean | undefined | undefined;
324
- frameBorder?: number | string | undefined | undefined;
325
339
  marginHeight?: number | undefined | undefined;
326
340
  marginWidth?: number | undefined | undefined;
327
- sandbox?: string | undefined | undefined;
328
- scrolling?: string | undefined | undefined;
329
- seamless?: boolean | undefined | undefined;
330
- srcDoc?: string | undefined | undefined;
331
- sizes?: string | undefined | undefined;
332
- srcSet?: string | undefined | undefined;
333
- accept?: string | undefined | undefined;
334
- capture?: boolean | "user" | "environment" | undefined | undefined;
335
- checked?: boolean | undefined | undefined;
336
- list?: string | undefined | undefined;
341
+ max?: number | string | undefined | undefined;
337
342
  maxLength?: number | undefined | undefined;
343
+ media?: string | undefined | undefined;
344
+ mediaGroup?: string | undefined | undefined;
345
+ method?: string | undefined | undefined;
346
+ min?: number | string | undefined | undefined;
338
347
  minLength?: number | undefined | undefined;
339
348
  multiple?: boolean | undefined | undefined;
349
+ muted?: boolean | undefined | undefined;
350
+ name?: string | undefined | undefined;
351
+ noValidate?: boolean | undefined | undefined;
352
+ open?: boolean | undefined | undefined;
353
+ optimum?: number | undefined | undefined;
354
+ pattern?: string | undefined | undefined;
340
355
  placeholder?: string | undefined | undefined;
356
+ playsInline?: boolean | undefined | undefined;
357
+ poster?: string | undefined | undefined;
358
+ preload?: string | undefined | undefined;
341
359
  readOnly?: boolean | undefined | undefined;
342
360
  required?: boolean | undefined | undefined;
343
- size?: number | undefined | undefined;
344
- step?: number | string | undefined | undefined;
345
- challenge?: string | undefined | undefined;
346
- keyType?: string | undefined | undefined;
347
- keyParams?: string | undefined | undefined;
348
- htmlFor?: string | undefined | undefined;
349
- integrity?: string | undefined | undefined;
350
- charSet?: string | undefined | undefined;
351
- httpEquiv?: string | undefined | undefined;
352
- high?: number | undefined | undefined;
353
- low?: number | undefined | undefined;
354
- optimum?: number | undefined | undefined;
355
361
  reversed?: boolean | undefined | undefined;
356
- start?: number | undefined | undefined;
357
- selected?: boolean | undefined | undefined;
358
- async?: boolean | undefined | undefined;
359
- defer?: boolean | undefined | undefined;
360
- scoped?: boolean | undefined | undefined;
361
- cellPadding?: number | string | undefined | undefined;
362
- cellSpacing?: number | string | undefined | undefined;
363
- colSpan?: number | undefined | undefined;
364
- headers?: string | undefined | undefined;
362
+ rows?: number | undefined | undefined;
365
363
  rowSpan?: number | undefined | undefined;
364
+ sandbox?: string | undefined | undefined;
366
365
  scope?: string | undefined | undefined;
367
- cols?: number | undefined | undefined;
368
- rows?: number | undefined | undefined;
369
- wrap?: string | undefined | undefined;
370
- default?: boolean | undefined | undefined;
371
- kind?: string | undefined | undefined;
366
+ scoped?: boolean | undefined | undefined;
367
+ scrolling?: string | undefined | undefined;
368
+ seamless?: boolean | undefined | undefined;
369
+ selected?: boolean | undefined | undefined;
370
+ shape?: string | undefined | undefined;
371
+ size?: number | undefined | undefined;
372
+ sizes?: string | undefined | undefined;
373
+ span?: number | undefined | undefined;
374
+ src?: string | undefined | undefined;
375
+ srcDoc?: string | undefined | undefined;
372
376
  srcLang?: string | undefined | undefined;
373
- poster?: string | undefined | undefined;
377
+ srcSet?: string | undefined | undefined;
378
+ start?: number | undefined | undefined;
379
+ step?: number | string | undefined | undefined;
380
+ summary?: string | undefined | undefined;
381
+ target?: string | undefined | undefined;
382
+ type?: string | undefined | undefined;
383
+ useMap?: string | undefined | undefined;
384
+ value?: string | number | readonly string[] | undefined;
385
+ width?: number | string | undefined | undefined;
386
+ wmode?: string | undefined | undefined;
387
+ wrap?: string | undefined | undefined;
374
388
  }, never>>;
375
389
  xstyledProps: import("@elliemae/ds-props-helpers").XstyledProps;
390
+ wasOpenedByKeyboardRef: React.MutableRefObject<boolean>;
391
+ mountedOpenAutofocusPendingRef: React.MutableRefObject<boolean>;
392
+ resolvedIsOpen: boolean;
393
+ setInternalIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
376
394
  };
@@ -1,15 +1,19 @@
1
1
  import type { DSAppPickerT } from '../react-desc-prop-types.js';
2
- export declare const getChipRegionId: (chipId: string) => string;
3
- export declare const useFocusTracker: () => {
2
+ type FocusTrackerConfigT = {
3
+ allApps: DSAppPickerT.AppItem[];
4
+ };
5
+ export declare const useFocusTracker: (config: FocusTrackerConfigT) => {
6
+ firstFocusableIdx: number;
7
+ lastFocusableIdx: number;
4
8
  focusRegion: string;
5
9
  firstFocusableRef: import("react").MutableRefObject<HTMLElement | null>;
6
10
  lastFocusableRef: import("react").MutableRefObject<HTMLElement | null>;
7
- registerChip: (app: DSAppPickerT.AppItem, chipId: string) => void;
8
11
  trackFocusChip: (chipId: string) => void;
9
12
  trackFocusRegionReset: () => void;
10
13
  trackFocusTrigger: () => void;
11
14
  trackFocusPanel: () => void;
12
- trackFocusSelectedItem: (apps: DSAppPickerT.AppItem[], customApps: DSAppPickerT.AppItem[]) => void;
13
- trackFocusFirstItem: (apps: DSAppPickerT.AppItem[], customApps: DSAppPickerT.AppItem[]) => void;
14
- trackFocusItemAtIndex: (apps: DSAppPickerT.AppItem[], customApps: DSAppPickerT.AppItem[], index: number) => void;
15
+ trackFocusSelectedItem: () => void;
16
+ trackFocusFirstItem: () => void;
17
+ trackFocusItemAtIndex: (index: number) => void;
15
18
  };
19
+ export {};
@@ -4,6 +4,7 @@ export declare const APP_PICKER_REGION_FOCUSES: {
4
4
  readonly TRIGGER: "trigger";
5
5
  readonly PANEL: "panel";
6
6
  };
7
+ export declare const CHIP_REGION_PREFIX = "chip-";
7
8
  export declare const DSAppPickerSlots: {
8
9
  readonly ROOT: "root";
9
10
  readonly ITEM: "item";
@@ -1,9 +1,2 @@
1
1
  import React from 'react';
2
- import type { DSAppPickerT } from '../react-desc-prop-types.js';
3
- import type { useAppPicker } from '../config/useAppPicker.js';
4
- export declare const AppPanel: React.MemoExoticComponent<(props: DSAppPickerT.InternalProps & Pick<ReturnType<typeof useAppPicker>, "ownerPropsConfig" | "globalAttributes" | "xstyledProps"> & {
5
- close: () => void;
6
- wasOpenedByKeyboardRef: React.MutableRefObject<boolean>;
7
- triggerIsInternal: boolean;
8
- triggerRef: React.RefObject<HTMLButtonElement>;
9
- }) => import("react/jsx-runtime.js").JSX.Element>;
2
+ export declare const AppPanel: React.MemoExoticComponent<() => import("react/jsx-runtime.js").JSX.Element>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { DSAppPickerT } from '../../react-desc-prop-types.js';
3
+ export declare const AppPickerContent: React.ComponentType<DSAppPickerT.Props>;