or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

button-components.mdconfiguration-theming.mddata-display-components.mddirectives.mdform-components.mdindex.mdlayout-components.mdnavigation-components.mdoverlay-components.mdservices-composables.mdutility-components.md

navigation-components.mddocs/

0

# Navigation Components

1

2

Navigation elements including menus, breadcrumbs, steps, and dock-style navigation with hierarchical support and customizable styling.

3

4

## Capabilities

5

6

### Menu Components

7

8

#### Menubar

9

Horizontal menu bar with dropdown submenus and keyboard navigation.

10

11

```typescript { .api }

12

/**

13

* Horizontal menu bar component

14

*/

15

import Menubar from "primevue/menubar";

16

17

interface MenubarProps extends BaseComponentProps {

18

model?: MenuItem[];

19

exact?: boolean;

20

}

21

```

22

23

#### Menu

24

Vertical dropdown menu with nested items and templating support.

25

26

```typescript { .api }

27

/**

28

* Vertical dropdown menu

29

*/

30

import Menu from "primevue/menu";

31

32

interface MenuProps extends BaseComponentProps {

33

model?: MenuItem[];

34

popup?: boolean;

35

appendTo?: string;

36

baseZIndex?: number;

37

autoZIndex?: boolean;

38

exact?: boolean;

39

tabindex?: number;

40

}

41

```

42

43

#### ContextMenu

44

Right-click context menu with positioning and nested items.

45

46

```typescript { .api }

47

/**

48

* Right-click context menu

49

*/

50

import ContextMenu from "primevue/contextmenu";

51

52

interface ContextMenuProps extends BaseComponentProps {

53

model?: MenuItem[];

54

appendTo?: string;

55

baseZIndex?: number;

56

autoZIndex?: boolean;

57

exact?: boolean;

58

tabindex?: number;

59

}

60

```

61

62

### Process Navigation

63

64

#### Steps

65

Step indicator component for process navigation with linear progression.

66

67

```typescript { .api }

68

/**

69

* Step indicator for process navigation

70

*/

71

import Steps from "primevue/steps";

72

73

interface StepsProps extends BaseComponentProps {

74

model?: MenuItem[];

75

activeIndex?: number;

76

readonly?: boolean;

77

exact?: boolean;

78

}

79

```

80

81

#### Breadcrumb

82

Navigation breadcrumb trail with separators and home icon.

83

84

```typescript { .api }

85

/**

86

* Breadcrumb navigation trail

87

*/

88

import Breadcrumb from "primevue/breadcrumb";

89

90

interface BreadcrumbProps extends BaseComponentProps {

91

model?: MenuItem[];

92

home?: MenuItem;

93

exact?: boolean;

94

}

95

```

96

97

**Usage Example:**

98

99

```vue

100

<template>

101

<Breadcrumb :home="home" :model="items" />

102

</template>

103

104

<script setup>

105

import { ref } from 'vue';

106

import Breadcrumb from 'primevue/breadcrumb';

107

108

const home = ref({

109

icon: 'pi pi-home',

110

route: '/'

111

});

112

113

const items = ref([

114

{ label: 'Computer' },

115

{ label: 'Notebook' },

116

{ label: 'Accessories' },

117

{ label: 'Backpacks' },

118

{ label: 'Item' }

119

]);

120

</script>

121

```

122

123

#### PanelMenu

124

Accordion-style menu component with collapsible navigation sections.

125

126

```typescript { .api }

127

/**

128

* Accordion-style panel menu

129

*/

130

import PanelMenu from "primevue/panelmenu";

131

132

interface PanelMenuProps extends BaseComponentProps {

133

model?: MenuItem[];

134

expandedKeys?: object;

135

exact?: boolean;

136

}

137

```

138

139

**Usage Example:**

140

141

```vue

142

<template>

143

<PanelMenu :model="menuItems" />

144

</template>

145

146

<script setup>

147

import { ref } from 'vue';

148

import PanelMenu from 'primevue/panelmenu';

149

150

const menuItems = ref([

151

{

152

label: 'Documents',

153

icon: 'pi pi-fw pi-file',

154

items: [

155

{ label: 'New', icon: 'pi pi-fw pi-plus', url: '#/new' },

156

{ label: 'Search', icon: 'pi pi-fw pi-search', url: '#/search' }

157

]

158

},

159

{

160

label: 'Profile',

161

icon: 'pi pi-fw pi-user',

162

items: [

163

{ label: 'Settings', icon: 'pi pi-fw pi-cog', url: '#/settings' },

164

{ label: 'Logout', icon: 'pi pi-fw pi-sign-out', url: '#/logout' }

165

]

166

}

167

]);

168

</script>

169

```

170

171

#### TieredMenu

172

Multi-level hierarchical menu with cascading submenus.

173

174

```typescript { .api }

175

/**

176

* Multi-level tiered menu component

177

*/

178

import TieredMenu from "primevue/tieredmenu";

179

180

interface TieredMenuProps extends BaseComponentProps {

181

model?: MenuItem[];

182

popup?: boolean;

183

appendTo?: string;

184

baseZIndex?: number;

185

autoZIndex?: boolean;

186

exact?: boolean;

187

disabled?: boolean;

188

tabindex?: number;

189

}

190

```

191

192

**Usage Example:**

193

194

```vue

195

<template>

196

<Button type="button" label="Show Menu" @click="toggle" />

197

<TieredMenu ref="menu" :model="items" :popup="true" />

198

</template>

199

200

<script setup>

201

import { ref } from 'vue';

202

import TieredMenu from 'primevue/tieredmenu';

203

import Button from 'primevue/button';

204

205

const menu = ref();

206

207

const items = ref([

208

{

209

label: 'File',

210

icon: 'pi pi-fw pi-file',

211

items: [

212

{

213

label: 'New',

214

icon: 'pi pi-fw pi-plus',

215

items: [

216

{ label: 'Document', icon: 'pi pi-fw pi-file' },

217

{ label: 'Image', icon: 'pi pi-fw pi-image' }

218

]

219

},

220

{ label: 'Open', icon: 'pi pi-fw pi-external-link' }

221

]

222

},

223

{

224

label: 'Edit',

225

icon: 'pi pi-fw pi-pencil',

226

items: [

227

{ label: 'Copy', icon: 'pi pi-fw pi-copy' },

228

{ label: 'Paste', icon: 'pi pi-fw pi-clipboard' }

229

]

230

}

231

]);

232

233

const toggle = (event) => {

234

menu.value.toggle(event);

235

};

236

</script>

237

```

238

239

## Types

240

241

```typescript { .api }

242

// Menu item click event

243

interface MenuItemCommandEvent {

244

originalEvent: Event;

245

item: MenuItem;

246

}

247

```