playbook_ui 13.32.0.pre.alpha.PBNTR405dropdownformfixesrails3301 → 13.32.0.pre.alpha.PLAY1138iconkitaddcolorprop3268

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -4
  3. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  4. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +7 -12
  5. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -4
  6. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -3
  7. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +4 -3
  8. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +0 -11
  9. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +1 -1
  10. data/app/pb_kits/playbook/pb_dropdown/index.js +17 -75
  11. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +5 -108
  12. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +2 -11
  13. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_example.html.erb +1 -5
  14. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_example.jsx +0 -1
  15. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.html.erb +0 -2
  16. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.jsx +0 -2
  17. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_tag.html.erb +1 -4
  18. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_tag.jsx +2 -3
  19. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.html.erb +0 -2
  20. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.jsx +0 -2
  21. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
  22. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +1 -5
  23. data/app/pb_kits/playbook/pb_icon/_icon.scss +27 -210
  24. data/app/pb_kits/playbook/pb_icon/_icon.tsx +44 -100
  25. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.html.erb +7 -0
  26. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.jsx +46 -0
  27. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.md +1 -0
  28. data/app/pb_kits/playbook/pb_icon/docs/example.yml +2 -0
  29. data/app/pb_kits/playbook/pb_icon/docs/index.js +1 -0
  30. data/app/pb_kits/playbook/pb_icon/icon.rb +28 -34
  31. data/app/pb_kits/playbook/pb_icon/icon_aliases.json +39 -0
  32. data/app/pb_kits/playbook/pb_nav/_nav_item.test.js +2 -2
  33. data/app/pb_kits/playbook/pb_nav/docs/example.yml +0 -1
  34. data/app/pb_kits/playbook/pb_nav/nav.rb +0 -9
  35. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/MoreExtensionsDropdown.tsx +1 -1
  36. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +1 -1
  37. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +2 -11
  38. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +1 -1
  39. data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +5 -25
  40. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +0 -6
  41. data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
  42. data/app/pb_kits/playbook/pb_table/index.ts +4 -4
  43. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +1 -1
  44. data/app/pb_kits/playbook/pb_table/subcomponents/_table_cell.tsx +1 -1
  45. data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +1 -1
  46. data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +1 -1
  47. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +1 -1
  48. data/app/pb_kits/playbook/pb_table/table.test.js +0 -2
  49. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
  50. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
  51. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +27 -45
  52. data/app/pb_kits/playbook/pb_textarea/index.tsx +3 -3
  53. data/app/pb_kits/playbook/pb_time/_time.tsx +3 -3
  54. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
  55. data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
  56. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  57. data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +10 -10
  58. data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
  59. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +2 -2
  60. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +2 -1
  61. data/app/pb_kits/playbook/pb_treemap_chart/treemapChart.test.js +0 -2
  62. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +3 -3
  63. data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.tsx +4 -4
  64. data/app/pb_kits/playbook/pb_typeahead/components/Control.tsx +7 -11
  65. data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.tsx +3 -8
  66. data/app/pb_kits/playbook/pb_typeahead/components/MenuList.tsx +1 -6
  67. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +19 -18
  68. data/app/pb_kits/playbook/pb_typeahead/components/Option.tsx +6 -6
  69. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.tsx +6 -6
  70. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.tsx +3 -3
  71. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx +0 -2
  72. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +57 -22
  73. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +2 -2
  74. data/app/pb_kits/playbook/pb_typeahead/index.ts +31 -31
  75. data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
  76. data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +6 -6
  77. data/app/pb_kits/playbook/pb_user_badge/badges/million-dollar.tsx +235 -236
  78. data/app/pb_kits/playbook/pb_user_badge/badges/veteran.tsx +1 -1
  79. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +63 -68
  80. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +2 -2
  81. data/app/pb_kits/playbook/playbook-rails.js +0 -6
  82. data/dist/playbook-rails.js +7 -7
  83. data/lib/playbook/forms/builder.rb +0 -1
  84. data/lib/playbook/version.rb +1 -1
  85. metadata +6 -13
  86. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.html.erb +0 -10
  87. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx +0 -31
  88. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb +0 -10
  89. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx +0 -31
  90. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +0 -53
  91. data/app/pb_kits/playbook/pb_nav/docs/_tab_nav.html.erb +0 -48
  92. data/app/pb_kits/playbook/pb_nav/docs/_tab_nav.md +0 -3
  93. data/app/pb_kits/playbook/pb_nav/index.js +0 -43
  94. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_interactive.html.erb +0 -1
  95. data/app/pb_kits/playbook/pb_star_rating/index.js +0 -50
  96. data/lib/playbook/forms/builder/star_rating_field.rb +0 -14
