playbook_ui 13.15.0.pre.alpha.PLAY10851907 → 13.15.0.pre.alpha.PLAY11311893

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +50 -51
  3. data/app/pb_kits/playbook/pb_person_contact/_person_contact.tsx +19 -20
  4. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +3 -4
  5. data/app/pb_kits/playbook/pb_popover/_popover.tsx +4 -6
  6. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +20 -20
  7. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.tsx +4 -4
  8. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/EditorButton.tsx +17 -19
  9. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/EditorTypes.ts +1 -1
  10. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/MoreExtensionsDropdown.tsx +21 -23
  11. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +10 -18
  12. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +23 -46
  13. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarHistory.tsx +8 -8
  14. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarNodes.tsx +7 -7
  15. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +15 -17
  16. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +7 -9
  17. data/app/pb_kits/playbook/pb_select/_select.scss +13 -4
  18. data/app/pb_kits/playbook/pb_select/_select.tsx +6 -3
  19. data/app/pb_kits/playbook/pb_select/docs/_select_inline_show_arrow.html.erb +24 -0
  20. data/app/pb_kits/playbook/pb_select/docs/_select_inline_show_arrow.jsx +38 -0
  21. data/app/pb_kits/playbook/pb_select/docs/example.yml +2 -0
  22. data/app/pb_kits/playbook/pb_select/docs/index.js +1 -0
  23. data/app/pb_kits/playbook/pb_select/select.rb +6 -1
  24. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.tsx +24 -25
  25. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.tsx +26 -27
  26. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.tsx +1 -2
  27. data/app/pb_kits/playbook/pb_source/_source.tsx +15 -15
  28. data/dist/playbook-rails.js +2 -2
  29. data/lib/playbook/version.rb +1 -1
  30. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c5c9caf58c548d42103ad5d2b62a507a2f5498b66560a157633b11309eea33f
4
- data.tar.gz: 261e1e3c9d53b1e94ef80c00e3dd157296fd9d56e8c14659f1fd3a0ddd73de87
3
+ metadata.gz: 18291ca0456980f9a06e2b9c3a910f801022cdf274409cb2cab0934aa8be8776
4
+ data.tar.gz: 2f0d3114f36aadb7baf289ff5409a338128892a719a3fa5181e1ad4930c9df1a
5
5
  SHA512:
6
- metadata.gz: b39140314f8802986175b032cd4f36a77d5e0575b53b41dcaa1d6365270da7c93944698402e7f4d357859c9cb03248bb2ae09900bef1d62ad26c488890d009db
7
- data.tar.gz: b3410c5d6842df03da01f4405a92cf12311ba8f819e8dac7915d7cd4b6212491aa6ad7b79921c7a6fd2844b015de28922d41bf02a6439336dbf95112338b79fb
6
+ metadata.gz: 122b812d9296134396d95761119769934f705cc2ccff6c4fbaddfdda3b62b2b9b1dc4dda5961113c4cfa9c2e388c1ed63b0973d7c55fc8383ea021693d9c0ea0
7
+ data.tar.gz: 0f2977528ef40e2169bdb398a5e47aa9d3afafb0356eb8543dec4bbed9d8f8e038985bfe749835da77ff3db799ffaa2a0047496ac1a7c3a05855394e8cab1e36
@@ -13,26 +13,25 @@ import Flex from '../pb_flex/_flex'
13
13
  import Icon from '../pb_icon/_icon'
14
14
  import PbReactPopover from '../pb_popover/_popover'
15
15
  import TextInput from '../pb_text_input/_text_input'
16
- import { GenericObject } from "../types"
17
16
 
