@salesforce/afv-skills 1.13.0 → 1.15.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 (359) hide show
  1. package/package.json +3 -3
  2. package/skills/applying-slds/SKILL.md +322 -0
  3. package/skills/applying-slds/checklists.md +83 -0
  4. package/skills/applying-slds/examples.md +283 -0
  5. package/skills/applying-slds/guidance/README.md +83 -0
  6. package/skills/applying-slds/guidance/blueprints-index.md +213 -0
  7. package/skills/applying-slds/guidance/icons-guidance.md +186 -0
  8. package/skills/applying-slds/guidance/overviews/borders.md +236 -0
  9. package/skills/applying-slds/guidance/overviews/color.md +266 -0
  10. package/skills/applying-slds/guidance/overviews/display-density.md +366 -0
  11. package/skills/applying-slds/guidance/overviews/icons.md +240 -0
  12. package/skills/applying-slds/guidance/overviews/illustrations.md +235 -0
  13. package/skills/applying-slds/guidance/overviews/shadows.md +176 -0
  14. package/skills/applying-slds/guidance/overviews/spacing.md +216 -0
  15. package/skills/applying-slds/guidance/overviews/typography.md +323 -0
  16. package/skills/applying-slds/guidance/overviews/utilities.md +542 -0
  17. package/skills/applying-slds/guidance/slds-development-guide.md +288 -0
  18. package/skills/applying-slds/guidance/styling-hooks/borders.md +202 -0
  19. package/skills/applying-slds/guidance/styling-hooks/color/expressive-palette-hooks.md +153 -0
  20. package/skills/applying-slds/guidance/styling-hooks/color/index.md +171 -0
  21. package/skills/applying-slds/guidance/styling-hooks/color/semantic/accent-hooks.md +204 -0
  22. package/skills/applying-slds/guidance/styling-hooks/color/semantic/feedback-hooks.md +768 -0
  23. package/skills/applying-slds/guidance/styling-hooks/color/semantic/surface-hooks.md +337 -0
  24. package/skills/applying-slds/guidance/styling-hooks/color/system-hooks.md +132 -0
  25. package/skills/applying-slds/guidance/styling-hooks/index.md +327 -0
  26. package/skills/applying-slds/guidance/styling-hooks/shadows.md +238 -0
  27. package/skills/applying-slds/guidance/styling-hooks/spacing.md +254 -0
  28. package/skills/applying-slds/guidance/styling-hooks/typography.md +448 -0
  29. package/skills/applying-slds/guidance/utilities/alignment.md +119 -0
  30. package/skills/applying-slds/guidance/utilities/borders.md +131 -0
  31. package/skills/applying-slds/guidance/utilities/box.md +125 -0
  32. package/skills/applying-slds/guidance/utilities/color.md +165 -0
  33. package/skills/applying-slds/guidance/utilities/dark-mode.md +111 -0
  34. package/skills/applying-slds/guidance/utilities/description-list.md +168 -0
  35. package/skills/applying-slds/guidance/utilities/floats.md +117 -0
  36. package/skills/applying-slds/guidance/utilities/grid.md +264 -0
  37. package/skills/applying-slds/guidance/utilities/horizontal-list.md +110 -0
  38. package/skills/applying-slds/guidance/utilities/hyphenation.md +84 -0
  39. package/skills/applying-slds/guidance/utilities/index.md +205 -0
  40. package/skills/applying-slds/guidance/utilities/interactions.md +89 -0
  41. package/skills/applying-slds/guidance/utilities/layout.md +109 -0
  42. package/skills/applying-slds/guidance/utilities/line-clamp.md +131 -0
  43. package/skills/applying-slds/guidance/utilities/margin.md +155 -0
  44. package/skills/applying-slds/guidance/utilities/media-object.md +161 -0
  45. package/skills/applying-slds/guidance/utilities/name-value-list.md +152 -0
  46. package/skills/applying-slds/guidance/utilities/padding.md +155 -0
  47. package/skills/applying-slds/guidance/utilities/position.md +177 -0
  48. package/skills/applying-slds/guidance/utilities/print.md +114 -0
  49. package/skills/applying-slds/guidance/utilities/scrollable.md +126 -0
  50. package/skills/applying-slds/guidance/utilities/sizing.md +190 -0
  51. package/skills/applying-slds/guidance/utilities/themes.md +121 -0
  52. package/skills/applying-slds/guidance/utilities/truncate.md +127 -0
  53. package/skills/applying-slds/guidance/utilities/typography.md +166 -0
  54. package/skills/applying-slds/guidance/utilities/vertical-list.md +166 -0
  55. package/skills/applying-slds/guidance/utilities/visibility.md +228 -0
  56. package/skills/applying-slds/metadata/README.md +84 -0
  57. package/skills/applying-slds/metadata/blueprints/components/accordion.yaml +304 -0
  58. package/skills/applying-slds/metadata/blueprints/components/activity-timeline.yaml +92 -0
  59. package/skills/applying-slds/metadata/blueprints/components/alert.yaml +103 -0
  60. package/skills/applying-slds/metadata/blueprints/components/app-launcher.yaml +94 -0
  61. package/skills/applying-slds/metadata/blueprints/components/avatar-group.yaml +81 -0
  62. package/skills/applying-slds/metadata/blueprints/components/avatar.yaml +97 -0
  63. package/skills/applying-slds/metadata/blueprints/components/badges.yaml +102 -0
  64. package/skills/applying-slds/metadata/blueprints/components/brand-band.yaml +198 -0
  65. package/skills/applying-slds/metadata/blueprints/components/breadcrumbs.yaml +95 -0
  66. package/skills/applying-slds/metadata/blueprints/components/builder-header.yaml +192 -0
  67. package/skills/applying-slds/metadata/blueprints/components/button-groups.yaml +82 -0
  68. package/skills/applying-slds/metadata/blueprints/components/button-icons.yaml +295 -0
  69. package/skills/applying-slds/metadata/blueprints/components/buttons.yaml +230 -0
  70. package/skills/applying-slds/metadata/blueprints/components/cards.yaml +124 -0
  71. package/skills/applying-slds/metadata/blueprints/components/carousel.yaml +140 -0
  72. package/skills/applying-slds/metadata/blueprints/components/chat.yaml +179 -0
  73. package/skills/applying-slds/metadata/blueprints/components/checkbox-button-group.yaml +192 -0
  74. package/skills/applying-slds/metadata/blueprints/components/checkbox-button.yaml +204 -0
  75. package/skills/applying-slds/metadata/blueprints/components/checkbox-toggle.yaml +177 -0
  76. package/skills/applying-slds/metadata/blueprints/components/checkbox.yaml +108 -0
  77. package/skills/applying-slds/metadata/blueprints/components/color-picker.yaml +172 -0
  78. package/skills/applying-slds/metadata/blueprints/components/combobox.yaml +136 -0
  79. package/skills/applying-slds/metadata/blueprints/components/counter.yaml +147 -0
  80. package/skills/applying-slds/metadata/blueprints/components/data-tables.yaml +157 -0
  81. package/skills/applying-slds/metadata/blueprints/components/datepickers.yaml +130 -0
  82. package/skills/applying-slds/metadata/blueprints/components/datetime-picker.yaml +155 -0
  83. package/skills/applying-slds/metadata/blueprints/components/docked-composer.yaml +201 -0
  84. package/skills/applying-slds/metadata/blueprints/components/docked-form-footer.yaml +161 -0
  85. package/skills/applying-slds/metadata/blueprints/components/docked-utility-bar.yaml +175 -0
  86. package/skills/applying-slds/metadata/blueprints/components/drop-zone.yaml +115 -0
  87. package/skills/applying-slds/metadata/blueprints/components/dueling-picklist.yaml +196 -0
  88. package/skills/applying-slds/metadata/blueprints/components/dynamic-icons.yaml +128 -0
  89. package/skills/applying-slds/metadata/blueprints/components/dynamic-menu.yaml +141 -0
  90. package/skills/applying-slds/metadata/blueprints/components/expandable-section.yaml +115 -0
  91. package/skills/applying-slds/metadata/blueprints/components/expression.yaml +143 -0
  92. package/skills/applying-slds/metadata/blueprints/components/feeds.yaml +125 -0
  93. package/skills/applying-slds/metadata/blueprints/components/file-selector.yaml +154 -0
  94. package/skills/applying-slds/metadata/blueprints/components/files.yaml +119 -0
  95. package/skills/applying-slds/metadata/blueprints/components/form-element.yaml +145 -0
  96. package/skills/applying-slds/metadata/blueprints/components/global-header.yaml +120 -0
  97. package/skills/applying-slds/metadata/blueprints/components/global-navigation.yaml +100 -0
  98. package/skills/applying-slds/metadata/blueprints/components/icons.yaml +138 -0
  99. package/skills/applying-slds/metadata/blueprints/components/illustration.yaml +205 -0
  100. package/skills/applying-slds/metadata/blueprints/components/input.yaml +151 -0
  101. package/skills/applying-slds/metadata/blueprints/components/list-builder.yaml +127 -0
  102. package/skills/applying-slds/metadata/blueprints/components/lookups.yaml +132 -0
  103. package/skills/applying-slds/metadata/blueprints/components/map.yaml +118 -0
  104. package/skills/applying-slds/metadata/blueprints/components/menus.yaml +134 -0
  105. package/skills/applying-slds/metadata/blueprints/components/modals.yaml +152 -0
  106. package/skills/applying-slds/metadata/blueprints/components/notifications.yaml +88 -0
  107. package/skills/applying-slds/metadata/blueprints/components/page-headers.yaml +135 -0
  108. package/skills/applying-slds/metadata/blueprints/components/panels.yaml +149 -0
  109. package/skills/applying-slds/metadata/blueprints/components/path.yaml +154 -0
  110. package/skills/applying-slds/metadata/blueprints/components/picklist.yaml +125 -0
  111. package/skills/applying-slds/metadata/blueprints/components/pills.yaml +154 -0
  112. package/skills/applying-slds/metadata/blueprints/components/popovers.yaml +120 -0
  113. package/skills/applying-slds/metadata/blueprints/components/progress-bar.yaml +110 -0
  114. package/skills/applying-slds/metadata/blueprints/components/progress-indicator.yaml +133 -0
  115. package/skills/applying-slds/metadata/blueprints/components/progress-ring.yaml +102 -0
  116. package/skills/applying-slds/metadata/blueprints/components/prompt.yaml +126 -0
  117. package/skills/applying-slds/metadata/blueprints/components/publishers.yaml +178 -0
  118. package/skills/applying-slds/metadata/blueprints/components/radio-button-group.yaml +172 -0
  119. package/skills/applying-slds/metadata/blueprints/components/radio-group.yaml +112 -0
  120. package/skills/applying-slds/metadata/blueprints/components/rich-text-editor.yaml +135 -0
  121. package/skills/applying-slds/metadata/blueprints/components/scoped-notifications.yaml +188 -0
  122. package/skills/applying-slds/metadata/blueprints/components/scoped-tabs.yaml +97 -0
  123. package/skills/applying-slds/metadata/blueprints/components/select.yaml +127 -0
  124. package/skills/applying-slds/metadata/blueprints/components/setup-assistant.yaml +152 -0
  125. package/skills/applying-slds/metadata/blueprints/components/slider.yaml +111 -0
  126. package/skills/applying-slds/metadata/blueprints/components/spinners.yaml +135 -0
  127. package/skills/applying-slds/metadata/blueprints/components/split-view.yaml +112 -0
  128. package/skills/applying-slds/metadata/blueprints/components/summary-detail.yaml +103 -0
  129. package/skills/applying-slds/metadata/blueprints/components/tabs.yaml +138 -0
  130. package/skills/applying-slds/metadata/blueprints/components/textarea.yaml +116 -0
  131. package/skills/applying-slds/metadata/blueprints/components/tiles.yaml +108 -0
  132. package/skills/applying-slds/metadata/blueprints/components/timepicker.yaml +111 -0
  133. package/skills/applying-slds/metadata/blueprints/components/toast.yaml +154 -0
  134. package/skills/applying-slds/metadata/blueprints/components/tooltips.yaml +107 -0
  135. package/skills/applying-slds/metadata/blueprints/components/tree-grid.yaml +116 -0
  136. package/skills/applying-slds/metadata/blueprints/components/trees.yaml +116 -0
  137. package/skills/applying-slds/metadata/blueprints/components/trial-bar.yaml +112 -0
  138. package/skills/applying-slds/metadata/blueprints/components/vertical-navigation.yaml +130 -0
  139. package/skills/applying-slds/metadata/blueprints/components/vertical-tabs.yaml +140 -0
  140. package/skills/applying-slds/metadata/blueprints/components/visual-picker.yaml +150 -0
  141. package/skills/applying-slds/metadata/blueprints/components/welcome-mat.yaml +136 -0
  142. package/skills/applying-slds/metadata/hooks-index.json +6272 -0
  143. package/skills/applying-slds/metadata/icon-metadata.json +38466 -0
  144. package/skills/applying-slds/metadata/utilities-index.json +21912 -0
  145. package/skills/applying-slds/references/component-selection.md +112 -0
  146. package/skills/applying-slds/references/icons-decision-guide.md +124 -0
  147. package/skills/applying-slds/references/styling-decision-guide.md +228 -0
  148. package/skills/applying-slds/references/utilities-quick-ref.md +125 -0
  149. package/skills/applying-slds/scripts/search-blueprints.cjs +117 -0
  150. package/skills/applying-slds/scripts/search-hooks.cjs +139 -0
  151. package/skills/applying-slds/scripts/search-icons.cjs +174 -0
  152. package/skills/applying-slds/scripts/search-utilities.cjs +161 -0
  153. package/skills/building-ui-bundle-app/SKILL.md +33 -8
  154. package/skills/generating-custom-application/SKILL.md +1 -1
  155. package/skills/generating-custom-lightning-type/SKILL.md +17 -39
  156. package/skills/generating-custom-lightning-type/assets/primitive-types-and-constraints.md +41 -0
  157. package/skills/generating-custom-lightning-type/references/widget-rendition.md +124 -0
  158. package/skills/generating-ui-bundle-custom-app/SKILL.md +93 -0
  159. package/skills/generating-ui-bundle-custom-app/docs/configure-metadata-custom-application.md +70 -0
  160. package/skills/generating-ui-bundle-metadata/SKILL.md +39 -1
  161. package/skills/investigating-agentforce-architecture/README.md +156 -0
  162. package/skills/investigating-agentforce-architecture/SKILL.md +230 -0
  163. package/skills/investigating-agentforce-architecture/assets/cli/describe_sobject.yaml +16 -0
  164. package/skills/investigating-agentforce-architecture/assets/cli/describe_tooling_sobject.yaml +17 -0
  165. package/skills/investigating-agentforce-architecture/assets/cli/list_metadata_genaiprompttemplate.yaml +17 -0
  166. package/skills/investigating-agentforce-architecture/assets/cli/org_display.yaml +15 -0
  167. package/skills/investigating-agentforce-architecture/assets/cli/retrieve_genai_plugin.yaml +18 -0
  168. package/skills/investigating-agentforce-architecture/assets/cli/show_access_token.yaml +27 -0
  169. package/skills/investigating-agentforce-architecture/assets/mermaid/action_tree.mmd +20 -0
  170. package/skills/investigating-agentforce-architecture/assets/mermaid/data_flow.mmd +19 -0
  171. package/skills/investigating-agentforce-architecture/assets/mermaid/dependency_graph.mmd +19 -0
  172. package/skills/investigating-agentforce-architecture/assets/mermaid/invocation_sequence.mmd +20 -0
  173. package/skills/investigating-agentforce-architecture/assets/mermaid/planner_state.mmd +18 -0
  174. package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_ids.soql +3 -0
  175. package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_names.soql +3 -0
  176. package/skills/investigating-agentforce-architecture/assets/soql/bot_definition_details.soql +3 -0
  177. package/skills/investigating-agentforce-architecture/assets/soql/bot_version_lookup.soql +4 -0
  178. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_by_ids.soql +3 -0
  179. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_ids_by_names.soql +3 -0
  180. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_view_by_durable_ids.soql +4 -0
  181. package/skills/investigating-agentforce-architecture/assets/soql/flow_metadata_by_id.soql +3 -0
  182. package/skills/investigating-agentforce-architecture/assets/soql/functions_by_plugins.soql +5 -0
  183. package/skills/investigating-agentforce-architecture/assets/soql/planner_attrs_by_parent_ids.soql +3 -0
  184. package/skills/investigating-agentforce-architecture/assets/soql/planner_bundle_functions.soql +3 -0
  185. package/skills/investigating-agentforce-architecture/assets/soql/planner_definition_by_agent_chain.soql +3 -0
  186. package/skills/investigating-agentforce-architecture/assets/soql/plugin_functions_by_plugin_ids.soql +3 -0
  187. package/skills/investigating-agentforce-architecture/assets/soql/plugin_instructions_by_plugin_ids.soql +3 -0
  188. package/skills/investigating-agentforce-architecture/assets/soql/plugins_by_planner.soql +4 -0
  189. package/skills/investigating-agentforce-architecture/references/architecture_sections.md +243 -0
  190. package/skills/investigating-agentforce-architecture/references/contract.json +244 -0
  191. package/skills/investigating-agentforce-architecture/references/soql_fields.md +512 -0
  192. package/skills/investigating-agentforce-architecture/scripts/_shared/__init__.py +1 -0
  193. package/skills/investigating-agentforce-architecture/scripts/_shared/fs_guard.py +329 -0
  194. package/skills/investigating-agentforce-architecture/scripts/_shared/paths.py +110 -0
  195. package/skills/investigating-agentforce-architecture/scripts/_shared/runtime.py +59 -0
  196. package/skills/investigating-agentforce-architecture/scripts/_shared/sql.py +10 -0
  197. package/skills/investigating-agentforce-architecture/scripts/cache_check.py +234 -0
  198. package/skills/investigating-agentforce-architecture/scripts/config.py +131 -0
  199. package/skills/investigating-agentforce-architecture/scripts/fetch_soql.py +689 -0
  200. package/skills/investigating-agentforce-architecture/scripts/finalize.py +295 -0
  201. package/skills/investigating-agentforce-architecture/scripts/main.py +2835 -0
  202. package/skills/investigating-agentforce-architecture/scripts/metadata_listing.py +265 -0
  203. package/skills/investigating-agentforce-architecture/scripts/parallel_retrieve.py +69 -0
  204. package/skills/investigating-agentforce-architecture/scripts/parse_bundle.py +215 -0
  205. package/skills/investigating-agentforce-architecture/scripts/parse_wave.py +845 -0
  206. package/skills/investigating-agentforce-architecture/scripts/probe_channels.py +302 -0
  207. package/skills/investigating-agentforce-architecture/scripts/render_architecture.py +1043 -0
  208. package/skills/investigating-agentforce-architecture/scripts/resolve_bot.py +255 -0
  209. package/skills/investigating-agentforce-architecture/scripts/resolve_invocation_target.py +130 -0
  210. package/skills/investigating-agentforce-architecture/scripts/rest_client.py +763 -0
  211. package/skills/investigating-agentforce-architecture/scripts/retrieve_planner.py +13 -0
  212. package/skills/investigating-agentforce-architecture/scripts/sf_cli.py +242 -0
  213. package/skills/investigating-agentforce-architecture/scripts/soql_loader.py +253 -0
  214. package/skills/investigating-agentforce-architecture/scripts/summarize_tree.py +143 -0
  215. package/skills/investigating-agentforce-architecture/scripts/tests/__init__.py +0 -0
  216. package/skills/investigating-agentforce-architecture/scripts/tests/_bootstrap.py +23 -0
  217. package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/__init__.py +0 -0
  218. package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/genai_payloads.py +400 -0
  219. package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check.py +307 -0
  220. package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check_main.py +283 -0
  221. package/skills/investigating-agentforce-architecture/scripts/tests/test_config.py +115 -0
  222. package/skills/investigating-agentforce-architecture/scripts/tests/test_end_to_end_fixture.py +651 -0
  223. package/skills/investigating-agentforce-architecture/scripts/tests/test_finalize.py +278 -0
  224. package/skills/investigating-agentforce-architecture/scripts/tests/test_flow_children_inflation.py +582 -0
  225. package/skills/investigating-agentforce-architecture/scripts/tests/test_fs_guard.py +113 -0
  226. package/skills/investigating-agentforce-architecture/scripts/tests/test_iterative_wave_b.py +478 -0
  227. package/skills/investigating-agentforce-architecture/scripts/tests/test_main_pipeline.py +3359 -0
  228. package/skills/investigating-agentforce-architecture/scripts/tests/test_parallel_retrieve.py +131 -0
  229. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_bundle.py +400 -0
  230. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave.py +644 -0
  231. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_classifiers.py +224 -0
  232. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_helpers.py +380 -0
  233. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_main.py +397 -0
  234. package/skills/investigating-agentforce-architecture/scripts/tests/test_per_branch_visited.py +244 -0
  235. package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_channels.py +359 -0
  236. package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_cli_recipes.py +185 -0
  237. package/skills/investigating-agentforce-architecture/scripts/tests/test_render_architecture.py +810 -0
  238. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_bot.py +203 -0
  239. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_creds.py +157 -0
  240. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_invocation_target.py +145 -0
  241. package/skills/investigating-agentforce-architecture/scripts/tests/test_rest_client.py +1253 -0
  242. package/skills/investigating-agentforce-architecture/scripts/tests/test_runtime_override.py +100 -0
  243. package/skills/investigating-agentforce-architecture/scripts/tests/test_sf_cli.py +261 -0
  244. package/skills/investigating-agentforce-architecture/scripts/tests/test_signature_stamping.py +466 -0
  245. package/skills/investigating-agentforce-architecture/scripts/tests/test_soql_loader.py +501 -0
  246. package/skills/investigating-agentforce-architecture/scripts/tests/test_summarize_tree.py +241 -0
  247. package/skills/investigating-agentforce-architecture/scripts/tests/test_write_emit_ctx.py +480 -0
  248. package/skills/investigating-agentforce-architecture/tools/emit_env.py +157 -0
  249. package/skills/investigating-agentforce-architecture/tools/emit_result.py +262 -0
  250. package/skills/investigating-agentforce-architecture/tools/sanitize.py +33 -0
  251. package/skills/investigating-agentforce-architecture/tools/write_emit_ctx.py +332 -0
  252. package/skills/investigating-agentforce-d360/README.md +123 -0
  253. package/skills/investigating-agentforce-d360/SKILL.md +163 -0
  254. package/skills/investigating-agentforce-d360/assets/dc/app_generation.sql +51 -0
  255. package/skills/investigating-agentforce-d360/assets/dc/content_category.sql +44 -0
  256. package/skills/investigating-agentforce-d360/assets/dc/content_quality.sql +41 -0
  257. package/skills/investigating-agentforce-d360/assets/dc/discover_sessions.sql +36 -0
  258. package/skills/investigating-agentforce-d360/assets/dc/feedback.sql +47 -0
  259. package/skills/investigating-agentforce-d360/assets/dc/feedback_details.sql +38 -0
  260. package/skills/investigating-agentforce-d360/assets/dc/gateway_records.sql +45 -0
  261. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_llm.sql +50 -0
  262. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_metadata.sql +44 -0
  263. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_tags.sql +42 -0
  264. package/skills/investigating-agentforce-d360/assets/dc/gateway_requests.sql +89 -0
  265. package/skills/investigating-agentforce-d360/assets/dc/gateway_responses.sql +43 -0
  266. package/skills/investigating-agentforce-d360/assets/dc/generations.sql +52 -0
  267. package/skills/investigating-agentforce-d360/assets/dc/interactions.sql +53 -0
  268. package/skills/investigating-agentforce-d360/assets/dc/messages.sql +53 -0
  269. package/skills/investigating-agentforce-d360/assets/dc/messaging_session.sql +37 -0
  270. package/skills/investigating-agentforce-d360/assets/dc/moment_interactions.sql +34 -0
  271. package/skills/investigating-agentforce-d360/assets/dc/moments.sql +39 -0
  272. package/skills/investigating-agentforce-d360/assets/dc/participants.sql +48 -0
  273. package/skills/investigating-agentforce-d360/assets/dc/sessions.sql +78 -0
  274. package/skills/investigating-agentforce-d360/assets/dc/steps.sql +64 -0
  275. package/skills/investigating-agentforce-d360/assets/dc/tag_associations.sql +46 -0
  276. package/skills/investigating-agentforce-d360/assets/dc/tag_definition_associations.sql +37 -0
  277. package/skills/investigating-agentforce-d360/assets/dc/tag_definitions.sql +50 -0
  278. package/skills/investigating-agentforce-d360/assets/dc/tags.sql +37 -0
  279. package/skills/investigating-agentforce-d360/assets/dc/telemetry_spans.sql +55 -0
  280. package/skills/investigating-agentforce-d360/references/artifacts.md +50 -0
  281. package/skills/investigating-agentforce-d360/references/dc_dmo_fields.md +823 -0
  282. package/skills/investigating-agentforce-d360/references/dc_pipeline_contract.md +608 -0
  283. package/skills/investigating-agentforce-d360/scripts/_shared/__init__.py +2 -0
  284. package/skills/investigating-agentforce-d360/scripts/_shared/cli_override.py +98 -0
  285. package/skills/investigating-agentforce-d360/scripts/_shared/fs_guard.py +334 -0
  286. package/skills/investigating-agentforce-d360/scripts/_shared/paths.py +155 -0
  287. package/skills/investigating-agentforce-d360/scripts/_shared/runtime.py +59 -0
  288. package/skills/investigating-agentforce-d360/scripts/_shared/sql.py +14 -0
  289. package/skills/investigating-agentforce-d360/scripts/assemble_dc.py +1624 -0
  290. package/skills/investigating-agentforce-d360/scripts/config.py +45 -0
  291. package/skills/investigating-agentforce-d360/scripts/dc.py +188 -0
  292. package/skills/investigating-agentforce-d360/scripts/discover_sessions.py +556 -0
  293. package/skills/investigating-agentforce-d360/scripts/fetch_dc.py +1045 -0
  294. package/skills/investigating-agentforce-d360/scripts/render_dc.py +1750 -0
  295. package/skills/investigating-agentforce-d360/scripts/resolve_session.py +264 -0
  296. package/skills/investigating-agentforce-d360/scripts/storage.py +92 -0
  297. package/skills/investigating-agentforce-d360/scripts/tests/__init__.py +0 -0
  298. package/skills/investigating-agentforce-d360/scripts/tests/_bootstrap.py +15 -0
  299. package/skills/investigating-agentforce-d360/scripts/tests/fixtures/__init__.py +0 -0
  300. package/skills/investigating-agentforce-d360/scripts/tests/fixtures/synthetic_session.py +424 -0
  301. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_bootstrap_and_mode.py +115 -0
  302. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct.py +220 -0
  303. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct_integration.py +158 -0
  304. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_helpers.py +287 -0
  305. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_integration.py +247 -0
  306. package/skills/investigating-agentforce-d360/scripts/tests/test_dc_and_resolve_session.py +433 -0
  307. package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions.py +458 -0
  308. package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions_grep_ci.py +193 -0
  309. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_helpers.py +266 -0
  310. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_identity.py +528 -0
  311. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_main.py +251 -0
  312. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall.py +229 -0
  313. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall_full.py +283 -0
  314. package/skills/investigating-agentforce-d360/scripts/tests/test_identity_coherence.py +327 -0
  315. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_branches.py +256 -0
  316. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_gateway_direct.py +130 -0
  317. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_helpers.py +291 -0
  318. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_integration.py +220 -0
  319. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_planner_llm_calls.py +284 -0
  320. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_show_prompts_gating.py +215 -0
  321. package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_from_disk.py +100 -0
  322. package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_session_main.py +149 -0
  323. package/skills/investigating-agentforce-d360/scripts/tests/test_runtime_override.py +104 -0
  324. package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape.py +95 -0
  325. package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape_dropped_by_stdm.py +85 -0
  326. package/skills/managing-managed-event-subscription/SKILL.md +152 -0
  327. package/skills/managing-managed-event-subscription/assets/managed-event-subscription-template.xml +20 -0
  328. package/skills/managing-managed-event-subscription/references/delete-guide.md +57 -0
  329. package/skills/managing-managed-event-subscription/references/topic-name-formats.md +26 -0
  330. package/skills/managing-managed-event-subscription/references/update-constraints.md +30 -0
  331. package/skills/reviewing-lwc-mobile-offline/SKILL.md +168 -0
  332. package/skills/reviewing-lwc-mobile-offline/references/grounding.md +7 -0
  333. package/skills/reviewing-lwc-mobile-offline/references/inline-graphql.md +43 -0
  334. package/skills/reviewing-lwc-mobile-offline/references/komaci-eslint.md +125 -0
  335. package/skills/reviewing-lwc-mobile-offline/references/lwc-if.md +78 -0
  336. package/skills/reviewing-lwc-mobile-offline/scripts/komaci.config.mjs +18 -0
  337. package/skills/reviewing-lwc-mobile-offline/scripts/package.json +10 -0
  338. package/skills/reviewing-lwc-mobile-offline/scripts/run-komaci.sh +69 -0
  339. package/skills/uplifting-components-to-slds2/SKILL.md +3 -2
  340. package/skills/uplifting-components-to-slds2/references/color-hooks-decision-guide.md +30 -9
  341. package/skills/uplifting-components-to-slds2/references/examples.md +24 -6
  342. package/skills/using-mobile-native-capabilities/SKILL.md +182 -0
  343. package/skills/using-mobile-native-capabilities/references/app-review.md +68 -0
  344. package/skills/using-mobile-native-capabilities/references/ar-space-capture.md +125 -0
  345. package/skills/using-mobile-native-capabilities/references/barcode-scanner.md +219 -0
  346. package/skills/using-mobile-native-capabilities/references/base-capability.md +22 -0
  347. package/skills/using-mobile-native-capabilities/references/biometrics.md +90 -0
  348. package/skills/using-mobile-native-capabilities/references/calendar.md +213 -0
  349. package/skills/using-mobile-native-capabilities/references/contacts.md +232 -0
  350. package/skills/using-mobile-native-capabilities/references/document-scanner.md +342 -0
  351. package/skills/using-mobile-native-capabilities/references/geofencing.md +123 -0
  352. package/skills/using-mobile-native-capabilities/references/location.md +158 -0
  353. package/skills/using-mobile-native-capabilities/references/mobile-capabilities.md +30 -0
  354. package/skills/using-mobile-native-capabilities/references/nfc.md +181 -0
  355. package/skills/using-mobile-native-capabilities/references/payments.md +95 -0
  356. package/skills/validating-slds/SKILL.md +262 -0
  357. package/skills/validating-slds/references/quality-checks.md +308 -0
  358. package/skills/validating-slds/references/report-format.md +302 -0
  359. package/skills/validating-slds/scripts/analyze-quality.cjs +521 -0
