alchemy_cms 8.0.0.a → 8.0.0.b

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.

Potentially problematic release.


This version of alchemy_cms might be problematic. Click here for more details.

Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -0
  3. data/app/assets/builds/alchemy/admin/page-select.css +1 -1
  4. data/app/assets/builds/alchemy/admin.css +1 -1
  5. data/app/assets/builds/alchemy/dark-theme.css +1 -0
  6. data/app/assets/builds/alchemy/light-theme.css +1 -0
  7. data/app/assets/builds/alchemy/theme.css +1 -0
  8. data/app/assets/builds/alchemy/welcome.css +1 -1
  9. data/app/assets/builds/tinymce/skins/content/alchemy/content.min.css +1 -1
  10. data/app/assets/builds/tinymce/skins/content/alchemy-dark/content.min.css +1 -0
  11. data/app/assets/builds/tinymce/skins/ui/alchemy/skin.min.css +1 -1
  12. data/app/assets/builds/tinymce/skins/ui/alchemy-dark/content.min.css +1 -0
  13. data/app/assets/builds/tinymce/skins/ui/alchemy-dark/skin.min.css +1 -0
  14. data/app/assets/images/alchemy/element_icons/default.svg +1 -0
  15. data/app/assets/images/alchemy/icons-sprite.svg +1 -1
  16. data/app/components/alchemy/admin/element_select.rb +39 -0
  17. data/app/components/alchemy/ingredients/datetime_view.rb +4 -2
  18. data/app/controllers/alchemy/admin/attachments_controller.rb +2 -0
  19. data/app/controllers/alchemy/admin/elements_controller.rb +2 -0
  20. data/app/controllers/alchemy/admin/pages_controller.rb +2 -0
  21. data/app/controllers/alchemy/admin/pictures_controller.rb +19 -33
  22. data/app/controllers/alchemy/pages_controller.rb +19 -2
  23. data/app/controllers/concerns/alchemy/admin/resource_filter.rb +1 -0
  24. data/app/helpers/alchemy/admin/attachments_helper.rb +5 -5
  25. data/app/helpers/alchemy/pages_helper.rb +1 -1
  26. data/app/javascript/alchemy_admin/components/auto_submit.js +20 -0
  27. data/app/javascript/alchemy_admin/components/datepicker.js +8 -5
  28. data/app/javascript/alchemy_admin/components/element_editor/delete_element_button.js +3 -2
  29. data/app/javascript/alchemy_admin/components/element_editor.js +25 -15
  30. data/app/javascript/alchemy_admin/components/element_select.js +43 -0
  31. data/app/javascript/alchemy_admin/components/index.js +5 -0
  32. data/app/javascript/alchemy_admin/components/link_buttons.js +6 -2
  33. data/app/javascript/alchemy_admin/components/remote_select.js +5 -1
  34. data/app/javascript/alchemy_admin/components/tinymce.js +93 -16
  35. data/app/javascript/alchemy_admin/dialog.js +1 -1
  36. data/app/javascript/alchemy_admin/file_editors.js +1 -1
  37. data/app/javascript/alchemy_admin/image_loader.js +4 -2
  38. data/app/javascript/alchemy_admin/picture_editors.js +7 -4
  39. data/app/javascript/alchemy_admin/picture_selector.js +4 -4
  40. data/app/jobs/alchemy/delete_picture_job.rb +12 -0
  41. data/app/models/alchemy/attachment.rb +2 -9
  42. data/app/models/alchemy/element.rb +1 -0
  43. data/app/models/alchemy/element_definition.rb +30 -0
  44. data/app/models/alchemy/ingredient.rb +1 -1
  45. data/app/models/alchemy/language.rb +2 -7
  46. data/app/models/alchemy/page/page_naming.rb +4 -11
  47. data/app/models/alchemy/page/page_natures.rb +16 -11
  48. data/app/models/alchemy/page.rb +1 -6
  49. data/app/models/alchemy/page_definition.rb +1 -1
  50. data/app/models/alchemy/picture.rb +6 -17
  51. data/app/models/alchemy/site/layout.rb +1 -0
  52. data/app/models/alchemy/site.rb +1 -6
  53. data/app/models/alchemy/storage_adapter/dragonfly/picture_url.rb +7 -2
  54. data/app/models/alchemy/storage_adapter/dragonfly.rb +24 -2
  55. data/app/models/concerns/alchemy/relatable_resource.rb +28 -0
  56. data/app/stylesheets/alchemy/_custom-properties.scss +162 -0
  57. data/app/stylesheets/alchemy/_mixins.scss +12 -24
  58. data/app/stylesheets/alchemy/_themes.scss +540 -0
  59. data/app/stylesheets/alchemy/admin/archive.scss +28 -8
  60. data/app/stylesheets/alchemy/admin/attachments.scss +10 -33
  61. data/app/stylesheets/alchemy/admin/base.scss +4 -1
  62. data/app/stylesheets/alchemy/admin/buttons.scss +7 -32
  63. data/app/stylesheets/alchemy/admin/dialogs.scss +17 -7
  64. data/app/stylesheets/alchemy/admin/element-select.scss +11 -0
  65. data/app/stylesheets/alchemy/admin/elements.scss +94 -33
  66. data/app/stylesheets/alchemy/admin/filters.scss +8 -9
  67. data/app/stylesheets/alchemy/admin/flatpickr.scss +12 -27
  68. data/app/stylesheets/alchemy/admin/form_fields.scss +0 -15
  69. data/app/stylesheets/alchemy/admin/forms.scss +3 -8
  70. data/app/stylesheets/alchemy/admin/frame.scss +5 -7
  71. data/app/stylesheets/alchemy/admin/icons.scss +0 -9
  72. data/app/stylesheets/alchemy/admin/image_library.scss +13 -55
  73. data/app/stylesheets/alchemy/admin/navigation.scss +1 -11
  74. data/app/stylesheets/alchemy/admin/node-select.scss +1 -10
  75. data/app/stylesheets/alchemy/admin/notices.scss +5 -4
  76. data/app/stylesheets/alchemy/admin/page-select.scss +16 -0
  77. data/app/stylesheets/alchemy/admin/pagination.scss +1 -8
  78. data/app/stylesheets/alchemy/admin/preview_window.scss +12 -1
  79. data/app/stylesheets/alchemy/admin/resource_info.scss +106 -3
  80. data/app/stylesheets/alchemy/admin/search.scss +1 -1
  81. data/app/stylesheets/alchemy/admin/selects.scss +58 -31
  82. data/app/stylesheets/alchemy/admin/shoelace.scss +32 -62
  83. data/app/stylesheets/alchemy/admin/sitemap.scss +1 -1
  84. data/app/stylesheets/alchemy/admin/tables.scss +3 -3
  85. data/app/stylesheets/alchemy/admin/tags.scss +18 -35
  86. data/app/stylesheets/alchemy/admin/toolbar.scss +0 -6
  87. data/app/stylesheets/alchemy/admin/typography.scss +2 -5
  88. data/app/stylesheets/alchemy/admin.scss +1 -1
  89. data/app/stylesheets/alchemy/dark-theme.scss +5 -0
  90. data/app/stylesheets/alchemy/light-theme.scss +6 -0
  91. data/app/stylesheets/alchemy/theme.scss +13 -0
  92. data/app/stylesheets/tinymce/skins/content/alchemy/content.scss +8 -8
  93. data/app/stylesheets/tinymce/skins/content/alchemy-dark/content.scss +70 -0
  94. data/app/stylesheets/tinymce/skins/ui/alchemy/skin.scss +28 -43
  95. data/app/stylesheets/tinymce/skins/ui/alchemy-dark/content.scss +1 -0
  96. data/app/stylesheets/tinymce/skins/ui/alchemy-dark/skin.scss +3784 -0
  97. data/app/views/alchemy/admin/attachments/_files_list.html.erb +20 -10
  98. data/app/views/alchemy/admin/attachments/assign.js.erb +4 -3
  99. data/app/views/alchemy/admin/attachments/show.html.erb +55 -43
  100. data/app/views/alchemy/admin/crop.html.erb +1 -1
  101. data/app/views/alchemy/admin/elements/_form.html.erb +9 -9
  102. data/app/views/alchemy/admin/elements/_header.html.erb +4 -1
  103. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +1 -1
  104. data/app/views/alchemy/admin/pages/info.html.erb +1 -1
  105. data/app/views/alchemy/admin/partials/_search_form.html.erb +1 -0
  106. data/app/views/alchemy/admin/pictures/_archive.html.erb +12 -22
  107. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -6
  108. data/app/views/alchemy/admin/pictures/_form.html.erb +1 -1
  109. data/app/views/alchemy/admin/pictures/_infos.html.erb +21 -52
  110. data/app/views/alchemy/admin/pictures/_library_sidebar.html.erb +7 -0
  111. data/app/views/alchemy/admin/pictures/_picture.html.erb +14 -20
  112. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +20 -16
  113. data/app/views/alchemy/admin/pictures/_sorting_select.html.erb +13 -0
  114. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +1 -1
  115. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +1 -6
  116. data/app/views/alchemy/admin/pictures/index.html.erb +3 -12
  117. data/app/views/alchemy/admin/pictures/show.html.erb +10 -5
  118. data/app/views/alchemy/admin/resources/_filter_bar.html.erb +5 -15
  119. data/app/views/alchemy/admin/resources/_resource_usage_info.html.erb +36 -0
  120. data/app/views/alchemy/admin/styleguide/index.html.erb +118 -66
  121. data/app/views/alchemy/base/error_notice.html.erb +1 -1
  122. data/app/views/alchemy/ingredients/_page_editor.html.erb +0 -1
  123. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +0 -1
  124. data/app/views/alchemy/ingredients/_select_editor.html.erb +1 -2
  125. data/app/views/layouts/alchemy/admin.html.erb +22 -17
  126. data/config/locales/alchemy.en.yml +26 -8
  127. data/db/migrate/20250905140323_add_created_at_index_to_pictures_and_attachments.rb +14 -0
  128. data/lib/alchemy/configurations/format_matchers.rb +1 -1
  129. data/lib/alchemy/configurations/main.rb +7 -0
  130. data/lib/alchemy/configurations/page_cache.rb +19 -0
  131. data/lib/alchemy/engine.rb +16 -7
  132. data/lib/alchemy/install/tasks.rb +0 -12
  133. data/lib/alchemy/name_conversions.rb +6 -0
  134. data/lib/alchemy/tasks/tidy.rb +18 -0
  135. data/lib/alchemy/test_support/factories/picture_factory.rb +1 -0
  136. data/lib/alchemy/test_support/relatable_resource_examples.rb +58 -0
  137. data/lib/alchemy/tinymce.rb +0 -1
  138. data/lib/alchemy/version.rb +1 -1
  139. data/lib/alchemy.rb +2 -11
  140. data/lib/generators/alchemy/install/install_generator.rb +21 -10
  141. data/lib/generators/alchemy/install/templates/alchemy.rb.tt +10 -6
  142. data/lib/tasks/alchemy/tidy.rake +6 -0
  143. data/lib/tasks/alchemy/usage.rake +2 -0
  144. data/vendor/assets/stylesheets/tinymce/skins/content/dark/content.min.css +1 -0
  145. data/vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css +1 -0
  146. data/vendor/assets/stylesheets/tinymce/skins/ui/oxide/skin.min.css +1 -0
  147. data/vendor/assets/stylesheets/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  148. data/vendor/assets/stylesheets/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  149. data/vendor/javascript/clipboard.min.js +1 -1
  150. data/vendor/javascript/cropperjs.min.js +1 -1
  151. data/vendor/javascript/handlebars.min.js +3 -3
  152. data/vendor/javascript/jquery.min.js +1 -1
  153. data/vendor/javascript/select2.min.js +3 -3
  154. data/vendor/javascript/shoelace.min.js +92 -76
  155. data/vendor/javascript/sortable.min.js +2 -2
  156. data/vendor/javascript/tinymce.min.js +1 -1
  157. data/vendor/javascript/ungap-custom-elements.min.js +2 -2
  158. metadata +46 -32
  159. data/CHANGELOG.md +0 -2100
  160. data/CODE_OF_CONDUCT.md +0 -13
  161. data/CONTRIBUTING.md +0 -73
  162. data/Gemfile +0 -78
  163. data/Rakefile +0 -102
  164. data/SECURITY.md +0 -13
  165. data/alchemy_cms.gemspec +0 -97
  166. data/app/assets/builds/alchemy/custom-properties.css +0 -1
  167. data/app/helpers/alchemy/admin/elements_helper.rb +0 -25
  168. data/app/stylesheets/alchemy/custom-properties.css +0 -244
  169. data/bin/importmap +0 -4
  170. data/bin/rails +0 -9
  171. data/bin/rspec +0 -3
  172. data/bin/setup +0 -30
  173. data/bin/start +0 -17
  174. data/bun.lockb +0 -0
  175. data/bundles/remixicon.mjs +0 -153
  176. data/bundles/shoelace.js +0 -12
  177. data/bundles/tinymce.js +0 -22
  178. data/eslint.config.js +0 -18
  179. data/lib/alchemy/upgrader/.keep +0 -0
  180. data/lib/alchemy/upgrader/tasks/.keep +0 -0
  181. data/rollup.config.mjs +0 -108
  182. data/vitest.config.js +0 -21
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2h6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-alert-line" xmlns="http://www.w3.org/2000/svg"><path d="m12.866 3 9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0Zm-8.66 16h15.588L12 5.5 4.206 19ZM11 16h2v2h-2v-2Zm0-7h2v5h-2V9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-archive-drawer-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992ZM19 11V4H5v7h14Zm0 2H5v7h14v-7ZM9 6h6v2H9V6Zm0 9h6v2H9v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-down-line" xmlns="http://www.w3.org/2000/svg"><path d="m13 16.172 5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2v12.172Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-down-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 13.171 4.95-4.95 1.414 1.415L12 16 5.636 9.636 7.05 8.222l4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-right-line" xmlns="http://www.w3.org/2000/svg"><path d="M16.05 12.05 21 17l-4.95 4.95-1.414-1.415L17.172 18H4v-2h13.172l-2.536-2.535 1.414-1.414Zm-8.1-10 1.414 1.414-2.536 2.535H20v2H6.828l2.536 2.536L7.95 11.95 3 7l4.95-4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.828 12 4.95 4.95-1.414 1.415L8 12l6.364-6.364 1.414 1.414-4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-wide-line" xmlns="http://www.w3.org/2000/svg"><path d="m8.368 12 4.748-8.968 1.768.936L10.632 12l4.252 8.032-1.768.936L8.368 12Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-right-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m13.172 12-4.95-4.95 1.414-1.413L16 12l-6.364 6.364-1.414-1.415 4.95-4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-right-wide-line" xmlns="http://www.w3.org/2000/svg"><path d="m15.632 12-4.748-8.968-1.768.936L13.368 12l-4.252 8.032 1.768.936L15.632 12Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-up-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414L13 7.828Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-article-line" xmlns="http://www.w3.org/2000/svg"><path d="M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Zm-1-2V4H5v16h14ZM7 6h4v4H7V6Zm0 6h10v2H7v-2Zm0 4h10v2H7v-2Zm6-9h4v2h-4V7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-book-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1ZM5 18a2 2 0 0 0 2 2h12V10H7a3.982 3.982 0 0 1-2-.535V18ZM20 7H7a1 1 0 0 1 0-2h13v2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bookmark-fill" xmlns="http://www.w3.org/2000/svg"><path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bookmark-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1Zm13 2H6v15.432l6-3.761 6 3.761V4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bug-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.9a5.002 5.002 0 0 0 4-4.9v-3c0-.701-.144-1.378-.415-2h-9.17A4.981 4.981 0 0 0 7 12v3a5.002 5.002 0 0 0 4 4.9V14h2v5.9Zm-7.464-2.21A6.98 6.98 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.986 6.986 0 0 1 12 22a6.986 6.986 0 0 1-5.438-2.592l-2.526 1.458-1-1.732 2.5-1.443ZM8 6a4 4 0 1 1 8 0H8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-calendar-line" xmlns="http://www.w3.org/2000/svg"><path d="M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2Zm11 10H4v8h16v-8ZM7 5H4v4h16V5h-3v2h-2V5H9v2H7V5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-camera-line" xmlns="http://www.w3.org/2000/svg"><path d="m9.828 5-2 2H4v12h16V7h-3.828l-2-2H9.828ZM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2Zm3 15a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11Zm0-2a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-check-line" xmlns="http://www.w3.org/2000/svg"><path d="m10 15.17 9.192-9.191 1.414 1.414L10 17.999l-6.364-6.364 1.414-1.414 4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-checkbox-multiple-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.992C17 21.55 16.551 22 15.992 22H3.008A1.006 1.006 0 0 1 2 20.992l.003-12.985C2.003 7.451 2.452 7 3.01 7H7Zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3Zm6 2H4.003L4 20h11V9Zm-6.498 9-3.535-3.536L6.38 13.05l2.121 2.122 4.243-4.243 1.414 1.414L8.502 18Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-clipboard-fill" xmlns="http://www.w3.org/2000/svg"><path d="M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.993.993 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6Zm2-2h8v4H8V2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-clipboard-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 4V2h10v2h3.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.993.993 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7Zm0 2H5v14h14V6h-2v2H7V6Zm2-2v2h6V4H9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-close-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 10.586 4.95-4.95 1.414 1.415-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.949 4.95-1.414-1.415 4.95-4.95-4.95-4.95L7.05 5.638l4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-cloud-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 2a7 7 0 0 1 6.992 7.339A6 6 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339 7 7 0 0 1 12 2Zm0 2a5 5 0 0 0-4.994 5.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10a4 4 0 1 0-3.796-5.265l-1.898-.633A6.003 6.003 0 0 1 17 9a5 5 0 0 0-5-5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-cloud-off-line" xmlns="http://www.w3.org/2000/svg"><path d="m3.515 2.1 19.092 19.092-1.415 1.415-2.014-2.015A5.984 5.984 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1ZM7 9c0 .081.002.163.006.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10c.186 0 .369-.013.548-.037L7.03 8.445C7.01 8.627 7 8.812 7 9Zm5-7a7 7 0 0 1 6.992 7.339 6.003 6.003 0 0 1 3.212 8.65l-1.493-1.494a3.999 3.999 0 0 0-5.207-5.206L14.01 9.796C14.891 9.29 15.911 9 17 9a5 5 0 0 0-7.876-4.09l-1.43-1.43A6.97 6.97 0 0 1 12 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-computer-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 16h16V5H4v11Zm9 2v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.992V4.008C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.985c0 .557-.455 1.008-.992 1.008H13Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-contract-right-line" xmlns="http://www.w3.org/2000/svg"><path d="M12.171 11 7.516 6.343 8.929 4.93l7.07 7.07-7.07 7.072-1.414-1.414L12.17 13H3v-2h9.171ZM18 19V5h2v14h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-contract-up-down-line" xmlns="http://www.w3.org/2000/svg"><path d="M5.793 5.207 12 11.414l6.207-6.207-1.414-1.414L12 8.586 7.207 3.793 5.793 5.207Zm12.414 13.586L12 12.586l-6.207 6.207 1.414 1.414L12 15.414l4.793 4.793 1.414-1.414Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-crop-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8Zm2 5V7H9V5h9a1 1 0 0 1 1 1v11h3v2h-3v3h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-delete-bin-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3Zm1 2H6v12h12V8Zm-4.586 6 1.768 1.768-1.414 1.414L12 15.414l-1.768 1.768-1.414-1.414L10.586 14l-1.768-1.768 1.414-1.414L12 12.586l1.768-1.768 1.414 1.414L13.414 14ZM9 4v2h6V4H9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-download-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 10h5l-6 6-6-6h5V3h2v7Zm-9 9h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-draggable" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0 6.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM15.5 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm-1.5 8a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-edit-line" xmlns="http://www.w3.org/2000/svg"><path d="M6.414 15.89 16.556 5.748l-1.414-1.414L5 14.476v1.414h1.414Zm.829 2H3v-4.243L14.435 2.212a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 17.89ZM3 19.89h18v2H3v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-eraser-line" xmlns="http://www.w3.org/2000/svg"><path d="m8.586 8.854-4.95 4.95 5.194 5.194H10v-.001h1.171l3.779-3.779-6.364-6.364ZM10 7.44l6.364 6.364 2.828-2.828-6.364-6.364L10 7.44Zm4 11.557h7v2h-9l-3.998.002-6.487-6.488a1 1 0 0 1 0-1.414L12.12 2.491a1 1 0 0 1 1.414 0l7.779 7.778a1 1 0 0 1 0 1.414L14 18.997Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-expand-left-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.071 4.929 1.414 1.414L6.828 11H16v2H6.828l4.657 4.657-1.414 1.414L3 12l7.071-7.071ZM18.001 19V5h2v14h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-expand-right-line" xmlns="http://www.w3.org/2000/svg"><path d="m17.172 11-4.657-4.657 1.414-1.414L21 12l-7.071 7.071-1.414-1.414L17.172 13H8v-2h9.172ZM4 19V5h2v14H4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-external-link-line" xmlns="http://www.w3.org/2000/svg"><path d="M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6Zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3h8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8Zm-2 1h-5V4H5v16h14V9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H5v16h14V8h-4V4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2h3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-cloud-line" xmlns="http://www.w3.org/2000/svg"><path d="M14.997 2 21 8l.001 4.26a5.472 5.472 0 0 0-2-1.053L19 9h-5V4H5v16h5.06a4.73 4.73 0 0 0 .817 2H3.993a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995ZM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.002.103a2.75 2.75 0 0 1-.58 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.393L14 16.5a3.5 3.5 0 0 1 3.5-3.5Zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.465l.109.01h5.51a.75.75 0 0 0 .19-1.475l-1.013-.283L19 18.12V16.5l-.007-.145A1.5 1.5 0 0 0 17.5 15Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-copy-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1H7ZM5.002 8 5 20h10V8H5.002ZM9 6h8v10h2V4H9v2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-edit-line" xmlns="http://www.w3.org/2000/svg"><path d="m21 6.757-2 2V4h-9v5H5v11h14v-2.757l2-2v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v3.765Zm.778 2.05 1.414 1.415L15.414 18l-1.416-.002.002-1.412 7.778-7.778Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-excel-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m2.859 2.877 12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2Zm-6.8-7 2.8 4h-2.4L9 13.714 7.4 16H5l2.8-4L5 8h2.4L9 10.286 10.6 8H13l-2.8 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-forbid-line" xmlns="http://www.w3.org/2000/svg"><path d="M11.29 20c.215.722.543 1.396.965 2H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.998 2H16l5 5v4.674a6.95 6.95 0 0 0-2-.603V8h-4V4H5v16h6.29ZM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4Zm-1.415-1.415 4.001-4a3 3 0 0 0-4.001 4.001Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-image-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 8V4H5v16h14V8h-4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM11 9.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm6.5 7.5-4-7L8 17h9.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-line" xmlns="http://www.w3.org/2000/svg"><path d="M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6-5.997ZM5.83 8H9V4.83L5.83 8ZM11 4v5a1 1 0 0 1-1 1H5v10h14V4h-8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-music-line" xmlns="http://www.w3.org/2000/svg"><path d="M16 8v2h-3v4.5a2.5 2.5 0 1 1-2-2.45V8h4V4H5v16h14V8h-3ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-pdf-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 4h10v4h4v12H5V4ZM3.998 2A.995.995 0 0 0 3 2.992v18.016a1 1 0 0 0 .993.992h16.014A1 1 0 0 0 21 20.992V7l-5-5H3.998ZM10.5 7.5c0 1.577-.456 3.437-1.225 5.153-.772 1.723-1.814 3.197-2.9 4.066l1.18 1.613c2.927-1.952 6.168-3.29 9.303-2.842l.458-1.939C14.644 12.661 12.5 9.99 12.5 7.5h-2Zm.6 5.972c.267-.597.504-1.216.704-1.843a9.66 9.66 0 0 0 1.706 1.966c-.982.176-1.944.465-2.875.833.165-.314.32-.633.465-.956Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-ppt-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m2.859 2.877 12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2ZM5 8h8v6H7v2H5V8Zm2 2v2h4v-2H7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-text-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8Zm-2 1h-5V4H5v16h14V9ZM8 7h3v2H8V7Zm0 4h8v2H8v-2Zm0 4h8v2H8v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-upload-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H5v16h14V8h-4V4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM13 12v4h-2v-4H8l4-4 4 4h-3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-video-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4v4h4v12H5V4h10ZM3.998 2A.995.995 0 0 0 3 2.992v18.016a1 1 0 0 0 .993.992h16.014A1 1 0 0 0 21 20.992V7l-5-5H3.998Zm11.003 9.667-4.88-3.253a.4.4 0 0 0-.621.333v6.505a.4.4 0 0 0 .622.333L15 12.333a.401.401 0 0 0 0-.666Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-word-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2ZM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM11 8h2v8h-2l-2-2-2 2H5V8h2l.01 5L9 11l2 1.989V8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-zip-line" xmlns="http://www.w3.org/2000/svg"><path d="M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Zm-1-2V4H5v16h14Zm-5-8v5h-4v-3h2v-2h2Zm-2-8h2v2h-2V4Zm-2 2h2v2h-2V6Zm2 2h2v2h-2V8Zm-2 2h2v2h-2v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-folder-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 5v14h16V7h-8.414l-2-2H4Zm8.414 0H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-folder-open-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3h-2V7h-7.414l-2-2H4v11.998L5.5 11h17l-2.31 9.242a1 1 0 0 1-.97.758H3Zm16.938-8H7.062l-1.5 6h12.876l1.5-6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-global-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667ZM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94Zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13ZM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11Zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11Zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-group-line" xmlns="http://www.w3.org/2000/svg"><path d="M2 22a8 8 0 1 1 16 0h-2a6 6 0 0 0-12 0H2Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Zm8.284 3.703A8.002 8.002 0 0 1 23 22h-2a6.001 6.001 0 0 0-3.537-5.473l.82-1.824Zm-.688-11.29A5.5 5.5 0 0 1 21 8.5a5.499 5.499 0 0 1-5 5.478v-2.013a3.5 3.5 0 0 0 1.041-6.609l.555-1.943Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-home-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.389a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1ZM6 19h12V9.157l-6-5.454-6 5.454V19Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-image-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2Zm.008-12c.548 0 .992.445.992.993V13h-2V5H4v13.999L14 9l3 3v2.829l-3-3L6.827 19H14v2H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016ZM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-image-line" xmlns="http://www.w3.org/2000/svg"><path d="M2.992 21A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992ZM20 15V5H4v14L14 9l6 6Zm0 2.828-6-6L6.828 19H20v-1.172ZM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-information-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM11 7h2v2h-2V7Zm0 4h2v6h-2v-6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-link-m" xmlns="http://www.w3.org/2000/svg"><path d="m17.657 14.828-1.415-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414L9.17 6.343l1.415-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414Zm-2.829 2.829-1.414 1.414a6 6 0 0 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 0 0 12 17.657l1.414-1.414 1.414 1.414Zm0-9.9 1.415 1.415-7.072 7.07-1.414-1.414 7.071-7.07Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-link-unlink-m" xmlns="http://www.w3.org/2000/svg"><path d="m17.657 14.828-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414Zm-2.828 2.829-1.415 1.414a6 6 0 0 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 0 0 12 17.657l1.414-1.414 1.415 1.414Zm0-9.9 1.414 1.415-7.071 7.07-1.415-1.414 7.072-7.07ZM5.775 2.293l1.932-.518L8.743 5.64l-1.932.518-1.036-3.864Zm9.483 16.068 1.932-.518 1.035 3.864-1.932.518-1.035-3.864ZM2.293 5.775l3.864 1.036-.518 1.931-3.864-1.035.518-1.932Zm16.068 9.483 3.864 1.035-.518 1.932-3.864-1.036.518-1.931Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-lock-line" xmlns="http://www.w3.org/2000/svg"><path d="M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 14 0v1ZM5 12v8h14v-8H5Zm6 2h2v4h-2v-4Zm6-4V9A5 5 0 0 0 7 9v1h10Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-lock-unlock-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1Zm-2 2v8h14v-8H5Zm5 3h4v2h-4v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-logout-box-r-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3h-2V4H6v16h12v-2h2v3a1 1 0 0 1-1 1H5Zm13-6v-3h-7v-2h7V8l5 4-5 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-mail-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Zm17 4.238-7.928 7.1L4 7.216V19h16V7.238ZM4.511 5l7.55 6.662L19.502 5H4.511Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 4h18v2H3V4Zm0 7h12v2H3v-2Zm0 7h18v2H3v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-add-line" xmlns="http://www.w3.org/2000/svg"><path d="m18 15-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2Zm-7 3v2H3v-2h8Zm10-7v2H3v-2h18Zm0-7v2H3V4h18Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-fold-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 18v2H3v-2h18ZM6.596 3.903 8.01 5.318 4.828 8.5 8.01 11.68l-1.414 1.415L2 8.5l4.596-4.597ZM21 11v2h-9v-2h9Zm0-7v2h-9V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-unfold-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 18v2H3v-2h18ZM17.404 3.903 22 8.5l-4.596 4.596-1.414-1.415L19.172 8.5 15.99 5.318l1.414-1.415ZM12 11v2H3v-2h9Zm0-7v2H3V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-more-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3Zm0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18Zm0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-more-line" xmlns="http://www.w3.org/2000/svg"><path d="M4.5 10.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S6 12.825 6 12s-.675-1.5-1.5-1.5Zm15 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S21 12.825 21 12s-.675-1.5-1.5-1.5Zm-7.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-newspaper-line" xmlns="http://www.w3.org/2000/svg"><path d="M16 20V4H4v15a1 1 0 0 0 1 1h11Zm3 2H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3Zm-1-10v7a1 1 0 1 0 2 0v-7h-2ZM6 6h6v6H6V6Zm2 2v2h2V8H8Zm-2 5h8v2H6v-2Zm0 3h8v2H6v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-pages-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 8v12h14V8H5Zm0-2h14V4H5v2Zm15 16H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1ZM7 10h4v4H7v-4Zm0 6h10v2H7v-2Zm6-5h4v2h-4v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-palette-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2Zm-1.189 16.111a3.664 3.664 0 0 1 3.667-3.667h1.966A3.558 3.558 0 0 0 20 10.89C20 7.139 16.468 4 12 4a8 8 0 0 0-.676 15.972 3.648 3.648 0 0 1-.513-1.86ZM7.5 12a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM12 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-pencil-ruler-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M7.05 14.121 4.93 16.243l2.828 2.828L19.071 7.757 16.243 4.93 14.12 7.05l1.415 1.414L14.12 9.88l-1.414-1.415-1.414 1.415 1.414 1.414-1.414 1.414-1.414-1.414-1.414 1.414 1.414 1.414-1.414 1.415L7.05 14.12Zm9.9-11.313 4.242 4.242a1 1 0 0 1 0 1.414L8.465 21.192a1 1 0 0 1-1.415 0L2.808 16.95a1 1 0 0 1 0-1.414L15.536 2.808a1 1 0 0 1 1.414 0ZM14.12 18.363l1.415-1.414 2.242 2.243h1.414v-1.414l-2.242-2.243 1.414-1.414L21 16.756V21h-4.242l-2.637-2.637ZM5.636 9.878 2.808 7.05a1 1 0 0 1 0-1.415l2.828-2.828a1 1 0 0 1 1.414 0L9.88 5.635 8.464 7.05l-2.12-2.122-1.415 1.415 2.121 2.12-1.414 1.415Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-price-tag-3-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.904 2.1 9.9 1.414 1.414 9.9-9.193 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.413L10.905 2.1Zm.707 2.122L3.833 12l8.485 8.485 7.779-7.778-1.061-7.425-7.425-1.06Zm2.122 6.363a2 2 0 1 1 2.828-2.828 2 2 0 0 1-2.828 2.829Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-profile-line" xmlns="http://www.w3.org/2000/svg"><path d="M21.008 3c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016ZM20 5H4v14h16V5Zm-2 10v2H6v-2h12Zm-6-8v6H6V7h6Zm6 4v2h-4v-2h4Zm-8-2H8v2h2V9Zm8-2v2h-4V7h4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-prohibited-line" xmlns="http://www.w3.org/2000/svg"><path d="M7.094 5.68 18.32 16.906A8 8 0 0 0 7.094 5.68Zm9.812 12.64L5.68 7.094A8 8 0 0 0 16.906 18.32ZM4.929 4.929A9.972 9.972 0 0 1 12 2c5.523 0 10 4.477 10 10a9.972 9.972 0 0 1-2.929 7.071A9.972 9.972 0 0 1 12 22C6.477 22 2 17.523 2 12a9.972 9.972 0 0 1 2.929-7.071Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-question-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm-1-5h2v2h-2v-2Zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-refresh-line" xmlns="http://www.w3.org/2000/svg"><path d="M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795Zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-robot-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 2c0 .444-.193.843-.5 1.118V5h5a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h5V3.118A1.5 1.5 0 1 1 13.5 2ZM6 7a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H6Zm-4 3H0v6h2v-6Zm20 0h2v6h-2v-6ZM9 14.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm6 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-scissors-cut-line" xmlns="http://www.w3.org/2000/svg"><path d="M10 5.997c0 .732-.197 1.419-.54 2.01L12 10.581l6.728-6.727a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414l2.554-2.554-2.554-2.554A4 4 0 1 1 10 5.997Zm-2 0a2 2 0 1 0-4 0 2 2 0 0 0 4 0Zm13.556 14.142a2 2 0 0 1-2.828 0l-5.317-5.317 1.415-1.414 6.73 6.73ZM16 10.997h2v2h-2v-2Zm4 0h2v2h-2v-2Zm-14 0h2v2H6v-2Zm-4 0h2v2H2v-2Zm4 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-search-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-settings-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M3.34 17a10.017 10.017 0 0 1-.979-2.326 3 3 0 0 0 .003-5.347 9.99 9.99 0 0 1 2.5-4.337 3 3 0 0 0 4.632-2.674 9.99 9.99 0 0 1 5.007.003 3 3 0 0 0 4.632 2.671c.578.59 1.093 1.262 1.525 2.01.432.749.757 1.53.978 2.326a3 3 0 0 0-.002 5.347 9.99 9.99 0 0 1-2.501 4.337 3 3 0 0 0-4.632 2.674 9.99 9.99 0 0 1-5.007-.002 3 3 0 0 0-4.631-2.672A10.018 10.018 0 0 1 3.339 17Zm5.66.196a4.992 4.992 0 0 1 2.25 2.77c.499.047 1 .048 1.499.002a4.993 4.993 0 0 1 2.25-2.772 4.993 4.993 0 0 1 3.526-.564c.29-.408.54-.843.748-1.298A4.993 4.993 0 0 1 18 12c0-1.26.47-2.437 1.273-3.334a8.152 8.152 0 0 0-.75-1.298A4.993 4.993 0 0 1 15 6.804a4.993 4.993 0 0 1-2.25-2.77c-.5-.047-1-.048-1.5-.001A4.993 4.993 0 0 1 9 6.804a4.993 4.993 0 0 1-3.526.564c-.29.408-.54.843-.747 1.298A4.993 4.993 0 0 1 6 12c0 1.26-.471 2.437-1.273 3.334a8.16 8.16 0 0 0 .75 1.298A4.993 4.993 0 0 1 9 17.196ZM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-shake-hands-line" xmlns="http://www.w3.org/2000/svg"><path d="M11.861 2.39a3 3 0 0 1 3.275-.034L19.29 5H21a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-1.52a2.65 2.65 0 0 1-1.285 2.449l-5.093 3.056a2 2 0 0 1-2.07-.008c-.7.62-1.779.688-2.561.073l-5.14-4.039a2.001 2.001 0 0 1-.565-2.446A2 2 0 0 1 2 13.51V6a1 1 0 0 1 1-1h4.947l3.914-2.61ZM4.173 13.646l.692-.605a3 3 0 0 1 4.195.24l2.702 2.972a3 3 0 0 1 .396 3.487l5.008-3.005a.657.657 0 0 0 .279-.79l-4.427-6.198a1 1 0 0 0-1.101-.377l-2.486.745a3 3 0 0 1-2.983-.752l-.293-.292A1.997 1.997 0 0 1 5.68 7H4v6.51l.173.135Zm9.89-9.602a1 1 0 0 0-1.093.012l-5.4 3.6.292.293a1 1 0 0 0 .995.25l2.485-.745a3 3 0 0 1 3.303 1.13L18.515 14H20V7h-.709a2 2 0 0 1-1.074-.313l-4.155-2.644ZM6.181 14.545l-1.616 1.414 5.14 4.039.705-1.232a1 1 0 0 0-.129-1.169L7.58 14.625a1 1 0 0 0-1.398-.08Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-shopping-cart-line" xmlns="http://www.w3.org/2000/svg"><path d="M4.005 16V4h-2V2h3a1 1 0 0 1 1 1v12h12.438l2-8H8.005V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5.004a1 1 0 0 1-1-1Zm2 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4Zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-skip-left-line" xmlns="http://www.w3.org/2000/svg"><path d="m13.914 12 4.793-4.793-1.414-1.414L11.086 12l6.207 6.207 1.414-1.414L13.914 12ZM7 18V6h2v12H7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-skip-right-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.086 12-4.793 4.793 1.414 1.414L12.914 12 6.707 5.793 5.293 7.207 10.086 12ZM17 6v12h-2V6h2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-sort-asc" xmlns="http://www.w3.org/2000/svg"><path d="m19 3 4 5h-3v12h-2V8h-3l4-5Zm-5 15v2H3v-2h11Zm0-7v2H3v-2h11Zm-2-7v2H3V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-sort-desc" xmlns="http://www.w3.org/2000/svg"><path d="M20 4v12h3l-4 5-4-5h3V4h2Zm-8 14v2H3v-2h9Zm2-7v2H3v-2h11Zm0-7v2H3V4h11Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-stack-line" xmlns="http://www.w3.org/2000/svg"><path d="m20.083 15.2 1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85Zm0-4.7 1.202.721a.5.5 0 0 1 0 .858L12 17.649l-9.285-5.57a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85Zm-7.569-9.191 8.771 5.262a.5.5 0 0 1 0 .858L12 12.999 2.715 7.43a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0ZM12 3.332 5.887 7 12 10.668 18.113 7 12 3.332Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-table-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 8h16V5H4v3Zm10 11v-9h-4v9h4Zm2 0h4v-9h-4v9Zm-8 0v-9H4v9h4ZM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-ticket-line" xmlns="http://www.w3.org/2000/svg"><path d="M21.005 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 0 0 0 5V20a1 1 0 0 1-1 1h-18a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 0 0 0-5V4a1 1 0 0 1 1-1h18Zm-1 2h-16v2.968l.156.08a4.5 4.5 0 0 1 2.339 3.74l.005.212a4.499 4.499 0 0 1-2.344 3.95l-.156.08V19h16v-2.97l-.156-.08a4.5 4.5 0 0 1-2.34-3.738L17.506 12c0-1.704.947-3.187 2.344-3.951l.156-.081V5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-translate-2" xmlns="http://www.w3.org/2000/svg"><path d="m18.5 10 4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16.5 10h2ZM10 2v2h6v2h-1.968a18.221 18.221 0 0 1-3.62 6.301 14.865 14.865 0 0 0 2.335 1.707l-.75 1.878A17.016 17.016 0 0 1 9 13.725a16.677 16.677 0 0 1-6.201 3.548l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042A18.078 18.078 0 0 1 4.767 8h2.24A16.031 16.031 0 0 0 9 10.877a16.165 16.165 0 0 0 2.91-4.876L2 6V4h6V2h2Zm7.5 10.885L16.253 16h2.492L17.5 12.885Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-upload-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7Zm9-10v7h-2V9H6l6-6 6 6h-5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-upload-cloud-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 12.586 4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586ZM12 2a7.001 7.001 0 0 1 6.954 6.194A5.5 5.5 0 0 1 18 18.978v-2.014a3.5 3.5 0 1 0-1.111-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-user-fill" xmlns="http://www.w3.org/2000/svg"><path d="M4 22a8 8 0 1 1 16 0H4Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-user-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 22a8 8 0 1 1 16 0h-2a6 6 0 0 0-12 0H4Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-window-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18Zm-1 8H4v8h16v-8Zm0-6H4v4h16V5Zm-9 1v2H9V6h2ZM7 6v2H5V6h2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-zoom-in-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15ZM10 10V7h2v3h3v2h-3v3h-2v-3H7v-2h3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-zoom-out-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15ZM7 10h8v2H7v-2Z"/></symbol></svg>
1
+ <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2h6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-alert-line" xmlns="http://www.w3.org/2000/svg"><path d="m12.866 3 9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0Zm-8.66 16h15.588L12 5.5 4.206 19ZM11 16h2v2h-2v-2Zm0-7h2v5h-2V9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-archive-drawer-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992ZM19 11V4H5v7h14Zm0 2H5v7h14v-7ZM9 6h6v2H9V6Zm0 9h6v2H9v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-down-line" xmlns="http://www.w3.org/2000/svg"><path d="m13 16.172 5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2v12.172Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-down-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 13.171 4.95-4.95 1.414 1.415L12 16 5.636 9.636 7.05 8.222l4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-right-line" xmlns="http://www.w3.org/2000/svg"><path d="M16.05 12.05 21 17l-4.95 4.95-1.414-1.415L17.172 18H4v-2h13.172l-2.536-2.535 1.414-1.414Zm-8.1-10 1.414 1.414-2.536 2.535H20v2H6.828l2.536 2.536L7.95 11.95 3 7l4.95-4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.828 12 4.95 4.95-1.414 1.415L8 12l6.364-6.364 1.414 1.414-4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-left-wide-line" xmlns="http://www.w3.org/2000/svg"><path d="m8.368 12 4.748-8.968 1.768.936L10.632 12l4.252 8.032-1.768.936L8.368 12Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-right-s-line" xmlns="http://www.w3.org/2000/svg"><path d="m13.172 12-4.95-4.95 1.414-1.413L16 12l-6.364 6.364-1.414-1.415 4.95-4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-right-wide-line" xmlns="http://www.w3.org/2000/svg"><path d="m15.632 12-4.748-8.968-1.768.936L13.368 12l-4.252 8.032 1.768.936L15.632 12Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-arrow-up-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414L13 7.828Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-article-line" xmlns="http://www.w3.org/2000/svg"><path d="M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Zm-1-2V4H5v16h14ZM7 6h4v4H7V6Zm0 6h10v2H7v-2Zm0 4h10v2H7v-2Zm6-9h4v2h-4V7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-book-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1ZM5 18a2 2 0 0 0 2 2h12V10H7a3.982 3.982 0 0 1-2-.535V18ZM20 7H7a1 1 0 0 1 0-2h13v2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bookmark-fill" xmlns="http://www.w3.org/2000/svg"><path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bookmark-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1Zm13 2H6v15.432l6-3.761 6 3.761V4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-bug-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.9a5.002 5.002 0 0 0 4-4.9v-3c0-.701-.144-1.378-.415-2h-9.17A4.981 4.981 0 0 0 7 12v3a5.002 5.002 0 0 0 4 4.9V14h2v5.9Zm-7.464-2.21A6.98 6.98 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.986 6.986 0 0 1 12 22a6.986 6.986 0 0 1-5.438-2.592l-2.526 1.458-1-1.732 2.5-1.443ZM8 6a4 4 0 1 1 8 0H8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-calendar-line" xmlns="http://www.w3.org/2000/svg"><path d="M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2Zm11 10H4v8h16v-8ZM7 5H4v4h16V5h-3v2h-2V5H9v2H7V5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-camera-line" xmlns="http://www.w3.org/2000/svg"><path d="m9.828 5-2 2H4v12h16V7h-3.828l-2-2H9.828ZM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2Zm3 15a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11Zm0-2a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-check-line" xmlns="http://www.w3.org/2000/svg"><path d="m10 15.17 9.192-9.191 1.414 1.414L10 17.999l-6.364-6.364 1.414-1.414 4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-checkbox-multiple-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.992C17 21.55 16.551 22 15.992 22H3.008A1.006 1.006 0 0 1 2 20.992l.003-12.985C2.003 7.451 2.452 7 3.01 7H7Zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3Zm6 2H4.003L4 20h11V9Zm-6.498 9-3.535-3.536L6.38 13.05l2.121 2.122 4.243-4.243 1.414 1.414L8.502 18Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-clipboard-fill" xmlns="http://www.w3.org/2000/svg"><path d="M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.993.993 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6Zm2-2h8v4H8V2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-clipboard-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 4V2h10v2h3.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.993.993 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7Zm0 2H5v14h14V6h-2v2H7V6Zm2-2v2h6V4H9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-close-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 10.586 4.95-4.95 1.414 1.415-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.949 4.95-1.414-1.415 4.95-4.95-4.95-4.95L7.05 5.638l4.95 4.95Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-cloud-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 2a7 7 0 0 1 6.992 7.339A6 6 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339 7 7 0 0 1 12 2Zm0 2a5 5 0 0 0-4.994 5.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10a4 4 0 1 0-3.796-5.265l-1.898-.633A6.003 6.003 0 0 1 17 9a5 5 0 0 0-5-5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-cloud-off-line" xmlns="http://www.w3.org/2000/svg"><path d="m3.515 2.1 19.092 19.092-1.415 1.415-2.014-2.015A5.984 5.984 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1ZM7 9c0 .081.002.163.006.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10c.186 0 .369-.013.548-.037L7.03 8.445C7.01 8.627 7 8.812 7 9Zm5-7a7 7 0 0 1 6.992 7.339 6.003 6.003 0 0 1 3.212 8.65l-1.493-1.494a3.999 3.999 0 0 0-5.207-5.206L14.01 9.796C14.891 9.29 15.911 9 17 9a5 5 0 0 0-7.876-4.09l-1.43-1.43A6.97 6.97 0 0 1 12 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-computer-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 16h16V5H4v11Zm9 2v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.992V4.008C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.985c0 .557-.455 1.008-.992 1.008H13Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-contract-right-line" xmlns="http://www.w3.org/2000/svg"><path d="M12.171 11 7.516 6.343 8.929 4.93l7.07 7.07-7.07 7.072-1.414-1.414L12.17 13H3v-2h9.171ZM18 19V5h2v14h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-contract-up-down-line" xmlns="http://www.w3.org/2000/svg"><path d="M5.793 5.207 12 11.414l6.207-6.207-1.414-1.414L12 8.586 7.207 3.793 5.793 5.207Zm12.414 13.586L12 12.586l-6.207 6.207 1.414 1.414L12 15.414l4.793 4.793 1.414-1.414Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-crop-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8Zm2 5V7H9V5h9a1 1 0 0 1 1 1v11h3v2h-3v3h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-delete-bin-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3Zm1 2H6v12h12V8Zm-4.586 6 1.768 1.768-1.414 1.414L12 15.414l-1.768 1.768-1.414-1.414L10.586 14l-1.768-1.768 1.414-1.414L12 12.586l1.768-1.768 1.414 1.414L13.414 14ZM9 4v2h6V4H9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-download-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M13 10h5l-6 6-6-6h5V3h2v7Zm-9 9h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-draggable" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0 6.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM15.5 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm-1.5 8a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-edit-line" xmlns="http://www.w3.org/2000/svg"><path d="M6.414 15.89 16.556 5.748l-1.414-1.414L5 14.476v1.414h1.414Zm.829 2H3v-4.243L14.435 2.212a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 17.89ZM3 19.89h18v2H3v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-eraser-line" xmlns="http://www.w3.org/2000/svg"><path d="m8.586 8.854-4.95 4.95 5.194 5.194H10v-.001h1.171l3.779-3.779-6.364-6.364ZM10 7.44l6.364 6.364 2.828-2.828-6.364-6.364L10 7.44Zm4 11.557h7v2h-9l-3.998.002-6.487-6.488a1 1 0 0 1 0-1.414L12.12 2.491a1 1 0 0 1 1.414 0l7.779 7.778a1 1 0 0 1 0 1.414L14 18.997Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-expand-left-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.071 4.929 1.414 1.414L6.828 11H16v2H6.828l4.657 4.657-1.414 1.414L3 12l7.071-7.071ZM18.001 19V5h2v14h-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-expand-right-line" xmlns="http://www.w3.org/2000/svg"><path d="m17.172 11-4.657-4.657 1.414-1.414L21 12l-7.071 7.071-1.414-1.414L17.172 13H8v-2h9.172ZM4 19V5h2v14H4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-external-link-line" xmlns="http://www.w3.org/2000/svg"><path d="M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6Zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3h8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8Zm-2 1h-5V4H5v16h14V9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H5v16h14V8h-4V4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2h3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-cloud-line" xmlns="http://www.w3.org/2000/svg"><path d="M14.997 2 21 8l.001 4.26a5.472 5.472 0 0 0-2-1.053L19 9h-5V4H5v16h5.06a4.73 4.73 0 0 0 .817 2H3.993a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995ZM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.002.103a2.75 2.75 0 0 1-.58 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.393L14 16.5a3.5 3.5 0 0 1 3.5-3.5Zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.465l.109.01h5.51a.75.75 0 0 0 .19-1.475l-1.013-.283L19 18.12V16.5l-.007-.145A1.5 1.5 0 0 0 17.5 15Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-copy-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1H7ZM5.002 8 5 20h10V8H5.002ZM9 6h8v10h2V4H9v2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-damage-line" xmlns="http://www.w3.org/2000/svg"><path d="M19 9h-5V4H5v7.857l1.5 1.393L10 9.5l3 5 2-2.5 3 3-3-.5-2 2.5-3-4-3 3.5-2-1.25V20h14V9Zm2-1v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-edit-line" xmlns="http://www.w3.org/2000/svg"><path d="m21 6.757-2 2V4h-9v5H5v11h14v-2.757l2-2v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v3.765Zm.778 2.05 1.414 1.415L15.414 18l-1.416-.002.002-1.412 7.778-7.778Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-excel-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m2.859 2.877 12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2Zm-6.8-7 2.8 4h-2.4L9 13.714 7.4 16H5l2.8-4L5 8h2.4L9 10.286 10.6 8H13l-2.8 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-forbid-line" xmlns="http://www.w3.org/2000/svg"><path d="M11.29 20c.215.722.543 1.396.965 2H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.998 2H16l5 5v4.674a6.95 6.95 0 0 0-2-.603V8h-4V4H5v16h6.29ZM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4Zm-1.415-1.415 4.001-4a3 3 0 0 0-4.001 4.001Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-image-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 8V4H5v16h14V8h-4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM11 9.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm6.5 7.5-4-7L8 17h9.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-line" xmlns="http://www.w3.org/2000/svg"><path d="M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6-5.997ZM5.83 8H9V4.83L5.83 8ZM11 4v5a1 1 0 0 1-1 1H5v10h14V4h-8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-music-line" xmlns="http://www.w3.org/2000/svg"><path d="M16 8v2h-3v4.5a2.5 2.5 0 1 1-2-2.45V8h4V4H5v16h14V8h-3ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-pdf-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 4h10v4h4v12H5V4ZM3.998 2A.995.995 0 0 0 3 2.992v18.016a1 1 0 0 0 .993.992h16.014A1 1 0 0 0 21 20.992V7l-5-5H3.998ZM10.5 7.5c0 1.577-.456 3.437-1.225 5.153-.772 1.723-1.814 3.197-2.9 4.066l1.18 1.613c2.927-1.952 6.168-3.29 9.303-2.842l.458-1.939C14.644 12.661 12.5 9.99 12.5 7.5h-2Zm.6 5.972c.267-.597.504-1.216.704-1.843a9.66 9.66 0 0 0 1.706 1.966c-.982.176-1.944.465-2.875.833.165-.314.32-.633.465-.956Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-ppt-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m2.859 2.877 12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2ZM5 8h8v6H7v2H5V8Zm2 2v2h4v-2H7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-text-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8Zm-2 1h-5V4H5v16h14V9ZM8 7h3v2H8V7Zm0 4h8v2H8v-2Zm0 4h8v2H8v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-upload-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H5v16h14V8h-4V4ZM3 2.992C3 2.444 3.447 2 3.998 2H16l5 5v13.992A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992ZM13 12v4h-2v-4H8l4-4 4 4h-3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-video-line" xmlns="http://www.w3.org/2000/svg"><path d="M15 4v4h4v12H5V4h10ZM3.998 2A.995.995 0 0 0 3 2.992v18.016a1 1 0 0 0 .993.992h16.014A1 1 0 0 0 21 20.992V7l-5-5H3.998Zm11.003 9.667-4.88-3.253a.4.4 0 0 0-.621.333v6.505a.4.4 0 0 0 .622.333L15 12.333a.401.401 0 0 0 0-.666Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-word-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2ZM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.494v20.848a.5.5 0 0 1-.57.494L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99ZM4 4.735v14.53l10 1.429V3.306L4 4.735ZM11 8h2v8h-2l-2-2-2 2H5V8h2l.01 5L9 11l2 1.989V8Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-file-zip-line" xmlns="http://www.w3.org/2000/svg"><path d="M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Zm-1-2V4H5v16h14Zm-5-8v5h-4v-3h2v-2h2Zm-2-8h2v2h-2V4Zm-2 2h2v2h-2V6Zm2 2h2v2h-2V8Zm-2 2h2v2h-2v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-folder-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 5v14h16V7h-8.414l-2-2H4Zm8.414 0H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-folder-open-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3h-2V7h-7.414l-2-2H4v11.998L5.5 11h17l-2.31 9.242a1 1 0 0 1-.97.758H3Zm16.938-8H7.062l-1.5 6h12.876l1.5-6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-global-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667ZM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94Zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13ZM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11Zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11Zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-group-line" xmlns="http://www.w3.org/2000/svg"><path d="M2 22a8 8 0 1 1 16 0h-2a6 6 0 0 0-12 0H2Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Zm8.284 3.703A8.002 8.002 0 0 1 23 22h-2a6.001 6.001 0 0 0-3.537-5.473l.82-1.824Zm-.688-11.29A5.5 5.5 0 0 1 21 8.5a5.499 5.499 0 0 1-5 5.478v-2.013a3.5 3.5 0 0 0 1.041-6.609l.555-1.943Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-home-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.389a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1ZM6 19h12V9.157l-6-5.454-6 5.454V19Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-image-add-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2Zm.008-12c.548 0 .992.445.992.993V13h-2V5H4v13.999L14 9l3 3v2.829l-3-3L6.827 19H14v2H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016ZM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-image-line" xmlns="http://www.w3.org/2000/svg"><path d="M2.992 21A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992ZM20 15V5H4v14L14 9l6 6Zm0 2.828-6-6L6.828 19H20v-1.172ZM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-information-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM11 7h2v2h-2V7Zm0 4h2v6h-2v-6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-link-m" xmlns="http://www.w3.org/2000/svg"><path d="m17.657 14.828-1.415-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414L9.17 6.343l1.415-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414Zm-2.829 2.829-1.414 1.414a6 6 0 0 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 0 0 12 17.657l1.414-1.414 1.414 1.414Zm0-9.9 1.415 1.415-7.072 7.07-1.414-1.414 7.071-7.07Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-link-unlink-m" xmlns="http://www.w3.org/2000/svg"><path d="m17.657 14.828-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414Zm-2.828 2.829-1.415 1.414a6 6 0 0 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 0 0 12 17.657l1.414-1.414 1.415 1.414Zm0-9.9 1.414 1.415-7.071 7.07-1.415-1.414 7.072-7.07ZM5.775 2.293l1.932-.518L8.743 5.64l-1.932.518-1.036-3.864Zm9.483 16.068 1.932-.518 1.035 3.864-1.932.518-1.035-3.864ZM2.293 5.775l3.864 1.036-.518 1.931-3.864-1.035.518-1.932Zm16.068 9.483 3.864 1.035-.518 1.932-3.864-1.036.518-1.931Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-lock-line" xmlns="http://www.w3.org/2000/svg"><path d="M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 14 0v1ZM5 12v8h14v-8H5Zm6 2h2v4h-2v-4Zm6-4V9A5 5 0 0 0 7 9v1h10Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-lock-unlock-line" xmlns="http://www.w3.org/2000/svg"><path d="M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1Zm-2 2v8h14v-8H5Zm5 3h4v2h-4v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-logout-box-r-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3h-2V4H6v16h12v-2h2v3a1 1 0 0 1-1 1H5Zm13-6v-3h-7v-2h7V8l5 4-5 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-mail-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Zm17 4.238-7.928 7.1L4 7.216V19h16V7.238ZM4.511 5l7.55 6.662L19.502 5H4.511Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M3 4h18v2H3V4Zm0 7h12v2H3v-2Zm0 7h18v2H3v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-add-line" xmlns="http://www.w3.org/2000/svg"><path d="m18 15-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2Zm-7 3v2H3v-2h8Zm10-7v2H3v-2h18Zm0-7v2H3V4h18Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-fold-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 18v2H3v-2h18ZM6.596 3.903 8.01 5.318 4.828 8.5 8.01 11.68l-1.414 1.415L2 8.5l4.596-4.597ZM21 11v2h-9v-2h9Zm0-7v2h-9V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-menu-unfold-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 18v2H3v-2h18ZM17.404 3.903 22 8.5l-4.596 4.596-1.414-1.415L19.172 8.5 15.99 5.318l1.414-1.415ZM12 11v2H3v-2h9Zm0-7v2H3V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-more-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3Zm0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18Zm0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-more-line" xmlns="http://www.w3.org/2000/svg"><path d="M4.5 10.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S6 12.825 6 12s-.675-1.5-1.5-1.5Zm15 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S21 12.825 21 12s-.675-1.5-1.5-1.5Zm-7.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-newspaper-line" xmlns="http://www.w3.org/2000/svg"><path d="M16 20V4H4v15a1 1 0 0 0 1 1h11Zm3 2H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3Zm-1-10v7a1 1 0 1 0 2 0v-7h-2ZM6 6h6v6H6V6Zm2 2v2h2V8H8Zm-2 5h8v2H6v-2Zm0 3h8v2H6v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-pages-line" xmlns="http://www.w3.org/2000/svg"><path d="M5 8v12h14V8H5Zm0-2h14V4H5v2Zm15 16H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1ZM7 10h4v4H7v-4Zm0 6h10v2H7v-2Zm6-5h4v2h-4v-2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-palette-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2Zm-1.189 16.111a3.664 3.664 0 0 1 3.667-3.667h1.966A3.558 3.558 0 0 0 20 10.89C20 7.139 16.468 4 12 4a8 8 0 0 0-.676 15.972 3.648 3.648 0 0 1-.513-1.86ZM7.5 12a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM12 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-pencil-ruler-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M7.05 14.121 4.93 16.243l2.828 2.828L19.071 7.757 16.243 4.93 14.12 7.05l1.415 1.414L14.12 9.88l-1.414-1.415-1.414 1.415 1.414 1.414-1.414 1.414-1.414-1.414-1.414 1.414 1.414 1.414-1.414 1.415L7.05 14.12Zm9.9-11.313 4.242 4.242a1 1 0 0 1 0 1.414L8.465 21.192a1 1 0 0 1-1.415 0L2.808 16.95a1 1 0 0 1 0-1.414L15.536 2.808a1 1 0 0 1 1.414 0ZM14.12 18.363l1.415-1.414 2.242 2.243h1.414v-1.414l-2.242-2.243 1.414-1.414L21 16.756V21h-4.242l-2.637-2.637ZM5.636 9.878 2.808 7.05a1 1 0 0 1 0-1.415l2.828-2.828a1 1 0 0 1 1.414 0L9.88 5.635 8.464 7.05l-2.12-2.122-1.415 1.415 2.121 2.12-1.414 1.415Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-price-tag-3-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.904 2.1 9.9 1.414 1.414 9.9-9.193 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.413L10.905 2.1Zm.707 2.122L3.833 12l8.485 8.485 7.779-7.778-1.061-7.425-7.425-1.06Zm2.122 6.363a2 2 0 1 1 2.828-2.828 2 2 0 0 1-2.828 2.829Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-profile-line" xmlns="http://www.w3.org/2000/svg"><path d="M21.008 3c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016ZM20 5H4v14h16V5Zm-2 10v2H6v-2h12Zm-6-8v6H6V7h6Zm6 4v2h-4v-2h4Zm-8-2H8v2h2V9Zm8-2v2h-4V7h4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-prohibited-line" xmlns="http://www.w3.org/2000/svg"><path d="M7.094 5.68 18.32 16.906A8 8 0 0 0 7.094 5.68Zm9.812 12.64L5.68 7.094A8 8 0 0 0 16.906 18.32ZM4.929 4.929A9.972 9.972 0 0 1 12 2c5.523 0 10 4.477 10 10a9.972 9.972 0 0 1-2.929 7.071A9.972 9.972 0 0 1 12 22C6.477 22 2 17.523 2 12a9.972 9.972 0 0 1 2.929-7.071Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-question-line" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm-1-5h2v2h-2v-2Zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-refresh-line" xmlns="http://www.w3.org/2000/svg"><path d="M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795Zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-robot-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 2c0 .444-.193.843-.5 1.118V5h5a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h5V3.118A1.5 1.5 0 1 1 13.5 2ZM6 7a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H6Zm-4 3H0v6h2v-6Zm20 0h2v6h-2v-6ZM9 14.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm6 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-scissors-cut-line" xmlns="http://www.w3.org/2000/svg"><path d="M10 5.997c0 .732-.197 1.419-.54 2.01L12 10.581l6.728-6.727a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414l2.554-2.554-2.554-2.554A4 4 0 1 1 10 5.997Zm-2 0a2 2 0 1 0-4 0 2 2 0 0 0 4 0Zm13.556 14.142a2 2 0 0 1-2.828 0l-5.317-5.317 1.415-1.414 6.73 6.73ZM16 10.997h2v2h-2v-2Zm4 0h2v2h-2v-2Zm-14 0h2v2H6v-2Zm-4 0h2v2H2v-2Zm4 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-search-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-settings-3-line" xmlns="http://www.w3.org/2000/svg"><path d="M3.34 17a10.017 10.017 0 0 1-.979-2.326 3 3 0 0 0 .003-5.347 9.99 9.99 0 0 1 2.5-4.337 3 3 0 0 0 4.632-2.674 9.99 9.99 0 0 1 5.007.003 3 3 0 0 0 4.632 2.671c.578.59 1.093 1.262 1.525 2.01.432.749.757 1.53.978 2.326a3 3 0 0 0-.002 5.347 9.99 9.99 0 0 1-2.501 4.337 3 3 0 0 0-4.632 2.674 9.99 9.99 0 0 1-5.007-.002 3 3 0 0 0-4.631-2.672A10.018 10.018 0 0 1 3.339 17Zm5.66.196a4.992 4.992 0 0 1 2.25 2.77c.499.047 1 .048 1.499.002a4.993 4.993 0 0 1 2.25-2.772 4.993 4.993 0 0 1 3.526-.564c.29-.408.54-.843.748-1.298A4.993 4.993 0 0 1 18 12c0-1.26.47-2.437 1.273-3.334a8.152 8.152 0 0 0-.75-1.298A4.993 4.993 0 0 1 15 6.804a4.993 4.993 0 0 1-2.25-2.77c-.5-.047-1-.048-1.5-.001A4.993 4.993 0 0 1 9 6.804a4.993 4.993 0 0 1-3.526.564c-.29.408-.54.843-.747 1.298A4.993 4.993 0 0 1 6 12c0 1.26-.471 2.437-1.273 3.334a8.16 8.16 0 0 0 .75 1.298A4.993 4.993 0 0 1 9 17.196ZM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-shake-hands-line" xmlns="http://www.w3.org/2000/svg"><path d="M11.861 2.39a3 3 0 0 1 3.275-.034L19.29 5H21a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-1.52a2.65 2.65 0 0 1-1.285 2.449l-5.093 3.056a2 2 0 0 1-2.07-.008c-.7.62-1.779.688-2.561.073l-5.14-4.039a2.001 2.001 0 0 1-.565-2.446A2 2 0 0 1 2 13.51V6a1 1 0 0 1 1-1h4.947l3.914-2.61ZM4.173 13.646l.692-.605a3 3 0 0 1 4.195.24l2.702 2.972a3 3 0 0 1 .396 3.487l5.008-3.005a.657.657 0 0 0 .279-.79l-4.427-6.198a1 1 0 0 0-1.101-.377l-2.486.745a3 3 0 0 1-2.983-.752l-.293-.292A1.997 1.997 0 0 1 5.68 7H4v6.51l.173.135Zm9.89-9.602a1 1 0 0 0-1.093.012l-5.4 3.6.292.293a1 1 0 0 0 .995.25l2.485-.745a3 3 0 0 1 3.303 1.13L18.515 14H20V7h-.709a2 2 0 0 1-1.074-.313l-4.155-2.644ZM6.181 14.545l-1.616 1.414 5.14 4.039.705-1.232a1 1 0 0 0-.129-1.169L7.58 14.625a1 1 0 0 0-1.398-.08Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-shopping-cart-line" xmlns="http://www.w3.org/2000/svg"><path d="M4.005 16V4h-2V2h3a1 1 0 0 1 1 1v12h12.438l2-8H8.005V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5.004a1 1 0 0 1-1-1Zm2 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4Zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-skip-left-line" xmlns="http://www.w3.org/2000/svg"><path d="m13.914 12 4.793-4.793-1.414-1.414L11.086 12l6.207 6.207 1.414-1.414L13.914 12ZM7 18V6h2v12H7Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-skip-right-line" xmlns="http://www.w3.org/2000/svg"><path d="m10.086 12-4.793 4.793 1.414 1.414L12.914 12 6.707 5.793 5.293 7.207 10.086 12ZM17 6v12h-2V6h2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-sort-asc" xmlns="http://www.w3.org/2000/svg"><path d="m19 3 4 5h-3v12h-2V8h-3l4-5Zm-5 15v2H3v-2h11Zm0-7v2H3v-2h11Zm-2-7v2H3V4h9Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-sort-desc" xmlns="http://www.w3.org/2000/svg"><path d="M20 4v12h3l-4 5-4-5h3V4h2Zm-8 14v2H3v-2h9Zm2-7v2H3v-2h11Zm0-7v2H3V4h11Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-stack-line" xmlns="http://www.w3.org/2000/svg"><path d="m20.083 15.2 1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85Zm0-4.7 1.202.721a.5.5 0 0 1 0 .858L12 17.649l-9.285-5.57a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85Zm-7.569-9.191 8.771 5.262a.5.5 0 0 1 0 .858L12 12.999 2.715 7.43a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0ZM12 3.332 5.887 7 12 10.668 18.113 7 12 3.332Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-table-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 8h16V5H4v3Zm10 11v-9h-4v9h4Zm2 0h4v-9h-4v9Zm-8 0v-9H4v9h4ZM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-ticket-line" xmlns="http://www.w3.org/2000/svg"><path d="M21.005 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 0 0 0 5V20a1 1 0 0 1-1 1h-18a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 0 0 0-5V4a1 1 0 0 1 1-1h18Zm-1 2h-16v2.968l.156.08a4.5 4.5 0 0 1 2.339 3.74l.005.212a4.499 4.499 0 0 1-2.344 3.95l-.156.08V19h16v-2.97l-.156-.08a4.5 4.5 0 0 1-2.34-3.738L17.506 12c0-1.704.947-3.187 2.344-3.951l.156-.081V5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-translate-2" xmlns="http://www.w3.org/2000/svg"><path d="m18.5 10 4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16.5 10h2ZM10 2v2h6v2h-1.968a18.221 18.221 0 0 1-3.62 6.301 14.865 14.865 0 0 0 2.335 1.707l-.75 1.878A17.016 17.016 0 0 1 9 13.725a16.677 16.677 0 0 1-6.201 3.548l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042A18.078 18.078 0 0 1 4.767 8h2.24A16.031 16.031 0 0 0 9 10.877a16.165 16.165 0 0 0 2.91-4.876L2 6V4h6V2h2Zm7.5 10.885L16.253 16h2.492L17.5 12.885Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-upload-2-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7Zm9-10v7h-2V9H6l6-6 6 6h-5Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-upload-cloud-2-line" xmlns="http://www.w3.org/2000/svg"><path d="m12 12.586 4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586ZM12 2a7.001 7.001 0 0 1 6.954 6.194A5.5 5.5 0 0 1 18 18.978v-2.014a3.5 3.5 0 1 0-1.111-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-user-fill" xmlns="http://www.w3.org/2000/svg"><path d="M4 22a8 8 0 1 1 16 0H4Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-user-line" xmlns="http://www.w3.org/2000/svg"><path d="M4 22a8 8 0 1 1 16 0h-2a6 6 0 0 0-12 0H4Zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6Zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-window-line" xmlns="http://www.w3.org/2000/svg"><path d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18Zm-1 8H4v8h16v-8Zm0-6H4v4h16V5Zm-9 1v2H9V6h2ZM7 6v2H5V6h2Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-zoom-in-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15ZM10 10V7h2v3h3v2h-3v3h-2v-3H7v-2h3Z"/></symbol><symbol viewBox="0 0 24 24" fill="currentColor" id="ri-zoom-out-line" xmlns="http://www.w3.org/2000/svg"><path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617Zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15ZM7 10h8v2H7v-2Z"/></symbol></svg>
@@ -0,0 +1,39 @@
1
+ module Alchemy
2
+ module Admin
3
+ class ElementSelect < ViewComponent::Base
4
+ delegate :alchemy, to: :helpers
5
+
6
+ attr_reader :elements, :field_name
7
+
8
+ def initialize(elements, field_name: "element[name]")
9
+ @field_name = field_name
10
+ @elements = elements
11
+ end
12
+
13
+ def call
14
+ text_field_tag(field_name, nil, {
15
+ "data-options": elements_options.to_json,
16
+ "data-placeholder": Alchemy.t(:select_element),
17
+ is: "alchemy-element-select",
18
+ autofocus: true,
19
+ required: true,
20
+ value: elements.many? ? nil : elements.first&.name
21
+ })
22
+ end
23
+
24
+ private
25
+
26
+ def elements_options
27
+ return [] if elements.nil?
28
+
29
+ elements.sort_by(&:name).map do |element|
30
+ {
31
+ text: Element.display_name_for(element.name),
32
+ icon: element.icon_file,
33
+ id: element.name
34
+ }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,13 +1,15 @@
1
1
  module Alchemy
