mirror of
https://github.com/tabler/tabler.git
synced 2026-08-29 13:21:29 +04:00
Fix broken links, aria attributes, and demo data mismatches (#2831)
Co-authored-by: Paweł Kuna <1282324+codecalm@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -16,8 +16,8 @@ interface Props {
|
||||
|
||||
const { toc = [] } = Astro.props
|
||||
|
||||
// shared/data/illustrations.json has 100 entries.
|
||||
const illustrationsCount = 100
|
||||
// shared/data/illustrations.json has 125 entries.
|
||||
const illustrationsCount = 125
|
||||
---
|
||||
|
||||
<!-- BEGIN DOCS TOC -->{
|
||||
|
||||
@@ -33,6 +33,7 @@ const btcBalance = 2.3
|
||||
const btcPriceNum = parseCurrency(btc.price)
|
||||
const totalUsd = Math.round(btcPriceNum * btcBalance).toLocaleString('en-US')
|
||||
// divided_by then round to 8 decimals (trailing zeros dropped in output)
|
||||
const usdBtc = roundTo(1 / btcPriceNum)
|
||||
const ltcBtc = roundTo(parseCurrency(ltc.price) / btcPriceNum)
|
||||
const ethBtc = roundTo(parseCurrency(eth.price) / btcPriceNum)
|
||||
const xmrBtc = roundTo(parseCurrency(xmr.price) / btcPriceNum)
|
||||
@@ -81,7 +82,7 @@ const operationCurrencies = currencies.slice(0, 20)
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-1">
|
||||
<span class="h3">{btc.price}</span>
|
||||
<span class="h3">{usdBtc}</span>
|
||||
<span class="text-muted">{btc.price}</span>
|
||||
</div>
|
||||
<div class="mb-0">
|
||||
|
||||
@@ -60,7 +60,7 @@ const emailEntries = Object.entries(emails)
|
||||
<div class="col-6">
|
||||
<div class="p-7">
|
||||
<Prose>
|
||||
<h3 data-email-title></h3>
|
||||
<h3 id="email-modal-label" data-email-title></h3>
|
||||
<p data-email-description></p>
|
||||
</Prose>
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ const rows = [
|
||||
<div class="col-md-5"><FormGroup label="Country"><select class="form-control form-select"><option value="">Germany</option></select></FormGroup></div>
|
||||
<div class="col-md-12">
|
||||
<FormGroup label="About Me" class="mb-3 mb-0">
|
||||
<textarea rows="5" class="form-control" placeholder="Here can be your description" value="Mike">Oh so, your weak rhyme You doubt I'll bother, reading into it I'll probably won't, left to my own devices But that's the difference in our opinions.</textarea>
|
||||
<textarea rows="5" class="form-control" placeholder="Here can be your description">Oh so, your weak rhyme You doubt I'll bother, reading into it I'll probably won't, left to my own devices But that's the difference in our opinions.</textarea>
|
||||
</FormGroup>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -84,7 +84,7 @@ const countries = flags as { name: string }[]
|
||||
<CardBody>
|
||||
<form class="space-y">
|
||||
<div><InputIcon icon="user" placeholder="Username" prepend /></div>
|
||||
<div><InputIcon icon="mail" placeholder="Email address" prepend type="mail" /></div>
|
||||
<div><InputIcon icon="mail" placeholder="Email address" prepend type="email" /></div>
|
||||
<div><InputIcon icon="lock" placeholder="Password" prepend type="password" /></div>
|
||||
<div><InputIcon icon="lock" placeholder="Confirm Password" prepend type="password" /></div>
|
||||
<div>
|
||||
|
||||
@@ -48,6 +48,7 @@ const cardClass = 'position-relative rounded d-block bg-surface-backdrop py-6 w-
|
||||
<a href="#modal-edit-profile" class="nav-link">Edit profile modal</a>
|
||||
<a href="#modal-confirm-delete" class="nav-link">Confirm delete modal</a>
|
||||
<a href="#modal-change-password" class="nav-link">Change password modal</a>
|
||||
<a href="#modal-add-task" class="nav-link">Add task modal</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
@@ -11,7 +11,7 @@ import ListGroupItem from '@ui/ListGroupItem.astro'
|
||||
<div class="row row-cards">
|
||||
<div class="col-md-6">
|
||||
<Card>
|
||||
<CardHeader title="Podstawowe użycie" />
|
||||
<CardHeader title="Basic usage" />
|
||||
<CardBody>
|
||||
<ListGroup as="ul" data-sortable='{"animation":150}'>
|
||||
<ListGroupItem as="li">Element A</ListGroupItem>
|
||||
@@ -24,7 +24,7 @@ import ListGroupItem from '@ui/ListGroupItem.astro'
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<Card>
|
||||
<CardHeader title="Dwie listy z przenoszeniem" />
|
||||
<CardHeader title="Two lists with drag and drop" />
|
||||
<CardBody>
|
||||
<div class="row g-3">
|
||||
<div class="col-sm-6">
|
||||
|
||||
@@ -16,7 +16,7 @@ const churn = crmDashboard.churn_risk
|
||||
<h3 class="card-title mb-0">Churn risk</h3>
|
||||
</div>
|
||||
<CardActions>
|
||||
<Badge text="3 accounts" color="red" />
|
||||
<Badge text={`${churn.items.length} accounts`} color="red" />
|
||||
</CardActions>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,10 +10,11 @@ interface Props {
|
||||
const { title, type = 'outline' } = Astro.props
|
||||
|
||||
// Dev preview limits icons to 20 (see BaseLayout).
|
||||
// The limit applies before the svg[type] filter — the "filled" card shows only filled icons among the first 20.
|
||||
const limit = 20
|
||||
|
||||
const entries = Object.entries(icons as Record<string, { svg?: Record<string, string | null> }>).slice(0, limit)
|
||||
const entries = Object.entries(icons as Record<string, { svg?: Record<string, string | null> }>)
|
||||
.filter(([, icon]) => icon.svg?.[type])
|
||||
.slice(0, limit)
|
||||
---
|
||||
|
||||
<div class="card">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { formatNumber } from '@shared/lib/string-format'
|
||||
import CardTitle from '@ui/CardTitle.astro'
|
||||
|
||||
const services = 'Instagram:3550,Twitter:1798,Facebook:1245,TikTok:986,Pinterest:854,VK:650,Pinterest:420'.split(',').map((service) => {
|
||||
const services = 'Instagram:3550,Twitter:1798,Facebook:1245,TikTok:986,Pinterest:854,VK:650,LinkedIn:420'.split(',').map((service) => {
|
||||
const [name, visitors] = service.split(':')
|
||||
return { name, visitors: Number(visitors) }
|
||||
})
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<p class="mb-3">Using Storage <strong>6854.45 MB </strong>of 8 GB</p>
|
||||
<p class="mb-3">Using Storage <strong>5760 MB </strong>of 8 GB</p>
|
||||
<div class="progress progress-separated mb-3">
|
||||
<div class="progress-bar bg-primary" role="progressbar" style="width: 44%" aria-label="Regular"></div>
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 19%" aria-label="System"></div>
|
||||
@@ -14,22 +14,22 @@
|
||||
<div class="col-auto d-flex align-items-center pe-2">
|
||||
<span class="legend me-2 bg-primary"></span>
|
||||
<span>Regular</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">915MB</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">3520MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-info"></span>
|
||||
<span>System</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">415MB</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">1520MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center px-2">
|
||||
<span class="legend me-2 bg-success"></span>
|
||||
<span>Shared</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">201MB</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">720MB</span>
|
||||
</div>
|
||||
<div class="col-auto d-flex align-items-center ps-2">
|
||||
<span class="legend me-2"></span>
|
||||
<span>Free</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">612MB</span>
|
||||
<span class="d-none d-md-inline d-lg-none d-xxl-inline ms-2 text-secondary">2240MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,7 +27,7 @@ const rows = (people as Person[]).slice(offset, offset + limit).map((person, idx
|
||||
const status = colors[randomNumber(index + 5, 0, colors.length - 1)]
|
||||
return {
|
||||
person,
|
||||
status,
|
||||
status: status !== 'x' ? status : 'secondary',
|
||||
statusLabel: statusLabels[status],
|
||||
timeago: timeagoLabel(index, 6),
|
||||
}
|
||||
|
||||
@@ -26,16 +26,14 @@ const items = tracks.slice(0, 12)
|
||||
</div>
|
||||
<div class="col-auto text-secondary">{millisecondsToMinutes(track.duration_ms)}</div>
|
||||
<div class="col-auto">
|
||||
<a href="#" class="link-secondary">
|
||||
<button class="switch-icon" data-bs-toggle="switch-icon">
|
||||
<span class="switch-icon-a text-muted">
|
||||
<Icon name="heart" />
|
||||
</span>
|
||||
<span class="switch-icon-b text-red">
|
||||
<Icon name="heart" class="icon-filled" />
|
||||
</span>
|
||||
</button>
|
||||
</a>
|
||||
<button class="switch-icon" data-bs-toggle="switch-icon">
|
||||
<span class="switch-icon-a text-muted">
|
||||
<Icon name="heart" />
|
||||
</span>
|
||||
<span class="switch-icon-b text-red">
|
||||
<Icon name="heart" class="icon-filled" />
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-auto lh-1">
|
||||
<div class="dropdown">
|
||||
|
||||
@@ -27,7 +27,7 @@ const visibilityOptions = ['Private', 'Public', 'Hidden']
|
||||
reports.map((report, index) => (
|
||||
<div class="col-lg-6">
|
||||
<label class="form-selectgroup-item">
|
||||
<input type="radio" name="report-type" value="1" class="form-selectgroup-input" checked={index === 0} />
|
||||
<input type="radio" name="report-type" value={index + 1} class="form-selectgroup-input" checked={index === 0} />
|
||||
<span class="form-selectgroup-label d-flex align-items-center p-3">
|
||||
<span class="me-3">
|
||||
<span class="form-selectgroup-check" />
|
||||
|
||||
@@ -14,10 +14,10 @@ interface Props {
|
||||
|
||||
const { title, pageLibs } = Astro.props
|
||||
|
||||
const base = ''
|
||||
const base = '..'
|
||||
---
|
||||
|
||||
<BaseLayout title={title} pageLibs={pageLibs} bodyClass="body-marketing body-gradient" base="..">
|
||||
<BaseLayout title={title} pageLibs={pageLibs} bodyClass="body-marketing body-gradient" base={base}>
|
||||
<!-- BEGIN NAVBAR -->
|
||||
<MarketingNavbar />
|
||||
<!-- END NAVBAR -->
|
||||
|
||||
Reference in New Issue
Block a user