@salesforce/afv-skills 1.14.0 → 1.16.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 (365) hide show
  1. package/package.json +1 -1
  2. package/skills/activating-datacloud/SKILL.md +0 -1
  3. package/skills/analyzing-omnistudio-dependencies/SKILL.md +0 -1
  4. package/skills/applying-slds/SKILL.md +322 -0
  5. package/skills/applying-slds/checklists.md +83 -0
  6. package/skills/applying-slds/examples.md +283 -0
  7. package/skills/applying-slds/guidance/README.md +83 -0
  8. package/skills/applying-slds/guidance/blueprints-index.md +213 -0
  9. package/skills/applying-slds/guidance/icons-guidance.md +186 -0
  10. package/skills/applying-slds/guidance/overviews/borders.md +236 -0
  11. package/skills/applying-slds/guidance/overviews/color.md +266 -0
  12. package/skills/applying-slds/guidance/overviews/display-density.md +366 -0
  13. package/skills/applying-slds/guidance/overviews/icons.md +240 -0
  14. package/skills/applying-slds/guidance/overviews/illustrations.md +235 -0
  15. package/skills/applying-slds/guidance/overviews/shadows.md +176 -0
  16. package/skills/applying-slds/guidance/overviews/spacing.md +216 -0
  17. package/skills/applying-slds/guidance/overviews/typography.md +323 -0
  18. package/skills/applying-slds/guidance/overviews/utilities.md +542 -0
  19. package/skills/applying-slds/guidance/slds-development-guide.md +288 -0
  20. package/skills/applying-slds/guidance/styling-hooks/borders.md +202 -0
  21. package/skills/applying-slds/guidance/styling-hooks/color/expressive-palette-hooks.md +153 -0
  22. package/skills/applying-slds/guidance/styling-hooks/color/index.md +171 -0
  23. package/skills/applying-slds/guidance/styling-hooks/color/semantic/accent-hooks.md +204 -0
  24. package/skills/applying-slds/guidance/styling-hooks/color/semantic/feedback-hooks.md +768 -0
  25. package/skills/applying-slds/guidance/styling-hooks/color/semantic/surface-hooks.md +337 -0
  26. package/skills/applying-slds/guidance/styling-hooks/color/system-hooks.md +132 -0
  27. package/skills/applying-slds/guidance/styling-hooks/index.md +327 -0
  28. package/skills/applying-slds/guidance/styling-hooks/shadows.md +238 -0
  29. package/skills/applying-slds/guidance/styling-hooks/spacing.md +254 -0
  30. package/skills/applying-slds/guidance/styling-hooks/typography.md +448 -0
  31. package/skills/applying-slds/guidance/utilities/alignment.md +119 -0
  32. package/skills/applying-slds/guidance/utilities/borders.md +131 -0
  33. package/skills/applying-slds/guidance/utilities/box.md +125 -0
  34. package/skills/applying-slds/guidance/utilities/color.md +165 -0
  35. package/skills/applying-slds/guidance/utilities/dark-mode.md +111 -0
  36. package/skills/applying-slds/guidance/utilities/description-list.md +168 -0
  37. package/skills/applying-slds/guidance/utilities/floats.md +117 -0
  38. package/skills/applying-slds/guidance/utilities/grid.md +264 -0
  39. package/skills/applying-slds/guidance/utilities/horizontal-list.md +110 -0
  40. package/skills/applying-slds/guidance/utilities/hyphenation.md +84 -0
  41. package/skills/applying-slds/guidance/utilities/index.md +205 -0
  42. package/skills/applying-slds/guidance/utilities/interactions.md +89 -0
  43. package/skills/applying-slds/guidance/utilities/layout.md +109 -0
  44. package/skills/applying-slds/guidance/utilities/line-clamp.md +131 -0
  45. package/skills/applying-slds/guidance/utilities/margin.md +155 -0
  46. package/skills/applying-slds/guidance/utilities/media-object.md +161 -0
  47. package/skills/applying-slds/guidance/utilities/name-value-list.md +152 -0
  48. package/skills/applying-slds/guidance/utilities/padding.md +155 -0
  49. package/skills/applying-slds/guidance/utilities/position.md +177 -0
  50. package/skills/applying-slds/guidance/utilities/print.md +114 -0
  51. package/skills/applying-slds/guidance/utilities/scrollable.md +126 -0
  52. package/skills/applying-slds/guidance/utilities/sizing.md +190 -0
  53. package/skills/applying-slds/guidance/utilities/themes.md +121 -0
  54. package/skills/applying-slds/guidance/utilities/truncate.md +127 -0
  55. package/skills/applying-slds/guidance/utilities/typography.md +166 -0
  56. package/skills/applying-slds/guidance/utilities/vertical-list.md +166 -0
  57. package/skills/applying-slds/guidance/utilities/visibility.md +228 -0
  58. package/skills/applying-slds/metadata/README.md +84 -0
  59. package/skills/applying-slds/metadata/blueprints/components/accordion.yaml +304 -0
  60. package/skills/applying-slds/metadata/blueprints/components/activity-timeline.yaml +92 -0
  61. package/skills/applying-slds/metadata/blueprints/components/alert.yaml +103 -0
  62. package/skills/applying-slds/metadata/blueprints/components/app-launcher.yaml +94 -0
  63. package/skills/applying-slds/metadata/blueprints/components/avatar-group.yaml +81 -0
  64. package/skills/applying-slds/metadata/blueprints/components/avatar.yaml +97 -0
  65. package/skills/applying-slds/metadata/blueprints/components/badges.yaml +102 -0
  66. package/skills/applying-slds/metadata/blueprints/components/brand-band.yaml +198 -0
  67. package/skills/applying-slds/metadata/blueprints/components/breadcrumbs.yaml +95 -0
  68. package/skills/applying-slds/metadata/blueprints/components/builder-header.yaml +192 -0
  69. package/skills/applying-slds/metadata/blueprints/components/button-groups.yaml +82 -0
  70. package/skills/applying-slds/metadata/blueprints/components/button-icons.yaml +295 -0
  71. package/skills/applying-slds/metadata/blueprints/components/buttons.yaml +230 -0
  72. package/skills/applying-slds/metadata/blueprints/components/cards.yaml +124 -0
  73. package/skills/applying-slds/metadata/blueprints/components/carousel.yaml +140 -0
  74. package/skills/applying-slds/metadata/blueprints/components/chat.yaml +179 -0
  75. package/skills/applying-slds/metadata/blueprints/components/checkbox-button-group.yaml +192 -0
  76. package/skills/applying-slds/metadata/blueprints/components/checkbox-button.yaml +204 -0
  77. package/skills/applying-slds/metadata/blueprints/components/checkbox-toggle.yaml +177 -0
  78. package/skills/applying-slds/metadata/blueprints/components/checkbox.yaml +108 -0
  79. package/skills/applying-slds/metadata/blueprints/components/color-picker.yaml +172 -0
  80. package/skills/applying-slds/metadata/blueprints/components/combobox.yaml +136 -0
  81. package/skills/applying-slds/metadata/blueprints/components/counter.yaml +147 -0
  82. package/skills/applying-slds/metadata/blueprints/components/data-tables.yaml +157 -0
  83. package/skills/applying-slds/metadata/blueprints/components/datepickers.yaml +130 -0
  84. package/skills/applying-slds/metadata/blueprints/components/datetime-picker.yaml +155 -0
  85. package/skills/applying-slds/metadata/blueprints/components/docked-composer.yaml +201 -0
  86. package/skills/applying-slds/metadata/blueprints/components/docked-form-footer.yaml +161 -0
  87. package/skills/applying-slds/metadata/blueprints/components/docked-utility-bar.yaml +175 -0
  88. package/skills/applying-slds/metadata/blueprints/components/drop-zone.yaml +115 -0
  89. package/skills/applying-slds/metadata/blueprints/components/dueling-picklist.yaml +196 -0
  90. package/skills/applying-slds/metadata/blueprints/components/dynamic-icons.yaml +128 -0
  91. package/skills/applying-slds/metadata/blueprints/components/dynamic-menu.yaml +141 -0
  92. package/skills/applying-slds/metadata/blueprints/components/expandable-section.yaml +115 -0
  93. package/skills/applying-slds/metadata/blueprints/components/expression.yaml +143 -0
  94. package/skills/applying-slds/metadata/blueprints/components/feeds.yaml +125 -0
  95. package/skills/applying-slds/metadata/blueprints/components/file-selector.yaml +154 -0
  96. package/skills/applying-slds/metadata/blueprints/components/files.yaml +119 -0
  97. package/skills/applying-slds/metadata/blueprints/components/form-element.yaml +145 -0
  98. package/skills/applying-slds/metadata/blueprints/components/global-header.yaml +120 -0
  99. package/skills/applying-slds/metadata/blueprints/components/global-navigation.yaml +100 -0
  100. package/skills/applying-slds/metadata/blueprints/components/icons.yaml +138 -0
  101. package/skills/applying-slds/metadata/blueprints/components/illustration.yaml +205 -0
  102. package/skills/applying-slds/metadata/blueprints/components/input.yaml +151 -0
  103. package/skills/applying-slds/metadata/blueprints/components/list-builder.yaml +127 -0
  104. package/skills/applying-slds/metadata/blueprints/components/lookups.yaml +132 -0
  105. package/skills/applying-slds/metadata/blueprints/components/map.yaml +118 -0
  106. package/skills/applying-slds/metadata/blueprints/components/menus.yaml +134 -0
  107. package/skills/applying-slds/metadata/blueprints/components/modals.yaml +152 -0
  108. package/skills/applying-slds/metadata/blueprints/components/notifications.yaml +88 -0
  109. package/skills/applying-slds/metadata/blueprints/components/page-headers.yaml +135 -0
  110. package/skills/applying-slds/metadata/blueprints/components/panels.yaml +149 -0
  111. package/skills/applying-slds/metadata/blueprints/components/path.yaml +154 -0
  112. package/skills/applying-slds/metadata/blueprints/components/picklist.yaml +125 -0
  113. package/skills/applying-slds/metadata/blueprints/components/pills.yaml +154 -0
  114. package/skills/applying-slds/metadata/blueprints/components/popovers.yaml +120 -0
  115. package/skills/applying-slds/metadata/blueprints/components/progress-bar.yaml +110 -0
  116. package/skills/applying-slds/metadata/blueprints/components/progress-indicator.yaml +133 -0
  117. package/skills/applying-slds/metadata/blueprints/components/progress-ring.yaml +102 -0
  118. package/skills/applying-slds/metadata/blueprints/components/prompt.yaml +126 -0
  119. package/skills/applying-slds/metadata/blueprints/components/publishers.yaml +178 -0
  120. package/skills/applying-slds/metadata/blueprints/components/radio-button-group.yaml +172 -0
  121. package/skills/applying-slds/metadata/blueprints/components/radio-group.yaml +112 -0
  122. package/skills/applying-slds/metadata/blueprints/components/rich-text-editor.yaml +135 -0
  123. package/skills/applying-slds/metadata/blueprints/components/scoped-notifications.yaml +188 -0
  124. package/skills/applying-slds/metadata/blueprints/components/scoped-tabs.yaml +97 -0
  125. package/skills/applying-slds/metadata/blueprints/components/select.yaml +127 -0
  126. package/skills/applying-slds/metadata/blueprints/components/setup-assistant.yaml +152 -0
  127. package/skills/applying-slds/metadata/blueprints/components/slider.yaml +111 -0
  128. package/skills/applying-slds/metadata/blueprints/components/spinners.yaml +135 -0
  129. package/skills/applying-slds/metadata/blueprints/components/split-view.yaml +112 -0
  130. package/skills/applying-slds/metadata/blueprints/components/summary-detail.yaml +103 -0
  131. package/skills/applying-slds/metadata/blueprints/components/tabs.yaml +138 -0
  132. package/skills/applying-slds/metadata/blueprints/components/textarea.yaml +116 -0
  133. package/skills/applying-slds/metadata/blueprints/components/tiles.yaml +108 -0
  134. package/skills/applying-slds/metadata/blueprints/components/timepicker.yaml +111 -0
  135. package/skills/applying-slds/metadata/blueprints/components/toast.yaml +154 -0
  136. package/skills/applying-slds/metadata/blueprints/components/tooltips.yaml +107 -0
  137. package/skills/applying-slds/metadata/blueprints/components/tree-grid.yaml +116 -0
  138. package/skills/applying-slds/metadata/blueprints/components/trees.yaml +116 -0
  139. package/skills/applying-slds/metadata/blueprints/components/trial-bar.yaml +112 -0
  140. package/skills/applying-slds/metadata/blueprints/components/vertical-navigation.yaml +130 -0
  141. package/skills/applying-slds/metadata/blueprints/components/vertical-tabs.yaml +140 -0
  142. package/skills/applying-slds/metadata/blueprints/components/visual-picker.yaml +150 -0
  143. package/skills/applying-slds/metadata/blueprints/components/welcome-mat.yaml +136 -0
  144. package/skills/applying-slds/metadata/hooks-index.json +6272 -0
  145. package/skills/applying-slds/metadata/icon-metadata.json +38466 -0
  146. package/skills/applying-slds/metadata/utilities-index.json +21912 -0
  147. package/skills/applying-slds/references/component-selection.md +112 -0
  148. package/skills/applying-slds/references/icons-decision-guide.md +124 -0
  149. package/skills/applying-slds/references/styling-decision-guide.md +228 -0
  150. package/skills/applying-slds/references/utilities-quick-ref.md +125 -0
  151. package/skills/applying-slds/scripts/search-blueprints.cjs +117 -0
  152. package/skills/applying-slds/scripts/search-hooks.cjs +139 -0
  153. package/skills/applying-slds/scripts/search-icons.cjs +174 -0
  154. package/skills/applying-slds/scripts/search-utilities.cjs +161 -0
  155. package/skills/building-mobile-apps/SKILL.md +0 -1
  156. package/skills/building-omnistudio-callable-apex/SKILL.md +0 -1
  157. package/skills/building-omnistudio-datamapper/SKILL.md +0 -1
  158. package/skills/building-omnistudio-flexcard/SKILL.md +0 -1
  159. package/skills/building-omnistudio-integration-procedure/SKILL.md +0 -1
  160. package/skills/building-omnistudio-omniscript/SKILL.md +0 -1
  161. package/skills/building-sf-integrations/SKILL.md +0 -1
  162. package/skills/configuring-connected-apps/SKILL.md +0 -1
  163. package/skills/connecting-datacloud/SKILL.md +0 -1
  164. package/skills/creating-b2b-commerce-store/SKILL.md +0 -1
  165. package/skills/debugging-apex-logs/SKILL.md +0 -1
  166. package/skills/deploying-metadata/SKILL.md +0 -1
  167. package/skills/deploying-omnistudio-datapacks/SKILL.md +0 -1
  168. package/skills/developing-agentforce/SKILL.md +0 -1
  169. package/skills/fetching-salesforce-docs/SKILL.md +0 -1
  170. package/skills/generating-custom-lightning-type/SKILL.md +17 -39
  171. package/skills/generating-custom-lightning-type/assets/primitive-types-and-constraints.md +41 -0
  172. package/skills/generating-custom-lightning-type/references/widget-rendition.md +124 -0
  173. package/skills/generating-lwc-components/SKILL.md +0 -1
  174. package/skills/generating-mermaid-diagrams/SKILL.md +0 -1
  175. package/skills/generating-visual-diagrams/SKILL.md +0 -1
  176. package/skills/handling-sf-data/SKILL.md +0 -1
  177. package/skills/harmonizing-datacloud/SKILL.md +0 -1
  178. package/skills/integrating-b2b-commerce-open-code-components/SKILL.md +0 -1
  179. package/skills/investigating-agentforce-architecture/README.md +156 -0
  180. package/skills/investigating-agentforce-architecture/SKILL.md +230 -0
  181. package/skills/investigating-agentforce-architecture/assets/cli/describe_sobject.yaml +16 -0
  182. package/skills/investigating-agentforce-architecture/assets/cli/describe_tooling_sobject.yaml +17 -0
  183. package/skills/investigating-agentforce-architecture/assets/cli/list_metadata_genaiprompttemplate.yaml +17 -0
  184. package/skills/investigating-agentforce-architecture/assets/cli/org_display.yaml +15 -0
  185. package/skills/investigating-agentforce-architecture/assets/cli/retrieve_genai_plugin.yaml +18 -0
  186. package/skills/investigating-agentforce-architecture/assets/cli/show_access_token.yaml +27 -0
  187. package/skills/investigating-agentforce-architecture/assets/mermaid/action_tree.mmd +20 -0
  188. package/skills/investigating-agentforce-architecture/assets/mermaid/data_flow.mmd +19 -0
  189. package/skills/investigating-agentforce-architecture/assets/mermaid/dependency_graph.mmd +19 -0
  190. package/skills/investigating-agentforce-architecture/assets/mermaid/invocation_sequence.mmd +20 -0
  191. package/skills/investigating-agentforce-architecture/assets/mermaid/planner_state.mmd +18 -0
  192. package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_ids.soql +3 -0
  193. package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_names.soql +3 -0
  194. package/skills/investigating-agentforce-architecture/assets/soql/bot_definition_details.soql +3 -0
  195. package/skills/investigating-agentforce-architecture/assets/soql/bot_version_lookup.soql +4 -0
  196. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_by_ids.soql +3 -0
  197. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_ids_by_names.soql +3 -0
  198. package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_view_by_durable_ids.soql +4 -0
  199. package/skills/investigating-agentforce-architecture/assets/soql/flow_metadata_by_id.soql +3 -0
  200. package/skills/investigating-agentforce-architecture/assets/soql/functions_by_plugins.soql +5 -0
  201. package/skills/investigating-agentforce-architecture/assets/soql/planner_attrs_by_parent_ids.soql +3 -0
  202. package/skills/investigating-agentforce-architecture/assets/soql/planner_bundle_functions.soql +3 -0
  203. package/skills/investigating-agentforce-architecture/assets/soql/planner_definition_by_agent_chain.soql +3 -0
  204. package/skills/investigating-agentforce-architecture/assets/soql/plugin_functions_by_plugin_ids.soql +3 -0
  205. package/skills/investigating-agentforce-architecture/assets/soql/plugin_instructions_by_plugin_ids.soql +3 -0
  206. package/skills/investigating-agentforce-architecture/assets/soql/plugins_by_planner.soql +4 -0
  207. package/skills/investigating-agentforce-architecture/references/architecture_sections.md +243 -0
  208. package/skills/investigating-agentforce-architecture/references/contract.json +244 -0
  209. package/skills/investigating-agentforce-architecture/references/soql_fields.md +512 -0
  210. package/skills/investigating-agentforce-architecture/scripts/_shared/__init__.py +1 -0
  211. package/skills/investigating-agentforce-architecture/scripts/_shared/fs_guard.py +329 -0
  212. package/skills/investigating-agentforce-architecture/scripts/_shared/paths.py +110 -0
  213. package/skills/investigating-agentforce-architecture/scripts/_shared/runtime.py +59 -0
  214. package/skills/investigating-agentforce-architecture/scripts/_shared/sql.py +10 -0
  215. package/skills/investigating-agentforce-architecture/scripts/cache_check.py +234 -0
  216. package/skills/investigating-agentforce-architecture/scripts/config.py +131 -0
  217. package/skills/investigating-agentforce-architecture/scripts/fetch_soql.py +689 -0
  218. package/skills/investigating-agentforce-architecture/scripts/finalize.py +295 -0
  219. package/skills/investigating-agentforce-architecture/scripts/main.py +2835 -0
  220. package/skills/investigating-agentforce-architecture/scripts/metadata_listing.py +265 -0
  221. package/skills/investigating-agentforce-architecture/scripts/parallel_retrieve.py +69 -0
  222. package/skills/investigating-agentforce-architecture/scripts/parse_bundle.py +215 -0
  223. package/skills/investigating-agentforce-architecture/scripts/parse_wave.py +845 -0
  224. package/skills/investigating-agentforce-architecture/scripts/probe_channels.py +302 -0
  225. package/skills/investigating-agentforce-architecture/scripts/render_architecture.py +1043 -0
  226. package/skills/investigating-agentforce-architecture/scripts/resolve_bot.py +255 -0
  227. package/skills/investigating-agentforce-architecture/scripts/resolve_invocation_target.py +130 -0
  228. package/skills/investigating-agentforce-architecture/scripts/rest_client.py +763 -0
  229. package/skills/investigating-agentforce-architecture/scripts/retrieve_planner.py +13 -0
  230. package/skills/investigating-agentforce-architecture/scripts/sf_cli.py +242 -0
  231. package/skills/investigating-agentforce-architecture/scripts/soql_loader.py +253 -0
  232. package/skills/investigating-agentforce-architecture/scripts/summarize_tree.py +143 -0
  233. package/skills/investigating-agentforce-architecture/scripts/tests/__init__.py +0 -0
  234. package/skills/investigating-agentforce-architecture/scripts/tests/_bootstrap.py +23 -0
  235. package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/__init__.py +0 -0
  236. package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/genai_payloads.py +400 -0
  237. package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check.py +307 -0
  238. package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check_main.py +283 -0
  239. package/skills/investigating-agentforce-architecture/scripts/tests/test_config.py +115 -0
  240. package/skills/investigating-agentforce-architecture/scripts/tests/test_end_to_end_fixture.py +651 -0
  241. package/skills/investigating-agentforce-architecture/scripts/tests/test_finalize.py +278 -0
  242. package/skills/investigating-agentforce-architecture/scripts/tests/test_flow_children_inflation.py +582 -0
  243. package/skills/investigating-agentforce-architecture/scripts/tests/test_fs_guard.py +113 -0
  244. package/skills/investigating-agentforce-architecture/scripts/tests/test_iterative_wave_b.py +478 -0
  245. package/skills/investigating-agentforce-architecture/scripts/tests/test_main_pipeline.py +3359 -0
  246. package/skills/investigating-agentforce-architecture/scripts/tests/test_parallel_retrieve.py +131 -0
  247. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_bundle.py +400 -0
  248. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave.py +644 -0
  249. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_classifiers.py +224 -0
  250. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_helpers.py +380 -0
  251. package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_main.py +397 -0
  252. package/skills/investigating-agentforce-architecture/scripts/tests/test_per_branch_visited.py +244 -0
  253. package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_channels.py +359 -0
  254. package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_cli_recipes.py +185 -0
  255. package/skills/investigating-agentforce-architecture/scripts/tests/test_render_architecture.py +810 -0
  256. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_bot.py +203 -0
  257. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_creds.py +157 -0
  258. package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_invocation_target.py +145 -0
  259. package/skills/investigating-agentforce-architecture/scripts/tests/test_rest_client.py +1253 -0
  260. package/skills/investigating-agentforce-architecture/scripts/tests/test_runtime_override.py +100 -0
  261. package/skills/investigating-agentforce-architecture/scripts/tests/test_sf_cli.py +261 -0
  262. package/skills/investigating-agentforce-architecture/scripts/tests/test_signature_stamping.py +466 -0
  263. package/skills/investigating-agentforce-architecture/scripts/tests/test_soql_loader.py +501 -0
  264. package/skills/investigating-agentforce-architecture/scripts/tests/test_summarize_tree.py +241 -0
  265. package/skills/investigating-agentforce-architecture/scripts/tests/test_write_emit_ctx.py +480 -0
  266. package/skills/investigating-agentforce-architecture/tools/emit_env.py +157 -0
  267. package/skills/investigating-agentforce-architecture/tools/emit_result.py +262 -0
  268. package/skills/investigating-agentforce-architecture/tools/sanitize.py +33 -0
  269. package/skills/investigating-agentforce-architecture/tools/write_emit_ctx.py +332 -0
  270. package/skills/investigating-agentforce-d360/README.md +123 -0
  271. package/skills/investigating-agentforce-d360/SKILL.md +163 -0
  272. package/skills/investigating-agentforce-d360/assets/dc/app_generation.sql +51 -0
  273. package/skills/investigating-agentforce-d360/assets/dc/content_category.sql +44 -0
  274. package/skills/investigating-agentforce-d360/assets/dc/content_quality.sql +41 -0
  275. package/skills/investigating-agentforce-d360/assets/dc/discover_sessions.sql +36 -0
  276. package/skills/investigating-agentforce-d360/assets/dc/feedback.sql +47 -0
  277. package/skills/investigating-agentforce-d360/assets/dc/feedback_details.sql +38 -0
  278. package/skills/investigating-agentforce-d360/assets/dc/gateway_records.sql +45 -0
  279. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_llm.sql +50 -0
  280. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_metadata.sql +44 -0
  281. package/skills/investigating-agentforce-d360/assets/dc/gateway_request_tags.sql +42 -0
  282. package/skills/investigating-agentforce-d360/assets/dc/gateway_requests.sql +89 -0
  283. package/skills/investigating-agentforce-d360/assets/dc/gateway_responses.sql +43 -0
  284. package/skills/investigating-agentforce-d360/assets/dc/generations.sql +52 -0
  285. package/skills/investigating-agentforce-d360/assets/dc/interactions.sql +53 -0
  286. package/skills/investigating-agentforce-d360/assets/dc/messages.sql +53 -0
  287. package/skills/investigating-agentforce-d360/assets/dc/messaging_session.sql +37 -0
  288. package/skills/investigating-agentforce-d360/assets/dc/moment_interactions.sql +34 -0
  289. package/skills/investigating-agentforce-d360/assets/dc/moments.sql +39 -0
  290. package/skills/investigating-agentforce-d360/assets/dc/participants.sql +48 -0
  291. package/skills/investigating-agentforce-d360/assets/dc/sessions.sql +78 -0
  292. package/skills/investigating-agentforce-d360/assets/dc/steps.sql +64 -0
  293. package/skills/investigating-agentforce-d360/assets/dc/tag_associations.sql +46 -0
  294. package/skills/investigating-agentforce-d360/assets/dc/tag_definition_associations.sql +37 -0
  295. package/skills/investigating-agentforce-d360/assets/dc/tag_definitions.sql +50 -0
  296. package/skills/investigating-agentforce-d360/assets/dc/tags.sql +37 -0
  297. package/skills/investigating-agentforce-d360/assets/dc/telemetry_spans.sql +55 -0
  298. package/skills/investigating-agentforce-d360/references/artifacts.md +50 -0
  299. package/skills/investigating-agentforce-d360/references/dc_dmo_fields.md +823 -0
  300. package/skills/investigating-agentforce-d360/references/dc_pipeline_contract.md +608 -0
  301. package/skills/investigating-agentforce-d360/scripts/_shared/__init__.py +2 -0
  302. package/skills/investigating-agentforce-d360/scripts/_shared/cli_override.py +98 -0
  303. package/skills/investigating-agentforce-d360/scripts/_shared/fs_guard.py +334 -0
  304. package/skills/investigating-agentforce-d360/scripts/_shared/paths.py +155 -0
  305. package/skills/investigating-agentforce-d360/scripts/_shared/runtime.py +59 -0
  306. package/skills/investigating-agentforce-d360/scripts/_shared/sql.py +14 -0
  307. package/skills/investigating-agentforce-d360/scripts/assemble_dc.py +1624 -0
  308. package/skills/investigating-agentforce-d360/scripts/config.py +45 -0
  309. package/skills/investigating-agentforce-d360/scripts/dc.py +188 -0
  310. package/skills/investigating-agentforce-d360/scripts/discover_sessions.py +556 -0
  311. package/skills/investigating-agentforce-d360/scripts/fetch_dc.py +1045 -0
  312. package/skills/investigating-agentforce-d360/scripts/render_dc.py +1750 -0
  313. package/skills/investigating-agentforce-d360/scripts/resolve_session.py +264 -0
  314. package/skills/investigating-agentforce-d360/scripts/storage.py +92 -0
  315. package/skills/investigating-agentforce-d360/scripts/tests/__init__.py +0 -0
  316. package/skills/investigating-agentforce-d360/scripts/tests/_bootstrap.py +15 -0
  317. package/skills/investigating-agentforce-d360/scripts/tests/fixtures/__init__.py +0 -0
  318. package/skills/investigating-agentforce-d360/scripts/tests/fixtures/synthetic_session.py +424 -0
  319. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_bootstrap_and_mode.py +115 -0
  320. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct.py +220 -0
  321. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct_integration.py +158 -0
  322. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_helpers.py +287 -0
  323. package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_integration.py +247 -0
  324. package/skills/investigating-agentforce-d360/scripts/tests/test_dc_and_resolve_session.py +433 -0
  325. package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions.py +458 -0
  326. package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions_grep_ci.py +193 -0
  327. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_helpers.py +266 -0
  328. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_identity.py +528 -0
  329. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_main.py +251 -0
  330. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall.py +229 -0
  331. package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall_full.py +283 -0
  332. package/skills/investigating-agentforce-d360/scripts/tests/test_identity_coherence.py +327 -0
  333. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_branches.py +256 -0
  334. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_gateway_direct.py +130 -0
  335. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_helpers.py +291 -0
  336. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_integration.py +220 -0
  337. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_planner_llm_calls.py +284 -0
  338. package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_show_prompts_gating.py +215 -0
  339. package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_from_disk.py +100 -0
  340. package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_session_main.py +149 -0
  341. package/skills/investigating-agentforce-d360/scripts/tests/test_runtime_override.py +104 -0
  342. package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape.py +95 -0
  343. package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape_dropped_by_stdm.py +85 -0
  344. package/skills/managing-managed-event-subscription/SKILL.md +152 -0
  345. package/skills/managing-managed-event-subscription/assets/managed-event-subscription-template.xml +20 -0
  346. package/skills/managing-managed-event-subscription/references/delete-guide.md +57 -0
  347. package/skills/managing-managed-event-subscription/references/topic-name-formats.md +26 -0
  348. package/skills/managing-managed-event-subscription/references/update-constraints.md +30 -0
  349. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +0 -1
  350. package/skills/observing-agentforce/SKILL.md +0 -1
  351. package/skills/orchestrating-datacloud/SKILL.md +0 -1
  352. package/skills/preparing-datacloud/SKILL.md +0 -1
  353. package/skills/querying-soql/SKILL.md +0 -1
  354. package/skills/retrieving-datacloud/SKILL.md +0 -1
  355. package/skills/running-apex-tests/SKILL.md +0 -1
  356. package/skills/running-code-analyzer/SKILL.md +0 -1
  357. package/skills/segmenting-datacloud/SKILL.md +0 -1
  358. package/skills/testing-agentforce/SKILL.md +0 -1
  359. package/skills/uplifting-components-to-slds2/SKILL.md +3 -2
  360. package/skills/uplifting-components-to-slds2/references/color-hooks-decision-guide.md +30 -9
  361. package/skills/uplifting-components-to-slds2/references/examples.md +24 -6
  362. package/skills/validating-slds/SKILL.md +262 -0
  363. package/skills/validating-slds/references/quality-checks.md +308 -0
  364. package/skills/validating-slds/references/report-format.md +302 -0
  365. package/skills/validating-slds/scripts/analyze-quality.cjs +521 -0