2
2
  module Ingredients
3
3
  class DatetimeView < BaseView
4
+ DEFAULT_DATE_FORMAT = :"alchemy.default"
5
+
4
6
  attr_reader :date_format
5
7
 
6
8
  # @param ingredient [Alchemy::Ingredient]
7
9
  # @param date_format [String] The date format to use. Use either a strftime format string, a I18n format symbol or "rfc822". Defaults to "time.formats.alchemy.default".
8
- def initialize(ingredient, date_format: :"alchemy.default", html_options: {})
10
+ def initialize(ingredient, date_format: nil, html_options: {})
9
11
  super(ingredient)
10
- @date_format = settings_value(:date_format, value: date_format)
12
+ @date_format = settings_value(:date_format, value: date_format) || DEFAULT_DATE_FORMAT
11
13
  end
12
14
 
13
15
  def call
@@ -11,6 +11,7 @@ module Alchemy
11
11
  add_alchemy_filter :recent, type: :checkbox
12
12
  add_alchemy_filter :last_upload, type: :checkbox
13
13
  add_alchemy_filter :without_tag, type: :checkbox
14
+ add_alchemy_filter :deletable, type: :checkbox
14
15
 
15
16
  helper "alchemy/admin/tags"
16
17
 
@@ -38,6 +39,7 @@ module Alchemy
38
39
 
