playbook_ui 12.24.0.pre.alpha.play824733 → 12.24.0.pre.alpha.railsmultilevelimprovements739

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,61 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import { Button, FixedConfirmationToast, PhoneNumberInput } from "../../";
3
-
4
- const PhoneNumberInputValidation = (props) => {
5
- const [formErrors, setFormErrors] = useState("");
6
- const [showFormErrors, setShowFormErrors] = useState(false);
7
- const [phoneNumber, setPhoneNumber] = useState("");
8
- const [countryCode, setCountryCode] = useState("af");
9
-
10
- const handleOnValidate = (valid) => {
11
- setFormErrors(
12
- valid ? "" : "Please correct the fields below and try again."
13
- );
14
- };
15
-
16
- const handleOnChange = ({ iso2, number }) => {
17
- setCountryCode(iso2);
18
- setPhoneNumber(number);
19
- };
20
-
21
- const handleOnSubmit = (e) => {
22
- if (showFormErrors) e.preventDefault()
23
- }
24
-
25
- useEffect(() => {
26
- setShowFormErrors(formErrors.length > 0);
27
- }, [formErrors]);
28
-
29
- return (
30
- <form
31
- action=""
32
- method="get"
33
- onSubmit={handleOnSubmit}
34
- >
35
- {showFormErrors && (
36
- <FixedConfirmationToast
37
- closeable
38
- marginBottom="md"
39
- status="error"
40
- text={formErrors}
41
- />
42
- )}
43
- <PhoneNumberInput
44
- error="Missing phone number."
45
- id="validation"
46
- initialCountry={countryCode}
47
- onChange={handleOnChange}
48
- onValidate={handleOnValidate}
49
- required
50
- value={phoneNumber}
51
- {...props}
52
- />
53
- <Button
54
- htmlType="submit"
55
- text="Save Phone Number"
56
- />
57
- </form>
58
- );
59
- };
60
-
61
- export default PhoneNumberInputValidation;
@@ -1,3 +0,0 @@
1
- /* 🛠️ Any commonly used lodash functions can be added here. 🤙 */
2
-
3
- export const isEmpty = (obj: Record<string, unknown>): boolean => Object.keys(obj).length < 1
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Playbook
4
- module Forms
5
- class Builder
6
- def intl_telephone(name, props: {})
7
- props[:name] = name
8
- @template.pb_rails("phone_number_input", props: props)
9
- end
10
- end
11
- end
12
- end
@@ -1,132 +0,0 @@
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
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "playbook/markdown/helper"