@luquimbo/bi-superpowers 1.0.0

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 (193) hide show
  1. package/.claude-plugin/plugin.json +8 -0
  2. package/.mcp.json +25 -0
  3. package/AGENTS.md +244 -0
  4. package/CHANGELOG.md +265 -0
  5. package/LICENSE +21 -0
  6. package/README.md +211 -0
  7. package/bin/build-plugin.js +30 -0
  8. package/bin/cli.js +1064 -0
  9. package/bin/commands/add.js +533 -0
  10. package/bin/commands/add.test.js +77 -0
  11. package/bin/commands/build-desktop.js +166 -0
  12. package/bin/commands/changelog.js +443 -0
  13. package/bin/commands/diff.js +325 -0
  14. package/bin/commands/lint.js +419 -0
  15. package/bin/commands/lint.test.js +103 -0
  16. package/bin/commands/mcp-setup.js +246 -0
  17. package/bin/commands/pull.js +287 -0
  18. package/bin/commands/pull.test.js +36 -0
  19. package/bin/commands/push.js +231 -0
  20. package/bin/commands/push.test.js +14 -0
  21. package/bin/commands/search.js +344 -0
  22. package/bin/commands/search.test.js +115 -0
  23. package/bin/commands/setup.js +545 -0
  24. package/bin/commands/setup.test.js +46 -0
  25. package/bin/commands/sync-profile.js +405 -0
  26. package/bin/commands/sync-profile.test.js +14 -0
  27. package/bin/commands/sync-source.js +418 -0
  28. package/bin/commands/sync-source.test.js +14 -0
  29. package/bin/commands/watch.js +206 -0
  30. package/bin/lib/generators/claude-plugin.js +266 -0
  31. package/bin/lib/generators/claude-plugin.test.js +110 -0
  32. package/bin/lib/generators/index.js +116 -0
  33. package/bin/lib/generators/shared.js +282 -0
  34. package/bin/lib/licensing/index.js +35 -0
  35. package/bin/lib/licensing/storage.js +364 -0
  36. package/bin/lib/licensing/storage.test.js +55 -0
  37. package/bin/lib/licensing/validator.js +213 -0
  38. package/bin/lib/licensing/validator.test.js +137 -0
  39. package/bin/lib/microsoft-mcp.js +176 -0
  40. package/bin/lib/microsoft-mcp.test.js +106 -0
  41. package/bin/lib/skills.js +84 -0
  42. package/bin/mcp/powerbi-modeling-launcher.js +38 -0
  43. package/bin/postinstall.js +44 -0
  44. package/bin/utils/errors.js +159 -0
  45. package/bin/utils/git.js +298 -0
  46. package/bin/utils/logger.js +142 -0
  47. package/bin/utils/mcp-detect.js +274 -0
  48. package/bin/utils/mcp-detect.test.js +105 -0
  49. package/bin/utils/pbix.js +305 -0
  50. package/bin/utils/pbix.test.js +37 -0
  51. package/bin/utils/profiles.js +312 -0
  52. package/bin/utils/projects.js +168 -0
  53. package/bin/utils/readline.js +206 -0
  54. package/bin/utils/readline.test.js +47 -0
  55. package/bin/utils/tui.js +314 -0
  56. package/bin/utils/tui.test.js +127 -0
  57. package/commands/contributions.md +265 -0
  58. package/commands/data-model-design.md +468 -0
  59. package/commands/dax-doctor.md +248 -0
  60. package/commands/fabric-scripts.md +452 -0
  61. package/commands/migration-assistant.md +290 -0
  62. package/commands/model-documenter.md +242 -0
  63. package/commands/pbi-connect.md +239 -0
  64. package/commands/project-kickoff.md +905 -0
  65. package/commands/report-layout.md +296 -0
  66. package/commands/rls-design.md +533 -0
  67. package/commands/theme-tweaker.md +624 -0
  68. package/config.example.json +23 -0
  69. package/config.json +23 -0
  70. package/desktop-extension/manifest.json +37 -0
  71. package/desktop-extension/package.json +10 -0
  72. package/desktop-extension/server.js +95 -0
  73. package/docs/openrouter-free-models.md +92 -0
  74. package/library/examples/README.md +151 -0
  75. package/library/examples/finance-reporting/README.md +351 -0
  76. package/library/examples/finance-reporting/data-model.md +267 -0
  77. package/library/examples/finance-reporting/measures.dax +557 -0
  78. package/library/examples/hr-analytics/README.md +371 -0
  79. package/library/examples/hr-analytics/data-model.md +315 -0
  80. package/library/examples/hr-analytics/measures.dax +460 -0
  81. package/library/examples/marketing-analytics/README.md +37 -0
  82. package/library/examples/marketing-analytics/data-model.md +62 -0
  83. package/library/examples/marketing-analytics/measures.dax +110 -0
  84. package/library/examples/retail-analytics/README.md +439 -0
  85. package/library/examples/retail-analytics/data-model.md +288 -0
  86. package/library/examples/retail-analytics/measures.dax +481 -0
  87. package/library/examples/supply-chain/README.md +37 -0
  88. package/library/examples/supply-chain/data-model.md +69 -0
  89. package/library/examples/supply-chain/measures.dax +77 -0
  90. package/library/examples/udf-library/README.md +228 -0
  91. package/library/examples/udf-library/functions.dax +571 -0
  92. package/library/snippets/dax/README.md +292 -0
  93. package/library/snippets/dax/business-domains.md +576 -0
  94. package/library/snippets/dax/calculate-patterns.md +276 -0
  95. package/library/snippets/dax/calculation-groups.md +489 -0
  96. package/library/snippets/dax/error-handling.md +495 -0
  97. package/library/snippets/dax/iterators-and-aggregations.md +474 -0
  98. package/library/snippets/dax/kpis-and-metrics.md +293 -0
  99. package/library/snippets/dax/rankings-and-topn.md +235 -0
  100. package/library/snippets/dax/security-patterns.md +413 -0
  101. package/library/snippets/dax/text-and-formatting.md +316 -0
  102. package/library/snippets/dax/time-intelligence.md +196 -0
  103. package/library/snippets/dax/user-defined-functions.md +477 -0
  104. package/library/snippets/dax/virtual-tables.md +546 -0
  105. package/library/snippets/excel-formulas/README.md +84 -0
  106. package/library/snippets/excel-formulas/aggregations.md +330 -0
  107. package/library/snippets/excel-formulas/dates-and-times.md +361 -0
  108. package/library/snippets/excel-formulas/dynamic-arrays.md +314 -0
  109. package/library/snippets/excel-formulas/lookups.md +169 -0
  110. package/library/snippets/excel-formulas/text-functions.md +363 -0
  111. package/library/snippets/governance/naming-conventions.md +97 -0
  112. package/library/snippets/governance/review-checklists.md +107 -0
  113. package/library/snippets/power-query/README.md +389 -0
  114. package/library/snippets/power-query/api-integration.md +707 -0
  115. package/library/snippets/power-query/connections.md +434 -0
  116. package/library/snippets/power-query/data-cleaning.md +298 -0
  117. package/library/snippets/power-query/error-handling.md +526 -0
  118. package/library/snippets/power-query/parameters.md +350 -0
  119. package/library/snippets/power-query/performance.md +506 -0
  120. package/library/snippets/power-query/transformations.md +330 -0
  121. package/library/snippets/report-design/accessibility.md +78 -0
  122. package/library/snippets/report-design/chart-selection.md +54 -0
  123. package/library/snippets/report-design/layout-patterns.md +87 -0
  124. package/library/templates/data-models/README.md +93 -0
  125. package/library/templates/data-models/finance-model.md +627 -0
  126. package/library/templates/data-models/retail-star-schema.md +473 -0
  127. package/library/templates/excel/README.md +83 -0
  128. package/library/templates/excel/budget-tracker.md +432 -0
  129. package/library/templates/excel/data-entry-form.md +533 -0
  130. package/library/templates/power-bi/README.md +72 -0
  131. package/library/templates/power-bi/finance-report.md +449 -0
  132. package/library/templates/power-bi/kpi-scorecard.md +461 -0
  133. package/library/templates/power-bi/sales-dashboard.md +281 -0
  134. package/library/themes/excel/README.md +436 -0
  135. package/library/themes/power-bi/README.md +271 -0
  136. package/library/themes/power-bi/accessible.json +307 -0
  137. package/library/themes/power-bi/bi-superpowers-default.json +858 -0
  138. package/library/themes/power-bi/corporate-blue.json +291 -0
  139. package/library/themes/power-bi/dark-mode.json +291 -0
  140. package/library/themes/power-bi/minimal.json +292 -0
  141. package/library/themes/power-bi/print-friendly.json +309 -0
  142. package/package.json +93 -0
  143. package/skills/contributions/SKILL.md +267 -0
  144. package/skills/data-model-design/SKILL.md +470 -0
  145. package/skills/data-modeling/SKILL.md +254 -0
  146. package/skills/data-quality/SKILL.md +664 -0
  147. package/skills/dax/SKILL.md +708 -0
  148. package/skills/dax-doctor/SKILL.md +250 -0
  149. package/skills/dax-udf/SKILL.md +489 -0
  150. package/skills/deployment/SKILL.md +320 -0
  151. package/skills/excel-formulas/SKILL.md +463 -0
  152. package/skills/fabric-scripts/SKILL.md +454 -0
  153. package/skills/fast-standard/SKILL.md +509 -0
  154. package/skills/governance/SKILL.md +205 -0
  155. package/skills/migration-assistant/SKILL.md +292 -0
  156. package/skills/model-documenter/SKILL.md +244 -0
  157. package/skills/pbi-connect/SKILL.md +241 -0
  158. package/skills/power-query/SKILL.md +406 -0
  159. package/skills/project-kickoff/SKILL.md +907 -0
  160. package/skills/query-performance/SKILL.md +480 -0
  161. package/skills/report-design/SKILL.md +207 -0
  162. package/skills/report-layout/SKILL.md +298 -0
  163. package/skills/rls-design/SKILL.md +535 -0
  164. package/skills/semantic-model/SKILL.md +237 -0
  165. package/skills/testing-validation/SKILL.md +643 -0
  166. package/skills/theme-tweaker/SKILL.md +626 -0
  167. package/src/content/base.md +237 -0
  168. package/src/content/mcp-requirements.json +69 -0
  169. package/src/content/routing.md +203 -0
  170. package/src/content/skills/contributions.md +259 -0
  171. package/src/content/skills/data-model-design.md +462 -0
  172. package/src/content/skills/data-modeling.md +246 -0
  173. package/src/content/skills/data-quality.md +656 -0
  174. package/src/content/skills/dax-doctor.md +242 -0
  175. package/src/content/skills/dax-udf.md +481 -0
  176. package/src/content/skills/dax.md +700 -0
  177. package/src/content/skills/deployment.md +312 -0
  178. package/src/content/skills/excel-formulas.md +455 -0
  179. package/src/content/skills/fabric-scripts.md +446 -0
  180. package/src/content/skills/fast-standard.md +501 -0
  181. package/src/content/skills/governance.md +197 -0
  182. package/src/content/skills/migration-assistant.md +284 -0
  183. package/src/content/skills/model-documenter.md +236 -0
  184. package/src/content/skills/pbi-connect.md +233 -0
  185. package/src/content/skills/power-query.md +398 -0
  186. package/src/content/skills/project-kickoff.md +899 -0
  187. package/src/content/skills/query-performance.md +472 -0
  188. package/src/content/skills/report-design.md +199 -0
  189. package/src/content/skills/report-layout.md +290 -0
  190. package/src/content/skills/rls-design.md +527 -0
  191. package/src/content/skills/semantic-model.md +229 -0
  192. package/src/content/skills/testing-validation.md +635 -0
  193. package/src/content/skills/theme-tweaker.md +618 -0
