@amboss/design-system 3.48.4 → 3.48.6-canary.0

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 (76) hide show
  1. package/build/cjs/components/AvatarGroup/AvatarGroup.d.ts +2 -1
  2. package/build/cjs/components/AvatarGroup/AvatarGroup.js +1 -1
  3. package/build/cjs/components/Form/Combobox/MultiSelect.js +1 -1
  4. package/build/cjs/components/Form/Combobox/SingleSelect.js +1 -1
  5. package/build/cjs/components/Form/Select/SelectWithCustomTrigger.js +1 -1
  6. package/build/cjs/components/Internal/LayoutManager/-constants.d.ts +9 -0
  7. package/build/cjs/components/Internal/LayoutManager/-constants.js +1 -0
  8. package/build/cjs/components/Internal/LayoutManager/-types.d.ts +181 -0
  9. package/build/cjs/components/Internal/LayoutManager/-types.js +1 -0
  10. package/build/cjs/components/Internal/LayoutManager/Layout.d.ts +28 -0
  11. package/build/cjs/components/Internal/LayoutManager/Layout.js +1 -0
  12. package/build/cjs/components/Internal/LayoutManager/LayoutProvider.d.ts +9 -0
  13. package/build/cjs/components/Internal/LayoutManager/LayoutProvider.js +1 -0
  14. package/build/cjs/components/Internal/LayoutManager/context.d.ts +12 -0
  15. package/build/cjs/components/Internal/LayoutManager/context.js +1 -0
  16. package/build/cjs/components/Internal/LayoutManager/index.d.ts +7 -0
  17. package/build/cjs/components/Internal/LayoutManager/index.js +1 -0
  18. package/build/cjs/components/Internal/LayoutManager/persistence.d.ts +6 -0
  19. package/build/cjs/components/Internal/LayoutManager/persistence.js +1 -0
  20. package/build/cjs/components/Internal/LayoutManager/reconcile.d.ts +2 -0
  21. package/build/cjs/components/Internal/LayoutManager/reconcile.js +1 -0
  22. package/build/cjs/components/Internal/LayoutManager/reducer.d.ts +5 -0
  23. package/build/cjs/components/Internal/LayoutManager/reducer.js +1 -0
  24. package/build/cjs/components/Internal/LayoutManager/store.d.ts +10 -0
  25. package/build/cjs/components/Internal/LayoutManager/store.js +1 -0
  26. package/build/cjs/components/Internal/LayoutManager/useHostNodes.d.ts +9 -0
  27. package/build/cjs/components/Internal/LayoutManager/useHostNodes.js +1 -0
  28. package/build/cjs/components/Internal/LayoutManager/useIsMobile.d.ts +5 -0
  29. package/build/cjs/components/Internal/LayoutManager/useIsMobile.js +1 -0
  30. package/build/cjs/components/Internal/LayoutManager/useLayout.d.ts +7 -0
  31. package/build/cjs/components/Internal/LayoutManager/useLayout.js +1 -0
  32. package/build/cjs/components/PromptInput/PromptTextArea.js +1 -1
  33. package/build/cjs/index.d.ts +1 -0
  34. package/build/cjs/index.js +1 -1
  35. package/build/cjs/web-tokens/_sizes.json +51 -51
  36. package/build/cjs/web-tokens/visualConfig.d.ts +5 -0
  37. package/build/cjs/web-tokens/visualConfig.js +1 -1
  38. package/build/esm/components/AvatarGroup/AvatarGroup.d.ts +2 -1
  39. package/build/esm/components/AvatarGroup/AvatarGroup.js +1 -1
  40. package/build/esm/components/Form/Combobox/MultiSelect.js +1 -1
  41. package/build/esm/components/Form/Combobox/SingleSelect.js +1 -1
  42. package/build/esm/components/Form/Select/SelectWithCustomTrigger.js +1 -1
  43. package/build/esm/components/Internal/LayoutManager/-constants.d.ts +9 -0
  44. package/build/esm/components/Internal/LayoutManager/-constants.js +1 -0
  45. package/build/esm/components/Internal/LayoutManager/-types.d.ts +181 -0
  46. package/build/esm/components/Internal/LayoutManager/-types.js +1 -0
  47. package/build/esm/components/Internal/LayoutManager/Layout.d.ts +28 -0
  48. package/build/esm/components/Internal/LayoutManager/Layout.js +1 -0
  49. package/build/esm/components/Internal/LayoutManager/LayoutProvider.d.ts +9 -0
  50. package/build/esm/components/Internal/LayoutManager/LayoutProvider.js +1 -0
  51. package/build/esm/components/Internal/LayoutManager/context.d.ts +12 -0
  52. package/build/esm/components/Internal/LayoutManager/context.js +1 -0
  53. package/build/esm/components/Internal/LayoutManager/index.d.ts +7 -0
  54. package/build/esm/components/Internal/LayoutManager/index.js +1 -0
  55. package/build/esm/components/Internal/LayoutManager/persistence.d.ts +6 -0
  56. package/build/esm/components/Internal/LayoutManager/persistence.js +1 -0
  57. package/build/esm/components/Internal/LayoutManager/reconcile.d.ts +2 -0
  58. package/build/esm/components/Internal/LayoutManager/reconcile.js +1 -0
  59. package/build/esm/components/Internal/LayoutManager/reducer.d.ts +5 -0
  60. package/build/esm/components/Internal/LayoutManager/reducer.js +1 -0
  61. package/build/esm/components/Internal/LayoutManager/store.d.ts +10 -0
  62. package/build/esm/components/Internal/LayoutManager/store.js +1 -0
  63. package/build/esm/components/Internal/LayoutManager/useHostNodes.d.ts +9 -0
  64. package/build/esm/components/Internal/LayoutManager/useHostNodes.js +1 -0
  65. package/build/esm/components/Internal/LayoutManager/useIsMobile.d.ts +5 -0
  66. package/build/esm/components/Internal/LayoutManager/useIsMobile.js +1 -0
  67. package/build/esm/components/Internal/LayoutManager/useLayout.d.ts +7 -0
  68. package/build/esm/components/Internal/LayoutManager/useLayout.js +1 -0
  69. package/build/esm/components/PromptInput/PromptTextArea.js +1 -1
  70. package/build/esm/index.d.ts +1 -0
  71. package/build/esm/index.js +1 -1
  72. package/build/esm/web-tokens/_sizes.json +51 -51
  73. package/build/esm/web-tokens/visualConfig.d.ts +5 -0
  74. package/build/esm/web-tokens/visualConfig.js +1 -1
  75. package/build/scss/subthemes/_inverted.scss +2 -0
  76. package/package.json +9 -8