@@ -14,7 +14,6 @@ module Playbook
14
14
  require_relative "builder/multi_level_select_field"
15
15
  require_relative "builder/phone_number_field"
16
16
  require_relative "builder/dropdown_field"
17
- require_relative "builder/star_rating_field"
18
17
 
19
18
  prepend(FormFieldBuilder.new(:email_field, kit_name: "text_input"))
20
19
  prepend(FormFieldBuilder.new(:number_field, kit_name: "text_input"))
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Playbook
4
4
  PREVIOUS_VERSION = "13.32.0"
5
- VERSION = "13.32.0.pre.alpha.PBNTR405dropdownformfixesrails3301"
5
+ VERSION = "13.32.0.pre.alpha.PLAY1138iconkitaddcolorprop3268"
6
6
  end
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: 13.32.0.pre.alpha.PBNTR405dropdownformfixesrails3301
4
+ version: 13.32.0.pre.alpha.PLAY1138iconkitaddcolorprop3268
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: 2024-07-19 00:00:00.000000000 Z
12
+ date: 2024-07-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -1101,13 +1101,9 @@ files:
1101
1101
  - app/pb_kits/playbook/pb_dropdown/_dropdown.scss
1102
1102
  - app/pb_kits/playbook/pb_dropdown/_dropdown.tsx
1103
1103
  - app/pb_kits/playbook/pb_dropdown/context/index.tsx
1104
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.html.erb
1105
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx
1106
1104
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb
1107
1105
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx
1108
1106
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.md
1109
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb
1110
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx
1111
1107
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb
1112
1108
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx
1113
1109
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx
@@ -1327,7 +1323,6 @@ files:
1327
1323
  - app/pb_kits/playbook/pb_form_group/form_group.rb
1328
1324
  - app/pb_kits/playbook/pb_form_group/form_group.test.js
1329
1325
  - app/pb_kits/playbook/pb_form_pill/_form_pill.scss
1330
- - app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx
1331
1326
  - app/pb_kits/playbook/pb_form_pill/_form_pill.tsx
1332
1327
  - app/pb_kits/playbook/pb_form_pill/docs/_form_pill_example.html.erb
1333
1328
  - app/pb_kits/playbook/pb_form_pill/docs/_form_pill_example.jsx
@@ -1437,6 +1432,9 @@ files:
1437
1432
  - app/pb_kits/playbook/pb_icon/docs/_icon_border.html.erb
1438
1433
  - app/pb_kits/playbook/pb_icon/docs/_icon_border.jsx
1439
1434
  - app/pb_kits/playbook/pb_icon/docs/_icon_border_swift.md
1435
+ - app/pb_kits/playbook/pb_icon/docs/_icon_color.html.erb
1436
+ - app/pb_kits/playbook/pb_icon/docs/_icon_color.jsx
1437
+ - app/pb_kits/playbook/pb_icon/docs/_icon_color.md
1440
1438
  - app/pb_kits/playbook/pb_icon/docs/_icon_custom.html.erb
1441
1439
  - app/pb_kits/playbook/pb_icon/docs/_icon_custom.jsx
1442
1440
  - app/pb_kits/playbook/pb_icon/docs/_icon_custom.md
@@ -1464,6 +1462,7 @@ files:
1464
1462
  - app/pb_kits/playbook/pb_icon/icon.html.erb
1465
1463
  - app/pb_kits/playbook/pb_icon/icon.rb
1466
1464
  - app/pb_kits/playbook/pb_icon/icon.test.js
1465
+ - app/pb_kits/playbook/pb_icon/icon_aliases.json
1467
1466
  - app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss
1468
1467
  - app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx
1469
1468
  - app/pb_kits/playbook/pb_icon_circle/docs/_description.md
@@ -1874,8 +1873,6 @@ files:
1874
1873
  - app/pb_kits/playbook/pb_nav/docs/_subtle_no_highlight_nav.jsx
