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

Sign up to get free protection for your applications and to get access to all the features.
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
  )}