Compare commits

...

7 commits

Author SHA1 Message Date
00b8012edf fix conflict 2024-10-15 22:18:32 -05:00
be138b2fb4 add middle line 2024-10-15 22:15:20 -05:00
bf84e14bb1 component list 2024-10-15 16:09:31 -05:00
458ad520ca Input required, table (class, href, badge) 2024-10-15 16:09:17 -05:00
f398ebb02d dropdown, href is content 2024-10-15 16:07:18 -05:00
a904773bab Badge 2024-10-15 16:06:49 -05:00
05bd3a01ee Merge pull request 'develop' (#2) from goffee/core:develop into develop
Reviewed-on: diana/core#2
2024-10-14 17:22:05 -04:00
15 changed files with 99 additions and 32 deletions

View file

@ -0,0 +1,7 @@
package components
type ContentBadge struct {
Text string
TypeClass string // type primary, secondary, success, danger, warning, info, light, dark, (default secondary)
IsOutline bool
}

View file

@ -0,0 +1,7 @@
{{define "content_badge"}}
<span class="badge {{if eq .IsOutline true}}
border border-{{.TypeClass}} bg-{{.TypeClass}}-subtle text-{{.TypeClass}}-emphasis
{{else}}
text-bg-{{if .TypeClass}}{{.TypeClass}}{{else}}secondary{{end}}
{{end}} rounded-pill ">{{.Text}}</span>
{{end}}

View file

@ -0,0 +1,15 @@
package components
type ContentDropdown struct {
Label string
TypeClass string // type primary, secondary, success, danger, warning, info, light, dark, link, outline-primary
IsDisabled bool
Items []ContentDropdownItem
}
type ContentDropdownItem struct {
Text string
Link string
IsDisabled bool
IsActive bool
}

View file

@ -1,15 +1,15 @@
{{define "form_dropdown_item"}}
{{define "content_dropdown_item"}}
<li><a class="dropdown-item {{if eq .IsActive true}}active{{end}} {{if eq .IsDisabled true}}disabled{{end}}" href="{{.Link}}">{{.Text}}</a></li>
{{end}}
{{define "form_dropdown"}}
{{define "content_dropdown"}}
<div class="dropdown">
<button class="btn btn-{{.TypeClass}} dropdown-toggle {{if eq .IsDisabled true}}disabled{{end}}" type="button" data-bs-toggle="dropdown" aria-expanded="false">
{{.Label}}
</button>
<ul class="dropdown-menu">
{{ range .Items}}
{{template "form_dropdown_item" .}}
{{template "content_dropdown_item" .}}
{{end}}
</ul>
</div>

View file

@ -1,6 +1,6 @@
package components
type FormHref struct {
type ContentHref struct {
Text string
Link string
Icon string

View file

@ -1,4 +1,4 @@
{{define "form_href"}}
{{define "content_href"}}
<a class="{{if eq .IsButton true}} btn btn-{{.TypeClass}}{{end}} {{if eq .IsDisabled true}}disabled{{end}}"
href="{{.Link}}" {{if eq .IsButton true}}role="button"{{end}} {{if eq .IsDisabled true}}aria-disabled="true"{{end}}>
{{.Text}}

View file

@ -0,0 +1,19 @@
package components
type ContentList struct {
Items []ContentListItem
}
type ContentListItem struct {
Text string
Description string
EndElement string
//Link string
TypeClass string // primary, secondary, success, danger, warning, info, light, dark
IsDisabled bool
//IsActive bool
}
//link
//border
// badge

View file

@ -0,0 +1,14 @@
{{define "content_list"}}
<ul class="list-group">
{{ range .Items}}
<li class="list-group-item text-wrap {{if eq .IsDisabled true}}disabled{{end}} {{if .TypeClass}}list-group-item-{{.TypeClass}}{{end}}"
{{if eq .IsDisabled true}}aria-disabled="true"{{end}}
><div class="d-flex justify-content-between lh-sm"><p class="mb-1">{{.Text}}</p><span class="text-body-secondary ms-5">{{.EndElement}}</span></div>
<small>{{.Description}}</small>
</li>
{{end}}
</ul>
{{end}}

View file

@ -1,17 +1,20 @@
package components
type ContentTable struct {
ID string
AllTH []ContentTableTH
AllTD [][]ContentTableTD
ID string
TableClass string // table-primary, table-secondary,.. table-striped table-bordered
HeadClass string // table-dark table-light
AllTH []ContentTableTH
AllTD [][]ContentTableTD
}
type ContentTableTH struct {
ID string
Value string
ID string
ValueType string // -> default string, href, badge
Value string
}
type ContentTableTD struct {
ID string
Value string
Value interface{} // string or component struct according ValueType
}

View file

@ -1,12 +1,25 @@
{{define "content_table"}}
<table class="table table-hover" {{ if .ID }}id="{{.ID}}"{{end}}>
<thead>
<table class="table table-hover {{.TableClass}}" {{ if .ID }}id="{{.ID}}"{{end}}>
<thead class="{{.HeadClass}}">
<tr>
{{range $index, $col := .AllTH}}<th {{ if .ID }}id="{{.ID}}"{{end}} scope="col">{{ $col.Value }}</th>{{end}}
</tr>
</thead>
<tbody>
{{- range .AllTD}}<tr scope="row">{{range .}}<td {{ if .ID }}id="{{.ID}}"{{end}}>{{ .Value }}</td>{{end}}</tr>{{- end}}
{{- range .AllTD}}<tr scope="row">
{{range $index, $item := .}}<td {{ if $item.ID }}id="{{$item.ID}}"{{end}}>
{{ with $x := index $.AllTH $index }}
{{ if eq $x.ValueType "href"}}
{{template "content_href" $item.Value}}
{{ else if eq $x.ValueType "badge"}}
{{template "content_badge" $item.Value}}
{{ else }}
{{ $item.Value }}
{{end}}
{{end}}
</td>
{{end}}</tr>
{{- end}}
</tbody>
</table>
{{end}}
{{end}}

View file

@ -1,15 +0,0 @@
package components
type FormDropdown struct {
Label string
TypeClass string
IsDisabled bool
Items []FormDropdownItem
}
type FormDropdownItem struct {
Text string
Link string
IsDisabled bool
IsActive bool
}

View file

@ -9,4 +9,5 @@ type FormInput struct {
Hint string
Error string
IsDisabled bool
IsRequired bool
}

View file

@ -5,6 +5,9 @@
{{if eq .IsDisabled true}}
disabled
{{end}}
{{if eq .IsRequired true}}
required
{{end}}
{{if ne .Value ""}}
value="{{.Value}}"
{{end}}

View file

@ -1,7 +1,7 @@
package components
type PageNav struct {
NavClass string // nav-pills
NavClass string // nav-pills, nav-underline
NavItems []PageNavItem
IsVertical bool
IsTab bool

View file

@ -8,7 +8,7 @@
class="nav-link dropdown-toggle {{if eq .IsActive true}}active{{end}} {{if eq .IsDisabled true}}disabled{{end}}">{{$item.Text}}</a>
<ul class="dropdown-menu">
{{ range $item.ChildItems}}
{{template "form_dropdown_item" .}}
{{template "content_dropdown_item" .}}
{{end}}
</ul>
</li>