39
40
  # The resources controller renders the edit form as default for show actions.
40
41
  def show
42
+ @assignments = @attachment.related_ingredients.joins(element: :page)
41
43
  render :show
42
44
  end
43
45
 
@@ -3,6 +3,8 @@
3
3
  module Alchemy
4
4
  module Admin
5
5
  class ElementsController < Alchemy::Admin::BaseController
6
+ helper Alchemy::Admin::IngredientsHelper
7
+
6
8
  before_action :load_element, only: [:update, :destroy, :collapse, :expand, :publish]
7
9
  authorize_resource class: Alchemy::Element
8
10
 
@@ -72,6 +72,8 @@ module Alchemy
72
72
  # Used by page preview iframe in Page#edit view.
73
73
  #
74
74
  def show
75
+ authorize! :edit_content, @page
76
+
75
77
  Current.preview_page = @page
76
78
  # Setting the locale to pages language, so the page content has it's correct translations.
77
79
  ::I18n.locale = @page.language.locale
@@ -11,7 +11,7 @@ module Alchemy
11
11
  helper "alchemy/admin/tags"
12
12
 
13
13
  before_action :load_resource,
14
- only: [:show, :edit, :update, :url, :destroy]
14
+ only: [:edit, :update, :url, :destroy]
15
15
 
