playbook_ui 12.24.0.pre.alpha.railsmultilevelimprovements749 → 12.24.0

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