@sovereignfs/ui 0.83.1 → 0.89.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 +373 -661
- package/NOTICE +8 -0
- package/README.md +4 -6
- package/dist/AppsLauncher.module.css +6 -0
- package/dist/Button.module.css +5 -0
- package/dist/Card.module.css +6 -0
- package/dist/CardTile.module.css +6 -0
- package/dist/CheckableListRow.module.css +8 -0
- package/dist/Checkbox.module.css +8 -0
- package/dist/CodeTextarea.module.css +6 -0
- package/dist/ColorPicker.module.css +6 -0
- package/dist/Combobox.module.css +6 -0
- package/dist/Command.module.css +6 -0
- package/dist/ConfirmDialog.module.css +6 -0
- package/dist/DatePicker.module.css +6 -0
- package/dist/Dialog.module.css +1 -1
- package/dist/DragHandleRow.module.css +6 -0
- package/dist/FileDropzone.module.css +25 -1
- package/dist/Header.module.css +6 -0
- package/dist/IconPicker.module.css +14 -4
- package/dist/Input.module.css +6 -0
- package/dist/LegalLinks.module.css +9 -2
- package/dist/Markdown.module.css +5 -0
- package/dist/Message.module.css +9 -0
- package/dist/MobileAppsDrawer.module.css +9 -5
- package/dist/MobileFooter.module.css +6 -0
- package/dist/NavList.module.css +11 -2
- package/dist/NavTabs.module.css +7 -1
- package/dist/NotificationsPanel.module.css +10 -0
- package/dist/QrCode.module.css +17 -0
- package/dist/QuantityStepper.module.css +4 -2
- package/dist/RadioGroup.module.css +6 -0
- package/dist/SegmentedControl.module.css +6 -0
- package/dist/Select.module.css +6 -0
- package/dist/Sheet.module.css +16 -1
- package/dist/SplitPane.module.css +1 -1
- package/dist/StepStrip.module.css +5 -3
- package/dist/SuggestionInput.module.css +12 -1
- package/dist/SwipableMobileCarouselDots.module.css +6 -0
- package/dist/SystemBanner.module.css +6 -0
- package/dist/Tabs.module.css +6 -0
- package/dist/TagInput.module.css +6 -0
- package/dist/Textarea.module.css +6 -0
- package/dist/Toast.module.css +5 -0
- package/dist/Toggle.module.css +7 -0
- package/dist/Tooltip.module.css +6 -0
- package/dist/UserMenu.module.css +5 -0
- package/dist/fonts/OFL.txt +93 -0
- package/dist/fonts/hanken-grotesk-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-vietnamese-wght-normal.woff2 +0 -0
- package/dist/index.d.ts +121 -43
- package/dist/index.js +1410 -1152
- package/dist/tokens/fonts.css +53 -0
- package/dist/tokens/primitives.css +12 -12
- package/dist/tokens.css +2 -1
- package/package.json +24 -13
- package/src/__tests__/motion.test.tsx +0 -105
- package/src/__tests__/package-json.test.ts +0 -8
- package/src/components/Accordion/Accordion.module.css +0 -3
- package/src/components/Accordion/Accordion.stories.tsx +0 -110
- package/src/components/Accordion/Accordion.tsx +0 -53
- package/src/components/Accordion/__tests__/Accordion.test.tsx +0 -61
- package/src/components/Alert/Alert.module.css +0 -62
- package/src/components/Alert/Alert.stories.tsx +0 -96
- package/src/components/Alert/Alert.tsx +0 -58
- package/src/components/Alert/__tests__/Alert.test.tsx +0 -75
- package/src/components/AppsLauncher/AppsLauncher.module.css +0 -96
- package/src/components/AppsLauncher/AppsLauncher.stories.tsx +0 -58
- package/src/components/AppsLauncher/AppsLauncher.tsx +0 -117
- package/src/components/AppsLauncher/__tests__/AppsLauncher.test.tsx +0 -52
- package/src/components/AspectRatio/AspectRatio.module.css +0 -15
- package/src/components/AspectRatio/AspectRatio.stories.tsx +0 -78
- package/src/components/AspectRatio/AspectRatio.tsx +0 -21
- package/src/components/AspectRatio/__tests__/AspectRatio.test.tsx +0 -27
- package/src/components/Avatar/Avatar.module.css +0 -38
- package/src/components/Avatar/Avatar.tsx +0 -42
- package/src/components/Badge/Badge.module.css +0 -177
- package/src/components/Badge/Badge.stories.tsx +0 -238
- package/src/components/Badge/Badge.tsx +0 -84
- package/src/components/Badge/__tests__/Badge.test.tsx +0 -90
- package/src/components/BalanceChip/BalanceChip.module.css +0 -32
- package/src/components/BalanceChip/BalanceChip.stories.tsx +0 -45
- package/src/components/BalanceChip/BalanceChip.tsx +0 -33
- package/src/components/Breadcrumb/Breadcrumb.module.css +0 -49
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -47
- package/src/components/Breadcrumb/Breadcrumb.tsx +0 -57
- package/src/components/Breadcrumb/__tests__/Breadcrumb.test.tsx +0 -52
- package/src/components/Button/Button.module.css +0 -169
- package/src/components/Button/Button.stories.tsx +0 -83
- package/src/components/Button/Button.tsx +0 -52
- package/src/components/Button/__tests__/Button.test.tsx +0 -66
- package/src/components/ButtonGroup/ButtonGroup.module.css +0 -29
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -57
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -27
- package/src/components/ButtonGroup/__tests__/ButtonGroup.test.tsx +0 -29
- package/src/components/Calendar/Calendar.module.css +0 -126
- package/src/components/Calendar/Calendar.tsx +0 -213
- package/src/components/Calendar/__tests__/Calendar.test.tsx +0 -98
- package/src/components/Calendar/dateUtils.ts +0 -97
- package/src/components/Card/Card.module.css +0 -42
- package/src/components/Card/Card.tsx +0 -34
- package/src/components/CardTile/CardTile.module.css +0 -181
- package/src/components/CardTile/CardTile.stories.tsx +0 -86
- package/src/components/CardTile/CardTile.tsx +0 -128
- package/src/components/CardTile/__tests__/CardTile.test.tsx +0 -56
- package/src/components/CheckableListRow/CheckableListRow.module.css +0 -95
- package/src/components/CheckableListRow/CheckableListRow.stories.tsx +0 -99
- package/src/components/CheckableListRow/CheckableListRow.tsx +0 -89
- package/src/components/Checkbox/Checkbox.module.css +0 -111
- package/src/components/Checkbox/Checkbox.tsx +0 -78
- package/src/components/CodeTextarea/CodeTextarea.module.css +0 -53
- package/src/components/CodeTextarea/CodeTextarea.stories.tsx +0 -77
- package/src/components/CodeTextarea/CodeTextarea.tsx +0 -36
- package/src/components/Collapsible/Collapsible.module.css +0 -70
- package/src/components/Collapsible/Collapsible.stories.tsx +0 -62
- package/src/components/Collapsible/Collapsible.tsx +0 -66
- package/src/components/Collapsible/__tests__/Collapsible.test.tsx +0 -71
- package/src/components/ColorPicker/ColorPicker.module.css +0 -132
- package/src/components/ColorPicker/ColorPicker.stories.tsx +0 -80
- package/src/components/ColorPicker/ColorPicker.tsx +0 -157
- package/src/components/ColorPicker/__tests__/ColorPicker.test.tsx +0 -117
- package/src/components/Combobox/Combobox.module.css +0 -122
- package/src/components/Combobox/Combobox.stories.tsx +0 -79
- package/src/components/Combobox/Combobox.tsx +0 -186
- package/src/components/Combobox/__tests__/Combobox.test.tsx +0 -158
- package/src/components/Command/Command.module.css +0 -80
- package/src/components/Command/Command.stories.tsx +0 -104
- package/src/components/Command/Command.tsx +0 -168
- package/src/components/Command/__tests__/Command.test.tsx +0 -162
- package/src/components/ConfirmDialog/ConfirmDialog.module.css +0 -113
- package/src/components/ConfirmDialog/ConfirmDialog.tsx +0 -150
- package/src/components/ConfirmDialog/__tests__/ConfirmDialog.test.tsx +0 -214
- package/src/components/ConsentPrompt/ConsentPrompt.module.css +0 -21
- package/src/components/ConsentPrompt/ConsentPrompt.stories.tsx +0 -31
- package/src/components/ConsentPrompt/ConsentPrompt.tsx +0 -66
- package/src/components/ContextMenu/ContextMenu.stories.tsx +0 -81
- package/src/components/ContextMenu/ContextMenu.tsx +0 -100
- package/src/components/ContextMenu/__tests__/ContextMenu.test.tsx +0 -87
- package/src/components/CurrencyInput/CurrencyInput.stories.tsx +0 -50
- package/src/components/CurrencyInput/CurrencyInput.tsx +0 -60
- package/src/components/DataTable/DataTable.module.css +0 -28
- package/src/components/DataTable/DataTable.stories.tsx +0 -74
- package/src/components/DataTable/DataTable.tsx +0 -154
- package/src/components/DataTable/__tests__/DataTable.test.tsx +0 -123
- package/src/components/DatePicker/DatePicker.module.css +0 -61
- package/src/components/DatePicker/DatePicker.tsx +0 -103
- package/src/components/DatePicker/__tests__/DatePicker.test.tsx +0 -89
- package/src/components/DeviceOnlyGate/DeviceOnlyGate.tsx +0 -58
- package/src/components/DeviceOnlyGate/__tests__/DeviceOnlyGate.test.tsx +0 -45
- package/src/components/DeviceStorageKeyGate/DeviceStorageKeyGate.tsx +0 -100
- package/src/components/DeviceStorageKeyGate/__tests__/DeviceStorageKeyGate.test.tsx +0 -119
- package/src/components/Dialog/Dialog.module.css +0 -335
- package/src/components/Dialog/Dialog.stories.tsx +0 -324
- package/src/components/Dialog/Dialog.tsx +0 -254
- package/src/components/Dialog/__tests__/Dialog.test.tsx +0 -318
- package/src/components/DragHandleRow/DragHandleRow.module.css +0 -57
- package/src/components/DragHandleRow/DragHandleRow.tsx +0 -42
- package/src/components/Drawer/Drawer.module.css +0 -121
- package/src/components/Drawer/Drawer.stories.tsx +0 -132
- package/src/components/Drawer/Drawer.tsx +0 -175
- package/src/components/Drawer/__tests__/Drawer.test.tsx +0 -226
- package/src/components/EmptyState/EmptyState.module.css +0 -27
- package/src/components/EmptyState/EmptyState.tsx +0 -27
- package/src/components/FileDropzone/FileDropzone.module.css +0 -63
- package/src/components/FileDropzone/FileDropzone.tsx +0 -109
- package/src/components/FileDropzone/__tests__/FileDropzone.test.tsx +0 -67
- package/src/components/FormField/FormField.module.css +0 -33
- package/src/components/FormField/FormField.tsx +0 -78
- package/src/components/FormField/__tests__/FormField.test.tsx +0 -83
- package/src/components/GripIcon/GripIcon.tsx +0 -27
- package/src/components/Header/Header.module.css +0 -62
- package/src/components/Header/Header.stories.tsx +0 -452
- package/src/components/Header/Header.tsx +0 -102
- package/src/components/Header/__tests__/Header.test.tsx +0 -104
- package/src/components/HeaderFooterLayout/HeaderFooterLayout.module.css +0 -21
- package/src/components/HeaderFooterLayout/HeaderFooterLayout.stories.tsx +0 -111
- package/src/components/HeaderFooterLayout/HeaderFooterLayout.tsx +0 -54
- package/src/components/HeaderFooterLayout/__tests__/HeaderFooterLayout.test.tsx +0 -58
- package/src/components/HoverCard/HoverCard.module.css +0 -3
- package/src/components/HoverCard/HoverCard.stories.tsx +0 -66
- package/src/components/HoverCard/HoverCard.tsx +0 -111
- package/src/components/HoverCard/__tests__/HoverCard.test.tsx +0 -99
- package/src/components/Icon/Icon.module.css +0 -27
- package/src/components/Icon/Icon.stories.tsx +0 -95
- package/src/components/Icon/Icon.tsx +0 -43
- package/src/components/Icon/__tests__/Icon.test.tsx +0 -40
- package/src/components/Icon/icons/activity.tsx +0 -20
- package/src/components/Icon/icons/alert-triangle.tsx +0 -22
- package/src/components/Icon/icons/apple.tsx +0 -21
- package/src/components/Icon/icons/arrow-left-right.tsx +0 -23
- package/src/components/Icon/icons/banana.tsx +0 -21
- package/src/components/Icon/icons/beef.tsx +0 -22
- package/src/components/Icon/icons/beer.tsx +0 -24
- package/src/components/Icon/icons/bell.tsx +0 -21
- package/src/components/Icon/icons/bold.tsx +0 -20
- package/src/components/Icon/icons/calendar.tsx +0 -23
- package/src/components/Icon/icons/candy.tsx +0 -24
- package/src/components/Icon/icons/carrot.tsx +0 -22
- package/src/components/Icon/icons/check.tsx +0 -20
- package/src/components/Icon/icons/chevron-down.tsx +0 -20
- package/src/components/Icon/icons/chevron-left.tsx +0 -20
- package/src/components/Icon/icons/chevron-right.tsx +0 -20
- package/src/components/Icon/icons/chevron-up.tsx +0 -20
- package/src/components/Icon/icons/circle-check.tsx +0 -21
- package/src/components/Icon/icons/circle-chevron-left.tsx +0 -21
- package/src/components/Icon/icons/circle-x.tsx +0 -22
- package/src/components/Icon/icons/code.tsx +0 -21
- package/src/components/Icon/icons/coffee.tsx +0 -23
- package/src/components/Icon/icons/cookie.tsx +0 -25
- package/src/components/Icon/icons/copy.tsx +0 -21
- package/src/components/Icon/icons/credit-card.tsx +0 -21
- package/src/components/Icon/icons/croissant.tsx +0 -24
- package/src/components/Icon/icons/cup-soda.tsx +0 -23
- package/src/components/Icon/icons/database.tsx +0 -22
- package/src/components/Icon/icons/download.tsx +0 -22
- package/src/components/Icon/icons/drumstick.tsx +0 -21
- package/src/components/Icon/icons/egg.tsx +0 -20
- package/src/components/Icon/icons/ellipsis-vertical.tsx +0 -22
- package/src/components/Icon/icons/external-link.tsx +0 -22
- package/src/components/Icon/icons/eye-off.tsx +0 -23
- package/src/components/Icon/icons/eye.tsx +0 -21
- package/src/components/Icon/icons/file-text.tsx +0 -24
- package/src/components/Icon/icons/file.tsx +0 -21
- package/src/components/Icon/icons/fish.tsx +0 -25
- package/src/components/Icon/icons/folder-closed.tsx +0 -21
- package/src/components/Icon/icons/folder-open.tsx +0 -20
- package/src/components/Icon/icons/folder.tsx +0 -20
- package/src/components/Icon/icons/folders.tsx +0 -21
- package/src/components/Icon/icons/grid-2x2.tsx +0 -22
- package/src/components/Icon/icons/hat-glasses.tsx +0 -24
- package/src/components/Icon/icons/history.tsx +0 -22
- package/src/components/Icon/icons/house.tsx +0 -21
- package/src/components/Icon/icons/inbox.tsx +0 -21
- package/src/components/Icon/icons/index.ts +0 -394
- package/src/components/Icon/icons/info.tsx +0 -22
- package/src/components/Icon/icons/italic.tsx +0 -22
- package/src/components/Icon/icons/layers.tsx +0 -22
- package/src/components/Icon/icons/layout-dashboard.tsx +0 -23
- package/src/components/Icon/icons/layout-grid.tsx +0 -23
- package/src/components/Icon/icons/link.tsx +0 -21
- package/src/components/Icon/icons/list-ordered.tsx +0 -25
- package/src/components/Icon/icons/list.tsx +0 -25
- package/src/components/Icon/icons/lock.tsx +0 -21
- package/src/components/Icon/icons/log-out.tsx +0 -22
- package/src/components/Icon/icons/luggage.tsx +0 -24
- package/src/components/Icon/icons/mail.tsx +0 -21
- package/src/components/Icon/icons/map-pin.tsx +0 -21
- package/src/components/Icon/icons/menu.tsx +0 -22
- package/src/components/Icon/icons/milk.tsx +0 -22
- package/src/components/Icon/icons/minus.tsx +0 -20
- package/src/components/Icon/icons/package.tsx +0 -23
- package/src/components/Icon/icons/paint-bucket.tsx +0 -23
- package/src/components/Icon/icons/panel-left.tsx +0 -21
- package/src/components/Icon/icons/pencil.tsx +0 -21
- package/src/components/Icon/icons/pin.tsx +0 -21
- package/src/components/Icon/icons/pizza.tsx +0 -24
- package/src/components/Icon/icons/plus.tsx +0 -21
- package/src/components/Icon/icons/rectangle-ellipsis.tsx +0 -23
- package/src/components/Icon/icons/refresh-cw.tsx +0 -23
- package/src/components/Icon/icons/rotate-ccw.tsx +0 -21
- package/src/components/Icon/icons/rotate-cw.tsx +0 -21
- package/src/components/Icon/icons/route.tsx +0 -22
- package/src/components/Icon/icons/salad.tsx +0 -24
- package/src/components/Icon/icons/search.tsx +0 -21
- package/src/components/Icon/icons/send.tsx +0 -21
- package/src/components/Icon/icons/settings.tsx +0 -21
- package/src/components/Icon/icons/share-2.tsx +0 -24
- package/src/components/Icon/icons/sheet.tsx +0 -24
- package/src/components/Icon/icons/shield.tsx +0 -20
- package/src/components/Icon/icons/shopping-basket.tsx +0 -26
- package/src/components/Icon/icons/sliders-horizontal.tsx +0 -28
- package/src/components/Icon/icons/smartphone.tsx +0 -21
- package/src/components/Icon/icons/snowflake.tsx +0 -31
- package/src/components/Icon/icons/spray-can.tsx +0 -29
- package/src/components/Icon/icons/square-kanban.tsx +0 -23
- package/src/components/Icon/icons/table.tsx +0 -23
- package/src/components/Icon/icons/trash-2.tsx +0 -24
- package/src/components/Icon/icons/upload.tsx +0 -22
- package/src/components/Icon/icons/user-round-plus.tsx +0 -23
- package/src/components/Icon/icons/user.tsx +0 -21
- package/src/components/Icon/icons/users.tsx +0 -23
- package/src/components/Icon/icons/wine.tsx +0 -23
- package/src/components/Icon/icons/x.tsx +0 -21
- package/src/components/IconPicker/IconPicker.module.css +0 -63
- package/src/components/IconPicker/IconPicker.stories.tsx +0 -84
- package/src/components/IconPicker/IconPicker.tsx +0 -90
- package/src/components/Input/Input.module.css +0 -52
- package/src/components/Input/Input.stories.tsx +0 -86
- package/src/components/Input/Input.tsx +0 -20
- package/src/components/Input/__tests__/Input.test.tsx +0 -22
- package/src/components/Item/Item.module.css +0 -70
- package/src/components/Item/Item.stories.tsx +0 -62
- package/src/components/Item/Item.tsx +0 -54
- package/src/components/Item/__tests__/Item.test.tsx +0 -39
- package/src/components/Kbd/Kbd.module.css +0 -14
- package/src/components/Kbd/Kbd.stories.tsx +0 -32
- package/src/components/Kbd/Kbd.tsx +0 -12
- package/src/components/Kbd/__tests__/Kbd.test.tsx +0 -14
- package/src/components/Label/Label.module.css +0 -11
- package/src/components/Label/Label.stories.tsx +0 -40
- package/src/components/Label/Label.tsx +0 -24
- package/src/components/Label/__tests__/Label.test.tsx +0 -32
- package/src/components/LegalLinks/LegalLinks.module.css +0 -24
- package/src/components/LegalLinks/LegalLinks.stories.tsx +0 -22
- package/src/components/LegalLinks/LegalLinks.tsx +0 -40
- package/src/components/Markdown/Markdown.module.css +0 -73
- package/src/components/Markdown/Markdown.stories.tsx +0 -40
- package/src/components/Markdown/Markdown.tsx +0 -305
- package/src/components/Markdown/__tests__/Markdown.test.tsx +0 -144
- package/src/components/Marker/Marker.module.css +0 -33
- package/src/components/Marker/Marker.stories.tsx +0 -39
- package/src/components/Marker/Marker.tsx +0 -34
- package/src/components/Marker/__tests__/Marker.test.tsx +0 -23
- package/src/components/MemberMultiSelect/MemberMultiSelect.module.css +0 -27
- package/src/components/MemberMultiSelect/MemberMultiSelect.stories.tsx +0 -74
- package/src/components/MemberMultiSelect/MemberMultiSelect.tsx +0 -67
- package/src/components/Menu/Menu.module.css +0 -90
- package/src/components/Menu/Menu.tsx +0 -209
- package/src/components/Menu/__tests__/Menu.test.tsx +0 -227
- package/src/components/Menubar/Menubar.stories.tsx +0 -52
- package/src/components/Menubar/Menubar.tsx +0 -42
- package/src/components/Menubar/__tests__/Menubar.test.tsx +0 -45
- package/src/components/Message/Message.module.css +0 -99
- package/src/components/Message/Message.stories.tsx +0 -79
- package/src/components/Message/Message.tsx +0 -41
- package/src/components/Message/__tests__/Message.test.tsx +0 -46
- package/src/components/MessageScroller/MessageScroller.module.css +0 -65
- package/src/components/MessageScroller/MessageScroller.stories.tsx +0 -84
- package/src/components/MessageScroller/MessageScroller.tsx +0 -84
- package/src/components/MessageScroller/__tests__/MessageScroller.test.tsx +0 -105
- package/src/components/MobileAppsDrawer/MobileAppsDrawer.module.css +0 -82
- package/src/components/MobileAppsDrawer/MobileAppsDrawer.tsx +0 -78
- package/src/components/MobileAppsDrawer/__tests__/MobileAppsDrawer.test.tsx +0 -80
- package/src/components/MobileFooter/MobileFooter.module.css +0 -73
- package/src/components/MobileFooter/MobileFooter.stories.tsx +0 -47
- package/src/components/MobileFooter/MobileFooter.tsx +0 -122
- package/src/components/MobileFooter/__tests__/MobileFooter.test.tsx +0 -129
- package/src/components/MobileHeader/MobileHeader.module.css +0 -76
- package/src/components/MobileHeader/MobileHeader.stories.tsx +0 -57
- package/src/components/MobileHeader/MobileHeader.tsx +0 -90
- package/src/components/MobileHeader/__tests__/MobileHeader.test.tsx +0 -113
- package/src/components/NavList/NavList.module.css +0 -130
- package/src/components/NavList/NavList.tsx +0 -136
- package/src/components/NavList/__tests__/NavList.test.tsx +0 -109
- package/src/components/NavTabs/NavTabs.module.css +0 -50
- package/src/components/NavTabs/NavTabs.tsx +0 -61
- package/src/components/NavigationMenu/NavigationMenu.module.css +0 -53
- package/src/components/NavigationMenu/NavigationMenu.stories.tsx +0 -58
- package/src/components/NavigationMenu/NavigationMenu.tsx +0 -125
- package/src/components/NavigationMenu/__tests__/NavigationMenu.test.tsx +0 -93
- package/src/components/NotificationsPanel/NotificationsPanel.module.css +0 -258
- package/src/components/NotificationsPanel/NotificationsPanel.stories.tsx +0 -61
- package/src/components/NotificationsPanel/NotificationsPanel.tsx +0 -187
- package/src/components/NotificationsPanel/__tests__/NotificationsPanel.test.tsx +0 -78
- package/src/components/OfflineGate/OfflineGate.tsx +0 -44
- package/src/components/OfflineGate/__tests__/OfflineGate.test.tsx +0 -66
- package/src/components/OverlayHeader/OverlayHeader.module.css +0 -98
- package/src/components/OverlayHeader/OverlayHeader.tsx +0 -77
- package/src/components/OverlayHeader/__tests__/OverlayHeader.test.tsx +0 -69
- package/src/components/PageContainer/PageContainer.module.css +0 -82
- package/src/components/PageContainer/PageContainer.tsx +0 -64
- package/src/components/PageContainer/__tests__/PageContainer.test.tsx +0 -70
- package/src/components/PageHeader/PageHeader.module.css +0 -86
- package/src/components/PageHeader/PageHeader.tsx +0 -176
- package/src/components/PageHeader/__tests__/PageHeader.test.tsx +0 -103
- package/src/components/PageLayout/PageLayout.module.css +0 -51
- package/src/components/PageLayout/PageLayout.stories.tsx +0 -73
- package/src/components/PageLayout/PageLayout.tsx +0 -51
- package/src/components/PageLayout/__tests__/PageLayout.test.tsx +0 -34
- package/src/components/Pagination/Pagination.module.css +0 -98
- package/src/components/Pagination/Pagination.stories.tsx +0 -49
- package/src/components/Pagination/Pagination.tsx +0 -87
- package/src/components/Pagination/__tests__/Pagination.test.tsx +0 -56
- package/src/components/Popover/Popover.module.css +0 -74
- package/src/components/Popover/Popover.stories.tsx +0 -357
- package/src/components/Popover/Popover.tsx +0 -290
- package/src/components/Popover/__tests__/Popover.test.tsx +0 -263
- package/src/components/Progress/Progress.module.css +0 -20
- package/src/components/Progress/Progress.stories.tsx +0 -40
- package/src/components/Progress/Progress.tsx +0 -35
- package/src/components/Progress/__tests__/Progress.test.tsx +0 -31
- package/src/components/QuantityStepper/QuantityStepper.module.css +0 -67
- package/src/components/QuantityStepper/QuantityStepper.stories.tsx +0 -79
- package/src/components/QuantityStepper/QuantityStepper.tsx +0 -107
- package/src/components/RadioGroup/RadioGroup.module.css +0 -88
- package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -69
- package/src/components/RadioGroup/RadioGroup.tsx +0 -99
- package/src/components/RadioGroup/__tests__/RadioGroup.test.tsx +0 -59
- package/src/components/Resizable/Resizable.module.css +0 -70
- package/src/components/Resizable/Resizable.stories.tsx +0 -82
- package/src/components/Resizable/Resizable.tsx +0 -313
- package/src/components/Resizable/__tests__/Resizable.test.tsx +0 -128
- package/src/components/ResponsiveSurface/ResponsiveSurface.tsx +0 -24
- package/src/components/ResponsiveSurface/__tests__/ResponsiveSurface.test.tsx +0 -73
- package/src/components/RootLayout/RootLayout.module.css +0 -12
- package/src/components/RootLayout/RootLayout.stories.tsx +0 -125
- package/src/components/RootLayout/RootLayout.tsx +0 -185
- package/src/components/RootLayout/__tests__/RootLayout.test.tsx +0 -161
- package/src/components/ScrollArea/ScrollArea.module.css +0 -20
- package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -57
- package/src/components/ScrollArea/ScrollArea.tsx +0 -27
- package/src/components/ScrollArea/__tests__/ScrollArea.test.tsx +0 -39
- package/src/components/SegmentedControl/SegmentedControl.module.css +0 -55
- package/src/components/SegmentedControl/SegmentedControl.stories.tsx +0 -118
- package/src/components/SegmentedControl/SegmentedControl.tsx +0 -56
- package/src/components/SegmentedControl/__tests__/SegmentedControl.test.tsx +0 -63
- package/src/components/Select/Select.module.css +0 -82
- package/src/components/Select/Select.stories.tsx +0 -115
- package/src/components/Select/Select.tsx +0 -48
- package/src/components/Select/__tests__/Select.test.tsx +0 -59
- package/src/components/Sheet/Sheet.module.css +0 -58
- package/src/components/Sheet/Sheet.tsx +0 -109
- package/src/components/Sheet/__tests__/Sheet.test.tsx +0 -99
- package/src/components/Slider/Slider.module.css +0 -95
- package/src/components/Slider/Slider.stories.tsx +0 -64
- package/src/components/Slider/Slider.tsx +0 -77
- package/src/components/Slider/__tests__/Slider.test.tsx +0 -45
- package/src/components/Spinner/Spinner.module.css +0 -39
- package/src/components/Spinner/Spinner.tsx +0 -23
- package/src/components/SplitMethodSelector/SplitMethodSelector.stories.tsx +0 -33
- package/src/components/SplitMethodSelector/SplitMethodSelector.tsx +0 -43
- package/src/components/SplitPane/SplitPane.module.css +0 -85
- package/src/components/SplitPane/SplitPane.stories.tsx +0 -160
- package/src/components/SplitPane/SplitPane.tsx +0 -149
- package/src/components/SplitPane/__tests__/SplitPane.test.tsx +0 -51
- package/src/components/StatusBadge/StatusBadge.module.css +0 -59
- package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -74
- package/src/components/StatusBadge/StatusBadge.tsx +0 -65
- package/src/components/StepStrip/StepStrip.module.css +0 -53
- package/src/components/StepStrip/StepStrip.tsx +0 -74
- package/src/components/SuggestionInput/SuggestionInput.module.css +0 -103
- package/src/components/SuggestionInput/SuggestionInput.stories.tsx +0 -144
- package/src/components/SuggestionInput/SuggestionInput.tsx +0 -207
- package/src/components/SwipableMobileCarousel/SwipableMobileCarousel.module.css +0 -64
- package/src/components/SwipableMobileCarousel/SwipableMobileCarousel.tsx +0 -243
- package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlide.tsx +0 -35
- package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideBody.tsx +0 -42
- package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideFooter.tsx +0 -18
- package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideHeader.tsx +0 -21
- package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideParts.module.css +0 -29
- package/src/components/SwipableMobileCarousel/__tests__/SwipableMobileCarousel.test.tsx +0 -214
- package/src/components/SwipableMobileCarousel/__tests__/SwipableMobileCarouselDevGuard.test.tsx +0 -61
- package/src/components/SwipableMobileCarousel/context.ts +0 -13
- package/src/components/SwipableMobileCarouselDots/SwipableMobileCarouselDots.module.css +0 -64
- package/src/components/SwipableMobileCarouselDots/SwipableMobileCarouselDots.tsx +0 -73
- package/src/components/SwipableMobileCarouselDots/__tests__/SwipableMobileCarouselDots.test.tsx +0 -63
- package/src/components/SwipeStack/SwipeStack.module.css +0 -101
- package/src/components/SwipeStack/SwipeStack.tsx +0 -199
- package/src/components/SwipeStack/SwipeStackCard.tsx +0 -22
- package/src/components/SwipeStack/__tests__/SwipeStack.test.tsx +0 -169
- package/src/components/SystemBanner/SystemBanner.module.css +0 -79
- package/src/components/SystemBanner/SystemBanner.stories.tsx +0 -86
- package/src/components/SystemBanner/SystemBanner.tsx +0 -50
- package/src/components/SystemBanner/__tests__/SystemBanner.test.tsx +0 -50
- package/src/components/Table/Table.module.css +0 -45
- package/src/components/Table/Table.stories.tsx +0 -125
- package/src/components/Table/Table.tsx +0 -51
- package/src/components/Table/__tests__/Table.test.tsx +0 -50
- package/src/components/Tabs/Tabs.module.css +0 -56
- package/src/components/Tabs/Tabs.stories.tsx +0 -100
- package/src/components/Tabs/Tabs.tsx +0 -46
- package/src/components/Tabs/__tests__/Tabs.test.tsx +0 -45
- package/src/components/TagInput/TagInput.module.css +0 -141
- package/src/components/TagInput/TagInput.stories.tsx +0 -109
- package/src/components/TagInput/TagInput.tsx +0 -174
- package/src/components/TagInput/__tests__/TagInput.test.tsx +0 -69
- package/src/components/Textarea/Textarea.module.css +0 -47
- package/src/components/Textarea/Textarea.tsx +0 -38
- package/src/components/Textarea/__tests__/Textarea.test.tsx +0 -51
- package/src/components/ThreeColumnLayout/ThreeColumnLayout.module.css +0 -35
- package/src/components/ThreeColumnLayout/ThreeColumnLayout.stories.tsx +0 -152
- package/src/components/ThreeColumnLayout/ThreeColumnLayout.tsx +0 -87
- package/src/components/ThreeColumnLayout/__tests__/ThreeColumnLayout.test.tsx +0 -78
- package/src/components/Toast/Toast.module.css +0 -191
- package/src/components/Toast/Toast.stories.tsx +0 -191
- package/src/components/Toast/Toast.tsx +0 -139
- package/src/components/Toggle/Toggle.module.css +0 -57
- package/src/components/Toggle/Toggle.stories.tsx +0 -95
- package/src/components/Toggle/Toggle.tsx +0 -39
- package/src/components/Toggle/__tests__/Toggle.test.tsx +0 -47
- package/src/components/Tooltip/Tooltip.module.css +0 -56
- package/src/components/Tooltip/Tooltip.tsx +0 -30
- package/src/components/Typography/Typography.module.css +0 -47
- package/src/components/Typography/Typography.stories.tsx +0 -62
- package/src/components/Typography/Typography.tsx +0 -30
- package/src/components/Typography/__tests__/Typography.test.tsx +0 -34
- package/src/components/UserMenu/UserMenu.module.css +0 -90
- package/src/components/UserMenu/UserMenu.stories.tsx +0 -49
- package/src/components/UserMenu/UserMenu.tsx +0 -132
- package/src/components/UserMenu/__tests__/UserMenu.test.tsx +0 -77
- package/src/css-modules.d.ts +0 -4
- package/src/hooks/__tests__/useCarouselRouteSync.test.tsx +0 -126
- package/src/hooks/__tests__/useDoubleTap.test.tsx +0 -117
- package/src/hooks/__tests__/useIsMobile.test.tsx +0 -80
- package/src/hooks/__tests__/useIsOffline.test.tsx +0 -53
- package/src/hooks/__tests__/useLongPress.test.tsx +0 -158
- package/src/hooks/__tests__/useOfflineTileState.test.tsx +0 -69
- package/src/hooks/__tests__/usePublishShellChromeHeight.test.tsx +0 -118
- package/src/hooks/__tests__/useReorderSensors.test.ts +0 -26
- package/src/hooks/__tests__/useResponsiveLayout.test.tsx +0 -87
- package/src/hooks/__tests__/useSnapCarousel.test.tsx +0 -175
- package/src/hooks/__tests__/useSwipeReveal.test.tsx +0 -110
- package/src/hooks/__tests__/useSwipeStack.test.tsx +0 -155
- package/src/hooks/index.ts +0 -33
- package/src/hooks/useCarouselRouteSync.ts +0 -92
- package/src/hooks/useCommitOnEnterOrBlur.ts +0 -39
- package/src/hooks/useDoubleTap.ts +0 -91
- package/src/hooks/useIsMobile.ts +0 -33
- package/src/hooks/useIsOffline.ts +0 -41
- package/src/hooks/useLongPress.ts +0 -185
- package/src/hooks/useOfflineTileState.ts +0 -45
- package/src/hooks/usePublishShellChromeHeight.ts +0 -96
- package/src/hooks/useReorderSensors.ts +0 -88
- package/src/hooks/useResponsiveLayout.ts +0 -36
- package/src/hooks/useSnapCarousel.ts +0 -284
- package/src/hooks/useSwipeReveal.ts +0 -107
- package/src/hooks/useSwipeStack.ts +0 -235
- package/src/index.ts +0 -311
- package/src/motion.ts +0 -78
- package/src/overlay-shell.ts +0 -159
- package/src/scroll-lock.ts +0 -22
- package/src/stories/Avatar.stories.tsx +0 -44
- package/src/stories/Card.stories.tsx +0 -35
- package/src/stories/Checkbox.stories.tsx +0 -45
- package/src/stories/DesignSystemOverview.stories.tsx +0 -3793
- package/src/stories/DeviceOnlyGate.stories.tsx +0 -35
- package/src/stories/DeviceStorageKeyGate.stories.tsx +0 -57
- package/src/stories/DragHandleRow.stories.tsx +0 -41
- package/src/stories/EmptyState.stories.tsx +0 -33
- package/src/stories/FileDropzone.stories.tsx +0 -69
- package/src/stories/FormField.stories.tsx +0 -47
- package/src/stories/GripIcon.stories.tsx +0 -29
- package/src/stories/InteractionHooks.stories.tsx +0 -925
- package/src/stories/LayoutSystem.stories.tsx +0 -639
- package/src/stories/MenuEntries.stories.tsx +0 -86
- package/src/stories/MobilePatterns.stories.tsx +0 -1536
- package/src/stories/NavList.stories.tsx +0 -147
- package/src/stories/NavTabs.stories.tsx +0 -53
- package/src/stories/OfflineGate.stories.tsx +0 -42
- package/src/stories/PageContainer.stories.tsx +0 -82
- package/src/stories/PageHeader.stories.tsx +0 -95
- package/src/stories/ResponsiveSurface.stories.tsx +0 -47
- package/src/stories/Spinner.stories.tsx +0 -25
- package/src/stories/StepStrip.stories.tsx +0 -76
- package/src/stories/SwipableMobileCarousel.stories.tsx +0 -362
- package/src/stories/SwipeStack.stories.tsx +0 -200
- package/src/stories/Textarea.stories.tsx +0 -63
- package/src/stories/TokenGallery.stories.tsx +0 -652
- package/src/stories/Tooltip.stories.tsx +0 -59
- package/src/tokens/primitives.css +0 -168
- package/src/tokens/semantic.css +0 -162
- package/src/tokens/theme-presets.css +0 -33
- package/src/tokens/theme-presets.ts +0 -72
- package/src/tokens.css +0 -5
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Sovereign Design System — primitive tokens.
|
|
3
|
-
*
|
|
4
|
-
* Raw, context-free scales: the palette, spacing, type, and radii. These are
|
|
5
|
-
* fixed — tenant theming never overrides primitives (it overrides the semantic
|
|
6
|
-
* layer in semantic.css). Plugin code should reference SEMANTIC colour tokens,
|
|
7
|
-
* not these primitives directly.
|
|
8
|
-
*/
|
|
9
|
-
:root {
|
|
10
|
-
/* Neutral grey scale (monochrome identity) */
|
|
11
|
-
--sv-white: #ffffff;
|
|
12
|
-
|
|
13
|
-
/* Status colour primitives — amber (warning), green (success), red (error), blue (info).
|
|
14
|
-
Kept minimal: only the swatches the semantic status tokens reference.
|
|
15
|
-
Hex values align with the v3.1 design spec. */
|
|
16
|
-
--sv-amber-100: #fff7ed;
|
|
17
|
-
--sv-amber-200: #fed7aa;
|
|
18
|
-
--sv-amber-800: #b45309;
|
|
19
|
-
--sv-amber-900: #92400e;
|
|
20
|
-
--sv-green-100: #ecfdf3;
|
|
21
|
-
--sv-green-200: #bbf7d0;
|
|
22
|
-
--sv-green-800: #167c4a;
|
|
23
|
-
--sv-green-900: #14532d;
|
|
24
|
-
--sv-red-100: #fef2f2;
|
|
25
|
-
--sv-red-200: #fecaca;
|
|
26
|
-
--sv-red-700: #b91c1c;
|
|
27
|
-
--sv-red-800: #991b1b;
|
|
28
|
-
--sv-red-900: #7f1d1d;
|
|
29
|
-
--sv-blue-100: #eff6ff;
|
|
30
|
-
--sv-blue-200: #dbeafe;
|
|
31
|
-
--sv-blue-800: #1d4ed8;
|
|
32
|
-
--sv-blue-900: #1e3a8a;
|
|
33
|
-
--sv-black: #000000;
|
|
34
|
-
--sv-grey-50: #fafafa;
|
|
35
|
-
--sv-grey-100: #f4f4f5;
|
|
36
|
-
--sv-grey-200: #e4e4e7;
|
|
37
|
-
--sv-grey-300: #d4d4d8;
|
|
38
|
-
--sv-grey-400: #a1a1aa;
|
|
39
|
-
--sv-grey-500: #71717a;
|
|
40
|
-
--sv-grey-600: #52525b;
|
|
41
|
-
--sv-grey-700: #3f3f46;
|
|
42
|
-
--sv-grey-800: #27272a;
|
|
43
|
-
--sv-grey-900: #18181b;
|
|
44
|
-
--sv-grey-950: #09090b;
|
|
45
|
-
|
|
46
|
-
/* Spacing scale (4px base) */
|
|
47
|
-
--sv-space-1: 0.25rem;
|
|
48
|
-
--sv-space-2: 0.5rem;
|
|
49
|
-
--sv-space-3: 0.75rem;
|
|
50
|
-
--sv-space-4: 1rem;
|
|
51
|
-
--sv-space-5: 1.25rem;
|
|
52
|
-
--sv-space-6: 1.5rem;
|
|
53
|
-
--sv-space-8: 2rem;
|
|
54
|
-
--sv-space-10: 2.5rem;
|
|
55
|
-
--sv-space-12: 3rem;
|
|
56
|
-
--sv-space-16: 4rem;
|
|
57
|
-
|
|
58
|
-
/* Typography
|
|
59
|
-
Default pair: Hanken Grotesk (body) + JetBrains Mono (code/identifiers).
|
|
60
|
-
Operators supply the web font via <link> or instance CSS; the fallback
|
|
61
|
-
stack applies when the font is not loaded. */
|
|
62
|
-
--sv-font-family:
|
|
63
|
-
'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial,
|
|
64
|
-
sans-serif;
|
|
65
|
-
--sv-font-family-mono:
|
|
66
|
-
'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
|
|
67
|
-
--sv-font-size-2xs: 0.625rem; /* 10px — smallest badge size (Badge size="xs") */
|
|
68
|
-
--sv-font-size-label: 0.6875rem; /* 11px — all-caps section labels */
|
|
69
|
-
--sv-font-size-xs: 0.75rem; /* 12px — mono identifiers */
|
|
70
|
-
--sv-font-size-caption: 0.8125rem; /* 13px — secondary / supporting copy */
|
|
71
|
-
--sv-font-size-sm: 0.875rem; /* 14px — body copy */
|
|
72
|
-
--sv-font-size-md: 1rem; /* 16px */
|
|
73
|
-
--sv-font-size-lg: 1.125rem; /* 18px */
|
|
74
|
-
--sv-font-size-xl: 1.25rem; /* 20px */
|
|
75
|
-
--sv-font-size-2xl: 1.5rem; /* 24px */
|
|
76
|
-
--sv-font-size-3xl: 2rem; /* 32px — document title style (RichTextEditor "Title" paragraph style). A
|
|
77
|
-
modest step above 2xl reads too close to Heading 1 at a glance (both
|
|
78
|
-
bold, only 4px apart) — this keeps roughly the same ~1.3x jump Google
|
|
79
|
-
Docs itself uses between its own Title and Heading 1 sizes. */
|
|
80
|
-
--sv-font-weight-regular: 400;
|
|
81
|
-
--sv-font-weight-medium: 500;
|
|
82
|
-
--sv-font-weight-semibold: 600;
|
|
83
|
-
--sv-font-weight-bold: 700;
|
|
84
|
-
|
|
85
|
-
/* In-app text-size control (task 10.2), discharging the pinch-zoom-disabled
|
|
86
|
-
accessibility debt (runtime/app/layout.tsx sets userScalable: false).
|
|
87
|
-
Every --sv-font-size-* above is rem-based, so scaling the root font size
|
|
88
|
-
scales the whole type system with no per-component changes. Driven by
|
|
89
|
-
[data-text-size] on <html>, set pre-paint by runtime/src/theme-script.ts
|
|
90
|
-
from the `sv-text-size` cookie — same mechanism as [data-theme]. Like
|
|
91
|
-
--sv-radius-scale, this is a theme-stable scale token with no separate
|
|
92
|
-
semantic tier. */
|
|
93
|
-
--sv-text-size-scale: 1;
|
|
94
|
-
|
|
95
|
-
/* Icon sizes — scale tokens used directly by the Icon component */
|
|
96
|
-
--sv-icon-size-xs: 0.75rem; /* 12px — inline metadata (e.g. a due-date badge) */
|
|
97
|
-
--sv-icon-size-sm: 1rem; /* 16px — inline with body text */
|
|
98
|
-
--sv-icon-size-md: 1.25rem; /* 20px — standard affordance */
|
|
99
|
-
--sv-icon-size-lg: 1.5rem; /* 24px — prominent / standalone */
|
|
100
|
-
|
|
101
|
-
/* Border radii (v3.1 spec values). --sv-radius-scale is the one
|
|
102
|
-
instance-controllable exception to "scale tokens are theme-stable"
|
|
103
|
-
(RFC 0077) — an operator's corner-radius preset (None/XS/S/M/L)
|
|
104
|
-
overrides it at :root via the InstanceProvider style injection
|
|
105
|
-
(runtime/src/instance-provider.tsx), same pipeline as --sv-color-accent.
|
|
106
|
-
Every corner token below is proportional to it, so a plugin author never
|
|
107
|
-
references --sv-radius-scale directly — they keep using --sv-radius-sm
|
|
108
|
-
etc. exactly as before. --sv-radius-full is deliberately NOT derived
|
|
109
|
-
from the scale: it's a shape token (circle/pill), not a corner-rounding
|
|
110
|
-
one, and stays fixed regardless of the instance preset. */
|
|
111
|
-
--sv-radius-scale: 1;
|
|
112
|
-
--sv-radius-sm: calc(var(--sv-radius-scale) * 0.375rem); /* 6px @ scale 1 — badge, tag */
|
|
113
|
-
--sv-radius-md: calc(var(--sv-radius-scale) * 0.5rem); /* 8px @ scale 1 — button, input */
|
|
114
|
-
--sv-radius-lg: calc(
|
|
115
|
-
var(--sv-radius-scale) * 0.6875rem
|
|
116
|
-
); /* 11px @ scale 1 — sidebar icon, card */
|
|
117
|
-
--sv-radius-xl: calc(var(--sv-radius-scale) * 0.75rem); /* 12px @ scale 1 — card, panel */
|
|
118
|
-
--sv-radius-2xl: calc(var(--sv-radius-scale) * 0.875rem); /* 14px @ scale 1 — popover */
|
|
119
|
-
--sv-radius-3xl: calc(
|
|
120
|
-
var(--sv-radius-scale) * 1.25rem
|
|
121
|
-
); /* 20px @ scale 1 — bottom sheet (Drawer top corners) */
|
|
122
|
-
--sv-radius-full: 9999px; /* pill / avatar — unaffected by --sv-radius-scale */
|
|
123
|
-
|
|
124
|
-
/* Border width (RFC 0094). Theme-stable like the other scale tokens above —
|
|
125
|
-
a theme preset can override it (e.g. neobrutalism's thicker outline), but
|
|
126
|
-
it has no separate semantic tier. Every component references this by
|
|
127
|
-
name instead of a literal `1px`, the way --sv-radius-* etc. do. */
|
|
128
|
-
--sv-border-width-hairline: 1px;
|
|
129
|
-
|
|
130
|
-
/* Touch targets — minimum hit-area dimension for interactive controls.
|
|
131
|
-
44px follows the WCAG 2.5.5 / Apple HIG / Material guideline for reliable
|
|
132
|
-
touch without a pointing device. Applied to icon-only controls on mobile
|
|
133
|
-
(avatar, footer button, Drawer nav items). */
|
|
134
|
-
--sv-touch-target-min: 44px;
|
|
135
|
-
|
|
136
|
-
/* Motion scale — durations and easings for overlay enter/exit transitions
|
|
137
|
-
(Dialog, Drawer, and their Phase-B successors: Sheet, ConfirmDialog,
|
|
138
|
-
Menu). Theme-stable like the other scale tokens above — dark mode does
|
|
139
|
-
not change motion, so there is no semantic tier. Components must pair
|
|
140
|
-
every transition with `@media (prefers-reduced-motion: reduce)` collapsing
|
|
141
|
-
it to near-instant; the durations here are not a substitute for that. */
|
|
142
|
-
--sv-motion-duration-fast: 150ms; /* micro-interactions — hover/press feedback */
|
|
143
|
-
--sv-motion-duration-base: 250ms; /* default overlay enter/exit (Dialog, Drawer) */
|
|
144
|
-
--sv-motion-duration-slow: 350ms; /* larger surfaces / bigger travel distance */
|
|
145
|
-
--sv-motion-ease-out: cubic-bezier(0, 0, 0.2, 1); /* entrances — fast start, gentle settle */
|
|
146
|
-
--sv-motion-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); /* state changes with no fixed direction */
|
|
147
|
-
--sv-motion-ease-spring: cubic-bezier(
|
|
148
|
-
0.34,
|
|
149
|
-
1.56,
|
|
150
|
-
0.64,
|
|
151
|
-
1
|
|
152
|
-
); /* slight overshoot — playful emphasis, use sparingly */
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/* Root font size scales with --sv-text-size-scale — see the token comment
|
|
156
|
-
above. calc(... * 100%) keeps the browser/OS text-zoom default intact at
|
|
157
|
-
scale 1 rather than hardcoding a px value. */
|
|
158
|
-
html {
|
|
159
|
-
font-size: calc(var(--sv-text-size-scale) * 100%);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
:root[data-text-size='large'] {
|
|
163
|
-
--sv-text-size-scale: 1.125; /* +12.5% */
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
:root[data-text-size='larger'] {
|
|
167
|
-
--sv-text-size-scale: 1.25; /* +25% */
|
|
168
|
-
}
|
package/src/tokens/semantic.css
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Sovereign Design System — semantic tokens.
|
|
3
|
-
*
|
|
4
|
-
* Contextual roles mapped from primitives. THIS is the theming surface: dark
|
|
5
|
-
* mode and tenant theming work by overriding these values at :root (or under
|
|
6
|
-
* [data-theme]) — no component changes required. Every value here references a
|
|
7
|
-
* primitive token; none is a hardcoded literal (except shadows and the scrim,
|
|
8
|
-
* which compose rgba layers).
|
|
9
|
-
*
|
|
10
|
-
* Identity is monochrome: the accent is near-black on light, near-white on dark.
|
|
11
|
-
* A tenant gives Sovereign its own colour by overriding --sv-color-accent.
|
|
12
|
-
*/
|
|
13
|
-
:root {
|
|
14
|
-
--sv-color-surface: var(--sv-white);
|
|
15
|
-
--sv-color-surface-sunken: var(--sv-grey-50);
|
|
16
|
-
--sv-color-surface-raised: var(--sv-white);
|
|
17
|
-
|
|
18
|
-
--sv-color-text-primary: var(--sv-grey-950);
|
|
19
|
-
--sv-color-text-muted: var(--sv-grey-500);
|
|
20
|
-
--sv-color-text-subtle: var(--sv-grey-400);
|
|
21
|
-
--sv-color-text-on-accent: var(--sv-white);
|
|
22
|
-
/* Guaranteed-contrast text pair for content painted directly on a
|
|
23
|
-
plugin-supplied literal background colour (data, not a design-system
|
|
24
|
-
token — e.g. a kanban board's own canvas colour). A consumer picks
|
|
25
|
-
whichever member actually contrasts with its own literal background;
|
|
26
|
-
neither can be theme-reactive the way --sv-color-text-primary is,
|
|
27
|
-
since the background itself doesn't react to the app's theme either.
|
|
28
|
-
Intentionally NOT overridden under [data-theme='dark'] below — same
|
|
29
|
-
"reads the same regardless of overall page theme" reasoning as
|
|
30
|
-
--sv-color-text-on-error/-success. */
|
|
31
|
-
--sv-color-text-on-light-fill: var(--sv-grey-950);
|
|
32
|
-
--sv-color-text-on-dark-fill: var(--sv-grey-50);
|
|
33
|
-
|
|
34
|
-
--sv-color-border: var(--sv-grey-200);
|
|
35
|
-
--sv-color-border-strong: var(--sv-grey-300);
|
|
36
|
-
|
|
37
|
-
--sv-color-accent: var(--sv-grey-900);
|
|
38
|
-
--sv-color-accent-hover: var(--sv-grey-700);
|
|
39
|
-
/* Derived from --sv-color-accent via color-mix, so it re-themes automatically —
|
|
40
|
-
no separate dark-mode override needed. Tinted background for badges/chips
|
|
41
|
-
paired with --sv-color-accent text. */
|
|
42
|
-
--sv-color-accent-subtle: color-mix(in srgb, var(--sv-color-accent) 12%, transparent);
|
|
43
|
-
|
|
44
|
-
--sv-color-focus-ring: var(--sv-grey-900);
|
|
45
|
-
|
|
46
|
-
/* Status surfaces — error (red), warning (amber), success (green).
|
|
47
|
-
Use these for banners, badges, and inline validation UI.
|
|
48
|
-
Never hardcode colour hex in components — reference these tokens. */
|
|
49
|
-
--sv-color-error-surface: var(--sv-red-100);
|
|
50
|
-
--sv-color-error-text: var(--sv-red-800);
|
|
51
|
-
--sv-color-error-border: var(--sv-red-200);
|
|
52
|
-
--sv-color-warning-surface: var(--sv-amber-100);
|
|
53
|
-
--sv-color-warning-text: var(--sv-amber-800);
|
|
54
|
-
--sv-color-warning-border: var(--sv-amber-200);
|
|
55
|
-
--sv-color-success-surface: var(--sv-green-100);
|
|
56
|
-
--sv-color-success-text: var(--sv-green-800);
|
|
57
|
-
--sv-color-success-border: var(--sv-green-200);
|
|
58
|
-
|
|
59
|
-
/* Status solids — a saturated fill for status affordances that need to
|
|
60
|
-
read as a filled action button rather than a tinted surface (e.g. a
|
|
61
|
-
mobile swipe-to-reveal Delete/Done action). Paired with
|
|
62
|
-
--sv-color-text-on-error/-success (white) for the icon/label on top.
|
|
63
|
-
Intentionally NOT overridden under [data-theme='dark'] below — like
|
|
64
|
-
--sv-color-accent-subtle, a solid action fill reads the same regardless
|
|
65
|
-
of overall page theme; it's the surrounding surface that inverts, not
|
|
66
|
-
this fixed-contrast pairing. */
|
|
67
|
-
--sv-color-error-solid: var(--sv-red-700);
|
|
68
|
-
--sv-color-success-solid: var(--sv-green-800);
|
|
69
|
-
--sv-color-text-on-error: var(--sv-white);
|
|
70
|
-
--sv-color-text-on-success: var(--sv-white);
|
|
71
|
-
|
|
72
|
-
/* Info surfaces — blue palette. Use for informational banners and badges.
|
|
73
|
-
Never hardcode colour hex in components — reference these tokens. */
|
|
74
|
-
--sv-color-info-surface: var(--sv-blue-100);
|
|
75
|
-
--sv-color-info-text: var(--sv-blue-800);
|
|
76
|
-
--sv-color-info-border: var(--sv-blue-200);
|
|
77
|
-
|
|
78
|
-
/* Overlay surfaces (Dialog/Sheet): the scrim behind a dialog and the panel's
|
|
79
|
-
elevation shadow. Composed rgba layers, like --sv-shadow-card. */
|
|
80
|
-
--sv-color-scrim: rgba(0, 0, 0, 0.5);
|
|
81
|
-
|
|
82
|
-
/* High-contrast shadow colour (RFC 0094). Distinct from --sv-color-border-strong
|
|
83
|
-
even though they resolve to the same monochrome scale — a theme preset's
|
|
84
|
-
hard offset shadows (e.g. neobrutalism) need a bolder, more saturated value
|
|
85
|
-
than a border does to read as "authentic," so this is its own token rather
|
|
86
|
-
than reusing border-strong. Unused by the default theme's soft rgba()
|
|
87
|
-
shadows above; only a preset that opts in (theme-presets.ts) references it. */
|
|
88
|
-
--sv-color-shadow-strong: var(--sv-grey-950);
|
|
89
|
-
|
|
90
|
-
--sv-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
91
|
-
--sv-shadow-hover: 0 2px 6px rgba(0, 0, 0, 0.08); /* e1 — card hover lift */
|
|
92
|
-
--sv-shadow-popover:
|
|
93
|
-
0 4px 16px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.08); /* e2 — floating panels */
|
|
94
|
-
--sv-shadow-overlay: 0 10px 38px rgba(0, 0, 0, 0.18), 0 6px 12px rgba(0, 0, 0, 0.12);
|
|
95
|
-
--sv-shadow-control: 0 1px 3px rgba(0, 0, 0, 0.2); /* small interactive-control shadows, e.g. Toggle thumb */
|
|
96
|
-
|
|
97
|
-
/* Button press-interaction tokens (RFC 0094). Consumed unconditionally by
|
|
98
|
-
Button.module.css's :active rule — these defaults (none/0/0) make that
|
|
99
|
-
rule a no-op for today's default look. A theme preset (e.g.
|
|
100
|
-
neobrutalism) sets non-zero values to get a tactile "press into shadow"
|
|
101
|
-
effect. Not overridden under [data-theme='dark'] below — like the
|
|
102
|
-
shadow tokens above, a theme preset's own light/dark variants set these
|
|
103
|
-
directly rather than this file deriving a dark-mode default for them. */
|
|
104
|
-
--sv-button-shadow: none;
|
|
105
|
-
--sv-button-press-x: 0;
|
|
106
|
-
--sv-button-press-y: 0;
|
|
107
|
-
|
|
108
|
-
/*
|
|
109
|
-
* Instance identity tokens (RFC 0027 / RFC 0032 rename). Distinct namespace from --sv-color-*:
|
|
110
|
-
* these hold URLs (not colours) and are set once by the operator, not swapped
|
|
111
|
-
* with dark mode. Set by InstanceProvider server component from instance_config DB.
|
|
112
|
-
* CSS: background-image: var(--sv-instance-logo);
|
|
113
|
-
* or <img src="var(--sv-instance-logo)"> is NOT correct — use the InstanceProvider
|
|
114
|
-
* prop `instanceName` and the /api/instance/* routes for the actual URLs.
|
|
115
|
-
*/
|
|
116
|
-
--sv-instance-logo: none;
|
|
117
|
-
--sv-instance-logo-dark: none;
|
|
118
|
-
--sv-instance-favicon: none;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
[data-theme='dark'] {
|
|
122
|
-
--sv-color-surface: var(--sv-grey-950);
|
|
123
|
-
--sv-color-surface-sunken: var(--sv-grey-900);
|
|
124
|
-
--sv-color-surface-raised: var(--sv-grey-900);
|
|
125
|
-
|
|
126
|
-
--sv-color-text-primary: var(--sv-grey-50);
|
|
127
|
-
--sv-color-text-muted: var(--sv-grey-400);
|
|
128
|
-
--sv-color-text-subtle: var(--sv-grey-600);
|
|
129
|
-
--sv-color-text-on-accent: var(--sv-grey-950);
|
|
130
|
-
|
|
131
|
-
--sv-color-border: var(--sv-grey-800);
|
|
132
|
-
--sv-color-border-strong: var(--sv-grey-700);
|
|
133
|
-
|
|
134
|
-
--sv-color-accent: var(--sv-grey-50);
|
|
135
|
-
--sv-color-accent-hover: var(--sv-grey-200);
|
|
136
|
-
|
|
137
|
-
--sv-color-focus-ring: var(--sv-grey-100);
|
|
138
|
-
|
|
139
|
-
--sv-color-error-surface: var(--sv-red-900);
|
|
140
|
-
--sv-color-error-text: var(--sv-red-200);
|
|
141
|
-
--sv-color-error-border: var(--sv-red-700);
|
|
142
|
-
--sv-color-warning-surface: var(--sv-amber-900);
|
|
143
|
-
--sv-color-warning-text: var(--sv-amber-200);
|
|
144
|
-
--sv-color-warning-border: var(--sv-amber-800);
|
|
145
|
-
--sv-color-success-surface: var(--sv-green-900);
|
|
146
|
-
--sv-color-success-text: var(--sv-green-200);
|
|
147
|
-
--sv-color-success-border: var(--sv-green-800);
|
|
148
|
-
|
|
149
|
-
--sv-color-info-surface: var(--sv-blue-900);
|
|
150
|
-
--sv-color-info-text: var(--sv-blue-100);
|
|
151
|
-
--sv-color-info-border: var(--sv-blue-800);
|
|
152
|
-
|
|
153
|
-
--sv-color-scrim: rgba(0, 0, 0, 0.65);
|
|
154
|
-
|
|
155
|
-
--sv-color-shadow-strong: var(--sv-grey-50);
|
|
156
|
-
|
|
157
|
-
--sv-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.5);
|
|
158
|
-
--sv-shadow-hover: 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
159
|
-
--sv-shadow-popover: 0 4px 16px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
160
|
-
--sv-shadow-overlay: 0 10px 38px rgba(0, 0, 0, 0.6), 0 6px 12px rgba(0, 0, 0, 0.5);
|
|
161
|
-
--sv-shadow-control: 0 1px 3px rgba(0, 0, 0, 0.5);
|
|
162
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Generated by scripts/generate-theme-presets-css.ts — do not edit.
|
|
3
|
-
* Source of truth: packages/ui/src/tokens/theme-presets.ts
|
|
4
|
-
*
|
|
5
|
-
* For Storybook / standalone (non-runtime) use only — set data-theme-preset
|
|
6
|
-
* on the document root element (<html>), never a nested wrapper. See the
|
|
7
|
-
* generator script's doc comment for why.
|
|
8
|
-
*/
|
|
9
|
-
[data-theme-preset='neobrutalism'] {
|
|
10
|
-
--sv-radius-scale: 0;
|
|
11
|
-
--sv-border-width-hairline: 2px;
|
|
12
|
-
--sv-shadow-card: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
13
|
-
--sv-shadow-hover: 6px 6px 0 0 var(--sv-color-shadow-strong);
|
|
14
|
-
--sv-shadow-popover: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
15
|
-
--sv-shadow-overlay: 8px 8px 0 0 var(--sv-color-shadow-strong);
|
|
16
|
-
--sv-shadow-control: 2px 2px 0 0 var(--sv-color-shadow-strong);
|
|
17
|
-
--sv-button-shadow: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
18
|
-
--sv-button-press-x: 4px;
|
|
19
|
-
--sv-button-press-y: 4px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
[data-theme-preset='neobrutalism'][data-theme='dark'] {
|
|
23
|
-
--sv-radius-scale: 0;
|
|
24
|
-
--sv-border-width-hairline: 2px;
|
|
25
|
-
--sv-shadow-card: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
26
|
-
--sv-shadow-hover: 6px 6px 0 0 var(--sv-color-shadow-strong);
|
|
27
|
-
--sv-shadow-popover: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
28
|
-
--sv-shadow-overlay: 8px 8px 0 0 var(--sv-color-shadow-strong);
|
|
29
|
-
--sv-shadow-control: 2px 2px 0 0 var(--sv-color-shadow-strong);
|
|
30
|
-
--sv-button-shadow: 4px 4px 0 0 var(--sv-color-shadow-strong);
|
|
31
|
-
--sv-button-press-x: 4px;
|
|
32
|
-
--sv-button-press-y: 4px;
|
|
33
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sovereign Design System — theme presets (RFC 0094).
|
|
3
|
-
*
|
|
4
|
-
* The single source of truth for every built-in theme preset's token
|
|
5
|
-
* overrides. Deliberately plain data (no CSS-in-JS, no build dependency) so
|
|
6
|
-
* it can be consumed two ways with zero duplication:
|
|
7
|
-
* - `scripts/generate-theme-presets-css.ts` (`pnpm generate:theme-presets`)
|
|
8
|
-
* reads this file and emits `theme-presets.css` for Storybook/standalone
|
|
9
|
-
* consumers.
|
|
10
|
-
* - `runtime/src/instance-style.ts` (RFC 0095) imports `THEME_PRESETS`
|
|
11
|
-
* directly and flattens the selected preset into the existing
|
|
12
|
-
* `:root { ... }` instance-style injection — no CSS parsing, no second
|
|
13
|
-
* copy of these values to drift out of sync.
|
|
14
|
-
*
|
|
15
|
-
* Presets are closed and built-in (RFC 0094's "Alternatives considered") —
|
|
16
|
-
* add a new one here and re-run the generator, never accept arbitrary
|
|
17
|
-
* operator-supplied values into this shape.
|
|
18
|
-
*
|
|
19
|
-
* `'default'` MUST stay `{ light: {}, dark: {} }` — an empty override set is
|
|
20
|
-
* what guarantees today's look stays byte-identical for every instance that
|
|
21
|
-
* never opts into a different preset.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
export type ThemePresetName = 'default' | 'neobrutalism';
|
|
25
|
-
|
|
26
|
-
export const THEME_PRESET_NAMES: readonly ThemePresetName[] = ['default', 'neobrutalism'];
|
|
27
|
-
|
|
28
|
-
export interface ThemePresetTokens {
|
|
29
|
-
/** Sparse — only tokens this preset overrides. Everything else falls through to the default. */
|
|
30
|
-
light: Record<string, string>;
|
|
31
|
-
dark: Record<string, string>;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export const THEME_PRESETS: Record<ThemePresetName, ThemePresetTokens> = {
|
|
35
|
-
default: { light: {}, dark: {} },
|
|
36
|
-
neobrutalism: {
|
|
37
|
-
light: {
|
|
38
|
-
// --sv-radius-scale is a calc()-chain root: --sv-radius-sm..-3xl are
|
|
39
|
-
// all `calc(var(--sv-radius-scale) * ...)`, declared once at :root
|
|
40
|
-
// (primitives.css). This ONLY cascades correctly if the selector this
|
|
41
|
-
// override lands under matches :root itself (<html>) — a scoped
|
|
42
|
-
// descendant selector would set --sv-radius-scale there, but the
|
|
43
|
-
// dependent --sv-radius-* tokens were never re-declared at that node,
|
|
44
|
-
// so they'd keep inheriting their :root-resolved value unchanged. See
|
|
45
|
-
// the `withRadius` decorator comment in `.storybook/preview.ts` for
|
|
46
|
-
// the same constraint, discovered independently while building RFC
|
|
47
|
-
// 0077's Token Gallery preset demo.
|
|
48
|
-
'--sv-radius-scale': '0',
|
|
49
|
-
'--sv-border-width-hairline': '2px',
|
|
50
|
-
'--sv-shadow-card': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
51
|
-
'--sv-shadow-hover': '6px 6px 0 0 var(--sv-color-shadow-strong)',
|
|
52
|
-
'--sv-shadow-popover': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
53
|
-
'--sv-shadow-overlay': '8px 8px 0 0 var(--sv-color-shadow-strong)',
|
|
54
|
-
'--sv-shadow-control': '2px 2px 0 0 var(--sv-color-shadow-strong)',
|
|
55
|
-
'--sv-button-shadow': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
56
|
-
'--sv-button-press-x': '4px',
|
|
57
|
-
'--sv-button-press-y': '4px',
|
|
58
|
-
},
|
|
59
|
-
dark: {
|
|
60
|
-
'--sv-radius-scale': '0',
|
|
61
|
-
'--sv-border-width-hairline': '2px',
|
|
62
|
-
'--sv-shadow-card': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
63
|
-
'--sv-shadow-hover': '6px 6px 0 0 var(--sv-color-shadow-strong)',
|
|
64
|
-
'--sv-shadow-popover': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
65
|
-
'--sv-shadow-overlay': '8px 8px 0 0 var(--sv-color-shadow-strong)',
|
|
66
|
-
'--sv-shadow-control': '2px 2px 0 0 var(--sv-color-shadow-strong)',
|
|
67
|
-
'--sv-button-shadow': '4px 4px 0 0 var(--sv-color-shadow-strong)',
|
|
68
|
-
'--sv-button-press-x': '4px',
|
|
69
|
-
'--sv-button-press-y': '4px',
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
};
|
package/src/tokens.css
DELETED