lino-react 26.3.2__tar.gz → 26.4.0__tar.gz

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 (557) hide show
  1. {lino_react-26.3.2 → lino_react-26.4.0}/PKG-INFO +1 -1
  2. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/__init__.py +1 -1
  3. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/__init__.py +22 -0
  4. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/ActionHandler.tsx +57 -16
  5. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/App.jsx +70 -5
  6. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppTopbar.jsx +8 -0
  7. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AutoComplete.tsx +37 -11
  8. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/ForeignKeyElement.jsx +3 -3
  9. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoBbar.jsx +58 -15
  10. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoBody.jsx +1 -1
  11. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoComponentUtils.jsx +17 -13
  12. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoComponents.jsx +18 -13
  13. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoDialog.jsx +15 -4
  14. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoToolbar.jsx +2 -2
  15. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/SiteContext.jsx +7 -0
  16. lino_react-26.4.0/lino_react/react/components/__tests__/avanti/URLContext.ts +62 -0
  17. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/constants.js +5 -2
  18. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/datetime.jsx +1 -1
  19. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/i18n.js +2 -1
  20. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/index.html +18 -7
  21. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/layout.css +4 -3
  22. lino_react-26.4.0/lino_react/react/components/quillmodules.css +153 -0
  23. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/quillmodules.tsx +6 -1
  24. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/types.ts +5 -0
  25. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/config/react/main.html +20 -9
  26. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/config/react/service-worker.js +1 -1
  27. lino_react-26.4.0/lino_react/react/models.py +155 -0
  28. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/renderer.py +3 -2
  29. lino_react-26.3.2/lino_react/react/static/react/main.2756.ac341526fda619d30fab.js → lino_react-26.4.0/lino_react/react/static/react/main.2756.95864ac83fc15d6b0b82.js +2 -2
  30. lino_react-26.4.0/lino_react/react/static/react/main.2756.95864ac83fc15d6b0b82.js.map +1 -0
  31. lino_react-26.4.0/lino_react/react/static/react/main.AppCSS.209c81af3f29c5749cd3.js +2 -0
  32. lino_react-26.4.0/lino_react/react/static/react/main.AppCSS.209c81af3f29c5749cd3.js.map +1 -0
  33. lino_react-26.4.0/lino_react/react/static/react/main.AutoComplete_LinoToolbar.cf19b579eb6fb6f0a2e8.js +2 -0
  34. lino_react-26.4.0/lino_react/react/static/react/main.AutoComplete_LinoToolbar.cf19b579eb6fb6f0a2e8.js.map +1 -0
  35. lino_react-26.4.0/lino_react/react/static/react/main.LinoBbar_LinoDialog.341f3c3680557dd32bee.js +2 -0
  36. lino_react-26.4.0/lino_react/react/static/react/main.LinoBbar_LinoDialog.341f3c3680557dd32bee.js.map +1 -0
  37. lino_react-26.3.2/lino_react/react/static/react/main.LinoBody_SiteContext.5ef9a415b591579569c3.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoBody_SiteContext.83c91b2a4d4a57bea322.js +2 -2
  38. lino_react-26.3.2/lino_react/react/static/react/main.LinoBody_SiteContext.5ef9a415b591579569c3.js.map → lino_react-26.4.0/lino_react/react/static/react/main.LinoBody_SiteContext.83c91b2a4d4a57bea322.js.map +1 -1
  39. lino_react-26.4.0/lino_react/react/static/react/main.LinoComponents_LinoDetail.31eca1b4571b5a3a98ed.js +2 -0
  40. lino_react-26.4.0/lino_react/react/static/react/main.LinoComponents_LinoDetail.31eca1b4571b5a3a98ed.js.map +1 -0
  41. lino_react-26.3.2/lino_react/react/static/react/main.LinoEditor_LinoBody.eb8ebc2f38ecb8e57e8a.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoEditor_LinoBody.bcd4e88f267d0f4ae445.js +1 -1
  42. lino_react-26.3.2/lino_react/react/static/react/main.LinoEditor_LinoBody.eb8ebc2f38ecb8e57e8a.js.map → lino_react-26.4.0/lino_react/react/static/react/main.LinoEditor_LinoBody.bcd4e88f267d0f4ae445.js.map +1 -1
  43. lino_react-26.3.2/lino_react/react/static/react/main.LinoParamsPanel_LinoComponents.6282c7a17d32eb4e8b8f.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoParamsPanel_LinoComponents.f9631ddb0e35aecfd8b8.js +1 -1
  44. lino_react-26.3.2/lino_react/react/static/react/main.LinoParamsPanel_LinoComponents.6282c7a17d32eb4e8b8f.js.map → lino_react-26.4.0/lino_react/react/static/react/main.LinoParamsPanel_LinoComponents.f9631ddb0e35aecfd8b8.js.map +1 -1
  45. lino_react-26.3.2/lino_react/react/static/react/main.LinoToolbar_LinoComponents.c84605f4db68f0c928d0.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoToolbar_LinoComponents.9a020485b6f33704398a.js +2 -2
  46. lino_react-26.3.2/lino_react/react/static/react/main.LinoToolbar_LinoComponents.c84605f4db68f0c928d0.js.map → lino_react-26.4.0/lino_react/react/static/react/main.LinoToolbar_LinoComponents.9a020485b6f33704398a.js.map +1 -1
  47. lino_react-26.3.2/lino_react/react/static/react/main.LinoUtils_LinoBody.63f80b38a06d8ba0df07.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoUtils_LinoBody.aa92f16371fb6681d5c0.js +1 -1
  48. lino_react-26.4.0/lino_react/react/static/react/main.LinoUtils_LinoBody.aa92f16371fb6681d5c0.js.map +1 -0
  49. lino_react-26.3.2/lino_react/react/static/react/main.LinoWebCam_LinoDialog.141ef346d406c1521c8f.js → lino_react-26.4.0/lino_react/react/static/react/main.LinoWebCam_LinoDialog.777987627117c4e3e0e0.js +1 -1
  50. lino_react-26.4.0/lino_react/react/static/react/main.LinoWebCam_LinoDialog.777987627117c4e3e0e0.js.map +1 -0
  51. lino_react-26.4.0/lino_react/react/static/react/main.NavigationControl_SiteContext.126851c361b7be85940d.js +2 -0
  52. lino_react-26.4.0/lino_react/react/static/react/main.NavigationControl_SiteContext.126851c361b7be85940d.js.map +1 -0
  53. lino_react-26.4.0/lino_react/react/static/react/main.SiteContext_LinoComponentUtils.42a677b4e0f7b41ac5ae.js +2 -0
  54. lino_react-26.4.0/lino_react/react/static/react/main.SiteContext_LinoComponentUtils.42a677b4e0f7b41ac5ae.js.map +1 -0
  55. lino_react-26.3.2/lino_react/react/static/react/main.ToolbarComponents_LinoComponents.7a6ec49f486def4667b7.js → lino_react-26.4.0/lino_react/react/static/react/main.ToolbarComponents_LinoComponents.0ff4f9f8bb7fb3bb3813.js +1 -1
  56. lino_react-26.3.2/lino_react/react/static/react/main.ToolbarComponents_LinoComponents.7a6ec49f486def4667b7.js.map → lino_react-26.4.0/lino_react/react/static/react/main.ToolbarComponents_LinoComponents.0ff4f9f8bb7fb3bb3813.js.map +1 -1
  57. lino_react-26.4.0/lino_react/react/static/react/main.datetime_GridElement.1ae8fc1312991999ff08.js +2 -0
  58. lino_react-26.4.0/lino_react/react/static/react/main.datetime_GridElement.1ae8fc1312991999ff08.js.map +1 -0
  59. lino_react-26.4.0/lino_react/react/static/react/main.e5da7bca814d0bb84b31.js +3 -0
  60. lino_react-26.4.0/lino_react/react/static/react/main.e5da7bca814d0bb84b31.js.map +1 -0
  61. lino_react-26.3.2/lino_react/react/static/react/main.i18n_App.c4f6545878f1c9bd5f92.js → lino_react-26.4.0/lino_react/react/static/react/main.i18n_App.607a11e5e3662859edbc.js +1 -1
  62. lino_react-26.4.0/lino_react/react/static/react/main.i18n_App.607a11e5e3662859edbc.js.map +1 -0
  63. lino_react-26.3.2/lino_react/react/static/react/main.quillmodules_LinoEditor.6bfc6668546f881c09b2.js → lino_react-26.4.0/lino_react/react/static/react/main.quillmodules_LinoEditor.62ef9569bc06f7424a66.js +1 -1
  64. lino_react-26.4.0/lino_react/react/static/react/main.quillmodules_LinoEditor.62ef9569bc06f7424a66.js.map +1 -0
  65. lino_react-26.4.0/lino_react/react/static/react/main.quillmodules_TextFieldElement.5ebda0c2d0d50121b791.js +2 -0
  66. lino_react-26.4.0/lino_react/react/static/react/main.quillmodules_TextFieldElement.5ebda0c2d0d50121b791.js.map +1 -0
  67. lino_react-26.3.2/lino_react/react/static/react/main.runtime.43dfb5791038594a762e.js → lino_react-26.4.0/lino_react/react/static/react/main.runtime.b6ba791b476c3be77755.js +2 -2
  68. lino_react-26.3.2/lino_react/react/static/react/main.runtime.43dfb5791038594a762e.js.map → lino_react-26.4.0/lino_react/react/static/react/main.runtime.b6ba791b476c3be77755.js.map +1 -1
  69. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/views.py +60 -5
  70. {lino_react-26.3.2 → lino_react-26.4.0}/puppeteers/avanti/settings.py +4 -0
  71. {lino_react-26.3.2 → lino_react-26.4.0}/tasks.py +1 -0
  72. lino_react-26.3.2/lino_react/react/components/__tests__/avanti/URLContext.ts +0 -82
  73. lino_react-26.3.2/lino_react/react/components/quillmodules.css +0 -95
  74. lino_react-26.3.2/lino_react/react/models.py +0 -70
  75. lino_react-26.3.2/lino_react/react/static/react/main.2756.ac341526fda619d30fab.js.map +0 -1
  76. lino_react-26.3.2/lino_react/react/static/react/main.85d745cb8e3559738e9c.js +0 -3
  77. lino_react-26.3.2/lino_react/react/static/react/main.85d745cb8e3559738e9c.js.map +0 -1
  78. lino_react-26.3.2/lino_react/react/static/react/main.AppCSS.1dcd3e49b277f41bd22d.js +0 -2
  79. lino_react-26.3.2/lino_react/react/static/react/main.AppCSS.1dcd3e49b277f41bd22d.js.map +0 -1
  80. lino_react-26.3.2/lino_react/react/static/react/main.AutoComplete_LinoToolbar.39c08b20ca753dae1388.js +0 -2
  81. lino_react-26.3.2/lino_react/react/static/react/main.AutoComplete_LinoToolbar.39c08b20ca753dae1388.js.map +0 -1
  82. lino_react-26.3.2/lino_react/react/static/react/main.LinoBbar_LinoDialog.c7d7c08219a11f8090d9.js +0 -2
  83. lino_react-26.3.2/lino_react/react/static/react/main.LinoBbar_LinoDialog.c7d7c08219a11f8090d9.js.map +0 -1
  84. lino_react-26.3.2/lino_react/react/static/react/main.LinoComponents_LinoDetail.b3d4ebe97f22b7c19021.js +0 -2
  85. lino_react-26.3.2/lino_react/react/static/react/main.LinoComponents_LinoDetail.b3d4ebe97f22b7c19021.js.map +0 -1
  86. lino_react-26.3.2/lino_react/react/static/react/main.LinoUtils_LinoBody.63f80b38a06d8ba0df07.js.map +0 -1
  87. lino_react-26.3.2/lino_react/react/static/react/main.LinoWebCam_LinoDialog.141ef346d406c1521c8f.js.map +0 -1
  88. lino_react-26.3.2/lino_react/react/static/react/main.NavigationControl_SiteContext.699203dad6e0509850a7.js +0 -2
  89. lino_react-26.3.2/lino_react/react/static/react/main.NavigationControl_SiteContext.699203dad6e0509850a7.js.map +0 -1
  90. lino_react-26.3.2/lino_react/react/static/react/main.SiteContext_LinoComponentUtils.47f68bc73c57c0031171.js +0 -2
  91. lino_react-26.3.2/lino_react/react/static/react/main.SiteContext_LinoComponentUtils.47f68bc73c57c0031171.js.map +0 -1
  92. lino_react-26.3.2/lino_react/react/static/react/main.datetime_GridElement.66b3045f36e80713789b.js +0 -2
  93. lino_react-26.3.2/lino_react/react/static/react/main.datetime_GridElement.66b3045f36e80713789b.js.map +0 -1
  94. lino_react-26.3.2/lino_react/react/static/react/main.i18n_App.c4f6545878f1c9bd5f92.js.map +0 -1
  95. lino_react-26.3.2/lino_react/react/static/react/main.quillmodules_LinoEditor.6bfc6668546f881c09b2.js.map +0 -1
  96. lino_react-26.3.2/lino_react/react/static/react/main.quillmodules_TextFieldElement.f4a342ee516e0abc8284.js +0 -2
  97. lino_react-26.3.2/lino_react/react/static/react/main.quillmodules_TextFieldElement.f4a342ee516e0abc8284.js.map +0 -1
  98. {lino_react-26.3.2 → lino_react-26.4.0}/.coveragerc +0 -0
  99. {lino_react-26.3.2 → lino_react-26.4.0}/.gitignore +0 -0
  100. {lino_react-26.3.2 → lino_react-26.4.0}/.gitlab-ci.yml +0 -0
  101. {lino_react-26.3.2 → lino_react-26.4.0}/.travis.yml +0 -0
  102. {lino_react-26.3.2 → lino_react-26.4.0}/CHANGELOG.rst +0 -0
  103. {lino_react-26.3.2 → lino_react-26.4.0}/CONTRIBUTING.rst +0 -0
  104. {lino_react-26.3.2 → lino_react-26.4.0}/COPYING +0 -0
  105. {lino_react-26.3.2 → lino_react-26.4.0}/CSSStub.mjs +0 -0
  106. {lino_react-26.3.2 → lino_react-26.4.0}/MANIFEST.in +0 -0
  107. {lino_react-26.3.2 → lino_react-26.4.0}/README.rst +0 -0
  108. {lino_react-26.3.2 → lino_react-26.4.0}/RTL_NETWORK_TESTING.md +0 -0
  109. {lino_react-26.3.2 → lino_react-26.4.0}/babel.config.mjs +0 -0
  110. {lino_react-26.3.2 → lino_react-26.4.0}/build.sh +0 -0
  111. {lino_react-26.3.2 → lino_react-26.4.0}/cypress.json +0 -0
  112. {lino_react-26.3.2 → lino_react-26.4.0}/dev-app-update.yml +0 -0
  113. {lino_react-26.3.2 → lino_react-26.4.0}/docs/.templates/layout.html +0 -0
  114. {lino_react-26.3.2 → lino_react-26.4.0}/docs/.templates/links.html +0 -0
  115. {lino_react-26.3.2 → lino_react-26.4.0}/docs/.templates/page.html +0 -0
  116. {lino_react-26.3.2 → lino_react-26.4.0}/docs/about/index.rst +0 -0
  117. {lino_react-26.3.2 → lino_react-26.4.0}/docs/about/noi-robin-extjs.png +0 -0
  118. {lino_react-26.3.2 → lino_react-26.4.0}/docs/about/noi-robin-react.png +0 -0
  119. {lino_react-26.3.2 → lino_react-26.4.0}/docs/changes/0.0.0.rst +0 -0
  120. {lino_react-26.3.2 → lino_react-26.4.0}/docs/changes/0.1.0.rst +0 -0
  121. {lino_react-26.3.2 → lino_react-26.4.0}/docs/changes/2020.rst +0 -0
  122. {lino_react-26.3.2 → lino_react-26.4.0}/docs/changes/index.rst +0 -0
  123. {lino_react-26.3.2 → lino_react-26.4.0}/docs/conf.py +0 -0
  124. {lino_react-26.3.2 → lino_react-26.4.0}/docs/dev/App.rst +0 -0
  125. {lino_react-26.3.2 → lino_react-26.4.0}/docs/dev/Base.rst +0 -0
  126. {lino_react-26.3.2 → lino_react-26.4.0}/docs/dev/NavigationControl.rst +0 -0
  127. {lino_react-26.3.2 → lino_react-26.4.0}/docs/dev/index.rst +0 -0
  128. {lino_react-26.3.2 → lino_react-26.4.0}/docs/dev/py.rst +0 -0
  129. {lino_react-26.3.2 → lino_react-26.4.0}/docs/guide/build.rst +0 -0
  130. {lino_react-26.3.2 → lino_react-26.4.0}/docs/guide/i18n.rst +0 -0
  131. {lino_react-26.3.2 → lino_react-26.4.0}/docs/guide/index.rst +0 -0
  132. {lino_react-26.3.2 → lino_react-26.4.0}/docs/guide/npm.rst +0 -0
  133. {lino_react-26.3.2 → lino_react-26.4.0}/docs/guide/test.rst +0 -0
  134. {lino_react-26.3.2 → lino_react-26.4.0}/docs/index.rst +0 -0
  135. {lino_react-26.3.2 → lino_react-26.4.0}/docs/typedoc.conf.json +0 -0
  136. {lino_react-26.3.2 → lino_react-26.4.0}/electron/main.js +0 -0
  137. {lino_react-26.3.2 → lino_react-26.4.0}/electron/preload.js +0 -0
  138. {lino_react-26.3.2 → lino_react-26.4.0}/electron/updateProvider.js +0 -0
  139. {lino_react-26.3.2 → lino_react-26.4.0}/electron-builder.yml +0 -0
  140. {lino_react-26.3.2 → lino_react-26.4.0}/electronConfig/app-update.yml +0 -0
  141. {lino_react-26.3.2 → lino_react-26.4.0}/electronConfig/default-config.json +0 -0
  142. {lino_react-26.3.2 → lino_react-26.4.0}/electronConfig/desktop.template +0 -0
  143. {lino_react-26.3.2 → lino_react-26.4.0}/electronConfig/lino-react.ico +0 -0
  144. {lino_react-26.3.2 → lino_react-26.4.0}/eslint.config.mts +0 -0
  145. {lino_react-26.3.2 → lino_react-26.4.0}/forge.config.mjs +0 -0
  146. {lino_react-26.3.2 → lino_react-26.4.0}/jest-puppeteer.config.mjs +0 -0
  147. {lino_react-26.3.2 → lino_react-26.4.0}/jest.config.ts +0 -0
  148. {lino_react-26.3.2 → lino_react-26.4.0}/jest_puppeteer_test.sh +0 -0
  149. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/App.css +0 -0
  150. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppCSS.js +0 -0
  151. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppInlineProfile.jsx +0 -0
  152. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppMenu.css +0 -0
  153. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppMenu.jsx +0 -0
  154. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/AppTopBar.css +0 -0
  155. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/Base.ts +0 -0
  156. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/DashboardItems.jsx +0 -0
  157. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/DataProvider.jsx +0 -0
  158. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/GridElement.css +0 -0
  159. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/GridElement.jsx +0 -0
  160. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoBbar.css +0 -0
  161. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoBody.css +0 -0
  162. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/ConversationList.css +0 -0
  163. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/ConversationListItem.css +0 -0
  164. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/Conversations.css +0 -0
  165. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/GroupChatChooser.js +0 -0
  166. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/LinoChats.js +0 -0
  167. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/LinoChatter.js +0 -0
  168. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoChatter/Messenger.css +0 -0
  169. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoComponents.css +0 -0
  170. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoDataView.css +0 -0
  171. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoDataView.jsx +0 -0
  172. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoDetail.jsx +0 -0
  173. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoEditor.jsx +0 -0
  174. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoPaginator.jsx +0 -0
  175. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoParamsPanel.jsx +0 -0
  176. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoToolbar.css +0 -0
  177. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoUtils.js +0 -0
  178. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LinoWebCam.tsx +0 -0
  179. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/LoadingMask.jsx +0 -0
  180. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/NavigationControl.js +0 -0
  181. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/TextFieldElement.css +0 -0
  182. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/TextFieldElement.jsx +0 -0
  183. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/ToolbarComponents.tsx +0 -0
  184. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/README.rst +0 -0
  185. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/URLContext.ts +0 -0
  186. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/actionHandler.tsx +0 -0
  187. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/appLinkTopbar.tsx +0 -0
  188. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/cloneUI.ts +0 -0
  189. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/functional.tsx +0 -0
  190. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/integrity.ts +0 -0
  191. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/paramChanges.ts +0 -0
  192. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/__tests__/noi/quill.tsx +0 -0
  193. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/custom-service-worker.js +0 -0
  194. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/custom_hooks.js +0 -0
  195. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/layout.scss +0 -0
  196. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_calander.scss +0 -0
  197. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_dashboard.scss +0 -0
  198. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_editor.scss +0 -0
  199. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_layout.scss +0 -0
  200. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_main.scss +0 -0
  201. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_mixins.scss +0 -0
  202. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_splash.scss +0 -0
  203. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/layout/sass/_utils.scss +0 -0
  204. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/preprocessors.tsx +0 -0
  205. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/components/serviceWorker.js +0 -0
  206. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/config/react/linoweb.json +0 -0
  207. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/config/react/service-worker.js.LICENSE.txt +0 -0
  208. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/config/react/service-worker.js.map +0 -0
  209. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/icons.py +0 -0
  210. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/index.js +0 -0
  211. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/bn/LC_MESSAGES/django.mo +0 -0
  212. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/bn/LC_MESSAGES/django.po +0 -0
  213. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/de/LC_MESSAGES/django.mo +0 -0
  214. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/de/LC_MESSAGES/django.po +0 -0
  215. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/django.pot +0 -0
  216. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/et/LC_MESSAGES/django.po +0 -0
  217. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/locale/fr/LC_MESSAGES/django.po +0 -0
  218. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/sphinxconf.py +0 -0
  219. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/024b32cc7bf399b1a847.woff2 +0 -0
  220. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/8931fda1930c3bd21e96.woff +0 -0
  221. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/a5c2a53d1ff7a9ff5933.ttf +0 -0
  222. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/af84cba1cef5b79f2489.svg +0 -0
  223. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/ff0c4cd79b2ffca2de54.eot +0 -0
  224. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/locales/bn/translation.json +0 -0
  225. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/locales/de/translation.json +0 -0
  226. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/locales/en/translation.json +0 -0
  227. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/locales/et/translation.json +0 -0
  228. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/locales/fr/translation.json +0 -0
  229. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2395.8bbe23169fe06fd54eac.js +0 -0
  230. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2395.8bbe23169fe06fd54eac.js.map +0 -0
  231. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2544.dbb45af480b8f8906159.js +0 -0
  232. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2544.dbb45af480b8f8906159.js.map +0 -0
  233. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2555.f25b73feb4f6c334d0e7.js +0 -0
  234. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2555.f25b73feb4f6c334d0e7.js.LICENSE.txt +0 -0
  235. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2555.f25b73feb4f6c334d0e7.js.map +0 -0
  236. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2663.2f15a73349351ccef6be.js +0 -0
  237. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2663.2f15a73349351ccef6be.js.LICENSE.txt +0 -0
  238. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.2663.2f15a73349351ccef6be.js.map +0 -0
  239. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.6799.8109de3c00c8e40536a2.js +0 -0
  240. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.6799.8109de3c00c8e40536a2.js.map +0 -0
  241. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.6836.369bdfc75b736d74d1a0.js +0 -0
  242. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.6836.369bdfc75b736d74d1a0.js.map +0 -0
  243. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.7135.58c18e294262eb3b7f7f.js +0 -0
  244. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.7135.58c18e294262eb3b7f7f.js.map +0 -0
  245. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.7335.40d527c910a959e0b3dd.js +0 -0
  246. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.7335.40d527c910a959e0b3dd.js.LICENSE.txt +0 -0
  247. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.7335.40d527c910a959e0b3dd.js.map +0 -0
  248. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.8605.899b7207aac937369ad1.js +0 -0
  249. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.8605.899b7207aac937369ad1.js.map +0 -0
  250. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.9685.3752a6b84a3e5c918d21.js +0 -0
  251. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.9685.3752a6b84a3e5c918d21.js.map +0 -0
  252. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.9897.a0640325f2389539ef52.js +0 -0
  253. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.9897.a0640325f2389539ef52.js.map +0 -0
  254. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.DashboardItems_SiteContext.db6580226a3454b431fe.js +0 -0
  255. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.DashboardItems_SiteContext.db6580226a3454b431fe.js.map +0 -0
  256. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.NavigationControl_App.51459f304c35cf900b71.js +0 -0
  257. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.NavigationControl_App.51459f304c35cf900b71.js.map +0 -0
  258. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.SiteContext_App.356a9759fa5b7969990e.js +0 -0
  259. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.SiteContext_App.356a9759fa5b7969990e.js.map +0 -0
  260. /lino_react-26.3.2/lino_react/react/static/react/main.85d745cb8e3559738e9c.js.LICENSE.txt → /lino_react-26.4.0/lino_react/react/static/react/main.e5da7bca814d0bb84b31.js.LICENSE.txt +0 -0
  261. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.lodash_LinoBbar.cb0d57bd9fd5e9eb6325.js +0 -0
  262. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.lodash_LinoBbar.cb0d57bd9fd5e9eb6325.js.LICENSE.txt +0 -0
  263. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.lodash_LinoBbar.cb0d57bd9fd5e9eb6325.js.map +0 -0
  264. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prAPI_App.c91a0b7ea7c3556e7727.js +0 -0
  265. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prAPI_App.c91a0b7ea7c3556e7727.js.map +0 -0
  266. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prAppRequire.d3e88b254e602ecd4c7c.js +0 -0
  267. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prAppRequire.d3e88b254e602ecd4c7c.js.map +0 -0
  268. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prButton_App.58643901f6b8782c8ea0.js +0 -0
  269. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prButton_App.58643901f6b8782c8ea0.js.map +0 -0
  270. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCalendar_datetime.9a67044348d1478ff756.js +0 -0
  271. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCalendar_datetime.9a67044348d1478ff756.js.map +0 -0
  272. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCard_LinoDataView.062d50f6d446ecaf225c.js +0 -0
  273. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCard_LinoDataView.062d50f6d446ecaf225c.js.map +0 -0
  274. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCheckbox_LinoComponents.3cf3bb05491b2a1f055e.js +0 -0
  275. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prCheckbox_LinoComponents.3cf3bb05491b2a1f055e.js.map +0 -0
  276. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDataTable_GridElement.12a3b34c102d1a065fee.js +0 -0
  277. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDataTable_GridElement.12a3b34c102d1a065fee.js.map +0 -0
  278. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDataView_LinoDataView.b612103f3f6ae55153cc.js +0 -0
  279. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDataView_LinoDataView.b612103f3f6ae55153cc.js.map +0 -0
  280. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDialog_LinoDialog.7b2f925af4058c66db3a.js +0 -0
  281. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDialog_LinoDialog.7b2f925af4058c66db3a.js.map +0 -0
  282. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDropDown_LinoPaginator.9caee7a457a7327de568.js +0 -0
  283. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prDropDown_LinoPaginator.9caee7a457a7327de568.js.map +0 -0
  284. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFieldset_LinoComponents.e534eb3254fef30d6b5f.js +0 -0
  285. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFieldset_LinoComponents.e534eb3254fef30d6b5f.js.map +0 -0
  286. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFileUpload_LinoComponents.6a914a23cd2183ceb71f.js +0 -0
  287. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFileUpload_LinoComponents.6a914a23cd2183ceb71f.js.map +0 -0
  288. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFlex_AppCSS.d6b883c3c89a35c0fd27.js +0 -0
  289. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prFlex_AppCSS.d6b883c3c89a35c0fd27.js.map +0 -0
  290. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prGalleria_LinoDataView.11763f8d831c13466d39.js +0 -0
  291. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prGalleria_LinoDataView.11763f8d831c13466d39.js.map +0 -0
  292. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputNumber_GridElement.94a8efec3b8d882fe237.js +0 -0
  293. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputNumber_GridElement.94a8efec3b8d882fe237.js.map +0 -0
  294. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputNumber_LinoComponents.67a7e12f671b1a72fd78.js +0 -0
  295. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputNumber_LinoComponents.67a7e12f671b1a72fd78.js.map +0 -0
  296. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputText_GridElement.9ee3334ed7e13e749315.js +0 -0
  297. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prInputText_GridElement.9ee3334ed7e13e749315.js.map +0 -0
  298. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoBodyRequire.834ca59b77c1f280ee08.js +0 -0
  299. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoBodyRequire.834ca59b77c1f280ee08.js.map +0 -0
  300. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoBodyRequireChunk2.b2d4c41d137bdd79d198.js +0 -0
  301. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoBodyRequireChunk2.b2d4c41d137bdd79d198.js.map +0 -0
  302. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoComponentsRequire.3adbea76bc194d66bbfc.js +0 -0
  303. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLinoComponentsRequire.3adbea76bc194d66bbfc.js.map +0 -0
  304. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLocale.743097c3cd8d752132df.js +0 -0
  305. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prLocale.743097c3cd8d752132df.js.map +0 -0
  306. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prMultiSelect_GridElement.e8b5de43c8f3b4ebfafd.js +0 -0
  307. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prMultiSelect_GridElement.e8b5de43c8f3b4ebfafd.js.map +0 -0
  308. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prOverlayPanel_GridElement.9682fe0a7c41b0a67982.js +0 -0
  309. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prOverlayPanel_GridElement.9682fe0a7c41b0a67982.js.map +0 -0
  310. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPaginator_LinoPaginator.c58fd9e6a557afdaa7f8.js +0 -0
  311. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPaginator_LinoPaginator.c58fd9e6a557afdaa7f8.js.map +0 -0
  312. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPanel_LinoComponents.65972c1f2658fa696a28.js +0 -0
  313. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPanel_LinoComponents.65972c1f2658fa696a28.js.map +0 -0
  314. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPassword_LinoComponents.120c4d554f753b1b3e02.js +0 -0
  315. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prPassword_LinoComponents.120c4d554f753b1b3e02.js.map +0 -0
  316. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSelectButton_GridElement.c9c6ba1894ee20a2cbbb.js +0 -0
  317. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSelectButton_GridElement.c9c6ba1894ee20a2cbbb.js.map +0 -0
  318. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSiteContextRequire.70ad32740c927773f008.js +0 -0
  319. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSiteContextRequire.70ad32740c927773f008.js.map +0 -0
  320. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSplitButton_LinoBbar.b7158c632c761c1f4c90.js +0 -0
  321. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prSplitButton_LinoBbar.b7158c632c761c1f4c90.js.map +0 -0
  322. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prTabView_LinoComponents.8ce34a9bc219db71ffa9.js +0 -0
  323. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prTabView_LinoComponents.8ce34a9bc219db71ffa9.js.map +0 -0
  324. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prToast_App.dbfcf317d9ca2356d263.js +0 -0
  325. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prToast_App.dbfcf317d9ca2356d263.js.map +0 -0
  326. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prToggleButton_LinoToolbar.ed7eb9ef47cbf7f7bbb4.js +0 -0
  327. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prToggleButton_LinoToolbar.ed7eb9ef47cbf7f7bbb4.js.map +0 -0
  328. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prTriStateCheckbox_GridElement.7f634321ef8c82456bc8.js +0 -0
  329. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.prTriStateCheckbox_GridElement.7f634321ef8c82456bc8.js.map +0 -0
  330. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.queryString_App.87f6da241a1a79bec441.js +0 -0
  331. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.queryString_App.87f6da241a1a79bec441.js.map +0 -0
  332. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.quill.78b1a88b0266b35d88ab.js +0 -0
  333. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.quill.78b1a88b0266b35d88ab.js.map +0 -0
  334. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactDom_App.f1cf5a6a5029f1b22e52.js +0 -0
  335. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactDom_App.f1cf5a6a5029f1b22e52.js.map +0 -0
  336. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactI18n_SiteContext.703426bc6f2f806774c3.js +0 -0
  337. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactI18n_SiteContext.703426bc6f2f806774c3.js.map +0 -0
  338. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactRouterDom_App.ad13fa8ccaa4f6ca170e.js +0 -0
  339. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactRouterDom_App.ad13fa8ccaa4f6ca170e.js.LICENSE.txt +0 -0
  340. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.reactRouterDom_App.ad13fa8ccaa4f6ca170e.js.map +0 -0
  341. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.tpdep.d31fb3466cb158504e82.js +0 -0
  342. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.tpdep.d31fb3466cb158504e82.js.LICENSE.txt +0 -0
  343. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/main.tpdep.d31fb3466cb158504e82.js.map +0 -0
  344. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/arya-blue/theme.css +0 -0
  345. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/arya-green/theme.css +0 -0
  346. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/arya-orange/theme.css +0 -0
  347. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/arya-purple/theme.css +0 -0
  348. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/bootstrap4-dark-blue/theme.css +0 -0
  349. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/bootstrap4-dark-purple/theme.css +0 -0
  350. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/bootstrap4-light-blue/theme.css +0 -0
  351. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/bootstrap4-light-purple/theme.css +0 -0
  352. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/fluent-light/theme.css +0 -0
  353. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-amber/fonts/InterVariable-Italic.woff2 +0 -0
  354. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-amber/fonts/InterVariable.woff2 +0 -0
  355. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-amber/theme.css +0 -0
  356. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-blue/fonts/InterVariable-Italic.woff2 +0 -0
  357. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-blue/fonts/InterVariable.woff2 +0 -0
  358. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-blue/theme.css +0 -0
  359. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-cyan/fonts/InterVariable-Italic.woff2 +0 -0
  360. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-cyan/fonts/InterVariable.woff2 +0 -0
  361. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-cyan/theme.css +0 -0
  362. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-green/fonts/InterVariable-Italic.woff2 +0 -0
  363. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-green/fonts/InterVariable.woff2 +0 -0
  364. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-green/theme.css +0 -0
  365. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-indigo/fonts/InterVariable-Italic.woff2 +0 -0
  366. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-indigo/fonts/InterVariable.woff2 +0 -0
  367. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-indigo/theme.css +0 -0
  368. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-pink/fonts/InterVariable-Italic.woff2 +0 -0
  369. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-pink/fonts/InterVariable.woff2 +0 -0
  370. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-pink/theme.css +0 -0
  371. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-purple/fonts/InterVariable-Italic.woff2 +0 -0
  372. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-purple/fonts/InterVariable.woff2 +0 -0
  373. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-purple/theme.css +0 -0
  374. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-teal/fonts/InterVariable-Italic.woff2 +0 -0
  375. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-teal/fonts/InterVariable.woff2 +0 -0
  376. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-dark-teal/theme.css +0 -0
  377. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-amber/fonts/InterVariable-Italic.woff2 +0 -0
  378. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-amber/fonts/InterVariable.woff2 +0 -0
  379. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-amber/theme.css +0 -0
  380. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-blue/fonts/InterVariable-Italic.woff2 +0 -0
  381. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-blue/fonts/InterVariable.woff2 +0 -0
  382. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-blue/theme.css +0 -0
  383. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-cyan/fonts/InterVariable-Italic.woff2 +0 -0
  384. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-cyan/fonts/InterVariable.woff2 +0 -0
  385. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-cyan/theme.css +0 -0
  386. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-green/fonts/InterVariable-Italic.woff2 +0 -0
  387. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-green/fonts/InterVariable.woff2 +0 -0
  388. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-green/theme.css +0 -0
  389. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-indigo/fonts/InterVariable-Italic.woff2 +0 -0
  390. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-indigo/fonts/InterVariable.woff2 +0 -0
  391. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-indigo/theme.css +0 -0
  392. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-pink/fonts/InterVariable-Italic.woff2 +0 -0
  393. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-pink/fonts/InterVariable.woff2 +0 -0
  394. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-pink/theme.css +0 -0
  395. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-purple/fonts/InterVariable-Italic.woff2 +0 -0
  396. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-purple/fonts/InterVariable.woff2 +0 -0
  397. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-purple/theme.css +0 -0
  398. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-teal/fonts/InterVariable-Italic.woff2 +0 -0
  399. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-teal/fonts/InterVariable.woff2 +0 -0
  400. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/lara-light-teal/theme.css +0 -0
  401. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/luna-amber/theme.css +0 -0
  402. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/luna-blue/theme.css +0 -0
  403. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/luna-green/theme.css +0 -0
  404. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/luna-pink/theme.css +0 -0
  405. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  406. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  407. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  408. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  409. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  410. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  411. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-deeppurple/theme.css +0 -0
  412. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  413. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  414. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  415. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  416. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  417. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  418. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-dark-indigo/theme.css +0 -0
  419. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  420. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  421. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  422. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  423. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  424. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  425. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-deeppurple/theme.css +0 -0
  426. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  427. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  428. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  429. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  430. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  431. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  432. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/md-light-indigo/theme.css +0 -0
  433. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  434. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  435. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  436. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  437. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  438. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  439. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-deeppurple/theme.css +0 -0
  440. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  441. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  442. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  443. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  444. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  445. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  446. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-dark-indigo/theme.css +0 -0
  447. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  448. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  449. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  450. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  451. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  452. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  453. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-deeppurple/theme.css +0 -0
  454. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  455. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  456. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  457. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  458. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  459. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  460. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mdc-light-indigo/theme.css +0 -0
  461. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Bold.woff +0 -0
  462. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Bold.woff2 +0 -0
  463. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Medium.woff +0 -0
  464. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Medium.woff2 +0 -0
  465. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Regular.woff +0 -0
  466. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-Regular.woff2 +0 -0
  467. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-SemiBold.woff +0 -0
  468. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/fonts/Inter-SemiBold.woff2 +0 -0
  469. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/mira/theme.css +0 -0
  470. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/nano/theme.css +0 -0
  471. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/nova/theme.css +0 -0
  472. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/nova-accent/theme.css +0 -0
  473. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/nova-alt/theme.css +0 -0
  474. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/rhea/theme.css +0 -0
  475. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/saga-blue/theme.css +0 -0
  476. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/saga-green/theme.css +0 -0
  477. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/saga-orange/theme.css +0 -0
  478. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/saga-purple/theme.css +0 -0
  479. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  480. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  481. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  482. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  483. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  484. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  485. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-dark/theme.css +0 -0
  486. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  487. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  488. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  489. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  490. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  491. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  492. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/soho-light/theme.css +0 -0
  493. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Bold.woff +0 -0
  494. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Bold.woff2 +0 -0
  495. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Light.woff +0 -0
  496. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Light.woff2 +0 -0
  497. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Medium.woff +0 -0
  498. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Medium.woff2 +0 -0
  499. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Regular.woff +0 -0
  500. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-Regular.woff2 +0 -0
  501. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-SemiBold.woff +0 -0
  502. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/fonts/Inter-SemiBold.woff2 +0 -0
  503. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/tailwind-light/theme.css +0 -0
  504. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/vela-blue/theme.css +0 -0
  505. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/vela-green/theme.css +0 -0
  506. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/vela-orange/theme.css +0 -0
  507. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/vela-purple/theme.css +0 -0
  508. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  509. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  510. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  511. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  512. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  513. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  514. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  515. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  516. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-dark/theme.css +0 -0
  517. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  518. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  519. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  520. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  521. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  522. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  523. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  524. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  525. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/static/react/themes/viva-light/theme.css +0 -0
  526. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/RTL_AUTH_GUIDE.md +0 -0
  527. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/mocks/emptyMock.js +0 -0
  528. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/mocks/quillMentionMock.js +0 -0
  529. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/mswHandlers.ts +0 -0
  530. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/rtlTestHelpers.ts +0 -0
  531. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/setupJEST.mjs +0 -0
  532. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/setupTests.ts +0 -0
  533. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/teardownJEST.mjs +0 -0
  534. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/react/testSetup/testEnvironment.mjs +0 -0
  535. {lino_react-26.3.2 → lino_react-26.4.0}/lino_react/translations/i18n-scan.js +0 -0
  536. {lino_react-26.3.2 → lino_react-26.4.0}/make_messages +0 -0
  537. {lino_react-26.3.2 → lino_react-26.4.0}/message_extractors.ini +0 -0
  538. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/README.md +0 -0
  539. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/docs/GITLAB_PACKAGE_REGISTRY.md +0 -0
  540. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/docs/gitlab-ci-example.yml +0 -0
  541. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/logs/README.md +0 -0
  542. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/tools/download_cache_from_gitlab.sh +0 -0
  543. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/tools/migrate_to_ndjson.js +0 -0
  544. {lino_react-26.3.2 → lino_react-26.4.0}/network-testing/tools/publish_cache_to_gitlab.sh +0 -0
  545. {lino_react-26.3.2 → lino_react-26.4.0}/node_version.txt +0 -0
  546. {lino_react-26.3.2 → lino_react-26.4.0}/package-lock.json +0 -0
  547. {lino_react-26.3.2 → lino_react-26.4.0}/package.json +0 -0
  548. {lino_react-26.3.2 → lino_react-26.4.0}/puppeteers/avanti/manage.py +0 -0
  549. {lino_react-26.3.2 → lino_react-26.4.0}/puppeteers/noi/manage.py +0 -0
  550. {lino_react-26.3.2 → lino_react-26.4.0}/puppeteers/noi/settings.py +0 -0
  551. {lino_react-26.3.2 → lino_react-26.4.0}/pyproject.toml +0 -0
  552. {lino_react-26.3.2 → lino_react-26.4.0}/pytest.ini +0 -0
  553. {lino_react-26.3.2 → lino_react-26.4.0}/requirements.txt +0 -0
  554. {lino_react-26.3.2 → lino_react-26.4.0}/tests/__init__.py +0 -0
  555. {lino_react-26.3.2 → lino_react-26.4.0}/tests/test_docs.py +0 -0
  556. {lino_react-26.3.2 → lino_react-26.4.0}/tsconfig.json +0 -0
  557. {lino_react-26.3.2 → lino_react-26.4.0}/webpack.config.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lino_react
