reachy-mini 1.2.5rc1__py3-none-any.whl

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.
Files changed (479) hide show
  1. reachy_mini/__init__.py +4 -0
  2. reachy_mini/apps/__init__.py +25 -0
  3. reachy_mini/apps/app.py +258 -0
  4. reachy_mini/apps/assistant.py +787 -0
  5. reachy_mini/apps/manager.py +312 -0
  6. reachy_mini/apps/sources/__init__.py +4 -0
  7. reachy_mini/apps/sources/hf_space.py +106 -0
  8. reachy_mini/apps/sources/local_common_venv.py +567 -0
  9. reachy_mini/apps/templates/README.md.j2 +12 -0
  10. reachy_mini/apps/templates/gitignore.j2 +3 -0
  11. reachy_mini/apps/templates/index.html.j2 +40 -0
  12. reachy_mini/apps/templates/main.py.j2 +74 -0
  13. reachy_mini/apps/templates/pyproject.toml.j2 +28 -0
  14. reachy_mini/apps/templates/static/index.html.j2 +27 -0
  15. reachy_mini/apps/templates/static/main.js.j2 +47 -0
  16. reachy_mini/apps/templates/static/style.css.j2 +25 -0
  17. reachy_mini/apps/templates/style.css.j2 +411 -0
  18. reachy_mini/apps/utils.py +30 -0
  19. reachy_mini/assets/config/hardware_config.yaml +164 -0
  20. reachy_mini/assets/confused1.wav +0 -0
  21. reachy_mini/assets/count.wav +0 -0
  22. reachy_mini/assets/dance1.wav +0 -0
  23. reachy_mini/assets/firmware/CHANGELOG.md +15 -0
  24. reachy_mini/assets/firmware/reachymini_ua_io16_lin_v2.1.2.bin +0 -0
  25. reachy_mini/assets/firmware/reachymini_ua_io16_lin_v2.1.3.bin +0 -0
  26. reachy_mini/assets/firmware/update.sh +9 -0
  27. reachy_mini/assets/go_sleep.wav +0 -0
  28. reachy_mini/assets/impatient1.wav +0 -0
  29. reachy_mini/assets/kinematics_data.json +253 -0
  30. reachy_mini/assets/models/fknetwork.dynamic.onnx +0 -0
  31. reachy_mini/assets/models/fknetwork.onnx +0 -0
  32. reachy_mini/assets/models/fknetwork_int8.onnx +0 -0
  33. reachy_mini/assets/models/iknetwork.onnx +0 -0
  34. reachy_mini/assets/wake_up.wav +0 -0
  35. reachy_mini/daemon/__init__.py +1 -0
  36. reachy_mini/daemon/app/__init__.py +1 -0
  37. reachy_mini/daemon/app/bg_job_register.py +142 -0
  38. reachy_mini/daemon/app/dashboard/static/assets/KO-cartoon-static.svg +40 -0
  39. reachy_mini/daemon/app/dashboard/static/assets/awake-cartoon-static.svg +42 -0
  40. reachy_mini/daemon/app/dashboard/static/assets/awake-cartoon.svg +6 -0
  41. reachy_mini/daemon/app/dashboard/static/assets/go-to-sleep-cartoon.svg +6 -0
  42. reachy_mini/daemon/app/dashboard/static/assets/no-wifi-cartoon-static.svg +50 -0
  43. reachy_mini/daemon/app/dashboard/static/assets/no-wifi-cartoon.svg +6 -0
  44. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-awake.svg +18 -0
  45. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-connection-lost-animation.svg +6 -0
  46. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-go-to-sleep-animation.svg +6 -0
  47. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-ko-animation.svg +6 -0
  48. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-ko.svg +22 -0
  49. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-sleeping-static.svg +41 -0
  50. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-sleeping.svg +18 -0
  51. reachy_mini/daemon/app/dashboard/static/assets/reachy-mini-wake-up-animation.svg +6 -0
  52. reachy_mini/daemon/app/dashboard/static/css/app.css +1433 -0
  53. reachy_mini/daemon/app/dashboard/static/fonts/Archivo-Italic-VariableFont_wdth,wght.ttf +0 -0
  54. reachy_mini/daemon/app/dashboard/static/fonts/Archivo-VariableFont_wdth,wght.ttf +0 -0
  55. reachy_mini/daemon/app/dashboard/static/fonts/Asap-Italic-VariableFont_wdth,wght.ttf +0 -0
  56. reachy_mini/daemon/app/dashboard/static/fonts/Asap-VariableFont_wdth,wght.ttf +0 -0
  57. reachy_mini/daemon/app/dashboard/static/js/3rdparty/gstwebrtc-api-2.0.0.min.js +5 -0
  58. reachy_mini/daemon/app/dashboard/static/js/apps.js +323 -0
  59. reachy_mini/daemon/app/dashboard/static/js/appstore.js +167 -0
  60. reachy_mini/daemon/app/dashboard/static/js/daemon.js +169 -0
  61. reachy_mini/daemon/app/dashboard/static/js/health_check.js +9 -0
  62. reachy_mini/daemon/app/dashboard/static/js/move_player.js +132 -0
  63. reachy_mini/daemon/app/dashboard/static/js/notification.js +41 -0
  64. reachy_mini/daemon/app/dashboard/static/js/update.js +132 -0
  65. reachy_mini/daemon/app/dashboard/static/js/volume_control.js +252 -0
  66. reachy_mini/daemon/app/dashboard/static/js/wifi.js +176 -0
  67. reachy_mini/daemon/app/dashboard/tailwindcss/README.md +15 -0
  68. reachy_mini/daemon/app/dashboard/tailwindcss/package-lock.json +1127 -0
  69. reachy_mini/daemon/app/dashboard/tailwindcss/package.json +6 -0
  70. reachy_mini/daemon/app/dashboard/tailwindcss/pnpm-lock.yaml +608 -0
  71. reachy_mini/daemon/app/dashboard/tailwindcss/postcss.config.js +6 -0
  72. reachy_mini/daemon/app/dashboard/tailwindcss/styles/app.css +185 -0
  73. reachy_mini/daemon/app/dashboard/tailwindcss/tailwind.config.js +11 -0
  74. reachy_mini/daemon/app/dashboard/templates/base.html +21 -0
  75. reachy_mini/daemon/app/dashboard/templates/index.html +20 -0
  76. reachy_mini/daemon/app/dashboard/templates/sections/apps.html +8 -0
  77. reachy_mini/daemon/app/dashboard/templates/sections/appstore.html +35 -0
  78. reachy_mini/daemon/app/dashboard/templates/sections/daemon.html +45 -0
  79. reachy_mini/daemon/app/dashboard/templates/sections/move_player.html +121 -0
  80. reachy_mini/daemon/app/dashboard/templates/sections/notification.html +19 -0
  81. reachy_mini/daemon/app/dashboard/templates/sections/update.html +54 -0
  82. reachy_mini/daemon/app/dashboard/templates/sections/wifi.html +46 -0
  83. reachy_mini/daemon/app/dashboard/templates/settings.html +14 -0
  84. reachy_mini/daemon/app/dependencies.py +41 -0
  85. reachy_mini/daemon/app/main.py +469 -0
  86. reachy_mini/daemon/app/models.py +149 -0
  87. reachy_mini/daemon/app/routers/apps.py +114 -0
  88. reachy_mini/daemon/app/routers/daemon.py +85 -0
  89. reachy_mini/daemon/app/routers/kinematics.py +57 -0
  90. reachy_mini/daemon/app/routers/motors.py +41 -0
  91. reachy_mini/daemon/app/routers/move.py +265 -0
  92. reachy_mini/daemon/app/routers/state.py +146 -0
  93. reachy_mini/daemon/app/routers/update.py +86 -0
  94. reachy_mini/daemon/app/routers/volume.py +423 -0
  95. reachy_mini/daemon/app/routers/wifi_config.py +219 -0
  96. reachy_mini/daemon/app/services/__init__.py +1 -0
  97. reachy_mini/daemon/app/services/bluetooth/bluetooth_service.py +796 -0
  98. reachy_mini/daemon/app/services/bluetooth/commands/HOTSPOT.sh +7 -0
  99. reachy_mini/daemon/app/services/bluetooth/commands/RESTART_DAEMON.sh +4 -0
  100. reachy_mini/daemon/app/services/bluetooth/commands/SOFTWARE_RESET.sh +7 -0
  101. reachy_mini/daemon/app/services/bluetooth/install_service_bluetooth.sh +39 -0
  102. reachy_mini/daemon/app/services/gpio_shutdown/__init__.py +1 -0
  103. reachy_mini/daemon/app/services/gpio_shutdown/install_service.sh +33 -0
  104. reachy_mini/daemon/app/services/gpio_shutdown/launcher.sh +3 -0
  105. reachy_mini/daemon/app/services/gpio_shutdown/shutdown_monitor.py +28 -0
  106. reachy_mini/daemon/app/services/wireless/generate_asoundrc.sh +70 -0
  107. reachy_mini/daemon/app/services/wireless/install_service.sh +33 -0
  108. reachy_mini/daemon/app/services/wireless/launcher.sh +5 -0
  109. reachy_mini/daemon/backend/__init__.py +1 -0
  110. reachy_mini/daemon/backend/abstract.py +815 -0
  111. reachy_mini/daemon/backend/mujoco/__init__.py +36 -0
  112. reachy_mini/daemon/backend/mujoco/backend.py +395 -0
  113. reachy_mini/daemon/backend/mujoco/utils.py +59 -0
  114. reachy_mini/daemon/backend/mujoco/video_udp.py +57 -0
  115. reachy_mini/daemon/backend/robot/__init__.py +8 -0
  116. reachy_mini/daemon/backend/robot/backend.py +597 -0
  117. reachy_mini/daemon/daemon.py +651 -0
  118. reachy_mini/daemon/utils.py +116 -0
  119. reachy_mini/descriptions/reachy_mini/mjcf/additional.xml +6 -0
  120. reachy_mini/descriptions/reachy_mini/mjcf/assets/5w_speaker.part +13 -0
  121. reachy_mini/descriptions/reachy_mini/mjcf/assets/5w_speaker.stl +0 -0
  122. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna.part +13 -0
  123. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna.stl +0 -0
  124. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_body_3dprint.part +13 -0
  125. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_body_3dprint.stl +0 -0
  126. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_holder_l_3dprint.part +13 -0
  127. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_holder_l_3dprint.stl +0 -0
  128. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_holder_r_3dprint.part +13 -0
  129. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_holder_r_3dprint.stl +0 -0
  130. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_interface_3dprint.part +13 -0
  131. reachy_mini/descriptions/reachy_mini/mjcf/assets/antenna_interface_3dprint.stl +0 -0
  132. reachy_mini/descriptions/reachy_mini/mjcf/assets/arducam.part +13 -0
  133. reachy_mini/descriptions/reachy_mini/mjcf/assets/arducam.stl +0 -0
  134. reachy_mini/descriptions/reachy_mini/mjcf/assets/b3b_eh.part +13 -0
  135. reachy_mini/descriptions/reachy_mini/mjcf/assets/b3b_eh.stl +0 -0
  136. reachy_mini/descriptions/reachy_mini/mjcf/assets/b3b_eh_1.part +13 -0
  137. reachy_mini/descriptions/reachy_mini/mjcf/assets/b3b_eh_1.stl +0 -0
  138. reachy_mini/descriptions/reachy_mini/mjcf/assets/bearing_85x110x13.part +13 -0
  139. reachy_mini/descriptions/reachy_mini/mjcf/assets/bearing_85x110x13.stl +0 -0
  140. reachy_mini/descriptions/reachy_mini/mjcf/assets/big_lens_d40.part +13 -0
  141. reachy_mini/descriptions/reachy_mini/mjcf/assets/big_lens_d40.stl +0 -0
  142. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_down_3dprint.part +13 -0
  143. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_down_3dprint.stl +0 -0
  144. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_foot_3dprint.part +13 -0
  145. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_foot_3dprint.stl +0 -0
  146. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_top_3dprint.part +13 -0
  147. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_top_3dprint.stl +0 -0
  148. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_turning_3dprint.part +13 -0
  149. reachy_mini/descriptions/reachy_mini/mjcf/assets/body_turning_3dprint.stl +0 -0
  150. reachy_mini/descriptions/reachy_mini/mjcf/assets/bts2_m2_6x8.part +13 -0
  151. reachy_mini/descriptions/reachy_mini/mjcf/assets/bts2_m2_6x8.stl +0 -0
  152. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/README.m +1 -0
  153. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl +0 -0
  154. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl +0 -0
  155. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl +0 -0
  156. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl +0 -0
  157. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl +0 -0
  158. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl +0 -0
  159. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl +0 -0
  160. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/coarse/head_one_3dprint_collider_0.stl +0 -0
  161. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_back_0.stl +0 -0
  162. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_back_1.stl +0 -0
  163. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_back_2.stl +0 -0
  164. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_back_3.stl +0 -0
  165. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_front_0.stl +0 -0
  166. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_front_1.stl +0 -0
  167. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/body_top_3dprint_collider_front_2.stl +0 -0
  168. reachy_mini/descriptions/reachy_mini/mjcf/assets/collision/fine/head_one_3dprint_collider_0.stl +0 -0
  169. reachy_mini/descriptions/reachy_mini/mjcf/assets/croissant_1k.blend/croissant_1k.obj +5021 -0
  170. reachy_mini/descriptions/reachy_mini/mjcf/assets/croissant_1k.blend/textures/croissant_diff_1k.png +0 -0
  171. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_b_dummy.part +13 -0
  172. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_b_dummy.stl +0 -0
  173. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_f_dummy.part +13 -0
  174. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_f_dummy.stl +0 -0
  175. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_m_dummy.part +13 -0
  176. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_case_m_dummy.stl +0 -0
  177. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_horn_dummy.part +13 -0
  178. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_horn_dummy.stl +0 -0
  179. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_led_cap2_dummy.part +13 -0
  180. reachy_mini/descriptions/reachy_mini/mjcf/assets/dc15_a01_led_cap2_dummy.stl +0 -0
  181. reachy_mini/descriptions/reachy_mini/mjcf/assets/food_apple_01_1k.blend/food_apple_01_1k.obj +18045 -0
  182. reachy_mini/descriptions/reachy_mini/mjcf/assets/food_apple_01_1k.blend/textures/food_apple_01_diff_1k.png +0 -0
  183. reachy_mini/descriptions/reachy_mini/mjcf/assets/glasses_dolder_3dprint.part +13 -0
  184. reachy_mini/descriptions/reachy_mini/mjcf/assets/glasses_dolder_3dprint.stl +0 -0
  185. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_back_3dprint.part +13 -0
  186. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_back_3dprint.stl +0 -0
  187. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_front_3dprint.part +13 -0
  188. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_front_3dprint.stl +0 -0
  189. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_mic_3dprint.part +13 -0
  190. reachy_mini/descriptions/reachy_mini/mjcf/assets/head_mic_3dprint.stl +0 -0
  191. reachy_mini/descriptions/reachy_mini/mjcf/assets/lens_cap_d30_3dprint.part +13 -0
  192. reachy_mini/descriptions/reachy_mini/mjcf/assets/lens_cap_d30_3dprint.stl +0 -0
  193. reachy_mini/descriptions/reachy_mini/mjcf/assets/lens_cap_d40_3dprint.part +13 -0
  194. reachy_mini/descriptions/reachy_mini/mjcf/assets/lens_cap_d40_3dprint.stl +0 -0
  195. reachy_mini/descriptions/reachy_mini/mjcf/assets/m12_fisheye_lens_1_8mm.part +13 -0
  196. reachy_mini/descriptions/reachy_mini/mjcf/assets/m12_fisheye_lens_1_8mm.stl +0 -0
  197. reachy_mini/descriptions/reachy_mini/mjcf/assets/mp01062_stewart_arm_3.part +13 -0
  198. reachy_mini/descriptions/reachy_mini/mjcf/assets/mp01062_stewart_arm_3.stl +0 -0
  199. reachy_mini/descriptions/reachy_mini/mjcf/assets/neck_reference_3dprint.part +13 -0
  200. reachy_mini/descriptions/reachy_mini/mjcf/assets/neck_reference_3dprint.stl +0 -0
  201. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10.part +13 -0
  202. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10.stl +0 -0
  203. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_1.part +13 -0
  204. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_1.stl +0 -0
  205. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_2.part +13 -0
  206. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_2.stl +0 -0
  207. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_3.part +13 -0
  208. reachy_mini/descriptions/reachy_mini/mjcf/assets/phs_1_7x20_5_dc10_3.stl +0 -0
  209. reachy_mini/descriptions/reachy_mini/mjcf/assets/pp01102_arducam_carter.part +13 -0
  210. reachy_mini/descriptions/reachy_mini/mjcf/assets/pp01102_arducam_carter.stl +0 -0
  211. reachy_mini/descriptions/reachy_mini/mjcf/assets/rubber_duck_toy_1k.blend/rubber_duck_toy_1k.obj +8940 -0
  212. reachy_mini/descriptions/reachy_mini/mjcf/assets/rubber_duck_toy_1k.blend/textures/rubber_duck_toy_diff_1k.png +0 -0
  213. reachy_mini/descriptions/reachy_mini/mjcf/assets/small_lens_d30.part +13 -0
  214. reachy_mini/descriptions/reachy_mini/mjcf/assets/small_lens_d30.stl +0 -0
  215. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_ball.part +13 -0
  216. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_ball.stl +0 -0
  217. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_ball__2.part +13 -0
  218. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_ball__2.stl +0 -0
  219. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_rod.part +13 -0
  220. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_link_rod.stl +0 -0
  221. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_main_plate_3dprint.part +13 -0
  222. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_main_plate_3dprint.stl +0 -0
  223. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_tricap_3dprint.part +13 -0
  224. reachy_mini/descriptions/reachy_mini/mjcf/assets/stewart_tricap_3dprint.stl +0 -0
  225. reachy_mini/descriptions/reachy_mini/mjcf/assets/wooden_table_02_1k.blend/textures/wooden_table_02_diff_1k.png +0 -0
  226. reachy_mini/descriptions/reachy_mini/mjcf/assets/wooden_table_02_1k.blend/wooden_table_02_1k.obj +485 -0
  227. reachy_mini/descriptions/reachy_mini/mjcf/config.json +21 -0
  228. reachy_mini/descriptions/reachy_mini/mjcf/joints_properties.xml +29 -0
  229. reachy_mini/descriptions/reachy_mini/mjcf/reachy_mini.xml +642 -0
  230. reachy_mini/descriptions/reachy_mini/mjcf/reachy_mini.xml.bak +442 -0
  231. reachy_mini/descriptions/reachy_mini/mjcf/scene.xml +24 -0
  232. reachy_mini/descriptions/reachy_mini/mjcf/scenes/empty.xml +27 -0
  233. reachy_mini/descriptions/reachy_mini/mjcf/scenes/minimal.xml +132 -0
  234. reachy_mini/descriptions/reachy_mini/urdf/assets/5w_speaker.part +13 -0
  235. reachy_mini/descriptions/reachy_mini/urdf/assets/5w_speaker.stl +0 -0
  236. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna.part +13 -0
  237. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna.stl +0 -0
  238. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_body_3dprint.part +13 -0
  239. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_body_3dprint.stl +0 -0
  240. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_holder_l_3dprint.part +13 -0
  241. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_holder_l_3dprint.stl +0 -0
  242. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_holder_r_3dprint.part +13 -0
  243. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_holder_r_3dprint.stl +0 -0
  244. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_interface_3dprint.part +13 -0
  245. reachy_mini/descriptions/reachy_mini/urdf/assets/antenna_interface_3dprint.stl +0 -0
  246. reachy_mini/descriptions/reachy_mini/urdf/assets/arducam.part +13 -0
  247. reachy_mini/descriptions/reachy_mini/urdf/assets/arducam.stl +0 -0
  248. reachy_mini/descriptions/reachy_mini/urdf/assets/arm.part +13 -0
  249. reachy_mini/descriptions/reachy_mini/urdf/assets/arm.stl +0 -0
  250. reachy_mini/descriptions/reachy_mini/urdf/assets/b3b_eh.part +13 -0
  251. reachy_mini/descriptions/reachy_mini/urdf/assets/b3b_eh.stl +0 -0
  252. reachy_mini/descriptions/reachy_mini/urdf/assets/b3b_eh_1.part +13 -0
  253. reachy_mini/descriptions/reachy_mini/urdf/assets/b3b_eh_1.stl +0 -0
  254. reachy_mini/descriptions/reachy_mini/urdf/assets/ball.part +13 -0
  255. reachy_mini/descriptions/reachy_mini/urdf/assets/ball.stl +0 -0
  256. reachy_mini/descriptions/reachy_mini/urdf/assets/bearing_85x110x13.part +13 -0
  257. reachy_mini/descriptions/reachy_mini/urdf/assets/bearing_85x110x13.stl +0 -0
  258. reachy_mini/descriptions/reachy_mini/urdf/assets/big_lens.part +13 -0
  259. reachy_mini/descriptions/reachy_mini/urdf/assets/big_lens.stl +0 -0
  260. reachy_mini/descriptions/reachy_mini/urdf/assets/big_lens_d40.part +13 -0
  261. reachy_mini/descriptions/reachy_mini/urdf/assets/big_lens_d40.stl +0 -0
  262. reachy_mini/descriptions/reachy_mini/urdf/assets/body_down_3dprint.part +13 -0
  263. reachy_mini/descriptions/reachy_mini/urdf/assets/body_down_3dprint.stl +0 -0
  264. reachy_mini/descriptions/reachy_mini/urdf/assets/body_foot_3dprint.part +13 -0
  265. reachy_mini/descriptions/reachy_mini/urdf/assets/body_foot_3dprint.stl +0 -0
  266. reachy_mini/descriptions/reachy_mini/urdf/assets/body_top_3dprint.part +13 -0
  267. reachy_mini/descriptions/reachy_mini/urdf/assets/body_top_3dprint.stl +0 -0
  268. reachy_mini/descriptions/reachy_mini/urdf/assets/body_turning_3dprint.part +13 -0
  269. reachy_mini/descriptions/reachy_mini/urdf/assets/body_turning_3dprint.stl +0 -0
  270. reachy_mini/descriptions/reachy_mini/urdf/assets/bottom_body.part +13 -0
  271. reachy_mini/descriptions/reachy_mini/urdf/assets/bottom_body.stl +0 -0
  272. reachy_mini/descriptions/reachy_mini/urdf/assets/bts2_m2_6x8.part +13 -0
  273. reachy_mini/descriptions/reachy_mini/urdf/assets/bts2_m2_6x8.stl +0 -0
  274. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/README.m +1 -0
  275. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl +0 -0
  276. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl +0 -0
  277. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl +0 -0
  278. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl +0 -0
  279. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl +0 -0
  280. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl +0 -0
  281. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl +0 -0
  282. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/head_one_3dprint_collider_0.stl +0 -0
  283. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_0.stl +0 -0
  284. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_1.stl +0 -0
  285. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_2.stl +0 -0
  286. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_3.stl +0 -0
  287. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_0.stl +0 -0
  288. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_1.stl +0 -0
  289. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_2.stl +0 -0
  290. reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/head_one_3dprint_collider_0.stl +0 -0
  291. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_b_dummy.part +13 -0
  292. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_b_dummy.stl +0 -0
  293. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_f_dummy.part +13 -0
  294. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_f_dummy.stl +0 -0
  295. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_m_dummy.part +13 -0
  296. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_case_m_dummy.stl +0 -0
  297. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_horn_dummy.part +13 -0
  298. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_horn_dummy.stl +0 -0
  299. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_led_cap2_dummy.part +13 -0
  300. reachy_mini/descriptions/reachy_mini/urdf/assets/dc15_a01_led_cap2_dummy.stl +0 -0
  301. reachy_mini/descriptions/reachy_mini/urdf/assets/drive_palonier__configuration_default.part +14 -0
  302. reachy_mini/descriptions/reachy_mini/urdf/assets/drive_palonier__configuration_default.stl +0 -0
  303. reachy_mini/descriptions/reachy_mini/urdf/assets/drive_palonier__configuration_simple_axe.part +14 -0
  304. reachy_mini/descriptions/reachy_mini/urdf/assets/drive_palonier__configuration_simple_axe.stl +0 -0
  305. reachy_mini/descriptions/reachy_mini/urdf/assets/eye_support.part +13 -0
  306. reachy_mini/descriptions/reachy_mini/urdf/assets/eye_support.stl +0 -0
  307. reachy_mini/descriptions/reachy_mini/urdf/assets/foot.part +13 -0
  308. reachy_mini/descriptions/reachy_mini/urdf/assets/foot.stl +0 -0
  309. reachy_mini/descriptions/reachy_mini/urdf/assets/glasses_dolder_3dprint.part +13 -0
  310. reachy_mini/descriptions/reachy_mini/urdf/assets/glasses_dolder_3dprint.stl +0 -0
  311. reachy_mini/descriptions/reachy_mini/urdf/assets/head_back_3dprint.part +13 -0
  312. reachy_mini/descriptions/reachy_mini/urdf/assets/head_back_3dprint.stl +0 -0
  313. reachy_mini/descriptions/reachy_mini/urdf/assets/head_front_3dprint.part +13 -0
  314. reachy_mini/descriptions/reachy_mini/urdf/assets/head_front_3dprint.stl +0 -0
  315. reachy_mini/descriptions/reachy_mini/urdf/assets/head_head_back.part +13 -0
  316. reachy_mini/descriptions/reachy_mini/urdf/assets/head_head_back.stl +0 -0
  317. reachy_mini/descriptions/reachy_mini/urdf/assets/head_interface.part +13 -0
  318. reachy_mini/descriptions/reachy_mini/urdf/assets/head_interface.stl +0 -0
  319. reachy_mini/descriptions/reachy_mini/urdf/assets/head_mic_3dprint.part +13 -0
  320. reachy_mini/descriptions/reachy_mini/urdf/assets/head_mic_3dprint.stl +0 -0
  321. reachy_mini/descriptions/reachy_mini/urdf/assets/head_shell_front.part +13 -0
  322. reachy_mini/descriptions/reachy_mini/urdf/assets/head_shell_front.stl +0 -0
  323. reachy_mini/descriptions/reachy_mini/urdf/assets/lens_cap_d30_3dprint.part +13 -0
  324. reachy_mini/descriptions/reachy_mini/urdf/assets/lens_cap_d30_3dprint.stl +0 -0
  325. reachy_mini/descriptions/reachy_mini/urdf/assets/lens_cap_d40_3dprint.part +13 -0
  326. reachy_mini/descriptions/reachy_mini/urdf/assets/lens_cap_d40_3dprint.stl +0 -0
  327. reachy_mini/descriptions/reachy_mini/urdf/assets/m12_fisheye_lens_1_8mm.part +13 -0
  328. reachy_mini/descriptions/reachy_mini/urdf/assets/m12_fisheye_lens_1_8mm.stl +0 -0
  329. reachy_mini/descriptions/reachy_mini/urdf/assets/m12_lens.part +13 -0
  330. reachy_mini/descriptions/reachy_mini/urdf/assets/m12_lens.stl +0 -0
  331. reachy_mini/descriptions/reachy_mini/urdf/assets/main_plate.part +13 -0
  332. reachy_mini/descriptions/reachy_mini/urdf/assets/main_plate.stl +0 -0
  333. reachy_mini/descriptions/reachy_mini/urdf/assets/mid_plate.part +13 -0
  334. reachy_mini/descriptions/reachy_mini/urdf/assets/mid_plate.stl +0 -0
  335. reachy_mini/descriptions/reachy_mini/urdf/assets/mp01062_stewart_arm_3.part +13 -0
  336. reachy_mini/descriptions/reachy_mini/urdf/assets/mp01062_stewart_arm_3.stl +0 -0
  337. reachy_mini/descriptions/reachy_mini/urdf/assets/neck_reference_3dprint.part +13 -0
  338. reachy_mini/descriptions/reachy_mini/urdf/assets/neck_reference_3dprint.stl +0 -0
  339. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10.part +13 -0
  340. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10.stl +0 -0
  341. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_1.part +13 -0
  342. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_1.stl +0 -0
  343. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_2.part +13 -0
  344. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_2.stl +0 -0
  345. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_3.part +13 -0
  346. reachy_mini/descriptions/reachy_mini/urdf/assets/phs_1_7x20_5_dc10_3.stl +0 -0
  347. reachy_mini/descriptions/reachy_mini/urdf/assets/plateform.part +13 -0
  348. reachy_mini/descriptions/reachy_mini/urdf/assets/plateform.stl +0 -0
  349. reachy_mini/descriptions/reachy_mini/urdf/assets/pp00xxx_stewart_rod.part +13 -0
  350. reachy_mini/descriptions/reachy_mini/urdf/assets/pp00xxx_stewart_rod.stl +0 -0
  351. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01062_stewart_arm.part +13 -0
  352. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01062_stewart_arm.stl +0 -0
  353. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01063_stewart_plateform.part +13 -0
  354. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01063_stewart_plateform.stl +0 -0
  355. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01064_stewart_main_plate.part +13 -0
  356. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01064_stewart_main_plate.stl +0 -0
  357. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01065_stewart_side_plate.part +13 -0
  358. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01065_stewart_side_plate.stl +0 -0
  359. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01066_stewart_mid_plate.part +13 -0
  360. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01066_stewart_mid_plate.stl +0 -0
  361. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01067_bottom_body.part +13 -0
  362. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01067_bottom_body.stl +0 -0
  363. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01068_top_body.part +13 -0
  364. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01068_top_body.stl +0 -0
  365. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01069_head_shell_front.part +13 -0
  366. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01069_head_shell_front.stl +0 -0
  367. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01070_head_head_back.part +13 -0
  368. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01070_head_head_back.stl +0 -0
  369. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01071_turning_bowl.part +13 -0
  370. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01071_turning_bowl.stl +0 -0
  371. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01072_turning_end.part +13 -0
  372. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01072_turning_end.stl +0 -0
  373. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01078_glasses.part +13 -0
  374. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01078_glasses.stl +0 -0
  375. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01079_back_big_eye.part +13 -0
  376. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01079_back_big_eye.stl +0 -0
  377. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01080_back_small_eye.part +13 -0
  378. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01080_back_small_eye.stl +0 -0
  379. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01102_arducam_carter.part +13 -0
  380. reachy_mini/descriptions/reachy_mini/urdf/assets/pp01102_arducam_carter.stl +0 -0
  381. reachy_mini/descriptions/reachy_mini/urdf/assets/rod.part +13 -0
  382. reachy_mini/descriptions/reachy_mini/urdf/assets/rod.stl +0 -0
  383. reachy_mini/descriptions/reachy_mini/urdf/assets/shape.part +13 -0
  384. reachy_mini/descriptions/reachy_mini/urdf/assets/shape.stl +0 -0
  385. reachy_mini/descriptions/reachy_mini/urdf/assets/side_plate.part +13 -0
  386. reachy_mini/descriptions/reachy_mini/urdf/assets/side_plate.stl +0 -0
  387. reachy_mini/descriptions/reachy_mini/urdf/assets/small_lens.part +13 -0
  388. reachy_mini/descriptions/reachy_mini/urdf/assets/small_lens.stl +0 -0
  389. reachy_mini/descriptions/reachy_mini/urdf/assets/small_lens_d30.part +13 -0
  390. reachy_mini/descriptions/reachy_mini/urdf/assets/small_lens_d30.stl +0 -0
  391. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_ball.part +13 -0
  392. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_ball.stl +0 -0
  393. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_ball__2.part +13 -0
  394. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_ball__2.stl +0 -0
  395. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_rod.part +13 -0
  396. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_link_rod.stl +0 -0
  397. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_main_plate_3dprint.part +13 -0
  398. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_main_plate_3dprint.stl +0 -0
  399. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_tricap_3dprint.part +13 -0
  400. reachy_mini/descriptions/reachy_mini/urdf/assets/stewart_tricap_3dprint.stl +0 -0
  401. reachy_mini/descriptions/reachy_mini/urdf/assets/test_antenna.part +13 -0
  402. reachy_mini/descriptions/reachy_mini/urdf/assets/test_antenna.stl +0 -0
  403. reachy_mini/descriptions/reachy_mini/urdf/assets/test_antenna_body.part +13 -0
  404. reachy_mini/descriptions/reachy_mini/urdf/assets/test_antenna_body.stl +0 -0
  405. reachy_mini/descriptions/reachy_mini/urdf/assets/top_body.part +13 -0
  406. reachy_mini/descriptions/reachy_mini/urdf/assets/top_body.stl +0 -0
  407. reachy_mini/descriptions/reachy_mini/urdf/assets/turning_bowl.part +13 -0
  408. reachy_mini/descriptions/reachy_mini/urdf/assets/turning_bowl.stl +0 -0
  409. reachy_mini/descriptions/reachy_mini/urdf/assets/uc_a37_rev_a_step.part +13 -0
  410. reachy_mini/descriptions/reachy_mini/urdf/assets/uc_a37_rev_a_step.stl +0 -0
  411. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0122topcabinetcase_95__configuration_default.part +14 -0
  412. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0122topcabinetcase_95__configuration_default.stl +0 -0
  413. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0122topcabinetcase_95__configuration_simple_axe.part +14 -0
  414. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0122topcabinetcase_95__configuration_simple_axe.stl +0 -0
  415. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0123middlecase_56__configuration_default.part +14 -0
  416. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0123middlecase_56__configuration_default.stl +0 -0
  417. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0123middlecase_56__configuration_simple_axe.part +14 -0
  418. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0123middlecase_56__configuration_simple_axe.stl +0 -0
  419. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0124bottomcase_45__configuration_default.part +14 -0
  420. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0124bottomcase_45__configuration_default.stl +0 -0
  421. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0124bottomcase_45__configuration_simple_axe.part +14 -0
  422. reachy_mini/descriptions/reachy_mini/urdf/assets/wj_wk00_0124bottomcase_45__configuration_simple_axe.stl +0 -0
  423. reachy_mini/descriptions/reachy_mini/urdf/config.json +18 -0
  424. reachy_mini/descriptions/reachy_mini/urdf/robot.urdf +3281 -0
  425. reachy_mini/descriptions/reachy_mini/urdf/robot.urdf.bak +3282 -0
  426. reachy_mini/descriptions/reachy_mini/urdf/robot_no_collision.urdf +2316 -0
  427. reachy_mini/descriptions/reachy_mini/urdf/robot_simple_collision.urdf +2399 -0
  428. reachy_mini/io/__init__.py +15 -0
  429. reachy_mini/io/abstract.py +70 -0
  430. reachy_mini/io/audio_ws.py +242 -0
  431. reachy_mini/io/protocol.py +44 -0
  432. reachy_mini/io/video_ws.py +135 -0
  433. reachy_mini/io/ws_controller.py +120 -0
  434. reachy_mini/io/zenoh_client.py +273 -0
  435. reachy_mini/io/zenoh_server.py +230 -0
  436. reachy_mini/kinematics/__init__.py +68 -0
  437. reachy_mini/kinematics/analytical_kinematics.py +151 -0
  438. reachy_mini/kinematics/nn_kinematics.py +109 -0
  439. reachy_mini/kinematics/placo_kinematics.py +656 -0
  440. reachy_mini/media/__init__.py +1 -0
  441. reachy_mini/media/audio_base.py +111 -0
  442. reachy_mini/media/audio_control_utils.py +455 -0
  443. reachy_mini/media/audio_gstreamer.py +272 -0
  444. reachy_mini/media/audio_sounddevice.py +321 -0
  445. reachy_mini/media/audio_utils.py +114 -0
  446. reachy_mini/media/camera_base.py +100 -0
  447. reachy_mini/media/camera_constants.py +152 -0
  448. reachy_mini/media/camera_gstreamer.py +231 -0
  449. reachy_mini/media/camera_opencv.py +89 -0
  450. reachy_mini/media/camera_utils.py +111 -0
  451. reachy_mini/media/media_manager.py +281 -0
  452. reachy_mini/media/webrtc_client_gstreamer.py +288 -0
  453. reachy_mini/media/webrtc_daemon.py +334 -0
  454. reachy_mini/motion/__init__.py +4 -0
  455. reachy_mini/motion/goto.py +71 -0
  456. reachy_mini/motion/move.py +43 -0
  457. reachy_mini/motion/recorded_move.py +146 -0
  458. reachy_mini/reachy_mini.py +753 -0
  459. reachy_mini/tools/reflash_motors.py +116 -0
  460. reachy_mini/tools/setup_motor.py +422 -0
  461. reachy_mini/tools/setup_motor_rpi.py +108 -0
  462. reachy_mini/utils/__init__.py +46 -0
  463. reachy_mini/utils/constants.py +9 -0
  464. reachy_mini/utils/hardware_config/__init__.py +1 -0
  465. reachy_mini/utils/hardware_config/parser.py +65 -0
  466. reachy_mini/utils/interpolation.py +227 -0
  467. reachy_mini/utils/parse_urdf_for_kinematics.py +110 -0
  468. reachy_mini/utils/rerun.py +320 -0
  469. reachy_mini/utils/wireless_version/__init__.py +1 -0
  470. reachy_mini/utils/wireless_version/startup_check.py +144 -0
  471. reachy_mini/utils/wireless_version/update.py +20 -0
  472. reachy_mini/utils/wireless_version/update_available.py +61 -0
  473. reachy_mini/utils/wireless_version/utils.py +39 -0
  474. reachy_mini-1.2.5rc1.dist-info/METADATA +161 -0
  475. reachy_mini-1.2.5rc1.dist-info/RECORD +479 -0
  476. reachy_mini-1.2.5rc1.dist-info/WHEEL +5 -0
  477. reachy_mini-1.2.5rc1.dist-info/entry_points.txt +4 -0
  478. reachy_mini-1.2.5rc1.dist-info/licenses/LICENSE +201 -0
  479. reachy_mini-1.2.5rc1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1433 @@