@@ -0,0 +1,161 @@
1
+ name: "Docked Form Footer"
2
+
3
+ description: "A fixed footer component that docks to the bottom of the viewport, typically containing form action buttons like Save and Cancel. It remains visible as the user scrolls through long forms."
4
+
5
+ category: "Layout"
6
+
7
+ slds_classes:
8
+ root: "slds-docked-form-footer"
9
+ elements: []
10
+ modifiers: []
11
+ states: []
12
+
13
+ variants:
14
+ - name: "Base"
15
+ description: "Standard docked footer with centered content"
16
+ classes: ["slds-docked-form-footer"]
17
+ usage_context: "Default footer for long forms that need persistent action buttons"
18
+ differences: "Fixed to bottom of viewport with shadow elevation"
19
+
20
+ lightning_component:
21
+ name: ""
22
+ url: "https://developer.salesforce.com/docs/component-library/overview/components"
23
+ mapping_notes: "No direct Lightning Base Component - implement with custom footer and CSS positioning"
24
+
25
+ accessibility:
26
+ keyboard_support:
27
+ - "Tab to navigate to footer buttons"
28
+ - "Enter or Space to activate buttons"
29
+ screen_reader:
30
+ - "Footer landmark announced if using footer element"
31
+ - "Button labels announced clearly"
32
+ - "Action sequence communicated"
33
+ aria_attributes:
34
+ - "role='contentinfo' if using div instead of footer"
35
+ - "Buttons should have clear aria-label if needed"
36
+
37
+ usage_guidelines:
38
+ when_to_use:
39
+ - "For long forms that extend beyond viewport height"
40
+ - "When form actions need to remain always visible"
41
+ - "For edit or create flows with Save/Cancel actions"
42
+ - "In modal or page contexts with critical actions"
43
+ when_not_to_use:
44
+ - "For short forms that fit in viewport"
45
+ - "When inline form actions are sufficient"
46
+ - "In contexts where fixed positioning causes issues"
47
+ - "On small screens where footer takes too much space"
48
+ best_practices:
49
+ - "Keep action buttons clearly labeled and visible"
50
+ - "Place primary action on the right (e.g., Save)"
51
+ - "Include Cancel or secondary action on the left"
52
+ - "Ensure footer doesn't obscure important content"
53
+ - "Consider mobile viewport height limitations"
54
+ - "Provide adequate padding around buttons"
55
+ common_mistakes:
56
+ - "Overcrowding footer with too many actions"
57
+ - "Poor color contrast on footer background"
58
+ - "Forgetting to account for footer height in page layout"
59
+ - "Not handling mobile viewport properly"
60
+ - "Missing keyboard navigation support"
61
+
62
+ code_examples:
63
+ - title: "Basic Docked Form Footer"
64
+ code: |
65
+ <div class="slds-docked-form-footer">
66
+ <button class="slds-button slds-button_neutral">Cancel</button>
67
+ <button class="slds-button slds-button_brand">Save</button>
68
+ </div>
69
+ description: "Simple docked footer with Save and Cancel buttons"
70
+ - title: "Docked Footer with Multiple Actions"
71
+ code: |
72
+ <div class="slds-docked-form-footer">
73
+ <div class="slds-grid slds-grid_align-spread slds-wrap">
74
+ <div class="slds-col slds-no-flex">
75
+ <button class="slds-button slds-button_neutral">Cancel</button>
76
+ </div>
77
+ <div class="slds-col slds-no-flex">
78
+ <div class="slds-button-group" role="group">
79
+ <button class="slds-button slds-button_neutral">Save Draft</button>
80
+ <button class="slds-button slds-button_brand">Save &amp; Submit</button>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ description: "Docked footer with multiple action options"
86
+ - title: "Docked Footer in Form Context"
87
+ code: |
88
+ <div class="slds-card">
89
+ <div class="slds-card__header slds-grid">
90
+ <header class="slds-media slds-media_center slds-has-flexi-truncate">
91
+ <div class="slds-media__body">
92
+ <h2 class="slds-card__header-title">
93
+ <span>Edit Contact</span>
94
+ </h2>
95
+ </div>
96
+ </header>
97
+ </div>
98
+ <div class="slds-card__body slds-card__body_inner" style="padding-bottom: 5rem;">
99
+ <form>
100
+ <div class="slds-form-element">
101
+ <label class="slds-form-element__label" for="input-01">
102
+ <abbr class="slds-required" title="required">* </abbr>First Name
103
+ </label>
104
+ <div class="slds-form-element__control">
105
+ <input type="text" id="input-01" class="slds-input" required />
106
+ </div>
107
+ </div>
108
+ <div class="slds-form-element">
109
+ <label class="slds-form-element__label" for="input-02">
110
+ <abbr class="slds-required" title="required">* </abbr>Last Name
111
+ </label>
112
+ <div class="slds-form-element__control">
113
+ <input type="text" id="input-02" class="slds-input" required />
114
+ </div>
115
+ </div>
116
+ <!-- More form fields... -->
117
+ </form>
118
+ </div>
119
+ </div>
120
+ <div class="slds-docked-form-footer">
121
+ <button class="slds-button slds-button_neutral" type="button">Cancel</button>
122
+ <button class="slds-button slds-button_brand" type="submit">Save</button>
123
+ </div>
124
+ description: "Docked footer used with a form in a card, note padding-bottom on card body to prevent content overlap"
125
+
126
+ styling_hooks:
127
+ - name: "--slds-g-color-neutral-base-95"
128
+ description: "Background color of the docked footer"
129
+ css_property: "background"
130
+
131
+ dependencies:
132
+ css_files: ["docked-form-footer.css", "button.css"]
133
+ javascript:
134
+ - "Form submission handling"
135
+ - "Scroll position management"
136
+ icons: []
137
+ other_components: ["button", "button-group"]
138
+
139
+ related_components:
140
+ - name: "Modal"
141
+ relationship: "alternative"
142
+ description: "Alternative pattern for forms in overlay context"
143
+ - name: "Page Header"
144
+ relationship: "complementary"
145
+ description: "Header component that pairs with form content"
146
+ - name: "Button"
147
+ relationship: "contains"
148
+ description: "Action buttons within the footer"
149
+
150
+ references:
151
+ official_docs: "https://v1.lightningdesignsystem.com/components/docked-form-footer/"
152
+
153
+ metadata:
154
+ version: "1.0.0"
155
+ last_updated: "2025-11-11"
156
+ author: "SLDS Documentation Team"
157
+ slds_version: "2.27.2"
158
+ review_status: "complete"
159
+ source: "official-slds"
160
+ notes: "Created from official SLDS documentation and design-system-internal source code"
161
+
@@ -0,0 +1,175 @@
1
+ name: Docked Utility Bar
2
+ description: A persistent utility panel that remains docked at the bottom or side of the screen, providing quick access to
3
+ frequently used tools, actions, and information without interrupting the primary workflow.
4
+ category: Actions
5
+ slds_classes:
6
+ root: slds-utility-bar_container
7
+ elements:
8
+ - class: slds-utility-bar
9
+ description: Fixed bar at the bottom of viewport that contains items
10
+ purpose: Main utility bar element with fixed positioning and background
11
+ - class: slds-utility-bar__item
12
+ description: Individual utility item that invokes specific utility bar panel
13
+ purpose: Represents a single utility tool or action
14
+ - class: slds-utility-bar__action
15
+ description: Action button within utility bar
16
+ purpose: Interactive element for utility functions
17
+ - class: slds-utility-bar__text
18
+ description: Text content within utility bar actions
19
+ purpose: Contains label text for utility actions
20
+ modifiers:
21
+ - class: slds-utility-bar__item_pop-out
22
+ description: Modifier for utility item with panel popped out in new window
23
+ usage: When utility panel is opened in a separate window
24
+ states:
25
+ - class: slds-is-active
26
+ description: Active utility action state
27
+ trigger: Applied to currently active utility action
28
+ - class: slds-indicator_unread
29
+ description: Unread notification indicator
30
+ trigger: Applied when utility has unread notifications
31
+ variants:
32
+ - name: Base
33
+ description: Standard docked utility bar fixed at bottom of viewport
34
+ classes:
35
+ - slds-utility-bar_container
36
+ - slds-utility-bar
37
+ usage_context: Default implementation for utility access
38
+ differences: Fixed horizontal utility bar at bottom of screen
39
+ - name: With Pop-out
40
+ description: Utility bar item with panel popped out in new window
41
+ classes:
42
+ - slds-utility-bar__item
43
+ - slds-utility-bar__item_pop-out
44
+ usage_context: When utility panel is opened in a separate window
45
+ differences: Visual indicator showing panel is popped out
46
+ lightning_component:
47
+ name: No direct component
48
+ url: https://developer.salesforce.com/docs/component-library/overview/components
49
+ mapping_notes: No direct Lightning Base Component equivalent - typically implemented using custom components with lightning-button-group
50
+ patterns
51
+ accessibility:
52
+ keyboard_support:
53
+ - Tab navigation through utility items
54
+ - Enter/Space to activate utility actions
55
+ - Arrow keys for utility bar navigation
56
+ - Escape to close expanded panels
57
+ screen_reader:
58
+ - Utility bar purpose and items announced
59
+ - Panel expansion state communicated
60
+ - Utility actions clearly described
61
+ aria_attributes:
62
+ - role='toolbar' for utility bar container
63
+ - role='button' for utility actions
64
+ - aria-expanded for expandable utilities
65
+ - aria-label for utility descriptions
66
+ - aria-controls for panel relationships
67
+ usage_guidelines:
68
+ when_to_use:
69
+ - For frequently accessed tools and utilities
70
+ - When users need persistent access to functions
71
+ - For secondary tools that support primary workflows
72
+ - To provide quick actions without navigation
73
+ when_not_to_use:
74
+ - For primary navigation (use main navigation)
75
+ - For infrequently used features
76
+ - When screen space is severely limited
77
+ best_practices:
78
+ - Include only essential utilities
79
+ - Provide clear icons and labels
80
+ - Allow customization of utility order
81
+ - Handle responsive behavior gracefully
82
+ - Maintain consistent interaction patterns
83
+ common_mistakes:
84
+ - Overcrowding with too many utilities
85
+ - Unclear or ambiguous utility icons
86
+ - Poor responsive behavior on small screens
87
+ - Inconsistent interaction patterns
88
+ code_examples:
89
+ - title: Basic Docked Utility Bar
90
+ description: Standard utility bar with common tools and actions
91
+ code: "<div class=\"\" role=\"toolbar\" aria-label=\"Utility tools\">\n <div class=\"\">\n <div class=\"\">\n\
92
+ \ <button class=\"slds-button slds-button_icon\" aria-expanded=\"false\" aria-controls=\"utility-panel-1\" title=\"\
93
+ Notes\">\n <svg class=\"slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#note\"\
94
+ ></use>\n </svg>\n <span class=\"slds-assistive-text\">Open notes utility</span>\n </button>\n\
95
+ \ </div>\n <div class=\"\">\n <button class=\"slds-button slds-button_icon slds-is-active\" aria-expanded=\"\
96
+ true\" aria-controls=\"utility-panel-2\" title=\"Calculator\">\n <svg class=\"slds-button__icon\" aria-hidden=\"\
97
+ true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#calculator\"></use>\n \
98
+ \ </svg>\n <span class=\"slds-assistive-text\">Open calculator utility</span>\n </button>\n \
99
+ \ </div>\n <div class=\"\">\n <button class=\"slds-button slds-button_icon\" aria-expanded=\"false\"\
100
+ \ aria-controls=\"utility-panel-3\" title=\"Timer\">\n <svg class=\"slds-button__icon\" aria-hidden=\"true\"\
101
+ >\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#clock\"></use>\n </svg>\n \
102
+ \ <span class=\"slds-assistive-text\">Open timer utility</span>\n </button>\n </div>\n \
103
+ \ <div class=\"\">\n <button class=\"slds-button slds-button_icon\" title=\"Help\">\n <svg class=\"\
104
+ slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#help\"\
105
+ ></use>\n </svg>\n <span class=\"slds-assistive-text\">Open help</span>\n </button>\n \
106
+ \ </div>\n </div>\n </div>\n"
107
+ - title: Utility Bar with Expanded Panel
108
+ description: Utility bar with an expanded utility panel showing detailed content
109
+ code: "<div class=\"slds-is-open\" role=\"toolbar\" aria-label=\"Utility tools\">\n <div class=\"\" id=\"utility-panel-calculator\"\
110
+ \ role=\"dialog\" aria-labelledby=\"panel-title\">\n <header class=\"\">\n <h2 id=\"panel-title\" class=\"\
111
+ slds-text-heading_small\">Calculator</h2>\n <button class=\"slds-button slds-button_icon slds-button_icon-border\"\
112
+ \ title=\"Close\">\n <svg class=\"slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"\
113
+ /assets/icons/utility-sprite/svg/symbols.svg#close\"></use>\n </svg>\n <span class=\"slds-assistive-text\"\
114
+ >Close calculator</span>\n </button>\n </header>\n <div class=\"\">\n <div class=\"slds-grid\
115
+ \ slds-grid_vertical\">\n <div class=\"slds-col\">\n <input type=\"text\" class=\"slds-input slds-text-align_right\"\
116
+ \ value=\"0\" readonly aria-label=\"Calculator display\">\n </div>\n <div class=\"slds-col slds-m-top_small\"\
117
+ >\n <div class=\"slds-grid slds-wrap\">\n <div class=\"slds-col slds-size_1-of-4 slds-p-around_xx-small\"\
118
+ >\n <button class=\"slds-button slds-button_neutral slds-size_1-of-1\">7</button>\n </div>\n\
119
+ \ <div class=\"slds-col slds-size_1-of-4 slds-p-around_xx-small\">\n <button class=\"\
120
+ slds-button slds-button_neutral slds-size_1-of-1\">8</button>\n </div>\n <div class=\"slds-col\
121
+ \ slds-size_1-of-4 slds-p-around_xx-small\">\n <button class=\"slds-button slds-button_neutral slds-size_1-of-1\"\
122
+ >9</button>\n </div>\n <div class=\"slds-col slds-size_1-of-4 slds-p-around_xx-small\">\n\
123
+ \ <button class=\"slds-button slds-button_brand slds-size_1-of-1\">÷</button>\n </div>\n\
124
+ \ </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"\">\n \
125
+ \ <div class=\"\">\n <button class=\"slds-button slds-button_icon\" title=\"Notes\">\n <svg class=\"\
126
+ slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#note\"\
127
+ ></use>\n </svg>\n <span class=\"slds-assistive-text\">Notes</span>\n </button>\n \
128
+ \ </div>\n <div class=\"\">\n <button class=\"slds-button slds-button_icon slds-is-active\" aria-expanded=\"\
129
+ true\" title=\"Calculator\">\n <svg class=\"slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"\
130
+ /assets/icons/utility-sprite/svg/symbols.svg#calculator\"></use>\n </svg>\n <span class=\"slds-assistive-text\"\
131
+ >Calculator (Active)</span>\n </button>\n </div>\n </div>\n </div>\n"
132
+ - title: Vertical Utility Bar
133
+ description: Vertically oriented utility bar for side placement
134
+ code: "<div class=\"\" role=\"toolbar\" aria-label=\"Utility tools\">\n <div class=\"\">\n <div class=\"\">\n\
135
+ \ <button class=\"slds-button slds-button_icon\" title=\"Bookmarks\">\n <svg class=\"slds-button__icon\"\
136
+ \ aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#bookmark\"></use>\n\
137
+ \ </svg>\n <span class=\"slds-assistive-text\">Bookmarks</span>\n </button>\n </div>\n\
138
+ \ <div class=\"\">\n <button class=\"slds-button slds-button_icon\" title=\"Recent Items\">\n \
139
+ \ <svg class=\"slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#recent\"\
140
+ ></use>\n </svg>\n <span class=\"slds-assistive-text\">Recent Items</span>\n </button>\n\
141
+ \ </div>\n <div class=\"\">\n <button class=\"slds-button slds-button_icon\" title=\"Search\">\n\
142
+ \ <svg class=\"slds-button__icon\" aria-hidden=\"true\">\n <use xlink:href=\"/assets/icons/utility-sprite/svg/symbols.svg#search\"\
143
+ ></use>\n </svg>\n <span class=\"slds-assistive-text\">Search</span>\n </button>\n \
144
+ \ </div>\n </div>\n </div>\n"
145
+ dependencies:
146
+ css_files:
147
+ - docked-utility-bar.css
148
+ - button.css
149
+ - grid.css
150
+ - panel.css
151
+ javascript:
152
+ - docked-utility-bar.js
153
+ icons:
154
+ - utility-sprite.svg
155
+ other_components:
156
+ - button
157
+ - grid
158
+ - panel
159
+ related_components:
160
+ - name: Docked Composer
161
+ relationship: similar
162
+ description: Similar docked interface concept
163
+ - name: Global Header
164
+ relationship: alternative
165
+ description: Alternative location for utility access
166
+ - name: Button Group
167
+ relationship: depends-on
168
+ description: Uses button group patterns for utility items
169
+ references:
170
+ official_docs: https://v1.lightningdesignsystem.com/components/docked-utility-bar/
171
+ metadata:
172
+ version: 1.0.0
173
+ last_updated: '2025-11-12'
174
+ review_status: complete
175
+ notes: ' Cleaned invalid classes and CSS variables on 2025-11-12 using slds-plus.css as source of truth.'
@@ -0,0 +1,115 @@
1
+ name: Drop Zone
2
+ description: A component for screen building that provides a draggable drop target area where users can drop components or
3
+ elements. Indicates drop availability and provides visual feedback during drag operations.
4
+ category: Complex Components
5
+ slds_classes:
6
+ root: slds-drop-zone
7
+ elements:
8
+ - class: slds-drop-zone__label
9
+ description: Top label of the drop zone
10
+ purpose: Displays instructional text or title
11
+ - class: slds-drop-zone__label_container
12
+ description: Container for populated drop zone label
13
+ purpose: Wraps label content when zone contains items
14
+ - class: slds-drop-zone__label_button
15
+ description: Button within drop zone label
16
+ purpose: Interactive element in label area
17
+ - class: slds-drop-zone_drag__slot
18
+ description: Insertion point of drop zone
19
+ purpose: Target area where items are dropped
20
+ modifiers:
21
+ - class: slds-drop-zone_drag
22
+ description: Modifier indicating drop availability
23
+ purpose: Applied when component may be dropped in container
24
+ states: []
25
+ variants:
26
+ - name: Base
27
+ description: Standard drop zone for component placement
28
+ classes:
29
+ - slds-drop-zone
30
+ usage_context: Default drop zone for drag-and-drop interfaces
31
+ differences: Empty drop target ready to receive dragged items
32
+ lightning_component:
33
+ name: ''
34
+ url: https://developer.salesforce.com/docs/component-library/overview/components
35
+ mapping_notes: No direct Lightning Base Component - implement with custom drag-and-drop JavaScript
36
+ accessibility:
37
+ keyboard_support:
38
+ - Tab to focus on drop zone
39
+ - Enter or Space to activate alternative placement
40
+ - Arrow keys for keyboard-based positioning
41
+ screen_reader:
42
+ - Drop zone role and purpose announced
43
+ - Drag state changes announced
44
+ - Successful drop confirmed
45
+ aria_attributes:
46
+ - aria-label describing drop zone purpose
47
+ - aria-dropeffect indicating allowed operations
48
+ - aria-grabbed on draggable items
49
+ - role='region' or custom role for drop area
50
+ usage_guidelines:
51
+ when_to_use:
52
+ - For screen or page builders
53
+ - When users need to arrange components visually
54
+ - For customizable dashboards or layouts
55
+ - In drag-and-drop interfaces
56
+ when_not_to_use:
57
+ - For simple file uploads (use file selector)
58
+ - When drag-and-drop adds unnecessary complexity
59
+ - For mobile-only experiences (touch drag can be difficult)
60
+ - When list reordering is sufficient
61
+ best_practices:
62
+ - Provide clear visual feedback during drag
63
+ - Show valid drop targets clearly
64
+ - Indicate when zone is ready to receive drops
65
+ - Provide alternative non-drag methods
66
+ - Handle touch interactions for mobile
67
+ - Show drop zone boundaries clearly
68
+ common_mistakes:
69
+ - Unclear drop target boundaries
70
+ - No visual feedback during drag
71
+ - Missing keyboard alternatives
72
+ - Poor mobile/touch support
73
+ - Not indicating valid vs invalid drops
74
+ code_examples:
75
+ - title: Basic Drop Zone
76
+ code: "<div class=\"slds-drop-zone\">\n <span class=\"slds-drop-zone__label\">\n Drop components here\n </span>\n</div>\n"
77
+ description: Empty drop zone ready to receive components
78
+ - title: Drop Zone in Drag State
79
+ code: "<div class=\"slds-drop-zone slds-drop-zone_drag\">\n <span class=\"slds-drop-zone__label\">\n Release to place\
80
+ \ component\n </span>\n <div class=\"slds-drop-zone_drag__slot\"></div>\n</div>\n"
81
+ description: Drop zone during active drag operation
82
+ - title: Drop Zone with Content
83
+ code: "<div class=\"slds-drop-zone\">\n <div class=\"slds-drop-zone__label_container\">\n <button class=\"slds-button\
84
+ \ slds-drop-zone__label_button\">\n Add Component\n </button>\n </div>\n <div class=\"\">\n <!-- Placed components\
85
+ \ appear here -->\n </div>\n</div>\n"
86
+ description: Drop zone with placed content and add button
87
+ styling_hooks: []
88
+ dependencies:
89
+ css_files:
90
+ - drop-zone.css
91
+ javascript:
92
+ - Drag and drop event handlers
93
+ - Drop validation logic
94
+ - Visual feedback during drag
95
+ - Component placement logic
96
+ icons: []
97
+ other_components:
98
+ - button
99
+ related_components:
100
+ - name: File Selector
101
+ relationship: alternative
102
+ description: Alternative for file uploads
103
+ - name: Builder Header
104
+ relationship: complementary
105
+ description: Often used together in builder interfaces
106
+ references:
107
+ official_docs: https://v1.lightningdesignsystem.com/components/drop-zone/
108
+ metadata:
109
+ version: 1.0.0
110
+ last_updated: '2025-11-11'
111
+ author: SLDS Documentation Team
112
+ slds_version: 2.27.2
113
+ review_status: complete
114
+ source: official-slds
115
+ notes: Created from official SLDS documentation and design-system-internal source code
@@ -0,0 +1,196 @@
1
+ name: "Dueling Picklist"
2
+
3
+ description: "A dueling-picklist is used to move options between two lists and is often referred to as a multi-select. Sometimes, the list options can then be re-ordered, depending on the use case."
4
+
5
+ category: "Input"
6
+
7
+ slds_classes:
8
+ root: "slds-dueling-list"
9
+ elements:
10
+ - class: "slds-dueling-list__column"
11
+ description: "Column container for each list and button group"
12
+ purpose: "Organizes the two lists and control buttons in a flex layout"
13
+ - class: "slds-dueling-list__options"
14
+ description: "Bounding visual container for listbox of options"
15
+ purpose: "Contains the selectable options list with border and scrollable area"
16
+ modifiers:
17
+ - class: "slds-dueling-list__column_responsive"
18
+ description: "Responsive layout modifier for dueling picklist columns"
19
+ usage: "Applied to columns containing options to make them responsive and flexible"
20
+ states:
21
+ - class: "slds-is-selected"
22
+ description: "Selected state of a listbox option"
23
+ trigger: "When an option is selected (aria-selected='true')"
24
+ - class: "slds-is-grabbed"
25
+ description: "Grabbed state of a listbox option during drag"
26
+ trigger: "When an option is being dragged"
27
+ - class: "slds-is-disabled"
28
+ description: "Disabled state for the entire dueling picklist"
29
+ trigger: "When the component is not interactive"
30
+
31
+ variants:
32
+ - name: "Base"
33
+ description: "Standard dueling picklist with two lists and move buttons"
34
+ classes: ["slds-dueling-list"]
35
+ usage_context: "Default dueling picklist implementation"
36
+ differences: "Two side-by-side lists with buttons to move items between them"
37
+ - name: "Responsive"
38
+ description: "Responsive dueling picklist that adapts to available space"
39
+ classes: ["slds-dueling-list", "slds-dueling-list__column_responsive"]
40
+ usage_context: "Use in narrow regions or responsive layouts"
41
+ differences: "Columns flex to available space, items truncate with ellipsis"
42
+
43
+ lightning_component:
44
+ name: ""
45
+ url: "https://developer.salesforce.com/docs/component-library/overview/components"
46
+ mapping_notes: "No direct Lightning Base Component - use custom implementation with SLDS classes"
47
+
48
+ accessibility:
49
+ keyboard_support:
50
+ - "Tab to navigate between lists and buttons"
51
+ - "Up/Down arrows to move focus and selection within a list"
52
+ - "Shift + Up/Down to extend selection"
53
+ - "Ctrl + Up/Down to move focus without changing selection"
54
+ - "Ctrl + Space to toggle selection on focused option"
55
+ - "Ctrl + A to select all options in a list"
56
+ - "Cmd/Ctrl + Left/Right to move selected items between lists"
57
+ - "Space to toggle Drag and Drop mode"
58
+ - "In Drag mode: Up/Down arrows move selected items within current list"
59
+ screen_reader:
60
+ - "List labels announced via aria-labelledby"
61
+ - "Operation instructions announced via aria-describedby"
62
+ - "Selected state announced for each option"
63
+ - "Drag and drop mode announced"
64
+ aria_attributes:
65
+ - "role='listbox' on each options container"
66
+ - "aria-multiselectable='true' on each listbox"
67
+ - "aria-selected on each option (true/false)"
68
+ - "aria-labelledby pointing to list label"
69
+ - "aria-describedby for operation instructions"
70
+ - "tabindex='0' on selected items, '-1' on others"
71
+ - "role='group' on form-element wrapper"
72
+ - "aria-labelledby on group pointing to group label ID"
73
+
74
+ usage_guidelines:
75
+ when_to_use:
76
+ - "When users need to select multiple options from a large set"
77
+ - "For moving items between available and selected lists"
78
+ - "When reordering selected items is needed"
79
+ - "For complex multi-select scenarios"
80
+ when_not_to_use:
81
+ - "For single selection (use select or combobox)"
82
+ - "When only a few options exist (use checkboxes)"
83
+ - "In very constrained spaces"
84
+ - "When drag and drop is not supported"
85
+ best_practices:
86
+ - "Use group labels (fieldset/legend pattern) for accessibility"
87
+ - "Provide clear operation instructions"
88
+ - "Support both button and keyboard interactions"
89
+ - "Implement proper focus management"
90
+ - "Handle drag and drop gracefully with fallbacks"
91
+ - "Use responsive variant for narrow layouts"
92
+ - "Provide visual feedback for all interactions"
93
+ common_mistakes:
94
+ - "Not implementing proper ARIA listbox patterns"
95
+ - "Missing keyboard navigation support"
96
+ - "Inadequate focus management"
97
+ - "Not providing operation instructions"
98
+ - "Missing group labels for accessibility"
99
+
100
+ code_examples:
101
+ - title: "Basic Dueling Picklist"
102
+ code: |
103
+ <div class="slds-form-element" role="group" aria-labelledby="dueling-picklist-label">
104
+ <div class="slds-form-element__label slds-form-element__legend" id="dueling-picklist-label">
105
+ Select Options
106
+ </div>
107
+ <div class="slds-form-element__control">
108
+ <div class="slds-dueling-list">
109
+ <div class="slds-dueling-list__column">
110
+ <span class="slds-form-element__label">Available</span>
111
+ <div class="slds-dueling-list__options" role="listbox" aria-multiselectable="true" aria-labelledby="available-label">
112
+ <div role="option" aria-selected="false" tabindex="0">Option 1</div>
113
+ <div role="option" aria-selected="false" tabindex="-1">Option 2</div>
114
+ <div role="option" aria-selected="false" tabindex="-1">Option 3</div>
115
+ </div>
116
+ </div>
117
+ <div class="slds-dueling-list__column">
118
+ <button class="slds-button slds-button_neutral">Move Right</button>
119
+ <button class="slds-button slds-button_neutral">Move Left</button>
120
+ </div>
121
+ <div class="slds-dueling-list__column">
122
+ <span class="slds-form-element__label">Selected</span>
123
+ <div class="slds-dueling-list__options" role="listbox" aria-multiselectable="true" aria-labelledby="selected-label">
124
+ <div role="option" aria-selected="false" tabindex="0">Option 4</div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ description: "Basic dueling picklist with two lists and move buttons"
131
+ - title: "Responsive Dueling Picklist"
132
+ code: |
133
+ <div class="slds-form-element" role="group" aria-labelledby="responsive-picklist-label">
134
+ <div class="slds-form-element__label slds-form-element__legend" id="responsive-picklist-label">
135
+ Select Options
136
+ </div>
137
+ <div class="slds-form-element__control">
138
+ <div class="slds-dueling-list">
139
+ <div class="slds-dueling-list__column slds-dueling-list__column_responsive">
140
+ <span class="slds-form-element__label">Available</span>
141
+ <div class="slds-dueling-list__options" role="listbox" aria-multiselectable="true">
142
+ <div role="option" aria-selected="false" tabindex="0">Option 1</div>
143
+ <div role="option" aria-selected="false" tabindex="-1">Option 2</div>
144
+ </div>
145
+ </div>
146
+ <div class="slds-dueling-list__column">
147
+ <button class="slds-button slds-button_neutral">Move Right</button>
148
+ <button class="slds-button slds-button_neutral">Move Left</button>
149
+ </div>
150
+ <div class="slds-dueling-list__column slds-dueling-list__column_responsive">
151
+ <span class="slds-form-element__label">Selected</span>
152
+ <div class="slds-dueling-list__options" role="listbox" aria-multiselectable="true">
153
+ <div role="option" aria-selected="false" tabindex="0">Option 3</div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ description: "Responsive dueling picklist that adapts to available space"
160
+
161
+ styling_hooks: []
162
+
163
+ dependencies:
164
+ css_files: ["dueling-picklist.css", "form-element.css", "listbox.css", "button.css"]
165
+ javascript:
166
+ - "Listbox selection management"
167
+ - "Item movement between lists"
168
+ - "Drag and drop functionality (optional)"
169
+ - "Keyboard navigation"
170
+ - "Focus management"
171
+ icons: []
172
+ other_components: ["form-element", "listbox", "button"]
173
+
174
+ related_components:
175
+ - name: "Listbox"
176
+ relationship: "depends-on"
177
+ description: "ARIA listbox component used for each list"
178
+ - name: "Select"
179
+ relationship: "alternative"
180
+ description: "For single selection scenarios"
181
+ - name: "Multi-Select"
182
+ relationship: "similar"
183
+ description: "Alternative multi-select component"
184
+
185
+ references:
186
+ official_docs: "https://v1.lightningdesignsystem.com/components/dueling-picklist/"
187
+ design_guidelines: "https://v1.lightningdesignsystem.com/components/dueling-picklist/"
188
+ metadata:
189
+ version: "1.0.0"
190
+ last_updated: "2025-01-15"
191
+ author: "SLDS Documentation Team"
192
+ slds_version: "2.27.2"
193
+ review_status: "complete"
194
+ source: "official-slds"
195
+ notes: "Created from official SLDS documentation and design-system-internal source code with CSS selector annotations. Follows ARIA listbox practices for accessibility."
196
+