@agent-ui-kit/web-components 0.0.15 → 0.0.17
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.
- package/dist/agent-ui.css +1 -1
- package/dist/api.colors.json +2 -2
- package/dist/api.colors.yaml +2 -2
- package/dist/api.components.json +1700 -361
- package/dist/api.tokens.json +3 -3
- package/dist/api.tokens.yaml +3 -3
- package/dist/blocks/action-toolbar/action-toolbar.d.ts +0 -0
- package/dist/blocks/agent-artifact-card/agent-artifact-card.d.ts +0 -0
- package/dist/blocks/agent-chat-response/agent-chat-response.d.ts +0 -0
- package/dist/blocks/agent-code-result/agent-code-result.d.ts +0 -0
- package/dist/blocks/agent-context-panel/agent-context-panel.d.ts +0 -0
- package/dist/blocks/agent-feedback-controls/agent-feedback-controls.d.ts +0 -0
- package/dist/blocks/agent-follow-up-chips/agent-follow-up-chips.d.ts +0 -0
- package/dist/blocks/agent-model-selector/agent-model-selector.d.ts +0 -0
- package/dist/blocks/agent-prompt-input/agent-prompt-input.d.ts +0 -0
- package/dist/blocks/agent-streaming-message/agent-streaming-message.d.ts +0 -0
- package/dist/blocks/agent-suggestion-card/agent-suggestion-card.d.ts +0 -0
- package/dist/blocks/agent-task-card/agent-task-card.d.ts +0 -0
- package/dist/blocks/agent-thinking-state/agent-thinking-state.d.ts +0 -0
- package/dist/blocks/agent-tool-use-card/agent-tool-use-card.d.ts +0 -0
- package/dist/blocks/auth-card/auth-card.d.ts +0 -0
- package/dist/blocks/commerce-pricing-table/commerce-pricing-table.d.ts +0 -0
- package/dist/blocks/comms-chat-thread/comms-chat-thread.d.ts +0 -0
- package/dist/blocks/comms-notification-list/comms-notification-list.d.ts +0 -0
- package/dist/blocks/content-article-card/content-article-card.d.ts +0 -0
- package/dist/blocks/dashboard-kpi-grid/dashboard-kpi-grid.d.ts +0 -0
- package/dist/blocks/data-activity-log/data-activity-log.d.ts +0 -0
- package/dist/blocks/data-metric-card/data-metric-card.d.ts +0 -0
- package/dist/blocks/data-table/data-table.d.ts +0 -0
- package/dist/blocks/data-timeline/data-timeline.d.ts +0 -0
- package/dist/blocks/feedback-alert-banner/feedback-alert-banner.d.ts +0 -0
- package/dist/blocks/feedback-empty-state/feedback-empty-state.d.ts +0 -0
- package/dist/blocks/feedback-progress-stepper/feedback-progress-stepper.d.ts +0 -0
- package/dist/blocks/form-settings-section/form-settings-section.d.ts +0 -0
- package/dist/blocks/game-battleship/game-battleship.d.ts +0 -0
- package/dist/blocks/game-chess/game-chess.d.ts +0 -0
- package/dist/blocks/game-connect-four/game-connect-four.d.ts +0 -0
- package/dist/blocks/game-tic-tac-toe/game-tic-tac-toe.d.ts +0 -0
- package/dist/blocks/list-kanban-board/list-kanban-board.d.ts +0 -0
- package/dist/blocks/media-image-gallery/media-image-gallery.d.ts +0 -0
- package/dist/blocks/nav-sidebar/nav-sidebar.d.ts +0 -0
- package/dist/blocks/onboard-stepper/onboard-stepper.d.ts +0 -0
- package/dist/blocks/overlay-confirmation-modal/overlay-confirmation-modal.d.ts +0 -0
- package/dist/blocks/overlay-dropdown-menu/overlay-dropdown-menu.d.ts +0 -0
- package/dist/blocks/user-profile-card/user-profile-card.d.ts +0 -0
- package/dist/blocks/user-team-list/user-team-list.d.ts +0 -0
- package/dist/chunks/{agent-BF_R_HJk.js → agent-XMhz_6OA.js} +27 -22
- package/dist/chunks/{agent-BF_R_HJk.js.map → agent-XMhz_6OA.js.map} +1 -1
- package/dist/chunks/{meter-Dju8ik6C.js → form-oekEhwja.js} +402 -188
- package/dist/chunks/form-oekEhwja.js.map +1 -0
- package/dist/components/agent.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
- package/dist/components/checkbox-group/index.d.ts +1 -0
- package/dist/components/editor.js +1 -1
- package/dist/components/form/form.d.ts +12 -0
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/graph.js +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/noodles/noodle-controller.d.ts +1 -1
- package/dist/components.js +89 -87
- package/dist/docs/blocks/action-toolbar.yaml +73 -0
- package/dist/docs/blocks/agent-artifact-card.yaml +67 -0
- package/dist/docs/blocks/agent-chat-response.yaml +65 -0
- package/dist/docs/blocks/agent-chat.yaml +33 -25
- package/dist/docs/blocks/agent-code-result.yaml +41 -0
- package/dist/docs/blocks/agent-context-panel.yaml +96 -0
- package/dist/docs/blocks/agent-feedback-controls.yaml +101 -0
- package/dist/docs/blocks/agent-follow-up-chips.yaml +37 -0
- package/dist/docs/blocks/agent-model-selector.yaml +83 -0
- package/dist/docs/blocks/agent-prompt-input.yaml +49 -0
- package/dist/docs/blocks/agent-streaming-message.yaml +46 -0
- package/dist/docs/blocks/agent-suggestion-card.yaml +68 -0
- package/dist/docs/blocks/agent-task-card.yaml +112 -0
- package/dist/docs/blocks/agent-thinking-state.yaml +56 -0
- package/dist/docs/blocks/agent-tool-use-card.yaml +142 -0
- package/dist/docs/blocks/announcement-card.yaml +14 -10
- package/dist/docs/blocks/auth-card.yaml +74 -0
- package/dist/docs/blocks/bpm-process.yaml +216 -4
- package/dist/docs/blocks/chart-activity.yaml +12 -10
- package/dist/docs/blocks/chart-card.yaml +14 -11
- package/dist/docs/blocks/chart-donut.yaml +27 -23
- package/dist/docs/blocks/chart-grouped.yaml +14 -11
- package/dist/docs/blocks/chart-horizontal.yaml +13 -10
- package/dist/docs/blocks/chart-interactive.yaml +20 -17
- package/dist/docs/blocks/chart-labeled.yaml +14 -11
- package/dist/docs/blocks/checkout-form.yaml +26 -16
- package/dist/docs/blocks/clinical-trial.yaml +180 -4
- package/dist/docs/blocks/commerce-pricing-table.yaml +142 -0
- package/dist/docs/blocks/comms-chat-thread.yaml +88 -0
- package/dist/docs/blocks/comms-notification-list.yaml +88 -0
- package/dist/docs/blocks/content-article-card.yaml +47 -0
- package/dist/docs/blocks/contributors.yaml +17 -11
- package/dist/docs/blocks/cyber-threat.yaml +158 -4
- package/dist/docs/blocks/dashboard-kpi-grid.yaml +72 -0
- package/dist/docs/blocks/dashboard-layout.yaml +24 -18
- package/dist/docs/blocks/data-activity-log.yaml +99 -0
- package/dist/docs/blocks/data-eng-dag.yaml +222 -6
- package/dist/docs/blocks/data-metric-card.yaml +50 -0
- package/dist/docs/blocks/data-table.yaml +106 -0
- package/dist/docs/blocks/data-timeline.yaml +103 -0
- package/dist/docs/blocks/date-picker.yaml +11 -10
- package/dist/docs/blocks/ddx-workflow.yaml +202 -6
- package/dist/docs/blocks/empty-state.yaml +8 -11
- package/dist/docs/blocks/env-variables.yaml +29 -20
- package/dist/docs/blocks/feature-upgrade.yaml +25 -18
- package/dist/docs/blocks/feedback-alert-banner.yaml +42 -0
- package/dist/docs/blocks/feedback-empty-state.yaml +18 -0
- package/dist/docs/blocks/feedback-progress-stepper.yaml +82 -0
- package/dist/docs/blocks/financial-risk.yaml +161 -4
- package/dist/docs/blocks/flow-editor.yaml +27 -18
- package/dist/docs/blocks/form-settings-section.yaml +129 -0
- package/dist/docs/blocks/game-battleship.yaml +184 -0
- package/dist/docs/blocks/game-chess.yaml +83 -0
- package/dist/docs/blocks/game-connect-four.yaml +80 -0
- package/dist/docs/blocks/game-tic-tac-toe.yaml +51 -0
- package/dist/docs/blocks/gen-ai-pipeline.yaml +232 -5
- package/dist/docs/blocks/issue-assign.yaml +25 -14
- package/dist/docs/blocks/keyboard-shortcuts.yaml +14 -9
- package/dist/docs/blocks/list-kanban-board.yaml +158 -0
- package/dist/docs/blocks/login-branded.yaml +62 -23
- package/dist/docs/blocks/login-email-only.yaml +14 -13
- package/dist/docs/blocks/login-form.yaml +17 -11
- package/dist/docs/blocks/login-simple.yaml +18 -12
- package/dist/docs/blocks/login-social.yaml +21 -14
- package/dist/docs/blocks/login-two-column.yaml +37 -17
- package/dist/docs/blocks/marketing-automation.yaml +209 -4
- package/dist/docs/blocks/media-image-gallery.yaml +39 -0
- package/dist/docs/blocks/member-list.yaml +23 -18
- package/dist/docs/blocks/ml-pipeline.yaml +163 -4
- package/dist/docs/blocks/nav-card.yaml +13 -11
- package/dist/docs/blocks/nav-sidebar.yaml +84 -0
- package/dist/docs/blocks/notification-list.yaml +18 -13
- package/dist/docs/blocks/onboard-stepper.yaml +111 -0
- package/dist/docs/blocks/oncology-pathway.yaml +227 -4
- package/dist/docs/blocks/overlay-confirmation-modal.yaml +60 -0
- package/dist/docs/blocks/overlay-dropdown-menu.yaml +72 -0
- package/dist/docs/blocks/pricing-card.yaml +20 -13
- package/dist/docs/blocks/processing-state.yaml +14 -11
- package/dist/docs/blocks/profile-card.yaml +16 -12
- package/dist/docs/blocks/saas-onboarding.yaml +222 -4
- package/dist/docs/blocks/settings-form.yaml +20 -11
- package/dist/docs/blocks/settings-panel.yaml +22 -22
- package/dist/docs/blocks/sidebar-nav.yaml +21 -15
- package/dist/docs/blocks/signup-form.yaml +17 -11
- package/dist/docs/blocks/stat-cards.yaml +12 -13
- package/dist/docs/blocks/status-card.yaml +20 -17
- package/dist/docs/blocks/suggested-labs.yaml +20 -13
- package/dist/docs/blocks/supply-chain.yaml +160 -4
- package/dist/docs/blocks/survey-card.yaml +21 -13
- package/dist/docs/blocks/tabbed-panel.yaml +21 -15
- package/dist/docs/blocks/team-empty.yaml +8 -9
- package/dist/docs/blocks/usage-billing.yaml +20 -16
- package/dist/docs/blocks/user-profile-card.yaml +52 -0
- package/dist/docs/blocks/user-team-list.yaml +116 -0
- package/dist/docs/components/agent-activity.yaml +27 -7
- package/dist/docs/components/agent-feed.yaml +2 -2
- package/dist/docs/components/agent-prompt.yaml +1 -1
- package/dist/docs/components/agent-seeds.yaml +1 -1
- package/dist/docs/components/breadcrumb.yaml +35 -8
- package/dist/docs/components/button.yaml +14 -2
- package/dist/docs/components/calendar-picker.yaml +3 -2
- package/dist/docs/components/chip.yaml +1 -1
- package/dist/docs/components/color-picker.yaml +33 -7
- package/dist/docs/components/color-slider.yaml +7 -7
- package/dist/docs/components/container.yaml +2 -1
- package/dist/docs/components/heading.yaml +4 -0
- package/dist/docs/components/index.yaml +11 -1
- package/dist/docs/components/input.yaml +10 -9
- package/dist/docs/components/meter.yaml +37 -14
- package/dist/docs/components/nav-item.yaml +7 -7
- package/dist/docs/components/stat.yaml +164 -0
- package/dist/docs/components/stepper.yaml +23 -23
- package/dist/docs/components/time-field.yaml +35 -2
- package/dist/element.js +1 -1
- package/dist/icons.js +137 -128
- package/dist/icons.js.map +1 -1
- package/dist/reactivity.js +1 -1
- package/dist/register.js +299 -297
- package/dist/register.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/traits.js +2 -2
- package/package.json +1 -1
- package/dist/chunks/meter-Dju8ik6C.js.map +0 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: dashboard-kpi-grid
|
|
2
|
+
type: block
|
|
3
|
+
summary: Dashboard page with title, date range, period selector, and 4-card KPI grid with sparklines.
|
|
4
|
+
description: |
|
|
5
|
+
A dashboard overview layout. Header has a title, date range subtitle, and a segmented control for time period selection (24h/7d/30d/90d). Below is a responsive 4-card KPI grid using aui-stat components, each with label, large value, trend direction, change amount, and an aui-sparkline child for inline visualization. Intent attrs (danger, success) color the value when trend direction differs from sentiment.
|
|
6
|
+
components:
|
|
7
|
+
- aui-container
|
|
8
|
+
- aui-inset
|
|
9
|
+
- aui-stack
|
|
10
|
+
- aui-heading
|
|
11
|
+
- aui-text
|
|
12
|
+
- aui-stat
|
|
13
|
+
- aui-segmented-control
|
|
14
|
+
- aui-segment
|
|
15
|
+
- aui-sparkline
|
|
16
|
+
kind: widget
|
|
17
|
+
examples:
|
|
18
|
+
- description: Dashboard page with title, date range, period selector, and 4-card KPI grid with sparklines.
|
|
19
|
+
html: |-
|
|
20
|
+
<aui-stack gap="4">
|
|
21
|
+
|
|
22
|
+
<!-- Dashboard header -->
|
|
23
|
+
<aui-stack direction="row" gap="3" align-items="center">
|
|
24
|
+
<aui-stack gap="1" spacer>
|
|
25
|
+
<aui-heading size="xl">Overview</aui-heading>
|
|
26
|
+
<aui-text muted size="sm">Mon, Mar 10 – Sun, Mar 16</aui-text>
|
|
27
|
+
</aui-stack>
|
|
28
|
+
<aui-segmented-control value="7d" size="sm">
|
|
29
|
+
<aui-segment value="24h">24h</aui-segment>
|
|
30
|
+
<aui-segment value="7d" selected>7d</aui-segment>
|
|
31
|
+
<aui-segment value="30d">30d</aui-segment>
|
|
32
|
+
<aui-segment value="90d">90d</aui-segment>
|
|
33
|
+
</aui-segmented-control>
|
|
34
|
+
</aui-stack>
|
|
35
|
+
|
|
36
|
+
<!-- KPI grid -->
|
|
37
|
+
<aui-stack direction="row" gap="3" wrap>
|
|
38
|
+
|
|
39
|
+
<aui-container kind="widget" bordered spacer min-width="12">
|
|
40
|
+
<aui-inset>
|
|
41
|
+
<aui-stat label="Revenue" value="$48.2k" trend="up" change="+12.3%">
|
|
42
|
+
<aui-sparkline values="40,55,70,60,80,75,95" color="1" highlight="last"></aui-sparkline>
|
|
43
|
+
</aui-stat>
|
|
44
|
+
</aui-inset>
|
|
45
|
+
</aui-container>
|
|
46
|
+
|
|
47
|
+
<aui-container kind="widget" bordered spacer min-width="12">
|
|
48
|
+
<aui-inset>
|
|
49
|
+
<aui-stat label="Users" value="2,847" trend="up" change="+8.1%">
|
|
50
|
+
<aui-sparkline values="50,60,55,70,65,75,90" color="2" highlight="last"></aui-sparkline>
|
|
51
|
+
</aui-stat>
|
|
52
|
+
</aui-inset>
|
|
53
|
+
</aui-container>
|
|
54
|
+
|
|
55
|
+
<aui-container kind="widget" bordered spacer min-width="12">
|
|
56
|
+
<aui-inset>
|
|
57
|
+
<aui-stat label="Conversion" value="4.2%" trend="down" change="−0.3%" danger>
|
|
58
|
+
<aui-sparkline values="70,60,50,55,45,40,35" color="3" highlight="last"></aui-sparkline>
|
|
59
|
+
</aui-stat>
|
|
60
|
+
</aui-inset>
|
|
61
|
+
</aui-container>
|
|
62
|
+
|
|
63
|
+
<aui-container kind="widget" bordered spacer min-width="12">
|
|
64
|
+
<aui-inset>
|
|
65
|
+
<aui-stat label="Latency" value="142ms" trend="down" change="−18ms" success>
|
|
66
|
+
<aui-sparkline values="60,55,65,50,45,40,35" color="4" highlight="last"></aui-sparkline>
|
|
67
|
+
</aui-stat>
|
|
68
|
+
</aui-inset>
|
|
69
|
+
</aui-container>
|
|
70
|
+
|
|
71
|
+
</aui-stack>
|
|
72
|
+
</aui-stack>
|
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
name: dashboard-layout
|
|
2
2
|
type: block
|
|
3
3
|
summary: Application shell with sidebar, page header, and content grid.
|
|
4
|
-
description:
|
|
5
|
-
A production-ready app shell combining a compact sidebar with a
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
description: |
|
|
5
|
+
A production-ready app shell combining a compact sidebar with a main content area. The sidebar uses card kind with elevation for visual separation, aui-nav-item elements with an active state, and a user footer. The main area has a welcoming page header and a responsive grid of aui-stat widgets. This is a starting composition — the content area would hold tables, charts, or lists in a real app.
|
|
6
|
+
components:
|
|
7
|
+
- aui-container
|
|
8
|
+
- aui-header
|
|
9
|
+
- aui-content
|
|
10
|
+
- aui-footer
|
|
11
|
+
- aui-inset
|
|
12
|
+
- aui-stack
|
|
13
|
+
- aui-wrap
|
|
14
|
+
- aui-heading
|
|
15
|
+
- aui-text
|
|
16
|
+
- aui-stat
|
|
17
|
+
- aui-icon
|
|
18
|
+
- aui-avatar
|
|
19
|
+
- aui-nav-item
|
|
13
20
|
kind: card
|
|
14
|
-
|
|
15
21
|
examples:
|
|
16
|
-
-
|
|
22
|
+
- description: Application shell with sidebar, page header, and content grid.
|
|
23
|
+
html: |-
|
|
17
24
|
<aui-stack direction="row" gap="0" style="min-height: 28rem;">
|
|
18
25
|
<!-- Sidebar -->
|
|
19
|
-
<aui-container kind="card" elevation="2" style="width: 14rem;
|
|
26
|
+
<aui-container kind="card" elevation="2" shrink="0" style="width: 14rem;">
|
|
20
27
|
<aui-header>
|
|
21
28
|
<span slot="leading"><aui-avatar square size="sm"><img src="/icon.svg" alt="Acme Inc"></aui-avatar></span>
|
|
22
29
|
<span slot="content"><aui-heading size="md" weight="medium">Acme Inc</aui-heading></span>
|
|
@@ -59,7 +66,7 @@ examples:
|
|
|
59
66
|
<!-- Main -->
|
|
60
67
|
<aui-stack gap="0" spacer>
|
|
61
68
|
<!-- Page header -->
|
|
62
|
-
<aui-header
|
|
69
|
+
<aui-header class="aui-dashboard-layout-page-header">
|
|
63
70
|
<span slot="leading">
|
|
64
71
|
<aui-stack gap="1">
|
|
65
72
|
<aui-heading size="xl">Dashboard</aui-heading>
|
|
@@ -69,19 +76,19 @@ examples:
|
|
|
69
76
|
</aui-header>
|
|
70
77
|
|
|
71
78
|
<!-- Content -->
|
|
72
|
-
<aui-stack
|
|
79
|
+
<aui-stack padding="6">
|
|
73
80
|
<aui-wrap gap="3">
|
|
74
|
-
<aui-container kind="widget" bordered spacer
|
|
81
|
+
<aui-container kind="widget" bordered spacer min-width="11">
|
|
75
82
|
<aui-inset>
|
|
76
83
|
<aui-stat label="Revenue" value="$24,500" trend="up" change="+12%"></aui-stat>
|
|
77
84
|
</aui-inset>
|
|
78
85
|
</aui-container>
|
|
79
|
-
<aui-container kind="widget" bordered spacer
|
|
86
|
+
<aui-container kind="widget" bordered spacer min-width="11">
|
|
80
87
|
<aui-inset>
|
|
81
88
|
<aui-stat label="Active Users" value="1,240" trend="up" change="+8%"></aui-stat>
|
|
82
89
|
</aui-inset>
|
|
83
90
|
</aui-container>
|
|
84
|
-
<aui-container kind="widget" bordered spacer
|
|
91
|
+
<aui-container kind="widget" bordered spacer min-width="11">
|
|
85
92
|
<aui-inset>
|
|
86
93
|
<aui-stat label="Open Tasks" value="17" change="3 overdue"></aui-stat>
|
|
87
94
|
</aui-inset>
|
|
@@ -100,4 +107,3 @@ examples:
|
|
|
100
107
|
</aui-stack>
|
|
101
108
|
</aui-stack>
|
|
102
109
|
</aui-stack>
|
|
103
|
-
description: Full dashboard shell with sidebar, page header, aui-stat widgets, and content placeholder.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
name: data-activity-log
|
|
2
|
+
type: block
|
|
3
|
+
summary: Chronological activity feed with date groups, semantic icons, and filter controls.
|
|
4
|
+
description: |
|
|
5
|
+
A panel listing recent activity entries grouped by date. Header has a title and a segmented control for filtering (All/Changes/Comments). Each date group has an uppercase label and a list of activity items. Each item uses a solid-color avatar with a semantic icon (deploy=success, comment=warning, update=accent, create=success, delete=danger), a text description with bold actor and entity names, optional monospace detail, and a timestamp. Groups are separated by dividers.
|
|
6
|
+
components:
|
|
7
|
+
- aui-container
|
|
8
|
+
- aui-header
|
|
9
|
+
- aui-content
|
|
10
|
+
- aui-inset
|
|
11
|
+
- aui-stack
|
|
12
|
+
- aui-heading
|
|
13
|
+
- aui-text
|
|
14
|
+
- aui-avatar
|
|
15
|
+
- aui-icon
|
|
16
|
+
- aui-segmented-control
|
|
17
|
+
- aui-segment
|
|
18
|
+
- aui-divider
|
|
19
|
+
kind: panel
|
|
20
|
+
examples:
|
|
21
|
+
- description: Chronological activity feed with date groups, semantic icons, and filter controls.
|
|
22
|
+
html: |-
|
|
23
|
+
<aui-container kind="panel" bordered max-width="lg">
|
|
24
|
+
<aui-header>
|
|
25
|
+
<aui-stack direction="row" gap="3" align-items="center">
|
|
26
|
+
<aui-heading size="lg" spacer>Activity</aui-heading>
|
|
27
|
+
<aui-segmented-control value="all" size="sm">
|
|
28
|
+
<aui-segment value="all" selected>All</aui-segment>
|
|
29
|
+
<aui-segment value="changes">Changes</aui-segment>
|
|
30
|
+
<aui-segment value="comments">Comments</aui-segment>
|
|
31
|
+
</aui-segmented-control>
|
|
32
|
+
</aui-stack>
|
|
33
|
+
</aui-header>
|
|
34
|
+
<aui-content>
|
|
35
|
+
<aui-inset>
|
|
36
|
+
<aui-stack gap="4">
|
|
37
|
+
|
|
38
|
+
<!-- Today group -->
|
|
39
|
+
<aui-stack gap="3">
|
|
40
|
+
<aui-heading group>Today</aui-heading>
|
|
41
|
+
|
|
42
|
+
<aui-stack gap="3">
|
|
43
|
+
<aui-stack direction="row" gap="3">
|
|
44
|
+
<aui-avatar size="xs" success shrink="0" solid><aui-icon name="arrow-up" size="xs"></aui-icon></aui-avatar>
|
|
45
|
+
<aui-stack gap="1" spacer>
|
|
46
|
+
<aui-heading size="sm"><strong>Sarah Chen</strong> deployed <strong>v2.4.1</strong> to production</aui-heading>
|
|
47
|
+
<aui-text size="xs" muted style="font-family: var(--aui-font-mono);">commit a1b2c3d</aui-text>
|
|
48
|
+
<aui-text size="xs" muted>2 minutes ago</aui-text>
|
|
49
|
+
</aui-stack>
|
|
50
|
+
</aui-stack>
|
|
51
|
+
|
|
52
|
+
<aui-stack direction="row" gap="3">
|
|
53
|
+
<aui-avatar size="xs" warning shrink="0" solid><aui-icon name="chat-dots" size="xs"></aui-icon></aui-avatar>
|
|
54
|
+
<aui-stack gap="1" spacer>
|
|
55
|
+
<aui-heading size="sm"><strong>Alex Rivera</strong> commented on <strong>Auth flow redesign</strong></aui-heading>
|
|
56
|
+
<aui-text size="xs" muted>15 minutes ago</aui-text>
|
|
57
|
+
</aui-stack>
|
|
58
|
+
</aui-stack>
|
|
59
|
+
|
|
60
|
+
<aui-stack direction="row" gap="3">
|
|
61
|
+
<aui-avatar size="xs" accent shrink="0" solid><aui-icon name="pencil" size="xs"></aui-icon></aui-avatar>
|
|
62
|
+
<aui-stack gap="1" spacer>
|
|
63
|
+
<aui-heading size="sm"><strong>Maria Santos</strong> updated <strong>API rate limits</strong> to 1000 req/min</aui-heading>
|
|
64
|
+
<aui-text size="xs" muted>1 hour ago</aui-text>
|
|
65
|
+
</aui-stack>
|
|
66
|
+
</aui-stack>
|
|
67
|
+
</aui-stack>
|
|
68
|
+
</aui-stack>
|
|
69
|
+
|
|
70
|
+
<aui-divider></aui-divider>
|
|
71
|
+
|
|
72
|
+
<!-- Yesterday group -->
|
|
73
|
+
<aui-stack gap="3">
|
|
74
|
+
<aui-heading group>Yesterday</aui-heading>
|
|
75
|
+
|
|
76
|
+
<aui-stack gap="3">
|
|
77
|
+
<aui-stack direction="row" gap="3">
|
|
78
|
+
<aui-avatar size="xs" success shrink="0" solid><aui-icon name="plus" size="xs"></aui-icon></aui-avatar>
|
|
79
|
+
<aui-stack gap="1" spacer>
|
|
80
|
+
<aui-heading size="sm"><strong>James Wilson</strong> created <strong>Mobile app project</strong></aui-heading>
|
|
81
|
+
<aui-text size="xs" muted style="font-family: var(--aui-font-mono);">3 files added</aui-text>
|
|
82
|
+
<aui-text size="xs" muted>Yesterday at 4:32 PM</aui-text>
|
|
83
|
+
</aui-stack>
|
|
84
|
+
</aui-stack>
|
|
85
|
+
|
|
86
|
+
<aui-stack direction="row" gap="3">
|
|
87
|
+
<aui-avatar size="xs" danger shrink="0" solid><aui-icon name="trash" size="xs"></aui-icon></aui-avatar>
|
|
88
|
+
<aui-stack gap="1" spacer>
|
|
89
|
+
<aui-heading size="sm"><strong>Sarah Chen</strong> deleted <strong>Legacy endpoints</strong></aui-heading>
|
|
90
|
+
<aui-text size="xs" muted>Yesterday at 2:15 PM</aui-text>
|
|
91
|
+
</aui-stack>
|
|
92
|
+
</aui-stack>
|
|
93
|
+
</aui-stack>
|
|
94
|
+
</aui-stack>
|
|
95
|
+
|
|
96
|
+
</aui-stack>
|
|
97
|
+
</aui-inset>
|
|
98
|
+
</aui-content>
|
|
99
|
+
</aui-container>
|
|
@@ -1,9 +1,225 @@
|
|
|
1
1
|
name: data-eng-dag
|
|
2
2
|
type: block
|
|
3
3
|
summary: Airflow-style data engineering DAG with medallion architecture and quality gates.
|
|
4
|
-
description:
|
|
5
|
-
A visual directed acyclic graph representing a modern data engineering pipeline.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
description: |
|
|
5
|
+
A visual directed acyclic graph representing a modern data engineering pipeline. Ingests from S3, Kafka, PostgreSQL CDC, and REST APIs through schema validation, deduplication, and PII scrubbing into a Bronze/Silver/Gold medallion lakehouse architecture with quality checks, aggregation, and BI dashboard refresh.
|
|
6
|
+
components:
|
|
7
|
+
- aui-container
|
|
8
|
+
- aui-text
|
|
9
|
+
- aui-graph-ui
|
|
10
|
+
- aui-graph-layer
|
|
11
|
+
- aui-graph-node
|
|
12
|
+
- aui-graph-noodle
|
|
13
|
+
- aui-graph-port
|
|
14
|
+
examples:
|
|
15
|
+
- description: Airflow-style data engineering DAG with medallion architecture and quality gates.
|
|
16
|
+
html: |-
|
|
17
|
+
<aui-graph-ui connectable style="width: 100%; height: 39rem; min-width: 89rem;">
|
|
18
|
+
<aui-graph-layer name="wires" type="svg">
|
|
19
|
+
<!-- S3 Raw Bucket → Schema Validator -->
|
|
20
|
+
<aui-graph-noodle from="de-s3-raw:right" to="de-schema-val:left" color="accent" weight="2"></aui-graph-noodle>
|
|
21
|
+
<!-- Kafka Stream → Schema Validator -->
|
|
22
|
+
<aui-graph-noodle from="de-kafka:right" to="de-schema-val:left" color="accent" weight="2"></aui-graph-noodle>
|
|
23
|
+
<!-- Kafka Stream → Deduplication -->
|
|
24
|
+
<aui-graph-noodle from="de-kafka:right" to="de-dedup:left" color="accent" weight="2"></aui-graph-noodle>
|
|
25
|
+
<!-- PostgreSQL CDC → Deduplication -->
|
|
26
|
+
<aui-graph-noodle from="de-postgres:right" to="de-dedup:left" color="accent" weight="2"></aui-graph-noodle>
|
|
27
|
+
<!-- PostgreSQL CDC → PII Scrubber -->
|
|
28
|
+
<aui-graph-noodle from="de-postgres:right" to="de-pii:left" color="accent" weight="2"></aui-graph-noodle>
|
|
29
|
+
<!-- REST API Ingest → PII Scrubber -->
|
|
30
|
+
<aui-graph-noodle from="de-api-ingest:right" to="de-pii:left" color="accent" weight="2"></aui-graph-noodle>
|
|
31
|
+
<!-- Schema Validator → Bronze Layer -->
|
|
32
|
+
<aui-graph-noodle from="de-schema-val:right" to="de-bronze:left" color="accent" weight="2"></aui-graph-noodle>
|
|
33
|
+
<!-- Deduplication → Bronze Layer -->
|
|
34
|
+
<aui-graph-noodle from="de-dedup:right" to="de-bronze:left" color="accent" weight="2"></aui-graph-noodle>
|
|
35
|
+
<!-- PII Scrubber → Bronze Layer -->
|
|
36
|
+
<aui-graph-noodle from="de-pii:right" to="de-bronze:left" color="accent" weight="2"></aui-graph-noodle>
|
|
37
|
+
<!-- Bronze Layer → Spark Cleaning Job -->
|
|
38
|
+
<aui-graph-noodle from="de-bronze:right" to="de-spark-clean:left" color="accent" weight="2"></aui-graph-noodle>
|
|
39
|
+
<!-- Bronze Layer → dbt Transform Models -->
|
|
40
|
+
<aui-graph-noodle from="de-bronze:right" to="de-dbt-models:left" color="accent" weight="2"></aui-graph-noodle>
|
|
41
|
+
<!-- Bronze Layer → Great Expectations QA -->
|
|
42
|
+
<aui-graph-noodle from="de-bronze:right" to="de-quality:left" color="danger" weight="2"></aui-graph-noodle>
|
|
43
|
+
<!-- Spark Cleaning Job → Silver Layer -->
|
|
44
|
+
<aui-graph-noodle from="de-spark-clean:right" to="de-silver:left" color="accent" weight="2"></aui-graph-noodle>
|
|
45
|
+
<!-- dbt Transform Models → Silver Layer -->
|
|
46
|
+
<aui-graph-noodle from="de-dbt-models:right" to="de-silver:left" color="accent" weight="2"></aui-graph-noodle>
|
|
47
|
+
<!-- Great Expectations QA → Pipeline Alert -->
|
|
48
|
+
<aui-graph-noodle from="de-quality:bottom" to="de-alert:left" color="danger" weight="2"></aui-graph-noodle>
|
|
49
|
+
<!-- Great Expectations QA → Silver Layer -->
|
|
50
|
+
<aui-graph-noodle from="de-quality:right" to="de-silver:left" color="accent" weight="2"></aui-graph-noodle>
|
|
51
|
+
<!-- Silver Layer → Aggregation Engine -->
|
|
52
|
+
<aui-graph-noodle from="de-silver:bottom" to="de-agg:top" color="accent" weight="2"></aui-graph-noodle>
|
|
53
|
+
<!-- Silver Layer → Gold Layer -->
|
|
54
|
+
<aui-graph-noodle from="de-silver:right" to="de-gold:left" color="accent" weight="2"></aui-graph-noodle>
|
|
55
|
+
<!-- Aggregation Engine → Data Warehouse Sync -->
|
|
56
|
+
<aui-graph-noodle from="de-agg:right" to="de-warehouse:left" color="accent" weight="2"></aui-graph-noodle>
|
|
57
|
+
<!-- Gold Layer → Data Warehouse Sync -->
|
|
58
|
+
<aui-graph-noodle from="de-gold:bottom" to="de-warehouse:top" color="accent" weight="2"></aui-graph-noodle>
|
|
59
|
+
<!-- Data Warehouse Sync → BI Dashboard Refresh -->
|
|
60
|
+
<aui-graph-noodle from="de-warehouse:bottom" to="de-dashboard:top" color="accent" weight="2"></aui-graph-noodle>
|
|
61
|
+
</aui-graph-layer>
|
|
62
|
+
<aui-graph-layer name="content">
|
|
63
|
+
<!-- S3 Raw Bucket -->
|
|
64
|
+
<aui-graph-node x="24" y="46" node-id="de-s3-raw">
|
|
65
|
+
<aui-container kind="card" bordered padding="3" accent>
|
|
66
|
+
<aui-text weight="medium">S3 Raw Bucket</aui-text>
|
|
67
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
68
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
69
|
+
</aui-container>
|
|
70
|
+
</aui-graph-node>
|
|
71
|
+
<!-- Kafka Stream -->
|
|
72
|
+
<aui-graph-node x="24" y="186" node-id="de-kafka">
|
|
73
|
+
<aui-container kind="card" bordered padding="3" accent>
|
|
74
|
+
<aui-text weight="medium">Kafka Stream</aui-text>
|
|
75
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
76
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
77
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
78
|
+
</aui-container>
|
|
79
|
+
</aui-graph-node>
|
|
80
|
+
<!-- PostgreSQL CDC -->
|
|
81
|
+
<aui-graph-node x="24" y="326" node-id="de-postgres">
|
|
82
|
+
<aui-container kind="card" bordered padding="3" accent>
|
|
83
|
+
<aui-text weight="medium">PostgreSQL CDC</aui-text>
|
|
84
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
85
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
86
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
87
|
+
</aui-container>
|
|
88
|
+
</aui-graph-node>
|
|
89
|
+
<!-- REST API Ingest -->
|
|
90
|
+
<aui-graph-node x="24" y="466" node-id="de-api-ingest">
|
|
91
|
+
<aui-container kind="card" bordered padding="3" accent>
|
|
92
|
+
<aui-text weight="medium">REST API Ingest</aui-text>
|
|
93
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
94
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
95
|
+
</aui-container>
|
|
96
|
+
</aui-graph-node>
|
|
97
|
+
<!-- Schema Validator -->
|
|
98
|
+
<aui-graph-node x="260" y="116" node-id="de-schema-val">
|
|
99
|
+
<aui-container kind="card" bordered padding="3" info>
|
|
100
|
+
<aui-text weight="medium">Schema Validator</aui-text>
|
|
101
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
102
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
103
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
104
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
105
|
+
</aui-container>
|
|
106
|
+
</aui-graph-node>
|
|
107
|
+
<!-- Deduplication -->
|
|
108
|
+
<aui-graph-node x="260" y="256" node-id="de-dedup">
|
|
109
|
+
<aui-container kind="card" bordered padding="3" info>
|
|
110
|
+
<aui-text weight="medium">Deduplication</aui-text>
|
|
111
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
112
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
113
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
114
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
115
|
+
</aui-container>
|
|
116
|
+
</aui-graph-node>
|
|
117
|
+
<!-- PII Scrubber -->
|
|
118
|
+
<aui-graph-node x="260" y="396" node-id="de-pii">
|
|
119
|
+
<aui-container kind="card" bordered padding="3" danger>
|
|
120
|
+
<aui-text weight="medium">PII Scrubber</aui-text>
|
|
121
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
122
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
123
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
124
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
125
|
+
</aui-container>
|
|
126
|
+
</aui-graph-node>
|
|
127
|
+
<!-- Bronze Layer (Iceberg) -->
|
|
128
|
+
<aui-graph-node x="500" y="186" node-id="de-bronze">
|
|
129
|
+
<aui-container kind="card" bordered padding="3" warning>
|
|
130
|
+
<aui-text weight="medium">Bronze Layer (Iceberg)</aui-text>
|
|
131
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
132
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
133
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
134
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
135
|
+
</aui-container>
|
|
136
|
+
</aui-graph-node>
|
|
137
|
+
<!-- Spark Cleaning Job -->
|
|
138
|
+
<aui-graph-node x="740" y="116" node-id="de-spark-clean">
|
|
139
|
+
<aui-container kind="card" bordered padding="3" warning>
|
|
140
|
+
<aui-text weight="medium">Spark Cleaning Job</aui-text>
|
|
141
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
142
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
143
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
144
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
145
|
+
</aui-container>
|
|
146
|
+
</aui-graph-node>
|
|
147
|
+
<!-- dbt Transform Models -->
|
|
148
|
+
<aui-graph-node x="740" y="256" node-id="de-dbt-models">
|
|
149
|
+
<aui-container kind="card" bordered padding="3" warning>
|
|
150
|
+
<aui-text weight="medium">dbt Transform Models</aui-text>
|
|
151
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
152
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
153
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
154
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
155
|
+
</aui-container>
|
|
156
|
+
</aui-graph-node>
|
|
157
|
+
<!-- Great Expectations QA -->
|
|
158
|
+
<aui-graph-node x="740" y="396" node-id="de-quality">
|
|
159
|
+
<aui-container kind="card" bordered padding="3" danger>
|
|
160
|
+
<aui-text weight="medium">Great Expectations QA</aui-text>
|
|
161
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
162
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
163
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
164
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
165
|
+
</aui-container>
|
|
166
|
+
</aui-graph-node>
|
|
167
|
+
<!-- Silver Layer -->
|
|
168
|
+
<aui-graph-node x="980" y="186" node-id="de-silver">
|
|
169
|
+
<aui-container kind="card" bordered padding="3" success>
|
|
170
|
+
<aui-text weight="medium">Silver Layer</aui-text>
|
|
171
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
172
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
173
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
174
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
175
|
+
</aui-container>
|
|
176
|
+
</aui-graph-node>
|
|
177
|
+
<!-- Aggregation Engine -->
|
|
178
|
+
<aui-graph-node x="980" y="326" node-id="de-agg">
|
|
179
|
+
<aui-container kind="card" bordered padding="3" success>
|
|
180
|
+
<aui-text weight="medium">Aggregation Engine</aui-text>
|
|
181
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
182
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
183
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
184
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
185
|
+
</aui-container>
|
|
186
|
+
</aui-graph-node>
|
|
187
|
+
<!-- Gold Layer (Analytics) -->
|
|
188
|
+
<aui-graph-node x="1220" y="116" node-id="de-gold">
|
|
189
|
+
<aui-container kind="card" bordered padding="3" success>
|
|
190
|
+
<aui-text weight="medium">Gold Layer (Analytics)</aui-text>
|
|
191
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
192
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
193
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
194
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
195
|
+
</aui-container>
|
|
196
|
+
</aui-graph-node>
|
|
197
|
+
<!-- Data Warehouse Sync -->
|
|
198
|
+
<aui-graph-node x="1220" y="256" node-id="de-warehouse">
|
|
199
|
+
<aui-container kind="card" bordered padding="3" success>
|
|
200
|
+
<aui-text weight="medium">Data Warehouse Sync</aui-text>
|
|
201
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
202
|
+
<aui-graph-port port-id="right" side="right" type="output"></aui-graph-port>
|
|
203
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
204
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
205
|
+
</aui-container>
|
|
206
|
+
</aui-graph-node>
|
|
207
|
+
<!-- BI Dashboard Refresh -->
|
|
208
|
+
<aui-graph-node x="1220" y="396" node-id="de-dashboard">
|
|
209
|
+
<aui-container kind="card" bordered padding="3" info>
|
|
210
|
+
<aui-text weight="medium">BI Dashboard Refresh</aui-text>
|
|
211
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
212
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
213
|
+
<aui-graph-port port-id="bottom" side="bottom" type="output"></aui-graph-port>
|
|
214
|
+
</aui-container>
|
|
215
|
+
</aui-graph-node>
|
|
216
|
+
<!-- Pipeline Alert -->
|
|
217
|
+
<aui-graph-node x="980" y="466" node-id="de-alert">
|
|
218
|
+
<aui-container kind="card" bordered padding="3" danger>
|
|
219
|
+
<aui-text weight="medium">Pipeline Alert</aui-text>
|
|
220
|
+
<aui-graph-port port-id="left" side="left" type="input"></aui-graph-port>
|
|
221
|
+
<aui-graph-port port-id="top" side="top" type="input"></aui-graph-port>
|
|
222
|
+
</aui-container>
|
|
223
|
+
</aui-graph-node>
|
|
224
|
+
</aui-graph-layer>
|
|
225
|
+
</aui-graph-ui>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: data-metric-card
|
|
2
|
+
type: block
|
|
3
|
+
summary: Row of KPI metric widgets with sparklines and trend indicators.
|
|
4
|
+
description: |
|
|
5
|
+
A responsive row of four compact metric cards using the aui-stat component. Each stat displays a label, large numeric value, trend direction with change amount, and an aui-sparkline child for inline visualization. Cards wrap responsively via flex-wrap. Each card uses the widget kind for compact density.
|
|
6
|
+
components:
|
|
7
|
+
- aui-container
|
|
8
|
+
- aui-inset
|
|
9
|
+
- aui-stack
|
|
10
|
+
- aui-stat
|
|
11
|
+
- aui-sparkline
|
|
12
|
+
kind: widget
|
|
13
|
+
examples:
|
|
14
|
+
- description: Row of KPI metric widgets with sparklines and trend indicators.
|
|
15
|
+
html: |-
|
|
16
|
+
<aui-stack direction="row" gap="3" wrap>
|
|
17
|
+
|
|
18
|
+
<aui-container kind="widget" bordered spacer min-width="10">
|
|
19
|
+
<aui-inset>
|
|
20
|
+
<aui-stat label="Monthly Revenue" value="$48.2k" trend="up" change="+12.3%">
|
|
21
|
+
<aui-sparkline values="40,55,35,70,60,80,95" color="1" highlight="last"></aui-sparkline>
|
|
22
|
+
</aui-stat>
|
|
23
|
+
</aui-inset>
|
|
24
|
+
</aui-container>
|
|
25
|
+
|
|
26
|
+
<aui-container kind="widget" bordered spacer min-width="10">
|
|
27
|
+
<aui-inset>
|
|
28
|
+
<aui-stat label="Active Users" value="2,847" trend="up" change="+8.1%">
|
|
29
|
+
<aui-sparkline values="60,45,55,50,70,65,85" color="2" highlight="last"></aui-sparkline>
|
|
30
|
+
</aui-stat>
|
|
31
|
+
</aui-inset>
|
|
32
|
+
</aui-container>
|
|
33
|
+
|
|
34
|
+
<aui-container kind="widget" bordered spacer min-width="10">
|
|
35
|
+
<aui-inset>
|
|
36
|
+
<aui-stat label="Churn Rate" value="3.2%" trend="up" change="+0.4%" danger>
|
|
37
|
+
<aui-sparkline values="80,70,60,50,55,40,35" color="3" highlight="last"></aui-sparkline>
|
|
38
|
+
</aui-stat>
|
|
39
|
+
</aui-inset>
|
|
40
|
+
</aui-container>
|
|
41
|
+
|
|
42
|
+
<aui-container kind="widget" bordered spacer min-width="10">
|
|
43
|
+
<aui-inset>
|
|
44
|
+
<aui-stat label="Avg. Session" value="4m 32s" trend="up" change="+0:18">
|
|
45
|
+
<aui-sparkline values="50,60,55,70,65,75,90" color="4" highlight="last"></aui-sparkline>
|
|
46
|
+
</aui-stat>
|
|
47
|
+
</aui-inset>
|
|
48
|
+
</aui-container>
|
|
49
|
+
|
|
50
|
+
</aui-stack>
|