1
+ /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer theme, base, components, utilities;
4
+ @layer theme {
5
+ :root, :host {
6
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
7
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
+ "Courier New", monospace;
10
+ --color-red-300: oklch(80.8% 0.114 19.571);
11
+ --color-red-400: oklch(70.4% 0.191 22.216);
12
+ --color-red-500: oklch(63.7% 0.237 25.331);
13
+ --color-red-600: oklch(57.7% 0.245 27.325);
14
+ --color-red-700: oklch(50.5% 0.213 27.518);
15
+ --color-red-800: oklch(44.4% 0.177 26.899);
16
+ --color-yellow-500: oklch(79.5% 0.184 86.047);
17
+ --color-green-300: oklch(87.1% 0.15 154.449);
18
+ --color-green-400: oklch(79.2% 0.209 151.711);
19
+ --color-green-500: oklch(72.3% 0.219 149.579);
20
+ --color-green-600: oklch(62.7% 0.194 149.214);
21
+ --color-green-700: oklch(52.7% 0.154 150.069);
22
+ --color-green-800: oklch(44.8% 0.119 151.328);
23
+ --color-blue-300: oklch(80.9% 0.105 251.813);
24
+ --color-blue-500: oklch(62.3% 0.214 259.815);
25
+ --color-blue-600: oklch(54.6% 0.245 262.881);
26
+ --color-blue-700: oklch(48.8% 0.243 264.376);
27
+ --color-blue-800: oklch(42.4% 0.199 265.638);
28
+ --color-gray-50: oklch(98.5% 0.002 247.839);
29
+ --color-gray-100: oklch(96.7% 0.003 264.542);
30
+ --color-gray-200: oklch(92.8% 0.006 264.531);
31
+ --color-gray-300: oklch(87.2% 0.01 258.338);
32
+ --color-gray-400: oklch(70.7% 0.022 261.325);
33
+ --color-gray-500: oklch(55.1% 0.027 264.364);
34
+ --color-gray-600: oklch(44.6% 0.03 256.802);
35
+ --color-gray-700: oklch(37.3% 0.034 259.733);
36
+ --color-gray-900: oklch(21% 0.034 264.665);
37
+ --color-white: #fff;
38
+ --spacing: 0.25rem;
39
+ --container-md: 28rem;
40
+ --container-2xl: 42rem;
41
+ --text-xs: 0.75rem;
42
+ --text-xs--line-height: calc(1 / 0.75);
43
+ --text-sm: 0.875rem;
44
+ --text-sm--line-height: calc(1.25 / 0.875);
45
+ --text-base: 1rem;
46
+ --text-base--line-height: calc(1.5 / 1);
47
+ --text-lg: 1.125rem;
48
+ --text-lg--line-height: calc(1.75 / 1.125);
49
+ --text-xl: 1.25rem;
50
+ --text-xl--line-height: calc(1.75 / 1.25);
51
+ --font-weight-medium: 500;
52
+ --font-weight-semibold: 600;
53
+ --radius-lg: 0.5rem;
54
+ --default-transition-duration: 150ms;
55
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
56
+ --default-font-family: var(--font-sans);
57
+ --default-mono-font-family: var(--font-mono);
58
+ }
59
+ }
60
+ @layer base {
61
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
62
+ box-sizing: border-box;
63
+ margin: 0;
64
+ padding: 0;
65
+ border: 0 solid;
66
+ }
67
+ html, :host {
68
+ line-height: 1.5;
69
+ -webkit-text-size-adjust: 100%;
70
+ tab-size: 4;
71
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
72
+ font-feature-settings: var(--default-font-feature-settings, normal);
73
+ font-variation-settings: var(--default-font-variation-settings, normal);
74
+ -webkit-tap-highlight-color: transparent;
75
+ }
76
+ hr {
77
+ height: 0;
78
+ color: inherit;
79
+ border-top-width: 1px;
80
+ }
81
+ abbr:where([title]) {
82
+ -webkit-text-decoration: underline dotted;
83
+ text-decoration: underline dotted;
84
+ }
85
+ h1, h2, h3, h4, h5, h6 {
86
+ font-size: inherit;
87
+ font-weight: inherit;
88
+ }
89
+ a {
90
+ color: inherit;
91
+ -webkit-text-decoration: inherit;
92
+ text-decoration: inherit;
93
+ }
94
+ b, strong {
95
+ font-weight: bolder;
96
+ }
97
+ code, kbd, samp, pre {
98
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
99
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
100
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
101
+ font-size: 1em;
102
+ }
103
+ small {
104
+ font-size: 80%;
105
+ }
106
+ sub, sup {
107
+ font-size: 75%;
108
+ line-height: 0;
109
+ position: relative;
110
+ vertical-align: baseline;
111
+ }
112
+ sub {
113
+ bottom: -0.25em;
114
+ }
115
+ sup {
116
+ top: -0.5em;
117
+ }
118
+ table {
119
+ text-indent: 0;
120
+ border-color: inherit;
121
+ border-collapse: collapse;
122
+ }
123
+ :-moz-focusring {
124
+ outline: auto;
125
+ }
126
+ progress {
127
+ vertical-align: baseline;
128
+ }
129
+ summary {
130
+ display: list-item;
131
+ }
132
+ ol, ul, menu {
133
+ list-style: none;
134
+ }
135
+ img, svg, video, canvas, audio, iframe, embed, object {
136
+ display: block;
137
+ vertical-align: middle;
138
+ }
139
+ img, video {
140
+ max-width: 100%;
141
+ height: auto;
142
+ }
143
+ button, input, select, optgroup, textarea, ::file-selector-button {
144
+ font: inherit;
145
+ font-feature-settings: inherit;
146
+ font-variation-settings: inherit;
147
+ letter-spacing: inherit;
148
+ color: inherit;
149
+ border-radius: 0;
150
+ background-color: transparent;
151
+ opacity: 1;
152
+ }
153
+ :where(select:is([multiple], [size])) optgroup {
154
+ font-weight: bolder;
155
+ }
156
+ :where(select:is([multiple], [size])) optgroup option {
157
+ padding-inline-start: 20px;
158
+ }
159
+ ::file-selector-button {
160
+ margin-inline-end: 4px;
161
+ }
162
+ ::placeholder {
163
+ opacity: 1;
164
+ }
165
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
166
+ ::placeholder {
167
+ color: currentcolor;
168
+ @supports (color: color-mix(in lab, red, red)) {
169
+ color: color-mix(in oklab, currentcolor 50%, transparent);
170
+ }
171
+ }
172
+ }
173
+ textarea {
174
+ resize: vertical;
175
+ }
176
+ ::-webkit-search-decoration {
177
+ -webkit-appearance: none;
178
+ }
179
+ ::-webkit-date-and-time-value {
180
+ min-height: 1lh;
181
+ text-align: inherit;
182
+ }
183
+ ::-webkit-datetime-edit {
184
+ display: inline-flex;
185
+ }
186
+ ::-webkit-datetime-edit-fields-wrapper {
187
+ padding: 0;
188
+ }
189
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
190
+ padding-block: 0;
191
+ }
192
+ ::-webkit-calendar-picker-indicator {
193
+ line-height: 1;
194
+ }
195
+ :-moz-ui-invalid {
196
+ box-shadow: none;
197
+ }
198
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
199
+ appearance: button;
200
+ }
201
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
202
+ height: auto;
203
+ }
204
+ [hidden]:where(:not([hidden="until-found"])) {
205
+ display: none !important;
206
+ }
207
+ }
208
+ @layer utilities {
209
+ .pointer-events-none {
210
+ pointer-events: none;
211
+ }
212
+ .sr-only {
213
+ position: absolute;
214
+ width: 1px;
215
+ height: 1px;
216
+ padding: 0;
217
+ margin: -1px;
218
+ overflow: hidden;
219
+ clip-path: inset(50%);
220
+ white-space: nowrap;
221
+ border-width: 0;
222
+ }
223
+ .absolute {
224
+ position: absolute;
225
+ }
226
+ .fixed {
227
+ position: fixed;
228
+ }
229
+ .relative {
230
+ position: relative;
231
+ }
232
+ .static {
233
+ position: static;
234
+ }
235
+ .inset-0 {
236
+ inset: calc(var(--spacing) * 0);
237
+ }
238
+ .start-1\.5 {
239
+ inset-inline-start: calc(var(--spacing) * 1.5);
240
+ }
241
+ .end-2\.5 {
242
+ inset-inline-end: calc(var(--spacing) * 2.5);
243
+ }
244
+ .top-0 {
245
+ top: calc(var(--spacing) * 0);
246
+ }
247
+ .top-0\.5 {
248
+ top: calc(var(--spacing) * 0.5);
249
+ }
250
+ .top-1\/2 {
251
+ top: calc(1/2 * 100%);
252
+ }
253
+ .right-0 {
254
+ right: calc(var(--spacing) * 0);
255
+ }
256
+ .left-0 {
257
+ left: calc(var(--spacing) * 0);
258
+ }
259
+ .left-0\.5 {
260
+ left: calc(var(--spacing) * 0.5);
261
+ }
262
+ .z-50 {
263
+ z-index: 50;
264
+ }
265
+ .row-span-2 {
266
+ grid-row: span 2 / span 2;
267
+ }
268
+ .container {
269
+ width: 100%;
270
+ @media (width >= 40rem) {
271
+ max-width: 40rem;
272
+ }
273
+ @media (width >= 48rem) {
274
+ max-width: 48rem;
275
+ }
276
+ @media (width >= 64rem) {
277
+ max-width: 64rem;
278
+ }
279
+ @media (width >= 80rem) {
280
+ max-width: 80rem;
281
+ }
282
+ @media (width >= 96rem) {
283
+ max-width: 96rem;
284
+ }
285
+ }
286
+ .mx-auto {
287
+ margin-inline: auto;
288
+ }
289
+ .my-1 {
290
+ margin-block: calc(var(--spacing) * 1);
291
+ }
292
+ .my-2 {
293
+ margin-block: calc(var(--spacing) * 2);
294
+ }
295
+ .mt-2 {
296
+ margin-top: calc(var(--spacing) * 2);
297
+ }
298
+ .mt-3 {
299
+ margin-top: calc(var(--spacing) * 3);
300
+ }
301
+ .mt-4 {
302
+ margin-top: calc(var(--spacing) * 4);
303
+ }
304
+ .mr-2 {
305
+ margin-right: calc(var(--spacing) * 2);
306
+ }
307
+ .mb-1 {
308
+ margin-bottom: calc(var(--spacing) * 1);
309
+ }
310
+ .mb-2 {
311
+ margin-bottom: calc(var(--spacing) * 2);
312
+ }
313
+ .mb-4 {
314
+ margin-bottom: calc(var(--spacing) * 4);
315
+ }
316
+ .ml-2 {
317
+ margin-left: calc(var(--spacing) * 2);
318
+ }
319
+ .block {
320
+ display: block;
321
+ }
322
+ .flex {
323
+ display: flex;
324
+ }
325
+ .grid {
326
+ display: grid;
327
+ }
328
+ .hidden {
329
+ display: none;
330
+ }
331
+ .inline {
332
+ display: inline;
333
+ }
334
+ .inline-block {
335
+ display: inline-block;
336
+ }
337
+ .size-7 {
338
+ width: calc(var(--spacing) * 7);
339
+ height: calc(var(--spacing) * 7);
340
+ }
341
+ .h-2 {
342
+ height: calc(var(--spacing) * 2);
343
+ }
344
+ .h-4 {
345
+ height: calc(var(--spacing) * 4);
346
+ }
347
+ .h-5 {
348
+ height: calc(var(--spacing) * 5);
349
+ }
350
+ .h-7 {
351
+ height: calc(var(--spacing) * 7);
352
+ }
353
+ .h-8 {
354
+ height: calc(var(--spacing) * 8);
355
+ }
356
+ .h-auto {
357
+ height: auto;
358
+ }
359
+ .h-full {
360
+ height: 100%;
361
+ }
362
+ .max-h-48 {
363
+ max-height: calc(var(--spacing) * 48);
364
+ }
365
+ .max-h-96 {
366
+ max-height: calc(var(--spacing) * 96);
367
+ }
368
+ .max-h-full {
369
+ max-height: 100%;
370
+ }
371
+ .min-h-screen {
372
+ min-height: 100vh;
373
+ }
374
+ .w-4 {
375
+ width: calc(var(--spacing) * 4);
376
+ }
377
+ .w-5 {
378
+ width: calc(var(--spacing) * 5);
379
+ }
380
+ .w-7 {
381
+ width: calc(var(--spacing) * 7);
382
+ }
383
+ .w-12 {
384
+ width: calc(var(--spacing) * 12);
385
+ }
386
+ .w-16 {
387
+ width: calc(var(--spacing) * 16);
388
+ }
389
+ .w-20 {
390
+ width: calc(var(--spacing) * 20);
391
+ }
392
+ .w-28 {
393
+ width: calc(var(--spacing) * 28);
394
+ }
395
+ .w-full {
396
+ width: 100%;
397
+ }
398
+ .max-w-2xl {
399
+ max-width: var(--container-2xl);
400
+ }
401
+ .max-w-md {
402
+ max-width: var(--container-md);
403
+ }
404
+ .min-w-\[50\%\] {
405
+ min-width: 50%;
406
+ }
407
+ .flex-1 {
408
+ flex: 1;
409
+ }
410
+ .flex-grow {
411
+ flex-grow: 1;
412
+ }
413
+ .-translate-x-4 {
414
+ --tw-translate-x: calc(var(--spacing) * -4);
415
+ translate: var(--tw-translate-x) var(--tw-translate-y);
416
+ }
417
+ .-translate-x-8 {
418
+ --tw-translate-x: calc(var(--spacing) * -8);
419
+ translate: var(--tw-translate-x) var(--tw-translate-y);
420
+ }
421
+ .-translate-y-1 {
422
+ --tw-translate-y: calc(var(--spacing) * -1);
423
+ translate: var(--tw-translate-x) var(--tw-translate-y);
424
+ }
425
+ .-translate-y-1\/2 {
426
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
427
+ translate: var(--tw-translate-x) var(--tw-translate-y);
428
+ }
429
+ .transform {
430
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
431
+ }
432
+ .cursor-not-allowed {
433
+ cursor: not-allowed;
434
+ }
435
+ .cursor-pointer {
436
+ cursor: pointer;
437
+ }
438
+ .list-inside {
439
+ list-style-position: inside;
440
+ }
441
+ .list-disc {
442
+ list-style-type: disc;
443
+ }
444
+ .appearance-none {
445
+ appearance: none;
446
+ }
447
+ .grid-cols-\[2rem_auto_8rem\] {
448
+ grid-template-columns: 2rem auto 8rem;
449
+ }
450
+ .grid-cols-\[auto_6rem_2rem\] {
451
+ grid-template-columns: auto 6rem 2rem;
452
+ }
453
+ .flex-col {
454
+ flex-direction: column;
455
+ }
456
+ .flex-row {
457
+ flex-direction: row;
458
+ }
459
+ .items-center {
460
+ align-items: center;
461
+ }
462
+ .justify-between {
463
+ justify-content: space-between;
464
+ }
465
+ .justify-center {
466
+ justify-content: center;
467
+ }
468
+ .justify-stretch {
469
+ justify-content: stretch;
470
+ }
471
+ .gap-2 {
472
+ gap: calc(var(--spacing) * 2);
473
+ }
474
+ .gap-4 {
475
+ gap: calc(var(--spacing) * 4);
476
+ }
477
+ .space-y-4 {
478
+ :where(& > :not(:last-child)) {
479
+ --tw-space-y-reverse: 0;
480
+ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
481
+ margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
482
+ }
483
+ }
484
+ .gap-x-2 {
485
+ column-gap: calc(var(--spacing) * 2);
486
+ }
487
+ .gap-x-6 {
488
+ column-gap: calc(var(--spacing) * 6);
489
+ }
490
+ .overflow-y-auto {
491
+ overflow-y: auto;
492
+ }
493
+ .rounded {
494
+ border-radius: 0.25rem;
495
+ }
496
+ .rounded-full {
497
+ border-radius: calc(infinity * 1px);
498
+ }
499
+ .rounded-lg {
500
+ border-radius: var(--radius-lg);
501
+ }
502
+ .rounded-t {
503
+ border-top-left-radius: 0.25rem;
504
+ border-top-right-radius: 0.25rem;
505
+ }
506
+ .rounded-b {
507
+ border-bottom-right-radius: 0.25rem;
508
+ border-bottom-left-radius: 0.25rem;
509
+ }
510
+ .border {
511
+ border-style: var(--tw-border-style);
512
+ border-width: 1px;
513
+ }
514
+ .border-t {
515
+ border-top-style: var(--tw-border-style);
516
+ border-top-width: 1px;
517
+ }
518
+ .border-b {
519
+ border-bottom-style: var(--tw-border-style);
520
+ border-bottom-width: 1px;
521
+ }
522
+ .border-l-2 {
523
+ border-left-style: var(--tw-border-style);
524
+ border-left-width: 2px;
525
+ }
526
+ .border-gray-200 {
527
+ border-color: var(--color-gray-200);
528
+ }
529
+ .border-gray-300 {
530
+ border-color: var(--color-gray-300);
531
+ }
532
+ .border-red-600 {
533
+ border-color: var(--color-red-600);
534
+ }
535
+ .bg-blue-500 {
536
+ background-color: var(--color-blue-500);
537
+ }
538
+ .bg-blue-600 {
539
+ background-color: var(--color-blue-600);
540
+ }
541
+ .bg-blue-700 {
542
+ background-color: var(--color-blue-700);
543
+ }
544
+ .bg-gray-50 {
545
+ background-color: var(--color-gray-50);
546
+ }
547
+ .bg-gray-100 {
548
+ background-color: var(--color-gray-100);
549
+ }
550
+ .bg-gray-200 {
551
+ background-color: var(--color-gray-200);
552
+ }
553
+ .bg-gray-300 {
554
+ background-color: var(--color-gray-300);
555
+ }
556
+ .bg-gray-400 {
557
+ background-color: var(--color-gray-400);
558
+ }
559
+ .bg-green-400 {
560
+ background-color: var(--color-green-400);
561
+ }
562
+ .bg-green-500 {
563
+ background-color: var(--color-green-500);
564
+ }
565
+ .bg-green-700 {
566
+ background-color: var(--color-green-700);
567
+ }
568
+ .bg-red-500 {
569
+ background-color: var(--color-red-500);
570
+ }
571
+ .bg-red-700 {
572
+ background-color: var(--color-red-700);
573
+ }
574
+ .bg-white {
575
+ background-color: var(--color-white);
576
+ }
577
+ .bg-yellow-500 {
578
+ background-color: var(--color-yellow-500);
579
+ }
580
+ .p-1 {
581
+ padding: calc(var(--spacing) * 1);
582
+ }
583
+ .p-2\.5 {
584
+ padding: calc(var(--spacing) * 2.5);
585
+ }
586
+ .p-4 {
587
+ padding: calc(var(--spacing) * 4);
588
+ }
589
+ .px-2 {
590
+ padding-inline: calc(var(--spacing) * 2);
591
+ }
592
+ .px-4 {
593
+ padding-inline: calc(var(--spacing) * 4);
594
+ }
595
+ .px-5 {
596
+ padding-inline: calc(var(--spacing) * 5);
597
+ }
598
+ .py-1 {
599
+ padding-block: calc(var(--spacing) * 1);
600
+ }
601
+ .py-2 {
602
+ padding-block: calc(var(--spacing) * 2);
603
+ }
604
+ .py-2\.5 {
605
+ padding-block: calc(var(--spacing) * 2.5);
606
+ }
607
+ .py-4 {
608
+ padding-block: calc(var(--spacing) * 4);
609
+ }
610
+ .pt-1 {
611
+ padding-top: calc(var(--spacing) * 1);
612
+ }
613
+ .pt-4 {
614
+ padding-top: calc(var(--spacing) * 4);
615
+ }
616
+ .pr-4 {
617
+ padding-right: calc(var(--spacing) * 4);
618
+ }
619
+ .pb-2 {
620
+ padding-bottom: calc(var(--spacing) * 2);
621
+ }
622
+ .pl-4 {
623
+ padding-left: calc(var(--spacing) * 4);
624
+ }
625
+ .text-center {
626
+ text-align: center;
627
+ }
628
+ .align-middle {
629
+ vertical-align: middle;
630
+ }
631
+ .font-mono {
632
+ font-family: var(--font-mono);
633
+ }
634
+ .text-base {
635
+ font-size: var(--text-base);
636
+ line-height: var(--tw-leading, var(--text-base--line-height));
637
+ }
638
+ .text-lg {
639
+ font-size: var(--text-lg);
640
+ line-height: var(--tw-leading, var(--text-lg--line-height));
641
+ }
642
+ .text-sm {
643
+ font-size: var(--text-sm);
644
+ line-height: var(--tw-leading, var(--text-sm--line-height));
645
+ }
646
+ .text-xl {
647
+ font-size: var(--text-xl);
648
+ line-height: var(--tw-leading, var(--text-xl--line-height));
649
+ }
650
+ .text-xs {
651
+ font-size: var(--text-xs);
652
+ line-height: var(--tw-leading, var(--text-xs--line-height));
653
+ }
654
+ .font-medium {
655
+ --tw-font-weight: var(--font-weight-medium);
656
+ font-weight: var(--font-weight-medium);
657
+ }
658
+ .font-semibold {
659
+ --tw-font-weight: var(--font-weight-semibold);
660
+ font-weight: var(--font-weight-semibold);
661
+ }
662
+ .text-blue-700 {
663
+ color: var(--color-blue-700);
664
+ }
665
+ .text-gray-400 {
666
+ color: var(--color-gray-400);
667
+ }
668
+ .text-gray-500 {
669
+ color: var(--color-gray-500);
670
+ }
671
+ .text-gray-600 {
672
+ color: var(--color-gray-600);
673
+ }
674
+ .text-gray-700 {
675
+ color: var(--color-gray-700);
676
+ }
677
+ .text-gray-900 {
678
+ color: var(--color-gray-900);
679
+ }
680
+ .text-green-700 {
681
+ color: var(--color-green-700);
682
+ }
683
+ .text-white {
684
+ color: var(--color-white);
685
+ }
686
+ .overline {
687
+ text-decoration-line: overline;
688
+ }
689
+ .opacity-50 {
690
+ opacity: 50%;
691
+ }
692
+ .shadow {
693
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
694
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
695
+ }
696
+ .shadow-sm {
697
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
698
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
699
+ }
700
+ .transition-all {
701
+ transition-property: all;
702
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
703
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
704
+ }
705
+ .transition-colors {
706
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
707
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
708
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
709
+ }
710
+ .duration-150 {
711
+ --tw-duration: 150ms;
712
+ transition-duration: 150ms;
713
+ }
714
+ .duration-200 {
715
+ --tw-duration: 200ms;
716
+ transition-duration: 200ms;
717
+ }
718
+ .select-none {
719
+ -webkit-user-select: none;
720
+ user-select: none;
721
+ }
722
+ .peer-checked\:bg-blue-800 {
723
+ &:is(:where(.peer):checked ~ *) {
724
+ background-color: var(--color-blue-800);
725
+ }
726
+ }
727
+ .peer-checked\:bg-green-400 {
728
+ &:is(:where(.peer):checked ~ *) {
729
+ background-color: var(--color-green-400);
730
+ }
731
+ }
732
+ .peer-checked\:text-gray-400 {
733
+ &:is(:where(.peer):checked ~ *) {
734
+ color: var(--color-gray-400);
735
+ }
736
+ }
737
+ .peer-checked\:text-gray-900 {
738
+ &:is(:where(.peer):checked ~ *) {
739
+ color: var(--color-gray-900);
740
+ }
741
+ }
742
+ .peer-checked\:text-white {
743
+ &:is(:where(.peer):checked ~ *) {
744
+ color: var(--color-white);
745
+ }
746
+ }
747
+ .peer-focus\:ring-4 {
748
+ &:is(:where(.peer):focus ~ *) {
749
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
750
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
751
+ }
752
+ }
753
+ .peer-focus\:ring-gray-100 {
754
+ &:is(:where(.peer):focus ~ *) {
755
+ --tw-ring-color: var(--color-gray-100);
756
+ }
757
+ }
758
+ .peer-focus\:outline-none {
759
+ &:is(:where(.peer):focus ~ *) {
760
+ --tw-outline-style: none;
761
+ outline-style: none;
762
+ }
763
+ }
764
+ .after\:absolute {
765
+ &::after {
766
+ content: var(--tw-content);
767
+ position: absolute;
768
+ }
769
+ }
770
+ .after\:start-0\.5 {
771
+ &::after {
772
+ content: var(--tw-content);
773
+ inset-inline-start: calc(var(--spacing) * 0.5);
774
+ }
775
+ }
776
+ .after\:top-0\.5 {
777
+ &::after {
778
+ content: var(--tw-content);
779
+ top: calc(var(--spacing) * 0.5);
780
+ }
781
+ }
782
+ .after\:h-7 {
783
+ &::after {
784
+ content: var(--tw-content);
785
+ height: calc(var(--spacing) * 7);
786
+ }
787
+ }
788
+ .after\:w-7 {
789
+ &::after {
790
+ content: var(--tw-content);
791
+ width: calc(var(--spacing) * 7);
792
+ }
793
+ }
794
+ .after\:rounded-full {
795
+ &::after {
796
+ content: var(--tw-content);
797
+ border-radius: calc(infinity * 1px);
798
+ }
799
+ }
800
+ .after\:border {
801
+ &::after {
802
+ content: var(--tw-content);
803
+ border-style: var(--tw-border-style);
804
+ border-width: 1px;
805
+ }
806
+ }
807
+ .after\:border-gray-300 {
808
+ &::after {
809
+ content: var(--tw-content);
810
+ border-color: var(--color-gray-300);
811
+ }
812
+ }
813
+ .after\:bg-white {
814
+ &::after {
815
+ content: var(--tw-content);
816
+ background-color: var(--color-white);
817
+ }
818
+ }
819
+ .after\:transition-all {
820
+ &::after {
821
+ content: var(--tw-content);
822
+ transition-property: all;
823
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
824
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
825
+ }
826
+ }
827
+ .after\:content-\[\'\'\] {
828
+ &::after {
829
+ --tw-content: '';
830
+ content: var(--tw-content);
831
+ }
832
+ }
833
+ .peer-checked\:after\:translate-x-\[46px\] {
834
+ &:is(:where(.peer):checked ~ *) {
835
+ &::after {
836
+ content: var(--tw-content);
837
+ --tw-translate-x: 46px;
838
+ translate: var(--tw-translate-x) var(--tw-translate-y);
839
+ }
840
+ }
841
+ }
842
+ .peer-checked\:after\:border-white {
843
+ &:is(:where(.peer):checked ~ *) {
844
+ &::after {
845
+ content: var(--tw-content);
846
+ border-color: var(--color-white);
847
+ }
848
+ }
849
+ }
850
+ .hover\:bg-blue-600 {
851
+ &:hover {
852
+ @media (hover: hover) {
853
+ background-color: var(--color-blue-600);
854
+ }
855
+ }
856
+ }
857
+ .hover\:bg-blue-700 {
858
+ &:hover {
859
+ @media (hover: hover) {
860
+ background-color: var(--color-blue-700);
861
+ }
862
+ }
863
+ }
864
+ .hover\:bg-blue-800 {
865
+ &:hover {
866
+ @media (hover: hover) {
867
+ background-color: var(--color-blue-800);
868
+ }
869
+ }
870
+ }
871
+ .hover\:bg-gray-200 {
872
+ &:hover {
873
+ @media (hover: hover) {
874
+ background-color: var(--color-gray-200);
875
+ }
876
+ }
877
+ }
878
+ .hover\:bg-gray-300 {
879
+ &:hover {
880
+ @media (hover: hover) {
881
+ background-color: var(--color-gray-300);
882
+ }
883
+ }
884
+ }
885
+ .hover\:bg-green-500 {
886
+ &:hover {
887
+ @media (hover: hover) {
888
+ background-color: var(--color-green-500);
889
+ }
890
+ }
891
+ }
892
+ .hover\:bg-green-800 {
893
+ &:hover {
894
+ @media (hover: hover) {
895
+ background-color: var(--color-green-800);
896
+ }
897
+ }
898
+ }
899
+ .hover\:bg-red-600 {
900
+ &:hover {
901
+ @media (hover: hover) {
902
+ background-color: var(--color-red-600);
903
+ }
904
+ }
905
+ }
906
+ .hover\:bg-red-800 {
907
+ &:hover {
908
+ @media (hover: hover) {
909
+ background-color: var(--color-red-800);
910
+ }
911
+ }
912
+ }
913
+ .hover\:text-gray-900 {
914
+ &:hover {
915
+ @media (hover: hover) {
916
+ color: var(--color-gray-900);
917
+ }
918
+ }
919
+ }
920
+ .focus\:border-blue-500 {
921
+ &:focus {
922
+ border-color: var(--color-blue-500);
923
+ }
924
+ }
925
+ .focus\:ring-4 {
926
+ &:focus {
927
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
928
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
929
+ }
930
+ }
931
+ .focus\:ring-blue-300 {
932
+ &:focus {
933
+ --tw-ring-color: var(--color-blue-300);
934
+ }
935
+ }
936
+ .focus\:ring-blue-500 {
937
+ &:focus {
938
+ --tw-ring-color: var(--color-blue-500);
939
+ }
940
+ }
941
+ .focus\:ring-green-300 {
942
+ &:focus {
943
+ --tw-ring-color: var(--color-green-300);
944
+ }
945
+ }
946
+ .focus\:ring-red-300 {
947
+ &:focus {
948
+ --tw-ring-color: var(--color-red-300);
949
+ }
950
+ }
951
+ .focus\:outline-none {
952
+ &:focus {
953
+ --tw-outline-style: none;
954
+ outline-style: none;
955
+ }
956
+ }
957
+ .disabled\:bg-gray-300 {
958
+ &:disabled {
959
+ background-color: var(--color-gray-300);
960
+ }
961
+ }
962
+ .disabled\:text-gray-500 {
963
+ &:disabled {
964
+ color: var(--color-gray-500);
965
+ }
966
+ }
967
+ .sm\:w-auto {
968
+ @media (width >= 40rem) {
969
+ width: auto;
970
+ }
971
+ }
972
+ .sm\:px-8 {
973
+ @media (width >= 40rem) {
974
+ padding-inline: calc(var(--spacing) * 8);
975
+ }
976
+ }
977
+ .md\:w-2\/3 {
978
+ @media (width >= 48rem) {
979
+ width: calc(2/3 * 100%);
980
+ }
981
+ }
982
+ .md\:flex-row {
983
+ @media (width >= 48rem) {
984
+ flex-direction: row;
985
+ }
986
+ }
987
+ .md\:p-5 {
988
+ @media (width >= 48rem) {
989
+ padding: calc(var(--spacing) * 5);
990
+ }
991
+ }
992
+ .md\:px-8 {
993
+ @media (width >= 48rem) {
994
+ padding-inline: calc(var(--spacing) * 8);
995
+ }
996
+ }
997
+ .lg\:px-8 {
998
+ @media (width >= 64rem) {
999
+ padding-inline: calc(var(--spacing) * 8);
1000
+ }
1001
+ }
1002
+ .xl\:px-8 {
1003
+ @media (width >= 80rem) {
1004
+ padding-inline: calc(var(--spacing) * 8);
1005
+ }
1006
+ }
1007
+ .rtl\:peer-checked\:after\:-translate-x-full {
1008
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1009
+ &:is(:where(.peer):checked ~ *) {
1010
+ &::after {
1011
+ content: var(--tw-content);
1012
+ --tw-translate-x: -100%;
1013
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1014
+ }
1015
+ }
1016
+ }
1017
+ }
1018
+ .dark\:border-gray-600 {
1019
+ @media (prefers-color-scheme: dark) {
1020
+ border-color: var(--color-gray-600);
1021
+ }
1022
+ }
1023
+ .dark\:bg-blue-600 {
1024
+ @media (prefers-color-scheme: dark) {
1025
+ background-color: var(--color-blue-600);
1026
+ }
1027
+ }
1028
+ .dark\:bg-gray-400 {
1029
+ @media (prefers-color-scheme: dark) {
1030
+ background-color: var(--color-gray-400);
1031
+ }
1032
+ }
1033
+ .dark\:bg-gray-700 {
1034
+ @media (prefers-color-scheme: dark) {
1035
+ background-color: var(--color-gray-700);
1036
+ }
1037
+ }
1038
+ .dark\:bg-green-600 {
1039
+ @media (prefers-color-scheme: dark) {
1040
+ background-color: var(--color-green-600);
1041
+ }
1042
+ }
1043
+ .dark\:bg-red-400 {
1044
+ @media (prefers-color-scheme: dark) {
1045
+ background-color: var(--color-red-400);
1046
+ }
1047
+ }
1048
+ .dark\:bg-red-600 {
1049
+ @media (prefers-color-scheme: dark) {
1050
+ background-color: var(--color-red-600);
1051
+ }
1052
+ }
1053
+ .dark\:text-gray-400 {
1054
+ @media (prefers-color-scheme: dark) {
1055
+ color: var(--color-gray-400);
1056
+ }
1057
+ }
1058
+ .dark\:text-white {
1059
+ @media (prefers-color-scheme: dark) {
1060
+ color: var(--color-white);
1061
+ }
1062
+ }
1063
+ .dark\:peer-checked\:bg-blue-800 {
1064
+ @media (prefers-color-scheme: dark) {
1065
+ &:is(:where(.peer):checked ~ *) {
1066
+ background-color: var(--color-blue-800);
1067
+ }
1068
+ }
1069
+ }
1070
+ .dark\:peer-checked\:bg-green-400 {
1071
+ @media (prefers-color-scheme: dark) {
1072
+ &:is(:where(.peer):checked ~ *) {
1073
+ background-color: var(--color-green-400);
1074
+ }
1075
+ }
1076
+ }
1077
+ .dark\:peer-focus\:ring-gray-100 {
1078
+ @media (prefers-color-scheme: dark) {
1079
+ &:is(:where(.peer):focus ~ *) {
1080
+ --tw-ring-color: var(--color-gray-100);
1081
+ }
1082
+ }
1083
+ }
1084
+ .dark\:hover\:bg-blue-700 {
1085
+ @media (prefers-color-scheme: dark) {
1086
+ &:hover {
1087
+ @media (hover: hover) {
1088
+ background-color: var(--color-blue-700);
1089
+ }
1090
+ }
1091
+ }
1092
+ }
1093
+ .dark\:hover\:bg-green-700 {
1094
+ @media (prefers-color-scheme: dark) {
1095
+ &:hover {
1096
+ @media (hover: hover) {
1097
+ background-color: var(--color-green-700);
1098
+ }
1099
+ }
1100
+ }
1101
+ }
1102
+ .dark\:hover\:bg-red-700 {
1103
+ @media (prefers-color-scheme: dark) {
1104
+ &:hover {
1105
+ @media (hover: hover) {
1106
+ background-color: var(--color-red-700);
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ .dark\:focus\:ring-blue-800 {
1112
+ @media (prefers-color-scheme: dark) {
1113
+ &:focus {
1114
+ --tw-ring-color: var(--color-blue-800);
1115
+ }
1116
+ }
1117
+ }
1118
+ .dark\:focus\:ring-green-800 {
1119
+ @media (prefers-color-scheme: dark) {
1120
+ &:focus {
1121
+ --tw-ring-color: var(--color-green-800);
1122
+ }
1123
+ }
1124
+ }
1125
+ .dark\:focus\:ring-red-800 {
1126
+ @media (prefers-color-scheme: dark) {
1127
+ &:focus {
1128
+ --tw-ring-color: var(--color-red-800);
1129
+ }
1130
+ }
1131
+ }
1132
+ }
1133
+ @font-face {
1134
+ font-family: 'Asap';
1135
+ src: url('/static/fonts/Asap-VariableFont_wdth,wght.ttf') format('truetype');
1136
+ font-weight: 100 900;
1137
+ font-style: normal;
1138
+ }
1139
+ @font-face {
1140
+ font-family: 'Asap';
1141
+ src: url('/static/fonts/Asap-Italic-VariableFont_wdth,wght.ttf') format('truetype');
1142
+ font-weight: 100 900;
1143
+ font-style: italic;
1144
+ }
1145
+ @font-face {
1146
+ font-family: 'Archivo';
1147
+ src: url('/static/fonts/Archivo-VariableFont_wdth,wght.ttf') format('truetype');
1148
+ font-weight: 100 900;
1149
+ font-style: normal;
1150
+ }
1151
+ @font-face {
1152
+ font-family: 'Archivo';
1153
+ src: url('/static/fonts/Archivo-Italic-VariableFont_wdth,wght.ttf') format('truetype');
1154
+ font-weight: 100 900;
1155
+ font-style: italic;
1156
+ }
1157
+ html {
1158
+ -webkit-font-smoothing: antialiased;
1159
+ -moz-osx-font-smoothing: grayscale;
1160
+ }
1161
+ body {
1162
+ font-family: 'Archivo', 'Asap', sans-serif;
1163
+ }
1164
+ .daemon-status-title {
1165
+ font-size: 36px;
1166
+ font-weight: 500;
1167
+ letter-spacing: 0.3px;
1168
+ }
1169
+ .daemon-status-collapse {
1170
+ font-family: 'Asap', sans-serif;
1171
+ font-weight: 400;
1172
+ color: rgba(0, 0, 0, 0.7);
1173
+ }
1174
+ .app-section {
1175
+ border-radius: 8px;
1176
+ border-width: 1px;
1177
+ padding: 16px;
1178
+ gap: 16px;
1179
+ background: #FFFFFF;
1180
+ }
1181
+ .installed-app-title {
1182
+ font-weight: 600;
1183
+ }
1184
+ .app-section-title {
1185
+ font-weight: 500;
1186
+ font-size: 24px;
1187
+ letter-spacing: 0px;
1188
+ }
1189
+ .app-list-item {
1190
+ padding: 4px;
1191
+ }
1192
+ .hf-app-icon {
1193
+ width: 42px;
1194
+ height: 42px;
1195
+ border-radius: 10px;
1196
+ text-align: center;
1197
+ font-size: 31px;
1198
+ background-color: rgba(0, 0, 0, 0.1);
1199
+ }
1200
+ .hf-app-title {
1201
+ font-weight: 500;
1202
+ font-size: 18px;
1203
+ }
1204
+ .hf-app-description {
1205
+ font-family: 'Asap', sans-serif;
1206
+ font-weight: 400;
1207
+ font-size: 16px;
1208
+ line-height: 75%;
1209
+ color: rgba(0, 0, 0, 0.4);
1210
+ }
1211
+ .hf-app-install-button {
1212
+ font-weight: 500;
1213
+ font-size: 20px;
1214
+ font-style: Bold;
1215
+ text-align: center;
1216
+ border-radius: 8px;
1217
+ display: flex;
1218
+ align-items: center;
1219
+ justify-content: center;
1220
+ }
1221
+ .wifi-status {
1222
+ font-family: 'Asap', sans-serif;
1223
+ font-weight: 500;
1224
+ color: rgba(0, 0, 0, 0.9);
1225
+ }
1226
+ .wifi-status-info {
1227
+ font-family: 'Asap', sans-serif;
1228
+ font-weight: 400;
1229
+ color: rgba(0, 0, 0, 0.7);
1230
+ }
1231
+ .notification-modal {
1232
+ position: fixed;
1233
+ bottom: 24px;
1234
+ right: 24px;
1235
+ z-index: 9999;
1236
+ min-width: 300px;
1237
+ max-width: 400px;
1238
+ background: #fff;
1239
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
1240
+ border-radius: 8px;
1241
+ display: none;
1242
+ animation: fadeInUp 0.3s;
1243
+ }
1244
+ @keyframes fadeInUp {
1245
+ from {
1246
+ opacity: 0;
1247
+ transform: translateY(40px);
1248
+ }
1249
+ to {
1250
+ opacity: 1;
1251
+ transform: translateY(0);
1252
+ }
1253
+ }
1254
+ .notification-content {
1255
+ padding: 20px 28px;
1256
+ border-radius: 8px;
1257
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
1258
+ display: flex;
1259
+ align-items: center;
1260
+ justify-content: space-between;
1261
+ }
1262
+ .notification-content.info {
1263
+ background: #fff;
1264
+ border: 1px solid #e0e0e0;
1265
+ }
1266
+ .notification-content.error {
1267
+ background: #ffeaea;
1268
+ border: 1px solid #ff4d4f;
1269
+ color: #b71c1c;
1270
+ }
1271
+ .close-btn {
1272
+ background: none;
1273
+ border: none;
1274
+ font-size: 1.5em;
1275
+ cursor: pointer;
1276
+ color: #888;
1277
+ }
1278
+ @property --tw-translate-x {
1279
+ syntax: "*";
1280
+ inherits: false;
1281
+ initial-value: 0;
1282
+ }
1283
+ @property --tw-translate-y {
1284
+ syntax: "*";
1285
+ inherits: false;
1286
+ initial-value: 0;
1287
+ }
1288
+ @property --tw-translate-z {
1289
+ syntax: "*";
1290
+ inherits: false;
1291
+ initial-value: 0;
1292
+ }
1293
+ @property --tw-rotate-x {
1294
+ syntax: "*";
1295
+ inherits: false;
1296
+ }
1297
+ @property --tw-rotate-y {
1298
+ syntax: "*";
1299
+ inherits: false;
1300
+ }
1301
+ @property --tw-rotate-z {
1302
+ syntax: "*";
1303
+ inherits: false;
1304
+ }
1305
+ @property --tw-skew-x {
1306
+ syntax: "*";
1307
+ inherits: false;
1308
+ }
1309
+ @property --tw-skew-y {
1310
+ syntax: "*";
1311
+ inherits: false;
1312
+ }
1313
+ @property --tw-space-y-reverse {
1314
+ syntax: "*";
1315
+ inherits: false;
1316
+ initial-value: 0;
1317
+ }
1318
+ @property --tw-border-style {
1319
+ syntax: "*";
1320
+ inherits: false;
1321
+ initial-value: solid;
1322
+ }
1323
+ @property --tw-font-weight {
1324
+ syntax: "*";
1325
+ inherits: false;
1326
+ }
1327
+ @property --tw-shadow {
1328
+ syntax: "*";
1329
+ inherits: false;
1330
+ initial-value: 0 0 #0000;
1331
+ }
1332
+ @property --tw-shadow-color {
1333
+ syntax: "*";
1334
+ inherits: false;
1335
+ }
1336
+ @property --tw-shadow-alpha {
1337
+ syntax: "<percentage>";
1338
+ inherits: false;
1339
+ initial-value: 100%;
1340
+ }
1341
+ @property --tw-inset-shadow {
1342
+ syntax: "*";
1343
+ inherits: false;
1344
+ initial-value: 0 0 #0000;
1345
+ }
1346
+ @property --tw-inset-shadow-color {
1347
+ syntax: "*";
1348
+ inherits: false;
1349
+ }
1350
+ @property --tw-inset-shadow-alpha {
1351
+ syntax: "<percentage>";
1352
+ inherits: false;
1353
+ initial-value: 100%;
1354
+ }
1355
+ @property --tw-ring-color {
1356
+ syntax: "*";
1357
+ inherits: false;
1358
+ }
1359
+ @property --tw-ring-shadow {
1360
+ syntax: "*";
1361
+ inherits: false;
1362
+ initial-value: 0 0 #0000;
1363
+ }
1364
+ @property --tw-inset-ring-color {
1365
+ syntax: "*";
1366
+ inherits: false;
1367
+ }
1368
+ @property --tw-inset-ring-shadow {
1369
+ syntax: "*";
1370
+ inherits: false;
1371
+ initial-value: 0 0 #0000;
1372
+ }
1373
+ @property --tw-ring-inset {
1374
+ syntax: "*";
1375
+ inherits: false;
1376
+ }
1377
+ @property --tw-ring-offset-width {
1378
+ syntax: "<length>";
1379
+ inherits: false;
1380
+ initial-value: 0px;
1381
+ }
1382
+ @property --tw-ring-offset-color {
1383
+ syntax: "*";
1384
+ inherits: false;
1385
+ initial-value: #fff;
1386
+ }
1387
+ @property --tw-ring-offset-shadow {
1388
+ syntax: "*";
1389
+ inherits: false;
1390
+ initial-value: 0 0 #0000;
1391
+ }
1392
+ @property --tw-duration {
1393
+ syntax: "*";
1394
+ inherits: false;
1395
+ }
1396
+ @property --tw-content {
1397
+ syntax: "*";
1398
+ initial-value: "";
1399
+ inherits: false;
1400
+ }
1401
+ @layer properties {
1402
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
1403
+ *, ::before, ::after, ::backdrop {
1404
+ --tw-translate-x: 0;
1405
+ --tw-translate-y: 0;
1406
+ --tw-translate-z: 0;
1407
+ --tw-rotate-x: initial;
1408
+ --tw-rotate-y: initial;
1409
+ --tw-rotate-z: initial;
1410
+ --tw-skew-x: initial;
1411
+ --tw-skew-y: initial;
1412
+ --tw-space-y-reverse: 0;
1413
+ --tw-border-style: solid;
1414
+ --tw-font-weight: initial;
1415
+ --tw-shadow: 0 0 #0000;
1416
+ --tw-shadow-color: initial;
1417
+ --tw-shadow-alpha: 100%;
1418
+ --tw-inset-shadow: 0 0 #0000;
1419
+ --tw-inset-shadow-color: initial;
1420
+ --tw-inset-shadow-alpha: 100%;
1421
+ --tw-ring-color: initial;
1422
+ --tw-ring-shadow: 0 0 #0000;
1423
+ --tw-inset-ring-color: initial;
1424
+ --tw-inset-ring-shadow: 0 0 #0000;
1425
+ --tw-ring-inset: initial;
1426
+ --tw-ring-offset-width: 0px;
1427
+ --tw-ring-offset-color: #fff;
1428
+ --tw-ring-offset-shadow: 0 0 #0000;
1429
+ --tw-duration: initial;
1430
+ --tw-content: "";
1431
+ }
1432
+ }
1433
+ }