@hanzo/ui 8.29.10 → 8.29.12
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/corner/Corner.cjs +43 -19
- package/dist/corner/Corner.d.ts.map +1 -1
- package/dist/corner/Corner.js +45 -21
- package/dist/corner/Corner.js.map +1 -1
- package/dist/corner/logic.cjs +23 -0
- package/dist/corner/logic.d.ts +15 -0
- package/dist/corner/logic.d.ts.map +1 -1
- package/dist/corner/logic.js +22 -0
- package/dist/corner/logic.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 +589 -286
- 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 +456 -153
- package/dist/theme.css +238 -8
- package/package.json +6 -3
package/dist/theme.css
CHANGED
|
@@ -802,9 +802,10 @@
|
|
|
802
802
|
}
|
|
803
803
|
|
|
804
804
|
/* ── tokens/fonts.css ─────────────────────────────────────── */
|
|
805
|
-
/* Zen — the
|
|
805
|
+
/* Zen — the family on Hanzo surfaces, sans and mono, and its Arabic companions.
|
|
806
806
|
SELF-HOSTED. The faces ship inside this package (assets/fonts/*.woff2, two
|
|
807
|
-
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-Zen.txt)
|
|
807
|
+
variable files, 141 KB total, SIL OFL-1.1 — see assets/fonts/LICENSE-Zen.txt),
|
|
808
|
+
with two Arabic companions beside them (below).
|
|
808
809
|
|
|
809
810
|
Zen is our own family, under the SIL Open Font License. The licence file
|
|
810
811
|
beside the binaries carries every copyright the OFL requires; nothing else in
|
|
@@ -853,11 +854,51 @@
|
|
|
853
854
|
|
|
854
855
|
|
|
855
856
|
|
|
857
|
+
/* ARABIC. Zen draws Latin and Cyrillic and no Arabic, so an Arabic page used to
|
|
858
|
+
fall to whatever face each browser picked. @hanzo/font carries two Arabic
|
|
859
|
+
companions, variable over Zen's own weight axis and cut to the Arabic blocks,
|
|
860
|
+
and they are copied here with the Zen faces: Noto Kufi Arabic (the default,
|
|
861
|
+
geometric like Zen) and Noto Sans Arabic. Both draw every Arabic-script
|
|
862
|
+
language Hanzo ships. They are not ours and keep their names; their licence is
|
|
863
|
+
assets/fonts/LICENSE-Arabic.txt.
|
|
864
|
+
|
|
865
|
+
THE RANGE IS THE WHOLE TRICK. Each face covers the Arabic blocks only, so a
|
|
866
|
+
page with no Arabic on it never requests one, and Latin inside an Arabic page
|
|
867
|
+
is still Zen. The joiners (U+200C-200F) are drawn by the files but kept out of
|
|
868
|
+
the range: an English page with an emoji ZWJ sequence would otherwise fetch an
|
|
869
|
+
Arabic face for one invisible character.
|
|
870
|
+
|
|
871
|
+
Every stack below names `--font-arabic` FIRST. A family whose range excludes a
|
|
872
|
+
character is passed over without a download, so Latin falls through to Zen,
|
|
873
|
+
and the "first available font" a line box and `ch` are measured from is still
|
|
874
|
+
Zen (its range covers the space; the companion's does not). That is what makes
|
|
875
|
+
the choice one property: `@hanzo/appearance` writes `--font-arabic`, and sans,
|
|
876
|
+
mono and serif follow.
|
|
877
|
+
|
|
878
|
+
The default is ALSO declared under "Zen" and "Zen Mono", for anything that
|
|
879
|
+
names a family rather than a token. That only works because its descriptors
|
|
880
|
+
are Zen's exactly (weight 100 900, normal): faces in one family composite only
|
|
881
|
+
when everything but the range matches, and a companion declared at another
|
|
882
|
+
weight wins the weight match for Latin too, refuses every Latin letter, and
|
|
883
|
+
sends the page to the system sans with no font request to show for it.
|
|
884
|
+
|
|
885
|
+
`block` for the reason Zen has it: an Arabic page waits a moment for its face
|
|
886
|
+
rather than painting the platform's and repainting. */
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
|
|
856
892
|
:root{
|
|
857
|
-
|
|
893
|
+
/* The Arabic companions by what they are, and the one in use. A person's
|
|
894
|
+
choice replaces --font-arabic with one of the two names above it. */
|
|
895
|
+
--font-arabic-kufi:"Noto Kufi Arabic";
|
|
896
|
+
--font-arabic-sans:"Noto Sans Arabic";
|
|
897
|
+
--font-arabic:var(--font-arabic-kufi);
|
|
898
|
+
--font-sans:var(--font-arabic), Zen, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
858
899
|
--font-display:var(--font-sans);
|
|
859
|
-
--font-mono:Zen Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
860
|
-
--font-serif:Georgia,serif;
|
|
900
|
+
--font-mono:var(--font-arabic), Zen Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
901
|
+
--font-serif:var(--font-arabic), Georgia, serif;
|
|
861
902
|
/* The default is Zen as drawn, and that is a decision rather than an omission.
|
|
862
903
|
`base.css` puts this on <body>, so whatever is here is the voice of every
|
|
863
904
|
surface in the estate — which is exactly why it should not carry a brand's.
|
|
@@ -2115,7 +2156,12 @@
|
|
|
2115
2156
|
|
|
2116
2157
|
@layer hanzo.font {
|
|
2117
2158
|
:root {
|
|
2118
|
-
|
|
2159
|
+
/* `--font-script` is the face for the page's writing system, which
|
|
2160
|
+
lang.css sets per :lang() — Arabic, Hebrew, Devanagari, Thai, CJK and the
|
|
2161
|
+
rest. It follows the brand face, so Latin keeps Zen and every glyph Zen
|
|
2162
|
+
lacks falls through to a face drawn for it. Unset, the stack is the one
|
|
2163
|
+
this always was. */
|
|
2164
|
+
--font-sans: var(--font-sans-provided, 'Zen'), var(--font-script, ui-sans-serif), system-ui, sans-serif;
|
|
2119
2165
|
--font-mono: var(--font-mono-provided, 'Zen Mono', ui-monospace, monospace);
|
|
2120
2166
|
}
|
|
2121
2167
|
}
|
|
@@ -2328,14 +2374,15 @@
|
|
|
2328
2374
|
color: var(--foreground);
|
|
2329
2375
|
font-family: var(--font-sans), sans-serif;
|
|
2330
2376
|
font-size: var(--text-base);
|
|
2331
|
-
|
|
2377
|
+
/* `--leading-lang` opens the line for scripts with tall marks (lang.css). */
|
|
2378
|
+
line-height: calc(var(--leading-base, var(--leading-normal)) * var(--leading-lang, 1));
|
|
2332
2379
|
}
|
|
2333
2380
|
|
|
2334
2381
|
[data-slot='prose'] > h1, [data-slot='prose'] > h2, [data-slot='prose'] > h3,
|
|
2335
2382
|
[data-slot='prose'] > h4, [data-slot='prose'] > h5, [data-slot='prose'] > h6 {
|
|
2336
2383
|
font-family: var(--font-display, var(--font-sans)), sans-serif;
|
|
2337
2384
|
font-weight: 606;
|
|
2338
|
-
line-height: var(--leading-tight);
|
|
2385
|
+
line-height: calc(var(--leading-tight) * var(--leading-lang, 1));
|
|
2339
2386
|
letter-spacing: var(--tracking-tight);
|
|
2340
2387
|
margin: 0;
|
|
2341
2388
|
}
|
|
@@ -2438,6 +2485,20 @@
|
|
|
2438
2485
|
[data-slot='prose'][data-size='responsive'] > h2 { font-size: var(--text-5xl) }
|
|
2439
2486
|
}
|
|
2440
2487
|
|
|
2488
|
+
/* DIRECTION. Sides are logical properties throughout, so a page follows
|
|
2489
|
+
<html dir="rtl"> with no rule here. An icon whose meaning is a direction along
|
|
2490
|
+
the line (back, forward, next, a drill-in chevron, send) carries
|
|
2491
|
+
`data-i18n-mirror` (the `mirror` helper) and turns with the line. `:dir()`
|
|
2492
|
+
rather than `html[dir]`, so an LTR island inside an RTL page keeps its
|
|
2493
|
+
arrows; the same declaration @hanzo/i18n's rtl.css and @hanzo/gui's base sheet
|
|
2494
|
+
state, so any number of them on one page mirror an icon once. */
|
|
2495
|
+
[data-i18n-mirror]:dir(rtl) { transform: scaleX(-1) }
|
|
2496
|
+
|
|
2497
|
+
/* Text whose order is not language (a shortcut, a key chord, an email or URL
|
|
2498
|
+
field) carries `data-i18n-ltr` (the `ltr` helper) and stays left to right,
|
|
2499
|
+
isolated so the line around it keeps its own order. */
|
|
2500
|
+
[data-i18n-ltr] { direction: ltr; unicode-bidi: isolate }
|
|
2501
|
+
|
|
2441
2502
|
/* Glass — the material floating chrome is made of, and the ladder it stands on.
|
|
2442
2503
|
*
|
|
2443
2504
|
* import '@hanzo/ui/glass.css' // this slice alone
|
|
@@ -2839,6 +2900,16 @@
|
|
|
2839
2900
|
will-change: transform;
|
|
2840
2901
|
}
|
|
2841
2902
|
|
|
2903
|
+
/* Where a panel waits off screen, by the edge it slides from. A translate has no
|
|
2904
|
+
logical form, so the reading edges resolve here: `end` is off the right under
|
|
2905
|
+
LTR and off the left under RTL. */
|
|
2906
|
+
[data-slide-from='end'],
|
|
2907
|
+
[data-slide-from='right'] { --slide-off: 100%; }
|
|
2908
|
+
[data-slide-from='start'],
|
|
2909
|
+
[data-slide-from='left'] { --slide-off: -100%; }
|
|
2910
|
+
[data-slide-from='end']:dir(rtl) { --slide-off: -100%; }
|
|
2911
|
+
[data-slide-from='start']:dir(rtl) { --slide-off: 100%; }
|
|
2912
|
+
|
|
2842
2913
|
[data-motion='drag'] {
|
|
2843
2914
|
touch-action: none;
|
|
2844
2915
|
transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
@@ -3018,6 +3089,16 @@
|
|
|
3018
3089
|
animation: sweep var(--duration-loop, 1.5s) ease-in-out infinite;
|
|
3019
3090
|
}
|
|
3020
3091
|
|
|
3092
|
+
/* Under RTL the bar starts at the right edge and crosses the way the line reads. */
|
|
3093
|
+
@keyframes sweep-rtl {
|
|
3094
|
+
from { transform: translateX(100%); }
|
|
3095
|
+
to { transform: translateX(-400%); }
|
|
3096
|
+
}
|
|
3097
|
+
|
|
3098
|
+
[data-motion='sweep']:dir(rtl) {
|
|
3099
|
+
animation-name: sweep-rtl;
|
|
3100
|
+
}
|
|
3101
|
+
|
|
3021
3102
|
@keyframes orbit {
|
|
3022
3103
|
from { transform: rotate(-90deg); }
|
|
3023
3104
|
to { transform: rotate(270deg); }
|
|
@@ -3037,6 +3118,11 @@
|
|
|
3037
3118
|
animation: drain var(--drain, 6000ms) linear forwards;
|
|
3038
3119
|
}
|
|
3039
3120
|
|
|
3121
|
+
/* A fill empties toward the inline start: the right edge under RTL. */
|
|
3122
|
+
[data-motion='drain']:dir(rtl) {
|
|
3123
|
+
transform-origin: right center;
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3040
3126
|
[data-motion='drain'][data-paused] {
|
|
3041
3127
|
animation-play-state: paused;
|
|
3042
3128
|
}
|
|
@@ -3053,3 +3139,147 @@
|
|
|
3053
3139
|
animation-play-state: paused;
|
|
3054
3140
|
}
|
|
3055
3141
|
}
|
|
3142
|
+
|
|
3143
|
+
/**
|
|
3144
|
+
* @hanzo/ui/lang.css — type for every writing system the interface ships in.
|
|
3145
|
+
*
|
|
3146
|
+
* import '@hanzo/ui/lang.css' (theme.css already carries it)
|
|
3147
|
+
*
|
|
3148
|
+
* Driven by the document's language, `<html lang>`, which @hanzo/i18n sets
|
|
3149
|
+
* together with `dir`. Direction itself lives in @hanzo/i18n's rtl.css and in
|
|
3150
|
+
* the components' logical properties; this file is the TYPE half:
|
|
3151
|
+
*
|
|
3152
|
+
* 1. a face per script (`--font-script`). theme.css puts it after the brand
|
|
3153
|
+
* face, so Latin stays Zen and every glyph Zen lacks falls through to a
|
|
3154
|
+
* face drawn for its script. Noto first, because it covers every script
|
|
3155
|
+
* here at one weight axis, then the face each platform ships, so a machine
|
|
3156
|
+
* without Noto still renders the script as its own people expect.
|
|
3157
|
+
* 2. line height for scripts whose marks stand above or hang below the
|
|
3158
|
+
* Latin line (`--leading-lang`, a multiplier the type ladder and prose
|
|
3159
|
+
* read). Latin, Cyrillic, Greek, Hebrew, Georgian, Armenian: 1.
|
|
3160
|
+
* 3. no letter-spacing on connected scripts. Arabic joins letter to letter
|
|
3161
|
+
* and the Indic headstroke runs across a word; tracking pulls both apart.
|
|
3162
|
+
* 4. no brand tweaks on Arabic-script text: the `ss01` stylistic set and
|
|
3163
|
+
* `text-transform` are Latin ideas (a single-storey a, capitals).
|
|
3164
|
+
* 5. numerals that line up in tables in every script.
|
|
3165
|
+
*
|
|
3166
|
+
* Every selector is `:lang()`, which matches by prefix: `:lang(fa)` takes fa-IR
|
|
3167
|
+
* and fa-AF, `:lang(pa-Arab)` takes pa-Arab-PK and leaves Gurmukhi pa alone.
|
|
3168
|
+
*/
|
|
3169
|
+
|
|
3170
|
+
/* ── 1. Faces ──────────────────────────────────────────────────────────── */
|
|
3171
|
+
|
|
3172
|
+
/* Arabic script, Naskh: Arabic, Persian (Iran and Afghanistan), Pashto,
|
|
3173
|
+
Sorani Kurdish, Uyghur. Noto Sans Arabic for the interface, Noto Naskh Arabic
|
|
3174
|
+
behind it for the letters Sans lacks. */
|
|
3175
|
+
:is(:lang(ar), :lang(fa), :lang(prs), :lang(ps), :lang(ckb), :lang(ku-Arab), :lang(ug), :lang(ks), :lang(bal), :lang(glk), :lang(mzn)) {
|
|
3176
|
+
--font-script: 'Noto Sans Arabic', 'Noto Naskh Arabic', 'SF Arabic', 'Geeza Pro', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3177
|
+
}
|
|
3178
|
+
|
|
3179
|
+
/* Sindhi is set in Naskh, whose letter forms it was drawn in; Sans lacks
|
|
3180
|
+
several of its dotted letters. */
|
|
3181
|
+
:lang(sd) {
|
|
3182
|
+
--font-script: 'Noto Naskh Arabic', 'Noto Sans Arabic', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3183
|
+
}
|
|
3184
|
+
|
|
3185
|
+
/* Nastaliq: Urdu and Shahmukhi Punjabi read in it, and Naskh reads to them as
|
|
3186
|
+
Arabic. Naskh behind it for anything Nastaliq does not cover. */
|
|
3187
|
+
:is(:lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr)) {
|
|
3188
|
+
--font-script: 'Noto Nastaliq Urdu', 'Urdu Typesetting', 'Jameel Noori Nastaleeq', 'Noto Naskh Arabic', 'Noto Sans Arabic', 'Segoe UI', Tahoma, ui-sans-serif;
|
|
3189
|
+
}
|
|
3190
|
+
|
|
3191
|
+
:is(:lang(he), :lang(yi)) {
|
|
3192
|
+
--font-script: 'Noto Sans Hebrew', 'Arial Hebrew', 'Segoe UI', ui-sans-serif;
|
|
3193
|
+
}
|
|
3194
|
+
|
|
3195
|
+
:is(:lang(hi), :lang(mr), :lang(ne), :lang(sa), :lang(bho), :lang(mai), :lang(kok), :lang(doi)) {
|
|
3196
|
+
--font-script: 'Noto Sans Devanagari', 'Kohinoor Devanagari', 'Devanagari Sangam MN', 'Nirmala UI', 'Mangal', ui-sans-serif;
|
|
3197
|
+
}
|
|
3198
|
+
:is(:lang(bn), :lang(as), :lang(mni)) {
|
|
3199
|
+
--font-script: 'Noto Sans Bengali', 'Kohinoor Bangla', 'Bangla Sangam MN', 'Nirmala UI', 'Vrinda', ui-sans-serif;
|
|
3200
|
+
}
|
|
3201
|
+
:lang(ta) { --font-script: 'Noto Sans Tamil', 'Tamil Sangam MN', 'Nirmala UI', 'Latha', ui-sans-serif; }
|
|
3202
|
+
:lang(te) { --font-script: 'Noto Sans Telugu', 'Kohinoor Telugu', 'Telugu Sangam MN', 'Nirmala UI', 'Gautami', ui-sans-serif; }
|
|
3203
|
+
:lang(kn) { --font-script: 'Noto Sans Kannada', 'Kannada Sangam MN', 'Nirmala UI', 'Tunga', ui-sans-serif; }
|
|
3204
|
+
:lang(ml) { --font-script: 'Noto Sans Malayalam', 'Malayalam Sangam MN', 'Nirmala UI', 'Kartika', ui-sans-serif; }
|
|
3205
|
+
:lang(gu) { --font-script: 'Noto Sans Gujarati', 'Kohinoor Gujarati', 'Gujarati Sangam MN', 'Nirmala UI', 'Shruti', ui-sans-serif; }
|
|
3206
|
+
/* Gurmukhi is Punjabi's default script; Shahmukhi took pa-Arab above. */
|
|
3207
|
+
:is(:lang(pa), :lang(pa-Guru)):not(:lang(pa-Arab)) {
|
|
3208
|
+
--font-script: 'Noto Sans Gurmukhi', 'Gurmukhi Sangam MN', 'Nirmala UI', 'Raavi', ui-sans-serif;
|
|
3209
|
+
}
|
|
3210
|
+
:lang(si) { --font-script: 'Noto Sans Sinhala', 'Sinhala Sangam MN', 'Nirmala UI', 'Iskoola Pota', ui-sans-serif; }
|
|
3211
|
+
:lang(th) { --font-script: 'Noto Sans Thai', 'Thonburi', 'Leelawadee UI', 'Tahoma', ui-sans-serif; }
|
|
3212
|
+
:lang(lo) { --font-script: 'Noto Sans Lao', 'Lao Sangam MN', 'Leelawadee UI', 'Lao UI', ui-sans-serif; }
|
|
3213
|
+
:lang(km) { --font-script: 'Noto Sans Khmer', 'Khmer Sangam MN', 'Leelawadee UI', 'Khmer UI', ui-sans-serif; }
|
|
3214
|
+
:lang(my) { --font-script: 'Noto Sans Myanmar', 'Myanmar Sangam MN', 'Myanmar Text', ui-sans-serif; }
|
|
3215
|
+
:is(:lang(bo), :lang(dz)) { --font-script: 'Noto Serif Tibetan', 'Noto Sans Tibetan', 'Kailasa', 'Microsoft Himalaya', ui-sans-serif; }
|
|
3216
|
+
:lang(ka) { --font-script: 'Noto Sans Georgian', 'Helvetica Neue', 'Sylfaen', ui-sans-serif; }
|
|
3217
|
+
:lang(hy) { --font-script: 'Noto Sans Armenian', 'Mshtakan', 'Sylfaen', ui-sans-serif; }
|
|
3218
|
+
:is(:lang(am), :lang(ti), :lang(om-Ethi)) { --font-script: 'Noto Sans Ethiopic', 'Kefa', 'Nyala', 'Ebrima', ui-sans-serif; }
|
|
3219
|
+
|
|
3220
|
+
/* Han is unified across Chinese, Japanese and Korean, and each reads the
|
|
3221
|
+
others' forms of the same character as foreign. So the face is chosen by
|
|
3222
|
+
language, never by script alone. */
|
|
3223
|
+
:is(:lang(zh-Hans), :lang(zh-CN), :lang(zh-SG), :lang(zh)) {
|
|
3224
|
+
--font-script: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', ui-sans-serif;
|
|
3225
|
+
}
|
|
3226
|
+
:is(:lang(zh-Hant), :lang(zh-TW)) {
|
|
3227
|
+
--font-script: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', ui-sans-serif;
|
|
3228
|
+
}
|
|
3229
|
+
:is(:lang(zh-HK), :lang(zh-MO)) { --font-script: 'Noto Sans HK', 'PingFang HK', 'Microsoft JhengHei', ui-sans-serif; }
|
|
3230
|
+
:lang(ja) { --font-script: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', 'Meiryo', ui-sans-serif; }
|
|
3231
|
+
:lang(ko) { --font-script: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', ui-sans-serif; }
|
|
3232
|
+
|
|
3233
|
+
/* ── 2. Line height ─────────────────────────────────────────────────────── */
|
|
3234
|
+
|
|
3235
|
+
/* Marks above and below the line: Arabic harakat, the Indic matras and
|
|
3236
|
+
conjuncts, Thai and Lao tone marks stacked over vowels, Khmer subscripts,
|
|
3237
|
+
Burmese medials, Tibetan stacks. Measured against the Latin ladder, which
|
|
3238
|
+
sets 14px on 20px: these need roughly 1.15x to 1.5x the space to keep one
|
|
3239
|
+
line's marks out of the next. */
|
|
3240
|
+
: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; }
|
|
3241
|
+
: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; }
|
|
3242
|
+
:is(:lang(th), :lang(lo)) { --leading-lang: 1.25; }
|
|
3243
|
+
:is(:lang(km), :lang(my)) { --leading-lang: 1.35; }
|
|
3244
|
+
:is(:lang(bo), :lang(dz)) { --leading-lang: 1.4; }
|
|
3245
|
+
:is(:lang(zh), :lang(ja), :lang(ko), :lang(am), :lang(ti)) { --leading-lang: 1.1; }
|
|
3246
|
+
/* Nastaliq descends along a diagonal baseline; each word steps down from its
|
|
3247
|
+
first letter, so a line needs half again its Latin height. After the Naskh
|
|
3248
|
+
rule so pa-Arab takes this one rather than Gurmukhi's. */
|
|
3249
|
+
:is(:lang(ur), :lang(pa-Arab), :lang(pnb), :lang(skr)) { --leading-lang: 1.5; }
|
|
3250
|
+
|
|
3251
|
+
/* The body's own leading, for content that arrives as bare tags. Only where a
|
|
3252
|
+
script above asked for more, so a host that brings its own body leading and
|
|
3253
|
+
no tall script keeps it untouched. */
|
|
3254
|
+
: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 {
|
|
3255
|
+
line-height: calc(var(--leading-base, 1.35rem) * var(--leading-lang));
|
|
3256
|
+
}
|
|
3257
|
+
|
|
3258
|
+
/* ── 3 and 4. Connected scripts: no tracking, no Latin tweaks ───────────── */
|
|
3259
|
+
|
|
3260
|
+
/* !important because the type ladder states its tracking as an atomic class
|
|
3261
|
+
on the element itself (-0.025em on headline rungs), and a class on the
|
|
3262
|
+
element beats anything inherited. Tracking a connected script is never a
|
|
3263
|
+
choice; it breaks the joins. */
|
|
3264
|
+
: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)) {
|
|
3265
|
+
letter-spacing: 0 !important;
|
|
3266
|
+
/* `ss01` is the brand's single-storey a; in an Arabic face the same tag
|
|
3267
|
+
names an unrelated alternate, or a different letter entirely. */
|
|
3268
|
+
--font-feature-settings: normal;
|
|
3269
|
+
font-feature-settings: normal;
|
|
3270
|
+
text-transform: none !important;
|
|
3271
|
+
}
|
|
3272
|
+
/* The headstroke of Devanagari, Bengali and Gurmukhi is one line across a
|
|
3273
|
+
word; tracking breaks it into letters. */
|
|
3274
|
+
: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)) {
|
|
3275
|
+
letter-spacing: 0 !important;
|
|
3276
|
+
}
|
|
3277
|
+
|
|
3278
|
+
/* ── 5. Numerals ────────────────────────────────────────────────────────── */
|
|
3279
|
+
|
|
3280
|
+
/* Tables and counters align digits whatever the language, and Persian and
|
|
3281
|
+
Arabic-Indic digits come in a tabular form in the same faces. Code, URLs and
|
|
3282
|
+
email stay left to right with their own numerals (rtl.css isolates them). */
|
|
3283
|
+
: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]) {
|
|
3284
|
+
font-variant-numeric: tabular-nums;
|
|
3285
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.29.
|
|
3
|
+
"version": "8.29.12",
|
|
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",
|
|
@@ -314,9 +315,9 @@
|
|
|
314
315
|
"@codemirror/language": "^6.12.4",
|
|
315
316
|
"@codemirror/state": "^6.7.6",
|
|
316
317
|
"@codemirror/view": "^6.43.13",
|
|
317
|
-
"@hanzo/appearance": "0.2.
|
|
318
|
+
"@hanzo/appearance": "0.2.11",
|
|
318
319
|
"@hanzo/brand": "1.4.8",
|
|
319
|
-
"@hanzo/design": "0.5.
|
|
320
|
+
"@hanzo/design": "0.5.37",
|
|
320
321
|
"@hanzo/font": "1.9.2",
|
|
321
322
|
"@hanzo/tokens": "^1.1.1",
|
|
322
323
|
"@hanzo/logo": "1.0.26",
|
|
@@ -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"
|