playbook_ui 11.18.0 → 11.19.0.pre.alpha.pagpassthrough1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,222 @@
1
+ import React from "react";
2
+ import { render, screen, fireEvent } from "../utilities/test-utils";
3
+ import { Button, PbReactPopover } from "..";
4
+
5
+ const testId = "popover-kit";
6
+
7
+ //Test default popover
8
+ const PopoverTest = () => {
9
+ const [mockState, setMockState] = React.useState(false)
10
+ const togglePopover = () => {
11
+ setMockState(!mockState)
12
+ }
13
+
14
+ const popoverReference = (
15
+ <Button onClick={togglePopover}
16
+ text="Click Me"
17
+ />
18
+ );
19
+ return (
20
+ <PbReactPopover
21
+ offset
22
+ reference={popoverReference}
23
+ show={mockState}
24
+ >
25
+ {"Click Anywhere"}
26
+ </PbReactPopover>
27
+ )
28
+ };
29
+ //Test popover with z-index
30
+ const PopoverTestZIndex = () => {
31
+ const [mockState, setMockState] = React.useState(false)
32
+ const togglePopover = () => {
33
+ setMockState(!mockState)
34
+ }
35
+
36
+ const popoverReference = (
37
+ <Button onClick={togglePopover}
38
+ text="Click Me"
39
+ />
40
+ );
41
+ return (
42
+ <PbReactPopover
43
+ offset
44
+ reference={popoverReference}
45
+ show={mockState}
46
+ zIndex={3}
47
+ >
48
+ {"Click Anywhere"}
49
+ </PbReactPopover>
50
+ )
51
+ };
52
+
53
+ //Test popover with max-height and max-width
54
+ const PopoverTestHeight = () => {
55
+ const [mockState, setMockState] = React.useState(false)
56
+ const togglePopover = () => {
57
+ setMockState(!mockState)
58
+ }
59
+
60
+ const popoverReference = (
61
+ <Button onClick={togglePopover}
62
+ text="Click Me"
63
+ />
64
+ );
65
+ return (
66
+ <PbReactPopover
67
+ maxHeight="150px"
68
+ maxWidth="240px"
69
+ offset
70
+ reference={popoverReference}
71
+ show={mockState}
72
+ >
73
+ {"Click Anywhere"}
74
+ </PbReactPopover>
75
+ )
76
+ };
77
+
78
+ //Test Popover with click to close 'anywhere'
79
+ const PopoverTestClicktoClose = () => {
80
+ const [mockState, setMockState] = React.useState(false)
81
+ const togglePopover = () => {
82
+ setMockState(!mockState)
83
+ }
84
+ const handleShouldClosePopover = (shouldClosePopover) => {
85
+ setMockState(!shouldClosePopover)
86
+ }
87
+
88
+ const popoverReference = (
89
+ <Button onClick={togglePopover}
90
+ text="Click Me"
91
+ />
92
+ );
93
+ return (
94
+ <PbReactPopover
95
+ closeOnClick="any"
96
+ offset
97
+ reference={popoverReference}
98
+ shouldClosePopover={handleShouldClosePopover}
99
+ show={mockState}
100
+ >
101
+ {"Click Anywhere"}
102
+ </PbReactPopover>
103
+ )
104
+ };
105
+
106
+ //Test Popover with click to close 'inside'
107
+ const PopoverTestClicktoClose2 = () => {
108
+ const [mockState, setMockState] = React.useState(false)
109
+ const togglePopover = () => {
110
+ setMockState(!mockState)
111
+ }
112
+ const handleShouldClosePopover = (shouldClosePopover) => {
113
+ setMockState(!shouldClosePopover)
114
+ }
115
+
116
+ const popoverReference = (
117
+ <Button onClick={togglePopover}
118
+ text="Click Me"
119
+ />
120
+ );
121
+ return (
122
+ <PbReactPopover
123
+ closeOnClick="inside"
124
+ offset
125
+ reference={popoverReference}
126
+ shouldClosePopover={handleShouldClosePopover}
127
+ show={mockState}
128
+ >
129
+ {"Click Inside"}
130
+ </PbReactPopover>
131
+ )
132
+ };
133
+
134
+ //Test Popover with click to close 'outside'
135
+ const PopoverTestClicktoClose3 = () => {
136
+ const [mockState, setMockState] = React.useState(false)
137
+ const togglePopover = () => {
138
+ setMockState(!mockState)
139
+ }
140
+ const handleShouldClosePopover = (shouldClosePopover) => {
141
+ setMockState(!shouldClosePopover)
142
+ }
143
+
144
+ const popoverReference = (
145
+ <Button onClick={togglePopover}
146
+ text="Click Me"
147
+ />
148
+ );
149
+ return (
150
+ <PbReactPopover
151
+ closeOnClick="outside"
152
+ offset
153
+ reference={popoverReference}
154
+ shouldClosePopover={handleShouldClosePopover}
155
+ show={mockState}
156
+ >
157
+ {"Click Outside"}
158
+ </PbReactPopover>
159
+ )
160
+ };
161
+
162
+
163
+ test("renders Popover", () => {
164
+ render(<PopoverTest data={{ testid: testId}}/>)
165
+ const btn = screen.getByText(/click me/i)
166
+ fireEvent.click(btn);
167
+ const kit = screen.getByText("Click Anywhere");
168
+ expect(kit).toBeInTheDocument();
169
+ });
170
+
171
+ test("renders Popover with z index", () => {
172
+ render(<PopoverTestZIndex data={{ testid: testId}}/>)
173
+ const btn = screen.getByText(/click me/i)
174
+ fireEvent.click(btn);
175
+ const kit = screen.getByText("Click Anywhere");
176
+ expect(kit).toHaveClass("pb_popover_body z_index_3");
177
+ });
178
+
179
+ test("renders Popover with max height and max width", () => {
180
+ render(<PopoverTestHeight data={{ testid: testId}}/>)
181
+ const btn = screen.getByText(/click me/i)
182
+ fireEvent.click(btn);
183
+ const kit = screen.getByText("Click Anywhere");
184
+ expect(kit).toHaveClass("pb_popover_body max_width_240px overflow_handling");
185
+ });
186
+
187
+ test("closes Popover on click anywhere", () => {
188
+ render(<PopoverTestClicktoClose data={{ testid: testId}}/>)
189
+ const btn = screen.getByText(/click me/i)
190
+ fireEvent.click(btn);
191
+ const kit = screen.getByText("Click Anywhere");
192
+ expect(kit).toBeInTheDocument();
193
+ fireEvent.click(kit);
194
+
195
+ expect(kit).not.toBeInTheDocument();
196
+
197
+ });
198
+
199
+ test("closes Popover on click inside", () => {
200
+ render(<PopoverTestClicktoClose2 data={{ testid: testId}}/>)
201
+ const btn = screen.getByText(/click me/i)
202
+ fireEvent.click(btn);
203
+ const kit = screen.getByText("Click Inside");
204
+ expect(kit).toBeInTheDocument();
205
+ fireEvent.click(kit);
206
+
207
+ expect(kit).not.toBeInTheDocument();
208
+
209
+ });
210
+
211
+ test("closes Popover on click outside", () => {
212
+ render(<PopoverTestClicktoClose3 data={{ testid: testId}}/>)
213
+ const btn = screen.getByText(/click me/i)
214
+ fireEvent.click(btn);
215
+ const kit = screen.getByText("Click Outside");
216
+ expect(kit).toBeInTheDocument();
217
+ fireEvent.click(kit);
218
+ expect(kit).toBeInTheDocument();
219
+ fireEvent.click(btn);
220
+ expect(kit).not.toBeInTheDocument();
221
+
222
+ });
@@ -28,10 +28,11 @@ import { noop } from '../utilities/props'
28
28
  */