@@ -0,0 +1,271 @@
1
+ # Power BI Themes
2
+
3
+ Collection of professionally designed `.json` theme files for Power BI reports.
4
+
5
+ ## Available Themes
6
+
7
+ | Theme | Description | Best For |
8
+ |-------|-------------|----------|
9
+ | [bi-superpowers-default.json](./bi-superpowers-default.json) | **Recommended** - Shadcn/UI + IBCS standards | Professional BI reports |
10
+ | [corporate-blue.json](./corporate-blue.json) | Microsoft-style blue palette | Corporate dashboards |
11
+ | [dark-mode.json](./dark-mode.json) | Dark background with vibrant accents | Extended viewing, demos |
12
+ | [accessible.json](./accessible.json) | WCAG AA compliant, colorblind-friendly | Public-facing, accessibility-required |
13
+ | [minimal.json](./minimal.json) | Ultra-clean, no borders, maximum white space | Executive presentations |
14
+ | [print-friendly.json](./print-friendly.json) | High contrast, solid borders, grayscale-compatible | PDF export, printing |
15
+
16
+ ## Theme Comparison
17
+
18
+ | Feature | Default | Corporate Blue | Dark Mode | Accessible | Minimal | Print |
19
+ |---------|---------|----------------|-----------|------------|---------|-------|
20
+ | Background | Light gray | Off-white | Dark gray | White | White | White |
21
+ | Data colors | IBCS grayscale | Blues + accents | Vibrant | Colorblind-safe | Muted | High contrast |
22
+ | Borders | Subtle (10px radius) | Subtle (8px) | Subtle (8px) | Strong (4px) | None | Solid (1px) |
23
+ | Best contrast | Good | Good | Excellent | Excellent | Good | Excellent |
24
+ | Print-friendly | Yes | Yes | No | Yes | Yes | Excellent |
25
+ | Colorblind-safe | Yes | Partial | Partial | Yes | Partial | Yes |
26
+
27
+ ---
28
+
29
+ ## BI Agent Superpowers Default Theme
30
+
31
+ Our recommended theme combines modern design with data visualization best practices.
32
+
33
+ ### Design System: Shadcn/UI
34
+
35
+ - Clean, minimalist interface
36
+ - System fonts (Segoe UI, SF Pro)
37
+ - Subtle borders with 10px radius
38
+ - Light backgrounds (#FAFAFA page, #FFFFFF cards)
39
+ - Consistent spacing and typography
40
+
41
+ ### Data Colors: IBCS Standards
42
+
43
+ Following [International Business Communication Standards](https://www.ibcs.com/):
44
+
45
+ | Purpose | Color | Hex | Usage |
46
+ |---------|-------|-----|-------|
47
+ | Actual (Primary) | Black | `#000000` | Current period data |
48
+ | Previous Year | Gray | `#737373` | Comparison data |
49
+ | Secondary | Light Gray | `#A3A3A3` | Additional series |
50
+ | Tertiary | Lighter Gray | `#D4D4D4` | Background data |
51
+ | Positive/Good | Dark Green | `#166534` | Favorable variance |
52
+ | Negative/Bad | Dark Red | `#991B1B` | Unfavorable variance |
53
+ | Neutral | Gray | `#737373` | No change |
54
+
55
+ ---
56
+
57
+ ## Accessible Theme
58
+
59
+ Designed for WCAG AA compliance and colorblind accessibility.
60
+
61
+ ### Features
62
+
63
+ - **High contrast**: All text meets 4.5:1 contrast ratio
64
+ - **Colorblind-safe palette**: Wong colorblind-friendly colors
65
+ - **Larger fonts**: Increased base font sizes
66
+ - **Stronger borders**: 2px borders for clear visual separation
67
+ - **Pattern-friendly**: Colors work with patterns if needed
68
+
69
+ ### Color Palette
70
+
71
+ Based on the Wong colorblind-friendly palette:
72
+
73
+ | Color | Hex | RGB | Usage |
74
+ |-------|-----|-----|-------|
75
+ | Blue | `#0072B2` | 0, 114, 178 | Primary |
76
+ | Orange | `#E69F00` | 230, 159, 0 | Secondary |
77
+ | Green | `#009E73` | 0, 158, 115 | Positive |
78
+ | Pink | `#CC79A7` | 204, 121, 167 | Accent |
79
+ | Sky Blue | `#56B4E9` | 86, 180, 233 | Highlight |
80
+ | Vermillion | `#D55E00` | 213, 94, 0 | Negative |
81
+
82
+ ---
83
+
84
+ ## Minimal Theme
85
+
86
+ Ultra-clean design for executive presentations and storytelling.
87
+
88
+ ### Features
89
+
90
+ - **No borders**: Visuals blend into the page
91
+ - **Hidden axes**: Focus on data labels, not gridlines
92
+ - **No legends**: Use direct labeling instead
93
+ - **Maximum white space**: Clean, uncluttered appearance
94
+ - **Transparent backgrounds**: Seamless visual integration
95
+
96
+ ### Best Practices with Minimal
97
+
98
+ 1. Use direct data labels instead of legends
99
+ 2. Limit visuals per page (3-4 maximum)
100
+ 3. Let the data speak - remove chart clutter
101
+ 4. Use titles sparingly - they should add context
102
+
103
+ ---
104
+
105
+ ## Print-Friendly Theme
106
+
107
+ Optimized for PDF export and physical printing.
108
+
109
+ ### Features
110
+
111
+ - **Black borders**: Clear separation when printed
112
+ - **High contrast**: Readable at lower DPI
113
+ - **No transparency**: Solid colors throughout
114
+ - **Legends at bottom**: Better page flow
115
+ - **Grayscale-compatible**: First 3 data colors are grayscale
116
+
117
+ ### Print Recommendations
118
+
119
+ 1. Export at 150 DPI minimum for quality
120
+ 2. Use landscape orientation for dashboards
121
+ 3. Test print in B&W to verify readability
122
+ 4. Check margins before final export
123
+
124
+ ---
125
+
126
+ ## How to Apply a Theme
127
+
128
+ ### In Power BI Desktop
129
+
130
+ 1. Go to **View** > **Themes** > **Browse for themes**
131
+ 2. Select the `.json` file from this folder
132
+ 3. Theme applies to all pages immediately
133
+
134
+ ### In Power BI Service
135
+
136
+ 1. Open report in **Edit** mode
137
+ 2. **View** > **Themes** > **Browse for themes**
138
+ 3. Upload the `.json` file
139
+
140
+ ### Switching Themes
141
+
142
+ Changing themes preserves your visuals and data - only formatting changes. You can safely experiment with different themes.
143
+
144
+ ---
145
+
146
+ ## IBCS Color Philosophy
147
+
148
+ IBCS recommends using **grayscale for data** and **color only for meaning**:
149
+
150
+ ```
151
+ Grayscale = Data (Actual, PY, Plan, Forecast)
152
+ Green = Positive variance / Good
153
+ Red = Negative variance / Bad
154
+ ```
155
+
156
+ This approach:
157
+ - Reduces visual noise
158
+ - Highlights what matters (variances)
159
+ - Works for colorblind users
160
+ - Prints well in B&W
161
+
162
+ ### IBCS Patterns Note
163
+
164
+ Power BI native visuals don't support hatched patterns. For full IBCS compliance with patterns (outlined for Plan, hatched for Forecast), consider:
165
+ - [Zebra BI](https://zebrabi.com/)
166
+ - [Inforiver](https://inforiver.com/)
167
+
168
+ ---
169
+
170
+ ## Theme Structure
171
+
172
+ ```json
173
+ {
174
+ "name": "Theme Name",
175
+ "description": "Brief description",
176
+ "dataColors": ["#000000", "#737373", "..."],
177
+ "background": "#FFFFFF",
178
+ "foreground": "#171717",
179
+ "tableAccent": "#0078D4",
180
+ "good": "#166534",
181
+ "bad": "#991B1B",
182
+ "neutral": "#737373",
183
+ "maximum": "#166534",
184
+ "minimum": "#991B1B",
185
+ "center": "#737373",
186
+ "textClasses": {
187
+ "callout": { "fontFace": "...", "fontSize": 28, "color": "..." },
188
+ "title": { ... },
189
+ "header": { ... },
190
+ "label": { ... }
191
+ },
192
+ "visualStyles": {
193
+ "*": { "*": { ... } },
194
+ "card": { "*": { ... } },
195
+ "lineChart": { "*": { ... } },
196
+ ...
197
+ }
198
+ }
199
+ ```
200
+
201
+ ### Key Properties
202
+
203
+ | Property | Description |
204
+ |----------|-------------|
205
+ | `name` | Theme name shown in Power BI |
206
+ | `description` | Theme description |
207
+ | `dataColors` | Array of colors for data series (8 recommended) |
208
+ | `background` | Default visual background |
209
+ | `foreground` | Default text color |
210
+ | `tableAccent` | Table header and accent color |
211
+ | `good` / `bad` / `neutral` | Sentiment colors for KPIs |
212
+ | `maximum` / `minimum` / `center` | Conditional formatting colors |
213
+ | `textClasses` | Typography definitions |
214
+ | `visualStyles` | Visual-specific styling |
215
+
216
+ ---
217
+
218
+ ## Creating Custom Themes
219
+
220
+ ### Start from a Template
221
+
222
+ 1. Copy an existing theme as your starting point
223
+ 2. Modify colors to match your brand
224
+ 3. Test in Power BI Desktop
225
+ 4. Iterate until satisfied
226
+
227
+ ### Use Theme Tweaker
228
+
229
+ The [Theme Tweaker Skill](../../skills/theme-tweaker/SKILL.md) can help you:
230
+ - Generate a theme from brand colors
231
+ - Modify existing themes interactively
232
+ - Ensure accessibility compliance
233
+
234
+ ### Testing Checklist
235
+
236
+ - [ ] Apply theme to a report with various visual types
237
+ - [ ] Check all chart types render correctly
238
+ - [ ] Verify text is readable (contrast)
239
+ - [ ] Test conditional formatting (good/bad/neutral)
240
+ - [ ] Export to PDF and verify appearance
241
+ - [ ] Test on different screen sizes
242
+
243
+ ---
244
+
245
+ ## Contributing
246
+
247
+ Add new themes following these guidelines:
248
+
249
+ 1. **Naming**: Use descriptive filenames (e.g., `healthcare-blue.json`)
250
+ 2. **Structure**: Include all required properties
251
+ 3. **Testing**: Verify with multiple visual types
252
+ 4. **Documentation**: Update this README with theme description
253
+ 5. **Rationale**: Explain the design philosophy
254
+
255
+ ### Submission Checklist
256
+
257
+ - [ ] Valid JSON (no syntax errors)
258
+ - [ ] All required properties present
259
+ - [ ] 8 data colors defined
260
+ - [ ] Tested in Power BI Desktop
261
+ - [ ] README updated
262
+
263
+ ---
264
+
265
+ ## Resources
266
+
267
+ - [IBCS Standards](https://www.ibcs.com/)
268
+ - [Microsoft Theme Schema](https://github.com/microsoft/powerbi-desktop-samples/tree/main/Report%20Theme%20JSON%20Schema)
269
+ - [Power BI Theme Templates](https://github.com/MattRudy/PowerBI-ThemeTemplates)
270
+ - [Color Contrast Checker](https://webaim.org/resources/contrastchecker/)
271
+ - [Colorblind Simulator](https://www.color-blindness.com/coblis-color-blindness-simulator/)
@@ -0,0 +1,307 @@
1
+ {
2
+ "name": "Accessible",
3
+ "description": "WCAG AA compliant theme with high contrast and colorblind-friendly palette",
4
+ "dataColors": [
5
+ "#0072B2",
6
+ "#E69F00",
7
+ "#009E73",
8
+ "#CC79A7",
9
+ "#56B4E9",
10
+ "#D55E00",
11
+ "#F0E442",
12
+ "#000000"
13
+ ],
14
+ "background": "#FFFFFF",
15
+ "foreground": "#1A1A1A",
16
+ "tableAccent": "#0072B2",
17
+ "good": "#009E73",
18
+ "bad": "#D55E00",
19
+ "neutral": "#666666",
20
+ "maximum": "#009E73",
21
+ "minimum": "#D55E00",
22
+ "center": "#666666",
23
+ "textClasses": {
24
+ "callout": {
25
+ "fontFace": "'Segoe UI', 'Helvetica Neue', Arial, sans-serif",
26
+ "fontSize": 32,
27
+ "color": "#1A1A1A"
28
+ },
29
+ "title": {
30
+ "fontFace": "'Segoe UI Semibold', 'Helvetica Neue', Arial, sans-serif",
31
+ "fontSize": 16,
32
+ "color": "#1A1A1A"
33
+ },
34
+ "header": {
35
+ "fontFace": "'Segoe UI Semibold', 'Helvetica Neue', Arial, sans-serif",
36
+ "fontSize": 14,
37
+ "color": "#1A1A1A"
38
+ },
39
+ "label": {
40
+ "fontFace": "'Segoe UI', 'Helvetica Neue', Arial, sans-serif",
41
+ "fontSize": 12,
42
+ "color": "#333333"
43
+ }
44
+ },
45
+ "visualStyles": {
46
+ "*": {
47
+ "*": {
48
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } }, "transparency": 0 }],
49
+ "border": [{ "color": "#333333", "radius": 4 }],
50
+ "outlineColor": [{ "solid": { "color": "#333333" } }],
51
+ "outlineWeight": [{ "weight": 2 }],
52
+ "title": [{
53
+ "show": true,
54
+ "fontColor": { "solid": { "color": "#1A1A1A" } },
55
+ "fontSize": 16
56
+ }]
57
+ }
58
+ },
59
+ "page": {
60
+ "*": {
61
+ "background": [{ "color": { "solid": { "color": "#F5F5F5" } }, "transparency": 0 }]
62
+ }
63
+ },
64
+ "card": {
65
+ "*": {
66
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
67
+ "border": [{ "color": "#333333", "radius": 4 }],
68
+ "categoryLabels": [{ "show": true, "color": { "solid": { "color": "#333333" } }, "fontSize": 14 }],
69
+ "wordWrap": [{ "show": true }]
70
+ }
71
+ },
72
+ "multiRowCard": {
73
+ "*": {
74
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
75
+ "border": [{ "color": "#333333", "radius": 4 }],
76
+ "cardTitle": [{ "color": { "solid": { "color": "#1A1A1A" } }, "fontSize": 14 }]
77
+ }
78
+ },
79
+ "clusteredColumnChart": {
80
+ "*": {
81
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
82
+ "border": [{ "color": "#333333", "radius": 4 }],
83
+ "legend": [{ "show": true, "position": "Top", "labelColor": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }],
84
+ "categoryAxis": [{
85
+ "show": true,
86
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
87
+ "gridlineShow": false,
88
+ "fontSize": 12
89
+ }],
90
+ "valueAxis": [{
91
+ "show": true,
92
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
93
+ "gridlineShow": true,
94
+ "gridlineColor": { "solid": { "color": "#CCCCCC" } },
95
+ "fontSize": 12
96
+ }],
97
+ "dataPoint": [{ "showAllDataPoints": true }]
98
+ }
99
+ },
100
+ "clusteredBarChart": {
101
+ "*": {
102
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
103
+ "border": [{ "color": "#333333", "radius": 4 }],
104
+ "legend": [{ "show": true, "position": "Top", "labelColor": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }],
105
+ "categoryAxis": [{
106
+ "show": true,
107
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
108
+ "gridlineShow": false,
109
+ "fontSize": 12
110
+ }],
111
+ "valueAxis": [{
112
+ "show": true,
113
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
114
+ "gridlineShow": true,
115
+ "gridlineColor": { "solid": { "color": "#CCCCCC" } },
116
+ "fontSize": 12
117
+ }]
118
+ }
119
+ },
120
+ "lineChart": {
121
+ "*": {
122
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
123
+ "border": [{ "color": "#333333", "radius": 4 }],
124
+ "legend": [{ "show": true, "position": "Top", "labelColor": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }],
125
+ "categoryAxis": [{
126
+ "show": true,
127
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
128
+ "gridlineShow": false,
129
+ "fontSize": 12
130
+ }],
131
+ "valueAxis": [{
132
+ "show": true,
133
+ "labelColor": { "solid": { "color": "#1A1A1A" } },
134
+ "gridlineShow": true,
135
+ "gridlineColor": { "solid": { "color": "#CCCCCC" } },
136
+ "fontSize": 12
137
+ }],
138
+ "dataPoint": [{ "markerSize": 8 }],
139
+ "lineStyles": [{ "strokeWidth": 3 }]
140
+ }
141
+ },
142
+ "areaChart": {
143
+ "*": {
144
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
145
+ "border": [{ "color": "#333333", "radius": 4 }]
146
+ }
147
+ },
148
+ "pieChart": {
149
+ "*": {
150
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
151
+ "border": [{ "color": "#333333", "radius": 4 }],
152
+ "legend": [{ "show": true, "position": "Right", "labelColor": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }],
153
+ "labels": [{ "show": true, "color": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }]
154
+ }
155
+ },
156
+ "donutChart": {
157
+ "*": {
158
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
159
+ "border": [{ "color": "#333333", "radius": 4 }],
160
+ "legend": [{ "show": true, "position": "Right", "labelColor": { "solid": { "color": "#1A1A1A" } }, "fontSize": 12 }]
161
+ }
162
+ },
163
+ "waterfallChart": {
164
+ "*": {
165
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
166
+ "border": [{ "color": "#333333", "radius": 4 }],
167
+ "sentimentColors": [{
168
+ "increaseFill": { "solid": { "color": "#009E73" } },
169
+ "decreaseFill": { "solid": { "color": "#D55E00" } },
170
+ "totalFill": { "solid": { "color": "#0072B2" } }
171
+ }]
172
+ }
173
+ },
174
+ "funnel": {
175
+ "*": {
176
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
177
+ "border": [{ "color": "#333333", "radius": 4 }]
178
+ }
179
+ },
180
+ "gauge": {
181
+ "*": {
182
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
183
+ "border": [{ "color": "#333333", "radius": 4 }]
184
+ }
185
+ },
186
+ "kpi": {
187
+ "*": {
188
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
189
+ "border": [{ "color": "#333333", "radius": 4 }]
190
+ }
191
+ },
192
+ "tableEx": {
193
+ "*": {
194
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
195
+ "border": [{ "color": "#333333", "radius": 4 }],
196
+ "grid": [{
197
+ "gridVertical": true,
198
+ "gridVerticalColor": { "solid": { "color": "#CCCCCC" } },
199
+ "gridHorizontal": true,
200
+ "gridHorizontalColor": { "solid": { "color": "#CCCCCC" } }
201
+ }],
202
+ "columnHeaders": [{
203
+ "fontColor": { "solid": { "color": "#FFFFFF" } },
204
+ "backColor": { "solid": { "color": "#0072B2" } },
205
+ "fontSize": 13
206
+ }],
207
+ "values": [{
208
+ "fontColor": { "solid": { "color": "#1A1A1A" } },
209
+ "backColor": { "solid": { "color": "#FFFFFF" } },
210
+ "fontSize": 12
211
+ }]
212
+ }
213
+ },
214
+ "pivotTable": {
215
+ "*": {
216
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
217
+ "border": [{ "color": "#333333", "radius": 4 }],
218
+ "grid": [{
219
+ "gridVertical": true,
220
+ "gridVerticalColor": { "solid": { "color": "#CCCCCC" } },
221
+ "gridHorizontal": true,
222
+ "gridHorizontalColor": { "solid": { "color": "#CCCCCC" } }
223
+ }],
224
+ "columnHeaders": [{
225
+ "fontColor": { "solid": { "color": "#FFFFFF" } },
226
+ "backColor": { "solid": { "color": "#0072B2" } },
227
+ "fontSize": 13
228
+ }],
229
+ "rowHeaders": [{
230
+ "fontColor": { "solid": { "color": "#1A1A1A" } },
231
+ "backColor": { "solid": { "color": "#E6E6E6" } },
232
+ "fontSize": 12
233
+ }]
234
+ }
235
+ },
236
+ "slicer": {
237
+ "*": {
238
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
239
+ "border": [{ "color": "#333333", "radius": 4 }],
240
+ "header": [{
241
+ "show": true,
242
+ "fontColor": { "solid": { "color": "#1A1A1A" } },
243
+ "fontSize": 14
244
+ }],
245
+ "items": [{
246
+ "fontColor": { "solid": { "color": "#1A1A1A" } },
247
+ "background": { "solid": { "color": "#FFFFFF" } },
248
+ "fontSize": 12
249
+ }]
250
+ }
251
+ },
252
+ "scatterChart": {
253
+ "*": {
254
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
255
+ "border": [{ "color": "#333333", "radius": 4 }],
256
+ "dataPoint": [{ "markerSize": 10 }]
257
+ }
258
+ },
259
+ "treemap": {
260
+ "*": {
261
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
262
+ "border": [{ "color": "#333333", "radius": 4 }],
263
+ "labels": [{ "fontSize": 12 }]
264
+ }
265
+ },
266
+ "map": {
267
+ "*": {
268
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
269
+ "border": [{ "color": "#333333", "radius": 4 }]
270
+ }
271
+ },
272
+ "filledMap": {
273
+ "*": {
274
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
275
+ "border": [{ "color": "#333333", "radius": 4 }]
276
+ }
277
+ },
278
+ "shapeMap": {
279
+ "*": {
280
+ "background": [{ "color": { "solid": { "color": "#FFFFFF" } } }],
281
+ "border": [{ "color": "#333333", "radius": 4 }]
282
+ }
283
+ },
284
+ "textbox": {
285
+ "*": {
286
+ "background": [{ "color": { "solid": { "color": "transparent" } } }]
287
+ }
288
+ },
289
+ "image": {
290
+ "*": {
291
+ "background": [{ "color": { "solid": { "color": "transparent" } } }]
292
+ }
293
+ },
294
+ "shape": {
295
+ "*": {
296
+ "fill": [{ "solid": { "color": "#0072B2" } }],
297
+ "line": [{ "lineColor": { "solid": { "color": "#0072B2" } }, "weight": 2 }]
298
+ }
299
+ },
300
+ "actionButton": {
301
+ "*": {
302
+ "fill": [{ "solid": { "color": "#0072B2" } }],
303
+ "text": [{ "fontColor": { "solid": { "color": "#FFFFFF" } }, "fontSize": 14 }]
304
+ }
305
+ }
306
+ }
307
+ }