@rpcbase/ui 0.287.0 → 0.289.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/sha256.worker-DNtOSCbM.js.map +1 -0
- package/dist/components/FilesUploadField/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index10.js.map +1 -1
- package/dist/index100.js.map +1 -1
- package/dist/index101.js.map +1 -1
- package/dist/index102.js.map +1 -1
- package/dist/index103.js.map +1 -1
- package/dist/index104.js.map +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js.map +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js.map +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +96 -17
- package/dist/index11.js.map +1 -1
- package/dist/index110.js.map +1 -1
- package/dist/index111.js.map +1 -1
- package/dist/index112.js.map +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js.map +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js.map +1 -1
- package/dist/index12.js.map +1 -1
- package/dist/index120.js.map +1 -1
- package/dist/index121.js.map +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.map +1 -1
- package/dist/index125.js.map +1 -1
- package/dist/index126.js.map +1 -1
- package/dist/index127.js.map +1 -1
- package/dist/index128.js.map +1 -1
- package/dist/index129.js.map +1 -1
- package/dist/index13.js.map +1 -1
- package/dist/index130.js.map +1 -1
- package/dist/index131.js.map +1 -1
- package/dist/index132.js.map +1 -1
- package/dist/index133.js.map +1 -1
- package/dist/index134.js.map +1 -1
- package/dist/index135.js.map +1 -1
- package/dist/index136.js.map +1 -1
- package/dist/index137.js.map +1 -1
- package/dist/index138.js.map +1 -1
- package/dist/index139.js.map +1 -1
- package/dist/index14.js.map +1 -1
- package/dist/index140.js.map +1 -1
- package/dist/index141.js.map +1 -1
- package/dist/index142.js.map +1 -1
- package/dist/index143.js.map +1 -1
- package/dist/index144.js.map +1 -1
- package/dist/index145.js.map +1 -1
- package/dist/index146.js.map +1 -1
- package/dist/index147.js.map +1 -1
- package/dist/index148.js.map +1 -1
- package/dist/index149.js.map +1 -1
- package/dist/index15.js.map +1 -1
- package/dist/index150.js.map +1 -1
- package/dist/index151.js.map +1 -1
- package/dist/index152.js.map +1 -1
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +4 -4
- package/dist/index154.js.map +1 -1
- package/dist/index155.js.map +1 -1
- package/dist/index156.js.map +1 -1
- package/dist/index157.js.map +1 -1
- package/dist/index158.js.map +1 -1
- package/dist/index159.js.map +1 -1
- package/dist/index16.js.map +1 -1
- package/dist/index160.js.map +1 -1
- package/dist/index161.js.map +1 -1
- package/dist/index162.js.map +1 -1
- package/dist/index163.js.map +1 -1
- package/dist/index164.js.map +1 -1
- package/dist/index165.js.map +1 -1
- package/dist/index166.js.map +1 -1
- package/dist/index167.js.map +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js.map +1 -1
- package/dist/index17.js.map +1 -1
- package/dist/index170.js +18 -12
- package/dist/index170.js.map +1 -1
- package/dist/index171.js.map +1 -1
- package/dist/index172.js.map +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index174.js.map +1 -1
- package/dist/index175.js.map +1 -1
- package/dist/index176.js.map +1 -1
- package/dist/index177.js.map +1 -1
- package/dist/index178.js.map +1 -1
- package/dist/index179.js.map +1 -1
- package/dist/index18.js.map +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 +3 -3
- package/dist/index182.js.map +1 -1
- package/dist/index183.js.map +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index185.js.map +1 -1
- package/dist/index186.js.map +1 -1
- package/dist/index187.js.map +1 -1
- package/dist/index188.js.map +1 -1
- package/dist/index189.js.map +1 -1
- package/dist/index19.js.map +1 -1
- package/dist/index190.js +9 -7
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +4 -4
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +4 -15
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +13 -3
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +2 -2
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +4 -85
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +79 -54
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +68 -7
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +3 -23
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +6 -28
- package/dist/index199.js.map +1 -1
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +4 -97
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +3 -4
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +23 -24
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +28 -10
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +97 -4
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +4 -12
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +22 -19
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +4 -6
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +4 -15
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +10 -102
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +21 -3
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +5 -23
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +15 -28
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +101 -17
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +3 -7
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +24 -15
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +27 -7
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +17 -24
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +6 -22
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +15 -6
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +8 -5
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +27 -4
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +23 -4
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +6 -24
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +5 -3
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +4 -24
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +4 -23
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +23 -6
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +22 -8
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +3 -19
- package/dist/index229.js.map +1 -1
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +22 -50
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +7 -20
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +9 -27
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +17 -97
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +50 -33
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +20 -119
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +28 -13
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +98 -4
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +33 -15
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +116 -62
- package/dist/index239.js.map +1 -1
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +13 -10
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +4 -109
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +14 -14
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +64 -12
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +10 -5
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +104 -318
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +14 -66
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +12 -232
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +4 -270
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +313 -309
- package/dist/index249.js.map +1 -1
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +60 -171
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +252 -8
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +268 -41
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +316 -47
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +179 -9
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +6 -50
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +41 -51
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +50 -7
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +9 -10
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +51 -61
- package/dist/index259.js.map +1 -1
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +53 -42
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +9 -97
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +31 -47
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +61 -36
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +43 -47
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +92 -46
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +48 -20
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +33 -176
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +49 -48
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +68 -15
- package/dist/index269.js.map +1 -1
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +20 -65
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +202 -9
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +48 -40
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +60 -91
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +9 -278
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +38 -55
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +91 -10
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +278 -12
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +58 -11
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +11 -64
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +5 -5
- package/dist/index28.js.map +1 -1
- package/dist/index280.js +12 -6
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +3 -25
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +3 -25
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +12 -126
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +63 -51
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +5 -60
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +24 -48
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +24 -6
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +125 -14
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +51 -16
- package/dist/index289.js.map +1 -1
- package/dist/index29.js +5 -7
- package/dist/index29.js.map +1 -1
- package/dist/index290.js +56 -11
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +47 -24
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +7 -51
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +15 -6
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +18 -148
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +12 -59
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +25 -120
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +54 -15
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +5 -866
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +148 -28
- package/dist/index299.js.map +1 -1
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +6 -8
- package/dist/index30.js.map +1 -1
- package/dist/index300.js +55 -512
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +111 -794
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +14 -7436
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +862 -6
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +28 -12
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +515 -5
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +803 -5
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +7426 -468
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +6 -37
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +12 -19
- package/dist/index309.js.map +1 -1
- package/dist/index31.js +5 -11
- package/dist/index31.js.map +1 -1
- package/dist/index310.js +5 -30
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +5 -4
- package/dist/index311.js.map +1 -1
- package/dist/index312.js +461 -51
- package/dist/index312.js.map +1 -1
- package/dist/index313.js +36 -10
- package/dist/index313.js.map +1 -1
- package/dist/index314.js +19 -5
- package/dist/index314.js.map +1 -1
- package/dist/index315.js +29 -8
- package/dist/index315.js.map +1 -1
- package/dist/index316.js +4 -12
- package/dist/index316.js.map +1 -1
- package/dist/index317.js +60 -3
- package/dist/index317.js.map +1 -1
- package/dist/index318.js +10 -15
- package/dist/index318.js.map +1 -1
- package/dist/index319.js +5 -25
- package/dist/index319.js.map +1 -1
- package/dist/index32.js +5 -5
- package/dist/index32.js.map +1 -1
- package/dist/index320.js +9 -41
- package/dist/index320.js.map +1 -1
- package/dist/index321.js +11 -4
- package/dist/index321.js.map +1 -1
- package/dist/index322.js +3 -26
- package/dist/index322.js.map +1 -1
- package/dist/index323.js +15 -18
- package/dist/index323.js.map +1 -1
- package/dist/index324.js +22 -31
- package/dist/index324.js.map +1 -1
- package/dist/index325.js +41 -5
- package/dist/index325.js.map +1 -1
- package/dist/index326.js +4 -8
- package/dist/index326.js.map +1 -1
- package/dist/index327.js +25 -8
- package/dist/index327.js.map +1 -1
- package/dist/index328.js +19 -9
- package/dist/index328.js.map +1 -1
- package/dist/index329.js +34 -10
- package/dist/index329.js.map +1 -1
- package/dist/index33.js +9 -6
- package/dist/index33.js.map +1 -1
- package/dist/index330.js +5 -7
- package/dist/index330.js.map +1 -1
- package/dist/index331.js +9 -75
- package/dist/index331.js.map +1 -1
- package/dist/index332.js +8 -162
- package/dist/index332.js.map +1 -1
- package/dist/index333.js +9 -114
- package/dist/index333.js.map +1 -1
- package/dist/index334.js +10 -14
- package/dist/index334.js.map +1 -1
- package/dist/index335.js +7 -80
- package/dist/index335.js.map +1 -1
- package/dist/index336.js +68 -39
- package/dist/index336.js.map +1 -1
- package/dist/index337.js +160 -11
- package/dist/index337.js.map +1 -1
- package/dist/index338.js +113 -15
- package/dist/index338.js.map +1 -1
- package/dist/index339.js +13 -100
- package/dist/index339.js.map +1 -1
- package/dist/index34.js +6 -6
- package/dist/index34.js.map +1 -1
- package/dist/index340.js +73 -49
- package/dist/index340.js.map +1 -1
- package/dist/index341.js +34 -96
- package/dist/index341.js.map +1 -1
- package/dist/index342.js +12 -70
- package/dist/index342.js.map +1 -1
- package/dist/index343.js +14 -111
- package/dist/index343.js.map +1 -1
- package/dist/index344.js +94 -48
- package/dist/index344.js.map +1 -1
- package/dist/index345.js +50 -37
- package/dist/index345.js.map +1 -1
- package/dist/index346.js +89 -125
- package/dist/index346.js.map +1 -1
- package/dist/index347.js +52 -123
- package/dist/index347.js.map +1 -1
- package/dist/index348.js +54 -197
- package/dist/index348.js.map +1 -1
- package/dist/index349.js +44 -229
- package/dist/index349.js.map +1 -1
- package/dist/index35.js +9 -9
- package/dist/index35.js.map +1 -1
- package/dist/index350.js +42 -308
- package/dist/index350.js.map +1 -1
- package/dist/index351.js +144 -5
- package/dist/index351.js.map +1 -1
- package/dist/index352.js +142 -6
- package/dist/index352.js.map +1 -1
- package/dist/index353.js +257 -7
- package/dist/index353.js.map +1 -1
- package/dist/index354.js +241 -6
- package/dist/index354.js.map +1 -1
- package/dist/index355.js +309 -6
- package/dist/index355.js.map +1 -1
- package/dist/index356.js +5 -21
- package/dist/index356.js.map +1 -1
- package/dist/index357.js +6 -10
- package/dist/index357.js.map +1 -1
- package/dist/index358.js +7 -128
- package/dist/index358.js.map +1 -1
- package/dist/index359.js +6 -42
- package/dist/index359.js.map +1 -1
- package/dist/index36.js +12 -7
- package/dist/index36.js.map +1 -1
- package/dist/index360.js +6 -68
- package/dist/index360.js.map +1 -1
- package/dist/index361.js +20 -116
- package/dist/index361.js.map +1 -1
- package/dist/index362.js +10 -490
- package/dist/index362.js.map +1 -1
- package/dist/index363.js +128 -7
- package/dist/index363.js.map +1 -1
- package/dist/index364.js +42 -13
- package/dist/index364.js.map +1 -1
- package/dist/index365.js +67 -3
- package/dist/index365.js.map +1 -1
- package/dist/index366.js +115 -45
- package/dist/index366.js.map +1 -1
- package/dist/index367.js +490 -11
- package/dist/index367.js.map +1 -1
- package/dist/index368.js +8 -26
- package/dist/index368.js.map +1 -1
- package/dist/index369.js +12 -41
- package/dist/index369.js.map +1 -1
- package/dist/index37.js +13 -5
- package/dist/index37.js.map +1 -1
- package/dist/index370.js +4 -36
- package/dist/index370.js.map +1 -1
- package/dist/index371.js +45 -15
- package/dist/index371.js.map +1 -1
- package/dist/index372.js +24 -41
- package/dist/index372.js.map +1 -1
- package/dist/index373.js +3 -12
- package/dist/index373.js.map +1 -1
- package/dist/index374.js +27 -11
- package/dist/index374.js.map +1 -1
- package/dist/index375.js +40 -50
- package/dist/index375.js.map +1 -1
- package/dist/index376.js +37 -40
- package/dist/index376.js.map +1 -1
- package/dist/index377.js +12 -10
- package/dist/index377.js.map +1 -1
- package/dist/index378.js +40 -4
- package/dist/index378.js.map +1 -1
- package/dist/index379.js +7 -4
- package/dist/index379.js.map +1 -1
- package/dist/index38.js +5 -5
- package/dist/index38.js.map +1 -1
- package/dist/index380.js +29 -8
- package/dist/index380.js.map +1 -1
- package/dist/index381.js +9 -303
- package/dist/index381.js.map +1 -1
- package/dist/index382.js +57 -4
- package/dist/index382.js.map +1 -1
- package/dist/index383.js +40 -22
- package/dist/index383.js.map +1 -1
- package/dist/index384.js +15 -105
- package/dist/index384.js.map +1 -1
- package/dist/index385.js +5 -22
- package/dist/index385.js.map +1 -1
- package/dist/index386.js +10 -22
- package/dist/index386.js.map +1 -1
- package/dist/index387.js +289 -16
- package/dist/index387.js.map +1 -1
- package/dist/index388.js +4 -12
- package/dist/index388.js.map +1 -1
- package/dist/index389.js +20 -112
- package/dist/index389.js.map +1 -1
- package/dist/index39.js +6 -10
- package/dist/index39.js.map +1 -1
- package/dist/index390.js +3 -9
- package/dist/index390.js.map +1 -1
- package/dist/index391.js +104 -27
- package/dist/index391.js.map +1 -1
- package/dist/index392.js +20 -9
- package/dist/index392.js.map +1 -1
- package/dist/index393.js +20 -6
- package/dist/index393.js.map +1 -1
- package/dist/index394.js +14 -253
- package/dist/index394.js.map +1 -1
- package/dist/index395.js +12 -10
- package/dist/index395.js.map +1 -1
- package/dist/index396.js +117 -11
- package/dist/index396.js.map +1 -1
- package/dist/index397.js +8 -6
- package/dist/index397.js.map +1 -1
- package/dist/index398.js +32 -22
- package/dist/index398.js.map +1 -1
- package/dist/index399.js +9 -23
- package/dist/index399.js.map +1 -1
- package/dist/index4.js.map +1 -1
- package/dist/index40.js +8 -11
- package/dist/index40.js.map +1 -1
- package/dist/index400.js +6 -105
- package/dist/index400.js.map +1 -1
- package/dist/index401.js +3 -15
- package/dist/index401.js.map +1 -1
- package/dist/index402.js +251 -10
- package/dist/index402.js.map +1 -1
- package/dist/index403.js +9 -7
- package/dist/index403.js.map +1 -1
- package/dist/index404.js +11 -239
- package/dist/index404.js.map +1 -1
- package/dist/index405.js +7 -28
- package/dist/index405.js.map +1 -1
- package/dist/index406.js +21 -37
- package/dist/index406.js.map +1 -1
- package/dist/index407.js +21 -10
- package/dist/index407.js.map +1 -1
- package/dist/index408.js +97 -117
- package/dist/index408.js.map +1 -1
- package/dist/index409.js +15 -40
- package/dist/index409.js.map +1 -1
- package/dist/index41.js +6 -7
- package/dist/index41.js.map +1 -1
- package/dist/index410.js +11 -25
- package/dist/index410.js.map +1 -1
- package/dist/index411.js +7 -9
- package/dist/index411.js.map +1 -1
- package/dist/index412.js +3 -24
- package/dist/index412.js.map +1 -1
- package/dist/index413.js +226 -15
- package/dist/index413.js.map +1 -1
- package/dist/index414.js +24 -11
- package/dist/index414.js.map +1 -1
- package/dist/index415.js +38 -4
- package/dist/index415.js.map +1 -1
- package/dist/index416.js +11 -324
- package/dist/index416.js.map +1 -1
- package/dist/index417.js +119 -62
- package/dist/index417.js.map +1 -1
- package/dist/index418.js +42 -4
- package/dist/index418.js.map +1 -1
- package/dist/index419.js +25 -28
- package/dist/index419.js.map +1 -1
- package/dist/index42.js +6 -4
- package/dist/index42.js.map +1 -1
- package/dist/index420.js +11 -470
- package/dist/index420.js.map +1 -1
- package/dist/index421.js +23 -268
- package/dist/index421.js.map +1 -1
- package/dist/index422.js +24 -0
- package/dist/index422.js.map +1 -0
- package/dist/index423.js +17 -0
- package/dist/index423.js.map +1 -0
- package/dist/index424.js +8 -0
- package/dist/index424.js.map +1 -0
- package/dist/index425.js +328 -0
- package/dist/index425.js.map +1 -0
- package/dist/index426.js +66 -0
- package/dist/index426.js.map +1 -0
- package/dist/index427.js +7 -0
- package/dist/index427.js.map +1 -0
- package/dist/index428.js +31 -0
- package/dist/index428.js.map +1 -0
- package/dist/index429.js +474 -0
- package/dist/index429.js.map +1 -0
- package/dist/index43.js +68 -7
- package/dist/index43.js.map +1 -1
- package/dist/index430.js +272 -0
- package/dist/index430.js.map +1 -0
- package/dist/index44.js +7 -6
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +31 -7
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +10 -10
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +15 -13
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +201 -7
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +20 -6
- package/dist/index49.js.map +1 -1
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +16 -6
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +123 -14
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +19 -8
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +5 -7
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +9 -68
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +7 -7
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +9 -31
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +13 -10
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +8 -15
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +10 -201
- package/dist/index59.js.map +1 -1
- package/dist/index6.js.map +1 -1
- package/dist/index60.js +13 -20
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +9 -16
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +10 -123
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +5 -19
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +42 -9
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +387 -9
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +37 -14
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +21 -9
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +4 -9
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +6 -4
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +3 -3
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +57 -41
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +5 -387
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +6 -37
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +5 -21
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +4 -56
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +7 -7
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +6 -5
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +6 -5
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +11 -5
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +11 -5
- package/dist/index79.js.map +1 -1
- package/dist/index8.js.map +1 -1
- package/dist/index80.js +7 -6
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +10 -6
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +5 -8
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +6 -7
- package/dist/index83.js.map +1 -1
- package/dist/index84.js.map +1 -1
- package/dist/index85.js.map +1 -1
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +2 -2
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +31 -31
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index9.js.map +1 -1
- package/dist/index90.js.map +1 -1
- package/dist/index91.js.map +1 -1
- package/dist/index92.js.map +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js.map +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js.map +1 -1
- package/dist/index97.js.map +1 -1
- package/dist/index98.js.map +1 -1
- package/dist/index99.js.map +1 -1
- package/package.json +13 -13
- package/dist/assets/sha256.worker-BEf4_Y9w.js.map +0 -1
package/dist/index300.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index300.js","names":["{\n children,\n value,\n defaultValue,\n onChange,\n locales,\n}: I18nFieldLocaleProviderProps","getPreferredLocale([defaultValue, ...getEnvironmentLocales()], locales)","React.useMemo(\n () => getPreferredLocale([defaultValue, ...getEnvironmentLocales()], locales),\n [defaultValue, locales]\n )","(next: LanguageCode) => {\n if (!isControlled) {\n setInternalLocale(next)\n }\n onChange?.(next)\n }","React.useCallback(\n (next: LanguageCode) => {\n if (!isControlled) {\n setInternalLocale(next)\n }\n onChange?.(next)\n },\n [isControlled, onChange]\n )","() => {\n if (isControlled) return\n setInternalLocale((current) => (resolveLocaleMatch(current, locales) ? current : defaultLocale))\n }","[defaultLocale, isControlled, locales]","{\n locale: activeLocale,\n setLocale,\n }","React.useMemo<LocaleContextValue>(\n () => ({\n locale: activeLocale,\n setLocale,\n }),\n [activeLocale, setLocale]\n )","<I18nFieldLocaleContext.Provider value={contextValue}>{children}</I18nFieldLocaleContext.Provider>","I18nFieldLocaleContext.Provider","<div style={{ display: \"none\" }} />","cn(\n \"flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm\",\n isSelected\n ? \"bg-accent text-accent-foreground\"\n : isFocused\n ? \"bg-muted text-foreground\"\n : \"text-foreground\"\n )","isSelected\n ? \"bg-accent text-accent-foreground\"\n : isFocused\n ? \"bg-muted text-foreground\"\n : \"text-foreground\"","<span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{data.name}</span>\n </span>","name","<span className=\"text-xs text-muted-foreground uppercase\">{data.code}</span>","code","<div\n ref={innerRef}\n {...innerProps}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm\",\n isSelected\n ? \"bg-accent text-accent-foreground\"\n : isFocused\n ? \"bg-muted text-foreground\"\n : \"text-foreground\"\n )}\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{data.name}</span>\n </span>\n <span className=\"text-xs text-muted-foreground uppercase\">{data.code}</span>\n </div>","languageSelectTabIndex = -1","rest as SharedProps","valueProp ?? defaultValue ?? {}","React.useMemo<I18nValue>(() => valueProp ?? defaultValue ?? {}, [defaultValue, valueProp])","isControlled ? valueProp ?? {} : internalValue","buildLanguageOptions(undefined, pool)","locales ?? []","React.useMemo(() => {\n const pool = Array.from(new Set([...(locales ?? []), ...Object.keys(currentValue)]))\n return buildLanguageOptions(undefined, pool)\n }, [currentValue, locales])","() => {\n const localeValues = localePool.map((option) => option.value)\n return localeProp ??\n localeContext?.locale ??\n getPreferredLocale(\n [defaultLocale, ...getEnvironmentLocales(), Object.keys(currentValue)[0] as LanguageCode | undefined],\n localeValues\n )\n }","locale","(option) => option.value","React.useMemo(() => {\n const localeValues = localePool.map((option) => option.value)\n return localeProp ??\n localeContext?.locale ??\n getPreferredLocale(\n [defaultLocale, ...getEnvironmentLocales(), Object.keys(currentValue)[0] as LanguageCode | undefined],\n localeValues\n )\n }, [currentValue, defaultLocale, localeContext?.locale, localePool, localeProp])","() => {\n if (!isControlled) {\n setInternalValue(initialValue)\n }\n }","[initialValue, isControlled]","[internalLocale, localeProp]","() => {\n if (localeProp && localeProp !== internalLocale) {\n setInternalLocale(localeProp)\n }\n }","() => {\n if (!localeProp && localeContext?.locale && localeContext.locale !== internalLocale) {\n setInternalLocale(localeContext.locale)\n }\n }","localeContext?.locale","[internalLocale, localeContext?.locale, localeProp]","localePool.find((option) => option.value === activeLocale) ??\n localePool.find((option) => option.value === DEFAULT_LOCALE) ??\n localePool[0] ??\n null","option","(option) => option.value === DEFAULT_LOCALE","{ left: 0, top: 0 }","() => inputRef.current as HTMLInputElement & HTMLTextAreaElement","[]","(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const currentEntry = currentValue[activeLocale]\n const nextValue = {\n ...currentValue,\n [activeLocale]: {\n ...(currentEntry ?? {}),\n value: event.target.value,\n updatedAt: new Date(),\n autoTranslated: false,\n },\n }\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n }","resolveLocalizedValue(currentValue, activeLocale)","(option: { data: LanguageOption }) => {\n if (!searchTerm) return true\n const query = normalize(searchTerm)\n return option.data.searchable.some((token) => token.includes(query))\n }","React.useCallback(\n (option: { data: LanguageOption }) => {\n if (!searchTerm) return true\n const query = normalize(searchTerm)\n return option.data.searchable.some((token) => token.includes(query))\n },\n [searchTerm]\n )","() => {\n const trigger = triggerRef.current\n const container = containerRef.current\n if (!trigger || !container) return\n const triggerRect = trigger.getBoundingClientRect()\n const containerRect = container.getBoundingClientRect()\n setMenuPosition({\n left: triggerRect.left - containerRect.left,\n top: triggerRect.bottom - containerRect.top + 4,\n })\n }","React.useCallback(() => {\n const trigger = triggerRef.current\n const container = containerRef.current\n if (!trigger || !container) return\n const triggerRect = trigger.getBoundingClientRect()\n const containerRect = container.getBoundingClientRect()\n setMenuPosition({\n left: triggerRect.left - containerRect.left,\n top: triggerRect.bottom - containerRect.top + 4,\n })\n }, [])","(target: EventTarget | null) => {\n if (!target || !(target instanceof Node)) return false\n return Boolean(rootRef.current?.contains(target))\n }","React.useCallback((target: EventTarget | null) => {\n if (!target || !(target instanceof Node)) return false\n return Boolean(rootRef.current?.contains(target))\n }, [])","() => {\n const target = inputRef.current\n if (!target) return\n target.focus()\n const selection = selectionSnapshotRef.current\n if (selection && selection.start != null && selection.end != null) {\n target.setSelectionRange(selection.start, selection.end)\n }\n }","target","React.useCallback(() => {\n const target = inputRef.current\n if (!target) return\n target.focus()\n const selection = selectionSnapshotRef.current\n if (selection && selection.start != null && selection.end != null) {\n target.setSelectionRange(selection.start, selection.end)\n }\n }, [])","() => {\n if (!menuOpen) return\n const target = searchInputRef.current\n if (!target) return\n requestAnimationFrame(() => {\n if (document.activeElement === target) return\n target.focus()\n const end = target.value.length\n try {\n target.setSelectionRange(end, end)\n } catch {\n /* ignore */\n }\n })\n }","[menuOpen, searchTerm]","(restoreFocus = true) => {\n setMenuOpen(false)\n setSearchTerm(\"\")\n if (restoreFocus) {\n requestAnimationFrame(() => {\n restoreMainFocus()\n })\n }\n }","restoreFocus = true","React.useCallback(\n (restoreFocus = true) => {\n setMenuOpen(false)\n setSearchTerm(\"\")\n if (restoreFocus) {\n requestAnimationFrame(() => {\n restoreMainFocus()\n })\n }\n },\n [restoreMainFocus]\n )","selectProps ?? {}","localePool\n .filter((option) => filterOption({ data: option }))\n .sort((a, b) => {\n const diff = rank(a) - rank(b)\n if (diff !== 0) return diff\n return a.name.localeCompare(b.name)\n })","query","token","(option) => filterOption({ data: option })","React.useMemo(() => {\n const query = normalize(searchTerm)\n const rank = (option: LanguageOption) => {\n const code = option.code.toLowerCase()\n if (query && code === query) return 0\n if (query && code.startsWith(query)) return 1\n if (query && option.searchable.some((token) => token.startsWith(query))) return 2\n if (query && option.searchable.some((token) => token.includes(query))) return 3\n return 4\n }\n return localePool\n .filter((option) => filterOption({ data: option }))\n .sort((a, b) => {\n const diff = rank(a) - rank(b)\n if (diff !== 0) return diff\n return a.name.localeCompare(b.name)\n })\n }, [filterOption, localePool, searchTerm])","(event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault()\n closeMenu(true)\n return\n }\n if (event.key === \"Enter\") {\n event.preventDefault()\n const first = filteredOptions[0]\n if (first) {\n handleLocaleSelect(first)\n }\n return\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault()\n selectRef.current?.focus()\n }\n }","filteredOptions[0]","event","{\n searchTerm,\n setSearchTerm,\n onSearchKeyDown: handleSearchKeyDown,\n searchInputRef,\n selectFooter,\n }","userSelectComponents ?? {}","{\n Control: HiddenControl,\n IndicatorsContainer: NullComponent,\n DropdownIndicator: NullComponent,\n IndicatorSeparator: NullComponent,\n ValueContainer: NullComponent,\n MenuList: SearchableMenuList,\n ...(userSelectComponents ?? {}),\n Option,\n }","React.useMemo(\n () => ({\n Control: HiddenControl,\n IndicatorsContainer: NullComponent,\n DropdownIndicator: NullComponent,\n IndicatorSeparator: NullComponent,\n ValueContainer: NullComponent,\n MenuList: SearchableMenuList,\n ...(userSelectComponents ?? {}),\n Option,\n }),\n [userSelectComponents]\n )","userSelectStyles ?? {}","{\n ...selectStyles,\n ...(userSelectStyles ?? {}),\n }","React.useMemo<StylesConfig<LanguageOption, false>>(\n () => ({\n ...selectStyles,\n ...(userSelectStyles ?? {}),\n }),\n [userSelectStyles]\n )","() => {\n if (!menuOpen) return\n updateMenuPosition()\n const handleResize = () => updateMenuPosition()\n window.addEventListener(\"resize\", handleResize)\n return () => window.removeEventListener(\"resize\", handleResize)\n }","[menuOpen, updateMenuPosition]","(event: React.FocusEvent<any>) => {\n if (menuOpen) {\n closeMenu(false)\n }\n restProps.onFocus?.(event)\n }","restProps.onFocus","(event: React.FocusEvent<any>) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n restProps.onBlur?.(event)\n }","restProps.onBlur","cn(\n \"w-full rounded-md border border-input bg-background text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n multiline ? \"min-h-24 py-2\" : \"h-10 py-2\",\n inputPaddingLeft,\n inputClassName\n )","multiline ? \"min-h-24 py-2\" : \"h-10 py-2\"","{\n ...restProps,\n ref: inputRef as React.Ref<any>,\n disabled,\n value: currentText,\n onChange: handleTextChange,\n onFocus: (event: React.FocusEvent<any>) => {\n if (menuOpen) {\n closeMenu(false)\n }\n restProps.onFocus?.(event)\n },\n onBlur: (event: React.FocusEvent<any>) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n restProps.onBlur?.(event)\n },\n className: cn(\n \"w-full rounded-md border border-input bg-background text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n multiline ? \"min-h-24 py-2\" : \"h-10 py-2\",\n inputPaddingLeft,\n inputClassName\n ),\n placeholder: restProps.placeholder,\n }","cn(\"relative flex flex-col\", className)","(event) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n }","multiline ? (\n <textarea rows={rows} {...sharedFieldProps} />\n ) : (\n <input type=\"text\" {...sharedFieldProps} />\n )","cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded border text-xs font-semibold leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n buttonPosition,\n disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\",\n selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"\n )","disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\"","selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"","() => {\n if (disabled) return\n const target = inputRef.current\n if (target) {\n selectionSnapshotRef.current = {\n start: target.selectionStart,\n end: target.selectionEnd,\n }\n }\n setSearchTerm(\"\")\n setMenuOpen(true)\n requestAnimationFrame(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n searchInputRef.current.select()\n } else {\n selectRef.current?.focus()\n }\n })\n }","selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"","<span aria-hidden=\"true\">{selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"}</span>","<button\n type=\"button\"\n className={cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded border text-xs font-semibold leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n buttonPosition,\n disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\",\n selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"\n )}\n aria-label={selectedOption ? `Select language (${selectedOption.code})` : \"Select language\"}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (disabled) return\n const target = inputRef.current\n if (target) {\n selectionSnapshotRef.current = {\n start: target.selectionStart,\n end: target.selectionEnd,\n }\n }\n setSearchTerm(\"\")\n setMenuOpen(true)\n requestAnimationFrame(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n searchInputRef.current.select()\n } else {\n selectRef.current?.focus()\n }\n })\n }}\n tabIndex={languageSelectTabIndex}\n disabled={disabled}\n ref={triggerRef}\n >\n <span aria-hidden=\"true\">{selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"}</span>\n </button>","selectedOption ? `Select language (${selectedOption.code})` : \"Select language\"","(event) => event.preventDefault()","<div ref={containerRef} className=\"relative\">\n {multiline ? (\n <textarea rows={rows} {...sharedFieldProps} />\n ) : (\n <input type=\"text\" {...sharedFieldProps} />\n )}\n\n <button\n type=\"button\"\n className={cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded border text-xs font-semibold leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n buttonPosition,\n disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\",\n selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"\n )}\n aria-label={selectedOption ? `Select language (${selectedOption.code})` : \"Select language\"}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (disabled) return\n const target = inputRef.current\n if (target) {\n selectionSnapshotRef.current = {\n start: target.selectionStart,\n end: target.selectionEnd,\n }\n }\n setSearchTerm(\"\")\n setMenuOpen(true)\n requestAnimationFrame(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n searchInputRef.current.select()\n } else {\n selectRef.current?.focus()\n }\n })\n }}\n tabIndex={languageSelectTabIndex}\n disabled={disabled}\n ref={triggerRef}\n >\n <span aria-hidden=\"true\">{selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"}</span>\n </button>\n </div>","{\n pointerEvents: menuOpen ? \"auto\" : \"none\",\n width: \"min(260px, 100%)\",\n left: menuPosition.left,\n top: menuPosition.top,\n }","left","top","menuOpen ? \"auto\" : \"none\"","() => closeMenu(true)","<Select<LanguageOption, false>\n {...forwardedSelectProps}\n menuIsOpen={menuOpen}\n options={filteredOptions}\n value={null}\n onChange={handleLocaleSelect}\n classNamePrefix={userClassNamePrefix ?? \"i18n-language-select\"}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue\n menuShouldScrollIntoView={false}\n placeholder={selectPlaceholder ?? \"\"}\n filterOption={filterOption}\n noOptionsMessage={noOptionsMessage}\n onMenuClose={() => closeMenu(true)}\n ref={selectRef}\n />","userClassNamePrefix ?? \"i18n-language-select\"","selectPlaceholder ?? \"\"","<SearchMenuContext.Provider value={searchMenuContextValue}>\n <Select<LanguageOption, false>\n {...forwardedSelectProps}\n menuIsOpen={menuOpen}\n options={filteredOptions}\n value={null}\n onChange={handleLocaleSelect}\n classNamePrefix={userClassNamePrefix ?? \"i18n-language-select\"}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue\n menuShouldScrollIntoView={false}\n placeholder={selectPlaceholder ?? \"\"}\n filterOption={filterOption}\n noOptionsMessage={noOptionsMessage}\n onMenuClose={() => closeMenu(true)}\n ref={selectRef}\n />\n </SearchMenuContext.Provider>","SearchMenuContext.Provider","<div\n className=\"absolute left-0 top-full z-30 mt-1\"\n style={{\n pointerEvents: menuOpen ? \"auto\" : \"none\",\n width: \"min(260px, 100%)\",\n left: menuPosition.left,\n top: menuPosition.top,\n }}\n >\n <SearchMenuContext.Provider value={searchMenuContextValue}>\n <Select<LanguageOption, false>\n {...forwardedSelectProps}\n menuIsOpen={menuOpen}\n options={filteredOptions}\n value={null}\n onChange={handleLocaleSelect}\n classNamePrefix={userClassNamePrefix ?? \"i18n-language-select\"}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue\n menuShouldScrollIntoView={false}\n placeholder={selectPlaceholder ?? \"\"}\n filterOption={filterOption}\n noOptionsMessage={noOptionsMessage}\n onMenuClose={() => closeMenu(true)}\n ref={selectRef}\n />\n </SearchMenuContext.Provider>\n </div>","<div\n ref={rootRef}\n className={cn(\"relative flex flex-col\", className)}\n onBlur={(event) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n }}\n >\n <div ref={containerRef} className=\"relative\">\n {multiline ? (\n <textarea rows={rows} {...sharedFieldProps} />\n ) : (\n <input type=\"text\" {...sharedFieldProps} />\n )}\n\n <button\n type=\"button\"\n className={cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded border text-xs font-semibold leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n buttonPosition,\n disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\",\n selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"\n )}\n aria-label={selectedOption ? `Select language (${selectedOption.code})` : \"Select language\"}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (disabled) return\n const target = inputRef.current\n if (target) {\n selectionSnapshotRef.current = {\n start: target.selectionStart,\n end: target.selectionEnd,\n }\n }\n setSearchTerm(\"\")\n setMenuOpen(true)\n requestAnimationFrame(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n searchInputRef.current.select()\n } else {\n selectRef.current?.focus()\n }\n })\n }}\n tabIndex={languageSelectTabIndex}\n disabled={disabled}\n ref={triggerRef}\n >\n <span aria-hidden=\"true\">{selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"}</span>\n </button>\n </div>\n\n <div\n className=\"absolute left-0 top-full z-30 mt-1\"\n style={{\n pointerEvents: menuOpen ? \"auto\" : \"none\",\n width: \"min(260px, 100%)\",\n left: menuPosition.left,\n top: menuPosition.top,\n }}\n >\n <SearchMenuContext.Provider value={searchMenuContextValue}>\n <Select<LanguageOption, false>\n {...forwardedSelectProps}\n menuIsOpen={menuOpen}\n options={filteredOptions}\n value={null}\n onChange={handleLocaleSelect}\n classNamePrefix={userClassNamePrefix ?? \"i18n-language-select\"}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue\n menuShouldScrollIntoView={false}\n placeholder={selectPlaceholder ?? \"\"}\n filterOption={filterOption}\n noOptionsMessage={noOptionsMessage}\n onMenuClose={() => closeMenu(true)}\n ref={selectRef}\n />\n </SearchMenuContext.Provider>\n </div>\n </div>"],"sources":["../src/components/I18nField/index.tsx"],"sourcesContent":["import * as React from \"react\"\nimport Select, {\n type MenuListProps,\n type OptionProps,\n type Props as SelectProps,\n type SelectInstance,\n type SingleValue,\n type StylesConfig,\n components as selectComponents,\n} from \"react-select\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nexport type LanguageCode = string\n\nexport type LocalizedStringEntry<TExtra extends Record<string, unknown> = Record<string, unknown>> = {\n value: string\n updatedAt: Date\n autoTranslated?: boolean\n} & TExtra\n\nexport type LocalizedString<TExtra extends Record<string, unknown> = Record<string, unknown>> = Record<\n LanguageCode,\n LocalizedStringEntry<TExtra>\n>\n\nexport type I18nValue<TExtra extends Record<string, unknown> = Record<string, unknown>> = LocalizedString<TExtra>\n\ntype LocaleContextValue = {\n locale: LanguageCode | null\n setLocale: (next: LanguageCode) => void\n}\n\nconst I18nFieldLocaleContext = React.createContext<LocaleContextValue | null>(null)\n\ntype I18nFieldLocaleProviderProps = {\n children: React.ReactNode\n value?: LanguageCode\n defaultValue?: LanguageCode\n onChange?: (locale: LanguageCode) => void\n locales?: LanguageCode[]\n}\n\nexport function I18nFieldLocaleProvider({\n children,\n value,\n defaultValue,\n onChange,\n locales,\n}: I18nFieldLocaleProviderProps) {\n const isControlled = value !== undefined\n const defaultLocale = React.useMemo(\n () => getPreferredLocale([defaultValue, ...getEnvironmentLocales()], locales),\n [defaultValue, locales]\n )\n const [internalLocale, setInternalLocale] = React.useState<LanguageCode>(defaultLocale)\n const activeLocale = (value ?? internalLocale) as LanguageCode\n\n const setLocale = React.useCallback(\n (next: LanguageCode) => {\n if (!isControlled) {\n setInternalLocale(next)\n }\n onChange?.(next)\n },\n [isControlled, onChange]\n )\n\n React.useEffect(() => {\n if (isControlled) return\n setInternalLocale((current) => (resolveLocaleMatch(current, locales) ? current : defaultLocale))\n }, [defaultLocale, isControlled, locales])\n\n const contextValue = React.useMemo<LocaleContextValue>(\n () => ({\n locale: activeLocale,\n setLocale,\n }),\n [activeLocale, setLocale]\n )\n\n return <I18nFieldLocaleContext.Provider value={contextValue}>{children}</I18nFieldLocaleContext.Provider>\n}\n\ntype I18nFieldProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"defaultValue\" | \"onChange\"\n> &\n Omit<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"value\" | \"defaultValue\" | \"onChange\"\n > & {\n value?: I18nValue\n defaultValue?: I18nValue\n locale?: LanguageCode\n defaultLocale?: LanguageCode\n onChange?: (value: I18nValue) => void\n onLocaleChange?: (locale: LanguageCode, option: LanguageOption) => void\n locales?: LanguageCode[]\n multiline?: boolean\n inputClassName?: string\n selectProps?: Partial<SelectProps<LanguageOption, false>>\n selectFooter?: React.ReactNode\n languageSelectTabIndex?: number\n }\n\ntype LanguageOption = {\n value: LanguageCode\n name: string\n code: string\n searchable: string[]\n}\n\nconst DEFAULT_LOCALE: LanguageCode = \"en\"\n\nfunction normalizeLocaleCode(code: string) {\n return code.trim().replace(/_/g, \"-\").toLowerCase()\n}\n\nfunction primaryLocaleCode(code: string) {\n return normalizeLocaleCode(code).split(\"-\")[0] ?? \"\"\n}\n\nfunction resolveLocaleMatch(locale: LanguageCode | undefined, locales: LanguageCode[] | undefined) {\n const normalizedLocale = typeof locale === \"string\" ? normalizeLocaleCode(locale) : \"\"\n if (!normalizedLocale) return null\n\n const availableLocales = (locales ?? []).filter(\n (code): code is LanguageCode => typeof code === \"string\" && code.length > 0\n )\n if (availableLocales.length === 0) return locale?.trim() ?? normalizedLocale\n\n return availableLocales.find((code) => normalizeLocaleCode(code) === normalizedLocale) ??\n availableLocales.find((code) => primaryLocaleCode(code) === primaryLocaleCode(normalizedLocale)) ??\n null\n}\n\nfunction getEnvironmentLocales() {\n const candidates: LanguageCode[] = []\n if (typeof document !== \"undefined\") {\n candidates.push(document.documentElement.lang)\n }\n if (typeof navigator !== \"undefined\") {\n candidates.push(...Array.from(navigator.languages ?? []), navigator.language)\n }\n return candidates\n}\n\nfunction getPreferredLocale(candidates: Array<LanguageCode | undefined>, locales?: LanguageCode[]) {\n for (const candidate of candidates) {\n const matchedLocale = resolveLocaleMatch(candidate, locales)\n if (matchedLocale) return matchedLocale\n }\n\n const defaultLocaleMatch = resolveLocaleMatch(DEFAULT_LOCALE, locales)\n if (defaultLocaleMatch) return defaultLocaleMatch\n\n return locales?.[0] ?? DEFAULT_LOCALE\n}\n\nfunction languageCodeToBadge(code: string) {\n const primary = code.split(\"-\")[0] ?? \"\"\n const normalized = primary.replace(/[^A-Za-z]/g, \"\")\n if (!normalized) return \"?\"\n return normalized.slice(0, 3).toUpperCase()\n}\n\nfunction stripDiacritics(value: string) {\n return value.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\")\n}\n\nfunction normalize(value: string) {\n return stripDiacritics(value).toLowerCase()\n}\n\nfunction resolveLocalizedEntry(value: I18nValue, locale: LanguageCode) {\n if (Object.prototype.hasOwnProperty.call(value, locale)) {\n return value[locale]\n }\n\n const parts = locale.split(\"-\").filter(Boolean)\n while (parts.length > 1) {\n parts.pop()\n const candidate = parts.join(\"-\")\n if (Object.prototype.hasOwnProperty.call(value, candidate)) {\n return value[candidate]\n }\n }\n\n return undefined\n}\n\nfunction resolveLocalizedValue(value: I18nValue, locale: LanguageCode) {\n return resolveLocalizedEntry(value, locale)?.value ?? \"\"\n}\n\nfunction createDisplayNames(locale: string | string[] | undefined, type: \"language\") {\n if (typeof Intl === \"undefined\" || typeof Intl.DisplayNames === \"undefined\") return null\n try {\n const locales = Array.isArray(locale) ? locale : locale ? [locale] : undefined\n return new Intl.DisplayNames(locales, { type })\n } catch {\n return null\n }\n}\n\nfunction safeDisplayName(displayNames: Intl.DisplayNames | null, value: string) {\n if (!displayNames) return undefined\n try {\n return displayNames.of(value) ?? undefined\n } catch {\n return undefined\n }\n}\n\nfunction buildLanguageOptions(locale?: string | string[], allowed?: LanguageCode[]) {\n const displayNames = createDisplayNames(locale, \"language\")\n const englishDisplayNames = createDisplayNames(\"en\", \"language\")\n const pool = (allowed ?? []).filter((code): code is LanguageCode => typeof code === \"string\" && code.length > 0)\n\n return pool\n .map((code) => {\n const name = safeDisplayName(displayNames, code) ?? safeDisplayName(englishDisplayNames, code) ?? code\n return {\n value: code,\n name,\n code,\n searchable: Array.from(\n new Set([\n name,\n safeDisplayName(englishDisplayNames, code) ?? code,\n code.toLowerCase(),\n code.toUpperCase(),\n ])\n ).map((entry) => normalize(entry)),\n }\n })\n .sort((a, b) => a.name.localeCompare(b.name))\n}\n\nconst selectStyles: StylesConfig<LanguageOption, false> = {\n control: () => ({\n display: \"none\",\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: 4,\n borderRadius: \"var(--radius)\",\n boxShadow: \"0 18px 36px rgba(15, 23, 42, 0.18)\",\n backgroundColor: \"hsl(var(--popover))\",\n overflow: \"hidden\",\n zIndex: 30,\n }),\n menuList: (provided) => ({\n ...provided,\n maxHeight: 280,\n padding: 0,\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n }),\n option: (provided, state) => ({\n ...provided,\n fontSize: \"0.875rem\",\n backgroundColor: state.isFocused\n ? \"hsl(var(--muted))\"\n : state.isSelected\n ? \"hsl(var(--accent))\"\n : \"transparent\",\n color: state.isSelected\n ? \"hsl(var(--accent-foreground))\"\n : \"hsl(var(--foreground))\",\n cursor: \"pointer\",\n }),\n noOptionsMessage: (provided) => ({\n ...provided,\n fontSize: \"0.875rem\",\n color: \"hsl(var(--muted-foreground))\",\n }),\n}\n\nconst HiddenControl = () => <div style={{ display: \"none\" }} />\nconst NullComponent = () => null\n\ntype SearchMenuContextValue = {\n searchTerm: string\n setSearchTerm: (next: string) => void\n onSearchKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n searchInputRef: React.RefObject<HTMLInputElement | null>\n selectFooter?: React.ReactNode\n}\n\nconst SearchMenuContext = React.createContext<SearchMenuContextValue | null>(null)\n\n// MenuList must keep a stable component identity across renders: an inline component\n// would be remounted on every keystroke, unmounting the focused search input and\n// closing the menu through the root onBlur handler.\nfunction SearchableMenuList(props: MenuListProps<LanguageOption, false>) {\n const search = React.useContext(SearchMenuContext)\n const { children } = props\n return (\n <selectComponents.MenuList {...props} className=\"!p-0 flex flex-col overflow-hidden\">\n {search ? (\n <div className=\"border-b border-muted px-2 pb-2 pt-2\">\n <input\n ref={search.searchInputRef}\n value={search.searchTerm}\n onChange={(event) => search.setSearchTerm(event.target.value)}\n onKeyDown={search.onSearchKeyDown}\n className=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring\"\n placeholder=\"Search language…\"\n />\n </div>\n ) : null}\n <div className=\"max-h-60 overflow-y-auto\">{children}</div>\n {search?.selectFooter ? (\n <div className=\"border-t border-muted bg-muted/60 px-3 py-2 text-xs text-muted-foreground\">\n {search.selectFooter}\n </div>\n ) : null}\n </selectComponents.MenuList>\n )\n}\n\nfunction Option(props: OptionProps<LanguageOption, false>) {\n const { data, innerRef, innerProps, isFocused, isSelected } = props\n return (\n <div\n ref={innerRef}\n {...innerProps}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm\",\n isSelected\n ? \"bg-accent text-accent-foreground\"\n : isFocused\n ? \"bg-muted text-foreground\"\n : \"text-foreground\"\n )}\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{data.name}</span>\n </span>\n <span className=\"text-xs text-muted-foreground uppercase\">{data.code}</span>\n </div>\n )\n}\n\nexport const I18nField = React.forwardRef<HTMLInputElement | HTMLTextAreaElement, I18nFieldProps>(\n function I18nField(props, forwardedRef) {\n const {\n value: valueProp,\n defaultValue,\n locale: localeProp,\n defaultLocale,\n onChange,\n onLocaleChange,\n locales,\n multiline,\n className,\n inputClassName,\n selectProps,\n selectFooter,\n languageSelectTabIndex = -1,\n disabled,\n ...rest\n } = props\n\n type SharedProps = React.InputHTMLAttributes<HTMLInputElement> &\n React.TextareaHTMLAttributes<HTMLTextAreaElement> & { rows?: number }\n\n const { rows, ...restProps } = rest as SharedProps\n\n const initialValue = React.useMemo<I18nValue>(() => valueProp ?? defaultValue ?? {}, [defaultValue, valueProp])\n const [internalValue, setInternalValue] = React.useState<I18nValue>(initialValue)\n const isControlled = valueProp !== undefined\n const currentValue = isControlled ? valueProp ?? {} : internalValue\n const [searchTerm, setSearchTerm] = React.useState(\"\")\n const localeContext = React.useContext(I18nFieldLocaleContext)\n\n const localePool = React.useMemo(() => {\n const pool = Array.from(new Set([...(locales ?? []), ...Object.keys(currentValue)]))\n return buildLanguageOptions(undefined, pool)\n }, [currentValue, locales])\n\n const initialLocale = React.useMemo(() => {\n const localeValues = localePool.map((option) => option.value)\n return localeProp ??\n localeContext?.locale ??\n getPreferredLocale(\n [defaultLocale, ...getEnvironmentLocales(), Object.keys(currentValue)[0] as LanguageCode | undefined],\n localeValues\n )\n }, [currentValue, defaultLocale, localeContext?.locale, localePool, localeProp])\n\n const [internalLocale, setInternalLocale] = React.useState<LanguageCode>(initialLocale)\n const activeLocale = localeProp ?? localeContext?.locale ?? internalLocale\n\n React.useEffect(() => {\n if (!isControlled) {\n setInternalValue(initialValue)\n }\n }, [initialValue, isControlled])\n\n React.useEffect(() => {\n if (localeProp && localeProp !== internalLocale) {\n setInternalLocale(localeProp)\n }\n }, [internalLocale, localeProp])\n\n React.useEffect(() => {\n if (!localeProp && localeContext?.locale && localeContext.locale !== internalLocale) {\n setInternalLocale(localeContext.locale)\n }\n }, [internalLocale, localeContext?.locale, localeProp])\n\n const selectedOption =\n localePool.find((option) => option.value === activeLocale) ??\n localePool.find((option) => option.value === DEFAULT_LOCALE) ??\n localePool[0] ??\n null\n\n const [menuOpen, setMenuOpen] = React.useState(false)\n const rootRef = React.useRef<HTMLDivElement | null>(null)\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement | null>(null)\n const triggerRef = React.useRef<HTMLButtonElement | null>(null)\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const selectRef = React.useRef<SelectInstance<LanguageOption, false> | null>(null)\n const searchInputRef = React.useRef<HTMLInputElement | null>(null)\n const selectionSnapshotRef = React.useRef<{ start: number | null; end: number | null } | null>(null)\n const [menuPosition, setMenuPosition] = React.useState<{ left: number; top: number }>({ left: 0, top: 0 })\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement & HTMLTextAreaElement, [])\n\n const handleLocaleSelect = (option: SingleValue<LanguageOption>) => {\n if (!option) return\n const nextLocale = option.value\n if (!isControlled) {\n setInternalLocale(nextLocale)\n }\n onLocaleChange?.(nextLocale, option)\n localeContext?.setLocale(nextLocale)\n closeMenu(true)\n }\n\n const handleTextChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const currentEntry = currentValue[activeLocale]\n const nextValue = {\n ...currentValue,\n [activeLocale]: {\n ...(currentEntry ?? {}),\n value: event.target.value,\n updatedAt: new Date(),\n autoTranslated: false,\n },\n }\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n }\n\n const currentText = resolveLocalizedValue(currentValue, activeLocale)\n\n const filterOption = React.useCallback(\n (option: { data: LanguageOption }) => {\n if (!searchTerm) return true\n const query = normalize(searchTerm)\n return option.data.searchable.some((token) => token.includes(query))\n },\n [searchTerm]\n )\n\n const buttonPosition = multiline ? \"left-2 top-2 -translate-y-0\" : \"left-3 top-1/2 -translate-y-1/2\"\n const inputPaddingLeft = \"pl-10 pr-3\"\n\n const updateMenuPosition = React.useCallback(() => {\n const trigger = triggerRef.current\n const container = containerRef.current\n if (!trigger || !container) return\n const triggerRect = trigger.getBoundingClientRect()\n const containerRect = container.getBoundingClientRect()\n setMenuPosition({\n left: triggerRect.left - containerRect.left,\n top: triggerRect.bottom - containerRect.top + 4,\n })\n }, [])\n\n const isInsideComponent = React.useCallback((target: EventTarget | null) => {\n if (!target || !(target instanceof Node)) return false\n return Boolean(rootRef.current?.contains(target))\n }, [])\n\n const restoreMainFocus = React.useCallback(() => {\n const target = inputRef.current\n if (!target) return\n target.focus()\n const selection = selectionSnapshotRef.current\n if (selection && selection.start != null && selection.end != null) {\n target.setSelectionRange(selection.start, selection.end)\n }\n }, [])\n\n React.useEffect(() => {\n if (!menuOpen) return\n const target = searchInputRef.current\n if (!target) return\n requestAnimationFrame(() => {\n if (document.activeElement === target) return\n target.focus()\n const end = target.value.length\n try {\n target.setSelectionRange(end, end)\n } catch {\n /* ignore */\n }\n })\n }, [menuOpen, searchTerm])\n\n const closeMenu = React.useCallback(\n (restoreFocus = true) => {\n setMenuOpen(false)\n setSearchTerm(\"\")\n if (restoreFocus) {\n requestAnimationFrame(() => {\n restoreMainFocus()\n })\n }\n },\n [restoreMainFocus]\n )\n\n const {\n components: userSelectComponents,\n styles: userSelectStyles,\n classNamePrefix: userClassNamePrefix,\n placeholder: selectPlaceholder,\n noOptionsMessage,\n ...forwardedSelectProps\n } = selectProps ?? {}\n\n const filteredOptions = React.useMemo(() => {\n const query = normalize(searchTerm)\n const rank = (option: LanguageOption) => {\n const code = option.code.toLowerCase()\n if (query && code === query) return 0\n if (query && code.startsWith(query)) return 1\n if (query && option.searchable.some((token) => token.startsWith(query))) return 2\n if (query && option.searchable.some((token) => token.includes(query))) return 3\n return 4\n }\n return localePool\n .filter((option) => filterOption({ data: option }))\n .sort((a, b) => {\n const diff = rank(a) - rank(b)\n if (diff !== 0) return diff\n return a.name.localeCompare(b.name)\n })\n }, [filterOption, localePool, searchTerm])\n\n const handleSearchKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault()\n closeMenu(true)\n return\n }\n if (event.key === \"Enter\") {\n event.preventDefault()\n const first = filteredOptions[0]\n if (first) {\n handleLocaleSelect(first)\n }\n return\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault()\n selectRef.current?.focus()\n }\n }\n\n const searchMenuContextValue: SearchMenuContextValue = {\n searchTerm,\n setSearchTerm,\n onSearchKeyDown: handleSearchKeyDown,\n searchInputRef,\n selectFooter,\n }\n\n const mergedSelectComponents = React.useMemo(\n () => ({\n Control: HiddenControl,\n IndicatorsContainer: NullComponent,\n DropdownIndicator: NullComponent,\n IndicatorSeparator: NullComponent,\n ValueContainer: NullComponent,\n MenuList: SearchableMenuList,\n ...(userSelectComponents ?? {}),\n Option,\n }),\n [userSelectComponents]\n )\n\n const mergedSelectStyles = React.useMemo<StylesConfig<LanguageOption, false>>(\n () => ({\n ...selectStyles,\n ...(userSelectStyles ?? {}),\n }),\n [userSelectStyles]\n )\n\n React.useLayoutEffect(() => {\n if (!menuOpen) return\n updateMenuPosition()\n const handleResize = () => updateMenuPosition()\n window.addEventListener(\"resize\", handleResize)\n return () => window.removeEventListener(\"resize\", handleResize)\n }, [menuOpen, updateMenuPosition])\n\n const sharedFieldProps = {\n ...restProps,\n ref: inputRef as React.Ref<any>,\n disabled,\n value: currentText,\n onChange: handleTextChange,\n onFocus: (event: React.FocusEvent<any>) => {\n if (menuOpen) {\n closeMenu(false)\n }\n restProps.onFocus?.(event)\n },\n onBlur: (event: React.FocusEvent<any>) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n restProps.onBlur?.(event)\n },\n className: cn(\n \"w-full rounded-md border border-input bg-background text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n multiline ? \"min-h-24 py-2\" : \"h-10 py-2\",\n inputPaddingLeft,\n inputClassName\n ),\n placeholder: restProps.placeholder,\n }\n\n return (\n <div\n ref={rootRef}\n className={cn(\"relative flex flex-col\", className)}\n onBlur={(event) => {\n if (!isInsideComponent(event.relatedTarget)) {\n closeMenu(false)\n }\n }}\n >\n <div ref={containerRef} className=\"relative\">\n {multiline ? (\n <textarea rows={rows} {...sharedFieldProps} />\n ) : (\n <input type=\"text\" {...sharedFieldProps} />\n )}\n\n <button\n type=\"button\"\n className={cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded border text-xs font-semibold leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n buttonPosition,\n disabled ? \"cursor-not-allowed opacity-50 pointer-events-none\" : \"cursor-pointer hover:bg-muted\",\n selectedOption ? \"border-transparent\" : \"border-dashed border-border text-muted-foreground\"\n )}\n aria-label={selectedOption ? `Select language (${selectedOption.code})` : \"Select language\"}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (disabled) return\n const target = inputRef.current\n if (target) {\n selectionSnapshotRef.current = {\n start: target.selectionStart,\n end: target.selectionEnd,\n }\n }\n setSearchTerm(\"\")\n setMenuOpen(true)\n requestAnimationFrame(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n searchInputRef.current.select()\n } else {\n selectRef.current?.focus()\n }\n })\n }}\n tabIndex={languageSelectTabIndex}\n disabled={disabled}\n ref={triggerRef}\n >\n <span aria-hidden=\"true\">{selectedOption ? languageCodeToBadge(selectedOption.code) : \"?\"}</span>\n </button>\n </div>\n\n <div\n className=\"absolute left-0 top-full z-30 mt-1\"\n style={{\n pointerEvents: menuOpen ? \"auto\" : \"none\",\n width: \"min(260px, 100%)\",\n left: menuPosition.left,\n top: menuPosition.top,\n }}\n >\n <SearchMenuContext.Provider value={searchMenuContextValue}>\n <Select<LanguageOption, false>\n {...forwardedSelectProps}\n menuIsOpen={menuOpen}\n options={filteredOptions}\n value={null}\n onChange={handleLocaleSelect}\n classNamePrefix={userClassNamePrefix ?? \"i18n-language-select\"}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue\n menuShouldScrollIntoView={false}\n placeholder={selectPlaceholder ?? \"\"}\n filterOption={filterOption}\n noOptionsMessage={noOptionsMessage}\n onMenuClose={() => closeMenu(true)}\n ref={selectRef}\n />\n </SearchMenuContext.Provider>\n </div>\n </div>\n )\n }\n)\n\nI18nField.displayName = \"I18nField\"\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index300.js","names":["q","x","e","n","l","f","t","h","F","M","d","C","z","L","r","j","m","b","i","u","o","a","c","s","y","B","R","w","P","G","T","V","I","E"],"sources":["../../../node_modules/blurhash/dist/esm/index.js"],"sourcesContent":["var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r<t.length;r++){let n=t[r],l=q.indexOf(n);e=e*83+l}return e},p=(t,e)=>{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o<u.length;o++)if(o===0){let a=x(t.substring(2,6));u[o]=z(a)}else{let a=x(t.substring(4+o*2,6+o*2));u[o]=L(a,i*n)}let c=e*4,s=new Uint8ClampedArray(c*r);for(let o=0;o<r;o++)for(let a=0;a<e;a++){let y=0,B=0,R=0;for(let w=0;w<m;w++)for(let P=0;P<b;P++){let G=Math.cos(Math.PI*a*P/e)*Math.cos(Math.PI*o*w/r),T=u[P+w*b];y+=T[0]*G,B+=T[1]*G,R+=T[2]*G}let V=h(y),I=h(B),E=h(R);s[4*a+0+o*c]=V,s[4*a+1+o*c]=I,s[4*a+2+o*c]=E,s[4*a+3+o*c]=255}return s},j=U;var A=4,D=(t,e,r,n)=>{let l=0,m=0,b=0,g=e*A;for(let u=0;u<e;u++){let c=A*u;for(let s=0;s<r;s++){let o=c+s*g,a=n(u,s);l+=a*f(t[o]),m+=a*f(t[o+1]),b+=a*f(t[o+2])}}let i=1/(e*r);return[l*i,m*i,b*i]},$=t=>{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;s<l;s++)for(let o=0;o<n;o++){let a=o==0&&s==0?1:2,y=D(t,e,r,(B,R)=>a*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map"],"ignoreList":[0],"mappings":"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"}
|