18
17
  type PassphraseProps = {
19
18
  aria?: { [key: string]: string },
20
19
  confirmation?: boolean,
21
20
  className?: string,
22
- data?: GenericObject,
21
+ data?: object,
23
22
  dark?: boolean,
24
23
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
25
24
  id?: string,
26
- inputProps?: GenericObject,
25
+ inputProps?: {},
27
26
  label?: string,
28
- onChange: (inputValue: string) => void,
27
+ onChange: (inputValue: String) => void,
29
28
  showTipsBelow?: "always" | "xs" | "sm" | "md" | "lg" | "xl",
30
29
  tips?: Array<string>,
31
30
  uncontrolled?: boolean,
32
31
  value: string,
33
32
  }
34
33
 
35
- const Passphrase = (props: PassphraseProps): React.ReactElement => {
34
+ const Passphrase = (props: PassphraseProps) => {
36
35
  const {
37
36
  aria = {},
38
37
  className,
@@ -43,7 +42,7 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
43
42
  id,
44
43
  inputProps = {},
45
44
  label = confirmation ? "Confirm Passphrase" : "Passphrase",
46
- onChange = () => undefined,
45
+ onChange = () => { },
47
46
  showTipsBelow = "always",
48
47
  tips = [],
49
48
  uncontrolled = false,
@@ -85,60 +84,60 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
85
84
  globalProps(props),
86
85
  className
87
86
  )
88
- const dataProps = buildDataProps(data)
89
- const htmlProps = buildHtmlProps(htmlOptions)
87
+ const dataProps = buildDataProps(data)
88
+ const htmlProps = buildHtmlProps(htmlOptions)
90
89
 
91
90
  const popoverReference = (
92
91
  <CircleIconButton
93
- className={tipClass}
94
- dark={dark}
95
- icon="info-circle"
96
- onClick={toggleShowPopover}
97
- variant="link"
92
+ className={tipClass}
93
+ dark={dark}
94
+ icon="info-circle"
95
+ onClick={toggleShowPopover}
96
+ variant="link"
98
97
  />
99
98
  )
100
99
 
101
100
  return (
102
101
  <div
103
- {...ariaProps}
104
- {...dataProps}
105
- {...htmlProps}
106
- className={classes}
107
- id={id}
102
+ {...ariaProps}
103
+ {...dataProps}
104
+ {...htmlProps}
105
+ className={classes}
106
+ id={id}
108
107
  >
109
108
  <label>
110
109
  <Flex align="baseline">
111
110
  <Caption
112
- className="passphrase-label"
113
- text={label}
111
+ className="passphrase-label"
112
+ text={label}
114
113
  />
115
114
  {tips.length > 0 && !confirmation &&
116
115
  <PbReactPopover
117
- className="passphrase-tips"
118
- closeOnClick="outside"
119
- placement="right"
120
- reference={popoverReference}
121
- shouldClosePopover={handleShouldClosePopover}
122
- show={showPopover}
116
+ className="passphrase-tips"
117
+ closeOnClick="outside"
118
+ placement="right"
119
+ reference={popoverReference}
120
+ shouldClosePopover={handleShouldClosePopover}
121
+ show={showPopover}
123
122
  >
124
123
  <Flex
125
- align="center"
126
- orientation="column"
124
+ align="center"
125
+ orientation="column"
127
126
  >
128
127
  <Caption
129
- marginBottom="xs"
130
- text="Tips for a good passphrase"
128
+ marginBottom="xs"
129
+ text="Tips for a good passphrase"
131
130
  />
132
131
  <div>
133
132
  {tips.map((tip, i) => (
134
133
  <Caption
135
- key={i}
136
- marginBottom="xs"
137
- size="xs"
134
+ key={i}
135
+ marginBottom="xs"
136
+ size="xs"
138
137
  >
139
138
  <Icon
140
- icon="shield-check"
141
- marginRight="xs"
139
+ icon="shield-check"
140
+ marginRight="xs"
142
141
  />
143
142
  {tip}
144
143
  </Caption>
@@ -150,30 +149,30 @@ const Passphrase = (props: PassphraseProps): React.ReactElement => {
150
149
  </Flex>
151
150
  <div className="passphrase-text-input-wrapper">
152
151
  <TextInput
153
- className="passphrase-text-input"
154
- dark={dark}
155
- marginBottom="xs"
156
- onChange={handleChange}
157
- placeholder="Enter a passphrase..."
158
- type={showPassphrase ? "text" : "password"}
159
- value={displayValue}
160
- {...inputProps}
152
+ className="passphrase-text-input"
153
+ dark={dark}
154
+ marginBottom="xs"
155
+ onChange={handleChange}
156
+ placeholder="Enter a passphrase..."
157
+ type={showPassphrase ? "text" : "password"}
158
+ value={displayValue}
159
+ {...inputProps}
161
160
  />
162
161
  <span
163
- className="show-passphrase-icon"
164
- onClick={toggleShowPassphrase}
162
+ className="show-passphrase-icon"
163
+ onClick={toggleShowPassphrase}
165
164
  >
166
165
  <Body
167
- className={showPassphrase ? "hide-icon" : ""}
168
- color="light"
169
- dark={dark}
166
+ className={showPassphrase ? "hide-icon" : ""}
167
+ color="light"
168
+ dark={dark}
170
169
  >
171
170
  <Icon icon="eye-slash" />
172
171
  </Body>
173
172
  <Body
174
- className={showPassphrase ? "" : "hide-icon"}
175
- color="light"
176
- dark={dark}
173
+ className={showPassphrase ? "" : "hide-icon"}
174
+ color="light"
175
+ dark={dark}
177
176
  >
178
177
  <Icon icon="eye" />
179
178
  </Body>
@@ -7,7 +7,6 @@ import { globalProps } from '../utilities/globalProps'
7
7
  import Caption from '../pb_caption/_caption'
8
8
  import Contact from '../pb_contact/_contact'
9
9
  import Person from '../pb_person/_person'
10
- import { GenericObject } from '../types'
11
10
 
12
11
  type ContactItem = {
13
12
  contactType: string,
@@ -18,7 +17,7 @@ type ContactItem = {
18
17
  type PersonContactProps = {
19
18
  aria?: { [key: string]: string },
20
19
  className?: string | string[],
21
- data?: GenericObject,
20
+ data?: object,
22
21
  firstName: string,
23
22
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
24
23
  id?: string,
@@ -26,7 +25,7 @@ type PersonContactProps = {
26
25
  contacts?: ContactItem[],
27
26
  }
28
27
 
29
- const PersonContact = (props: PersonContactProps): React.ReactElement => {
28
+ const PersonContact = (props: PersonContactProps) => {
30
29
  const {
31
30
  aria = {},
32
31
  className,
@@ -61,35 +60,35 @@ const PersonContact = (props: PersonContactProps): React.ReactElement => {
61
60
 
62
61
  return (
63
62
  <div
64
- {...ariaProps}
65
- {...dataProps}
66
- {...htmlProps}
67
- className={classes}
68
- id={id}
63
+ {...ariaProps}
64
+ {...dataProps}
65
+ {...htmlProps}
66
+ className={classes}
67
+ id={id}
69
68
  >
70
69
  <Person
71
- firstName={firstName}
72
- lastName={lastName}
70
+ firstName={firstName}
71
+ lastName={lastName}
73
72
  />
74
73
  {validContacts().map((contactObject, index) => (
75
74
  <Contact
76
- contactDetail={contactObject.contactDetail}
77
- contactType={contactObject.contactType}
78
- contactValue={contactObject.contactValue}
79
- key={`valid-contact-${index}`}
75
+ contactDetail={contactObject.contactDetail}
76
+ contactType={contactObject.contactType}
77
+ contactValue={contactObject.contactValue}
78
+ key={`valid-contact-${index}`}
80
79
  />
81
80
  ))}
82
81
  {wrongContacts().map((contactObject, index) => (
83
82
  <div key={`wrong-contact-caption-wrapper-${index}`}>
84
83
  <Caption
85
- className="wrong_numbers"
86
- key={`wrong-contact-caption-${index}`}
87
- text="wrong number"
84
+ className="wrong_numbers"
85
+ key={`wrong-contact-caption-${index}`}
86
+ text="wrong number"
88
87
  />
89
88
  <Contact
90
- contactType={contactObject.contactType}
91
- contactValue={contactObject.contactValue}
92
- key={`wrong-contact-${index}`}
89
+ contactType={contactObject.contactType}
90
+ contactValue={contactObject.contactValue}
91
+ key={`wrong-contact-${index}`}
93
92
  />
94
93
  </div>
95
94
  ))}
@@ -62,7 +62,6 @@ const formatAllCountries = () => {
62
62
  formatAllCountries()
63
63
 
64
64
  const containOnlyNumbers = (value: string) => {
65
- // eslint-disable-next-line no-useless-escape
66
65
  return /^[()+\-\ .\d]*$/g.test(value)
67
66
  }
68
67
 
@@ -260,9 +259,9 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
260
259
  if (required) textInputProps.required = true
261
260
 
262
261
  return (
263
- <div
264
- {...wrapperProps}
265
- {...htmlProps}
262
+ <div
263
+ {...wrapperProps}
264
+ {...htmlProps}
266
265
  >
267
266
  <TextInput
268
267
  ref={
@@ -1,4 +1,3 @@
1
- /* eslint-disable react/no-multi-comp */
2
1
  import React, { useEffect, useState } from "react";
3
2
  import ReactDOM from "react-dom";
4
3
  import {
@@ -55,7 +54,7 @@ const popoverModifiers = ({
55
54
  offset,
56
55
  }: {
57
56
  modifiers: Modifier<any> & any;
58
- offset: boolean;
57
+ offset: {};
59
58
  }) => {
60
59
  return offset ? modifiers.concat([POPOVER_MODIFIERS.offset]) : modifiers;
61
60
  };
@@ -144,7 +143,7 @@ const Popover = (props: PbPopoverProps) => {
144
143
  );
145
144
  };
146
145
 
147
- const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
146
+ const PbReactPopover = (props: PbPopoverProps) => {
148
147
  const [targetId] = useState(_uniqueId('id-'))
149
148
  const {
150
149
  className,
@@ -227,10 +226,9 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
227
226
  <PopperReference>
228
227
  {({ ref }) => (
229
228
  <span
230
- className="pb_popover_reference_wrapper"
231
229
  id={"reference-" + targetId}
232
- ref={ref}
233
- >
230
+ className="pb_popover_reference_wrapper"
231
+ ref={ref}>
234
232
  <reference.type {...reference.props} />
235
233
  </span>
236
234
  )}
@@ -20,14 +20,6 @@ type ProgressPillsProps = {
20
20
  value?: string,
21
21
  }
22
22
 
23
- const ProgressPill = ({ active, dark, steps: step }: ProgressPillsProps) => (
24
- <div
25
- className={`pb_progress_pill${step <= active ? '_active' : '_inactive'}${dark ? ' dark' : ''
26
- }`}
27
- key={step}
28
- />
29
- )
30
-
31
23
  const showSteps = (steps: number, active: number, dark: boolean) => {
32
24
  const items = []
33
25
 
@@ -38,6 +30,14 @@ const showSteps = (steps: number, active: number, dark: boolean) => {
38
30
  return items
39
31
  }
40
32
 
33
+ const ProgressPill = ({ active, dark, steps: step }: ProgressPillsProps) => (
34
+ <div
35
+ className={`pb_progress_pill${step <= active ? '_active' : '_inactive'}${dark ? ' dark' : ''
36
+ }`}
37
+ key={step}
38
+ />
39
+ )
40
+
41
41
  const ProgressPills = (props: ProgressPillsProps) => {
42
42
  const {
43
43
  active = 0,
@@ -59,24 +59,24 @@ const ProgressPills = (props: ProgressPillsProps) => {
59
59
 
60
60
  return (
61
61
  <div
62
- {...ariaProps}
63
- {...dataProps}
64
- {...htmlProps}
65
- className={classes}
66
- id={id}
62
+ {...ariaProps}
63
+ {...dataProps}
64
+ {...htmlProps}
65
+ className={classes}
66
+ id={id}
67
67
  >
68
68
  {title &&
69
69
  <div className="progress_pills_status">
70
70
  <Title
71
- dark={dark}
72
- size={4}
73
- tag="h4"
74
- text={title}
71
+ dark={dark}
72
+ size={4}
73
+ tag="h4"
74
+ text={title}
75
75
  />
76
76
  <Body
77
- color="light"
78
- dark={dark}
79
- text={value}
77
+ color="light"
78
+ dark={dark}
79
+ text={value}
80
80
  />
81
81
  </div>}
82
82
  <div className="progress_pills">{showSteps(steps, active, dark)}</div>
@@ -18,7 +18,7 @@ type ProgressSimpleProps = {
18
18
  width: string,
19
19
  }
20
20
 
21
- const ProgressSimple = (props: ProgressSimpleProps): React.ReactElement => {
21
+ const ProgressSimple = (props: ProgressSimpleProps) => {
22
22
  const {
23
23
  align,
24
24
  className,
@@ -57,9 +57,9 @@ const ProgressSimple = (props: ProgressSimpleProps): React.ReactElement => {
57
57
 
58
58
  return (
59
59
  <div
60
- {...dataProps}
61
- {...htmlProps}
62
- className={wrapperClass}
60
+ {...dataProps}
61
+ {...htmlProps}
62
+ className={wrapperClass}
63
63
  >
64
64
  <div
65
65
  className={kitClass}
@@ -7,7 +7,7 @@ import Tooltip from "../../pb_tooltip/_tooltip";
7
7
 
8
8
  type EditorButtonProps = {
9
9
  classname?: string,
10
- onclick?: () => undefined | void,
10
+ onclick?: () => {} | void,
11
11
  icon?: string;
12
12
  text?: string;
13
13
  disable?: boolean
@@ -19,31 +19,29 @@ const EditorButton = ({
19
19
  onclick,
20
20
  icon,
21
21
  text,
22
- }: EditorButtonProps): React.ReactElement => {
22
+ }: EditorButtonProps) => {
23
23
  return (
24
- <Tooltip
25
- delay={{
24
+ <Tooltip
25
+ delay={{
26
26
  open: 2000
27
27
  }}
28
- interaction
29
- placement="top"
30
- text={text}
28
+ interaction
29
+ placement="top"
30
+ text={text}
31
31
  >
32
32
  <button
33
- className={classname}
34
- disabled={disable}
35
- onClick={onclick}
36
- role="button"
37
- type="button"
33
+ className={classname}
34
+ disabled={disable}
35
+ onClick={onclick}
36
+ role="button"
37
+ type="button"
38
38
  >
39
- <Flex
40
- align="center"
41
- className="toolbar_button_icon"
42
- justify="center"
39
+ <Flex
40
+ align="center"
41
+ className="toolbar_button_icon"
42
+ justify="center"
43
43
  >
44
- <Icon icon={icon}
45
- size="lg"
46
- />
44
+ <Icon icon={icon} size="lg" />
47
45
  </Flex>
48
46
  </button>
49
47
  </Tooltip>
@@ -3,7 +3,7 @@ export type ToolbarTypes = {
3
3
  icon?: string,
4
4
  isActive?: string | null,
5
5
  text?: string,
6
- onclick?: () => undefined
6
+ onclick?: () => {}
7
7
  classname?: string
8
8
  disable?: boolean
9
9
  }
@@ -20,19 +20,17 @@ const MoreExtensionsDropdown = ({extensions}: any) => {
20
20
 
21
21
  const popoverReference = (
22
22
  <button
23
- className="toolbar_button"
24
- onClick={handleTogglePopover}
25
- role="button"
26
- type="button"
23
+ className="toolbar_button"
24
+ onClick={handleTogglePopover}
25
+ role="button"
26
+ type="button"
27
27
  >
28
28
  <Flex
29
- align="center"
30
- className="toolbar_button_icon"
31
- justify="center"
29
+ align="center"
30
+ className="toolbar_button_icon"
31
+ justify="center"
32
32
  >
33
- <Icon icon="ellipsis"
34
- size="lg"
35
- />
33
+ <Icon icon="ellipsis" size="lg" />
36
34
  </Flex>
37
35
  </button>
38
36
 
@@ -48,21 +46,21 @@ const popoverReference = (
48
46
  show={showPopover}
49
47
  >
50
48
  <Nav
51
- paddingBottom={extensions.length > 1 ? "xs" : "none"}
52
- paddingTop={extensions.length > 1 ? "xs" : "none"}
53
- variant="subtle"
49
+ paddingTop={extensions.length > 1 ? "xs" : "none"}
50
+ paddingBottom={extensions.length > 1 ? "xs" : "none"}
51
+ variant="subtle"
54
52
  >
55
- {extensions && extensions.map(({ icon, text, onclick, isActive}: any, index: number) => (
53
+ {extensions && extensions.map(({ icon, text, onclick, isActive}:any, index:number) => (
56
54
  <NavItem
57
- className={`pb_tiptap_toolbar_dropdown_list_item ${isActive ? "is-active" : ""}`}
58
- cursor="pointer"
59
- iconLeft={icon}
60
- key={`${text}_${index}`}
61
- margin='none'
62
- onClick={()=> {onclick(); setShowPopover(false)}}
63
- paddingBottom='xxs'
64
- paddingTop='xxs'
65
- text={text}
55
+ cursor="pointer"
56
+ className={`pb_tiptap_toolbar_dropdown_list_item ${isActive ? "is-active" : ""}`}
57
+ iconLeft={icon}
58
+ key={`${text}_${index}`}
59
+ margin='none'
60
+ onClick={()=> {onclick(); setShowPopover(false)}}
61
+ text={text}
62
+ paddingTop='xxs'
63
+ paddingBottom='xxs'
66
64
  />
67
65
  ))}
68
66
  </Nav>
@@ -11,7 +11,7 @@ import { ToolbarTypes } from "./EditorTypes";
11
11
  import ToolbarHistoryItems from "./ToolbarHistory";
12
12
  import MoreExtensionsDropdown from "./MoreExtensionsDropdown";
13
13
 
14
- const EditorToolbar = ({ editor, extensions }: any): React.ReactElement => {
14
+ const EditorToolbar = ({ editor, extensions }:any) => {
15
15
  const toolbaritems = [
16
16
  {
17
17
  icon: "bold",
@@ -34,27 +34,19 @@ const EditorToolbar = ({ editor, extensions }: any): React.ReactElement => {
34
34
  ]
35
35
 
36
36
  return (
37
- <Background backgroundColor="white"
38
- className="toolbar"
39
- >
40
- <Flex flex="0"
41
- justify="between"
42
- paddingX="sm"
43
- paddingY="xxs"
44
- >
45
- <FlexItem className="toolbar_block"
46
- displayFlex
47
- >
37
+ <Background backgroundColor="white" className="toolbar">
38
+ <Flex flex="0" justify="between" paddingX="sm" paddingY="xxs">
39
+ <FlexItem className="toolbar_block" displayFlex>
48
40
  <ToolbarDropdown editor={editor}/>
49
41
  <SectionSeparator orientation="vertical" />
50
42
  {toolbaritems && toolbaritems.map(
51
- ({ icon, text, classname, onclick}: ToolbarTypes, index: number) => (
43
+ ({ icon, text, classname, onclick}:ToolbarTypes, index:number) => (
52
44
  <EditorButton
53
- classname={classname}
54
- icon={icon}
55
- key={index}
56
- onclick={onclick}
57
- text={text}
45
+ classname={classname}
46
+ icon={icon}
47
+ key={index}
48
+ text={text}
49
+ onclick={onclick}
58
50
  />
59
51
  )
60
52
  )}