16
16
  before_action :set_size, only: [:index, :show, :edit_multiple, :update]
17
17
 
@@ -30,8 +30,7 @@ module Alchemy
30
30
  add_alchemy_filter :deletable, type: :checkbox
31
31
 
32
32
  def index
33
- @query = Picture.ransack(search_filter_params[:q])
34
- @pictures = Alchemy.storage_adapter.preloaded_pictures(filtered_pictures)
33
+ @pictures = filtered_pictures
35
34
 
36
35
  if in_overlay?
37
36
  archive_overlay
@@ -39,10 +38,12 @@ module Alchemy
39
38
  end
40
39
 
41
40
  def show
42
- @query = Picture.ransack(params[:q])
43
- @previous = filtered_pictures.where("name < ?", @picture.name).last
44
- @next = filtered_pictures.where("name > ?", @picture.name).first
45
- @assignments = @picture.picture_ingredients.joins(element: :page)
41
+ @pictures = filtered_pictures(per_page: 1)
42
+ @picture = @pictures.first
43
+ @previous = @pictures.prev_page
44
+ @next = @pictures.next_page
45
+
46
+ @assignments = @picture.related_ingredients.joins(element: :page)
46
47
  @picture_description = @picture.descriptions.find_or_initialize_by(
47
48
  language_id: Alchemy::Current.language.id
48
49
  )