@@ -0,0 +1,186 @@
1
+ ---
2
+ id: slds.guidance.icons
3
+ title: SLDS Icons Guidance
4
+ description: Icon selection and implementation guidance for coding agents
5
+ summary: "Icon implementation guide covering the sprite:symbol naming model, category decision guide (action, utility, standard, custom, doctype), implementation patterns for Lightning and SLDS markup, and accessibility requirements."
6
+
7
+ artifact_type: guide
8
+ domain: icons
9
+ topic: icons
10
+
11
+ content_format: structured
12
+ complexity: intermediate
13
+ audience: [implementer]
14
+
15
+ tasks: [choose, implement]
16
+
17
+ refs:
18
+ - slds.guidance.development
19
+ - slds.guidance.design
20
+ - slds.guidance.blueprints
21
+
22
+ tags: [icons, sprites, svg, utility-icons, action-icons, standard-icons]
23
+ keywords: [icon sprites, utility icons, action icons, standard icons, custom icons, doctype icons, icon accessibility, SVG icons]
24
+ ---
25
+
26
+ # SLDS Icons Guidance
27
+
28
+ ## Overview
29
+
30
+ SLDS icons are a curated set of reusable SVG symbols grouped into **sprite categories**. They're used to add quick, consistent visual meaning to UI elements (buttons, navigation, record headers, status indicators, file types, and more).
31
+
32
+ This guidance covers:
33
+
34
+ - **Category guidance** for picking the right sprite
35
+ - **Implementation patterns** (Lightning + SLDS markup)
36
+ - **Accessibility requirements** for icons in UI
37
+
38
+ ---
39
+
40
+ ## Icon Naming Model (Critical)
41
+
42
+ An icon is referenced as:
43
+
44
+ - **`sprite:symbol`** (example: `utility:search`, `action:save`, `standard:account`)
45
+
46
+ Where:
47
+
48
+ - **sprite** = category (action, utility, standard, custom, doctype)
49
+ - **symbol** = the icon name within that sprite
50
+
51
+ ---
52
+
53
+ ## Category Decision Guide (What to Use When)
54
+
55
+ ### Action Icons (`action:*`)
56
+
57
+ - **Use for**: verbs / user actions (save, delete, edit, add, close)
58
+ - **Common placements**: buttons, menus, toolbars, row actions
59
+ - **Rule of thumb**: if the UI text could start with "Do …", use `action:`
60
+
61
+ ### Utility Icons (`utility:*`)
62
+
63
+ - **Use for**: general interface affordances and controls (search, settings, filter, chevrons)
64
+ - **Common placements**: nav, search fields, utility panels, small inline UI hints
65
+ - **Rule of thumb**: if it's a UI control concept (not a business object), use `utility:`
66
+
67
+ ### Standard Icons (`standard:*`)
68
+
69
+ - **Use for**: Salesforce objects/entities (Account, Contact, Case, Opportunity)
70
+ - **Common placements**: record headers, object pickers, list tiles
71
+ - **Rule of thumb**: if the icon represents "what this thing is" (a noun/object), use `standard:`
72
+
73
+ ### Custom Icons (`custom:*`)
74
+
75
+ - **Use for**: generic shapes/symbols, often for custom objects when no standard icon fits
76
+ - **Common placements**: custom object tiles, app launcher tiles, branded placeholders
77
+ - **Rule of thumb**: use `custom:` when `standard:` is not appropriate and you still want a "record/object style" icon
78
+
79
+ ### Doctype Icons (`doctype:*`)
80
+
81
+ - **Use for**: file types (pdf, image, spreadsheet, etc.)
82
+ - **Common placements**: attachments, file lists, previews
83
+ - **Rule of thumb**: if you're representing a file format, use `doctype:`
84
+
85
+ ---
86
+
87
+ ## How to Search Icons
88
+
89
+ **Effective query patterns:**
90
+
91
+ - **Intent-first**: "save", "delete", "filter", "settings", "add user"
92
+ - **Object-first**: "account", "contact", "case"
93
+ - **UI affordance**: "chevron right", "close x", "search magnifier"
94
+
95
+ **Optional filters:**
96
+
97
+ - Restrict to a sprite category (action / utility / standard / custom / doctype)
98
+ - Limit results to keep responses tight
99
+
100
+ ### Searchable Metadata Fields
101
+
102
+ Each icon entry in the JSON metadata supports these lookup strategies:
103
+
104
+ - **Exact match**: `category` + icon name (mapped to `sprite:symbol` at runtime, e.g. `utility:chevronright`)
105
+ - **Discovery**: `synonyms` (best for intent searches — e.g. "next" finds `chevronright`)
106
+ - **Styling**: `className` (computed as `slds-icon-{category}-{name}` for SLDS `<svg>` containers)
107
+ - **Context**: `description` (matches long-form queries about icon purpose)
108
+ - **RTL**: `directionality.hasRtl` (rare, but important for directional glyphs)
109
+
110
+ ---
111
+
112
+ ## Implementation Patterns
113
+
114
+ ### Lightning Web Components (preferred inside Salesforce)
115
+
116
+ **Icon only:**
117
+
118
+ ```html
119
+ <lightning-icon
120
+ icon-name="utility:search"
121
+ alternative-text="Search"
122
+ title="Search"
123
+ size="x-small">
124
+ </lightning-icon>
125
+ ```
126
+
127
+ **Icon button:**
128
+
129
+ ```html
130
+ <lightning-button-icon
131
+ icon-name="action:save"
132
+ alternative-text="Save"
133
+ title="Save"
134
+ onclick={handleSave}>
135
+ </lightning-button-icon>
136
+ ```
137
+
138
+ ### SLDS (raw HTML/SVG usage)
139
+
140
+ If you're implementing outside Lightning components, use the `className` from the JSON (example: `slds-icon-utility-search`) with the appropriate SLDS blueprint patterns for icon containers.
141
+
142
+ ---
143
+
144
+ ## Sizes
145
+
146
+ When rendering icons in Lightning Web Components, prefer the built-in size tokens on `lightning-icon` / `lightning-button-icon` instead of custom CSS.
147
+
148
+ | Size token | Typical use |
149
+ |-----------|-------------|
150
+ | `xx-small` | Inline with dense UI or text-adjacent glyphs |
151
+ | `x-small` | Compact layouts / tight controls |
152
+ | `small` | Default for most utility UI icons |
153
+ | `medium` | Default for object/record representation icons |
154
+ | `large` | Featured / hero contexts (use sparingly) |
155
+
156
+ ---
157
+
158
+ ## Accessibility Requirements (Do Not Skip)
159
+
160
+ ### When the icon communicates meaning
161
+
162
+ - **Provide text** for assistive tech:
163
+ - LWC: `alternative-text` (required), `title` (recommended)
164
+ - HTML/SVG: ensure an accessible name via text, `aria-label`, or `title` as appropriate
165
+
166
+ ### When the icon is purely decorative
167
+
168
+ - Hide it from assistive tech (don't create "noise"):
169
+ - LWC: use an empty `alternative-text=""` only if the containing control already has an accessible label
170
+ - HTML/SVG: `aria-hidden="true"` on the decorative icon element
171
+
172
+ ### Don't rely on icons alone
173
+
174
+ If the icon represents status (success/error/warning), ensure there's **text and/or non-color cues** in addition to the icon.
175
+
176
+ ---
177
+
178
+ ## Icon Metadata Structure
179
+
180
+ All 1,732 icons are stored in a single `icon-metadata.json` file, keyed by icon name. Each entry includes:
181
+
182
+ - `displayName` — the icon identifier (e.g. `chevronright`, `add_contact`)
183
+ - `category` — sprite category: `action`, `utility`, `standard`, `custom`, `doctype`
184
+ - `synonyms` — search terms for discovery (e.g. `["next", "forward", "arrow", "chevron"]`)
185
+ - `description` — what the icon represents
186
+ - `directionality` — `type` (`common` or `directional`) and `hasRtl` flag
@@ -0,0 +1,236 @@
1
+ ---
2
+ id: slds.guidance.overview.borders
3
+ title: Borders and Radius Overview
4
+ description: Foundational principles and constraints for border and radius decisions in SLDS
5
+ summary: "Comprehensive border guidance covering SLDS 2 design philosophy (minimal borders), border width usage, radius categories, and when borders are appropriate. Critical for SLDS 1 to SLDS 2 migration."
6
+
7
+ artifact_type: overview
8
+ domain: overviews
9
+ topic: borders
10
+
11
+ content_format: narrative
12
+ complexity: foundational
13
+ audience: [implementer, designer]
14
+
15
+ tasks: [learn, choose, implement]
16
+
17
+ refs:
18
+ - slds.guidance.hooks.borders
19
+
20
+ tags: [borders, radius, corners, visual-structure, slds2-migration]
21
+ keywords: [border width, border radius, corners, SLDS 2 design, minimal borders, visual separation, container borders]
22
+ ---
23
+
24
+ # Borders and Radius Guidance for SLDS Implementation
25
+
26
+ **Purpose:** This document provides the foundational principles and constraints for all border and radius decisions in Salesforce Lightning Design System. Borders and radiuses are basic visual design elements that help create clarity, hierarchy, and a consistent look. When implementing components and layouts, follow these guidelines to ensure visual harmony and cohesion across all experiences.
27
+
28
+ ---
29
+
30
+ ## Core Principles
31
+
32
+ When working with borders and radiuses in UI interfaces, adhere to these foundational principles:
33
+
34
+ 1. **Create clarity through structure.** Borders delineate components and sections for better readability and navigation. Use them to separate content areas, indicate clickable elements, or highlight active states.
35
+
36
+ 2. **Support hierarchy and meaning.** Borders differentiate elements to show importance or interactivity. Ensure border treatments draw attention to important features without overwhelming the experience.
37
+
38
+ 3. **Maintain consistency and harmony.** Apply consistent thickness, color, and radius across similar elements. Avoid mixing sharp and rounded corners within the same component to keep designs looking polished and cohesive.
39
+
40
+ 4. **Foster accessibility.** Use subtle but effective visual cues to support usability for all users. Ensure borders remain visible and easy to perceive across all screen sizes and resolutions.
41
+
42
+ ---
43
+
44
+ ## SLDS 2 Design Philosophy
45
+
46
+ **CRITICAL:** SLDS 2 does not use borders around cards and components, unlike SLDS 1.
47
+
48
+ This represents a significant design shift from previous versions. When uplifting code from SLDS 1 to SLDS 2, remove decorative borders from cards, panels, and container components. SLDS 2 relies more on spacing, shadows, and surface colors to create visual separation rather than explicit borders.
49
+
50
+ **When borders ARE appropriate in SLDS 2:**
51
+ - Separating content using neutral borders to divide sections or groups of related content
52
+ - Highlighting interactive elements by applying neutral borders for structure, or accent colors for specific branded variants and focus states
53
+ - Communicating component states with context-appropriate colors like red for error states or lighter shades for disabled components
54
+ - Creating subtle divider lines between content areas
55
+
56
+ ---
57
+
58
+ ## Borders Fundamentals
59
+
60
+ ### What are Borders?
61
+
62
+ Borders outline elements and provide structure, serving as visual separators, indicators of interactivity, or highlights for active or selected states. Border width, sometimes called stroke width, refers to the thickness of the lines that define the edges of components, containers, and other visual elements.
63
+
64
+ **Borders help with these design aspects:**
65
+ - Differentiate between various UI elements, such as cards, panels, or input fields
66
+ - Highlight important information and de-emphasize less important information
67
+ - Make content more accessible by ensuring that borders are always visible and easy to read on all screen sizes and resolutions
68
+
69
+ ### Best Practices for Borders
70
+
71
+ - **Less is Best** — Apply borders sparingly to avoid visual clutter. SLDS 2 favors minimal border usage.
72
+ - **Consistency** — Use consistent thickness and color across similar elements.
73
+ - **Subtlety** — Use light or subtle borders to create separation without overwhelming the interface.
74
+
75
+ ---
76
+
77
+ ## Radius Fundamentals
78
+
79
+ ### What is Radius?
80
+
81
+ Radius defines how rounded the corners are on elements. Borders have a radius, and container elements such as cards and buttons have a radius too. Rounded corners soften the visual appearance and create a more approachable design style.
82
+
83
+ **Radius contributes to the design in these ways:**
84
+ - Establish a consistent style for rounded corners across components such as cards, modals, and buttons
85
+ - Create a modern, approachable aesthetic that aligns with the brand identity
86
+ - Improve usability by subtly guiding users' focus to key interface elements
87
+
88
+ > **For radius sizing guidance** and component examples, refer to the Borders and Radius Styling Hooks documentation.
89
+
90
+ ### Best Practices for Radius
91
+
92
+ - **Consistency** — Apply the same radius to similar elements for a cohesive design style throughout the interface.
93
+ - **Harmony** — Avoid mixing sharp and rounded corners. Mixing these styles within the same component can create a visually jarring experience and reduce design harmony.
94
+ - **Branding** — Use the radius to reflect the brand's personality. Whether the brand should be approachable, professional, or bold, use the SLDS 2 design guidelines to choose the right radius for the elements.
95
+ - **Usability** — Confirm through testing that rounded corners don't detract from clarity or usability, especially for focus and hover states in interactive elements.
96
+
97
+ ### Nested Container Pattern
98
+
99
+ Nested containers should use the next smaller radius value to maintain visual harmony. For example, if an outer card uses `--slds-g-radius-border-4`, a nested card inside should use `--slds-g-radius-border-3`. This creates a consistent visual rhythm where inner elements have subtly tighter corners than their parent containers.
100
+
101
+ ---
102
+
103
+ ## Border Color Fundamentals
104
+
105
+ SLDS 2 uses specific colors for borders to align with the system's visual design, ensuring clarity and usability across all products.
106
+
107
+ ### Common Border Colors and Meanings
108
+
109
+ - **Neutral grays** — The standard choice for creating structural separation and outlining functional components
110
+ - **Accent colors (Blue)** — Reserved for specialized branded treatments and thematic emphasis
111
+ - **Dark blue** — Indicates an element has focus
112
+ - **Red** — Indicates an error state
113
+ - **Yellow** — Indicates a warning state
114
+ - **Transparent or white** — Maintains visual balance in lighter or less prominent elements
115
+
116
+ ### Where to Use Border Colors
117
+
118
+ - **Separate and outline content** — Use neutral gray borders to divide sections or outline standard functional components (buttons, inputs)
119
+ - **Highlight branded elements** — Apply accent colors for specialized branded treatments or thematic emphasis
120
+ - **Communicate focus** — Use dark blue focus indicators to support accessibility
121
+
122
+ > **For complete border color hook details**, refer to the Color Overview and Semantic Color Styling Hooks documentation, which covers the full semantic color system including border-specific tokens.
123
+
124
+ ---
125
+
126
+ ## Theming Considerations
127
+
128
+ SLDS 2 allows for customizable theming. When making changes to borders or radiuses:
129
+
130
+ - Ensure any customizations align with brand guidelines
131
+ - Maintain contrast ratios for accessibility
132
+ - Verify border treatments appear correctly across light/dark themes
133
+ - Use styling hooks to enable theme adaptability rather than hard-coded values
134
+
135
+ ---
136
+
137
+ ## Density Awareness Note
138
+
139
+ **Important:** Unlike spacing and typography, borders and radius values are NOT density-aware in SLDS 2. Border width and radius values remain constant regardless of whether the user has selected comfy or compact display density mode.
140
+
141
+ When implementing density-aware layouts, note that:
142
+ - Border thickness stays the same across density modes
143
+ - Radius values stay the same across density modes
144
+ - Spacing around bordered elements may change (via density-aware spacing hooks), but the borders themselves do not adapt
145
+
146
+ ---
147
+
148
+ ## Available Styling Hooks
149
+
150
+ ### Border Width Hooks
151
+
152
+ - `--slds-g-sizing-border-*`
153
+
154
+ ### Border Radius Hooks
155
+
156
+ - `--slds-g-radius-border-*`
157
+ - `--slds-g-radius-border-circle`
158
+ - `--slds-g-radius-border-pill`
159
+
160
+ ### Border Color Hooks
161
+
162
+ Border color hooks are part of the semantic color system. Key hooks include:
163
+
164
+ - `--slds-g-color-border-*` — Neutral borders for functional structure
165
+ - `--slds-g-color-border-accent-*` — Branded emphasis and thematic exceptions
166
+ - `--slds-g-color-border-error-*` — Error state borders
167
+ - `--slds-g-color-border-success-*` — Success state borders
168
+ - `--slds-g-color-border-warning-*` — Warning state borders
169
+ - `--slds-g-color-border-disabled-*` — Disabled state borders
170
+ - `--slds-g-color-border-inverse-*` — Borders on dark backgrounds
171
+
172
+ > **For detailed usage patterns**, refer to the Borders and Radius Styling Hooks documentation.
173
+
174
+ ---
175
+
176
+ ## Implementation Workflow
177
+
178
+ Follow this sequence when implementing any border or radius solution:
179
+
180
+ ### Step 1: Determine if a Border is Needed
181
+
182
+ Apply the SLDS 2 design philosophy — borders should be used sparingly. Ask:
183
+ - Is this border necessary for structure or clarity?
184
+ - Could spacing or shadows achieve the same visual separation?
185
+ - Am I uplifting from SLDS 1 where borders were used decoratively?
186
+
187
+ ### Step 2: Select the Appropriate Treatment
188
+
189
+ If a border is needed, determine:
190
+ - **Width** — Select the visual weight needed for the component type
191
+ - **Radius** — Match to content density (smaller for dense, larger for spacious)
192
+ - **Color** — Select based on semantic meaning (neutral, accent, feedback, inverse)
193
+
194
+ ### Step 3: Apply Styling Hooks
195
+
196
+ Never use hard-coded values. Use the appropriate styling hooks:
197
+ - Width: `--slds-g-sizing-border-*`
198
+ - Radius: `--slds-g-radius-border-*`
199
+ - Color: `--slds-g-color-border-*`
200
+
201
+ ### Step 4: Validate Implementation
202
+
203
+ Before finalizing, verify the implementation using the Pre-Implementation Checklist below.
204
+
205
+ ---
206
+
207
+ ## Pre-Implementation Checklist
208
+
209
+ Before generating or modifying any border or radius related code, verify:
210
+
211
+ | Requirement | Status |
212
+ |-------------|--------|
213
+ | **Design Philosophy** | |
214
+ | Confirmed border is necessary (not decorative holdover from SLDS 1) | [ ] |
215
+ | Evaluated alternatives (spacing, shadows) before adding border | [ ] |
216
+ | **Hook Selection** | |
217
+ | Using styling hooks (no hard-coded pixel values) | [ ] |
218
+ | Width hook selected matches visual weight needed | [ ] |
219
+ | Radius hook selected matches content density | [ ] |
220
+ | Color hook selected matches semantic meaning | [ ] |
221
+ | **Consistency & Harmony** | |
222
+ | Consistent border treatment across similar elements | [ ] |
223
+ | No mixing of sharp and rounded corners in same component | [ ] |
224
+ | Border color aligns with surrounding design context | [ ] |
225
+ | **Accessibility** | |
226
+ | Border visible and perceivable across screen sizes | [ ] |
227
+ | Sufficient contrast with adjacent surfaces | [ ] |
228
+ | Focus states clearly indicated | [ ] |
229
+ | **Theming** | |
230
+ | Works across light/dark themes | [ ] |
231
+ | Maintains brand alignment | [ ] |
232
+
233
+ **Target outcome:** Clean, minimal interfaces that use borders purposefully for structure and meaning, not decoration. Visual separation achieved through spacing and depth where possible.
234
+
235
+
236
+
@@ -0,0 +1,266 @@
1
+ ---
2
+ id: slds.guidance.overview.color
3
+ title: Color Overview
4
+ description: Foundational principles and constraints for all color decisions in SLDS
5
+ summary: "Comprehensive color guidance covering the 85-5-10 density rule, color role taxonomy, hook selection hierarchy, and numerical color system. The primary reference for all color implementation decisions."
6
+
7
+ artifact_type: overview
8
+ domain: overviews
9
+ topic: color
10
+
11
+ content_format: narrative
12
+ complexity: foundational
13
+ audience: [implementer, designer]
14
+
15
+ tasks: [learn, choose, implement]
16
+
17
+ refs:
18
+ - slds.guidance.hooks.color.accent
19
+ - slds.guidance.hooks.color.surface
20
+ - slds.guidance.hooks.color.feedback
21
+ - slds.guidance.hooks.color.system
22
+ - slds.guidance.hooks.color.expressive-palette
23
+
24
+ tags: [color, semantic-color, accessibility, visual-hierarchy, theming]
25
+ keywords: [color roles, 85-5-10 rule, hook selection, semantic hooks, color taxonomy, surfaces, accents, feedback colors]
26
+ ---
27
+
28
+ # Color Guidance for SLDS Implementation
29
+
30
+ **Purpose:** This document provides the foundational principles and constraints for all color-related decisions in Salesforce Lightning Design System. Always reference the companion metadata files for specific token names, contrast pairings, and approved combinations.
31
+
32
+ ---
33
+
34
+ ## Core Principles
35
+
36
+ When working with colors in UI interfaces, adhere to these three foundational principles:
37
+
38
+ 1. **Signal hierarchy and meaning.** Color must highlight actions, alerts, and key information without overpowering the experience. Do not use color decoratively.
39
+
40
+ 2. **Accessibility is mandatory.** All implementations must meet WCAG 2.1 AA minimum standards for text and interactive elements. Use only the approved pairings documented in the metadata layer.
41
+
42
+ 3. **Maintain system consistency.** Always use semantic styling hooks. These tokens automatically adapt to brand themes, density modes, and light/dark modes. Never use hard-coded color values.
43
+
44
+ ---
45
+
46
+ ## Color Role Taxonomy
47
+
48
+ Every element must be classified into one of these five color roles before selecting a token:
49
+
50
+ - **Surfaces:** The base canvas for content. Each new layer (panel, modal, popover) is a distinct surface with its own depth level. Use surface tokens for backgrounds.
51
+
52
+ - **Containers:** Elements that hold interactive or readable content (cards, buttons, tabsets). Always pair container background colors with their corresponding "on-container" tokens for text and icons.
53
+
54
+ - **Accents:** Colors that draw attention to primary interactions or selected states. Use sparingly and only for meaningful emphasis. Overuse destroys visual hierarchy.
55
+
56
+ - **Feedback colors:** Status indicators (error, warning, success, info, disabled). Reserve exclusively for CRUD operations and system feedback. Never use for general styling.
57
+
58
+ - **Borders/dividers:** Structural elements that create separation. Must maintain sufficient contrast with adjacent surfaces and containers.
59
+
60
+ ---
61
+
62
+ ## Color Density Rule (85-5-10)
63
+
64
+ **CONSTRAINT:** All UI implementations should maintain the following color distribution. This distribution is strongly recommended for maintaining SLDS visual consistency.
65
+
66
+ ### UI Foundation: 85% (Required)
67
+ Foundational colors create the neutral canvas for all content. Use whites, light grays, dark grays, and dark blue for contrast with text and interactive elements.
68
+
69
+ **Allowed Palettes:** Whites, light grays, dark grays, dark blue
70
+ **Usage:** Page backgrounds, surface layers, neutral containers, structural elements
71
+
72
+ ### Accents: 5% (Required)
73
+ Accent colors are reserved for strategic emphasis on interactive elements. Use the foundational accent (electric blue) and feedback palettes (pink, yellow, teal, blue) to guide users toward task completion.
74
+
75
+ **Allowed Palettes:** Foundational accent (electric blue), feedback (pink, yellow, teal, blue), functional accent colors
76
+ **Usage:** Primary actions, selected states, status indicators, critical CTAs
77
+
78
+ ### Expressive Colors: 10% (Maximum)
79
+ Expressive palettes provide extended color options for data visualization and customized app experiences. Use with restraint.
80
+
81
+ **Allowed Palettes:** Green, Cloud Blue, Indigo, Purple, Violet, Red, Hot Orange, Orange
82
+ **Usage:** Data charts, custom branding, visualization highlights, app-specific accents
83
+
84
+ **Strict Usage Rules:**
85
+ - **Cool tones first.** Prioritize Cloud Blue, Purple, Indigo, Violet for general page designs. These integrate better with the foundational palette.
86
+ - **Indigo warning.** Indigo resembles electric blue. Using it carelessly will break button hierarchy and confuse users about interactive affordances.
87
+ - **Warm = attention only.** Orange, Red, and Green signal importance or issues. Reserve them exclusively for drawing user attention to critical information.
88
+ - **Prevent feedback confusion.** Expressive colors can be misinterpreted as system feedback (pink=error, yellow=warning, teal=success, blue=info). Apply expressive colors minimally to avoid this conflict.
89
+
90
+ ---
91
+
92
+ ## The Numerical Color System
93
+
94
+ **System Architecture:** SLDS uses a 0-100 point scale where accessibility compliance is mathematically guaranteed:
95
+
96
+ - **100 points** = white
97
+ - **0 points** = black
98
+ - **Color lane** = full 0-100 spectrum of a single hue
99
+ - **Color step** = 5-10 point increments within a lane (e.g., Cloud Blue-15, Cloud Blue-25, Cloud Blue-35)
100
+
101
+ ### How It Works
102
+
103
+ Colors share horizontal point values across different hues. This means the same mathematical rules apply:
104
+ - Vertically within each monochromatic palette (single lane)
105
+ - Horizontally across all color lanes (different hues)
106
+
107
+ This consistency enables pattern replication across the entire system.
108
+
109
+ ### Automatic Accessibility: Magic Numbers
110
+
111
+ **CRITICAL:** Use these point separations to achieve WCAG compliance without manual checking:
112
+
113
+ | Separation | Contrast Ratio | Use Case | WCAG Level |
114
+ |------------|----------------|----------|------------|
115
+ | **50 points** | 4.5:1+ | Text on backgrounds, body copy | AA (required) |
116
+ | **40 points** | 3:1+ | UI elements, borders, non-text | AA (required) |
117
+
118
+ **Works across hues:** A 50-point separation maintains 4.5:1 contrast even when using different color lanes.
119
+
120
+ **Example Application:**
121
+ - Page background: Gray-95
122
+ - Button background: Any-50 (45 point difference = compliant)
123
+ - Button hover: Any-40 (55 point difference = compliant)
124
+ - Button text: Any-0 or Any-100 depending on background
125
+
126
+ The 10-point step from 50→40 creates consistent hover states across all color lanes.
127
+
128
+ **Attribution:** The "magic numbers" concept originates from the U.S. Web Design System (USWDS) and has been adopted into SLDS to ensure systematic color progression and accessibility.
129
+
130
+ ---
131
+
132
+ ## Implementation Workflow
133
+
134
+ Follow this mandatory sequence when implementing any color solution:
135
+
136
+ ### Step 1: Classify the Element
137
+ Identify the element's semantic role:
138
+ - Is it a **surface** (background layer)?
139
+ - Is it a **container** (holds content)?
140
+ - Is it an **accent** (emphasis/interaction)?
141
+ - Is it **feedback** (status/state)?
142
+ - Is it a **border/divider** (structure)?
143
+
144
+ ### Step 2: Reference the Metadata
145
+ Never invent color values. The companion metadata files contain:
146
+ - Approved styling hook names
147
+ - Pre-validated contrast pairings
148
+ - State transition sequences (default → hover → active → disabled)
149
+ - Theme adaptations (light/dark/branded)
150
+
151
+ ### Step 3: Handle Exceptions
152
+ If no semantic hook matches the requirement:
153
+ 1. Document why standard patterns don't apply
154
+ 2. Verify contrast manually using the numerical system
155
+ 3. Ensure brand consistency is maintained
156
+ 4. Flag for design system team review
157
+
158
+ ### Step 4: Validate Implementation
159
+ Before finalizing, verify the implementation using the Pre-Implementation Checklist below to ensure all color requirements are met.
160
+
161
+ ---
162
+
163
+ ## Metadata Integration
164
+
165
+ **Source of Truth:** The metadata files are authoritative for all implementation details.
166
+
167
+ **What the metadata provides:**
168
+ - Exact token names and values
169
+ - Pre-validated contrast pairings (text-on-background, icon-on-surface)
170
+ - State progression maps (default → hover → active → focus → disabled)
171
+ - Cross-reference between semantic roles and color values
172
+ - Theme-specific overrides
173
+
174
+ **When to consult metadata:**
175
+ - Before selecting any color token
176
+ - When implementing state changes
177
+ - When validating a custom pattern
178
+ - When introducing new component styles
179
+
180
+ **Validation question:** Does this color choice reinforce semantic meaning, meet accessibility standards, and maintain brand consistency?
181
+
182
+ ---
183
+
184
+ ## Hook Selection Hierarchy
185
+
186
+ When selecting color hooks, follow this decision order:
187
+
188
+ ### 1. Semantic Hooks (First Choice — 85% of Cases)
189
+ **Pattern:** `--slds-g-color-{purpose}-{n}` (e.g., `error-1`, `accent-container-1`, `surface-1`)
190
+
191
+ Use semantic hooks for standard UI patterns. These hooks:
192
+ - Are purpose-built for specific UI use cases (errors, accents, surfaces, feedback)
193
+ - Automatically adapt to light/dark mode with curated values
194
+ - Have pre-validated accessibility pairings
195
+ - Reference system and palette hooks underneath
196
+
197
+ **Use when:** You can describe your element using semantic terms (surface, accent, error, warning, success, disabled).
198
+
199
+ ### 2. System Hooks (Edge Cases — 5-10% of Cases)
200
+ **Pattern:** `--slds-g-color-{category}-base-{grade}` (e.g., `error-base-50`, `brand-base-40`)
201
+
202
+ Use system hooks when semantic hooks don't cover your specific need. These hooks:
203
+ - Provide grade-level control within a color category
204
+ - Still adapt to light/dark mode with curated values per mode
205
+ - Reference palette hooks underneath
206
+
207
+ **Use when:** Data visualization, legacy migration, or custom requirements where semantic hooks are insufficient.
208
+
209
+ ### 3. Palette Hooks (Raw Access — Rare Cases)
210
+ **Pattern:** `--slds-g-color-palette-{color}-{grade}` (e.g., `palette-pink-50`, `palette-cloud-blue-30`)
211
+
212
+ Use palette hooks only when system hooks don't meet your requirements. These hooks:
213
+ - Provide direct access to the color palette by color name and grade
214
+ - Have light/dark mode variants
215
+ - Are the foundation that semantic and system hooks reference
216
+
217
+ **Use when:** Custom color requirements that don't fit any semantic or system category.
218
+
219
+ ### Internal Hooks (Not for External Use)
220
+
221
+ The following hook prefixes are **internal to Salesforce** and should not be used by external developers:
222
+
223
+ | Prefix | Name | Audience |
224
+ |--------|------|----------|
225
+ | `--slds-s-*` | Shared hooks | Internal Salesforce only |
226
+ | `--slds-c-*` | Component hooks | Internal Salesforce only |
227
+
228
+ ### How They Connect (Aliasing Chain)
229
+
230
+ Semantic hooks reference system hooks, which reference palette hooks. When the theme changes (light → dark), the underlying references change, so semantic hooks automatically adapt.
231
+
232
+ **Example:** `--slds-g-color-error-1`
233
+ - Light mode: → `error-base-50` → `palette-pink-50` → #hex
234
+ - Dark mode: → `error-base-40` → `palette-pink-40` → #different-hex
235
+
236
+ This aliasing chain means you get theme adaptation "for free" when using semantic hooks.
237
+
238
+ ---
239
+
240
+ ## Pre-Implementation Checklist
241
+
242
+ Before generating or modifying any color-related code, verify:
243
+
244
+ | Requirement | Status |
245
+ |-------------|--------|
246
+ | **Element Classification** | |
247
+ | Element classified by semantic role (surface/container/accent/feedback/border) | [ ] |
248
+ | **Token Selection & Metadata** | |
249
+ | Color token identified from metadata (no hard-coded hex/RGB values) | [ ] |
250
+ | Metadata consulted for approved styling hook names | [ ] |
251
+ | Pre-validated contrast pairings referenced from metadata | [ ] |
252
+ | "On" counterpart specified (for containers) | [ ] |
253
+ | **Contrast & Accessibility** | |
254
+ | Contrast requirements met using numerical system (50pts text, 40pts UI) | [ ] |
255
+ | Works with the numerical color system for automatic accessibility | [ ] |
256
+ | **Color Distribution & Usage** | |
257
+ | 85-5-10 density rule maintained (85% foundation, 5% accent, 10% expressive) | [ ] |
258
+ | Accent/feedback colors used sparingly and meaningfully | [ ] |
259
+ | Color reinforces semantic meaning rather than decorative use | [ ] |
260
+ | **Theme Support & States** | |
261
+ | All theme modes supported (light/dark/compact/branded) | [ ] |
262
+ | State transitions defined (hover/active/focus/disabled) | [ ] |
263
+ | Theme-specific overrides reviewed from metadata where applicable | [ ] |
264
+
265
+ **Target outcome:** Calm, purposeful interfaces that are unmistakably Salesforce. Color should enhance usability without becoming decorative.
266
+