claude-code-templates 1.21.13 → 1.21.14

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 (415) hide show
  1. package/.claude/settings.local.json +8 -2
  2. package/.claude-plugin/marketplace.json +251 -0
  3. package/.github/workflows/component-security-validation.yml +129 -0
  4. package/README.md +13 -6
  5. package/cli-tool/README.md +56 -0
  6. package/cli-tool/bin/create-claude-config.js +2 -0
  7. package/cli-tool/components/.claude-plugin/marketplace.json +92 -0
  8. package/cli-tool/components/agents/development-tools/flutter-go-reviewer.md +163 -0
  9. package/cli-tool/components/agents/development-tools/unused-code-cleaner.md +194 -0
  10. package/cli-tool/components/commands/git-workflow/gemini-review.md +293 -0
  11. package/cli-tool/components/commands/testing/add-mutation-testing.md +2 -2
  12. package/cli-tool/components/commands/testing/add-property-based-testing.md +2 -2
  13. package/cli-tool/components/commands/testing/e2e-setup.md +2 -2
  14. package/cli-tool/components/commands/testing/generate-test-cases.md +2 -2
  15. package/cli-tool/components/commands/testing/generate-tests.md +8 -3
  16. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +2 -2
  17. package/cli-tool/components/commands/testing/setup-load-testing.md +2 -2
  18. package/cli-tool/components/commands/testing/setup-visual-testing.md +2 -2
  19. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +2 -2
  20. package/cli-tool/components/commands/testing/test-changelog-automation.md +2 -2
  21. package/cli-tool/components/commands/testing/test-coverage.md +2 -2
  22. package/cli-tool/components/commands/testing/test-quality-analyzer.md +2 -2
  23. package/cli-tool/components/commands/testing/testing_plan_integration.md +2 -2
  24. package/cli-tool/components/commands/testing/write-tests.md +2 -2
  25. package/cli-tool/components/commands/utilities/ultra-think.md +10 -5
  26. package/cli-tool/components/hooks/git/validate-branch-name.json +1 -1
  27. package/cli-tool/components/mcps/devtools/chrome-devtools.json +9 -0
  28. package/cli-tool/components/mcps/devtools/grafana.json +15 -0
  29. package/cli-tool/components/mcps/devtools/pulumi.json +9 -0
  30. package/cli-tool/components/mcps/devtools/terraform.json +1 -1
  31. package/cli-tool/components/settings/statusline/context-monitor.py +1 -1
  32. package/cli-tool/components/skills/ANTHROPIC_ATTRIBUTION.md +81 -0
  33. package/cli-tool/components/skills/creative-design/algorithmic-art/LICENSE.txt +202 -0
  34. package/cli-tool/components/skills/creative-design/algorithmic-art/SKILL.md +405 -0
  35. package/cli-tool/components/skills/creative-design/algorithmic-art/templates/generator_template.js +223 -0
  36. package/cli-tool/components/skills/creative-design/algorithmic-art/templates/viewer.html +599 -0
  37. package/cli-tool/components/skills/creative-design/canvas-design/LICENSE.txt +202 -0
  38. package/cli-tool/components/skills/creative-design/canvas-design/SKILL.md +130 -0
  39. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  40. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  41. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  42. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  43. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  44. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  45. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  46. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  47. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  48. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  49. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  50. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  51. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  52. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  53. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  54. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  55. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  56. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  57. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  58. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  59. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  60. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  61. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  62. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  63. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  64. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  65. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  66. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  67. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  68. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  69. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  70. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  71. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  72. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  73. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  74. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  75. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  76. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  77. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  78. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  79. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  80. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  81. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  82. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  83. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  84. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  85. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  86. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  87. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  88. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  89. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  90. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  91. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  92. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  93. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  94. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  95. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  96. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  97. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  98. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  99. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  100. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  101. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  102. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  103. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  104. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  105. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  106. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  107. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  108. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  109. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  110. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  111. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  112. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  113. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  114. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  115. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  116. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  117. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  118. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  119. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  120. package/cli-tool/components/skills/creative-design/slack-gif-creator/LICENSE.txt +202 -0
  121. package/cli-tool/components/skills/creative-design/slack-gif-creator/SKILL.md +646 -0
  122. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/color_palettes.py +302 -0
  123. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/easing.py +230 -0
  124. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/frame_composer.py +469 -0
  125. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/gif_builder.py +246 -0
  126. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/typography.py +357 -0
  127. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/validators.py +264 -0
  128. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/visual_effects.py +494 -0
  129. package/cli-tool/components/skills/creative-design/slack-gif-creator/requirements.txt +4 -0
  130. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/bounce.py +106 -0
  131. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/explode.py +331 -0
  132. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/fade.py +329 -0
  133. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/flip.py +291 -0
  134. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/kaleidoscope.py +211 -0
  135. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/morph.py +329 -0
  136. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/move.py +293 -0
  137. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/pulse.py +268 -0
  138. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/shake.py +127 -0
  139. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/slide.py +291 -0
  140. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/spin.py +269 -0
  141. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/wiggle.py +300 -0
  142. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/zoom.py +312 -0
  143. package/cli-tool/components/skills/creative-design/theme-factory/LICENSE.txt +202 -0
  144. package/cli-tool/components/skills/creative-design/theme-factory/SKILL.md +59 -0
  145. package/cli-tool/components/skills/creative-design/theme-factory/theme-showcase.pdf +0 -0
  146. package/cli-tool/components/skills/creative-design/theme-factory/themes/arctic-frost.md +19 -0
  147. package/cli-tool/components/skills/creative-design/theme-factory/themes/botanical-garden.md +19 -0
  148. package/cli-tool/components/skills/creative-design/theme-factory/themes/desert-rose.md +19 -0
  149. package/cli-tool/components/skills/creative-design/theme-factory/themes/forest-canopy.md +19 -0
  150. package/cli-tool/components/skills/creative-design/theme-factory/themes/golden-hour.md +19 -0
  151. package/cli-tool/components/skills/creative-design/theme-factory/themes/midnight-galaxy.md +19 -0
  152. package/cli-tool/components/skills/creative-design/theme-factory/themes/modern-minimalist.md +19 -0
  153. package/cli-tool/components/skills/creative-design/theme-factory/themes/ocean-depths.md +19 -0
  154. package/cli-tool/components/skills/creative-design/theme-factory/themes/sunset-boulevard.md +19 -0
  155. package/cli-tool/components/skills/creative-design/theme-factory/themes/tech-innovation.md +19 -0
  156. package/cli-tool/components/skills/development/artifacts-builder/LICENSE.txt +202 -0
  157. package/cli-tool/components/skills/development/artifacts-builder/SKILL.md +74 -0
  158. package/cli-tool/components/skills/development/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  159. package/cli-tool/components/skills/development/artifacts-builder/scripts/init-artifact.sh +322 -0
  160. package/cli-tool/components/skills/development/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  161. package/cli-tool/components/skills/development/git-commit-helper/SKILL.md +203 -0
  162. package/cli-tool/components/skills/development/mcp-builder/LICENSE.txt +202 -0
  163. package/cli-tool/components/skills/development/mcp-builder/SKILL.md +328 -0
  164. package/cli-tool/components/skills/development/mcp-builder/reference/evaluation.md +602 -0
  165. package/cli-tool/components/skills/development/mcp-builder/reference/mcp_best_practices.md +915 -0
  166. package/cli-tool/components/skills/development/mcp-builder/reference/node_mcp_server.md +916 -0
  167. package/cli-tool/components/skills/development/mcp-builder/reference/python_mcp_server.md +752 -0
  168. package/cli-tool/components/skills/development/mcp-builder/scripts/connections.py +151 -0
  169. package/cli-tool/components/skills/development/mcp-builder/scripts/evaluation.py +373 -0
  170. package/cli-tool/components/skills/development/mcp-builder/scripts/example_evaluation.xml +22 -0
  171. package/cli-tool/components/skills/development/mcp-builder/scripts/requirements.txt +2 -0
  172. package/cli-tool/components/skills/development/skill-creator/LICENSE.txt +202 -0
  173. package/cli-tool/components/skills/development/skill-creator/SKILL.md +209 -0
  174. package/cli-tool/components/skills/development/skill-creator/scripts/init_skill.py +303 -0
  175. package/cli-tool/components/skills/development/skill-creator/scripts/package_skill.py +110 -0
  176. package/cli-tool/components/skills/development/skill-creator/scripts/quick_validate.py +65 -0
  177. package/cli-tool/components/skills/development/webapp-testing/LICENSE.txt +202 -0
  178. package/cli-tool/components/skills/development/webapp-testing/SKILL.md +96 -0
  179. package/cli-tool/components/skills/development/webapp-testing/examples/console_logging.py +35 -0
  180. package/cli-tool/components/skills/development/webapp-testing/examples/element_discovery.py +40 -0
  181. package/cli-tool/components/skills/development/webapp-testing/examples/static_html_automation.py +33 -0
  182. package/cli-tool/components/skills/development/webapp-testing/scripts/with_server.py +106 -0
  183. package/cli-tool/components/skills/document-processing/docx/LICENSE.txt +30 -0
  184. package/cli-tool/components/skills/document-processing/docx/SKILL.md +197 -0
  185. package/cli-tool/components/skills/document-processing/docx/docx-js.md +350 -0
  186. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  187. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  188. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  189. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  190. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  191. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  192. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  193. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  194. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  195. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  196. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  197. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  198. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  199. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  200. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  201. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  202. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  203. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  204. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  205. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  206. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  207. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  208. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  209. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  210. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  211. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  212. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  213. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  214. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  215. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  216. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  217. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/mce/mc.xsd +75 -0
  218. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  219. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  220. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  221. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  222. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  223. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  224. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  225. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/pack.py +159 -0
  226. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/unpack.py +29 -0
  227. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validate.py +69 -0
  228. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/__init__.py +15 -0
  229. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/base.py +951 -0
  230. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/docx.py +274 -0
  231. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/pptx.py +315 -0
  232. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/redlining.py +279 -0
  233. package/cli-tool/components/skills/document-processing/docx/ooxml.md +610 -0
  234. package/cli-tool/components/skills/document-processing/docx/scripts/__init__.py +1 -0
  235. package/cli-tool/components/skills/document-processing/docx/scripts/document.py +1276 -0
  236. package/cli-tool/components/skills/document-processing/docx/scripts/templates/comments.xml +3 -0
  237. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtended.xml +3 -0
  238. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtensible.xml +3 -0
  239. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsIds.xml +3 -0
  240. package/cli-tool/components/skills/document-processing/docx/scripts/templates/people.xml +3 -0
  241. package/cli-tool/components/skills/document-processing/docx/scripts/utilities.py +374 -0
  242. package/cli-tool/components/skills/document-processing/pdf-anthropic/LICENSE.txt +30 -0
  243. package/cli-tool/components/skills/document-processing/pdf-anthropic/SKILL.md +294 -0
  244. package/cli-tool/components/skills/document-processing/pdf-anthropic/forms.md +205 -0
  245. package/cli-tool/components/skills/document-processing/pdf-anthropic/reference.md +612 -0
  246. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes.py +70 -0
  247. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes_test.py +226 -0
  248. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_fillable_fields.py +12 -0
  249. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/convert_pdf_to_images.py +35 -0
  250. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/create_validation_image.py +41 -0
  251. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/extract_form_field_info.py +152 -0
  252. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_fillable_fields.py +114 -0
  253. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_pdf_form_with_annotations.py +108 -0
  254. package/cli-tool/components/skills/document-processing/pdf-processing/FORMS.md +143 -0
  255. package/cli-tool/components/skills/document-processing/pdf-processing/SKILL.md +149 -0
  256. package/cli-tool/components/skills/document-processing/pdf-processing-pro/FORMS.md +610 -0
  257. package/cli-tool/components/skills/document-processing/pdf-processing-pro/OCR.md +137 -0
  258. package/cli-tool/components/skills/document-processing/pdf-processing-pro/SKILL.md +296 -0
  259. package/cli-tool/components/skills/document-processing/pdf-processing-pro/TABLES.md +626 -0
  260. package/cli-tool/components/skills/document-processing/pdf-processing-pro/scripts/analyze_form.py +307 -0
  261. package/cli-tool/components/skills/document-processing/pptx/LICENSE.txt +30 -0
  262. package/cli-tool/components/skills/document-processing/pptx/SKILL.md +484 -0
  263. package/cli-tool/components/skills/document-processing/pptx/html2pptx.md +625 -0
  264. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  265. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  266. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  267. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  268. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  269. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  270. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  271. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  272. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  273. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  274. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  275. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  276. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  277. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  278. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  279. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  280. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  281. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  282. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  283. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  284. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  285. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  286. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  287. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  288. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  289. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  290. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  291. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  292. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  293. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  294. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  295. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  296. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  297. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  298. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  299. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  300. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  301. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  302. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  303. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/pack.py +159 -0
  304. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/unpack.py +29 -0
  305. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validate.py +69 -0
  306. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/__init__.py +15 -0
  307. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/base.py +951 -0
  308. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/docx.py +274 -0
  309. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/pptx.py +315 -0
  310. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/redlining.py +279 -0
  311. package/cli-tool/components/skills/document-processing/pptx/ooxml.md +427 -0
  312. package/cli-tool/components/skills/document-processing/pptx/scripts/html2pptx.js +979 -0
  313. package/cli-tool/components/skills/document-processing/pptx/scripts/inventory.py +1020 -0
  314. package/cli-tool/components/skills/document-processing/pptx/scripts/rearrange.py +231 -0
  315. package/cli-tool/components/skills/document-processing/pptx/scripts/replace.py +385 -0
  316. package/cli-tool/components/skills/document-processing/pptx/scripts/thumbnail.py +450 -0
  317. package/cli-tool/components/skills/document-processing/xlsx/LICENSE.txt +30 -0
  318. package/cli-tool/components/skills/document-processing/xlsx/SKILL.md +289 -0
  319. package/cli-tool/components/skills/document-processing/xlsx/recalc.py +178 -0
  320. package/cli-tool/components/skills/enterprise-communication/brand-guidelines/LICENSE.txt +202 -0
  321. package/cli-tool/components/skills/enterprise-communication/brand-guidelines/SKILL.md +73 -0
  322. package/cli-tool/components/skills/enterprise-communication/email-composer/SKILL.md +317 -0
  323. package/cli-tool/components/skills/enterprise-communication/excel-analysis/SKILL.md +247 -0
  324. package/cli-tool/components/skills/enterprise-communication/internal-comms/LICENSE.txt +202 -0
  325. package/cli-tool/components/skills/enterprise-communication/internal-comms/SKILL.md +32 -0
  326. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/3p-updates.md +47 -0
  327. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/company-newsletter.md +65 -0
  328. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/faq-answers.md +30 -0
  329. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/general-comms.md +16 -0
  330. package/cli-tool/package-lock.json +39 -16
  331. package/cli-tool/package.json +7 -2
  332. package/cli-tool/security-report.json +62361 -0
  333. package/cli-tool/src/analytics-web/chats_mobile.html +17 -16
  334. package/cli-tool/src/console-bridge.js +3 -3
  335. package/cli-tool/src/index.js +157 -10
  336. package/cli-tool/src/plugin-dashboard-web/app.js +806 -0
  337. package/cli-tool/src/plugin-dashboard-web/index.html +292 -0
  338. package/cli-tool/src/plugin-dashboard-web/styles.css +1781 -0
  339. package/cli-tool/src/plugin-dashboard.js +689 -0
  340. package/cli-tool/src/security-audit.js +164 -0
  341. package/cli-tool/src/validation/ARCHITECTURE.md +309 -0
  342. package/cli-tool/src/validation/BaseValidator.js +152 -0
  343. package/cli-tool/src/validation/README.md +543 -0
  344. package/cli-tool/src/validation/ValidationOrchestrator.js +305 -0
  345. package/cli-tool/src/validation/validators/IntegrityValidator.js +338 -0
  346. package/cli-tool/src/validation/validators/ProvenanceValidator.js +399 -0
  347. package/cli-tool/src/validation/validators/ReferenceValidator.js +373 -0
  348. package/cli-tool/src/validation/validators/SemanticValidator.js +449 -0
  349. package/cli-tool/src/validation/validators/StructuralValidator.js +376 -0
  350. package/docs/CLAUDE.md +363 -0
  351. package/docs/api/README.md +297 -0
  352. package/docs/api/package.json +7 -0
  353. package/docs/api/track-download-supabase.js +150 -0
  354. package/docs/blog/README.md +199 -0
  355. package/docs/blog/blog-articles.json +133 -0
  356. package/docs/blog/css/blog-controls.css +254 -0
  357. package/docs/blog/e2b-claude-code-sandbox/index.html +8 -0
  358. package/docs/blog/index.html +81 -124
  359. package/docs/blog/js/blog-loader.js +602 -0
  360. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +8 -0
  361. package/docs/blog/supabase-claude-code-integration/index.html +8 -0
  362. package/docs/component.html +226 -48
  363. package/docs/components.json +61610 -604
  364. package/docs/css/blog.css +292 -0
  365. package/docs/css/component-page.css +840 -3
  366. package/docs/css/plugin-page.css +648 -0
  367. package/docs/css/styles.css +504 -1
  368. package/docs/css/trending.css +110 -6
  369. package/docs/download-stats.html +8 -0
  370. package/docs/index.html +48 -22
  371. package/docs/jobs.html +8 -0
  372. package/docs/js/cart-manager.js +21 -8
  373. package/docs/js/component-page.js +1013 -12
  374. package/docs/js/data-loader.js +11 -8
  375. package/docs/js/index-events.js +305 -53
  376. package/docs/js/plugin-page.js +390 -0
  377. package/docs/js/script.js +50 -3
  378. package/docs/js/search-functionality.js +19 -16
  379. package/docs/js/trending.js +55 -20
  380. package/docs/plugin.html +262 -0
  381. package/docs/sandbox-interface.html +8 -0
  382. package/docs/static/favicon/about.txt +6 -0
  383. package/docs/static/favicon/android-chrome-192x192.png +0 -0
  384. package/docs/static/favicon/android-chrome-512x512.png +0 -0
  385. package/docs/static/favicon/apple-touch-icon.png +0 -0
  386. package/docs/static/favicon/favicon-16x16.png +0 -0
  387. package/docs/static/favicon/favicon-32x32.png +0 -0
  388. package/docs/static/favicon/favicon.ico +0 -0
  389. package/docs/static/favicon/site.webmanifest +1 -0
  390. package/docs/trending-data.json +616 -579
  391. package/docs/trending.html +24 -3
  392. package/docs/vercel.json +12 -0
  393. package/docs/workflows.html +8 -0
  394. package/generate_components_json.py +386 -11
  395. package/package.json +1 -1
  396. package/sync-api.sh +50 -0
  397. package/vercel.json +10 -75
  398. package/ROADMAP.md +0 -278
  399. package/test_serpapi.py +0 -36
  400. /package/cli-tool/components/commands/svelte/{svelte:a11y.md → svelte-a11y.md} +0 -0
  401. /package/cli-tool/components/commands/svelte/{svelte:component.md → svelte-component.md} +0 -0
  402. /package/cli-tool/components/commands/svelte/{svelte:debug.md → svelte-debug.md} +0 -0
  403. /package/cli-tool/components/commands/svelte/{svelte:migrate.md → svelte-migrate.md} +0 -0
  404. /package/cli-tool/components/commands/svelte/{svelte:optimize.md → svelte-optimize.md} +0 -0
  405. /package/cli-tool/components/commands/svelte/{svelte:scaffold.md → svelte-scaffold.md} +0 -0
  406. /package/cli-tool/components/commands/svelte/{svelte:storybook-migrate.md → svelte-storybook-migrate.md} +0 -0
  407. /package/cli-tool/components/commands/svelte/{svelte:storybook-mock.md → svelte-storybook-mock.md} +0 -0
  408. /package/cli-tool/components/commands/svelte/{svelte:storybook-setup.md → svelte-storybook-setup.md} +0 -0
  409. /package/cli-tool/components/commands/svelte/{svelte:storybook-story.md → svelte-storybook-story.md} +0 -0
  410. /package/cli-tool/components/commands/svelte/{svelte:storybook-troubleshoot.md → svelte-storybook-troubleshoot.md} +0 -0
  411. /package/cli-tool/components/commands/svelte/{svelte:storybook.md → svelte-storybook.md} +0 -0
  412. /package/cli-tool/components/commands/svelte/{svelte:test-coverage.md → svelte-test-coverage.md} +0 -0
  413. /package/cli-tool/components/commands/svelte/{svelte:test-fix.md → svelte-test-fix.md} +0 -0
  414. /package/cli-tool/components/commands/svelte/{svelte:test-setup.md → svelte-test-setup.md} +0 -0
  415. /package/cli-tool/components/commands/svelte/{svelte:test.md → svelte-test.md} +0 -0