@@ -101,32 +102,12 @@ module Alchemy
101
102
  end
102
103
 
103
104
  def delete_multiple
104
- if request.delete? && params[:picture_ids].present?
105
- pictures = Picture.find(params[:picture_ids])
106
- names = []
107
- not_deletable = []
108
- pictures.each do |picture|
109
- if picture.deletable?
110
- names << picture.name
111
- picture.destroy
112
- else
113
- not_deletable << picture.name
114
- end
115
- end
116
- if not_deletable.any?
117
- flash[:warn] = Alchemy.t(
118
- "These pictures could not be deleted, because they were in use",
119
- names: not_deletable.to_sentence
120
- )
121
- else
122
- flash[:notice] = Alchemy.t("Pictures deleted successfully", names: names.to_sentence)
123
- end
105
+ if params[:picture_ids].present?
106
+ params[:picture_ids].each { DeletePictureJob.perform_later(_1) }
107
+ flash[:notice] = Alchemy.t(:pictures_will_be_deleted_now)
124
108
  else
125
109
  flash[:warn] = Alchemy.t("Could not delete Pictures")
126
110
  end
127
- rescue => e
128
- flash[:error] = e.message
129
- ensure
130
111
  redirect_to_index
131
112
  end
132
113
 
@@ -140,16 +121,21 @@ module Alchemy
140
121
  redirect_to_index