29
29
 
30
30
  type TypeaheadProps = {
31
- id?: string,
32
31
  async?: boolean,
32
+ components?: object,
33
33
  createable?: boolean,
34
34
  dark?: boolean,
35
+ id?: string,
35
36
  label?: string,
36
37
  loadOptions?: string,
37
38
  getOptionLabel?: string | (() => any),
@@ -44,7 +45,16 @@ type TypeaheadProps = {
44
45
  * @param {TypeaheadProps} props - props as described at https://react-select.com/props
45
46
  */
46
47
 
47
- const Typeahead = ({ loadOptions = noop, getOptionLabel, id, getOptionValue, createable, async, ...props }: TypeaheadProps) => {
48
+ const Typeahead = ({
49
+ async,
50
+ components = {},
51
+ createable,
52
+ getOptionLabel,
53
+ getOptionValue,
54
+ id,
55
+ loadOptions = noop,
56
+ ...props
57
+ }: TypeaheadProps) => {
48
58
  const selectProps = {
49
59
  cacheOptions: true,
50
60
  components: {
@@ -57,6 +67,7 @@ const Typeahead = ({ loadOptions = noop, getOptionLabel, id, getOptionValue, cre
57
67
  Option,
58
68
  Placeholder,
59
69
  ValueContainer,
70
+ ...components
60
71
  },
61
72
  loadOptions: isString(loadOptions) ? get(window, loadOptions) : loadOptions,
62
73
  getOptionLabel: isString(getOptionLabel) ? get(window, getOptionLabel) : getOptionLabel,
@@ -0,0 +1,98 @@
1
+ /* eslint-disable react/no-danger */
2
+ /* eslint-disable react/no-multi-comp */
3
+ /* @flow */
4
+
5
+ import React, { useState } from 'react'
6
+ import { components, OptionProps } from 'react-select'
7
+
8
+ import {
9
+ Avatar,
10
+ Body,
11
+ Flex,
12
+ FlexItem,
13
+ Title,
14
+ Typeahead,
15
+ } from '../..'
16
+
17
+ const USERS = [
18
+ {
19
+ name: "Wade Winningham",
20
+ title: "Nitro Principal Developer",
21
+ territory: "PHL",
22
+ },
23
+ {
24
+ name: "Jason Cypret",
25
+ title: "Vice President of User Experience",
26
+ territory: "PHL",
27
+ },
28
+ {
29
+ name: "Stephen Marshall",
30
+ title: "Senior User Experience Engineer",
31
+ territory: "PHL",
32
+ },
33
+ {
34
+ name: "Jasper Furniss",
35
+ title: "Senior User Experience Engineer",
36
+ territory: "PHL",
37
+ },
38
+ ];
39
+
40
+ const TypeaheadWithHighlight = (props) => {
41
+ const [selectedUser, setSelectedUser] = useState()
42
+
43
+ const formatOptionLabel = ({name, territory, title}, {inputValue}) => {
44
+
45
+ const highlighted = (text: string) => {
46
+ if (!inputValue.length) return text
47
+ return text.replace(
48
+ new RegExp(inputValue, 'gi'),
49
+ highlighted => `<mark>${highlighted}</mark>`
50
+ )
51
+ }
52
+ return (
53
+ <Flex>
54
+ <FlexItem>
55
+ <Avatar
56
+ marginRight="sm"
57
+ name={name}
58
+ size="sm"
59
+ />
60
+ </FlexItem>
61
+ <FlexItem>
62
+ <Title size={4}><span dangerouslySetInnerHTML={{ __html: highlighted(name) }} /></Title>
63
+ <Body color="light">
64
+ <span dangerouslySetInnerHTML={{ __html: highlighted(title) }} />{" • "}
65
+ {territory}
66
+ </Body>
67
+ </FlexItem>
68
+ </Flex>
69
+ )
70
+ }
71
+
72
+ const customComponents = {
73
+ Option: (props: OptionProps) => (
74
+ <components.Option {...props}/>
75
+ ),
76
+ SingleValue: ({ data }: any) => (
77
+ <span>{data.name}</span>
78
+ )
79
+ }
80
+
81
+ return (
82
+ <React.Fragment>
83
+ <Typeahead
84
+ components={customComponents}
85
+ formatOptionLabel={formatOptionLabel}
86
+ getOptionLabel={(option) => option.name}
87
+ getOptionValue={({name, title}) => `${name} ${title}`}
88
+ label="Users"
89
+ onChange={(user) => setSelectedUser(user)}
90
+ options={USERS.filter((option) => option.name != selectedUser?.name)}
91
+ placeholder="type the name of a user"
92
+ {...props}
93
+ />
94
+ </React.Fragment>
95
+ )
96
+ }
97
+
98
+ export default TypeaheadWithHighlight
@@ -11,6 +11,7 @@ examples:
11
11
 
12
12
  react:
13
13
  - typeahead_default: Default
14
+ - typeahead_with_highlight: With Highlight
14
15
  - typeahead_with_pills: With Pills
15
16
  - typeahead_with_pills_async: With Pills (Async Data)
16
17
  - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
@@ -1,4 +1,5 @@
1
1
  export { default as TypeaheadDefault } from './_typeahead_default.jsx'
2
+ export { default as TypeaheadWithHighlight } from './_typeahead_with_highlight.jsx'
2
3
  export { default as TypeaheadWithPills } from './_typeahead_with_pills.jsx'
3
4
  export { default as TypeaheadWithPillsAsync } from './_typeahead_with_pills_async.jsx'
4
5
  export { default as TypeaheadWithPillsAsyncUsers } from './_typeahead_with_pills_async_users.jsx'
@@ -0,0 +1,69 @@
1
+ @import "../tokens/colors";
2
+ @import "../tokens/typography";
3
+ @import "../tokens/border_radius";
4
+ @import "../tokens/shadows";
5
+
6
+ .pb_pagination {
7
+ display: inline-block;
8
+ border-radius: $border_rad_light;
9
+ border: 1px solid $border_light;
10
+ background-color: $white;
11
+ padding: 3px 0px 3.6px 0px;
12
+ margin: 10px 0;
13
+ li {
14
+ display: inline;
15
+ > a, li > span {
16
+ padding: 7px 13px;
17
+ text-decoration: none;
18
+ margin-left: -1px;
19
+ border: 0 !important;
20
+ }}
21
+ li:first-child > a, li:first-child > span {
22
+ padding: 7px 13px;
23
+ margin-left: .5px;
24
+ border-right: 1px solid $border_light !important;
25
+ z-index: 2;
26
+ }
27
+ li:last-child > a, li:last-child > span {
28
+ padding: 7px 13px;
29
+ margin-right: .5px;
30
+ border-left: 1px solid $border_light !important;
31
+ z-index: 2;
32
+ }
33
+ a {
34
+ color: $text_lt_default !important;
35
+ font-size: $text_small;
36
+ font-weight: $regular;
37
+ border: none;
38
+
39
+ &:hover {
40
+ background-color: $active_light;
41
+ color: $primary !important;
42
+ border-radius: $border_rad_light;
43
+ }
44
+
45
+ &:focus {
46
+ outline: 1px solid $primary !important;
47
+ border-radius: $border_rad_light;
48
+ outline-offset: -1px;
49
+ }
50
+ }
51
+ .active > span {
52
+ background-color: $primary !important;
53
+ border-radius: $border_rad_light;
54
+ color: #fff;
55
+ padding: 7px 13px;
56
+ border: 0 !important;
57
+ text-decoration: none;
58
+ font-weight: $bold;
59
+ font-size: $text_small;
60
+
61
+ &:hover {
62
+ box-shadow: $shadow_deeper;
63
+ }
64
+ }
65
+ .disabled > span {
66
+ padding: 7px 10px;
67
+ font-size: $text_small;
68
+ }
69
+ }
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "will_paginate/view_helpers/action_view"
4
+
5
+ module Playbook
6
+ module Pagination
7
+ class Rails < WillPaginate::ActionView::LinkRenderer
8
+ def container_attributes
9
+ { class: "pb_pagination" }
10
+ end
11
+
12
+ def page_number(page)
13
+ if page == current_page
14
+ tag("li", tag("span", page), class: "active")
15
+ else
16
+ tag("li", link(page, page, rel: rel_value(page)))
17
+ end
18
+ end
19
+
20
+ def previous_or_next_page(page, text, classname)
21
+ if page
22
+ tag("li", link(text, page), class: classname)
23
+ else
24
+ tag("li", tag("span", text), class: "%s disabled")
25
+ end
26
+ end
27
+
28
+ def gap; end
29
+
30
+ def previous_page
31
+ num = @collection.current_page > 1 && @collection.current_page - 1
32
+ previous_or_next_page(num, "<i class='far fa-chevron-left fa-xs'></i>", "prev")
33
+ end
34
+
35
+ def next_page
36
+ num = @collection.current_page < @collection.total_pages && @collection.current_page + 1
37
+ previous_or_next_page(num, "<i class='far fa-chevron-right fa-xs'></i>", "next")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "11.17.0"
5
- VERSION = "11.18.0"
4
+ PREVIOUS_VERSION = "11.19.0"
5
+ VERSION = "11.19.0.pre.alpha.pagpassthrough1"
6
6
  end
data/lib/playbook.rb CHANGED
@@ -12,6 +12,8 @@ require "playbook/pb_doc_helper"
12
12
  require "playbook/kit_base"
13
13
  require "playbook/kit_resolver"
14
14
  require "playbook/markdown"
15
+ # require "playbook/pagination_renderer"
16
+ # REMOVED TO MAKE THIS AN OPTIONAL INCLUDE FOR CLIENTS
15
17
 
16
18
  module Playbook
17
19
  ROOT_PATH = Pathname.new(File.join(__dir__, ".."))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.18.0
4
+ version: 11.19.0.pre.alpha.pagpassthrough1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-01-10 00:00:00.000000000 Z
12
+ date: 2023-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -269,6 +269,20 @@ dependencies:
269
269
  - - '='
270
270
  - !ruby/object:Gem::Version
271
271
  version: 1.2018.9
272
+ - !ruby/object:Gem::Dependency
273
+ name: will_paginate
274
+ requirement: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - '='
277
+ - !ruby/object:Gem::Version
278
+ version: 3.3.1
279
+ type: :development
280
+ prerelease: false
281
+ version_requirements: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - '='
284
+ - !ruby/object:Gem::Version
285
+ version: 3.3.1
272
286
  description: Playbook Design System. Built for Nitro, but powering all.
273
287
  email:
274
288
  - nitroux@powerhrg.com
@@ -1336,9 +1350,9 @@ files:
1336
1350
  - app/pb_kits/playbook/pb_line_graph/lineGraphSettings.js
1337
1351
  - app/pb_kits/playbook/pb_line_graph/line_graph.html.erb
1338
1352
  - app/pb_kits/playbook/pb_line_graph/line_graph.rb
1339
- - app/pb_kits/playbook/pb_list/_list.jsx
1340
1353
  - app/pb_kits/playbook/pb_list/_list.scss
1341
- - app/pb_kits/playbook/pb_list/_list_item.jsx
1354
+ - app/pb_kits/playbook/pb_list/_list.tsx
1355
+ - app/pb_kits/playbook/pb_list/_list_item.tsx
1342
1356
  - app/pb_kits/playbook/pb_list/_list_mixin.scss
1343
1357
  - app/pb_kits/playbook/pb_list/docs/_description.md
1344
1358
  - app/pb_kits/playbook/pb_list/docs/_list_borderless.html.erb
@@ -1463,6 +1477,11 @@ files:
1463
1477
  - app/pb_kits/playbook/pb_online_status/docs/index.js
1464
1478
  - app/pb_kits/playbook/pb_online_status/online_status.html.erb
1465
1479
  - app/pb_kits/playbook/pb_online_status/online_status.rb
1480
+ - app/pb_kits/playbook/pb_paginate/_paginate.scss
1481
+ - app/pb_kits/playbook/pb_paginate/docs/_paginate_default.html.erb
1482
+ - app/pb_kits/playbook/pb_paginate/docs/example.yml
1483
+ - app/pb_kits/playbook/pb_paginate/paginate.html.erb
1484
+ - app/pb_kits/playbook/pb_paginate/paginate.rb
1466
1485
  - app/pb_kits/playbook/pb_passphrase/_passphrase.jsx
1467
1486
  - app/pb_kits/playbook/pb_passphrase/_passphrase.scss
1468
1487
  - app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb
@@ -1533,8 +1552,8 @@ files:
1533
1552
  - app/pb_kits/playbook/pb_pill/docs/index.js
1534
1553
  - app/pb_kits/playbook/pb_pill/pill.html.erb
1535
1554
  - app/pb_kits/playbook/pb_pill/pill.rb
1536
- - app/pb_kits/playbook/pb_popover/_popover.jsx
1537
1555
  - app/pb_kits/playbook/pb_popover/_popover.scss
1556
+ - app/pb_kits/playbook/pb_popover/_popover.tsx
1538
1557
  - app/pb_kits/playbook/pb_popover/docs/_description.md
1539
1558
  - app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb
1540
1559
  - app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx
@@ -1549,9 +1568,10 @@ files:
1549
1568
  - app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx
1550
1569
  - app/pb_kits/playbook/pb_popover/docs/example.yml
1551
1570
  - app/pb_kits/playbook/pb_popover/docs/index.js
1552
- - app/pb_kits/playbook/pb_popover/index.js
1571
+ - app/pb_kits/playbook/pb_popover/index.ts
1553
1572
  - app/pb_kits/playbook/pb_popover/popover.html.erb
1554
1573
  - app/pb_kits/playbook/pb_popover/popover.rb
1574
+ - app/pb_kits/playbook/pb_popover/popover.test.js
1555
1575
  - app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx
1556
1576
  - app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss
1557
1577
  - app/pb_kits/playbook/pb_progress_pills/docs/_description.md
@@ -2141,6 +2161,7 @@ files:
2141
2161
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb
2142
2162
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.jsx
2143
2163
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_context.html.erb
2164
+ - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_highlight.jsx
2144
2165
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb
2145
2166
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx
2146
2167
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.md
@@ -2259,6 +2280,7 @@ files:
2259
2280
  - app/pb_kits/playbook/utilities/_max_width.scss
2260
2281
  - app/pb_kits/playbook/utilities/_mixins.scss
2261
2282
  - app/pb_kits/playbook/utilities/_number_spacing.scss
2283
+ - app/pb_kits/playbook/utilities/_pagination.scss
2262
2284
  - app/pb_kits/playbook/utilities/_positioning.scss
2263
2285
  - app/pb_kits/playbook/utilities/_shadow.scss
2264
2286
  - app/pb_kits/playbook/utilities/_spacing.scss
@@ -2324,6 +2346,7 @@ files:
2324
2346
  - lib/playbook/markdown/template_handler.rb
2325
2347
  - lib/playbook/number_spacing.rb
2326
2348
  - lib/playbook/order.rb
2349
+ - lib/playbook/pagination_renderer.rb
2327
2350
  - lib/playbook/pb_doc_helper.rb
2328
2351
  - lib/playbook/pb_forms_helper.rb
2329
2352
  - lib/playbook/pb_kit_helper.rb
@@ -2362,9 +2385,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2362
2385
  version: '0'
2363
2386
  required_rubygems_version: !ruby/object:Gem::Requirement
2364
2387
  requirements:
2365
- - - ">="
2388
+ - - ">"
2366
2389
  - !ruby/object:Gem::Version
2367
- version: '0'
2390
+ version: 1.3.1
2368
2391
  requirements: []
2369
2392
  rubygems_version: 3.3.7
2370
2393
  signing_key: