se-design 1.0.97 → 1.0.98-dev.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/assets/icons/envelope.svg +2 -2
- package/dist/assets/icons/envelopes-outline.svg +3 -0
- package/dist/assets/icons/home-outline.svg +3 -0
- package/dist/assets/icons/library-outline.svg +3 -0
- package/dist/assets/icons/magicpen.svg +11 -0
- package/dist/assets/icons/move-folder.svg +1 -1
- package/dist/assets/icons/plus.svg +2 -2
- package/dist/assets/icons/reports-outline.svg +3 -0
- package/dist/assets/icons/repository-outline.svg +3 -0
- package/dist/assets/icons/sign-doc.svg +10 -0
- package/dist/assets/icons/template.svg +3 -0
- package/dist/assets/icons/upload.svg +5 -0
- package/dist/assets/icons/views-outline.svg +3 -0
- package/dist/assets/style.css +1 -1
- package/dist/components/GetStartedWidget/index.d.ts +28 -5
- package/dist/components/Tabs/index.d.ts +2 -1
- package/dist/components/UpgradeBanner/index.d.ts +31 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +94 -92
- package/dist/index.js.map +1 -1
- package/dist/index100.js +1 -1
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +1 -1
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +1 -1
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +1 -1
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +1 -1
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -1
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +1 -1
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +1 -1
- package/dist/index110.js +1 -1
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +1 -1
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +1 -1
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +1 -1
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +2 -2
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +3 -3
- package/dist/index120.js +1 -1
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +2 -2
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +1 -1
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +1 -1
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +2 -2
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +1 -1
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +2 -2
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +1 -1
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +1 -1
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +1 -1
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +3 -3
- package/dist/index130.js +1 -1
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +2 -2
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +2 -2
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +2 -2
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +2 -2
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +2 -2
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +2 -2
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +1 -1
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +2 -2
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +1 -1
- package/dist/index139.js.map +1 -1
- package/dist/index140.js +1 -1
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +2 -2
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +2 -2
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +2 -2
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +2 -2
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +1 -1
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +1 -1
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +1 -1
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +1 -1
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +1 -1
- package/dist/index149.js.map +1 -1
- package/dist/index150.js +1 -1
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +1 -1
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +2 -2
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +1 -1
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +1 -1
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +2 -2
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +1 -1
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +1 -1
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +1 -1
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +1 -1
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +3 -3
- package/dist/index160.js +1 -1
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +2 -2
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +2 -2
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +1 -1
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +2 -2
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +2 -2
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +2 -2
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +2 -2
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +2 -2
- package/dist/index169.js.map +1 -1
- package/dist/index170.js +2 -2
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +1 -1
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +1 -1
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +1 -1
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +1 -1
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +1 -1
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +1 -1
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +1 -1
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +2 -2
- package/dist/index179.js.map +1 -1
- package/dist/index18.js +3 -3
- package/dist/index180.js +1 -1
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +1 -1
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +1 -1
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +1 -1
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +1 -1
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +1 -1
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +1 -1
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +1 -1
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +1 -1
- package/dist/index189.js.map +1 -1
- package/dist/index19.js +5 -5
- package/dist/index190.js +1 -1
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +1 -1
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +2 -2
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +1 -1
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +1 -1
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +1 -1
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +2 -2
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +1 -1
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +1 -1
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +1 -1
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +2 -2
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +1 -1
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +1 -1
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +1 -1
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +2 -2
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +1 -1
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +1 -1
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +2 -2
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +1 -1
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +2 -2
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +2 -2
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +2 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +2 -149
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +2 -9
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +2 -6
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +2 -43
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +2 -21
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +5 -0
- package/dist/index217.js.map +1 -0
- package/dist/index218.js +5 -0
- package/dist/index218.js.map +1 -0
- package/dist/index219.js +5 -0
- package/dist/index219.js.map +1 -0
- package/dist/index220.js +5 -0
- package/dist/index220.js.map +1 -0
- package/dist/index221.js +5 -0
- package/dist/index221.js.map +1 -0
- package/dist/index222.js +5 -0
- package/dist/index222.js.map +1 -0
- package/dist/index223.js +148 -27
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +8 -71
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +9 -0
- package/dist/index225.js.map +1 -0
- package/dist/index226.js +46 -0
- package/dist/index226.js.map +1 -0
- package/dist/index227.js +24 -0
- package/dist/index227.js.map +1 -0
- package/dist/index23.js +1 -1
- package/dist/index234.js +31 -0
- package/dist/index234.js.map +1 -0
- package/dist/index235.js +75 -0
- package/dist/index235.js.map +1 -0
- package/dist/index24.js +3 -3
- package/dist/{index231.js → index242.js} +1 -1
- package/dist/{index231.js.map → index242.js.map} +1 -1
- package/dist/index244.js +11 -42
- package/dist/index244.js.map +1 -1
- package/dist/index253.js +1232 -169
- package/dist/index253.js.map +1 -1
- package/dist/index256.js +42 -18
- package/dist/index256.js.map +1 -1
- package/dist/index26.js +6 -6
- package/dist/index265.js +170 -2
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +3 -7
- package/dist/index266.js.map +1 -1
- package/dist/index268.js +18 -49
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +10 -2
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +8 -74
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +4 -92
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +166 -48
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +11 -8
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +5 -4
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +5 -51
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +38 -2
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +2 -2
- package/dist/index278.js +11 -0
- package/dist/index278.js.map +1 -0
- package/dist/{index267.js → index279.js} +6 -6
- package/dist/{index267.js.map → index279.js.map} +1 -1
- package/dist/index28.js +1 -1
- package/dist/index280.js +53 -0
- package/dist/index280.js.map +1 -0
- package/dist/index281.js +5 -0
- package/dist/index281.js.map +1 -0
- package/dist/index282.js +79 -0
- package/dist/index282.js.map +1 -0
- package/dist/index283.js +96 -0
- package/dist/index283.js.map +1 -0
- package/dist/index284.js +55 -0
- package/dist/index284.js.map +1 -0
- package/dist/index285.js +11 -0
- package/dist/index285.js.map +1 -0
- package/dist/index286.js +8 -0
- package/dist/index286.js.map +1 -0
- package/dist/index287.js +55 -0
- package/dist/index287.js.map +1 -0
- package/dist/index288.js +5 -0
- package/dist/index288.js.map +1 -0
- package/dist/index289.js +5 -0
- package/dist/index289.js.map +1 -0
- package/dist/index29.js +4 -4
- package/dist/index3.js +3 -3
- package/dist/index30.js +48 -46
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +4 -4
- package/dist/index32.js +1 -1
- package/dist/index33.js +11 -10
- package/dist/index34.js +1 -1
- package/dist/index36.js +4 -4
- package/dist/index37.js +5 -5
- package/dist/index38.js +3 -3
- package/dist/index39.js +5 -5
- package/dist/index4.js +4 -4
- package/dist/index40.js +4 -4
- package/dist/index41.js +1 -1
- package/dist/index43.js +125 -42
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +139 -101
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +105 -50
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +53 -142
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +140 -194
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +187 -26
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +30 -26
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +39 -0
- package/dist/index50.js.map +1 -0
- package/dist/index52.js +195 -35
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +34 -32
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +34 -151
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +140 -72
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +78 -453
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +459 -96
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +98 -43
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +40 -35
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +238 -218
- package/dist/index6.js.map +1 -1
- package/dist/index60.js +33 -87
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +89 -159
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +157 -143
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +149 -33
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +33 -86
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +80 -113
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +114 -73
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +73 -158
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +157 -312
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +317 -46
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +10 -9
- package/dist/index70.js +45 -142
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +145 -12
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +10 -53
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +52 -110
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +111 -17
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +17 -64
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +64 -25
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +24 -105
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +104 -58
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +60 -19
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +18 -168
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +171 -18
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +17 -10
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +11 -5
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +5 -62
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +58 -23
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +25 -9
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +14 -0
- package/dist/index87.js.map +1 -0
- package/dist/index89.js +2 -2
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +4 -4
- package/dist/index90.js +2 -2
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +2 -2
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +2 -2
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +1 -1
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +1 -1
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +1 -1
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +1 -1
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +1 -1
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/index233.js +0 -15
- package/dist/index233.js.map +0 -1
- package/dist/index241.js +0 -1236
- package/dist/index241.js.map +0 -1
- package/dist/index254.js +0 -7
- package/dist/index254.js.map +0 -1
- package/dist/index257.js +0 -13
- package/dist/index257.js.map +0 -1
- package/dist/index258.js +0 -13
- package/dist/index258.js.map +0 -1
- package/dist/index259.js +0 -8
- package/dist/index259.js.map +0 -1
- package/dist/index260.js +0 -173
- package/dist/index260.js.map +0 -1
- package/dist/index261.js +0 -14
- package/dist/index261.js.map +0 -1
- package/dist/index262.js +0 -9
- package/dist/index262.js.map +0 -1
- package/dist/index263.js +0 -9
- package/dist/index263.js.map +0 -1
- package/dist/index264.js +0 -41
- package/dist/index264.js.map +0 -1
- package/dist/index51.js +0 -201
- package/dist/index51.js.map +0 -1
- package/dist/index88.js +0 -5
- package/dist/index88.js.map +0 -1
package/dist/index47.js
CHANGED
|
@@ -1,204 +1,150 @@
|
|
|
1
|
-
import e, {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}) => /* @__PURE__ */ e.createElement("svg", {
|
|
37
|
-
width: n,
|
|
38
|
-
height: n,
|
|
39
|
-
viewBox: "0 0 24 24",
|
|
40
|
-
fill: "none",
|
|
41
|
-
stroke: "currentColor",
|
|
42
|
-
strokeWidth: "2.2",
|
|
43
|
-
strokeLinecap: "round",
|
|
44
|
-
"aria-hidden": "true"
|
|
45
|
-
}, /* @__PURE__ */ e.createElement("path", {
|
|
46
|
-
d: "M18 6 6 18M6 6l12 12"
|
|
47
|
-
})), H = /[.*+?^${}()|[\]\\]/g, J = (n, s, m) => {
|
|
48
|
-
const o = (m && m.length ? m : [s]).map((r) => (r || "").trim()).filter(Boolean);
|
|
49
|
-
if (!o.length) return n;
|
|
50
|
-
o.sort((r, i) => i.length - r.length);
|
|
51
|
-
const k = new Set(o.map((r) => r.toLowerCase())), l = o.map((r) => r.replace(H, "\\$&")).join("|");
|
|
52
|
-
return n.split(new RegExp(`(${l})`, "ig")).map((r, i) => k.has(r.toLowerCase()) ? /* @__PURE__ */ e.createElement("mark", {
|
|
53
|
-
key: i
|
|
54
|
-
}, r) : /* @__PURE__ */ e.createElement(e.Fragment, {
|
|
55
|
-
key: i
|
|
56
|
-
}, r));
|
|
57
|
-
}, P = /* @__PURE__ */ e.memo(({
|
|
58
|
-
value: n,
|
|
59
|
-
onChange: s,
|
|
60
|
-
onSelect: m,
|
|
61
|
-
onSubmit: o,
|
|
62
|
-
onClear: k,
|
|
63
|
-
suggestions: l = [],
|
|
64
|
-
isLoading: v = !1,
|
|
65
|
-
helperText: r,
|
|
66
|
-
helperVariant: i = "info",
|
|
67
|
-
placeholder: S = "Get any of your contracts",
|
|
68
|
-
placeholderPrefix: d,
|
|
69
|
-
examples: u,
|
|
70
|
-
collapsed: c = !1,
|
|
71
|
-
onExpand: I,
|
|
72
|
-
automationId: B = "nl-search-input",
|
|
73
|
-
ariaLabel: F = "Natural language search"
|
|
1
|
+
import e, { useState as k, useRef as S, useCallback as P, useEffect as Y } from "react";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { Icon as x } from "./index6.js";
|
|
4
|
+
import { useStableId as Z } from "./index225.js";
|
|
5
|
+
import { getA11yNameAttributes as ee } from "./index87.js";
|
|
6
|
+
import "./index78.js";
|
|
7
|
+
import { useCombobox as te } from "./index74.js";
|
|
8
|
+
function u() {
|
|
9
|
+
return u = Object.assign ? Object.assign.bind() : function(o) {
|
|
10
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
11
|
+
var t = arguments[i];
|
|
12
|
+
for (var a in t) ({}).hasOwnProperty.call(t, a) && (o[a] = t[a]);
|
|
13
|
+
}
|
|
14
|
+
return o;
|
|
15
|
+
}, u.apply(null, arguments);
|
|
16
|
+
}
|
|
17
|
+
const ce = /* @__PURE__ */ e.memo(({
|
|
18
|
+
value: o,
|
|
19
|
+
onChange: i,
|
|
20
|
+
disabled: t = !1,
|
|
21
|
+
maxLength: a,
|
|
22
|
+
tag: F = "input",
|
|
23
|
+
error: l = !1,
|
|
24
|
+
errorMessage: R,
|
|
25
|
+
label: p,
|
|
26
|
+
placeholder: j,
|
|
27
|
+
suggestions: c = [],
|
|
28
|
+
onSelect: E,
|
|
29
|
+
renderOption: d,
|
|
30
|
+
optionClassName: A,
|
|
31
|
+
automationId: B = "",
|
|
32
|
+
ariaLabel: $,
|
|
33
|
+
ariaLabelledBy: O,
|
|
34
|
+
ariaDescribedBy: V,
|
|
35
|
+
..._
|
|
74
36
|
}) => {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
}, [
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
37
|
+
const [s, b] = k([...c]), [v, g] = k(!1), H = S(null), N = S(null), f = Z(void 0, "autocomplete"), z = `${f}-input`, D = `${f}-listbox`, y = `${f}-label`, C = `${f}-error`, w = P((r) => {
|
|
38
|
+
g(!1), E?.(r);
|
|
39
|
+
}, [E]), {
|
|
40
|
+
containerProps: K,
|
|
41
|
+
inputProps: M,
|
|
42
|
+
listboxProps: q,
|
|
43
|
+
getOptionProps: G,
|
|
44
|
+
highlightedIndex: J,
|
|
45
|
+
setHighlightedIndex: h,
|
|
46
|
+
isKeyboardFocused: L
|
|
47
|
+
} = te({
|
|
48
|
+
items: s,
|
|
49
|
+
isOpen: v,
|
|
50
|
+
onOpenChange: g,
|
|
51
|
+
onSelect: w,
|
|
52
|
+
listboxId: D
|
|
53
|
+
}), Q = P((r) => {
|
|
54
|
+
const n = r.target.value;
|
|
55
|
+
if (h(-1), i(n), !d)
|
|
56
|
+
if (n === "")
|
|
57
|
+
b([...c]);
|
|
92
58
|
else {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
}, 260);
|
|
96
|
-
return () => clearTimeout(x);
|
|
59
|
+
const I = c?.filter((m) => typeof m == "object" && m?.label?.toLowerCase().includes(n?.toLowerCase() ?? ""));
|
|
60
|
+
b([...I]);
|
|
97
61
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
},
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}, [l, h, n, T, o]), G = C(() => {
|
|
118
|
-
s(""), k?.();
|
|
119
|
-
}, [s, k]);
|
|
120
|
-
return /* @__PURE__ */ e.createElement("div", {
|
|
121
|
-
className: `nl-wrap${c ? " is-collapsed" : ""}`,
|
|
122
|
-
ref: D,
|
|
62
|
+
}, [i, c, d, h]);
|
|
63
|
+
Y(() => {
|
|
64
|
+
b([...c]);
|
|
65
|
+
}, [c]);
|
|
66
|
+
const T = () => {
|
|
67
|
+
g(!0);
|
|
68
|
+
}, U = () => {
|
|
69
|
+
s.length > 0 && g(!0);
|
|
70
|
+
}, W = () => {
|
|
71
|
+
i(""), h(-1), N.current?.focus();
|
|
72
|
+
}, X = ee({
|
|
73
|
+
ariaLabelledBy: O,
|
|
74
|
+
internalLabelId: p ? y : void 0,
|
|
75
|
+
ariaLabel: $,
|
|
76
|
+
ariaDescribedBy: l ? C : V
|
|
77
|
+
});
|
|
78
|
+
return /* @__PURE__ */ e.createElement("div", u({
|
|
79
|
+
className: "main-container-autocomplete-se-design",
|
|
80
|
+
ref: H,
|
|
123
81
|
"data-automation-id": B
|
|
82
|
+
}, K), p && /* @__PURE__ */ e.createElement("span", {
|
|
83
|
+
id: y,
|
|
84
|
+
className: `label-container ${t ? "label-container-disabled" : ""}`
|
|
85
|
+
}, p), /* @__PURE__ */ e.createElement("div", {
|
|
86
|
+
className: "input-container-wrapper"
|
|
124
87
|
}, /* @__PURE__ */ e.createElement("div", {
|
|
125
|
-
className:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"aria-hidden": !c,
|
|
129
|
-
role: c ? "button" : void 0,
|
|
130
|
-
"aria-label": c ? "Open AI search" : void 0,
|
|
131
|
-
tabIndex: c ? 0 : -1,
|
|
132
|
-
onClick: j,
|
|
133
|
-
onKeyDown: c ? (t) => {
|
|
134
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), I?.());
|
|
135
|
-
} : void 0
|
|
136
|
-
}, /* @__PURE__ */ e.createElement(A, {
|
|
137
|
-
size: 14
|
|
138
|
-
})), /* @__PURE__ */ e.createElement("input", {
|
|
139
|
-
ref: K,
|
|
140
|
-
type: "text",
|
|
141
|
-
className: "nl-input",
|
|
142
|
-
value: n,
|
|
143
|
-
placeholder: p ? "" : S,
|
|
144
|
-
autoComplete: "off",
|
|
145
|
-
"aria-label": F,
|
|
146
|
-
tabIndex: c ? -1 : 0,
|
|
147
|
-
disabled: c,
|
|
148
|
-
onChange: (t) => s(t.target.value),
|
|
149
|
-
onFocus: () => E(!0),
|
|
150
|
-
onKeyDown: z
|
|
151
|
-
}), p && /* @__PURE__ */ e.createElement("div", {
|
|
152
|
-
className: "nl-typewriter",
|
|
153
|
-
"aria-hidden": "true"
|
|
154
|
-
}, d && /* @__PURE__ */ e.createElement("span", {
|
|
155
|
-
className: "nl-typewriter__prefix"
|
|
156
|
-
}, d), /* @__PURE__ */ e.createElement("span", {
|
|
157
|
-
className: "nl-typewriter__example"
|
|
158
|
-
}, f), /* @__PURE__ */ e.createElement("span", {
|
|
159
|
-
className: "nl-typewriter__caret"
|
|
160
|
-
}), d && /['"`]\s*$/.test(d) && /* @__PURE__ */ e.createElement("span", {
|
|
161
|
-
className: "nl-typewriter__prefix"
|
|
162
|
-
}, d.trim().slice(-1))), v && /* @__PURE__ */ e.createElement("span", {
|
|
163
|
-
className: "nl-spinner show",
|
|
164
|
-
role: "status",
|
|
165
|
-
"aria-label": "Resolving"
|
|
166
|
-
}), !v && n && /* @__PURE__ */ e.createElement("button", {
|
|
167
|
-
type: "button",
|
|
168
|
-
className: "nl-clear show",
|
|
169
|
-
title: "Clear search",
|
|
170
|
-
onClick: G
|
|
171
|
-
}, /* @__PURE__ */ e.createElement(q, {
|
|
172
|
-
size: 14
|
|
173
|
-
}))), Z && /* @__PURE__ */ e.createElement("div", {
|
|
174
|
-
className: "nl-suggestions show",
|
|
175
|
-
role: "listbox"
|
|
176
|
-
}, l.map((t, a) => /* @__PURE__ */ e.createElement("button", {
|
|
177
|
-
key: `${t.source}-${t.text}`,
|
|
178
|
-
type: "button",
|
|
179
|
-
role: "option",
|
|
180
|
-
"aria-selected": a === h,
|
|
181
|
-
className: `nl-sug${a === h ? " kb-active" : ""}`,
|
|
182
|
-
onMouseEnter: () => N(a),
|
|
183
|
-
onMouseDown: (M) => {
|
|
184
|
-
M.preventDefault(), T(t);
|
|
88
|
+
className: "input-wrapper",
|
|
89
|
+
style: {
|
|
90
|
+
pointerEvents: t ? "none" : "auto"
|
|
185
91
|
}
|
|
186
|
-
},
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
92
|
+
}, /* @__PURE__ */ e.createElement(F, {
|
|
93
|
+
ref: N,
|
|
94
|
+
id: z,
|
|
95
|
+
value: o,
|
|
96
|
+
onChange: Q,
|
|
97
|
+
onClick: T,
|
|
98
|
+
onFocus: U,
|
|
99
|
+
...M,
|
|
100
|
+
disabled: t,
|
|
101
|
+
className: `${l ? "input-container-error" : "input-container-default"} ${t ? "input-container-disabled" : ""} ${s.length > 0 || o ? "with-icon" : ""} ${s.length > 0 && o ? "with-icons" : ""}`,
|
|
102
|
+
maxLength: a,
|
|
103
|
+
placeholder: j,
|
|
104
|
+
"aria-invalid": l || void 0,
|
|
105
|
+
...X,
|
|
106
|
+
..._
|
|
107
|
+
}), o && /* @__PURE__ */ e.createElement(x, {
|
|
108
|
+
name: "close",
|
|
109
|
+
className: "input-icon-close",
|
|
110
|
+
size: 15,
|
|
111
|
+
onClick: W,
|
|
112
|
+
stroke: t ? "var(--color-gray-600)" : "",
|
|
113
|
+
ariaLabel: "Clear input"
|
|
114
|
+
}), s.length > 0 && /* @__PURE__ */ e.createElement(x, {
|
|
115
|
+
name: "chevron",
|
|
116
|
+
rotation: v ? "180" : "0",
|
|
117
|
+
className: "input-icon-chevron",
|
|
118
|
+
stroke: t ? "var(--color-gray-600)" : "",
|
|
119
|
+
"aria-hidden": "true"
|
|
120
|
+
})), v && s.length > 0 && /* @__PURE__ */ e.createElement("div", u({}, q, {
|
|
121
|
+
"aria-label": p || $ || "Suggestions",
|
|
122
|
+
className: "suggestions-list",
|
|
123
|
+
"data-automation-id": "autocomplete-suggestions-list"
|
|
124
|
+
}), s.map((r, n) => {
|
|
125
|
+
const I = G(n, !1), m = J === n;
|
|
126
|
+
return /* @__PURE__ */ e.createElement("div", u({
|
|
127
|
+
key: n
|
|
128
|
+
}, I, {
|
|
129
|
+
className: `${A || "suggestion-item"} ${m ? `suggestion-item-highlighted${L ? " suggestion-item-keyboard-highlight" : ""}` : ""}`,
|
|
130
|
+
onClick: () => w(r),
|
|
131
|
+
onMouseEnter: () => h(n),
|
|
132
|
+
"data-automation-id": `autocomplete-suggestion-item-${n}`
|
|
133
|
+
}), d ? d(r, {
|
|
134
|
+
isHighlighted: m,
|
|
135
|
+
index: n
|
|
136
|
+
}) : r.label);
|
|
137
|
+
}))), (l || a) && /* @__PURE__ */ e.createElement("div", {
|
|
138
|
+
className: `${l ? "error-and-max-word" : "max-word-container"} ${t ? "disabled" : ""}`
|
|
139
|
+
}, l && /* @__PURE__ */ e.createElement("div", {
|
|
140
|
+
id: C,
|
|
141
|
+
className: "error-message",
|
|
142
|
+
role: "alert"
|
|
143
|
+
}, R), a && /* @__PURE__ */ e.createElement("div", {
|
|
144
|
+
className: "max-word"
|
|
145
|
+
}, o.length, "/", a)));
|
|
199
146
|
});
|
|
200
|
-
P.displayName = "NLSearchInput";
|
|
201
147
|
export {
|
|
202
|
-
|
|
148
|
+
ce as AutoCompleteInput
|
|
203
149
|
};
|
|
204
150
|
//# sourceMappingURL=index47.js.map
|
package/dist/index47.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index47.js","sources":["../src/components/NLSearch/NLSearchInput.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nexport type NLSuggestionSource = 'recent' | 'global';\n\nexport interface NLSuggestion {\n text: string;\n source: NLSuggestionSource;\n /**\n * Words inside `text` the backend wants <mark>-highlighted. Set when\n * the user's typed prefix matched via a synonym (typed \"documents\",\n * suggestion says \"contracts\" — backend returns `[\"contracts\"]` so the\n * canonical word still lights up). Empty/undefined falls back to\n * highlighting the literal typed query.\n */\n highlight_terms?: string[];\n}\n\nexport interface NLSearchInputProps {\n value: string;\n onChange: (value: string) => void;\n onSelect?: (suggestion: NLSuggestion) => void;\n onSubmit?: (text: string) => void;\n onClear?: () => void;\n suggestions?: NLSuggestion[];\n isLoading?: boolean;\n helperText?: string;\n helperVariant?: 'info' | 'warning' | 'error';\n placeholder?: string;\n /**\n * When provided alongside `examples`, the input renders a typewriter\n * placeholder overlay: `<placeholderPrefix><typed-example>` cycling\n * through the list every ~5s. The native `placeholder` prop is\n * suppressed while the overlay is active so the two don't collide.\n */\n placeholderPrefix?: string;\n examples?: string[];\n /**\n * When true, the bar collapses to just the sparkle disc — the input,\n * placeholder overlay, clear button, and helper line all hide via\n * width + opacity transitions. Clicking the disc fires `onExpand`\n * (the parent toggles `collapsed` back to false). Auto-focuses the\n * input after the expand animation finishes.\n */\n collapsed?: boolean;\n onExpand?: () => void;\n automationId?: string;\n ariaLabel?: string;\n}\n\nconst SparkleIcon = ({ size = 14, className }: { size?: number; className?: string }) => (\n <svg width={size} height={size} viewBox=\"0 0 18 18\" fill=\"currentColor\" className={className} aria-hidden=\"true\">\n <path d=\"M3.025,5.623c.068,.204,.26,.342,.475,.342s.406-.138,.475-.342l.421-1.263,1.263-.421c.204-.068,.342-.259,.342-.474s-.138-.406-.342-.474l-1.263-.421-.421-1.263c-.137-.408-.812-.408-.949,0l-.421,1.263-1.263,.421c-.204,.068-.342,.259-.342,.474s.138,.406,.342,.474l1.263,.421,.421,1.263Z\" />\n <path d=\"M16.525,8.803l-4.535-1.793-1.793-4.535c-.227-.572-1.168-.572-1.395,0l-1.793,4.535-4.535,1.793c-.286,.113-.475,.39-.475,.697s.188,.584,.475,.697l4.535,1.793,1.793,4.535c.113,.286,.39,.474,.697,.474s.584-.188,.697-.474l1.793-4.535,4.535-1.793c.286-.113,.475-.39,.475-.697s-.188-.584-.475-.697Z\" />\n </svg>\n);\n\nconst ClockIcon = ({ size = 14 }: { size?: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </svg>\n);\n\nconst CloseIcon = ({ size = 14 }: { size?: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n);\n\nconst RE_SPECIAL = /[.*+?^${}()|[\\]\\\\]/g;\n\n/**\n * Wrap each case-insensitive occurrence of `terms` (any of them) inside\n * `text` in a <mark>. Long terms first so \"contracts\" wins over a\n * shorter prefix that overlaps. Falls back to splitting on the literal\n * `query` if no `terms` were provided by the backend.\n */\nconst highlightMatch = (\n text: string,\n query: string,\n terms?: string[],\n): React.ReactNode => {\n const needles = (terms && terms.length ? terms : [query])\n .map((t) => (t || '').trim())\n .filter(Boolean);\n if (!needles.length) return text;\n // Longest first so substrings don't pre-empt the longer canonical\n // match (e.g. \"contracts\" should win over \"con\").\n needles.sort((a, b) => b.length - a.length);\n const needleSet = new Set(needles.map((n) => n.toLowerCase()));\n const pattern = needles.map((n) => n.replace(RE_SPECIAL, '\\\\$&')).join('|');\n const parts = text.split(new RegExp(`(${pattern})`, 'ig'));\n return parts.map((part, idx) =>\n needleSet.has(part.toLowerCase())\n ? <mark key={idx}>{part}</mark>\n : <React.Fragment key={idx}>{part}</React.Fragment>,\n );\n};\n\nexport const NLSearchInput: React.FC<NLSearchInputProps> = React.memo(\n ({\n value,\n onChange,\n onSelect,\n onSubmit,\n onClear,\n suggestions = [],\n isLoading = false,\n helperText,\n helperVariant = 'info',\n placeholder = 'Get any of your contracts',\n placeholderPrefix,\n examples,\n collapsed = false,\n onExpand,\n automationId = 'nl-search-input',\n ariaLabel = 'Natural language search'\n }) => {\n const wrapRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [focused, setFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n\n const handleMarkClick = useCallback(() => {\n if (collapsed) onExpand?.();\n }, [collapsed, onExpand]);\n\n // Typewriter overlay state. Only animates when:\n // • caller passed a non-empty `examples` list,\n // • the input is empty (no user-typed value),\n // • the input isn't focused.\n // On any of those conditions flipping false the overlay hides\n // instantly and the native input takes over.\n const showTypewriter =\n !!examples && examples.length > 0 && !value && !focused;\n const [twIdx, setTwIdx] = useState(0);\n const [twText, setTwText] = useState('');\n const [twPhase, setTwPhase] = useState<'typing' | 'holding' | 'erasing'>('typing');\n\n useEffect(() => {\n if (!showTypewriter) return undefined;\n const target = examples![twIdx % examples!.length] || '';\n let delay = 60;\n if (twPhase === 'typing') {\n if (twText.length < target.length) {\n delay = 55 + Math.random() * 35; // slight jitter for organic feel\n } else {\n // Finished typing — hold the full sentence before erasing.\n const t = setTimeout(() => setTwPhase('erasing'), 1800);\n return () => clearTimeout(t);\n }\n } else if (twPhase === 'erasing') {\n if (twText.length > 0) {\n delay = 28;\n } else {\n // Erased — short pause then cycle to next example.\n const t = setTimeout(() => {\n setTwIdx((i) => (i + 1) % examples!.length);\n setTwPhase('typing');\n }, 260);\n return () => clearTimeout(t);\n }\n }\n const tick = setTimeout(() => {\n if (twPhase === 'typing') setTwText(target.slice(0, twText.length + 1));\n else if (twPhase === 'erasing') setTwText(target.slice(0, twText.length - 1));\n }, delay);\n return () => clearTimeout(tick);\n }, [showTypewriter, twIdx, twText, twPhase, examples]);\n\n // Reset typewriter when overlay re-engages so it starts cleanly.\n useEffect(() => {\n if (!showTypewriter) {\n setTwText('');\n setTwPhase('typing');\n }\n }, [showTypewriter]);\n\n useEffect(() => {\n setActiveIndex(-1);\n }, [suggestions]);\n\n useEffect(() => {\n if (!focused) return undefined;\n const onDocClick = (e: MouseEvent) => {\n if (wrapRef.current && !wrapRef.current.contains(e.target as Node)) {\n setFocused(false);\n }\n };\n document.addEventListener('mousedown', onDocClick);\n return () => document.removeEventListener('mousedown', onDocClick);\n }, [focused]);\n\n const showPopover = focused && suggestions.length > 0;\n\n const pick = useCallback(\n (s: NLSuggestion) => {\n onSelect?.(s);\n setFocused(false);\n },\n [onSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' && suggestions.length) {\n e.preventDefault();\n setActiveIndex((i) => (i + 1) % suggestions.length);\n } else if (e.key === 'ArrowUp' && suggestions.length) {\n e.preventDefault();\n setActiveIndex((i) => (i <= 0 ? suggestions.length - 1 : i - 1));\n } else if (e.key === 'Enter') {\n if (activeIndex >= 0 && suggestions[activeIndex]) {\n e.preventDefault();\n pick(suggestions[activeIndex]);\n } else if (value.trim()) {\n e.preventDefault();\n onSubmit?.(value.trim());\n setFocused(false);\n }\n } else if (e.key === 'Escape') {\n setFocused(false);\n }\n },\n [suggestions, activeIndex, value, pick, onSubmit]\n );\n\n const handleClear = useCallback(() => {\n onChange('');\n onClear?.();\n }, [onChange, onClear]);\n\n return (\n <div\n className={`nl-wrap${collapsed ? ' is-collapsed' : ''}`}\n ref={wrapRef}\n data-automation-id={automationId}\n >\n <div className={`nl-input-row${focused ? ' is-active' : ''}${isLoading ? ' is-loading' : ''}${collapsed ? ' is-collapsed' : ''}`}>\n <div\n className=\"nl-mark\"\n aria-hidden={!collapsed}\n role={collapsed ? 'button' : undefined}\n aria-label={collapsed ? 'Open AI search' : undefined}\n tabIndex={collapsed ? 0 : -1}\n onClick={handleMarkClick}\n onKeyDown={collapsed ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onExpand?.();\n }\n } : undefined}\n >\n <SparkleIcon size={14} />\n </div>\n <input\n ref={inputRef}\n type=\"text\"\n className=\"nl-input\"\n value={value}\n placeholder={showTypewriter ? '' : placeholder}\n autoComplete=\"off\"\n aria-label={ariaLabel}\n // Skip the bar in tab order while collapsed; restored on\n // expand. Prevents users from \"clicking\" the hidden input\n // via keyboard.\n tabIndex={collapsed ? -1 : 0}\n disabled={collapsed}\n onChange={(e) => onChange(e.target.value)}\n onFocus={() => setFocused(true)}\n onKeyDown={handleKeyDown}\n />\n {showTypewriter && (\n <div className=\"nl-typewriter\" aria-hidden=\"true\">\n {placeholderPrefix && (\n <span className=\"nl-typewriter__prefix\">{placeholderPrefix}</span>\n )}\n <span className=\"nl-typewriter__example\">{twText}</span>\n <span className=\"nl-typewriter__caret\" />\n {/* Closing quote — paired with the opening quote the\n caller passes in via placeholderPrefix. Hidden when\n the prefix doesn't end with an opening quote so the\n component degrades cleanly for callers that pass a\n prefix without quotes. */}\n {placeholderPrefix && /['\"`]\\s*$/.test(placeholderPrefix) && (\n <span className=\"nl-typewriter__prefix\">\n {placeholderPrefix.trim().slice(-1)}\n </span>\n )}\n </div>\n )}\n {isLoading && <span className=\"nl-spinner show\" role=\"status\" aria-label=\"Resolving\" />}\n {!isLoading && value && (\n <button type=\"button\" className=\"nl-clear show\" title=\"Clear search\" onClick={handleClear}>\n <CloseIcon size={14} />\n </button>\n )}\n </div>\n\n {showPopover && (\n <div className=\"nl-suggestions show\" role=\"listbox\">\n {suggestions.map((s, i) => (\n <button\n key={`${s.source}-${s.text}`}\n type=\"button\"\n role=\"option\"\n aria-selected={i === activeIndex}\n className={`nl-sug${i === activeIndex ? ' kb-active' : ''}`}\n onMouseEnter={() => setActiveIndex(i)}\n onMouseDown={(e) => {\n e.preventDefault();\n pick(s);\n }}\n >\n {s.source === 'recent' ? (\n <ClockIcon size={16} />\n ) : (\n <SparkleIcon size={16} className=\"sparkle\" />\n )}\n <span className=\"sug-text\">{highlightMatch(s.text, value.trim(), s.highlight_terms)}</span>\n {s.source === 'recent' && <span className=\"sug-meta\">Recent</span>}\n </button>\n ))}\n </div>\n )}\n\n {helperText && (\n <div\n className={`nl-helper nl-helper--${helperVariant}`}\n role={helperVariant === 'error' ? 'alert' : 'status'}\n >\n {helperText}\n </div>\n )}\n </div>\n );\n }\n);\n\nNLSearchInput.displayName = 'NLSearchInput';\n"],"names":["SparkleIcon","size","className","React","createElement","width","height","viewBox","fill","d","ClockIcon","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","CloseIcon","RE_SPECIAL","highlightMatch","text","query","terms","needles","length","map","t","trim","filter","Boolean","sort","a","b","needleSet","Set","n","toLowerCase","pattern","replace","join","split","RegExp","part","idx","has","key","Fragment","NLSearchInput","memo","value","onChange","onSelect","onSubmit","onClear","suggestions","isLoading","helperText","helperVariant","placeholder","placeholderPrefix","examples","collapsed","onExpand","automationId","ariaLabel","wrapRef","useRef","inputRef","focused","setFocused","useState","activeIndex","setActiveIndex","handleMarkClick","useCallback","showTypewriter","twIdx","setTwIdx","twText","setTwText","twPhase","setTwPhase","useEffect","target","delay","Math","random","setTimeout","clearTimeout","i","tick","slice","onDocClick","e","current","contains","document","addEventListener","removeEventListener","showPopover","pick","s","handleKeyDown","preventDefault","handleClear","ref","role","undefined","tabIndex","onClick","onKeyDown","type","autoComplete","disabled","onFocus","test","title","source","onMouseEnter","onMouseDown","highlight_terms","displayName"],"mappings":";AAiDA,MAAMA,IAAcA,CAAC;AAAA,EAAEC,MAAAA,IAAO;AAAA,EAAIC,WAAAA;AAAiD,MACjFC,gBAAAA,EAAAC,cAAA,OAAA;AAAA,EAAKC,OAAOJ;AAAAA,EAAMK,QAAQL;AAAAA,EAAMM,SAAQ;AAAA,EAAYC,MAAK;AAAA,EAAeN,WAAAA;AAAAA,EAAsB,eAAY;AAAM,GAC9GC,gBAAAA,EAAAC,cAAA,QAAA;AAAA,EAAMK,GAAE;AAA4R,CAAE,GACtSN,gBAAAA,EAAAC,cAAA,QAAA;AAAA,EAAMK,GAAE;AAAqS,CAAE,CAC5S,GAGDC,IAAYA,CAAC;AAAA,EAAET,MAAAA,IAAO;AAAsB,MAChDE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,EAAKC,OAAOJ;AAAAA,EAAMK,QAAQL;AAAAA,EAAMM,SAAQ;AAAA,EAAYC,MAAK;AAAA,EAAOG,QAAO;AAAA,EAAeC,aAAY;AAAA,EAAIC,eAAc;AAAA,EAAQC,gBAAe;AAAA,EAAQ,eAAY;AAAM,GACnKX,gBAAAA,EAAAC,cAAA,UAAA;AAAA,EAAQW,IAAG;AAAA,EAAKC,IAAG;AAAA,EAAKC,GAAE;AAAI,CAAE,GAChCd,gBAAAA,EAAAC,cAAA,QAAA;AAAA,EAAMK,GAAE;AAAa,CAAE,CACpB,GAGDS,IAAYA,CAAC;AAAA,EAAEjB,MAAAA,IAAO;AAAsB,MAChDE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,EAAKC,OAAOJ;AAAAA,EAAMK,QAAQL;AAAAA,EAAMM,SAAQ;AAAA,EAAYC,MAAK;AAAA,EAAOG,QAAO;AAAA,EAAeC,aAAY;AAAA,EAAMC,eAAc;AAAA,EAAQ,eAAY;AAAM,GAC9IV,gBAAAA,EAAAC,cAAA,QAAA;AAAA,EAAMK,GAAE;AAAsB,CAAE,CAC7B,GAGDU,IAAa,uBAQbC,IAAiBA,CACrBC,GACAC,GACAC,MACoB;AACpB,QAAMC,KAAWD,KAASA,EAAME,SAASF,IAAQ,CAACD,CAAK,GACpDI,IAAKC,CAAAA,OAAOA,KAAK,IAAIC,MAAM,EAC3BC,OAAOC,OAAO;AACjB,MAAI,CAACN,EAAQC,OAAQ,QAAOJ;AAG5BG,EAAAA,EAAQO,KAAK,CAACC,GAAGC,MAAMA,EAAER,SAASO,EAAEP,MAAM;AAC1C,QAAMS,IAAY,IAAIC,IAAIX,EAAQE,IAAKU,CAAAA,MAAMA,EAAEC,YAAAA,CAAa,CAAC,GACvDC,IAAUd,EAAQE,IAAKU,CAAAA,MAAMA,EAAEG,QAAQpB,GAAY,MAAM,CAAC,EAAEqB,KAAK,GAAG;AAE1E,SADcnB,EAAKoB,MAAM,IAAIC,OAAO,IAAIJ,CAAO,KAAK,IAAI,CAAC,EAC5CZ,IAAI,CAACiB,GAAMC,MACtBV,EAAUW,IAAIF,EAAKN,YAAAA,CAAa,IAC5BlC,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAM0C,KAAKF;AAAAA,EAAAA,GAAMD,CAAW,IAC5BxC,gBAAAA,EAAAC,cAACD,EAAM4C,UAAQ;AAAA,IAACD,KAAKF;AAAAA,EAAAA,GAAMD,CAAqB,CACtD;AACF,GAEaK,IAA8C7C,gBAAAA,EAAM8C,KAC/D,CAAC;AAAA,EACCC,OAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,aAAAA,IAAc,CAAA;AAAA,EACdC,WAAAA,IAAY;AAAA,EACZC,YAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,aAAAA,IAAc;AAAA,EACdC,mBAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,UAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,WAAAA,IAAY;AACd,MAAM;AACJ,QAAMC,IAAUC,EAAuB,IAAI,GACrCC,IAAWD,EAAyB,IAAI,GACxC,CAACE,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtC,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAE,GAE3CG,IAAkBC,EAAY,MAAM;AACxC,IAAIb,KAAWC,IAAAA;AAAAA,EACjB,GAAG,CAACD,GAAWC,CAAQ,CAAC,GAQlBa,IACJ,CAAC,CAACf,KAAYA,EAASpC,SAAS,KAAK,CAACyB,KAAS,CAACmB,GAC5C,CAACQ,GAAOC,CAAQ,IAAIP,EAAS,CAAC,GAC9B,CAACQ,GAAQC,CAAS,IAAIT,EAAS,EAAE,GACjC,CAACU,GAASC,CAAU,IAAIX,EAA2C,QAAQ;AAEjFY,EAAAA,EAAU,MAAM;AACd,QAAI,CAACP,EAAgB;AACrB,UAAMQ,IAASvB,EAAUgB,IAAQhB,EAAUpC,MAAM,KAAK;AACtD,QAAI4D,IAAQ;AACZ,QAAIJ,MAAY;AACd,UAAIF,EAAOtD,SAAS2D,EAAO3D;AACzB4D,QAAAA,IAAQ,KAAKC,KAAKC,OAAAA,IAAW;AAAA,WACxB;AAEL,cAAM5D,IAAI6D,WAAW,MAAMN,EAAW,SAAS,GAAG,IAAI;AACtD,eAAO,MAAMO,aAAa9D,CAAC;AAAA,MAC7B;AAAA,aACSsD,MAAY;AACrB,UAAIF,EAAOtD,SAAS;AAClB4D,QAAAA,IAAQ;AAAA,WACH;AAEL,cAAM1D,IAAI6D,WAAW,MAAM;AACzBV,UAAAA,EAAUY,CAAAA,OAAOA,IAAI,KAAK7B,EAAUpC,MAAM,GAC1CyD,EAAW,QAAQ;AAAA,QACrB,GAAG,GAAG;AACN,eAAO,MAAMO,aAAa9D,CAAC;AAAA,MAC7B;AAEF,UAAMgE,IAAOH,WAAW,MAAM;AAC5B,MAAIP,MAAY,WAAUD,EAAUI,EAAOQ,MAAM,GAAGb,EAAOtD,SAAS,CAAC,CAAC,IAC7DwD,MAAY,aAAWD,EAAUI,EAAOQ,MAAM,GAAGb,EAAOtD,SAAS,CAAC,CAAC;AAAA,IAC9E,GAAG4D,CAAK;AACR,WAAO,MAAMI,aAAaE,CAAI;AAAA,EAChC,GAAG,CAACf,GAAgBC,GAAOE,GAAQE,GAASpB,CAAQ,CAAC,GAGrDsB,EAAU,MAAM;AACd,IAAKP,MACHI,EAAU,EAAE,GACZE,EAAW,QAAQ;AAAA,EAEvB,GAAG,CAACN,CAAc,CAAC,GAEnBO,EAAU,MAAM;AACdV,IAAAA,EAAe,EAAE;AAAA,EACnB,GAAG,CAAClB,CAAW,CAAC,GAEhB4B,EAAU,MAAM;AACd,QAAI,CAACd,EAAS;AACd,UAAMwB,IAAaA,CAACC,MAAkB;AACpC,MAAI5B,EAAQ6B,WAAW,CAAC7B,EAAQ6B,QAAQC,SAASF,EAAEV,MAAc,KAC/Dd,EAAW,EAAK;AAAA,IAEpB;AACA2B,oBAASC,iBAAiB,aAAaL,CAAU,GAC1C,MAAMI,SAASE,oBAAoB,aAAaN,CAAU;AAAA,EACnE,GAAG,CAACxB,CAAO,CAAC;AAEZ,QAAM+B,IAAc/B,KAAWd,EAAY9B,SAAS,GAE9C4E,IAAO1B,EACX,CAAC2B,MAAoB;AACnBlD,IAAAA,IAAWkD,CAAC,GACZhC,EAAW,EAAK;AAAA,EAClB,GACA,CAAClB,CAAQ,CACX,GAEMmD,IAAgB5B,EACpB,CAACmB,MAA6C;AAC5C,IAAIA,EAAEhD,QAAQ,eAAeS,EAAY9B,UACvCqE,EAAEU,eAAAA,GACF/B,EAAgBiB,CAAAA,OAAOA,IAAI,KAAKnC,EAAY9B,MAAM,KACzCqE,EAAEhD,QAAQ,aAAaS,EAAY9B,UAC5CqE,EAAEU,eAAAA,GACF/B,EAAgBiB,OAAOA,KAAK,IAAInC,EAAY9B,SAAS,IAAIiE,IAAI,CAAE,KACtDI,EAAEhD,QAAQ,UACf0B,KAAe,KAAKjB,EAAYiB,CAAW,KAC7CsB,EAAEU,eAAAA,GACFH,EAAK9C,EAAYiB,CAAW,CAAC,KACpBtB,EAAMtB,WACfkE,EAAEU,eAAAA,GACFnD,IAAWH,EAAMtB,MAAM,GACvB0C,EAAW,EAAK,KAETwB,EAAEhD,QAAQ,YACnBwB,EAAW,EAAK;AAAA,EAEpB,GACA,CAACf,GAAaiB,GAAatB,GAAOmD,GAAMhD,CAAQ,CAClD,GAEMoD,IAAc9B,EAAY,MAAM;AACpCxB,IAAAA,EAAS,EAAE,GACXG,IAAAA;AAAAA,EACF,GAAG,CAACH,GAAUG,CAAO,CAAC;AAEtB,SACEnD,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEF,WAAW,UAAU4D,IAAY,kBAAkB,EAAE;AAAA,IACrD4C,KAAKxC;AAAAA,IACL,sBAAoBF;AAAAA,EAAAA,GAEpB7D,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKF,WAAW,eAAemE,IAAU,eAAe,EAAE,GAAGb,IAAY,gBAAgB,EAAE,GAAGM,IAAY,kBAAkB,EAAE;AAAA,EAAA,GAC5H3D,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEF,WAAU;AAAA,IACV,eAAa,CAAC4D;AAAAA,IACd6C,MAAM7C,IAAY,WAAW8C;AAAAA,IAC7B,cAAY9C,IAAY,mBAAmB8C;AAAAA,IAC3CC,UAAU/C,IAAY,IAAI;AAAA,IAC1BgD,SAASpC;AAAAA,IACTqC,WAAWjD,IAAagC,CAAAA,MAAM;AAC5B,OAAIA,EAAEhD,QAAQ,WAAWgD,EAAEhD,QAAQ,SACjCgD,EAAEU,eAAAA,GACFzC,IAAAA;AAAAA,IAEJ,IAAI6C;AAAAA,EAAAA,GAEJzG,gBAAAA,EAAAC,cAACJ,GAAW;AAAA,IAACC,MAAM;AAAA,EAAA,CAAK,CACrB,GACLE,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACEsG,KAAKtC;AAAAA,IACL4C,MAAK;AAAA,IACL9G,WAAU;AAAA,IACVgD,OAAAA;AAAAA,IACAS,aAAaiB,IAAiB,KAAKjB;AAAAA,IACnCsD,cAAa;AAAA,IACb,cAAYhD;AAAAA,IAIZ4C,UAAU/C,IAAY,KAAK;AAAA,IAC3BoD,UAAUpD;AAAAA,IACVX,UAAW2C,CAAAA,MAAM3C,EAAS2C,EAAEV,OAAOlC,KAAK;AAAA,IACxCiE,SAASA,MAAM7C,EAAW,EAAI;AAAA,IAC9ByC,WAAWR;AAAAA,EAAAA,CACZ,GACA3B,KACCzE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKF,WAAU;AAAA,IAAgB,eAAY;AAAA,EAAA,GACxC0D,KACCzD,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,GAAyB0D,CAAwB,GAEnEzD,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,GAA0B6E,CAAa,GACvD5E,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,CAAwB,GAMvC0D,KAAqB,YAAYwD,KAAKxD,CAAiB,KACtDzD,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,GACb0D,EAAkBhC,OAAOgE,MAAM,EAAE,CAC9B,CAEL,GAENpC,KAAarD,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,IAAkByG,MAAK;AAAA,IAAS,cAAW;AAAA,EAAA,CAAa,GACrF,CAACnD,KAAaN,KACb/C,gBAAAA,EAAAC,cAAA,UAAA;AAAA,IAAQ4G,MAAK;AAAA,IAAS9G,WAAU;AAAA,IAAgBmH,OAAM;AAAA,IAAeP,SAASL;AAAAA,EAAAA,GAC5EtG,gBAAAA,EAAAC,cAACc,GAAS;AAAA,IAACjB,MAAM;AAAA,EAAA,CAAK,CAChB,CAEP,GAEJmG,KACCjG,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKF,WAAU;AAAA,IAAsByG,MAAK;AAAA,EAAA,GACvCpD,EAAY7B,IAAI,CAAC4E,GAAGZ,MACnBvF,gBAAAA,EAAAC,cAAA,UAAA;AAAA,IACE0C,KAAK,GAAGwD,EAAEgB,MAAM,IAAIhB,EAAEjF,IAAI;AAAA,IAC1B2F,MAAK;AAAA,IACLL,MAAK;AAAA,IACL,iBAAejB,MAAMlB;AAAAA,IACrBtE,WAAW,SAASwF,MAAMlB,IAAc,eAAe,EAAE;AAAA,IACzD+C,cAAcA,MAAM9C,EAAeiB,CAAC;AAAA,IACpC8B,aAAc1B,CAAAA,MAAM;AAClBA,MAAAA,EAAEU,eAAAA,GACFH,EAAKC,CAAC;AAAA,IACR;AAAA,EAAA,GAECA,EAAEgB,WAAW,WACZnH,gBAAAA,EAAAC,cAACM,GAAS;AAAA,IAACT,MAAM;AAAA,EAAA,CAAK,IAEtBE,gBAAAA,EAAAC,cAACJ,GAAW;AAAA,IAACC,MAAM;AAAA,IAAIC,WAAU;AAAA,EAAA,CAAW,GAE9CC,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,GAAYkB,EAAekF,EAAEjF,MAAM6B,EAAMtB,QAAQ0E,EAAEmB,eAAe,CAAQ,GACzFnB,EAAEgB,WAAW,YAAYnH,gBAAAA,EAAAC,cAAA,QAAA;AAAA,IAAMF,WAAU;AAAA,EAAA,GAAW,QAAY,CAC3D,CACT,CACE,GAGNuD,KACCtD,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEF,WAAW,wBAAwBwD,CAAa;AAAA,IAChDiD,MAAMjD,MAAkB,UAAU,UAAU;AAAA,EAAA,GAE3CD,CACE,CAEJ;AAET,CACF;AAEAT,EAAc0E,cAAc;"}
|
|
1
|
+
{"version":3,"file":"index47.js","sources":["../src/components/AutoCompleteInput/index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useCallback, useState } from 'react';\nimport './style.scss';\nimport { Icon } from '../Icon';\nimport { useStableId } from '../../utils/useStableId';\nimport { getA11yNameAttributes, useCombobox } from '../../utils/a11y';\n\nexport interface AutoCompleteInputProps {\n value: string;\n disabled?: boolean;\n maxLength?: number;\n /** Called when the user types in the input. Not called on suggestion selection. */\n onChange: (value: string) => void;\n tag?: string;\n error?: boolean;\n errorMessage?: string;\n label?: string;\n placeholder?: string;\n /**\n * Suggestion items. Default rendering expects { label, value } shape.\n * When renderOption is provided, any shape is accepted.\n */\n suggestions?: any[];\n /**\n * Called when a suggestion is selected (click or Enter key).\n * Receives the full item object from the suggestions array.\n */\n onSelect?: (item: any) => void;\n /**\n * Render custom content for each suggestion option. The component handles the option wrapper\n * (ARIA props, highlight, click, keyboard navigation). You only provide the inner content.\n */\n renderOption?: (suggestion: any, context: { isHighlighted: boolean; index: number }) => React.ReactNode;\n /**\n * Custom CSS class for option elements. Replaces the default 'suggestion-item' class.\n * Useful with renderOption to apply custom styling to option wrappers.\n */\n optionClassName?: string;\n automationId?: string;\n /**\n * Accessible label for the input. Used when no visible label is provided.\n */\n ariaLabel?: string;\n /**\n * ID(s) of element(s) that label this input. Takes precedence over ariaLabel.\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) providing additional description.\n */\n ariaDescribedBy?: string;\n}\n\nexport const AutoCompleteInput: React.FC<AutoCompleteInputProps> = React.memo(\n ({\n value,\n onChange,\n disabled = false,\n maxLength,\n tag = 'input',\n error = false,\n errorMessage,\n label,\n placeholder,\n suggestions = [],\n onSelect,\n renderOption,\n optionClassName,\n automationId = '',\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n ...props\n }) => {\n const [filteredSuggestions, setFilteredSuggestions] = useState<any[]>([...suggestions]);\n const [isSuggestionBoxVisible, setSuggestionBoxVisible] = useState<boolean>(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Generate stable unique IDs per instance so label, input, listbox, and error never share IDs (HTML/ARIA require unique ids).\n const instanceId = useStableId(undefined, 'autocomplete');\n const inputId = `${instanceId}-input`;\n const listboxId = `${instanceId}-listbox`;\n const labelId = `${instanceId}-label`;\n const errorId = `${instanceId}-error`;\n\n const handleSelectSuggestion = useCallback(\n (item: any) => {\n setSuggestionBoxVisible(false);\n onSelect?.(item);\n },\n [onSelect]\n );\n\n // Use the comprehensive useCombobox hook\n const {\n containerProps,\n inputProps: comboboxInputProps,\n listboxProps,\n getOptionProps,\n highlightedIndex,\n setHighlightedIndex,\n isKeyboardFocused\n } = useCombobox<any>({\n items: filteredSuggestions,\n isOpen: isSuggestionBoxVisible,\n onOpenChange: setSuggestionBoxVisible,\n onSelect: handleSelectSuggestion,\n listboxId\n });\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n setHighlightedIndex(-1); // Reset highlight on input change\n onChange(inputValue);\n\n // Internal filtering for default rendering (when no renderOption, component manages filtering)\n if (!renderOption) {\n if (inputValue === '') {\n setFilteredSuggestions([...suggestions]);\n } else {\n const filtered = suggestions?.filter(\n (suggestion) =>\n typeof suggestion === 'object' &&\n suggestion?.label?.toLowerCase().includes(inputValue?.toLowerCase() ?? '')\n );\n setFilteredSuggestions([...filtered]);\n }\n }\n },\n [onChange, suggestions, renderOption, setHighlightedIndex]\n );\n\n useEffect(() => {\n setFilteredSuggestions([...suggestions]);\n }, [suggestions]);\n\n const handleInputClick = () => {\n setSuggestionBoxVisible(true);\n };\n\n const handleInputFocus = () => {\n if (filteredSuggestions.length > 0) {\n setSuggestionBoxVisible(true);\n }\n };\n\n const handleClearInput = () => {\n onChange('');\n setHighlightedIndex(-1);\n inputRef.current?.focus();\n };\n\n // Build ARIA name attributes: when ariaLabel is provided use it (e.g. \"Signer 1 name\"); otherwise use visible label or ariaLabelledBy\n const a11yNameProps = getA11yNameAttributes({\n ariaLabelledBy,\n internalLabelId: label ? labelId : undefined,\n ariaLabel,\n ariaDescribedBy: error ? errorId : ariaDescribedBy\n });\n\n return (\n <div \n className=\"main-container-autocomplete-se-design\" \n ref={containerRef} \n data-automation-id={automationId}\n {...containerProps}\n >\n {label && (\n <span\n id={labelId}\n className={`label-container ${disabled ? 'label-container-disabled' : ''}`}\n >\n {label}\n </span>\n )}\n <div className=\"input-container-wrapper\">\n <div className=\"input-wrapper\" style={{ pointerEvents: disabled ? 'none' : 'auto' }}>\n {React.createElement(tag, {\n ref: inputRef,\n id: inputId,\n value: value,\n onChange: handleInputChange,\n onClick: handleInputClick,\n onFocus: handleInputFocus,\n ...comboboxInputProps,\n disabled,\n className: `${error ? 'input-container-error' : 'input-container-default'} ${disabled ? 'input-container-disabled' : ''} ${filteredSuggestions.length > 0 || value ? 'with-icon' : ''} ${filteredSuggestions.length > 0 && value ? 'with-icons' : ''}`,\n maxLength,\n placeholder,\n 'aria-invalid': error || undefined,\n ...a11yNameProps,\n ...props\n })}\n {value && (\n <Icon\n name=\"close\"\n className=\"input-icon-close\"\n size={15}\n onClick={handleClearInput}\n stroke={disabled ? 'var(--color-gray-600)' : ''}\n ariaLabel=\"Clear input\"\n />\n )}\n {filteredSuggestions.length > 0 && (\n <Icon\n name=\"chevron\"\n rotation={isSuggestionBoxVisible ? '180' : '0'}\n className=\"input-icon-chevron\"\n stroke={disabled ? 'var(--color-gray-600)' : ''}\n aria-hidden=\"true\"\n />\n )}\n </div>\n {isSuggestionBoxVisible && filteredSuggestions.length > 0 && (\n <div\n {...listboxProps}\n aria-label={label || ariaLabel || 'Suggestions'}\n className=\"suggestions-list\"\n data-automation-id=\"autocomplete-suggestions-list\"\n >\n {filteredSuggestions.map((suggestion, index) => {\n const optionProps = getOptionProps(index, false);\n const isHighlighted = highlightedIndex === index;\n return (\n <div\n key={index}\n {...optionProps}\n className={`${optionClassName || 'suggestion-item'} ${isHighlighted ? `suggestion-item-highlighted${isKeyboardFocused ? ' suggestion-item-keyboard-highlight' : ''}` : ''}`}\n onClick={() => handleSelectSuggestion(suggestion)}\n onMouseEnter={() => setHighlightedIndex(index)}\n data-automation-id={`autocomplete-suggestion-item-${index}`}\n >\n {renderOption\n ? renderOption(suggestion, { isHighlighted, index })\n : suggestion.label}\n </div>\n );\n })}\n </div>\n )}\n </div>\n {(error || maxLength) && (\n <div className={`${error ? 'error-and-max-word' : 'max-word-container'} ${disabled ? 'disabled' : ''}`}>\n {error && (\n <div id={errorId} className=\"error-message\" role=\"alert\">\n {errorMessage}\n </div>\n )}\n {maxLength && (\n <div className=\"max-word\">\n {value.length}/{maxLength}\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n);\n"],"names":["AutoCompleteInput","React","memo","value","onChange","disabled","maxLength","tag","error","errorMessage","label","placeholder","suggestions","onSelect","renderOption","optionClassName","automationId","ariaLabel","ariaLabelledBy","ariaDescribedBy","props","filteredSuggestions","setFilteredSuggestions","useState","isSuggestionBoxVisible","setSuggestionBoxVisible","containerRef","useRef","inputRef","instanceId","useStableId","undefined","inputId","listboxId","labelId","errorId","handleSelectSuggestion","useCallback","item","containerProps","inputProps","comboboxInputProps","listboxProps","getOptionProps","highlightedIndex","setHighlightedIndex","isKeyboardFocused","useCombobox","items","isOpen","onOpenChange","handleInputChange","e","inputValue","target","filtered","filter","suggestion","toLowerCase","includes","useEffect","handleInputClick","handleInputFocus","length","handleClearInput","current","focus","a11yNameProps","getA11yNameAttributes","internalLabelId","createElement","_extends","className","ref","id","style","pointerEvents","onClick","onFocus","Icon","name","size","stroke","rotation","map","index","optionProps","isHighlighted","key","onMouseEnter","role"],"mappings":"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"}
|