141
122
  end
142
123
 
143
- def filtered_pictures
124
+ def filtered_pictures(per_page: items_per_page)
125
+ @query = Picture.ransack(search_filter_params[:q])
126
+ @query.sorts = default_sort_order if @query.sorts.empty?
144
127
  pictures = @query.result
145
128
 
146
129
  if params[:tagged_with].present?
147
130
  pictures = pictures.tagged_with(params[:tagged_with])
148
131
  end
149
132
 
150
- pictures = pictures.page(params[:page] || 1).per(items_per_page)
133
+ pictures = pictures.page(params[:page] || 1).per(per_page)
134
+ Alchemy.storage_adapter.preloaded_pictures(pictures)
135
+ end
151
136
 
152
- pictures.order(:name)
137
+ def default_sort_order
138
+ "created_at desc"
153
139
  end
154
140
 
155
141
  def items_per_page
@@ -191,7 +191,19 @@ module Alchemy
191
191
  if must_not_cache?
192
192
  expires_now
193
193
  else
194
- expires_in @page.expiration_time, public: !@page.restricted, must_revalidate: true
194
+ expires_in @page.expiration_time, {public: !@page.restricted}.merge(caching_options)
195
+ end
196
+ end
197
+
198
+ def caching_options
199
+ if Alchemy.config.page_cache.stale_while_revalidate
200
+ {
201
+ stale_while_revalidate: Alchemy.config.page_cache.stale_while_revalidate
202
+ }
203
+ else
204
+ {
205
+ must_revalidate: true
206
+ }
195
207
  end
