diff --git a/packages/client/ui-primitives/src/icons/index.tsx b/packages/client/ui-primitives/src/icons/index.tsx
index 4afc31089f..47682cfab3 100644
--- a/packages/client/ui-primitives/src/icons/index.tsx
+++ b/packages/client/ui-primitives/src/icons/index.tsx
@@ -934,3 +934,41 @@ export const IconArchiveOutline20 = ({ size = 20, className }: IconProps) => (
)
+
+/** plan_outline_14 (design doc for #3567: the composer menu's Plan row glyph; drawn on a 14 grid) */
+export const IconPlanOutline14 = ({ size = 14, className }: IconProps) => (
+
+)
+
+/** compact_outline_16 (the composer's context-usage ring as a static glyph: a quiet track with one filled arc) */
+export const IconCompactOutline16 = ({ size = 16, className }: IconProps) => (
+
+)
+
+/** shield_outline_16 (design set 1556: the permission shield contour without a mode mark) */
+export const IconShieldOutline16 = ({ size = 16, className }: IconProps) => (
+
+)
diff --git a/packages/client/ui-primitives/tests/icons.client.spec.tsx b/packages/client/ui-primitives/tests/icons.client.spec.tsx
index 1b9a9c7773..4cae7397ed 100644
--- a/packages/client/ui-primitives/tests/icons.client.spec.tsx
+++ b/packages/client/ui-primitives/tests/icons.client.spec.tsx
@@ -17,8 +17,8 @@ const icons = Object.fromEntries(
const iconNames = Object.keys(icons)
describe('ic_ds_ icon set', () => {
- it('exports the full icon set (46 deepsuite + 21 figma extracts + eight product glyphs outside those sets)', () => {
- expect(iconNames.length).toBe(75)
+ it('exports the full icon set (46 deepsuite + 21 figma extracts + eleven product glyphs outside those sets)', () => {
+ expect(iconNames.length).toBe(78)
})
it.each(iconNames)('%s renders an svg with currentColor fills and no hardcoded palette', (name) => {