@@ -1 +1 @@
1
- import React,{useState,useRef,useEffect,useCallback,useMemo}from"react";import styled from"@emotion/styled";import{getOptionId,getOptionsListId,OptionsList}from"../Combobox/OptionsList";import{useKeyboard}from"../../../shared/useKeyboard";import{useTypeAheadSearch}from"./useTypeAheadSearch";let HiddenSelectInput=styled("select",{target:"e58t0660",label:"HiddenSelectInput"})(()=>({display:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9TZWxlY3QvU2VsZWN0V2l0aEN1c3RvbVRyaWdnZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Gb3JtL1NlbGVjdC9TZWxlY3RXaXRoQ3VzdG9tVHJpZ2dlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVN0YXRlLFxuICB1c2VSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZU1lbW8sXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUge1xuICBSZWZPYmplY3QsXG4gIFJlYWN0RWxlbWVudCxcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBQb2ludGVyRXZlbnRIYW5kbGVyLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBDb21tb25TZWxlY3RQcm9wcywgU2VsZWN0T3B0aW9uIH0gZnJvbSBcIi4uL0NvbWJvYm94L0NvbWJvYm94XCI7XG5pbXBvcnQge1xuICBnZXRPcHRpb25JZCxcbiAgZ2V0T3B0aW9uc0xpc3RJZCxcbiAgT3B0aW9uc0xpc3QsXG59IGZyb20gXCIuLi9Db21ib2JveC9PcHRpb25zTGlzdFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyB1c2VUeXBlQWhlYWRTZWFyY2ggfSBmcm9tIFwiLi91c2VUeXBlQWhlYWRTZWFyY2hcIjtcblxuZXhwb3J0IHR5cGUgVHJpZ2dlclByb3BzID0ge1xuICB0cmlnZ2VyUmVmOiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBpc09wZW46IGJvb2xlYW47XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICByb2xlOiBzdHJpbmc7XG4gIFwiYXJpYS1leHBhbmRlZFwiPzogYm9vbGVhbjtcbiAgXCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RXaXRoQ3VzdG9tVHJpZ2dlclByb3BzID0ge1xuICByZW5kZXJUcmlnZ2VyOiAocHJvcHM6IFRyaWdnZXJQcm9wcykgPT4gUmVhY3RFbGVtZW50O1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxTZWxlY3RFbGVtZW50Pjtcbn0gJiBQaWNrPFxuICBDb21tb25TZWxlY3RQcm9wcyxcbiAgfCBcIm9wdGlvbnNMaXN0V2lkdGhcIlxuICB8IFwib3B0aW9uc1wiXG4gIHwgXCJtYXhIZWlnaHRcIlxuICB8IFwiZGlzYWJsZWRcIlxuICB8IFwibmFtZVwiXG4gIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICB8IFwiYXV0b0NvbXBsZXRlXCJcbiAgfCBcInJlYWRPbmx5XCJcbj47XG5cbmNvbnN0IEhpZGRlblNlbGVjdElucHV0ID0gc3R5bGVkLnNlbGVjdCgoKSA9PiAoe1xuICBkaXNwbGF5OiBcIm5vbmVcIixcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFdpdGhDdXN0b21UcmlnZ2VyKHtcbiAgcmVuZGVyVHJpZ2dlcixcbiAgb3B0aW9uc0xpc3RXaWR0aCxcbiAgb3B0aW9ucyxcbiAgbmFtZSxcbiAgdmFsdWUsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGlzYWJsZWQsXG4gIG1heEhlaWdodCA9IDIzMCxcbiAgYXV0b0NvbXBsZXRlID0gXCJvblwiLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBvbkNoYW5nZSxcbn06IFNlbGVjdFdpdGhDdXN0b21UcmlnZ2VyUHJvcHMpOiBSZWFjdEVsZW1lbnQge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGhpZGRlblNlbGVjdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY3VycmVudE9wdGlvbkluZGV4ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBvcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICBbb3B0aW9ucywgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgY2xvc2VPcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIWlzT3BlbikgcmV0dXJuO1xuXG4gICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgfSwgW2lzT3Blbl0pO1xuXG4gIGNvbnN0IG9wZW5PcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNPcGVuIHx8IHJlYWRPbmx5KSByZXR1cm47XG5cbiAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgLy8gRm9yIFNhZmFyaSBiZWNhdXNlIGNsaWNrIG9uIGEgYnV0dG9uIGRvZXNuJ3QgZ2l2ZSBpdCBmb2N1c1xuICAgIHRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgfSwgW2lzT3BlbiwgcmVhZE9ubHldKTtcblxuICBjb25zdCB0b2dnbGVPcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNPcGVuKSB7XG4gICAgICBjbG9zZU9wdGlvbnNMaXN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZW5PcHRpb25zTGlzdCgpO1xuICAgIH1cbiAgfSwgW2lzT3Blbiwgb3Blbk9wdGlvbnNMaXN0LCBjbG9zZU9wdGlvbnNMaXN0XSk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChpbmRleDogbnVtYmVyKSA9PiBzZXRTZWxlY3RlZEluZGV4KGluZGV4KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFNlbGVjdE9wdGlvbikgPT4ge1xuICAgICAgaGlkZGVuU2VsZWN0UmVmLmN1cnJlbnQudmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgICBoaWRkZW5TZWxlY3RSZWYuY3VycmVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgRXZlbnQoXCJjaGFuZ2VcIiwgeyBidWJibGVzOiB0cnVlIH0pXG4gICAgICApO1xuICAgIH0sXG4gICAgW2hpZGRlblNlbGVjdFJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2hNYXRjaCA9IHVzZUNhbGxiYWNrKFxuICAgIChtYXRjaGVkSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKG1hdGNoZWRJbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG1hdGNoZWRJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVDaGFuZ2Uob3B0aW9uc1ttYXRjaGVkSW5kZXhdKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtpc09wZW4sIG9wdGlvbnMsIHNldFNlbGVjdGVkSW5kZXgsIGhhbmRsZUNoYW5nZV1cbiAgKTtcblxuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICBFbnRlcjogKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0sXG4gICAgICBcIkFycm93VXAgQXJyb3dEb3duXCI6ICgpID0+IHtcbiAgICAgICAgb3Blbk9wdGlvbnNMaXN0KCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgdHJpZ2dlclJlZixcbiAgICAhaXNPcGVuICYmICFkaXNhYmxlZFxuICApO1xuXG4gIHVzZVR5cGVBaGVhZFNlYXJjaCh7XG4gICAgb3B0aW9ucyxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzQWN0aXZlOiAhZGlzYWJsZWQsXG4gICAgZnJvbUluZGV4OiBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IHNlbGVjdGVkSW5kZXggOiBjdXJyZW50T3B0aW9uSW5kZXgsXG4gICAgb25NYXRjaDogaGFuZGxlU2VhcmNoTWF0Y2gsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdHJpZ2dlckVsbSA9IHRyaWdnZXJSZWYuY3VycmVudDtcbiAgICAvLyBwcmV2ZW50IGZvY3VzIG9uIGNsaWNrIHRvIHByZXZlbnQgdG9nZ2xlIG9wZW4gc3RhdGUgb24gY2xpY2sgZm9sbG93ZWQgYnkgZm9jdXNcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93bjogUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MQnV0dG9uRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgaWYgKHRyaWdnZXJFbG0gJiYgIWRpc2FibGVkKSB7XG4gICAgICB0cmlnZ2VyRWxtLnNldEF0dHJpYnV0ZShcInRhYkluZGV4XCIsIFwiMFwiKTsgLy8gRm9yIFNhZmFyaSwgYmVjYXVzZXMgYnV0dG9ucyBhcmUgbm90IGZvY3VzYWJsZSBieSBkZWZhdWx0XG4gICAgICB0cmlnZ2VyRWxtLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0b2dnbGVPcHRpb25zTGlzdCk7XG4gICAgICB0cmlnZ2VyRWxtLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCBvcGVuT3B0aW9uc0xpc3QpO1xuICAgICAgdHJpZ2dlckVsbS5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCBjbG9zZU9wdGlvbnNMaXN0KTtcbiAgICAgIHRyaWdnZXJFbG0uYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdHJpZ2dlckVsbT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRvZ2dsZU9wdGlvbnNMaXN0KTtcbiAgICAgIHRyaWdnZXJFbG0/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCBvcGVuT3B0aW9uc0xpc3QpO1xuICAgICAgdHJpZ2dlckVsbT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgY2xvc2VPcHRpb25zTGlzdCk7XG4gICAgICB0cmlnZ2VyRWxtPy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgIH07XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGRpc2FibGVkLFxuICAgIG9wZW5PcHRpb25zTGlzdCxcbiAgICBjbG9zZU9wdGlvbnNMaXN0LFxuICAgIHRvZ2dsZU9wdGlvbnNMaXN0LFxuICBdKTtcblxuICBjb25zdCBvcHRpb25zTGlzdElkID0gZ2V0T3B0aW9uc0xpc3RJZChuYW1lKTtcbiAgY29uc3QgYXJpYUFjdGl2ZURlc2NlbmRhbnQgPVxuICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uc1tzZWxlY3RlZEluZGV4XS52YWx1ZSkgOiBcIlwiO1xuICBjb25zdCB0cmlnZ2VyRWxtID0gcmVuZGVyVHJpZ2dlcih7XG4gICAgdHJpZ2dlclJlZixcbiAgICBpc09wZW4sXG4gICAgZGlzYWJsZWQsXG4gICAgcm9sZTogXCJjb21ib2JveFwiLFxuICAgIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6IGlzT3BlbiA/IGFyaWFBY3RpdmVEZXNjZW5kYW50IDogXCJcIixcbiAgICBcImFyaWEtY29udHJvbHNcIjogaXNPcGVuID8gb3B0aW9uc0xpc3RJZCA6IFwiXCIsXG4gICAgXCJhcmlhLWV4cGFuZGVkXCI6IGlzT3BlbixcbiAgfSk7XG5cbiAgY29uc3Qgb3B0aW9uc0xpc3RFbG0gPSAoXG4gICAgPE9wdGlvbnNMaXN0XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICBpc1ZpcnR1YWxpemVkPXtmYWxzZX1cbiAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICB0cmlnZ2VyUmVmPXt0cmlnZ2VyUmVmfVxuICAgICAgb25DbG9zZURyb3Bkb3duPXtjbG9zZU9wdGlvbnNMaXN0fVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBzZWxlY3RlZEluZGV4PXtzZWxlY3RlZEluZGV4fVxuICAgICAgb25TZWxlY3RlZEluZGV4Q2hhbmdlPXtoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlfVxuICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0PXtoYW5kbGVDaGFuZ2V9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgIG9wdGlvbnNMaXN0V2lkdGg9e29wdGlvbnNMaXN0V2lkdGh9XG4gICAgLz5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7dHJpZ2dlckVsbX1cbiAgICAgIHtvcHRpb25zTGlzdEVsbX1cbiAgICAgIDxIaWRkZW5TZWxlY3RJbnB1dFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgcmVmPXtoaWRkZW5TZWxlY3RSZWZ9XG4gICAgICAgIGF1dG9Db21wbGV0ZT17YXV0b0NvbXBsZXRlfVxuICAgICAgPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgYXJpYS1sYWJlbD1cIkVtcHR5IG9wdGlvblwiIC8+XG4gICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICB7b3B0aW9uLmxhYmVsfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICApKX1cbiAgICAgIDwvSGlkZGVuU2VsZWN0SW5wdXQ+XG4gICAgPC8+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUQwQiJ9 */");export function SelectWithCustomTrigger({renderTrigger,optionsListWidth,options,name,value,portalContainer,disabled,maxHeight=230,autoComplete="on",readOnly=!1,onChange}){let[isOpen,setIsOpen]=useState(!1),[selectedIndex,setSelectedIndex]=useState(-1),triggerRef=useRef(null),hiddenSelectRef=useRef(null),currentOptionIndex=useMemo(()=>options.findIndex(option=>option.value===value),[options,value]),closeOptionsList=useCallback(()=>{isOpen&&(setIsOpen(!1),setSelectedIndex(-1))},[isOpen]),openOptionsList=useCallback(()=>{isOpen||readOnly||(setIsOpen(!0),triggerRef.current?.focus())},[isOpen,readOnly]),toggleOptionsList=useCallback(()=>{isOpen?closeOptionsList():openOptionsList()},[isOpen,openOptionsList,closeOptionsList]),handleSelectedIndexChange=useCallback(index=>setSelectedIndex(index),[]),handleChange=useCallback(option=>{hiddenSelectRef.current.value=option.value,hiddenSelectRef.current.dispatchEvent(new Event("change",{bubbles:!0}))},[hiddenSelectRef]),handleSearchMatch=useCallback(matchedIndex=>{-1!==matchedIndex&&(isOpen?setSelectedIndex(matchedIndex):handleChange(options[matchedIndex]))},[isOpen,options,setSelectedIndex,handleChange]);useKeyboard({Enter:evt=>{evt.preventDefault()},"ArrowUp ArrowDown":()=>{openOptionsList()}},triggerRef,!isOpen&&!disabled),useTypeAheadSearch({options,triggerRef,isActive:!disabled,fromIndex:-1!==selectedIndex?selectedIndex:currentOptionIndex,onMatch:handleSearchMatch}),useEffect(()=>{let triggerElm=triggerRef.current,handlePointerDown=evt=>{evt.preventDefault()};return triggerElm&&!disabled&&(triggerElm.setAttribute("tabIndex","0"),triggerElm.addEventListener("click",toggleOptionsList),triggerElm.addEventListener("focus",openOptionsList),triggerElm.addEventListener("blur",closeOptionsList),triggerElm.addEventListener("pointerdown",handlePointerDown)),()=>{triggerElm?.removeEventListener("click",toggleOptionsList),triggerElm?.removeEventListener("focus",openOptionsList),triggerElm?.removeEventListener("blur",closeOptionsList),triggerElm?.removeEventListener("pointerdown",handlePointerDown)}},[triggerRef,disabled,openOptionsList,closeOptionsList,toggleOptionsList]);let optionsListId=getOptionsListId(name),ariaActiveDescendant=-1!==selectedIndex?getOptionId(name,options[selectedIndex].value):"",triggerElm=renderTrigger({triggerRef,isOpen,disabled,role:"combobox","aria-activedescendant":isOpen?ariaActiveDescendant:"","aria-controls":isOpen?optionsListId:"","aria-expanded":isOpen}),optionsListElm=React.createElement(OptionsList,{name:name,isOpen:isOpen,isVirtualized:!1,options:options,triggerRef:triggerRef,onCloseDropdown:closeOptionsList,portalContainer:portalContainer,selectedIndex:selectedIndex,onSelectedIndexChange:handleSelectedIndexChange,forceChangeFakeSelect:handleChange,value:value,disabled:disabled,maxHeight:maxHeight,optionsListWidth:optionsListWidth});return React.createElement(React.Fragment,null,triggerElm,optionsListElm,React.createElement(HiddenSelectInput,{name:name,onChange:onChange,value:value,ref:hiddenSelectRef,autoComplete:autoComplete},React.createElement("option",{value:"","aria-label":"Empty option"}),options.map(option=>React.createElement("option",{value:option.value,key:option.value},option.label))))}
1
+ import React,{useState,useRef,useEffect,useCallback,useMemo}from"react";import styled from"@emotion/styled";import{getOptionId,getOptionsListId,OptionsList}from"../Combobox/OptionsList";import{useKeyboard}from"../../../shared/useKeyboard";import{useTypeAheadSearch}from"./useTypeAheadSearch";let HiddenSelectInput=styled("select",{target:"e1pyx1cg0",label:"HiddenSelectInput"})(()=>({display:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9TZWxlY3QvU2VsZWN0V2l0aEN1c3RvbVRyaWdnZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Gb3JtL1NlbGVjdC9TZWxlY3RXaXRoQ3VzdG9tVHJpZ2dlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVN0YXRlLFxuICB1c2VSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZU1lbW8sXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUge1xuICBSZWZPYmplY3QsXG4gIFJlYWN0RWxlbWVudCxcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBQb2ludGVyRXZlbnRIYW5kbGVyLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBDb21tb25TZWxlY3RQcm9wcywgU2VsZWN0T3B0aW9uIH0gZnJvbSBcIi4uL0NvbWJvYm94L0NvbWJvYm94XCI7XG5pbXBvcnQge1xuICBnZXRPcHRpb25JZCxcbiAgZ2V0T3B0aW9uc0xpc3RJZCxcbiAgT3B0aW9uc0xpc3QsXG59IGZyb20gXCIuLi9Db21ib2JveC9PcHRpb25zTGlzdFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyB1c2VUeXBlQWhlYWRTZWFyY2ggfSBmcm9tIFwiLi91c2VUeXBlQWhlYWRTZWFyY2hcIjtcblxuZXhwb3J0IHR5cGUgVHJpZ2dlclByb3BzID0ge1xuICB0cmlnZ2VyUmVmOiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBpc09wZW46IGJvb2xlYW47XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICByb2xlOiBzdHJpbmc7XG4gIFwiYXJpYS1leHBhbmRlZFwiPzogYm9vbGVhbjtcbiAgXCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RXaXRoQ3VzdG9tVHJpZ2dlclByb3BzID0ge1xuICByZW5kZXJUcmlnZ2VyOiAocHJvcHM6IFRyaWdnZXJQcm9wcykgPT4gUmVhY3RFbGVtZW50O1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxTZWxlY3RFbGVtZW50Pjtcbn0gJiBQaWNrPFxuICBDb21tb25TZWxlY3RQcm9wcyxcbiAgfCBcIm9wdGlvbnNMaXN0V2lkdGhcIlxuICB8IFwib3B0aW9uc1wiXG4gIHwgXCJtYXhIZWlnaHRcIlxuICB8IFwiZGlzYWJsZWRcIlxuICB8IFwibmFtZVwiXG4gIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICB8IFwiYXV0b0NvbXBsZXRlXCJcbiAgfCBcInJlYWRPbmx5XCJcbj47XG5cbmNvbnN0IEhpZGRlblNlbGVjdElucHV0ID0gc3R5bGVkLnNlbGVjdCgoKSA9PiAoe1xuICBkaXNwbGF5OiBcIm5vbmVcIixcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFdpdGhDdXN0b21UcmlnZ2VyKHtcbiAgcmVuZGVyVHJpZ2dlcixcbiAgb3B0aW9uc0xpc3RXaWR0aCxcbiAgb3B0aW9ucyxcbiAgbmFtZSxcbiAgdmFsdWUsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGlzYWJsZWQsXG4gIG1heEhlaWdodCA9IDIzMCxcbiAgYXV0b0NvbXBsZXRlID0gXCJvblwiLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBvbkNoYW5nZSxcbn06IFNlbGVjdFdpdGhDdXN0b21UcmlnZ2VyUHJvcHMpOiBSZWFjdEVsZW1lbnQge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGhpZGRlblNlbGVjdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY3VycmVudE9wdGlvbkluZGV4ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBvcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICBbb3B0aW9ucywgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgY2xvc2VPcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIWlzT3BlbikgcmV0dXJuO1xuXG4gICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgfSwgW2lzT3Blbl0pO1xuXG4gIGNvbnN0IG9wZW5PcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNPcGVuIHx8IHJlYWRPbmx5KSByZXR1cm47XG5cbiAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgLy8gRm9yIFNhZmFyaSBiZWNhdXNlIGNsaWNrIG9uIGEgYnV0dG9uIGRvZXNuJ3QgZ2l2ZSBpdCBmb2N1c1xuICAgIHRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgfSwgW2lzT3BlbiwgcmVhZE9ubHldKTtcblxuICBjb25zdCB0b2dnbGVPcHRpb25zTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNPcGVuKSB7XG4gICAgICBjbG9zZU9wdGlvbnNMaXN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZW5PcHRpb25zTGlzdCgpO1xuICAgIH1cbiAgfSwgW2lzT3Blbiwgb3Blbk9wdGlvbnNMaXN0LCBjbG9zZU9wdGlvbnNMaXN0XSk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChpbmRleDogbnVtYmVyKSA9PiBzZXRTZWxlY3RlZEluZGV4KGluZGV4KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFNlbGVjdE9wdGlvbikgPT4ge1xuICAgICAgaGlkZGVuU2VsZWN0UmVmLmN1cnJlbnQudmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgICBoaWRkZW5TZWxlY3RSZWYuY3VycmVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgRXZlbnQoXCJjaGFuZ2VcIiwgeyBidWJibGVzOiB0cnVlIH0pXG4gICAgICApO1xuICAgIH0sXG4gICAgW2hpZGRlblNlbGVjdFJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2hNYXRjaCA9IHVzZUNhbGxiYWNrKFxuICAgIChtYXRjaGVkSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKG1hdGNoZWRJbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG1hdGNoZWRJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVDaGFuZ2Uob3B0aW9uc1ttYXRjaGVkSW5kZXhdKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtpc09wZW4sIG9wdGlvbnMsIHNldFNlbGVjdGVkSW5kZXgsIGhhbmRsZUNoYW5nZV1cbiAgKTtcblxuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICAvLyBPcGVuIHRoZSBsaXN0IG9uIEVudGVyL1NwYWNlL0Fycm93IGtleXMgKEFSSUEgQVBHIGNvbWJvYm94IHBhdHRlcm4pLlxuICAgICAgLy8gdXNlS2V5Ym9hcmQgcHJldmVudERlZmF1bHRzIHRoZSBldmVudCwgc28gRW50ZXIgbmV2ZXIgc3VibWl0cyB0aGUgZm9ybS5cbiAgICAgIFwiRW50ZXIgU3BhY2UgQXJyb3dVcCBBcnJvd0Rvd25cIjogKCkgPT4ge1xuICAgICAgICBvcGVuT3B0aW9uc0xpc3QoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgICFpc09wZW4gJiYgIWRpc2FibGVkXG4gICk7XG5cbiAgdXNlVHlwZUFoZWFkU2VhcmNoKHtcbiAgICBvcHRpb25zLFxuICAgIHRyaWdnZXJSZWYsXG4gICAgaXNBY3RpdmU6ICFkaXNhYmxlZCxcbiAgICBmcm9tSW5kZXg6IHNlbGVjdGVkSW5kZXggIT09IC0xID8gc2VsZWN0ZWRJbmRleCA6IGN1cnJlbnRPcHRpb25JbmRleCxcbiAgICBvbk1hdGNoOiBoYW5kbGVTZWFyY2hNYXRjaCxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0cmlnZ2VyRWxtID0gdHJpZ2dlclJlZi5jdXJyZW50O1xuICAgIC8vIHByZXZlbnQgZm9jdXMgb24gY2xpY2sgdG8gcHJldmVudCB0b2dnbGUgb3BlbiBzdGF0ZSBvbiBjbGljayBmb2xsb3dlZCBieSBmb2N1c1xuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duOiBQb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBpZiAodHJpZ2dlckVsbSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIHRyaWdnZXJFbG0uc2V0QXR0cmlidXRlKFwidGFiSW5kZXhcIiwgXCIwXCIpOyAvLyBGb3IgU2FmYXJpLCBiZWNhdXNlcyBidXR0b25zIGFyZSBub3QgZm9jdXNhYmxlIGJ5IGRlZmF1bHRcbiAgICAgIHRyaWdnZXJFbG0uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRvZ2dsZU9wdGlvbnNMaXN0KTtcbiAgICAgIC8vIE5vdGU6IGZvY3VzIG11c3QgTk9UIG9wZW4gdGhlIGxpc3QuIFRhYmJpbmcgdG8gdGhlIHRyaWdnZXIgc2hvdWxkIG9ubHlcbiAgICAgIC8vIG1vdmUgZm9jdXMgKEFSSUEgQVBHKS4gVGhlIGxpc3Qgb3BlbnMgb24gY2xpY2svRW50ZXIvU3BhY2UvQXJyb3cga2V5cy5cbiAgICAgIHRyaWdnZXJFbG0uYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgY2xvc2VPcHRpb25zTGlzdCk7XG4gICAgICB0cmlnZ2VyRWxtLmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRyaWdnZXJFbG0/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0b2dnbGVPcHRpb25zTGlzdCk7XG4gICAgICB0cmlnZ2VyRWxtPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmx1clwiLCBjbG9zZU9wdGlvbnNMaXN0KTtcbiAgICAgIHRyaWdnZXJFbG0/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGRpc2FibGVkLCBjbG9zZU9wdGlvbnNMaXN0LCB0b2dnbGVPcHRpb25zTGlzdF0pO1xuXG4gIGNvbnN0IG9wdGlvbnNMaXN0SWQgPSBnZXRPcHRpb25zTGlzdElkKG5hbWUpO1xuICBjb25zdCBhcmlhQWN0aXZlRGVzY2VuZGFudCA9XG4gICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBnZXRPcHRpb25JZChuYW1lLCBvcHRpb25zW3NlbGVjdGVkSW5kZXhdLnZhbHVlKSA6IFwiXCI7XG4gIGNvbnN0IHRyaWdnZXJFbG0gPSByZW5kZXJUcmlnZ2VyKHtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbixcbiAgICBkaXNhYmxlZCxcbiAgICByb2xlOiBcImNvbWJvYm94XCIsXG4gICAgXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIjogaXNPcGVuID8gYXJpYUFjdGl2ZURlc2NlbmRhbnQgOiBcIlwiLFxuICAgIFwiYXJpYS1jb250cm9sc1wiOiBpc09wZW4gPyBvcHRpb25zTGlzdElkIDogXCJcIixcbiAgICBcImFyaWEtZXhwYW5kZWRcIjogaXNPcGVuLFxuICB9KTtcblxuICBjb25zdCBvcHRpb25zTGlzdEVsbSA9IChcbiAgICA8T3B0aW9uc0xpc3RcbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgIGlzVmlydHVhbGl6ZWQ9e2ZhbHNlfVxuICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgIHRyaWdnZXJSZWY9e3RyaWdnZXJSZWZ9XG4gICAgICBvbkNsb3NlRHJvcGRvd249e2Nsb3NlT3B0aW9uc0xpc3R9XG4gICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgIHNlbGVjdGVkSW5kZXg9e3NlbGVjdGVkSW5kZXh9XG4gICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2U9e2hhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2V9XG4gICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3Q9e2hhbmRsZUNoYW5nZX1cbiAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgb3B0aW9uc0xpc3RXaWR0aD17b3B0aW9uc0xpc3RXaWR0aH1cbiAgICAvPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHt0cmlnZ2VyRWxtfVxuICAgICAge29wdGlvbnNMaXN0RWxtfVxuICAgICAgPEhpZGRlblNlbGVjdElucHV0XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICByZWY9e2hpZGRlblNlbGVjdFJlZn1cbiAgICAgICAgYXV0b0NvbXBsZXRlPXthdXRvQ29tcGxldGV9XG4gICAgICA+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBhcmlhLWxhYmVsPVwiRW1wdHkgb3B0aW9uXCIgLz5cbiAgICAgICAge29wdGlvbnMubWFwKChvcHRpb24pID0+IChcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPXtvcHRpb24udmFsdWV9IGtleT17b3B0aW9uLnZhbHVlfT5cbiAgICAgICAgICAgIHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICkpfVxuICAgICAgPC9IaWRkZW5TZWxlY3RJbnB1dD5cbiAgICA8Lz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRDBCIn0= */");export function SelectWithCustomTrigger({renderTrigger,optionsListWidth,options,name,value,portalContainer,disabled,maxHeight=230,autoComplete="on",readOnly=!1,onChange}){let[isOpen,setIsOpen]=useState(!1),[selectedIndex,setSelectedIndex]=useState(-1),triggerRef=useRef(null),hiddenSelectRef=useRef(null),currentOptionIndex=useMemo(()=>options.findIndex(option=>option.value===value),[options,value]),closeOptionsList=useCallback(()=>{isOpen&&(setIsOpen(!1),setSelectedIndex(-1))},[isOpen]),openOptionsList=useCallback(()=>{isOpen||readOnly||(setIsOpen(!0),triggerRef.current?.focus())},[isOpen,readOnly]),toggleOptionsList=useCallback(()=>{isOpen?closeOptionsList():openOptionsList()},[isOpen,openOptionsList,closeOptionsList]),handleSelectedIndexChange=useCallback(index=>setSelectedIndex(index),[]),handleChange=useCallback(option=>{hiddenSelectRef.current.value=option.value,hiddenSelectRef.current.dispatchEvent(new Event("change",{bubbles:!0}))},[hiddenSelectRef]),handleSearchMatch=useCallback(matchedIndex=>{-1!==matchedIndex&&(isOpen?setSelectedIndex(matchedIndex):handleChange(options[matchedIndex]))},[isOpen,options,setSelectedIndex,handleChange]);useKeyboard({"Enter Space ArrowUp ArrowDown":()=>{openOptionsList()}},triggerRef,!isOpen&&!disabled),useTypeAheadSearch({options,triggerRef,isActive:!disabled,fromIndex:-1!==selectedIndex?selectedIndex:currentOptionIndex,onMatch:handleSearchMatch}),useEffect(()=>{let triggerElm=triggerRef.current,handlePointerDown=evt=>{evt.preventDefault()};return triggerElm&&!disabled&&(triggerElm.setAttribute("tabIndex","0"),triggerElm.addEventListener("click",toggleOptionsList),triggerElm.addEventListener("blur",closeOptionsList),triggerElm.addEventListener("pointerdown",handlePointerDown)),()=>{triggerElm?.removeEventListener("click",toggleOptionsList),triggerElm?.removeEventListener("blur",closeOptionsList),triggerElm?.removeEventListener("pointerdown",handlePointerDown)}},[triggerRef,disabled,closeOptionsList,toggleOptionsList]);let optionsListId=getOptionsListId(name),ariaActiveDescendant=-1!==selectedIndex?getOptionId(name,options[selectedIndex].value):"",triggerElm=renderTrigger({triggerRef,isOpen,disabled,role:"combobox","aria-activedescendant":isOpen?ariaActiveDescendant:"","aria-controls":isOpen?optionsListId:"","aria-expanded":isOpen}),optionsListElm=React.createElement(OptionsList,{name:name,isOpen:isOpen,isVirtualized:!1,options:options,triggerRef:triggerRef,onCloseDropdown:closeOptionsList,portalContainer:portalContainer,selectedIndex:selectedIndex,onSelectedIndexChange:handleSelectedIndexChange,forceChangeFakeSelect:handleChange,value:value,disabled:disabled,maxHeight:maxHeight,optionsListWidth:optionsListWidth});return React.createElement(React.Fragment,null,triggerElm,optionsListElm,React.createElement(HiddenSelectInput,{name:name,onChange:onChange,value:value,ref:hiddenSelectRef,autoComplete:autoComplete},React.createElement("option",{value:"","aria-label":"Empty option"}),options.map(option=>React.createElement("option",{value:option.value,key:option.value},option.label))))}
@@ -0,0 +1,9 @@
1
+ import type { ColumnKey, SidePanelKey, SlotKey } from "./-types";
2
+ export declare const SIDE_PANELS: SidePanelKey[];
3
+ export declare const COLUMNS: ColumnKey[];
4
+ /** Left-to-right column order in the resizable row. */
5
+ export declare const COLUMN_ORDER: SlotKey[];
6
+ /** Default mobile breakpoint (px, inclusive max). Matches the DS `m` token. */
7
+ export declare const DEFAULT_MOBILE_BREAKPOINT = 768;
8
+ /** Most in-flow columns allowed at once. A 4th request demotes the sidebar. */
9
+ export declare const MAX_VISIBLE_COLUMNS = 3;
@@ -0,0 +1 @@
1
+ export const SIDE_PANELS=["sidebar","rightPanel"];export const COLUMNS=["content","splitview"];export const COLUMN_ORDER=["sidebar","content","splitview","rightPanel"];export const DEFAULT_MOBILE_BREAKPOINT=768;export const MAX_VISIBLE_COLUMNS=3;
@@ -0,0 +1,181 @@
1
+ import type React from "react";
2
+ /**
3
+ * Layout type contract (DS-1355, simplified direction).
4
+ *
5
+ * Surface = compound components (`Layout.Sidebar` / `Layout.RightPanel` /
6
+ * `Layout.Content` / `Layout.Split` / `Layout.Float`) + one control hook
7
+ * (`useLayout()`). The manager owns the open/collapsed/size state; components
8
+ * render per that state. State engine is replaceable (see `LayoutStore`).
9
+ *
10
+ * Slots (max 4 columns, max 3 visible at once — budget enforcement deferred):
11
+ * sidebar | content | splitview | rightPanel
12
+ */
13
+ /** A size: plain number = pixels; unitless string = percentage ("10%"). */
14
+ export type Size = number | string;
15
+ /** Side-panel render style (shadcn-derived, AMBOSS-renamed; `inset` dropped). */
16
+ export type Variant = "sidebar" | "floating";
17
+ export type SidePanelKey = "sidebar" | "rightPanel";
18
+ export type ColumnKey = "content" | "splitview";
19
+ export type SlotKey = SidePanelKey | ColumnKey;
20
+ /**
21
+ * Effective render mode of a slot, after the requested→effective reconciler
22
+ * applies the mobile rule and the 3-column budget.
23
+ * column — in-flow resizable column
24
+ * floating — detached overlay panel (desktop)
25
+ * sheet — full-height overlay + backdrop (mobile)
26
+ * hidden — not rendered
27
+ */
28
+ export type SlotMode = "column" | "floating" | "sheet" | "hidden";
29
+ export type EffectiveModes = Record<SlotKey, SlotMode>;
30
+ /** Float anchor. */
31
+ export type Align = "left" | "center" | "right";
32
+ export type VAlign = "top" | "center" | "bottom";
33
+ export type SidePanelState = {
34
+ kind: "sidePanel";
35
+ /** Expanded/visible vs collapsed/off. */
36
+ open: boolean;
37
+ /** Whether it can collapse at all. */
38
+ collapsible: boolean;
39
+ /** Render style. */
40
+ variant: Variant;
41
+ /** Current size (px number or "%" string). */
42
+ size?: Size;
43
+ };
44
+ export type ColumnState = {
45
+ kind: "column";
46
+ /** content is always visible; splitview is toggleable. */
47
+ visible: boolean;
48
+ size?: Size;
49
+ };
50
+ export type LayoutState = {
51
+ sidebar: SidePanelState;
52
+ rightPanel: SidePanelState;
53
+ content: ColumnState;
54
+ splitview: ColumnState;
55
+ };
56
+ export type SidePanelConfig = {
57
+ defaultOpen?: boolean;
58
+ collapsible?: boolean;
59
+ variant?: Variant;
60
+ defaultSize?: Size;
61
+ minSize?: Size;
62
+ maxSize?: Size;
63
+ };
64
+ export type ColumnConfig = {
65
+ defaultVisible?: boolean;
66
+ defaultSize?: Size;
67
+ minSize?: Size;
68
+ maxSize?: Size;
69
+ };
70
+ export type LayoutConfig = {
71
+ sidebar?: SidePanelConfig;
72
+ rightPanel?: SidePanelConfig;
73
+ content?: ColumnConfig;
74
+ splitview?: ColumnConfig;
75
+ };
76
+ /** Per-slot partial patch (used by hydrate + reload persistence). */
77
+ export type LayoutStatePatch = {
78
+ sidebar?: Partial<SidePanelState>;
79
+ rightPanel?: Partial<SidePanelState>;
80
+ content?: Partial<ColumnState>;
81
+ splitview?: Partial<ColumnState>;
82
+ };
83
+ export type LayoutAction = {
84
+ type: "setOpen";
85
+ panel: SidePanelKey;
86
+ open: boolean;
87
+ } | {
88
+ type: "toggleOpen";
89
+ panel: SidePanelKey;
90
+ } | {
91
+ type: "setVariant";
92
+ panel: SidePanelKey;
93
+ variant: Variant;
94
+ } | {
95
+ type: "setColumnVisible";
96
+ column: ColumnKey;
97
+ visible: boolean;
98
+ } | {
99
+ type: "resize";
100
+ slot: SlotKey;
101
+ size: Size;
102
+ } | {
103
+ type: "hydrate";
104
+ state: LayoutStatePatch;
105
+ };
106
+ export type LayoutReducer = (state: LayoutState, action: LayoutAction) => LayoutState;
107
+ /**
108
+ * Replaceable state engine. Matches `useSyncExternalStore` + zustand/redux
109
+ * conventions. The manager depends only on this interface, so a zustand-backed
110
+ * store can be injected via `<LayoutProvider store={…}>`.
111
+ */
112
+ export type LayoutStore = {
113
+ getState: () => LayoutState;
114
+ dispatch: (action: LayoutAction) => void;
115
+ subscribe: (listener: () => void) => () => void;
116
+ };
117
+ export type LayoutStorage = {
118
+ getItem: (key: string) => string | null;
119
+ setItem: (key: string, value: string) => void;
120
+ };
121
+ export type SidePanelHandle = {
122
+ state: SidePanelState;
123
+ isOpen: boolean;
124
+ open: () => void;
125
+ close: () => void;
126
+ toggle: () => void;
127
+ resize: (size: Size) => void;
128
+ setVariant: (variant: Variant) => void;
129
+ };
130
+ export type ColumnHandle = {
131
+ state: ColumnState;
132
+ isVisible: boolean;
133
+ show: () => void;
134
+ hide: () => void;
135
+ toggle: () => void;
136
+ resize: (size: Size) => void;
137
+ };
138
+ export type LayoutValue = {
139
+ state: LayoutState;
140
+ sidebar: SidePanelHandle;
141
+ rightPanel: SidePanelHandle;
142
+ content: ColumnHandle;
143
+ splitview: ColumnHandle;
144
+ /** True at/below the mobile breakpoint — side panels render as a sheet. */
145
+ isMobile: boolean;
146
+ /** Effective render mode per slot after the reconciler (mobile + budget). */
147
+ modes: EffectiveModes;
148
+ };
149
+ export type SidePanelProps = {
150
+ children: React.ReactNode;
151
+ variant?: Variant;
152
+ collapsible?: boolean;
153
+ defaultSize?: Size;
154
+ minSize?: Size;
155
+ maxSize?: Size;
156
+ };
157
+ export type ContentProps = {
158
+ children: React.ReactNode;
159
+ minSize?: Size;
160
+ maxSize?: Size;
161
+ };
162
+ export type SplitProps = {
163
+ children: React.ReactNode;
164
+ defaultSize?: Size;
165
+ minSize?: Size;
166
+ maxSize?: Size;
167
+ };
168
+ export type FloatProps = {
169
+ children: React.ReactNode;
170
+ align: Align;
171
+ valign: VAlign;
172
+ };
173
+ export type LayoutProviderProps = {
174
+ children: React.ReactNode;
175
+ config?: LayoutConfig;
176
+ store?: LayoutStore;
177
+ persistenceKey?: string;
178
+ storage?: LayoutStorage;
179
+ /** Mobile breakpoint in px (inclusive max). Defaults to the DS `m` token. */
180
+ mobileBreakpoint?: number;
181
+ };
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import type { ReactNode } from "react";
3
+ import { LayoutProvider } from "./LayoutProvider";
4
+ import type { ContentProps, FloatProps, LayoutProviderProps, SidePanelProps, SplitProps } from "./-types";
5
+ declare const Sidebar: React.FC<SidePanelProps>;
6
+ declare const RightPanel: React.FC<SidePanelProps>;
7
+ declare const Content: React.FC<ContentProps>;
8
+ declare const Split: React.FC<SplitProps>;
9
+ declare const Float: React.FC<FloatProps>;
10
+ declare function LayoutShell({ children, }: {
11
+ children: ReactNode;
12
+ }): React.ReactElement;
13
+ type LayoutComponent = React.FC<LayoutProviderProps> & {
14
+ Sidebar: typeof Sidebar;
15
+ RightPanel: typeof RightPanel;
16
+ Content: typeof Content;
17
+ Split: typeof Split;
18
+ Float: typeof Float;
19
+ /** Context only (store + mobile breakpoint). Use with `Layout.Shell` when you
20
+ * need chrome (e.g. a NavBar) that calls `useLayout()` but sits OUTSIDE the
21
+ * resizable shell. For the common case use `<Layout>` (provider + shell). */
22
+ Provider: typeof LayoutProvider;
23
+ /** The resizable shell (columns + overlays + floats). Must be rendered inside
24
+ * a `Layout.Provider`. Holds the column markers. */
25
+ Shell: typeof LayoutShell;
26
+ };
27
+ export declare const Layout: LayoutComponent;
28
+ export {};
@@ -0,0 +1 @@
1
+ import React,{createContext,useContext,useEffect,useMemo,useState}from"react";import{createPortal}from"react-dom";import{Group,Panel,Separator}from"react-resizable-panels";import{COLUMN_ORDER}from"./-constants";import{LayoutProvider}from"./LayoutProvider";import{useHostNodes}from"./useHostNodes";import{useLayout}from"./useLayout";let VALIGNS=["top","center","bottom"],columnHostKey=slot=>`col-${slot}`,overlayHostKey=slot=>`ov-${slot}`,floatHostKey=(align,valign)=>`fl-${align}-${valign}`,FLOAT_HOST_KEYS=["left","center","right"].flatMap(a=>VALIGNS.map(v=>floatHostKey(a,v))),HOST_KEYS=[...COLUMN_ORDER.map(columnHostKey),overlayHostKey("sidebar"),overlayHostKey("rightPanel"),...FLOAT_HOST_KEYS],HostContext=createContext({});function useHost(key){return useContext(HostContext)[key]??null}let ColumnRegistryContext=createContext(null),FloatRegistryContext=createContext(null);function useDeclareColumn(slot,reg){let registry=useContext(ColumnRegistryContext),{minSize,maxSize,collapsible}=reg;useEffect(()=>{if(registry)return registry.register(slot,{minSize,maxSize,collapsible}),()=>registry.unregister(slot)},[registry,slot,minSize,maxSize,collapsible])}function sideHostKey(slot,mode){return"column"===mode?columnHostKey(slot):"floating"===mode||"sheet"===mode?overlayHostKey(slot):null}function portalInto(node,children){return node?createPortal(children,node):null}let Sidebar=({children,minSize,maxSize,collapsible=!0})=>{useDeclareColumn("sidebar",{minSize,maxSize,collapsible});let{modes}=useLayout();return portalInto(useHost(sideHostKey("sidebar",modes.sidebar)??""),children)};Sidebar.displayName="Layout.Sidebar";let RightPanel=({children,minSize,maxSize,collapsible=!0})=>{useDeclareColumn("rightPanel",{minSize,maxSize,collapsible});let{modes}=useLayout();return portalInto(useHost(sideHostKey("rightPanel",modes.rightPanel)??""),children)};RightPanel.displayName="Layout.RightPanel";let Content=({children,minSize,maxSize})=>(useDeclareColumn("content",{minSize,maxSize,collapsible:!1}),portalInto(useHost(columnHostKey("content")),children));Content.displayName="Layout.Content";let Split=({children,minSize,maxSize})=>{useDeclareColumn("splitview",{minSize,maxSize,collapsible:!0});let{modes}=useLayout(),host=useHost(columnHostKey("splitview"));return"column"===modes.splitview?portalInto(host,children):null};Split.displayName="Layout.Split";let Float=({children,align,valign})=>{let anchor=floatHostKey(align,valign),registry=useContext(FloatRegistryContext);useEffect(()=>{if(registry)return registry.acquire(anchor),()=>registry.release(anchor)},[registry,anchor]);let node=useHost(anchor);return node?createPortal(React.createElement("div",{style:{pointerEvents:"auto"}},children),node):null};function ColumnRow({columns,declared,sizes,hostFor,onResize,onCollapse}){return React.createElement(Group,{orientation:"horizontal",style:{height:"100%",width:"100%"},onLayoutChanged:layout=>{columns.forEach(slot=>{let pct=layout[slot];if("number"!=typeof pct)return;let reg=declared[slot];if((reg?.collapsible??"splitview"===slot)&&pct<.5)return void onCollapse(slot);pct>=.5&&onResize(slot,`${pct}%`)})}},columns.map((slot,index)=>{let reg=declared[slot]??{};return React.createElement(React.Fragment,{key:slot},index>0&&React.createElement(Separator,null),React.createElement(Panel,{id:slot,defaultSize:"content"===slot?void 0:sizes[slot],collapsible:"content"!==slot,minSize:reg.minSize,maxSize:reg.maxSize},React.createElement("div",{ref:hostFor(columnHostKey(slot)),style:{position:"relative",height:"100%",width:"100%"}})))}))}function SideOverlay({side,sheet,onClose,hostRef}){return React.createElement(React.Fragment,null,sheet&&React.createElement("button",{type:"button","aria-label":"Close","data-ds-id":"LayoutSheetBackdrop",onClick:onClose,style:{position:"absolute",inset:0,border:"none",padding:0,cursor:"pointer",background:"rgba(0,0,0,.4)",pointerEvents:"auto",zIndex:1e3}}),React.createElement("div",{"data-ds-id":"LayoutSideOverlay",style:{position:"absolute",top:12*!sheet,bottom:12*!sheet,[side]:12*!sheet,width:sheet?"80%":320,maxWidth:"90%",background:"var(--ds-surface, #fff)",boxShadow:"0 8px 32px rgba(0,0,0,.2)",borderRadius:8*!sheet,overflow:"auto",pointerEvents:"auto",zIndex:1001},ref:hostRef}))}Float.displayName="Layout.Float";let ALIGN_CSS={left:{left:12,alignItems:"flex-start"},center:{left:"50%",transform:"translateX(-50%)",alignItems:"center"},right:{right:12,alignItems:"flex-end"}},VALIGN_CSS={top:{top:12},center:{top:"50%"},bottom:{bottom:12}};function FloatAnchors({anchors,hostFor}){return React.createElement(React.Fragment,null,anchors.map(key=>{let[align,valign]=key.slice(3).split("-");return React.createElement("div",{key:key,"data-ds-id":`LayoutFloat-${align}-${valign}`,ref:hostFor(key),style:{position:"absolute",display:"flex",zIndex:1002,pointerEvents:"none",...ALIGN_CSS[align],...VALIGN_CSS[valign]}})}))}function LayoutShell({children}){let layout=useLayout(),{state,modes}=layout,[declared,setDeclared]=useState({}),registry=useMemo(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),[floatCounts,setFloatCounts]=useState({}),floatRegistry=useMemo(()=>({acquire:anchor=>setFloatCounts(prev=>({...prev,[anchor]:(prev[anchor]??0)+1})),release:anchor=>setFloatCounts(prev=>{let next={...prev},count=(next[anchor]??0)-1;return count<=0?delete next[anchor]:next[anchor]=count,next})}),[]),floatAnchors=Object.keys(floatCounts),[nodes,hostCallbacks]=useHostNodes(HOST_KEYS),hostFor=key=>hostCallbacks[key],columns=COLUMN_ORDER.filter(slot=>declared[slot]&&"column"===modes[slot]),sizes={};columns.forEach(slot=>{sizes[slot]="content"===slot?void 0:state[slot].size});let sideOverlay=(slot,side)=>{let mode=modes[slot];return declared[slot]&&("floating"===mode||"sheet"===mode)?React.createElement(SideOverlay,{side:side,sheet:"sheet"===mode,onClose:()=>layout[slot].close(),hostRef:hostFor(overlayHostKey(slot))}):null};return React.createElement(ColumnRegistryContext.Provider,{value:registry},React.createElement(FloatRegistryContext.Provider,{value:floatRegistry},React.createElement(HostContext.Provider,{value:nodes},React.createElement("div",{"data-ds-id":"Layout",style:{position:"relative",height:"100%",width:"100%"}},columns.length>0&&React.createElement(ColumnRow,{columns:columns,declared:declared,sizes:sizes,hostFor:hostFor,onResize:(key,size)=>layout[key].resize(size),onCollapse:key=>{"sidebar"===key||"rightPanel"===key?layout[key].close():layout[key].hide()}}),sideOverlay("sidebar","left"),sideOverlay("rightPanel","right"),React.createElement(FloatAnchors,{anchors:floatAnchors,hostFor:hostFor}),children))))}export const Layout=({children,...rest})=>React.createElement(LayoutProvider,rest,React.createElement(LayoutShell,null,children));Layout.Sidebar=Sidebar,Layout.RightPanel=RightPanel,Layout.Content=Content,Layout.Split=Split,Layout.Float=Float,Layout.Provider=LayoutProvider,Layout.Shell=LayoutShell;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { LayoutProviderProps } from "./-types";
3
+ /**
4
+ * Owns the state engine + publishes the mobile breakpoint. Mount once, above the
5
+ * router. Pass `store` to replace the default vanilla engine with a
6
+ * zustand/redux-backed one; otherwise a default store is built from `config`.
7
+ * Hydrates from `persistenceKey` at init and saves (debounced) on change.
8
+ */
9
+ export declare function LayoutProvider({ children, config, store, persistenceKey, storage, mobileBreakpoint, }: LayoutProviderProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ import React,{useEffect,useRef}from"react";import{LayoutStoreProvider,MobileBreakpointProvider}from"./context";import{applyPatch,loadSnapshot,resolveStorage,saveSnapshot}from"./persistence";import{createInitialState}from"./reducer";import{createLayoutStore}from"./store";export function LayoutProvider({children,config,store,persistenceKey,storage,mobileBreakpoint}){let storeRef=useRef(null);if(null===storeRef.current){let initial=createInitialState(config);if(persistenceKey){let snapshot=loadSnapshot(resolveStorage(storage),persistenceKey);snapshot&&(initial=applyPatch(initial,snapshot))}storeRef.current=store??createLayoutStore(initial)}return useEffect(()=>{let timer;if(!persistenceKey)return;let backend=resolveStorage(storage),activeStore=storeRef.current;if(!backend||!activeStore)return;let unsubscribe=activeStore.subscribe(()=>{timer&&clearTimeout(timer),timer=setTimeout(()=>saveSnapshot(backend,persistenceKey,activeStore.getState()),200)});return()=>{timer&&clearTimeout(timer),unsubscribe()}},[persistenceKey,storage]),React.createElement(LayoutStoreProvider,{value:storeRef.current},React.createElement(MobileBreakpointProvider,{value:mobileBreakpoint},children))}
@@ -0,0 +1,12 @@
1
+ import type { LayoutState, LayoutStore } from "./-types";
2
+ export declare const LayoutStoreProvider: React.Provider<LayoutStore>;
3
+ /** Get the store from context, or throw if used outside the provider. */
4
+ export declare function useLayoutStore(): LayoutStore;
5
+ export declare const MobileBreakpointProvider: React.Provider<number>;
6
+ export declare function useMobileBreakpoint(): number | undefined;
7
+ /**
8
+ * Subscribe to a slice of layout state via `useSyncExternalStore`. The selector
9
+ * should return a stable reference when nothing relevant changed — the reducer
10
+ * preserves references for untouched positions, so slice selectors are safe.
11
+ */
12
+ export declare function useLayoutSelector<T>(selector: (state: LayoutState) => T): T;
@@ -0,0 +1 @@
1
+ import{createContext,useContext,useSyncExternalStore}from"react";let LayoutStoreContext=createContext(null);export const LayoutStoreProvider=LayoutStoreContext.Provider;export function useLayoutStore(){let store=useContext(LayoutStoreContext);if(!store)throw Error("useLayout must be used within a <LayoutProvider>.");return store}let MobileBreakpointContext=createContext(void 0);export const MobileBreakpointProvider=MobileBreakpointContext.Provider;export function useMobileBreakpoint(){return useContext(MobileBreakpointContext)}export function useLayoutSelector(selector){let store=useLayoutStore(),getSnapshot=()=>selector(store.getState());return useSyncExternalStore(store.subscribe,getSnapshot,getSnapshot)}
@@ -0,0 +1,7 @@
1
+ export { Layout } from "./Layout";
2
+ export { LayoutProvider } from "./LayoutProvider";
3
+ export { useLayout } from "./useLayout";
4
+ export { useIsMobile } from "./useIsMobile";
5
+ export { createLayoutStore } from "./store";
6
+ export { createInitialState, layoutReducer } from "./reducer";
7
+ export * from "./-types";
@@ -0,0 +1 @@
1
+ export{Layout}from"./Layout";export{LayoutProvider}from"./LayoutProvider";export{useLayout}from"./useLayout";export{useIsMobile}from"./useIsMobile";export{createLayoutStore}from"./store";export{createInitialState,layoutReducer}from"./reducer";export*from"./-types";
@@ -0,0 +1,6 @@
1
+ import type { LayoutState, LayoutStatePatch, LayoutStorage } from "./-types";
2
+ export declare function resolveStorage(storage?: LayoutStorage): LayoutStorage | undefined;
3
+ export declare function serializeState(state: LayoutState): LayoutStatePatch;
4
+ export declare function applyPatch(state: LayoutState, patch: LayoutStatePatch): LayoutState;
5
+ export declare function loadSnapshot(storage: LayoutStorage | undefined, key: string): LayoutStatePatch | null;
6
+ export declare function saveSnapshot(storage: LayoutStorage | undefined, key: string, state: LayoutState): void;
@@ -0,0 +1 @@
1
+ export function resolveStorage(storage){return storage||("undefined"!=typeof window&&window.localStorage?window.localStorage:void 0)}export function serializeState(state){return{sidebar:{open:state.sidebar.open,variant:state.sidebar.variant,size:state.sidebar.size},rightPanel:{open:state.rightPanel.open,variant:state.rightPanel.variant,size:state.rightPanel.size},content:{size:state.content.size},splitview:{visible:state.splitview.visible,size:state.splitview.size}}}export function applyPatch(state,patch){let next={...state};return Object.keys(patch).forEach(key=>{let incoming=patch[key];incoming&&(next[key]={...next[key],...incoming})}),next}export function loadSnapshot(storage,key){if(!storage)return null;try{let raw=storage.getItem(key);if(!raw)return null;let parsed=JSON.parse(raw);if(!parsed||1!==parsed.v||"object"!=typeof parsed.state)return null;return parsed.state}catch{return null}}export function saveSnapshot(storage,key,state){if(storage)try{let payload={v:1,state:serializeState(state)};storage.setItem(key,JSON.stringify(payload))}catch{}}
@@ -0,0 +1,2 @@
1
+ import type { EffectiveModes, LayoutState } from "./-types";
2
+ export declare function resolveModes(state: LayoutState, isMobile: boolean): EffectiveModes;
@@ -0,0 +1 @@
1
+ import{COLUMN_ORDER,MAX_VISIBLE_COLUMNS}from"./-constants";function sideMode(slot,isMobile){return slot.open?isMobile?"sheet":"floating"===slot.variant?"floating":"column":"hidden"}export function resolveModes(state,isMobile){let modes={content:"column",splitview:state.splitview.visible?"column":"hidden",sidebar:sideMode(state.sidebar,isMobile),rightPanel:sideMode(state.rightPanel,isMobile)};return COLUMN_ORDER.filter(key=>"column"===modes[key]).length>MAX_VISIBLE_COLUMNS&&"column"===modes.sidebar&&(modes.sidebar="floating"),modes}
@@ -0,0 +1,5 @@
1
+ import type { LayoutConfig, LayoutReducer, LayoutState } from "./-types";
2
+ /** Build the initial state from optional config. */
3
+ export declare function createInitialState(config?: LayoutConfig): LayoutState;
4
+ /** Pure reducer. Returns the same reference when nothing changes. */
5
+ export declare const layoutReducer: LayoutReducer;
@@ -0,0 +1 @@
1
+ function sidePanel(config={}){return{kind:"sidePanel",open:config.defaultOpen??!0,collapsible:config.collapsible??!0,variant:config.variant??"sidebar",size:config.defaultSize}}function column(config={}){return{kind:"column",visible:config.defaultVisible??!0,size:config.defaultSize}}export function createInitialState(config={}){return{sidebar:sidePanel(config.sidebar),rightPanel:sidePanel({defaultOpen:!1,...config.rightPanel}),content:column(config.content),splitview:column({defaultVisible:!1,...config.splitview})}}export const layoutReducer=(state,action)=>{switch(action.type){case"setOpen":{let panel=state[action.panel];if(panel.open===action.open)return state;return{...state,[action.panel]:{...panel,open:action.open}}}case"toggleOpen":{let panel=state[action.panel];return{...state,[action.panel]:{...panel,open:!panel.open}}}case"setVariant":{let panel=state[action.panel];if(panel.variant===action.variant)return state;return{...state,[action.panel]:{...panel,variant:action.variant}}}case"setColumnVisible":{let col=state[action.column];if(col.visible===action.visible)return state;return{...state,[action.column]:{...col,visible:action.visible}}}case"resize":{let slot=state[action.slot];if(slot.size===action.size)return state;return{...state,[action.slot]:{...slot,size:action.size}}}case"hydrate":{let next=state;return Object.keys(action.state).forEach(key=>{let incoming=action.state[key];incoming&&(next={...next,[key]:{...next[key],...incoming}})}),next}default:return state}};
@@ -0,0 +1,10 @@
1
+ import type { LayoutState, LayoutStore } from "./-types";
2
+ /**
3
+ * Default, dependency-free `LayoutStore` implementation: a tiny pub/sub wrapper
4
+ * around the pure `layoutReducer`. Skips notifying subscribers when an action is
5
+ * a no-op (reducer returns the same reference).
6
+ *
7
+ * Swap this for a zustand/redux-backed store by implementing the same
8
+ * `LayoutStore` interface — bindings and primitives are unaffected.
9
+ */
10
+ export declare function createLayoutStore(initial: LayoutState): LayoutStore;
@@ -0,0 +1 @@
1
+ import{layoutReducer}from"./reducer";export function createLayoutStore(initial){let state=initial,listeners=new Set;return{getState:()=>state,dispatch:action=>{let next=layoutReducer(state,action);next!==state&&(state=next,listeners.forEach(listener=>listener()))},subscribe:listener=>(listeners.add(listener),()=>{listeners.delete(listener)})}}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Manage a map of published DOM host nodes plus stable per-key ref callbacks.
3
+ * Stable callbacks mean React attaches them only on mount/unmount instead of
4
+ * detach/attach every render (which would loop with setState).
5
+ */
6
+ export declare function useHostNodes<P extends string>(positions: readonly P[]): [
7
+ Partial<Record<P, HTMLElement | null>>,
8
+ Record<P, (el: HTMLElement | null) => void>
9
+ ];
@@ -0,0 +1 @@
1
+ import{useMemo,useState}from"react";export function useHostNodes(positions){let[nodes,setNodes]=useState({});return[nodes,useMemo(()=>{let map={};return positions.forEach(position=>{map[position]=el=>setNodes(prev=>prev[position]===el?prev:{...prev,[position]:el})}),map},[positions])]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * True at/below the mobile breakpoint. Uses `matchMedia` via
3
+ * `useSyncExternalStore` (SSR-safe: falls back to `false` on the server).
4
+ */
5
+ export declare function useIsMobile(breakpoint?: number): boolean;
@@ -0,0 +1 @@
1
+ import{useSyncExternalStore}from"react";import{DEFAULT_MOBILE_BREAKPOINT}from"./-constants";export function useIsMobile(breakpoint=DEFAULT_MOBILE_BREAKPOINT){let query=`(max-width: ${breakpoint}px)`;return useSyncExternalStore(onChange=>{if("undefined"==typeof window||!window.matchMedia)return()=>{};let mql=window.matchMedia(query);return mql.addEventListener("change",onChange),()=>mql.removeEventListener("change",onChange)},()=>"undefined"!=typeof window&&!!window.matchMedia&&window.matchMedia(query).matches,()=>!1)}
@@ -0,0 +1,7 @@
1
+ import type { LayoutValue } from "./-types";
2
+ /**
3
+ * The single control hook. Returns `state` plus a typed handle per slot and the
4
+ * current `isMobile` flag. Works from any descendant of `<LayoutProvider>` —
5
+ * remote control without prop drilling.
6
+ */
7
+ export declare function useLayout(): LayoutValue;
@@ -0,0 +1 @@
1
+ import{useLayoutSelector,useLayoutStore,useMobileBreakpoint}from"./context";import{resolveModes}from"./reconcile";import{useIsMobile}from"./useIsMobile";let selectAll=state=>state;function sidePanelHandle(panel,state,dispatch){let slot=state[panel];return{state:slot,isOpen:slot.open,open:()=>dispatch({type:"setOpen",panel,open:!0}),close:()=>dispatch({type:"setOpen",panel,open:!1}),toggle:()=>dispatch({type:"toggleOpen",panel}),resize:size=>dispatch({type:"resize",slot:panel,size}),setVariant:variant=>dispatch({type:"setVariant",panel,variant})}}function columnHandle(column,state,dispatch){let slot=state[column];return{state:slot,isVisible:slot.visible,show:()=>dispatch({type:"setColumnVisible",column,visible:!0}),hide:()=>dispatch({type:"setColumnVisible",column,visible:!1}),toggle:()=>dispatch({type:"setColumnVisible",column,visible:!slot.visible}),resize:size=>dispatch({type:"resize",slot:column,size})}}export function useLayout(){let store=useLayoutStore(),state=useLayoutSelector(selectAll),{dispatch}=store,isMobile=useIsMobile(useMobileBreakpoint());return{state,sidebar:sidePanelHandle("sidebar",state,dispatch),rightPanel:sidePanelHandle("rightPanel",state,dispatch),content:columnHandle("content",state,dispatch),splitview:columnHandle("splitview",state,dispatch),isMobile,modes:resolveModes(state,isMobile)}}
@@ -1 +1 @@
1
- import React,{forwardRef,useEffect}from"react";import styled from"@emotion/styled";import{getInputTextPlaceholder}from"../../shared/mixins/TextInput/getInputTextPlaceholder";import{ScreenReaderText}from"../Utilities/ScreenReaderText/ScreenReaderText";import{getAutocompleteListId}from"./AutocompleteList";export const getPaddingHorizontal=(theme,size)=>"s"===size?theme.variables.size.spacing.s:theme.variables.size.spacing.m;export const getPaddingVertical=(theme,size)=>"s"===size?theme.variables.size.spacing.xs:theme.variables.size.spacing.m;let StyledTextAreaContainer=styled("label",{target:"e1dkp55d0",label:"StyledTextAreaContainer"})(({theme,maxTextAreaHeight,hasLeftIcon,size})=>{let paddingTop=getPaddingVertical(theme,size),paddingBottom=getPaddingVertical(theme,size),iconTextGap="s"===size?`calc(${theme.variables.size.spacing.xs} - ${theme.variables.size.spacing.xxxs})`:theme.variables.size.spacing.xs,basePaddingHorizontal=getPaddingHorizontal(theme,size),paddingRight=`calc(${basePaddingHorizontal} + ${theme.variables.size.dimension.icon.m} + ${iconTextGap})`,paddingLeft=hasLeftIcon?`calc(${basePaddingHorizontal} + ${theme.variables.size.dimension.icon[size]} + ${iconTextGap})`:basePaddingHorizontal;return{display:"grid",verticalAlign:"top",alignItems:"stretch",width:"100%",borderRadius:"inherit",position:"relative",fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,lineHeight:theme.variables.size.lineHeight.xl,"&::after":{content:"attr(data-value) ' '",boxSizing:"border-box",fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,gridArea:"1 / 1",whiteSpace:"pre-wrap",visibility:"hidden",maxHeight:maxTextAreaHeight},textarea:{all:"unset",resize:"none",gridArea:"1 / 1",cursor:"text",color:theme.values.color.text.primary.default,...getInputTextPlaceholder({theme})},"textarea::placeholder":{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},"&::after, textarea":{minWidth:"0",overflowWrap:"break-word",padding:`${paddingTop} ${paddingRight} ${paddingBottom} ${paddingLeft}`}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0VGV4dEFyZWEudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRUZXh0QXJlYS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWZPYmplY3QsIFRleHRhcmVhSFRNTEF0dHJpYnV0ZXMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRJbnB1dFRleHRQbGFjZWhvbGRlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWl4aW5zL1RleHRJbnB1dC9nZXRJbnB1dFRleHRQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHsgU2NyZWVuUmVhZGVyVGV4dCB9IGZyb20gXCIuLi9VdGlsaXRpZXMvU2NyZWVuUmVhZGVyVGV4dC9TY3JlZW5SZWFkZXJUZXh0XCI7XG5pbXBvcnQgeyBnZXRBdXRvY29tcGxldGVMaXN0SWQgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgdHlwZSB7IEZsYXR0ZW5lZExpc3RJdGVtIH0gZnJvbSBcIi4vQ2F0ZWdvcnlMaXN0XCI7XG5cbmV4cG9ydCBjb25zdCBnZXRQYWRkaW5nSG9yaXpvbnRhbCA9IChcbiAgdGhlbWU6IFRoZW1lLFxuICBzaXplOiBQcm9tcHRJbnB1dFNpemVzXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc2l6ZSA9PT0gXCJzXCIpIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnM7XG4gIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG59O1xuZXhwb3J0IGNvbnN0IGdldFBhZGRpbmdWZXJ0aWNhbCA9IChcbiAgdGhlbWU6IFRoZW1lLFxuICBzaXplOiBQcm9tcHRJbnB1dFNpemVzXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc2l6ZSA9PT0gXCJzXCIpIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzO1xuICByZXR1cm4gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tO1xufTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0VGV4dEFyZWFQcm9wcyA9XG4gIFRleHRhcmVhSFRNTEF0dHJpYnV0ZXM8SFRNTFRleHRBcmVhRWxlbWVudD4gJiB7XG4gICAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIG1heFRleHRBcmVhSGVpZ2h0PzogUHJvcGVydHkuSGVpZ2h0O1xuICAgIHNlbGVjdGVkTGlzdEl0ZW0/OiBGbGF0dGVuZWRMaXN0SXRlbTtcbiAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPzogYm9vbGVhbjtcbiAgICBoYXNMZWZ0SWNvbj86IGJvb2xlYW47XG4gICAgcm93cz86IG51bWJlcjtcbiAgICBzaXplOiBQcm9tcHRJbnB1dFNpemVzO1xuICB9O1xuXG50eXBlIFN0eWxlZFRleHRBcmVhQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcIm1heFRleHRBcmVhSGVpZ2h0XCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPjtcblxuLy8gVGV4dGFyZWEgYXV0byBncm93IGltcGxlbWVudGVkIGFjY29yZGluZyB0byBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1jbGVhbmVzdC10cmljay1mb3ItYXV0b2dyb3dpbmctdGV4dGFyZWFzL1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5sYWJlbDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIG1heFRleHRBcmVhSGVpZ2h0LCBoYXNMZWZ0SWNvbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSk7XG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSk7XG4gICAgY29uc3QgaWNvblRleHRHYXAgPVxuICAgICAgc2l6ZSA9PT0gXCJzXCJcbiAgICAgICAgPyBgY2FsYygke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9IC0gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4eHN9KWBcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzO1xuICAgIGNvbnN0IGJhc2VQYWRkaW5nSG9yaXpvbnRhbCA9IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKTtcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBgY2FsYygke2Jhc2VQYWRkaW5nSG9yaXpvbnRhbH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5pY29uLm19ICsgJHtpY29uVGV4dEdhcH0pYDtcbiAgICBjb25zdCBwYWRkaW5nTGVmdCA9IGhhc0xlZnRJY29uXG4gICAgICA/IGBjYWxjKCR7YmFzZVBhZGRpbmdIb3Jpem9udGFsfSArICR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb25bc2l6ZV19ICsgJHtpY29uVGV4dEdhcH0pYFxuICAgICAgOiBiYXNlUGFkZGluZ0hvcml6b250YWw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgICB2ZXJ0aWNhbEFsaWduOiBcInRvcFwiLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICAgICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG4gICAgICBmb250U2l6ZTogdGhlbWUudmFyaWFibGVzLnNpemUuZm9udC5tLFxuICAgICAgbGluZUhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcblxuICAgICAgLy8gVGV4dGFyZWEgZ3Jvd3MgZHVlIHRvIDo6YWZ0ZXIgZ3Jvd3NcbiAgICAgIC8vIGlmIHlvdSBuZWVkIHRvIG1hbmlwdWxhdGUgd2l0aCBzaXplIG9mIHRleHRhcmVhLCB5b3UgbmVlZCB0byBtYW5pcHVsYXRlIHdpdGggOjphZnRlciBhbHNvXG4gICAgICBcIiY6OmFmdGVyXCI6IHtcbiAgICAgICAgY29udGVudDogXCJhdHRyKGRhdGEtdmFsdWUpICcgJ1wiLCAvLyB0aGUgZW1wdHkgc3BhY2UgcHJldmVudHMgdGV4dGFyZWEganVtcCBvbiBncm93XG4gICAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG4gICAgICAgIGZvbnRTaXplOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250Lm0sXG4gICAgICAgIGdyaWRBcmVhOiBcIjEgLyAxXCIsXG4gICAgICAgIHdoaXRlU3BhY2U6IFwicHJlLXdyYXBcIixcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgICAgbWF4SGVpZ2h0OiBtYXhUZXh0QXJlYUhlaWdodCxcbiAgICAgIH0sXG5cbiAgICAgIHRleHRhcmVhOiB7XG4gICAgICAgIGFsbDogXCJ1bnNldFwiLFxuICAgICAgICByZXNpemU6IFwibm9uZVwiLFxuICAgICAgICBncmlkQXJlYTogXCIxIC8gMVwiLFxuICAgICAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgICAgICBjb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLnRleHQucHJpbWFyeS5kZWZhdWx0LFxuICAgICAgICAuLi5nZXRJbnB1dFRleHRQbGFjZWhvbGRlcih7IHRoZW1lIH0pLFxuICAgICAgfSxcbiAgICAgIFwidGV4dGFyZWE6OnBsYWNlaG9sZGVyXCI6IHtcbiAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIsXG4gICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgfSxcblxuICAgICAgXCImOjphZnRlciwgdGV4dGFyZWFcIjoge1xuICAgICAgICAvLyBtaW5XaWR0aCBjb21lcyB0b2dldGhlciB3aXRoIG92ZXJmbG93V3JhcCB0byBhY2hpZXZlIGJyZWFrLXdvcmRcbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIGFwcGxpZWQgZm9yIDo6YWZ0ZXIgYW5kIHRleHRhcmVhXG4gICAgICAgIG1pbldpZHRoOiBcIjBcIixcbiAgICAgICAgb3ZlcmZsb3dXcmFwOiBcImJyZWFrLXdvcmRcIixcbiAgICAgICAgcGFkZGluZzogYCR7cGFkZGluZ1RvcH0gJHtwYWRkaW5nUmlnaHR9ICR7cGFkZGluZ0JvdHRvbX0gJHtwYWRkaW5nTGVmdH1gLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0VGV4dEFyZWEgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgZGF0YUUyZVRlc3RJZCxcbiAgICAgIGxhYmVsLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBtYXhUZXh0QXJlYUhlaWdodCA9IFwiMjAwcHhcIixcbiAgICAgIHNlbGVjdGVkTGlzdEl0ZW0sXG4gICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLFxuICAgICAgaGFzTGVmdEljb24sXG4gICAgICByb3dzID0gMSxcbiAgICAgIHNpemUsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0ZXh0QXJlYSA9IHJlZi5jdXJyZW50O1xuXG4gICAgICAvLyBTZXQgdGhlIHZhbHVlIG9mIHRoZSA6OmFmdGVyIHBzZXVkbyBlbGVtZW50IHNvIHRoYXQgdGhlIFRleHRBcmVhIHJlc2l6ZXMgYWNjb3JkaW5nbHkgYXMgdGhlIGdyaWQgc3RyZXRjaGVzLlxuICAgICAgKHRleHRBcmVhLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXQudmFsdWUgPSB2YWx1ZTtcbiAgICB9LCBbdmFsdWUsIHJlZl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lclxuICAgICAgICBtYXhUZXh0QXJlYUhlaWdodD17bWF4VGV4dEFyZWFIZWlnaHR9XG4gICAgICAgIGhhc0xlZnRJY29uPXtoYXNMZWZ0SWNvbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgID5cbiAgICAgICAgPFNjcmVlblJlYWRlclRleHQ+e2xhYmVsfTwvU2NyZWVuUmVhZGVyVGV4dD5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e1xuICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3BlbiA/IGdldEF1dG9jb21wbGV0ZUxpc3RJZChuYW1lKSA6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PXtzZWxlY3RlZExpc3RJdGVtID8gc2VsZWN0ZWRMaXN0SXRlbS5pZCA6IFwiXCJ9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQ2dDIn0= */");export const PromptTextArea=forwardRef(({dataE2eTestId,label,name,value,placeholder,maxTextAreaHeight="200px",selectedListItem,isAutocompleteListOpen,hasLeftIcon,rows=1,size,onChange,...rest},ref)=>(useEffect(()=>{ref.current.parentNode.dataset.value=value},[value,ref]),React.createElement(StyledTextAreaContainer,{maxTextAreaHeight:maxTextAreaHeight,hasLeftIcon:hasLeftIcon,size:size},React.createElement(ScreenReaderText,null,label),React.createElement("textarea",{...rest,"data-e2e-test-id":dataE2eTestId,ref:ref,name:name,value:value,placeholder:placeholder,onChange:onChange,rows:rows,role:"combobox","aria-autocomplete":"list","aria-controls":isAutocompleteListOpen?getAutocompleteListId(name):"","aria-activedescendant":selectedListItem?selectedListItem.id:"","aria-expanded":isAutocompleteListOpen}))));
1
+ import React,{forwardRef,useEffect}from"react";import styled from"@emotion/styled";import{getInputTextPlaceholder}from"../../shared/mixins/TextInput/getInputTextPlaceholder";import{ScreenReaderText}from"../Utilities/ScreenReaderText/ScreenReaderText";import{getAutocompleteListId}from"./AutocompleteList";export const getPaddingHorizontal=(theme,size)=>"s"===size?theme.variables.size.spacing.s:theme.variables.size.spacing.m;export const getPaddingVertical=(theme,size)=>"s"===size?theme.variables.size.spacing.xs:theme.variables.size.spacing.m;let StyledTextAreaContainer=styled("label",{target:"e1584yv0",label:"StyledTextAreaContainer"})(({theme,maxTextAreaHeight,hasLeftIcon,size})=>{let paddingTop=getPaddingVertical(theme,size),paddingBottom=getPaddingVertical(theme,size),iconTextGap="s"===size?`calc(${theme.variables.size.spacing.xs} - ${theme.variables.size.spacing.xxxs})`:theme.variables.size.spacing.xs,basePaddingHorizontal=getPaddingHorizontal(theme,size),paddingRight=`calc(${basePaddingHorizontal} + ${theme.variables.size.dimension.icon.m} + ${iconTextGap})`,paddingLeft=hasLeftIcon?`calc(${basePaddingHorizontal} + ${theme.variables.size.dimension.icon[size]} + ${iconTextGap})`:basePaddingHorizontal;return{display:"grid",verticalAlign:"top",alignItems:"stretch",width:"100%",borderRadius:"inherit",position:"relative",fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,lineHeight:theme.variables.size.lineHeight.xl,"&::after":{content:"attr(data-value) ' '",boxSizing:"border-box",fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,gridArea:"1 / 1",whiteSpace:"pre-wrap",visibility:"hidden",maxHeight:maxTextAreaHeight},textarea:{all:"unset",resize:"none",gridArea:"1 / 1",cursor:"text",color:theme.values.color.text.primary.default,...getInputTextPlaceholder({theme})},"textarea::placeholder":{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},"&::after, textarea":{minWidth:"0",overflowWrap:"break-word",padding:`${paddingTop} ${paddingRight} ${paddingBottom} ${paddingLeft}`}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0VGV4dEFyZWEudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRUZXh0QXJlYS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWZPYmplY3QsIFRleHRhcmVhSFRNTEF0dHJpYnV0ZXMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRJbnB1dFRleHRQbGFjZWhvbGRlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWl4aW5zL1RleHRJbnB1dC9nZXRJbnB1dFRleHRQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHsgU2NyZWVuUmVhZGVyVGV4dCB9IGZyb20gXCIuLi9VdGlsaXRpZXMvU2NyZWVuUmVhZGVyVGV4dC9TY3JlZW5SZWFkZXJUZXh0XCI7XG5pbXBvcnQgeyBnZXRBdXRvY29tcGxldGVMaXN0SWQgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgdHlwZSB7IEZsYXR0ZW5lZExpc3RJdGVtIH0gZnJvbSBcIi4vQ2F0ZWdvcnlMaXN0XCI7XG5cbmV4cG9ydCBjb25zdCBnZXRQYWRkaW5nSG9yaXpvbnRhbCA9IChcbiAgdGhlbWU6IFRoZW1lLFxuICBzaXplOiBQcm9tcHRJbnB1dFNpemVzXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc2l6ZSA9PT0gXCJzXCIpIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnM7XG4gIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG59O1xuZXhwb3J0IGNvbnN0IGdldFBhZGRpbmdWZXJ0aWNhbCA9IChcbiAgdGhlbWU6IFRoZW1lLFxuICBzaXplOiBQcm9tcHRJbnB1dFNpemVzXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc2l6ZSA9PT0gXCJzXCIpIHJldHVybiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzO1xuICByZXR1cm4gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tO1xufTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0VGV4dEFyZWFQcm9wcyA9XG4gIFRleHRhcmVhSFRNTEF0dHJpYnV0ZXM8SFRNTFRleHRBcmVhRWxlbWVudD4gJiB7XG4gICAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIG1heFRleHRBcmVhSGVpZ2h0PzogUHJvcGVydHkuSGVpZ2h0O1xuICAgIHNlbGVjdGVkTGlzdEl0ZW0/OiBGbGF0dGVuZWRMaXN0SXRlbTtcbiAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPzogYm9vbGVhbjtcbiAgICBoYXNMZWZ0SWNvbj86IGJvb2xlYW47XG4gICAgcm93cz86IG51bWJlcjtcbiAgICBzaXplOiBQcm9tcHRJbnB1dFNpemVzO1xuICB9O1xuXG50eXBlIFN0eWxlZFRleHRBcmVhQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcIm1heFRleHRBcmVhSGVpZ2h0XCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPjtcblxuLy8gVGV4dGFyZWEgYXV0byBncm93IGltcGxlbWVudGVkIGFjY29yZGluZyB0byBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1jbGVhbmVzdC10cmljay1mb3ItYXV0b2dyb3dpbmctdGV4dGFyZWFzL1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5sYWJlbDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIG1heFRleHRBcmVhSGVpZ2h0LCBoYXNMZWZ0SWNvbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSk7XG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSk7XG4gICAgY29uc3QgaWNvblRleHRHYXAgPVxuICAgICAgc2l6ZSA9PT0gXCJzXCJcbiAgICAgICAgPyBgY2FsYygke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9IC0gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4eHN9KWBcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzO1xuICAgIGNvbnN0IGJhc2VQYWRkaW5nSG9yaXpvbnRhbCA9IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKTtcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBgY2FsYygke2Jhc2VQYWRkaW5nSG9yaXpvbnRhbH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5pY29uLm19ICsgJHtpY29uVGV4dEdhcH0pYDtcbiAgICBjb25zdCBwYWRkaW5nTGVmdCA9IGhhc0xlZnRJY29uXG4gICAgICA/IGBjYWxjKCR7YmFzZVBhZGRpbmdIb3Jpem9udGFsfSArICR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb25bc2l6ZV19ICsgJHtpY29uVGV4dEdhcH0pYFxuICAgICAgOiBiYXNlUGFkZGluZ0hvcml6b250YWw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgICB2ZXJ0aWNhbEFsaWduOiBcInRvcFwiLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICAgICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG4gICAgICBmb250U2l6ZTogdGhlbWUudmFyaWFibGVzLnNpemUuZm9udC5tLFxuICAgICAgbGluZUhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcblxuICAgICAgLy8gVGV4dGFyZWEgZ3Jvd3MgZHVlIHRvIDo6YWZ0ZXIgZ3Jvd3NcbiAgICAgIC8vIGlmIHlvdSBuZWVkIHRvIG1hbmlwdWxhdGUgd2l0aCBzaXplIG9mIHRleHRhcmVhLCB5b3UgbmVlZCB0byBtYW5pcHVsYXRlIHdpdGggOjphZnRlciBhbHNvXG4gICAgICBcIiY6OmFmdGVyXCI6IHtcbiAgICAgICAgY29udGVudDogXCJhdHRyKGRhdGEtdmFsdWUpICcgJ1wiLCAvLyB0aGUgZW1wdHkgc3BhY2UgcHJldmVudHMgdGV4dGFyZWEganVtcCBvbiBncm93XG4gICAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG4gICAgICAgIGZvbnRTaXplOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250Lm0sXG4gICAgICAgIGdyaWRBcmVhOiBcIjEgLyAxXCIsXG4gICAgICAgIHdoaXRlU3BhY2U6IFwicHJlLXdyYXBcIixcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgICAgbWF4SGVpZ2h0OiBtYXhUZXh0QXJlYUhlaWdodCxcbiAgICAgIH0sXG5cbiAgICAgIHRleHRhcmVhOiB7XG4gICAgICAgIGFsbDogXCJ1bnNldFwiLFxuICAgICAgICByZXNpemU6IFwibm9uZVwiLFxuICAgICAgICBncmlkQXJlYTogXCIxIC8gMVwiLFxuICAgICAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgICAgICBjb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLnRleHQucHJpbWFyeS5kZWZhdWx0LFxuICAgICAgICAuLi5nZXRJbnB1dFRleHRQbGFjZWhvbGRlcih7IHRoZW1lIH0pLFxuICAgICAgfSxcbiAgICAgIFwidGV4dGFyZWE6OnBsYWNlaG9sZGVyXCI6IHtcbiAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIsXG4gICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgfSxcblxuICAgICAgXCImOjphZnRlciwgdGV4dGFyZWFcIjoge1xuICAgICAgICAvLyBtaW5XaWR0aCBjb21lcyB0b2dldGhlciB3aXRoIG92ZXJmbG93V3JhcCB0byBhY2hpZXZlIGJyZWFrLXdvcmRcbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIGFwcGxpZWQgZm9yIDo6YWZ0ZXIgYW5kIHRleHRhcmVhXG4gICAgICAgIG1pbldpZHRoOiBcIjBcIixcbiAgICAgICAgb3ZlcmZsb3dXcmFwOiBcImJyZWFrLXdvcmRcIixcbiAgICAgICAgcGFkZGluZzogYCR7cGFkZGluZ1RvcH0gJHtwYWRkaW5nUmlnaHR9ICR7cGFkZGluZ0JvdHRvbX0gJHtwYWRkaW5nTGVmdH1gLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0VGV4dEFyZWEgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgZGF0YUUyZVRlc3RJZCxcbiAgICAgIGxhYmVsLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBtYXhUZXh0QXJlYUhlaWdodCA9IFwiMjAwcHhcIixcbiAgICAgIHNlbGVjdGVkTGlzdEl0ZW0sXG4gICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLFxuICAgICAgaGFzTGVmdEljb24sXG4gICAgICByb3dzID0gMSxcbiAgICAgIHNpemUsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIHJvbGUsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0VGV4dEFyZWFQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApID0+IHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdGV4dEFyZWEgPSByZWYuY3VycmVudDtcblxuICAgICAgLy8gU2V0IHRoZSB2YWx1ZSBvZiB0aGUgOjphZnRlciBwc2V1ZG8gZWxlbWVudCBzbyB0aGF0IHRoZSBUZXh0QXJlYSByZXNpemVzIGFjY29yZGluZ2x5IGFzIHRoZSBncmlkIHN0cmV0Y2hlcy5cbiAgICAgICh0ZXh0QXJlYS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50KS5kYXRhc2V0LnZhbHVlID0gdmFsdWU7XG4gICAgfSwgW3ZhbHVlLCByZWZdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXJcbiAgICAgICAgbWF4VGV4dEFyZWFIZWlnaHQ9e21heFRleHRBcmVhSGVpZ2h0fVxuICAgICAgICBoYXNMZWZ0SWNvbj17aGFzTGVmdEljb259XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICA+XG4gICAgICAgIDxTY3JlZW5SZWFkZXJUZXh0PntsYWJlbH08L1NjcmVlblJlYWRlclRleHQ+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgIHJvbGU9e3JvbGUgPz8gXCJjb21ib2JveFwifVxuICAgICAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgICAgICAgYXJpYS1jb250cm9scz17XG4gICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuID8gZ2V0QXV0b2NvbXBsZXRlTGlzdElkKG5hbWUpIDogXCJcIlxuICAgICAgICAgIH1cbiAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e3NlbGVjdGVkTGlzdEl0ZW0gPyBzZWxlY3RlZExpc3RJdGVtLmlkIDogXCJcIn1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICApO1xuICB9XG4pO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDZ0MifQ== */");export const PromptTextArea=forwardRef(({dataE2eTestId,label,name,value,placeholder,maxTextAreaHeight="200px",selectedListItem,isAutocompleteListOpen,hasLeftIcon,rows=1,size,onChange,role,...rest},ref)=>(useEffect(()=>{ref.current.parentNode.dataset.value=value},[value,ref]),React.createElement(StyledTextAreaContainer,{maxTextAreaHeight:maxTextAreaHeight,hasLeftIcon:hasLeftIcon,size:size},React.createElement(ScreenReaderText,null,label),React.createElement("textarea",{...rest,"data-e2e-test-id":dataE2eTestId,ref:ref,name:name,value:value,placeholder:placeholder,onChange:onChange,rows:rows,role:role??"combobox","aria-autocomplete":"list","aria-controls":isAutocompleteListOpen?getAutocompleteListId(name):"","aria-activedescendant":selectedListItem?selectedListItem.id:"","aria-expanded":isAutocompleteListOpen}))));
@@ -110,3 +110,4 @@ export * from "./components/Content/ContentTableModal/ContentTableModal";
110
110
  export * from "./components/Content/DosageButton";
111
111
  export * from "./components/Content/ReferenceButton";
112
112
  export * from "./components/AIButton/AIButton";
113
+ export * from "./components/Internal/LayoutManager";
@@ -1 +1 @@
1
- import{ambossVisualConfiguration}from"./web-tokens/visualConfig";export const{dark,light}=ambossVisualConfiguration;export{ThemeProvider,CacheProvider}from"@emotion/react";export{default as createCache}from"@emotion/cache";export*from"./components/AccessCardItem/AccessCardItem";export*from"./components/Avatar/Avatar";export*from"./components/AvatarGroup/AvatarGroup";export*from"./components/Badge/Badge";export*from"./components/BinaryFeedback/BinaryFeedback";export*from"./components/Box/Box";export*from"./components/BulkActionsToolbar/BulkActionsToolbar";export*from"./components/Button/Button";export*from"./components/Callout/Callout";export*from"./components/Card/Card";export*from"./components/Card/CardBox";export*from"./components/CatalogCard/CatalogCard";export*from"./components/CheckboxCard/CheckboxCard";export*from"./components/Collapsible/Collapsible";export*from"./components/ColorIndicator/ColorIndicator";export*from"./components/ColorPicker/ColorPicker";export*from"./components/Column/Columns";export*from"./components/Container";export*from"./components/CountButton/CountButton";export*from"./components/DataTable";export*from"./components/Divider/Divider";export*from"./components/DropdownMenu/DropdownMenu";export*from"./components/EntityList";export*from"./components/EntityTree";export*from"./components/Composite/FilterDialog/FilterDialog";export*from"./components/Form/Checkbox/Checkbox";export*from"./components/Form/Combobox/Combobox";export*from"./components/Form/DateInput/DateInput";export*from"./components/Form/DatePicker";export*from"./components/Form/FormFieldGroup/FormFieldGroup";export*from"./components/Form/Input";export*from"./components/Form/MaskedInput/MaskedInput";export*from"./components/Form/PasswordInput";export*from"./components/Form/Radio/Radio";export*from"./components/Form/RadioButton/RadioButton";export*from"./components/Form/RangeInput/RangeInput";export*from"./components/Form/SearchInput/SearchInput";export*from"./components/Form/SegmentedControl/SegmentedControl";export*from"./components/Form/Select";export*from"./components/Form/ToolbarToggle/ToolbarToggle";export*from"./components/Form/Textarea/Textarea";export*from"./components/Form/Toggle/Toggle";export*from"./components/Form/ToggleButton/ToggleButton";export*from"./components/Grid/Grid";export*from"./components/Icon/Icon";export*from"./components/IconTile/IconTile";export*from"./components/Image/Image";export*from"./components/Inline/Inline";export*from"./components/InteractiveBox/InteractiveBox";export*from"./components/Lightbox/Lightbox";export*from"./components/Link/Link";export*from"./components/LoadingSpinner/LoadingSpinner";export*from"./components/Logo/Logo";export*from"./components/MediaItem";export*from"./components/MediaViewerBar/MediaViewerBar";export*from"./components/MediaViewerCarousel/MediaViewerCarousel";export*from"./components/NavBar";export*from"./components/Notification/Notification";export*from"./components/Pagination/Pagination";export*from"./components/Patterns/ButtonGroup/ButtonGroup";export*from"./components/Patterns/Modal/Modal";export*from"./components/PictogramButton/PictogramButton";export*from"./components/Popover/Popover";export*from"./components/ProgressBar/ProgressBar";export*from"./components/PromptButton/PromptButton";export*from"./components/PromptInput/PromptInput";export*from"./components/SplashCard/SplashCard";export*from"./components/SplashCardMedia/SplashCardMedia";export*from"./components/QBankRichText/QBankRichText";export*from"./components/RadioCard/RadioCard";export*from"./components/RoundButton/RoundButton";export*from"./components/SearchResult/SearchResult";export*from"./components/SegmentedProgressBar/SegmentedProgressBar";export*from"./components/Sheet/Sheet";export*from"./components/Stack/Stack";export*from"./components/SubThemeProvider/SubThemeProvider";export*from"./components/Tabs/Tabs";export*from"./components/Tag/Tag";export*from"./components/TagGroup/TagGroup";export*from"./components/Toast";export*from"./components/Toggletip/Toggletip";export*from"./components/Tooltip/Tooltip";export*from"./components/Tutorialtip/Tutorialtip";export*from"./components/Typography/Header";export*from"./components/Typography/StyledText/StyledText";export*from"./components/Typography/Text";export*from"./components/Typography/TextClamped/TextClamped";export*from"./components/UserHighlightTooltip/UserHighlightTooltip";export*from"./components/Utilities/AnimatedBorder/useAnimatedBorder";export*from"./components/Utilities/ContainerQuery/ContainerQuery";export*from"./components/Utilities/Expandable/Expandable";export*from"./components/Utilities/ScreenReaderText/ScreenReaderText";export*from"./components/Patterns/EmptyState/EmptyState";export*from"./components/Content/ContentBox/ContentBox";export*from"./components/Content/ContentCheckbox/ContentCheckbox";export*from"./components/Content/ContentFontResizer";export*from"./components/Content/ContentHeading/ContentHeading";export*from"./components/Content/ContentLink/ContentLink";export*from"./components/Content/ContentPictogramButton/ContentPictogramButton";export*from"./components/Content/ContentText/ContentText";export*from"./components/Content/ContentList";export*from"./components/Content/ContentTable";export*from"./components/Content/ContentTableModal/ContentTableModal";export*from"./components/Content/DosageButton";export*from"./components/Content/ReferenceButton";export*from"./components/AIButton/AIButton";
1
+ import{ambossVisualConfiguration}from"./web-tokens/visualConfig";export const{dark,light}=ambossVisualConfiguration;export{ThemeProvider,CacheProvider}from"@emotion/react";export{default as createCache}from"@emotion/cache";export*from"./components/AccessCardItem/AccessCardItem";export*from"./components/Avatar/Avatar";export*from"./components/AvatarGroup/AvatarGroup";export*from"./components/Badge/Badge";export*from"./components/BinaryFeedback/BinaryFeedback";export*from"./components/Box/Box";export*from"./components/BulkActionsToolbar/BulkActionsToolbar";export*from"./components/Button/Button";export*from"./components/Callout/Callout";export*from"./components/Card/Card";export*from"./components/Card/CardBox";export*from"./components/CatalogCard/CatalogCard";export*from"./components/CheckboxCard/CheckboxCard";export*from"./components/Collapsible/Collapsible";export*from"./components/ColorIndicator/ColorIndicator";export*from"./components/ColorPicker/ColorPicker";export*from"./components/Column/Columns";export*from"./components/Container";export*from"./components/CountButton/CountButton";export*from"./components/DataTable";export*from"./components/Divider/Divider";export*from"./components/DropdownMenu/DropdownMenu";export*from"./components/EntityList";export*from"./components/EntityTree";export*from"./components/Composite/FilterDialog/FilterDialog";export*from"./components/Form/Checkbox/Checkbox";export*from"./components/Form/Combobox/Combobox";export*from"./components/Form/DateInput/DateInput";export*from"./components/Form/DatePicker";export*from"./components/Form/FormFieldGroup/FormFieldGroup";export*from"./components/Form/Input";export*from"./components/Form/MaskedInput/MaskedInput";export*from"./components/Form/PasswordInput";export*from"./components/Form/Radio/Radio";export*from"./components/Form/RadioButton/RadioButton";export*from"./components/Form/RangeInput/RangeInput";export*from"./components/Form/SearchInput/SearchInput";export*from"./components/Form/SegmentedControl/SegmentedControl";export*from"./components/Form/Select";export*from"./components/Form/ToolbarToggle/ToolbarToggle";export*from"./components/Form/Textarea/Textarea";export*from"./components/Form/Toggle/Toggle";export*from"./components/Form/ToggleButton/ToggleButton";export*from"./components/Grid/Grid";export*from"./components/Icon/Icon";export*from"./components/IconTile/IconTile";export*from"./components/Image/Image";export*from"./components/Inline/Inline";export*from"./components/InteractiveBox/InteractiveBox";export*from"./components/Lightbox/Lightbox";export*from"./components/Link/Link";export*from"./components/LoadingSpinner/LoadingSpinner";export*from"./components/Logo/Logo";export*from"./components/MediaItem";export*from"./components/MediaViewerBar/MediaViewerBar";export*from"./components/MediaViewerCarousel/MediaViewerCarousel";export*from"./components/NavBar";export*from"./components/Notification/Notification";export*from"./components/Pagination/Pagination";export*from"./components/Patterns/ButtonGroup/ButtonGroup";export*from"./components/Patterns/Modal/Modal";export*from"./components/PictogramButton/PictogramButton";export*from"./components/Popover/Popover";export*from"./components/ProgressBar/ProgressBar";export*from"./components/PromptButton/PromptButton";export*from"./components/PromptInput/PromptInput";export*from"./components/SplashCard/SplashCard";export*from"./components/SplashCardMedia/SplashCardMedia";export*from"./components/QBankRichText/QBankRichText";export*from"./components/RadioCard/RadioCard";export*from"./components/RoundButton/RoundButton";export*from"./components/SearchResult/SearchResult";export*from"./components/SegmentedProgressBar/SegmentedProgressBar";export*from"./components/Sheet/Sheet";export*from"./components/Stack/Stack";export*from"./components/SubThemeProvider/SubThemeProvider";export*from"./components/Tabs/Tabs";export*from"./components/Tag/Tag";export*from"./components/TagGroup/TagGroup";export*from"./components/Toast";export*from"./components/Toggletip/Toggletip";export*from"./components/Tooltip/Tooltip";export*from"./components/Tutorialtip/Tutorialtip";export*from"./components/Typography/Header";export*from"./components/Typography/StyledText/StyledText";export*from"./components/Typography/Text";export*from"./components/Typography/TextClamped/TextClamped";export*from"./components/UserHighlightTooltip/UserHighlightTooltip";export*from"./components/Utilities/AnimatedBorder/useAnimatedBorder";export*from"./components/Utilities/ContainerQuery/ContainerQuery";export*from"./components/Utilities/Expandable/Expandable";export*from"./components/Utilities/ScreenReaderText/ScreenReaderText";export*from"./components/Patterns/EmptyState/EmptyState";export*from"./components/Content/ContentBox/ContentBox";export*from"./components/Content/ContentCheckbox/ContentCheckbox";export*from"./components/Content/ContentFontResizer";export*from"./components/Content/ContentHeading/ContentHeading";export*from"./components/Content/ContentLink/ContentLink";export*from"./components/Content/ContentPictogramButton/ContentPictogramButton";export*from"./components/Content/ContentText/ContentText";export*from"./components/Content/ContentList";export*from"./components/Content/ContentTable";export*from"./components/Content/ContentTableModal/ContentTableModal";export*from"./components/Content/DosageButton";export*from"./components/Content/ReferenceButton";export*from"./components/AIButton/AIButton";export*from"./components/Internal/LayoutManager";