196
208
  end
197
209
 
@@ -229,7 +241,12 @@ module Alchemy
229
241
 
230
242
  # don't cache pages if we have flash message to display or the page has caching disabled
231
243
  def must_not_cache?
232
- flash.present? || !@page.cache_page?
244
+ !caching_enabled? || !@page.cache_page? || flash.present?
245
+ end
246
+
247
+ def caching_enabled?
248
+ Rails.application.config.action_controller.perform_caching &&
249
+ Alchemy.config.cache_pages
233
250
  end
234
251
 
235
252
  def page_not_found!
@@ -4,6 +4,7 @@ module Alchemy
4
4
  module Admin
5
5
  module ResourceFilter
6
6
  extend ActiveSupport::Concern
7
+
7
8
  COMMON_SEARCH_FILTER_EXCLUDES = %i[id utf8 _method _ format].freeze
8
9
 
9
10
  included do
@@ -12,12 +12,12 @@ module Alchemy
12
12
 
13
13
  def attachment_preview_size(attachment)
14
14
  case attachment.file_mime_type
15
- when *IMAGE_FILE_TYPES then "600x475"
16
- when *AUDIO_FILE_TYPES then "600x190"
17
- when *VIDEO_FILE_TYPES then "600x485"
18
- when "application/pdf" then "600x600"
15
+ when "application/pdf" then "850x600"
16
+ when *IMAGE_FILE_TYPES then "850x280"
17
+ when *AUDIO_FILE_TYPES then "850x190"
18
+ when *VIDEO_FILE_TYPES then "900x280"
19
19
  else
