@pine-ds/core 3.16.2 → 3.17.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 (148) hide show
  1. package/components/form.js +2 -0
  2. package/components/form.js.map +1 -1
  3. package/components/pds-button2.js +10 -16
  4. package/components/pds-button2.js.map +1 -1
  5. package/components/pds-dropdown-menu.js +1 -1
  6. package/components/pds-dropdown-menu.js.map +1 -1
  7. package/components/pds-multiselect.js +10 -5
  8. package/components/pds-multiselect.js.map +1 -1
  9. package/dist/cjs/{form-hmpgbT1I.js → form-DUqlzovE.js} +4 -2
  10. package/dist/{esm-es5/form-DwjNklzi.js.map → cjs/form-DUqlzovE.js.map} +1 -1
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/pds-button.cjs.entry.js +10 -16
  13. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  14. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  15. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  16. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  17. package/dist/cjs/pds-input.cjs.entry.js +1 -1
  18. package/dist/cjs/pds-multiselect.cjs.entry.js +10 -6
  19. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  20. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  21. package/dist/cjs/pds-radio.cjs.entry.js +1 -1
  22. package/dist/cjs/pds-select.cjs.entry.js +1 -1
  23. package/dist/cjs/pds-switch.cjs.entry.js +1 -1
  24. package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
  25. package/dist/cjs/pine-core.cjs.js +1 -1
  26. package/dist/collection/components/pds-button/pds-button.css +3 -0
  27. package/dist/collection/components/pds-button/pds-button.js +9 -15
  28. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  29. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +4 -4
  30. package/dist/collection/components/pds-multiselect/pds-multiselect.js +29 -5
  31. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
  32. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +38 -0
  33. package/dist/collection/utils/form.js +2 -0
  34. package/dist/collection/utils/form.js.map +1 -1
  35. package/dist/docs.json +30 -1
  36. package/dist/esm/{form-DwjNklzi.js → form-CN-lL5QG.js} +4 -2
  37. package/dist/esm/{form-DwjNklzi.js.map → form-CN-lL5QG.js.map} +1 -1
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/esm/pds-button.entry.js +10 -16
  40. package/dist/esm/pds-button.entry.js.map +1 -1
  41. package/dist/esm/pds-checkbox.entry.js +1 -1
  42. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  43. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  44. package/dist/esm/pds-input.entry.js +1 -1
  45. package/dist/esm/pds-multiselect.entry.js +10 -6
  46. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  47. package/dist/esm/pds-radio-group.entry.js +1 -1
  48. package/dist/esm/pds-radio.entry.js +1 -1
  49. package/dist/esm/pds-select.entry.js +1 -1
  50. package/dist/esm/pds-switch.entry.js +1 -1
  51. package/dist/esm/pds-textarea.entry.js +1 -1
  52. package/dist/esm/pine-core.js +1 -1
  53. package/dist/esm-es5/form-CN-lL5QG.js +2 -0
  54. package/dist/{cjs/form-hmpgbT1I.js.map → esm-es5/form-CN-lL5QG.js.map} +1 -1
  55. package/dist/esm-es5/loader.js +1 -1
  56. package/dist/esm-es5/pds-button.entry.js +1 -1
  57. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  58. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  59. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  60. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  61. package/dist/esm-es5/pds-input.entry.js +1 -1
  62. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  63. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  64. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  65. package/dist/esm-es5/pds-radio.entry.js +1 -1
  66. package/dist/esm-es5/pds-select.entry.js +1 -1
  67. package/dist/esm-es5/pds-switch.entry.js +1 -1
  68. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  69. package/dist/esm-es5/pine-core.js +1 -1
  70. package/dist/pine-core/{p-f03f4602.system.entry.js → p-0b52923b.system.entry.js} +2 -2
  71. package/dist/pine-core/{p-bfac5114.entry.js → p-15e554ae.entry.js} +2 -2
  72. package/dist/pine-core/{p-09ff71ad.system.entry.js → p-23111b1c.system.entry.js} +2 -2
  73. package/dist/pine-core/p-29266dcd.system.entry.js +2 -0
  74. package/dist/pine-core/{p-8b4f76e4.system.entry.js.map → p-29266dcd.system.entry.js.map} +1 -1
  75. package/dist/pine-core/{p-0270ebee.system.entry.js → p-2aac4495.system.entry.js} +2 -2
  76. package/dist/pine-core/{p-7a6f11bd.system.entry.js → p-36e5e9f4.system.entry.js} +2 -2
  77. package/dist/pine-core/p-36e5e9f4.system.entry.js.map +1 -0
  78. package/dist/pine-core/{p-9d9a5ca8.system.entry.js → p-3f05d72e.system.entry.js} +2 -2
  79. package/dist/pine-core/{p-bc4b1749.system.entry.js → p-5abc5d82.system.entry.js} +2 -2
  80. package/dist/pine-core/p-6877a50d.system.entry.js +2 -0
  81. package/dist/pine-core/p-6877a50d.system.entry.js.map +1 -0
  82. package/dist/pine-core/{p-ad8fe96c.entry.js → p-73bce0bf.entry.js} +2 -2
  83. package/dist/pine-core/{p-8eb29dbd.entry.js → p-78246e05.entry.js} +2 -2
  84. package/dist/pine-core/{p-d0366fba.entry.js → p-7a11a6c7.entry.js} +2 -2
  85. package/dist/pine-core/{p-694cfe69.entry.js → p-94c73d98.entry.js} +2 -2
  86. package/dist/pine-core/p-94c73d98.entry.js.map +1 -0
  87. package/dist/pine-core/{p-CCKncKbB.system.js.map → p-BJPmPVaF.system.js.map} +1 -1
  88. package/dist/pine-core/{p-BHavepTY.system.js → p-Bch44a-T.system.js} +2 -2
  89. package/dist/pine-core/{p-BHavepTY.system.js.map → p-Bch44a-T.system.js.map} +1 -1
  90. package/dist/pine-core/{p-DXoBK65z.system.js.map → p-BnJypAy2.system.js.map} +1 -1
  91. package/dist/pine-core/p-CN-lL5QG.js +2 -0
  92. package/dist/pine-core/{p-DwjNklzi.js.map → p-CN-lL5QG.js.map} +1 -1
  93. package/dist/pine-core/{p-igLtCO20.system.js.map → p-CQtQQn3_.system.js.map} +1 -1
  94. package/dist/pine-core/p-CjnIO2Ro.system.js.map +1 -0
  95. package/dist/pine-core/p-Ct5QAsPN.system.js.map +1 -0
  96. package/dist/pine-core/{p-DFY2-W9M.system.js.map → p-D4YdQDsG.system.js.map} +1 -1
  97. package/dist/pine-core/p-DR2CskUb.system.js.map +1 -0
  98. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  99. package/dist/pine-core/{p-BssHFst4.system.js.map → p-N-jt0_Yl.system.js.map} +1 -1
  100. package/dist/pine-core/{p-1e77124d.system.entry.js → p-b1820970.system.entry.js} +2 -2
  101. package/dist/pine-core/{p-caff29fb.entry.js → p-b1a7a0b2.entry.js} +2 -2
  102. package/dist/pine-core/p-b3c66c58.entry.js +2 -0
  103. package/dist/pine-core/p-b3c66c58.entry.js.map +1 -0
  104. package/dist/pine-core/{p-9eQIEVii.system.js.map → p-c2oMjk1r.system.js.map} +1 -1
  105. package/dist/pine-core/{p-bce9f17d.system.entry.js → p-c9965216.system.entry.js} +2 -2
  106. package/dist/pine-core/{p-5162baee.entry.js → p-ce069162.entry.js} +2 -2
  107. package/dist/pine-core/p-f5fb71f6.entry.js +2 -0
  108. package/dist/pine-core/{p-d456c898.entry.js.map → p-f5fb71f6.entry.js.map} +1 -1
  109. package/dist/pine-core/{p-563b640d.entry.js → p-fbd8ae50.entry.js} +2 -2
  110. package/dist/pine-core/{p-CJ4Gf3Nx.system.js.map → p-gcCcHox5.system.js.map} +1 -1
  111. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  112. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  113. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  114. package/dist/pine-core/pine-core.esm.js +1 -1
  115. package/dist/types/components/pds-button/pds-button.d.ts +0 -1
  116. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +4 -0
  117. package/dist/types/components.d.ts +10 -0
  118. package/dist/vscode.html-data.json +8 -1
  119. package/hydrate/index.js +23 -22
  120. package/hydrate/index.mjs +23 -22
  121. package/package.json +2 -2
  122. package/dist/esm-es5/form-DwjNklzi.js +0 -2
  123. package/dist/pine-core/p-694cfe69.entry.js.map +0 -1
  124. package/dist/pine-core/p-7a6f11bd.system.entry.js.map +0 -1
  125. package/dist/pine-core/p-7ecfe996.entry.js +0 -2
  126. package/dist/pine-core/p-7ecfe996.entry.js.map +0 -1
  127. package/dist/pine-core/p-8b4f76e4.system.entry.js +0 -2
  128. package/dist/pine-core/p-BRn0ywk1.system.js.map +0 -1
  129. package/dist/pine-core/p-C7XKS9nY.system.js.map +0 -1
  130. package/dist/pine-core/p-DwjNklzi.js +0 -2
  131. package/dist/pine-core/p-EnxcYko8.system.js.map +0 -1
  132. package/dist/pine-core/p-b61669b4.system.entry.js +0 -2
  133. package/dist/pine-core/p-b61669b4.system.entry.js.map +0 -1
  134. package/dist/pine-core/p-d456c898.entry.js +0 -2
  135. /package/dist/pine-core/{p-f03f4602.system.entry.js.map → p-0b52923b.system.entry.js.map} +0 -0
  136. /package/dist/pine-core/{p-bfac5114.entry.js.map → p-15e554ae.entry.js.map} +0 -0
  137. /package/dist/pine-core/{p-09ff71ad.system.entry.js.map → p-23111b1c.system.entry.js.map} +0 -0
  138. /package/dist/pine-core/{p-0270ebee.system.entry.js.map → p-2aac4495.system.entry.js.map} +0 -0
  139. /package/dist/pine-core/{p-9d9a5ca8.system.entry.js.map → p-3f05d72e.system.entry.js.map} +0 -0
  140. /package/dist/pine-core/{p-bc4b1749.system.entry.js.map → p-5abc5d82.system.entry.js.map} +0 -0
  141. /package/dist/pine-core/{p-ad8fe96c.entry.js.map → p-73bce0bf.entry.js.map} +0 -0
  142. /package/dist/pine-core/{p-8eb29dbd.entry.js.map → p-78246e05.entry.js.map} +0 -0
  143. /package/dist/pine-core/{p-d0366fba.entry.js.map → p-7a11a6c7.entry.js.map} +0 -0
  144. /package/dist/pine-core/{p-1e77124d.system.entry.js.map → p-b1820970.system.entry.js.map} +0 -0
  145. /package/dist/pine-core/{p-caff29fb.entry.js.map → p-b1a7a0b2.entry.js.map} +0 -0
  146. /package/dist/pine-core/{p-bce9f17d.system.entry.js.map → p-c9965216.system.entry.js.map} +0 -0
  147. /package/dist/pine-core/{p-5162baee.entry.js.map → p-ce069162.entry.js.map} +0 -0
  148. /package/dist/pine-core/{p-563b640d.entry.js.map → p-fbd8ae50.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-BRn0ywk1.system.js","sources":["src/components/pds-button/pds-button.scss?tag=pds-button&encapsulation=shadow","src/components/pds-button/pds-button.tsx"],"sourcesContent":[":host {\n --pds-button-background: var(--color-background-default);\n --pds-button-border: var(--pine-border);\n --pds-button-border-radius: var(--pine-border-radius-full);\n --pds-button-border-radius-start-end: var(--pine-border-radius-full);\n --pds-button-border-radius-start-start: var(--pine-border-radius-full);\n --pds-button-border-radius-end-end: var(--pine-border-radius-full);\n --pds-button-border-radius-end-start: var(--pine-border-radius-full);\n --pds-button-min-height: var(--pine-dimension-450);\n --pds-button-outline-offset: var(--pine-border-width);\n --color-border-default: transparent;\n --color-border-disabled: transparent;\n --color-border-focus: transparent;\n --color-border-hover: transparent;\n --button-loader-color: var(--color-text-default);\n\n display: inline-flex;\n vertical-align: middle;\n}\n\n:host([full-width=\"true\"]) {\n display: flex;\n width: 100%;\n\n a,\n button {\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__content {\n justify-content: center;\n text-align: center;\n }\n}\n\n:host([loading=\"true\"]) {\n cursor: wait;\n pointer-events: none;\n}\n\n:host([disabled=\"true\"]) {\n pointer-events: none;\n}\n\n.pds-button {\n --pds-loader-color: var(--color-text-default);\n align-items: center;\n background-color: var(--pds-button-background, var(--color-background-default));\n border: var(--pds-button-border);\n border-color: var(--color-border-default);\n border-radius: var(--pds-button-border-radius);\n /* stylelint-disable-next-line order/properties-alphabetical-order */\n border-end-end-radius: var(--pds-button-border-radius-end-end, var(--pds-button-border-radius));\n border-end-start-radius: var(--pds-button-border-radius-end-start, var(--pds-button-border-radius));\n border-start-end-radius: var(--pds-button-border-radius-start-end, var(--pds-button-border-radius));\n border-start-start-radius: var(--pds-button-border-radius-start-start, var(--pds-button-border-radius));\n box-sizing: border-box;\n color: var(--color-text-default);\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body-brand-label);\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pds-button-min-height);\n padding: calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-sm);\n position: relative;\n text-decoration: none;\n\n pds-icon {\n color: currentColor;\n fill: currentColor;\n }\n\n &:hover {\n background-color: var(--color-background-hover);\n border-color: var(--color-border-hover);\n }\n\n &:focus-visible {\n border-color: var(--color-border-focus);\n box-shadow: var(--pds-button-box-shadow-focus, none);\n outline: var(--pds-button-outline-focus, var(--pine-outline-focus));\n outline-offset: var(--pds-button-outline-offset);\n }\n\n &:disabled {\n background-color: var(--color-background-disabled);\n border-color: var(--color-border-disabled);\n color: var(--color-text-disabled);\n pointer-events: none;\n }\n}\n\n.pds-button--primary {\n --color-background-default: var(--pine-color-primary);\n --color-background-hover: var(--pine-color-primary-hover);\n --color-background-disabled: var(--pine-color-primary-disabled);\n --color-border-default: var(--pine-color-primary);\n --color-border-hover: var(--pine-color-primary-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-primary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--accent {\n --color-background-default: var(--pine-color-accent);\n --color-background-hover: var(--pine-color-accent-hover);\n --color-background-disabled: var(--pine-color-accent-disabled);\n --color-border-default: var(--pine-color-accent);\n --color-border-hover: var(--pine-color-accent-hover);\n /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n --color-text-default: var(--pine-color-white);\n --color-text-disabled: var(--pine-color-text-accent-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--destructive {\n --color-background-default: var(--pine-color-danger);\n --color-background-hover: var(--pine-color-danger-hover);\n --color-background-disabled: var(--pine-color-danger-disabled);\n --color-border-default: var(--pine-color-danger);\n --color-border-hover: var(--pine-color-danger-hover);\n /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n --color-text-default: var(--pine-color-white);\n --color-text-disabled: var(--pine-color-text-danger-disabled);\n --color-outline: var(--pine-color-focus-ring-danger);\n --button-loader-color: var(--pine-color-text-primary);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n}\n\n.pds-button--secondary,\n.pds-button--disclosure {\n --color-background-default: var(--pine-color-secondary);\n --color-background-hover: var(--pine-color-secondary-hover);\n --color-background-disabled: var(--pine-color-secondary-disabled);\n --color-border-disabled: var(--pine-color-border-disabled);\n --color-border-focus: var(--pine-color-border);\n --color-border-hover: var(--pine-color-border-hover);\n --color-border-default: var(--pine-color-border);\n --color-text-default: var(--pine-color-text-secondary);\n --color-text-disabled: var(--pine-color-text-secondary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-secondary);\n\n &:hover {\n background-color: var(--pine-color-secondary-hover);\n }\n}\n\n.pds-button--tertiary {\n --color-background-default: transparent;\n --color-background-hover: var(--pine-color-background-muted);\n --color-background-disabled: transparent;\n --color-border-default: transparent;\n --color-border-hover: var(--pine-color-background-muted);\n --color-border-disabled: transparent;\n --color-text-default: var(--pine-color-text-secondary);\n --color-text-disabled: var(--pine-color-text-secondary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-secondary);\n}\n\n.pds-button--filter {\n --color-background-default: var(--pine-color-background-container);\n --color-background-hover: var(--pine-color-background-subtle);\n /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n --color-background-disabled: var(--pine-color-white);\n --color-border-default: transparent;\n --color-border-hover: transparent;\n --color-border-focus: transparent;\n --color-text-default: var(--pine-color-text-secondary);\n --color-text-hover: var(--pine-color-text-hover);\n --color-text-disabled: var(--pine-color-text-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-secondary);\n --pds-button-border-radius: var(--pine-dimension-125);\n --pds-button-border-radius-start-end: var(--pine-dimension-125);\n --pds-button-border-radius-start-start: var(--pine-dimension-125);\n --pds-button-border-radius-end-end: var(--pine-dimension-125);\n --pds-button-border-radius-end-start: var(--pine-dimension-125);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n &:disabled {\n background-color: var(--pine-color-background-container);\n }\n\n &:hover {\n color: var(--color-text-hover);\n }\n}\n\n.pds-button--unstyled {\n --color-background-default: transparent;\n --color-background-hover: transparent;\n --color-background-disabled: transparent;\n --color-text-default: var(--pine-color-text);\n --button-loader-color: var(--pine-color-text);\n border-width: var(--pine-dimension-none);\n margin: var(--pine-dimension-none);\n min-height: auto;\n padding: var(--pine-dimension-none);\n width: inherit;\n}\n\n.pds-button__content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n.pds-button__icon {\n display: inline-flex;\n}\n\n.pds-button__text {\n align-items: center;\n display: inline-flex;\n white-space: nowrap;\n}\n\n.pds-button__icon--hidden,\n.pds-button__text--hidden {\n opacity: 0;\n}\n\n.pds-button__loader {\n height: var(--pine-dimension-250);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--pine-dimension-250);\n}\n\n.pds-button--loading {\n cursor: wait;\n pointer-events: none;\n\n .pds-button__loader {\n pds-loader {\n --loader-color: var(--button-loader-color);\n }\n }\n}\n\n.pds-button--small {\n min-height: var(--pine-dimension-400);\n padding: calc(var(--pine-dimension-2xs) - var(--pine-border-width)) var(--pine-dimension-sm);\n}\n\n.pds-button--micro {\n font-size: var(--pine-font-size-085);\n min-height: var(--pine-dimension-300);\n padding: var(--pine-dimension-025) var(--pine-dimension-xs);\n}\n\n\n.pds-button--icon-only {\n align-items: center;\n border-radius: var(--pine-border-radius-full);\n height: var(--button-dimension);\n justify-content: center;\n min-height: var(--button-dimension);\n min-width: var(--button-dimension);\n padding: var(--pine-dimension-xs);\n width: var(--button-dimension);\n\n .pds-button__content {\n height: 100%;\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__text--hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n &.pds-button--small {\n height: var(--pine-dimension-400);\n min-height: var(--pine-dimension-400);\n min-width: var(--pine-dimension-400);\n padding: var(--pine-dimension-2xs);\n width: var(--pine-dimension-400);\n }\n\n &.pds-button--micro {\n height: var(--pine-dimension-300);\n min-height: var(--pine-dimension-300);\n min-width: var(--pine-dimension-300);\n padding: var(--pine-dimension-3xs);\n width: var(--pine-dimension-300);\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Listen, Prop } from '@stencil/core';\nimport { hasShadowDom } from '../../utils/utils';\n\nimport { caretDown, addCircle } from '@pine-ds/icons/icons';\n\n/**\n * @part button - Exposes the button element for styling.\n * @part button-content - Exposes the button content for styling.\n * @part button-text - Exposes the button text for styling.\n * @part caret - Exposes the caret icon component for styling. Appears only on the disclosure variant.\n * @part icon - Exposes the icon component for styling.\n * @part loader-svg - Exposes the loader SVG element for color customization. Appears only when loading.\n * @slot (default) - Button text.\n * @slot start - Content to display before the button text.\n * @slot end - Content to display after the button text.\n*/\n\n@Component({\n tag: 'pds-button',\n styleUrls: ['pds-button.scss'],\n shadow: true,\n})\nexport class PdsButton {\n @Element() el: HTMLPdsButtonElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines the button's disabled state.\n * @defaultValue false\n */\n @Prop() disabled? = false;\n\n /**\n * Determines if the button should take up the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth? = false;\n\n /**\n * If provided, renders the component as an anchor (`<a>`) element instead of a button.\n * When using href, button-specific props (type, name, value, loading) will be ignored.\n */\n @Prop() href?: string;\n\n /**\n * Displays a leading icon in the button. DEPRECATED.\n * @defaultValue null\n * @deprecated Use `start` slot instead.\n */\n @Prop() icon?: string = null;\n\n /**\n * When true, displays only the icon and visually hides the text (keeping it accessible).\n */\n @Prop() iconOnly? = false;\n\n /**\n * Determines if the button is in a loading state.\n * When true, displays a loader and hides the button text.\n * @defaultValue false\n */\n @Prop() loading? = false;\n\n /**\n * Provides the button with a submittable name.\n */\n @Prop() name?: string;\n\n /**\n * Specifies where to open the linked document when href is provided.\n * Only applies when href is set.\n */\n @Prop() target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * Provides button with a type.\n * @defaultValue button\n */\n @Prop() type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * Provides button with a submittable value\n */\n @Prop() value?: string;\n\n /**\n * Sets the size of the button.\n * @defaultValue default\n */\n @Prop() size?: 'default' | 'small' | 'micro' = 'default';\n\n /**\n * Sets the style variant of the button.\n * @defaultValue primary\n */\n @Prop() variant: 'primary' | 'secondary' | 'tertiary' | 'accent' | 'disclosure' | 'destructive' | 'unstyled' | 'filter' = 'primary';\n\n @Event() pdsClick: EventEmitter<Event>;\n\n /**\n * Listen for Enter key presses on form inputs to trigger submit\n */\n @Listen('keydown', { target: 'body' })\n\n handleFormKeyDown(event: KeyboardEvent) {\n // Only handle Enter key for submit buttons that are not disabled\n if (event.key !== 'Enter' || this.type !== 'submit' || this.href || this.disabled) {\n return;\n }\n\n const target = event.target as Element;\n\n // Ensure event.target is an Element with matches method before proceeding\n if (!target || typeof target.matches !== 'function') {\n return;\n }\n const form = this.el.closest('form');\n\n // Check if the Enter key was pressed in a form input within the same form\n if (!form || !target || !form.contains(target)) {\n return;\n }\n\n // Check if target is a form input element (exclude reset buttons)\n const isFormInput = target.matches('input:not([type=\"submit\"]):not([type=\"button\"]):not([type=\"reset\"])') ||\n target.matches('pds-input') ||\n target.matches('pds-select') ||\n target.matches('pds-switch') ||\n target.matches('pds-checkbox') ||\n target.matches('pds-radio');\n\n if (isFormInput) {\n // Find all submit buttons in the form and check their actual properties\n const allSubmitButtons = Array.from(form.querySelectorAll('pds-button, button[type=\"submit\"], input[type=\"submit\"]'));\n const enabledSubmitButtons = allSubmitButtons.filter(button => {\n if (button.tagName.toLowerCase() === 'pds-button') {\n const pdsButton = button as HTMLPdsButtonElement;\n return pdsButton.type === 'submit' && !pdsButton.disabled;\n } else {\n return !button.hasAttribute('disabled');\n }\n });\n\n // Only synthesize click if this button is strictly the first enabled submit button\n if (enabledSubmitButtons.length > 0 && enabledSubmitButtons[0] === this.el) {\n event.preventDefault();\n this.el.click();\n }\n }\n }\n\n\n private handleClick = (ev: Event) => {\n if (this.loading) {\n ev.preventDefault();\n return;\n }\n\n // Prevent form submission for disabled buttons\n if (this.disabled) {\n ev.preventDefault();\n return;\n }\n\n if (!this.href && this.type != 'button') {\n // Handle form submission for Shadow DOM buttons\n if (hasShadowDom(this.el)) {\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n this.pdsClick.emit(ev);\n };\n\n private classNames() {\n const classNames = ['pds-button'];\n\n if (this.variant) {\n classNames.push('pds-button--' + this.variant);\n }\n\n if (this.size && this.size !== 'default') {\n classNames.push('pds-button--' + this.size);\n }\n\n if (this.iconOnly) {\n classNames.push('pds-button--icon-only');\n }\n\n if (this.loading) {\n classNames.push('pds-button--loading');\n }\n\n return classNames.join(' ');\n }\n\n private hasSlotContent(slotName: string): boolean {\n const elements = this.el.querySelectorAll(`[slot=\"${slotName}\"]`);\n return elements.length > 0;\n }\n\n private renderStartContent() {\n const hasIcon = this.icon && this.variant !== 'disclosure' && this.variant !== 'filter';\n const hasStartSlot = this.hasSlotContent('start');\n\n if (this.variant === 'filter') {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} icon={addCircle} part=\"icon\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (Boolean(hasIcon)) {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} name={this.icon} part=\"icon\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (Boolean(hasStartSlot)) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"start\" /></span>;\n }\n\n return null;\n }\n\n private renderEndContent() {\n if (this.iconOnly) {\n return null;\n }\n\n if (this.variant === 'disclosure') {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} icon={caretDown} part=\"caret\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (this.hasSlotContent('end')) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"end\" /></span>;\n }\n\n return null;\n }\n\n render() {\n // Common props for both button and anchor elements\n const commonProps = {\n class: this.classNames(),\n part: 'button',\n };\n\n const attributes = () => {\n if (this.href) {\n return {\n // Anchor element props\n ...commonProps,\n href: this.disabled ? null : this.href,\n target: this.target,\n };\n }\n\n return {\n // Button element props\n ...commonProps,\n 'aria-busy': this.loading ? 'true' : null,\n 'aria-live': this.loading ? 'polite' : null,\n 'disabled': this.disabled,\n 'name': this.name,\n 'type': this.type,\n 'value': this.value,\n };\n };\n\n const ContentElement = this.href ? 'a' : 'button';\n\n // Hide text when loading or iconOnly is true\n const hideText = this.loading || this.iconOnly;\n\n const content = (\n <div class=\"pds-button__content\" part=\"button-content\">\n {this.renderStartContent()}\n\n <span class={`pds-button__text ${hideText ? 'pds-button__text--hidden' : ''}`} part=\"button-text\">\n <slot />\n </span>\n\n {this.loading && (\n <span class=\"pds-button__loader\">\n <pds-loader is-loading={true} size=\"var(--pine-font-size-body-2xl)\" variant=\"spinner\" exportparts=\"loader-svg\">\n Loading...\n </pds-loader>\n </span>\n )}\n\n {this.renderEndContent()}\n </div>\n );\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n id={this.componentId}\n onClick={this.handleClick}\n variant={this.variant}\n >\n <ContentElement {...attributes()}>\n {content}\n </ContentElement>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-C7XKS9nY.system.js","sources":["src/components/pds-dropdown-menu/pds-dropdown-menu.scss?tag=pds-dropdown-menu&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.is-hidden {\n display: none;\n}\n\n.pds-dropdown-menu--panel {\n background-color: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-xs);\n left: var(--pine-dimension-none);\n min-width: 170px;\n padding: var(--pine-dimension-xs);\n position: fixed;\n z-index: var(--pine-z-index-overlay);\n\n :host-context([data-theme=\"dark\"]) & {\n border: var(--pine-border);\n }\n}\n\n// Styles for raw <a> and <button> elements slotted into the menu\n// These are allowed for edge cases requiring native browser/framework behavior\n// (e.g., Rails UJS, Turbo) that cannot work through Shadow DOM.\n//\n// Note: ::slotted() cannot be combined with pseudo-classes like :hover or :focus.\n// Raw elements will receive base styling here; hover/focus states must be handled\n// by the consuming application's CSS if needed.\n::slotted(a),\n::slotted(button) {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--pine-dimension-xs);\n box-sizing: border-box;\n color: var(--pine-color-text) !important;\n cursor: pointer;\n display: flex;\n flex-grow: 1;\n font: var(--pine-typography-body-medium);\n gap: var(--pine-dimension-xs);\n margin: calc(var(--pine-border-width) + 2px);\n padding: var(--pine-dimension-xs);\n text-align: start;\n text-decoration: none !important;\n width: calc(100% - calc(var(--pine-border-width) + 2px) * 2);\n}\n\n// Destructive variant for raw elements\n::slotted(.destructive) {\n color: var(--pine-color-danger) !important;\n}\n\n// Disabled state for raw elements (using attribute selectors, not pseudo-classes)\n::slotted([aria-disabled=\"true\"]),\n::slotted([disabled]) {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n}\n","import { Component, Element, Host, h, Prop, Listen, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { PlacementType } from '@utils/types';\nimport { computePosition,\n flip,\n offset,\n shift,\n autoUpdate,\n} from '@floating-ui/dom';\n\n/**\n * Union type for focusable menu items (component or raw elements)\n */\ntype MenuItemElement = HTMLPdsDropdownMenuItemElement | HTMLAnchorElement | HTMLButtonElement;\n\n/**\n * @part menu-panel - Exposes the dropdown menu container for styling.\n */\n@Component({\n tag: 'pds-dropdown-menu',\n styleUrl: 'pds-dropdown-menu.scss',\n shadow: true,\n})\nexport class PdsDropdownMenu implements BasePdsProps {\n private slotEl: HTMLSlotElement;\n private triggerEl: HTMLElement;\n private panelEl: HTMLPdsBoxElement;\n private isOpen: boolean = false;\n private menuItems: MenuItemElement[] = [];\n private cleanupAutoUpdate: (() => void) | null = null;\n\n @Element() host: HTMLPdsDropdownMenuElement;\n\n @State() currentFocusIndex: number = -1;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The placement of the dropdown panel relative to the trigger.\n */\n @Prop() placement: PlacementType = 'bottom-start';\n\n componentDidRender() {\n this.panelEl = this.host.shadowRoot?.querySelector('pds-box') as HTMLPdsBoxElement;\n }\n\n disconnectedCallback() {\n // Clean up auto-update when component is removed from DOM\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n }\n\n private handleTriggerSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n this.triggerEl = assignedElements[0] as HTMLElement;\n this.triggerEl.onclick = this.handleClick;\n\n // Add accessibility attributes to trigger\n this.triggerEl.setAttribute('aria-haspopup', 'menu');\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n private handleSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n // Allowed elements: pds-dropdown-menu-item, pds-dropdown-menu-separator, <a>, <button>\n // Raw <a> and <button> elements are allowed for edge cases requiring native browser/framework\n // behavior (e.g., Rails UJS, Turbo) that cannot work through Shadow DOM.\n const allowedTags = ['pds-dropdown-menu-item', 'pds-dropdown-menu-separator', 'a', 'button'];\n const invalidElements = assignedElements.filter(\n el => !allowedTags.includes(el.tagName.toLowerCase())\n );\n\n if (invalidElements.length > 0) {\n const invalidTags = invalidElements.map(el => el.tagName.toLowerCase()).join(', ');\n console.warn(\n `pds-dropdown-menu: Unexpected element(s) found: ${invalidTags}. ` +\n `Expected: ${allowedTags.join(', ')}`\n );\n }\n\n // Store all focusable items for keyboard navigation\n // This includes pds-dropdown-menu-item components and raw <a>/<button> elements\n this.menuItems = assignedElements.filter(el => {\n const tag = el.tagName.toLowerCase();\n return tag === 'pds-dropdown-menu-item' || tag === 'a' || tag === 'button';\n }) as MenuItemElement[];\n }\n\n // Toggle dropdown open/closed\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n // Open the dropdown and position it\n private openDropdown = () => {\n const updatePosition = () => {\n computePosition(this.triggerEl, this.panelEl as HTMLElement, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: [offset(6), flip(), shift({padding: 5})],\n }).then(({ x, y }) => {\n Object.assign(this.panelEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n this.cleanupAutoUpdate = autoUpdate(\n this.triggerEl,\n this.panelEl as HTMLElement,\n updatePosition\n );\n\n this.host.shadowRoot?.querySelector('pds-box').classList.remove('is-hidden');\n this.isOpen = true;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Close the dropdown\n private closeDropdown = () => {\n this.host.shadowRoot?.querySelector('pds-box').classList.add('is-hidden');\n this.isOpen = false;\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'false');\n\n // Reset focus index\n this.currentFocusIndex = -1;\n\n // Return focus to trigger\n this.triggerEl.focus();\n }\n\n // Handle click on the trigger element\n private handleClick = () => {\n this.toggleDropdown();\n }\n\n // Check if a menu item is disabled (handles both component and raw elements)\n private isItemDisabled(item: MenuItemElement): boolean {\n const tagName = item.tagName.toLowerCase();\n\n if (tagName === 'pds-dropdown-menu-item') {\n return (item as HTMLPdsDropdownMenuItemElement).disabled;\n } else if (tagName === 'button') {\n return (item as HTMLButtonElement).disabled;\n } else if (tagName === 'a') {\n return item.getAttribute('aria-disabled') === 'true';\n }\n return false;\n }\n\n // Get the index of the currently focused menu item\n private getFocusedItemIndex(): number {\n const activeElement = document.activeElement as MenuItemElement | null;\n if (!activeElement) return -1;\n\n // For raw elements, check direct match\n // For pds-dropdown-menu-item, also check if the active element is inside the shadow root\n return this.menuItems.findIndex(item => {\n if (item === activeElement) return true;\n\n // Check if activeElement is inside the item's shadow root (for pds-dropdown-menu-item)\n if (item.tagName.toLowerCase() === 'pds-dropdown-menu-item') {\n const shadowRoot = (item as HTMLPdsDropdownMenuItemElement).shadowRoot;\n if (shadowRoot?.contains(activeElement)) return true;\n }\n\n return false;\n });\n }\n\n // Focus a specific menu item by index\n private focusItemByIndex(index: number): void {\n if (index >= 0 && index < this.menuItems.length) {\n this.currentFocusIndex = index;\n const item = this.menuItems[index];\n const tagName = item.tagName.toLowerCase();\n\n if (tagName === 'pds-dropdown-menu-item') {\n // For pds-dropdown-menu-item, focus the inner element\n const menuItem = item as HTMLPdsDropdownMenuItemElement;\n const innerButton = menuItem.shadowRoot?.querySelector('button');\n const innerLink = menuItem.shadowRoot?.querySelector('pds-link')?.shadowRoot?.querySelector('a')\n || menuItem.shadowRoot?.querySelector('a');\n\n if (innerButton) {\n innerButton.focus();\n } else if (innerLink) {\n innerLink.focus();\n } else {\n // Fallback to focusing the host\n menuItem.focus();\n }\n } else {\n // For raw <a> or <button> elements, focus directly\n (item as HTMLElement).focus();\n }\n }\n }\n\n // Focus the next menu item\n private focusNextItem(): void {\n let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[nextIndex])) {\n nextIndex = (nextIndex + 1) % this.menuItems.length;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(nextIndex);\n }\n }\n\n // Focus the previous menu item\n private focusPreviousItem(): void {\n let prevIndex = this.currentFocusIndex <= 0\n ? this.menuItems.length - 1\n : this.currentFocusIndex - 1;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[prevIndex])) {\n prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(prevIndex);\n }\n }\n\n // Handle keyboard events for the dropdown\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem();\n break;\n\n case 'Home':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find first non-disabled item\n let firstIndex = 0;\n while (firstIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstIndex])) {\n firstIndex++;\n }\n if (firstIndex < this.menuItems.length) {\n this.focusItemByIndex(firstIndex);\n }\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find last non-disabled item\n let lastIndex = this.menuItems.length - 1;\n while (lastIndex >= 0 && this.isItemDisabled(this.menuItems[lastIndex])) {\n lastIndex--;\n }\n if (lastIndex >= 0) {\n this.focusItemByIndex(lastIndex);\n }\n }\n break;\n\n case 'Tab':\n if (event.shiftKey) {\n // Let Shift+Tab navigate naturally from first item to trigger\n // For all other items, move to previous item\n const currentIndex = this.getFocusedItemIndex();\n\n if (currentIndex > 0) {\n // If not on first item, prevent default and go to previous item\n event.preventDefault();\n this.focusPreviousItem(); // Use our method that skips disabled items\n }\n // If on first item or no item, let natural tab order move back to trigger\n } else {\n // Forward Tab navigation\n const activeElement = document.activeElement;\n const isTriggerFocused = activeElement === this.triggerEl;\n const currentIndex = this.getFocusedItemIndex();\n\n if (isTriggerFocused && this.menuItems.length > 0) {\n // If trigger is focused, move to first non-disabled menu item\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex === -1 && this.menuItems.length > 0) {\n // If no menu item is focused, focus the first non-disabled one\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex !== -1) {\n // Use our method that skips disabled items\n event.preventDefault();\n this.focusNextItem();\n }\n }\n break;\n }\n }\n\n // Handle clicks outside the dropdown to close it\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (this.isOpen && !this.host.contains(event.target as Node) && event.target !== this.triggerEl) {\n this.closeDropdown();\n }\n }\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <slot\n name=\"trigger\"\n onSlotchange={this.handleTriggerSlotChange}\n ></slot>\n <pds-box\n border-radius=\"sm\"\n display=\"flex\"\n direction=\"column\"\n class=\"pds-dropdown-menu--panel is-hidden\"\n shadow=\"100\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n part=\"menu-panel\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </pds-box>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=(e,t)=>`${e}__${t}-message`;const t=(t,r,n)=>{if(!n)return;let s=e(t,"helper");if(r)s=e(t,"error");return s};const r=(e,t)=>{if(!e||!t)return;if(t.required===true){e.checkValidity()===false?t.invalid=true:t.invalid=false}};function n(e,t){Object.defineProperty(e,"type",{get:typeof t==="function"?t:()=>t,enumerable:true,configurable:false})}export{t as a,n as e,r as i,e as m};
2
- //# sourceMappingURL=p-DwjNklzi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-EnxcYko8.system.js","sources":["src/components/pds-multiselect/pds-multiselect.scss?tag=pds-multiselect&encapsulation=shadow","src/components/pds-multiselect/pds-multiselect.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([aria-disabled=\"true\"]) {\n .pds-multiselect__trigger {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n .pds-multiselect__icon {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect {\n position: relative;\n}\n\n.pds-multiselect__label {\n color: var(--pine-color-text-label);\n display: block;\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-multiselect__wrapper {\n position: relative;\n}\n\n.pds-multiselect__trigger {\n align-items: center;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body);\n gap: var(--pine-dimension-xs);\n justify-content: space-between;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pine-dimension-550);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n position: relative;\n text-align: start;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n width: 100%;\n\n &:hover:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-hover);\n }\n\n &:focus:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.pds-multiselect__trigger--open {\n border-color: var(--pine-color-border-active);\n }\n\n &.pds-multiselect__trigger--invalid {\n background-color: var(--pine-color-red-050);\n border-color: var(--pine-color-border-danger);\n\n &:focus {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n &.pds-multiselect__trigger--disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n}\n\n.pds-multiselect__trigger-text {\n color: var(--pine-color-text-strong);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.pds-multiselect__trigger-text--placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n .pds-multiselect__trigger--disabled & {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect__icon {\n color: var(--pine-color-icon);\n flex-shrink: var(--pine-dimension-none);\n}\n\n.pds-multiselect__panel {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-125);\n box-shadow: var(--pine-box-shadow);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n position: absolute;\n z-index: var(--pine-z-index-raised);\n}\n\n.pds-multiselect__search {\n align-items: center;\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n display: flex;\n gap: var(--pine-dimension-xs);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__search-input {\n background: transparent;\n border: var(--pine-dimension-none);\n color: var(--pine-color-text-strong);\n flex: 1;\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-width: var(--pine-dimension-none);\n outline: none;\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n}\n\n.pds-multiselect__selected-section {\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__selected-list {\n list-style: none;\n margin: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n}\n\n.pds-multiselect__selected-item {\n color: var(--pine-color-text-strong);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n overflow: hidden;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-multiselect__listbox {\n background: transparent;\n border: var(--pine-dimension-none);\n box-sizing: border-box;\n list-style: none;\n margin: var(--pine-dimension-none);\n overflow-y: auto;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__option {\n align-items: center;\n background: transparent;\n border-radius: var(--pine-dimension-xs);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n transition: background 0.15s;\n\n // Prevent checkbox label from triggering double events\n pds-checkbox {\n pointer-events: none;\n width: 100%;\n }\n\n &:hover,\n &.pds-multiselect__option--highlighted {\n background: var(--pine-color-background-muted);\n }\n\n &:focus-visible {\n outline: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__create-option {\n color: var(--pine-color-text-strong);\n width: 100%;\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__empty,\n.pds-multiselect__loading {\n align-items: center;\n color: var(--pine-color-text-muted);\n display: flex;\n font: var(--pine-typography-body);\n justify-content: center;\n padding: var(--pine-dimension-sm);\n}\n\n.pds-multiselect__load-more {\n align-items: center;\n display: flex;\n justify-content: center;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__helper {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n}\n\n.pds-multiselect__error {\n align-items: flex-start;\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n\n pds-icon {\n flex-shrink: var(--pine-dimension-none);\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.visually-hidden {\n border: var(--pine-dimension-none);\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: var(--pine-dimension-none);\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { computePosition, flip, offset, shift, size, autoUpdate } from '@floating-ui/dom';\nimport { debounceEvent } from '@utils/utils';\nimport { messageId, assignDescription } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\nimport type {\n MultiselectOption,\n MultiselectChangeEventDetail,\n MultiselectSearchEventDetail,\n MultiselectLoadOptionsEventDetail,\n MultiselectCreateEventDetail,\n AsyncResponse,\n CreateResponse,\n} from './multiselect-interface';\n\n/**\n * @slot (default) - Static option elements for the multiselect\n * @slot empty - Custom empty state message when no options match\n * @slot loading - Custom loading indicator\n */\n@Component({\n tag: 'pds-multiselect',\n styleUrl: 'pds-multiselect.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class PdsMultiselect {\n private triggerEl?: HTMLButtonElement;\n private searchInputEl?: HTMLInputElement;\n private containerEl?: HTMLElement;\n private listboxEl?: HTMLElement;\n private panelEl?: HTMLElement;\n private internals?: ElementInternals;\n private abortController?: AbortController;\n private fetchDebounceTimer?: number;\n private fetchTimeoutTimer?: number;\n private observer?: MutationObserver;\n private cleanupAutoUpdate?: () => void;\n\n @Element() el!: HTMLPdsMultiselectElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Text to be displayed as the multiselect label.\n */\n @Prop() label?: string;\n\n /**\n * Placeholder text for the input field.\n */\n @Prop() placeholder?: string = 'Select...';\n\n /**\n * Specifies the name. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Array of selected option values.\n */\n @Prop({ mutable: true }) value: string[] = [];\n\n /**\n * Determines whether or not the multiselect is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * URL endpoint for async data fetching.\n */\n @Prop() asyncUrl?: string;\n\n /**\n * HTTP method for async requests.\n */\n @Prop() asyncMethod: 'GET' | 'POST' = 'GET';\n\n /**\n * Debounce delay in milliseconds for search/fetch.\n */\n @Prop() debounce: number = 300;\n\n /**\n * Timeout in milliseconds for async fetch requests.\n */\n @Prop() fetchTimeout: number = 30000;\n\n /**\n * Maximum number of selections allowed.\n */\n @Prop() maxSelections?: number;\n\n /**\n * Maximum height of the dropdown before scrolling.\n */\n @Prop() maxHeight: string = '300px';\n\n /**\n * Width of the trigger button (and reference for dropdown positioning).\n */\n @Prop() triggerWidth: string = '100%';\n\n /**\n * Minimum width of the dropdown panel.\n */\n @Prop() minWidth: string = '250px';\n\n /**\n * Width of the dropdown panel. Defaults to the trigger width.\n */\n @Prop() panelWidth?: string;\n\n /**\n * Visually hides the label but keeps it accessible.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Helper message to display below the input.\n */\n @Prop() helperMessage?: string;\n\n /**\n * If true, the multiselect is in an invalid state.\n */\n @Prop() invalid?: boolean;\n\n /**\n * If true, the multiselect is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the component is currently loading async options.\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Options provided externally (for consumer-managed async).\n */\n @Prop() options?: MultiselectOption[];\n\n /**\n * Function to format async results. Receives raw API response item.\n */\n @Prop() formatResult?: (item: unknown) => MultiselectOption;\n\n /**\n * URL endpoint for creating new options. When set, shows \"Add\" option when no matches found.\n */\n @Prop() createUrl?: string;\n\n /**\n * CSRF token for authenticated requests. If not provided, attempts to read from meta tag.\n */\n @Prop() csrfToken?: string;\n\n /**\n * CSRF header name for authenticated requests. Defaults to `X-CSRF-Token`.\n */\n @Prop() csrfHeaderName?: string = 'X-CSRF-Token';\n\n // Internal state\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() highlightedIndex: number = -1;\n @State() internalOptions: MultiselectOption[] = [];\n @State() selectedItems: MultiselectOption[] = [];\n @State() currentPage: number = 1;\n @State() hasMore: boolean = false;\n @State() creating: boolean = false;\n\n // Flag to prevent focusout from closing during open transition\n private isOpening: boolean = false;\n // Flag to track if initial async fetch has been triggered (prevents double fetch)\n private initialAsyncFetchTriggered: boolean = false;\n // Flag to track if value changed during loading and needs resolution after fetch completes\n private pendingUnresolvedFetch: boolean = false;\n\n /**\n * Emitted when selection changes.\n */\n @Event() pdsMultiselectChange!: EventEmitter<MultiselectChangeEventDetail>;\n\n /**\n * Emitted on search input (for consumer-managed async).\n */\n @Event() pdsMultiselectSearch!: EventEmitter<MultiselectSearchEventDetail>;\n\n /**\n * Emitted to request more options (pagination).\n */\n @Event() pdsMultiselectLoadOptions!: EventEmitter<MultiselectLoadOptionsEventDetail>;\n\n /**\n * Emitted when a new option is created.\n */\n @Event() pdsMultiselectCreate!: EventEmitter<MultiselectCreateEventDetail>;\n\n private originalSearchEmitter?: EventEmitter<MultiselectSearchEventDetail>;\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentWillLoad() {\n this.originalSearchEmitter = this.pdsMultiselectSearch;\n this.syncSelectedItems();\n }\n\n componentDidLoad() {\n this.setupDebounce();\n this.setupMutationObserver();\n this.setupSlotChangeListener();\n this.updateFormValue();\n\n // Ensure preselected values sync after DOM is fully ready\n // This handles cases where slot content loads after initial render (e.g., in docs/MDX)\n requestAnimationFrame(() => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n\n // If we have preselected values and asyncUrl, fetch options to resolve them\n // This ensures the trigger shows \"X items\" instead of placeholder on initial render\n if (this.asyncUrl && this.ensureValueArray().length > 0) {\n this.initialAsyncFetchTriggered = true;\n this.fetchOptions('', 1);\n }\n }\n\n private setupSlotChangeListener() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n // Also call it immediately in case content is already slotted\n this.updateOptionsFromSlot();\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.cleanupAutoUpdate?.();\n this.clearAsyncFetchState();\n }\n\n @Watch('debounce')\n protected setupDebounce() {\n const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;\n this.pdsMultiselectSearch = debounce === undefined\n ? originalSearchEmitter ?? pdsMultiselectSearch\n : debounceEvent(pdsMultiselectSearch, debounce);\n }\n\n @Watch('value')\n protected valueChanged(newValue: string[] | string) {\n // Handle JSON string values (from HTML attributes)\n if (typeof newValue === 'string') {\n try {\n const parsed = JSON.parse(newValue);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return; // The assignment will trigger this watcher again with the array\n }\n } catch {\n // Not valid JSON, treat as single value\n this.value = newValue ? [newValue] : [];\n return;\n }\n }\n this.syncSelectedItems();\n this.updateFormValue();\n\n // If using asyncUrl and some values couldn't be resolved, fetch options\n // This handles programmatic value changes where the options aren't loaded yet\n if (this.asyncUrl) {\n const valueArray = this.ensureValueArray();\n const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;\n if (hasUnresolvedValues) {\n if (this.loading) {\n // Mark that we need to re-check after current fetch completes\n this.pendingUnresolvedFetch = true;\n } else {\n this.fetchOptions('', 1);\n }\n }\n }\n }\n\n @Watch('options')\n protected optionsChanged() {\n if (this.options) {\n this.internalOptions = [...this.options];\n }\n }\n\n @Watch('internalOptions')\n protected internalOptionsChanged() {\n // Re-sync selected items when options become available\n // This handles the case where value is set before options are loaded (e.g., from slot)\n this.syncSelectedItems();\n }\n\n /**\n * Sets focus on the trigger button.\n */\n @Method()\n async setFocus() {\n this.triggerEl?.focus();\n }\n\n /**\n * Handle global keyboard events for accessibility.\n * Closes dropdown on Escape key press regardless of focus location.\n */\n @Listen('keydown', { target: 'window' })\n handleWindowKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeDropdown();\n this.triggerEl?.focus();\n }\n }\n\n private setupMutationObserver() {\n this.observer = new MutationObserver(() => {\n this.updateOptionsFromSlot();\n });\n\n this.observer.observe(this.el, {\n childList: true,\n subtree: true,\n });\n }\n\n private updateOptionsFromSlot() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (!slot) return;\n\n const options = slot.assignedElements({ flatten: true })\n .filter((el): el is HTMLOptionElement => el.tagName === 'OPTION')\n .map(opt => ({\n id: opt.value,\n text: opt.textContent || opt.value,\n }));\n\n // Only update if we actually found options AND we're not using async/external options\n // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)\n if (options.length > 0 && !this.asyncUrl && !this.options) {\n this.internalOptions = options;\n }\n }\n\n private clearAsyncFetchState() {\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n this.fetchDebounceTimer = undefined;\n }\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n this.abortController?.abort();\n this.abortController = undefined;\n }\n\n private debouncedFetchAsyncOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n }\n\n const delay = Math.max(0, this.debounce ?? 0);\n this.fetchDebounceTimer = window.setTimeout(() => {\n this.fetchDebounceTimer = undefined;\n this.fetchOptions(query, page);\n }, delay);\n }\n\n private syncSelectedItems() {\n // Ensure value is an array (may be string from HTML attribute)\n const valueArray = this.ensureValueArray();\n const allOptions = this.getAllOptions();\n\n // Map values to options, preserving existing selectedItems for values not yet in options\n const newSelectedItems: MultiselectOption[] = [];\n const existingItemsMap = new Map(this.selectedItems.map(item => [String(item.id), item]));\n\n valueArray.forEach(val => {\n // First try to find in available options\n const option = allOptions.find(opt => String(opt.id) === String(val));\n\n if (option) {\n newSelectedItems.push(option);\n } else if (existingItemsMap.has(String(val))) {\n // If not in options but exists in current selectedItems, preserve it\n // This handles the case where async data hasn't loaded yet or newly created items\n newSelectedItems.push(existingItemsMap.get(String(val))!);\n }\n // Note: We don't create placeholders for values without matching options.\n // This ensures selectedItems remains empty until options are actually loaded,\n // which matches the expected behavior for preselected values.\n });\n\n this.selectedItems = newSelectedItems;\n }\n\n private ensureValueArray(): string[] {\n // Handle JSON string values passed via HTML attribute\n if (typeof this.value === 'string') {\n try {\n const parsed = JSON.parse(this.value as unknown as string);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return parsed;\n }\n } catch {\n // Not valid JSON, treat as single value\n const singleValue = this.value as unknown as string;\n this.value = singleValue ? [singleValue] : [];\n return this.value;\n }\n }\n return Array.isArray(this.value) ? this.value : [];\n }\n\n private getAllOptions(): MultiselectOption[] {\n return this.options || this.internalOptions;\n }\n\n private getFilteredOptions(): MultiselectOption[] {\n const allOptions = this.getAllOptions();\n const query = this.searchQuery.toLowerCase();\n\n const filtered = allOptions.filter(opt => {\n // Filter by search query only - don't filter out selected items\n if (query) {\n return opt.text.toLowerCase().includes(query);\n }\n return true;\n });\n\n // Add create option if enabled and no matches found\n if (this.createUrl && this.searchQuery.trim() && filtered.length === 0) {\n return [{\n id: '__create__',\n text: this.searchQuery.trim(),\n isCreateOption: true,\n }];\n }\n\n return filtered;\n }\n\n private updateFormValue() {\n if (this.internals?.setFormValue) {\n // Ensure value is an array before iterating\n const valueArray = this.ensureValueArray();\n\n // Submit as multiple values with same name (native select multiple behavior)\n const formData = new FormData();\n valueArray.forEach(val => {\n if (this.name) {\n formData.append(this.name, val);\n }\n });\n this.internals.setFormValue(formData);\n\n // Update validity state for required validation\n if (this.required && valueArray.length === 0) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please select at least one option.',\n this.triggerEl\n );\n } else {\n this.internals.setValidity({});\n }\n }\n }\n\n private getCsrfToken(): string | null {\n // Use provided token if available\n if (this.csrfToken) {\n return this.csrfToken;\n }\n\n // Try to read from meta tag\n const metaTag = document.querySelector('meta[name=\"csrf-token\"]') as HTMLMetaElement;\n return metaTag?.content || null;\n }\n\n private async fetchOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n // Abort any pending request and clear existing timeout\n this.abortController?.abort();\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n this.abortController = new AbortController();\n this.loading = true;\n\n // Set up timeout for fetch request\n this.fetchTimeoutTimer = window.setTimeout(() => {\n this.abortController?.abort();\n this.fetchTimeoutTimer = undefined;\n }, this.fetchTimeout);\n\n try {\n // Guard against malformed asyncUrl\n let url: URL;\n try {\n url = new URL(this.asyncUrl, window.location.origin);\n } catch (urlError) {\n throw new TypeError(`Invalid asyncUrl: ${this.asyncUrl}`);\n }\n\n if (this.asyncMethod === 'GET') {\n url.searchParams.set('search', query);\n url.searchParams.set('page', String(page));\n }\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n const headerName = this.csrfHeaderName || 'X-CSRF-Token';\n headers[headerName] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: this.asyncMethod,\n signal: this.abortController.signal,\n headers,\n ...(this.asyncMethod === 'POST' && {\n body: JSON.stringify({ search: query, page }),\n }),\n });\n\n // Clear timeout on successful response\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if (!response.ok) throw new Error('Failed to fetch options');\n\n const data: AsyncResponse = await response.json();\n\n const formattedResults = data.results.map(item => {\n // If formatResult is provided, use it\n if (this.formatResult) {\n return this.formatResult(item);\n }\n\n // Defensive check: ensure item is an object before spreading\n if (typeof item === 'object' && item !== null) {\n return {\n id: item.id,\n text: item.text,\n ...item,\n } as MultiselectOption;\n }\n\n // Handle primitives by converting to safe shape\n return {\n id: String(item),\n text: String(item),\n } as MultiselectOption;\n });\n\n if (page === 1) {\n this.internalOptions = formattedResults;\n } else {\n this.internalOptions = [...this.internalOptions, ...formattedResults];\n }\n\n this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;\n this.currentPage = page;\n\n } catch (error) {\n // Clear timeout on error\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if ((error as Error).name !== 'AbortError') {\n console.error('PdsMultiselect: Failed to fetch options', error);\n }\n } finally {\n this.loading = false;\n\n // Check if value changed during loading and still has unresolved values\n if (this.pendingUnresolvedFetch) {\n this.pendingUnresolvedFetch = false;\n const valueArray = this.ensureValueArray();\n const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;\n if (hasUnresolvedValues) {\n this.fetchOptions('', 1);\n }\n }\n }\n }\n\n private async createOption(query: string) {\n if (!this.createUrl || !query.trim()) return;\n\n // Reentrancy guard: prevent duplicate POSTs if creation is already in-flight\n if (this.creating) return;\n\n this.creating = true;\n\n try {\n const url = new URL(this.createUrl, window.location.origin);\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n const headerName = this.csrfHeaderName || 'X-CSRF-Token';\n headers[headerName] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: 'POST',\n headers,\n body: JSON.stringify({ text: query.trim() }),\n });\n\n if (!response.ok) throw new Error('Failed to create option');\n\n const data: CreateResponse = await response.json();\n\n const newOption: MultiselectOption = {\n id: data.id,\n text: data.text,\n ...data,\n };\n\n // Add to internal options first\n this.internalOptions = [...this.internalOptions, newOption];\n\n // Select the new option\n this.value = [...this.value, String(newOption.id)];\n\n // Sync selected items to update display with new option\n this.syncSelectedItems();\n\n // Emit create event\n this.pdsMultiselectCreate.emit({\n query: query.trim(),\n newOption,\n });\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n // Clear search and keep dropdown open\n this.searchQuery = '';\n this.highlightedIndex = -1;\n\n // Focus back on search input\n requestAnimationFrame(() => {\n this.searchInputEl?.focus();\n });\n\n } catch (error) {\n console.error('PdsMultiselect: Failed to create option', error);\n } finally {\n this.creating = false;\n }\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n\n if (this.isOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n }\n break;\n }\n };\n\n private handleSearchInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n this.highlightedIndex = -1;\n\n // Emit search event for consumer-managed async\n this.pdsMultiselectSearch.emit({ query: this.searchQuery });\n\n // Fetch from async URL if configured\n if (this.asyncUrl) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n };\n\n private handleSearchInputKeyDown = (e: KeyboardEvent) => {\n const filteredOptions = this.getFilteredOptions();\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);\n this.scrollOptionIntoView();\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n this.scrollOptionIntoView();\n break;\n\n case 'Enter':\n e.preventDefault();\n if (this.highlightedIndex >= 0) {\n const option = filteredOptions[this.highlightedIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n break;\n\n // Escape is handled by the global @Listen('keydown') handler\n\n case 'Tab':\n this.closeDropdown();\n break;\n }\n };\n\n private handleContainerFocusOut = () => {\n // Use setTimeout to delay the check - this allows click events and focus transitions to complete\n // before we decide to close the dropdown\n setTimeout(() => {\n // Don't close if we're in the middle of opening or already closed\n if (!this.isOpen || this.isOpening) return;\n\n const activeElement = document.activeElement;\n\n // Check if focus is within our component's shadow root\n const isInShadowRoot = this.el.shadowRoot?.contains(activeElement);\n\n // Also check if focus is on the host element itself\n const isOnHost = activeElement === this.el;\n\n if (!isInShadowRoot && !isOnHost) {\n this.closeDropdown();\n }\n }, 0);\n };\n\n private openDropdown() {\n if (this.disabled) return;\n\n this.isOpening = true;\n this.isOpen = true;\n this.highlightedIndex = -1;\n\n // Trigger initial fetch if async (skip if already fetching from componentDidLoad)\n if (this.asyncUrl && this.internalOptions.length === 0 && !this.initialAsyncFetchTriggered) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n // Reset the flag so subsequent opens can fetch if needed\n this.initialAsyncFetchTriggered = false;\n\n requestAnimationFrame(() => {\n this.positionDropdown();\n // Focus the search input after the panel is positioned\n this.searchInputEl?.focus();\n // Clear the opening flag after focus has moved\n setTimeout(() => {\n this.isOpening = false;\n }, 50);\n });\n }\n\n private closeDropdown() {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchQuery = '';\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n\n private positionDropdown() {\n if (!this.containerEl || !this.panelEl) return;\n const referenceEl = this.triggerEl || this.containerEl;\n\n const { minWidth, panelWidth } = this;\n\n const updatePosition = () => {\n computePosition(referenceEl!, this.panelEl!, {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n offset(12),\n flip(),\n shift({ padding: 8 }),\n size({\n apply: ({ rects, elements }) => {\n Object.assign(elements.floating.style, {\n width: panelWidth ?? `${rects.reference.width}px`,\n minWidth,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n if (this.panelEl) {\n this.panelEl.style.left = `${x}px`;\n this.panelEl.style.top = `${y}px`;\n }\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n const cleanupAutoUpdate = autoUpdate(\n referenceEl!,\n this.panelEl,\n updatePosition\n );\n this.cleanupAutoUpdate = () => {\n cleanupAutoUpdate();\n this.clearAsyncFetchState();\n };\n }\n\n private scrollOptionIntoView() {\n requestAnimationFrame(() => {\n const highlighted = this.listboxEl?.querySelector(`[data-index=\"${this.highlightedIndex}\"]`) as HTMLElement;\n highlighted?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n });\n }\n\n private toggleOption(option: MultiselectOption) {\n // Handle create option\n if (option.isCreateOption) {\n // Prevent multiple create calls while one is in-flight\n if (!this.creating) {\n this.createOption(this.searchQuery);\n }\n return;\n }\n\n const isSelected = this.value.includes(String(option.id));\n\n if (isSelected) {\n // Remove from selection\n this.value = this.value.filter(v => v !== String(option.id));\n } else {\n // Add to selection\n if (this.maxSelections && this.value.length >= this.maxSelections) {\n return;\n }\n\n this.value = [...this.value, String(option.id)];\n }\n\n // Sync selected items to ensure no duplicates and accurate state\n this.syncSelectedItems();\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n // Keep focus on search input, don't close dropdown\n this.searchInputEl?.focus();\n }\n\n private selectOption(option: MultiselectOption) {\n // For keyboard navigation - toggle the option\n this.toggleOption(option);\n }\n\n private handleOptionMouseDown = (option: MultiselectOption) => (e: MouseEvent) => {\n e.preventDefault(); // Prevent focus change\n this.toggleOption(option);\n };\n\n private handleOptionMouseEnter = (index: number) => () => {\n this.highlightedIndex = index;\n };\n\n\n private handleScroll = (e: Event) => {\n if (!this.asyncUrl || !this.hasMore || this.loading) return;\n\n const target = e.target as HTMLElement;\n const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;\n\n // Load more when near bottom (within 50px)\n if (scrollBottom < 50) {\n this.pdsMultiselectLoadOptions.emit({\n query: this.searchQuery,\n page: this.currentPage + 1,\n });\n this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);\n }\n };\n\n\n private renderSelectedItemsList() {\n if (this.selectedItems.length === 0) return null;\n\n return (\n <div class=\"pds-multiselect__selected-section\">\n <ul class=\"pds-multiselect__selected-list\" role=\"list\">\n {this.selectedItems.map(item => (\n <li key={String(item.id)} class=\"pds-multiselect__selected-item\">\n {item.text}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n\n private renderDropdown() {\n if (!this.isOpen) return null;\n\n const filteredOptions = this.getFilteredOptions();\n const valueArray = this.ensureValueArray();\n const hasSlottedEmpty = !!this.el.querySelector('[slot=\"empty\"]');\n const hasSlottedLoading = !!this.el.querySelector('[slot=\"loading\"]');\n\n return (\n <div\n class=\"pds-multiselect__panel\"\n ref={el => (this.panelEl = el)}\n style={{ minWidth: this.minWidth }}\n >\n {/* Search input */}\n <div class=\"pds-multiselect__search\">\n <pds-icon name=\"search\" size=\"small\" />\n <input\n ref={el => (this.searchInputEl = el)}\n type=\"text\"\n class=\"pds-multiselect__search-input\"\n placeholder=\"Find...\"\n value={this.searchQuery}\n aria-label=\"Search options\"\n aria-controls={`${this.componentId}-listbox`}\n aria-activedescendant={this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n onInput={this.handleSearchInputChange}\n onKeyDown={this.handleSearchInputKeyDown}\n />\n </div>\n\n {/* Selected items section */}\n {this.renderSelectedItemsList()}\n\n {/* Options list */}\n <ul\n class=\"pds-multiselect__listbox\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={this.label || 'Options'}\n id={`${this.componentId}-listbox`}\n ref={el => (this.listboxEl = el)}\n style={{ maxHeight: this.maxHeight }}\n onScroll={this.handleScroll}\n >\n {this.loading && (\n <li class=\"pds-multiselect__loading\" role=\"presentation\">\n {hasSlottedLoading ? (\n <slot name=\"loading\" />\n ) : (\n <pds-loader size=\"small\" />\n )}\n </li>\n )}\n\n {!this.loading && filteredOptions.length === 0 && (\n <li class=\"pds-multiselect__empty\" role=\"presentation\">\n {hasSlottedEmpty ? (\n <slot name=\"empty\" />\n ) : (\n <span>No options found</span>\n )}\n </li>\n )}\n\n {filteredOptions.map((option, index) => {\n const isSelected = valueArray.includes(String(option.id));\n const isCreateOption = option.isCreateOption;\n const isHighlighted = index === this.highlightedIndex && !isCreateOption;\n const optionId = `${this.componentId}-option-${index}`;\n const isCreateDisabled = isCreateOption && this.creating;\n\n return (\n <li\n key={String(option.id)}\n id={optionId}\n class={{\n 'pds-multiselect__option': true,\n 'pds-multiselect__option--highlighted': isHighlighted,\n 'pds-multiselect__option--selected': isSelected,\n 'pds-multiselect__option--create': isCreateOption,\n 'pds-multiselect__option--disabled': isCreateDisabled,\n }}\n role=\"option\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-disabled={isCreateDisabled ? 'true' : undefined}\n aria-label={isCreateOption ? `Create new tag: ${option.text}` : undefined}\n data-index={index}\n onMouseDown={this.handleOptionMouseDown(option)}\n onMouseEnter={this.handleOptionMouseEnter(index)}\n >\n {isCreateOption ? (\n <pds-box class=\"pds-multiselect__create-option\" align-items=\"center\" gap=\"xs\">\n <pds-icon name=\"add\" size=\"small\" />\n <pds-text>Add \"{option.text}\"</pds-text>\n </pds-box>\n ) : (\n <pds-checkbox\n componentId={`${this.componentId}-checkbox-${index}`}\n checked={isSelected}\n label={option.text}\n style={{ pointerEvents: 'none' }}\n />\n )}\n </li>\n );\n })}\n\n {this.hasMore && !this.loading && (\n <li class=\"pds-multiselect__load-more\" role=\"presentation\">\n <pds-loader size=\"small\" />\n </li>\n )}\n </ul>\n </div>\n );\n }\n\n private getTriggerText(): string {\n const count = this.selectedItems.length;\n if (count === 0) {\n return this.placeholder || 'Select...';\n }\n return `${count} item${count === 1 ? '' : 's'}`;\n }\n\n render() {\n const hasSelections = this.selectedItems.length > 0;\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n <div class=\"pds-multiselect\">\n {this.label && (\n <label\n htmlFor={this.componentId}\n class={{\n 'pds-multiselect__label': true,\n 'visually-hidden': this.hideLabel,\n }}\n >\n {this.label}\n </label>\n )}\n\n <div\n class=\"pds-multiselect__wrapper\"\n ref={el => (this.containerEl = el)}\n onFocusout={this.handleContainerFocusOut}\n style={{ width: this.triggerWidth }}\n >\n <button\n ref={el => (this.triggerEl = el)}\n type=\"button\"\n class={{\n 'pds-multiselect__trigger': true,\n 'pds-multiselect__trigger--open': this.isOpen,\n 'pds-multiselect__trigger--disabled': this.disabled,\n 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,\n 'pds-multiselect__trigger--has-value': hasSelections,\n }}\n id={this.componentId}\n disabled={this.disabled}\n aria-required={this.required ? 'true' : undefined}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-describedby={assignDescription(\n this.componentId,\n this.invalid || !!this.errorMessage,\n this.errorMessage || this.helperMessage\n )}\n aria-invalid={this.invalid || !!this.errorMessage ? 'true' : undefined}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n >\n <span class={{\n 'pds-multiselect__trigger-text': true,\n 'pds-multiselect__trigger-text--placeholder': !hasSelections,\n }}>\n {this.getTriggerText()}\n </span>\n <pds-icon class=\"pds-multiselect__icon\" icon={enlarge} />\n </button>\n\n {this.renderDropdown()}\n </div>\n\n {this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (\n <p class=\"pds-multiselect__helper\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n )}\n\n {this.errorMessage && (\n <p class=\"pds-multiselect__error\" id={messageId(this.componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n )}\n\n {/* Hidden slot for static options */}\n <div style={{ display: 'none' }}>\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(e,i,t,n){function s(e){return e instanceof t?e:new t((function(i){i(e)}))}return new(t||(t=Promise))((function(t,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n["throw"](e))}catch(e){r(e)}}function l(e){e.done?t(e.value):s(e.value).then(o,a)}l((n=n.apply(e,i||[])).next())}))};var __generator=this&&this.__generator||function(e,i){var t={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},n,s,r,o=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return o.next=a(0),o["throw"]=a(1),o["return"]=a(2),typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(e){return function(i){return l([e,i])}}function l(a){if(n)throw new TypeError("Generator is already executing.");while(o&&(o=0,a[0]&&(t=0)),t)try{if(n=1,s&&(r=a[0]&2?s["return"]:a[0]?s["throw"]||((r=s["return"])&&r.call(s),0):s.next)&&!(r=r.call(s,a[1])).done)return r;if(s=0,r)a=[a[0]&2,r.value];switch(a[0]){case 0:case 1:r=a;break;case 4:t.label++;return{value:a[1],done:false};case 5:t.label++;s=a[1];a=[0];continue;case 7:a=t.ops.pop();t.trys.pop();continue;default:if(!(r=t.trys,r=r.length>0&&r[r.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!r||a[1]>r[0]&&a[1]<r[3])){t.label=a[1];break}if(a[0]===6&&t.label<r[1]){t.label=r[1];r=a;break}if(r&&t.label<r[2]){t.label=r[2];t.ops.push(a);break}if(r[2])t.ops.pop();t.trys.pop();continue}a=i.call(e,t)}catch(e){a=[6,e];s=0}finally{n=r=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(e,i,t){if(t||arguments.length===2)for(var n=0,s=i.length,r;n<s;n++){if(r||!(n in i)){if(!r)r=Array.prototype.slice.call(i,0,n);r[n]=i[n]}}return e.concat(r||Array.prototype.slice.call(i))};System.register(["./p-5D9wXQuJ.system.js","./p-D2eS6fhD.system.js","./p-BG6uGRQj.system.js","./p-BHavepTY.system.js","./p-BxVkyfaO.system.js"],(function(e){"use strict";var i,t,n,s,r,o,a,l,d,c,u,h,p,f,v,m;return{setters:[function(e){i=e.r;t=e.c;n=e.h;s=e.H;r=e.a},function(e){o=e.a;a=e.c;l=e.o;d=e.f;c=e.s;u=e.b},function(e){h=e.d},function(e){p=e.a;f=e.m},function(e){v=e.e;m=e.b}],execute:function(){var b=":host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-550);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__panel{background:var(--pine-color-background-container);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover,.pds-multiselect__option.pds-multiselect__option--highlighted{background:var(--pine-color-background-muted)}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__create-option{color:var(--pine-color-text-strong);width:100%}.pds-multiselect__create-option pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}";var g=e("pds_multiselect",function(){function e(e){var n=this;i(this,e);this.pdsMultiselectChange=t(this,"pdsMultiselectChange");this.pdsMultiselectSearch=t(this,"pdsMultiselectSearch");this.pdsMultiselectLoadOptions=t(this,"pdsMultiselectLoadOptions");this.pdsMultiselectCreate=t(this,"pdsMultiselectCreate");this.placeholder="Select...";this.value=[];this.disabled=false;this.asyncMethod="GET";this.debounce=300;this.fetchTimeout=3e4;this.maxHeight="300px";this.triggerWidth="100%";this.minWidth="250px";this.hideLabel=false;this.required=false;this.loading=false;this.csrfHeaderName="X-CSRF-Token";this.isOpen=false;this.searchQuery="";this.highlightedIndex=-1;this.internalOptions=[];this.selectedItems=[];this.currentPage=1;this.hasMore=false;this.creating=false;this.isOpening=false;this.initialAsyncFetchTriggered=false;this.pendingUnresolvedFetch=false;this.handleTriggerClick=function(){if(n.disabled)return;if(n.isOpen){n.closeDropdown()}else{n.openDropdown()}};this.handleTriggerKeyDown=function(e){switch(e.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":e.preventDefault();if(!n.isOpen){n.openDropdown()}break}};this.handleSearchInputChange=function(e){var i=e.target;n.searchQuery=i.value;n.highlightedIndex=-1;n.pdsMultiselectSearch.emit({query:n.searchQuery});if(n.asyncUrl){n.debouncedFetchAsyncOptions(n.searchQuery,1)}};this.handleSearchInputKeyDown=function(e){var i=n.getFilteredOptions();switch(e.key){case"ArrowDown":e.preventDefault();n.highlightedIndex=Math.min(n.highlightedIndex+1,i.length-1);n.scrollOptionIntoView();break;case"ArrowUp":e.preventDefault();n.highlightedIndex=Math.max(n.highlightedIndex-1,0);n.scrollOptionIntoView();break;case"Enter":e.preventDefault();if(n.highlightedIndex>=0){var t=i[n.highlightedIndex];if(t){n.selectOption(t)}}break;case"Tab":n.closeDropdown();break}};this.handleContainerFocusOut=function(){setTimeout((function(){var e;if(!n.isOpen||n.isOpening)return;var i=document.activeElement;var t=(e=n.el.shadowRoot)===null||e===void 0?void 0:e.contains(i);var s=i===n.el;if(!t&&!s){n.closeDropdown()}}),0)};this.handleOptionMouseDown=function(e){return function(i){i.preventDefault();n.toggleOption(e)}};this.handleOptionMouseEnter=function(e){return function(){n.highlightedIndex=e}};this.handleScroll=function(e){if(!n.asyncUrl||!n.hasMore||n.loading)return;var i=e.target;var t=i.scrollHeight-i.scrollTop-i.clientHeight;if(t<50){n.pdsMultiselectLoadOptions.emit({query:n.searchQuery,page:n.currentPage+1});n.debouncedFetchAsyncOptions(n.searchQuery,n.currentPage+1)}}}e.prototype.connectedCallback=function(){if(this.el.attachInternals&&!this.internals){this.internals=this.el.attachInternals()}};e.prototype.componentWillLoad=function(){this.originalSearchEmitter=this.pdsMultiselectSearch;this.syncSelectedItems()};e.prototype.componentDidLoad=function(){var e=this;this.setupDebounce();this.setupMutationObserver();this.setupSlotChangeListener();this.updateFormValue();requestAnimationFrame((function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));if(this.asyncUrl&&this.ensureValueArray().length>0){this.initialAsyncFetchTriggered=true;this.fetchOptions("",1)}};e.prototype.setupSlotChangeListener=function(){var e=this;var i;var t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("slot:not([name])");if(t){t.addEventListener("slotchange",(function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));this.updateOptionsFromSlot()}};e.prototype.disconnectedCallback=function(){var e,i;(e=this.observer)===null||e===void 0?void 0:e.disconnect();(i=this.cleanupAutoUpdate)===null||i===void 0?void 0:i.call(this);this.clearAsyncFetchState()};e.prototype.setupDebounce=function(){var e=this,i=e.pdsMultiselectSearch,t=e.debounce,n=e.originalSearchEmitter;this.pdsMultiselectSearch=t===undefined?n!==null&&n!==void 0?n:i:h(i,t)};e.prototype.valueChanged=function(e){if(typeof e==="string"){try{var i=JSON.parse(e);if(Array.isArray(i)){this.value=i;return}}catch(i){this.value=e?[e]:[];return}}this.syncSelectedItems();this.updateFormValue();if(this.asyncUrl){var t=this.ensureValueArray();var n=t.length>0&&this.selectedItems.length<t.length;if(n){if(this.loading){this.pendingUnresolvedFetch=true}else{this.fetchOptions("",1)}}}};e.prototype.optionsChanged=function(){if(this.options){this.internalOptions=__spreadArray([],this.options,true)}};e.prototype.internalOptionsChanged=function(){this.syncSelectedItems()};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){(e=this.triggerEl)===null||e===void 0?void 0:e.focus();return[2]}))}))};e.prototype.handleWindowKeyDown=function(e){var i;if(!this.isOpen)return;if(e.key==="Escape"){e.preventDefault();this.closeDropdown();(i=this.triggerEl)===null||i===void 0?void 0:i.focus()}};e.prototype.setupMutationObserver=function(){var e=this;this.observer=new MutationObserver((function(){e.updateOptionsFromSlot()}));this.observer.observe(this.el,{childList:true,subtree:true})};e.prototype.updateOptionsFromSlot=function(){var e;var i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot:not([name])");if(!i)return;var t=i.assignedElements({flatten:true}).filter((function(e){return e.tagName==="OPTION"})).map((function(e){return{id:e.value,text:e.textContent||e.value}}));if(t.length>0&&!this.asyncUrl&&!this.options){this.internalOptions=t}};e.prototype.clearAsyncFetchState=function(){var e;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer);this.fetchDebounceTimer=undefined}if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}(e=this.abortController)===null||e===void 0?void 0:e.abort();this.abortController=undefined};e.prototype.debouncedFetchAsyncOptions=function(e,i){var t=this;if(i===void 0){i=1}var n;if(!this.asyncUrl)return;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer)}var s=Math.max(0,(n=this.debounce)!==null&&n!==void 0?n:0);this.fetchDebounceTimer=window.setTimeout((function(){t.fetchDebounceTimer=undefined;t.fetchOptions(e,i)}),s)};e.prototype.syncSelectedItems=function(){var e=this.ensureValueArray();var i=this.getAllOptions();var t=[];var n=new Map(this.selectedItems.map((function(e){return[String(e.id),e]})));e.forEach((function(e){var s=i.find((function(i){return String(i.id)===String(e)}));if(s){t.push(s)}else if(n.has(String(e))){t.push(n.get(String(e)))}}));this.selectedItems=t};e.prototype.ensureValueArray=function(){if(typeof this.value==="string"){try{var e=JSON.parse(this.value);if(Array.isArray(e)){this.value=e;return e}}catch(e){var i=this.value;this.value=i?[i]:[];return this.value}}return Array.isArray(this.value)?this.value:[]};e.prototype.getAllOptions=function(){return this.options||this.internalOptions};e.prototype.getFilteredOptions=function(){var e=this.getAllOptions();var i=this.searchQuery.toLowerCase();var t=e.filter((function(e){if(i){return e.text.toLowerCase().includes(i)}return true}));if(this.createUrl&&this.searchQuery.trim()&&t.length===0){return[{id:"__create__",text:this.searchQuery.trim(),isCreateOption:true}]}return t};e.prototype.updateFormValue=function(){var e=this;var i;if((i=this.internals)===null||i===void 0?void 0:i.setFormValue){var t=this.ensureValueArray();var n=new FormData;t.forEach((function(i){if(e.name){n.append(e.name,i)}}));this.internals.setFormValue(n);if(this.required&&t.length===0){this.internals.setValidity({valueMissing:true},"Please select at least one option.",this.triggerEl)}else{this.internals.setValidity({})}}};e.prototype.getCsrfToken=function(){if(this.csrfToken){return this.csrfToken}var e=document.querySelector('meta[name="csrf-token"]');return(e===null||e===void 0?void 0:e.content)||null};e.prototype.fetchOptions=function(e){return __awaiter(this,arguments,void 0,(function(e,i){var t,n,s,r,o,a,l,d,c,u,h;var p=this;if(i===void 0){i=1}return __generator(this,(function(f){switch(f.label){case 0:if(!this.asyncUrl)return[2];(t=this.abortController)===null||t===void 0?void 0:t.abort();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}this.abortController=new AbortController;this.loading=true;this.fetchTimeoutTimer=window.setTimeout((function(){var e;(e=p.abortController)===null||e===void 0?void 0:e.abort();p.fetchTimeoutTimer=undefined}),this.fetchTimeout);f.label=1;case 1:f.trys.push([1,4,5,6]);n=void 0;try{n=new URL(this.asyncUrl,window.location.origin)}catch(e){throw new TypeError("Invalid asyncUrl: ".concat(this.asyncUrl))}if(this.asyncMethod==="GET"){n.searchParams.set("search",e);n.searchParams.set("page",String(i))}s=this.getCsrfToken();r={"Content-Type":"application/json",Accept:"application/json"};if(s){o=this.csrfHeaderName||"X-CSRF-Token";r[o]=s}return[4,fetch(n.toString(),Object.assign({method:this.asyncMethod,signal:this.abortController.signal,headers:r},this.asyncMethod==="POST"&&{body:JSON.stringify({search:e,page:i})}))];case 2:a=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(!a.ok)throw new Error("Failed to fetch options");return[4,a.json()];case 3:l=f.sent();d=l.results.map((function(e){if(p.formatResult){return p.formatResult(e)}if(typeof e==="object"&&e!==null){return Object.assign({id:e.id,text:e.text},e)}return{id:String(e),text:String(e)}}));if(i===1){this.internalOptions=d}else{this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),d,true)}this.hasMore=l.totalCount?this.internalOptions.length<l.totalCount:false;this.currentPage=i;return[3,6];case 4:c=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(c.name!=="AbortError"){console.error("PdsMultiselect: Failed to fetch options",c)}return[3,6];case 5:this.loading=false;if(this.pendingUnresolvedFetch){this.pendingUnresolvedFetch=false;u=this.ensureValueArray();h=u.length>0&&this.selectedItems.length<u.length;if(h){this.fetchOptions("",1)}}return[7];case 6:return[2]}}))}))};e.prototype.createOption=function(e){return __awaiter(this,void 0,void 0,(function(){var i,t,n,s,r,o,a,l;var d=this;return __generator(this,(function(c){switch(c.label){case 0:if(!this.createUrl||!e.trim())return[2];if(this.creating)return[2];this.creating=true;c.label=1;case 1:c.trys.push([1,4,5,6]);i=new URL(this.createUrl,window.location.origin);t=this.getCsrfToken();n={"Content-Type":"application/json",Accept:"application/json"};if(t){s=this.csrfHeaderName||"X-CSRF-Token";n[s]=t}return[4,fetch(i.toString(),{method:"POST",headers:n,body:JSON.stringify({text:e.trim()})})];case 2:r=c.sent();if(!r.ok)throw new Error("Failed to create option");return[4,r.json()];case 3:o=c.sent();a=Object.assign({id:o.id,text:o.text},o);this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),[a],false);this.value=__spreadArray(__spreadArray([],this.value,true),[String(a.id)],false);this.syncSelectedItems();this.pdsMultiselectCreate.emit({query:e.trim(),newOption:a});this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});this.searchQuery="";this.highlightedIndex=-1;requestAnimationFrame((function(){var e;(e=d.searchInputEl)===null||e===void 0?void 0:e.focus()}));return[3,6];case 4:l=c.sent();console.error("PdsMultiselect: Failed to create option",l);return[3,6];case 5:this.creating=false;return[7];case 6:return[2]}}))}))};e.prototype.openDropdown=function(){var e=this;if(this.disabled)return;this.isOpening=true;this.isOpen=true;this.highlightedIndex=-1;if(this.asyncUrl&&this.internalOptions.length===0&&!this.initialAsyncFetchTriggered){this.debouncedFetchAsyncOptions(this.searchQuery,1)}this.initialAsyncFetchTriggered=false;requestAnimationFrame((function(){var i;e.positionDropdown();(i=e.searchInputEl)===null||i===void 0?void 0:i.focus();setTimeout((function(){e.isOpening=false}),50)}))};e.prototype.closeDropdown=function(){this.isOpen=false;this.highlightedIndex=-1;this.searchQuery="";if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=undefined}};e.prototype.positionDropdown=function(){var e=this;if(!this.containerEl||!this.panelEl)return;var i=this.triggerEl||this.containerEl;var t=this,n=t.minWidth,s=t.panelWidth;var r=function(){a(i,e.panelEl,{placement:"bottom-start",strategy:"absolute",middleware:[l(12),d(),c({padding:8}),u({apply:function(e){var i=e.rects,t=e.elements;Object.assign(t.floating.style,{width:s!==null&&s!==void 0?s:"".concat(i.reference.width,"px"),minWidth:n})}})]}).then((function(i){var t=i.x,n=i.y;if(e.panelEl){e.panelEl.style.left="".concat(t,"px");e.panelEl.style.top="".concat(n,"px")}}))};r();var h=o(i,this.panelEl,r);this.cleanupAutoUpdate=function(){h();e.clearAsyncFetchState()}};e.prototype.scrollOptionIntoView=function(){var e=this;requestAnimationFrame((function(){var i;var t=(i=e.listboxEl)===null||i===void 0?void 0:i.querySelector('[data-index="'.concat(e.highlightedIndex,'"]'));t===null||t===void 0?void 0:t.scrollIntoView({block:"nearest",behavior:"smooth"})}))};e.prototype.toggleOption=function(e){var i;if(e.isCreateOption){if(!this.creating){this.createOption(this.searchQuery)}return}var t=this.value.includes(String(e.id));if(t){this.value=this.value.filter((function(i){return i!==String(e.id)}))}else{if(this.maxSelections&&this.value.length>=this.maxSelections){return}this.value=__spreadArray(__spreadArray([],this.value,true),[String(e.id)],false)}this.syncSelectedItems();this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});(i=this.searchInputEl)===null||i===void 0?void 0:i.focus()};e.prototype.selectOption=function(e){this.toggleOption(e)};e.prototype.renderSelectedItemsList=function(){if(this.selectedItems.length===0)return null;return n("div",{class:"pds-multiselect__selected-section"},n("ul",{class:"pds-multiselect__selected-list",role:"list"},this.selectedItems.map((function(e){return n("li",{key:String(e.id),class:"pds-multiselect__selected-item"},e.text)}))))};e.prototype.renderDropdown=function(){var e=this;if(!this.isOpen)return null;var i=this.getFilteredOptions();var t=this.ensureValueArray();var s=!!this.el.querySelector('[slot="empty"]');var r=!!this.el.querySelector('[slot="loading"]');return n("div",{class:"pds-multiselect__panel",ref:function(i){return e.panelEl=i},style:{minWidth:this.minWidth}},n("div",{class:"pds-multiselect__search"},n("pds-icon",{name:"search",size:"small"}),n("input",{ref:function(i){return e.searchInputEl=i},type:"text",class:"pds-multiselect__search-input",placeholder:"Find...",value:this.searchQuery,"aria-label":"Search options","aria-controls":"".concat(this.componentId,"-listbox"),"aria-activedescendant":this.highlightedIndex>=0?"".concat(this.componentId,"-option-").concat(this.highlightedIndex):undefined,role:"combobox","aria-haspopup":"listbox","aria-expanded":"true","aria-autocomplete":"list",autocomplete:"off",onInput:this.handleSearchInputChange,onKeyDown:this.handleSearchInputKeyDown})),this.renderSelectedItemsList(),n("ul",{class:"pds-multiselect__listbox",role:"listbox","aria-multiselectable":"true","aria-label":this.label||"Options",id:"".concat(this.componentId,"-listbox"),ref:function(i){return e.listboxEl=i},style:{maxHeight:this.maxHeight},onScroll:this.handleScroll},this.loading&&n("li",{class:"pds-multiselect__loading",role:"presentation"},r?n("slot",{name:"loading"}):n("pds-loader",{size:"small"})),!this.loading&&i.length===0&&n("li",{class:"pds-multiselect__empty",role:"presentation"},s?n("slot",{name:"empty"}):n("span",null,"No options found")),i.map((function(i,s){var r=t.includes(String(i.id));var o=i.isCreateOption;var a=s===e.highlightedIndex&&!o;var l="".concat(e.componentId,"-option-").concat(s);var d=o&&e.creating;return n("li",{key:String(i.id),id:l,class:{"pds-multiselect__option":true,"pds-multiselect__option--highlighted":a,"pds-multiselect__option--selected":r,"pds-multiselect__option--create":o,"pds-multiselect__option--disabled":d},role:"option","aria-selected":r?"true":"false","aria-disabled":d?"true":undefined,"aria-label":o?"Create new tag: ".concat(i.text):undefined,"data-index":s,onMouseDown:e.handleOptionMouseDown(i),onMouseEnter:e.handleOptionMouseEnter(s)},o?n("pds-box",{class:"pds-multiselect__create-option","align-items":"center",gap:"xs"},n("pds-icon",{name:"add",size:"small"}),n("pds-text",null,'Add "',i.text,'"')):n("pds-checkbox",{componentId:"".concat(e.componentId,"-checkbox-").concat(s),checked:r,label:i.text,style:{pointerEvents:"none"}}))})),this.hasMore&&!this.loading&&n("li",{class:"pds-multiselect__load-more",role:"presentation"},n("pds-loader",{size:"small"}))))};e.prototype.getTriggerText=function(){var e=this.selectedItems.length;if(e===0){return this.placeholder||"Select..."}return"".concat(e," item").concat(e===1?"":"s")};e.prototype.render=function(){var e=this;var i=this.selectedItems.length>0;return n(s,{key:"52253faa88bce1a67e657e160b2d260ff92bc28b","aria-disabled":this.disabled?"true":null},n("div",{key:"43f73781a96bd421b7079984aaf4e1905a2ec29e",class:"pds-multiselect"},this.label&&n("label",{key:"926e23ac24621da0af4336bfc64b9d4a6d44579b",htmlFor:this.componentId,class:{"pds-multiselect__label":true,"visually-hidden":this.hideLabel}},this.label),n("div",{key:"5051808a8b883ee8b5e7e3acef927091f206aaaf",class:"pds-multiselect__wrapper",ref:function(i){return e.containerEl=i},onFocusout:this.handleContainerFocusOut,style:{width:this.triggerWidth}},n("button",{key:"4590bd41e14927fc9d652e0920b0cd7900bf4b1a",ref:function(i){return e.triggerEl=i},type:"button",class:{"pds-multiselect__trigger":true,"pds-multiselect__trigger--open":this.isOpen,"pds-multiselect__trigger--disabled":this.disabled,"pds-multiselect__trigger--invalid":this.invalid||!!this.errorMessage,"pds-multiselect__trigger--has-value":i},id:this.componentId,disabled:this.disabled,"aria-required":this.required?"true":undefined,"aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox","aria-describedby":p(this.componentId,this.invalid||!!this.errorMessage,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid||!!this.errorMessage?"true":undefined,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown},n("span",{key:"3033d029f02288071a16b2ef4a5399bb4b86ae7e",class:{"pds-multiselect__trigger-text":true,"pds-multiselect__trigger-text--placeholder":!i}},this.getTriggerText()),n("pds-icon",{key:"4d971d7a95e5e47c9141a6614f71b194bfa74dfb",class:"pds-multiselect__icon",icon:v})),this.renderDropdown()),this.helperMessage&&!(this.errorMessage&&this.errorMessage.length>0)&&n("p",{key:"3571fafc7c78f785ccd7a1a8d73675b5e33fa317",class:"pds-multiselect__helper",id:f(this.componentId,"helper")},this.helperMessage),this.errorMessage&&n("p",{key:"4acd308de067093578520a4ec85f299960f6e2c0",class:"pds-multiselect__error",id:f(this.componentId,"error")},n("pds-icon",{key:"a4cdf56804b77e474b9c757512ed6da54ddc5535",icon:m,size:"small"}),this.errorMessage),n("div",{key:"10eac87a742d793b3f4e3acb55bbe469b547e3d3",style:{display:"none"}},n("slot",{key:"1d55851a6f4a35f86684af5be7b6c840c2ed083b"}))))};Object.defineProperty(e,"formAssociated",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"el",{get:function(){return r(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{debounce:["setupDebounce"],value:["valueChanged"],options:["optionsChanged"],internalOptions:["internalOptionsChanged"]}},enumerable:false,configurable:true});return e}());g.style=b}}}));
2
- //# sourceMappingURL=p-b61669b4.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["System","register","exports","registerInstance","createEvent","h","Host","getElement","autoUpdate","computePosition","offset","flip","shift","size","debounceEvent","assignDescription","messageId","enlarge","danger","setters","module","r","c","H","a","o","f","s","b","d","m","e","execute","pdsMultiselectCss","PdsMultiselect","class_1","hostRef","_this","this","pdsMultiselectChange","pdsMultiselectSearch","pdsMultiselectLoadOptions","pdsMultiselectCreate","placeholder","value","disabled","asyncMethod","debounce","fetchTimeout","maxHeight","triggerWidth","minWidth","hideLabel","required","loading","csrfHeaderName","isOpen","searchQuery","highlightedIndex","internalOptions","selectedItems","currentPage","hasMore","creating","isOpening","initialAsyncFetchTriggered","pendingUnresolvedFetch","handleTriggerClick","closeDropdown","openDropdown","handleTriggerKeyDown","key","preventDefault","handleSearchInputChange","target","emit","query","asyncUrl","debouncedFetchAsyncOptions","handleSearchInputKeyDown","filteredOptions","getFilteredOptions","Math","min","length","scrollOptionIntoView","max","option","selectOption","handleContainerFocusOut","setTimeout","_a","activeElement","document","isInShadowRoot","el","shadowRoot","contains","isOnHost","handleOptionMouseDown","toggleOption","handleOptionMouseEnter","index","handleScroll","scrollBottom","scrollHeight","scrollTop","clientHeight","page","prototype","connectedCallback","attachInternals","internals","componentWillLoad","originalSearchEmitter","syncSelectedItems","componentDidLoad","setupDebounce","setupMutationObserver","setupSlotChangeListener","updateFormValue","requestAnimationFrame","updateOptionsFromSlot","ensureValueArray","fetchOptions","slot","querySelector","addEventListener","disconnectedCallback","_b","observer","disconnect","cleanupAutoUpdate","call","clearAsyncFetchState","_c","undefined","valueChanged","newValue","parsed","JSON","parse","Array","isArray","valueArray","hasUnresolvedValues","optionsChanged","options","__spreadArray","internalOptionsChanged","setFocus","triggerEl","focus","handleWindowKeyDown","event","MutationObserver","observe","childList","subtree","assignedElements","flatten","filter","tagName","map","opt","id","text","textContent","fetchDebounceTimer","window","clearTimeout","fetchTimeoutTimer","abortController","abort","delay","allOptions","getAllOptions","newSelectedItems","existingItemsMap","Map","item","String","forEach","val","find","push","has","get","singleValue","toLowerCase","filtered","includes","createUrl","trim","isCreateOption","setFormValue","formData_1","FormData","name","append","setValidity","valueMissing","getCsrfToken","csrfToken","metaTag","content","query_1","AbortController","url","URL","location","origin","urlError","TypeError","concat","searchParams","set","headers","Accept","headerName","fetch","toString","Object","assign","method","signal","body","stringify","search","response","sent","ok","Error","json","data","formattedResults","results","formatResult","totalCount","error_1","console","error","createOption","newOption","values","items","searchInputEl","error_2","positionDropdown","containerEl","panelEl","referenceEl","panelWidth","updatePosition","placement","strategy","middleware","padding","apply","rects","elements","floating","style","width","reference","then","x","y","left","top","highlighted","listboxEl","scrollIntoView","block","behavior","isSelected","v","maxSelections","renderSelectedItemsList","class","role","renderDropdown","hasSlottedEmpty","hasSlottedLoading","ref","type","componentId","autocomplete","onInput","onKeyDown","label","onScroll","isHighlighted","optionId","isCreateDisabled","onMouseDown","onMouseEnter","gap","checked","pointerEvents","getTriggerText","count","render","hasSelections","htmlFor","onFocusout","invalid","errorMessage","helperMessage","onClick","icon","display","defineProperty"],"sources":["module.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,a as s}from"./p-DHPhrb5T.js";import{a as n,c as o,o as d,f as r,s as a}from"./p-BO6p966C.js";const h=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]){cursor:not-allowed;opacity:0.5;pointer-events:none}";const l=class{constructor(t){i(this,t);this.isOpen=false;this.menuItems=[];this.cleanupAutoUpdate=null;this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=i=>{this.slotEl=i.target;const t=this.slotEl.assignedElements();this.triggerEl=t[0];this.triggerEl.onclick=this.handleClick;this.triggerEl.setAttribute("aria-haspopup","menu");this.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=i=>{this.slotEl=i.target;const t=this.slotEl.assignedElements();const e=["pds-dropdown-menu-item","pds-dropdown-menu-separator","a","button"];const s=t.filter((i=>!e.includes(i.tagName.toLowerCase())));if(s.length>0){const i=s.map((i=>i.tagName.toLowerCase())).join(", ");console.warn(`pds-dropdown-menu: Unexpected element(s) found: ${i}. `+`Expected: ${e.join(", ")}`)}this.menuItems=t.filter((i=>{const t=i.tagName.toLowerCase();return t==="pds-dropdown-menu-item"||t==="a"||t==="button"}))};this.toggleDropdown=()=>{this.isOpen=!this.isOpen;if(this.isOpen){this.openDropdown()}else{this.closeDropdown()}};this.openDropdown=()=>{var i;const t=()=>{o(this.triggerEl,this.panelEl,{placement:this.placement,strategy:"fixed",middleware:[d(6),r(),a({padding:5})]}).then((({x:i,y:t})=>{Object.assign(this.panelEl.style,{left:`${i}px`,top:`${t}px`})}))};t();this.cleanupAutoUpdate=n(this.triggerEl,this.panelEl,t);(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");this.isOpen=true;this.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=()=>{var i;(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");this.isOpen=false;if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=null}this.triggerEl.setAttribute("aria-expanded","false");this.currentFocusIndex=-1;this.triggerEl.focus()};this.handleClick=()=>{this.toggleDropdown()}}componentDidRender(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")}disconnectedCallback(){if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=null}}isItemDisabled(i){const t=i.tagName.toLowerCase();if(t==="pds-dropdown-menu-item"){return i.disabled}else if(t==="button"){return i.disabled}else if(t==="a"){return i.getAttribute("aria-disabled")==="true"}return false}getFocusedItemIndex(){const i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((t=>{if(t===i)return true;if(t.tagName.toLowerCase()==="pds-dropdown-menu-item"){const e=t.shadowRoot;if(e===null||e===void 0?void 0:e.contains(i))return true}return false}))}focusItemByIndex(i){var t,e,s,n,o;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;const d=this.menuItems[i];const r=d.tagName.toLowerCase();if(r==="pds-dropdown-menu-item"){const i=d;const r=(t=i.shadowRoot)===null||t===void 0?void 0:t.querySelector("button");const a=((n=(s=(e=i.shadowRoot)===null||e===void 0?void 0:e.querySelector("pds-link"))===null||s===void 0?void 0:s.shadowRoot)===null||n===void 0?void 0:n.querySelector("a"))||((o=i.shadowRoot)===null||o===void 0?void 0:o.querySelector("a"));if(r){r.focus()}else if(a){a.focus()}else{i.focus()}}else{d.focus()}}}focusNextItem(){let i=(this.currentFocusIndex+1)%this.menuItems.length;let t=0;const e=this.menuItems.length;while(t<e&&this.isItemDisabled(this.menuItems[i])){i=(i+1)%this.menuItems.length;t++}if(t<e){this.focusItemByIndex(i)}}focusPreviousItem(){let i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;let t=0;const e=this.menuItems.length;while(t<e&&this.isItemDisabled(this.menuItems[i])){i=i<=0?this.menuItems.length-1:i-1;t++}if(t<e){this.focusItemByIndex(i)}}handleKeyDown(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){let i=0;while(i<this.menuItems.length&&this.isItemDisabled(this.menuItems[i])){i++}if(i<this.menuItems.length){this.focusItemByIndex(i)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){let i=this.menuItems.length-1;while(i>=0&&this.isItemDisabled(this.menuItems[i])){i--}if(i>=0){this.focusItemByIndex(i)}}break;case"Tab":if(i.shiftKey){const t=this.getFocusedItemIndex();if(t>0){i.preventDefault();this.focusPreviousItem()}}else{const t=document.activeElement;const e=t===this.triggerEl;const s=this.getFocusedItemIndex();if(e&&this.menuItems.length>0){i.preventDefault();let t=0;while(t<this.menuItems.length&&this.isItemDisabled(this.menuItems[t])){t++}if(t<this.menuItems.length){this.focusItemByIndex(t)}}else if(s===-1&&this.menuItems.length>0){i.preventDefault();let t=0;while(t<this.menuItems.length&&this.isItemDisabled(this.menuItems[t])){t++}if(t<this.menuItems.length){this.focusItemByIndex(t)}}else if(s!==-1){i.preventDefault();this.focusNextItem()}}break}}handleWindowClick(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}}render(){return t(e,{key:"3144bc264072eccf89cdca45a0b28eb004b5d06e",id:this.componentId},t("slot",{key:"500288f266dc7ab7e1ac5070e628c31a6ed50861",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),t("pds-box",{key:"4085130e381b8be28e2e36de073c0755a455e30c","border-radius":"sm",display:"flex",direction:"column",class:"pds-dropdown-menu--panel is-hidden",shadow:"100",role:"menu","aria-orientation":"vertical",part:"menu-panel"},t("slot",{key:"2c4d53799576d1c6913df9bb854bfbaf50e5032c",onSlotchange:this.handleSlotChange})))}get host(){return s(this)}};l.style=h;export{l as pds_dropdown_menu};
2
- //# sourceMappingURL=p-d456c898.entry.js.map