Bloomerp 1.0.0.dev26__tar.gz → 1.0.0.dev27__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (879) hide show
  1. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/PKG-INFO +1 -1
  2. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/SOURCES.txt +13 -6
  3. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/PKG-INFO +1 -1
  4. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/preview_workspace_tile.py +1 -1
  5. bloomerp-1.0.0.dev27/bloomerp/static/bloomerp/css/dist/styles.css +2 -0
  6. bloomerp-1.0.0.dev27/bloomerp/templates/403.html +16 -0
  7. bloomerp-1.0.0.dev27/bloomerp/templates/snippets/403.html +17 -0
  8. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/urls.py +19 -3
  9. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/access_control/manage_permissions.py +9 -3
  10. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/access_control/policy_list.py +7 -2
  11. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/access_control.py +2 -2
  12. bloomerp-1.0.0.dev27/bloomerp/views/core/bookmarks.py +33 -0
  13. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/bulk_upload.py +5 -3
  14. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/create_view.py +6 -2
  15. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/file_list.py +1 -1
  16. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/list_view.py +2 -1
  17. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/base_detail.py +5 -2
  18. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/overview.py +1 -1
  19. bloomerp-1.0.0.dev27/bloomerp/views/document_templates/document_template_editor.py +25 -0
  20. bloomerp-1.0.0.dev27/bloomerp/views/document_templates/generate_document_template.py +25 -0
  21. bloomerp-1.0.0.dev27/bloomerp/views/document_templates/generate_document_template_for_model.py +78 -0
  22. bloomerp-1.0.0.dev27/bloomerp/views/document_templates/generated_document_template_list.py +25 -0
  23. bloomerp-1.0.0.dev27/bloomerp/views/mixins/__init__.py +17 -0
  24. bloomerp-1.0.0.dev27/bloomerp/views/mixins/conditional_staff_required_mixin.py +47 -0
  25. bloomerp-1.0.0.dev26/bloomerp/views/mixins.py → bloomerp-1.0.0.dev27/bloomerp/views/mixins/htmx_mixin.py +20 -160
  26. bloomerp-1.0.0.dev26/bloomerp/views/view_mixins/form.py → bloomerp-1.0.0.dev27/bloomerp/views/mixins/layout_form_mixin.py +9 -13
  27. bloomerp-1.0.0.dev27/bloomerp/views/mixins/model_context_mixin.py +60 -0
  28. bloomerp-1.0.0.dev27/bloomerp/views/mixins/model_form_view_mixin.py +77 -0
  29. bloomerp-1.0.0.dev26/bloomerp/views/view_mixins/wizard.py → bloomerp-1.0.0.dev27/bloomerp/views/mixins/wizard_mixin.py +24 -21
  30. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/create_user.py +1 -1
  31. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/inbox.py +1 -1
  32. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/profile.py +3 -1
  33. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/website_builder/create_website.py +1 -1
  34. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/base_workspace_view.py +5 -1
  35. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/create_tile.py +5 -3
  36. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/create_workspace.py +3 -2
  37. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/home.py +3 -2
  38. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/module_home.py +1 -3
  39. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/my_workspaces.py +1 -3
  40. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/workspace/workspace.py +1 -4
  41. bloomerp-1.0.0.dev27/bloomerp/workspaces/links_tile/__init__.py +0 -0
  42. bloomerp-1.0.0.dev27/bloomerp/workspaces/orchestrator.py +7 -0
  43. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/pyproject.toml +1 -1
  44. bloomerp-1.0.0.dev26/bloomerp/static/bloomerp/css/dist/styles.css +0 -2
  45. bloomerp-1.0.0.dev26/bloomerp/templates/403.html +0 -7
  46. bloomerp-1.0.0.dev26/bloomerp/templates/snippets/403.html +0 -1
  47. bloomerp-1.0.0.dev26/bloomerp/views/core/bookmarks.py +0 -33
  48. bloomerp-1.0.0.dev26/bloomerp/views/document_templates.py +0 -176
  49. bloomerp-1.0.0.dev26/bloomerp/views/test.py +0 -34
  50. bloomerp-1.0.0.dev26/bloomerp/workspaces/orchestrator.py +0 -7
  51. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/dependency_links.txt +0 -0
  52. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/entry_points.txt +0 -0
  53. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/requires.txt +0 -0
  54. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/Bloomerp.egg-info/top_level.txt +0 -0
  55. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/README.md +0 -0
  56. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/__init__.py +0 -0
  57. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/admin.py +0 -0
  58. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/apps.py +0 -0
  59. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/actions/__init__.py +0 -0
  60. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/actions/call_api.py +0 -0
  61. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/actions/create_object.py +0 -0
  62. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/actions/delete_object.py +0 -0
  63. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/actions/send_email.py +0 -0
  64. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/base_executor.py +0 -0
  65. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/defintion.py +0 -0
  66. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/flows/__init__.py +0 -0
  67. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/flows/if_condition.py +0 -0
  68. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/triggers/base.py +0 -0
  69. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/triggers/human_trigger.py +0 -0
  70. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/triggers/object_crud_trigger.py +0 -0
  71. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/automation/triggers/webhook_trigger.py +0 -0
  72. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/cli.py +0 -0
  73. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/access_control/preview_permissions_table.py +0 -0
  74. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/application_fields/filters.py +0 -0
  75. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/automation/render_workflow_node.py +0 -0
  76. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/bookmark.py +0 -0
  77. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/bulk_actions/bulk_upload.py +0 -0
  78. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/comments.py +0 -0
  79. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/detail_tabs_folder_modal.py +0 -0
  80. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/detail_tabs_preference.py +0 -0
  81. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/document_templates/generate_document_template.py +0 -0
  82. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/execute_sql_query.py +0 -0
  83. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/files.py +0 -0
  84. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/global_search.py +0 -0
  85. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/llm/ai_conversations.py +0 -0
  86. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/bulk_update_objects.py +0 -0
  87. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/crud_object.py +0 -0
  88. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/dataview.py +0 -0
  89. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/delete_object.py +0 -0
  90. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/object_preview.py +0 -0
  91. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/objects/search_objects.py +0 -0
  92. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/project_management/create_todo.py +0 -0
  93. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/project_management/todos.py +0 -0
  94. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/sign_file.py +0 -0
  95. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/todos.py +0 -0
  96. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/available_workspace_tiles.py +0 -0
  97. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/crud_layout_available_fields.py +0 -0
  98. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/crud_layout_preference.py +0 -0
  99. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/crud_layout_render_field.py +0 -0
  100. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/delete_workspace.py +0 -0
  101. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/edit_workspace.py +0 -0
  102. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/render_workspace_tile.py +0 -0
  103. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/save_workspace_layout.py +0 -0
  104. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/share_workspace.py +0 -0
  105. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/components/workspaces/sidebar.py +0 -0
  106. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/config/__init__.py +0 -0
  107. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/config/definition.py +0 -0
  108. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/config/settings.py +0 -0
  109. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/config/validator.py +0 -0
  110. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/consumers.py +0 -0
  111. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/context_processors.py +0 -0
  112. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/field_types.py +0 -0
  113. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/form_fields/__init__.py +0 -0
  114. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/form_fields/icon_field.py +0 -0
  115. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/auth.py +0 -0
  116. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/bulk_upload_form.py +0 -0
  117. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/core.py +0 -0
  118. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/document_templates.py +0 -0
  119. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/layouts.py +0 -0
  120. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/model_form.py +0 -0
  121. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/sidebar.py +0 -0
  122. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/widgets.py +0 -0
  123. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/forms/workspaces.py +0 -0
  124. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/langchain_tools.py +0 -0
  125. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/management/commands/create_sdk.py +0 -0
  126. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/management/commands/get_urls.py +0 -0
  127. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/management/commands/save_application_fields.py +0 -0
  128. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/management/commands/validate_bloomerp.py +0 -0
  129. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/middleware.py +0 -0
  130. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/migrations/0001_initial.py +0 -0
  131. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/migrations/0002_workspace_single_module_context.py +0 -0
  132. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/migrations/__init__.py +0 -0
  133. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/code_field.py +0 -0
  134. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/file_field.py +0 -0
  135. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/icon_field.py +0 -0
  136. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/status_field.py +0 -0
  137. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/text_editor_field.py +0 -0
  138. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/model_fields/user_field.py +0 -0
  139. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/__init__.py +0 -0
  140. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/access_control/__init__.py +0 -0
  141. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/access_control/field_policy.py +0 -0
  142. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/access_control/policy.py +0 -0
  143. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/access_control/row_policy.py +0 -0
  144. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/access_control/row_policy_rule.py +0 -0
  145. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/activity_log.py +0 -0
  146. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/application_field.py +0 -0
  147. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/automation/__init__.py +0 -0
  148. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/automation/workflow.py +0 -0
  149. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/automation/workflow_edge.py +0 -0
  150. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/automation/workflow_node.py +0 -0
  151. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/automation/workflow_run.py +0 -0
  152. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/base_bloomerp_model.py +0 -0
  153. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/communication/__init__.py +0 -0
  154. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/communication/comment.py +0 -0
  155. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/communication/mention.py +0 -0
  156. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/communication/message.py +0 -0
  157. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/communication/signature_request.py +0 -0
  158. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/definition.py +0 -0
  159. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/document_templates/__init__.py +0 -0
  160. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/document_templates/document_tempate_styling.py +0 -0
  161. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/document_templates/document_template.py +0 -0
  162. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/document_templates/document_template_free_variable.py +0 -0
  163. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/document_templates/document_template_header.py +0 -0
  164. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/files/__init__.py +0 -0
  165. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/files/file.py +0 -0
  166. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/files/file_folder.py +0 -0
  167. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/llm/__init__.py +0 -0
  168. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/llm/ai_conversation.py +0 -0
  169. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/__init__.py +0 -0
  170. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/absolute_url_model_mixin.py +0 -0
  171. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/avatar_model_mixin.py +0 -0
  172. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/content_layout_model_mixin.py +0 -0
  173. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/string_search_model_mixin.py +0 -0
  174. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/timestamp_model_mixin.py +0 -0
  175. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/user_stamp_model_mixin.py +0 -0
  176. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/mixins/uuid_model_mixin.py +0 -0
  177. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/project_management/__init__.py +0 -0
  178. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/project_management/todo.py +0 -0
  179. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/project_management/todo_label.py +0 -0
  180. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/__init__.py +0 -0
  181. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/bookmark.py +0 -0
  182. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/user.py +0 -0
  183. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/user_create_view_preference.py +0 -0
  184. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/user_detail_view_preference.py +0 -0
  185. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/users/user_list_view_preference.py +0 -0
  186. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/__init__.py +0 -0
  187. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/database_connection.py +0 -0
  188. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/sidebar.py +0 -0
  189. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/sidebar_item.py +0 -0
  190. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/sql_query.py +0 -0
  191. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/tile.py +0 -0
  192. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/models/workspaces/workspace.py +0 -0
  193. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/__init__.py +0 -0
  194. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/automation.py +0 -0
  195. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/core.py +0 -0
  196. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/definition.py +0 -0
  197. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/misc.py +0 -0
  198. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/modules/users.py +0 -0
  199. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/router.py +0 -0
  200. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/routing.py +0 -0
  201. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/sdk/base.py +0 -0
  202. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/sdk/javascript.py +0 -0
  203. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/sdk/python.py +0 -0
  204. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/sdk/typescript.py +0 -0
  205. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/serializers/access_control.py +0 -0
  206. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/__init__.py +0 -0
  207. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/bulk_services.py +0 -0
  208. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/create_view_services.py +0 -0
  209. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/detail_view_services.py +0 -0
  210. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/document_services.py +0 -0
  211. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/file_services.py +0 -0
  212. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/object_services.py +0 -0
  213. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/permission_services.py +0 -0
  214. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/sectioned_layout_services.py +0 -0
  215. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/sql_services.py +0 -0
  216. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/user_services.py +0 -0
  217. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/workflow_services.py +0 -0
  218. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/services/workspace_services.py +0 -0
  219. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/signals/__init__.py +0 -0
  220. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/signals/automations.py +0 -0
  221. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/add-circle.svg +0 -0
  222. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/add.svg +0 -0
  223. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/ai.svg +0 -0
  224. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/alt-arrow-right.svg +0 -0
  225. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/archive.svg +0 -0
  226. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/arrow-right.svg +0 -0
  227. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/bell.svg +0 -0
  228. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/bookmark-filled.svg +0 -0
  229. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/bookmark.svg +0 -0
  230. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/chat-line.svg +0 -0
  231. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/chat-round.svg +0 -0
  232. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/clipboard-list.svg +0 -0
  233. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/clipboard.svg +0 -0
  234. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/close.svg +0 -0
  235. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/code.svg +0 -0
  236. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/database.svg +0 -0
  237. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/delete.svg +0 -0
  238. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/dots.svg +0 -0
  239. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/download.svg +0 -0
  240. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/edit.svg +0 -0
  241. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/editor-text.svg +0 -0
  242. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/eye.svg +0 -0
  243. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/file.svg +0 -0
  244. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/filter.svg +0 -0
  245. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/flag.svg +0 -0
  246. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/folder.svg +0 -0
  247. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/forward.svg +0 -0
  248. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/html.svg +0 -0
  249. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/info.svg +0 -0
  250. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/insert-content.svg +0 -0
  251. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/magic-stick.svg +0 -0
  252. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/menu-dots.svg +0 -0
  253. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/notebook.svg +0 -0
  254. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/pen.svg +0 -0
  255. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/refresh.svg +0 -0
  256. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/settings.svg +0 -0
  257. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/share.svg +0 -0
  258. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/success.svg +0 -0
  259. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/text-editor.svg +0 -0
  260. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/icons/text.svg +0 -0
  261. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/img/default-user.jpg +0 -0
  262. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/img/login-side-section.png +0 -0
  263. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/img/logo-touch-icon.png +0 -0
  264. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/img/logo.png +0 -0
  265. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/img/spinner.gif +0 -0
  266. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Assistant-Bold.woff2 +0 -0
  267. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Assistant-Medium.woff2 +0 -0
  268. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Assistant-Regular.woff2 +0 -0
  269. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Assistant-SemiBold.woff2 +0 -0
  270. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js +0 -0
  271. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js.map +0 -0
  272. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
  273. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js.map +0 -0
  274. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js +0 -0
  275. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js.map +0 -0
  276. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js +0 -0
  277. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js.map +0 -0
  278. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js +0 -0
  279. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js.map +0 -0
  280. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js +0 -0
  281. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js.map +0 -0
  282. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js +0 -0
  283. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js.map +0 -0
  284. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js +0 -0
  285. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js.map +0 -0
  286. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js +0 -0
  287. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js.map +0 -0
  288. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js +0 -0
  289. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js.map +0 -0
  290. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js +0 -0
  291. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js.map +0 -0
  292. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js +0 -0
  293. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js.map +0 -0
  294. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js +0 -0
  295. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js.map +0 -0
  296. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js +0 -0
  297. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js.map +0 -0
  298. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js +0 -0
  299. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js.map +0 -0
  300. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js +0 -0
  301. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js.map +0 -0
  302. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js +0 -0
  303. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js.map +0 -0
  304. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js +0 -0
  305. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js.map +0 -0
  306. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js +0 -0
  307. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js.map +0 -0
  308. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js +0 -0
  309. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js.map +0 -0
  310. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js +0 -0
  311. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js.map +0 -0
  312. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js +0 -0
  313. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js.map +0 -0
  314. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js +0 -0
  315. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js.map +0 -0
  316. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js +0 -0
  317. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js.map +0 -0
  318. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js +0 -0
  319. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js.map +0 -0
  320. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js +0 -0
  321. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js.map +0 -0
  322. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js +0 -0
  323. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js.map +0 -0
  324. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js +0 -0
  325. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js.map +0 -0
  326. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js +0 -0
  327. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js.map +0 -0
  328. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js +0 -0
  329. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js.map +0 -0
  330. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js +0 -0
  331. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js.map +0 -0
  332. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js +0 -0
  333. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js.map +0 -0
  334. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js +0 -0
  335. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js.map +0 -0
  336. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js +0 -0
  337. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js.map +0 -0
  338. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js +0 -0
  339. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js.map +0 -0
  340. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js +0 -0
  341. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js.map +0 -0
  342. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js +0 -0
  343. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js.map +0 -0
  344. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js +0 -0
  345. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js.map +0 -0
  346. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js +0 -0
  347. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js.map +0 -0
  348. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js +0 -0
  349. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js.map +0 -0
  350. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js +0 -0
  351. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js.map +0 -0
  352. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js +0 -0
  353. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js.map +0 -0
  354. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js +0 -0
  355. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js.map +0 -0
  356. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js +0 -0
  357. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js.map +0 -0
  358. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js +0 -0
  359. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js.map +0 -0
  360. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js +0 -0
  361. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js.map +0 -0
  362. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js +0 -0
  363. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js.map +0 -0
  364. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js +0 -0
  365. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js.map +0 -0
  366. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js +0 -0
  367. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js.map +0 -0
  368. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js +0 -0
  369. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js.map +0 -0
  370. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js +0 -0
  371. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js.map +0 -0
  372. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js +0 -0
  373. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js.map +0 -0
  374. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js +0 -0
  375. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js.map +0 -0
  376. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js +0 -0
  377. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js.map +0 -0
  378. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js +0 -0
  379. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js.map +0 -0
  380. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js +0 -0
  381. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js.map +0 -0
  382. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js +0 -0
  383. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js.map +0 -0
  384. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js +0 -0
  385. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js.map +0 -0
  386. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js +0 -0
  387. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js.map +0 -0
  388. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js +0 -0
  389. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js.map +0 -0
  390. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js +0 -0
  391. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js.map +0 -0
  392. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js +0 -0
  393. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js.map +0 -0
  394. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js +0 -0
  395. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js.map +0 -0
  396. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js +0 -0
  397. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js.map +0 -0
  398. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js +0 -0
  399. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js.map +0 -0
  400. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js +0 -0
  401. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js.map +0 -0
  402. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/main.css +0 -0
  403. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/main.js +0 -0
  404. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/main.js.map +0 -0
  405. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js +0 -0
  406. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js.map +0 -0
  407. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js +0 -0
  408. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js.map +0 -0
  409. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js +0 -0
  410. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js.map +0 -0
  411. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js +0 -0
  412. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js.map +0 -0
  413. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js +0 -0
  414. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js.map +0 -0
  415. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js +0 -0
  416. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js.map +0 -0
  417. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js +0 -0
  418. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js.map +0 -0
  419. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js +0 -0
  420. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js.map +0 -0
  421. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js +0 -0
  422. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js.map +0 -0
  423. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js +0 -0
  424. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js.map +0 -0
  425. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js +0 -0
  426. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js.map +0 -0
  427. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js +0 -0
  428. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js.map +0 -0
  429. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js +0 -0
  430. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js.map +0 -0
  431. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js +0 -0
  432. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js.map +0 -0
  433. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js +0 -0
  434. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js.map +0 -0
  435. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js +0 -0
  436. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js.map +0 -0
  437. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js +0 -0
  438. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js.map +0 -0
  439. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js +0 -0
  440. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js.map +0 -0
  441. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js +0 -0
  442. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js.map +0 -0
  443. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js +0 -0
  444. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js.map +0 -0
  445. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js +0 -0
  446. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js.map +0 -0
  447. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js +0 -0
  448. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js.map +0 -0
  449. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js +0 -0
  450. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js.map +0 -0
  451. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js +0 -0
  452. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js.map +0 -0
  453. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js +0 -0
  454. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js.map +0 -0
  455. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js +0 -0
  456. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js.map +0 -0
  457. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js +0 -0
  458. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js.map +0 -0
  459. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js +0 -0
  460. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js.map +0 -0
  461. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js +0 -0
  462. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js.map +0 -0
  463. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js +0 -0
  464. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js.map +0 -0
  465. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js +0 -0
  466. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js.map +0 -0
  467. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js +0 -0
  468. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js.map +0 -0
  469. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js +0 -0
  470. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js.map +0 -0
  471. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js +0 -0
  472. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js.map +0 -0
  473. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js +0 -0
  474. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js.map +0 -0
  475. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js +0 -0
  476. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js.map +0 -0
  477. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js +0 -0
  478. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js.map +0 -0
  479. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js +0 -0
  480. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js.map +0 -0
  481. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js +0 -0
  482. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js.map +0 -0
  483. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js +0 -0
  484. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js.map +0 -0
  485. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js +0 -0
  486. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js.map +0 -0
  487. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js +0 -0
  488. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js.map +0 -0
  489. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js +0 -0
  490. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js.map +0 -0
  491. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js +0 -0
  492. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js.map +0 -0
  493. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js +0 -0
  494. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js.map +0 -0
  495. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js +0 -0
  496. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js.map +0 -0
  497. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js +0 -0
  498. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js.map +0 -0
  499. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js +0 -0
  500. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js.map +0 -0
  501. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js +0 -0
  502. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js.map +0 -0
  503. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js +0 -0
  504. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js.map +0 -0
  505. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js +0 -0
  506. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js.map +0 -0
  507. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/htmx-download.js +0 -0
  508. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/js/llm.js +0 -0
  509. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/vendor/fontawesome/css/all.min.css +0 -0
  510. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  511. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  512. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  513. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  514. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static/css/dist/styles.css +0 -0
  515. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/katex/src/fonts/generate_fonts.py +0 -0
  516. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/katex/src/metrics/extract_tfms.py +0 -0
  517. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/katex/src/metrics/extract_ttfs.py +0 -0
  518. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/katex/src/metrics/format_json.py +0 -0
  519. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/katex/src/metrics/parse_tfm.py +0 -0
  520. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/static_src/node_modules/shell-quote/print.py +0 -0
  521. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/tasks/__init__.py +0 -0
  522. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/tasks/base.py +0 -0
  523. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/tasks/bulk_upload_task.py +0 -0
  524. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/access_control_views/manage_permissions/wizard_global_permissions.html +0 -0
  525. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/access_control_views/manage_permissions/wizard_object_access_control.html +0 -0
  526. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/access_control_views/manage_permissions/wizard_policy_details.html +0 -0
  527. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/access_control_views/policy_list.html +0 -0
  528. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/auth_views/login_view.html +0 -0
  529. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/auth_views/password_reset_done_view.html +0 -0
  530. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/auth_views/password_reset_view.html +0 -0
  531. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/auth_views/profile_overview.html +0 -0
  532. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/auth_views/profile_password_reset.html +0 -0
  533. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/base_wizard.html +0 -0
  534. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/bloomerp_base.html +0 -0
  535. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/bloomerp_htmx_base_view.html +0 -0
  536. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/access_control/preview_permissions_table.html +0 -0
  537. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/access_control/row_policy.html +0 -0
  538. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/application_fields/lookup_operators.html +0 -0
  539. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/application_fields/value_input.html +0 -0
  540. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/automation/render_workflow_node.html +0 -0
  541. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/bookmark.html +0 -0
  542. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/bulk_actions/download_bulk_upload_template_form.html +0 -0
  543. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/bulk_update_objects.html +0 -0
  544. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/bulk_upload_table.html +0 -0
  545. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/comments.html +0 -0
  546. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/detail_tabs/folder_modal_form.html +0 -0
  547. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/execute_sql_query.html +0 -0
  548. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/files/browser.html +0 -0
  549. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/filters/advanced_lookup.html +0 -0
  550. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/filters/init.html +0 -0
  551. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/filters/related_fields_select.html +0 -0
  552. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/fk_search_results.html +0 -0
  553. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/generate_document_template.html +0 -0
  554. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/global_search.html +0 -0
  555. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/layouts/available_items.html +0 -0
  556. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/llm/ai_conversation.html +0 -0
  557. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/llm/ai_conversations.html +0 -0
  558. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/object_model_form.html +0 -0
  559. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/objects/dataview.html +0 -0
  560. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/objects/object_preview.html +0 -0
  561. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/objects/search_results.html +0 -0
  562. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/preview_document_template.html +0 -0
  563. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/project_management/create_todo.html +0 -0
  564. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/project_management/todos.html +0 -0
  565. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/search_results.html +0 -0
  566. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/sidebar/content.html +0 -0
  567. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/sidebar/select_sidebar_items.html +0 -0
  568. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/test_cotton_component.html +0 -0
  569. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/todos.html +0 -0
  570. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspace_widget.html +0 -0
  571. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/delete_workspace.html +0 -0
  572. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/edit_workspace.html +0 -0
  573. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/preview_workspace_tile.html +0 -0
  574. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/render_workspace_tile.html +0 -0
  575. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/share_workspace.html +0 -0
  576. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/tile_builders/analytics_tile_builder.html +0 -0
  577. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/tile_builders/dataview_tile_builder.html +0 -0
  578. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/tile_builders/default_tile_builder.html +0 -0
  579. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/tile_builders/links_tile_builder.html +0 -0
  580. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/components/workspaces/tile_builders/text_tile_builder.html +0 -0
  581. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/blocktrans.html +0 -0
  582. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/comments/comment.html +0 -0
  583. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/comments/container.html +0 -0
  584. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/footer.html +0 -0
  585. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/header/header.html +0 -0
  586. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/add.html +0 -0
  587. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/ai.html +0 -0
  588. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/arrow_left.html +0 -0
  589. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/arrow_right.html +0 -0
  590. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/base_icon.html +0 -0
  591. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/bookmark.html +0 -0
  592. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/bookmark_fill.html +0 -0
  593. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/calendar.html +0 -0
  594. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/chart.html +0 -0
  595. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/chat.html +0 -0
  596. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/check.svg +0 -0
  597. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/chevron_left.html +0 -0
  598. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/chevron_right.html +0 -0
  599. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/close.html +0 -0
  600. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/collapse.svg +0 -0
  601. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/copy.svg +0 -0
  602. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/delete.html +0 -0
  603. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/download.svg +0 -0
  604. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/drag.svg +0 -0
  605. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/edit.html +0 -0
  606. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/email.svg +0 -0
  607. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/error.html +0 -0
  608. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/expand.html +0 -0
  609. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/external_link.svg +0 -0
  610. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/eye.html +0 -0
  611. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/file.svg +0 -0
  612. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/filter.html +0 -0
  613. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/folder.svg +0 -0
  614. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/fullscreen.html +0 -0
  615. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/gant.html +0 -0
  616. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/help.svg +0 -0
  617. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/home.svg +0 -0
  618. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/info.svg +0 -0
  619. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/kanban.html +0 -0
  620. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/lines_horizontal.html +0 -0
  621. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/list.html +0 -0
  622. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/list.svg +0 -0
  623. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/lock.svg +0 -0
  624. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/logout.svg +0 -0
  625. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/map.svg +0 -0
  626. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/menu.svg +0 -0
  627. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/message.svg +0 -0
  628. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/notification.svg +0 -0
  629. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/page_type.html +0 -0
  630. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/pivot_table.html +0 -0
  631. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/plus.html +0 -0
  632. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/plus_circle.html +0 -0
  633. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/refresh.svg +0 -0
  634. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/save.svg +0 -0
  635. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/scroll.html +0 -0
  636. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/search.svg +0 -0
  637. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/settings.html +0 -0
  638. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/shield.svg +0 -0
  639. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/sidebar_right.html +0 -0
  640. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/sidebar_right_selected.html +0 -0
  641. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/sort.html +0 -0
  642. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/sort.svg +0 -0
  643. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/spinner.svg +0 -0
  644. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/table.svg +0 -0
  645. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/tags.svg +0 -0
  646. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/three_dots.html +0 -0
  647. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/todo.html +0 -0
  648. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/unlock.svg +0 -0
  649. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/upload.svg +0 -0
  650. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/user.svg +0 -0
  651. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/zoom_in.svg +0 -0
  652. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/icons/zoom_out.svg +0 -0
  653. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/object_crud_container.html +0 -0
  654. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/sidebar/body.html +0 -0
  655. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/sidebar/dropdown_list_container.html +0 -0
  656. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/sidebar/dropdown_section.html +0 -0
  657. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/sidebar/item.html +0 -0
  658. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/trans.html +0 -0
  659. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/avatar.html +0 -0
  660. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/breadcrumb/body.html +0 -0
  661. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/breadcrumb/item.html +0 -0
  662. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/container.html +0 -0
  663. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/actions.html +0 -0
  664. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/calendar.html +0 -0
  665. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/card.html +0 -0
  666. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/display_options.html +0 -0
  667. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/gant_chart.html +0 -0
  668. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/kanban.html +0 -0
  669. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/options/select.html +0 -0
  670. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/pivot_table.html +0 -0
  671. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/data_view/table.html +0 -0
  672. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/drawer.html +0 -0
  673. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/README.md +0 -0
  674. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/body.html +0 -0
  675. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/divider.html +0 -0
  676. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/item.html +0 -0
  677. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/submenu.html +0 -0
  678. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/dropdown/title.html +0 -0
  679. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/dropdown_input.html +0 -0
  680. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/permissions.html +0 -0
  681. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/selectable_cards/container.html +0 -0
  682. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/selectable_cards/item.html +0 -0
  683. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/sql_query_editor.html +0 -0
  684. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/inputs/text_editor.html +0 -0
  685. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/menu/container.html +0 -0
  686. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/menu/item.html +0 -0
  687. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/message.html +0 -0
  688. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/modal.html +0 -0
  689. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/modal_button.html +0 -0
  690. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/search_section/container.html +0 -0
  691. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/steps.html +0 -0
  692. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/tabs/container.html +0 -0
  693. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/tabs/item.html +0 -0
  694. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/help_text.html +0 -0
  695. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/label.html +0 -0
  696. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/muted.html +0 -0
  697. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/subtitle.html +0 -0
  698. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/text.html +0 -0
  699. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/text/title.html +0 -0
  700. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/ui/tooltip.html +0 -0
  701. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/website_builder.html +0 -0
  702. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workflow.html +0 -0
  703. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/container.html +0 -0
  704. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/preview_tile_container.html +0 -0
  705. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tile.html +0 -0
  706. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/canvas.html +0 -0
  707. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/kpi.html +0 -0
  708. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/link.html +0 -0
  709. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/pie_chart.html +0 -0
  710. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/table.html +0 -0
  711. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/text.html +0 -0
  712. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/cotton/workspaces/tiles/two_dim_chart.html +0 -0
  713. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/create_views/bloomerp_base_wizard_create_view.html +0 -0
  714. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/create_views/bloomerp_create_view.html +0 -0
  715. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/create_website.html +0 -0
  716. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/delete_views/bloomerp_delete_view.html +0 -0
  717. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_base_detail_view.html +0 -0
  718. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_detail_activity_view.html +0 -0
  719. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_detail_comments_view.html +0 -0
  720. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_detail_files_view.html +0 -0
  721. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_detail_m2m_view.html +0 -0
  722. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_detail_overview_view.html +0 -0
  723. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/bloomerp_foreign_relationship_view.html +0 -0
  724. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/snippets/card_header.html +0 -0
  725. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/detail_views/snippets/post_comment_snippet.html +0 -0
  726. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/document_template_views/bloomerp_detail_document_generator_view.html +0 -0
  727. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/document_template_views/bloomerp_document_template_editor_view.html +0 -0
  728. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/document_template_views/bloomerp_document_template_generate_view.html +0 -0
  729. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/document_template_views/bloomerp_document_template_generated_documents_view.html +0 -0
  730. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/document_template_views/bloomerp_document_template_list_view.html +0 -0
  731. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/htmx_addendum.html +0 -0
  732. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/inclusion_tags/dataview_value.html +0 -0
  733. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/inclusion_tags/layout_field.html +0 -0
  734. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/inclusion_tags/object_preview_value.html +0 -0
  735. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bloomerp_bookmarks_view.html +0 -0
  736. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bloomerp_file_list_view.html +0 -0
  737. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bloomerp_list_view.html +0 -0
  738. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bulk_upload_wizard/confirm_step.html +0 -0
  739. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bulk_upload_wizard/review_field.html +0 -0
  740. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bulk_upload_wizard/review_step.html +0 -0
  741. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/bulk_upload_wizard/upload_step.html +0 -0
  742. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/list_views/snippets/filter_dropdown.html +0 -0
  743. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/mixins/bloomerp_layout_form_mixin.html +0 -0
  744. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/avatar.html +0 -0
  745. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/form_snippet.html +0 -0
  746. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/head.html +0 -0
  747. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/llm_modal_snippet.html +0 -0
  748. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/signature_snippet.html +0 -0
  749. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/snippets/vite_bundle.html +0 -0
  750. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/display_form.html +0 -0
  751. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/errors.html +0 -0
  752. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/errors_formset.html +0 -0
  753. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/field.html +0 -0
  754. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/inputs.html +0 -0
  755. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/alert.html +0 -0
  756. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/attrs.html +0 -0
  757. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/baseinput.html +0 -0
  758. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/button.html +0 -0
  759. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/buttonholder.html +0 -0
  760. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/checkboxselectmultiple.html +0 -0
  761. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/checkboxselectmultiple_inline.html +0 -0
  762. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/column.html +0 -0
  763. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/div.html +0 -0
  764. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/field_errors.html +0 -0
  765. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/field_errors_block.html +0 -0
  766. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/field_with_buttons.html +0 -0
  767. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/fieldset.html +0 -0
  768. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/formactions.html +0 -0
  769. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/help_text.html +0 -0
  770. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/help_text_and_errors.html +0 -0
  771. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/inline_field.html +0 -0
  772. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/prepended_appended_text.html +0 -0
  773. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/radioselect.html +0 -0
  774. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/radioselect_inline.html +0 -0
  775. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/row.html +0 -0
  776. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/select.html +0 -0
  777. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/layout/select_option.html +0 -0
  778. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/table_inline_formset.html +0 -0
  779. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/uni_form.html +0 -0
  780. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/uni_formset.html +0 -0
  781. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/whole_uni_form.html +0 -0
  782. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/tailwind/whole_uni_formset.html +0 -0
  783. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/user_views/inbox_view.html +0 -0
  784. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/user_views/new_password_done_view.html +0 -0
  785. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/user_views/new_password_view.html +0 -0
  786. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/user_views/notification_setting_view.html +0 -0
  787. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/user_views/snippets/user_content_type_selection_snippet.html +0 -0
  788. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/utils/blank_form.html +0 -0
  789. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/utils/template_and_message.html +0 -0
  790. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/bloomerp_file_field_widget.html +0 -0
  791. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/code_editor_widget.html +0 -0
  792. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/foreign_field_widget.html +0 -0
  793. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/icon_picker_widget.html +0 -0
  794. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/one_to_many_field_widget.html +0 -0
  795. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/rich_text_editor_widget.html +0 -0
  796. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/widgets/tiny_mce_text_editor_widget.html +0 -0
  797. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/bloomerp_home_view.html +0 -0
  798. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/bloomerp_workspace_view.html +0 -0
  799. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/1.html +0 -0
  800. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile.html +0 -0
  801. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_analytics_builder.html +0 -0
  802. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_final_config.html +0 -0
  803. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_query.html +0 -0
  804. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_type.html +0 -0
  805. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_type_config.html +0 -0
  806. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/create_workspace_view.html +0 -0
  807. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templates/workspace_views/my_workspaces_view.html +0 -0
  808. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templatetags/bloomerp.py +0 -0
  809. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templatetags/bloomerp_ui.py +0 -0
  810. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/templatetags/globals.py +0 -0
  811. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/api.py +0 -0
  812. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/document_templates.py +0 -0
  813. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/encryption.py +0 -0
  814. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/filters.py +0 -0
  815. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/model_io.py +0 -0
  816. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/models.py +0 -0
  817. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/pdf.py +0 -0
  818. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/realtime.py +0 -0
  819. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/requests.py +0 -0
  820. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/sql.py +0 -0
  821. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/utils/urls.py +0 -0
  822. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/__init__.py +0 -0
  823. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/access_control/update.py +0 -0
  824. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/__init__.py +0 -0
  825. {bloomerp-1.0.0.dev26/bloomerp/views → bloomerp-1.0.0.dev27/bloomerp/views/api}/api_views.py +0 -0
  826. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/auth.py +0 -0
  827. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/sql/__init__.py +0 -0
  828. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/sql/accessible_tables.py +0 -0
  829. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/sql/queries.py +0 -0
  830. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/api/workflow_webhook.py +0 -0
  831. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/__init__.py +0 -0
  832. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/delete_view.py +0 -0
  833. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/core/detail_comments.py +0 -0
  834. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/__init__.py +0 -0
  835. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/access_control.py +0 -0
  836. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/activity_log.py +0 -0
  837. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/comments.py +0 -0
  838. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/delete_view.py +0 -0
  839. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/files.py +0 -0
  840. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/detail/foreign_relationship.py +0 -0
  841. {bloomerp-1.0.0.dev26/bloomerp/views/user → bloomerp-1.0.0.dev27/bloomerp/views/document_templates}/__init__.py +0 -0
  842. {bloomerp-1.0.0.dev26/bloomerp/widgets → bloomerp-1.0.0.dev27/bloomerp/views/user}/__init__.py +0 -0
  843. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/admin_reset_password.py +0 -0
  844. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/base.py +0 -0
  845. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/views/user/reset_password.py +0 -0
  846. {bloomerp-1.0.0.dev26/bloomerp/workspaces/analytics_tile → bloomerp-1.0.0.dev27/bloomerp/widgets}/__init__.py +0 -0
  847. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/code_editor_widget.py +0 -0
  848. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/file_field_widget.py +0 -0
  849. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/foreign_field_widget.py +0 -0
  850. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/icon_picker_widget.py +0 -0
  851. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/one_to_many_field_widget.py +0 -0
  852. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/select_widget.py +0 -0
  853. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/widgets/text_editor.py +0 -0
  854. {bloomerp-1.0.0.dev26/bloomerp/workspaces/canvas_tile → bloomerp-1.0.0.dev27/bloomerp/workspaces/analytics_tile}/__init__.py +0 -0
  855. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/kpi.py +0 -0
  856. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/map.py +0 -0
  857. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/model.py +0 -0
  858. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/pie_chart.py +0 -0
  859. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/pivot_table.py +0 -0
  860. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/render.py +0 -0
  861. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/table.py +0 -0
  862. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/three_dim_chart.py +0 -0
  863. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/two_dim_chart.py +0 -0
  864. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/analytics_tile/utils.py +0 -0
  865. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/base.py +0 -0
  866. {bloomerp-1.0.0.dev26/bloomerp/workspaces/dataview_tile → bloomerp-1.0.0.dev27/bloomerp/workspaces/canvas_tile}/__init__.py +0 -0
  867. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/canvas_tile/model.py +0 -0
  868. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/canvas_tile/render.py +0 -0
  869. {bloomerp-1.0.0.dev26/bloomerp/workspaces/links_tile → bloomerp-1.0.0.dev27/bloomerp/workspaces/dataview_tile}/__init__.py +0 -0
  870. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/dataview_tile/form.py +0 -0
  871. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/dataview_tile/model.py +0 -0
  872. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/dataview_tile/render.py +0 -0
  873. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/links_tile/model.py +0 -0
  874. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/links_tile/render.py +0 -0
  875. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/text_tile/__init__.py +0 -0
  876. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/text_tile/model.py +0 -0
  877. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/text_tile/render.py +0 -0
  878. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/bloomerp/workspaces/tiles.py +0 -0
  879. {bloomerp-1.0.0.dev26 → bloomerp-1.0.0.dev27}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Bloomerp
3
- Version: 1.0.0.dev26
3
+ Version: 1.0.0.dev27
4
4
  Summary: Bloomerp is an open-source Business Management Software framework that lets you create fully functional business management applications just by defining your Django database models.
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -778,15 +778,12 @@ bloomerp/utils/requests.py
778
778
  bloomerp/utils/sql.py
779
779
  bloomerp/utils/urls.py
780
780
  bloomerp/views/__init__.py
781
- bloomerp/views/api_views.py
782
- bloomerp/views/document_templates.py
783
- bloomerp/views/mixins.py
784
- bloomerp/views/test.py
785
781
  bloomerp/views/access_control/manage_permissions.py
786
782
  bloomerp/views/access_control/policy_list.py
787
783
  bloomerp/views/access_control/update.py
788
784
  bloomerp/views/api/__init__.py
789
785
  bloomerp/views/api/access_control.py
786
+ bloomerp/views/api/api_views.py
790
787
  bloomerp/views/api/auth.py
791
788
  bloomerp/views/api/workflow_webhook.py
792
789
  bloomerp/views/api/sql/__init__.py
@@ -809,6 +806,18 @@ bloomerp/views/detail/delete_view.py
809
806
  bloomerp/views/detail/files.py
810
807
  bloomerp/views/detail/foreign_relationship.py
811
808
  bloomerp/views/detail/overview.py
809
+ bloomerp/views/document_templates/__init__.py
810
+ bloomerp/views/document_templates/document_template_editor.py
811
+ bloomerp/views/document_templates/generate_document_template.py
812
+ bloomerp/views/document_templates/generate_document_template_for_model.py
813
+ bloomerp/views/document_templates/generated_document_template_list.py
814
+ bloomerp/views/mixins/__init__.py
815
+ bloomerp/views/mixins/conditional_staff_required_mixin.py
816
+ bloomerp/views/mixins/htmx_mixin.py
817
+ bloomerp/views/mixins/layout_form_mixin.py
818
+ bloomerp/views/mixins/model_context_mixin.py
819
+ bloomerp/views/mixins/model_form_view_mixin.py
820
+ bloomerp/views/mixins/wizard_mixin.py
812
821
  bloomerp/views/user/__init__.py
813
822
  bloomerp/views/user/admin_reset_password.py
814
823
  bloomerp/views/user/base.py
@@ -816,8 +825,6 @@ bloomerp/views/user/create_user.py
816
825
  bloomerp/views/user/inbox.py
817
826
  bloomerp/views/user/profile.py
818
827
  bloomerp/views/user/reset_password.py
819
- bloomerp/views/view_mixins/form.py
820
- bloomerp/views/view_mixins/wizard.py
821
828
  bloomerp/views/website_builder/create_website.py