@@ -0,0 +1,1781 @@
1
+ /* Reset and Base Styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ :root {
9
+ /* GitHub Dark Theme Colors */
10
+ --bg-primary: #0d1117;
11
+ --bg-secondary: #161b22;
12
+ --bg-tertiary: #1c2128;
13
+ --bg-overlay: #21262d;
14
+
15
+ --text-primary: #e6edf3;
16
+ --text-secondary: #7d8590;
17
+ --text-muted: #484f58;
18
+
19
+ --border-primary: #30363d;
20
+ --border-secondary: #21262d;
21
+ --border-muted: #373e47;
22
+
23
+ --accent-primary: #d57455;
24
+ --accent-hover: #e08567;
25
+ --accent-active: #c46343;
26
+
27
+ --success: #238636;
28
+ --success-emphasis: #2ea043;
29
+ --danger: #da3633;
30
+ --warning: #d29922;
31
+
32
+ /* Spacing */
33
+ --spacing-xs: 0.25rem;
34
+ --spacing-sm: 0.5rem;
35
+ --spacing-md: 1rem;
36
+ --spacing-lg: 1.5rem;
37
+ --spacing-xl: 2rem;
38
+
39
+ /* Sidebar */
40
+ --sidebar-width: 280px;
41
+ --sidebar-collapsed-width: 60px;
42
+
43
+ /* Transitions */
44
+ --transition-fast: 150ms ease;
45
+ --transition-normal: 250ms ease;
46
+ --transition-slow: 350ms ease;
47
+
48
+ /* Shadows */
49
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
50
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
51
+ --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.5);
52
+ --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.6);
53
+ }
54
+
55
+ body {
56
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
57
+ background: var(--bg-primary);
58
+ color: var(--text-primary);
59
+ line-height: 1.6;
60
+ overflow-x: hidden;
61
+ -webkit-font-smoothing: antialiased;
62
+ -moz-osx-font-smoothing: grayscale;
63
+ }
64
+
65
+ /* Layout */
66
+ .app-container {
67
+ display: flex;
68
+ min-height: 100vh;
69
+ }
70
+
71
+ /* ==================== SIDEBAR ==================== */
72
+ .sidebar {
73
+ width: var(--sidebar-width);
74
+ background: var(--bg-secondary);
75
+ border-right: 1px solid var(--border-primary);
76
+ display: flex;
77
+ flex-direction: column;
78
+ position: fixed;
79
+ top: 0;
80
+ left: 0;
81
+ height: 100vh;
82
+ transition: width var(--transition-normal), transform var(--transition-normal);
83
+ z-index: 100;
84
+ overflow: hidden;
85
+ }
86
+
87
+ .sidebar.collapsed {
88
+ width: var(--sidebar-collapsed-width);
89
+ }
90
+
91
+ .sidebar-header {
92
+ padding: var(--spacing-lg);
93
+ border-bottom: 1px solid var(--border-primary);
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ min-height: 70px;
98
+ }
99
+
100
+ .sidebar-logo {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: var(--spacing-md);
104
+ transition: opacity var(--transition-fast);
105
+ }
106
+
107
+ .sidebar.collapsed .sidebar-logo .logo-text {
108
+ display: none;
109
+ }
110
+
111
+ .logo-icon {
112
+ font-size: 1.75rem;
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .logo-text {
117
+ font-size: 1.125rem;
118
+ font-weight: 600;
119
+ color: var(--text-primary);
120
+ white-space: nowrap;
121
+ }
122
+
123
+ .sidebar-toggle {
124
+ background: transparent;
125
+ border: 1px solid var(--border-primary);
126
+ color: var(--text-secondary);
127
+ padding: var(--spacing-sm);
128
+ border-radius: 6px;
129
+ cursor: pointer;
130
+ transition: all var(--transition-fast);
131
+ width: 32px;
132
+ height: 32px;
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ flex-shrink: 0;
137
+ }
138
+
139
+ .sidebar-toggle:hover {
140
+ background: var(--bg-tertiary);
141
+ color: var(--text-primary);
142
+ border-color: var(--border-muted);
143
+ }
144
+
145
+ .toggle-icon {
146
+ font-size: 1.125rem;
147
+ }
148
+
149
+ .sidebar-stats {
150
+ padding: var(--spacing-lg);
151
+ display: grid;
152
+ grid-template-columns: 1fr 1fr;
153
+ gap: var(--spacing-md);
154
+ border-bottom: 1px solid var(--border-primary);
155
+ }
156
+
157
+ .sidebar.collapsed .sidebar-stats {
158
+ grid-template-columns: 1fr;
159
+ padding: var(--spacing-md);
160
+ }
161
+
162
+ .sidebar-stat {
163
+ text-align: center;
164
+ padding: var(--spacing-md);
165
+ background: var(--bg-tertiary);
166
+ border-radius: 8px;
167
+ transition: transform var(--transition-fast);
168
+ }
169
+
170
+ .sidebar-stat:hover {
171
+ transform: translateY(-2px);
172
+ }
173
+
174
+ .stat-number {
175
+ display: block;
176
+ font-size: 1.5rem;
177
+ font-weight: 700;
178
+ color: var(--accent-primary);
179
+ line-height: 1;
180
+ }
181
+
182
+ .stat-text {
183
+ display: block;
184
+ font-size: 0.75rem;
185
+ color: var(--text-secondary);
186
+ margin-top: var(--spacing-xs);
187
+ white-space: nowrap;
188
+ }
189
+
190
+ .sidebar.collapsed .stat-text {
191
+ display: none;
192
+ }
193
+
194
+ .sidebar-section {
195
+ padding: var(--spacing-lg);
196
+ border-bottom: 1px solid var(--border-primary);
197
+ }
198
+
199
+ .sidebar.collapsed .sidebar-section {
200
+ padding: var(--spacing-md);
201
+ }
202
+
203
+ .sidebar-section-header {
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: space-between;
207
+ margin-bottom: var(--spacing-md);
208
+ }
209
+
210
+ .section-title {
211
+ font-size: 0.75rem;
212
+ font-weight: 600;
213
+ text-transform: uppercase;
214
+ letter-spacing: 0.5px;
215
+ color: var(--text-secondary);
216
+ }
217
+
218
+ .sidebar.collapsed .section-title {
219
+ display: none;
220
+ }
221
+
222
+ .section-count {
223
+ background: var(--bg-tertiary);
224
+ color: var(--text-secondary);
225
+ font-size: 0.75rem;
226
+ padding: 0.125rem 0.5rem;
227
+ border-radius: 12px;
228
+ font-weight: 600;
229
+ }
230
+
231
+ .marketplace-filters {
232
+ display: grid;
233
+ grid-template-columns: repeat(3, 1fr);
234
+ gap: var(--spacing-xs);
235
+ }
236
+
237
+ .sidebar.collapsed .marketplace-filters {
238
+ display: none;
239
+ }
240
+
241
+ .marketplace-filter-btn {
242
+ background: var(--bg-tertiary);
243
+ border: 1px solid var(--border-secondary);
244
+ color: var(--text-secondary);
245
+ padding: var(--spacing-sm) var(--spacing-xs);
246
+ border-radius: 6px;
247
+ font-size: 0.75rem;
248
+ font-weight: 500;
249
+ cursor: pointer;
250
+ transition: all var(--transition-fast);
251
+ }
252
+
253
+ .marketplace-filter-btn:hover {
254
+ background: var(--bg-overlay);
255
+ color: var(--text-primary);
256
+ }
257
+
258
+ .marketplace-filter-btn.active {
259
+ background: var(--accent-primary);
260
+ color: var(--bg-primary);
261
+ border-color: var(--accent-primary);
262
+ }
263
+
264
+ .sidebar-nav {
265
+ flex: 1;
266
+ overflow-y: auto;
267
+ padding: var(--spacing-md);
268
+ }
269
+
270
+ .sidebar-nav::-webkit-scrollbar {
271
+ width: 6px;
272
+ }
273
+
274
+ .sidebar-nav::-webkit-scrollbar-track {
275
+ background: transparent;
276
+ }
277
+
278
+ .sidebar-nav::-webkit-scrollbar-thumb {
279
+ background: var(--border-primary);
280
+ border-radius: 3px;
281
+ }
282
+
283
+ .sidebar-nav::-webkit-scrollbar-thumb:hover {
284
+ background: var(--border-muted);
285
+ }
286
+
287
+ .marketplace-item {
288
+ width: 100%;
289
+ background: transparent;
290
+ border: 1px solid transparent;
291
+ color: var(--text-secondary);
292
+ padding: var(--spacing-md);
293
+ border-radius: 8px;
294
+ cursor: pointer;
295
+ display: flex;
296
+ align-items: center;
297
+ gap: var(--spacing-md);
298
+ transition: all var(--transition-fast);
299
+ margin-bottom: var(--spacing-xs);
300
+ text-align: left;
301
+ position: relative;
302
+ }
303
+
304
+ .marketplace-item:hover {
305
+ background: var(--bg-tertiary);
306
+ color: var(--text-primary);
307
+ border-color: var(--border-muted);
308
+ }
309
+
310
+ .marketplace-item.active {
311
+ background: var(--bg-tertiary);
312
+ color: var(--text-primary);
313
+ border-color: var(--accent-primary);
314
+ }
315
+
316
+ .marketplace-item.disabled {
317
+ opacity: 0.6;
318
+ }
319
+
320
+ .marketplace-icon {
321
+ font-size: 1.5rem;
322
+ flex-shrink: 0;
323
+ }
324
+
325
+ .marketplace-info {
326
+ flex: 1;
327
+ min-width: 0;
328
+ display: flex;
329
+ flex-direction: column;
330
+ gap: 0.125rem;
331
+ }
332
+
333
+ .sidebar.collapsed .marketplace-info {
334
+ display: none;
335
+ }
336
+
337
+ .marketplace-name {
338
+ font-weight: 500;
339
+ color: inherit;
340
+ white-space: nowrap;
341
+ overflow: hidden;
342
+ text-overflow: ellipsis;
343
+ }
344
+
345
+ .marketplace-count {
346
+ font-size: 0.75rem;
347
+ color: var(--text-muted);
348
+ }
349
+
350
+ .marketplace-status {
351
+ width: 8px;
352
+ height: 8px;
353
+ border-radius: 50%;
354
+ flex-shrink: 0;
355
+ }
356
+
357
+ .marketplace-status.enabled {
358
+ background: var(--success);
359
+ }
360
+
361
+ .marketplace-status.disabled {
362
+ background: var(--text-muted);
363
+ }
364
+
365
+ .sidebar.collapsed .marketplace-status {
366
+ position: absolute;
367
+ top: var(--spacing-sm);
368
+ right: var(--spacing-sm);
369
+ }
370
+
371
+ .sidebar-loading {
372
+ display: flex;
373
+ flex-direction: column;
374
+ align-items: center;
375
+ justify-content: center;
376
+ padding: var(--spacing-xl);
377
+ color: var(--text-secondary);
378
+ gap: var(--spacing-md);
379
+ }
380
+
381
+ .sidebar-empty {
382
+ text-align: center;
383
+ padding: var(--spacing-xl);
384
+ color: var(--text-secondary);
385
+ font-size: 0.875rem;
386
+ }
387
+
388
+ .sidebar-footer {
389
+ padding: var(--spacing-lg);
390
+ border-top: 1px solid var(--border-primary);
391
+ display: flex;
392
+ flex-direction: column;
393
+ gap: var(--spacing-sm);
394
+ }
395
+
396
+ .sidebar.collapsed .sidebar-footer {
397
+ padding: var(--spacing-md);
398
+ }
399
+
400
+ .sidebar-link {
401
+ display: flex;
402
+ align-items: center;
403
+ gap: var(--spacing-md);
404
+ padding: var(--spacing-md);
405
+ color: var(--text-secondary);
406
+ text-decoration: none;
407
+ border-radius: 6px;
408
+ transition: all var(--transition-fast);
409
+ font-size: 0.875rem;
410
+ }
411
+
412
+ .sidebar-link:hover {
413
+ background: var(--bg-tertiary);
414
+ color: var(--accent-primary);
415
+ }
416
+
417
+ .link-icon {
418
+ font-size: 1.125rem;
419
+ flex-shrink: 0;
420
+ }
421
+
422
+ .sidebar.collapsed .link-text {
423
+ display: none;
424
+ }
425
+
426
+ /* ==================== MAIN CONTENT ==================== */
427
+ .main-content {
428
+ flex: 1;
429
+ margin-left: var(--sidebar-width);
430
+ transition: margin-left var(--transition-normal);
431
+ min-height: 100vh;
432
+ display: flex;
433
+ flex-direction: column;
434
+ }
435
+
436
+ .sidebar.collapsed ~ .main-content {
437
+ margin-left: var(--sidebar-collapsed-width);
438
+ }
439
+
440
+ .top-bar {
441
+ background: var(--bg-secondary);
442
+ border-bottom: 1px solid var(--border-primary);
443
+ padding: var(--spacing-lg) var(--spacing-xl);
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ gap: var(--spacing-lg);
448
+ flex-wrap: wrap;
449
+ position: sticky;
450
+ top: 0;
451
+ z-index: 50;
452
+ }
453
+
454
+ .top-bar-left {
455
+ flex: 1;
456
+ min-width: 200px;
457
+ }
458
+
459
+ .page-title {
460
+ display: flex;
461
+ align-items: center;
462
+ gap: var(--spacing-md);
463
+ font-size: 1.5rem;
464
+ font-weight: 600;
465
+ color: var(--text-primary);
466
+ margin-bottom: var(--spacing-xs);
467
+ }
468
+
469
+ .title-icon {
470
+ font-size: 1.75rem;
471
+ }
472
+
473
+ .breadcrumb {
474
+ font-size: 0.875rem;
475
+ color: var(--text-secondary);
476
+ }
477
+
478
+ .top-bar-right {
479
+ display: flex;
480
+ align-items: center;
481
+ gap: var(--spacing-md);
482
+ }
483
+
484
+ .search-box {
485
+ position: relative;
486
+ display: flex;
487
+ align-items: center;
488
+ }
489
+
490
+ .search-icon {
491
+ position: absolute;
492
+ left: var(--spacing-md);
493
+ color: var(--text-secondary);
494
+ pointer-events: none;
495
+ }
496
+
497
+ .search-input {
498
+ background: var(--bg-tertiary);
499
+ border: 1px solid var(--border-primary);
500
+ color: var(--text-primary);
501
+ padding: var(--spacing-sm) var(--spacing-md) var(--spacing-sm) 2.5rem;
502
+ border-radius: 8px;
503
+ font-size: 0.875rem;
504
+ width: 250px;
505
+ transition: all var(--transition-fast);
506
+ }
507
+
508
+ .search-input:focus {
509
+ outline: none;
510
+ border-color: var(--accent-primary);
511
+ box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
512
+ }
513
+
514
+ .search-input::placeholder {
515
+ color: var(--text-muted);
516
+ }
517
+
518
+ .view-controls {
519
+ display: flex;
520
+ gap: var(--spacing-xs);
521
+ background: var(--bg-tertiary);
522
+ padding: var(--spacing-xs);
523
+ border-radius: 8px;
524
+ border: 1px solid var(--border-primary);
525
+ }
526
+
527
+ .view-btn {
528
+ background: transparent;
529
+ border: none;
530
+ color: var(--text-secondary);
531
+ padding: var(--spacing-sm) var(--spacing-md);
532
+ border-radius: 6px;
533
+ cursor: pointer;
534
+ transition: all var(--transition-fast);
535
+ display: flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ }
539
+
540
+ .view-btn:hover {
541
+ color: var(--text-primary);
542
+ background: var(--bg-overlay);
543
+ }
544
+
545
+ .view-btn.active {
546
+ background: var(--accent-primary);
547
+ color: var(--bg-primary);
548
+ }
549
+
550
+ .view-icon {
551
+ font-size: 1rem;
552
+ }
553
+
554
+ .filters-bar {
555
+ background: var(--bg-secondary);
556
+ border-bottom: 1px solid var(--border-primary);
557
+ padding: var(--spacing-md) var(--spacing-xl);
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: space-between;
561
+ gap: var(--spacing-lg);
562
+ flex-wrap: wrap;
563
+ position: sticky;
564
+ top: 78px;
565
+ z-index: 40;
566
+ }
567
+
568
+ .filter-group {
569
+ display: flex;
570
+ gap: var(--spacing-sm);
571
+ flex-wrap: wrap;
572
+ }
573
+
574
+ .filter-chip {
575
+ background: var(--bg-tertiary);
576
+ border: 1px solid var(--border-primary);
577
+ color: var(--text-secondary);
578
+ padding: var(--spacing-sm) var(--spacing-md);
579
+ border-radius: 20px;
580
+ font-size: 0.875rem;
581
+ font-weight: 500;
582
+ cursor: pointer;
583
+ display: flex;
584
+ align-items: center;
585
+ gap: var(--spacing-sm);
586
+ transition: all var(--transition-fast);
587
+ }
588
+
589
+ .filter-chip:hover {
590
+ background: var(--bg-overlay);
591
+ color: var(--text-primary);
592
+ border-color: var(--border-muted);
593
+ }
594
+
595
+ .filter-chip.active {
596
+ background: var(--accent-primary);
597
+ color: var(--bg-primary);
598
+ border-color: var(--accent-primary);
599
+ }
600
+
601
+ .chip-badge {
602
+ background: rgba(0, 0, 0, 0.2);
603
+ padding: 0.125rem 0.5rem;
604
+ border-radius: 12px;
605
+ font-size: 0.75rem;
606
+ font-weight: 600;
607
+ }
608
+
609
+ .filter-chip.active .chip-badge {
610
+ background: rgba(0, 0, 0, 0.3);
611
+ }
612
+
613
+ .status-dot {
614
+ width: 8px;
615
+ height: 8px;
616
+ border-radius: 50%;
617
+ }
618
+
619
+ .status-dot.enabled {
620
+ background: var(--success);
621
+ }
622
+
623
+ .status-dot.disabled {
624
+ background: var(--text-muted);
625
+ }
626
+
627
+ .sort-controls {
628
+ display: flex;
629
+ align-items: center;
630
+ gap: var(--spacing-sm);
631
+ }
632
+
633
+ .sort-label {
634
+ font-size: 0.875rem;
635
+ color: var(--text-secondary);
636
+ }
637
+
638
+ .sort-select {
639
+ background: var(--bg-tertiary);
640
+ border: 1px solid var(--border-primary);
641
+ color: var(--text-primary);
642
+ padding: var(--spacing-sm) var(--spacing-md);
643
+ border-radius: 6px;
644
+ font-size: 0.875rem;
645
+ cursor: pointer;
646
+ transition: all var(--transition-fast);
647
+ }
648
+
649
+ .sort-select:hover {
650
+ border-color: var(--border-muted);
651
+ }
652
+
653
+ .sort-select:focus {
654
+ outline: none;
655
+ border-color: var(--accent-primary);
656
+ }
657
+
658
+ /* ==================== PLUGINS CONTAINER ==================== */
659
+ .plugins-container {
660
+ flex: 1;
661
+ padding: var(--spacing-xl);
662
+ overflow-y: auto;
663
+ }
664
+
665
+ .plugins-grid {
666
+ display: grid;
667
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
668
+ gap: var(--spacing-lg);
669
+ animation: fadeIn var(--transition-normal);
670
+ align-items: start;
671
+ }
672
+
673
+ .plugins-list {
674
+ display: flex;
675
+ flex-direction: column;
676
+ gap: var(--spacing-md);
677
+ animation: fadeIn var(--transition-normal);
678
+ }
679
+
680
+ /* Plugin Card (Grid View) */
681
+ .plugin-card {
682
+ background: var(--bg-secondary);
683
+ border: 1px solid var(--border-primary);
684
+ border-radius: 12px;
685
+ padding: var(--spacing-lg);
686
+ cursor: pointer;
687
+ transition: all var(--transition-fast);
688
+ display: flex;
689
+ flex-direction: column;
690
+ gap: var(--spacing-md);
691
+ position: relative;
692
+ overflow: hidden;
693
+ height: fit-content;
694
+ }
695
+
696
+ .plugin-card::before {
697
+ content: '';
698
+ position: absolute;
699
+ top: 0;
700
+ left: 0;
701
+ right: 0;
702
+ height: 3px;
703
+ background: var(--accent-primary);
704
+ transform: scaleX(0);
705
+ transition: transform var(--transition-normal);
706
+ }
707
+
708
+ .plugin-card:hover {
709
+ border-color: var(--accent-primary);
710
+ transform: translateY(-4px);
711
+ box-shadow: var(--shadow-lg);
712
+ }
713
+
714
+ .plugin-card:hover::before {
715
+ transform: scaleX(1);
716
+ }
717
+
718
+ .plugin-card.disabled {
719
+ opacity: 0.7;
720
+ }
721
+
722
+ .plugin-card.disabled:hover {
723
+ transform: translateY(-2px);
724
+ }
725
+
726
+ .plugin-card-header {
727
+ display: flex;
728
+ align-items: flex-start;
729
+ gap: var(--spacing-md);
730
+ }
731
+
732
+ .plugin-card-status {
733
+ width: 12px;
734
+ height: 12px;
735
+ border-radius: 50%;
736
+ flex-shrink: 0;
737
+ margin-top: 0.25rem;
738
+ }
739
+
740
+ .plugin-card-status.enabled {
741
+ background: var(--success);
742
+ box-shadow: 0 0 8px var(--success);
743
+ }
744
+
745
+ .plugin-card-status.disabled {
746
+ background: var(--text-muted);
747
+ }
748
+
749
+ .plugin-card-title {
750
+ flex: 1;
751
+ font-size: 1.125rem;
752
+ font-weight: 600;
753
+ color: var(--text-primary);
754
+ line-height: 1.3;
755
+ }
756
+
757
+ .plugin-card-version {
758
+ background: var(--bg-tertiary);
759
+ color: var(--text-secondary);
760
+ padding: 0.25rem 0.625rem;
761
+ border-radius: 12px;
762
+ font-size: 0.75rem;
763
+ font-weight: 500;
764
+ flex-shrink: 0;
765
+ }
766
+
767
+ .plugin-card-description {
768
+ color: var(--text-secondary);
769
+ font-size: 0.875rem;
770
+ line-height: 1.5;
771
+ display: -webkit-box;
772
+ -webkit-line-clamp: 3;
773
+ -webkit-box-orient: vertical;
774
+ overflow: hidden;
775
+ }
776
+
777
+ .plugin-card-components {
778
+ display: grid;
779
+ grid-template-columns: repeat(4, 1fr);
780
+ gap: var(--spacing-sm);
781
+ }
782
+
783
+ .component-badge {
784
+ background: var(--bg-tertiary);
785
+ border: 1px solid var(--border-secondary);
786
+ border-radius: 8px;
787
+ padding: var(--spacing-sm);
788
+ display: flex;
789
+ flex-direction: column;
790
+ align-items: center;
791
+ gap: 0.25rem;
792
+ transition: all var(--transition-fast);
793
+ }
794
+
795
+ .plugin-card:hover .component-badge {
796
+ border-color: var(--border-muted);
797
+ }
798
+
799
+ .component-icon {
800
+ font-size: 1.125rem;
801
+ }
802
+
803
+ .component-value {
804
+ font-size: 0.875rem;
805
+ font-weight: 600;
806
+ color: var(--accent-primary);
807
+ }
808
+
809
+ .plugin-card-footer {
810
+ display: flex;
811
+ align-items: center;
812
+ justify-content: space-between;
813
+ padding-top: var(--spacing-md);
814
+ border-top: 1px solid var(--border-secondary);
815
+ font-size: 0.75rem;
816
+ }
817
+
818
+ .plugin-card-marketplace {
819
+ color: var(--text-secondary);
820
+ font-weight: 500;
821
+ }
822
+
823
+ .plugin-card-total {
824
+ color: var(--text-muted);
825
+ }
826
+
827
+ /* Plugin List Item (List View) */
828
+ .plugin-list-item {
829
+ background: var(--bg-secondary);
830
+ border: 1px solid var(--border-primary);
831
+ border-radius: 10px;
832
+ padding: var(--spacing-lg);
833
+ cursor: pointer;
834
+ transition: all var(--transition-fast);
835
+ display: flex;
836
+ align-items: center;
837
+ gap: var(--spacing-lg);
838
+ position: relative;
839
+ }
840
+
841
+ .plugin-list-item::before {
842
+ content: '';
843
+ position: absolute;
844
+ top: 0;
845
+ left: 0;
846
+ bottom: 0;
847
+ width: 3px;
848
+ background: var(--accent-primary);
849
+ transform: scaleY(0);
850
+ transition: transform var(--transition-normal);
851
+ border-radius: 10px 0 0 10px;
852
+ }
853
+
854
+ .plugin-list-item:hover {
855
+ border-color: var(--accent-primary);
856
+ background: var(--bg-tertiary);
857
+ box-shadow: var(--shadow-md);
858
+ }
859
+
860
+ .plugin-list-item:hover::before {
861
+ transform: scaleY(1);
862
+ }
863
+
864
+ .plugin-list-item.disabled {
865
+ opacity: 0.7;
866
+ }
867
+
868
+ .plugin-list-status {
869
+ width: 10px;
870
+ height: 10px;
871
+ border-radius: 50%;
872
+ flex-shrink: 0;
873
+ }
874
+
875
+ .plugin-list-status.enabled {
876
+ background: var(--success);
877
+ box-shadow: 0 0 8px var(--success);
878
+ }
879
+
880
+ .plugin-list-status.disabled {
881
+ background: var(--text-muted);
882
+ }
883
+
884
+ .plugin-list-main {
885
+ flex: 1;
886
+ min-width: 0;
887
+ display: flex;
888
+ flex-direction: column;
889
+ gap: var(--spacing-sm);
890
+ }
891
+
892
+ .plugin-list-info {
893
+ display: flex;
894
+ flex-direction: column;
895
+ gap: 0.25rem;
896
+ }
897
+
898
+ .plugin-list-title {
899
+ font-size: 1rem;
900
+ font-weight: 600;
901
+ color: var(--text-primary);
902
+ }
903
+
904
+ .plugin-list-description {
905
+ color: var(--text-secondary);
906
+ font-size: 0.875rem;
907
+ display: -webkit-box;
908
+ -webkit-line-clamp: 2;
909
+ -webkit-box-orient: vertical;
910
+ overflow: hidden;
911
+ }
912
+
913
+ .plugin-list-meta {
914
+ display: flex;
915
+ align-items: center;
916
+ gap: var(--spacing-md);
917
+ font-size: 0.75rem;
918
+ color: var(--text-muted);
919
+ }
920
+
921
+ .plugin-list-version {
922
+ background: var(--bg-overlay);
923
+ padding: 0.125rem 0.5rem;
924
+ border-radius: 8px;
925
+ }
926
+
927
+ .plugin-list-components {
928
+ display: flex;
929
+ gap: var(--spacing-md);
930
+ padding: var(--spacing-sm) var(--spacing-md);
931
+ background: var(--bg-tertiary);
932
+ border-radius: 8px;
933
+ border: 1px solid var(--border-secondary);
934
+ }
935
+
936
+ .component-badge-sm {
937
+ display: flex;
938
+ align-items: center;
939
+ gap: var(--spacing-xs);
940
+ font-size: 0.875rem;
941
+ }
942
+
943
+ .component-badge-sm .component-icon {
944
+ font-size: 1rem;
945
+ }
946
+
947
+ .component-badge-sm .component-value {
948
+ font-weight: 600;
949
+ color: var(--accent-primary);
950
+ }
951
+
952
+ .plugin-list-action {
953
+ flex-shrink: 0;
954
+ color: var(--text-muted);
955
+ transition: all var(--transition-fast);
956
+ }
957
+
958
+ .plugin-list-item:hover .plugin-list-action {
959
+ color: var(--accent-primary);
960
+ transform: translateX(4px);
961
+ }
962
+
963
+ .action-icon {
964
+ font-size: 1.25rem;
965
+ }
966
+
967
+ /* ==================== LOADING & EMPTY STATES ==================== */
968
+ .content-loading {
969
+ display: flex;
970
+ flex-direction: column;
971
+ align-items: center;
972
+ justify-content: center;
973
+ padding: var(--spacing-xl);
974
+ min-height: 300px;
975
+ }
976
+
977
+ .spinner {
978
+ width: 24px;
979
+ height: 24px;
980
+ border: 3px solid var(--border-primary);
981
+ border-top-color: var(--accent-primary);
982
+ border-radius: 50%;
983
+ animation: spin 0.8s linear infinite;
984
+ }
985
+
986
+ .spinner-large {
987
+ width: 48px;
988
+ height: 48px;
989
+ border: 4px solid var(--border-primary);
990
+ border-top-color: var(--accent-primary);
991
+ border-radius: 50%;
992
+ animation: spin 0.8s linear infinite;
993
+ }
994
+
995
+ .loading-text {
996
+ margin-top: var(--spacing-md);
997
+ color: var(--text-secondary);
998
+ font-size: 0.875rem;
999
+ }
1000
+
1001
+ .empty-state-container {
1002
+ display: flex;
1003
+ align-items: center;
1004
+ justify-content: center;
1005
+ padding: var(--spacing-xl);
1006
+ min-height: 400px;
1007
+ }
1008
+
1009
+ .empty-state {
1010
+ text-align: center;
1011
+ max-width: 400px;
1012
+ }
1013
+
1014
+ .empty-icon {
1015
+ font-size: 4rem;
1016
+ opacity: 0.3;
1017
+ margin-bottom: var(--spacing-lg);
1018
+ }
1019
+
1020
+ .empty-title {
1021
+ font-size: 1.5rem;
1022
+ color: var(--text-primary);
1023
+ margin-bottom: var(--spacing-sm);
1024
+ }
1025
+
1026
+ .empty-description {
1027
+ color: var(--text-secondary);
1028
+ font-size: 0.875rem;
1029
+ line-height: 1.6;
1030
+ margin-bottom: var(--spacing-lg);
1031
+ }
1032
+
1033
+ /* ==================== MODAL ==================== */
1034
+ .modal-overlay {
1035
+ position: fixed;
1036
+ top: 0;
1037
+ left: 0;
1038
+ right: 0;
1039
+ bottom: 0;
1040
+ background: rgba(0, 0, 0, 0.8);
1041
+ backdrop-filter: blur(4px);
1042
+ display: flex;
1043
+ align-items: center;
1044
+ justify-content: center;
1045
+ z-index: 1000;
1046
+ opacity: 0;
1047
+ visibility: hidden;
1048
+ transition: all var(--transition-normal);
1049
+ padding: var(--spacing-lg);
1050
+ }
1051
+
1052
+ .modal-overlay.active {
1053
+ opacity: 1;
1054
+ visibility: visible;
1055
+ }
1056
+
1057
+ .modal-container {
1058
+ background: var(--bg-secondary);
1059
+ border: 1px solid var(--border-primary);
1060
+ border-radius: 16px;
1061
+ max-width: 700px;
1062
+ width: 100%;
1063
+ max-height: 90vh;
1064
+ overflow-y: auto;
1065
+ box-shadow: var(--shadow-xl);
1066
+ transform: scale(0.95) translateY(20px);
1067
+ transition: transform var(--transition-normal);
1068
+ }
1069
+
1070
+ .modal-overlay.active .modal-container {
1071
+ transform: scale(1) translateY(0);
1072
+ }
1073
+
1074
+ .modal-container::-webkit-scrollbar {
1075
+ width: 8px;
1076
+ }
1077
+
1078
+ .modal-container::-webkit-scrollbar-track {
1079
+ background: var(--bg-tertiary);
1080
+ }
1081
+
1082
+ .modal-container::-webkit-scrollbar-thumb {
1083
+ background: var(--text-muted);
1084
+ border-radius: 4px;
1085
+ }
1086
+
1087
+ .modal-container::-webkit-scrollbar-thumb:hover {
1088
+ background: var(--text-secondary);
1089
+ }
1090
+
1091
+ .modal-header {
1092
+ padding: var(--spacing-xl);
1093
+ border-bottom: 1px solid var(--border-primary);
1094
+ display: flex;
1095
+ align-items: flex-start;
1096
+ justify-content: space-between;
1097
+ gap: var(--spacing-lg);
1098
+ position: sticky;
1099
+ top: 0;
1100
+ background: var(--bg-secondary);
1101
+ z-index: 10;
1102
+ }
1103
+
1104
+ .modal-title-section {
1105
+ flex: 1;
1106
+ min-width: 0;
1107
+ }
1108
+
1109
+ .modal-title {
1110
+ font-size: 1.5rem;
1111
+ font-weight: 600;
1112
+ color: var(--text-primary);
1113
+ margin-bottom: var(--spacing-sm);
1114
+ }
1115
+
1116
+ .modal-badges {
1117
+ display: flex;
1118
+ gap: var(--spacing-sm);
1119
+ flex-wrap: wrap;
1120
+ }
1121
+
1122
+ .modal-badge {
1123
+ padding: 0.375rem 0.75rem;
1124
+ border-radius: 12px;
1125
+ font-size: 0.75rem;
1126
+ font-weight: 600;
1127
+ }
1128
+
1129
+ .modal-badge.version-badge {
1130
+ background: var(--bg-tertiary);
1131
+ color: var(--text-secondary);
1132
+ border: 1px solid var(--border-secondary);
1133
+ }
1134
+
1135
+ .modal-badge.status-badge.enabled {
1136
+ background: var(--success);
1137
+ color: white;
1138
+ }
1139
+
1140
+ .modal-badge.status-badge.disabled {
1141
+ background: var(--text-muted);
1142
+ color: white;
1143
+ }
1144
+
1145
+ .modal-close-btn {
1146
+ background: transparent;
1147
+ border: 1px solid var(--border-primary);
1148
+ color: var(--text-secondary);
1149
+ width: 36px;
1150
+ height: 36px;
1151
+ border-radius: 8px;
1152
+ cursor: pointer;
1153
+ display: flex;
1154
+ align-items: center;
1155
+ justify-content: center;
1156
+ flex-shrink: 0;
1157
+ transition: all var(--transition-fast);
1158
+ }
1159
+
1160
+ .modal-close-btn:hover {
1161
+ background: var(--bg-tertiary);
1162
+ color: var(--text-primary);
1163
+ border-color: var(--border-muted);
1164
+ }
1165
+
1166
+ .close-icon {
1167
+ font-size: 1.25rem;
1168
+ font-weight: 300;
1169
+ }
1170
+
1171
+ .modal-body {
1172
+ padding: var(--spacing-xl);
1173
+ }
1174
+
1175
+ .modal-section {
1176
+ margin-bottom: var(--spacing-xl);
1177
+ }
1178
+
1179
+ .modal-section:last-child {
1180
+ margin-bottom: 0;
1181
+ }
1182
+
1183
+ .modal-section-title {
1184
+ font-size: 1rem;
1185
+ font-weight: 600;
1186
+ color: var(--text-primary);
1187
+ margin-bottom: var(--spacing-md);
1188
+ }
1189
+
1190
+ .modal-description {
1191
+ color: var(--text-secondary);
1192
+ font-size: 0.9375rem;
1193
+ line-height: 1.6;
1194
+ }
1195
+
1196
+ .modal-components-grid {
1197
+ display: grid;
1198
+ grid-template-columns: repeat(4, 1fr);
1199
+ gap: var(--spacing-md);
1200
+ }
1201
+
1202
+ .modal-component-card {
1203
+ background: var(--bg-tertiary);
1204
+ border: 1px solid var(--border-secondary);
1205
+ border-radius: 10px;
1206
+ padding: var(--spacing-md);
1207
+ text-align: center;
1208
+ transition: all var(--transition-fast);
1209
+ }
1210
+
1211
+ .modal-component-card:hover {
1212
+ border-color: var(--border-muted);
1213
+ transform: translateY(-2px);
1214
+ }
1215
+
1216
+ .modal-component-icon {
1217
+ font-size: 1.75rem;
1218
+ margin-bottom: var(--spacing-sm);
1219
+ }
1220
+
1221
+ .modal-component-count {
1222
+ font-size: 1.5rem;
1223
+ font-weight: 700;
1224
+ color: var(--accent-primary);
1225
+ line-height: 1;
1226
+ margin-bottom: 0.25rem;
1227
+ }
1228
+
1229
+ .modal-component-label {
1230
+ font-size: 0.75rem;
1231
+ color: var(--text-secondary);
1232
+ text-transform: uppercase;
1233
+ letter-spacing: 0.5px;
1234
+ }
1235
+
1236
+ .modal-details-grid {
1237
+ display: grid;
1238
+ gap: var(--spacing-sm);
1239
+ }
1240
+
1241
+ .detail-card {
1242
+ background: var(--bg-tertiary);
1243
+ border: 1px solid var(--border-secondary);
1244
+ border-radius: 8px;
1245
+ padding: var(--spacing-md);
1246
+ display: flex;
1247
+ justify-content: space-between;
1248
+ align-items: center;
1249
+ gap: var(--spacing-md);
1250
+ }
1251
+
1252
+ .detail-label {
1253
+ font-size: 0.875rem;
1254
+ color: var(--text-secondary);
1255
+ font-weight: 500;
1256
+ }
1257
+
1258
+ .detail-value {
1259
+ font-size: 0.875rem;
1260
+ color: var(--text-primary);
1261
+ font-weight: 500;
1262
+ text-align: right;
1263
+ }
1264
+
1265
+ .keywords-container {
1266
+ display: flex;
1267
+ flex-wrap: wrap;
1268
+ gap: var(--spacing-sm);
1269
+ }
1270
+
1271
+ .keyword-tag {
1272
+ background: var(--bg-tertiary);
1273
+ border: 1px solid var(--border-secondary);
1274
+ color: var(--text-secondary);
1275
+ padding: 0.375rem 0.75rem;
1276
+ border-radius: 12px;
1277
+ font-size: 0.75rem;
1278
+ font-weight: 500;
1279
+ transition: all var(--transition-fast);
1280
+ }
1281
+
1282
+ .keyword-tag:hover {
1283
+ border-color: var(--accent-primary);
1284
+ color: var(--accent-primary);
1285
+ }
1286
+
1287
+ /* ==================== BUTTONS ==================== */
1288
+ .btn-primary {
1289
+ background: var(--accent-primary);
1290
+ color: var(--bg-primary);
1291
+ border: none;
1292
+ padding: var(--spacing-md) var(--spacing-lg);
1293
+ border-radius: 8px;
1294
+ font-size: 0.875rem;
1295
+ font-weight: 600;
1296
+ cursor: pointer;
1297
+ transition: all var(--transition-fast);
1298
+ display: inline-flex;
1299
+ align-items: center;
1300
+ justify-content: center;
1301
+ gap: var(--spacing-sm);
1302
+ text-decoration: none;
1303
+ }
1304
+
1305
+ .btn-primary:hover {
1306
+ background: var(--accent-hover);
1307
+ transform: translateY(-2px);
1308
+ box-shadow: var(--shadow-md);
1309
+ }
1310
+
1311
+ .btn-primary:active {
1312
+ transform: translateY(0);
1313
+ }
1314
+
1315
+ .btn-secondary {
1316
+ background: transparent;
1317
+ color: var(--text-primary);
1318
+ border: 1px solid var(--border-primary);
1319
+ padding: var(--spacing-md) var(--spacing-lg);
1320
+ border-radius: 8px;
1321
+ font-size: 0.875rem;
1322
+ font-weight: 600;
1323
+ cursor: pointer;
1324
+ transition: all var(--transition-fast);
1325
+ display: inline-flex;
1326
+ align-items: center;
1327
+ justify-content: center;
1328
+ gap: var(--spacing-sm);
1329
+ text-decoration: none;
1330
+ }
1331
+
1332
+ .btn-secondary:hover {
1333
+ background: var(--bg-tertiary);
1334
+ border-color: var(--accent-primary);
1335
+ color: var(--accent-primary);
1336
+ }
1337
+
1338
+ .btn-block {
1339
+ width: 100%;
1340
+ }
1341
+
1342
+ .btn-icon {
1343
+ font-size: 1.125rem;
1344
+ }
1345
+
1346
+ /* ==================== ANIMATIONS ==================== */
1347
+ @keyframes spin {
1348
+ to {
1349
+ transform: rotate(360deg);
1350
+ }
1351
+ }
1352
+
1353
+ @keyframes fadeIn {
1354
+ from {
1355
+ opacity: 0;
1356
+ transform: translateY(10px);
1357
+ }
1358
+ to {
1359
+ opacity: 1;
1360
+ transform: translateY(0);
1361
+ }
1362
+ }
1363
+
1364
+ /* ==================== RESPONSIVE ==================== */
1365
+ @media (max-width: 1024px) {
1366
+ .plugins-grid {
1367
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
1368
+ }
1369
+
1370
+ .search-input {
1371
+ width: 200px;
1372
+ }
1373
+ }
1374
+
1375
+ @media (max-width: 768px) {
1376
+ .sidebar {
1377
+ transform: translateX(-100%);
1378
+ }
1379
+
1380
+ .sidebar.active {
1381
+ transform: translateX(0);
1382
+ }
1383
+
1384
+ .main-content {
1385
+ margin-left: 0;
1386
+ }
1387
+
1388
+ .sidebar.collapsed ~ .main-content {
1389
+ margin-left: 0;
1390
+ }
1391
+
1392
+ .top-bar {
1393
+ padding: var(--spacing-md) var(--spacing-lg);
1394
+ }
1395
+
1396
+ .page-title {
1397
+ font-size: 1.25rem;
1398
+ }
1399
+
1400
+ .search-input {
1401
+ width: 150px;
1402
+ }
1403
+
1404
+ .filters-bar {
1405
+ padding: var(--spacing-md) var(--spacing-lg);
1406
+ flex-direction: column;
1407
+ align-items: flex-start;
1408
+ }
1409
+
1410
+ .plugins-container {
1411
+ padding: var(--spacing-lg);
1412
+ }
1413
+
1414
+ .plugins-grid {
1415
+ grid-template-columns: 1fr;
1416
+ }
1417
+
1418
+ .plugin-card-components {
1419
+ grid-template-columns: repeat(2, 1fr);
1420
+ }
1421
+
1422
+ .plugin-list-item {
1423
+ flex-direction: column;
1424
+ align-items: flex-start;
1425
+ }
1426
+
1427
+ .plugin-list-components {
1428
+ width: 100%;
1429
+ justify-content: space-around;
1430
+ }
1431
+
1432
+ .modal-components-grid {
1433
+ grid-template-columns: repeat(2, 1fr);
1434
+ }
1435
+
1436
+ .modal-header,
1437
+ .modal-body {
1438
+ padding: var(--spacing-lg);
1439
+ }
1440
+
1441
+ .detail-card {
1442
+ flex-direction: column;
1443
+ align-items: flex-start;
1444
+ gap: var(--spacing-sm);
1445
+ }
1446
+
1447
+ .detail-value {
1448
+ text-align: left;
1449
+ }
1450
+ }
1451
+
1452
+ @media (max-width: 480px) {
1453
+ .top-bar-right {
1454
+ width: 100%;
1455
+ flex-direction: column;
1456
+ }
1457
+
1458
+ .search-box {
1459
+ width: 100%;
1460
+ }
1461
+
1462
+ .search-input {
1463
+ width: 100%;
1464
+ }
1465
+
1466
+ .view-controls {
1467
+ width: 100%;
1468
+ justify-content: center;
1469
+ }
1470
+
1471
+ .filter-group {
1472
+ width: 100%;
1473
+ }
1474
+
1475
+ .filter-chip {
1476
+ flex: 1;
1477
+ justify-content: center;
1478
+ }
1479
+
1480
+ .modal-components-grid {
1481
+ grid-template-columns: 1fr;
1482
+ }
1483
+ }
1484
+
1485
+ /* ==================== PLUGIN ACTIONS ==================== */
1486
+ .plugin-actions-grid {
1487
+ display: grid;
1488
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1489
+ gap: var(--spacing-md);
1490
+ }
1491
+
1492
+ .action-button {
1493
+ background: var(--bg-tertiary);
1494
+ border: 1px solid var(--border-primary);
1495
+ color: var(--text-primary);
1496
+ padding: var(--spacing-md) var(--spacing-lg);
1497
+ border-radius: 8px;
1498
+ font-size: 0.875rem;
1499
+ font-weight: 600;
1500
+ cursor: pointer;
1501
+ display: flex;
1502
+ align-items: center;
1503
+ justify-content: center;
1504
+ gap: var(--spacing-sm);
1505
+ transition: all var(--transition-fast);
1506
+ }
1507
+
1508
+ .action-button:hover {
1509
+ background: var(--bg-overlay);
1510
+ border-color: var(--accent-primary);
1511
+ color: var(--accent-primary);
1512
+ transform: translateY(-2px);
1513
+ box-shadow: var(--shadow-md);
1514
+ }
1515
+
1516
+ .action-button:active {
1517
+ transform: translateY(0);
1518
+ }
1519
+
1520
+ .action-button.install-btn {
1521
+ background: var(--accent-primary);
1522
+ color: white;
1523
+ border-color: var(--accent-primary);
1524
+ }
1525
+
1526
+ .action-button.install-btn:hover {
1527
+ background: var(--accent-hover);
1528
+ border-color: var(--accent-hover);
1529
+ color: white;
1530
+ }
1531
+
1532
+ .action-button.enable-btn {
1533
+ background: var(--success);
1534
+ color: white;
1535
+ border-color: var(--success);
1536
+ }
1537
+
1538
+ .action-button.enable-btn:hover {
1539
+ background: var(--success-emphasis);
1540
+ border-color: var(--success-emphasis);
1541
+ color: white;
1542
+ }
1543
+
1544
+ .action-button.disable-btn {
1545
+ background: var(--warning);
1546
+ color: white;
1547
+ border-color: var(--warning);
1548
+ }
1549
+
1550
+ .action-button.disable-btn:hover {
1551
+ background: #e0a928;
1552
+ border-color: #e0a928;
1553
+ color: white;
1554
+ }
1555
+
1556
+ .action-button.uninstall-btn {
1557
+ background: var(--danger);
1558
+ color: white;
1559
+ border-color: var(--danger);
1560
+ }
1561
+
1562
+ .action-button.uninstall-btn:hover {
1563
+ background: #e04643;
1564
+ border-color: #e04643;
1565
+ color: white;
1566
+ }
1567
+
1568
+ .action-button:disabled {
1569
+ opacity: 0.5;
1570
+ cursor: not-allowed;
1571
+ }
1572
+
1573
+ .action-button:disabled:hover {
1574
+ transform: none;
1575
+ box-shadow: none;
1576
+ }
1577
+
1578
+ .action-icon {
1579
+ font-size: 1.125rem;
1580
+ }
1581
+
1582
+ /* ==================== COMMAND REFERENCE ==================== */
1583
+ .command-list {
1584
+ display: flex;
1585
+ flex-direction: column;
1586
+ gap: var(--spacing-md);
1587
+ }
1588
+
1589
+ .command-item {
1590
+ background: var(--bg-tertiary);
1591
+ border: 1px solid var(--border-secondary);
1592
+ border-radius: 10px;
1593
+ padding: var(--spacing-md);
1594
+ display: grid;
1595
+ grid-template-columns: auto 1fr auto;
1596
+ gap: var(--spacing-md);
1597
+ align-items: center;
1598
+ transition: all var(--transition-fast);
1599
+ position: relative;
1600
+ }
1601
+
1602
+ .command-item:hover {
1603
+ border-color: var(--accent-primary);
1604
+ box-shadow: var(--shadow-sm);
1605
+ }
1606
+
1607
+ .command-header {
1608
+ display: flex;
1609
+ align-items: center;
1610
+ gap: var(--spacing-sm);
1611
+ min-width: 140px;
1612
+ }
1613
+
1614
+ .command-icon {
1615
+ font-size: 1.25rem;
1616
+ }
1617
+
1618
+ .command-title {
1619
+ font-size: 0.875rem;
1620
+ font-weight: 600;
1621
+ color: var(--text-primary);
1622
+ white-space: nowrap;
1623
+ }
1624
+
1625
+ .command-code {
1626
+ background: var(--bg-primary);
1627
+ border: 1px solid var(--border-primary);
1628
+ border-radius: 6px;
1629
+ padding: var(--spacing-sm) var(--spacing-md);
1630
+ font-family: 'Courier New', Courier, monospace;
1631
+ font-size: 0.8125rem;
1632
+ color: var(--accent-primary);
1633
+ overflow-x: auto;
1634
+ white-space: nowrap;
1635
+ }
1636
+
1637
+ .command-code::-webkit-scrollbar {
1638
+ height: 4px;
1639
+ }
1640
+
1641
+ .command-code::-webkit-scrollbar-track {
1642
+ background: var(--bg-tertiary);
1643
+ }
1644
+
1645
+ .command-code::-webkit-scrollbar-thumb {
1646
+ background: var(--border-primary);
1647
+ border-radius: 2px;
1648
+ }
1649
+
1650
+ .command-copy-btn {
1651
+ background: var(--bg-overlay);
1652
+ border: 1px solid var(--border-primary);
1653
+ color: var(--text-secondary);
1654
+ padding: var(--spacing-sm) var(--spacing-md);
1655
+ border-radius: 6px;
1656
+ cursor: pointer;
1657
+ font-size: 1rem;
1658
+ transition: all var(--transition-fast);
1659
+ flex-shrink: 0;
1660
+ }
1661
+
1662
+ .command-copy-btn:hover {
1663
+ background: var(--accent-primary);
1664
+ border-color: var(--accent-primary);
1665
+ color: white;
1666
+ transform: scale(1.1);
1667
+ }
1668
+
1669
+ .command-copy-btn:active {
1670
+ transform: scale(0.95);
1671
+ }
1672
+
1673
+ /* ==================== TOAST NOTIFICATION ==================== */
1674
+ .toast {
1675
+ position: fixed;
1676
+ bottom: var(--spacing-xl);
1677
+ right: var(--spacing-xl);
1678
+ background: var(--success);
1679
+ color: white;
1680
+ padding: var(--spacing-md) var(--spacing-lg);
1681
+ border-radius: 10px;
1682
+ box-shadow: var(--shadow-lg);
1683
+ display: flex;
1684
+ align-items: center;
1685
+ gap: var(--spacing-md);
1686
+ font-size: 0.875rem;
1687
+ font-weight: 600;
1688
+ opacity: 0;
1689
+ visibility: hidden;
1690
+ transform: translateY(20px);
1691
+ transition: all var(--transition-normal);
1692
+ z-index: 2000;
1693
+ }
1694
+
1695
+ .toast.show {
1696
+ opacity: 1;
1697
+ visibility: visible;
1698
+ transform: translateY(0);
1699
+ }
1700
+
1701
+ .toast-icon {
1702
+ font-size: 1.25rem;
1703
+ }
1704
+
1705
+ .toast-message {
1706
+ white-space: nowrap;
1707
+ }
1708
+
1709
+ /* ==================== RESPONSIVE - Commands ==================== */
1710
+ @media (max-width: 768px) {
1711
+ .command-item {
1712
+ grid-template-columns: 1fr;
1713
+ gap: var(--spacing-sm);
1714
+ }
1715
+
1716
+ .command-header {
1717
+ min-width: auto;
1718
+ }
1719
+
1720
+ .command-code {
1721
+ width: 100%;
1722
+ }
1723
+
1724
+ .command-copy-btn {
1725
+ width: 100%;
1726
+ justify-content: center;
1727
+ }
1728
+
1729
+ .plugin-actions-grid {
1730
+ grid-template-columns: 1fr;
1731
+ }
1732
+
1733
+ .toast {
1734
+ bottom: var(--spacing-lg);
1735
+ right: var(--spacing-lg);
1736
+ left: var(--spacing-lg);
1737
+ }
1738
+ }
1739
+
1740
+ /* ==================== REFRESH BUTTON ==================== */
1741
+ .refresh-btn {
1742
+ background: var(--bg-tertiary);
1743
+ border: 1px solid var(--border-primary);
1744
+ color: var(--text-secondary);
1745
+ padding: var(--spacing-sm) var(--spacing-md);
1746
+ border-radius: 8px;
1747
+ cursor: pointer;
1748
+ display: flex;
1749
+ align-items: center;
1750
+ justify-content: center;
1751
+ transition: all var(--transition-fast);
1752
+ margin-right: var(--spacing-sm);
1753
+ }
1754
+
1755
+ .refresh-btn:hover {
1756
+ background: var(--bg-overlay);
1757
+ border-color: var(--accent-primary);
1758
+ color: var(--accent-primary);
1759
+ }
1760
+
1761
+ .refresh-btn:active {
1762
+ transform: scale(0.95);
1763
+ }
1764
+
1765
+ .refresh-btn.refreshing .refresh-icon {
1766
+ animation: spin 1s linear infinite;
1767
+ }
1768
+
1769
+ .refresh-icon {
1770
+ font-size: 1.125rem;
1771
+ transition: transform var(--transition-normal);
1772
+ }
1773
+
1774
+ @keyframes spin {
1775
+ from {
1776
+ transform: rotate(0deg);
1777
+ }
1778
+ to {
1779
+ transform: rotate(360deg);
1780
+ }
1781
+ }