@new-black/lyra 1.8.0 → 1.9.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.
- package/dist/components/inputs/search-list-field/search-list-field.d.ts +1 -1
- package/dist/components/inputs/search-list-field/search-list-field.d.ts.map +1 -1
- package/dist/lyra100.cjs +1 -1
- package/dist/lyra100.js +1 -1
- package/dist/lyra1007.cjs +1 -1
- package/dist/lyra1007.js +1 -1
- package/dist/lyra102.cjs +1 -1
- package/dist/lyra102.js +1 -1
- package/dist/lyra103.cjs +1 -1
- package/dist/lyra103.cjs.map +1 -1
- package/dist/lyra103.js +13 -52
- package/dist/lyra103.js.map +1 -1
- package/dist/lyra104.cjs +1 -1
- package/dist/lyra104.cjs.map +1 -1
- package/dist/lyra104.js +12 -77
- package/dist/lyra104.js.map +1 -1
- package/dist/lyra105.cjs +1 -1
- package/dist/lyra105.cjs.map +1 -1
- package/dist/lyra105.js +14 -37
- package/dist/lyra105.js.map +1 -1
- package/dist/lyra106.cjs +1 -1
- package/dist/lyra106.cjs.map +1 -1
- package/dist/lyra106.js +10 -110
- package/dist/lyra106.js.map +1 -1
- package/dist/lyra107.cjs +1 -1
- package/dist/lyra107.cjs.map +1 -1
- package/dist/lyra107.js +2358 -12
- package/dist/lyra107.js.map +1 -1
- package/dist/lyra108.cjs +1 -1
- package/dist/lyra108.cjs.map +1 -1
- package/dist/lyra108.js +2846 -10
- package/dist/lyra108.js.map +1 -1
- package/dist/lyra109.cjs +1 -1
- package/dist/lyra109.cjs.map +1 -1
- package/dist/lyra109.js +30 -23
- package/dist/lyra109.js.map +1 -1
- package/dist/lyra11.cjs +1 -1
- package/dist/lyra11.js +1 -1
- package/dist/lyra110.cjs +1 -1
- package/dist/lyra110.cjs.map +1 -1
- package/dist/lyra110.js +81 -22
- package/dist/lyra110.js.map +1 -1
- package/dist/lyra111.cjs +1 -1
- package/dist/lyra111.cjs.map +1 -1
- package/dist/lyra111.js +44 -90
- package/dist/lyra111.js.map +1 -1
- package/dist/lyra112.cjs +1 -1
- package/dist/lyra112.cjs.map +1 -1
- package/dist/lyra112.js +52 -43
- package/dist/lyra112.js.map +1 -1
- package/dist/lyra113.cjs +1 -1
- package/dist/lyra113.cjs.map +1 -1
- package/dist/lyra113.js +50 -50
- package/dist/lyra113.js.map +1 -1
- package/dist/lyra114.cjs +1 -1
- package/dist/lyra114.cjs.map +1 -1
- package/dist/lyra114.js +7 -53
- package/dist/lyra114.js.map +1 -1
- package/dist/lyra115.cjs +1 -1
- package/dist/lyra115.cjs.map +1 -1
- package/dist/lyra115.js +61 -6
- package/dist/lyra115.js.map +1 -1
- package/dist/lyra116.cjs +1 -1
- package/dist/lyra116.cjs.map +1 -1
- package/dist/lyra116.js +36 -61
- package/dist/lyra116.js.map +1 -1
- package/dist/lyra117.cjs +1 -1
- package/dist/lyra117.cjs.map +1 -1
- package/dist/lyra117.js +78 -37
- package/dist/lyra117.js.map +1 -1
- package/dist/lyra118.cjs +1 -1
- package/dist/lyra118.js +2 -2
- package/dist/lyra119.cjs +1 -1
- package/dist/lyra119.js +1 -1
- package/dist/lyra12.cjs +1 -1
- package/dist/lyra12.js +1 -1
- package/dist/lyra120.cjs +1 -1
- package/dist/lyra120.cjs.map +1 -1
- package/dist/lyra120.js +35 -2358
- package/dist/lyra120.js.map +1 -1
- package/dist/lyra121.cjs +1 -1
- package/dist/lyra121.cjs.map +1 -1
- package/dist/lyra121.js +108 -2844
- package/dist/lyra121.js.map +1 -1
- package/dist/lyra122.cjs +1 -1
- package/dist/lyra122.cjs.map +1 -1
- package/dist/lyra122.js +7 -14
- package/dist/lyra122.js.map +1 -1
- package/dist/lyra123.cjs +1 -1
- package/dist/lyra123.cjs.map +1 -1
- package/dist/lyra123.js +15 -13
- package/dist/lyra123.js.map +1 -1
- package/dist/lyra124.cjs +1 -1
- package/dist/lyra124.cjs.map +1 -1
- package/dist/lyra124.js +53 -7
- package/dist/lyra124.js.map +1 -1
- package/dist/lyra125.cjs +1 -1
- package/dist/lyra125.cjs.map +1 -1
- package/dist/lyra125.js +14 -14
- package/dist/lyra125.js.map +1 -1
- package/dist/lyra126.cjs +1 -1
- package/dist/lyra126.cjs.map +1 -1
- package/dist/lyra126.js +24 -15
- package/dist/lyra126.js.map +1 -1
- package/dist/lyra129.cjs +1 -1
- package/dist/lyra129.cjs.map +1 -1
- package/dist/lyra129.js +153 -635
- package/dist/lyra129.js.map +1 -1
- package/dist/lyra13.cjs +1 -1
- package/dist/lyra13.js +2 -2
- package/dist/lyra130.cjs +1 -1
- package/dist/lyra130.cjs.map +1 -1
- package/dist/lyra130.js +661 -10
- package/dist/lyra130.js.map +1 -1
- package/dist/lyra131.cjs +1 -10
- package/dist/lyra131.cjs.map +1 -1
- package/dist/lyra131.js +13 -100
- package/dist/lyra131.js.map +1 -1
- package/dist/lyra132.cjs +10 -1
- package/dist/lyra132.cjs.map +1 -1
- package/dist/lyra132.js +99 -36
- package/dist/lyra132.js.map +1 -1
- package/dist/lyra133.cjs +1 -1
- package/dist/lyra133.cjs.map +1 -1
- package/dist/lyra133.js +34 -303
- package/dist/lyra133.js.map +1 -1
- package/dist/lyra134.cjs +1 -1
- package/dist/lyra134.cjs.map +1 -1
- package/dist/lyra134.js +255 -92
- package/dist/lyra134.js.map +1 -1
- package/dist/lyra135.cjs +1 -13
- package/dist/lyra135.cjs.map +1 -1
- package/dist/lyra135.js +140 -1719
- package/dist/lyra135.js.map +1 -1
- package/dist/lyra136.cjs +13 -1
- package/dist/lyra136.cjs.map +1 -1
- package/dist/lyra136.js +1713 -173
- package/dist/lyra136.js.map +1 -1
- package/dist/lyra137.cjs +1 -1
- package/dist/lyra137.cjs.map +1 -1
- package/dist/lyra137.js +216 -30
- package/dist/lyra137.js.map +1 -1
- package/dist/lyra138.cjs +1 -1
- package/dist/lyra138.cjs.map +1 -1
- package/dist/lyra138.js +94 -97
- package/dist/lyra138.js.map +1 -1
- package/dist/lyra139.cjs +1 -1
- package/dist/lyra139.cjs.map +1 -1
- package/dist/lyra139.js +119 -18
- package/dist/lyra139.js.map +1 -1
- package/dist/lyra140.cjs +1 -1
- package/dist/lyra140.cjs.map +1 -1
- package/dist/lyra140.js +97 -9
- package/dist/lyra140.js.map +1 -1
- package/dist/lyra141.cjs +1 -1
- package/dist/lyra141.cjs.map +1 -1
- package/dist/lyra141.js +139 -62
- package/dist/lyra141.js.map +1 -1
- package/dist/lyra142.cjs +1 -1
- package/dist/lyra142.cjs.map +1 -1
- package/dist/lyra142.js +27 -32
- package/dist/lyra142.js.map +1 -1
- package/dist/lyra143.cjs +1 -1
- package/dist/lyra143.cjs.map +1 -1
- package/dist/lyra143.js +96 -214
- package/dist/lyra143.js.map +1 -1
- package/dist/lyra144.cjs +1 -1
- package/dist/lyra144.cjs.map +1 -1
- package/dist/lyra144.js +19 -95
- package/dist/lyra144.js.map +1 -1
- package/dist/lyra145.cjs +1 -1
- package/dist/lyra145.cjs.map +1 -1
- package/dist/lyra145.js +8 -120
- package/dist/lyra145.js.map +1 -1
- package/dist/lyra146.cjs +1 -1
- package/dist/lyra146.cjs.map +1 -1
- package/dist/lyra146.js +62 -96
- package/dist/lyra146.js.map +1 -1
- package/dist/lyra147.cjs +1 -1
- package/dist/lyra147.cjs.map +1 -1
- package/dist/lyra147.js +34 -138
- package/dist/lyra147.js.map +1 -1
- package/dist/lyra152.cjs +1 -1
- package/dist/lyra152.cjs.map +1 -1
- package/dist/lyra152.js +232 -7
- package/dist/lyra152.js.map +1 -1
- package/dist/lyra153.cjs +1 -1
- package/dist/lyra153.cjs.map +1 -1
- package/dist/lyra153.js +16 -2
- package/dist/lyra153.js.map +1 -1
- package/dist/lyra154.cjs +1 -9
- package/dist/lyra154.cjs.map +1 -1
- package/dist/lyra154.js +478 -24
- package/dist/lyra154.js.map +1 -1
- package/dist/lyra155.cjs +1 -17
- package/dist/lyra155.cjs.map +1 -1
- package/dist/lyra155.js +59 -580
- package/dist/lyra155.js.map +1 -1
- package/dist/lyra156.cjs +1 -1
- package/dist/lyra156.cjs.map +1 -1
- package/dist/lyra156.js +12 -94
- package/dist/lyra156.js.map +1 -1
- package/dist/lyra157.cjs +1 -1
- package/dist/lyra157.cjs.map +1 -1
- package/dist/lyra157.js +7 -113
- package/dist/lyra157.js.map +1 -1
- package/dist/lyra158.cjs +1 -1
- package/dist/lyra158.cjs.map +1 -1
- package/dist/lyra158.js +2 -169
- package/dist/lyra158.js.map +1 -1
- package/dist/lyra159.cjs +9 -1
- package/dist/lyra159.cjs.map +1 -1
- package/dist/lyra159.js +25 -8
- package/dist/lyra159.js.map +1 -1
- package/dist/lyra160.cjs +17 -1
- package/dist/lyra160.cjs.map +1 -1
- package/dist/lyra160.js +585 -99
- package/dist/lyra160.js.map +1 -1
- package/dist/lyra161.cjs +1 -1
- package/dist/lyra161.cjs.map +1 -1
- package/dist/lyra161.js +94 -8
- package/dist/lyra161.js.map +1 -1
- package/dist/lyra162.cjs +1 -1
- package/dist/lyra162.cjs.map +1 -1
- package/dist/lyra162.js +112 -22
- package/dist/lyra162.js.map +1 -1
- package/dist/lyra163.cjs +1 -1
- package/dist/lyra163.cjs.map +1 -1
- package/dist/lyra163.js +166 -20
- package/dist/lyra163.js.map +1 -1
- package/dist/lyra164.cjs +1 -1
- package/dist/lyra164.cjs.map +1 -1
- package/dist/lyra164.js +8 -232
- package/dist/lyra164.js.map +1 -1
- package/dist/lyra165.cjs +1 -1
- package/dist/lyra165.cjs.map +1 -1
- package/dist/lyra165.js +99 -14
- package/dist/lyra165.js.map +1 -1
- package/dist/lyra166.cjs +1 -1
- package/dist/lyra166.cjs.map +1 -1
- package/dist/lyra166.js +8 -479
- package/dist/lyra166.js.map +1 -1
- package/dist/lyra167.cjs +1 -1
- package/dist/lyra167.cjs.map +1 -1
- package/dist/lyra167.js +23 -65
- package/dist/lyra167.js.map +1 -1
- package/dist/lyra168.cjs +1 -1
- package/dist/lyra168.cjs.map +1 -1
- package/dist/lyra168.js +23 -13
- package/dist/lyra168.js.map +1 -1
- package/dist/lyra17.cjs +1 -1
- package/dist/lyra17.js +1 -1
- package/dist/lyra171.cjs +1 -1
- package/dist/lyra171.js +9 -9
- package/dist/lyra172.cjs +1 -1
- package/dist/lyra172.cjs.map +1 -1
- package/dist/lyra172.js +202 -216
- package/dist/lyra172.js.map +1 -1
- package/dist/lyra173.cjs +1 -1
- package/dist/lyra173.cjs.map +1 -1
- package/dist/lyra173.js +38 -179
- package/dist/lyra173.js.map +1 -1
- package/dist/lyra174.cjs +1 -1
- package/dist/lyra174.cjs.map +1 -1
- package/dist/lyra174.js +304 -223
- package/dist/lyra174.js.map +1 -1
- package/dist/lyra175.cjs +1 -1
- package/dist/lyra175.cjs.map +1 -1
- package/dist/lyra175.js +93 -39
- package/dist/lyra175.js.map +1 -1
- package/dist/lyra176.cjs +1 -1
- package/dist/lyra176.cjs.map +1 -1
- package/dist/lyra176.js +127 -6
- package/dist/lyra176.js.map +1 -1
- package/dist/lyra177.cjs +1 -1
- package/dist/lyra177.cjs.map +1 -1
- package/dist/lyra177.js +80 -187
- package/dist/lyra177.js.map +1 -1
- package/dist/lyra178.cjs +1 -1
- package/dist/lyra178.cjs.map +1 -1
- package/dist/lyra178.js +50 -335
- package/dist/lyra178.js.map +1 -1
- package/dist/lyra179.cjs +1 -1
- package/dist/lyra179.cjs.map +1 -1
- package/dist/lyra179.js +84 -16
- package/dist/lyra179.js.map +1 -1
- package/dist/lyra180.cjs +1 -1
- package/dist/lyra180.cjs.map +1 -1
- package/dist/lyra180.js +273 -3
- package/dist/lyra180.js.map +1 -1
- package/dist/lyra181.cjs +1 -1
- package/dist/lyra181.cjs.map +1 -1
- package/dist/lyra181.js +184 -4
- package/dist/lyra181.js.map +1 -1
- package/dist/lyra182.cjs +1 -1
- package/dist/lyra182.cjs.map +1 -1
- package/dist/lyra182.js +6 -95
- package/dist/lyra182.js.map +1 -1
- package/dist/lyra183.cjs +1 -1
- package/dist/lyra183.cjs.map +1 -1
- package/dist/lyra183.js +194 -26
- package/dist/lyra183.js.map +1 -1
- package/dist/lyra184.cjs +1 -1
- package/dist/lyra184.cjs.map +1 -1
- package/dist/lyra184.js +38 -26
- package/dist/lyra184.js.map +1 -1
- package/dist/lyra185.cjs +1 -1
- package/dist/lyra185.cjs.map +1 -1
- package/dist/lyra185.js +91 -36
- package/dist/lyra185.js.map +1 -1
- package/dist/lyra186.cjs +1 -1
- package/dist/lyra186.cjs.map +1 -1
- package/dist/lyra186.js +25 -83
- package/dist/lyra186.js.map +1 -1
- package/dist/lyra187.cjs +1 -1
- package/dist/lyra187.cjs.map +1 -1
- package/dist/lyra187.js +28 -79
- package/dist/lyra187.js.map +1 -1
- package/dist/lyra188.cjs +1 -1
- package/dist/lyra188.cjs.map +1 -1
- package/dist/lyra188.js +78 -43
- package/dist/lyra188.js.map +1 -1
- package/dist/lyra189.cjs +1 -1
- package/dist/lyra189.cjs.map +1 -1
- package/dist/lyra189.js +43 -126
- package/dist/lyra189.js.map +1 -1
- package/dist/lyra190.cjs +1 -1
- package/dist/lyra190.cjs.map +1 -1
- package/dist/lyra190.js +16 -97
- package/dist/lyra190.js.map +1 -1
- package/dist/lyra191.cjs +1 -1
- package/dist/lyra191.cjs.map +1 -1
- package/dist/lyra191.js +3 -87
- package/dist/lyra191.js.map +1 -1
- package/dist/lyra192.cjs +1 -1
- package/dist/lyra192.cjs.map +1 -1
- package/dist/lyra192.js +4 -55
- package/dist/lyra192.js.map +1 -1
- package/dist/lyra193.cjs +1 -1
- package/dist/lyra193.cjs.map +1 -1
- package/dist/lyra193.js +50 -31
- package/dist/lyra193.js.map +1 -1
- package/dist/lyra194.cjs +1 -1
- package/dist/lyra194.cjs.map +1 -1
- package/dist/lyra194.js +14 -7
- package/dist/lyra194.js.map +1 -1
- package/dist/lyra195.cjs +1 -1
- package/dist/lyra195.cjs.map +1 -1
- package/dist/lyra195.js +32 -13
- package/dist/lyra195.js.map +1 -1
- package/dist/lyra196.cjs +1 -1
- package/dist/lyra196.cjs.map +1 -1
- package/dist/lyra196.js +6 -38
- package/dist/lyra196.js.map +1 -1
- package/dist/lyra199.cjs +1 -1
- package/dist/lyra199.cjs.map +1 -1
- package/dist/lyra199.js +38 -51
- package/dist/lyra199.js.map +1 -1
- package/dist/lyra204.cjs +1 -1
- package/dist/lyra204.js +2 -2
- package/dist/lyra205.cjs +1 -1
- package/dist/lyra205.js +1 -1
- package/dist/lyra207.cjs +1 -1
- package/dist/lyra207.js +1 -1
- package/dist/lyra21.cjs +1 -1
- package/dist/lyra21.js +1 -1
- package/dist/lyra210.cjs +1 -1
- package/dist/lyra210.js +2 -2
- package/dist/lyra211.cjs +1 -1
- package/dist/lyra211.js +1 -1
- package/dist/lyra213.cjs +1 -1
- package/dist/lyra213.js +1 -1
- package/dist/lyra214.cjs +1 -1
- package/dist/lyra214.js +2 -2
- package/dist/lyra222.cjs +1 -1
- package/dist/lyra222.js +1 -1
- package/dist/lyra225.cjs +1 -1
- package/dist/lyra225.js +1 -1
- package/dist/lyra226.cjs +1 -1
- package/dist/lyra226.js +1 -1
- package/dist/lyra228.cjs +1 -1
- package/dist/lyra228.js +1 -1
- package/dist/lyra23.cjs +1 -1
- package/dist/lyra23.js +8 -8
- package/dist/lyra232.cjs +1 -1
- package/dist/lyra232.js +1 -1
- package/dist/lyra234.cjs +1 -1
- package/dist/lyra234.js +1 -1
- package/dist/lyra235.cjs +1 -1
- package/dist/lyra235.js +1 -1
- package/dist/lyra238.cjs +1 -1
- package/dist/lyra238.js +2 -2
- package/dist/lyra240.cjs +1 -1
- package/dist/lyra240.js +3 -3
- package/dist/lyra243.cjs +1 -1
- package/dist/lyra243.js +1 -1
- package/dist/lyra245.cjs +1 -1
- package/dist/lyra245.js +1 -1
- package/dist/lyra25.cjs +1 -1
- package/dist/lyra25.js +8 -8
- package/dist/lyra26.cjs +1 -1
- package/dist/lyra26.js +12 -12
- package/dist/lyra27.cjs +1 -1
- package/dist/lyra27.js +10 -10
- package/dist/lyra271.cjs +1 -1
- package/dist/lyra271.js +2 -2
- package/dist/lyra285.cjs +1 -1
- package/dist/lyra285.js +1 -1
- package/dist/lyra287.cjs +1 -1
- package/dist/lyra287.js +1 -1
- package/dist/lyra29.cjs +1 -1
- package/dist/lyra29.js +7 -7
- package/dist/lyra292.cjs +1 -1
- package/dist/lyra292.js +1 -1
- package/dist/lyra294.cjs +1 -1
- package/dist/lyra294.js +1 -1
- package/dist/lyra295.cjs +1 -1
- package/dist/lyra295.js +1 -1
- package/dist/lyra296.cjs +1 -1
- package/dist/lyra296.js +1 -1
- package/dist/lyra298.cjs +1 -1
- package/dist/lyra298.js +1 -1
- package/dist/lyra30.cjs +1 -1
- package/dist/lyra30.js +1 -1
- package/dist/lyra304.cjs +1 -1
- package/dist/lyra304.js +1 -1
- package/dist/lyra306.cjs +1 -1
- package/dist/lyra306.js +1 -1
- package/dist/lyra308.cjs +1 -1
- package/dist/lyra308.js +1 -1
- package/dist/lyra31.cjs +1 -1
- package/dist/lyra31.js +2 -2
- package/dist/lyra310.cjs +1 -1
- package/dist/lyra310.js +1 -1
- package/dist/lyra320.cjs +1 -1
- package/dist/lyra320.js +1 -1
- package/dist/lyra322.cjs +1 -1
- package/dist/lyra322.js +1 -1
- package/dist/lyra323.cjs +1 -1
- package/dist/lyra323.js +1 -1
- package/dist/lyra325.cjs +1 -1
- package/dist/lyra325.js +1 -1
- package/dist/lyra327.cjs +1 -1
- package/dist/lyra327.js +1 -1
- package/dist/lyra329.cjs +1 -1
- package/dist/lyra329.js +1 -1
- package/dist/lyra33.cjs +1 -1
- package/dist/lyra33.js +7 -7
- package/dist/lyra332.cjs +1 -1
- package/dist/lyra332.js +1 -1
- package/dist/lyra333.cjs +1 -1
- package/dist/lyra333.js +1 -1
- package/dist/lyra34.cjs +1 -1
- package/dist/lyra34.js +5 -5
- package/dist/lyra344.cjs +1 -1
- package/dist/lyra344.js +1 -1
- package/dist/lyra349.cjs +1 -1
- package/dist/lyra349.js +1 -1
- package/dist/lyra352.cjs +1 -1
- package/dist/lyra352.js +1 -1
- package/dist/lyra353.cjs +1 -1
- package/dist/lyra353.js +1 -1
- package/dist/lyra354.cjs +1 -1
- package/dist/lyra354.js +1 -1
- package/dist/lyra36.cjs +1 -1
- package/dist/lyra36.js +12 -12
- package/dist/lyra360.cjs +1 -1
- package/dist/lyra360.js +1 -1
- package/dist/lyra362.cjs +1 -1
- package/dist/lyra362.js +1 -1
- package/dist/lyra363.cjs +1 -1
- package/dist/lyra363.js +1 -1
- package/dist/lyra365.cjs +1 -1
- package/dist/lyra365.js +1 -1
- package/dist/lyra366.cjs +1 -1
- package/dist/lyra366.js +1 -1
- package/dist/lyra369.cjs +1 -1
- package/dist/lyra369.js +1 -1
- package/dist/lyra37.cjs +1 -1
- package/dist/lyra37.cjs.map +1 -1
- package/dist/lyra37.js +572 -572
- package/dist/lyra37.js.map +1 -1
- package/dist/lyra370.cjs +1 -1
- package/dist/lyra370.js +1 -1
- package/dist/lyra377.cjs +1 -1
- package/dist/lyra377.cjs.map +1 -1
- package/dist/lyra377.js +3 -2
- package/dist/lyra377.js.map +1 -1
- package/dist/lyra378.cjs +1 -1
- package/dist/lyra378.cjs.map +1 -1
- package/dist/lyra378.js +43 -19
- package/dist/lyra378.js.map +1 -1
- package/dist/lyra379.cjs +1 -1
- package/dist/lyra379.cjs.map +1 -1
- package/dist/lyra379.js +134 -1065
- package/dist/lyra379.js.map +1 -1
- package/dist/lyra38.cjs +1 -1
- package/dist/lyra38.js +1 -1
- package/dist/lyra380.cjs +1 -1
- package/dist/lyra380.cjs.map +1 -1
- package/dist/lyra380.js +36 -2
- package/dist/lyra380.js.map +1 -1
- package/dist/lyra381.cjs +1 -1
- package/dist/lyra381.cjs.map +1 -1
- package/dist/lyra381.js +40 -31
- package/dist/lyra381.js.map +1 -1
- package/dist/lyra382.cjs +1 -1
- package/dist/lyra382.cjs.map +1 -1
- package/dist/lyra382.js +222 -3
- package/dist/lyra382.js.map +1 -1
- package/dist/lyra383.cjs +1 -1
- package/dist/lyra383.cjs.map +1 -1
- package/dist/lyra383.js +111 -41
- package/dist/lyra383.js.map +1 -1
- package/dist/lyra384.cjs +1 -1
- package/dist/lyra384.cjs.map +1 -1
- package/dist/lyra384.js +3 -135
- package/dist/lyra384.js.map +1 -1
- package/dist/lyra385.cjs +1 -1
- package/dist/lyra385.cjs.map +1 -1
- package/dist/lyra385.js +38 -35
- package/dist/lyra385.js.map +1 -1
- package/dist/lyra386.cjs +1 -1
- package/dist/lyra386.cjs.map +1 -1
- package/dist/lyra386.js +333 -39
- package/dist/lyra386.js.map +1 -1
- package/dist/lyra387.cjs +1 -1
- package/dist/lyra387.cjs.map +1 -1
- package/dist/lyra387.js +46 -213
- package/dist/lyra387.js.map +1 -1
- package/dist/lyra388.cjs +1 -1
- package/dist/lyra388.cjs.map +1 -1
- package/dist/lyra388.js +67 -107
- package/dist/lyra388.js.map +1 -1
- package/dist/lyra389.cjs +1 -1
- package/dist/lyra389.cjs.map +1 -1
- package/dist/lyra389.js +174 -3
- package/dist/lyra389.js.map +1 -1
- package/dist/lyra39.cjs +1 -1
- package/dist/lyra39.js +1 -1
- package/dist/lyra390.cjs +1 -1
- package/dist/lyra390.cjs.map +1 -1
- package/dist/lyra390.js +24 -32
- package/dist/lyra390.js.map +1 -1
- package/dist/lyra391.cjs +1 -1
- package/dist/lyra391.cjs.map +1 -1
- package/dist/lyra391.js +71 -334
- package/dist/lyra391.js.map +1 -1
- package/dist/lyra392.cjs +1 -1
- package/dist/lyra392.cjs.map +1 -1
- package/dist/lyra392.js +3 -55
- package/dist/lyra392.js.map +1 -1
- package/dist/lyra393.cjs +1 -1
- package/dist/lyra393.cjs.map +1 -1
- package/dist/lyra393.js +32 -73
- package/dist/lyra393.js.map +1 -1
- package/dist/lyra394.cjs +1 -1
- package/dist/lyra394.cjs.map +1 -1
- package/dist/lyra394.js +3 -174
- package/dist/lyra394.js.map +1 -1
- package/dist/lyra395.cjs +1 -1
- package/dist/lyra395.cjs.map +1 -1
- package/dist/lyra395.js +38 -30
- package/dist/lyra395.js.map +1 -1
- package/dist/lyra396.cjs +1 -1
- package/dist/lyra396.cjs.map +1 -1
- package/dist/lyra396.js +66 -72
- package/dist/lyra396.js.map +1 -1
- package/dist/lyra397.cjs +1 -1
- package/dist/lyra397.cjs.map +1 -1
- package/dist/lyra397.js +55 -3
- package/dist/lyra397.js.map +1 -1
- package/dist/lyra398.cjs +1 -1
- package/dist/lyra398.cjs.map +1 -1
- package/dist/lyra398.js +273 -31
- package/dist/lyra398.js.map +1 -1
- package/dist/lyra399.cjs +1 -1
- package/dist/lyra399.cjs.map +1 -1
- package/dist/lyra399.js +35 -3
- package/dist/lyra399.js.map +1 -1
- package/dist/lyra400.cjs +1 -1
- package/dist/lyra400.cjs.map +1 -1
- package/dist/lyra400.js +23 -35
- package/dist/lyra400.js.map +1 -1
- package/dist/lyra401.cjs +1 -1
- package/dist/lyra401.cjs.map +1 -1
- package/dist/lyra401.js +103 -61
- package/dist/lyra401.js.map +1 -1
- package/dist/lyra402.cjs +1 -1
- package/dist/lyra402.cjs.map +1 -1
- package/dist/lyra402.js +28 -53
- package/dist/lyra402.js.map +1 -1
- package/dist/lyra403.cjs +1 -1
- package/dist/lyra403.cjs.map +1 -1
- package/dist/lyra403.js +12 -275
- package/dist/lyra403.js.map +1 -1
- package/dist/lyra404.cjs +1 -1
- package/dist/lyra404.cjs.map +1 -1
- package/dist/lyra404.js +118 -33
- package/dist/lyra404.js.map +1 -1
- package/dist/lyra405.cjs +1 -1
- package/dist/lyra405.cjs.map +1 -1
- package/dist/lyra405.js +42 -24
- package/dist/lyra405.js.map +1 -1
- package/dist/lyra406.cjs +1 -1
- package/dist/lyra406.cjs.map +1 -1
- package/dist/lyra406.js +217 -102
- package/dist/lyra406.js.map +1 -1
- package/dist/lyra407.cjs +1 -1
- package/dist/lyra407.cjs.map +1 -1
- package/dist/lyra407.js +27 -28
- package/dist/lyra407.js.map +1 -1
- package/dist/lyra408.cjs +1 -1
- package/dist/lyra408.cjs.map +1 -1
- package/dist/lyra408.js +174 -11
- package/dist/lyra408.js.map +1 -1
- package/dist/lyra409.cjs +1 -1
- package/dist/lyra409.cjs.map +1 -1
- package/dist/lyra409.js +38 -119
- package/dist/lyra409.js.map +1 -1
- package/dist/lyra41.cjs +1 -1
- package/dist/lyra41.js +2 -2
- package/dist/lyra410.cjs +1 -1
- package/dist/lyra410.cjs.map +1 -1
- package/dist/lyra410.js +2 -45
- package/dist/lyra410.js.map +1 -1
- package/dist/lyra411.cjs +1 -1
- package/dist/lyra411.cjs.map +1 -1
- package/dist/lyra411.js +18 -220
- package/dist/lyra411.js.map +1 -1
- package/dist/lyra412.cjs +1 -1
- package/dist/lyra412.cjs.map +1 -1
- package/dist/lyra412.js +1065 -28
- package/dist/lyra412.js.map +1 -1
- package/dist/lyra413.cjs +1 -1
- package/dist/lyra413.cjs.map +1 -1
- package/dist/lyra413.js +2 -176
- package/dist/lyra413.js.map +1 -1
- package/dist/lyra414.cjs +1 -1
- package/dist/lyra414.cjs.map +1 -1
- package/dist/lyra414.js +31 -38
- package/dist/lyra414.js.map +1 -1
- package/dist/lyra43.cjs +1 -1
- package/dist/lyra43.js +11 -11
- package/dist/lyra44.cjs +1 -1
- package/dist/lyra44.js +6 -6
- package/dist/lyra45.cjs +1 -1
- package/dist/lyra45.js +8 -8
- package/dist/lyra46.cjs +1 -1
- package/dist/lyra46.js +4 -4
- package/dist/lyra47.cjs +1 -1
- package/dist/lyra47.js +2 -2
- package/dist/lyra48.cjs +1 -1
- package/dist/lyra48.js +1 -1
- package/dist/lyra483.cjs +1 -1
- package/dist/lyra483.js +1 -1
- package/dist/lyra50.cjs +1 -1
- package/dist/lyra50.js +1 -1
- package/dist/lyra51.cjs +1 -1
- package/dist/lyra51.js +5 -5
- package/dist/lyra52.cjs +1 -1
- package/dist/lyra52.js +2 -2
- package/dist/lyra54.cjs +1 -1
- package/dist/lyra54.js +2 -2
- package/dist/lyra56.cjs +1 -1
- package/dist/lyra56.js +2 -2
- package/dist/lyra58.cjs +1 -1
- package/dist/lyra58.js +1 -1
- package/dist/lyra60.cjs +1 -1
- package/dist/lyra60.js +5 -5
- package/dist/lyra61.cjs +1 -1
- package/dist/lyra61.js +3 -3
- package/dist/lyra62.cjs +1 -1
- package/dist/lyra62.js +6 -6
- package/dist/lyra63.cjs +1 -1
- package/dist/lyra63.js +3 -3
- package/dist/lyra67.cjs +1 -1
- package/dist/lyra67.js +2 -2
- package/dist/lyra69.cjs +1 -1
- package/dist/lyra69.js +11 -11
- package/dist/lyra71.cjs +1 -1
- package/dist/lyra71.js +1 -1
- package/dist/lyra73.cjs +1 -1
- package/dist/lyra73.js +1 -1
- package/dist/lyra74.cjs +1 -1
- package/dist/lyra74.js +2 -2
- package/dist/lyra76.cjs +1 -1
- package/dist/lyra76.js +7 -7
- package/dist/lyra764.cjs +1 -1
- package/dist/lyra764.cjs.map +1 -1
- package/dist/lyra764.js +8 -2
- package/dist/lyra764.js.map +1 -1
- package/dist/lyra765.cjs +1 -1
- package/dist/lyra765.cjs.map +1 -1
- package/dist/lyra765.js +8 -2
- package/dist/lyra765.js.map +1 -1
- package/dist/lyra766.cjs +1 -1
- package/dist/lyra766.cjs.map +1 -1
- package/dist/lyra766.js +7 -7
- package/dist/lyra766.js.map +1 -1
- package/dist/lyra767.cjs +1 -1
- package/dist/lyra767.cjs.map +1 -1
- package/dist/lyra767.js +6 -6
- package/dist/lyra767.js.map +1 -1
- package/dist/lyra768.cjs +1 -1
- package/dist/lyra768.cjs.map +1 -1
- package/dist/lyra768.js +4 -4
- package/dist/lyra768.js.map +1 -1
- package/dist/lyra769.cjs +1 -1
- package/dist/lyra769.cjs.map +1 -1
- package/dist/lyra769.js +6 -6
- package/dist/lyra769.js.map +1 -1
- package/dist/lyra77.cjs +1 -1
- package/dist/lyra77.js +1 -1
- package/dist/lyra770.cjs +1 -1
- package/dist/lyra770.cjs.map +1 -1
- package/dist/lyra770.js +4 -4
- package/dist/lyra770.js.map +1 -1
- package/dist/lyra771.cjs +1 -1
- package/dist/lyra771.cjs.map +1 -1
- package/dist/lyra771.js +6 -6
- package/dist/lyra771.js.map +1 -1
- package/dist/lyra772.cjs +1 -1
- package/dist/lyra772.cjs.map +1 -1
- package/dist/lyra772.js +3 -3
- package/dist/lyra772.js.map +1 -1
- package/dist/lyra773.cjs +1 -1
- package/dist/lyra773.cjs.map +1 -1
- package/dist/lyra773.js +3 -3
- package/dist/lyra773.js.map +1 -1
- package/dist/lyra774.cjs +1 -1
- package/dist/lyra774.cjs.map +1 -1
- package/dist/lyra774.js +3 -3
- package/dist/lyra774.js.map +1 -1
- package/dist/lyra775.cjs +1 -1
- package/dist/lyra775.cjs.map +1 -1
- package/dist/lyra775.js +6 -6
- package/dist/lyra775.js.map +1 -1
- package/dist/lyra776.cjs +1 -1
- package/dist/lyra776.cjs.map +1 -1
- package/dist/lyra776.js +4 -4
- package/dist/lyra776.js.map +1 -1
- package/dist/lyra777.cjs +1 -1
- package/dist/lyra777.cjs.map +1 -1
- package/dist/lyra777.js +6 -6
- package/dist/lyra777.js.map +1 -1
- package/dist/lyra778.cjs +1 -1
- package/dist/lyra778.cjs.map +1 -1
- package/dist/lyra778.js +4 -4
- package/dist/lyra778.js.map +1 -1
- package/dist/lyra779.cjs +1 -1
- package/dist/lyra779.cjs.map +1 -1
- package/dist/lyra779.js +7 -7
- package/dist/lyra779.js.map +1 -1
- package/dist/lyra780.cjs +1 -1
- package/dist/lyra780.cjs.map +1 -1
- package/dist/lyra780.js +7 -7
- package/dist/lyra780.js.map +1 -1
- package/dist/lyra781.cjs +1 -1
- package/dist/lyra781.cjs.map +1 -1
- package/dist/lyra781.js +7 -7
- package/dist/lyra781.js.map +1 -1
- package/dist/lyra782.cjs +1 -1
- package/dist/lyra782.cjs.map +1 -1
- package/dist/lyra782.js +7 -7
- package/dist/lyra782.js.map +1 -1
- package/dist/lyra783.cjs +1 -1
- package/dist/lyra783.cjs.map +1 -1
- package/dist/lyra783.js +4 -4
- package/dist/lyra783.js.map +1 -1
- package/dist/lyra784.cjs +1 -1
- package/dist/lyra784.cjs.map +1 -1
- package/dist/lyra784.js +3 -3
- package/dist/lyra784.js.map +1 -1
- package/dist/lyra785.cjs +1 -1
- package/dist/lyra785.cjs.map +1 -1
- package/dist/lyra785.js +4 -4
- package/dist/lyra785.js.map +1 -1
- package/dist/lyra786.cjs +1 -1
- package/dist/lyra786.cjs.map +1 -1
- package/dist/lyra786.js +3 -3
- package/dist/lyra786.js.map +1 -1
- package/dist/lyra787.cjs +1 -1
- package/dist/lyra787.cjs.map +1 -1
- package/dist/lyra787.js +4 -4
- package/dist/lyra787.js.map +1 -1
- package/dist/lyra788.cjs +1 -1
- package/dist/lyra788.cjs.map +1 -1
- package/dist/lyra788.js +4 -4
- package/dist/lyra788.js.map +1 -1
- package/dist/lyra789.cjs +1 -1
- package/dist/lyra789.cjs.map +1 -1
- package/dist/lyra789.js +6 -6
- package/dist/lyra789.js.map +1 -1
- package/dist/lyra79.cjs +1 -1
- package/dist/lyra79.js +1 -1
- package/dist/lyra790.cjs +1 -1
- package/dist/lyra790.cjs.map +1 -1
- package/dist/lyra790.js +4 -4
- package/dist/lyra790.js.map +1 -1
- package/dist/lyra791.cjs +1 -1
- package/dist/lyra791.cjs.map +1 -1
- package/dist/lyra791.js +6 -6
- package/dist/lyra791.js.map +1 -1
- package/dist/lyra792.cjs +1 -1
- package/dist/lyra792.cjs.map +1 -1
- package/dist/lyra792.js +3 -3
- package/dist/lyra792.js.map +1 -1
- package/dist/lyra793.cjs +1 -1
- package/dist/lyra793.cjs.map +1 -1
- package/dist/lyra793.js +3 -3
- package/dist/lyra793.js.map +1 -1
- package/dist/lyra794.cjs +1 -1
- package/dist/lyra794.cjs.map +1 -1
- package/dist/lyra794.js +4 -4
- package/dist/lyra794.js.map +1 -1
- package/dist/lyra795.cjs +1 -1
- package/dist/lyra795.cjs.map +1 -1
- package/dist/lyra795.js +6 -6
- package/dist/lyra795.js.map +1 -1
- package/dist/lyra796.cjs +1 -1
- package/dist/lyra796.cjs.map +1 -1
- package/dist/lyra796.js +7 -7
- package/dist/lyra796.js.map +1 -1
- package/dist/lyra797.cjs +1 -1
- package/dist/lyra797.cjs.map +1 -1
- package/dist/lyra797.js +4 -4
- package/dist/lyra797.js.map +1 -1
- package/dist/lyra798.cjs +1 -1
- package/dist/lyra798.cjs.map +1 -1
- package/dist/lyra798.js +2 -8
- package/dist/lyra798.js.map +1 -1
- package/dist/lyra799.cjs +1 -1
- package/dist/lyra799.cjs.map +1 -1
- package/dist/lyra799.js +185 -8
- package/dist/lyra799.js.map +1 -1
- package/dist/lyra800.cjs +1 -1
- package/dist/lyra800.cjs.map +1 -1
- package/dist/lyra800.js +3 -185
- package/dist/lyra800.js.map +1 -1
- package/dist/lyra801.cjs +1 -1
- package/dist/lyra801.js +2 -3
- package/dist/lyra801.js.map +1 -1
- package/dist/lyra802.cjs +1 -1
- package/dist/lyra802.js +1 -1
- package/dist/lyra803.cjs +1 -1
- package/dist/lyra803.js +1 -1
- package/dist/lyra805.cjs +1 -1
- package/dist/lyra805.js +2 -2
- package/dist/lyra806.cjs +1 -1
- package/dist/lyra806.js +2 -2
- package/dist/lyra807.cjs +1 -1
- package/dist/lyra807.js +2 -2
- package/dist/lyra808.cjs +1 -1
- package/dist/lyra808.js +1 -1
- package/dist/lyra809.cjs +1 -1
- package/dist/lyra809.js +2 -2
- package/dist/lyra810.cjs +1 -1
- package/dist/lyra810.js +1 -1
- package/dist/lyra811.cjs +1 -1
- package/dist/lyra811.js +1 -1
- package/dist/lyra812.cjs +1 -1
- package/dist/lyra812.js +1 -1
- package/dist/lyra876.cjs +1 -1
- package/dist/lyra876.js +1 -1
- package/dist/lyra89.cjs +1 -1
- package/dist/lyra89.js +5 -5
- package/dist/lyra9.cjs +1 -1
- package/dist/lyra9.js +1 -1
- package/dist/lyra92.cjs +1 -1
- package/dist/lyra92.js +16 -16
- package/dist/lyra93.cjs +1 -1
- package/dist/lyra93.js +4 -4
- package/dist/lyra937.cjs +4 -1
- package/dist/lyra937.cjs.map +1 -1
- package/dist/lyra937.js +46 -71
- package/dist/lyra937.js.map +1 -1
- package/dist/lyra938.cjs +1 -4
- package/dist/lyra938.cjs.map +1 -1
- package/dist/lyra938.js +71 -46
- package/dist/lyra938.js.map +1 -1
- package/dist/lyra94.cjs +1 -1
- package/dist/lyra94.js +1 -1
- package/dist/lyra97.cjs +1 -1
- package/dist/lyra97.js +1 -1
- package/dist/lyra977.cjs +1 -1
- package/dist/lyra977.js +2 -2
- package/dist/lyra98.cjs +1 -1
- package/dist/lyra98.js +1 -1
- package/dist/lyra983.cjs +1 -1
- package/dist/lyra983.js +1 -1
- package/dist/lyra984.cjs +1 -1
- package/dist/lyra984.js +3 -3
- package/dist/lyra987.cjs +1 -1
- package/dist/lyra987.js +1 -1
- package/dist/lyra99.cjs +1 -1
- package/dist/lyra99.js +1 -1
- package/package.json +1 -1
package/dist/lyra37.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra37.cjs","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n Dispatch,\n KeyboardEventHandler,\n RefObject,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Checkbox,\n CheckboxGroup,\n Group,\n Input,\n Key,\n Provider,\n Radio,\n RadioGroup,\n TextContext,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./search-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid: isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n autoFocus={autofocus}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-label={ariaLabel}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n autoFocus={autofocus}\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n aria-label={ariaLabel}\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n setOpenPopover?: Dispatch<SetStateAction<boolean>>;\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n setOpenPopover,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = (!value ? [] : [...(value as T[])]).filter((v) => v !== undefined);\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n } else if (e.key === \"Tab\") {\n loadMoreButtonRef.current?.focus();\n } else if (e.key === \"Escape\") {\n setOpenPopover?.(false);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n loadMoreButtonRef,\n mousePosition,\n setOpenPopover,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n setOpenPopover,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : filteredItems?.length ?? 0;\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={(e) => {\n // Prevent selection of an item on Tab key down event\n e.stopPropagation();\n\n onKeyDown(e);\n }}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n\n if (getItemId(item) === undefined) return null;\n\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n {onMultiChange ? (\n <Checkbox\n value={getItemId(item)?.toString()}\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n onKeyDown={onKeyDown}\n onChange={() => toggleSelection(item)}\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active:\n activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </Checkbox>\n ) : (\n <Radio\n value={getItemId(item)?.toString()}\n key={getItemId(item)}\n data-index={virtualItem.index}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n onKeyDown={onKeyDown}\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active:\n activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </Radio>\n )}\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { selectedValue: selectedValueLabel } = useDictionary();\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <RadioGroup\n name={name}\n isRequired={isRequired}\n value={selectedValue ? getItemId(selectedValue)?.toString() : null}\n onChange={(newValue) => {\n onSingleChange(items.find((item) => getItemId(item)?.toString() === newValue)!);\n }}\n >\n {({ isInvalid: isInvalidFromContext }) => (\n <Provider values={[[TextContext, { slot: null as any }]]}>\n {/* Rendering a fallback radio to ensure the RadioGroup remains enabled, \n even when the popover is closed and the radio controls are not in the DOM. */}\n <Radio\n className=\"hidden\"\n value={selectedValue ? getItemId(selectedValue)?.toString() : \"\"}\n aria-label={selectedValueLabel}\n />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n autofocus={autofocus}\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || isInvalidFromContext || !!errorMessage}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n aria-label={ariaLabel}\n />\n </div>\n\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </Provider>\n )}\n </RadioGroup>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const { atLeastOneItemNeedsToBeSelected } = useDictionary();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { emptyValue: emptyValueLabel } = useDictionary();\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = useMemo(() => value ?? internalValue, [internalValue, value]);\n\n const handleChange = useCallback(\n (newValue: string[]) => {\n const newItems = newValue?.reduce((acc, id) => {\n const itemFromItemsList = items.find((item) => getItemId(item)?.toString() === id);\n const itemFromSelectedValue = selectedValue?.find(\n (item) => getItemId(item)?.toString() === id,\n );\n const newItem = itemFromItemsList ?? itemFromSelectedValue;\n if (newItem) {\n return [...acc, newItem];\n }\n return acc;\n }, [] as T[]);\n onMultiChange(newItems);\n },\n [getItemId, items, onMultiChange, selectedValue],\n );\n\n return (\n <CheckboxGroup\n value={selectedValue?.map((item) => getItemId(item)?.toString())}\n onChange={handleChange}\n isRequired={isRequired}\n >\n {({ isInvalid: isInvalidFromContext }) => (\n <Provider values={[[TextContext, { slot: null as any }]]}>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n\n {/* Rendering a fallback checkbox to ensure the CheckboxGroup remains enabled, \n even when the popover is closed and the checkboxes are not in the DOM. */}\n <Checkbox className=\"hidden\" aria-label={emptyValueLabel} />\n\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n labelId={labelId}\n />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n autofocus={autofocus}\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || !!errorMessage || isInvalidFromContext}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n aria-label={ariaLabel}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n customHtmlValidationMessages={{\n valueMissing: atLeastOneItemNeedsToBeSelected,\n }}\n />\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </Provider>\n )}\n </CheckboxGroup>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys, // TODO: ask about it\n fullWidth = false,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: SearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n return (\n <RadioGroup\n name={name}\n value={selectedValue ? getItemId(selectedValue)?.toString() : \"\"}\n onChange={(newValue) => {\n onSingleChange(items.find((item) => getItemId(item)?.toString() === newValue)!);\n }}\n >\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n [TextContext, { slot: null as any }],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onLoadMore={onLoadMore}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n </RadioGroup>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = useMemo(() => value ?? internalValue, [internalValue, value]);\n\n const handleChange = useCallback(\n (newValue: string[]) => {\n const newItems = newValue?.reduce((acc, id) => {\n const itemFromItemsList = items.find((item) => getItemId(item)?.toString() === id);\n const itemFromSelectedValue = selectedValue?.find(\n (item) => getItemId(item)?.toString() === id,\n );\n const newItem = itemFromItemsList ?? itemFromSelectedValue;\n if (newItem) {\n return [...acc, newItem];\n }\n return acc;\n }, [] as T[]);\n onMultiChange(newItems);\n },\n [getItemId, items, onMultiChange, selectedValue],\n );\n\n return (\n <CheckboxGroup\n value={selectedValue?.map((item) => getItemId(item)?.toString())}\n onChange={handleChange}\n >\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n [TextContext, { slot: null as any }],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onLoadMore={onLoadMore}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n </CheckboxGroup>\n );\n};\n"],"names":["SingleValueButton","ariaLabel","autofocus","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","setOpenPopover","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","v","currentValueIds","newValue","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","Checkbox","SharedListItem","Radio","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","selectedValueLabel","useLocale","hasInputHeader","shouldRenderInputHeader","outerSlot","outerSlotsWrapper","wrapper","selectedValue","RadioGroup","isInvalidFromContext","Provider","TextContext","InputHeader","InputFooter","MultiSearchListField","labelId","atLeastOneItemNeedsToBeSelected","emptyValueLabel","handleChange","newItems","acc","itemFromItemsList","itemFromSelectedValue","newItem","CheckboxGroup","SearchListFieldWithCustomTrigger","children","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"uoFAyDMA,GAAoB,CAAmB,CAC3C,aAAcC,EACd,UAAAC,EACA,kBAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EACA,KAAAC,EACA,YAAAC,EACA,YAAAC,EACA,iCAAAC,EACA,eAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,MAAAC,CACF,IAAsB,OACpB,KAAM,CAAE,2BAAAC,EAA4B,WAAAC,CAAW,EAAIC,oBAAkB,CACnE,UAAAZ,EACA,WAAY,GACZ,UAAAH,EACA,WAAAE,EACA,YAAa,EAAA,CACd,EAOKc,EAAaC,GAA8C,EAC1DA,EAAE,MAAQ,UAAYA,EAAE,MAAQ,cAAgB,CAACnB,GACpDmB,EAAE,gBAAgB,EAClBb,GAAA,MAAAA,EAAW,SACFa,EAAE,MAAQ,aAAeA,EAAE,MAAQ,UAC9BX,GAAA,MAAAA,IAGPW,EAAE,KAAOA,EAAE,IAAI,MAAM,eAAe,IAE3CC,GAAAA,UAAU,IAAM,CACAZ,GAAA,MAAAA,GAAA,CACf,EAEGG,EAAe,UACjBA,EAAe,QAAQ,MAAM,EAC7BA,EAAe,QAAQ,kBAAkB,EAAGA,EAAe,QAAQ,MAAM,MAAM,GAGrF,EAGE,OAAAU,EAAA,kBAAA,KAAC,MAAI,CAAA,UAAU,0BACZ,SAAA,CAAAR,EACDQ,EAAA,kBAAA,KAACC,GAAA,OAAA,CACC,UAAWvB,EACX,gBAAc,UACd,gBAAeQ,EACf,aAAYT,EACZ,UAAW,CAAC,CAAE,UAAAyB,EAAW,UAAAC,CAAA,IACvBR,EAAW,CACT,UAAAQ,EACA,UAAAD,EACA,UAAW,cAAA,CACZ,EAEH,WAAAnB,EACA,UAAAc,EACA,QAASV,EAET,SAAA,CAACa,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAX,GAAoCI,GACjCW,EAAAb,EAAqBE,CAAK,IAA1B,YAAAW,EAA6B,cAC7B,KACHX,GAASX,EAASW,CAAK,wDACnB,SAASX,EAAAW,CAAK,CAAE,CAAA,0BAElBY,GAAK,KAAA,CAAA,QAAQ,cAAc,MAAM,YAC/B,SACHjB,CAAA,CAAA,CAAA,EAEJ,EACAY,EAAAA,kBAAAA,KAAC,MAAI,CAAA,UAAU,0BACZ,SAAA,CAAAP,GAAS,CAACV,GAAc,CAACJ,EAEtB2B,EAAAA,kBAAAA,IAAAC,EAAA,kBAAA,SAAA,CAAA,SAAAD,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWZ,EAA2B,EACtC,KAAK,SACL,cAAgBI,GAAM,CACpBA,EAAE,gBAAgB,EAClBb,GAAA,MAAAA,EAAW,OACb,EACA,QAAUa,GAAM,CACdA,EAAE,gBAAgB,EAClBb,GAAA,MAAAA,EAAW,OACb,EAEA,SAAAqB,EAAAA,kBAAAA,IAACE,GAAAA,QAAQ,CAAA,KAAK,OAAQ,CAAA,CAAA,GAE1B,EACE,KACHF,EAAA,kBAAA,IAAAE,GAAA,QAAA,CAAQ,KAAK,kBAAkB,UAAU,SAAU,CAAA,CAAA,CACtD,CAAA,CAAA,CAAA,CACF,EACC5B,CAAA,EACH,CAEJ,EAEM6B,GAAuB,CAAmB,CAC9C,aAAchC,EACd,UAAAC,EACA,UAAAG,EACA,UAAA6B,EACA,SAAA5B,EACA,WAAAC,EACA,UAAAC,EACA,MAAA2B,EACA,SAAA1B,EACA,YAAAE,EACA,YAAAC,EACA,eAAAE,EACA,MAAAG,CACF,IAMM,CACJ,KAAM,CAAE,WAAYmB,CAAiB,EAAIhB,oBAAkB,CACzD,UAAAZ,EACA,WAAY,GACZ,UAAAH,EACA,WAAAE,EACA,YAAa,EAAA,CACd,EAMKc,EAAYgB,EAAA,YACff,GAA8C,CACzCA,EAAE,MAAQ,aAAeA,EAAE,MAAQ,UACzBX,EAAA,EAGLW,EAAE,KAAOA,EAAE,IAAI,MAAM,eAAe,IAE3CC,GAAAA,UAAU,IAAM,CACFZ,EAAA,CAAA,CACb,EAEGG,EAAe,UACjBA,EAAe,QAAQ,MAAM,EAC7BA,EAAe,QAAQ,kBAAkB,EAAGA,EAAe,QAAQ,MAAM,MAAM,GAGrF,EACA,CAACH,EAAaG,CAAc,CAC9B,EAEMwB,EAAWD,EAAA,YACdE,GAAmB,CAEhBtB,GAAAR,EACEQ,EAAM,OAAQuB,GAAS,CACf,MAAAC,EAASP,EAAUM,CAAI,EACtB,MAAA,CAACD,EAAK,IAAIE,CAAM,CACxB,CAAA,CACH,CACJ,EACA,CAACP,EAAWzB,EAAUQ,CAAK,CAC7B,EAGE,OAAAa,EAAA,kBAAA,IAACY,GAAA,MAAA,CACC,UAAW,CAAC,CAAE,cAAehB,EAAW,UAAAC,CAAA,IACtCS,EAAiB,CACf,UAAAT,EACA,UAAAD,EACA,UAAWiB,GAAA,KACThB,GAAa,CAACnB,GAAa,CAACD,GAAc,CAACmB,EAAY,eAAiB,GACxE,4DACA,gBAAA,CACF,CACD,EAGH,SAAAF,EAAA,kBAAA,KAACC,GAAA,OAAA,CACC,UAAWvB,EACX,QAASS,EACT,UAAAU,EACA,WAAAd,EACA,UAAU,2BACV,aAAYN,EAEZ,SAAA,CAAA6B,wBAAC,MAAI,CAAA,UAAU,iBACZ,SAAAb,GAASA,EAAM,OACda,EAAA,kBAAA,IAACc,GAAA,cAAA,CACC,MAAOT,GAAS,iBAChB,UAAU,sCACV,SAAU5B,EAAa,OAAY+B,EAElC,WAAM,IAAKE,GACVV,wBAACe,GAAAA,UAA+B,GAAIX,EAAUM,CAAI,EAAG,WAAAjC,EAClD,SAASD,EAAAkC,CAAI,GADDN,EAAUM,CAAI,CAE7B,CACD,CAAA,CAAA,EAGFV,EAAA,kBAAA,IAAAD,GAAA,KAAA,CAAK,MAAM,YAAa,UAAY,CAAA,EAEzC,EACCC,EAAA,kBAAA,IAAAE,GAAA,QAAA,CAAQ,KAAK,kBAAkB,UAAU,sBAAuB,CAAA,CAAA,CAAA,CAAA,CACnE,CACF,CAEJ,EAEMc,GAAc,CAAC,CACnB,QAAA1C,EACA,UAAA2C,EACA,UAAA1B,EACA,cAAA2B,EACA,MAAAC,EACA,eAAAnC,EACA,SAAAoC,CACF,IAA4F,CAC1F,MAAMC,EAAKC,EAAAA,MAAM,EACX,CAAE,MAAAC,EAAO,OAAAC,CAAO,EAAIC,iBAAc,EAClCC,EAAcC,gBAAaV,GAAa,GAAO,CAAE,MAAO,IAAK,YAAa,IAAK,EAC/E,CAAE,2BAAA7B,CAA2B,EAAIE,EAAAA,kBAAkB,CAAE,UAAW,GAAM,EAE5EsC,OAAAA,EAAAA,UAAU,IAAM,QACd9B,EAAAd,EAAe,UAAf,MAAAc,EAAwB,OAG1B,EAAG,EAAE,0BAEF,MAAI,CAAA,UAAU,OACb,SAACJ,EAAA,kBAAA,KAAA,MAAA,CAAI,UAAU,sHACb,SAAA,CAAAM,EAAA,kBAAA,IAAC6B,GAAA,MAAA,CACC,IAAK7C,EACL,GAAAqC,EACA,UAAU,yEACV,SAAW7B,GAAM,SACN4B,IAAAtB,EAAAN,EAAE,SAAF,YAAAM,EAAU,QAAS,EAAE,EACdoB,GAAA,MAAAA,GAAAY,EAAAtC,EAAE,SAAF,YAAAsC,EAAU,MAC5B,EACA,YAAaN,EACb,MAAOL,GAAS,GAChB,UAAYY,GAAU,CAEhBA,EAAM,OAAS,OACjBA,EAAM,eAAe,EAGvBxC,GAAA,MAAAA,EAAYwC,EAAK,CACnB,CACF,EACCZ,GAASA,EAAM,OACdnB,EAAA,kBAAA,IAACL,GAAA,OAAA,CACC,aAAY4B,EACZ,UAAWnC,EAA2B,EACtC,oBAAmB,GACnB,QAAS,IAAM,OACbgC,EAAS,EAAE,GACXtB,EAAAd,EAAe,UAAf,MAAAc,EAAwB,OAC1B,EAEA,SAAAE,EAAAA,kBAAAA,IAACE,GAAAA,QAAQ,CAAA,KAAK,OAAQ,CAAA,CAAA,CAAA,EAEtB,KACH5B,EACAoD,EAAe1B,EAAAA,kBAAAA,IAAAgC,GAAAA,QAAA,CAAQ,UAAU,OAAO,KAAK,QAAQ,EAAK,IAAA,CAAA,CAC7D,CACF,CAAA,CAEJ,EAEMC,GAAmBrD,GAAkB,CACnC,MAAAsD,EAAoBC,SAAiC,IAAI,EACzD,CAACC,EAAyBC,CAA0B,EAAIC,EAAAA,SAAS,EAAK,EAG5EV,OAAAA,EAAAA,UAAU,IAAMS,EAA2B,EAAK,EAAG,CAACzD,CAAI,CAAC,EAClD,CAAE,kBAAAsD,EAAmB,wBAAAE,EAAyB,2BAAAC,CAA2B,CAClF,EAaME,GAAmB,CAAmB,CAC1C,mBAAAC,EACA,cAAAC,EACA,UAAArC,EACA,kBAAA8B,EACA,cAAAQ,EACA,eAAAC,EACA,eAAAC,EACA,MAAAzD,CACF,IAAgC,CACxB,MAAA0D,EAAoBC,EAAAA,QAAQ,IAAM,CAClC,GAAA,MAAM,QAAQ3D,CAAK,EACrB,OAAIA,EAAM,OACDsD,GAAA,YAAAA,EAAe,UAAW/B,GAASN,EAAUM,CAAI,IAAMN,EAAUjB,EAAM,CAAC,CAAC,GAEzE,KAEAA,EACF,OAAAsD,GAAA,YAAAA,EAAe,UAAW/B,GAASN,EAAUM,CAAI,IAAMN,EAAUjB,CAAK,KAAM,CAEpF,EAAA,CAACsD,EAAerC,EAAWjB,CAAK,CAAC,EAE9B4D,EAAuBxC,EAAA,YAC1ByC,GAAyB,CACpB,GAAA,OAAO,UAAUA,CAAW,GAC9B,QAASC,EAAID,EAAe,EAAGC,GAAK,EAAGA,IACjC,GAAA,EAACT,GAAA,MAAAA,EAAoB,SAASpC,EAAUqC,EAAcQ,CAAC,CAAC,IACnD,OAAA,KAAK,IAAIA,EAAG,CAAC,EAInB,MAAA,EACT,EACA,CAACT,EAAoBC,EAAerC,CAAS,CAC/C,EAEM8C,EAAmB3C,EAAA,YACtByC,GAAyB,CACpB,GAAA,OAAO,UAAUA,CAAW,GAC9B,QAASC,EAAID,EAAe,EAAGC,EAAIR,EAAc,OAAQQ,IACnD,GAAA,EAACT,GAAA,MAAAA,EAAoB,SAASpC,EAAUqC,EAAcQ,CAAC,CAAC,IAC1D,OAAO,KAAK,IAAIR,EAAc,OAAS,EAAGQ,CAAC,EAI1C,MAAA,EACT,EACA,CAACT,EAAoBC,EAAerC,CAAS,CAC/C,EAGM+C,EAAkB5C,EAAA,YACrBG,GAAY,CACX,GAAIgC,EAAe,CACjB,MAAMU,GAAiBjE,EAAa,CAAC,GAAIA,CAAa,EAAvB,CAAK,GAAqB,OAAQkE,GAAMA,IAAM,MAAS,EAChFC,EAAkBF,EAAa,IAAIhD,CAAS,EAC5CmD,EAAWD,GAAA,MAAAA,EAAiB,SAASlD,EAAUM,CAAI,GACrD0C,EAAa,OAAQC,GAAMjD,EAAUiD,CAAC,IAAMjD,EAAUM,CAAI,CAAC,EAC3D,CAAC,GAAG0C,EAAc1C,CAAI,EAC1BgC,GAAA,MAAAA,EAAgBa,QACPZ,IACTA,GAAA,MAAAA,EAAiBjC,GAErB,EACA,CAACN,EAAWsC,EAAeC,EAAgBxD,CAAK,CAClD,EAEMqE,EAAoBjD,EAAA,YACvBG,GACK,MAAM,QAAQvB,CAAK,EACdA,EAAM,KAAMsE,GAAarD,EAAUqD,CAAQ,IAAMrD,EAAUM,CAAI,CAAC,EAEhEvB,EAAQiB,EAAUjB,CAAK,IAAMiB,EAAUM,CAAI,EAAI,GAG1D,CAACN,EAAWjB,CAAK,CACnB,EAGM,CAACuE,EAAYC,CAAa,EAAIrB,EAAAA,SAAS,CAAC,EAExCsB,EAAgBC,GAAAA,iBAAiB,EACjCC,EAAwB3B,SAA2B,MAAS,EAG5D5C,EAAYgB,EAAA,YACff,GAA6C,OAC5C,MAAMuE,EAAqBL,EAEvB,GAAAlE,EAAE,MAAQ,YAAa,CACzBA,EAAE,eAAe,EACX,MAAAwE,EAAgBd,EAAiBa,CAAkB,EAErDC,GAAiB,IACnBL,EAAcK,CAAa,EAC3BF,EAAsB,QAAUF,EAClC,SACSpE,EAAE,MAAQ,UAAW,CAC9BA,EAAE,eAAe,EACX,MAAAyE,EAAoBlB,EAAqBgB,CAAkB,EAE7DE,GAAqB,IACvBN,EAAcM,CAAiB,EAC/BH,EAAsB,QAAUF,EAClC,MACSpE,EAAE,MAAQ,QACH2D,EAAAV,EAAciB,CAAU,CAAC,EAChClE,EAAE,MAAQ,OACnBM,EAAAoC,EAAkB,UAAlB,MAAApC,EAA2B,QAClBN,EAAE,MAAQ,WACnBoD,GAAA,MAAAA,EAAiB,IAErB,EACA,CACEc,EACAjB,EACAS,EACAH,EACAb,EACA0B,EACAhB,EACAO,CAAA,CAEJ,EAGMe,EAAgB3D,EAAA,YACpB,CAAC4D,EAAqBC,IAAkB,CAClCD,GAAcL,EAAsB,UAAYF,IAClDD,EAAcS,CAAK,EACnBN,EAAsB,QAAUF,EAEpC,EACA,CAACA,CAAa,CAChB,EAEO,MAAA,CACL,WAAAF,EACA,cAAAC,EACA,kBAAAH,EACA,UAAAjE,EACA,cAAA2E,EACA,kBAAArB,EACA,gBAAAM,CACF,CACF,EAKMkB,GAAe,CAAC,CACpB,kBAAAxB,EACA,cAAAc,CACF,KAIE/B,EAAAA,UAAU,IAAM,CACV,GAAAiB,IAAsB,QAAaA,GAAqB,EAC1D,OAAAc,EAAcd,CAAiB,EAExB,IAAM,CACXc,EAAc,CAAC,CACjB,CACF,EACC,CAACd,EAAmBc,CAAa,CAAC,EAC9B,MAGHW,GAAuB,CAAmB,CAC9C,UAAAC,EACA,mBAAA/B,EACA,UAAApC,EACA,SAAA5B,EACA,UAAAyC,EACA,MAAAuD,EACA,MAAAnE,EACA,WAAAoE,EACA,cAAA/B,EACA,cAAAxB,EACA,eAAAyB,EACA,KAAA/D,EACA,UAAA8F,EACA,eAAA1F,EACA,qBAAAC,EACA,eAAA2D,EACA,WAAA+B,EACA,MAAAxF,CACF,IAAoC,WAClC,KAAM,CAAE,SAAAyF,EAAU,eAAAC,CAAe,EAAIpD,iBAAc,EAC7C,CAAE,cAAAgB,EAAe,MAAAtB,EAAO,SAAAC,CAAA,EAAa0D,GAAAA,sBAAyB,CAClE,SAAAtG,EACA,MAAAgG,EACA,cAAAtD,CAAA,CACD,EACK,CAAE,KAAM6D,CAAW,EAAIC,wBAAqB,EAC5C,CAAE,wBAAA5C,EAAyB,kBAAAF,EAAmB,2BAAAG,CAA2B,EAC7EJ,GAAgBrD,CAAI,EAEhB,CACJ,WAAA8E,EACA,kBAAAF,EACA,cAAAU,EACA,UAAA3E,EACA,kBAAAsD,EACA,cAAAc,EACA,gBAAAR,GACEZ,GAAiB,CACnB,mBAAAC,EACA,cAAAC,EACA,UAAArC,EACA,kBAAA8B,EACA,cAAAQ,EACA,eAAAC,EACA,MAAAxD,EACA,eAAAyD,CAAA,CACD,EAEK,CAACqC,EAAiBC,CAAkB,EAAI5C,EAAA,UAC5CxC,EAAA6E,EAAW,UAAX,YAAA7E,EAAoB,WACtB,EACAqF,GAAA,QAAiB,SAAU,IAAM,OACZD,GAAApF,EAAA6E,EAAW,UAAX,YAAA7E,EAAoB,WAAW,CAAA,CACnD,EAEK,MAAAsF,EAAeH,KAAmBnD,EAAA6C,EAAW,UAAX,YAAA7C,EAAoB,aAEtDuD,EAAYlD,SAAuB,IAAI,EAEvCmD,EAAQb,IAAchC,GAAA,YAAAA,EAAe,SAAU,GAAK,GAAIA,GAAA,YAAAA,EAAe,SAAU,EAEjF8C,EAAcC,GAAAA,eAAe,CACjC,MAAAF,EACA,aAAc,IAAM,GACpB,iBAAkB,IAAMD,EAAU,QAClC,SAAU,CAAA,CACX,EAGDzD,EAAAA,UAAU,IAAM,CACV8B,IAAe,QAAaA,GAAc,IAAKjB,GAAA,MAAAA,EAAe,UAE5DiB,IAAejB,EAAc,OAAS,GAAKgC,EAC7Cc,EAAY,cAAcD,CAAK,EAE/BC,EAAY,cAAc,KAAK,IAAI7B,EAAY4B,EAAQ,CAAC,CAAC,EAE7D,EACC,CAAC5B,EAAY4B,EAAO7C,EAAc,OAAQgC,EAAYc,CAAW,CAAC,EAE/D,MAAAE,EAAeF,EAAY,gBAAgB,EAG/C,OAAAvF,EAAA,kBAAA,IAAC0F,GAAA,QAAA,CACC,UAAU,MACV,OAAQ9G,EACR,eAAc,GACd,WAAA+F,EACA,aAAc/B,EACd,aAAYvC,EACZ,qBAAoB,GACpB,UAAAqE,EACA,MACE,CACE,MAAOU,GAAgBA,EAAe,IAAMA,EAAe,KAAO,QAClE,UAAAb,CACF,EAGD,SACC3F,EAAAc,yBAAC,MAAI,CAAA,UAAU,QACb,SAAA,CAAAM,EAAA,kBAAA,IAACgB,GAAA,CACC,cAAAE,EACA,UAAAD,EACA,MAAAE,EACA,SAAWhC,GAAU,CAGnBM,GAAAA,UAAU,IAAM,CACd2B,EAASjC,CAAK,EACdwE,EAAc,CAAC,CAAA,CAChB,EAED4B,EAAY,eAAe,CAAC,CAC9B,EACA,eAAAvG,EACA,UAAYQ,GAAM,CAEhBA,EAAE,gBAAgB,EAElBD,EAAUC,CAAC,CAAA,CACb,CACF,EACAQ,EAAAA,kBAAAA,IAACqE,GAAa,CAAA,kBAAAxB,EAAsC,cAAAc,CAA8B,CAAA,EAClF3D,EAAA,kBAAA,IAAC,MAAA,CACC,IAAKqF,EACL,UAAU,yBACV,MAAO,CACL,QAAS,SACT,OAAQ,KAAK,IAAI,IAAKE,EAAY,gBAAkBd,EAAa,EAAI,EAAE,CACzE,EAEA,SAAAzE,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,kBACV,MAAO,CACL,OAAQuF,EAAY,aAAa,CACnC,EAEA,SAAAvF,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,gCACV,MAAO,CACL,UAAW,gBAAc2F,EAAAF,GAAA,YAAAA,EAAe,KAAf,YAAAE,EAAmB,QAAS,CAAC,KACxD,EAEC,SAAAF,EAAa,IAAKG,GAAgB,UAGjC,GAF0BA,EAAY,QAAUN,EAAQ,GAE/Bb,EAErB,OAAAzE,EAAA,kBAAA,IAAC,MAAA,CAEC,aAAY4F,EAAY,MACxB,IAAKL,EAAY,eAEjB,kCAAC,MACC,CAAA,SAAA,CAACvF,EAAAA,kBAAAA,IAAA6F,GAAA,UAAA,CAAU,UAAU,MAAO,CAAA,EAC5B7F,EAAA,kBAAA,IAACL,GAAA,OAAA,CACC,WAAYsB,EACZ,cAAeoB,EACf,cAAeA,EACf,IAAKH,EACL,UAAW6C,EAAW,CACpB,UACE,iOAAA,CACH,EACD,QAAS,IAAM,OACFN,EAAA,GAGX3E,EAAAd,EAAe,UAAf,MAAAc,EAAwB,OAC1B,EACA,UAAYN,GAAM,OACZA,EAAE,MAAQ,YACZA,EAAE,eAAe,GACjBM,EAAAd,EAAe,UAAf,MAAAc,EAAwB,QAE5B,EAEC,SAAA8E,CAAA,CAAA,CACH,CACF,CAAA,CAAA,EA9BKgB,EAAY,GA+BnB,EAEG,CACC,MAAAlF,EAAO+B,EAAcmD,EAAY,KAAK,EAE5C,OAAIxF,EAAUM,CAAI,IAAM,OAAkB,KAGxCV,EAAA,kBAAA,IAAC,MAAA,CAEC,aAAY4F,EAAY,MACxB,IAAKL,EAAY,eAEhB,SACC7C,EAAA1C,EAAA,kBAAA,IAAC8F,GAAA,SAAA,CACC,OAAOhG,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,WAExB,UAAU,iCACV,cAAgBqE,GAAe,CACfD,EAAAC,EAAYyB,EAAY,KAAK,CAC7C,EACA,YACEpD,GAAA,YAAAA,EAAoB,SAASpC,EAAUM,CAAI,KAAgB,GAE7D,UAAAnB,EACA,SAAU,IAAM4D,EAAgBzC,CAAI,EAEpC,SAAAV,EAAA,kBAAA,IAAC+F,GAAA,eAAA,CAEC,aAAY,GACZ,KAAArF,EACA,MAAO,CACL,OACEgD,IAAekC,EAAY,OAAS,CAACxD,EACvC,UACEI,GAAA,YAAAA,EAAoB,SAASpC,EAAUM,CAAI,KAAgB,GAC7D,SAAU8C,EAAkB9C,CAAI,CAClC,EACA,qBAAAzB,CAAA,EAVKmB,EAAUM,CAAI,CAAA,CAWrB,EAvBKN,EAAUM,CAAI,CAAA,EA0BrBV,EAAA,kBAAA,IAACgG,GAAA,MAAA,CACC,OAAOlE,GAAA1B,EAAUM,CAAI,IAAd,YAAAoB,GAAiB,WAExB,aAAY8D,EAAY,MACxB,UAAU,iCACV,cAAgBzB,GAAe,CACfD,EAAAC,EAAYyB,EAAY,KAAK,CAC7C,EACA,YACEpD,GAAA,YAAAA,EAAoB,SAASpC,EAAUM,CAAI,KAAgB,GAE7D,UAAAnB,EAEA,SAAAS,EAAA,kBAAA,IAAC+F,GAAA,eAAA,CAEC,aAAY,GACZ,KAAArF,EACA,MAAO,CACL,OACEgD,IAAekC,EAAY,OAAS,CAACxD,EACvC,UACEI,GAAA,YAAAA,EAAoB,SAASpC,EAAUM,CAAI,KAAgB,GAC7D,SAAU8C,EAAkB9C,CAAI,CAClC,EACA,qBAAAzB,CAAA,EAVKmB,EAAUM,CAAI,CAAA,CAWrB,EAvBKN,EAAUM,CAAI,CAAA,CAwBrB,EA3DGkF,EAAY,GA6DnB,CAAA,CAGL,CAAA,CAAA,CAAA,CACH,CAAA,CACF,CACF,EACCN,EAAQ,KACPtF,EAAAA,kBAAAA,IAACD,GAAK,KAAA,CAAA,QAAQ,cAAc,MAAM,YAAY,UAAU,SACrD,SACH8E,CAAA,CAAA,CAAA,CAAA,CAEJ,EACE,IAAA,CACN,CAEJ,EAEMoB,GAAqB,CAAmB,CAC5C,UAAA7F,EACA,KAAA8F,EACA,MAAA/G,CACF,IAKM+G,EACE,MAAM,QAAQ/G,CAAK,EACdA,EAAM,IAAKkE,GAChBrD,EAAAA,kBAAAA,IAAC,SAAyB,KAAK,SAAS,KAAAkG,EAAY,MAAO9F,EAAUiD,CAAC,CAAA,EAA1DjD,EAAUiD,CAAC,CAAkD,CAC1E,EACQlE,EACFa,EAAA,kBAAA,IAAC,SAAM,KAAK,SAAS,KAAAkG,EAAY,MAAO9F,EAAUjB,CAAK,EAAG,EAE1D,KAGJ,KAGIgH,GAAkB,CAAmB,CAChD,aAAchI,EACd,UAAAC,EACA,aAAAgI,EACA,YAAAC,EACA,kBAAAhI,EACA,mBAAAmE,EACA,QAAAlE,EACA,aAAAgI,EACA,UAAA/H,EAAY,GACZ,UAAA6B,EACA,SAAA5B,EACA,cAAA+H,EACA,gBAAAC,EACA,gBAAAC,EACA,WAAAhI,EACA,UAAAC,EACA,UAAAuC,EACA,WAAAyF,EACA,MAAAlC,EACA,MAAAnE,EACA,KAAA6F,EACA,SAAAvH,EACA,WAAA8F,EACA,cAAAvD,EACA,aAAAyF,EACA,eAAAC,EACA,YAAA9H,EACA,UAAA4F,EAAY,eACZ,iCAAA3F,EACA,qBAAAE,EACA,UAAAC,EACA,MAAAC,CACF,IAA+B,OAC7B,KAAM,CAAE,WAAY0H,GAAyBC,EAAAA,WAAWC,GAAAA,iBAAiB,EACnE/H,EAAiBmD,SAAyB,IAAI,EAC9C6E,EAAoB7E,SAA0B,IAAI,EAClDwC,EAAaxC,SAAuB,IAAI,EACxC,CAAC8E,EAAeC,CAAgB,EAAI5E,EAAAA,SAAwBnD,GAASiH,CAAY,EACjF,CAACe,EAAQC,CAAS,EAAI9E,EAAAA,SAAS,EAAK,EACpCzD,EAAc,IAAM,OACxBuI,EAAU,EAAI,GACdtH,EAAAkH,EAAkB,UAAlB,MAAAlH,EAA2B,OAC7B,EACMuH,EAAe,IAAMD,EAAU,EAAK,EAEpCzE,EAAiBpC,EAAA,YACpBgD,GAAiB,CAChB2D,EAAiB3D,CAAQ,EACzB5E,GAAA,MAAAA,EAAW4E,GACE8D,EAAA,CACf,EACA,CAAC1I,CAAQ,CACX,EAEM,CAAE,cAAe2I,CAAmB,EAAI7F,iBAAc,EAEtD,CAAE,UAAA8C,CAAU,EAAIgD,aAAU,EAE1BC,GAAiB1E,EAAA,QACrB,IAAM2E,GAAwB,wBAAA,CAAE,cAAAlB,EAAe,gBAAAE,EAAiB,MAAApG,EAAO,EACvE,CAACkG,EAAeE,EAAiBpG,CAAK,CACxC,EAEM,CAAE,UAAAqH,EAAW,kBAAAC,GAAmB,QAAAC,CAAA,EAAYtI,EAAAA,kBAAkB,CAClE,UAAAf,EACA,UAAAG,EACA,WAAYD,GAAcoI,EAC1B,eAAAW,GACA,SAAU,CAAC,CAACnH,CAAA,CACb,EAGDuB,EAAAA,UAAU,IAAM,CACdsF,EAAiB/H,GAASiH,CAAY,CAAA,EACrC,CAACA,EAAcjH,CAAK,CAAC,EAExB,MAAM0I,EAAgB1I,GAAS8H,EAG7B,OAAAjH,EAAA,kBAAA,IAAC8H,GAAA,WAAA,CACC,KAAA5B,EACA,WAAAQ,EACA,MAAOmB,GAAgB/H,EAAAM,EAAUyH,CAAa,IAAvB,YAAA/H,EAA0B,WAAa,KAC9D,SAAWyD,GAAa,CACPZ,EAAA6B,EAAM,KAAM9D,GAAS,QAAA,QAAAZ,GAAAM,EAAUM,CAAI,IAAd,YAAAZ,GAAiB,cAAeyD,EAAQ,CAAE,CAChF,EAEC,UAAC,CAAE,UAAWwE,CAAqB,2CACjCC,GAAAA,SAAS,CAAA,OAAQ,CAAC,CAACC,eAAa,CAAE,KAAM,IAAa,CAAA,CAAC,EAGrD,SAAA,CAAAjI,EAAA,kBAAA,IAACgG,GAAA,MAAA,CACC,UAAU,SACV,MAAO6B,GAAgB/H,EAAAM,EAAUyH,CAAa,IAAvB,YAAA/H,EAA0B,WAAa,GAC9D,aAAYwH,CAAA,CACd,EACC5H,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAWiI,GAAA,EACb,SAAA,CAAAf,0BAAkB,MAAI,CAAA,UAAWc,EAAU,EAAI,UAAe,CAAA,EAAS,KACvEhI,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAWkI,EAAA,EACb,SAAA,CAAAJ,GACExH,EAAA,kBAAA,IAAAkI,eAAA,CAAY,MAAA7H,EAAc,cAAAkG,EAA8B,WAAAG,CAAwB,CAAA,EAC/E,KACJ1G,EAAAA,kBAAAA,IAAC,MAAI,CAAA,IAAK2E,EACR,SAAA3E,EAAA,kBAAA,IAAC9B,GAAA,CACC,UAAAE,EACA,kBAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAA4B,EACA,WAAA3B,EACA,UAAWC,GAAaqJ,GAAwB,CAAC,CAACzB,EAClD,KAAMa,EACN,YAAAtI,EACA,SAAU8D,EACV,YAAA7D,EACA,eAAAE,EACA,UAAAE,EACA,MAAO2I,EACP,iCAAA9I,EACA,qBAAAE,EACA,aAAYd,CAAA,CAAA,EAEhB,EAEA6B,EAAA,kBAAA,IAACmI,GAAA,YAAA,CACC,YAAA9B,EACA,aAAAC,EACA,gBAAAE,CAAA,CAAA,CACF,EACF,EACCG,EAAgB3G,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAW0H,IAAc,WAAa,EAAS,IAAA,EACtE,EACA1H,EAAA,kBAAA,IAACsE,GAAA,CACC,WAAAK,EACA,MAAAtE,EACA,UAAAD,EACA,SAAA5B,EACA,MAAAgG,EACA,KAAM2C,EACN,eAAgBC,EAChB,qBAAAnI,EACA,mBAAAuD,EACA,UAAA+B,EACA,cAAArD,EACA,UAAAD,EACA,eAAAjC,EACA,WAAAyF,EACA,UAAAC,EACA,MAAOmD,EACP,eAAAlF,CAAA,CAAA,CACF,CACF,CAAA,EAAA,CAEJ,CAEJ,EAEayF,GAAuB,CAAmB,CACrD,aAAcjK,EACd,UAAAC,EACA,aAAAgI,EACA,YAAAC,EACA,kBAAAhI,EACA,mBAAAmE,EACA,QAAAlE,EACA,aAAAgI,EACA,UAAA/H,EAAY,GACZ,UAAA6B,EACA,SAAA5B,EACA,cAAA+H,EACA,gBAAAC,EACA,gBAAAC,EACA,WAAAhI,EACA,UAAAC,EACA,UAAAuC,EACA,WAAAyF,EACA,MAAAlC,EACA,MAAAnE,EACA,QAAAgI,EACA,KAAAnC,EACA,SAAAvH,EACA,WAAA8F,EACA,cAAAvD,EACA,aAAAyF,EACA,eAAAC,EACA,YAAA9H,EACA,UAAA4F,EAAY,eACZ,qBAAAzF,EACA,UAAAC,EACA,MAAAC,CACF,IAAoC,CAClC,KAAM,CAAE,WAAY0H,GAAyBC,EAAAA,WAAWC,GAAAA,iBAAiB,EACnE,CAAE,gCAAAuB,CAAgC,EAAI7G,iBAAc,EACpDzC,EAAiBmD,SAAyB,IAAI,EAC9CwC,EAAaxC,SAAuB,IAAI,EACxC,CAAC8E,EAAeC,CAAgB,EAAI5E,EAAAA,SAA0BnD,GAASiH,CAAY,EACnF,CAACe,EAAQC,CAAS,EAAI9E,EAAAA,SAAS,EAAK,EACpCzD,EAAc,IAAM,CACxBuI,EAAU,EAAI,CAChB,EAEM1E,EAAgBnC,EAAA,YACnBgD,GAAmB,OAClB2D,EAAiB3D,CAAQ,EACzB5E,GAAA,MAAAA,EAAW4E,IACXzD,EAAAd,EAAe,UAAf,MAAAc,EAAwB,OAC1B,EACA,CAACnB,CAAQ,CACX,EAEM,CAAE,WAAY4J,CAAgB,EAAI9G,iBAAc,EAEhD,CAAE,UAAA8C,CAAU,EAAIgD,aAAU,EAE1BC,EAAiB1E,EAAA,QACrB,IAAM2E,GAAwB,wBAAA,CAAE,cAAAlB,EAAe,gBAAAE,EAAiB,MAAApG,EAAO,EACvE,CAACkG,EAAeE,EAAiBpG,CAAK,CACxC,EAEM,CAAE,UAAAqH,GAAW,kBAAAC,EAAmB,QAAAC,EAAA,EAAYtI,EAAAA,kBAAkB,CAClE,UAAAf,EACA,UAAAG,EACA,WAAYD,GAAcoI,EAC1B,eAAAW,EACA,SAAU,CAAC,CAACnH,CAAA,CACb,EAGDuB,EAAAA,UAAU,IAAM,CACdsF,EAAiB/H,GAASiH,CAAY,CAAA,EACrC,CAACA,EAAcjH,CAAK,CAAC,EAElB,MAAA0I,EAAgB/E,EAAAA,QAAQ,IAAM3D,GAAS8H,EAAe,CAACA,EAAe9H,CAAK,CAAC,EAE5EqJ,EAAejI,EAAA,YAClBgD,GAAuB,CACtB,MAAMkF,EAAWlF,GAAA,YAAAA,EAAU,OAAO,CAACmF,EAAKrH,KAAO,CACvC,MAAAsH,GAAoBnE,EAAM,KAAM9D,YAAS,QAAAZ,GAAAM,EAAUM,EAAI,IAAd,YAAAZ,GAAiB,cAAeuB,GAAE,EAC3EuH,GAAwBf,GAAA,YAAAA,EAAe,KAC1CnH,IAAS,QAAA,QAAAZ,GAAAM,EAAUM,EAAI,IAAd,YAAAZ,GAAiB,cAAeuB,KAEtCwH,GAAUF,IAAqBC,GACrC,OAAIC,GACK,CAAC,GAAGH,EAAKG,EAAO,EAElBH,CACT,EAAG,IACHhG,EAAc+F,CAAQ,CACxB,EACA,CAACrI,EAAWoE,EAAO9B,EAAemF,CAAa,CACjD,EAGE,OAAA7H,EAAA,kBAAA,IAAC8I,GAAA,cAAA,CACC,MAAOjB,GAAA,YAAAA,EAAe,IAAKnH,GAAS,OAAA,OAAAZ,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,aACrD,SAAU0I,EACV,WAAA9B,EAEC,UAAC,CAAE,UAAWqB,CAAqB,6BACjCC,GAAAA,SAAS,CAAA,OAAQ,CAAC,CAACC,eAAa,CAAE,KAAM,IAAa,CAAA,CAAC,EACrD,SAAA,CAAAjI,EAAA,kBAAA,IAACiG,GAAmB,CAAA,KAAAC,EAAY,MAAO2B,EAAe,UAAAzH,EAAsB,EAI3EJ,EAAA,kBAAA,IAAA8F,GAAA,SAAA,CAAS,UAAU,SAAS,aAAYyC,EAAiB,EAEzD7I,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAWiI,EAAA,EACb,SAAA,CAAAf,0BAAkB,MAAI,CAAA,UAAWc,GAAU,EAAI,UAAe,CAAA,EAAS,KACvEhI,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAWkI,GAAA,EACb,SAAA,CACCJ,EAAAxH,EAAA,kBAAA,IAACkI,GAAA,YAAA,CACC,MAAA7H,EACA,WAAAqG,EACA,cAAAH,EACA,QAAA8B,CAAA,CAAA,EAEA,KACJrI,EAAAA,kBAAAA,IAAC,MAAI,CAAA,IAAK2E,EACR,SAAA3E,EAAA,kBAAA,IAACG,GAAA,CACC,UAAA/B,EACA,kBAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAA4B,EACA,WAAA3B,EACA,UAAWC,GAAa,CAAC,CAAC4H,GAAgByB,EAC1C,SAAUrF,EACV,KAAMyE,EACN,YAAAtI,EACA,YAAAC,EACA,eAAAE,EACA,UAAAE,EACA,MAAO2I,EACP,aAAY1J,CAAA,CAAA,EAEhB,EACA6B,EAAA,kBAAA,IAACmI,GAAA,YAAA,CACC,YAAA9B,EACA,aAAAC,EACA,gBAAAE,EACA,6BAA8B,CAC5B,aAAc8B,CAAA,CAChB,CAAA,CACF,EACF,EACC3B,EAAgB3G,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAW0H,KAAc,WAAa,EAAS,IAAA,EACtE,EACA1H,EAAA,kBAAA,IAACsE,GAAA,CACC,MAAAjE,EACA,eAAArB,EACA,WAAA2F,EACA,UAAAvE,EACA,SAAA5B,EACA,MAAAgG,EACA,cAAA9B,EACA,MAAOmF,EACP,UAAAnD,EACA,KAAMyC,EACN,eAAgBC,EAChB,qBAAAnI,EACA,mBAAAuD,EACA,UAAA+B,EACA,cAAArD,EACA,UAAAD,EACA,WAAAwD,CAAA,CAAA,CACF,CACF,CAAA,CAAA,CAEJ,CAEJ,EAEasE,GAAmC,CAAmB,CACjE,SAAAC,EACA,aAAA5C,EACA,mBAAA5D,EACA,UAAAjE,EAAY,GACZ,UAAA6B,EACA,SAAA5B,EACA,WAAAC,EACA,UAAAC,EACA,UAAAuC,EACA,MAAAuD,EACA,MAAAnE,EACA,KAAA6F,EACA,SAAAvH,EACA,WAAA8F,EACA,cAAAvD,EACA,UAAAwD,EAAY,eACZ,qBAAAzF,EACA,MAAAE,CACF,IAAgD,OAC9C,KAAM,CAAE,WAAY0H,GAAyBC,EAAAA,WAAWC,GAAAA,iBAAiB,EAEnE/H,EAAiBmD,SAAyB,IAAI,EAC9C6E,EAAoB7E,SAA0B,IAAI,EAClDwC,EAAaxC,SAAuB,IAAI,EACxC,CAAC8E,EAAeC,CAAgB,EAAI5E,EAAAA,SAAwBnD,GAASiH,CAAY,EACjF,CAACe,EAAQC,CAAS,EAAI9E,EAAAA,SAAS,EAAK,EACpCzD,EAAc,IAAM,OACxBuI,EAAU,EAAI,GACdtH,EAAAkH,EAAkB,UAAlB,MAAAlH,EAA2B,OAC7B,EACMuH,EAAe,IAAMD,EAAU,EAAK,EAEpCzE,EAAiBpC,EAAA,YACpBgD,GAAiB,CAChB2D,EAAiB3D,CAAQ,EACzB5E,GAAA,MAAAA,EAAW4E,GACE8D,EAAA,CACf,EACA,CAAC1I,CAAQ,CACX,EAEM,CAAE,UAAA4F,CAAU,EAAIgD,aAAU,EAC1B,CAAE,QAAAK,CAAQ,EAAItI,oBAAkB,CACpC,UAAAf,EACA,UAAAG,EACA,WAAAD,CAAA,CACD,EAGDmD,EAAAA,UAAU,IAAM,CACdsF,EAAiB/H,GAASiH,CAAY,CAAA,EACrC,CAACA,EAAcjH,CAAK,CAAC,EAExB,MAAM0I,EAAgB1I,GAAS8H,EAE7B,OAAAjH,EAAA,kBAAA,IAAC8H,GAAA,WAAA,CACC,KAAA5B,EACA,MAAO2B,GAAgB/H,EAAAM,EAAUyH,CAAa,IAAvB,YAAA/H,EAA0B,WAAa,GAC9D,SAAWyD,GAAa,CACPZ,EAAA6B,EAAM,KAAM9D,GAAS,OAAA,QAAAZ,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,cAAeyD,EAAQ,CAAE,CAChF,EAEA,SAAAvD,EAAA,kBAAA,IAACgI,GAAA,SAAA,CACC,OAAQ,CACN,CACEiB,GAAA,cACA,CACE,QAAS,IAAMpK,EAAY,EAC3B,WAAYJ,GAAcoI,CAAA,CAE9B,EACA,CAACoB,GAAA,YAAa,CAAE,KAAM,IAAa,CAAA,CACrC,EAEA,kCAAC,MACC,CAAA,SAAA,CAAAjI,EAAA,kBAAA,IAACiG,GAAmB,CAAA,KAAAC,EAAY,MAAO2B,EAAe,UAAAzH,EAAsB,EAC5EJ,EAAAA,kBAAAA,IAAC,MAAI,CAAA,UAAW4H,EAAQ,EACtB,iCAAC,MAAI,CAAA,IAAKjD,EAAa,SAAAqE,CAAA,CAAS,CAClC,CAAA,EACAhJ,EAAA,kBAAA,IAACsE,GAAA,CACC,WAAAK,EACA,MAAAtE,EACA,UAAAD,EACA,SAAA5B,EACA,MAAAgG,EACA,KAAM2C,EACN,eAAgBC,EAChB,qBAAAnI,EACA,mBAAAuD,EACA,UAAA+B,EACA,WAAAE,EACA,cAAAvD,EACA,UAAAD,EACA,eAAAjC,EACA,UAAA0F,EACA,MAAOmD,EACP,eAAAlF,CAAA,CAAA,CACF,CACF,CAAA,CAAA,CAAA,CACF,CACF,CAEJ,EAEauG,GAAwC,CAAmB,CACtE,SAAAF,EACA,aAAA5C,EACA,mBAAA5D,EACA,UAAAjE,EAAY,GACZ,UAAA6B,EACA,SAAA5B,EACA,WAAAC,EACA,UAAAC,EACA,UAAAuC,EACA,MAAAuD,EACA,MAAAnE,EACA,KAAA6F,EACA,SAAAvH,EACA,WAAA8F,EACA,cAAAvD,EACA,UAAAwD,EAAY,eACZ,qBAAAzF,EACA,MAAAE,CACF,IAAqD,CACnD,KAAM,CAAE,WAAY0H,GAAyBC,EAAAA,WAAWC,GAAAA,iBAAiB,EACnE/H,EAAiBmD,SAAyB,IAAI,EAC9C6E,EAAoB7E,SAA0B,IAAI,EAClDwC,EAAaxC,SAAuB,IAAI,EACxC,CAAC8E,EAAeC,CAAgB,EAAI5E,EAAAA,SAA0BnD,GAASiH,CAAY,EACnF,CAACe,EAAQC,CAAS,EAAI9E,EAAAA,SAAS,EAAK,EACpCzD,EAAc,IAAM,OACxBuI,EAAU,EAAI,GACdtH,EAAAkH,EAAkB,UAAlB,MAAAlH,EAA2B,OAC7B,EAEM4C,EAAgBnC,EAAA,YACnBgD,GAAmB,OAClB2D,EAAiB3D,CAAQ,EACzB5E,GAAA,MAAAA,EAAW4E,IACXzD,EAAAd,EAAe,UAAf,MAAAc,EAAwB,OAC1B,EACA,CAACnB,CAAQ,CACX,EAEM,CAAE,UAAA4F,CAAU,EAAIgD,aAAU,EAE1B,CAAE,QAAAK,CAAQ,EAAItI,oBAAkB,CACpC,UAAAf,EACA,UAAAG,EACA,WAAAD,CAAA,CACD,EAGDmD,EAAAA,UAAU,IAAM,CACdsF,EAAiB/H,GAASiH,CAAY,CAAA,EACrC,CAACA,EAAcjH,CAAK,CAAC,EAElB,MAAA0I,EAAgB/E,EAAAA,QAAQ,IAAM3D,GAAS8H,EAAe,CAACA,EAAe9H,CAAK,CAAC,EAE5EqJ,EAAejI,EAAA,YAClBgD,GAAuB,CACtB,MAAMkF,EAAWlF,GAAA,YAAAA,EAAU,OAAO,CAACmF,EAAKrH,IAAO,CACvC,MAAAsH,EAAoBnE,EAAM,KAAM9D,UAAS,QAAAZ,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,cAAeuB,EAAE,EAC3EuH,EAAwBf,GAAA,YAAAA,EAAe,KAC1CnH,GAAS,OAAA,QAAAZ,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,cAAeuB,IAEtCwH,EAAUF,GAAqBC,EACrC,OAAIC,EACK,CAAC,GAAGH,EAAKG,CAAO,EAElBH,CACT,EAAG,IACHhG,EAAc+F,CAAQ,CACxB,EACA,CAACrI,EAAWoE,EAAO9B,EAAemF,CAAa,CACjD,EAGE,OAAA7H,EAAA,kBAAA,IAAC8I,GAAA,cAAA,CACC,MAAOjB,GAAA,YAAAA,EAAe,IAAKnH,GAAS,OAAA,OAAAZ,EAAAM,EAAUM,CAAI,IAAd,YAAAZ,EAAiB,aACrD,SAAU0I,EAEV,SAAAxI,EAAA,kBAAA,IAACgI,GAAA,SAAA,CACC,OAAQ,CACN,CACEiB,GAAA,cACA,CAAE,QAAS,IAAMpK,EAAe,EAAA,WAAYJ,GAAcoI,CAAqB,CACjF,EACA,CAACoB,GAAA,YAAa,CAAE,KAAM,IAAa,CAAA,CACrC,EAEA,kCAAC,MACC,CAAA,SAAA,CAAAjI,EAAA,kBAAA,IAACiG,GAAmB,CAAA,KAAAC,EAAY,MAAO2B,EAAe,UAAAzH,EAAsB,EAC5EJ,EAAAA,kBAAAA,IAAC,MAAI,CAAA,UAAW4H,EAAQ,EACtB,iCAAC,MAAI,CAAA,IAAKjD,EAAa,SAAAqE,CAAA,CAAS,CAClC,CAAA,EACAhJ,EAAA,kBAAA,IAACsE,GAAA,CACC,MAAAjE,EACA,eAAArB,EACA,WAAA2F,EACA,UAAAvE,EACA,SAAA5B,EACA,MAAAgG,EACA,WAAAC,EACA,KAAM0C,EACN,eAAgBC,EAChB,qBAAAnI,EACA,mBAAAuD,EACA,UAAA+B,EACA,cAAArD,EACA,UAAAD,EACA,MAAO4G,EACP,cAAAnF,EACA,UAAAgC,CAAA,CAAA,CACF,CACF,CAAA,CAAA,CAAA,CACF,CACF,CAEJ"}
|
|
1
|
+
{"version":3,"file":"lyra37.cjs","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n Dispatch,\n KeyboardEventHandler,\n RefObject,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Checkbox,\n CheckboxGroup,\n Group,\n Input,\n Key,\n Provider,\n Radio,\n RadioGroup,\n TextContext,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./search-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid: isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n autoFocus={autofocus}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-label={ariaLabel}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n autoFocus={autofocus}\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n aria-label={ariaLabel}\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n setOpenPopover?: Dispatch<SetStateAction<boolean>>;\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n setOpenPopover,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = (!value ? [] : [...(value as T[])]).filter((v) => v !== undefined);\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n } else if (e.key === \"Tab\") {\n loadMoreButtonRef.current?.focus();\n } else if (e.key === \"Escape\") {\n setOpenPopover?.(false);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n loadMoreButtonRef,\n mousePosition,\n setOpenPopover,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n setOpenPopover,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : (filteredItems?.length ?? 0);\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={(e) => {\n // Prevent selection of an item on Tab key down event\n e.stopPropagation();\n\n onKeyDown(e);\n }}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n\n if (getItemId(item) === undefined) return null;\n\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n {onMultiChange ? (\n <Checkbox\n value={getItemId(item)?.toString()}\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n onKeyDown={onKeyDown}\n onChange={() => toggleSelection(item)}\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active:\n activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </Checkbox>\n ) : (\n <Radio\n value={getItemId(item)?.toString()}\n key={getItemId(item)}\n data-index={virtualItem.index}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n onKeyDown={onKeyDown}\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active:\n activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </Radio>\n )}\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { selectedValue: selectedValueLabel } = useDictionary();\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <RadioGroup\n name={name}\n isRequired={isRequired}\n value={selectedValue ? getItemId(selectedValue)?.toString() : null}\n onChange={(newValue) => {\n onSingleChange(items.find((item) => getItemId(item)?.toString() === newValue)!);\n }}\n >\n {({ isInvalid: isInvalidFromContext }) => (\n <Provider values={[[TextContext, { slot: null as any }]]}>\n {/* Rendering a fallback radio to ensure the RadioGroup remains enabled, \n even when the popover is closed and the radio controls are not in the DOM. */}\n <Radio\n className=\"hidden\"\n value={selectedValue ? getItemId(selectedValue)?.toString() : \"\"}\n aria-label={selectedValueLabel}\n />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n autofocus={autofocus}\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || isInvalidFromContext || !!errorMessage}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n aria-label={ariaLabel}\n />\n </div>\n\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </Provider>\n )}\n </RadioGroup>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n \"aria-label\": ariaLabel,\n autofocus,\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const { atLeastOneItemNeedsToBeSelected } = useDictionary();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { emptyValue: emptyValueLabel } = useDictionary();\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = useMemo(() => value ?? internalValue, [internalValue, value]);\n\n const handleChange = useCallback(\n (newValue: string[]) => {\n const newItems = newValue?.reduce((acc, id) => {\n const itemFromItemsList = items.find((item) => getItemId(item)?.toString() === id);\n const itemFromSelectedValue = selectedValue?.find(\n (item) => getItemId(item)?.toString() === id,\n );\n const newItem = itemFromItemsList ?? itemFromSelectedValue;\n if (newItem) {\n return [...acc, newItem];\n }\n return acc;\n }, [] as T[]);\n onMultiChange(newItems);\n },\n [getItemId, items, onMultiChange, selectedValue],\n );\n\n return (\n <CheckboxGroup\n value={selectedValue?.map((item) => getItemId(item)?.toString())}\n onChange={handleChange}\n isRequired={isRequired}\n >\n {({ isInvalid: isInvalidFromContext }) => (\n <Provider values={[[TextContext, { slot: null as any }]]}>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n\n {/* Rendering a fallback checkbox to ensure the CheckboxGroup remains enabled, \n even when the popover is closed and the checkboxes are not in the DOM. */}\n <Checkbox className=\"hidden\" aria-label={emptyValueLabel} />\n\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n labelId={labelId}\n />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n autofocus={autofocus}\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || !!errorMessage || isInvalidFromContext}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n aria-label={ariaLabel}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n customHtmlValidationMessages={{\n valueMissing: atLeastOneItemNeedsToBeSelected,\n }}\n />\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </Provider>\n )}\n </CheckboxGroup>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>(\n props: SearchListFieldWithCustomTriggerProps<T>,\n) => {\n const {\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = false,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n } = props;\n\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const isControlled = \"value\" in props;\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n if (!isControlled) {\n setInternalValue(value ?? defaultValue);\n }\n }, [defaultValue, value, isControlled]);\n\n const selectedValue = isControlled ? value : internalValue;\n\n return (\n <RadioGroup\n name={name}\n value={selectedValue ? getItemId(selectedValue)?.toString() : \"\"}\n onChange={(newValue) => {\n const matchedItem = items.find((item) => getItemId(item)?.toString() === newValue);\n onSingleChange(matchedItem);\n }}\n >\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n [TextContext, { slot: null as any }],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onLoadMore={onLoadMore}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n </RadioGroup>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = useMemo(() => value ?? internalValue, [internalValue, value]);\n\n const handleChange = useCallback(\n (newValue: string[]) => {\n const newItems = newValue?.reduce((acc, id) => {\n const itemFromItemsList = items.find((item) => getItemId(item)?.toString() === id);\n const itemFromSelectedValue = selectedValue?.find(\n (item) => getItemId(item)?.toString() === id,\n );\n const newItem = itemFromItemsList ?? itemFromSelectedValue;\n if (newItem) {\n return [...acc, newItem];\n }\n return acc;\n }, [] as T[]);\n onMultiChange(newItems);\n },\n [getItemId, items, onMultiChange, selectedValue],\n );\n\n return (\n <CheckboxGroup\n value={selectedValue?.map((item) => getItemId(item)?.toString())}\n onChange={handleChange}\n >\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n [TextContext, { slot: null as any }],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onLoadMore={onLoadMore}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n </CheckboxGroup>\n );\n};\n"],"names":["SingleValueButton","ariaLabel","autofocus","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","setOpenPopover","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","v","currentValueIds","newValue","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","Checkbox","SharedListItem","Radio","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","selectedValueLabel","useLocale","hasInputHeader","shouldRenderInputHeader","outerSlot","outerSlotsWrapper","wrapper","selectedValue","RadioGroup","isInvalidFromContext","Provider","TextContext","InputHeader","InputFooter","MultiSearchListField","labelId","atLeastOneItemNeedsToBeSelected","emptyValueLabel","handleChange","newItems","acc","itemFromItemsList","itemFromSelectedValue","newItem","CheckboxGroup","SearchListFieldWithCustomTrigger","props","children","isControlled","matchedItem","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"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"}
|