1875
1874
  - app/pb_kits/playbook/pb_nav/docs/_subtle_with_icons_nav.html.erb
1876
1875
  - app/pb_kits/playbook/pb_nav/docs/_subtle_with_icons_nav.jsx
1877
- - app/pb_kits/playbook/pb_nav/docs/_tab_nav.html.erb
1878
- - app/pb_kits/playbook/pb_nav/docs/_tab_nav.md
1879
1876
  - app/pb_kits/playbook/pb_nav/docs/_with_icons_nav.html.erb
1880
1877
  - app/pb_kits/playbook/pb_nav/docs/_with_icons_nav.jsx
1881
1878
  - app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb
@@ -1883,7 +1880,6 @@ files:
1883
1880
  - app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md
1884
1881
  - app/pb_kits/playbook/pb_nav/docs/example.yml
1885
1882
  - app/pb_kits/playbook/pb_nav/docs/index.js
1886
- - app/pb_kits/playbook/pb_nav/index.js
1887
1883
  - app/pb_kits/playbook/pb_nav/item.html.erb
1888
1884
  - app/pb_kits/playbook/pb_nav/item.rb
1889
1885
  - app/pb_kits/playbook/pb_nav/nav.html.erb
@@ -2338,14 +2334,12 @@ files:
2338
2334
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx
2339
2335
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.html.erb
2340
2336
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx
2341
- - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_interactive.html.erb
2342
2337
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_number_config.html.erb
2343
2338
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_number_config.jsx
2344
2339
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_size_options.html.erb
2345
2340
  - app/pb_kits/playbook/pb_star_rating/docs/_star_rating_size_options.jsx
2346
2341
  - app/pb_kits/playbook/pb_star_rating/docs/example.yml
2347
2342
  - app/pb_kits/playbook/pb_star_rating/docs/index.js
2348
- - app/pb_kits/playbook/pb_star_rating/index.js
2349
2343
  - app/pb_kits/playbook/pb_star_rating/star_rating.html.erb
2350
2344
  - app/pb_kits/playbook/pb_star_rating/star_rating.rb
2351
2345
  - app/pb_kits/playbook/pb_star_rating/star_rating.test.js
@@ -3013,7 +3007,6 @@ files:
3013
3007
  - lib/playbook/forms/builder/multi_level_select_field.rb
3014
3008
  - lib/playbook/forms/builder/phone_number_field.rb
3015
3009
  - lib/playbook/forms/builder/select_field.rb
3016
- - lib/playbook/forms/builder/star_rating_field.rb
3017
3010
  - lib/playbook/forms/builder/typeahead_field.rb
3018
3011
  - lib/playbook/hover.rb
3019
3012
  - lib/playbook/justify_content.rb
