@chromvoid/uikit 0.1.0 → 0.2.0
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 +19 -6
- package/README.md +1 -0
- package/dist/components/cv-accordion-item.d.ts +1 -1
- package/dist/components/cv-accordion.d.ts +1 -1
- package/dist/components/cv-accordion.js +2 -1
- package/dist/components/cv-alert-dialog.d.ts +1 -1
- package/dist/components/cv-alert-dialog.js +17 -2
- package/dist/components/cv-alert.d.ts +1 -1
- package/dist/components/cv-alert.js +2 -1
- package/dist/components/cv-badge.d.ts +1 -1
- package/dist/components/cv-badge.js +2 -1
- package/dist/components/cv-bottom-sheet.d.ts +127 -0
- package/dist/components/cv-bottom-sheet.js +513 -0
- package/dist/components/cv-breadcrumb-item.d.ts +1 -1
- package/dist/components/cv-breadcrumb-item.js +1 -1
- package/dist/components/cv-breadcrumb.d.ts +1 -1
- package/dist/components/cv-breadcrumb.js +2 -1
- package/dist/components/cv-button.d.ts +23 -1
- package/dist/components/cv-button.js +194 -37
- package/dist/components/cv-callout.d.ts +8 -1
- package/dist/components/cv-callout.js +18 -1
- package/dist/components/cv-card.d.ts +1 -1
- package/dist/components/cv-card.js +2 -2
- package/dist/components/cv-carousel-slide.d.ts +1 -1
- package/dist/components/cv-carousel.d.ts +1 -1
- package/dist/components/cv-carousel.js +2 -1
- package/dist/components/cv-checkbox.d.ts +1 -1
- package/dist/components/cv-combobox-group.d.ts +1 -1
- package/dist/components/cv-combobox-option.d.ts +1 -1
- package/dist/components/cv-combobox-option.js +2 -2
- package/dist/components/cv-combobox.d.ts +3 -1
- package/dist/components/cv-combobox.js +49 -8
- package/dist/components/cv-command-item.d.ts +1 -1
- package/dist/components/cv-command-item.js +2 -2
- package/dist/components/cv-command-palette.d.ts +1 -1
- package/dist/components/cv-command-palette.js +21 -1
- package/dist/components/cv-context-menu.d.ts +1 -1
- package/dist/components/cv-context-menu.js +2 -1
- package/dist/components/cv-copy-button.d.ts +37 -9
- package/dist/components/cv-copy-button.js +129 -41
- package/dist/components/cv-date-picker.d.ts +1 -1
- package/dist/components/cv-date-picker.js +20 -1
- package/dist/components/cv-dialog.d.ts +44 -2
- package/dist/components/cv-dialog.js +686 -74
- package/dist/components/cv-disclosure.d.ts +1 -1
- package/dist/components/cv-disclosure.js +2 -1
- package/dist/components/cv-drawer.d.ts +29 -1
- package/dist/components/cv-drawer.js +229 -4
- package/dist/components/cv-feed-article.d.ts +1 -1
- package/dist/components/cv-feed-article.js +2 -1
- package/dist/components/cv-feed.d.ts +1 -1
- package/dist/components/cv-feed.js +2 -1
- package/dist/components/cv-grid-cell.d.ts +1 -1
- package/dist/components/cv-grid-cell.js +3 -3
- package/dist/components/cv-grid-column.d.ts +1 -1
- package/dist/components/cv-grid-column.js +1 -1
- package/dist/components/cv-grid-row.d.ts +1 -1
- package/dist/components/cv-grid.d.ts +1 -1
- package/dist/components/cv-grid.js +2 -1
- package/dist/components/cv-guidance-anchor.d.ts +47 -0
- package/dist/components/cv-guidance-anchor.js +113 -0
- package/dist/components/cv-guidance-panel.d.ts +29 -0
- package/dist/components/cv-guidance-panel.js +245 -0
- package/dist/components/cv-icon.d.ts +2 -1
- package/dist/components/cv-icon.js +28 -3
- package/dist/components/cv-input.d.ts +7 -1
- package/dist/components/cv-input.js +33 -1
- package/dist/components/cv-landmark.d.ts +1 -1
- package/dist/components/cv-landmark.js +2 -1
- package/dist/components/cv-link.d.ts +1 -1
- package/dist/components/cv-link.js +2 -1
- package/dist/components/cv-listbox-group.d.ts +1 -1
- package/dist/components/cv-listbox.d.ts +1 -1
- package/dist/components/cv-listbox.js +2 -1
- package/dist/components/cv-menu-button.d.ts +24 -1
- package/dist/components/cv-menu-button.js +226 -18
- package/dist/components/cv-menu-group.d.ts +1 -1
- package/dist/components/cv-menu-item.d.ts +1 -1
- package/dist/components/cv-menu-item.js +6 -2
- package/dist/components/cv-menu.d.ts +1 -1
- package/dist/components/cv-menu.js +21 -1
- package/dist/components/cv-meter.d.ts +1 -1
- package/dist/components/cv-meter.js +6 -22
- package/dist/components/cv-number.d.ts +1 -1
- package/dist/components/cv-option.d.ts +1 -1
- package/dist/components/cv-option.js +3 -9
- package/dist/components/cv-popover-positioning.d.ts +22 -0
- package/dist/components/cv-popover-positioning.js +112 -0
- package/dist/components/cv-popover.d.ts +45 -8
- package/dist/components/cv-popover.js +395 -113
- package/dist/components/cv-progress-ring.d.ts +1 -1
- package/dist/components/cv-progress-ring.js +2 -1
- package/dist/components/cv-progress.d.ts +8 -1
- package/dist/components/cv-progress.js +41 -10
- package/dist/components/cv-radio-group.d.ts +1 -1
- package/dist/components/cv-radio.d.ts +1 -1
- package/dist/components/cv-radio.js +1 -1
- package/dist/components/cv-select-group.d.ts +1 -1
- package/dist/components/cv-select-option.d.ts +1 -1
- package/dist/components/cv-select-option.js +2 -2
- package/dist/components/cv-select.d.ts +1 -1
- package/dist/components/cv-select.js +28 -1
- package/dist/components/cv-sidebar-item.d.ts +1 -1
- package/dist/components/cv-sidebar.d.ts +1 -1
- package/dist/components/cv-sidebar.js +3 -2
- package/dist/components/cv-slider-multi-thumb.d.ts +1 -1
- package/dist/components/cv-slider-multi-thumb.js +2 -1
- package/dist/components/cv-slider.d.ts +17 -4
- package/dist/components/cv-slider.js +63 -21
- package/dist/components/cv-spinbutton.d.ts +1 -1
- package/dist/components/cv-spinner.d.ts +1 -1
- package/dist/components/cv-spinner.js +2 -1
- package/dist/components/cv-switch.d.ts +1 -1
- package/dist/components/cv-tab-panel.d.ts +1 -1
- package/dist/components/cv-tab.d.ts +1 -1
- package/dist/components/cv-table-cell.d.ts +1 -1
- package/dist/components/cv-table-cell.js +1 -1
- package/dist/components/cv-table-column.d.ts +1 -1
- package/dist/components/cv-table-column.js +1 -1
- package/dist/components/cv-table-row.d.ts +1 -1
- package/dist/components/cv-table-row.js +1 -4
- package/dist/components/cv-table.d.ts +1 -3
- package/dist/components/cv-table.js +4 -11
- package/dist/components/cv-tabs.d.ts +1 -1
- package/dist/components/cv-tabs.js +3 -2
- package/dist/components/cv-textarea.d.ts +11 -1
- package/dist/components/cv-textarea.js +33 -0
- package/dist/components/cv-toast-region.d.ts +1 -1
- package/dist/components/cv-toast-region.js +2 -1
- package/dist/components/cv-toast.d.ts +1 -1
- package/dist/components/cv-toast.js +20 -27
- package/dist/components/cv-toolbar-item.d.ts +1 -1
- package/dist/components/cv-toolbar-separator.d.ts +1 -1
- package/dist/components/cv-toolbar.d.ts +1 -1
- package/dist/components/cv-toolbar.js +2 -1
- package/dist/components/cv-tooltip.d.ts +1 -1
- package/dist/components/cv-tooltip.js +2 -1
- package/dist/components/cv-treegrid-cell.d.ts +1 -1
- package/dist/components/cv-treegrid-cell.js +1 -1
- package/dist/components/cv-treegrid-column.d.ts +1 -1
- package/dist/components/cv-treegrid-column.js +1 -1
- package/dist/components/cv-treegrid-row.d.ts +1 -1
- package/dist/components/cv-treegrid-row.js +1 -1
- package/dist/components/cv-treegrid.d.ts +1 -1
- package/dist/components/cv-treegrid.js +4 -3
- package/dist/components/cv-treeitem.d.ts +1 -1
- package/dist/components/cv-treeitem.js +2 -2
- package/dist/components/cv-treeview.d.ts +1 -1
- package/dist/components/cv-treeview.js +2 -1
- package/dist/components/cv-window-splitter.d.ts +1 -1
- package/dist/components/cv-window-splitter.js +2 -1
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.js +3 -0
- package/dist/dialog/create-dialog-controller.d.ts +12 -4
- package/dist/dialog/create-dialog-controller.js +84 -22
- package/dist/dialog/index.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/reatom-lit/ReatomLitElement.d.ts +6 -3
- package/dist/reatom-lit/ReatomLitElement.js +18 -8
- package/dist/reatom-lit/createAfterRenderScheduler.d.ts +10 -0
- package/dist/reatom-lit/createAfterRenderScheduler.js +33 -0
- package/dist/reatom-lit/index.d.ts +2 -0
- package/dist/reatom-lit/index.js +1 -0
- package/dist/reatom-lit/watch.d.ts +1 -1
- package/dist/reatom-lit/withReatomElement.js +16 -2
- package/dist/register.js +4 -1
- package/dist/styles/component-styles.js +4 -0
- package/dist/styles/uno-generated.d.ts +2 -0
- package/dist/styles/uno-generated.js +1 -0
- package/dist/styles/uno-utilities.d.ts +5 -0
- package/dist/styles/uno-utilities.js +7 -0
- package/dist/theme/cv-theme-provider.d.ts +1 -1
- package/dist/theme/cv-theme-provider.js +2 -2
- package/dist/theme/tokens.css +619 -162
- package/package.json +9 -5
- package/specs/components/bottom-sheet.md +93 -0
- package/specs/components/button.md +8 -0
- package/specs/components/callout.md +8 -0
- package/specs/components/copy-button.md +54 -17
- package/specs/components/dialog.md +72 -43
- package/specs/components/drawer.md +18 -13
- package/specs/components/guidance-anchor.md +64 -0
- package/specs/components/guidance-panel.md +92 -0
- package/specs/components/input.md +7 -0
- package/specs/components/menu.md +8 -0
- package/specs/components/option.md +9 -9
- package/specs/components/progress.md +11 -0
- package/specs/components/sidebar.md +12 -12
- package/specs/components/table.md +13 -13
- package/specs/components/theme.md +13 -13
- package/specs/components/treegrid.md +15 -15
- package/specs/components/treeview.md +10 -10
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# cv-guidance-panel
|
|
2
|
+
|
|
3
|
+
Product-agnostic guidance body layout for coach marks, inline hints, warnings, and blocked-action explanations. It owns only visual structure and styling; app-layer guidance state, overlay semantics, progress, dismiss, snooze, and completion live outside UIKit.
|
|
4
|
+
|
|
5
|
+
## Anatomy
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
<cv-guidance-panel> (host)
|
|
9
|
+
└── <section part="base" role="note">
|
|
10
|
+
├── <header part="header">
|
|
11
|
+
│ ├── <span part="icon">
|
|
12
|
+
│ │ └── <slot name="icon">
|
|
13
|
+
│ ├── <div part="title">
|
|
14
|
+
│ │ └── <slot name="title">
|
|
15
|
+
│ └── <div part="progress">
|
|
16
|
+
│ └── <slot name="progress">
|
|
17
|
+
├── <div part="body">
|
|
18
|
+
│ └── <slot>
|
|
19
|
+
└── <div part="actions">
|
|
20
|
+
└── <slot name="actions">
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Attributes
|
|
24
|
+
|
|
25
|
+
| Attribute | Type | Default | Description |
|
|
26
|
+
| --------- | ------ | --------------- | ------------------------------------------------------------------------ |
|
|
27
|
+
| `variant` | String | `"coach-mark"` | Visual variant: `"coach-mark"` \| `"hint"` \| `"warning"` \| `"blocked"` |
|
|
28
|
+
| `density` | String | `"comfortable"` | Spacing density: `"comfortable"` \| `"compact"` |
|
|
29
|
+
|
|
30
|
+
## Slots
|
|
31
|
+
|
|
32
|
+
| Slot | Description |
|
|
33
|
+
| ----------- | -------------------------------------------------------------------- |
|
|
34
|
+
| `icon` | Optional leading visual. |
|
|
35
|
+
| `title` | Guidance title exposed through the stable `title` part. |
|
|
36
|
+
| `(default)` | Main body content. |
|
|
37
|
+
| `actions` | Optional action controls supplied by the app host or owning surface. |
|
|
38
|
+
| `progress` | Optional progress text or indicator, such as `1 / 4`. |
|
|
39
|
+
|
|
40
|
+
## CSS Parts
|
|
41
|
+
|
|
42
|
+
| Part | Element | Description |
|
|
43
|
+
| ---------- | ----------- | ----------------------------------------- |
|
|
44
|
+
| `base` | `<section>` | Outer neutral content container. |
|
|
45
|
+
| `header` | `<header>` | Layout row for icon, title, and progress. |
|
|
46
|
+
| `icon` | `<span>` | Wrapper around the `icon` slot. |
|
|
47
|
+
| `title` | `<div>` | Wrapper around the `title` slot. |
|
|
48
|
+
| `progress` | `<div>` | Wrapper around the `progress` slot. |
|
|
49
|
+
| `body` | `<div>` | Wrapper around the default slot. |
|
|
50
|
+
| `actions` | `<div>` | Wrapper around the `actions` slot. |
|
|
51
|
+
|
|
52
|
+
## CSS Custom Properties
|
|
53
|
+
|
|
54
|
+
| Property | Default | Description |
|
|
55
|
+
| -------------------------------------------- | ------------------------------------------- | ------------------------------------ |
|
|
56
|
+
| `--cv-guidance-panel-background` | `var(--cv-color-surface-elevated, #1d2432)` | Base background. |
|
|
57
|
+
| `--cv-guidance-panel-border-color` | `var(--cv-color-border, #2a3245)` | Base border color. |
|
|
58
|
+
| `--cv-guidance-panel-border-radius` | `var(--cv-radius-md, 8px)` | Base border radius. |
|
|
59
|
+
| `--cv-guidance-panel-color` | `var(--cv-color-text, #e8ecf6)` | Host text color. |
|
|
60
|
+
| `--cv-guidance-panel-body-color` | `var(--cv-color-text-muted, #bac4d8)` | Body text color. |
|
|
61
|
+
| `--cv-guidance-panel-title-color` | `var(--cv-color-text-strong, currentColor)` | Title text color. |
|
|
62
|
+
| `--cv-guidance-panel-icon-color` | `currentColor` | Icon color before variant overrides. |
|
|
63
|
+
| `--cv-guidance-panel-padding-inline` | `var(--cv-space-4, 16px)` | Horizontal padding. |
|
|
64
|
+
| `--cv-guidance-panel-padding-block` | `var(--cv-space-4, 16px)` | Vertical padding. |
|
|
65
|
+
| `--cv-guidance-panel-gap` | `var(--cv-space-3, 12px)` | Main layout gap. |
|
|
66
|
+
| `--cv-guidance-panel-actions-gap` | `var(--cv-space-2, 8px)` | Gap between action controls. |
|
|
67
|
+
| `--cv-guidance-panel-compact-padding-inline` | `var(--cv-space-3, 12px)` | Compact horizontal padding. |
|
|
68
|
+
| `--cv-guidance-panel-compact-padding-block` | `var(--cv-space-3, 12px)` | Compact vertical padding. |
|
|
69
|
+
| `--cv-guidance-panel-compact-gap` | `var(--cv-space-2, 8px)` | Compact main layout gap. |
|
|
70
|
+
|
|
71
|
+
## Accessibility
|
|
72
|
+
|
|
73
|
+
`cv-guidance-panel` renders neutral supplementary content with `role="note"` on `part="base"`. It does not set dialog, popover, modal, live-region, focus-trap, dismiss, snooze, or completion semantics. `app-guidance-host` or the owning surface decides whether the panel appears inside a popover, bottom sheet, inline region, or another accessible container.
|
|
74
|
+
|
|
75
|
+
## Usage
|
|
76
|
+
|
|
77
|
+
```html
|
|
78
|
+
<cv-guidance-panel variant="coach-mark" density="comfortable">
|
|
79
|
+
<cv-icon slot="icon" name="sparkles"></cv-icon>
|
|
80
|
+
<span slot="title">Create your first item</span>
|
|
81
|
+
<p>Start with a password, note, file, or passkey.</p>
|
|
82
|
+
<span slot="progress">1 / 4</span>
|
|
83
|
+
<div slot="actions">
|
|
84
|
+
<cv-button>Start</cv-button>
|
|
85
|
+
<cv-button variant="ghost">Later</cv-button>
|
|
86
|
+
</div>
|
|
87
|
+
</cv-guidance-panel>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Boundaries
|
|
91
|
+
|
|
92
|
+
The component must not import WebView app state, navigation, module access, i18n data, guidance registry, or guidance model modules. It is a dumb visual primitive that renders slots and reflected presentation attributes.
|
|
@@ -38,6 +38,7 @@ Single-line text input control supporting text-like types, clearable behavior, a
|
|
|
38
38
|
| `password-toggle` | Boolean | `false` | yes | Shows a password visibility toggle (only effective when `type="password"`) |
|
|
39
39
|
| `size` | String | `"medium"` | yes | Component size: `small` \| `medium` \| `large` |
|
|
40
40
|
| `variant` | String | `"outlined"` | yes | Visual variant: `outlined` \| `filled` |
|
|
41
|
+
| `preset` | String | — | yes | Semantic preset: `search-mobile` |
|
|
41
42
|
| `name` | String | `""` | no | Name for form association |
|
|
42
43
|
|
|
43
44
|
## Variants
|
|
@@ -55,6 +56,12 @@ Single-line text input control supporting text-like types, clearable behavior, a
|
|
|
55
56
|
| `medium` | `36px` | `var(--cv-space-3, 12px)` | `var(--cv-font-size-base, 14px)` |
|
|
56
57
|
| `large` | `42px` | `var(--cv-space-4, 16px)` | `var(--cv-font-size-md, 16px)` |
|
|
57
58
|
|
|
59
|
+
## Presets
|
|
60
|
+
|
|
61
|
+
| Preset | Description |
|
|
62
|
+
| --------------- | ---------------------------------------------------------------------------- |
|
|
63
|
+
| `search-mobile` | Mobile search/input density with 42px height, 14px radius, and search tokens |
|
|
64
|
+
|
|
58
65
|
## Slots
|
|
59
66
|
|
|
60
67
|
| Slot | Description |
|
package/specs/components/menu.md
CHANGED
|
@@ -337,6 +337,7 @@ Split-button mode (`[split]`):
|
|
|
337
337
|
| `split` | Boolean | `false` | Enables split-button mode with separate action and dropdown areas |
|
|
338
338
|
| `size` | String | `"medium"` | Size: `small` \| `medium` \| `large` |
|
|
339
339
|
| `variant` | String | `"default"` | Visual variant: `default` \| `primary` \| `danger` \| `ghost` |
|
|
340
|
+
| `preset` | String | — | Semantic preset: `icon-overflow` |
|
|
340
341
|
| `close-on-select` | Boolean | `true` | Close the menu after an item is selected |
|
|
341
342
|
| `aria-label` | String | `""` | Accessible label for the trigger/dropdown |
|
|
342
343
|
|
|
@@ -357,6 +358,12 @@ Split-button mode (`[split]`):
|
|
|
357
358
|
| `danger` | Danger-tinted background and border |
|
|
358
359
|
| `ghost` | Transparent background and border |
|
|
359
360
|
|
|
361
|
+
#### Presets
|
|
362
|
+
|
|
363
|
+
| Preset | Description |
|
|
364
|
+
| --------------- | ---------------------------------------------------------------------- |
|
|
365
|
+
| `icon-overflow` | Zero-gap icon overflow trigger with standardized menu offset and width |
|
|
366
|
+
|
|
360
367
|
#### Slots
|
|
361
368
|
|
|
362
369
|
| Slot | Description |
|
|
@@ -392,6 +399,7 @@ Split-button mode (`[split]`):
|
|
|
392
399
|
| `--cv-menu-button-font-size` | `inherit` | Font size of button content |
|
|
393
400
|
| `--cv-menu-button-menu-offset` | `var(--cv-space-1, 4px)` | Gap between trigger and menu popup |
|
|
394
401
|
| `--cv-menu-button-menu-min-inline-size` | `max(180px, 100%)` | Minimum inline size of the menu popup |
|
|
402
|
+
| `--cv-menu-button-menu-max-inline-size` | `calc(100vw - 16px)` | Maximum inline size of the menu popup |
|
|
395
403
|
| `--cv-menu-button-menu-z-index` | `20` | Z-index of the menu popup |
|
|
396
404
|
|
|
397
405
|
#### Events
|
|
@@ -45,15 +45,15 @@ Individual selectable option for use as a direct child of `cv-listbox` or `cv-li
|
|
|
45
45
|
|
|
46
46
|
## CSS Custom Properties
|
|
47
47
|
|
|
48
|
-
| Property | Default
|
|
49
|
-
| --------------------------------- |
|
|
50
|
-
| `--cv-option-padding-block` | `var(--cv-space-2, 8px)`
|
|
51
|
-
| `--cv-option-padding-inline` | `var(--cv-space-3, 12px)`
|
|
52
|
-
| `--cv-option-border-radius` | `var(--cv-radius-sm, 6px)`
|
|
53
|
-
| `--cv-option-active-background` | `
|
|
54
|
-
| `--cv-option-selected-background` | `
|
|
55
|
-
| `--cv-option-disabled-opacity` | `0.55`
|
|
56
|
-
| `--cv-option-focus-outline-color` | `var(--cv-color-primary, #65d7ff)`
|
|
48
|
+
| Property | Default | Description |
|
|
49
|
+
| --------------------------------- | ---------------------------------- | -------------------------------------------------------------------- |
|
|
50
|
+
| `--cv-option-padding-block` | `var(--cv-space-2, 8px)` | Vertical padding inside `[part="base"]`. |
|
|
51
|
+
| `--cv-option-padding-inline` | `var(--cv-space-3, 12px)` | Horizontal padding inside `[part="base"]`. |
|
|
52
|
+
| `--cv-option-border-radius` | `var(--cv-radius-sm, 6px)` | Border radius of `[part="base"]`. |
|
|
53
|
+
| `--cv-option-active-background` | `var(--cv-color-primary-ring)` | Background applied when the option is active (highlighted). |
|
|
54
|
+
| `--cv-option-selected-background` | `var(--cv-color-primary-border)` | Background applied when the option is selected. |
|
|
55
|
+
| `--cv-option-disabled-opacity` | `0.55` | Opacity applied when the option is disabled. |
|
|
56
|
+
| `--cv-option-focus-outline-color` | `var(--cv-color-primary, #65d7ff)` | Outline color for `:focus-visible` (roving-tabindex focus strategy). |
|
|
57
57
|
|
|
58
58
|
Additionally, component styles depend on theme tokens through fallback values:
|
|
59
59
|
|
|
@@ -22,6 +22,7 @@ A read-only indicator that communicates determinate or indeterminate loading/com
|
|
|
22
22
|
| `min` | Number | `0` | Minimum boundary |
|
|
23
23
|
| `max` | Number | `100` | Maximum boundary |
|
|
24
24
|
| `indeterminate` | Boolean | `false` | Switches to indeterminate (animated) mode |
|
|
25
|
+
| `tone` | String | — | Semantic tone: `upload` \| `queued` \| `success` \| `danger` \| `warning` |
|
|
25
26
|
| `value-text` | String | — | Static override for `aria-valuetext`; takes precedence over the percentage fallback |
|
|
26
27
|
| `aria-label` | String | — | Accessible label passed through to headless |
|
|
27
28
|
|
|
@@ -39,6 +40,16 @@ A read-only indicator that communicates determinate or indeterminate loading/com
|
|
|
39
40
|
| `indicator` | `<div>` | Filled portion representing current progress |
|
|
40
41
|
| `label` | `<span>` | Content overlay inside indicator; wraps the default slot |
|
|
41
42
|
|
|
43
|
+
## Tones
|
|
44
|
+
|
|
45
|
+
| Tone | Description |
|
|
46
|
+
| --------- | -------------------------------- |
|
|
47
|
+
| `upload` | Primary upload/transfer progress |
|
|
48
|
+
| `queued` | Muted queued progress |
|
|
49
|
+
| `success` | Success/completed progress |
|
|
50
|
+
| `danger` | Failed/error progress |
|
|
51
|
+
| `warning` | Paused/warning progress |
|
|
52
|
+
|
|
42
53
|
## CSS Custom Properties
|
|
43
54
|
|
|
44
55
|
| Property | Default | Description |
|
|
@@ -70,18 +70,18 @@ When `scrollspyRoot` is `null`, `cv-sidebar` resolves section targets in the hos
|
|
|
70
70
|
|
|
71
71
|
## CSS Custom Properties
|
|
72
72
|
|
|
73
|
-
| Property | Default
|
|
74
|
-
| ---------------------------------- |
|
|
75
|
-
| `--cv-sidebar-inline-size` | `280px`
|
|
76
|
-
| `--cv-sidebar-rail-inline-size` | `56px`
|
|
77
|
-
| `--cv-sidebar-z-index` | `30`
|
|
78
|
-
| `--cv-sidebar-background` | `var(--cv-color-surface, #141923)`
|
|
79
|
-
| `--cv-sidebar-border-color` | `var(--cv-color-border, #2a3245)`
|
|
80
|
-
| `--cv-sidebar-padding-block` | `var(--cv-space-3, 12px)`
|
|
81
|
-
| `--cv-sidebar-padding-inline` | `var(--cv-space-3, 12px)`
|
|
82
|
-
| `--cv-sidebar-overlay-color` | `color-
|
|
83
|
-
| `--cv-sidebar-transition-duration` | `var(--cv-duration-normal, 200ms)`
|
|
84
|
-
| `--cv-sidebar-transition-easing` | `var(--cv-easing-standard, ease)`
|
|
73
|
+
| Property | Default |
|
|
74
|
+
| ---------------------------------- | ---------------------------------- |
|
|
75
|
+
| `--cv-sidebar-inline-size` | `280px` |
|
|
76
|
+
| `--cv-sidebar-rail-inline-size` | `56px` |
|
|
77
|
+
| `--cv-sidebar-z-index` | `30` |
|
|
78
|
+
| `--cv-sidebar-background` | `var(--cv-color-surface, #141923)` |
|
|
79
|
+
| `--cv-sidebar-border-color` | `var(--cv-color-border, #2a3245)` |
|
|
80
|
+
| `--cv-sidebar-padding-block` | `var(--cv-space-3, 12px)` |
|
|
81
|
+
| `--cv-sidebar-padding-inline` | `var(--cv-space-3, 12px)` |
|
|
82
|
+
| `--cv-sidebar-overlay-color` | `var(--cv-color-overlay)` |
|
|
83
|
+
| `--cv-sidebar-transition-duration` | `var(--cv-duration-normal, 200ms)` |
|
|
84
|
+
| `--cv-sidebar-transition-easing` | `var(--cv-easing-standard, ease)` |
|
|
85
85
|
|
|
86
86
|
## Events
|
|
87
87
|
|
|
@@ -52,19 +52,19 @@ Data table for displaying structured tabular content with optional sorting, row
|
|
|
52
52
|
|
|
53
53
|
## CSS Custom Properties
|
|
54
54
|
|
|
55
|
-
| Property | Default
|
|
56
|
-
| ---------------------------------------- |
|
|
57
|
-
| `--cv-table-border-radius` | `var(--cv-radius-md, 10px)`
|
|
58
|
-
| `--cv-table-border-color` | `var(--cv-color-border, #2a3245)`
|
|
59
|
-
| `--cv-table-background` | `var(--cv-color-surface, #141923)`
|
|
60
|
-
| `--cv-table-header-background` | `
|
|
61
|
-
| `--cv-table-stripe-background` | `
|
|
62
|
-
| `--cv-table-row-selected-background` | `
|
|
63
|
-
| `--cv-table-cell-padding-block` | `var(--cv-space-2, 8px)`
|
|
64
|
-
| `--cv-table-cell-padding-inline` | `var(--cv-space-3, 12px)`
|
|
65
|
-
| `--cv-table-compact-cell-padding-block` | `var(--cv-space-1, 4px)`
|
|
66
|
-
| `--cv-table-compact-cell-padding-inline` | `var(--cv-space-2, 8px)`
|
|
67
|
-
| `--cv-table-focus-outline-color` | `var(--cv-color-primary, #65d7ff)`
|
|
55
|
+
| Property | Default | Description |
|
|
56
|
+
| ---------------------------------------- | ------------------------------------------------ | ---------------------------------------------- |
|
|
57
|
+
| `--cv-table-border-radius` | `var(--cv-radius-md, 10px)` | Border radius of the table container |
|
|
58
|
+
| `--cv-table-border-color` | `var(--cv-color-border, #2a3245)` | Border color of the table and cells |
|
|
59
|
+
| `--cv-table-background` | `var(--cv-color-surface, #141923)` | Table background color |
|
|
60
|
+
| `--cv-table-header-background` | `var(--cv-color-surface-glass-strong)` | Header row background |
|
|
61
|
+
| `--cv-table-stripe-background` | `var(--cv-color-surface-secondary-glass-strong)` | Background for alternating rows when `striped` |
|
|
62
|
+
| `--cv-table-row-selected-background` | `var(--cv-color-primary-surface)` | Background for selected rows |
|
|
63
|
+
| `--cv-table-cell-padding-block` | `var(--cv-space-2, 8px)` | Vertical cell padding |
|
|
64
|
+
| `--cv-table-cell-padding-inline` | `var(--cv-space-3, 12px)` | Horizontal cell padding |
|
|
65
|
+
| `--cv-table-compact-cell-padding-block` | `var(--cv-space-1, 4px)` | Vertical cell padding in compact mode |
|
|
66
|
+
| `--cv-table-compact-cell-padding-inline` | `var(--cv-space-2, 8px)` | Horizontal cell padding in compact mode |
|
|
67
|
+
| `--cv-table-focus-outline-color` | `var(--cv-color-primary, #65d7ff)` | Focus ring color for grid navigation |
|
|
68
68
|
|
|
69
69
|
Additionally, component styles depend on theme tokens through fallback values:
|
|
70
70
|
|
|
@@ -69,7 +69,7 @@ The provider defines the full design token surface. All tokens use the `--cv-` p
|
|
|
69
69
|
| `--cv-color-text-strong` | `#f5f7fc` | `#0e1219` | Emphasized text |
|
|
70
70
|
| `--cv-color-text-strongest` | `#ffffff` | `#000000` | Maximum contrast text |
|
|
71
71
|
| `--cv-color-border` | `#2a3245` | `#d0d5de` | Default border color |
|
|
72
|
-
| `--cv-color-border-muted` | `
|
|
72
|
+
| `--cv-color-border-muted` | `hwb(214 17.3% 63.5% / 0.52)` | `hwb(216 9.8% 72.5% / 0.08)` | Subtle border |
|
|
73
73
|
| `--cv-color-border-strong` | `color-mix(in oklab, var(--cv-color-border) 82%, white 18%)` | `color-mix(in oklab, var(--cv-color-border) 82%, black 18%)` | Strong border |
|
|
74
74
|
| `--cv-color-border-accent` | `color-mix(in oklab, var(--cv-color-primary) 35%, var(--cv-color-border))` | `color-mix(in oklab, var(--cv-color-primary) 35%, var(--cv-color-border))` | Accent-tinted border |
|
|
75
75
|
| `--cv-color-brand` | `var(--cv-color-primary)` | _(inherits)_ | Alias: brand color |
|
|
@@ -101,7 +101,7 @@ The provider defines the full design token surface. All tokens use the `--cv-` p
|
|
|
101
101
|
| `--cv-color-focus` | `var(--cv-color-primary)` | _(inherits)_ | Focus indicator color |
|
|
102
102
|
| `--cv-color-focus-ring` | `var(--cv-color-primary)` | _(inherits)_ | Focus ring color |
|
|
103
103
|
| `--cv-color-hover` | `color-mix(in oklab, var(--cv-color-primary) 10%, var(--cv-color-surface))` | `color-mix(in oklab, var(--cv-color-primary) 8%, var(--cv-color-surface))` | General hover state |
|
|
104
|
-
| `--cv-color-active` | `
|
|
104
|
+
| `--cv-color-active` | `hwb(186 0% 0% / 0.18)` | `hwb(186 0% 20% / 0.14)` | General active / pressed state |
|
|
105
105
|
| `--cv-color-selected` | `color-mix(in oklab, var(--cv-color-primary) 16%, var(--cv-color-surface))` | `color-mix(in oklab, var(--cv-color-primary) 12%, var(--cv-color-surface))` | Selected item background |
|
|
106
106
|
| `--cv-color-overlay` | `rgba(4, 7, 13, 0.72)` | `rgba(15, 20, 30, 0.38)` | Modal / overlay backdrop |
|
|
107
107
|
|
|
@@ -167,17 +167,17 @@ The provider defines the full design token surface. All tokens use the `--cv-` p
|
|
|
167
167
|
|
|
168
168
|
### Shadow tokens
|
|
169
169
|
|
|
170
|
-
| Property | Dark value
|
|
171
|
-
| ------------------ |
|
|
172
|
-
| `--cv-shadow-sm` | `0 2px 8px rgba(0, 0, 0, 0.24)`
|
|
173
|
-
| `--cv-shadow-md` | `0 8px 28px rgba(0, 0, 0, 0.32)`
|
|
174
|
-
| `--cv-shadow-lg` | `0 16px 48px rgba(0, 0, 0, 0.38)`
|
|
175
|
-
| `--cv-shadow-xl` | `0 24px 64px rgba(0, 0, 0, 0.42)`
|
|
176
|
-
| `--cv-shadow-glow` | `0 0 40px
|
|
177
|
-
| `--cv-shadow-1` | `var(--cv-shadow-sm)`
|
|
178
|
-
| `--cv-shadow-2` | `var(--cv-shadow-md)`
|
|
179
|
-
| `--cv-shadow-3` | `var(--cv-shadow-lg)`
|
|
180
|
-
| `--cv-shadow-4` | `var(--cv-shadow-xl)`
|
|
170
|
+
| Property | Dark value | Light value | Description |
|
|
171
|
+
| ------------------ | --------------------------------------- | --------------------------------------- | ------------------ |
|
|
172
|
+
| `--cv-shadow-sm` | `0 2px 8px rgba(0, 0, 0, 0.24)` | `0 2px 8px rgba(0, 0, 0, 0.08)` | Small shadow |
|
|
173
|
+
| `--cv-shadow-md` | `0 8px 28px rgba(0, 0, 0, 0.32)` | `0 8px 28px rgba(0, 0, 0, 0.12)` | Medium shadow |
|
|
174
|
+
| `--cv-shadow-lg` | `0 16px 48px rgba(0, 0, 0, 0.38)` | `0 16px 48px rgba(0, 0, 0, 0.14)` | Large shadow |
|
|
175
|
+
| `--cv-shadow-xl` | `0 24px 64px rgba(0, 0, 0, 0.42)` | `0 24px 64px rgba(0, 0, 0, 0.16)` | Extra-large shadow |
|
|
176
|
+
| `--cv-shadow-glow` | `0 0 40px var(--cv-color-primary-ring)` | `0 0 40px var(--cv-color-primary-ring)` | Glow effect |
|
|
177
|
+
| `--cv-shadow-1` | `var(--cv-shadow-sm)` | `var(--cv-shadow-sm)` | Alias: level 1 |
|
|
178
|
+
| `--cv-shadow-2` | `var(--cv-shadow-md)` | `var(--cv-shadow-md)` | Alias: level 2 |
|
|
179
|
+
| `--cv-shadow-3` | `var(--cv-shadow-lg)` | `var(--cv-shadow-lg)` | Alias: level 3 |
|
|
180
|
+
| `--cv-shadow-4` | `var(--cv-shadow-xl)` | `var(--cv-shadow-xl)` | Alias: level 4 |
|
|
181
181
|
|
|
182
182
|
### Motion tokens
|
|
183
183
|
|
|
@@ -223,14 +223,14 @@ Additionally, component styles depend on theme tokens:
|
|
|
223
223
|
|
|
224
224
|
#### Visual States
|
|
225
225
|
|
|
226
|
-
| Host selector | Description
|
|
227
|
-
| ------------------------------------- |
|
|
228
|
-
| `:host([hidden])` | `display: none`
|
|
229
|
-
| `:host(:focus-visible) [part="row"]` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: -2px`
|
|
230
|
-
| `:host([active]) [part="row"]` | Primary-tinted background (`color-
|
|
231
|
-
| `:host([selected]) [part="row"]` | Same primary-tinted background as `[active]`
|
|
232
|
-
| `:host([disabled]) [part="row"]` | `opacity: 0.55`
|
|
233
|
-
| `:host([disabled]) [part="children"]` | `opacity: 0.55`
|
|
226
|
+
| Host selector | Description |
|
|
227
|
+
| ------------------------------------- | ---------------------------------------------------------------------- |
|
|
228
|
+
| `:host([hidden])` | `display: none` |
|
|
229
|
+
| `:host(:focus-visible) [part="row"]` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: -2px` |
|
|
230
|
+
| `:host([active]) [part="row"]` | Primary-tinted background (`var(--cv-color-active)`) |
|
|
231
|
+
| `:host([selected]) [part="row"]` | Same primary-tinted background as `[active]` |
|
|
232
|
+
| `:host([disabled]) [part="row"]` | `opacity: 0.55` |
|
|
233
|
+
| `:host([disabled]) [part="children"]` | `opacity: 0.55` |
|
|
234
234
|
|
|
235
235
|
---
|
|
236
236
|
|
|
@@ -343,13 +343,13 @@ Additionally, component styles depend on theme tokens:
|
|
|
343
343
|
|
|
344
344
|
#### Visual States
|
|
345
345
|
|
|
346
|
-
| Host selector | Description
|
|
347
|
-
| ----------------------- |
|
|
348
|
-
| `:host` | `display: block`
|
|
349
|
-
| `:host([active])` | `background:
|
|
350
|
-
| `:host([selected])` | `font-weight: 600`
|
|
351
|
-
| `:host([disabled])` | `opacity: 0.55`
|
|
352
|
-
| `:host(:focus-visible)` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: -2px`
|
|
346
|
+
| Host selector | Description |
|
|
347
|
+
| ----------------------- | ---------------------------------------------------------------------- |
|
|
348
|
+
| `:host` | `display: block` |
|
|
349
|
+
| `:host([active])` | `background: var(--cv-color-selected)` |
|
|
350
|
+
| `:host([selected])` | `font-weight: 600` |
|
|
351
|
+
| `:host([disabled])` | `opacity: 0.55` |
|
|
352
|
+
| `:host(:focus-visible)` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: -2px` |
|
|
353
353
|
|
|
354
354
|
## Out of Scope
|
|
355
355
|
|
|
@@ -237,16 +237,16 @@ Additionally, component styles depend on theme tokens:
|
|
|
237
237
|
|
|
238
238
|
#### Visual States
|
|
239
239
|
|
|
240
|
-
| Host selector | Description
|
|
241
|
-
| ------------------------------------- |
|
|
242
|
-
| `:host` | `display: block`, `outline: none`
|
|
243
|
-
| `:host([hidden])` | `display: none`
|
|
244
|
-
| `:host([active]) [part="row"]` | `background:
|
|
245
|
-
| `:host([selected]) [part="row"]` | `background:
|
|
246
|
-
| `:host([disabled]) [part="row"]` | `opacity: 0.55`
|
|
247
|
-
| `:host([expanded]) [part="children"]` | Visible (default); children hidden only when `[expanded]` is absent
|
|
248
|
-
| `:host([branch]) [part="toggle"]` | Toggle button rendered and visible
|
|
249
|
-
| `:host(:focus-visible) [part="row"]` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: 1px`
|
|
240
|
+
| Host selector | Description |
|
|
241
|
+
| ------------------------------------- | --------------------------------------------------------------------- |
|
|
242
|
+
| `:host` | `display: block`, `outline: none` |
|
|
243
|
+
| `:host([hidden])` | `display: none` |
|
|
244
|
+
| `:host([active]) [part="row"]` | `background: var(--cv-color-primary-ring)` |
|
|
245
|
+
| `:host([selected]) [part="row"]` | `background: var(--cv-color-primary-border)` |
|
|
246
|
+
| `:host([disabled]) [part="row"]` | `opacity: 0.55` |
|
|
247
|
+
| `:host([expanded]) [part="children"]` | Visible (default); children hidden only when `[expanded]` is absent |
|
|
248
|
+
| `:host([branch]) [part="toggle"]` | Toggle button rendered and visible |
|
|
249
|
+
| `:host(:focus-visible) [part="row"]` | `outline: 2px solid var(--cv-color-primary)` at `outline-offset: 1px` |
|
|
250
250
|
|
|
251
251
|
#### Events
|
|
252
252
|
|