@birdycom/omniaui 0.0.0-stage → 0.11.1
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/LICENSE +21 -0
- package/README.md +21 -3
- package/bin/lib/add.mjs +126 -0
- package/bin/lib/catalog.mjs +169 -0
- package/bin/lib/project.mjs +90 -0
- package/bin/omniaui.mjs +70 -0
- package/dist/code-block.css +163 -0
- package/dist/components-extra.css +916 -0
- package/dist/components.css +10171 -0
- package/dist/components.min.css +1 -0
- package/dist/data-table.d.ts +9 -0
- package/dist/data-table.js +505 -0
- package/dist/docs-ui.css +267 -0
- package/dist/oc-theme.css +69 -0
- package/dist/parts/.gitkeep +0 -0
- package/dist/parts/app-accordion-accent.css +60 -0
- package/dist/parts/app-alpha-tabs.css +68 -0
- package/dist/parts/app-busy-overlay.css +25 -0
- package/dist/parts/app-column-menu.css +85 -0
- package/dist/parts/app-confirm-dialog.css +70 -0
- package/dist/parts/app-cookie-consent.css +63 -0
- package/dist/parts/app-data-table.css +174 -0
- package/dist/parts/app-greeting.css +47 -0
- package/dist/parts/app-list-toolbar.css +81 -0
- package/dist/parts/app-page-header.css +54 -0
- package/dist/parts/app-severity-card.css +91 -0
- package/dist/parts/app-sidebar-dark.css +15 -0
- package/dist/parts/app-sortable-row.css +52 -0
- package/dist/parts/app-stat-card.css +68 -0
- package/dist/parts/app-table-actions.css +71 -0
- package/dist/parts/app-table-compact.css +54 -0
- package/dist/parts/app-top-progress.css +68 -0
- package/dist/parts/app-tree.css +104 -0
- package/dist/parts/app-upgrade-banner.css +90 -0
- package/dist/parts/app-version-banner.css +80 -0
- package/dist/parts/data-chart-line.css +167 -0
- package/dist/parts/forms-affix-input.css +75 -0
- package/dist/parts/forms-barcode-input.css +75 -0
- package/dist/parts/forms-chip-filter.css +91 -0
- package/dist/parts/forms-color-select.css +97 -0
- package/dist/parts/forms-decimal-input.css +51 -0
- package/dist/parts/forms-filter-counts.css +94 -0
- package/dist/parts/forms-language-select.css +89 -0
- package/dist/parts/forms-number-input.css +98 -0
- package/dist/parts/forms-password-requirements.css +55 -0
- package/dist/parts/forms-phone-input.css +85 -0
- package/dist/parts/forms-time-input.css +74 -0
- package/dist/parts/forms-toggle-field.css +69 -0
- package/dist/parts/media-art.css +21 -0
- package/dist/parts/media-attachment.css +160 -0
- package/dist/parts/media-browser-frame.css +73 -0
- package/dist/parts/media-card.css +83 -0
- package/dist/parts/media-chat-composer.css +90 -0
- package/dist/parts/media-doc-viewer.css +151 -0
- package/dist/parts/media-emoji-picker.css +88 -0
- package/dist/parts/media-entity-card.css +52 -0
- package/dist/parts/media-flip-card.css +78 -0
- package/dist/parts/media-image-zoom.css +68 -0
- package/dist/parts/media-lightbox.css +131 -0
- package/dist/parts/media-message-thread.css +136 -0
- package/dist/parts/media-message.css +160 -0
- package/dist/parts/media-row.css +78 -0
- package/dist/parts/media-stack-card.css +82 -0
- package/dist/parts/media-terminal-log.css +76 -0
- package/dist/parts/media-thumb.css +71 -0
- package/dist/parts/site-fact-list.css +25 -0
- package/dist/parts/site-link-arrow.css +34 -0
- package/dist/parts/site-marquee.css +34 -0
- package/dist/parts/site-next-teaser.css +75 -0
- package/dist/parts/site-price-card.css +91 -0
- package/dist/parts/site-product-mark.css +66 -0
- package/dist/parts/site-project-card.css +111 -0
- package/dist/parts/site-prose.css +124 -0
- package/dist/parts/site-stack-list.css +48 -0
- package/dist/parts/site-timeline.css +54 -0
- package/dist/showcase.css +404 -0
- package/manifest.json +1108 -0
- package/package.json +69 -6
- package/snippets/accordion-accent.html +24 -0
- package/snippets/accordion.html +11 -0
- package/snippets/affix-input.html +30 -0
- package/snippets/alert-dialog.html +22 -0
- package/snippets/alert.html +5 -0
- package/snippets/alpha-tabs.html +37 -0
- package/snippets/aspect-ratio.html +15 -0
- package/snippets/attachment.html +43 -0
- package/snippets/avatar.html +6 -0
- package/snippets/back-link.html +5 -0
- package/snippets/badge.html +5 -0
- package/snippets/barcode-input.html +18 -0
- package/snippets/breadcrumb.html +6 -0
- package/snippets/browser-frame.html +18 -0
- package/snippets/busy-overlay.html +31 -0
- package/snippets/button-group.html +21 -0
- package/snippets/button.html +8 -0
- package/snippets/calendar.html +43 -0
- package/snippets/card.html +17 -0
- package/snippets/carousel.html +21 -0
- package/snippets/chart-line.html +46 -0
- package/snippets/chart.html +27 -0
- package/snippets/chat-composer.html +21 -0
- package/snippets/checkbox.html +5 -0
- package/snippets/checklist.html +23 -0
- package/snippets/chip-filter.html +14 -0
- package/snippets/code-window.html +20 -0
- package/snippets/collapsible.html +19 -0
- package/snippets/color-field.html +13 -0
- package/snippets/color-select.html +18 -0
- package/snippets/column-menu.html +38 -0
- package/snippets/combobox.html +19 -0
- package/snippets/command.html +24 -0
- package/snippets/confirm-dialog.html +32 -0
- package/snippets/context-menu.html +25 -0
- package/snippets/cookie-consent.html +70 -0
- package/snippets/copy-field.html +19 -0
- package/snippets/counter.html +2 -0
- package/snippets/data-table.html +151 -0
- package/snippets/date-picker.html +32 -0
- package/snippets/decimal-input.html +20 -0
- package/snippets/definition-list.html +20 -0
- package/snippets/demo-panel.html +18 -0
- package/snippets/doc-viewer.html +58 -0
- package/snippets/drawer.html +30 -0
- package/snippets/dropdown-menu.html +27 -0
- package/snippets/dropdown.html +9 -0
- package/snippets/dropzone.html +13 -0
- package/snippets/emoji-picker.html +51 -0
- package/snippets/empty-state.html +17 -0
- package/snippets/entity-card.html +26 -0
- package/snippets/expandable-table.html +26 -0
- package/snippets/fact-list.html +14 -0
- package/snippets/filter-counts.html +30 -0
- package/snippets/flip-card.html +22 -0
- package/snippets/form-field.html +6 -0
- package/snippets/greeting.html +22 -0
- package/snippets/heading.html +14 -0
- package/snippets/hover-card.html +18 -0
- package/snippets/image-zoom.html +30 -0
- package/snippets/input-group.html +10 -0
- package/snippets/input.html +5 -0
- package/snippets/item.html +26 -0
- package/snippets/kbd.html +13 -0
- package/snippets/label.html +9 -0
- package/snippets/language-select.html +26 -0
- package/snippets/launcher-card.html +14 -0
- package/snippets/lightbox.html +50 -0
- package/snippets/link-arrow.html +10 -0
- package/snippets/list-toolbar.html +33 -0
- package/snippets/marquee.html +15 -0
- package/snippets/media-card.html +28 -0
- package/snippets/media-row.html +21 -0
- package/snippets/media-thumb.html +12 -0
- package/snippets/menubar.html +30 -0
- package/snippets/message-thread.html +123 -0
- package/snippets/message.html +51 -0
- package/snippets/modal.html +15 -0
- package/snippets/native-select.html +15 -0
- package/snippets/navmenu.html +23 -0
- package/snippets/next-teaser.html +15 -0
- package/snippets/number-input.html +27 -0
- package/snippets/otp-input.html +9 -0
- package/snippets/page-header.html +24 -0
- package/snippets/pagination.html +6 -0
- package/snippets/password-input.html +24 -0
- package/snippets/password-requirements.html +30 -0
- package/snippets/phone-input.html +22 -0
- package/snippets/popover.html +15 -0
- package/snippets/price-card.html +34 -0
- package/snippets/product-mark.html +13 -0
- package/snippets/progress.html +4 -0
- package/snippets/project-card.html +23 -0
- package/snippets/prose.html +54 -0
- package/snippets/radio.html +17 -0
- package/snippets/recovery-codes.html +20 -0
- package/snippets/resizable.html +16 -0
- package/snippets/scroll-area.html +20 -0
- package/snippets/search.html +8 -0
- package/snippets/segmented.html +11 -0
- package/snippets/select.html +7 -0
- package/snippets/separator.html +15 -0
- package/snippets/severity-card.html +35 -0
- package/snippets/sheet.html +32 -0
- package/snippets/sidebar-docs.html +24 -0
- package/snippets/sidebar.html +55 -0
- package/snippets/site-footer.html +6 -0
- package/snippets/site-header.html +26 -0
- package/snippets/skeleton.html +4 -0
- package/snippets/slider.html +17 -0
- package/snippets/sortable-row.html +31 -0
- package/snippets/spinner.html +14 -0
- package/snippets/stack-card.html +17 -0
- package/snippets/stack-list.html +16 -0
- package/snippets/stat-card.html +24 -0
- package/snippets/stepper.html +13 -0
- package/snippets/switch.html +6 -0
- package/snippets/table-actions.html +39 -0
- package/snippets/table-compact.html +24 -0
- package/snippets/table.html +29 -0
- package/snippets/tabs.html +9 -0
- package/snippets/tag-input.html +60 -0
- package/snippets/terminal-log.html +23 -0
- package/snippets/textarea.html +3 -0
- package/snippets/theme-switch.html +6 -0
- package/snippets/time-input.html +26 -0
- package/snippets/timeline.html +28 -0
- package/snippets/toast-stack.html +10 -0
- package/snippets/toast.html +36 -0
- package/snippets/toc.html +13 -0
- package/snippets/toggle-field.html +20 -0
- package/snippets/toggle.html +22 -0
- package/snippets/tooltip.html +4 -0
- package/snippets/top-progress.html +12 -0
- package/snippets/tree.html +38 -0
- package/snippets/upgrade-banner.html +28 -0
- package/snippets/user.html +15 -0
- package/snippets/version-banner.html +15 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!-- OmniaUI component: tree - Nested tree list on details / summary with a sticky action column - no JavaScript. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/tree.html | Map: tree box -> head row -> list -> folder (details) with child list -> leaf rows
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
.oc-tree: Scroll box (card frame). Modifiers: --flush (no frame), --quiet (actions show on hover / focus). Height: --oc-tree-height.
|
|
5
|
+
.oc-tree-head: Optional root row that sticks to the top
|
|
6
|
+
ul.oc-tree-list: List; a nested list indents one step (--oc-tree-indent)
|
|
7
|
+
details.oc-tree-node: Folder (open = expanded); summary.oc-tree-row is its row
|
|
8
|
+
.oc-tree-row: Row (summary for a folder, div for a leaf). States: aria-current="true" on the row or its label link / .is-selected, .is-muted
|
|
9
|
+
.oc-tree-icon / -label / -count: Icon, name (never wraps), item count
|
|
10
|
+
.oc-tree-actions: Action buttons, pinned to the end edge (position: sticky)
|
|
11
|
+
Slots: head, rows (icon, label, count, actions), nested lists
|
|
12
|
+
-->
|
|
13
|
+
<div class="oc-tree" aria-label="Projects" style="--oc-tree-height:18rem">
|
|
14
|
+
<div class="oc-tree-row oc-tree-head"><span class="oc-tree-label">All projects</span><span class="oc-tree-actions"><button class="oc-btn oc-btn--ghost oc-btn--xs" type="button">New</button></span></div>
|
|
15
|
+
<ul class="oc-tree-list">
|
|
16
|
+
<li>
|
|
17
|
+
<details class="oc-tree-node" open>
|
|
18
|
+
<summary class="oc-tree-row">
|
|
19
|
+
<span class="oc-tree-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg></span>
|
|
20
|
+
<span class="oc-tree-label">Kitchen renovation - Main street 12</span><span class="oc-tree-count">3</span>
|
|
21
|
+
<span class="oc-tree-actions"><button class="oc-table-actions-icon" type="button" aria-label="Add to Kitchen renovation" title="Add">+</button></span>
|
|
22
|
+
</summary>
|
|
23
|
+
<ul class="oc-tree-list">
|
|
24
|
+
<li><div class="oc-tree-row"><span class="oc-tree-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M14 3v6h6"/></svg></span><a class="oc-tree-label" href="#" aria-current="true">Quote v2.pdf</a><span class="oc-tree-actions"><button class="oc-table-actions-icon" type="button" aria-label="Rename Quote v2.pdf" title="Rename">✎</button></span></div></li>
|
|
25
|
+
<li><div class="oc-tree-row"><span class="oc-tree-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M14 3v6h6"/></svg></span><a class="oc-tree-label" href="#">Floor plan with very long file name that scrolls.dwg</a><span class="oc-tree-actions"><button class="oc-table-actions-icon" type="button" aria-label="Rename Floor plan" title="Rename">✎</button></span></div></li>
|
|
26
|
+
</ul>
|
|
27
|
+
</details>
|
|
28
|
+
</li>
|
|
29
|
+
<li>
|
|
30
|
+
<details class="oc-tree-node">
|
|
31
|
+
<summary class="oc-tree-row"><span class="oc-tree-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg></span><span class="oc-tree-label">Bathroom</span><span class="oc-tree-count">1</span></summary>
|
|
32
|
+
<ul class="oc-tree-list">
|
|
33
|
+
<li><div class="oc-tree-row is-muted"><span class="oc-tree-label">Photos (archived)</span></div></li>
|
|
34
|
+
</ul>
|
|
35
|
+
</details>
|
|
36
|
+
</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</div>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!-- OmniaUI component: upgrade-banner - Soft callout for a free plan with limits, a usage meter and an upgrade action. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/upgrade-banner.html | Map: callout -> icon -> body (title + plan, text, usage meter) -> actions -> dismiss
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
.oc-upgrade-banner: Callout (role="note" or aside). Modifiers: --premium (brand gradient frame), --compact (one line). State: hidden attribute. Tone: --oc-upgrade-color.
|
|
5
|
+
.oc-upgrade-banner-icon: Icon in the tone color
|
|
6
|
+
.oc-upgrade-banner-body / -title / -plan / -text: Text column, title row, plan pill, explanation (may contain links)
|
|
7
|
+
.oc-upgrade-banner-usage + meter.oc-upgrade-banner-meter: Label, native meter, "3 / 5"
|
|
8
|
+
.oc-upgrade-banner-actions: Upgrade button and secondary link
|
|
9
|
+
.oc-upgrade-banner-dismiss: Optional X in the corner (your app sets hidden)
|
|
10
|
+
Slots: icon, title, plan, text, usage, actions
|
|
11
|
+
-->
|
|
12
|
+
<aside class="oc-upgrade-banner" aria-label="Plan limits">
|
|
13
|
+
<span class="oc-upgrade-banner-icon" aria-hidden="true"><svg class="" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"/></svg></span>
|
|
14
|
+
<div class="oc-upgrade-banner-body">
|
|
15
|
+
<p class="oc-upgrade-banner-title">You are on the free plan <span class="oc-upgrade-banner-plan">Free</span></p>
|
|
16
|
+
<p class="oc-upgrade-banner-text">Free accounts keep up to 5 projects. Groups, exports and unlimited history come with <a href="#">Premium</a>.</p>
|
|
17
|
+
<div class="oc-upgrade-banner-usage">
|
|
18
|
+
<span>Projects</span>
|
|
19
|
+
<meter class="oc-upgrade-banner-meter" min="0" max="5" low="3" high="4" optimum="0" value="4" aria-label="Projects used">4 of 5</meter>
|
|
20
|
+
<span>4 / 5</span>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="oc-upgrade-banner-actions">
|
|
24
|
+
<a class="oc-btn oc-btn--sm" href="#">Upgrade</a>
|
|
25
|
+
<a class="oc-btn oc-btn--ghost oc-btn--sm" href="#">Compare plans</a>
|
|
26
|
+
</div>
|
|
27
|
+
<button class="oc-upgrade-banner-dismiss" type="button" aria-label="Dismiss">×</button>
|
|
28
|
+
</aside>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!-- OmniaUI component: user - Avatar with name and e-mail, truncating. Needs @birdycom/omniaui CSS.
|
|
2
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
3
|
+
.oc-user: Flex row wrapper
|
|
4
|
+
.oc-avatar: Avatar from the avatar component (initials or img)
|
|
5
|
+
.oc-user-text: Text column
|
|
6
|
+
.oc-user-name: Name (truncates)
|
|
7
|
+
.oc-user-email: Secondary line (truncates)
|
|
8
|
+
-->
|
|
9
|
+
<div class="oc-user">
|
|
10
|
+
<span class="oc-avatar">SC</span>
|
|
11
|
+
<span class="oc-user-text">
|
|
12
|
+
<span class="oc-user-name">Serge Cools</span>
|
|
13
|
+
<span class="oc-user-email">serge@example.com</span>
|
|
14
|
+
</span>
|
|
15
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!-- OmniaUI component: version-banner - Small "new version available - reload" chip; the reload is a plain link to the current page. Needs @birdycom/omniaui CSS.
|
|
2
|
+
File: packages/ui/snippets/version-banner.html | Map: chip -> dot -> long text -> short text -> reload action
|
|
3
|
+
Class API (modifiers are extra classes / attributes on the same element):
|
|
4
|
+
.oc-version-banner: The chip (role="status"). Modifiers: --info, --success (tone; default warning), --floating (fixed bottom end). State: hidden attribute.
|
|
5
|
+
.oc-version-banner-dot: Pulsing dot in the tone color
|
|
6
|
+
.oc-version-banner-text / -short: Long text, and the short text shown instead below 40rem
|
|
7
|
+
.oc-version-banner-action: Reload link (href="") or button
|
|
8
|
+
Slots: text, short text, action
|
|
9
|
+
-->
|
|
10
|
+
<div class="oc-version-banner" role="status">
|
|
11
|
+
<span class="oc-version-banner-dot" aria-hidden="true"></span>
|
|
12
|
+
<span class="oc-version-banner-text">New version (v0.6.0) available - reload the page</span>
|
|
13
|
+
<span class="oc-version-banner-short">New version</span>
|
|
14
|
+
<a class="oc-version-banner-action" href="">Reload</a>
|
|
15
|
+
</div>
|