diff --git a/packages/code-connect/components/NotificationDrawer/NotificationDrawer.figma.tsx b/packages/code-connect/components/NotificationDrawer/NotificationDrawer.figma.tsx
new file mode 100644
index 00000000000..c690f7a14fd
--- /dev/null
+++ b/packages/code-connect/components/NotificationDrawer/NotificationDrawer.figma.tsx
@@ -0,0 +1,54 @@
+import figma from '@figma/code-connect';
+import {
+ NotificationDrawer,
+ NotificationDrawerBody,
+ NotificationDrawerGroupList,
+ NotificationDrawerList
+} from '@patternfly/react-core';
+
+// Documentation for NotificationDrawer can be found at https://www.patternfly.org/components/notification-drawer
+
+// Default
+figma.connect(
+ NotificationDrawer,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=7172-99015',
+ {
+ props: {
+ // children
+ notificationDrawerHeader: figma.children('Notification drawer header'),
+ notificationDrawerItems: figma.children(['Notifications', 'Notification drawer item'])
+ },
+ example: (props) => (
+ // Documentation for NotificationDrawer can be found at https://www.patternfly.org/components/notification-drawer
+
+ {props.notificationDrawerHeader}
+
+ {props.notificationDrawerItems}
+
+
+ )
+ }
+);
+
+// Grouped
+figma.connect(
+ NotificationDrawer,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=7172-99015',
+ {
+ variant: { Type: 'Grouped' },
+ props: {
+ // children
+ notificationDrawerHeader: figma.children('Notification drawer header'),
+ notificationDrawerGroup: figma.children('Notification drawer groups')
+ },
+ example: (props) => (
+ // Documentation for NotificationDrawer can be found at https://www.patternfly.org/components/notification-drawer
+
+ {props.notificationDrawerHeader}
+
+ {props.notificationDrawerGroup}
+
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/NotificationDrawer/NotificationDrawerGroups.figma.tsx b/packages/code-connect/components/NotificationDrawer/NotificationDrawerGroups.figma.tsx
new file mode 100644
index 00000000000..57b467b0f8f
--- /dev/null
+++ b/packages/code-connect/components/NotificationDrawer/NotificationDrawerGroups.figma.tsx
@@ -0,0 +1,42 @@
+import figma from '@figma/code-connect';
+import { NotificationDrawerGroup, NotificationDrawerList } from '@patternfly/react-core';
+
+// TODO: DESIGN: Split unread count into a separate prop
+
+figma.connect(
+ NotificationDrawerGroup,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=3172-18190',
+ {
+ props: {
+ // string
+ headingText: figma.string('Group title'),
+ count: 3,
+
+ // boolean
+ badgeProps: figma.boolean('Has count', {
+ true: figma.nestedProps('Badge', {
+ count: figma.string('Text')
+ }),
+ false: { count: undefined }
+ }),
+
+ // enum
+ isExpanded: figma.enum('Type', {
+ Collapsed: false,
+ Expanded: true
+ }),
+
+ children: figma.children('Notification drawer item')
+ },
+ example: (props) => (
+ {}}
+ >
+ {props.children}
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/NotificationDrawer/NotificationDrawerHeader.figma.tsx b/packages/code-connect/components/NotificationDrawer/NotificationDrawerHeader.figma.tsx
new file mode 100644
index 00000000000..c11b30a9937
--- /dev/null
+++ b/packages/code-connect/components/NotificationDrawer/NotificationDrawerHeader.figma.tsx
@@ -0,0 +1,62 @@
+import figma from '@figma/code-connect';
+import { Dropdown, DropdownItem, DropdownList, MenuToggle, NotificationDrawerHeader } from '@patternfly/react-core';
+import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons//ellipsis-v-icon';
+
+figma.connect(
+ NotificationDrawerHeader,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=3170-17841',
+ {
+ props: {
+ // boolean
+ hasActionsMenu: figma.boolean('Has actions menu', {
+ true: {
+ dropdown: (
+ {}}
+ isOpen={false}
+ onOpenChange={() => {}}
+ popperProps={{ position: 'right' }}
+ toggle={(refToggle) => (
+ {}}
+ variant="plain"
+ aria-label={`Basic example header kebab toggle`}
+ icon={}
+ />
+ )}
+ >
+
+ Item 1
+ Item 2
+ Item 3
+
+
+ ),
+ onClose: () => {}
+ },
+ false: {
+ dropdown: undefined,
+ onClose: undefined
+ }
+ }),
+ showUnreadCount: figma.boolean('Show unread count', {
+ true: 3,
+ false: NaN
+ }),
+
+ // string
+ headingText: figma.string('Heading text')
+ },
+ example: (props) => (
+
+ {props.hasActionsMenu.dropdown}
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/NotificationDrawer/NotificationDrawerItem.figma.tsx b/packages/code-connect/components/NotificationDrawer/NotificationDrawerItem.figma.tsx
new file mode 100644
index 00000000000..cef832a768e
--- /dev/null
+++ b/packages/code-connect/components/NotificationDrawer/NotificationDrawerItem.figma.tsx
@@ -0,0 +1,68 @@
+import figma from '@figma/code-connect';
+import {
+ Dropdown,
+ DropdownItem,
+ DropdownList,
+ MenuToggle,
+ NotificationDrawerListItem,
+ NotificationDrawerListItemBody,
+ NotificationDrawerListItemHeader
+} from '@patternfly/react-core';
+import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
+
+// Documentation for NotificationDrawerListItem can be found at https://www.patternfly.org/components/notification-drawer
+
+figma.connect(
+ NotificationDrawerListItem,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=3164-16861',
+ {
+ props: {
+ // enum
+ isRead: figma.enum('Type', { Read: true }),
+ isHoverable: figma.enum('State', { Hover: true }),
+ variant: figma.enum('Status', {
+ Info: 'info',
+ Success: 'success',
+ Warning: 'warning',
+ Danger: 'danger'
+ }),
+
+ // TODO: DESIGN: Make alert description retrievable via unique layer name or adding a prop to Noficiation Drawer Item
+ alertDescription: 'Description',
+
+ // TODO: DESIGN: Make alert title retrievable via unique layer name or adding a prop to Noficiation Drawer Item
+ alertTitle: 'Notification title'
+ },
+ example: (props) => (
+
+
+ {}}
+ isOpen={false}
+ onOpenChange={() => {}}
+ popperProps={{ position: 'right' }}
+ toggle={(toggleRef) => (
+ {}}
+ variant="plain"
+ aria-label={`Basic example header kebab toggle`}
+ icon={}
+ />
+ )}
+ >
+
+ Item 1
+ Item 2
+ Item 3
+
+
+
+
+ {props.alertDescription}
+
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/Pagination/Pagination.figma.tsx b/packages/code-connect/components/Pagination/Pagination.figma.tsx
new file mode 100644
index 00000000000..b3bf9af1c6b
--- /dev/null
+++ b/packages/code-connect/components/Pagination/Pagination.figma.tsx
@@ -0,0 +1,31 @@
+import figma from '@figma/code-connect';
+import { Pagination } from '@patternfly/react-core';
+
+// TODO: Split perPage and Page into separate properties
+// Documentation for Pagination can be found at https://www.patternfly.org/components/pagination
+
+figma.connect(
+ Pagination,
+ 'https://www.figma.com/design/aEBBvq0J3EPXxHvv6WgDx9/PatternFly-6--Components-Test?node-id=5047-695',
+ {
+ props: {
+ // enum
+ isExpanded: figma.enum('Menu', { Open: true, Closed: false }),
+ isCompact: figma.enum('Type', { Compact: true, Closed: false }),
+
+ // nested
+ pageQuantity: figma.nestedProps('Page quantity selector', {
+ itemCount: figma.string('Total quantity')
+ })
+ },
+ example: (props) => (
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/PopOver/Popover.figma.tsx b/packages/code-connect/components/PopOver/Popover.figma.tsx
new file mode 100644
index 00000000000..683e406d5b7
--- /dev/null
+++ b/packages/code-connect/components/PopOver/Popover.figma.tsx
@@ -0,0 +1,79 @@
+import figma from '@figma/code-connect';
+import { Popover } from '@patternfly/react-core';
+import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
+import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
+import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
+import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
+import BullhornIcon from '@patternfly/react-icons/dist/esm/icons/bullhorn-icon';
+
+// TODO: DESIGN: Add buttons boolean to footerContent
+// TODO: REACT: Add icon support
+// Documentation for Popover can be found at https://www.patternfly.org/components/popover
+
+figma.connect(
+ Popover,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=5857-2066',
+ {
+ // enum
+ props: {
+ // boolean
+ footerContent: figma.boolean('Has footer', {
+ true: figma.string('Popover footer'),
+ false: undefined
+ }),
+ headerIcon: figma.boolean('Show header icon', {
+ true: ,
+ false: undefined
+ }),
+
+ // string
+ bodyContent: figma.string('Popover description'),
+ headerContent: figma.string('Popover Heading'),
+
+ // enum
+ position: figma.enum('Position', {
+ 'Top-left': 'top-start',
+ 'Top-middle': 'top',
+ 'Top-right': 'top-end',
+ 'Bottom-left': 'bottom-start',
+ 'Bottom-middle': 'bottom',
+ 'Bottom-right': 'bottom-end'
+ }),
+ status: figma.enum('Status', {
+ Default: {
+ state: undefined,
+ icon: undefined
+ },
+ Success: {
+ state: 'success',
+ icon:
+ },
+ Info: {
+ state: 'info',
+ icon:
+ },
+ Warning: {
+ state: 'warning',
+ icon:
+ },
+ Danger: {
+ state: 'danger',
+ icon:
+ }
+ }),
+
+ children: figma.children('*')
+ },
+ example: (props) => (
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/SimpleList/SimpleList.figma.tsx b/packages/code-connect/components/SimpleList/SimpleList.figma.tsx
new file mode 100644
index 00000000000..6010513926d
--- /dev/null
+++ b/packages/code-connect/components/SimpleList/SimpleList.figma.tsx
@@ -0,0 +1,15 @@
+import figma from '@figma/code-connect';
+import { SimpleList } from '@patternfly/react-core';
+
+// Documentation for SimpleList can be found at https://www.patternfly.org/components/simple-list
+
+figma.connect(
+ SimpleList,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=4410-20691',
+ {
+ props: {
+ children: figma.children('*')
+ },
+ example: (props) => {props.children}
+ }
+);
diff --git a/packages/code-connect/components/SimpleList/SimpleListGroup.figma.tsx b/packages/code-connect/components/SimpleList/SimpleListGroup.figma.tsx
new file mode 100644
index 00000000000..41d00a15936
--- /dev/null
+++ b/packages/code-connect/components/SimpleList/SimpleListGroup.figma.tsx
@@ -0,0 +1,19 @@
+import figma from '@figma/code-connect';
+import { SimpleListGroup } from '@patternfly/react-core';
+
+// Documentation for SimpleListGroup can be found at https://www.patternfly.org/components/simple-list
+
+figma.connect(
+ SimpleListGroup,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=4410-20708',
+ {
+ props: {
+ simpleListItems: figma.children('Simple list item')
+ },
+ example: (props) => (
+
+ {props.simpleListItems}
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/SimpleList/SimpleListItem.figma.tsx b/packages/code-connect/components/SimpleList/SimpleListItem.figma.tsx
new file mode 100644
index 00000000000..eeb96eaa01c
--- /dev/null
+++ b/packages/code-connect/components/SimpleList/SimpleListItem.figma.tsx
@@ -0,0 +1,36 @@
+import figma from '@figma/code-connect';
+import { SimpleListItem } from '@patternfly/react-core';
+
+// TODO: DESIGN: Add support for SimpleListGroup
+// Documentation for SimpleListItem can be found at https://www.patternfly.org/components/simple-list
+
+figma.connect(
+ SimpleListItem,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=4410-20664',
+ {
+ props: {
+ text: figma.string('Text'),
+
+ // enum
+ isActive: figma.enum('State', {
+ 'Selected - Light': true,
+ 'Selected - Dark': true
+ }),
+ isLink: figma.enum('Type', {
+ Default: {
+ component: undefined,
+ href: undefined
+ },
+ Link: {
+ component: 'a',
+ href: '#'
+ }
+ })
+ },
+ example: (props) => (
+
+ {props.text}
+
+ )
+ }
+);
diff --git a/packages/code-connect/components/Skeleton/Skeleton.figma.tsx b/packages/code-connect/components/Skeleton/Skeleton.figma.tsx
new file mode 100644
index 00000000000..dbbc5ecbb19
--- /dev/null
+++ b/packages/code-connect/components/Skeleton/Skeleton.figma.tsx
@@ -0,0 +1,32 @@
+import figma from '@figma/code-connect';
+import { Skeleton } from '@patternfly/react-core';
+
+// Documentation for Skeleton can be found at https://www.patternfly.org/components/skeleton
+
+figma.connect(
+ Skeleton,
+ 'https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components?node-id=790-288&',
+ {
+ props: {
+ // enum
+ shape: figma.enum('Type', {
+ Default: undefined,
+ Rectangle: undefined,
+ Square: 'square',
+ Circle: 'circle'
+ }),
+ size: figma.enum('Size', {
+ S: 'sm',
+ M: 'md',
+ L: 'lg',
+ XL: 'xl',
+ '2XL': '2xl',
+ '3XL': '3xl',
+ '4XL': '4xl'
+ })
+ },
+ example: (props) => (
+
+ )
+ }
+);
diff --git a/packages/code-connect/figma.config.json b/packages/code-connect/figma.config.json
index 6a65d1f747e..074bc4c0752 100644
--- a/packages/code-connect/figma.config.json
+++ b/packages/code-connect/figma.config.json
@@ -2,19 +2,19 @@
"codeConnect": {
"parser": "react",
"include": [
- "components/JumpLinks/*.figma.tsx",
- "components/Label/*.figma.tsx",
- "components/LoginPage/*.figma.tsx",
- "components/Masthead/*.figma.tsx",
- "components/Model/*.figma.tsx"
+ "components/NotificationDrawer/*.tsx",
+ "components/Pagination/*.tsx",
+ "components/Popover/*.tsx",
+ "components/SimpleList/*.tsx",
+ "components/Skeleton/*.tsx"
],
+ "documentUrlSubstitutions": {
+ "https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components": "https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/branch/e1OeQDrgPKW13FswRqSP3I/PatternFly-6--Components"
+ },
"paths": {
"@patternfly/react-core": "/Users/mnolting/Web/patternfly-react/packages/react-core/src",
"@patternfly/react-table": "/Users/mnolting/Web/patternfly-react/packages/react-table/src"
},
- "documentUrlSubstitutions": {
- "https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/PatternFly-6--Components": "https://www.figma.com/design/VMEX8Xg2nzhBX8rfBx53jp/branch/Em2QWrHDxDS4LUxo58Hust/PatternFly-6--Components"
- },
"aliases": {
"@patternfly/react-core": "/Users/mnolting/Web/patternfly-react/packages/react-core/src",
"@patternfly/react-table": "/Users/mnolting/Web/patternfly-react/packages/react-table/src"