@hanzo/ui 8.29.10 → 8.29.11
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/agents/Attachments.cjs +1 -1
- package/dist/agents/Attachments.js +1 -1
- package/dist/agents/Attachments.js.map +1 -1
- package/dist/agents/Board.cjs +3 -2
- package/dist/agents/Board.d.ts.map +1 -1
- package/dist/agents/Board.js +3 -2
- package/dist/agents/Board.js.map +1 -1
- package/dist/agents/ChannelMembers.cjs +1 -1
- package/dist/agents/ChannelMembers.js +1 -1
- package/dist/agents/ChannelMembers.js.map +1 -1
- package/dist/agents/DirectoryModal.cjs +1 -1
- package/dist/agents/DirectoryModal.js +1 -1
- package/dist/agents/DirectoryModal.js.map +1 -1
- package/dist/agents/DriveViewer.cjs +6 -5
- package/dist/agents/DriveViewer.d.ts.map +1 -1
- package/dist/agents/DriveViewer.js +6 -5
- package/dist/agents/DriveViewer.js.map +1 -1
- package/dist/agents/FileTabs.cjs +5 -3
- package/dist/agents/FileTabs.d.ts.map +1 -1
- package/dist/agents/FileTabs.js +5 -3
- package/dist/agents/FileTabs.js.map +1 -1
- package/dist/agents/FileTree.cjs +3 -2
- package/dist/agents/FileTree.d.ts.map +1 -1
- package/dist/agents/FileTree.js +3 -2
- package/dist/agents/FileTree.js.map +1 -1
- package/dist/agents/LiveVoiceCall.cjs +1 -1
- package/dist/agents/LiveVoiceCall.js +1 -1
- package/dist/agents/LiveVoiceCall.js.map +1 -1
- package/dist/agents/Pane.cjs +1 -1
- package/dist/agents/Pane.js +1 -1
- package/dist/agents/Pane.js.map +1 -1
- package/dist/agents/Progress.cjs +2 -1
- package/dist/agents/Progress.d.ts.map +1 -1
- package/dist/agents/Progress.js +2 -1
- package/dist/agents/Progress.js.map +1 -1
- package/dist/agents/ShortcutsSheet.cjs +1 -1
- package/dist/agents/ShortcutsSheet.js +1 -1
- package/dist/agents/ShortcutsSheet.js.map +1 -1
- package/dist/agents/Workspace.cjs +6 -4
- package/dist/agents/Workspace.d.ts.map +1 -1
- package/dist/agents/Workspace.js +6 -4
- package/dist/agents/Workspace.js.map +1 -1
- package/dist/auth/SignIn.cjs +2 -1
- package/dist/auth/SignIn.d.ts.map +1 -1
- package/dist/auth/SignIn.js +2 -1
- package/dist/auth/SignIn.js.map +1 -1
- package/dist/backends/gui/alert.cjs +3 -3
- package/dist/backends/gui/alert.js +3 -3
- package/dist/backends/gui/alert.js.map +1 -1
- package/dist/backends/gui/avatar-group.cjs +2 -2
- package/dist/backends/gui/avatar-group.d.ts +1 -1
- package/dist/backends/gui/avatar-group.js +2 -2
- package/dist/backends/gui/avatar-group.js.map +1 -1
- package/dist/backends/gui/banner.cjs +3 -3
- package/dist/backends/gui/banner.js +3 -3
- package/dist/backends/gui/banner.js.map +1 -1
- package/dist/backends/gui/button-group.cjs +1 -1
- package/dist/backends/gui/button-group.js +1 -1
- package/dist/backends/gui/button-group.js.map +1 -1
- package/dist/backends/gui/calendar.cjs +4 -2
- package/dist/backends/gui/calendar.d.ts.map +1 -1
- package/dist/backends/gui/calendar.js +4 -2
- package/dist/backends/gui/calendar.js.map +1 -1
- package/dist/backends/gui/carousel.cjs +4 -3
- package/dist/backends/gui/carousel.d.ts.map +1 -1
- package/dist/backends/gui/carousel.js +4 -3
- package/dist/backends/gui/carousel.js.map +1 -1
- package/dist/backends/gui/chip.cjs +1 -1
- package/dist/backends/gui/chip.js +1 -1
- package/dist/backends/gui/chip.js.map +1 -1
- package/dist/backends/gui/choice.cjs +2 -2
- package/dist/backends/gui/choice.js +2 -2
- package/dist/backends/gui/choice.js.map +1 -1
- package/dist/backends/gui/code-block.cjs +25 -33
- package/dist/backends/gui/code-block.d.ts.map +1 -1
- package/dist/backends/gui/code-block.js +25 -33
- package/dist/backends/gui/code-block.js.map +1 -1
- package/dist/backends/gui/code-editor.cjs +26 -20
- package/dist/backends/gui/code-editor.d.ts +3 -3
- package/dist/backends/gui/code-editor.d.ts.map +1 -1
- package/dist/backends/gui/code-editor.js +26 -20
- package/dist/backends/gui/code-editor.js.map +1 -1
- package/dist/backends/gui/code-surface.cjs +65 -0
- package/dist/backends/gui/code-surface.d.ts +32 -0
- package/dist/backends/gui/code-surface.d.ts.map +1 -0
- package/dist/backends/gui/code-surface.js +60 -0
- package/dist/backends/gui/code-surface.js.map +1 -0
- package/dist/backends/gui/command.cjs +2 -1
- package/dist/backends/gui/command.d.ts.map +1 -1
- package/dist/backends/gui/command.js +2 -1
- package/dist/backends/gui/command.js.map +1 -1
- package/dist/backends/gui/context-menu.cjs +10 -9
- package/dist/backends/gui/context-menu.d.ts +1 -1
- package/dist/backends/gui/context-menu.d.ts.map +1 -1
- package/dist/backends/gui/context-menu.js +10 -9
- package/dist/backends/gui/context-menu.js.map +1 -1
- package/dist/backends/gui/country-select.cjs +2 -1
- package/dist/backends/gui/country-select.d.ts.map +1 -1
- package/dist/backends/gui/country-select.js +2 -1
- package/dist/backends/gui/country-select.js.map +1 -1
- package/dist/backends/gui/data-table.cjs +1 -1
- package/dist/backends/gui/data-table.js +1 -1
- package/dist/backends/gui/data-table.js.map +1 -1
- package/dist/backends/gui/dialog.cjs +1 -1
- package/dist/backends/gui/dialog.js +1 -1
- package/dist/backends/gui/dialog.js.map +1 -1
- package/dist/backends/gui/dir.cjs +67 -0
- package/dist/backends/gui/dir.d.ts +57 -0
- package/dist/backends/gui/dir.d.ts.map +1 -0
- package/dist/backends/gui/dir.js +61 -0
- package/dist/backends/gui/dir.js.map +1 -0
- package/dist/backends/gui/dropdown-menu.cjs +13 -12
- package/dist/backends/gui/dropdown-menu.d.ts +1 -1
- package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
- package/dist/backends/gui/dropdown-menu.js +13 -12
- package/dist/backends/gui/dropdown-menu.js.map +1 -1
- package/dist/backends/gui/field.cjs +1 -1
- package/dist/backends/gui/field.js +1 -1
- package/dist/backends/gui/field.js.map +1 -1
- package/dist/backends/gui/grip.cjs +20 -10
- package/dist/backends/gui/grip.d.ts +8 -5
- package/dist/backends/gui/grip.d.ts.map +1 -1
- package/dist/backends/gui/grip.js +20 -10
- package/dist/backends/gui/grip.js.map +1 -1
- package/dist/backends/gui/image-zoom.cjs +1 -1
- package/dist/backends/gui/image-zoom.js +1 -1
- package/dist/backends/gui/image-zoom.js.map +1 -1
- package/dist/backends/gui/input.cjs +7 -5
- package/dist/backends/gui/input.d.ts.map +1 -1
- package/dist/backends/gui/input.js +7 -5
- package/dist/backends/gui/input.js.map +1 -1
- package/dist/backends/gui/item.cjs +2 -1
- package/dist/backends/gui/item.d.ts.map +1 -1
- package/dist/backends/gui/item.js +2 -1
- package/dist/backends/gui/item.js.map +1 -1
- package/dist/backends/gui/json-tree.cjs +8 -6
- package/dist/backends/gui/json-tree.d.ts +1 -1
- package/dist/backends/gui/json-tree.d.ts.map +1 -1
- package/dist/backends/gui/json-tree.js +8 -6
- package/dist/backends/gui/json-tree.js.map +1 -1
- package/dist/backends/gui/kanban.cjs +1 -1
- package/dist/backends/gui/kanban.js +1 -1
- package/dist/backends/gui/kanban.js.map +1 -1
- package/dist/backends/gui/kbd.cjs +3 -2
- package/dist/backends/gui/kbd.d.ts.map +1 -1
- package/dist/backends/gui/kbd.js +3 -2
- package/dist/backends/gui/kbd.js.map +1 -1
- package/dist/backends/gui/limelight-nav.cjs +4 -2
- package/dist/backends/gui/limelight-nav.d.ts.map +1 -1
- package/dist/backends/gui/limelight-nav.js +4 -2
- package/dist/backends/gui/limelight-nav.js.map +1 -1
- package/dist/backends/gui/link.cjs +1 -1
- package/dist/backends/gui/link.js +1 -1
- package/dist/backends/gui/link.js.map +1 -1
- package/dist/backends/gui/menu-dock.cjs +1 -1
- package/dist/backends/gui/menu-dock.js +1 -1
- package/dist/backends/gui/menu-dock.js.map +1 -1
- package/dist/backends/gui/menubar.cjs +14 -10
- package/dist/backends/gui/menubar.d.ts +1 -1
- package/dist/backends/gui/menubar.d.ts.map +1 -1
- package/dist/backends/gui/menubar.js +14 -10
- package/dist/backends/gui/menubar.js.map +1 -1
- package/dist/backends/gui/message-dock.cjs +9 -5
- package/dist/backends/gui/message-dock.d.ts +2 -2
- package/dist/backends/gui/message-dock.d.ts.map +1 -1
- package/dist/backends/gui/message-dock.js +9 -5
- package/dist/backends/gui/message-dock.js.map +1 -1
- package/dist/backends/gui/navigation-bar.cjs +3 -2
- package/dist/backends/gui/navigation-bar.d.ts.map +1 -1
- package/dist/backends/gui/navigation-bar.js +3 -2
- package/dist/backends/gui/navigation-bar.js.map +1 -1
- package/dist/backends/gui/pagination.cjs +3 -2
- package/dist/backends/gui/pagination.d.ts.map +1 -1
- package/dist/backends/gui/pagination.js +3 -2
- package/dist/backends/gui/pagination.js.map +1 -1
- package/dist/backends/gui/phone-country-picker.cjs +2 -2
- package/dist/backends/gui/phone-country-picker.js +2 -2
- package/dist/backends/gui/phone-country-picker.js.map +1 -1
- package/dist/backends/gui/progress-ring.cjs +1 -1
- package/dist/backends/gui/progress-ring.js +1 -1
- package/dist/backends/gui/progress-ring.js.map +1 -1
- package/dist/backends/gui/resizable.cjs +8 -4
- package/dist/backends/gui/resizable.d.ts.map +1 -1
- package/dist/backends/gui/resizable.js +8 -4
- package/dist/backends/gui/resizable.js.map +1 -1
- package/dist/backends/gui/scroll-area.cjs +2 -2
- package/dist/backends/gui/scroll-area.d.ts.map +1 -1
- package/dist/backends/gui/scroll-area.js +2 -2
- package/dist/backends/gui/scroll-area.js.map +1 -1
- package/dist/backends/gui/search-list.cjs +1 -1
- package/dist/backends/gui/search-list.js +1 -1
- package/dist/backends/gui/search-list.js.map +1 -1
- package/dist/backends/gui/select.cjs +2 -2
- package/dist/backends/gui/select.js +2 -2
- package/dist/backends/gui/select.js.map +1 -1
- package/dist/backends/gui/sheet.cjs +9 -1
- package/dist/backends/gui/sheet.d.ts +6 -1
- package/dist/backends/gui/sheet.d.ts.map +1 -1
- package/dist/backends/gui/sheet.js +9 -1
- package/dist/backends/gui/sheet.js.map +1 -1
- package/dist/backends/gui/shortcut.cjs +3 -2
- package/dist/backends/gui/shortcut.d.ts.map +1 -1
- package/dist/backends/gui/shortcut.js +3 -2
- package/dist/backends/gui/shortcut.js.map +1 -1
- package/dist/backends/gui/snippet.cjs +24 -30
- package/dist/backends/gui/snippet.d.ts.map +1 -1
- package/dist/backends/gui/snippet.js +24 -30
- package/dist/backends/gui/snippet.js.map +1 -1
- package/dist/backends/gui/status.cjs +1 -1
- package/dist/backends/gui/status.js +1 -1
- package/dist/backends/gui/status.js.map +1 -1
- package/dist/backends/gui/step-indicator.cjs +3 -2
- package/dist/backends/gui/step-indicator.d.ts.map +1 -1
- package/dist/backends/gui/step-indicator.js +3 -2
- package/dist/backends/gui/step-indicator.js.map +1 -1
- package/dist/backends/gui/table.cjs +1 -1
- package/dist/backends/gui/table.js +1 -1
- package/dist/backends/gui/table.js.map +1 -1
- package/dist/backends/gui/tabs.cjs +2 -2
- package/dist/backends/gui/tabs.js +2 -2
- package/dist/backends/gui/tabs.js.map +1 -1
- package/dist/backends/gui/terminal.cjs +58 -41
- package/dist/backends/gui/terminal.d.ts +9 -4
- package/dist/backends/gui/terminal.d.ts.map +1 -1
- package/dist/backends/gui/terminal.js +59 -42
- package/dist/backends/gui/terminal.js.map +1 -1
- package/dist/backends/gui/timeline.cjs +5 -5
- package/dist/backends/gui/timeline.js +5 -5
- package/dist/backends/gui/timeline.js.map +1 -1
- package/dist/backends/gui/toaster.cjs +2 -2
- package/dist/backends/gui/toaster.js +2 -2
- package/dist/backends/gui/toaster.js.map +1 -1
- package/dist/catalog/Shelf.cjs +4 -2
- package/dist/catalog/Shelf.d.ts.map +1 -1
- package/dist/catalog/Shelf.js +4 -2
- package/dist/catalog/Shelf.js.map +1 -1
- package/dist/catalog/Tile.cjs +1 -1
- package/dist/catalog/Tile.js +1 -1
- package/dist/catalog/Tile.js.map +1 -1
- package/dist/chat/Composer.cjs +1 -1
- package/dist/chat/Composer.js +1 -1
- package/dist/chat/Composer.js.map +1 -1
- package/dist/chat/Header.cjs +3 -2
- package/dist/chat/Header.d.ts.map +1 -1
- package/dist/chat/Header.js +3 -2
- package/dist/chat/Header.js.map +1 -1
- package/dist/chat/SessionRail.cjs +3 -2
- package/dist/chat/SessionRail.d.ts.map +1 -1
- package/dist/chat/SessionRail.js +3 -2
- package/dist/chat/SessionRail.js.map +1 -1
- package/dist/chat/Sidebar.cjs +4 -3
- package/dist/chat/Sidebar.d.ts.map +1 -1
- package/dist/chat/Sidebar.js +4 -3
- package/dist/chat/Sidebar.js.map +1 -1
- package/dist/code-theme.cjs +78 -37
- package/dist/code-theme.d.ts +86 -34
- package/dist/code-theme.d.ts.map +1 -1
- package/dist/code-theme.js +77 -36
- package/dist/code-theme.js.map +1 -1
- package/dist/consent/Consent.cjs +1 -1
- package/dist/consent/Consent.js +1 -1
- package/dist/consent/Consent.js.map +1 -1
- package/dist/core/index.cjs +2 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/framework/DocTypeDetail.cjs +3 -2
- package/dist/framework/DocTypeDetail.d.ts.map +1 -1
- package/dist/framework/DocTypeDetail.js +3 -2
- package/dist/framework/DocTypeDetail.js.map +1 -1
- package/dist/framework/RecordCards.cjs +2 -1
- package/dist/framework/RecordCards.d.ts.map +1 -1
- package/dist/framework/RecordCards.js +2 -1
- package/dist/framework/RecordCards.js.map +1 -1
- package/dist/gallery/feedback.cjs +9 -2
- package/dist/gallery/feedback.d.ts.map +1 -1
- package/dist/gallery/feedback.js +10 -3
- package/dist/gallery/feedback.js.map +1 -1
- package/dist/gallery/frames.cjs +1 -1
- package/dist/gallery/frames.js +1 -1
- package/dist/gallery/frames.js.map +1 -1
- package/dist/gallery.html +543 -281
- package/dist/gui-config.cjs +21 -18
- package/dist/gui-config.d.ts +8 -8
- package/dist/gui-config.d.ts.map +1 -1
- package/dist/gui-config.js +22 -19
- package/dist/gui-config.js.map +1 -1
- package/dist/index.cjs +6 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +6 -5
- package/dist/index.node.js +5 -5
- package/dist/lang.css +143 -0
- package/dist/marketing/Footer.cjs +1 -1
- package/dist/marketing/Footer.js +1 -1
- package/dist/marketing/Footer.js.map +1 -1
- package/dist/marketing/Plans.cjs +1 -1
- package/dist/marketing/Plans.js +1 -1
- package/dist/marketing/Plans.js.map +1 -1
- package/dist/masthead/Masthead.cjs +5 -5
- package/dist/masthead/Masthead.js +5 -5
- package/dist/masthead/Masthead.js.map +1 -1
- package/dist/onboarding/frame.cjs +2 -1
- package/dist/onboarding/frame.d.ts.map +1 -1
- package/dist/onboarding/frame.js +2 -1
- package/dist/onboarding/frame.js.map +1 -1
- package/dist/product/Charts.cjs +2 -1
- package/dist/product/Charts.d.ts.map +1 -1
- package/dist/product/Charts.js +2 -1
- package/dist/product/Charts.js.map +1 -1
- package/dist/product/CommandMenu.cjs +3 -2
- package/dist/product/CommandMenu.d.ts.map +1 -1
- package/dist/product/CommandMenu.js +3 -2
- package/dist/product/CommandMenu.js.map +1 -1
- package/dist/product/ConnectionBadge.cjs +2 -1
- package/dist/product/ConnectionBadge.d.ts.map +1 -1
- package/dist/product/ConnectionBadge.js +2 -1
- package/dist/product/ConnectionBadge.js.map +1 -1
- package/dist/product/DetailPane.cjs +5 -4
- package/dist/product/DetailPane.d.ts.map +1 -1
- package/dist/product/DetailPane.js +5 -4
- package/dist/product/DetailPane.js.map +1 -1
- package/dist/product/EmptyState.cjs +2 -1
- package/dist/product/EmptyState.d.ts.map +1 -1
- package/dist/product/EmptyState.js +2 -1
- package/dist/product/EmptyState.js.map +1 -1
- package/dist/product/Filters.cjs +3 -1
- package/dist/product/Filters.d.ts.map +1 -1
- package/dist/product/Filters.js +3 -1
- package/dist/product/Filters.js.map +1 -1
- package/dist/product/MenuRow.cjs +3 -2
- package/dist/product/MenuRow.d.ts.map +1 -1
- package/dist/product/MenuRow.js +3 -2
- package/dist/product/MenuRow.js.map +1 -1
- package/dist/product/Pagination.cjs +2 -1
- package/dist/product/Pagination.d.ts.map +1 -1
- package/dist/product/Pagination.js +2 -1
- package/dist/product/Pagination.js.map +1 -1
- package/dist/product/Palette.cjs +1 -1
- package/dist/product/Palette.js +1 -1
- package/dist/product/Palette.js.map +1 -1
- package/dist/product/SiteFooter.cjs +1 -1
- package/dist/product/SiteFooter.js +1 -1
- package/dist/product/SiteFooter.js.map +1 -1
- package/dist/product/SiteNav.cjs +3 -3
- package/dist/product/SiteNav.js +3 -3
- package/dist/product/SiteNav.js.map +1 -1
- package/dist/product/SlideOver.cjs +12 -6
- package/dist/product/SlideOver.d.ts +9 -4
- package/dist/product/SlideOver.d.ts.map +1 -1
- package/dist/product/SlideOver.js +12 -6
- package/dist/product/SlideOver.js.map +1 -1
- package/dist/product/Split.cjs +9 -3
- package/dist/product/Split.d.ts.map +1 -1
- package/dist/product/Split.js +9 -3
- package/dist/product/Split.js.map +1 -1
- package/dist/product/Toast.cjs +2 -2
- package/dist/product/Toast.js +2 -2
- package/dist/product/Toast.js.map +1 -1
- package/dist/product/account.cjs +2 -1
- package/dist/product/account.d.ts.map +1 -1
- package/dist/product/account.js +2 -1
- package/dist/product/account.js.map +1 -1
- package/dist/product/menu/items.cjs +2 -1
- package/dist/product/menu/items.d.ts.map +1 -1
- package/dist/product/menu/items.js +2 -1
- package/dist/product/menu/items.js.map +1 -1
- package/dist/product/social/SocialResource.cjs +3 -2
- package/dist/product/social/SocialResource.d.ts.map +1 -1
- package/dist/product/social/SocialResource.js +3 -2
- package/dist/product/social/SocialResource.js.map +1 -1
- package/dist/settings/Settings.cjs +1 -1
- package/dist/settings/Settings.js +1 -1
- package/dist/settings/Settings.js.map +1 -1
- package/dist/styles/document.css +1 -1
- package/dist/styles/motion.css +25 -0
- package/dist/styles.css +410 -148
- package/dist/theme.css +192 -3
- package/package.json +4 -1
package/dist/theme.css
CHANGED
|
@@ -2115,7 +2115,12 @@
|
|
|
2115
2115
|
|
|
2116
2116
|
@layer hanzo.font {
|
|
2117
2117
|
:root {
|
|
2118
|
-
|
|
2118
|
+
/* `--font-script` is the face for the page's writing system, which
|
|
2119
|
+
lang.css sets per :lang() — Arabic, Hebrew, Devanagari, Thai, CJK and the
|
|
2120
|
+
rest. It follows the brand face, so Latin keeps Zen and every glyph Zen
|
|
2121
|
+
lacks falls through to a face drawn for it. Unset, the stack is the one
|
|
2122
|
+
this always was. */
|
|
2123
|
+
--font-sans: var(--font-sans-provided, 'Zen'), var(--font-script, ui-sans-serif), system-ui, sans-serif;
|
|
2119
2124
|
--font-mono: var(--font-mono-provided, 'Zen Mono', ui-monospace, monospace);
|
|
2120
2125
|
}
|
|
2121
2126
|
}
|
|
@@ -2328,14 +2333,15 @@
|
|
|
2328
2333
|
color: var(--foreground);
|
|
2329
2334
|
font-family: var(--font-sans), sans-serif;
|
|
2330
2335
|
font-size: var(--text-base);
|
|
2331
|
-
|
|
2336
|
+
/* `--leading-lang` opens the line for scripts with tall marks (lang.css). */
|
|
2337
|
+
line-height: calc(var(--leading-base, var(--leading-normal)) * var(--leading-lang, 1));
|
|
2332
2338
|
}
|
|
2333
2339
|
|
|
2334
2340
|
[data-slot='prose'] > h1, [data-slot='prose'] > h2, [data-slot='prose'] > h3,
|
|
2335
2341
|
[data-slot='prose'] > h4, [data-slot='prose'] > h5, [data-slot='prose'] > h6 {
|
|
2336
2342
|
font-family: var(--font-display, var(--font-sans)), sans-serif;
|
|
2337
2343
|
font-weight: 606;
|
|
2338
|
-
line-height: var(--leading-tight);
|
|
2344
|
+
line-height: calc(var(--leading-tight) * var(--leading-lang, 1));
|
|
2339
2345
|
letter-spacing: var(--tracking-tight);
|
|
2340
2346
|
margin: 0;
|
|
2341
2347
|
}
|
|
@@ -2438,6 +2444,20 @@
|
|
|
2438
2444
|
[data-slot='prose'][data-size='responsive'] > h2 { font-size: var(--text-5xl) }
|
|
2439
2445
|
}
|
|
2440
2446
|
|
|
2447
|
+
/* DIRECTION. Sides are logical properties throughout, so a page follows
|
|
2448
|
+
<html dir="rtl"> with no rule here. An icon whose meaning is a direction along
|
|
2449
|
+
the line (back, forward, next, a drill-in chevron, send) carries
|
|
2450
|
+
`data-i18n-mirror` (the `mirror` helper) and turns with the line. `:dir()`
|
|
2451
|
+
rather than `html[dir]`, so an LTR island inside an RTL page keeps its
|
|
2452
|
+
arrows; the same declaration @hanzo/i18n's rtl.css and @hanzo/gui's base sheet
|
|
2453
|
+
state, so any number of them on one page mirror an icon once. */
|
|
2454
|
+
[data-i18n-mirror]:dir(rtl) { transform: scaleX(-1) }
|
|
2455
|
+
|
|
2456
|
+
/* Text whose order is not language (a shortcut, a key chord, an email or URL
|
|
2457
|
+
field) carries `data-i18n-ltr` (the `ltr` helper) and stays left to right,
|
|
2458
|
+
isolated so the line around it keeps its own order. */
|
|
2459
|
+
[data-i18n-ltr] { direction: ltr; unicode-bidi: isolate }
|
|
2460
|
+
|
|
2441
2461
|
/* Glass — the material floating chrome is made of, and the ladder it stands on.
|
|
2442
2462
|
*
|
|
2443
2463
|
* import '@hanzo/ui/glass.css' // this slice alone
|
|
@@ -2839,6 +2859,16 @@
|
|
|
2839
2859
|
will-change: transform;
|
|
2840
2860
|
}
|
|
2841
2861
|
|
|
2862
|
+
/* Where a panel waits off screen, by the edge it slides from. A translate has no
|
|
2863
|
+
logical form, so the reading edges resolve here: `end` is off the right under
|
|
2864
|
+
LTR and off the left under RTL. */
|
|
2865
|
+
[data-slide-from='end'],
|
|
2866
|
+
[data-slide-from='right'] { --slide-off: 100%; }
|
|
2867
|
+
[data-slide-from='start'],
|
|
2868
|
+
[data-slide-from='left'] { --slide-off: -100%; }
|
|
2869
|
+
[data-slide-from='end']:dir(rtl) { --slide-off: -100%; }
|
|
2870
|
+
[data-slide-from='start']:dir(rtl) { --slide-off: 100%; }
|
|
2871
|
+
|
|
2842
2872
|
[data-motion='drag'] {
|
|
2843
2873
|
touch-action: none;
|
|
2844
2874
|
transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
@@ -3018,6 +3048,16 @@
|
|
|
3018
3048
|
animation: sweep var(--duration-loop, 1.5s) ease-in-out infinite;
|
|
3019
3049
|
}
|
|
3020
3050
|
|
|
3051
|
+
/* Under RTL the bar starts at the right edge and crosses the way the line reads. */
|
|
3052
|
+
@keyframes sweep-rtl {
|
|
3053
|
+
from { transform: translateX(100%); }
|
|
3054
|
+
to { transform: translateX(-400%); }
|
|
3055
|
+
}
|
|
3056
|
+
|
|
3057
|
+
[data-motion='sweep']:dir(rtl) {
|
|
3058
|
+
animation-name: sweep-rtl;
|
|
3059
|
+
}
|
|
3060
|
+
|
|
3021
3061
|
@keyframes orbit {
|
|
3022
3062
|
from { transform: rotate(-90deg); }
|
|
3023
3063
|
to { transform: rotate(270deg); }
|
|
@@ -3037,6 +3077,11 @@
|
|
|
3037
3077
|
animation: drain var(--drain, 6000ms) linear forwards;
|
|
3038
3078
|
}
|
|
3039
3079
|
|
|
3080
|
+
/* A fill empties toward the inline start: the right edge under RTL. */
|
|
3081
|
+
[data-motion='drain']:dir(rtl) {
|
|
3082
|
+
transform-origin: right center;
|
|
3083
|
+
}
|
|
3084
|
+
|
|
3040
3085
|
[data-motion='drain'][data-paused] {
|
|
3041
3086
|
animation-play-state: paused;
|
|
3042
3087
|
}
|
|
@@ -3053,3 +3098,147 @@
|
|
|
3053
3098
|
animation-play-state: paused;
|
|
3054
3099
|
}
|
|
3055
3100
|
}
|
|
3101
|
+
|
|
3102
|
+
/**
|
|
3103
|
+
* @hanzo/ui/lang.css — type for every writing system the interface ships in.
|
|
3104
|
+
*
|
|
3105
|
+
* import '@hanzo/ui/lang.css' (theme.css already carries it)
|
|
3106
|
+
*
|
|
3107
|
+
* Driven by the document's language, `<html lang>`, which @hanzo/i18n sets
|
|
3108
|
+
* together with `dir`. Direction itself lives in @hanzo/i18n's rtl.css and in
|
|
3109
|
+
* the components' logical properties; this file is the TYPE half:
|
|
3110
|
+
*
|
|
3111
|
+
* 1. a face per script (`--font-script`). theme.css puts it after the brand
|
|
3112
|
+
* face, so Latin stays Zen and every glyph Zen lacks falls through to a
|
|
3113
|
+
* face drawn for its script. Noto first, because it covers every script
|
|
3114
|
+
* here at one weight axis, then the face each platform ships, so a machine
|
|
3115
|
+
* without Noto still renders the script as its own people expect.
|
|
3116
|
+
* 2. line height for scripts whose marks stand above or hang below the
|
|
3117
|
+
* Latin line (`--leading-lang`, a multiplier the type ladder and prose
|
|
3118
|
+
* read). Latin, Cyrillic, Greek, Hebrew, Georgian, Armenian: 1.
|
|
3119
|
+
* 3. no letter-spacing on connected scripts. Arabic joins letter to letter
|
|
3120
|
+
* and the Indic headstroke runs across a word; tracking pulls both apart.
|
|
3121
|
+
* 4. no brand tweaks on Arabic-script text: the `ss01` stylistic set and
|
|
3122
|
+
* `text-transform` are Latin ideas (a single-storey a, capitals).
|
|
3123
|
+
* 5. numerals that line up in tables in every script.
|
|
3124
|
+
*
|
|
3125
|
+
* Every selector is `:lang()`, which matches by prefix: `:lang(fa)` takes fa-IR
|
|
3126
|
+
* and fa-AF, `:lang(pa-Arab)` takes pa-Arab-PK and leaves Gurmukhi pa alone.
|
|
3127
|
+
*/
|
|
3128
|
+
|
|
3129
|
+
/* ── 1. Faces ──────────────────────────────────────────────────────────── */
|
|
3130
|
+
|
|
3131
|
+
/* Arabic script, Naskh: Arabic, Persian (Iran and Afghanistan), Pashto,
|
|
3132
|
+
Sorani Kurdish, Uyghur. Noto Sans Arabic for the interface, Noto Naskh Arabic
|
|
3133
|
+
behind it for the letters Sans lacks. */
|
|
3134
|
+
:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ku-Arab), :lang(ug), :lang(ks), :lang(bal), :lang(glk), :lang(mzn)) {
|
|
3135
|
+
--font-script: 'Noto Sans Arabic', 'Noto Naskh Arabic', 'SF Arabic', 'Geeza Pro', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3136
|
+
}
|
|
3137
|
+
|
|
3138
|
+
/* Sindhi is set in Naskh, whose letter forms it was drawn in; Sans lacks
|
|
3139
|
+
several of its dotted letters. */
|
|
3140
|
+
:lang(sd) {
|
|
3141
|
+
--font-script: 'Noto Naskh Arabic', 'Noto Sans Arabic', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3142
|
+
}
|
|
3143
|
+
|
|
3144
|
+
/* Nastaliq: Urdu and Shahmukhi Punjabi read in it, and Naskh reads to them as
|
|
3145
|
+
Arabic. Naskh behind it for anything Nastaliq does not cover. */
|
|
3146
|
+
:is(:lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr)) {
|
|
3147
|
+
--font-script: 'Noto Nastaliq Urdu', 'Urdu Typesetting', 'Jameel Noori Nastaleeq', 'Noto Naskh Arabic', 'Noto Sans Arabic', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3148
|
+
}
|
|
3149
|
+
|
|
3150
|
+
:is(:lang(he), :lang(yi)) {
|
|
3151
|
+
--font-script: 'Noto Sans Hebrew', 'Arial Hebrew', 'Segoe UI', ui-sans-serif;
|
|
3152
|
+
}
|
|
3153
|
+
|
|
3154
|
+
:is(:lang(hi), :lang(mr), :lang(ne), :lang(sa), :lang(bho), :lang(mai), :lang(kok), :lang(doi)) {
|
|
3155
|
+
--font-script: 'Noto Sans Devanagari', 'Kohinoor Devanagari', 'Devanagari Sangam MN', 'Nirmala UI', 'Mangal', ui-sans-serif;
|
|
3156
|
+
}
|
|
3157
|
+
:is(:lang(bn), :lang(as), :lang(mni)) {
|
|
3158
|
+
--font-script: 'Noto Sans Bengali', 'Kohinoor Bangla', 'Bangla Sangam MN', 'Nirmala UI', 'Vrinda', ui-sans-serif;
|
|
3159
|
+
}
|
|
3160
|
+
:lang(ta) { --font-script: 'Noto Sans Tamil', 'Tamil Sangam MN', 'Nirmala UI', 'Latha', ui-sans-serif; }
|
|
3161
|
+
:lang(te) { --font-script: 'Noto Sans Telugu', 'Kohinoor Telugu', 'Telugu Sangam MN', 'Nirmala UI', 'Gautami', ui-sans-serif; }
|
|
3162
|
+
:lang(kn) { --font-script: 'Noto Sans Kannada', 'Kannada Sangam MN', 'Nirmala UI', 'Tunga', ui-sans-serif; }
|
|
3163
|
+
:lang(ml) { --font-script: 'Noto Sans Malayalam', 'Malayalam Sangam MN', 'Nirmala UI', 'Kartika', ui-sans-serif; }
|
|
3164
|
+
:lang(gu) { --font-script: 'Noto Sans Gujarati', 'Kohinoor Gujarati', 'Gujarati Sangam MN', 'Nirmala UI', 'Shruti', ui-sans-serif; }
|
|
3165
|
+
/* Gurmukhi is Punjabi's default script; Shahmukhi took pa-Arab above. */
|
|
3166
|
+
:is(:lang(pa), :lang(pa-Guru)):not(:lang(pa-Arab)) {
|
|
3167
|
+
--font-script: 'Noto Sans Gurmukhi', 'Gurmukhi Sangam MN', 'Nirmala UI', 'Raavi', ui-sans-serif;
|
|
3168
|
+
}
|
|
3169
|
+
:lang(si) { --font-script: 'Noto Sans Sinhala', 'Sinhala Sangam MN', 'Nirmala UI', 'Iskoola Pota', ui-sans-serif; }
|
|
3170
|
+
:lang(th) { --font-script: 'Noto Sans Thai', 'Thonburi', 'Leelawadee UI', 'Tahoma', ui-sans-serif; }
|
|
3171
|
+
:lang(lo) { --font-script: 'Noto Sans Lao', 'Lao Sangam MN', 'Leelawadee UI', 'Lao UI', ui-sans-serif; }
|
|
3172
|
+
:lang(km) { --font-script: 'Noto Sans Khmer', 'Khmer Sangam MN', 'Leelawadee UI', 'Khmer UI', ui-sans-serif; }
|
|
3173
|
+
:lang(my) { --font-script: 'Noto Sans Myanmar', 'Myanmar Sangam MN', 'Myanmar Text', ui-sans-serif; }
|
|
3174
|
+
:is(:lang(bo), :lang(dz)) { --font-script: 'Noto Serif Tibetan', 'Noto Sans Tibetan', 'Kailasa', 'Microsoft Himalaya', ui-sans-serif; }
|
|
3175
|
+
:lang(ka) { --font-script: 'Noto Sans Georgian', 'Helvetica Neue', 'Sylfaen', ui-sans-serif; }
|
|
3176
|
+
:lang(hy) { --font-script: 'Noto Sans Armenian', 'Mshtakan', 'Sylfaen', ui-sans-serif; }
|
|
3177
|
+
:is(:lang(am), :lang(ti), :lang(om-Ethi)) { --font-script: 'Noto Sans Ethiopic', 'Kefa', 'Nyala', 'Ebrima', ui-sans-serif; }
|
|
3178
|
+
|
|
3179
|
+
/* Han is unified across Chinese, Japanese and Korean, and each reads the
|
|
3180
|
+
others' forms of the same character as foreign. So the face is chosen by
|
|
3181
|
+
language, never by script alone. */
|
|
3182
|
+
:is(:lang(zh-Hans), :lang(zh-CN), :lang(zh-SG), :lang(zh)) {
|
|
3183
|
+
--font-script: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', ui-sans-serif;
|
|
3184
|
+
}
|
|
3185
|
+
:is(:lang(zh-Hant), :lang(zh-TW)) {
|
|
3186
|
+
--font-script: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', ui-sans-serif;
|
|
3187
|
+
}
|
|
3188
|
+
:is(:lang(zh-HK), :lang(zh-MO)) { --font-script: 'Noto Sans HK', 'PingFang HK', 'Microsoft JhengHei', ui-sans-serif; }
|
|
3189
|
+
:lang(ja) { --font-script: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', 'Meiryo', ui-sans-serif; }
|
|
3190
|
+
:lang(ko) { --font-script: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', ui-sans-serif; }
|
|
3191
|
+
|
|
3192
|
+
/* ── 2. Line height ─────────────────────────────────────────────────────── */
|
|
3193
|
+
|
|
3194
|
+
/* Marks above and below the line: Arabic harakat, the Indic matras and
|
|
3195
|
+
conjuncts, Thai and Lao tone marks stacked over vowels, Khmer subscripts,
|
|
3196
|
+
Burmese medials, Tibetan stacks. Measured against the Latin ladder, which
|
|
3197
|
+
sets 14px on 20px: these need roughly 1.15x to 1.5x the space to keep one
|
|
3198
|
+
line's marks out of the next. */
|
|
3199
|
+
:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ku-Arab), :lang(ug), :lang(sd), :lang(ks), :lang(bal), :lang(glk), :lang(mzn)) { --leading-lang: 1.15; }
|
|
3200
|
+
:is(:lang(hi), :lang(mr), :lang(ne), :lang(sa), :lang(bho), :lang(mai), :lang(kok), :lang(doi), :lang(bn), :lang(as), :lang(mni), :lang(gu), :lang(pa), :lang(ta), :lang(te), :lang(kn), :lang(ml), :lang(si)) { --leading-lang: 1.2; }
|
|
3201
|
+
:is(:lang(th), :lang(lo)) { --leading-lang: 1.25; }
|
|
3202
|
+
:is(:lang(km), :lang(my)) { --leading-lang: 1.35; }
|
|
3203
|
+
:is(:lang(bo), :lang(dz)) { --leading-lang: 1.4; }
|
|
3204
|
+
:is(:lang(zh), :lang(ja), :lang(ko), :lang(am), :lang(ti)) { --leading-lang: 1.1; }
|
|
3205
|
+
/* Nastaliq descends along a diagonal baseline; each word steps down from its
|
|
3206
|
+
first letter, so a line needs half again its Latin height. After the Naskh
|
|
3207
|
+
rule so pa-Arab takes this one rather than Gurmukhi's. */
|
|
3208
|
+
:is(:lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr)) { --leading-lang: 1.5; }
|
|
3209
|
+
|
|
3210
|
+
/* The body's own leading, for content that arrives as bare tags. Only where a
|
|
3211
|
+
script above asked for more, so a host that brings its own body leading and
|
|
3212
|
+
no tall script keeps it untouched. */
|
|
3213
|
+
:root:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ku-Arab), :lang(ug), :lang(sd), :lang(ks), :lang(bal), :lang(glk), :lang(mzn), :lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr), :lang(hi), :lang(mr), :lang(ne), :lang(sa), :lang(bho), :lang(mai), :lang(kok), :lang(doi), :lang(bn), :lang(as), :lang(mni), :lang(gu), :lang(pa), :lang(ta), :lang(te), :lang(kn), :lang(ml), :lang(si), :lang(th), :lang(lo), :lang(km), :lang(my), :lang(bo), :lang(dz), :lang(zh), :lang(ja), :lang(ko), :lang(am), :lang(ti)) body {
|
|
3214
|
+
line-height: calc(var(--leading-base, 1.35rem) * var(--leading-lang));
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3217
|
+
/* ── 3 and 4. Connected scripts: no tracking, no Latin tweaks ───────────── */
|
|
3218
|
+
|
|
3219
|
+
/* !important because the type ladder states its tracking as an atomic class
|
|
3220
|
+
on the element itself (-0.025em on headline rungs), and a class on the
|
|
3221
|
+
element beats anything inherited. Tracking a connected script is never a
|
|
3222
|
+
choice; it breaks the joins. */
|
|
3223
|
+
:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ku-Arab), :lang(ug), :lang(sd), :lang(ks), :lang(bal), :lang(glk), :lang(mzn), :lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr), :lang(syr), :lang(nqo), :lang(mn-Mong)) {
|
|
3224
|
+
letter-spacing: 0 !important;
|
|
3225
|
+
/* `ss01` is the brand's single-storey a; in an Arabic face the same tag
|
|
3226
|
+
names an unrelated alternate, or a different letter entirely. */
|
|
3227
|
+
--font-feature-settings: normal;
|
|
3228
|
+
font-feature-settings: normal;
|
|
3229
|
+
text-transform: none !important;
|
|
3230
|
+
}
|
|
3231
|
+
/* The headstroke of Devanagari, Bengali and Gurmukhi is one line across a
|
|
3232
|
+
word; tracking breaks it into letters. */
|
|
3233
|
+
:is(:lang(hi), :lang(mr), :lang(ne), :lang(sa), :lang(bho), :lang(mai), :lang(kok), :lang(doi), :lang(bn), :lang(as), :lang(mni), :lang(pa)) {
|
|
3234
|
+
letter-spacing: 0 !important;
|
|
3235
|
+
}
|
|
3236
|
+
|
|
3237
|
+
/* ── 5. Numerals ────────────────────────────────────────────────────────── */
|
|
3238
|
+
|
|
3239
|
+
/* Tables and counters align digits whatever the language, and Persian and
|
|
3240
|
+
Arabic-Indic digits come in a tabular form in the same faces. Code, URLs and
|
|
3241
|
+
email stay left to right with their own numerals (rtl.css isolates them). */
|
|
3242
|
+
:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ug), :lang(sd), :lang(ur), :lang(pa-Arab), :lang(pnb), :lang(he)) :where(td, th, data, time, output, meter, .hz-tnum, [data-numeric]) {
|
|
3243
|
+
font-variant-numeric: tabular-nums;
|
|
3244
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.29.
|
|
3
|
+
"version": "8.29.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"./theme.css": "./dist/theme.css",
|
|
87
87
|
"./glass.css": "./dist/glass.css",
|
|
88
|
+
"./lang.css": "./dist/lang.css",
|
|
88
89
|
"./glass": {
|
|
89
90
|
"types": "./dist/glass.d.ts",
|
|
90
91
|
"import": "./dist/glass.js",
|
|
@@ -434,6 +435,8 @@
|
|
|
434
435
|
"test:responsive": "node scripts/responsive.mjs",
|
|
435
436
|
"test:contain": "node scripts/contain.mjs",
|
|
436
437
|
"test:corner": "node scripts/corner.mjs",
|
|
438
|
+
"test:code": "node scripts/code.mjs",
|
|
439
|
+
"test:rtl": "node scripts/compose-theme.mjs && node scripts/rtl.mjs",
|
|
437
440
|
"test:consumer": "node scripts/consumer-test.mjs",
|
|
438
441
|
"test:unit": "vitest run",
|
|
439
442
|
"test:consumer:webpack": "node scripts/consumer-webpack.mjs"
|