@rpcbase/ui 0.207.0 → 0.209.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 +13 -13
- package/dist/index100.js +3 -3
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +9 -3
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +4 -9
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +9 -4
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +18 -12
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +25 -18
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +5 -24
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +2 -2
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +4 -3
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +3 -3
- package/dist/index109.js.map +1 -1
- package/dist/index110.js +3 -4
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +3 -3
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +8 -5
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +7 -8
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +34 -7
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +7 -34
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +5 -7
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +7 -5
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +9 -7
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +3 -7
- package/dist/index119.js.map +1 -1
- package/dist/index120.js +4 -3
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +3 -4
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +3 -3
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +4 -3
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +3 -4
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +3 -3
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +7 -5
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +57 -8
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +7 -57
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +19 -6
- package/dist/index129.js.map +1 -1
- package/dist/index130.js +19 -19
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +34 -19
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +5 -34
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +8 -5
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +13 -7
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +10 -14
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +6 -10
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +4 -5
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +5 -5
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +5 -5
- package/dist/index139.js.map +1 -1
- package/dist/index140.js +5 -5
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +4 -5
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +6 -4
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +21 -7
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +9 -21
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +7 -8
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +5 -6
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +6 -6
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +4 -6
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +4 -4
- package/dist/index149.js.map +1 -1
- package/dist/index150.js +5 -4
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +4 -5
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +5 -4
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +4 -5
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +4 -4
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +3 -3
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +29 -5
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +33 -29
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +15 -32
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +10 -14
- package/dist/index159.js.map +1 -1
- package/dist/index160.js +9 -11
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +16 -9
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +86 -16
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +47 -86
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +16 -46
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +8 -17
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +10 -8
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +4 -9
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +22 -5
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +7 -22
- package/dist/index169.js.map +1 -1
- package/dist/index170.js +6 -7
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +4 -4
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +4 -6
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +6 -4
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +67 -6
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +17 -67
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +12 -17
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +9 -12
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +20 -9
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +14 -17
- package/dist/index179.js.map +1 -1
- package/dist/index180.js +54 -16
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +9 -54
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +6 -10
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +26 -6
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +26 -26
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +10 -23
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +13 -13
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +6 -13
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +23 -6
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +385 -23
- package/dist/index189.js.map +1 -1
- package/dist/index19.js +1 -1
- package/dist/index19.js.map +1 -1
- package/dist/index190.js +487 -377
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +122 -487
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +53 -131
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +76 -51
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +897 -75
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +19 -899
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +446 -17
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +4 -448
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +57 -4
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +56 -52
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +5 -5
- package/dist/index213.js +1 -1
- package/dist/index215.js +58 -40
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +43 -9
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +10 -25
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +25 -45
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +44 -17
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +18 -3
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +3 -5
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +4 -20
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +20 -24
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +23 -66
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +67 -14
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +15 -4
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +4 -51
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +50 -5
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +5 -26
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +24 -11
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +12 -8
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +13 -3
- package/dist/index232.js.map +1 -0
- package/dist/index233.js +3 -29
- package/dist/index234.js +25 -68
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +71 -2
- package/dist/index235.js.map +1 -0
- package/dist/index236.js +3 -15
- package/dist/index237.js +12 -51
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +50 -114
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +115 -6
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +9 -0
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +6 -13
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +13 -687
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +668 -234
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +222 -670
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +700 -7430
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +7431 -7
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +6 -12
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +12 -5
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +5 -459
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +454 -32
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +20 -8
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +36 -18
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +17 -25
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +27 -4
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +4 -58
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +58 -7
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +7 -12
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +13 -3
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +3 -17
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +14 -23
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +23 -41
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +56 -18
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +43 -13
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +13 -25
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +24 -16
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +15 -33
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +35 -5
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +5 -9
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +8 -7
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +8 -9
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +9 -10
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +10 -7
- package/dist/index269.js.map +1 -1
- package/dist/index27.js +50 -53
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +7 -73
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +63 -161
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +157 -100
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +113 -13
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +12 -78
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +57 -23
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +45 -12
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +13 -16
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +15 -98
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +93 -50
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +1 -59
- package/dist/index280.js +5 -57
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +78 -41
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +58 -100
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +104 -46
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +51 -39
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +42 -141
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +122 -119
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +107 -222
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +173 -159
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +119 -177
- package/dist/index289.js.map +1 -1
- package/dist/index29.js +4 -0
- package/dist/index290.js +298 -5
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +5 -6
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +6 -7
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +6 -5
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +4 -4
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +6 -21
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +21 -10
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +10 -126
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +108 -146
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +151 -55
- package/dist/index299.js.map +1 -1
- package/dist/index30.js +8 -6
- package/dist/index30.js.map +1 -0
- package/dist/index300.js +66 -107
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +107 -489
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +492 -63
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +63 -4
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +4 -28
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +27 -65
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +60 -147
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +137 -546
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +60 -209
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +551 -321
- package/dist/index309.js.map +1 -1
- package/dist/index31.js +6 -5
- package/dist/index31.js.map +1 -1
- package/dist/index310.js +206 -264
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +335 -0
- package/dist/index311.js.map +1 -0
- package/dist/index312.js +272 -0
- package/dist/index312.js.map +1 -0
- package/dist/index32.js +3 -3
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +7 -5
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +7 -4
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +5 -10
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +7 -5
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +8 -7
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +12 -8
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +5 -11
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +6 -6
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +5 -5
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +9 -6
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +8 -9
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +5 -8
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +2 -2
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +11 -5
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +4 -4
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +6 -10
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +4 -7
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +6 -4
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +6 -6
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +5 -5
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +8 -5
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +13 -9
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +5 -12
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +4 -4
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +4 -4
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +13 -6
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +4 -10
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +8 -7
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +68 -9
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +8 -68
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +31 -8
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +10 -31
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +16 -10
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +200 -15
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +21 -201
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +12 -16
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +123 -17
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +18 -122
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +9 -19
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +9 -8
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +11 -7
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +7 -11
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +6 -6
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +4 -9
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +42 -5
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +368 -29
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +37 -379
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +22 -39
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +56 -20
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +7 -57
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +4 -6
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +3 -3
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +3 -3
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +3 -3
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +5 -4
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +3 -3
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +10 -6
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +7 -10
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +6 -7
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +5 -6
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +7 -5
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +48 -8
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +104 -46
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +8 -103
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +5 -9
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +3 -3
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +6 -7
- package/dist/index99.js.map +1 -1
- package/package.json +3 -3
- package/dist/index233.js.map +0 -1
- package/dist/index236.js.map +0 -1
- package/dist/index28.js.map +0 -1
package/dist/index309.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index309.js","names":["createContext","useCallback","useContext","useEffect","useMemo","useState","Context","DialogPrimitive","DropdownMenuPrimitive","Loader2","MoreVertical","X","cn","NotificationItem","NotificationsRealtimeState","ListResponse","ok","error","notifications","unreadCount","unseenCount","DayGroup","key","label","items","toMs","iso","ms","Date","parse","Number","isFinite","getDayKey","date","getTime","year","getFullYear","month","String","getMonth","padStart","day","getDate","formatDayLabel","yearRaw","monthRaw","dayRaw","split","now","includeYear","toLocaleDateString","undefined","weekday","groupByDay","groups","currentKey","item","createdAt","push","length","EmptyRealtimeContext","NotificationsDrawer","open","onOpenChange","className","limit","defaultUnreadOnly","realtimeContext","realtime","setItems","setUnreadCount","setUnseenCount","loading","setLoading","setError","unreadOnly","setUnreadOnly","mergedItems","mergedUnreadCount","mergedUnseenCount","mergedLoading","mergedError","Error","message","visibleItems","slice","unread","filter","n","readAt","read","Boolean","unreadGroups","readGroups","refresh","markSeen","res","fetch","method","headers","credentials","body","JSON","stringify","json","catch","nextItems","Array","isArray","Math","max","floor","keepalive","markAsRead","id","encodeURIComponent","nowIso","toISOString","current","target","find","count","seenAt","map","archive","v","group","NotificationRow","t0","$","_c","notification","onMarkRead","onArchive","isUnread","t1","bb0","toLocaleString","createdAtLabel","t2","t3","t4","url","window","location","href","t5","title","t6","t7","t8","t9","t10","t11","Symbol","for","t12","t13","t14","t15","t16","t17","t18"],"sources":["../src/components/Notifications/NotificationsDrawer.tsx"],"sourcesContent":["import { createContext, useCallback, useContext, useEffect, useMemo, useState, type Context } from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Loader2, MoreVertical, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport type { NotificationItem, NotificationsRealtimeState } from \"./types\"\n\n\ntype ListResponse = {\n ok?: boolean\n error?: string\n notifications?: NotificationItem[]\n unreadCount?: number\n unseenCount?: number\n}\n\ntype DayGroup = {\n key: string\n label: string\n items: NotificationItem[]\n}\n\nconst toMs = (iso: string): number => {\n const ms = Date.parse(iso)\n return Number.isFinite(ms) ? ms : 0\n}\n\nconst getDayKey = (iso: string): string => {\n const date = new Date(toMs(iso))\n if (!Number.isFinite(date.getTime())) return \"unknown\"\n\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, \"0\")\n const day = String(date.getDate()).padStart(2, \"0\")\n\n return `${year}-${month}-${day}`\n}\n\nconst formatDayLabel = (key: string): string => {\n if (key === \"unknown\") return \"Unknown date\"\n const [yearRaw, monthRaw, dayRaw] = key.split(\"-\")\n const year = Number(yearRaw)\n const month = Number(monthRaw)\n const day = Number(dayRaw)\n\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) return \"Unknown date\"\n\n const date = new Date(year, month - 1, day)\n if (!Number.isFinite(date.getTime())) return \"Unknown date\"\n\n const now = new Date()\n const includeYear = now.getFullYear() !== year\n return date.toLocaleDateString(undefined, includeYear\n ? { weekday: \"short\", month: \"short\", day: \"numeric\", year: \"numeric\" }\n : { weekday: \"short\", month: \"short\", day: \"numeric\" })\n}\n\nconst groupByDay = (items: NotificationItem[]): DayGroup[] => {\n const groups: DayGroup[] = []\n let currentKey: string | null = null\n\n for (const item of items) {\n const key = getDayKey(item.createdAt)\n if (key !== currentKey) {\n currentKey = key\n groups.push({ key, label: formatDayLabel(key), items: [] })\n }\n groups[groups.length - 1]!.items.push(item)\n }\n\n return groups\n}\n\nconst EmptyRealtimeContext = createContext<NotificationsRealtimeState | null>(null)\n\nexport function NotificationsDrawer({\n open,\n onOpenChange,\n className,\n limit = 50,\n defaultUnreadOnly = false,\n realtimeContext,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n className?: string\n limit?: number\n defaultUnreadOnly?: boolean\n realtimeContext?: Context<NotificationsRealtimeState | null>\n}) {\n const realtime = useContext(realtimeContext ?? EmptyRealtimeContext)\n\n const [items, setItems] = useState<NotificationItem[]>([])\n const [unreadCount, setUnreadCount] = useState<number>(0)\n const [unseenCount, setUnseenCount] = useState<number>(0)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [unreadOnly, setUnreadOnly] = useState<boolean>(defaultUnreadOnly)\n\n const mergedItems = realtime?.notifications ?? items\n const mergedUnreadCount = realtime?.unreadCount ?? unreadCount\n const mergedUnseenCount = realtime?.unseenCount ?? unseenCount\n const mergedLoading = realtime?.loading ?? loading\n const mergedError = realtime?.error\n ? (realtime.error instanceof Error ? realtime.error.message : String(realtime.error))\n : error\n\n const visibleItems = useMemo(() => mergedItems.slice(0, limit), [limit, mergedItems])\n\n const unread = useMemo(() => visibleItems.filter((n) => !n.readAt), [visibleItems])\n const read = useMemo(() => visibleItems.filter((n) => Boolean(n.readAt)), [visibleItems])\n const unreadGroups = useMemo(() => groupByDay(unread), [unread])\n const readGroups = useMemo(() => groupByDay(read), [read])\n\n const refresh = useCallback(async ({ unreadOnly, markSeen }: { unreadOnly: boolean; markSeen: boolean }) => {\n setLoading(true)\n setError(null)\n\n try {\n const res = await fetch(\"/api/rb/notifications\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n credentials: \"include\",\n body: JSON.stringify({ limit, unreadOnly, markSeen }),\n })\n\n const json = (await res.json().catch(() => null)) as ListResponse | null\n if (!res.ok || !json?.ok) {\n setError(json?.error || \"Unable to load notifications.\")\n return\n }\n\n const nextItems = Array.isArray(json.notifications) ? json.notifications : []\n setItems(nextItems)\n setUnreadCount(Number.isFinite(json.unreadCount) ? Math.max(0, Math.floor(json.unreadCount ?? 0)) : 0)\n setUnseenCount(Number.isFinite(json.unseenCount) ? Math.max(0, Math.floor(json.unseenCount ?? 0)) : 0)\n } catch {\n setError(\"Unable to load notifications.\")\n } finally {\n setLoading(false)\n }\n }, [limit])\n\n useEffect(() => {\n if (!open) return\n if (realtime) {\n void (async () => {\n try {\n await fetch(\"/api/rb/notifications\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n credentials: \"include\",\n keepalive: true,\n body: JSON.stringify({ limit: 1, markSeen: true }),\n })\n } catch {\n return\n }\n })()\n return\n }\n void refresh({ unreadOnly, markSeen: true })\n }, [open, realtime, refresh, unreadOnly])\n\n useEffect(() => {\n if (!open) return\n if (realtime) return\n void refresh({ unreadOnly, markSeen: false })\n }, [open, realtime, refresh, unreadOnly])\n\n const markAsRead = async (id: string) => {\n try {\n const res = await fetch(`/api/rb/notifications/${encodeURIComponent(id)}/read`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n credentials: \"include\",\n keepalive: true,\n body: \"{}\",\n })\n\n const json = (await res.json().catch(() => null)) as { ok?: boolean } | null\n if (!res.ok || !json?.ok) return\n\n const nowIso = new Date().toISOString()\n if (realtime) return\n setItems((current) => {\n const target = current.find((n) => n.id === id)\n if (target && !target.readAt) {\n setUnreadCount((count) => Math.max(0, count - 1))\n }\n if (target && !target.seenAt) {\n setUnseenCount((count) => Math.max(0, count - 1))\n }\n return current.map((n) => (n.id === id && !n.readAt ? { ...n, readAt: nowIso, ...(n.seenAt ? {} : { seenAt: nowIso }) } : n))\n })\n } catch {\n return\n }\n }\n\n const archive = async (id: string) => {\n try {\n const res = await fetch(`/api/rb/notifications/${encodeURIComponent(id)}/archive`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n credentials: \"include\",\n body: \"{}\",\n })\n\n const json = (await res.json().catch(() => null)) as { ok?: boolean } | null\n if (!res.ok || !json?.ok) return\n\n if (realtime) return\n setItems((current) => {\n const target = current.find((n) => n.id === id)\n if (target && !target.readAt) {\n setUnreadCount((count) => Math.max(0, count - 1))\n }\n if (target && !target.seenAt) {\n setUnseenCount((count) => Math.max(0, count - 1))\n }\n return current.filter((n) => n.id !== id)\n })\n } catch {\n return\n }\n }\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay className=\"fixed inset-0 z-50 bg-black/50\" />\n <DialogPrimitive.Content\n className={cn(\n \"fixed right-0 top-0 z-50 flex h-full w-full max-w-md flex-col border-l bg-background shadow-xl outline-none\",\n className,\n )}\n >\n <header className=\"flex items-center justify-between gap-2 border-b px-4 py-3\">\n <div className=\"flex min-w-0 flex-col\">\n <DialogPrimitive.Title className=\"text-sm font-semibold\">Notifications</DialogPrimitive.Title>\n <span className=\"text-xs text-muted-foreground\">\n {mergedUnreadCount > 0 ? `${mergedUnreadCount} unread` : mergedUnseenCount > 0 ? `${mergedUnseenCount} new` : \"All caught up\"}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => setUnreadOnly((v) => !v)}\n className={cn(\n \"rounded-md border px-2 py-1 text-xs\",\n unreadOnly ? \"bg-accent text-foreground\" : \"bg-background text-muted-foreground hover:bg-accent\",\n )}\n >\n {unreadOnly ? \"Unread\" : \"All\"}\n </button>\n <DialogPrimitive.Close asChild>\n <button type=\"button\" className=\"inline-flex h-8 w-8 items-center justify-center rounded-md hover:bg-accent\">\n <X className=\"h-4 w-4\" />\n </button>\n </DialogPrimitive.Close>\n </div>\n </header>\n\n <div className=\"flex-1 overflow-y-auto px-4 pb-3\">\n {mergedLoading ? (\n <div className=\"flex items-center justify-center py-10 text-muted-foreground\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n </div>\n ) : mergedError ? (\n <div className=\"py-10 text-center text-sm text-muted-foreground\">{mergedError}</div>\n ) : visibleItems.length === 0 ? (\n <div className=\"py-10 text-center text-sm text-muted-foreground\">No notifications.</div>\n ) : (\n <div className=\"flex flex-col gap-4\">\n <div>\n <div className=\"sticky top-0 z-20 -mx-4 flex h-8 items-center border-b bg-background px-4 text-xs font-semibold text-muted-foreground\">\n Unread notifications\n </div>\n {unreadGroups.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">No unread notifications.</div>\n ) : (\n unreadGroups.map((group) => (\n <div key={`unread:${group.key}`}>\n <div className=\"sticky top-8 z-10 -mx-4 flex h-7 items-center bg-background px-4 text-[11px] font-semibold text-muted-foreground\">\n {group.label}\n </div>\n <div className=\"-mx-4 flex flex-col divide-y divide-border\">\n {group.items.map((n) => (\n <NotificationRow\n key={n.id}\n notification={n}\n onMarkRead={markAsRead}\n onArchive={archive}\n />\n ))}\n </div>\n </div>\n ))\n )}\n </div>\n\n {unreadOnly ? null : (\n <div>\n <div className=\"sticky top-0 z-20 -mx-4 flex h-8 items-center border-b bg-background px-4 text-xs font-semibold text-muted-foreground\">\n Previous notifications\n </div>\n {readGroups.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">No previous notifications.</div>\n ) : (\n readGroups.map((group) => (\n <div key={`previous:${group.key}`}>\n <div className=\"sticky top-8 z-10 -mx-4 flex h-7 items-center bg-background px-4 text-[11px] font-semibold text-muted-foreground\">\n {group.label}\n </div>\n <div className=\"-mx-4 flex flex-col divide-y divide-border\">\n {group.items.map((n) => (\n <NotificationRow\n key={n.id}\n notification={n}\n onMarkRead={markAsRead}\n onArchive={archive}\n />\n ))}\n </div>\n </div>\n ))\n )}\n </div>\n )}\n </div>\n )}\n </div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nfunction NotificationRow({\n notification,\n onMarkRead,\n onArchive,\n}: {\n notification: NotificationItem\n onMarkRead: (id: string) => void\n onArchive: (id: string) => void\n}) {\n const isUnread = !notification.readAt\n const createdAtLabel = (() => {\n const date = new Date(toMs(notification.createdAt))\n if (!Number.isFinite(date.getTime())) return \"\"\n return date.toLocaleString()\n })()\n\n return (\n <div\n className={cn(\n \"group flex w-full gap-3 px-4 py-3 hover:bg-accent/40\",\n isUnread ? \"bg-primary/5\" : \"bg-background\",\n )}\n >\n <button\n type=\"button\"\n className=\"min-w-0 flex-1 text-left\"\n onClick={() => {\n if (isUnread) {\n void onMarkRead(notification.id)\n }\n if (notification.url) {\n window.location.href = notification.url\n }\n }}\n >\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold\">{notification.title}</div>\n {notification.body ? (\n <div className=\"mt-0.5 line-clamp-2 text-xs text-muted-foreground\">{notification.body}</div>\n ) : null}\n </div>\n {notification.url ? <div className=\"mt-2 truncate text-xs text-primary\">{notification.url}</div> : null}\n {createdAtLabel ? (\n <div className=\"mt-2 text-[11px] text-muted-foreground\">{createdAtLabel}</div>\n ) : null}\n </button>\n <div className=\"flex items-start\">\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>\n <button\n type=\"button\"\n className=\"inline-flex h-8 w-8 items-center justify-center rounded-md hover:bg-accent\"\n aria-label=\"Notification options\"\n >\n <MoreVertical className=\"h-4 w-4\" />\n </button>\n </DropdownMenuPrimitive.Trigger>\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n align=\"end\"\n sideOffset={6}\n className={cn(\n \"z-50 min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <DropdownMenuPrimitive.Item\n className=\"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n onSelect={() => onArchive(notification.id)}\n >\n Archive\n </DropdownMenuPrimitive.Item>\n <DropdownMenuPrimitive.Item\n className=\"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n disabled={!isUnread}\n onSelect={() => onMarkRead(notification.id)}\n >\n Mark as read\n </DropdownMenuPrimitive.Item>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index309.js","names":["React","PopperPrimitive.Root","PopperPrimitive.Anchor","PortalPrimitive","RemoveScroll","RovingFocusGroup.Root","PopperPrimitive.Content","RovingFocusGroup.Item","PopperPrimitive.Arrow"],"sources":["../../../node_modules/@radix-ui/react-menu/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\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}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/index31.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { constructFromSymbol as e } from "./index30.js";
|
|
2
|
+
//#region ../../node_modules/date-fns/constructFrom.js
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
return typeof t == "function" ? t(n) : t && typeof t == "object" && e in t ? t[e](n) : t instanceof Date ? new t.constructor(n) : new Date(n);
|
|
5
|
+
}
|
|
5
6
|
//#endregion
|
|
6
|
-
export {
|
|
7
|
+
export { t as default };
|
|
7
8
|
|
|
8
9
|
//# sourceMappingURL=index31.js.map
|
package/dist/index31.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index31.js","names":[],"sources":["../../../node_modules/date-fns/
|
|
1
|
+
{"version":3,"file":"index31.js","names":[],"sources":["../../../node_modules/date-fns/constructFrom.js"],"sourcesContent":["import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n"],"x_google_ignoreList":[0],"mappings":";;AAqCA,SAAgB,EAAc,GAAM,GAAO;AAQzC,QAPI,OAAO,KAAS,aAAmB,EAAK,EAAM,GAE9C,KAAQ,OAAO,KAAS,YAAY,KAAuB,IACtD,EAAK,GAAqB,EAAM,GAErC,aAAgB,OAAa,IAAI,EAAK,YAAY,EAAM,GAErD,IAAI,KAAK,EAAM"}
|