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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_docs/kit_api.html.erb +311 -0
- data/app/pb_kits/playbook/pb_docs/kit_api.rb +149 -0
- data/app/pb_kits/playbook/pb_docs/kit_example.rb +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +0 -13
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.html.erb +4 -4
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +0 -3
- data/lib/playbook/forms/builder.rb +0 -1
- data/lib/playbook/markdown/helper.rb +132 -0
- data/lib/playbook/markdown.rb +3 -0
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook.rb +2 -1
- metadata +41 -14
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_form.html.erb +0 -72
- data/dist/playbook-rails.js +0 -51
- data/lib/playbook/forms/builder/multi_level_select_field.rb +0 -12
@@ -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
|
data/lib/playbook/version.rb
CHANGED
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"
|
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
|
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-
|
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
|
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:
|
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:
|
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 %>
|