822
829
  bloomerp/views/workspace/base_workspace_view.py
823
830
  bloomerp/views/workspace/create_tile.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Bloomerp
3
- Version: 1.0.0.dev26
3
+ Version: 1.0.0.dev27
4
4
  Summary: Bloomerp is an open-source Business Management Software framework that lets you create fully functional business management applications just by defining your Django database models.
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -10,7 +10,7 @@ from bloomerp.router import router
10
10
  from bloomerp.services.sql_services import DatabaseTable
11
11
  from bloomerp.services.user_services import get_data_view_fields, get_user_list_view_preference
12
12
  from bloomerp.utils.requests import parse_bool_parameter
13
- from bloomerp.views.view_mixins.wizard import BaseStateOrchestrator
13
+ from bloomerp.views.mixins.wizard_mixin import BaseStateOrchestrator
14
14
  from bloomerp.views.workspace.create_tile import (
15
15
  CREATE_TILE_SESSION_KEY,
16
16
  TILE_DESCRIPTION_SESSION_KEY,
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-stone-200:oklch(92.3% .003 48.717);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:#f4f4fd;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-500:#4154f1;--color-primary:#4154f1;--color-primary-600:#4154f1;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-primary-950:#172554;--color-secondary-50:#f8fafc;--color-secondary-100:#f1f5f9;--color-secondary-200:#e2e8f0;--color-secondary-300:#cbd5e1;--color-secondary-400:#94a3b8;--color-secondary-500:#64748b;--color-secondary:#64748b;--color-secondary-600:#475569;--color-secondary-900:#0f172a;--color-success-light:#d4edda;--color-success-dark:#155724;--color-danger-light:#f8d7da;--color-danger-dark:#d14836;--color-danger-100:#f8d7da;--color-warning-light:#fff3cd;--color-warning-dark:#856404;--color-base:#f4f2f0;--color-light:#686765;--color-dark:#5d5e5e}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html,body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-optical-sizing:auto}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:oklch(54.6% .245 262.881);--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:oklch(55.1% .027 264.364);flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.btn{border-radius:var(--radius-xl);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.btn:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-outline-style:none;outline-style:none}.btn:hover{cursor:pointer}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{border-color:var(--color-primary-600);background-color:var(--color-primary);color:var(--color-white);--tw-ring-color:var(--color-primary-500)}.btn-primary:hover:not(:disabled){border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-white)}.btn-secondary{border-color:var(--color-secondary-300);background-color:var(--color-secondary-100);color:var(--color-secondary-900);--tw-ring-color:var(--color-secondary-500)}.btn-secondary:hover:not(:disabled){border-color:var(--color-secondary-400);background-color:var(--color-secondary-200)}.btn-success{border-color:var(--color-success-light);background-color:var(--color-success-light);color:var(--color-white);--tw-ring-color:var(--color-success-light)}.btn-success:hover:not(:disabled){border-color:var(--color-success-dark);background-color:var(--color-success-dark)}.btn-danger{border-color:var(--color-danger-dark);background-color:var(--color-danger-dark);color:var(--color-white);--tw-ring-color:var(--color-red-300)}.btn-danger:hover:not(:disabled){border-color:var(--color-red-800);background-color:var(--color-red-800)}.btn-warning{border-color:var(--color-warning-light);background-color:var(--color-warning-light);color:var(--color-white);--tw-ring-color:var(--color-amber-300)}.btn-warning:hover:not(:disabled){border-color:var(--color-amber-700);background-color:var(--color-amber-700)}.btn-info{border-color:var(--color-blue-500);background-color:var(--color-blue-500);color:var(--color-white);--tw-ring-color:var(--color-blue-400)}.btn-info:hover:not(:disabled){border-color:var(--color-blue-700);background-color:var(--color-blue-700)}.btn-light{border-color:var(--color-gray-300);background-color:var(--color-gray-100);color:var(--color-primary-950);--tw-ring-color:var(--color-gray-500)}.btn-light:hover:not(:disabled){border-color:var(--color-gray-400);background-color:var(--color-gray-200)}.btn-dark{border-color:var(--color-gray-800);background-color:var(--color-dark);color:var(--color-white);--tw-ring-color:var(--color-gray-600)}.btn-dark:hover:not(:disabled){border-color:var(--color-gray-900);background-color:var(--color-gray-900)}.badge{align-items:center;gap:calc(var(--spacing)*1);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;border-radius:3.40282e38px;display:inline-flex}.badge-sm{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*.5);font-size:11px}.badge-primary{background-color:var(--color-primary);color:var(--color-white)}.badge-neutral{border-color:var(--color-gray-300);background-color:var(--color-gray-100);color:var(--color-gray-700)}@media (hover:hover){.badge-neutral:hover{background-color:var(--color-gray-200)}}.badge-danger{border-color:var(--color-danger-dark);background-color:var(--color-danger-light);color:var(--color-danger-dark)}@media (hover:hover){.badge-danger:hover{background-color:var(--color-red-200)}}.badge-success{border-color:var(--color-success-dark);background-color:var(--color-success-light);color:var(--color-success-dark)}@media (hover:hover){.badge-success:hover{background-color:var(--color-green-200)}}.badge-warning{border-color:var(--color-warning-dark);background-color:var(--color-warning-light);color:var(--color-warning-dark)}@media (hover:hover){.badge-warning:hover{background-color:var(--color-yellow-200)}}.badge-info{border-color:var(--color-blue-400);background-color:var(--color-blue-100);color:var(--color-blue-700)}@media (hover:hover){.badge-info:hover{background-color:var(--color-blue-200)}}.badge-remove{border-radius:var(--radius-sm);opacity:.8;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));justify-content:center;align-items:center;font-size:10px;display:inline-flex}@media (hover:hover){.badge-remove:hover{opacity:1}}.btn-outline-primary{border-color:var(--color-primary-600);color:var(--color-primary-600);--tw-ring-color:var(--color-primary-500);background-color:#0000}.btn-outline-primary:hover:not(:disabled){background-color:var(--color-primary-600);color:var(--color-white)}.btn-outline-secondary{border-color:var(--color-secondary-600);color:var(--color-secondary-600);--tw-ring-color:var(--color-secondary-500);background-color:#0000}.btn-outline-secondary:hover:not(:disabled){background-color:var(--color-secondary-600);color:var(--color-white)}.btn-outline-success{border-color:var(--color-success-light);color:var(--color-success-light);--tw-ring-color:var(--color-success-light);background-color:#0000}.btn-outline-success:hover:not(:disabled){background-color:var(--color-success-light);color:var(--color-white)}.btn-outline-danger{border-color:var(--color-danger-light);color:var(--color-danger-light);--tw-ring-color:var(--color-danger-light);background-color:#0000}.btn-outline-danger:hover:not(:disabled){background-color:var(--color-danger-light);color:var(--color-white)}.btn-outline{border-style:var(--tw-border-style);background-color:#0000;border-width:1px}.btn-primary.btn-outline{border-color:var(--color-primary-600);color:var(--color-primary-600)}.btn-primary.btn-outline:hover:not(:disabled){background-color:var(--color-primary-600);color:var(--color-white)}.btn-secondary.btn-outline{border-color:var(--color-secondary-600);color:var(--color-secondary-600)}.btn-secondary.btn-outline:hover:not(:disabled){background-color:var(--color-secondary-600);color:var(--color-white)}.btn-xs{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.btn-sm{padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1.5);--tw-leading:calc(var(--spacing)*4);font-size:.75rem;line-height:calc(var(--spacing)*4)}.btn-lg{padding-inline:calc(var(--spacing)*6);padding-block:calc(var(--spacing)*3);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-base)}.btn-xl{padding-inline:calc(var(--spacing)*8);padding-block:calc(var(--spacing)*4);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.btn-block{width:100%}.table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5);color:var(--color-gray-500)}.table thead th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-200);background-color:var(--color-base);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:var(--color-gray-700)}.table tbody td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-200);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*2)}.table tbody tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.table-striped tbody tr:nth-child(odd),.table-hover tbody tr:hover{background-color:var(--color-gray-50)}.table-bordered,.table-bordered th,.table-bordered td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300)}.table-borderless th,.table-borderless td,.table-borderless thead th{border-style:var(--tw-border-style);border-width:0}.table-sm th,.table-sm td{padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.table-lg th,.table-lg td{padding-inline:calc(var(--spacing)*6);padding-block:calc(var(--spacing)*6);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-base)}.table-primary{background-color:var(--color-primary-50)}.table-primary th{background-color:var(--color-primary-100);color:var(--color-primary-900)}.table-secondary{background-color:var(--color-secondary-50)}.table-secondary th{background-color:var(--color-secondary-100);color:var(--color-secondary-900)}.table-success{background-color:var(--color-green-50)}.table-success th{background-color:var(--color-green-100);color:var(--color-green-800)}.table-danger{background-color:var(--color-red-50)}.table-danger th{background-color:var(--color-red-100);color:var(--color-red-800)}.table-warning{background-color:var(--color-amber-50)}.table-warning th{background-color:var(--color-amber-100);color:var(--color-amber-800)}.table-info{background-color:var(--color-blue-50)}.table-info th{background-color:var(--color-blue-100);color:var(--color-blue-800)}.table-light{background-color:var(--color-gray-50)}.table-light th{background-color:var(--color-gray-100);color:var(--color-gray-900)}.table-dark{background-color:var(--color-gray-800);color:var(--color-white)}.table-dark th{border-color:var(--color-gray-600);background-color:var(--color-gray-900);color:var(--color-white)}.table-dark td{border-color:var(--color-gray-600)}.table-dark.table-striped tbody tr:nth-child(odd),.table-dark.table-hover tbody tr:hover{background-color:var(--color-gray-600)}.table-responsive,.table-responsive-sm,.table-responsive-md,.table-responsive-lg,.table-responsive-xl{overflow-x:auto}.table-primary-row{background-color:var(--color-primary-50)}.table-secondary-row{background-color:var(--color-secondary-50)}.table-success-row{background-color:var(--color-green-50)}.table-danger-row{background-color:var(--color-red-50)}.table-warning-row{background-color:var(--color-amber-50)}.table-info-row{background-color:var(--color-blue-50)}.table-light-row{background-color:var(--color-gray-50)}.table-dark-row{background-color:var(--color-gray-800);color:var(--color-white)}.table-actions{width:calc(var(--spacing)*24);text-align:center}.table-actions-wide{width:calc(var(--spacing)*32);text-align:center}.card{border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-50);border-color:var(--color-slate-200);background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.card{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.card{padding:calc(var(--spacing)*3)}.workspace-row{border-radius:var(--radius-2xl);border-style:var(--tw-border-style);padding:calc(var(--spacing)*0);background-color:#0000;border-width:1px;border-color:#0000;position:relative}.workspace-row__grid{gap:calc(var(--spacing)*3);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;transition-duration:.2s;display:grid}.workspace-edit-mode .workspace-row{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-100);background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.workspace-edit-mode .workspace-row{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.workspace-edit-mode .workspace-row{padding:calc(var(--spacing)*2)}.workspace-row--focused{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-outline-style:none;--tw-ring-color:var(--color-primary-700);--tw-ring-offset-color:var(--color-white);outline-style:none}.workspace-row--dragging{opacity:.8;scale:.99}.workspace-row--drag-ghost{opacity:.35}.workspace-row--drag-chosen{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-slate-200)}.workspace-row__header{z-index:10;margin-bottom:calc(var(--spacing)*2);justify-content:space-between;align-items:center;gap:calc(var(--spacing)*3);display:flex;position:relative}.workspace-row__controls{align-items:center;gap:calc(var(--spacing)*2);background-color:#fffffff2;display:none}@supports (color:color-mix(in lab, red, red)){.workspace-row__controls{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.workspace-row__controls{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1)}.workspace-row__title{min-width:calc(var(--spacing)*0);text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-primary-900);flex:1;overflow:hidden}.workspace-row__title--empty{visibility:hidden}.workspace-edit-mode .workspace-row__controls,.workspace-edit-mode .workspace-row--focused .workspace-row__controls{display:flex}.workspace-tile--dragging{opacity:.9;--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);scale:.99}.workspace-tile--drag-ghost{opacity:.35}.workspace-tile--drag-chosen{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-slate-200)}.workspace-sidebar-item--dragging{opacity:.9;--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.workspace-sidebar-item--drag-ghost{opacity:.35}.workspace-sidebar-item--drag-chosen{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-slate-200)}.workspace-row__input{width:calc(var(--spacing)*12);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-200);padding-inline:calc(var(--spacing)*1);padding-block:calc(var(--spacing)*.5);text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.workspace-row__drag{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-200);color:var(--color-slate-500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:3.40282e38px}@media (hover:hover){.workspace-row__drag:hover{background-color:var(--color-slate-50)}}.workspace-row__add{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-200);color:var(--color-slate-500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:3.40282e38px}@media (hover:hover){.workspace-row__add:hover{background-color:var(--color-slate-50)}}.workspace-row__remove{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-rose-200);color:var(--color-rose-500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:3.40282e38px}@media (hover:hover){.workspace-row__remove:hover{background-color:var(--color-rose-50)}}.select{appearance:none;border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));background-position:100%;background-repeat:no-repeat}.select:focus{border-color:var(--color-primary);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-primary)}.select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-size:1.5em 1.5em;padding-right:2.5rem}.select-sm{padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1.5);--tw-leading:calc(var(--spacing)*4);font-size:.75rem;line-height:calc(var(--spacing)*4);background-position:right .25rem center}.select-lg{padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3);color:var(--color-base);background-position:right .5rem center;padding-right:3rem}.skeleton-loader{border-radius:var(--radius-md);background-color:var(--color-white);width:100%}.skeleton-header{margin-bottom:calc(var(--spacing)*4);height:calc(var(--spacing)*6);background:linear-gradient(110deg,#ececec 8%,#f5f5f5 18%,#ececec 33%) 0 0/200% 100%;border-radius:.25rem;width:33.3333%;animation:1.5s linear infinite shine}:where(.skeleton-content>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.skeleton-line{height:calc(var(--spacing)*4);background:linear-gradient(110deg,#ececec 8%,#f5f5f5 18%,#ececec 33%) 0 0/200% 100%;border-radius:.25rem;width:100%;animation:1.5s linear infinite shine}.skeleton-line.short{width:66.6667%}.alert{border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-width:1px}.alert-primary{border-color:var(--color-primary-100);background-color:var(--color-primary-50);color:var(--color-primary-900)}.alert-secondary{border-color:var(--color-secondary-100);background-color:var(--color-secondary-50);color:var(--color-secondary-900)}.alert-success{border-color:var(--color-success-light);background-color:var(--color-success-light);color:var(--color-success-dark)}.alert-danger{border-color:var(--color-danger-100);background-color:var(--color-danger-light);color:var(--color-danger-dark)}[data-sidebar-content] [data-sidebar-folder-dropzone]{transition:box-shadow .18s ease-out,background-color .15s ease-out}#drawflow{background-color:#f8f9fa;background-image:radial-gradient(circle,#d1d5db 1px,#0000 1px);background-size:20px 20px}.drawflow .drawflow-node{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);min-width:200px;padding:calc(var(--spacing)*0);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition:box-shadow .2s,border-color .2s;color:#000!important;background:#fff!important;border:1px solid #e5e7eb!important;border-radius:.5rem!important;width:auto!important;min-height:40px!important;padding:0!important;display:block!important}.drawflow .drawflow-node:hover{border-color:var(--color-gray-300);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#d1d5db!important}.drawflow .drawflow-node.selected{border-color:var(--color-gray-400);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#9ca3af!important}.node-content{width:100%}.node-header{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-200);background-color:var(--color-gray-50);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-900);cursor:move;color:#111827!important;background-color:#f9fafb!important}.node-header.bg-green-500,.node-header.bg-blue-500,.node-header.bg-yellow-500,.node-header.bg-red-500,.node-header.bg-purple-500{background-color:var(--color-gray-50);color:var(--color-gray-900)}.node-body{padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3)}.node-body p{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-gray-500)}.node-input,.node-select{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300);background-color:var(--color-white);width:100%;padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));transition:border-color .15s,box-shadow .15s}.node-input:focus,.node-select:focus{border-color:var(--color-gray-400);--tw-outline-style:none;outline-style:none;box-shadow:0 0 0 3px #9ca3af1a}.drawflow .drawflow-node .input,.drawflow .drawflow-node .output{transition:all .2s;z-index:10!important;background:#9ca3af!important;border:2px solid #fff!important;border-radius:50%!important;width:14px!important;height:14px!important;position:absolute!important;top:50%!important;transform:translateY(-50%)!important}.drawflow .drawflow-node .input:hover,.drawflow .drawflow-node .output:hover{background:#6b7280!important;transform:translateY(-50%)scale(1.2)!important}.drawflow .drawflow-node .input{radius:50%!important;left:-1rem!important}.drawflow .drawflow-node .output{right:-7px!important}.drawflow .drawflow-node .input_1,.drawflow .drawflow-node .output_1{top:50%!important}.drawflow .drawflow-node .input_2{top:30%!important}.drawflow .drawflow-node .output_2{top:70%!important}.drawflow .connection .main-path{stroke:#9ca3af!important;stroke-width:2px!important;fill:none!important}.drawflow .connection .main-path:hover{stroke:#6b7280!important;stroke-width:3px!important}.drawflow .connection .point{stroke:#9ca3af!important;stroke-width:2px!important;fill:#fff!important}.drawflow .connection .point:hover{fill:#9ca3af!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing)*3)}.top-5{top:calc(var(--spacing)*5)}.top-\[55\%\]{top:55%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-0\.5{right:calc(var(--spacing)*.5)}.right-1{right:calc(var(--spacing)*1)}.right-3{right:calc(var(--spacing)*3)}.right-6{right:calc(var(--spacing)*6)}.right-full{right:100%}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-6{bottom:calc(var(--spacing)*6)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-1\/2{left:50%}.left-5{left:calc(var(--spacing)*5)}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-50,.z-\[50\]{z-index:50}.z-\[70\]{z-index:70}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.z-\[100\]{z-index:100}.z-\[120\]{z-index:120}.z-\[140\]{z-index:140}.col-6{grid-column:6}.col-span-1{grid-column:span 1/span 1}.col-span-3{grid-column:span 3/span 3}.col-span-9{grid-column:span 9/span 9}.col-span-full{grid-column:1/-1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-2{margin:calc(var(--spacing)*2)}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing)*0)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-8{margin-block:calc(var(--spacing)*8)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-14{margin-top:calc(var(--spacing)*14)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing)*-1)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-8{margin-left:calc(var(--spacing)*8)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-44{height:calc(var(--spacing)*44)}.h-52{height:calc(var(--spacing)*52)}.h-72{height:calc(var(--spacing)*72)}.h-96{height:calc(var(--spacing)*96)}.h-\[320px\]{height:320px}.h-\[700px\]{height:700px}.h-\[calc\(100vh-1\.5rem\)\]{height:calc(100vh - 1.5rem)}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:calc(var(--spacing)*0)}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-52{max-height:calc(var(--spacing)*52)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-72{max-height:calc(var(--spacing)*72)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[60px\]{max-height:60px}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-11{min-height:calc(var(--spacing)*11)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-20{min-height:calc(var(--spacing)*20)}.min-h-64{min-height:calc(var(--spacing)*64)}.min-h-96{min-height:calc(var(--spacing)*96)}.min-h-\[60px\]{min-height:60px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[400px\]{min-height:400px}.min-h-\[1200px\]{min-height:1200px}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing)*1)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing)*2)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-18{width:calc(var(--spacing)*18)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-128{width:calc(var(--spacing)*128)}.w-\[28rem\]{width:28rem}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-56{max-width:calc(var(--spacing)*56)}.max-w-64{max-width:calc(var(--spacing)*64)}.max-w-\[min\(28rem\,calc\(100vw-2rem\)\)\]{max-width:min(28rem,100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-48{min-width:calc(var(--spacing)*48)}.min-w-56{min-width:calc(var(--spacing)*56)}.min-w-72{min-width:calc(var(--spacing)*72)}.min-w-\[12rem\]{min-width:12rem}.min-w-\[160px\]{min-width:160px}.min-w-\[300px\]{min-width:300px}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-1{flex-grow:1}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.origin-bottom-left{transform-origin:0 100%}.origin-bottom-right{transform-origin:100% 100%}.origin-center{transform-origin:50%}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.origin-top-right{transform-origin:100% 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-115{--tw-scale-x:115%;--tw-scale-y:115%;--tw-scale-z:115%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\[1\.03\]{scale:1.03}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.cursor-context-menu{cursor:context-menu}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.resize{resize:both}.resize-none{resize:none}.resize-x{resize:horizontal}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.form-select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}.form-select:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}.form-select{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.form-select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}.appearance-none{appearance:none}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[10rem_minmax\(0\,1fr\)\]{grid-template-columns:10rem minmax(0,1fr)}.grid-cols-\[148px_1fr\]{grid-template-columns:148px 1fr}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)_220px\]{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 220px}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-16{gap:calc(var(--spacing)*16)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing)*1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-visible{overflow-x:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-base{border-color:var(--color-base)}.border-blue-200{border-color:var(--color-blue-200)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-200{border-color:var(--color-green-200)}.border-primary{border-color:var(--color-primary)}.border-primary-100{border-color:var(--color-primary-100)}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-700{border-color:var(--color-primary-700)}.border-primary\/40{border-color:#4154f166}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.border-red-100{border-color:var(--color-red-100)}.border-red-200{border-color:var(--color-red-200)}.border-red-400{border-color:var(--color-red-400)}.border-red-500{border-color:var(--color-red-500)}.border-rose-200{border-color:var(--color-rose-200)}.border-slate-50{border-color:var(--color-slate-50)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-stone-200{border-color:var(--color-stone-200)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-b-gray-200{border-bottom-color:var(--color-gray-200)}.bg-\[\#000000\]\/4{background-color:oklab(0% none none/.04)}.bg-\[\#000000\]\/6{background-color:oklab(0% none none/.06)}.bg-\[\#4F46E5\]\/4{background-color:oklab(51.0573% .0278994 -.228355/.04)}.bg-\[\#4F46E5\]\/6{background-color:oklab(51.0573% .0278994 -.228355/.06)}.bg-\[\#8B5CF6\]\/4{background-color:oklab(60.5631% .0845415 -.201932/.04)}.bg-\[\#8B5CF6\]\/6{background-color:oklab(60.5631% .0845415 -.201932/.06)}.bg-\[\#12C152\]\/4{background-color:oklab(70.8814% -.169987 .104858/.04)}.bg-\[\#12C152\]\/6{background-color:oklab(70.8814% -.169987 .104858/.06)}.bg-\[\#14B8A6\]\/4{background-color:oklab(70.3753% -.122901 -.00537139/.04)}.bg-\[\#14B8A6\]\/6{background-color:oklab(70.3753% -.122901 -.00537139/.06)}.bg-\[\#2383EB\]\/4{background-color:oklab(61.1618% -.0479452 -.172081/.04)}.bg-\[\#2383EB\]\/6{background-color:oklab(61.1618% -.0479452 -.172081/.06)}.bg-\[\#64748B\]\/4{background-color:oklab(55.4391% -.00887066 -.039739/.04)}.bg-\[\#64748B\]\/6{background-color:oklab(55.4391% -.00887066 -.039739/.06)}.bg-\[\#A855F7\]\/4{background-color:oklab(62.6846% .129701 -.193012/.04)}.bg-\[\#A855F7\]\/6{background-color:oklab(62.6846% .129701 -.193012/.06)}.bg-\[\#F4B400\]\/4{background-color:oklab(80.7712% .0211094 .164836/.04)}.bg-\[\#F4B400\]\/6{background-color:oklab(80.7712% .0211094 .164836/.06)}.bg-\[\#F35BA5\]\/4{background-color:oklab(68.9991% .197704 -.0228419/.04)}.bg-\[\#F35BA5\]\/6{background-color:oklab(68.9991% .197704 -.0228419/.06)}.bg-\[\#FF4D4F\]\/4{background-color:oklab(67.3245% .195098 .088769/.04)}.bg-\[\#FF4D4F\]\/6{background-color:oklab(67.3245% .195098 .088769/.06)}.bg-\[\#FF6A21\]\/4{background-color:oklab(70.1905% .1463 .132747/.04)}.bg-\[\#FF6A21\]\/6{background-color:oklab(70.1905% .1463 .132747/.06)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-base{background-color:var(--color-base)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-900\/50{background-color:#10182880}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/50{background-color:color-mix(in oklab,var(--color-gray-900)50%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-primary{background-color:var(--color-primary)}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-600{background-color:var(--color-primary-600)}.bg-primary-700{background-color:var(--color-primary-700)}.bg-primary\/5{background-color:#4154f10d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/8{background-color:#4154f114}@supports (color:color-mix(in lab, red, red)){.bg-primary\/8{background-color:color-mix(in oklab,var(--color-primary)8%,transparent)}}.bg-primary\/10{background-color:#4154f11a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-50\/80{background-color:#fef2f2cc}@supports (color:color-mix(in lab, red, red)){.bg-red-50\/80{background-color:color-mix(in oklab,var(--color-red-50)80%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200)80%,transparent)}}.bg-slate-950{background-color:var(--color-slate-950)}.bg-stone-200{background-color:var(--color-stone-200)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-200{background-color:var(--color-yellow-200)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-rose-300{--tw-gradient-from:var(--color-rose-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-rose-500{--tw-gradient-to:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-14{padding-block:calc(var(--spacing)*14)}.ps-1{padding-inline-start:calc(var(--spacing)*1)}.ps-3{padding-inline-start:calc(var(--spacing)*3)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-10{padding-right:calc(var(--spacing)*10)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.95em\]{font-size:.95em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-\[\#000000\]{color:#000}.text-\[\#4F46E5\]{color:#4f46e5}.text-\[\#8B5CF6\]{color:#8b5cf6}.text-\[\#12C152\]{color:#12c152}.text-\[\#14B8A6\]{color:#14b8a6}.text-\[\#2383EB\]{color:#2383eb}.text-\[\#64748B\]{color:#64748b}.text-\[\#A855F7\]{color:#a855f7}.text-\[\#F4B400\]{color:#f4b400}.text-\[\#F35BA5\]{color:#f35ba5}.text-\[\#FF4D4F\]{color:#ff4d4f}.text-\[\#FF6A21\]{color:#ff6a21}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-amber-900{color:var(--color-amber-900)}.text-base{color:var(--color-base)}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-dark{color:var(--color-dark)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-inherit{color:inherit}.text-light{color:var(--color-light)}.text-orange-700{color:var(--color-orange-700)}.text-primary{color:var(--color-primary)}.text-primary-600{color:var(--color-primary-600)}.text-primary-700{color:var(--color-primary-700)}.text-primary-800{color:var(--color-primary-800)}.text-primary-900{color:var(--color-primary-900)}.text-primary\/70{color:#4154f1b3}@supports (color:color-mix(in lab, red, red)){.text-primary\/70{color:color-mix(in oklab,var(--color-primary)70%,transparent)}}.text-purple-700{color:var(--color-purple-700)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-rose-500{color:var(--color-rose-500)}.text-secondary{color:var(--color-secondary)}.text-slate-100{color:var(--color-slate-100)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.caret-black{caret-color:var(--color-black)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-gray-900{--tw-ring-color:var(--color-gray-900)}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-primary-300{--tw-ring-color:var(--color-primary-300)}.ring-primary-500{--tw-ring-color:var(--color-primary-500)}.ring-primary-700{--tw-ring-color:var(--color-primary-700)}.ring-primary\/30{--tw-ring-color:#4154f14d}@supports (color:color-mix(in lab, red, red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.ring-primary\/40{--tw-ring-color:#4154f166}@supports (color:color-mix(in lab, red, red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.ring-red-500{--tw-ring-color:var(--color-red-500)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-\[\.workspace-tile--editing\]\:block:is(:where(.group).workspace-tile--editing *){display:block}.placeholder\:text-gray-400::placeholder{color:var(--color-gray-400)}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.open\:bg-white\/60:is([open],:popover-open,:open){background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.open\:bg-white\/60:is([open],:popover-open,:open){background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.focus-within\:border-primary:focus-within{border-color:var(--color-primary)}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-primary:focus-within{--tw-ring-color:var(--color-primary)}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary-300:hover{border-color:var(--color-primary-300)}.hover\:border-primary\/40:hover{border-color:#4154f166}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-base:hover{background-color:var(--color-base)}.hover\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-primary-50\/40:hover{background-color:#f4f4fd66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary-50\/40:hover{background-color:color-mix(in oklab,var(--color-primary-50)40%,transparent)}}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-700:hover{background-color:var(--color-primary-700)}.hover\:bg-primary\/5:hover{background-color:#4154f10d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.hover\:bg-primary\/10:hover{background-color:#4154f11a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:#4154f1e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-primary-700:hover{color:var(--color-primary-700)}.hover\:text-primary-800:hover{color:var(--color-primary-800)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-red-900:hover{color:var(--color-red-900)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-0:focus{border-style:var(--tw-border-style);border-width:0}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:underline:focus{text-decoration-line:underline}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-gray-300:focus{--tw-ring-color:var(--color-gray-300)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:ml-5{margin-left:calc(var(--spacing)*5)}.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:max-w-80{max-width:calc(var(--spacing)*80)}.sm\:max-w-\[60\%\]{max-width:60%}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-3{gap:calc(var(--spacing)*3)}.sm\:px-5{padding-inline:calc(var(--spacing)*5)}.sm\:pl-6{padding-left:calc(var(--spacing)*6)}}@media (min-width:48rem){.md\:col-span-4{grid-column:span 4/span 4}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:justify-self-end{justify-self:flex-end}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:pt-4{padding-top:calc(var(--spacing)*4)}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:text-base{color:var(--color-base)}}@media (min-width:64rem){.lg\:m-8{margin:calc(var(--spacing)*8)}.lg\:ml-64{margin-left:calc(var(--spacing)*64)}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:self-auto{align-self:auto}.lg\:p-8{padding:calc(var(--spacing)*8)}.lg\:text-left{text-align:left}}@media (min-width:80rem){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.text-muted{color:var(--color-gray-400)}.cell-focused{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-primary);--tw-ring-inset:inset}.cell-selected{background-color:var(--color-primary-50)}.workspace-tile--focused{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-outline-style:none;--tw-ring-color:var(--color-primary-700);--tw-ring-offset-color:var(--color-white);outline-style:none}.workspace-row-selection [data-layout-item-controls],.workspace-row-selection [data-layout-colspan-resize-handle]{display:none}.detail-layout-item--editing .detail-layout-item__body{pointer-events:none;opacity:.7}.detail-layout-item{position:relative}.detail-layout-item:not(.detail-layout-item--editing){border-style:var(--tw-border-style);padding:calc(var(--spacing)*0);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-outline-style:none;background-color:#0000;border-width:0;border-radius:0;outline-style:none}.detail-layout-item__header{gap:calc(var(--spacing)*2)}.detail-layout-item--editing{border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-200);background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.detail-layout-item--editing{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.detail-layout-item--editing{padding:calc(var(--spacing)*3)}.detail-layout-item--editing .detail-layout-item__header{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-slate-500)}.detail-layout-item--editing [data-layout-colspan-resize-handle]{display:block}a:hover{cursor:pointer}.pagetitle{background-color:var(--color-primary-950)}.card-title{margin-bottom:calc(var(--spacing)*2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-primary-900)}.input{border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.input:focus{border-color:var(--color-primary);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-primary)}.input-sm{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.input-lg{padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3)}.input:disabled{cursor:not-allowed;background-color:var(--color-gray-100)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}}.timesheet-entry{padding:2px}.timesheet-entry:hover{border:1px solid;border-radius:1px}.filter-section .bi-plus-lg{justify-content:flex;flex-wrap:wrap;display:flex}.filter-section .filter-item{background-color:#ebebeb;border-radius:10px;margin:10px;padding:8px 15px}.filter-section .filter-item:hover{background-color:#eee}.dropdown-menu.filter-dropdown-menu{width:30vw;padding:10px}@media (max-width:576px){.dropdown-menu.filter-dropdown-menu{width:100vw}}.pointer{cursor:pointer}.pointer:hover{color:var(--primary-hover)}.copy-icon{cursor:pointer;size:2;margin-left:5px;position:relative}.copy-icon:hover{color:#b5d2fd}.list-view-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:35px;height:35px}.label-container{color:#fff;flex-wrap:wrap;justify-content:start;display:flex}.label-span{background-color:var(--primary);cursor:pointer;flex-wrap:wrap;margin-bottom:4px;margin-right:4px;padding:7px;display:flex}.label-span:hover{background-color:#6776f4}.draggable{cursor:move}.drag-over{border:1px dashed var(--dark);background-color:#e3ebfc;margin:10px;padding:10px}.dropzone-container{background-color:var(--main-light)}.dropzone-row{background-color:#edf3ff;border:1px dashed #b5b5b5;margin:20px;padding:20px}.dropzone-row.dropzone-row-add-col{position:absolute;top:0}.dropzone-col.dragover{border:1px dashed var(--dark);z-index:1000;background-color:#6e7685}.save-layout-div{z-index:1000;background-color:#0000;position:fixed;bottom:15px;right:60px}.href{cursor:pointer;color:var(--primary)}.file-breadcrumb-item{color:var(--dark);font-size:x-large;font-weight:700}.checkmark{color:var(--main-dark);margin-left:5px;font-size:20px;position:absolute;top:-5px;right:-5px}.htmx-indicator{width:20px;height:20px;display:none}.htmx-request .htmx-indicator{justify-content:center;align-items:center;display:inline}.htmx-request.htmx-indicator{display:inline}.content-layout-row{background-color:#edf3ff;border:1px dashed #b5b5b5;margin:10px;padding:10px}.content-layout-column{background-color:#c9dafc;border:1px solid #b5b5b5;margin:5px;padding:5px}.content-layout-column.dragover{border:1px dashed var(--dark);background-color:#6e7685}.content-layout-column.draggable{cursor:move}.content-layout-item{background-color:#bed3fd;border:1px solid #b5b5b5;margin:5px;padding:5px}.is-loading{z-index:1000;background:linear-gradient(110deg,#ececec 8%,#f5f5f5 18%,#ececec 33%) 0 0/200% 100%;border-radius:5px;animation:1.5s linear infinite shine}@keyframes shine{to{background-position-x:-200%}}.messages-wrapper{z-index:1100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:40px;right:60px}.message-container{opacity:1;border-radius:8px;min-width:400px;max-width:600px;padding:15px 20px;transition:opacity .5s ease-out,transform .5s ease-out;box-shadow:0 4px 6px #0000001a}.alert-message-error{color:#721c24;background-color:#f8d7da}.alert-message-success{color:#155724;background-color:#d4edda}.alert-message{justify-content:space-between;align-items:center;font-size:14px;display:flex}.alert-message-info{color:#004085;background-color:#cce5ff}.alert-message-warning{color:#856404;background-color:#fff3cd}.alert-icon{height:24px;padding-right:5px}.alert-close{cursor:pointer;height:20px}.fade-out{opacity:0;transform:translateY(-20px)}.spinner-container{justify-content:center;align-items:center;height:50vh;display:flex}.assistant-bubble{color:#000;word-wrap:break-word;border:var(--primary)2px solid;background-color:#fff;border-radius:10px;max-width:75%;padding:10px}.user-bubble{background-color:var(--primary);color:#fff;word-wrap:break-word;border-radius:10px;max-width:75%;padding:10px}.signature-canvas{touch-action:none;border:1px solid #ced4da;border-radius:.25rem;width:100%;height:200px}.initials{color:#fff;background-color:gray;justify-content:center;align-items:center;display:flex}.context-menu{z-index:1000;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:5px;display:none;position:absolute}[data-text-editor-body]{position:relative}[data-text-editor-body][data-placeholder][data-empty=true]:before{content:attr(data-placeholder);color:#9ca3af;pointer-events:none;white-space:pre-wrap;position:absolute;top:0;left:0}.form-legend{color:var(--main-dark);font-size:18px;font-weight:700;font-family:var(--font-sans)}.fc .fc-button-primary{background-color:var(--primary);border-color:var(--primary);color:#fff}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.full-screen{z-index:1050;background-color:#f8f9fa;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.underline{text-decoration:underline}.text-meta{color:#6c757d;font-size:12px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1,16 @@
1
+ {% extends "bloomerp_base.html" %}
2
+
3
+ {% block body %}
4
+ <body class="bg-base min-h-screen" id="bloomerpBody" x-data>
5
+ <main class="flex min-h-screen items-center justify-center px-6 py-10">
6
+ <div class="w-full max-w-3xl">
7
+ {% include 'snippets/403.html' %}
8
+ </div>
9
+ </main>
10
+
11
+ {% include 'snippets/vite_bundle.html' %}
12
+
13
+ {% block scripts %}
14
+ {% endblock scripts %}
15
+ </body>
16
+ {% endblock body %}
@@ -0,0 +1,17 @@
1
+ <div class="mx-auto flex max-w-xl flex-col items-center justify-center gap-4 rounded-xl border border-gray-200 bg-white px-8 py-12 text-center shadow-sm">
2
+ <div class="flex h-12 w-12 items-center justify-center rounded-full bg-red-50 text-red-600">
3
+ <i class="fa-solid fa-user-shield text-2xl"></i>
4
+ </div>
5
+ <div class="space-y-2">
6
+ <h1 class="text-xl font-semibold text-gray-900">{{ title|default:"Access denied" }}</h1>
7
+ <p class="text-sm leading-6 text-gray-600">
8
+ {{ message|default:"You don't have permission to access this page." }}
9
+ </p>
10
+ </div>
11
+ <a
12
+ href="{{ login_url|default:'/login/' }}"
13
+ class="inline-flex items-center justify-center rounded-lg bg-gray-900 px-4 py-2 text-sm font-medium text-white transition hover:bg-gray-800"
14
+ >
15
+ Go to login
16
+ </a>
17
+ </div>
@@ -10,7 +10,7 @@ from bloomerp.views.api.access_control import PolicyViewSet
10
10
  from django.db.models import Model
11
11
  from bloomerp.utils.models import (model_name_plural_underline)
12
12
  from bloomerp.utils.api import generate_serializer, generate_model_viewset_class
13
- from bloomerp.views.api_views import BloomerpModelViewSet
13
+ from bloomerp.views.api.api_views import BloomerpModelViewSet
14
14
  from bloomerp.models.definition import BloomerpModelConfig
15
15
  from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
16
16
  from bloomerp.utils.urls import IntOrUUIDConverter
@@ -119,14 +119,30 @@ def register_model_api(model: type[Model]) -> None:
119
119
  # Get the config
120
120
  bloomerp_config : BloomerpConfig = getattr(settings, "BLOOMERP_CONFIG", None)
121
121
 
122
+ # Get the login URL
123
+ login_url = settings.LOGIN_URL
124
+
125
+ # Derive the logout URL from the login URL if not explicitly set
126
+ logout_url = getattr(settings, "LOGOUT_URL", None)
127
+ if logout_url is None:
128
+ if login_url.endswith('/login/'):
129
+ logout_url = login_url[:-len('login/')] + 'logout/'
130
+ else:
131
+ logout_url = '/logout/'
132
+
133
+ if login_url.startswith('/'):
134
+ login_url = login_url[1:]
135
+ if logout_url.startswith('/'):
136
+ logout_url = logout_url[1:]
137
+
122
138
  # Get the base URL from the settings
123
139
  urlpatterns = [
124
140
  # login URL
125
- path('login/', auth_views.LoginView.as_view(
141
+ path(login_url, auth_views.LoginView.as_view(
126
142
  template_name='auth_views/login_view.html',
127
143
  next_page=reverse_lazy('bloomerp_home_view')
128
144
  ), name='login'),
129
- path('logout/',auth_views.LogoutView.as_view(next_page=reverse_lazy('login')), name='logout'),
145
+ path(logout_url, auth_views.LogoutView.as_view(next_page=reverse_lazy('login')), name='logout'),
130
146
  ]
131
147
 
132
148
  for model in get_api_models():
@@ -14,8 +14,11 @@ from bloomerp.models.access_control.policy import Policy
14
14
  from bloomerp.models.application_field import ApplicationField
15
15
  from bloomerp.router import router
16
16
  from bloomerp.serializers.access_control import PolicySerializer
17
- from bloomerp.views.mixins import HtmxMixin
18
- from bloomerp.views.view_mixins.wizard import BaseStateOrchestrator, WizardError, WizardMixin, WizardStep
17
+ from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
18
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
19
+ from bloomerp.views.mixins.wizard_mixin import BaseStateOrchestrator, WizardMixin, WizardStep
20
+ from bloomerp.views.mixins.wizard_mixin import WizardError
21
+ from django.contrib.auth.mixins import UserPassesTestMixin
19
22
 
20
23
  GLOBAL_PERMISSIONS_KEY = "global_permissions"
21
24
  ROW_POLICY_NAME_KEY = "row_policy_name"
@@ -264,7 +267,7 @@ def pcs_policy_details(request: HttpRequest, view, orchestrator: BaseStateOrches
264
267
  name="Create Policy for {model}",
265
268
  description="Create an access control policies for {model}",
266
269
  )
267
- class ManageAccessControlForModelView(WizardMixin, HtmxMixin, TemplateView):
270
+ class ManageAccessControlForModelView(ConditionalStaffRequiredMixin, UserPassesTestMixin, WizardMixin, HtmxMixin, TemplateView):
268
271
  template_name = "base_wizard.html"
269
272
  model: type[Model] = None
270
273
 
@@ -358,3 +361,6 @@ class ManageAccessControlForModelView(WizardMixin, HtmxMixin, TemplateView):
358
361
  if self.request.htmx:
359
362
  return HttpResponseClientRedirect(policy.get_absolute_url())
360
363
  return redirect(policy.get_absolute_url())
364
+
365
+ def test_func(self):
366
+ return self.request.user.is_superuser
@@ -1,17 +1,19 @@
1
1
  from bloomerp.router import router
2
2
  from django.views.generic import TemplateView
3
- from bloomerp.views.mixins import HtmxMixin
3
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
4
4
  from django.db.models import Model
5
5
  from django.contrib.contenttypes.models import ContentType
6
6
  from bloomerp.models.access_control.policy import Policy
7
7
  from bloomerp.models import ApplicationField
8
+ from django.contrib.auth.mixins import UserPassesTestMixin
9
+ from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
8
10
 
9
11
  @router.register(
10
12
  path='access-control/policies/',
11
13
  route_type='model',
12
14
  models='__all__',
13
15
  )
14
- class ManageAccessControlForModelView(HtmxMixin, TemplateView):
16
+ class ManageAccessControlForModelView(ConditionalStaffRequiredMixin, UserPassesTestMixin, HtmxMixin, TemplateView):
15
17
  template_name = "access_control_views/policy_list.html"
16
18
  model : Model = None
17
19
 
@@ -30,3 +32,6 @@ class ManageAccessControlForModelView(HtmxMixin, TemplateView):
30
32
 
31
33
  return context
32
34
 
35
+
36
+ def test_func(self):
37
+ return self.request.user.is_superuser
@@ -4,7 +4,7 @@ from bloomerp.serializers.access_control import (
4
4
  PolicySerializer,
5
5
  )
6
6
  from rest_framework.response import Response
7
- from rest_framework.permissions import IsAuthenticated
7
+ from rest_framework.permissions import IsAdminUser, IsAuthenticated
8
8
  from django.db import transaction
9
9
 
10
10
  class PolicyViewSet(viewsets.ModelViewSet):
@@ -26,7 +26,7 @@ class PolicyViewSet(viewsets.ModelViewSet):
26
26
  )
27
27
 
28
28
  serializer_class = PolicySerializer
29
- permission_classes = [IsAuthenticated]
29
+ permission_classes = [IsAuthenticated, IsAdminUser]
30
30
 
31
31
  def get_queryset(self):
32
32
  """
@@ -0,0 +1,33 @@
1
+ # from django.shortcuts import render
2
+ # from django.views.generic import View
3
+ # from django.contrib.auth.mixins import LoginRequiredMixin
4
+ # from django.contrib.contenttypes.models import ContentType
5
+ # from bloomerp.models.users import Bookmark
6
+ # from bloomerp.views.mixins.htmx_mixin import HtmxMixin
7
+ # from bloomerp.router import router
8
+
9
+
10
+ # @router.register(
11
+ # path="user-bookmarks",
12
+ # name="Bookmarks for user",
13
+ # url_name="user_bookmarks",
14
+ # description="Bookmarks for user",
15
+ # route_type="model",
16
+ # models=[Bookmark],
17
+ # )
18
+ # class BloomerpBookmarksView(LoginRequiredMixin, HtmxMixin, View):
19
+ # template_name = "list_views/bloomerp_bookmarks_view.html"
20
+ # model = None
21
+
22
+ # def get_permission_required(self):
23
+ # return [f"{self.model._meta.app_label}.view_{self.model._meta.model_name}"]
24
+
25
+ # def get_context_data(self, **kwargs):
26
+ # context = super().get_context_data(**kwargs)
27
+ # context["content_type_id"] = ContentType.objects.get_for_model(self.model).pk
28
+ # context["initial_query"] = "user=" + str(self.request.user.pk)
29
+ # return context
30
+
31
+ # def get(self, request, *args, **kwargs):
32
+ # context = self.get_context_data()
33
+ # return render(request, self.template_name, context)
@@ -15,8 +15,10 @@ from bloomerp.services.bulk_services import (
15
15
  BulkCrudService,
16
16
  )
17
17
  from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
18
- from bloomerp.views.mixins import HtmxMixin
19
- from bloomerp.views.view_mixins.wizard import BaseStateOrchestrator, WizardError, WizardMixin, WizardStep
18
+ from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
19
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
20
+ from bloomerp.views.mixins.wizard_mixin import BaseStateOrchestrator, WizardMixin, WizardStep
21
+ from bloomerp.views.mixins.wizard_mixin import WizardError
20
22
 
21
23
 
22
24
  DRAFT_FILE_ID_KEY = "file_id"
@@ -201,7 +203,7 @@ def ctx_confirm_step(request: HttpRequest, view:"BloomerpBulkUploadView", orches
201
203
  route_type="model",
202
204
  exclude_models=[File],
203
205
  )
204
- class BloomerpBulkUploadView(PermissionRequiredMixin, WizardMixin, HtmxMixin, TemplateView):
206
+ class BloomerpBulkUploadView(PermissionRequiredMixin, ConditionalStaffRequiredMixin, WizardMixin, HtmxMixin, TemplateView):
205
207
  model = None
206
208
  module = None
207
209
  state_orchestrator_cls = BaseStateOrchestrator
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from functools import cached_property
4
4
 
5
+ from anyio import Condition
5
6
  from django.contrib.auth import get_user_model
6
7
  from django.contrib.auth.mixins import PermissionRequiredMixin
7
8
  from django.contrib.contenttypes.models import ContentType
@@ -21,8 +22,10 @@ from bloomerp.services.create_view_services import (
21
22
  )
22
23
  from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
23
24
  from bloomerp.utils.models import get_detail_view_url
24
- from bloomerp.views.mixins import BloomerpModelFormViewMixin, HtmxMixin
25
- from bloomerp.views.view_mixins.form import BloomerpLayoutFormMixin
25
+ from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
26
+ from bloomerp.views.mixins.model_form_view_mixin import BloomerpModelFormViewMixin
27
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
28
+ from bloomerp.views.mixins.layout_form_mixin import BloomerpLayoutFormMixin
26
29
 
27
30
 
28
31
  User = get_user_model()
@@ -37,6 +40,7 @@ User = get_user_model()
37
40
  exclude_models=[File, Tile, SqlQuery, User, Workspace],
38
41
  )
39
42
  class BloomerpCreateView(
43
+ ConditionalStaffRequiredMixin,
40
44
  PermissionRequiredMixin,
41
45
  SuccessMessageMixin,
42
46
  HtmxMixin,
@@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType
5
5
  from django.urls import reverse
6
6
  from bloomerp.models.application_field import ApplicationField
7
7
  from bloomerp.models.files import File
8
- from bloomerp.views.mixins import HtmxMixin
8
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
9
9
  from bloomerp.router import router
10
10
 
11
11
 
@@ -4,8 +4,9 @@ from django.views.generic.list import ListView
4
4
  from django.contrib.auth.mixins import PermissionRequiredMixin
5
5
  from bloomerp.models.files import File
6
6
  from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
7
- from bloomerp.views.mixins import BloomerpModelContextMixin, HtmxMixin
7
+ from bloomerp.views.mixins.model_context_mixin import BloomerpModelContextMixin
8
8
  from bloomerp.router import router
9
+ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
9
10
 
10
11
 
11
12
  @router.register(