@rpcbase/ui 0.202.0 → 0.203.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/index.js +25 -73
- package/dist/index10.js +18 -28
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +8 -8
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +8 -7
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +14 -7
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +9 -9
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +14 -148
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +21 -43
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +27 -7
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +8 -10
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +8 -16
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +9 -16
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +1674 -41
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +9 -10
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +8 -34
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +8 -13
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +11 -13
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +10 -11
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +37 -16
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +10 -104
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +9 -23
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +10 -56
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +12 -75
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +10 -470
- package/dist/index12.js.map +1 -1
- package/dist/index120.js +8 -12
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +9 -23
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +8 -19
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +8 -26
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +9 -9
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +8 -8
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +9 -27
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +11 -38
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +60 -19
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +9 -9
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +22 -140
- package/dist/index13.js.map +1 -1
- package/dist/index130.js +23 -8
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +22 -7
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +37 -7
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +8 -7
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +11 -6
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +17 -9
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +14 -27
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +9 -10
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +8 -9
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +8 -8
- package/dist/index139.js.map +1 -1
- package/dist/index14.js +194 -78
- package/dist/index14.js.map +1 -1
- package/dist/index140.js +8 -6
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +8 -6
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +7 -7
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +9 -6
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +24 -8
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +11 -6
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +10 -6
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +9 -6
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +9 -8
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +7 -10
- package/dist/index149.js.map +1 -1
- package/dist/index15.js +33 -874
- package/dist/index15.js.map +1 -1
- package/dist/index150.js +7 -8
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +9 -50
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +8 -50
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +9 -209
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +8 -25
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +7 -27
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +8 -403
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +32 -609
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +35 -19
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +18 -8
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +57 -23
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +14 -8
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +12 -61
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +19 -69
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +89 -9
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +50 -7
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +20 -10
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +11 -20
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +13 -8
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +8 -8
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +25 -16
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +9 -20
- package/dist/index17.js.map +1 -1
- package/dist/index170.js +10 -13
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +9 -17
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +9 -17
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +7 -8
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +9 -9
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +70 -10
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +20 -9
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +15 -12
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +12 -8
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +23 -8
- package/dist/index179.js.map +1 -1
- package/dist/index18.js +27 -460
- package/dist/index18.js.map +1 -1
- package/dist/index180.js +20 -12
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +58 -8
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +13 -8
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +9 -7
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +29 -14
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +29 -13
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +16 -13
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +16 -14
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +9 -14
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +26 -13
- package/dist/index189.js.map +1 -1
- package/dist/index19.js +65 -666
- package/dist/index19.js.map +1 -1
- package/dist/index190.js +388 -10
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +499 -10
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +134 -9
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +55 -9
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +80 -10
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +902 -9
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +22 -58
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +452 -12
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +7 -22
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +60 -32
- package/dist/index199.js.map +1 -1
- package/dist/index2.js +10 -8
- package/dist/index20.js +43 -469
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +63 -15
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +11 -28
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +19 -8
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +148 -20
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +7 -11
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +13 -13
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +107 -13
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +359 -23
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +99 -14
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +329 -12
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +12 -266
- package/dist/index21.js.map +1 -1
- package/dist/index210.js +213 -12
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +22 -8
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +30 -8
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +189 -18
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +21 -13
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +46 -21
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +12 -18
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +28 -16
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +47 -8
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +19 -70
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +16 -8
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +6 -5
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +8 -367
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +24 -265
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +27 -63
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +68 -47
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +17 -172
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +7 -113
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +53 -27
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +8 -10
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +28 -6
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +109 -30
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +16 -8
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +12 -7
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +3 -470
- package/dist/index233.js +28 -188
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +68 -107
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +3 -266
- package/dist/index236.js +14 -12
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +53 -45
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +117 -7
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +9 -28
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +3 -269
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +15 -31
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +689 -7
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +256 -71
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +704 -184
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +7433 -49
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +9 -7
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +16 -22
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +8 -15
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +462 -16
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +41 -158
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +11 -179
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +21 -32
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +30 -12
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +8 -52
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +62 -15
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +10 -47
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +14 -97
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +6 -90
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +20 -109
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +28 -55
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +47 -15
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +22 -16
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +16 -40
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +28 -11
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +20 -119
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +38 -20
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +8 -18
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +12 -6
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +11 -39
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +12 -23
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +13 -12
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +10 -11
- package/dist/index269.js.map +1 -1
- package/dist/index27.js +61 -2924
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +76 -22
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +174 -31
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +118 -20
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +18 -8
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +83 -5
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +49 -26
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +15 -114
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +19 -18
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +98 -523
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +60 -131
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +58 -5
- package/dist/index28.js.map +1 -1
- package/dist/index280.js +109 -134
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +75 -9
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +117 -9
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +59 -7
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +46 -18
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +146 -12
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +143 -9
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +258 -8
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +241 -546
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +302 -50
- package/dist/index289.js.map +1 -1
- package/dist/index29.js +1 -40
- package/dist/index290.js +9 -21
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +9 -9
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +10 -11
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +9 -10
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +9 -11
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +24 -15
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +13 -12
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +130 -17
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +167 -23
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +69 -65
- package/dist/index299.js.map +1 -1
- package/dist/index3.js +6 -5
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +6 -6
- package/dist/index300.js +113 -72
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +495 -12
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +65 -16
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +7 -69
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +30 -7
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +68 -58
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +155 -70
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +563 -32
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +213 -11
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +335 -156
- package/dist/index309.js.map +1 -1
- package/dist/index31.js +8 -128
- package/dist/index31.js.map +1 -1
- package/dist/index310.js +271 -110
- package/dist/index310.js.map +1 -1
- package/dist/index32.js +8 -234
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +8 -26
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +11 -54
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +13 -24
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +9 -133
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +11 -225
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +12 -94
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +15 -121
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +24 -28
- package/dist/index4.js.map +1 -1
- package/dist/index40.js +9 -8
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +10 -847
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +10 -60
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +12 -10
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +12 -5
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +8 -14
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +8 -21
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +14 -10
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +15 -5
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +10 -26
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +34 -48
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +7 -236
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +9 -9
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +9 -36
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +9 -29
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +12 -10
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +16 -14
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +10 -5
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +10 -5
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +10 -5
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +17 -5
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +42 -227
- package/dist/index6.js.map +1 -1
- package/dist/index60.js +11 -208
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +11 -6
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +70 -50
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +10 -53
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +33 -10
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +13 -18
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +19 -137
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +203 -13
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +22 -218
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +20 -16
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +225 -37
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +125 -49
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +21 -52
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +12 -7
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +12 -8
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +17 -31
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +13 -53
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +13 -12
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +8 -55
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +44 -7
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +383 -7
- package/dist/index79.js.map +1 -1
- package/dist/index8.js +36 -32
- package/dist/index8.js.map +1 -1
- package/dist/index80.js +41 -18
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +25 -9
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +60 -10
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +10 -19
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +8 -7
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +8 -7
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +8 -8
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +8 -8
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +9 -7
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +9 -7
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +33 -181
- package/dist/index9.js.map +1 -1
- package/dist/index90.js +13 -9
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +10 -27
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +9 -9
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +8 -7
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +10 -9
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +50 -8
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +108 -7
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +13 -8
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +9 -7
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +9 -11
- package/dist/index99.js.map +1 -1
- package/package.json +6 -6
- package/dist/index.js.map +0 -1
- package/dist/index2.js.map +0 -1
- package/dist/index232.js.map +0 -1
- package/dist/index235.js.map +0 -1
- package/dist/index29.js.map +0 -1
- package/dist/index30.js.map +0 -1
- package/dist/index311.js +0 -7
- package/dist/index311.js.map +0 -1
- package/dist/index312.js +0 -26
- package/dist/index312.js.map +0 -1
- package/dist/index313.js +0 -19
- package/dist/index313.js.map +0 -1
- package/dist/index314.js +0 -32
- package/dist/index314.js.map +0 -1
- package/dist/index315.js +0 -16
- package/dist/index315.js.map +0 -1
- package/dist/index316.js +0 -10
- package/dist/index316.js.map +0 -1
- package/dist/index317.js +0 -26
- package/dist/index317.js.map +0 -1
- package/dist/index318.js +0 -16
- package/dist/index318.js.map +0 -1
- package/dist/index319.js +0 -31
- package/dist/index319.js.map +0 -1
- package/dist/index320.js +0 -8
- package/dist/index320.js.map +0 -1
package/dist/index243.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index243.js","sources":["../../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","useCollection","createCollectionScope","createCollection","createRovingFocusGroupContext","createRovingFocusGroupScope","createContextScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","React","props","forwardedRef","jsx","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","ref","composedRefs","useComposedRefs","direction","useDirection","currentTabStopId","setCurrentTabStopId","useControllableState","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","useCallbackRef","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","node","tabStopId","prevCount","Primitive","composeEventHandlers","event","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","children","itemProps","autoId","useId","id","context","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","_","index","Root","Item"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index243.js","names":["Check","ChevronDown","ChevronUp","React","DismissableLayerBranch","createPortal","IMaskInput","IMask","InputMask","Select","SelectContent","SelectItem","SelectTrigger","SelectValue","useIsTouchDevice","cn","imaskAny","HourPickerOption","value","label","disabled","description","ReactNode","pad2","String","padStart","parseTimeInput","raw","trimmed","trim","match","exec","hours","Number","minutes","isFinite","getAcceptedInputSignature","parsed","digits","replace","length","minutePart","slice","hourPart","ParsedTimeInputResult","selectableValue","parseTimeInputWithSelectableOption","options","parsedOption","find","option","isOptionSelectable","timeStringToMinutes","findClosestSelectableOption","targetMinutes","bestOption","bestDiff","POSITIVE_INFINITY","bestMinutes","NEGATIVE_INFINITY","optionMinutes","diff","Math","abs","HourPickerScrollButtonDirection","HourPickerScrollButtonProps","direction","viewportRef","RefObject","HTMLElement","speed","className","HourPickerScrollButton","setDisabled","useState","animationRef","useRef","undefined","lastTimeRef","isScrollingRef","checkScrollability","useCallback","viewport","current","scrollTop","scrollHeight","clientHeight","tolerance","canScrollUp","canScrollDown","hasScrollableContent","shouldDisable","useEffect","handleScroll","handleResize","addEventListener","passive","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","removeEventListener","disconnect","stopScrolling","cancelAnimationFrame","smoothScroll","currentTime","deltaTime","distance","requestAnimationFrame","oldScrollTop","maxScroll","newScrollTop","max","min","scrollTo","top","canContinue","setTimeout","startScrolling","HourPickerInputProps","id","onChange","onValueUpdate","placeholder","inputClassName","readOnly","open","onOpenChange","triggerTestId","contentTestId","isHydrated","HourPickerInput","openProp","reactId","useId","triggerId","triggerInputRef","HTMLInputElement","setTriggerDraftValueRef","setTriggerDraftValueHandler","handler","highlightedValueRef","keyboardNavigationActiveRef","highlightedValue","setHighlightedValue","containerRef","HTMLDivElement","desktopPopoverRef","desktopContentRef","desktopPopoverPosition","setDesktopPopoverPosition","left","width","uncontrolledOpen","setUncontrolledOpen","setOpen","openRef","input","document","activeElement","focus","preventScroll","updateHighlightedValue","next","markKeyboardNavigation","currentOption","firstEnabled","updateValue","matchingOption","commitValue","ownerDocument","ownerWindow","defaultView","window","handlePointerDown","event","PointerEvent","target","Node","container","contains","popover","handleKeyDown","KeyboardEvent","key","preventDefault","stopPropagation","handleWheel","WheelEvent","deltaY","maxScrollTop","atTop","atBottom","isWheelOverViewport","nextScrollTop","trigger","isActive","observer","IntersectionObserver","entries","entry","isIntersecting","updateDesktopPopoverPosition","rect","getBoundingClientRect","popoverHeight","offsetHeight","viewportWidth","innerWidth","viewportHeight","innerHeight","padding","bottom","overflowBottom","aboveTop","useLayoutEffect","rafId","run","selected","querySelector","targetTop","offsetTop","targetBottom","viewportBottom","all","Array","from","querySelectorAll","lastDisabledBefore","el","isDisabled","hasAttribute","offset","raf","node","map","isChecked","movementX","movementY","body","displayName","HourPickerFieldProps","HourPickerSelectField","t0","$","_c","t1","t2","t3","t4","t5","next_0","t6","t7","t8","t9","t10","t11","t12","_temp","t13","t14","t15","option_0","HourPickerField","props","isTouchDevice","HourPickerMaskedSelectTriggerProps","onCommit","MutableRefObject","inputRef","onDraftValueHandlerChange","HourPickerMaskedSelectTrigger","isEditingRef","pointerDownOnInputRef","inputWasFocusedOnPointerDownRef","ignoreNextMaskCommitValueRef","lastAcceptedSignatureRef","clearCommitPendingRef","draft","setDraft","nextValue","base","baseIndex","findIndex","nextIndex","nextOption","moveSelection","triggerClassName","Symbol","for","mask","lazy","t16","appended","dynamicMasked","compiledMasks","hourPrefix","hasTwoDigitHour","some","startsWith","t17","accepted","_mask","nextText","nextDigits","nextSignature","t18","completed","_mask_0","event_0","nextText_0","resolved","closestOption","t19","t20","t21","event_1","currentTarget","t22","event_2","defaultPrevented","shouldReopen","ctrlKey","metaKey","altKey","resolved_0","highlightedOption","option_1","fallbackValue","_temp2","targetMinutes_0","closestOption_0","t23","event_3","shouldSelectAll","element","select","t24","resolved_1","t25","t26","t27","t28","t29","t30","_temp3","_temp4","t31","event_5","event_4","option_2"],"sources":["../src/components/HourPickerField/index.tsx"],"sourcesContent":["import { Check, ChevronDown, ChevronUp } from \"lucide-react\"\nimport * as React from \"react\"\nimport { DismissableLayerBranch } from \"@radix-ui/react-dismissable-layer\"\nimport { createPortal } from \"react-dom\"\nimport { IMaskInput } from \"react-imask\"\nimport IMask, { InputMask } from \"imask\"\n\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/Select\"\nimport { useIsTouchDevice } from \"@/helpers/useIsTouchDevice\"\nimport { cn } from \"@/lib/utils\"\n\n\n// WARNING: used to preserve input mask even with tree shaking\n// DO NOT REMOVE THIS CODE OR THIS COMMENT\nconst imaskAny = IMask as any\nif (typeof imaskAny.InputMask !== \"function\") {\n imaskAny.InputMask = InputMask\n}\n\n\nexport type HourPickerOption = {\n value: string\n label: string\n disabled?: boolean\n description?: React.ReactNode\n}\n\nfunction pad2(value: number) {\n return String(value).padStart(2, \"0\")\n}\n\nfunction parseTimeInput(raw: string) {\n const trimmed = raw.trim()\n if (!trimmed) return null\n\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(trimmed)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\n return null\n }\n\n return `${pad2(hours)}:${pad2(minutes)}`\n}\n\nfunction getAcceptedInputSignature(raw: string) {\n const parsed = parseTimeInput(raw)\n if (parsed) {\n return `parsed:${parsed}`\n }\n\n const digits = raw.replace(/\\D/g, \"\")\n if (!digits) {\n return \"empty\"\n }\n\n if (digits.length <= 2) {\n return `hour:${Number(digits)}`\n }\n\n const minutePart = digits.slice(-2)\n const hourPart = digits.slice(0, -2)\n return `hour-minute:${Number(hourPart)}:${minutePart}`\n}\n\ntype ParsedTimeInputResult = {\n parsed: string\n selectableValue: string | null\n}\n\nfunction parseTimeInputWithSelectableOption(raw: string, options: HourPickerOption[]): ParsedTimeInputResult | null {\n const parsed = parseTimeInput(raw)\n if (!parsed) return null\n\n const parsedOption = options.find((option) => option.value === parsed)\n if (isOptionSelectable(parsedOption)) {\n return { parsed, selectableValue: parsed }\n }\n\n return { parsed, selectableValue: null }\n}\n\nfunction timeStringToMinutes(value: string) {\n const match = /^(\\d{2}):(\\d{2})$/.exec(value)\n if (!match) {\n return null\n }\n\n const hours = Number(match[1])\n const minutes = Number(match[2])\n\n if (!Number.isFinite(hours) || !Number.isFinite(minutes)) {\n return null\n }\n\n return hours * 60 + minutes\n}\n\nfunction isOptionSelectable(option: HourPickerOption | undefined) {\n if (!option) return false\n return !option.disabled\n}\n\nfunction findClosestSelectableOption(targetMinutes: number, options: HourPickerOption[]) {\n let bestOption: HourPickerOption | null = null\n let bestDiff = Number.POSITIVE_INFINITY\n let bestMinutes = Number.NEGATIVE_INFINITY\n\n for (const option of options) {\n if (!isOptionSelectable(option)) continue\n const optionMinutes = timeStringToMinutes(option.value)\n if (optionMinutes == null) continue\n\n const diff = Math.abs(optionMinutes - targetMinutes)\n if (diff < bestDiff || (diff === bestDiff && optionMinutes > bestMinutes)) {\n bestOption = option\n bestDiff = diff\n bestMinutes = optionMinutes\n }\n }\n\n return bestOption\n}\n\ntype HourPickerScrollButtonDirection = \"up\" | \"down\"\n\ntype HourPickerScrollButtonProps = {\n direction: HourPickerScrollButtonDirection\n viewportRef: React.RefObject<HTMLElement | null>\n speed?: number\n className?: string\n}\n\nfunction HourPickerScrollButton({\n direction,\n viewportRef,\n speed = 400,\n className,\n}: HourPickerScrollButtonProps) {\n const [disabled, setDisabled] = React.useState(true)\n const animationRef = React.useRef<number | undefined>(undefined)\n const lastTimeRef = React.useRef<number | undefined>(undefined)\n const isScrollingRef = React.useRef(false)\n\n const checkScrollability = React.useCallback(() => {\n const viewport = viewportRef.current\n if (!viewport) {\n setDisabled(true)\n return\n }\n\n const { scrollTop, scrollHeight, clientHeight } = viewport\n const tolerance = 2\n\n const canScrollUp = scrollTop > tolerance\n const canScrollDown = scrollTop < (scrollHeight - clientHeight - tolerance)\n const hasScrollableContent = scrollHeight > clientHeight + tolerance\n\n if (!hasScrollableContent) {\n setDisabled(true)\n return\n }\n\n const shouldDisable = direction === \"up\" ? !canScrollUp : !canScrollDown\n setDisabled(shouldDisable)\n }, [direction, viewportRef])\n\n React.useEffect(() => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n checkScrollability()\n\n const handleScroll = () => checkScrollability()\n const handleResize = () => checkScrollability()\n\n viewport.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n const resizeObserver = new ResizeObserver(handleResize)\n resizeObserver.observe(viewport)\n\n const mutationObserver = new MutationObserver(handleResize)\n mutationObserver.observe(viewport, { childList: true, subtree: true })\n\n return () => {\n viewport.removeEventListener(\"scroll\", handleScroll)\n resizeObserver.disconnect()\n mutationObserver.disconnect()\n }\n }, [viewportRef, checkScrollability])\n\n const stopScrolling = React.useCallback(() => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = undefined\n }\n isScrollingRef.current = false\n lastTimeRef.current = undefined\n }, [])\n\n const smoothScroll = React.useCallback(\n (currentTime: number) => {\n const viewport = viewportRef.current\n if (!viewport || disabled || !isScrollingRef.current) {\n stopScrolling()\n return\n }\n\n if (!lastTimeRef.current) {\n lastTimeRef.current = currentTime\n }\n\n const deltaTime = currentTime - lastTimeRef.current\n const distance = (speed * deltaTime) / 1000\n\n if (distance < 0.1) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n return\n }\n\n const oldScrollTop = viewport.scrollTop\n const maxScroll = viewport.scrollHeight - viewport.clientHeight\n\n let newScrollTop: number\n if (direction === \"up\") {\n newScrollTop = Math.max(0, oldScrollTop - distance)\n } else {\n newScrollTop = Math.min(maxScroll, oldScrollTop + distance)\n }\n\n viewport.scrollTo({ top: newScrollTop })\n\n lastTimeRef.current = currentTime\n\n const tolerance = 1\n const canContinue =\n direction === \"up\"\n ? newScrollTop > tolerance\n : newScrollTop < (maxScroll - tolerance)\n\n if (canContinue && Math.abs(newScrollTop - oldScrollTop) > 0.01) {\n animationRef.current = requestAnimationFrame(smoothScroll)\n } else {\n stopScrolling()\n setTimeout(checkScrollability, 16)\n }\n },\n [checkScrollability, direction, disabled, speed, stopScrolling, viewportRef],\n )\n\n const startScrolling = React.useCallback(() => {\n if (disabled || !viewportRef.current || isScrollingRef.current) return\n\n isScrollingRef.current = true\n lastTimeRef.current = undefined\n animationRef.current = requestAnimationFrame(smoothScroll)\n }, [disabled, smoothScroll, viewportRef])\n\n React.useEffect(() => stopScrolling, [stopScrolling])\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center py-1 select-none\",\n disabled ? \"cursor-default opacity-40\" : \"cursor-pointer opacity-100 hover:bg-accent/20\",\n className\n )}\n onPointerEnter={() => {\n if (!disabled) startScrolling()\n }}\n onPointerMove={() => {\n if (!disabled && !isScrollingRef.current) startScrolling()\n }}\n onPointerLeave={() => {\n stopScrolling()\n }}\n >\n {direction === \"up\"\n ? <ChevronUp aria-hidden className=\"h-4 w-4 opacity-50\" />\n : <ChevronDown aria-hidden className=\"h-4 w-4 opacity-50\" />}\n </div>\n )\n}\n\nexport type HourPickerInputProps = {\n id?: string\n value: string | null\n onChange: (value: string | null) => void\n onValueUpdate?: (value: string | null) => void\n options: HourPickerOption[]\n placeholder?: string\n className?: string\n inputClassName?: string\n disabled?: boolean\n readOnly?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n triggerTestId?: string\n contentTestId?: string\n isHydrated?: boolean\n}\n\nexport function HourPickerInput({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n readOnly,\n open: openProp,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerInputProps) {\n const reactId = React.useId()\n const triggerId = id ?? `hours-picker-${reactId}`\n const triggerInputRef = React.useRef<HTMLInputElement | null>(null)\n const setTriggerDraftValueRef = React.useRef<((value: string) => void) | null>(null)\n const setTriggerDraftValueHandler = React.useCallback((handler: ((value: string) => void) | null) => {\n setTriggerDraftValueRef.current = handler\n }, [])\n const highlightedValueRef = React.useRef<string | null>(null)\n const keyboardNavigationActiveRef = React.useRef(false)\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const desktopPopoverRef = React.useRef<HTMLDivElement | null>(null)\n const desktopContentRef = React.useRef<HTMLDivElement | null>(null)\n const [desktopPopoverPosition, setDesktopPopoverPosition] = React.useState(() => ({\n left: 0,\n top: 0,\n width: 0,\n }))\n\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false)\n const open = openProp ?? uncontrolledOpen\n const setOpen = onOpenChange ?? setUncontrolledOpen\n const openRef = React.useRef(false)\n openRef.current = open\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (disabled || readOnly) {\n return\n }\n\n const input = triggerInputRef.current\n if (!(input instanceof HTMLInputElement)) {\n return\n }\n if (typeof document !== \"undefined\" && document.activeElement === input) {\n return\n }\n\n input.focus({ preventScroll: true })\n }, [disabled, open, readOnly])\n\n const updateHighlightedValue = React.useCallback((next: string | null) => {\n highlightedValueRef.current = next\n setHighlightedValue(next)\n }, [])\n\n const markKeyboardNavigation = React.useCallback(() => {\n keyboardNavigationActiveRef.current = true\n }, [])\n\n React.useEffect(() => {\n if (!open) return\n\n const currentOption = options.find((option) => option.value === value)\n if (currentOption && isOptionSelectable(currentOption)) {\n updateHighlightedValue(currentOption.value)\n return\n }\n\n const firstEnabled = options.find((option) => isOptionSelectable(option))\n updateHighlightedValue(firstEnabled?.value ?? null)\n }, [open, options, updateHighlightedValue, value])\n\n const updateValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n },\n [onValueUpdate, options],\n )\n\n const commitValue = React.useCallback(\n (next: string | null) => {\n if (next === null) {\n if (onValueUpdate) {\n onValueUpdate(null)\n }\n onChange(null)\n return\n }\n\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n React.useEffect(() => {\n if (!open) return\n\n const ownerDocument = containerRef.current?.ownerDocument ?? document\n const ownerWindow = ownerDocument.defaultView ?? window\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target\n if (!(target instanceof Node)) {\n return\n }\n\n const container = containerRef.current\n if (!container) {\n return\n }\n\n if (container.contains(target)) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (popover?.contains(target)) {\n return\n }\n\n setOpen(false)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") {\n return\n }\n if (!openRef.current) {\n return\n }\n\n const target = event.target\n if (!(target instanceof Node)) {\n return\n }\n\n const container = containerRef.current\n const popover = desktopPopoverRef.current\n if (!container?.contains(target) && !popover?.contains(target)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n setOpen(false)\n }\n\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.addEventListener(\"keydown\", handleKeyDown, true)\n return () => {\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown, true)\n ownerWindow.removeEventListener(\"keydown\", handleKeyDown, true)\n }\n }, [open, setOpen])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n\n const popover = desktopPopoverRef.current\n if (!popover) {\n return\n }\n\n const handleWheel = (event: WheelEvent) => {\n const viewport = desktopContentRef.current\n if (!viewport) {\n return\n }\n\n const deltaY = event.deltaY\n if (deltaY === 0) {\n return\n }\n\n const maxScrollTop = Math.max(0, viewport.scrollHeight - viewport.clientHeight)\n const atTop = viewport.scrollTop <= 0\n const atBottom = viewport.scrollTop >= maxScrollTop\n\n const target = event.target\n const isWheelOverViewport = target instanceof Node && viewport.contains(target)\n\n if (isWheelOverViewport) {\n if ((deltaY < 0 && atTop) || (deltaY > 0 && atBottom)) {\n event.preventDefault()\n }\n return\n }\n\n event.preventDefault()\n const nextScrollTop = Math.min(maxScrollTop, Math.max(0, viewport.scrollTop + deltaY))\n viewport.scrollTop = nextScrollTop\n }\n\n popover.addEventListener(\"wheel\", handleWheel, { passive: false })\n return () => {\n popover.removeEventListener(\"wheel\", handleWheel)\n }\n }, [open])\n\n React.useEffect(() => {\n if (!open) {\n return\n }\n if (openProp !== undefined && !onOpenChange) {\n return\n }\n if (typeof window === \"undefined\") {\n return\n }\n if (!(\"IntersectionObserver\" in window)) {\n return\n }\n\n const trigger = triggerInputRef.current\n if (!(trigger instanceof HTMLElement)) {\n return\n }\n\n let isActive = true\n const observer = new IntersectionObserver(entries => {\n if (!isActive) {\n return\n }\n const entry = entries[0]\n if (entry && !entry.isIntersecting) {\n setOpen(false)\n }\n })\n observer.observe(trigger)\n return () => {\n isActive = false\n observer.disconnect()\n }\n }, [onOpenChange, open, openProp, setOpen])\n\n const updateDesktopPopoverPosition = React.useCallback(() => {\n if (typeof window === \"undefined\") return\n\n const trigger = triggerInputRef.current\n const popover = desktopPopoverRef.current\n if (!(trigger instanceof HTMLElement) || !popover) return\n\n const rect = trigger.getBoundingClientRect()\n const popoverHeight = popover.offsetHeight\n const viewportWidth = window.innerWidth ?? 0\n const viewportHeight = window.innerHeight ?? 0\n const padding = 8\n\n const width = rect.width\n\n let left = rect.left\n if (left + width > viewportWidth - padding) {\n left = Math.max(padding, viewportWidth - width - padding)\n }\n if (left < padding) {\n left = padding\n }\n\n let top = rect.bottom + padding\n const overflowBottom = top + popoverHeight > viewportHeight - padding\n const aboveTop = rect.top - popoverHeight - padding\n if (overflowBottom && aboveTop >= padding) {\n top = aboveTop\n }\n\n if (top < padding) {\n top = padding\n }\n if (top + popoverHeight > viewportHeight - padding) {\n top = Math.max(padding, viewportHeight - popoverHeight - padding)\n }\n\n setDesktopPopoverPosition({ left, top, width })\n }, [])\n\n // React Compiler rejects hook aliasing (useIsomorphicLayoutEffect pattern), so we\n // call useLayoutEffect directly and keep the SSR guard inside the effect.\n React.useLayoutEffect(() => {\n if (!open || disabled) return\n if (typeof window === \"undefined\") return\n\n updateDesktopPopoverPosition()\n const rafId = window.requestAnimationFrame(updateDesktopPopoverPosition)\n\n window.addEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.addEventListener(\"resize\", updateDesktopPopoverPosition)\n return () => {\n window.cancelAnimationFrame(rafId)\n window.removeEventListener(\"scroll\", updateDesktopPopoverPosition, true)\n window.removeEventListener(\"resize\", updateDesktopPopoverPosition)\n }\n }, [disabled, open, updateDesktopPopoverPosition])\n\n React.useEffect(() => {\n if (!open) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const run = () => {\n const selected = viewport.querySelector(\"[role=\\\"option\\\"][data-state=\\\"checked\\\"]\")\n if (selected instanceof HTMLElement) {\n const padding = 8\n const targetTop = selected.offsetTop - padding\n const targetBottom = selected.offsetTop + selected.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n return\n }\n\n const all = Array.from(viewport.querySelectorAll(\"[role=\\\"option\\\"]\")) as HTMLElement[]\n if (!all.length) return\n\n let firstEnabled: HTMLElement | undefined\n let lastDisabledBefore: HTMLElement | undefined\n\n for (const el of all) {\n const isDisabled = el.hasAttribute(\"data-disabled\")\n if (!isDisabled) {\n firstEnabled = el\n break\n }\n lastDisabledBefore = el\n }\n\n if (!firstEnabled) return\n\n const target = lastDisabledBefore ? lastDisabledBefore : firstEnabled\n\n const offset = Math.max(0, target.offsetTop - 8)\n viewport.scrollTop = offset\n }\n\n const raf = requestAnimationFrame(run)\n return () => cancelAnimationFrame(raf)\n }, [open, options])\n\n React.useEffect(() => {\n if (!open) return\n if (!highlightedValue) return\n if (!keyboardNavigationActiveRef.current) return\n\n const viewport = desktopContentRef.current\n if (!viewport) return\n\n const target = viewport.querySelector(`[role=\"option\"][data-value=\"${highlightedValue}\"]`)\n if (!(target instanceof HTMLElement)) return\n\n const padding = 8\n const targetTop = target.offsetTop - padding\n const targetBottom = target.offsetTop + target.offsetHeight + padding\n\n if (targetTop < viewport.scrollTop) {\n viewport.scrollTop = Math.max(0, targetTop)\n return\n }\n\n const viewportBottom = viewport.scrollTop + viewport.clientHeight\n if (targetBottom > viewportBottom) {\n viewport.scrollTop = Math.max(0, targetBottom - viewport.clientHeight)\n }\n }, [highlightedValue, open])\n\n return (\n <div\n data-slot=\"hours-picker-input\"\n className={cn(\"w-[150px]\", className)}\n ref={containerRef}\n >\n <div className=\"relative\">\n <HourPickerMaskedSelectTrigger\n id={triggerId}\n placeholder={placeholder}\n value={value}\n onValueUpdate={updateValue}\n onCommit={commitValue}\n options={options}\n disabled={disabled}\n readOnly={readOnly}\n open={open}\n setOpen={setOpen}\n inputClassName={inputClassName}\n triggerTestId={triggerTestId}\n isHydrated={isHydrated}\n highlightedValueRef={highlightedValueRef}\n setHighlightedValue={updateHighlightedValue}\n markKeyboardNavigation={markKeyboardNavigation}\n inputRef={(node) => {\n triggerInputRef.current = node\n }}\n onDraftValueHandlerChange={setTriggerDraftValueHandler}\n />\n\n {open ? (() => {\n const popover = (\n <DismissableLayerBranch>\n <div\n ref={desktopPopoverRef}\n data-testid={contentTestId}\n data-state=\"open\"\n className={cn(\n \"pointer-events-auto fixed z-[60] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n )}\n style={{\n left: desktopPopoverPosition.left,\n top: desktopPopoverPosition.top,\n width: desktopPopoverPosition.width,\n }}\n >\n <HourPickerScrollButton\n direction=\"up\"\n viewportRef={desktopContentRef}\n />\n\n <div\n ref={desktopContentRef}\n role=\"listbox\"\n className=\"max-h-64 overflow-y-auto p-1 [overscroll-behavior:contain] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\"\n >\n {options.map((option) => {\n const isChecked = option.value === value\n\n return (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={isChecked}\n data-value={option.value}\n data-state={isChecked ? \"checked\" : \"unchecked\"}\n data-disabled={option.disabled ? \"\" : undefined}\n className={cn(\n \"relative flex w-full select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none cursor-pointer\",\n option.disabled && \"pointer-events-none opacity-50\",\n highlightedValue === option.value && \"bg-accent text-accent-foreground\",\n )}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (option.disabled) return\n\n setTriggerDraftValueRef.current?.(option.value)\n updateHighlightedValue(option.value)\n triggerInputRef.current?.focus({ preventScroll: true })\n commitValue(option.value)\n setOpen(false)\n }}\n onPointerEnter={() => {\n if (keyboardNavigationActiveRef.current) return\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n onPointerMove={(event) => {\n if (keyboardNavigationActiveRef.current && event.movementX === 0 && event.movementY === 0) {\n return\n }\n keyboardNavigationActiveRef.current = false\n updateHighlightedValue(option.value)\n }}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {isChecked ? <Check aria-hidden className=\"h-4 w-4\" /> : null}\n </span>\n\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n\n <HourPickerScrollButton\n direction=\"down\"\n viewportRef={desktopContentRef}\n />\n </div>\n </DismissableLayerBranch>\n )\n\n if (typeof document === \"undefined\") return popover\n return createPortal(popover, document.body)\n })() : null}\n </div>\n </div>\n )\n}\n\nHourPickerInput.displayName = \"HourPickerInput\"\n\nexport type HourPickerFieldProps = HourPickerInputProps\n\nfunction HourPickerSelectField({\n id,\n value,\n onChange,\n onValueUpdate,\n options,\n placeholder = \"Select time\",\n className,\n inputClassName,\n disabled,\n open,\n onOpenChange,\n triggerTestId,\n contentTestId,\n isHydrated,\n}: HourPickerFieldProps) {\n const commitValue = React.useCallback(\n (next: string) => {\n const matchingOption = options.find((option) => option.value === next)\n if (!isOptionSelectable(matchingOption)) {\n return\n }\n\n if (onValueUpdate) {\n onValueUpdate(next)\n }\n onChange(next)\n },\n [onChange, onValueUpdate, options],\n )\n\n return (\n <div data-slot=\"hours-picker-field\" className={cn(\"w-[150px]\", className)}>\n <Select\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n value={value ?? \"\"}\n onValueChange={(next) => commitValue(next)}\n >\n <SelectTrigger\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n className={cn(\n \"transition-colors hover:bg-accent hover:text-accent-foreground\",\n !value && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent\n data-testid={contentTestId}\n autoScroll={\"firstEnabledWithContext\"}\n className=\"max-h-64 overflow-y-auto\"\n >\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n <span>{option.label}</span>\n {option.description != null ? (\n <span data-slot=\"description\" className=\"block text-xs text-muted-foreground\">\n {option.description}\n </span>\n ) : null}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )\n}\n\nexport function HourPickerField(props: HourPickerFieldProps) {\n const isTouchDevice = useIsTouchDevice()\n\n if (isTouchDevice) {\n return <HourPickerSelectField {...props} />\n }\n\n return <HourPickerInput {...props} />\n}\n\nHourPickerField.displayName = \"HourPickerField\"\n\ntype HourPickerMaskedSelectTriggerProps = {\n id: string\n placeholder: string\n value: string | null\n onValueUpdate: (value: string | null) => void\n onCommit: (value: string | null) => void\n options: HourPickerOption[]\n disabled?: boolean\n readOnly?: boolean\n open: boolean\n setOpen: (open: boolean) => void\n inputClassName?: string\n triggerTestId?: string\n isHydrated?: boolean\n highlightedValueRef: React.MutableRefObject<string | null>\n setHighlightedValue: (value: string | null) => void\n markKeyboardNavigation: () => void\n inputRef: (node: HTMLInputElement | null) => void\n onDraftValueHandlerChange: (handler: ((value: string) => void) | null) => void\n}\n\nfunction HourPickerMaskedSelectTrigger({\n id,\n placeholder,\n value,\n onValueUpdate,\n onCommit,\n options,\n disabled,\n readOnly,\n open,\n setOpen,\n inputClassName,\n triggerTestId,\n isHydrated,\n highlightedValueRef,\n setHighlightedValue,\n markKeyboardNavigation,\n inputRef,\n onDraftValueHandlerChange,\n}: HourPickerMaskedSelectTriggerProps) {\n const isEditingRef = React.useRef(false)\n const pointerDownOnInputRef = React.useRef(false)\n const inputWasFocusedOnPointerDownRef = React.useRef(false)\n const ignoreNextMaskCommitValueRef = React.useRef<string | null>(null)\n const lastAcceptedSignatureRef = React.useRef<string | null>(null)\n const clearCommitPendingRef = React.useRef(false)\n\n const [draft, setDraft] = React.useState(() => (value ? value : \"\"))\n\n React.useEffect(() => {\n onDraftValueHandlerChange((nextValue) => {\n setDraft(nextValue)\n })\n return () => {\n onDraftValueHandlerChange(null)\n }\n }, [onDraftValueHandlerChange])\n\n const moveSelection = React.useCallback(\n (direction: -1 | 1) => {\n const base = highlightedValueRef.current ?? value ?? \"\"\n\n let baseIndex = options.findIndex((option) => option.value === base)\n if (baseIndex === -1) {\n baseIndex = direction === 1 ? -1 : options.length\n }\n\n for (let nextIndex = baseIndex + direction; nextIndex >= 0 && nextIndex < options.length; nextIndex += direction) {\n const nextOption = options[nextIndex]\n if (!isOptionSelectable(nextOption)) continue\n\n setHighlightedValue(nextOption.value)\n ignoreNextMaskCommitValueRef.current = nextOption.value\n setDraft(nextOption.value)\n onValueUpdate(nextOption.value)\n return\n }\n },\n [highlightedValueRef, onValueUpdate, options, setHighlightedValue, value],\n )\n\n React.useEffect(() => {\n if (isEditingRef.current) return\n setDraft(value ? value : \"\")\n }, [value])\n\n React.useEffect(() => {\n lastAcceptedSignatureRef.current = getAcceptedInputSignature(draft)\n }, [draft])\n\n React.useEffect(() => {\n if (value === null) {\n clearCommitPendingRef.current = false\n }\n }, [value])\n\n const triggerClassName = cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground 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 \"transition-colors group-hover:bg-accent group-hover:text-accent-foreground\",\n !draft && \"text-muted-foreground\",\n open && \"ring-2 ring-primary ring-offset-2\",\n \"[&_[data-slot='description']]:hidden\",\n inputClassName,\n )\n\n return (\n <div className=\"relative group\">\n <IMaskInput\n id={id}\n data-testid={triggerTestId}\n data-hydrated={isHydrated ? \"true\" : undefined}\n type=\"text\"\n disabled={disabled}\n readOnly={readOnly}\n inputRef={inputRef}\n autoComplete={\"off\"}\n mask={[\n { mask: \"00:00\", lazy: true },\n { mask: \"0:00\", lazy: true },\n ]}\n dispatch={(appended, dynamicMasked) => {\n const digits = (dynamicMasked.value + appended).replace(/\\D/g, \"\")\n if (digits.length <= 2) return dynamicMasked.compiledMasks[0]\n if (digits.length >= 4) return dynamicMasked.compiledMasks[0]\n\n const hourPrefix = pad2(Number(digits.slice(0, 2)))\n const hasTwoDigitHour = options.some((option) => option.value.startsWith(`${hourPrefix}:`))\n if (hasTwoDigitHour) return dynamicMasked.compiledMasks[0]\n\n return dynamicMasked.compiledMasks[1]\n }}\n placeholder={placeholder}\n value={draft}\n className={triggerClassName}\n onAccept={(accepted, _mask, event) => {\n if (!event) {\n return\n }\n const nextText = typeof accepted === \"string\" ? accepted : String(accepted ?? \"\")\n const nextDigits = nextText.replace(/\\D/g, \"\")\n const nextSignature = getAcceptedInputSignature(nextText)\n if (lastAcceptedSignatureRef.current === nextSignature) {\n return\n }\n lastAcceptedSignatureRef.current = nextSignature\n setDraft(nextText)\n\n if (nextDigits.length !== 0) {\n clearCommitPendingRef.current = false\n return\n }\n\n if (value && !clearCommitPendingRef.current) {\n clearCommitPendingRef.current = true\n onCommit(null)\n }\n }}\n onComplete={(completed, _mask, event) => {\n if (!event) {\n return\n }\n const nextText = typeof completed === \"string\" ? completed : String(completed ?? \"\")\n if (ignoreNextMaskCommitValueRef.current === nextText) {\n ignoreNextMaskCommitValueRef.current = null\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(nextText, options)\n if (!resolved) {\n return\n }\n\n if (resolved.selectableValue) {\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n\n if (value === resolved.selectableValue) {\n return\n }\n\n onCommit(resolved.selectableValue)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n setHighlightedValue(closestOption.value)\n }}\n onPointerDown={() => {\n pointerDownOnInputRef.current = true\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onMouseDown={(event) => {\n pointerDownOnInputRef.current = true\n inputWasFocusedOnPointerDownRef.current = typeof document !== \"undefined\" && document.activeElement === event.currentTarget\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onClick={() => {\n if (disabled) return\n if (!open) {\n setOpen(true)\n }\n }}\n onKeyDown={(event) => {\n if (disabled) {\n return\n }\n\n if (event.key === \"Tab\" && open && !event.defaultPrevented) {\n setOpen(false)\n return\n }\n\n if (event.key === \"Escape\") {\n if (!open) {\n return\n }\n event.preventDefault()\n setOpen(false)\n return\n }\n\n if (!open && !event.defaultPrevented) {\n const shouldReopen =\n (event.key.length === 1 || event.key === \"Backspace\" || event.key === \"Delete\") &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n\n if (shouldReopen) {\n setOpen(true)\n }\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n markKeyboardNavigation()\n event.preventDefault()\n\n if (!open) {\n setOpen(true)\n return\n }\n\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1)\n return\n }\n\n if (event.key === \"Enter\") {\n markKeyboardNavigation()\n const resolved = parseTimeInputWithSelectableOption(draft, options)\n if (!resolved) {\n if (!open) {\n return\n }\n\n if (draft.trim() !== \"\") {\n return\n }\n\n const highlightedOption = options.find((option) => option.value === highlightedValueRef.current)\n const fallbackValue =\n (isOptionSelectable(highlightedOption) ? highlightedOption?.value : undefined) ??\n options.find((option) => isOptionSelectable(option))?.value\n\n if (!fallbackValue) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(fallbackValue)\n setDraft(fallbackValue)\n onCommit(fallbackValue)\n setOpen(false)\n return\n }\n\n if (resolved.selectableValue) {\n event.preventDefault()\n setHighlightedValue(resolved.selectableValue)\n setDraft(resolved.selectableValue)\n onCommit(resolved.selectableValue)\n setOpen(false)\n return\n }\n\n const targetMinutes = timeStringToMinutes(resolved.parsed)\n if (targetMinutes == null) {\n return\n }\n\n const closestOption = findClosestSelectableOption(targetMinutes, options)\n if (!closestOption) {\n return\n }\n\n event.preventDefault()\n setHighlightedValue(closestOption.value)\n setDraft(closestOption.value)\n onCommit(closestOption.value)\n setOpen(false)\n return\n }\n }}\n onFocus={(event) => {\n const shouldSelectAll = !pointerDownOnInputRef.current || !inputWasFocusedOnPointerDownRef.current\n pointerDownOnInputRef.current = false\n inputWasFocusedOnPointerDownRef.current = false\n isEditingRef.current = true\n if (shouldSelectAll) {\n const element = event.currentTarget\n requestAnimationFrame(() => element.select())\n }\n\n if (disabled) {\n return\n }\n\n if (open) {\n return\n }\n\n setOpen(true)\n }}\n onBlur={() => {\n isEditingRef.current = false\n\n const trimmed = draft.trim()\n if (!trimmed) {\n setDraft(value ? value : \"\")\n return\n }\n\n const resolved = parseTimeInputWithSelectableOption(trimmed, options)\n if (!resolved) {\n setDraft(value ? value : \"\")\n return\n }\n\n if (!resolved.selectableValue) {\n setDraft(value ? value : \"\")\n return\n }\n\n setDraft(resolved.selectableValue)\n if (value !== resolved.selectableValue) {\n onCommit(resolved.selectableValue)\n }\n }}\n />\n\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n data-slot=\"hours-picker-input-toggle\"\n className={cn(\n \"absolute right-1 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n )}\n aria-label={open ? \"Close time picker\" : \"Open time picker\"}\n onPointerDown={(event) => {\n event.preventDefault()\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={() => {\n if (disabled) return\n setOpen(!open)\n }}\n >\n <ChevronDown aria-hidden className=\"size-4\" />\n </button>\n </div>\n )\n}\n"],"mappings":"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"}
|