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.
- 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 %>
|