@purpur/library 9.1.3 → 9.2.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 (312) hide show
  1. package/CHANGELOG.json +44 -0
  2. package/CHANGELOG.md +21 -1
  3. package/dist/LICENSE.txt +66 -8
  4. package/dist/{ThemeProvider-ipAIFRUi.js → ThemeProvider-5r7lDX-h.js} +2 -2
  5. package/dist/{ThemeProvider-ipAIFRUi.js.map → ThemeProvider-5r7lDX-h.js.map} +1 -1
  6. package/dist/{ThemeProvider-BR1hJQOD.mjs → ThemeProvider-bkyFCeo6.mjs} +3 -3
  7. package/dist/{ThemeProvider-BR1hJQOD.mjs.map → ThemeProvider-bkyFCeo6.mjs.map} +1 -1
  8. package/dist/accordion-OsA0HvdA.js +2 -0
  9. package/dist/{accordion-DX8efWOt.js.map → accordion-OsA0HvdA.js.map} +1 -1
  10. package/dist/{accordion-BKTz9DM6.mjs → accordion-OtFSShSB.mjs} +37 -37
  11. package/dist/{accordion-BKTz9DM6.mjs.map → accordion-OtFSShSB.mjs.map} +1 -1
  12. package/dist/accordion.cjs.js +1 -1
  13. package/dist/accordion.es.js +1 -1
  14. package/dist/arrow-left.es-CCWJyrcQ.js +2 -0
  15. package/dist/arrow-left.es-CCWJyrcQ.js.map +1 -0
  16. package/dist/arrow-left.es-DU-PX-Il.mjs +13 -0
  17. package/dist/arrow-left.es-DU-PX-Il.mjs.map +1 -0
  18. package/dist/{autocomplete-B8L-dTmF.mjs → autocomplete-BipmyKf0.mjs} +2 -2
  19. package/dist/{autocomplete-B8L-dTmF.mjs.map → autocomplete-BipmyKf0.mjs.map} +1 -1
  20. package/dist/{autocomplete-B421J7CS.js → autocomplete-D9uCJzjY.js} +2 -2
  21. package/dist/{autocomplete-B421J7CS.js.map → autocomplete-D9uCJzjY.js.map} +1 -1
  22. package/dist/autocomplete.cjs.js +1 -1
  23. package/dist/autocomplete.es.js +1 -1
  24. package/dist/button-4-yWOgtD.mjs +109 -0
  25. package/dist/{button-Cv7NlYbv.mjs.map → button-4-yWOgtD.mjs.map} +1 -1
  26. package/dist/button-DmybVApa.js +2 -0
  27. package/dist/{button-Dqxdc3nC.js.map → button-DmybVApa.js.map} +1 -1
  28. package/dist/button.cjs.js +1 -1
  29. package/dist/button.es.js +1 -1
  30. package/dist/{calendar-CoP1dGpQ.js → calendar-CBBV8n3x.js} +2 -2
  31. package/dist/{calendar-CoP1dGpQ.js.map → calendar-CBBV8n3x.js.map} +1 -1
  32. package/dist/{calendar-D_sZrR92.mjs → calendar-DEXw83mu.mjs} +2 -2
  33. package/dist/{calendar-D_sZrR92.mjs.map → calendar-DEXw83mu.mjs.map} +1 -1
  34. package/dist/calendar.cjs.js +1 -1
  35. package/dist/calendar.es.js +1 -1
  36. package/dist/card-CRHXm5NR.js +2 -0
  37. package/dist/{card-VMa3cGCP.js.map → card-CRHXm5NR.js.map} +1 -1
  38. package/dist/{card-CkZQZOz1.mjs → card-DR2hvxjZ.mjs} +75 -75
  39. package/dist/{card-CkZQZOz1.mjs.map → card-DR2hvxjZ.mjs.map} +1 -1
  40. package/dist/card.cjs.js +1 -1
  41. package/dist/card.es.js +1 -1
  42. package/dist/carousel-BCw-5u92.js +2 -0
  43. package/dist/carousel-BCw-5u92.js.map +1 -0
  44. package/dist/carousel-BkxojLwn.mjs +1633 -0
  45. package/dist/carousel-BkxojLwn.mjs.map +1 -0
  46. package/dist/carousel.cjs.js +2 -0
  47. package/dist/carousel.cjs.js.map +1 -0
  48. package/dist/carousel.es.js +5 -0
  49. package/dist/carousel.es.js.map +1 -0
  50. package/dist/{chat-field-yK-TwW0D.mjs → chat-field-CVF4DooY.mjs} +2 -2
  51. package/dist/{chat-field-yK-TwW0D.mjs.map → chat-field-CVF4DooY.mjs.map} +1 -1
  52. package/dist/{chat-field-CxOqk0-9.js → chat-field-Wjvh2J6C.js} +2 -2
  53. package/dist/{chat-field-CxOqk0-9.js.map → chat-field-Wjvh2J6C.js.map} +1 -1
  54. package/dist/chat-field.cjs.js +1 -1
  55. package/dist/chat-field.es.js +1 -1
  56. package/dist/comparison-table-B8w65g43.js +2 -0
  57. package/dist/comparison-table-B8w65g43.js.map +1 -0
  58. package/dist/comparison-table-D1zJpdLL.mjs +275 -0
  59. package/dist/comparison-table-D1zJpdLL.mjs.map +1 -0
  60. package/dist/comparison-table.cjs.js +2 -0
  61. package/dist/comparison-table.cjs.js.map +1 -0
  62. package/dist/comparison-table.es.js +5 -0
  63. package/dist/comparison-table.es.js.map +1 -0
  64. package/dist/components/carousel/src/carousel.d.ts +43 -0
  65. package/dist/components/carousel/src/carousel.d.ts.map +1 -0
  66. package/dist/components/carousel/src/components/PageIndicator.d.ts +12 -0
  67. package/dist/components/carousel/src/components/PageIndicator.d.ts.map +1 -0
  68. package/dist/components/carousel/src/hooks/useAutoplay.d.ts +8 -0
  69. package/dist/components/carousel/src/hooks/useAutoplay.d.ts.map +1 -0
  70. package/dist/components/carousel/src/hooks/usePageIndicators.d.ts +9 -0
  71. package/dist/components/carousel/src/hooks/usePageIndicators.d.ts.map +1 -0
  72. package/dist/components/carousel/src/hooks/usePrefersReducedMotion.d.ts +2 -0
  73. package/dist/components/carousel/src/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  74. package/dist/components/carousel/src/hooks/usePrevNextButtons.d.ts +11 -0
  75. package/dist/components/carousel/src/hooks/usePrevNextButtons.d.ts.map +1 -0
  76. package/dist/components/comparison-table/src/comparison-table.d.ts +64 -0
  77. package/dist/components/comparison-table/src/comparison-table.d.ts.map +1 -0
  78. package/dist/components/comparison-table/src/components/Cell/cell.d.ts +7 -0
  79. package/dist/components/comparison-table/src/components/Cell/cell.d.ts.map +1 -0
  80. package/dist/components/comparison-table/src/components/LeadCell/lead-cell.d.ts +8 -0
  81. package/dist/components/comparison-table/src/components/LeadCell/lead-cell.d.ts.map +1 -0
  82. package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts +26 -0
  83. package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts.map +1 -0
  84. package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts +11 -0
  85. package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts.map +1 -0
  86. package/dist/components/content-block/src/content-block.d.ts +2 -2
  87. package/dist/components/content-block/src/content-block.d.ts.map +1 -1
  88. package/dist/components/dropdown/src/dropdown-combobox.d.ts +2 -1
  89. package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
  90. package/dist/components/dropdown/src/dropdown-select.d.ts +2 -1
  91. package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -1
  92. package/dist/components/dropdown/src/dropdown-shared.d.ts +11 -1
  93. package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
  94. package/dist/components/dropdown/src/dropdown.types.d.ts +7 -2
  95. package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -1
  96. package/dist/components/dropdown/src/useDropdown.d.ts +1 -1
  97. package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -1
  98. package/dist/components-metadata.js +16 -0
  99. package/dist/{content-block-Cd7xSE8t.js → content-block-CDRUH0pg.js} +2 -2
  100. package/dist/content-block-CDRUH0pg.js.map +1 -0
  101. package/dist/{content-block-BMOvlH7a.mjs → content-block-Dm3L4g8w.mjs} +2 -2
  102. package/dist/content-block-Dm3L4g8w.mjs.map +1 -0
  103. package/dist/content-block.cjs.js +1 -1
  104. package/dist/content-block.es.js +1 -1
  105. package/dist/{cta-link-BHU6irMG.js → cta-link-B1qMjH76.js} +2 -2
  106. package/dist/{cta-link-BHU6irMG.js.map → cta-link-B1qMjH76.js.map} +1 -1
  107. package/dist/{cta-link-B_FfwflB.mjs → cta-link-pwva2f2r.mjs} +43 -43
  108. package/dist/{cta-link-B_FfwflB.mjs.map → cta-link-pwva2f2r.mjs.map} +1 -1
  109. package/dist/cta-link.cjs.js +1 -1
  110. package/dist/cta-link.es.js +1 -1
  111. package/dist/{date-field-B7ipm5sH.js → date-field-BJaomFjs.js} +2 -2
  112. package/dist/{date-field-B7ipm5sH.js.map → date-field-BJaomFjs.js.map} +1 -1
  113. package/dist/{date-field-4tYMPw89.mjs → date-field-D3rTtf9Y.mjs} +2 -2
  114. package/dist/{date-field-4tYMPw89.mjs.map → date-field-D3rTtf9Y.mjs.map} +1 -1
  115. package/dist/date-field.cjs.js +1 -1
  116. package/dist/date-field.es.js +1 -1
  117. package/dist/{date-picker-D7EisjDG.mjs → date-picker-CpDZ0gK9.mjs} +4 -4
  118. package/dist/{date-picker-D7EisjDG.mjs.map → date-picker-CpDZ0gK9.mjs.map} +1 -1
  119. package/dist/{date-picker-BWW4xzyc.js → date-picker-D3uJGCjl.js} +2 -2
  120. package/dist/{date-picker-BWW4xzyc.js.map → date-picker-D3uJGCjl.js.map} +1 -1
  121. package/dist/date-picker.cjs.js +1 -1
  122. package/dist/date-picker.es.js +1 -1
  123. package/dist/{drawer-Vi9H2O3N.mjs → drawer-BJ8xwriz.mjs} +2 -2
  124. package/dist/{drawer-Vi9H2O3N.mjs.map → drawer-BJ8xwriz.mjs.map} +1 -1
  125. package/dist/{drawer-UdK-u7IX.js → drawer-CNs9K8Ca.js} +2 -2
  126. package/dist/{drawer-UdK-u7IX.js.map → drawer-CNs9K8Ca.js.map} +1 -1
  127. package/dist/drawer.cjs.js +1 -1
  128. package/dist/drawer.es.js +1 -1
  129. package/dist/dropdown-BsqVnd7z.js +2 -0
  130. package/dist/dropdown-BsqVnd7z.js.map +1 -0
  131. package/dist/dropdown-TO3Mh0bk.mjs +910 -0
  132. package/dist/dropdown-TO3Mh0bk.mjs.map +1 -0
  133. package/dist/dropdown.cjs.js +1 -1
  134. package/dist/dropdown.es.js +1 -1
  135. package/dist/{footer-cH07Xqil.mjs → footer-BXs8uzTA.mjs} +4 -4
  136. package/dist/{footer-cH07Xqil.mjs.map → footer-BXs8uzTA.mjs.map} +1 -1
  137. package/dist/{footer-BL0ewBZT.js → footer-DF9adlni.js} +2 -2
  138. package/dist/{footer-BL0ewBZT.js.map → footer-DF9adlni.js.map} +1 -1
  139. package/dist/footer.cjs.js +1 -1
  140. package/dist/footer.es.js +1 -1
  141. package/dist/{hero-banner-yGRM4OlS.js → hero-banner-BfxclVFT.js} +2 -2
  142. package/dist/{hero-banner-yGRM4OlS.js.map → hero-banner-BfxclVFT.js.map} +1 -1
  143. package/dist/{hero-banner-BjwICxaJ.mjs → hero-banner-CxPvhXD2.mjs} +3 -3
  144. package/dist/{hero-banner-BjwICxaJ.mjs.map → hero-banner-CxPvhXD2.mjs.map} +1 -1
  145. package/dist/hero-banner.cjs.js +1 -1
  146. package/dist/hero-banner.es.js +1 -1
  147. package/dist/libraries/library/src/carousel.d.ts +6 -0
  148. package/dist/libraries/library/src/carousel.d.ts.map +1 -0
  149. package/dist/libraries/library/src/comparison-table.d.ts +6 -0
  150. package/dist/libraries/library/src/comparison-table.d.ts.map +1 -0
  151. package/dist/libraries/library/src/library.d.ts +2 -0
  152. package/dist/libraries/library/src/library.d.ts.map +1 -1
  153. package/dist/library.cjs.js +1 -1
  154. package/dist/library.es.js +609 -605
  155. package/dist/library.es.js.map +1 -1
  156. package/dist/minus.es-BK9qA9iJ.mjs +13 -0
  157. package/dist/minus.es-BK9qA9iJ.mjs.map +1 -0
  158. package/dist/minus.es-DtXArdKK.js +2 -0
  159. package/dist/minus.es-DtXArdKK.js.map +1 -0
  160. package/dist/{modal-fTWvPEPW.mjs → modal-DCfN6q8I.mjs} +28 -28
  161. package/dist/modal-DCfN6q8I.mjs.map +1 -0
  162. package/dist/{modal-DMeRO1wE.js → modal-DZIdw9xy.js} +2 -2
  163. package/dist/modal-DZIdw9xy.js.map +1 -0
  164. package/dist/modal.cjs.js +1 -1
  165. package/dist/modal.es.js +1 -1
  166. package/dist/{notification-DE1pvk9W.js → notification-BqjaT4E7.js} +2 -2
  167. package/dist/{notification-DE1pvk9W.js.map → notification-BqjaT4E7.js.map} +1 -1
  168. package/dist/{notification-BvoL7BIW.mjs → notification-DdRS5BF2.mjs} +2 -2
  169. package/dist/{notification-BvoL7BIW.mjs.map → notification-DdRS5BF2.mjs.map} +1 -1
  170. package/dist/{notification-banner-C4gkkSlf.mjs → notification-banner-BOclxqFu.mjs} +2 -2
  171. package/dist/{notification-banner-C4gkkSlf.mjs.map → notification-banner-BOclxqFu.mjs.map} +1 -1
  172. package/dist/{notification-banner-COH7wJu2.js → notification-banner-jY8rQH2M.js} +2 -2
  173. package/dist/{notification-banner-COH7wJu2.js.map → notification-banner-jY8rQH2M.js.map} +1 -1
  174. package/dist/notification-banner.cjs.js +1 -1
  175. package/dist/notification-banner.es.js +1 -1
  176. package/dist/notification.cjs.js +1 -1
  177. package/dist/notification.es.js +1 -1
  178. package/dist/pagination-Bwlkvqye.js +2 -0
  179. package/dist/pagination-Bwlkvqye.js.map +1 -0
  180. package/dist/{pagination-BdCjh1Pi.mjs → pagination-CVYUacXN.mjs} +235 -242
  181. package/dist/pagination-CVYUacXN.mjs.map +1 -0
  182. package/dist/pagination.cjs.js +1 -1
  183. package/dist/pagination.es.js +1 -1
  184. package/dist/{popover-lxTyKALA.mjs → popover-Dwqs1wGH.mjs} +2 -2
  185. package/dist/{popover-lxTyKALA.mjs.map → popover-Dwqs1wGH.mjs.map} +1 -1
  186. package/dist/{popover-BnUVNqSi.js → popover-XCUa2GfC.js} +2 -2
  187. package/dist/{popover-BnUVNqSi.js.map → popover-XCUa2GfC.js.map} +1 -1
  188. package/dist/popover.cjs.js +1 -1
  189. package/dist/popover.es.js +1 -1
  190. package/dist/{product-card-BU1ThhCx.mjs → product-card-BfB82XpS.mjs} +2 -2
  191. package/dist/{product-card-BU1ThhCx.mjs.map → product-card-BfB82XpS.mjs.map} +1 -1
  192. package/dist/{product-card-CNBegEBW.js → product-card-bVQ7JhHj.js} +2 -2
  193. package/dist/{product-card-CNBegEBW.js.map → product-card-bVQ7JhHj.js.map} +1 -1
  194. package/dist/product-card.cjs.js +1 -1
  195. package/dist/product-card.es.js +1 -1
  196. package/dist/{promotion-card-_bPyVr9t.mjs → promotion-card-BhNw94sC.mjs} +4 -4
  197. package/dist/{promotion-card-_bPyVr9t.mjs.map → promotion-card-BhNw94sC.mjs.map} +1 -1
  198. package/dist/{promotion-card-CXNhskRl.js → promotion-card-DqBBt2sz.js} +2 -2
  199. package/dist/{promotion-card-CXNhskRl.js.map → promotion-card-DqBBt2sz.js.map} +1 -1
  200. package/dist/promotion-card.cjs.js +1 -1
  201. package/dist/promotion-card.es.js +1 -1
  202. package/dist/purpur.css +1 -1
  203. package/dist/quantity-selector-8AkKNDik.js +2 -0
  204. package/dist/quantity-selector-8AkKNDik.js.map +1 -0
  205. package/dist/{quantity-selector-CGhJ2DjO.mjs → quantity-selector-C23kU1hF.mjs} +73 -79
  206. package/dist/quantity-selector-C23kU1hF.mjs.map +1 -0
  207. package/dist/quantity-selector.cjs.js +1 -1
  208. package/dist/quantity-selector.es.js +1 -1
  209. package/dist/scss/action.scss +1 -0
  210. package/dist/{search-field-DTuEiK-M.mjs → search-field-CMBDkydb.mjs} +3 -3
  211. package/dist/{search-field-DTuEiK-M.mjs.map → search-field-CMBDkydb.mjs.map} +1 -1
  212. package/dist/{search-field-Bst9d-wX.js → search-field-CU_tsmHb.js} +2 -2
  213. package/dist/{search-field-Bst9d-wX.js.map → search-field-CU_tsmHb.js.map} +1 -1
  214. package/dist/search-field.cjs.js +1 -1
  215. package/dist/search-field.es.js +1 -1
  216. package/dist/{stepper-k0bX9m4t.mjs → stepper-uBfDdIju.mjs} +3 -3
  217. package/dist/{stepper-k0bX9m4t.mjs.map → stepper-uBfDdIju.mjs.map} +1 -1
  218. package/dist/{stepper-ClLQuoXr.js → stepper-w-raIwqJ.js} +2 -2
  219. package/dist/{stepper-ClLQuoXr.js.map → stepper-w-raIwqJ.js.map} +1 -1
  220. package/dist/stepper.cjs.js +1 -1
  221. package/dist/stepper.es.js +1 -1
  222. package/dist/{table-Ddv6BKo9.js → table-BVSBvTYG.js} +2 -2
  223. package/dist/{table-Ddv6BKo9.js.map → table-BVSBvTYG.js.map} +1 -1
  224. package/dist/{table-D_XW4smf.mjs → table-CuV3Gda_.mjs} +6 -6
  225. package/dist/{table-D_XW4smf.mjs.map → table-CuV3Gda_.mjs.map} +1 -1
  226. package/dist/table.cjs.js +1 -1
  227. package/dist/table.es.js +1 -1
  228. package/dist/{text-area-9ggiIWtJ.js → text-area-C6W0fDiQ.js} +2 -2
  229. package/dist/{text-area-9ggiIWtJ.js.map → text-area-C6W0fDiQ.js.map} +1 -1
  230. package/dist/{text-area-CpYWt99s.mjs → text-area-DDZ_GQPW.mjs} +3 -3
  231. package/dist/{text-area-CpYWt99s.mjs.map → text-area-DDZ_GQPW.mjs.map} +1 -1
  232. package/dist/text-area.cjs.js +1 -1
  233. package/dist/text-area.es.js +1 -1
  234. package/dist/{text-field-BQYzwIrG.mjs → text-field-BQfxJobW.mjs} +2 -2
  235. package/dist/{text-field-BQYzwIrG.mjs.map → text-field-BQfxJobW.mjs.map} +1 -1
  236. package/dist/{text-field-BwxGMWds.js → text-field-CYJzQG3h.js} +2 -2
  237. package/dist/{text-field-BwxGMWds.js.map → text-field-CYJzQG3h.js.map} +1 -1
  238. package/dist/text-field.cjs.js +1 -1
  239. package/dist/text-field.es.js +1 -1
  240. package/dist/theme.cjs.js +1 -1
  241. package/dist/theme.es.js +2 -2
  242. package/dist/tokens/color/variables.css +12 -12
  243. package/dist/tokens/color/variables.dark.css +13 -13
  244. package/dist/tokens/color/variables.dark.js +13 -13
  245. package/dist/tokens/color/variables.dark.json +13 -13
  246. package/dist/tokens/color/variables.dark.scss +13 -13
  247. package/dist/tokens/color/variables.js +12 -12
  248. package/dist/tokens/color/variables.json +12 -12
  249. package/dist/tokens/color/variables.scss +12 -12
  250. package/dist/tokens/gradient/variables.dark.js +4 -4
  251. package/dist/tokens/gradient/variables.dark.json +4 -4
  252. package/dist/tokens/gradient/variables.dark.scss +4 -4
  253. package/dist/tokens/gradient/variables.js +4 -4
  254. package/dist/tokens/gradient/variables.json +4 -4
  255. package/dist/tokens/gradient/variables.scss +4 -4
  256. package/dist/tokens.cjs.js +1 -1
  257. package/dist/tokens.cjs.js.map +1 -1
  258. package/dist/tokens.es.js +41 -41
  259. package/dist/tokens.es.js.map +1 -1
  260. package/dist/{tooltip-BatXMflw.js → tooltip-0pLBlDG3.js} +2 -2
  261. package/dist/{tooltip-BatXMflw.js.map → tooltip-0pLBlDG3.js.map} +1 -1
  262. package/dist/{tooltip-CZzwHkea.mjs → tooltip-Kom0VfOC.mjs} +2 -2
  263. package/dist/{tooltip-CZzwHkea.mjs.map → tooltip-Kom0VfOC.mjs.map} +1 -1
  264. package/dist/tooltip.cjs.js +1 -1
  265. package/dist/tooltip.es.js +1 -1
  266. package/dist/useColorScheme-0GMDl2GF.js +2 -0
  267. package/dist/{useColorScheme-DNNu9bz0.js.map → useColorScheme-0GMDl2GF.js.map} +1 -1
  268. package/dist/{useColorScheme-9rgSgG0N.mjs → useColorScheme-Di_Q0JR4.mjs} +2 -2
  269. package/dist/{useColorScheme-9rgSgG0N.mjs.map → useColorScheme-Di_Q0JR4.mjs.map} +1 -1
  270. package/dist/{variables-BVgnpUH9.mjs → variables-CKp4o9Tn.mjs} +2 -2
  271. package/dist/{variables-BVgnpUH9.mjs.map → variables-CKp4o9Tn.mjs.map} +1 -1
  272. package/dist/{variables-CMzMXeor.js → variables-DH61hVNE.js} +2 -2
  273. package/dist/{variables-CMzMXeor.js.map → variables-DH61hVNE.js.map} +1 -1
  274. package/package.json +41 -39
  275. package/src/aliases.ts +11 -0
  276. package/src/carousel.ts +6 -0
  277. package/src/comparison-table.ts +6 -0
  278. package/src/entries.js +2 -0
  279. package/src/library.ts +4 -0
  280. package/tokens/color/variables.css +12 -12
  281. package/tokens/color/variables.dark.css +13 -13
  282. package/tokens/color/variables.dark.js +13 -13
  283. package/tokens/color/variables.dark.json +13 -13
  284. package/tokens/color/variables.dark.scss +13 -13
  285. package/tokens/color/variables.js +12 -12
  286. package/tokens/color/variables.json +12 -12
  287. package/tokens/color/variables.scss +12 -12
  288. package/tokens/gradient/variables.dark.js +4 -4
  289. package/tokens/gradient/variables.dark.json +4 -4
  290. package/tokens/gradient/variables.dark.scss +4 -4
  291. package/tokens/gradient/variables.js +4 -4
  292. package/tokens/gradient/variables.json +4 -4
  293. package/tokens/gradient/variables.scss +4 -4
  294. package/dist/accordion-DX8efWOt.js +0 -2
  295. package/dist/button-Cv7NlYbv.mjs +0 -109
  296. package/dist/button-Dqxdc3nC.js +0 -2
  297. package/dist/card-VMa3cGCP.js +0 -2
  298. package/dist/content-block-BMOvlH7a.mjs.map +0 -1
  299. package/dist/content-block-Cd7xSE8t.js.map +0 -1
  300. package/dist/dropdown-BQOY21kI.js +0 -2
  301. package/dist/dropdown-BQOY21kI.js.map +0 -1
  302. package/dist/dropdown-CBYTBaMW.mjs +0 -779
  303. package/dist/dropdown-CBYTBaMW.mjs.map +0 -1
  304. package/dist/modal-DMeRO1wE.js.map +0 -1
  305. package/dist/modal-fTWvPEPW.mjs.map +0 -1
  306. package/dist/pagination-BdCjh1Pi.mjs.map +0 -1
  307. package/dist/pagination-C2A8NPol.js +0 -2
  308. package/dist/pagination-C2A8NPol.js.map +0 -1
  309. package/dist/quantity-selector-BV7QwVlT.js +0 -2
  310. package/dist/quantity-selector-BV7QwVlT.js.map +0 -1
  311. package/dist/quantity-selector-CGhJ2DjO.mjs.map +0 -1
  312. package/dist/useColorScheme-DNNu9bz0.js +0 -2