20
- "600x145"
20
+ "500x165"
21
21
  end
22
22
  end
23
23
  end
@@ -163,7 +163,7 @@ module Alchemy
163
163
  end
164
164
 
165
165
  def meta_robots
166
- "#{@page.robot_index? ? "" : "no"}index, #{@page.robot_follow? ? "" : "no"}follow"
166
+ "#{"no" unless @page.robot_index?}index, #{"no" unless @page.robot_follow?}follow"
167
167
  end
168
168
 
169
169
  private
@@ -0,0 +1,20 @@
1
+ // Dispatch a submit event on change of input or select elements
2
+ // contained in a form, so that Turbo can submit the form.
3
+ class AutoSubmit extends HTMLElement {
4
+ connectedCallback() {
5
+ // Still using jQuery here, because select2 does not emit
6
+ // the event from the original select element.
7
+ $(this).on("change", function (event) {
8
+ // We need to dispatch a submit event, so that Turbo that listens
9
+ // to it submits the search form us.
10
+ const submitEvent = new Event("submit", {
11
+ bubbles: true,
12
+ cancelable: true
13
+ })
14
+ event.target.form.dispatchEvent(submitEvent)
15
+ return false
16
+ })
17
+ }
18
+ }
19
+
20
+ customElements.define("alchemy-auto-submit", AutoSubmit)
@@ -21,10 +21,7 @@ class Datepicker extends AlchemyHTMLElement {
21
21
  await import(`flatpickr/${locale}.js`)
22
22
  }
23
23
 
24
- this.flatpickr = flatpickr(
25
- this.getElementsByTagName("input")[0],
26
- this.flatpickrOptions
27
- )
24
+ this.flatpickr = flatpickr(this.inputField, this.flatpickrOptions)
28
25
  }
29
26
 
30
27
  disconnected() {
@@ -43,7 +40,9 @@ class Datepicker extends AlchemyHTMLElement {
43
40
  noCalendar: this.inputType === "time",
44
41
  time_24hr: translate("formats.time_24hr"),
45
42
  onValueUpdate(_selectedDates, _dateStr, instance) {
46
- instance.element.closest("alchemy-element-editor")?.setDirty()
43
+ instance.element
44
+ .closest("alchemy-element-editor")
45
+ ?.setDirty(this.inputField)
47
46
  }
48
47
  }
49
48
 
@@ -53,6 +52,10 @@ class Datepicker extends AlchemyHTMLElement {
53
52
 
54
53
  return options
55
54
  }
55
+
56
+ get inputField() {
57
+ return this.querySelector("input")
58
+ }
56
59
  }
57
60
 
58
61
  customElements.define("alchemy-datepicker", Datepicker)
@@ -1,3 +1,4 @@
1
+ import ajax from "alchemy_admin/utils/ajax"
1
2
  import { removeTab } from "alchemy_admin/fixed_elements"
2
3
  import { growl } from "alchemy_admin/growler"
3
4
  import { reloadPreview } from "alchemy_admin/components/preview_window"
@@ -12,8 +13,8 @@ export class DeleteElementButton extends HTMLElement {
12
13
  async handleEvent() {
13
14
  const confirmed = await openConfirmDialog(this.message)
14
15
  if (confirmed) {
15
- const response = await fetch(this.url, { method: "DELETE" })
16
- this.#removeElement(await response.json())
16
+ const response = await ajax("DELETE", this.url)
17
+ this.#removeElement(response.data)
17
18
  }
18
19
  }
19
20
 
@@ -20,8 +20,10 @@ export class ElementEditor extends HTMLElement {
20
20
  this.addEventListener("alchemy:element-update-title", this)
21
21
  // We use of @rails/ujs for Rails remote forms
22
22
  this.addEventListener("ajax:complete", this)
23
- // Dirty observer
24
- this.addEventListener("change", this)
23
+
24
+ // Dirty observer still needs to be jQuery
25
+ // in order to support select2.
26
+ $(this).on("change", this.onChange)
25
27
 
26
28
  this.header?.addEventListener("dblclick", () => {
27
29
  this.toggle()
@@ -78,20 +80,22 @@ export class ElementEditor extends HTMLElement {
78
80
  this.setTitle(event.detail.title)
79
81
  }
80
82
  break
81
- case "change":
82
- // SortableJS fires a native change event :/
83
- // and we do not want to set the element editor dirty
84
- // when this happens
85
- if (event.target.classList.contains("nested-elements")) {
86
- return
87
- }
88
- event.stopPropagation()
89
- event.target.classList.add("dirty")
90
- this.setDirty()
91
- break
92
83
  }
93
84
  }
94
85
 
86
+ onChange(event) {
87
+ const target = event.target
88
+ // SortableJS fires a native change event :/
89
+ // and we do not want to set the element editor dirty
90
+ // when this happens
91
+ if (target.classList.contains("nested-elements")) {
92
+ return
93
+ }
94
+ this.setDirty(target)
95
+ event.stopPropagation()
96
+ return false
97
+ }
98
+
95
99
  /**
96
100
  * Scrolls to and highlights element
97
101
  * Expands if collapsed
@@ -227,11 +231,17 @@ export class ElementEditor extends HTMLElement {
227
231
 
228
232
  /**
229
233
  * Sets the element into dirty (unsafed) state
234
+ * @param {HTMLElement} editor
230
235
  */
231
- setDirty() {
236
+ setDirty(editor) {
232
237
  if (this.hasEditors) {
233
238
  this.dirty = true
234
- window.onbeforeunload = (event) => event.preventDefault()
239
+
240
+ if (!window.onbeforeunload) {
241
+ window.onbeforeunload = (event) => event.preventDefault()
242
+ }
243
+
244
+ editor?.closest(".ingredient-editor")?.classList.add("dirty")
235
245
  }
236
246
  }
237
247