playbook_ui 12.24.0.pre.alpha.railsmultilevelimprovements749 → 12.24.0

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.
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "redcarpet"
4
+ require "rouge"
5
+ require "rouge/plugins/redcarpet"
6
+ require "action_view"
7
+
8
+ module Playbook
9
+ module Markdown
10
+ module Helper
11
+ def self.call(template, _source)
12
+ markdown(template.source)
13
+ end
14
+
15
+ def render_markdown(text)
16
+ # rubocop:disable Security/Eval
17
+ eval(Playbook::Markdown::Helper.markdown(text))
18
+ # rubocop:enable Security/Eval
19
+ end
20
+
21
+ def self.markdown(text)
22
+ options = {
23
+ filter_html: false,
24
+ hard_wrap: true,
25
+ link_attributes: { rel: "nofollow", target: "_blank" },
26
+ space_after_headers: true,
27
+ fenced_code_blocks: true,
28
+ no_styles: false,
29
+ safe_links_only: true,
30
+ }
31
+
32
+ extensions = {
33
+ lax_spacing: true,
34
+ no_intra_emphasis: true,
35
+ autolink: true,
36
+ superscript: true,
37
+ fenced_code_blocks: true,
38
+ tables: true,
39
+ disable_indented_code_blocks: false,
40
+ strikethrough: true,
41
+ underline: true,
42
+ highlight: true,
43
+ footnotes: true,
44
+ with_toc_data: true,
45
+ }
46
+
47
+ renderer = HTMLBlockCode.new(options)
48
+ # toc_renderer = Redcarpet::Render::HTML_TOC.new(with_toc_data: true)
49
+ # @TOC = Redcarpet::Markdown.new(toc_renderer)
50
+ # puts "TOC: #{@TOC.inspect}"
51
+ markdown = Redcarpet::Markdown.new(renderer, extensions)
52
+ "#{markdown.render(text).inspect}.html_safe;"
53
+ end
54
+
55
+ def rouge(text, language)
56
+ formatter = Rouge::Formatters::HTML.new(scope: ".highlight")
57
+ lexer = Rouge::Lexer.find(language)
58
+ formatter.format(lexer.lex(text))
59
+ end
60
+
61
+ class HTML < Redcarpet::Render::HTML
62
+ include Rouge::Plugins::Redcarpet
63
+ end
64
+
65
+ def rouge_markdown(text)
66
+ render_options = {
67
+ filter_html: true,
68
+ hard_wrap: true,
69
+ link_attributes: { rel: "nofollow" },
70
+ }
71
+ renderer = HTML.new(render_options)
72
+
73
+ extensions = {
74
+ autolink: true,
75
+ fenced_code_blocks: true,
76
+ lax_spacing: true,
77
+ no_intra_emphasis: true,
78
+ strikethrough: true,
79
+ superscript: true,
80
+ }
81
+ markdown = Redcarpet::Markdown.new(renderer, extensions)
82
+ markdown.render(text)
83
+ end
84
+ end
85
+
86
+ class HTMLWithPants < Redcarpet::Render::HTML
87
+ include Redcarpet::Render::SmartyPants
88
+ end
89
+
90
+ class HTML < Redcarpet::Render::HTML
91
+ include Rouge::Plugins::Redcarpet
92
+ end
93
+
94
+ class HTMLBlockCode < Redcarpet::Render::HTML
95
+ include ActionView::Helpers::AssetTagHelper
96
+
97
+ # def block_code(code, language)
98
+ # "\n.nf\n#{normal_text(rouge(code, language))}\n.fi\n"
99
+ # end
100
+
101
+ def table(header, body)
102
+ "<table class='pb_table table-sm table-responsive-collapse table-card table-collapse-sm'>" \
103
+ "<thead>#{header}</thead>" \
104
+ "<tbody>#{body}</tbody>" \
105
+ "</table>"
106
+ end
107
+
108
+ def header(title, level)
109
+ @headers ||= []
110
+ permalink = title.gsub(/\W+/, "-")
111
+ if @headers.include?(permalink)
112
+ permalink += "_1"
113
+ loop do
114
+ break unless @headers.include?(permalink)
115
+
116
+ permalink.gsub!(/_(\d+)$/, "_#{Regexp.last_match(1).to_i + 1}")
117
+ end
118
+ end
119
+ @headers << permalink
120
+ permalink_markup = %(<a name="#{permalink}" class="markdown-header-anchor" )
121
+ permalink_markup += %(href="##{permalink}"><span class="far fa-link markdown-header-anchor-icon"></span></a>)
122
+ %(\n<h#{level} id="#{permalink}">#{title} #{permalink_markup}</h#{level}>\n)
123
+ end
124
+
125
+ def image(link, title, alt_text)
126
+ return nil if link.nil?
127
+
128
+ %(<a href="#{link}" target="_blank">#{image_tag(link, title: title, alt: alt_text, class: 'imageloader lazyload')}</a>)
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "playbook/markdown/helper"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "12.24.0"
5
- VERSION = "12.24.0.pre.alpha.railsmultilevelimprovements749"
4
+ PREVIOUS_VERSION = "12.23.0"
5
+ VERSION = "12.24.0"
6
6
  end
data/lib/playbook.rb CHANGED
@@ -8,9 +8,10 @@ require "playbook/props"
8
8
  require "playbook/forms"
9
9
  require "playbook/pb_forms_helper"
10
10
  require "playbook/pb_kit_helper"
11
- require "playbook/pb_doc_helper" # Duplicated from website (Temp)
11
+ require "playbook/pb_doc_helper"
12
12
  require "playbook/kit_base"
13
13
  require "playbook/kit_resolver"
14
+ require "playbook/markdown"
14
15
 
15
16
  module Playbook
16
17
  ROOT_PATH = Pathname.new(File.join(__dir__, ".."))
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.24.0.pre.alpha.railsmultilevelimprovements749
4
+ version: 12.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
8
8
  - Power Devs
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-06-08 00:00:00.000000000 Z
12
+ date: 2023-05-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -67,6 +67,34 @@ dependencies:
67
67
  - - '='
68
68
  - !ruby/object:Gem::Version
69
69
  version: 2.6.1
70
+ - !ruby/object:Gem::Dependency
71
+ name: redcarpet
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.6'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.6'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rouge
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.15'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.15'
70
98
  - !ruby/object:Gem::Dependency
71
99
  name: view_component
72
100
  requirement: !ruby/object:Gem::Requirement
@@ -255,9 +283,7 @@ dependencies:
255
283
  - - '='
256
284
  - !ruby/object:Gem::Version
257
285
  version: 3.3.1
258
- description: Playbook UI is built out in Ruby View Components and React Components.
259
- Playbook takes a modern design approach and applies it in a way that makes it easy
260
- to support bleeding edge or legacy systems.
286
+ description: Playbook Design System. Built for Nitro, but powering all.
261
287
  email:
262
288
  - nitroux@powerhrg.com
263
289
  - dev@powerhrg.com
@@ -879,6 +905,8 @@ files:
879
905
  - app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_default.jsx
880
906
  - app/pb_kits/playbook/pb_distribution_bar/docs/example.yml
881
907
  - app/pb_kits/playbook/pb_distribution_bar/docs/index.js
908
+ - app/pb_kits/playbook/pb_docs/kit_api.html.erb
909
+ - app/pb_kits/playbook/pb_docs/kit_api.rb
882
910
  - app/pb_kits/playbook/pb_docs/kit_example.html.erb
883
911
  - app/pb_kits/playbook/pb_docs/kit_example.rb
884
912
  - app/pb_kits/playbook/pb_enhanced_element/element_observer.ts
@@ -1413,7 +1441,6 @@ files:
1413
1441
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.html.erb
1414
1442
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.jsx
1415
1443
  - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.md
1416
- - app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_form.html.erb
1417
1444
  - app/pb_kits/playbook/pb_multi_level_select/docs/example.yml
1418
1445
  - app/pb_kits/playbook/pb_multi_level_select/docs/index.js
1419
1446
  - app/pb_kits/playbook/pb_multi_level_select/helper_functions.ts
@@ -2404,7 +2431,6 @@ files:
2404
2431
  - app/pb_kits/playbook/utilities/test/globalProps/order.test.js
2405
2432
  - app/pb_kits/playbook/utilities/text.ts
2406
2433
  - dist/menu.yml
2407
- - dist/playbook-rails.js
2408
2434
  - dist/reset.css
2409
2435
  - lib/playbook.rb
2410
2436
  - lib/playbook/align_content.rb
@@ -2426,7 +2452,6 @@ files:
2426
2452
  - lib/playbook/forms/builder/collection_select_field.rb
2427
2453
  - lib/playbook/forms/builder/date_picker_field.rb
2428
2454
  - lib/playbook/forms/builder/form_field_builder.rb
2429
- - lib/playbook/forms/builder/multi_level_select_field.rb
2430
2455
  - lib/playbook/forms/builder/select_field.rb
2431
2456
  - lib/playbook/forms/builder/typeahead_field.rb
2432
2457
  - lib/playbook/justify_content.rb
@@ -2434,6 +2459,8 @@ files:
2434
2459
  - lib/playbook/kit_base.rb
2435
2460
  - lib/playbook/kit_resolver.rb
2436
2461
  - lib/playbook/line_height.rb
2462
+ - lib/playbook/markdown.rb
2463
+ - lib/playbook/markdown/helper.rb
2437
2464
  - lib/playbook/number_spacing.rb
2438
2465
  - lib/playbook/order.rb
2439
2466
  - lib/playbook/pagination_renderer.rb
@@ -2461,11 +2488,11 @@ files:
2461
2488
  - lib/playbook/version.rb
2462
2489
  - lib/playbook/z_index.rb
2463
2490
  - lib/playbook_ui.rb
2464
- homepage: https://playbook.powerapp.cloud/
2491
+ homepage: http://playbook.powerapp.cloud
2465
2492
  licenses:
2466
2493
  - ISC
2467
2494
  metadata: {}
2468
- post_install_message:
2495
+ post_install_message:
2469
2496
  rdoc_options: []
2470
2497
  require_paths:
2471
2498
  - lib
@@ -2476,12 +2503,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
2476
2503
  version: '0'
2477
2504
  required_rubygems_version: !ruby/object:Gem::Requirement
2478
2505
  requirements:
2479
- - - ">"
2506
+ - - ">="
2480
2507
  - !ruby/object:Gem::Version
2481
- version: 1.3.1
2508
+ version: '0'
2482
2509
  requirements: []
2483
2510
  rubygems_version: 3.3.7
2484
- signing_key:
2511
+ signing_key:
2485
2512
  specification_version: 4
2486
2513
  summary: Playbook Design System
2487
2514
  test_files: []
@@ -1,72 +0,0 @@
1
- <%= pb_form_with(scope: :example, url: "", method: :get) do |form| %>
2
-
3
- <% treeData = [{
4
- label: "Power Home Remodeling",
5
- value: "Power Home Remodeling",
6
- id: "powerhome1",
7
- expanded: true,
8
- children: [
9
- {
10
- label: "People",
11
- value: "People",
12
- id: "people1",
13
- children: [
14
- {
15
- label: "Talent Acquisition",
16
- value: "Talent Acquisition",
17
- id: "talent1",
18
- },
19
- {
20
- label: "Business Affairs",
21
- value: "Business Affairs",
22
- id: "business1",
23
- children: [
24
- {
25
- label: "Initiatives",
26
- value: "Initiatives",
27
- id: "initiative1",
28
- },
29
- {
30
- label: "Learning & Development",
31
- value: "Learning & Development",
32
- id: "development1",
33
- },
34
- ],
35
- },
36
- {
37
- label: "People Experience",
38
- value: "People Experience",
39
- id: "experience1",
40
- },
41
- ],
42
- },
43
- {
44
- label: "Contact Center",
45
- value: "Contact Center",
46
- id: "contact1",
47
- children: [
48
- {
49
- label: "Appointment Management",
50
- value: "Appointment Management",
51
- id: "appointment1",
52
- },
53
- {
54
- label: "Customer Service",
55
- value: "Customer Service",
56
- id: "customer1",
57
- },
58
- {
59
- label: "Energy",
60
- value: "Energy",
61
- id: "energy1",
62
- },
63
- ],
64
- },
65
- ],
66
- }] %>
67
-
68
- <%= form.multi_level_select :example, props: {id: "with-form-multi-level-select", tree_data: treeData } %>
69
- <%= form.actions do |action| %>
70
- <%= action.button props: { type: "submit", text: "Submit", variant: "primary", margin_top: "lg" } %>
71
- <% end %>
72
- <% end %>