3
- Version: 26.3.2
3
+ Version: 26.4.0
4
4
  Summary: The React front end for Lino
5
5
  Project-URL: Homepage, https://react.lino-framework.org
6
6
  Project-URL: Repository, https://gitlab.com/lino-framework/react
@@ -3,7 +3,7 @@
3
3
  # License: GNU Affero General Public License v3 (see file COPYING for details)
4
4
  # Source documentation see https://react.lino-framework.org/dev
5
5
 
6
- __version__ = '26.3.2'
6
+ __version__ = '26.4.0'
7
7
 
8
8
  srcref_url = 'https://gitlab.com/lino-framework/react/blob/master/%s'
9
9
  # doc_trees = []
@@ -46,8 +46,30 @@ class Plugin(Plugin):
46
46
  app_link_fix_button_label = _("Fix app link settings")
47
47
  app_link_dismiss_button_label = _("Dismiss")
48
48
 
49
+ users_themes = None
50
+ """Themes that are available for users to choose from.
51
+
52
+ If set to 'all', all themes from `PrimeReactThemes` will be available.
53
+ If set to a whitespace-separated string of theme names, those themes will be available.
54
+ If set to a list of `PrimeReactTheme` values, those themes will be available.
55
+ If set to None, users cannot choose a theme and the default theme will be used.
56
+ """
57
+
49
58
  # media_base_url = "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/"