@@ -1,10 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- ]
7
-
8
- %>
9
-
10
- <%= pb_rails("dropdown", props: { blank_selection: "Select One...", options: options }) %>
@@ -1,31 +0,0 @@
1
- import React from 'react'
2
- import { Dropdown } from '../../'
3
-
4
- const DropdownBlankSelection = (props) => {
5
- const options = [
6
- {
7
- label: "United States",
8
- value: "United States",
9
- },
10
- {
11
- label: "Canada",
12
- value: "Canada",
13
- },
14
- {
15
- label: "Pakistan",
16
- value: "Pakistan",
17
- }
18
- ];
19
-
20
- return (
21
- <>
22
- <Dropdown
23
- blankSelection="Select one..."
24
- options={options}
25
- {...props}
26
- />
27
- </>
28
- )
29
- }
30
-
31
- export default DropdownBlankSelection
@@ -1,10 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- ]
7
-
8
- %>
9
-
10
- <%= pb_rails("dropdown", props: {options: options, default_value: options.last}) %>
@@ -1,31 +0,0 @@
1
- import React from 'react'
2
- import { Dropdown } from '../../'
3
-
4
- const DropdownDefaultValue = (props) => {
5
- const options = [
6
- {
7
- label: "United States",
8
- value: "United States",
9
- },
10
- {
11
- label: "Canada",
12
- value: "Canada",
13
- },
14
- {
15
- label: "Pakistan",
16
- value: "Pakistan",
17
- }
18
- ];
19
-
20
- return (
21
- <>
22
- <Dropdown
23
- defaultValue={options[2]}
24
- options={options}
25
- {...props}
26
- />
27
- </>
28
- )
29
- }
30
-
31
- export default DropdownDefaultValue
@@ -1,53 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '../utilities/test-utils';
3
- import FormPill from './_form_pill';
4
-
5
- const testId = 'formpill';
6
-
7
- test('should render classname', () => {
8
- render(
9
- <FormPill
10
- data={{ testid: testId }}
11
- text="test"
12
- />
13
- )
14
-
15
- const kit = screen.getByTestId(testId)
16
- expect(kit).toHaveClass('pb_form_pill_kit_primary none')
17
- });
18
-
19
- test('displays text content', () => {
20
- render(
21
- <FormPill
22
- data={{ testid: testId }}
23
- text="test"
24
- />
25
- )
26
-
27
- const text = screen.getByText("test")
28
- expect(text).toBeInTheDocument()
29
- });
30
-
31
- test('displays color variant', () => {
32
- render(
33
- <FormPill
34
- color={"neutral"}
35
- data={{ testid: testId }}
36
- text={"test"}
37
- />
38
- )
39
- const kit = screen.getByTestId(testId)
40
- expect(kit).toHaveClass(`pb_form_pill_kit_neutral none`)
41
- });
42
-
43
- test('displays size variant', () => {
44
- render(
45
- <FormPill
46
- data={{ testid: testId }}
47
- size={"small"}
48
- text={"test"}
49
- />
50
- )
51
- const kit = screen.getByTestId('formpill')
52
- expect(kit).toHaveClass(`pb_form_pill_kit_primary small none`)
53
- });
@@ -1,48 +0,0 @@
1
- <%= pb_rails("nav", props: { orientation: "horizontal", tabbing: true, padding_bottom: "sm" }) do %>
2
- <%= pb_rails("nav/item", props: { text: "About", active: true, data: { pb_tab_target: "about" }, cursor: "pointer" }) %>
3
- <%= pb_rails("nav/item", props: { text: "Case Studies", data: { pb_tab_target: "case_studies" }, cursor: "pointer" }) %>
4
- <%= pb_rails("nav/item", props: { text: "Service", data: { pb_tab_target: "service" }, cursor: "pointer" }) %>
5
- <%= pb_rails("nav/item", props: { text: "Contacts", data: { pb_tab_target: "contacts" }, cursor: "pointer" }) %>
6
- <% end %>
7
-
8
- <div id="about">
9
- <%= pb_rails("body", props: { text: "This is about!" }) %>
10
- </div>
11
-
12
- <div id="case_studies">
13
- <%= pb_rails("body", props: { text: "This is case studies!" }) %>
14
- </div>
15
-
16
- <div id="service">
17
- <%= pb_rails("body", props: { text: "This is service!" }) %>
18
- </div>
19
-
20
- <div id="contacts">
21
- <%= pb_rails("body", props: { text: "This is contacts!" }) %>
22
- </div>
23
-
24
- <script>
25
- // The script in the code snippet below is for demonstrating the active state and NOT needed for the kit to function.
26
- // The active prop can be used to highlight this active state.
27
- const navItemClass = "pb_nav_list_kit_item"
28
- const navItemActiveClass = "pb_nav_list_kit_item_active"
29
- const dataNavItems = "[data-pb-tab-target]"
30
-
31
- const navItemTabs = document.querySelectorAll(dataNavItems)
32
- navItemTabs.forEach(navItemTab => {
33
- navItemTab.addEventListener("click", event => {
34
- const navItemTabs = document.querySelectorAll(dataNavItems)
35
- navItemTabs.forEach(navItemTab => {
36
- if (navItemTab === event.target.closest(dataNavItems)) {
37
- navItemTab.classList.add(navItemActiveClass)
38
- navItemTab.classList.remove(navItemClass)
39
- } else {
40
- if (navItemTab.classList.contains(navItemActiveClass)) {
41
- navItemTab.classList.remove(navItemActiveClass)
42
- navItemTab.classList.add(navItemClass)
43
- }
44
- }
45
- })
46
- })
47
- })
48
- </script>
@@ -1,3 +0,0 @@
1
- The Nav kit can also be used to create dynamic tabbing. To do so, use the boolean `tabbing` prop as shown here.
2
-
3
- All divs you want to use as tabs MUST have an id attached to them. To link the tab to the nav, use the required data attribute `pb_tab_target` on each nav/item and pass it the id of the tab you want linked to that specific nav/item. See code example below to see this in action.
@@ -1,43 +0,0 @@
1
- import PbEnhancedElement from '../pb_enhanced_element'
2
-
3
- const NAV_SELECTOR = '[data-pb-nav-tab]'
4
- const NAV_ITEM_SELECTOR = '[data-pb-tab-target]'
5
-
6
- export default class PbNav extends PbEnhancedElement {
7
- static get selector() {
8
- return NAV_SELECTOR
9
- }
10
-
11
- connect() {
12
- this.hideAndAddEventListeners()
13
- }
14
-
15
- hideAndAddEventListeners() {
16
- const navItems = this.element.querySelectorAll(NAV_ITEM_SELECTOR)
17
- navItems.forEach((navItem) => {
18
- if (!navItem.className.includes('active')) {
19
- this.changeContentDisplay(navItem.dataset.pbTabTarget, 'none')
20
- }
21
-
22
- navItem.addEventListener('click', event => this.handleNavItemClick(event))
23
- })
24
- }
25
-
26
- handleNavItemClick(event) {
27
- event.preventDefault()
28
- const navItem = event.target.closest(NAV_ITEM_SELECTOR)
29
- this.changeContentDisplay(navItem.dataset.pbTabTarget, 'block')
30
-
31
- const navItems = this.element.querySelectorAll(NAV_ITEM_SELECTOR)
32
- navItems.forEach((navItemSelected) => {
33
- if (navItem !== navItemSelected) {
34
- this.changeContentDisplay(navItemSelected.dataset.pbTabTarget, 'none')
35
- }
36
- })
37
- }
38
-
39
- changeContentDisplay(contentId, display) {
40
- const content = document.getElementById(contentId)
41
- content.style.display = display
42
- }
43
- }
@@ -1 +0,0 @@
1
- <%= pb_rails("star_rating", props: { padding_bottom: "xs", variant: "interactive" }) %>
@@ -1,50 +0,0 @@
1
- import PbEnhancedElement from "../pb_enhanced_element";
2
-
3
- const STAR_RATING_SELECTOR = "[data-pb-star-rating]";
4
- const STAR_RATING_INPUT_ID = "star-rating-input";
5
-
6
- export default class PbStarRating extends PbEnhancedElement {
7
- static get selector() {
8
- return STAR_RATING_SELECTOR;
9
- }
10
-
11
- connect() {
12
- this.element.addEventListener("click", (event) => {
13
- const clickedStarId = event.currentTarget.id;
14
- this.updateStarColors(clickedStarId);
15
- this.updateHiddenInputValue(clickedStarId);
16
- });
17
- }
18
-
19
- updateStarColors(clickedStarId) {
20
- const allStars = document.querySelectorAll(STAR_RATING_SELECTOR);
21
-
22
- allStars.forEach(star => {
23
- const starId = star.id;
24
- const icon = star.querySelector(".interactive-star-icon");
25
-
26
- if (icon) {
27
- if (starId <= clickedStarId) {
28
- if (star.classList.contains("yellow_star")) {
29
- icon.classList.add("yellow-star-selected");
30
- } else if (star.classList.contains("primary_star")) {
31
- icon.classList.add("primary-star-selected");
32
- } else if (star.classList.contains("suble_star_light")) {
33
- icon.classList.add("suble-star-selected");
34
- } else {
35
- icon.classList.add("yellow-star-selected");
36
- }
37
- } else {
38
- icon.classList.remove("yellow-star-selected", "primary-star-selected", "suble-star-selected");
39
- }
40
- }
41
- });
42
- }
43
-
44
- updateHiddenInputValue(value) {
45
- const hiddenInput = document.getElementById(STAR_RATING_INPUT_ID);
46
- if (hiddenInput) {
47
- hiddenInput.value = value;
48
- }
49
- }
50
- }
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Playbook
4
- module Forms
5
- class Builder
6
- def star_rating_field(name, props: {})
7
- props[:name] = name
8
- props[:margin_bottom] = "sm"
9
- props[:label] = @template.label(@object_name, name) if props[:label] == true
10
- @template.pb_rails("star_rating", props: props)
11
- end
12
- end
13
- end
14
- end