openproject-primer_view_components 0.47.1 → 0.48.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/CHANGELOG.md +10 -0
- data/app/assets/styles/primer_view_components.css +1 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/open_project/page_header.css +1 -1
- data/app/components/primer/open_project/page_header.css.json +2 -0
- data/app/components/primer/open_project/page_header.css.map +1 -1
- data/app/components/primer/open_project/page_header.html.erb +5 -1
- data/app/components/primer/open_project/page_header.pcss +8 -0
- data/app/components/primer/open_project/page_header.rb +2 -20
- data/lib/primer/view_components/version.rb +2 -2
- data/previews/primer/open_project/page_header_preview.rb +1 -1
- data/static/classes.json +3 -0
- data/static/info_arch.json +0 -19
- metadata +2 -2
@@ -1 +1 @@
|
|
1
|
-
.PageHeader{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted);display:flex;flex-flow:column;margin-bottom:var(--stack-gap-normal);padding-bottom:var(--stack-padding-condensed)}.PageHeader--withTabNav{border-bottom:none;margin-bottom:0;padding-bottom:0}.PageHeader-contextBar,.PageHeader-titleBar{align-items:center;display:flex;flex-flow:row;justify-content:flex-end;margin-bottom:var(--base-size-8)}.PageHeader-title{flex:1 1 auto;font-size:var(--text-title-size-medium);font-weight:var(--base-text-weight-normal)}.PageHeader-title--large{font-size:var(--text-title-size-large)}.PageHeader-description{color:var(--fgColor-muted);flex:1 100%;font-size:var(--text-body-size-medium)}.PageHeader--withTabNav .PageHeader-description{margin-bottom:var(--base-size-16)}.PageHeader-actions{align-items:center;display:flex;justify-content:flex-end}.PageHeader-breadcrumbs{display:block;width:100%}.PageHeader-leadingAction{margin-right:var(--base-size-4);margin-top:2px}.PageHeader-parentLink{flex:1 1 auto}
|
1
|
+
.PageHeader{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted);display:flex;flex-flow:column;margin-bottom:var(--stack-gap-normal);padding-bottom:var(--stack-padding-condensed)}.PageHeader--withTabNav{border-bottom:none;margin-bottom:0;padding-bottom:0}.PageHeader-contextBar,.PageHeader-titleBar{align-items:center;display:flex;flex-flow:row;justify-content:flex-end;margin-bottom:var(--base-size-8)}.PageHeader-title{flex:1 1 auto;font-size:var(--text-title-size-medium);font-weight:var(--base-text-weight-normal)}.PageHeader-title--large{font-size:var(--text-title-size-large)}.PageHeader-description{color:var(--fgColor-muted);flex:1 100%;font-size:var(--text-body-size-medium)}.PageHeader-tabNavBar{overflow:auto}.PageHeader-tabNavBar .PageHeader-tabNav{min-width:max-content}.PageHeader--withTabNav .PageHeader-description{margin-bottom:var(--base-size-16)}.PageHeader-actions{align-items:center;display:flex;justify-content:flex-end}.PageHeader-breadcrumbs{display:block;width:100%}.PageHeader-leadingAction{margin-right:var(--base-size-4);margin-top:2px}.PageHeader-parentLink{flex:1 1 auto}
|
@@ -8,6 +8,8 @@
|
|
8
8
|
".PageHeader-title",
|
9
9
|
".PageHeader-title--large",
|
10
10
|
".PageHeader-description",
|
11
|
+
".PageHeader-tabNavBar",
|
12
|
+
".PageHeader-tabNavBar .PageHeader-tabNav",
|
11
13
|
".PageHeader--withTabNav .PageHeader-description",
|
12
14
|
".PageHeader-actions",
|
13
15
|
".PageHeader-breadcrumbs",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["page_header.pcss"],"names":[],"mappings":"AAEA,YAIE,oEAAqE,CAHrE,YAAa,CAIb,gBAAiB,CAFjB,qCAAsC,CADtC,6CAIF,CAEA,wBACE,kBAAmB,CAEnB,eAAgB,CADhB,gBAEF,CAUA,4CAIE,kBAAmB,CAHnB,YAAa,CACb,aAAc,CACd,wBAAyB,CAEzB,gCACF,CAEA,kBAGE,aAAc,CAFd,uCAAwC,CACxC,0CAEF,CAEA,yBACE,sCACF,CAGA,wBAEE,0BAA2B,CAC3B,WAAY,CAFZ,sCAGF,CAEA,gDACE,iCACF,CAEA,oBAGE,kBAAmB,CADnB,YAAa,CADb,wBAGF,CAEA,wBACE,aAAc,CACd,UACF,CAEA,0BAEE,+BAAgC,CADhC,cAEF,CAEA,uBACE,aACF","file":"page_header.css","sourcesContent":["/* OP PageHeader */\n\n.PageHeader {\n display: flex;\n padding-bottom: var(--stack-padding-condensed);\n margin-bottom: var(--stack-gap-normal);\n border-bottom: var(--borderWidth-thin) solid var(--borderColor-muted);\n flex-flow: column;\n}\n\n.PageHeader--withTabNav {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n.PageHeader-contextBar {\n display: flex;\n flex-flow: row;\n justify-content: flex-end;\n align-items: center;\n margin-bottom: var(--base-size-8);\n}\n\n.PageHeader-titleBar {\n display: flex;\n flex-flow: row;\n justify-content: flex-end;\n align-items: center; /* Keep back button vertically aligned. */\n margin-bottom: var(--base-size-8);\n}\n\n.PageHeader-title {\n font-size: var(--text-title-size-medium);\n font-weight: var(--base-text-weight-normal);\n flex: 1 1 auto;\n}\n\n.PageHeader-title--large {\n font-size: var(--text-title-size-large);\n}\n\n/* One-liner of supporting text */\n.PageHeader-description {\n font-size: var(--text-body-size-medium);\n color: var(--fgColor-muted);\n flex: 1 100%;\n}\n\n.PageHeader--withTabNav .PageHeader-description {\n margin-bottom: var(--base-size-16);\n}\n\n.PageHeader-actions {\n justify-content: flex-end;\n display: flex;\n align-items: center;\n}\n\n.PageHeader-breadcrumbs {\n display: block;\n width: 100%;\n}\n\n.PageHeader-leadingAction {\n margin-top: 2px; /* to center align with label */\n margin-right: var(--base-size-4);\n}\n\n.PageHeader-parentLink {\n flex: 1 1 auto;\n}\n"]}
|
1
|
+
{"version":3,"sources":["page_header.pcss"],"names":[],"mappings":"AAEA,YAIE,oEAAqE,CAHrE,YAAa,CAIb,gBAAiB,CAFjB,qCAAsC,CADtC,6CAIF,CAEA,wBACE,kBAAmB,CAEnB,eAAgB,CADhB,gBAEF,CAUA,4CAIE,kBAAmB,CAHnB,YAAa,CACb,aAAc,CACd,wBAAyB,CAEzB,gCACF,CAEA,kBAGE,aAAc,CAFd,uCAAwC,CACxC,0CAEF,CAEA,yBACE,sCACF,CAGA,wBAEE,0BAA2B,CAC3B,WAAY,CAFZ,sCAGF,CAEA,sBACE,aACF,CAEA,yCACE,qBACF,CAEA,gDACE,iCACF,CAEA,oBAGE,kBAAmB,CADnB,YAAa,CADb,wBAGF,CAEA,wBACE,aAAc,CACd,UACF,CAEA,0BAEE,+BAAgC,CADhC,cAEF,CAEA,uBACE,aACF","file":"page_header.css","sourcesContent":["/* OP PageHeader */\n\n.PageHeader {\n display: flex;\n padding-bottom: var(--stack-padding-condensed);\n margin-bottom: var(--stack-gap-normal);\n border-bottom: var(--borderWidth-thin) solid var(--borderColor-muted);\n flex-flow: column;\n}\n\n.PageHeader--withTabNav {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n.PageHeader-contextBar {\n display: flex;\n flex-flow: row;\n justify-content: flex-end;\n align-items: center;\n margin-bottom: var(--base-size-8);\n}\n\n.PageHeader-titleBar {\n display: flex;\n flex-flow: row;\n justify-content: flex-end;\n align-items: center; /* Keep back button vertically aligned. */\n margin-bottom: var(--base-size-8);\n}\n\n.PageHeader-title {\n font-size: var(--text-title-size-medium);\n font-weight: var(--base-text-weight-normal);\n flex: 1 1 auto;\n}\n\n.PageHeader-title--large {\n font-size: var(--text-title-size-large);\n}\n\n/* One-liner of supporting text */\n.PageHeader-description {\n font-size: var(--text-body-size-medium);\n color: var(--fgColor-muted);\n flex: 1 100%;\n}\n\n.PageHeader-tabNavBar {\n overflow: auto;\n}\n\n.PageHeader-tabNavBar .PageHeader-tabNav {\n min-width: max-content;\n}\n\n.PageHeader--withTabNav .PageHeader-description {\n margin-bottom: var(--base-size-16);\n}\n\n.PageHeader-actions {\n justify-content: flex-end;\n display: flex;\n align-items: center;\n}\n\n.PageHeader-breadcrumbs {\n display: block;\n width: 100%;\n}\n\n.PageHeader-leadingAction {\n margin-top: 2px; /* to center align with label */\n margin-right: var(--base-size-4);\n}\n\n.PageHeader-parentLink {\n flex: 1 1 auto;\n}\n"]}
|
@@ -47,6 +47,14 @@
|
|
47
47
|
flex: 1 100%;
|
48
48
|
}
|
49
49
|
|
50
|
+
.PageHeader-tabNavBar {
|
51
|
+
overflow: auto;
|
52
|
+
}
|
53
|
+
|
54
|
+
.PageHeader-tabNavBar .PageHeader-tabNav {
|
55
|
+
min-width: max-content;
|
56
|
+
}
|
57
|
+
|
50
58
|
.PageHeader--withTabNav .PageHeader-description {
|
51
59
|
margin-bottom: var(--base-size-16);
|
52
60
|
}
|
@@ -190,10 +190,9 @@ module Primer
|
|
190
190
|
if items.length > 1
|
191
191
|
link_arguments = {}
|
192
192
|
parent_item = items[items.length - 2]
|
193
|
-
parsed_parent_item = anchor_tag_string?(parent_item) ? anchor_string_to_object(parent_item) : parent_item
|
194
193
|
|
195
194
|
link_arguments[:icon] = fetch_or_fallback(BACK_BUTTON_ICON_OPTIONS, DEFAULT_BACK_BUTTON_ICON)
|
196
|
-
link_arguments[:href] =
|
195
|
+
link_arguments[:href] = parent_item[:href]
|
197
196
|
link_arguments[:target] = "_top"
|
198
197
|
|
199
198
|
link_arguments[:classes] = class_names(link_arguments[:classes], "PageHeader-parentLink")
|
@@ -203,14 +202,12 @@ module Primer
|
|
203
202
|
render(Primer::Beta::Octicon.new(icon: "arrow-left",
|
204
203
|
"aria-label": I18n.t("button_back"),
|
205
204
|
mr: 2)
|
206
|
-
) + content_tag(:span,
|
205
|
+
) + content_tag(:span, parent_item[:text])
|
207
206
|
end
|
208
207
|
end
|
209
208
|
|
210
209
|
render(Primer::Beta::Breadcrumbs.new(**system_arguments)) do |breadcrumbs|
|
211
210
|
items.each do |item|
|
212
|
-
item = anchor_string_to_object(item) if anchor_tag_string?(item)
|
213
|
-
|
214
211
|
if item.is_a?(String)
|
215
212
|
breadcrumbs.with_item(href: "#", font_weight: selected_item_font_weight) { item }
|
216
213
|
else
|
@@ -331,21 +328,6 @@ module Primer
|
|
331
328
|
@mobile_action_block = block
|
332
329
|
end
|
333
330
|
end
|
334
|
-
|
335
|
-
# transform anchor tag strings to {href, text} objects
|
336
|
-
# e.g "\u003ca href=\"/admin\"\u003eAdministration\u003c/a\u003e"
|
337
|
-
def anchor_string_to_object(html_string)
|
338
|
-
# Parse the HTML
|
339
|
-
doc = Nokogiri::HTML.fragment(html_string)
|
340
|
-
# Extract href and text
|
341
|
-
anchor = doc.at("a")
|
342
|
-
{ href: anchor["href"], text: anchor.text }
|
343
|
-
end
|
344
|
-
|
345
|
-
# Check if the item is an anchor tag string e.g "\u003ca href=\"/admin\"\u003eAdministration\u003c/a\u003e"
|
346
|
-
def anchor_tag_string?(item)
|
347
|
-
item.is_a?(String) && item.start_with?("\u003c")
|
348
|
-
end
|
349
331
|
end
|
350
332
|
end
|
351
333
|
end
|
@@ -182,7 +182,7 @@ module Primer
|
|
182
182
|
def non_bold_breadcrumbs
|
183
183
|
breadcrumb_items = [
|
184
184
|
{ href: "/foo", text: "Foo" },
|
185
|
-
|
185
|
+
{ href: "/foo/bar", text: "Bar" },
|
186
186
|
"Test: <b>Baz</b>".html_safe
|
187
187
|
]
|
188
188
|
render(Primer::OpenProject::PageHeader.new) do |header|
|
data/static/classes.json
CHANGED
data/static/info_arch.json
CHANGED
@@ -18076,26 +18076,7 @@
|
|
18076
18076
|
}
|
18077
18077
|
],
|
18078
18078
|
"methods": [
|
18079
|
-
{
|
18080
|
-
"name": "anchor_string_to_object",
|
18081
|
-
"description": "transform anchor tag strings to {href, text} objects\ne.g \"\\u003ca href=\\\"/admin\\\"\\u003eAdministration\\u003c/a\\u003e\"",
|
18082
|
-
"parameters": [
|
18083
|
-
|
18084
|
-
],
|
18085
|
-
"return_types": [
|
18086
18079
|
|
18087
|
-
]
|
18088
|
-
},
|
18089
|
-
{
|
18090
|
-
"name": "anchor_tag_string?",
|
18091
|
-
"description": "Check if the item is an anchor tag string e.g \"\\u003ca href=\\\"/admin\\\"\\u003eAdministration\\u003c/a\\u003e\"",
|
18092
|
-
"parameters": [
|
18093
|
-
|
18094
|
-
],
|
18095
|
-
"return_types": [
|
18096
|
-
"Boolean"
|
18097
|
-
]
|
18098
|
-
}
|
18099
18080
|
],
|
18100
18081
|
"previews": [
|
18101
18082
|
{
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openproject-primer_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.48.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-10-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionview
|