50
59
 
60
+ def before_analyze(self):
61
+ if self.users_themes is not None:
62
+ PrimeReactThemes = self.site.models.react.PrimeReactThemes
63
+ if self.users_themes == 'all':
64
+ self.users_themes = list(PrimeReactThemes.get_list_items())
65
+ elif isinstance(self.users_themes, str):
66
+ self.users_themes = [
67
+ PrimeReactThemes.get_by_value(tn) for tn in self.users_themes.split() if tn]
68
+ else:
69
+ self.users_themes = [PrimeReactThemes.get_by_value(tn) for tn in self.users_themes]
70
+
71
+ return super().before_analyze()
72
+
51
73
  def on_ui_init(self, kernel):
52
74
  from .renderer import Renderer
53
75
  self.renderer = Renderer(self)
@@ -327,6 +327,8 @@ export class ActionHandler extends DynDep implements ActionHandler {
327
327
  ): t.QueryParams | t.StateClone => {
328
328
  holder[constants.URL_PARAM_SUBST_USER] = this.context.value[
329
329
  constants.URL_PARAM_SUBST_USER];
330
+ // holder[constants.URL_PARAM_COLOR_SCHEME] = this.context.value[
331
+ // constants.URL_PARAM_COLOR_SCHEME];
330
332
  holder[constants.URL_PARAM_USER_LANGUAGE] = this.context.value[
331
333
  constants.URL_PARAM_USER_LANGUAGE];
332
334
  holder[constants.URL_PARAM_LINO_VERSION] = window.Lino[
@@ -414,14 +416,16 @@ export class ActionHandler extends DynDep implements ActionHandler {
414
416
  return queryParams;
415
417
  }
416
418
 
417
- getAction = (
419
+ getAction = async (
418
420
  action_full_name: string, preprocess: boolean = true
419
- ): {action: t.Action, preprocessedStack: t.PreprocessedStack} => {
421
+ ): Promise<{action: t.Action, preprocessedStack: t.PreprocessedStack}> => {
420
422
  const action: t.Action = this.context.APP.state.site_data.action_definitions[action_full_name];
421
423
  const preprocessedStack: t.PreprocessedStack = {
422
424
  [constants.URL_PARAM_ACTION_NAME]: action[constants.URL_PARAM_ACTION_NAME]};
423
- if (preprocess) this.preprocess(action.preprocessor, preprocessedStack);
424
- return {action: action, preprocessedStack: preprocessedStack}
425
+ if (preprocess) await this.preprocess(action.preprocessor, preprocessedStack);
426
+ constants.debugMessage("ActionHandler.getAction(); action_full_name", action_full_name,
427
+ "action", action, "preprocessedStack", preprocessedStack);
428
+ return {action, preprocessedStack};
425
429
  }
426
430
 
427
431
  getCallback = (action_name: string): t.ResponseCallback => {
@@ -672,11 +676,9 @@ export class ActionHandler extends DynDep implements ActionHandler {
672
676
  }
673
677
 
674
678
  if (response_callback) {
675
- let ret;
676
- if (this.ex.u.isAwaitable(response_callback)) {
677
- ret = await response_callback.call(this, response);
678
- } else {
679
- ret = response_callback.call(this, response);
679
+ let ret = response_callback.call(this, response);
680
+ if (this.ex.u.isAwaitable(ret)) {
681
+ ret = await ret;
680
682
  }
681
683
  if (ret) return;
682
684
  }
@@ -905,14 +907,22 @@ export class ActionHandler extends DynDep implements ActionHandler {
905
907
  return this.parser.parse(clone) as t.StateClone;
906
908
  }
907
909
 
908
- preprocess = (
910
+ preprocess = async (
909
911
  preprocessor: string, preprocessedStack: t.PreprocessedStack = {}
910
- ): t.QueryParams => {
912
+ ): Promise<t.QueryParams> => {
911
913
  if (!this.context.filled(preprocessor)) return preprocessedStack;
914
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
912
915
  Lino;
913
916
  const fn = eval(preprocessor);
914
917
  let ret: t.QueryParams;
915
- if (this.context.filled(fn)) ret = fn(this.context, preprocessedStack);
918
+ if (this.context.filled(fn)) {
919
+ ret = fn(this.context, preprocessedStack);
920
+ if (this.ex.u.isAwaitable(ret)) {
921
+ this.context.APP.setLoadMask();
922
+ ret = await ret;
923
+ this.context.APP.unsetLoadMask();
924
+ }
925
+ }
916
926
  if (this.context.filled(ret) && ret instanceof Object) Object.assign(
917
927
  preprocessedStack, ret);
918
928
  return preprocessedStack;
@@ -954,7 +964,7 @@ export class ActionHandler extends DynDep implements ActionHandler {
954
964
  }
955
965
 
956
966
  checkAndRunAction = async (kwargs: t.ArgsRunAction): Promise<void> => {
957
- const { action } = this.getAction(kwargs.action_full_name, false);
967
+ const { action } = await this.getAction(kwargs.action_full_name, false);
958
968
  if (this.context.isModified() && action.auto_save)
959
969
  await this.saveModifiedContent();
960
970
 
@@ -975,7 +985,37 @@ export class ActionHandler extends DynDep implements ActionHandler {
975
985
  runAction = async ({action_full_name, actorId, status, sr = [], rowIndex, default_record_id,
976
986
  response_callback, clickCatch = false, pollContext = false
977
987
  }: t.ArgsRunAction): Promise<void> => {
978
- const {action, preprocessedStack} = this.getAction(action_full_name);
988
+ const {action, preprocessedStack} = await this.getAction(action_full_name);
989
+ if (action.beforeshow && !eval(action.beforeshow)) {
990
+ this.context.APP.toast.show({
991
+ severity: "warn",
992
+ summary: this.ex.i18n.t("Action cannot be performed"),
993
+ detail: this.ex.i18n.t("Does NOT have required frontend features."),
994
+ });
995
+ this.context.APP.unsetLoadMask();
996
+ return;
997
+ }
998
+
999
+ if (constants.isAndroidWebView()
1000
+ && action[constants.URL_PARAM_ACTION_NAME] === "switch_color_scheme") {
1001
+ try {
1002
+ const currentScheme = window.Lino.color_scheme;
1003
+ const nextScheme = currentScheme === "dark" ? "light" : "dark";
1004
+ window.AndroidBridge?.setColorSchemeMode?.(nextScheme);
1005
+ if (nextScheme === window.Lino.users_color_scheme) {
1006
+ await this.context.history.replaceByType(
1007
+ {[constants.URL_PARAM_COLOR_SCHEME]: nextScheme},
1008
+ constants.PARAM_TYPE_WINDOW,
1009
+ false,
1010
+ true,
1011
+ );
1012
+ await this.context.APP.reset();
1013
+ return;
1014
+ }
1015
+ } catch (error) {
1016
+ console.error("Failed to sync Android color scheme for switch_color_scheme", error);
1017
+ }
1018
+ }
979
1019
 
980
1020
  const execute_args: t.ArgsExecute = {
981
1021
  action: action,
@@ -1128,7 +1168,7 @@ export class ActionHandler extends DynDep implements ActionHandler {
1128
1168
  } else
1129
1169
  if (this.context.contextType === constants.CONTEXT_TYPE_TEXT_FIELD) {
1130
1170
  let resp_data;
1131
- const { action } = this.getAction(ad.submit_detail);
1171
+ const { action } = await this.getAction(ad.submit_detail);
1132
1172
  await this.XHRPutPost({path: this.context.value.path.slice(1),
1133
1173
  body: Object.assign(this.commonParams(), {[constants.URL_PARAM_ACTION_NAME]: action[constants.URL_PARAM_ACTION_NAME]},
1134
1174
  dataContext.mutableContext.data), response_callback: (data) => {
@@ -1161,7 +1201,8 @@ export class ActionHandler extends DynDep implements ActionHandler {
1161
1201
  Object.values(dataContext.refStore.virtualLeaves).forEach(elem => (
1162
1202
  (elem as React.Component).setState(
1163
1203
  {key: this.context.newSlug().toString()})));
1164
- this.context.history.replaceState({editing_mode: false});
1204
+ const disabledFields = dataContext.mutableContext.data.disabled_fields || {};
1205
+ this.context.history.replaceState({editing_mode: false, disabledFields});
1165
1206
  }
1166
1207
  dataContext.root.setState({loading: false});
1167
1208
  // consider this situation as signIn since user language may have been changed
@@ -117,6 +117,11 @@ class App extends Component {
117
117
  {[constants.URL_PARAM_SUBST_USER]: params[constants.URL_PARAM_SUBST_USER]},
118
118
  constants.PARAM_TYPE_WINDOW, false, true);
119
119
  }
120
+ if (["light", "dark"].includes(params[constants.URL_PARAM_COLOR_SCHEME])) {
121
+ await this.URLContext.history.replaceByType(
122
+ {[constants.URL_PARAM_COLOR_SCHEME]: params[constants.URL_PARAM_COLOR_SCHEME]},
123
+ constants.PARAM_TYPE_WINDOW, false, true);
124
+ }
120
125
 
121
126
  this.storageName = `lino-${window.Lino.site_name}-json-cache`;
122
127
  const request = window.indexedDB.open(this.storageName, 1);
@@ -301,11 +306,15 @@ class App extends Component {
301
306
  }
302
307
 
303
308
  if (!navigated) {
304
- // Navigate using history API
305
- this.URLContext.history.pushPath({
306
- pathname: pathname,
307
- params: params
308
- });
309
+ if (pathname === this.URLContext.value.path) {
310
+ this.URLContext.actionHandler.refreshChildren([this.URLContext]);
311
+ } else {
312
+ // Navigate using history API
313
+ this.URLContext.history.pushPath({
314
+ pathname: pathname,
315
+ params: params
316
+ });
317
+ }
309
318
  }
310
319
 
311
320
  constants.debugMessage('navigateFromNative: Navigated to', pathname, 'with params', params);
@@ -396,6 +405,25 @@ class App extends Component {
396
405
  this.setState({showFixAppLinksCta: false}, this.notifyAppLinkBannerLayoutChanged);
397
406
  }
398
407
 
408
+ async syncAndroidColorSchemeToWindowGlobals() {
409
+ if (!constants.isAndroidWebView()) {
410
+ return;
411
+ }
412
+ try {
413
+ const colorScheme = window.AndroidBridge?.getEffectiveColorScheme?.();
414
+ if (["light", "dark"].includes(colorScheme)) {
415
+ await this.URLContext.history.replaceByType(
416
+ {[constants.URL_PARAM_COLOR_SCHEME]: colorScheme},
417
+ constants.PARAM_TYPE_WINDOW,
418
+ false,
419
+ true,
420
+ );
421
+ }
422
+ } catch (error) {
423
+ console.error("Failed to sync Android color scheme", error);
424
+ }
425
+ }
426
+
399
427
  /**
400
428
  * Executes when the browser's reload button is clicked.
401
429
  *
@@ -761,6 +789,32 @@ class App extends Component {
761
789
  children: <LinoProgressBar loading={true} progress={10}/>
762
790
  })
763
791
  this.setInitProgress(20);
792
+
793
+ await this.syncAndroidColorSchemeToWindowGlobals();
794
+
795
+ // reload with substitute user if su_id in URL doesn't match current substitute user
796
+ const su_id = this.URLContext.value[constants.URL_PARAM_SUBST_USER];
797
+ const color_scheme = this.URLContext.value[constants.URL_PARAM_COLOR_SCHEME];
798
+ const shouldReloadForSubstUser = su_id != window.Lino.subst_user_id;
799
+ const shouldReloadForColorScheme = ["light", "dark"].includes(color_scheme)
800
+ && color_scheme !== window.Lino.color_scheme;
801
+ if (shouldReloadForSubstUser || shouldReloadForColorScheme) {
802
+ const url = new URL(window.location.href);
803
+ if (this.URLContext.filled(su_id)) {
804
+ url.searchParams.set(constants.URL_PARAM_SUBST_USER, su_id);
805
+ } else {
806
+ url.searchParams.delete(constants.URL_PARAM_SUBST_USER);
807
+ }
808
+ if (["light", "dark"].includes(color_scheme)) {
809
+ url.searchParams.set(constants.URL_PARAM_COLOR_SCHEME, color_scheme);
810
+ } else {
811
+ url.searchParams.delete(constants.URL_PARAM_COLOR_SCHEME);
812
+ }
813
+ window.history.replaceState({}, '', url);
814
+ window.location.reload();
815
+ return
816
+ }
817
+
764
818
  await this.fetch_user_settings(signIn);
765
819
  if (signIn) {
766
820
  // Check if we're running in Android WebView
@@ -960,8 +1014,19 @@ class App extends Component {
960
1014
  }
961
1015
 
962
1016
  async reload() {
1017
+ // const su_id = this.URLContext.value[constants.URL_PARAM_SUBST_USER];
1018
+
963
1019
  await this.URLContext.iDBclear();
964
1020
  window.localStorage.clear();
1021
+
1022
+ // if (this.URLContext.filled(su_id)) {
1023
+ // const url = new URL(window.location.href);
1024
+ // url.searchParams.set(constants.URL_PARAM_SUBST_USER, su_id);
1025
+ // window.history.replaceState({}, '', url);
1026
+ // }
1027
+ const url = new URL(window.location.href);
1028
+ url.searchParams.set("timestamp", Date.now().toString());
1029
+ window.history.replaceState({}, '', url);
965
1030
  window.location.reload();
966
1031
  }
967
1032
 
@@ -75,6 +75,14 @@ export class AppTopbar extends Component {
75
75
  );
76
76
  const scrollY = window.scrollY || window.pageYOffset || 0;
77
77
  const topOffset = Math.max(0, bannersHeight - scrollY);
78
+ const { APP } = this.upController;
79
+ if (APP.tbContainer) {
80
+ const topbarHeight = APP.tbContainer.offsetHeight;
81
+ const totalHeight = topOffset + topbarHeight;
82
+ document.documentElement.style.setProperty('--topbar-offset', `${topOffset}px`);
83
+ document.documentElement.style.setProperty('--topbar-height', `${topbarHeight}px`);
84
+ document.documentElement.style.setProperty('--topbar-total-height', `${totalHeight}px`);
85
+ }
78
86
  if (this.state.topOffset !== topOffset) {
79
87
  this.setState({topOffset});
80
88
  }
@@ -24,7 +24,7 @@ export class AutoComplete extends LeafComponentInput {
24
24
  hasClearButton: boolean;
25
25
  clear?: () => void;
26
26
  props: t.LeafInputProps;
27
- choicesURL?(query: string, start: number, limit: number): string;
27
+ choicesURL?(query: string, start: number, limit: number): Promise<string>;
28
28
  clearButton?: HTMLElement | null;
29
29
  onSelect?(e: { value: { text: string; value: string | number | null } }): void;
30
30
  scroller: { getElementRef: () => React.RefObject<HTMLElement> } | null;
@@ -32,6 +32,29 @@ export class AutoComplete extends LeafComponentInput {
32
32
  controller: any;
33
33
  state: t.ObjectAny & {textSelected: boolean; initialHang?: boolean;};
34
34
 
35
+ getDynamicDropdownWidthCh = (): number => {
36
+ const rowTexts = (this.state.rows || []).map(row => {
37
+ if (!row) return "";
38
+ if (typeof row === "string") return row;
39
+ return row.text || "";
40
+ });
41
+ const longestText = Math.max(
42
+ 0,
43
+ this.state.value?.text?.length || 0,
44
+ ...rowTexts.map(text => text.length)
45
+ );
46
+ return Math.min(Math.max(longestText + 4, 30), 120);
47
+ }
48
+
49
+ getDynamicDropdownStyle = (): React.CSSProperties => {
50
+ const widthCh = this.getDynamicDropdownWidthCh();
51
+ return {
52
+ minWidth: '30ch',
53
+ width: `${widthCh}ch`,
54
+ maxWidth: '90vw',
55
+ };
56
+ }
57
+
35
58
  constructor(props: t.LeafInputProps) {
36
59
  super(props);
37
60
  this.state = {
@@ -65,13 +88,13 @@ export class AutoComplete extends LeafComponentInput {
65
88
  this.controller = new this.ex.AbortController.default();
66
89
  }
67
90
 
68
- onKeyDown = (event) => {
91
+ onKeyDown = async (event) => {
69
92
  super.onKeyDown(event);
70
93
  if (["Enter", "NumpadEnter"].includes(event.code) && this.inputEl.getOverlay())
71
94
  event.stopPropagation();
72
95
  if (['ArrowDown', 'ArrowUp'].includes(event.code)) {
73
96
  if (this.inputEl && !this.inputEl.getOverlay()) {
74
- if (!this.state.rows.length) this.getChoices(this.state[constants.URL_PARAM_FILTER]);
97
+ if (!this.state.rows.length) await this.getChoices(this.state[constants.URL_PARAM_FILTER]);
75
98
  this.inputEl.show();
76
99
  } else if (!this.state.lazyLoading) {
77
100
  const sItem = this.scroller.getElementRef().current.querySelector('li.p-highlight');
@@ -92,15 +115,16 @@ export class AutoComplete extends LeafComponentInput {
92
115
  return <div>{i || "\u00a0"}</div>
93
116
  }
94
117
 
95
- getChoices = (query: string, limit?: number) => {
118
+ getChoices = async (query: string, limit?: number) => {
96
119
  this.controller.abort();
97
120
  this.controller = new this.ex.AbortController.default();
98
121
  limit = limit || this.state[constants.URL_PARAM_LIMIT];
99
122
  const start = limit === this.state[constants.URL_PARAM_LIMIT]
100
123
  ? this.state[constants.URL_PARAM_START]
101
124
  : this.state[constants.URL_PARAM_LIMIT];
125
+ const path = await this.choicesURL(query, start, limit);
102
126
  this.upController.actionHandler.silentFetch({
103
- path: this.choicesURL(query, start, limit),
127
+ path: path,
104
128
  signal: this.controller.signal
105
129
  }).then((data) => {
106
130
  let rows = data.rows;
@@ -132,16 +156,17 @@ export class AutoComplete extends LeafComponentInput {
132
156
  if (this.state.value === null) return null;
133
157
  return <React.Fragment><this.ex.prAutoComplete.AutoComplete
134
158
  autoFocus={!this.props.urlParams.controller.globals.isMobile && this.leafIndexMatch()}
135
- completeMethod={(e) => {
159
+ completeMethod={async (e) => {
136
160
  if (e.originalEvent.type === 'click' && this.state.rows.length) {
137
161
  this.inputEl.show();
138
162
  return;
139
163
  }
140
164
  this.state.rows = [];
141
- this.getChoices(e.query, this.state[constants.URL_PARAM_LIMIT]);
165
+ await this.getChoices(e.query, this.state[constants.URL_PARAM_LIMIT]);
142
166
  }}
143
167
  dropdown={true}
144
168
  field="text"
169
+ inputStyle={{background: "transparent"}}
145
170
  itemTemplate={this.itemTemplate}
146
171
  onChange={e => this.setState({
147
172
  value: Object.assign(this.state.value, {
@@ -160,6 +185,7 @@ export class AutoComplete extends LeafComponentInput {
160
185
  }
161
186
  }}
162
187
  ref={this.onInputRef}
188
+ panelStyle={this.getDynamicDropdownStyle()}
163
189
  scrollHeight="200px"
164
190
  suggestions={this.state.rows}
165
191
  tabIndex={this.props.tabIndex}
@@ -168,19 +194,19 @@ export class AutoComplete extends LeafComponentInput {
168
194
  itemSize: 35,
169
195
  lazy: true,
170
196
  loading: this.state.lazyLoading,
171
- onScrollIndexChange: (event) => {
197
+ onScrollIndexChange: async (event) => {
172
198
  const l = this.state[constants.URL_PARAM_LIMIT];
173
199
  if (l - event.first < 15 && !this.state.lazyLoading
174
200
  && this.state.count > l
175
201
  ) {
176
202
  this.setState({lazyLoading: true});
177
- this.getChoices(
203
+ await this.getChoices(
178
204
  this.state[constants.URL_PARAM_FILTER], l + 15);
179
205
  }
180
206
  },
181
207
  ref: el => this.scroller = el,
182
208
  scrollHeight: "195px",
183
- style: {minWidth: '30ch'},
209
+ style: this.getDynamicDropdownStyle(),
184
210
  }}
185
211
  {...customProps}/>
186
212
  {this.hasClearButton && this.props.elem.field_options.allowBlank
@@ -251,7 +277,7 @@ export class QuickFilter extends AutoComplete {
251
277
  value: null}
252
278
  }
253
279
 
254
- choicesURL(query, start, limit) {
280
+ async choicesURL(query, start, limit) {
255
281
  return `choices/${this.props.urlParams.packId}/${this.props.urlParams.actorId}?${
256
282
  this.ex.queryString.default.stringify(Object.assign(this.upController
257
283
  .actionHandler.defaultStaticParams(), {
@@ -80,7 +80,7 @@ export class ForeignKeyElement extends AutoComplete {
80
80
  currentValue: snapshot.contextUpdate});
81
81
  }
82
82
 
83
- choicesURL(query, start, limit) {
83
+ async choicesURL(query, start, limit) {
84
84
  let uc = this.props.urlParams;
85
85
  let actorData = uc.controller.static.actorData,
86
86
  // context_fields = actorData.choosers_dict && actorData.choosers_dict[this.props.elem.name],
@@ -106,7 +106,7 @@ export class ForeignKeyElement extends AutoComplete {
106
106
  let aH = uc.controller.actionHandler;
107
107
  let finalSlug = "";
108
108
  if (uc.action_full_name) {
109
- const { action } = aH.getAction(uc.action_full_name, false)
109
+ const { action } = await aH.getAction(uc.action_full_name, false)
110
110
  if (action.has_parameters) finalSlug = `/${action[constants.URL_PARAM_ACTION_NAME]}`;
111
111
  if (action.select_rows) dataParams[constants.URL_PARAM_SELECTED] = uc[constants.URL_PARAM_SELECTED];
112
112
  }
@@ -140,7 +140,7 @@ export class ForeignKeyElement extends AutoComplete {
140
140
 
141
141
  onSelect(e) {
142
142
  this.setState({value: e.value});
143
- this.update({[this.dataKey]: e.value.text,
143
+ this.update({[this.dataKey]: e.value.text || null,
144
144
  [this.dataKeyHidden]: e.value.value});
145
145
  }
146
146
 
@@ -41,15 +41,26 @@ export class LinoBbar extends Component {
41
41
 
42
42
  constructor(props) {
43
43
  super(props);
44
- this.state = {...this.state, overflowShow: false};
44
+ this.state = {...this.state, overflowShow: false, buttons: null};
45
+ this._buttonsSignature = null;
46
+ this._buttonsUpdateSeq = 0;
45
47
  this.action2buttonProps = this.action2buttonProps.bind(this);
46
- this.render_buttons = this.render_buttons.bind(this);
48
+ this.set_buttons = this.set_buttons.bind(this);
47
49
  this.render_overflow = this.render_overflow.bind(this);
48
50
  this.render_actionbutton = this.render_actionbutton.bind(this);
49
51
  this.render_splitActionButton = this.render_splitActionButton.bind(this);
50
52
  this.runAction = this.runAction.bind(this);
51
53
  }
52
54
 
55
+ onReady() {
56
+ this.set_buttons();
57
+ }
58
+
59
+ componentDidUpdate() {
60
+ if (!this.state.ready) return;
61
+ this.set_buttons();
62
+ }
63
+
53
64
  runAction(action, tba, event) {
54
65
  if (tba.js_handler) {
55
66
  eval(tba.js_handler);
@@ -96,6 +107,7 @@ export class LinoBbar extends Component {
96
107
  (action.select_rows && this.context[constants.URL_PARAM_SELECTED]
97
108
  && this.context[constants.URL_PARAM_SELECTED].length === 0
98
109
  )
110
+ || (action.beforeshow && !eval(action.beforeshow))
99
111
  || this.context.controller.disabled(action[constants.URL_PARAM_ACTION_NAME])
100
112
  || (action[constants.URL_PARAM_ACTION_NAME] === 'submit_detail' && !this.context.editing_mode)
101
113
  || (this.props.onSide && !action.show_in_side_toolbar && action[constants.URL_PARAM_ACTION_NAME] !== 'submit_detail')
@@ -103,12 +115,14 @@ export class LinoBbar extends Component {
103
115
  );
104
116
  icon_and_label.tooltip = tba.help_text || action.label;
105
117
  icon_and_label.tooltipOptions = {position: this.props.onSide ? 'left' : 'bottom'};
118
+ constants.debugMessage("Button (on: %s) %s: %o", this.props.action_full_name,
119
+ action[constants.URL_PARAM_ACTION_NAME], icon_and_label);
106
120
 
107
121
  return icon_and_label;
108
122
  }
109
123
 
110
- render_actionbutton(tba) {
111
- let {action} = this.context.controller.actionHandler.getAction(tba[constants.URL_PARAM_ACTION_NAME], false);
124
+ async render_actionbutton(tba) {
125
+ let {action} = await this.context.controller.actionHandler.getAction(tba[constants.URL_PARAM_ACTION_NAME], false);
112
126
  if (action) {
113
127
  let icon_and_label = this.action2buttonProps(tba, action, true);
114
128
  if (icon_and_label.disabled) return
@@ -118,9 +132,11 @@ export class LinoBbar extends Component {
118
132
  }
119
133
  }
120
134
 
121
- render_splitActionButton(combo) {
122
- let actionArray = combo.menu.map(
123
- n => this.context.controller.actionHandler.getAction(n[constants.URL_PARAM_ACTION_NAME], false).action);
135
+ async render_splitActionButton(combo) {
136
+ constants.debugMessage("Rendering split button %s: %o", combo.combo, combo);
137
+ let actionArray = await Promise.all(combo.menu.map(
138
+ async (n) => (await this.context.controller.actionHandler.getAction(n[constants.URL_PARAM_ACTION_NAME], false)).action));
139
+ constants.debugMessage("Split button %s: actions: %o", combo.combo, actionArray);
124
140
  if (actionArray[0]) {
125
141
  let model = actionArray.map((action, i) => {
126
142
  let props = this.action2buttonProps(combo.menu[i], action, i === 0);
@@ -143,19 +159,46 @@ export class LinoBbar extends Component {
143
159
  }
144
160
  }
145
161
 
146
- render_buttons() {
162
+ async set_buttons() {
163
+ const seq = ++this._buttonsUpdateSeq;
147
164
  let ba = this.context.controller.static.actorData.actions_list.find(ba => ba[constants.URL_PARAM_ACTION_NAME] === this.props.action_full_name);
148
- if (!ba) return;
165
+ constants.debugMessage("Setting buttons for %s: %o", this.props.action_full_name, ba);
166
+ if (!ba) {
167
+ if (this.state.buttons !== null) this.setState({buttons: null});
168
+ this._buttonsSignature = null;
169
+ return;
170
+ }
149
171
  let tbas = ba.toolbarActions;
150
- return tbas && tbas.map((tba) => {
172
+ if (!tbas || tbas.length === 0) {
173
+ if (this.state.buttons !== null) this.setState({buttons: null});
174
+ this._buttonsSignature = null;
175
+ return;
176
+ }
177
+ const buttons = await Promise.all(tbas.map(async (tba) => {
151
178
  if (tba.combo && tba.menu.length > 1) {
152
- return this.render_splitActionButton(tba);
179
+ return await this.render_splitActionButton(tba);
153
180
  } else if (tba.combo) {
154
- return this.render_actionbutton(tba.menu[0]);
181
+ return await this.render_actionbutton(tba.menu[0]);
155
182
  } else {
156
- return this.render_actionbutton(tba);
183
+ return await this.render_actionbutton(tba);
157
184
  }
158
- })
185
+ }));
186
+
187
+ if (seq !== this._buttonsUpdateSeq) return;
188
+
189
+ const signature = buttons
190
+ .filter(Boolean)
191
+ .map((button) => {
192
+ const props = button.props || {};
193
+ const modelCount = Array.isArray(props.model) ? props.model.length : 0;
194
+ return [props.className || '', props.label || '', props.icon || '', modelCount].join('|');
195
+ })
196
+ .join('||');
197
+
198
+ if (signature === this._buttonsSignature) return;
199
+
200
+ this._buttonsSignature = signature;
201
+ this.setState({buttons});
159
202
  }
160
203
 
161
204
  render() {
@@ -169,7 +212,7 @@ export class LinoBbar extends Component {
169
212
  }}
170
213
  tooltip={this.ex.i18n.t("Reload this view from the underlying database")}
171
214
  tooltipOptions={{position: "bottom"}}/>}
172
- {this.render_buttons()}
215
+ {this.state.buttons}
173
216
  </React.Fragment>
174
217
  }
175
218
  };
@@ -314,7 +314,7 @@ export class LinoBody extends Component {
314
314
  maxWidth: '40px',
315
315
  background: '#2255AA40',
316
316
  borderRadius: '3px',
317
- zIndex: 999999
317
+ zIndex: 999
318
318
  }}>
319
319
  <LinoToolbar
320
320
  ref={ref => this.sideToolbar = ref}