@@ -0,0 +1,910 @@
1
+ import { jsxs as X, jsx as a, Fragment as ye } from "react/jsx-runtime";
2
+ import { useState as fe, forwardRef as we, useId as ve, useRef as _e, useCallback as Se, useEffect as Te } from "react";
3
+ import { L as ae } from "./listbox-DG4KmQP_.mjs";
4
+ import { e as Be } from "./use-autocomplete.es-CVv3z8t6.mjs";
5
+ import { C as xe } from "./checkbox-D6qWgpWR.mjs";
6
+ import { a as $e } from "./dismissable-chip-group-D-gD93ON.mjs";
7
+ import { F as Fe } from "./field-error-text-CBSX8dGx.mjs";
8
+ import { F as Pe } from "./field-helper-text-C5ee4SFV.mjs";
9
+ import { r as Ke } from "./check-circle-filled.es-umBwOv5_.mjs";
10
+ import { l as He } from "./chevron-down.es-PCIIj6oG.mjs";
11
+ import { L as Ve } from "./label-7sJe5-pX.mjs";
12
+ import { a as Me } from "./spinner-DRQN6YdK.mjs";
13
+ import { c as Ue } from "./bind-CU-R61T-.mjs";
14
+ const Ye = {
15
+ "purpur-dropdown": "_purpur-dropdown_1murn_1",
16
+ "purpur-dropdown--negative": "_purpur-dropdown--negative_1murn_11",
17
+ "purpur-dropdown__label": "_purpur-dropdown__label_1murn_14",
18
+ "purpur-dropdown__field-row": "_purpur-dropdown__field-row_1murn_19",
19
+ "purpur-dropdown__frame": "_purpur-dropdown__frame_1murn_23",
20
+ "purpur-dropdown__frame--negative": "_purpur-dropdown__frame--negative_1murn_30",
21
+ "purpur-dropdown__trigger-container": "_purpur-dropdown__trigger-container_1murn_33",
22
+ "purpur-dropdown__chip-group": "_purpur-dropdown__chip-group_1murn_45",
23
+ "purpur-dropdown__trigger-container--has-tags": "_purpur-dropdown__trigger-container--has-tags_1murn_50",
24
+ "purpur-dropdown__trigger-container--disabled": "_purpur-dropdown__trigger-container--disabled_1murn_53",
25
+ "purpur-dropdown__trigger-container--readonly": "_purpur-dropdown__trigger-container--readonly_1murn_53",
26
+ "purpur-dropdown__trigger-container--negative": "_purpur-dropdown__trigger-container--negative_1murn_60",
27
+ "purpur-dropdown__trigger-container--error": "_purpur-dropdown__trigger-container--error_1murn_63",
28
+ "purpur-dropdown__trigger-container--is-valid": "_purpur-dropdown__trigger-container--is-valid_1murn_66",
29
+ "purpur-dropdown__input": "_purpur-dropdown__input_1murn_69",
30
+ "purpur-dropdown__trigger": "_purpur-dropdown__trigger_1murn_33",
31
+ "purpur-dropdown__trigger--placeholder": "_purpur-dropdown__trigger--placeholder_1murn_117",
32
+ "purpur-dropdown__trigger--is-valid": "_purpur-dropdown__trigger--is-valid_1murn_120",
33
+ "purpur-dropdown__trigger--disabled": "_purpur-dropdown__trigger--disabled_1murn_123",
34
+ "purpur-dropdown__trigger--readonly": "_purpur-dropdown__trigger--readonly_1murn_127",
35
+ "purpur-dropdown__trigger--negative": "_purpur-dropdown__trigger--negative_1murn_131",
36
+ "purpur-dropdown__trigger-text": "_purpur-dropdown__trigger-text_1murn_144",
37
+ "purpur-dropdown__combobox-container": "_purpur-dropdown__combobox-container_1murn_150",
38
+ "purpur-dropdown__combobox-container--disabled": "_purpur-dropdown__combobox-container--disabled_1murn_160",
39
+ "purpur-dropdown__combobox-container--readonly": "_purpur-dropdown__combobox-container--readonly_1murn_167",
40
+ "purpur-dropdown__combobox-container--error": "_purpur-dropdown__combobox-container--error_1murn_174",
41
+ "purpur-dropdown__combobox-container--is-valid": "_purpur-dropdown__combobox-container--is-valid_1murn_177",
42
+ "purpur-dropdown__combobox-container--negative": "_purpur-dropdown__combobox-container--negative_1murn_180",
43
+ "purpur-dropdown__input--negative": "_purpur-dropdown__input--negative_1murn_219",
44
+ "purpur-dropdown__chip-group--select": "_purpur-dropdown__chip-group--select_1murn_236",
45
+ "purpur-dropdown__end-adornments": "_purpur-dropdown__end-adornments_1murn_242",
46
+ "purpur-dropdown__chevron-icon": "_purpur-dropdown__chevron-icon_1murn_253",
47
+ "purpur-dropdown__chevron-icon--open": "_purpur-dropdown__chevron-icon--open_1murn_258",
48
+ "purpur-dropdown__chevron-icon--disabled": "_purpur-dropdown__chevron-icon--disabled_1murn_261",
49
+ "purpur-dropdown__chevron-icon--readonly": "_purpur-dropdown__chevron-icon--readonly_1murn_264",
50
+ "purpur-dropdown__chevron-icon--negative": "_purpur-dropdown__chevron-icon--negative_1murn_267",
51
+ "purpur-dropdown__valid-icon": "_purpur-dropdown__valid-icon_1murn_270",
52
+ "purpur-dropdown__listbox": "_purpur-dropdown__listbox_1murn_273",
53
+ "purpur-dropdown__checkbox-item-multiple": "_purpur-dropdown__checkbox-item-multiple_1murn_283",
54
+ "purpur-dropdown__checkbox-container": "_purpur-dropdown__checkbox-container_1murn_286",
55
+ "purpur-dropdown__checkbox-container--disabled": "_purpur-dropdown__checkbox-container--disabled_1murn_293",
56
+ "purpur-dropdown__select-all-item": "_purpur-dropdown__select-all-item_1murn_297",
57
+ "purpur-dropdown__select-all-child": "_purpur-dropdown__select-all-child_1murn_300"
58
+ }, v = Ue.bind(Ye), e = "purpur-dropdown", Ie = ({
59
+ fieldId: r,
60
+ htmlForSuffix: n,
61
+ label: d,
62
+ getTestId: s,
63
+ disabled: o,
64
+ negative: l,
65
+ required: b
66
+ }) => d ? /* @__PURE__ */ X(
67
+ Ve,
68
+ {
69
+ htmlFor: n ? `${r}-${n}` : r,
70
+ className: v(`${e}__label`),
71
+ "data-testid": s("label"),
72
+ disabled: o,
73
+ negative: l,
74
+ children: [
75
+ b && /* @__PURE__ */ a("span", { "aria-hidden": !0, children: "*" }),
76
+ d
77
+ ]
78
+ }
79
+ ) : null, ke = ({
80
+ getTestId: r,
81
+ loading: n,
82
+ disabled: d,
83
+ negative: s,
84
+ isValid: o,
85
+ isOpen: l,
86
+ readOnly: b,
87
+ showChevronOpen: x
88
+ }) => /* @__PURE__ */ a("span", { className: v(`${e}__end-adornments`), children: n ? /* @__PURE__ */ a(
89
+ Me,
90
+ {
91
+ disabled: d,
92
+ size: "xxs",
93
+ negative: s,
94
+ "data-testid": r("spinner")
95
+ }
96
+ ) : /* @__PURE__ */ X(ye, { children: [
97
+ o && /* @__PURE__ */ a(
98
+ Ke,
99
+ {
100
+ "data-testid": r("valid-icon"),
101
+ className: v(`${e}__valid-icon`)
102
+ }
103
+ ),
104
+ /* @__PURE__ */ a(
105
+ He,
106
+ {
107
+ className: v(`${e}__chevron-icon`, {
108
+ [`${e}__chevron-icon--open`]: x && l,
109
+ [`${e}__chevron-icon--disabled`]: d,
110
+ [`${e}__chevron-icon--readonly`]: b && !d,
111
+ [`${e}__chevron-icon--is-valid`]: o,
112
+ [`${e}__chevron-icon--negative`]: s
113
+ }),
114
+ "data-testid": r("dropdown-icon"),
115
+ size: "sm"
116
+ }
117
+ )
118
+ ] }) }), Ce = ({
119
+ selectedItems: r,
120
+ getTestId: n,
121
+ disabled: d,
122
+ onRemove: s,
123
+ isSelect: o
124
+ }) => r.length ? /* @__PURE__ */ a(
125
+ $e,
126
+ {
127
+ className: v(`${e}__chip-group`, {
128
+ [`${e}__chip-group--select`]: o
129
+ }),
130
+ "data-testid": n("tags"),
131
+ size: "sm",
132
+ children: r.map((l) => /* @__PURE__ */ a(
133
+ $e.Item,
134
+ {
135
+ id: l.id,
136
+ "data-testid": n(`tag-${l.id}`),
137
+ "aria-label": `Remove ${l.label}`,
138
+ onDismiss: () => {
139
+ s(l);
140
+ },
141
+ disabled: d || l.disabled,
142
+ children: l.label
143
+ },
144
+ l.id
145
+ ))
146
+ }
147
+ ) : null, Oe = ({
148
+ errorText: r,
149
+ helperText: n,
150
+ helperTextId: d,
151
+ negative: s
152
+ }) => /* @__PURE__ */ X(ye, { children: [
153
+ r && /* @__PURE__ */ a(Fe, { negative: s, children: r }),
154
+ n && !r && /* @__PURE__ */ a(Pe, { id: d, negative: s, children: n })
155
+ ] }), te = "__purpur-dropdown-select-all__", De = ({
156
+ selectAllLabel: r,
157
+ multiple: n,
158
+ options: d,
159
+ selectedItems: s
160
+ }) => !r || !n || d.filter((x) => !x.disabled).length === 0 ? !1 : !d.filter((x) => x.disabled).some(
161
+ (x) => !s.some((I) => I.id === x.id)
162
+ ), Ne = ({
163
+ optionsToShow: r,
164
+ getListboxItemProps: n,
165
+ multiple: d,
166
+ fieldId: s,
167
+ noOptionsText: o,
168
+ selectAllLabel: l,
169
+ selectedItems: b = []
170
+ }) => {
171
+ if (o !== void 0 && !r.length)
172
+ return /* @__PURE__ */ a(ae.Item, { noninteractive: !0, children: o });
173
+ const x = r[0]?.id === te;
174
+ let I = !1;
175
+ if (x) {
176
+ const y = r.filter((h) => h.id !== te).filter((h) => !h.disabled), _ = y.filter(
177
+ (h) => b.some((c) => c.id === h.id)
178
+ ).length, u = y.length > 0 && _ === y.length, $ = b.length > 0;
179
+ I = u ? !0 : $ ? "indeterminate" : !1;
180
+ }
181
+ return r.map((p, y) => {
182
+ const { key: _, selected: u, ...$ } = n(p, y);
183
+ return p.id === te ? /* @__PURE__ */ a(
184
+ ae.Item,
185
+ {
186
+ ...$,
187
+ "aria-selected": I === !0,
188
+ className: v(
189
+ `${e}__checkbox-item-multiple`,
190
+ `${e}__select-all-item`
191
+ ),
192
+ hideSelectedIcon: !0,
193
+ children: /* @__PURE__ */ X("span", { className: v(`${e}__checkbox-container`), children: [
194
+ /* @__PURE__ */ a(
195
+ xe,
196
+ {
197
+ id: `${s}-checkbox-select-all`,
198
+ checked: I,
199
+ "aria-hidden": !0
200
+ }
201
+ ),
202
+ l
203
+ ] })
204
+ },
205
+ _
206
+ ) : d ? /* @__PURE__ */ a(
207
+ ae.Item,
208
+ {
209
+ ...$,
210
+ className: v(`${e}__checkbox-item-multiple`, {
211
+ [`${e}__select-all-child`]: x
212
+ }),
213
+ selected: !!u,
214
+ hideSelectedIcon: !0,
215
+ children: /* @__PURE__ */ X(
216
+ "span",
217
+ {
218
+ className: v(`${e}__checkbox-container`, {
219
+ [`${e}__checkbox-container--disabled`]: p.disabled
220
+ }),
221
+ children: [
222
+ /* @__PURE__ */ a(
223
+ xe,
224
+ {
225
+ id: `${s}-checkbox-${p.id}`,
226
+ checked: !!u,
227
+ "aria-hidden": !0,
228
+ disabled: p.disabled
229
+ }
230
+ ),
231
+ p.label
232
+ ]
233
+ }
234
+ )
235
+ },
236
+ _
237
+ ) : /* @__PURE__ */ a(ae.Item, { ...$, selected: !!u, children: /* @__PURE__ */ a("span", { children: p.label }) }, _);
238
+ });
239
+ }, qe = (r, n, d) => {
240
+ if (d)
241
+ return r.filter((o) => d(n, o));
242
+ if (!n) return r;
243
+ const s = n.toUpperCase().split(" ");
244
+ return r.filter(
245
+ (o) => s.every((l) => (o.value || o.label).toUpperCase().includes(l))
246
+ );
247
+ }, Re = ({
248
+ options: r,
249
+ searchTerm: n,
250
+ filterOption: d,
251
+ selectedOption: s,
252
+ multiple: o
253
+ }) => !o && s && s.label === n ? r : qe(r, n, d), Le = ({
254
+ controlledInputValue: r,
255
+ defaultInputValue: n,
256
+ selectedOption: d,
257
+ onInputChange: s
258
+ }) => {
259
+ const [o, l] = fe(
260
+ (typeof r == "string" ? r : n ?? d?.label) ?? ""
261
+ );
262
+ return {
263
+ displayInputValue: typeof r == "string" ? r : o,
264
+ populateInputField: (I) => {
265
+ s?.(I), l(I);
266
+ }
267
+ };
268
+ }, Ae = we((r, n) => {
269
+ const {
270
+ id: d,
271
+ label: s,
272
+ options: o,
273
+ className: l,
274
+ errorText: b,
275
+ helperText: x,
276
+ placeholder: I,
277
+ negative: p = !1,
278
+ readOnly: y = !1,
279
+ disabled: _ = !1,
280
+ required: u = !1,
281
+ valid: $,
282
+ loading: h,
283
+ multiple: c = !1,
284
+ selectedOption: g,
285
+ selectedOptions: L = [],
286
+ onSelect: N,
287
+ openOnFocus: O = !1,
288
+ listboxMaxHeight: ce,
289
+ listboxLabel: ee,
290
+ filterOption: K,
291
+ inputValue: H,
292
+ defaultInputValue: m,
293
+ onInputChange: j,
294
+ noOptionsText: V,
295
+ highlightFirstOption: A = !1,
296
+ selectAllLabel: M,
297
+ ["data-testid"]: S
298
+ } = r, E = ve(), R = d ?? E, Y = (i) => S ? `${S}-${i}` : void 0, D = !!$ && !b, q = `${R}-helper-text`, f = c ? L : g ? [g] : [], { displayInputValue: Z, populateInputField: W } = Le({
299
+ controlledInputValue: H,
300
+ defaultInputValue: m,
301
+ selectedOption: g,
302
+ onInputChange: j
303
+ }), ne = Re({
304
+ options: o,
305
+ searchTerm: Z,
306
+ filterOption: K,
307
+ selectedOption: g,
308
+ multiple: c
309
+ }), oe = De({
310
+ selectAllLabel: M,
311
+ multiple: c,
312
+ options: o,
313
+ selectedItems: f
314
+ }), re = oe && (oe && !Z) ? [{ id: te, label: M }, ...ne] : ne, U = () => {
315
+ const i = o.filter((k) => !k.disabled);
316
+ if (i.every(
317
+ (k) => f.some((P) => P.id === k.id)
318
+ )) {
319
+ const k = f.filter((P) => P.disabled);
320
+ N?.(void 0, k);
321
+ } else {
322
+ const P = [...f.filter((be) => be.disabled), ...i];
323
+ N?.(void 0, P);
324
+ }
325
+ W("");
326
+ }, pe = (i) => {
327
+ if (i.id === te) {
328
+ U();
329
+ return;
330
+ }
331
+ if (c) {
332
+ const k = f.some((P) => P.id === i.id) ? f.filter((P) => P.id !== i.id) : [...f, i];
333
+ N?.(i, k), W("");
334
+ } else
335
+ N?.(i, [i]), W(i.label);
336
+ }, {
337
+ rootRef: ie,
338
+ inputRef: G,
339
+ inputProps: J,
340
+ listboxProps: de,
341
+ getListboxItemProps: se,
342
+ isOpen: w,
343
+ openListbox: z,
344
+ anchorStyle: T
345
+ } = Be({
346
+ id: R,
347
+ options: re,
348
+ listboxLabel: ee || s || "Options",
349
+ selectedOption: c ? void 0 : g,
350
+ disabled: _,
351
+ readOnly: y,
352
+ openOnFocus: O,
353
+ listboxMaxHeight: ce,
354
+ highlightFirstOption: A,
355
+ closeOnSelect: !c,
356
+ noOptionsText: V,
357
+ onSelect: pe,
358
+ "data-testid": S
359
+ }), Q = (i) => {
360
+ ie.current = i, typeof n == "function" ? n(i) : n && (n.current = i);
361
+ }, ue = (i, C) => {
362
+ const k = se(i, C);
363
+ if (c) {
364
+ const P = f.some((be) => be.id === i.id);
365
+ return { ...k, selected: P, "aria-selected": P };
366
+ }
367
+ return k;
368
+ }, he = (i) => {
369
+ const C = f.filter((k) => k.id !== i.id);
370
+ N?.(i, C);
371
+ }, t = (i) => {
372
+ if (c && i.key === "Backspace" && i.currentTarget.value === "" && f.length > 0) {
373
+ for (let C = f.length - 1; C >= 0; C--)
374
+ if (!f[C].disabled) {
375
+ he(f[C]);
376
+ break;
377
+ }
378
+ }
379
+ J?.onKeyDown?.(i);
380
+ }, B = (i) => {
381
+ W(i.target.value), w || z();
382
+ }, le = (i) => {
383
+ if (_ || y) return;
384
+ const C = i.target;
385
+ if (C === G.current || C.closest("button"))
386
+ return;
387
+ const k = G.current;
388
+ k?.dispatchEvent(new MouseEvent("mousedown", { bubbles: !0 })), k?.focus();
389
+ }, F = c && !!M && o.length > 0 && o.every((i) => f.some((C) => C.id === i.id)), me = v(e, l, {
390
+ [`${e}--negative`]: p
391
+ });
392
+ return /* @__PURE__ */ X("div", { ref: Q, className: me, children: [
393
+ /* @__PURE__ */ a(
394
+ Ie,
395
+ {
396
+ fieldId: R,
397
+ htmlForSuffix: "input",
398
+ label: s,
399
+ getTestId: Y,
400
+ disabled: _,
401
+ negative: p,
402
+ required: u
403
+ }
404
+ ),
405
+ /* @__PURE__ */ a("div", { className: v(`${e}__field-row`), children: /* @__PURE__ */ X(
406
+ "div",
407
+ {
408
+ className: v(`${e}__combobox-container`, {
409
+ [`${e}__combobox-container--error`]: !!b,
410
+ [`${e}__combobox-container--is-valid`]: D,
411
+ [`${e}__combobox-container--negative`]: p,
412
+ [`${e}__combobox-container--disabled`]: _,
413
+ [`${e}__combobox-container--readonly`]: y && !_
414
+ }),
415
+ style: T,
416
+ onClick: le,
417
+ children: [
418
+ c && !F && /* @__PURE__ */ a(
419
+ Ce,
420
+ {
421
+ selectedItems: f,
422
+ getTestId: Y,
423
+ disabled: _,
424
+ negative: p,
425
+ onRemove: he
426
+ }
427
+ ),
428
+ /* @__PURE__ */ a(
429
+ "input",
430
+ {
431
+ ...J,
432
+ ref: G,
433
+ id: `${R}-input`,
434
+ "data-testid": Y("input"),
435
+ onKeyDown: t,
436
+ onChange: B,
437
+ value: F && !Z ? M : Z,
438
+ placeholder: I,
439
+ className: v(`${e}__input`, {
440
+ [`${e}__input--negative`]: p
441
+ }),
442
+ "aria-describedby": q,
443
+ "aria-invalid": !!b,
444
+ disabled: _,
445
+ readOnly: y
446
+ }
447
+ ),
448
+ /* @__PURE__ */ a(
449
+ ke,
450
+ {
451
+ getTestId: Y,
452
+ loading: h,
453
+ disabled: _,
454
+ negative: p,
455
+ isValid: D,
456
+ isOpen: w,
457
+ showChevronOpen: !0
458
+ }
459
+ ),
460
+ /* @__PURE__ */ a(
461
+ "span",
462
+ {
463
+ className: v(`${e}__frame`, {
464
+ [`${e}__frame--negative`]: p
465
+ })
466
+ }
467
+ )
468
+ ]
469
+ }
470
+ ) }),
471
+ w && /* @__PURE__ */ a(ae, { ...de, className: v(`${e}__listbox`), children: Ne({
472
+ optionsToShow: re,
473
+ getListboxItemProps: ue,
474
+ multiple: c,
475
+ fieldId: R,
476
+ noOptionsText: V,
477
+ selectAllLabel: M,
478
+ selectedItems: f
479
+ }) }),
480
+ /* @__PURE__ */ a(
481
+ Oe,
482
+ {
483
+ errorText: b,
484
+ helperText: x,
485
+ helperTextId: q,
486
+ negative: p
487
+ }
488
+ )
489
+ ] });
490
+ });
491
+ Ae.displayName = "DropdownCombobox";
492
+ const ze = ({
493
+ options: r,
494
+ highlightFirstOption: n
495
+ }) => {
496
+ const d = _e(null), s = _e({}), [o, l] = fe(
497
+ n ? r[0] : void 0
498
+ ), b = (u) => {
499
+ if (u) {
500
+ const $ = u.getBoundingClientRect(), h = d.current?.getBoundingClientRect() || { top: 0, bottom: 0 };
501
+ ($.top < h.top || $.bottom > h.bottom) && u.scrollIntoView({ block: "nearest" });
502
+ }
503
+ };
504
+ return {
505
+ highlightedOption: o,
506
+ listboxRef: d,
507
+ optionRefs: s,
508
+ findNextOption: (u, $) => {
509
+ const h = $.filter((g) => !g.disabled);
510
+ if (!h.length) return;
511
+ const c = o ? h.findIndex((g) => g.id === o.id) : -1;
512
+ return u === "ArrowDown" ? h[(c + 1) % h.length] : h[(c - 1 + h.length) % h.length];
513
+ },
514
+ highlightOption: (u) => {
515
+ l(u ? { ...u } : void 0), u && b(s.current[u.id]);
516
+ },
517
+ highlightByClick: (u) => {
518
+ u.id !== o?.id && l({ ...u, isSetByClickEvent: !0 });
519
+ },
520
+ highlightSelected: (u, $) => {
521
+ requestAnimationFrame(() => {
522
+ l({ ...u, isSetByClickEvent: $ === "CLICK" }), b(s.current[u.id]);
523
+ });
524
+ },
525
+ resetHighlight: () => {
526
+ l(void 0);
527
+ }
528
+ };
529
+ }, je = (r, n) => {
530
+ const d = Se(
531
+ (s) => {
532
+ r && !r.contains(s.target) && n();
533
+ },
534
+ [n, r]
535
+ );
536
+ Te(() => (document.addEventListener("mousedown", d), () => {
537
+ document.removeEventListener("mousedown", d);
538
+ }), [d]);
539
+ }, We = ({
540
+ id: r,
541
+ variant: n,
542
+ options: d,
543
+ listboxLabel: s,
544
+ multiple: o = !1,
545
+ selectedOption: l,
546
+ selectedOptions: b = [],
547
+ onSelect: x,
548
+ filterOption: I,
549
+ inputValue: p,
550
+ defaultInputValue: y,
551
+ onInputChange: _,
552
+ noOptionsText: u,
553
+ highlightFirstOption: $ = !1,
554
+ openOnFocus: h = !1,
555
+ listboxMaxHeight: c,
556
+ disabled: g = !1,
557
+ readOnly: L = !1,
558
+ ["data-testid"]: N
559
+ }) => {
560
+ const O = n === "combobox", ce = ve(), ee = _e(null), K = _e(null), H = _e(null), m = ze({ options: d, highlightFirstOption: $ }), { displayInputValue: j, populateInputField: V } = Le({
561
+ controlledInputValue: p,
562
+ defaultInputValue: y,
563
+ selectedOption: l,
564
+ onInputChange: _
565
+ }), [A, M] = fe(!1), S = () => {
566
+ M(!1), m.resetHighlight();
567
+ };
568
+ je(ee.current, S);
569
+ const E = ({ eventType: t }) => {
570
+ M(!0);
571
+ const B = o ? void 0 : l;
572
+ B && m.highlightSelected(B, t);
573
+ }, R = o ? b : l ? [l] : [], Y = O ? Re({
574
+ options: d,
575
+ searchTerm: j,
576
+ filterOption: I,
577
+ selectedOption: l,
578
+ multiple: o
579
+ }) : d, D = A && (!!Y.length || !!u), q = (t) => N ? `${N}-${t}` : void 0, f = (t) => {
580
+ if (!(!t || t.disabled))
581
+ if (o) {
582
+ const le = R.some((F) => F.id === t.id) ? R.filter((F) => F.id !== t.id) : [...R, t];
583
+ x?.(t, le), O && (V(""), H.current?.focus());
584
+ } else
585
+ x?.(t, [t]), O && V(t.label), S(), (O ? H : K).current?.focus();
586
+ }, Z = (t) => {
587
+ D || E({ eventType: "KEYBOARD" });
588
+ const B = m.findNextOption(t, Y);
589
+ m.highlightOption(B);
590
+ }, W = (t) => {
591
+ if (!(g || L))
592
+ switch (t.key) {
593
+ case "ArrowUp":
594
+ case "ArrowDown":
595
+ t.preventDefault(), Z(t.key);
596
+ break;
597
+ case "Enter": {
598
+ t.preventDefault(), D && m.highlightedOption ? f(m.highlightedOption) : D || E({ eventType: "KEYBOARD" });
599
+ break;
600
+ }
601
+ case " ": {
602
+ O || (t.preventDefault(), D && m.highlightedOption ? f(m.highlightedOption) : D || E({ eventType: "KEYBOARD" }));
603
+ break;
604
+ }
605
+ case "Escape":
606
+ t.preventDefault(), S();
607
+ break;
608
+ case "Tab":
609
+ S();
610
+ break;
611
+ case "Home":
612
+ case "End":
613
+ O && S();
614
+ break;
615
+ }
616
+ }, ne = (t) => {
617
+ V(t.target.value), m.resetHighlight(), A || E({ eventType: "KEYBOARD" });
618
+ }, oe = () => {
619
+ g || L || (A ? S() : E({ eventType: "CLICK" }));
620
+ }, ge = () => {
621
+ !A && h && !g && !L && E({ eventType: "KEYBOARD" }), H.current?.select();
622
+ }, re = () => {
623
+ setTimeout(() => {
624
+ const t = document.activeElement;
625
+ t !== document.body && !H.current?.contains(t) && !m.listboxRef.current?.contains(t) && !ee.current?.contains(t) && (S(), O && !o && V(l ? l.label : ""));
626
+ });
627
+ }, U = () => {
628
+ g || L || (A ? S() : E({ eventType: "CLICK" }));
629
+ }, pe = (t) => {
630
+ if (g || L) return;
631
+ const B = t.target.closest("button");
632
+ B && B !== K.current || U();
633
+ }, ie = () => {
634
+ !A && h && !g && !L && E({ eventType: "KEYBOARD" });
635
+ }, G = `${r}-listbox`, J = (t) => `${r}-listbox-item-${t.id}`, de = `--purpur-dropdown-${ce.replace(/:/g, "")}`, se = { anchorName: de }, w = O ? null : {
636
+ onClick: pe
637
+ }, z = Se(
638
+ (t) => {
639
+ if (m.listboxRef.current = t, t && typeof t.showPopover == "function")
640
+ try {
641
+ t.showPopover();
642
+ } catch {
643
+ }
644
+ },
645
+ [m.listboxRef]
646
+ ), T = {
647
+ "aria-label": s,
648
+ "aria-expanded": D,
649
+ "data-testid": q("listbox"),
650
+ id: G,
651
+ ref: z,
652
+ onMouseLeave: () => m.resetHighlight(),
653
+ popover: "manual",
654
+ style: {
655
+ ...c ? {
656
+ maxHeight: typeof c == "number" ? `${c}px` : c
657
+ } : {},
658
+ positionAnchor: de
659
+ }
660
+ }, Q = (t, B) => {
661
+ const le = R.some((i) => i.id === t.id), { highlightedOption: F } = m, me = (t.id === F?.id || $ && !F && B === 0) && !F?.isSetByClickEvent;
662
+ return {
663
+ "data-testid": q(`listbox-item-${t.id}`),
664
+ id: J(t),
665
+ key: t.id,
666
+ onMouseMove: () => m.highlightByClick(t),
667
+ onMouseUp: () => f(t),
668
+ ref: (i) => {
669
+ i && (m.optionRefs.current[t.id] = i);
670
+ },
671
+ tabIndex: -1,
672
+ selected: le,
673
+ disabled: t.disabled,
674
+ highlighted: me,
675
+ hovered: t.id === F?.id && !!F?.isSetByClickEvent,
676
+ "aria-selected": le
677
+ };
678
+ }, ue = O ? {} : {
679
+ ref: K,
680
+ type: "button",
681
+ role: "combobox",
682
+ "aria-haspopup": "listbox",
683
+ "aria-expanded": D,
684
+ "aria-controls": G,
685
+ "aria-disabled": g,
686
+ "data-testid": q("trigger"),
687
+ id: `${r}-trigger`,
688
+ onKeyDown: W,
689
+ onFocus: ie,
690
+ disabled: g,
691
+ tabIndex: g ? -1 : 0,
692
+ style: se
693
+ }, he = O ? {
694
+ ref: H,
695
+ role: "combobox",
696
+ "aria-autocomplete": "list",
697
+ "aria-expanded": D,
698
+ "aria-controls": G,
699
+ "aria-activedescendant": m.highlightedOption ? J(m.highlightedOption) : void 0,
700
+ "data-testid": q("input"),
701
+ autoComplete: "off",
702
+ id: `${r}-input`,
703
+ type: "text",
704
+ value: j,
705
+ onChange: ne,
706
+ onMouseDown: oe,
707
+ onFocus: ge,
708
+ onBlur: re,
709
+ onKeyDown: W,
710
+ disabled: g,
711
+ readOnly: L
712
+ } : null;
713
+ return {
714
+ rootRef: ee,
715
+ triggerContainerProps: w,
716
+ triggerProps: ue,
717
+ inputProps: he,
718
+ listboxProps: T,
719
+ getListboxItemProps: Q,
720
+ optionsToShow: Y,
721
+ isOpen: D,
722
+ highlightedOption: m.highlightedOption,
723
+ selectedItems: R,
724
+ anchorStyle: se
725
+ };
726
+ }, Ee = we((r, n) => {
727
+ const {
728
+ id: d,
729
+ label: s,
730
+ options: o,
731
+ className: l,
732
+ errorText: b,
733
+ helperText: x,
734
+ placeholder: I,
735
+ negative: p = !1,
736
+ readOnly: y = !1,
737
+ disabled: _ = !1,
738
+ required: u = !1,
739
+ valid: $ = !1,
740
+ loading: h = !1,
741
+ multiple: c = !1,
742
+ selectedOption: g,
743
+ selectedOptions: L = [],
744
+ onSelect: N,
745
+ openOnFocus: O = !1,
746
+ listboxMaxHeight: ce,
747
+ listboxLabel: ee,
748
+ selectAllLabel: K,
749
+ ["data-testid"]: H
750
+ } = r, m = ve(), j = d ?? m, V = (w) => H ? `${H}-${w}` : void 0, A = !!$ && !b, M = `${j}-helper-text`, S = c ? L : g ? [g] : [], E = De({
751
+ selectAllLabel: K,
752
+ multiple: c,
753
+ options: o,
754
+ selectedItems: S
755
+ }), R = () => {
756
+ const w = o.filter((T) => !T.disabled);
757
+ if (w.every(
758
+ (T) => S.some((Q) => Q.id === T.id)
759
+ )) {
760
+ const T = S.filter((Q) => Q.disabled);
761
+ N?.(void 0, T);
762
+ } else {
763
+ const Q = [...S.filter((ue) => ue.disabled), ...w];
764
+ N?.(void 0, Q);
765
+ }
766
+ }, Y = (w, z) => {
767
+ if (w?.id === te) {
768
+ R();
769
+ return;
770
+ }
771
+ N?.(w, z);
772
+ }, D = E ? [{ id: te, label: K }, ...o] : o, q = We({
773
+ id: j,
774
+ variant: "select",
775
+ options: D,
776
+ listboxLabel: ee || s || "Options",
777
+ multiple: c,
778
+ selectedOption: g,
779
+ selectedOptions: L,
780
+ onSelect: Y,
781
+ openOnFocus: O,
782
+ listboxMaxHeight: ce,
783
+ disabled: _,
784
+ readOnly: y,
785
+ "data-testid": H
786
+ }), f = (w) => {
787
+ q.rootRef.current = w, typeof n == "function" ? n(w) : n && (n.current = w);
788
+ }, {
789
+ triggerContainerProps: Z,
790
+ triggerProps: W,
791
+ listboxProps: ne,
792
+ getListboxItemProps: oe,
793
+ optionsToShow: ge,
794
+ isOpen: re,
795
+ selectedItems: U,
796
+ anchorStyle: pe
797
+ } = q, ie = {
798
+ ...W
799
+ };
800
+ delete ie.style;
801
+ const G = (w) => {
802
+ const z = U.filter((T) => T.id !== w.id);
803
+ N?.(w, z);
804
+ }, J = c && !!K && o.length > 0 && o.every((w) => U.some((z) => z.id === w.id)), de = c ? J ? K : U.length === 0 && I || "" : g?.label || I || "", se = v(e, l, {
805
+ [`${e}--negative`]: p
806
+ });
807
+ return /* @__PURE__ */ X("div", { ref: f, className: se, children: [
808
+ /* @__PURE__ */ a(
809
+ Ie,
810
+ {
811
+ fieldId: j,
812
+ htmlForSuffix: "trigger",
813
+ label: s,
814
+ getTestId: V,
815
+ disabled: _,
816
+ negative: p,
817
+ required: u
818
+ }
819
+ ),
820
+ /* @__PURE__ */ a("div", { className: v(`${e}__field-row`), children: /* @__PURE__ */ X(
821
+ "div",
822
+ {
823
+ ...Z,
824
+ className: v(`${e}__trigger-container`, {
825
+ [`${e}__trigger-container--error`]: !!b,
826
+ [`${e}__trigger-container--is-valid`]: A,
827
+ [`${e}__trigger-container--negative`]: p,
828
+ [`${e}__trigger-container--disabled`]: _,
829
+ [`${e}__trigger-container--readonly`]: y && !_,
830
+ [`${e}__trigger-container--has-tags`]: c && U.length > 0 && !J
831
+ }),
832
+ style: pe,
833
+ children: [
834
+ c && !J && /* @__PURE__ */ a(
835
+ Ce,
836
+ {
837
+ selectedItems: U,
838
+ getTestId: V,
839
+ disabled: _,
840
+ negative: p,
841
+ onRemove: G,
842
+ isSelect: !0
843
+ }
844
+ ),
845
+ /* @__PURE__ */ a(
846
+ "button",
847
+ {
848
+ ...ie,
849
+ className: v(`${e}__trigger`, {
850
+ [`${e}__trigger--is-valid`]: A,
851
+ [`${e}__trigger--negative`]: p,
852
+ [`${e}__trigger--disabled`]: _,
853
+ [`${e}__trigger--readonly`]: y && !_,
854
+ [`${e}__trigger--placeholder`]: !U.length
855
+ }),
856
+ "aria-describedby": M,
857
+ children: /* @__PURE__ */ a("span", { className: v(`${e}__trigger-text`), children: de })
858
+ }
859
+ ),
860
+ /* @__PURE__ */ a(
861
+ ke,
862
+ {
863
+ getTestId: V,
864
+ loading: h,
865
+ disabled: _,
866
+ negative: p,
867
+ isValid: A,
868
+ isOpen: re,
869
+ readOnly: y,
870
+ showChevronOpen: !0
871
+ }
872
+ ),
873
+ /* @__PURE__ */ a(
874
+ "span",
875
+ {
876
+ className: v(`${e}__frame`, {
877
+ [`${e}__frame--negative`]: p
878
+ })
879
+ }
880
+ )
881
+ ]
882
+ }
883
+ ) }),
884
+ re && /* @__PURE__ */ a(ae, { ...ne, className: v(`${e}__listbox`), children: Ne({
885
+ optionsToShow: ge,
886
+ getListboxItemProps: oe,
887
+ multiple: c,
888
+ fieldId: j,
889
+ selectAllLabel: K,
890
+ selectedItems: U
891
+ }) }),
892
+ /* @__PURE__ */ a(
893
+ Oe,
894
+ {
895
+ errorText: b,
896
+ helperText: x,
897
+ helperTextId: M,
898
+ negative: p
899
+ }
900
+ )
901
+ ] });
902
+ });
903
+ Ee.displayName = "DropdownSelect";
904
+ const Ge = we((r, n) => r.combobox ? /* @__PURE__ */ a(Ae, { ref: n, ...r }) : /* @__PURE__ */ a(Ee, { ref: n, ...r }));
905
+ Ge.displayName = "Dropdown";
906
+ export {
907
+ Ge as D,
908
+ We as u
909
+ };
910
+ //# sourceMappingURL=dropdown-TO3Mh0bk.mjs.map