@starci/grammar 0.13.0 → 0.14.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/README.md +26 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +27 -43
- package/dist/common/components-list-panel.css +8 -0
- package/dist/common/components-navigation.css +163 -6
- package/dist/common/components-overlays.css +41 -2
- package/dist/common/registry.d.ts +24 -21
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/registry.js +4 -4
- package/dist/common/registry.js.map +1 -1
- package/dist/common/renderers-forms.d.ts +11 -11
- package/dist/common/renderers-navigation.d.ts +5 -5
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js +1 -1
- package/dist/common/renderers-navigation.js.map +1 -1
- package/dist/common/renderers-overlays.d.ts +2 -2
- package/dist/common/renderers-overlays.d.ts.map +1 -1
- package/dist/common/renderers-overlays.js.map +1 -1
- package/dist/common/renderers.d.ts +4 -1
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +3 -0
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/styles.css +229 -46
- package/dist/core/branch/ComboBox/index.d.ts +5 -5
- package/dist/core/branch/ComboBox/index.d.ts.map +1 -1
- package/dist/core/branch/ComboBox/index.js +9 -2
- package/dist/core/branch/ComboBox/index.js.map +1 -1
- package/dist/core/branch/DataTable/index.d.ts +20 -3
- package/dist/core/branch/DataTable/index.d.ts.map +1 -1
- package/dist/core/branch/DataTable/index.js +45 -8
- package/dist/core/branch/DataTable/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/index.d.ts +26 -7
- package/dist/core/branch/FlowGraph/index.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/index.js +132 -30
- package/dist/core/branch/FlowGraph/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/layout.d.ts +34 -1
- package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/layout.js +82 -0
- package/dist/core/branch/FlowGraph/layout.js.map +1 -1
- package/dist/core/branch/FlowGraph/types.d.ts +13 -1
- package/dist/core/branch/FlowGraph/types.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.d.ts +4 -2
- package/dist/core/branch/ListBox/index.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.js +2 -2
- package/dist/core/branch/ListBox/index.js.map +1 -1
- package/dist/core/branch/MarkdownArticle/index.d.ts +7 -1
- package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -1
- package/dist/core/branch/MarkdownArticle/index.js +5 -2
- package/dist/core/branch/MarkdownArticle/index.js.map +1 -1
- package/dist/core/branch/Select/index.d.ts +6 -8
- package/dist/core/branch/Select/index.d.ts.map +1 -1
- package/dist/core/branch/Select/index.js +9 -5
- package/dist/core/branch/Select/index.js.map +1 -1
- package/dist/core/branch/SurfaceCard/index.d.ts +9 -0
- package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/index.js +3 -2
- package/dist/core/branch/SurfaceCard/index.js.map +1 -1
- package/dist/core/branch/Tabs/index.d.ts.map +1 -1
- package/dist/core/branch/Tabs/index.js +17 -0
- package/dist/core/branch/Tabs/index.js.map +1 -1
- package/dist/core/branch/Tooltip/index.d.ts +9 -1
- package/dist/core/branch/Tooltip/index.d.ts.map +1 -1
- package/dist/core/branch/Tooltip/index.js +2 -2
- package/dist/core/branch/Tooltip/index.js.map +1 -1
- package/dist/core/collectionItem.d.ts +3 -3
- package/dist/core/collectionItem.d.ts.map +1 -1
- package/dist/core/composite/Alert/index.d.ts +5 -0
- package/dist/core/composite/Alert/index.d.ts.map +1 -1
- package/dist/core/composite/Alert/index.js +7 -2
- package/dist/core/composite/Alert/index.js.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.d.ts +6 -5
- package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.js +10 -3
- package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
- package/dist/core/composite/DescriptionList/index.d.ts +3 -2
- package/dist/core/composite/DescriptionList/index.d.ts.map +1 -1
- package/dist/core/composite/DescriptionList/index.js +5 -4
- package/dist/core/composite/DescriptionList/index.js.map +1 -1
- package/dist/core/composite/RadioGroup/index.d.ts +5 -3
- package/dist/core/composite/RadioGroup/index.d.ts.map +1 -1
- package/dist/core/composite/RadioGroup/index.js +9 -2
- package/dist/core/composite/RadioGroup/index.js.map +1 -1
- package/dist/core/composite/SegmentedControl/index.d.ts +6 -6
- package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -1
- package/dist/core/composite/SegmentedControl/index.js +9 -5
- package/dist/core/composite/SegmentedControl/index.js.map +1 -1
- package/dist/core/composite/TagGroup/index.d.ts +27 -4
- package/dist/core/composite/TagGroup/index.d.ts.map +1 -1
- package/dist/core/composite/TagGroup/index.js +132 -2
- package/dist/core/composite/TagGroup/index.js.map +1 -1
- package/dist/core/composite/Timeline/index.d.ts +5 -0
- package/dist/core/composite/Timeline/index.d.ts.map +1 -1
- package/dist/core/composite/Timeline/index.js +1 -1
- package/dist/core/composite/Timeline/index.js.map +1 -1
- package/dist/core/composition/Sidebar/index.d.ts +4 -0
- package/dist/core/composition/Sidebar/index.d.ts.map +1 -1
- package/dist/core/composition/Sidebar/index.js +4 -2
- package/dist/core/composition/Sidebar/index.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/primitive/Avatar/index.d.ts +1 -1
- package/dist/core/primitive/Badge/index.d.ts +8 -5
- package/dist/core/primitive/Badge/index.d.ts.map +1 -1
- package/dist/core/primitive/Badge/index.js +14 -5
- package/dist/core/primitive/Badge/index.js.map +1 -1
- package/dist/core/primitive/Button/index.d.ts +10 -2
- package/dist/core/primitive/Button/index.d.ts.map +1 -1
- package/dist/core/primitive/Button/index.js +15 -4
- package/dist/core/primitive/Button/index.js.map +1 -1
- package/dist/core/primitive/Checkbox/index.d.ts +5 -3
- package/dist/core/primitive/Checkbox/index.d.ts.map +1 -1
- package/dist/core/primitive/Checkbox/index.js +9 -2
- package/dist/core/primitive/Checkbox/index.js.map +1 -1
- package/dist/core/primitive/Code/index.d.ts +10 -0
- package/dist/core/primitive/Code/index.d.ts.map +1 -0
- package/dist/core/primitive/Code/index.js +5 -0
- package/dist/core/primitive/Code/index.js.map +1 -0
- package/dist/core/primitive/Field/index.d.ts +12 -25
- package/dist/core/primitive/Field/index.d.ts.map +1 -1
- package/dist/core/primitive/Field/index.js +13 -14
- package/dist/core/primitive/Field/index.js.map +1 -1
- package/dist/core/primitive/GrammarRoot/index.d.ts +8 -1
- package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -1
- package/dist/core/primitive/GrammarRoot/index.js +5 -1
- package/dist/core/primitive/GrammarRoot/index.js.map +1 -1
- package/dist/core/primitive/Icon/index.d.ts.map +1 -1
- package/dist/core/primitive/Icon/index.js +3 -2
- package/dist/core/primitive/Icon/index.js.map +1 -1
- package/dist/core/primitive/Input/index.d.ts +9 -4
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +13 -8
- package/dist/core/primitive/Input/index.js.map +1 -1
- package/dist/core/primitive/Meter/index.d.ts +4 -1
- package/dist/core/primitive/Meter/index.d.ts.map +1 -1
- package/dist/core/primitive/Meter/index.js +3 -3
- package/dist/core/primitive/Meter/index.js.map +1 -1
- package/dist/core/primitive/NumberField/index.d.ts +6 -5
- package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
- package/dist/core/primitive/NumberField/index.js +10 -3
- package/dist/core/primitive/NumberField/index.js.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.d.ts +25 -6
- package/dist/core/primitive/PinnedActionBar/index.d.ts.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.js +9 -4
- package/dist/core/primitive/PinnedActionBar/index.js.map +1 -1
- package/dist/core/primitive/SearchField/index.d.ts +6 -5
- package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
- package/dist/core/primitive/SearchField/index.js +10 -3
- package/dist/core/primitive/SearchField/index.js.map +1 -1
- package/dist/core/primitive/SectionHeader/index.d.ts +3 -3
- package/dist/core/primitive/SectionHeader/index.js +2 -2
- package/dist/core/primitive/SectionHeader/index.js.map +1 -1
- package/dist/core/primitive/Skeleton/index.d.ts +11 -0
- package/dist/core/primitive/Skeleton/index.d.ts.map +1 -1
- package/dist/core/primitive/Skeleton/index.js +12 -1
- package/dist/core/primitive/Skeleton/index.js.map +1 -1
- package/dist/core/primitive/StatusDot/index.d.ts +61 -0
- package/dist/core/primitive/StatusDot/index.d.ts.map +1 -0
- package/dist/core/primitive/StatusDot/index.js +55 -0
- package/dist/core/primitive/StatusDot/index.js.map +1 -0
- package/dist/core/primitive/Switch/index.d.ts +4 -3
- package/dist/core/primitive/Switch/index.d.ts.map +1 -1
- package/dist/core/primitive/Switch/index.js +5 -2
- package/dist/core/primitive/Switch/index.js.map +1 -1
- package/dist/core/primitive/Terminal/index.d.ts +20 -0
- package/dist/core/primitive/Terminal/index.d.ts.map +1 -0
- package/dist/core/primitive/Terminal/index.js +29 -0
- package/dist/core/primitive/Terminal/index.js.map +1 -0
- package/dist/core/primitive/Text/index.d.ts +5 -1
- package/dist/core/primitive/Text/index.d.ts.map +1 -1
- package/dist/core/primitive/Text/index.js +12 -7
- package/dist/core/primitive/Text/index.js.map +1 -1
- package/dist/core/primitive/TextAction/index.d.ts.map +1 -1
- package/dist/core/primitive/TextAction/index.js +9 -4
- package/dist/core/primitive/TextAction/index.js.map +1 -1
- package/dist/core/primitive/Textarea/index.d.ts +8 -4
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +9 -5
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/dist/core/styles.css +17 -5
- package/dist/offset-pop/components-forms.css +0 -17
- package/dist/offset-pop/components-navigation.css +30 -4
- package/dist/offset-pop/components-overlays.css +5 -0
- package/dist/offset-pop/index.d.ts +1 -1
- package/dist/offset-pop/index.d.ts.map +1 -1
- package/dist/offset-pop/styles.css +44 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -144,6 +144,32 @@ offset shadow and a pink decision accent. Text that uses the accent is drawn in
|
|
|
144
144
|
`OFFSET_POP_TOKEN_DEFAULTS`, `OFFSET_POP_DARK_TOKEN_DEFAULTS`, `OFFSET_POP_BAND_TOKEN_NAMES`,
|
|
145
145
|
`offsetPopGrammar` and `offsetPopRuleConformance`.
|
|
146
146
|
|
|
147
|
+
## Client-side navigation
|
|
148
|
+
|
|
149
|
+
Every Grammar root (`GrammarRoot`, `CoreGrammarRoot`, `OffsetPopGrammarRoot`) accepts `navigate(path)` and `useHref(href)` and
|
|
150
|
+
mounts react-aria's `RouterProvider`. Pass your router's functions once at the root and every Grammar `Link`, `Button href`,
|
|
151
|
+
`Breadcrumbs` item, `ListBox`/`Menu` item `href` and `FlowGraph` node `href` navigates inside the app without a reload.
|
|
152
|
+
|
|
153
|
+
```tsx
|
|
154
|
+
import { useHref, useNavigate } from "react-router-dom"
|
|
155
|
+
import { CoreGrammarRoot } from "@starci/grammar/core"
|
|
156
|
+
|
|
157
|
+
export const Root = ({ children }: { children: React.ReactNode }) => {
|
|
158
|
+
const navigate = useNavigate()
|
|
159
|
+
return <CoreGrammarRoot navigate={(path) => navigate(path)} useHref={useHref}>{children}</CoreGrammarRoot>
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Mount the root inside the router. Without `navigate` the links behave as plain anchors.
|
|
164
|
+
|
|
165
|
+
### FlowGraph layouts
|
|
166
|
+
|
|
167
|
+
`FlowGraph` places nodes with `layout`: `radial` (the default), `layered` (a DAG in layers) or `manual` (each node's `position`).
|
|
168
|
+
`direction="TB" | "LR"` puts the target handle on the entering side and the source handle on the leaving side so edges run along the
|
|
169
|
+
layout, and selects `layered` when no layout is given. `headers={[{ label, at }]}` draws a column header above each layer for `LR` and
|
|
170
|
+
a lane header beside it for `TB` (`at` is the layer index in `layered`, graph units in `manual`). `height` takes `sm | md | lg`, a number
|
|
171
|
+
(pixels) or any CSS length. A node with `href` is a link through the root's router and one keyboard stop.
|
|
172
|
+
|
|
147
173
|
## Family scope and the overlay portal rule
|
|
148
174
|
|
|
149
175
|
A family paints only inside its root. Each family stylesheet is scoped to
|
package/dist/.build-stamp.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "starci/grammar-build-stamp@1",
|
|
3
3
|
"package": "@starci/grammar",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.0",
|
|
5
5
|
"algorithm": "starci/grammar-source-digest@1",
|
|
6
|
-
"sourceDigest": "sha256:
|
|
7
|
-
"distDigest": "sha256:
|
|
8
|
-
"builtAt": "2026-10-
|
|
6
|
+
"sourceDigest": "sha256:abe48ef178e3f654d64eda3138e1bbc98b0d48d7f8fd27c09432d9966a6a99ec",
|
|
7
|
+
"distDigest": "sha256:d0879914392be475eacac5872c11615e3528982f7bae31376fc96801d23c97c9",
|
|
8
|
+
"builtAt": "2026-10-27T19:22:38.977Z"
|
|
9
9
|
}
|
|
@@ -124,58 +124,42 @@
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
/*
|
|
127
|
-
* Loading field (knowledge STATE-8
|
|
128
|
-
*
|
|
129
|
-
*
|
|
127
|
+
* Loading field (knowledge STATE-8) with skeleton parity: the control renders its ready anatomy inside
|
|
128
|
+
* `.starci-core-field-skeleton-scope` (layout-neutral, inert), so label, description and control box keep the ready
|
|
129
|
+
* geometry by construction. Every control box in the scope is painted as a Skeleton (the vendor skeleton tint and
|
|
130
|
+
* shimmer); what it holds - a value, a placeholder, an indicator, a thumb - is not drawn. Its border stays, so a
|
|
131
|
+
* family's outline keeps the field box.
|
|
130
132
|
*/
|
|
131
|
-
|
|
132
|
-
.starci-core-field-skeleton {
|
|
133
|
-
min-width: 0;
|
|
134
|
-
pointer-events: none;
|
|
135
|
-
user-select: none;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.starci-core-field-skeleton-control { display: block; min-width: 0; }
|
|
133
|
+
.starci-core-field-skeleton-scope { display: contents; }
|
|
139
134
|
|
|
140
|
-
.starci-core-field-skeleton-control
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
.starci-core-field-skeleton-scope :is([data-grammar-field-control="true"]:not(.starci-core-choice-group-options), .starci-core-input-field, [data-grammar-choice-control], [data-grammar-tag-id]) {
|
|
136
|
+
position: relative;
|
|
137
|
+
overflow: hidden;
|
|
138
|
+
background: color-mix(in oklab, var(--surface-tertiary, #e4e4e7) 70%, transparent) !important;
|
|
139
|
+
color: transparent !important;
|
|
140
|
+
user-select: none;
|
|
143
141
|
}
|
|
144
142
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="select"] { block-size: var(--starci-core-control-min-size, 2.5rem); }
|
|
149
|
-
|
|
150
|
-
/* Joined segments: one block, a segment-width (5rem) per option, never wider than the field; `fill` takes the whole row. */
|
|
151
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="segmented"] {
|
|
152
|
-
block-size: 2.5rem;
|
|
153
|
-
inline-size: min(100%, calc(var(--starci-core-skeleton-segments, 2) * 5rem));
|
|
143
|
+
/* A control box whose rounded part is inside it (a ComboBox or SegmentedControl group, a Field control slot) takes the field radius. */
|
|
144
|
+
.starci-core-field-skeleton-scope [data-grammar-field-control="true"]:is(.starci-core-combo-box-group, .starci-core-segmented-control-group, .starci-core-field-control) {
|
|
145
|
+
border-radius: var(--field-radius, calc(var(--radius, 0.5rem) * 1.5));
|
|
154
146
|
}
|
|
155
147
|
|
|
156
|
-
.starci-core-field-skeleton-
|
|
157
|
-
.starci-core-field-skeleton-
|
|
158
|
-
|
|
159
|
-
/* A checkbox box and a switch track beside their real labels. */
|
|
160
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="choice"] { flex: none; block-size: 1rem; inline-size: 1rem; }
|
|
161
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"] { flex: none; block-size: 1.25rem; inline-size: 2rem; }
|
|
162
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"][data-grammar-switch-size="lg"] { block-size: 1.5rem; inline-size: 3rem; }
|
|
163
|
-
.starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"][data-grammar-switch-size="control"] { block-size: var(--starci-core-control-min-size, 2.5rem); inline-size: 4.5rem; }
|
|
148
|
+
.starci-core-field-skeleton-scope :is([data-grammar-field-control="true"]:not(.starci-core-choice-group-options), [data-grammar-choice-control], [data-grammar-tag-id]) > * { visibility: hidden; }
|
|
149
|
+
.starci-core-field-skeleton-scope :is(input, textarea)::placeholder { color: transparent; }
|
|
164
150
|
|
|
165
|
-
.starci-core-field-skeleton-choice-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
151
|
+
.starci-core-field-skeleton-scope :is([data-grammar-field-control="true"]:not(.starci-core-choice-group-options, textarea), [data-grammar-choice-control], [data-grammar-tag-id])::after {
|
|
152
|
+
content: "";
|
|
153
|
+
position: absolute;
|
|
154
|
+
inset: 0;
|
|
155
|
+
visibility: visible;
|
|
156
|
+
background-image: linear-gradient(to right, transparent, var(--surface-tertiary, #e4e4e7), transparent);
|
|
157
|
+
translate: -100%;
|
|
158
|
+
animation: skeleton 2s linear infinite;
|
|
173
159
|
}
|
|
174
160
|
|
|
175
|
-
@media (
|
|
176
|
-
.starci-core-field-skeleton-
|
|
177
|
-
min-block-size: var(--starci-core-control-min-size, 2.5rem);
|
|
178
|
-
}
|
|
161
|
+
@media (prefers-reduced-motion: reduce) {
|
|
162
|
+
.starci-core-field-skeleton-scope :is([data-grammar-field-control="true"], [data-grammar-choice-control])::after { animation: none; content: none; }
|
|
179
163
|
}
|
|
180
164
|
|
|
181
165
|
.starci-core-combo-box-group,
|
|
@@ -21,6 +21,14 @@
|
|
|
21
21
|
line-clamp: 2;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
.grammar-common-root [data-slot="description"][data-grammar-description-lines="wrap"] {
|
|
25
|
+
display: block;
|
|
26
|
+
-webkit-line-clamp: none;
|
|
27
|
+
line-clamp: none;
|
|
28
|
+
overflow: visible;
|
|
29
|
+
overflow-wrap: anywhere;
|
|
30
|
+
}
|
|
31
|
+
|
|
24
32
|
.grammar-common-root [data-slot="description"][data-grammar-description-lines="3"] {
|
|
25
33
|
-webkit-line-clamp: 3;
|
|
26
34
|
line-clamp: 3;
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
/* A crumb whose label is not known yet (knowledge STATE-8): a short Skeleton text line of the label's size. */
|
|
113
113
|
.starci-core-breadcrumb-skeleton { display: inline-block; inline-size: 6rem; }
|
|
114
114
|
.starci-core-breadcrumb-skeleton > .starci-core-skeleton-group { gap: 0; }
|
|
115
|
-
.starci-core-breadcrumb-skeleton .starci-core-skeleton {
|
|
115
|
+
.starci-core-breadcrumb-skeleton .starci-core-skeleton { --starci-core-skeleton-line: 0.875rem; }
|
|
116
116
|
|
|
117
117
|
@media (max-width: 30rem) {
|
|
118
118
|
.starci-core-breadcrumb-label {
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
.starci-core-step-skeleton-marker { border: 0; background: transparent; }
|
|
270
270
|
.starci-core-step-skeleton-label { display: block; inline-size: 5rem; }
|
|
271
271
|
.starci-core-step-skeleton-label > .starci-core-skeleton-group { gap: 0; }
|
|
272
|
-
.starci-core-step-skeleton-label .starci-core-skeleton {
|
|
272
|
+
.starci-core-step-skeleton-label .starci-core-skeleton { --starci-core-skeleton-line: 0.875rem; }
|
|
273
273
|
|
|
274
274
|
.starci-core-step-copy {
|
|
275
275
|
display: flex;
|
|
@@ -779,6 +779,26 @@
|
|
|
779
779
|
white-space: nowrap;
|
|
780
780
|
}
|
|
781
781
|
|
|
782
|
+
/* The reorder layer's event wrapper takes no box: the TagGroup lays out as if it were not there. */
|
|
783
|
+
.starci-core-tag-group-reorder {
|
|
784
|
+
display: contents;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
/* Reorderable tags: the grab cursor, the lifted tag and the tag a drop would replace. */
|
|
788
|
+
.starci-core-tag-group[data-grammar-tag-reorderable="true"] .starci-core-tag[draggable="true"] {
|
|
789
|
+
cursor: grab;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
.starci-core-tag-group[data-grammar-tag-reorderable="true"] .starci-core-tag[data-grammar-tag-dragging="true"] {
|
|
793
|
+
opacity: 0.5;
|
|
794
|
+
cursor: grabbing;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
.starci-core-tag-group[data-grammar-tag-reorderable="true"] .starci-core-tag[data-grammar-tag-drop-target="true"] {
|
|
798
|
+
outline: 2px solid var(--accent, Highlight);
|
|
799
|
+
outline-offset: 2px;
|
|
800
|
+
}
|
|
801
|
+
|
|
782
802
|
/*
|
|
783
803
|
* Selectable chips (0.9.6, selectionMode single or multiple): a group of choices carries a 1px inset ring,
|
|
784
804
|
* --border when unselected and --accent when selected. The chip face, hover and selected paint are HeroUI's own.
|
|
@@ -850,6 +870,15 @@
|
|
|
850
870
|
width: max-content;
|
|
851
871
|
}
|
|
852
872
|
|
|
873
|
+
/*
|
|
874
|
+
* A table that hosts editors, or has folded its low columns for a narrow container, fits the container instead:
|
|
875
|
+
* at max-content an editor's TagGroup never wraps its chips and the folded text never wraps, so the table ran
|
|
876
|
+
* past its container. It still scrolls sideways once its columns cannot shrink further.
|
|
877
|
+
*/
|
|
878
|
+
.starci-core-data-table:is([data-grammar-table-editors="true"], [data-grammar-table-narrow="true"]) .starci-core-data-table-content {
|
|
879
|
+
width: 100%;
|
|
880
|
+
}
|
|
881
|
+
|
|
853
882
|
.starci-core-data-table[data-grammar-table-sticky="true"] .starci-core-data-table-header {
|
|
854
883
|
position: sticky;
|
|
855
884
|
z-index: 1;
|
|
@@ -892,6 +921,65 @@
|
|
|
892
921
|
box-sizing: border-box;
|
|
893
922
|
}
|
|
894
923
|
|
|
924
|
+
/* A whole-row link target reads as one pressable row. */
|
|
925
|
+
.starci-core-data-table-row[data-grammar-table-row-link="true"] {
|
|
926
|
+
cursor: pointer;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
/* An editor cell hosts a field; the field keeps its own control height and fills the column, never wider. */
|
|
930
|
+
.starci-core-data-table-editor {
|
|
931
|
+
display: flex;
|
|
932
|
+
min-width: 0;
|
|
933
|
+
max-inline-size: 100%;
|
|
934
|
+
align-items: center;
|
|
935
|
+
white-space: normal;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
.starci-core-data-table-editor > * {
|
|
939
|
+
flex: 1 1 auto;
|
|
940
|
+
min-width: 0;
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
/*
|
|
944
|
+
* A text input's intrinsic width is its `size` (20 characters, about 11rem), which an auto-layout table takes as the
|
|
945
|
+
* column's minimum: a NumberField editor alone pushed the table past its container, even in narrow mode. In an editor
|
|
946
|
+
* cell the input asks for no width of its own and fills its track through its minimum (a percentage minimum does not
|
|
947
|
+
* count toward the column's intrinsic width), so the column can shrink to the room the table has and the input still
|
|
948
|
+
* fills what it gets, never less than three characters beside its own inline padding.
|
|
949
|
+
*/
|
|
950
|
+
.starci-core-data-table-editor input {
|
|
951
|
+
inline-size: 0;
|
|
952
|
+
min-inline-size: max(calc(3ch + 1.5rem), 100%);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
/* Narrow mode: low-priority columns stack under the first column's content as secondary text. */
|
|
956
|
+
.starci-core-data-table-secondary {
|
|
957
|
+
display: flex;
|
|
958
|
+
flex-direction: column;
|
|
959
|
+
gap: 0.125rem;
|
|
960
|
+
margin-block-start: 0.25rem;
|
|
961
|
+
color: var(--muted, GrayText);
|
|
962
|
+
font-size: 0.875em;
|
|
963
|
+
white-space: normal;
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
/* A long value (an email, an id) may break anywhere, so the folded text never sets the first column's minimum. */
|
|
967
|
+
.starci-core-data-table-secondary-item {
|
|
968
|
+
display: flex;
|
|
969
|
+
min-width: 0;
|
|
970
|
+
flex-wrap: wrap;
|
|
971
|
+
gap: 0.25rem;
|
|
972
|
+
overflow-wrap: anywhere;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
.starci-core-data-table-secondary-value {
|
|
976
|
+
min-width: 0;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
.starci-core-data-table-secondary-label::after {
|
|
980
|
+
content: ":";
|
|
981
|
+
}
|
|
982
|
+
|
|
895
983
|
.starci-core-drag-item {
|
|
896
984
|
display: flex;
|
|
897
985
|
min-width: 0;
|
|
@@ -1021,6 +1109,9 @@
|
|
|
1021
1109
|
line-height: 1.25rem;
|
|
1022
1110
|
}
|
|
1023
1111
|
|
|
1112
|
+
/* A loading stat keeps its unit's place, unseen (skeleton parity). */
|
|
1113
|
+
.starci-core-description-list[data-loading="true"] .starci-core-description-unit { visibility: hidden; }
|
|
1114
|
+
|
|
1024
1115
|
.starci-core-description-meta {
|
|
1025
1116
|
min-width: 0;
|
|
1026
1117
|
margin: 0;
|
|
@@ -1112,12 +1203,12 @@
|
|
|
1112
1203
|
display: flex;
|
|
1113
1204
|
min-width: 0;
|
|
1114
1205
|
flex-direction: column;
|
|
1206
|
+
gap: 0.25rem;
|
|
1115
1207
|
}
|
|
1116
1208
|
|
|
1117
1209
|
/* Loading options (knowledge STATE-8): a label line and a description line, at the loaded option's height. */
|
|
1118
1210
|
.starci-core-list-box-skeleton-option {
|
|
1119
1211
|
display: flex;
|
|
1120
|
-
min-block-size: 2.25rem;
|
|
1121
1212
|
align-items: center;
|
|
1122
1213
|
padding-inline: 0.5rem;
|
|
1123
1214
|
padding-block: 0.375rem;
|
|
@@ -1128,8 +1219,10 @@
|
|
|
1128
1219
|
.starci-core-list-box-skeleton-option .starci-core-list-box-description { display: block; }
|
|
1129
1220
|
.starci-core-list-box-skeleton-option .starci-core-list-box-label > .starci-core-skeleton-group { inline-size: 55%; }
|
|
1130
1221
|
.starci-core-list-box-skeleton-option .starci-core-list-box-description > .starci-core-skeleton-group { inline-size: 80%; }
|
|
1131
|
-
|
|
1132
|
-
.starci-core-list-box-skeleton-option .starci-core-
|
|
1222
|
+
/* Skeleton parity: each line takes the line box of the vendor label (0.875rem / 1.25rem) and description (0.75rem / 1rem). */
|
|
1223
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-label { font-size: 0.875rem; line-height: 1.25rem; }
|
|
1224
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-description { font-size: 0.75rem; line-height: 1rem; }
|
|
1225
|
+
.starci-core-list-box-skeleton-option .starci-core-skeleton-group { gap: 0; }
|
|
1133
1226
|
|
|
1134
1227
|
.starci-core-list-box-empty {
|
|
1135
1228
|
padding: var(--grammar-section-gap, 1rem);
|
|
@@ -1379,6 +1472,34 @@
|
|
|
1379
1472
|
background: currentColor;
|
|
1380
1473
|
}
|
|
1381
1474
|
|
|
1475
|
+
/*
|
|
1476
|
+
* Attention entry: the whole row takes a tone background (the marker alone is too small to catch the eye). The
|
|
1477
|
+
* row grows 0.5rem each side and gives the same back as negative margin, so the markers and the copy keep their
|
|
1478
|
+
* column; the connector moves with the padding and reaches the next entry.
|
|
1479
|
+
*/
|
|
1480
|
+
.starci-core-timeline-item[data-grammar-attention="true"] {
|
|
1481
|
+
--starci-core-timeline-attention-tone: var(--warning, CanvasText);
|
|
1482
|
+
margin-inline: -0.5rem;
|
|
1483
|
+
margin-block-end: 0.5rem;
|
|
1484
|
+
padding: 0.5rem;
|
|
1485
|
+
border-radius: 0.75rem;
|
|
1486
|
+
background: color-mix(in oklab, var(--starci-core-timeline-attention-tone) 14%, transparent);
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
.starci-core-timeline-item[data-grammar-attention="true"][data-grammar-timeline-state="negative"] { --starci-core-timeline-attention-tone: var(--danger, CanvasText); }
|
|
1490
|
+
.starci-core-timeline-item[data-grammar-attention="true"][data-grammar-timeline-state="affirmative"] { --starci-core-timeline-attention-tone: var(--success, CanvasText); }
|
|
1491
|
+
.starci-core-timeline-item[data-grammar-attention="true"][data-grammar-timeline-state="informative"] { --starci-core-timeline-attention-tone: var(--info, CanvasText); }
|
|
1492
|
+
|
|
1493
|
+
.starci-core-timeline-item[data-grammar-attention="true"]:not(:last-child)::before {
|
|
1494
|
+
top: 2rem;
|
|
1495
|
+
bottom: -0.5rem;
|
|
1496
|
+
inset-inline-start: calc(1.25rem - 1px);
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
.starci-core-timeline-item[data-grammar-attention="true"] .starci-core-timeline-marker {
|
|
1500
|
+
background: transparent;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1382
1503
|
/* Loading timeline (knowledge STATE-8): static mark and connector tint, three Skeleton lines of the entry's rhythm. */
|
|
1383
1504
|
.starci-core-timeline-skeleton-marker > .starci-core-skeleton { inline-size: 1rem; block-size: 1rem; }
|
|
1384
1505
|
.starci-core-timeline[data-loading="true"] .starci-core-timeline-item:not(:last-child)::before { background: color-mix(in srgb, var(--foreground, CanvasText) 9%, transparent); }
|
|
@@ -1386,7 +1507,7 @@
|
|
|
1386
1507
|
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-timeline-time > .starci-core-skeleton-group { inline-size: 25%; }
|
|
1387
1508
|
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-timeline-description > .starci-core-skeleton-group { inline-size: 80%; }
|
|
1388
1509
|
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-skeleton-group { gap: 0; }
|
|
1389
|
-
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-skeleton {
|
|
1510
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-skeleton { --starci-core-skeleton-line: 0.8125rem; }
|
|
1390
1511
|
|
|
1391
1512
|
.starci-core-timeline-copy {
|
|
1392
1513
|
display: flex;
|
|
@@ -1395,10 +1516,13 @@
|
|
|
1395
1516
|
gap: 0.125rem;
|
|
1396
1517
|
}
|
|
1397
1518
|
|
|
1519
|
+
/* The list title scale (the ListBox and panel row label, text-sm), not whatever size the page body inherits. */
|
|
1398
1520
|
.starci-core-timeline-title {
|
|
1399
1521
|
margin: 0;
|
|
1400
1522
|
overflow-wrap: anywhere;
|
|
1523
|
+
font-size: 0.875rem;
|
|
1401
1524
|
font-weight: 600;
|
|
1525
|
+
line-height: 1.25rem;
|
|
1402
1526
|
}
|
|
1403
1527
|
|
|
1404
1528
|
.starci-core-timeline-time,
|
|
@@ -1479,6 +1603,9 @@
|
|
|
1479
1603
|
|
|
1480
1604
|
.starci-core-flow-graph[data-grammar-flow-height="sm"] .starci-core-flow-graph-canvas { block-size: 16rem; }
|
|
1481
1605
|
.starci-core-flow-graph[data-grammar-flow-height="lg"] .starci-core-flow-graph-canvas { block-size: 32rem; }
|
|
1606
|
+
.starci-core-flow-graph[data-grammar-flow-height="custom"] .starci-core-flow-graph-canvas { block-size: var(--starci-flow-height, 24rem); }
|
|
1607
|
+
/* The readable fit grew the canvas to the graph's aspect at its width rather than shrink the text below 12px. */
|
|
1608
|
+
.starci-core-flow-graph[data-grammar-flow-grown="true"] .starci-core-flow-graph-canvas { block-size: var(--starci-flow-grown-height); }
|
|
1482
1609
|
|
|
1483
1610
|
.starci-core-flow-graph-loading > .starci-core-skeleton { block-size: 100%; aspect-ratio: auto; }
|
|
1484
1611
|
|
|
@@ -1568,6 +1695,36 @@
|
|
|
1568
1695
|
line-height: 1.25;
|
|
1569
1696
|
}
|
|
1570
1697
|
|
|
1698
|
+
.starci-core-flow-graph-link {
|
|
1699
|
+
display: inline-flex;
|
|
1700
|
+
align-items: center;
|
|
1701
|
+
gap: 0.5rem;
|
|
1702
|
+
min-inline-size: 0;
|
|
1703
|
+
border-radius: inherit;
|
|
1704
|
+
color: inherit;
|
|
1705
|
+
text-decoration: none;
|
|
1706
|
+
outline: none;
|
|
1707
|
+
cursor: pointer;
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
.starci-core-flow-graph-node:has(.starci-core-flow-graph-link:focus-visible) {
|
|
1711
|
+
outline: 2px solid var(--focus, var(--starci-core-focus, Highlight));
|
|
1712
|
+
outline-offset: 2px;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
.starci-core-flow-graph-header {
|
|
1716
|
+
padding: 0.125rem 0.625rem;
|
|
1717
|
+
color: var(--muted, GrayText);
|
|
1718
|
+
font-size: 0.6875rem;
|
|
1719
|
+
font-weight: 600;
|
|
1720
|
+
letter-spacing: 0.04em;
|
|
1721
|
+
text-transform: uppercase;
|
|
1722
|
+
white-space: nowrap;
|
|
1723
|
+
pointer-events: none;
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
.starci-core-flow-graph-header[data-direction="TB"] { text-align: end; }
|
|
1727
|
+
|
|
1571
1728
|
.starci-core-flow-graph-node[data-size="sm"] { padding: 0.25rem 0.625rem; font-size: 0.75rem; }
|
|
1572
1729
|
.starci-core-flow-graph-node[data-size="lg"] { padding: 0.625rem 1.25rem; font-size: 1rem; font-weight: 600; }
|
|
1573
1730
|
.starci-core-flow-graph-node[data-tone="accent"] { --starci-flow-tint: var(--accent-soft, transparent); --starci-flow-ink: var(--accent-soft-foreground, CanvasText); }
|
|
@@ -547,6 +547,14 @@
|
|
|
547
547
|
flex: none;
|
|
548
548
|
}
|
|
549
549
|
|
|
550
|
+
/* A loading Alert (skeleton parity): the glyph keeps its place as a round Skeleton tint. */
|
|
551
|
+
.starci-core-alert[data-loading="true"] .starci-core-alert-indicator {
|
|
552
|
+
border-radius: 999px;
|
|
553
|
+
background: color-mix(in oklab, var(--surface-tertiary, #e4e4e7) 70%, transparent);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.starci-core-alert[data-loading="true"] .starci-core-alert-indicator > * { visibility: hidden; }
|
|
557
|
+
|
|
550
558
|
.starci-core-alert-title {
|
|
551
559
|
margin: 0;
|
|
552
560
|
}
|
|
@@ -663,11 +671,16 @@
|
|
|
663
671
|
}
|
|
664
672
|
|
|
665
673
|
/* ---------------------------------------------------------------- skeleton */
|
|
674
|
+
/*
|
|
675
|
+
* Skeleton parity: a text skeleton takes the line box of the copy it stands for. Each line occupies exactly `1lh` of
|
|
676
|
+
* the inherited type (the bar, `--starci-core-skeleton-line` tall, is centred in it by its margins), so `lines={n}`
|
|
677
|
+
* is as tall as n lines of that copy. A context sizes the bar through the variable, never the block size.
|
|
678
|
+
*/
|
|
666
679
|
.starci-core-skeleton-group {
|
|
667
680
|
display: flex;
|
|
668
681
|
width: 100%;
|
|
669
682
|
flex-direction: column;
|
|
670
|
-
gap: 0
|
|
683
|
+
gap: 0;
|
|
671
684
|
}
|
|
672
685
|
|
|
673
686
|
.starci-core-skeleton {
|
|
@@ -678,9 +691,32 @@
|
|
|
678
691
|
|
|
679
692
|
.starci-core-skeleton-group > .starci-core-skeleton {
|
|
680
693
|
width: 100%;
|
|
681
|
-
height: 0.875em;
|
|
694
|
+
height: var(--starci-core-skeleton-line, 0.875em);
|
|
695
|
+
margin-block: calc((1lh - var(--starci-core-skeleton-line, 0.875em)) / 2);
|
|
682
696
|
}
|
|
683
697
|
|
|
698
|
+
/*
|
|
699
|
+
* The measured placeholder (internal `SkeletonPlaceholder`): the ready content is laid out unseen and the shimmer
|
|
700
|
+
* paints its box. A text run is an inline block one line box per line (`vertical-align: top` keeps it from growing
|
|
701
|
+
* the line box); a block or circle sizes to its control or mark.
|
|
702
|
+
*/
|
|
703
|
+
.starci-core-skeleton-placeholder {
|
|
704
|
+
display: inline-block;
|
|
705
|
+
max-inline-size: 100%;
|
|
706
|
+
vertical-align: top;
|
|
707
|
+
color: transparent;
|
|
708
|
+
user-select: none;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.starci-core-skeleton-placeholder > * { visibility: hidden; }
|
|
712
|
+
.starci-core-skeleton-placeholder[data-shape="block"] { display: inline-flex; }
|
|
713
|
+
.starci-core-skeleton-placeholder[data-shape="circle"] { display: inline-flex; border-radius: 999px; }
|
|
714
|
+
.starci-core-skeleton-placeholder[data-shape="region"] { display: block; }
|
|
715
|
+
.starci-core-skeleton-placeholder[data-shape="text"]:empty { inline-size: min(100%, 8rem); block-size: 1lh; }
|
|
716
|
+
|
|
717
|
+
/* A skeleton root that keeps its content as a measured placeholder (Button, Badge, StatusDot) paints none of it. */
|
|
718
|
+
:is(.starci-core-button, [data-component="Badge"], [data-component="StatusDot"])[data-loading="true"] > * { visibility: hidden; }
|
|
719
|
+
|
|
684
720
|
.starci-core-skeleton[data-grammar-skeleton-line="last"] {
|
|
685
721
|
width: 60%;
|
|
686
722
|
}
|
|
@@ -793,6 +829,9 @@
|
|
|
793
829
|
/* Loading meter (knowledge STATE-8, `isSkeleton`): the label stays real, the bar is a static Skeleton bar of the track height. */
|
|
794
830
|
.starci-core-meter-skeleton-bar { display: block; block-size: 0.5rem; overflow: hidden; border-radius: 999px; }
|
|
795
831
|
|
|
832
|
+
/* `size="sm"`: the thin track is HeroUI's own `.meter--sm` (h-1); only the loading bar, which is ours, follows it. */
|
|
833
|
+
.starci-core-meter-skeleton[data-size="sm"] .starci-core-meter-skeleton-bar { block-size: 0.25rem; }
|
|
834
|
+
|
|
796
835
|
.starci-core-meter-skeleton-bar > .starci-core-skeleton {
|
|
797
836
|
block-size: 100%;
|
|
798
837
|
aspect-ratio: auto;
|
|
@@ -15,21 +15,21 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
15
15
|
readonly BottomNav: ({ label, items, currentId, onSelect, position, visibility, className }: import("./renderers-navigation.js").BottomNavProps) => import("react").JSX.Element;
|
|
16
16
|
readonly Breadcrumbs: ({ label, items, separator, onAction, className }: import("./renderers-navigation.js").BreadcrumbsProps) => import("react").JSX.Element;
|
|
17
17
|
readonly Calendar: ({ label, value, defaultValue, onChange, minValue, maxValue, isDateUnavailable, isDisabled, isReadOnly, previousLabel, nextLabel, className, }: import("./renderers-navigation.js").CalendarProps) => import("react").JSX.Element;
|
|
18
|
-
readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, getCellInteraction, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, loadingRows, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: import("./renderers-navigation.js").DataTableProps<Row>) => import("react").JSX.Element;
|
|
18
|
+
readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, getCellInteraction, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, loadingRows, emptyContent, stickyHeader, maxBlockSize, onRowAction, collapseBelow, className, }: import("./renderers-navigation.js").DataTableProps<Row>) => import("react").JSX.Element;
|
|
19
19
|
readonly DescriptionList: (props: import("./renderers-navigation.js").DescriptionListProps) => import("react").JSX.Element;
|
|
20
20
|
readonly Disclosure: ({ title, children, summary, isExpanded, defaultExpanded, onExpandedChange, isDisabled, headingLevel, className, }: import("./renderers-navigation.js").DisclosureProps) => import("react").JSX.Element;
|
|
21
21
|
readonly DragItem: ({ children, isDisabled, onDragStart, onDragEnd, isSelected, isInvalid, isDashed, leadingColor }: import("./renderers-navigation.js").DragItemProps) => import("react").JSX.Element;
|
|
22
|
-
readonly FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, isInteractive, showControls, layout, emptyLabel, isLoading, className, }: import("./renderers-navigation.js").FlowGraphProps) => import("react").JSX.Element;
|
|
22
|
+
readonly FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, fit, isInteractive, showControls, layout: layoutProp, direction, headers, emptyLabel, isLoading, className, }: import("./renderers-navigation.js").FlowGraphProps) => import("react").JSX.Element;
|
|
23
23
|
readonly Footer: ({ label, brand, groups, legal, externalHint, children, className }: import("./renderers-navigation.js").FooterProps) => import("react").JSX.Element;
|
|
24
24
|
readonly IdentityLockup: ({ title, subtitle, logoSrc, markShape, size, onPress, isDisabled }: import("./renderers-navigation.js").IdentityLockupProps) => import("react").JSX.Element;
|
|
25
25
|
readonly Image: ({ src, alt, aspect, fit, fallback, loading, srcSet, sizes, width, height, onLoadStateChange, plate, className, ...assetSlot }: import("./renderers-navigation.js").ImageProps) => import("react").JSX.Element;
|
|
26
26
|
readonly Link: ({ children, href, kind, isCurrent, visited, externalHint, externalIcon, isDisabled, onFollow, className, }: import("./renderers-navigation.js").LinkProps) => import("react").JSX.Element;
|
|
27
|
-
readonly ListBox: ({ label, items, sections, inset, size, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, selectionIndicator, emptyContent, isLoading, loadingRows, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
27
|
+
readonly ListBox: ({ label, items, sections, inset, size, descriptionLines, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, selectionIndicator, emptyContent, isLoading, loadingRows, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
28
28
|
readonly Pagination: ({ label, page, pageCount, onPageChange, siblingCount, previousLabel, nextLabel, pageLabel, summary, className, }: import("./renderers-navigation.js").PaginationProps) => import("react").JSX.Element;
|
|
29
29
|
readonly PlainPressable: ({ children, "aria-label": ariaLabel, onPress, isDisabled, shape, size, className }: import("./renderers-navigation.js").PlainPressableProps) => import("react").JSX.Element;
|
|
30
30
|
readonly Rating: ({ label, value, defaultValue, onChange, max, isReadOnly, isDisabled, valueLabel, icon, name, className, }: import("./renderers-navigation.js").RatingProps) => import("react").JSX.Element;
|
|
31
31
|
readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, isLoading, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
|
|
32
|
-
readonly TagGroup: (
|
|
32
|
+
readonly TagGroup: (props: import("./renderers-navigation.js").TagGroupProps) => import("react").JSX.Element;
|
|
33
33
|
readonly Timeline: ({ label, items, className, isLoading, loadingRows }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
|
|
34
34
|
readonly TopBar: ({ brand, navigation, actions, menu, position, className, ...headerProps }: import("./renderers-navigation.js").TopBarProps) => import("react").JSX.Element;
|
|
35
35
|
readonly Video: ({ src, title, poster, captions, crossOrigin, className }: import("./renderers-navigation.js").VideoProps) => import("react").JSX.Element;
|
|
@@ -40,7 +40,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
40
40
|
readonly Drawer: ({ title, description, children, footer, trigger, closeLabel, placement, showHandle, isDismissable, isKeyboardDismissDisabled, ...openState }: import("./renderers-overlays.js").DrawerProps) => import("react").JSX.Element;
|
|
41
41
|
readonly DropdownMenu: ({ trigger, entries, onAction, placement, ...openState }: import("./renderers-overlays.js").DropdownMenuProps) => import("react").JSX.Element;
|
|
42
42
|
readonly Kbd: ({ keys }: import("./renderers-overlays.js").KbdProps) => import("react").JSX.Element;
|
|
43
|
-
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, isSkeleton, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
43
|
+
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, isSkeleton, size, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
44
44
|
readonly Popover: ({ trigger, children, placement, showArrow, title, label, ...openState }: import("./renderers-overlays.js").PopoverProps) => import("react").JSX.Element;
|
|
45
45
|
readonly ProgressCircle: ({ label, value, isIndeterminate, size }: import("./renderers-overlays.js").ProgressCircleProps) => import("react").JSX.Element;
|
|
46
46
|
readonly Skeleton: ({ shape, lines, ratio, size }: import("./renderers-overlays.js").SkeletonProps) => import("react").JSX.Element;
|
|
@@ -48,41 +48,42 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
48
48
|
readonly Toast: ({ toast, dismissLabel, onDismiss, isPaused }: import("./renderers-overlays.js").ToastProps) => import("react").JSX.Element;
|
|
49
49
|
readonly Toaster: ({ label, dismissLabel, queue, placement, maxVisible }: import("./renderers-overlays.js").ToasterProps) => import("react").JSX.Element;
|
|
50
50
|
readonly ButtonGroup: ({ label, children, orientation, isDisabled, width }: import("./renderers-forms.js").ButtonGroupProps) => import("react").JSX.Element;
|
|
51
|
-
readonly Checkbox: ({
|
|
52
|
-
readonly CheckboxGroup: ({
|
|
53
|
-
readonly ComboBox: ({
|
|
51
|
+
readonly Checkbox: ({ isSkeleton, ...props }: import("./renderers-forms.js").CheckboxProps) => import("react").JSX.Element;
|
|
52
|
+
readonly CheckboxGroup: ({ isSkeleton, ...props }: import("./renderers-forms.js").CheckboxGroupProps) => import("react").JSX.Element;
|
|
53
|
+
readonly ComboBox: ({ isSkeleton, ...props }: import("./renderers-forms.js").ComboBoxProps) => import("react").JSX.Element;
|
|
54
54
|
readonly DateField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, variant: requestedVariant, ...field }: import("./renderers-forms.js").DateFieldProps) => import("react").JSX.Element;
|
|
55
55
|
readonly DatePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity, variant: requestedVariant, ...field }: import("./renderers-forms.js").DatePickerProps) => import("react").JSX.Element;
|
|
56
56
|
readonly DateRangePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, allowsNonContiguousRanges, granularity, startName, endName, variant: requestedVariant, ...field }: import("./renderers-forms.js").DateRangePickerProps) => import("react").JSX.Element;
|
|
57
|
-
readonly Field: ({
|
|
57
|
+
readonly Field: ({ isSkeleton, ...props }: import("./renderers-forms.js").FieldProps) => import("react").JSX.Element;
|
|
58
58
|
readonly Fieldset: ({ legend, isLegendHidden, description, errorMessage, children, actions, isDisabled }: import("./renderers-forms.js").FieldsetProps) => import("react").JSX.Element;
|
|
59
59
|
readonly FileDropzone: ({ id: idProp, accept, multiple, onFilesChange, prompt, icon, hideFileList, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").FileDropzoneProps) => import("react").JSX.Element;
|
|
60
60
|
readonly Form: ({ children, label, id, onSubmit, onReset, action, method, validationErrors, validationBehavior, isPending, }: import("./renderers-forms.js").FormProps) => import("react").JSX.Element;
|
|
61
|
-
readonly NumberField: ({
|
|
62
|
-
readonly RadioGroup: ({
|
|
63
|
-
readonly SearchField: ({
|
|
64
|
-
readonly SegmentedControl: ({
|
|
65
|
-
readonly Select: ({
|
|
61
|
+
readonly NumberField: ({ isSkeleton, ...props }: import("./renderers-forms.js").NumberFieldProps) => import("react").JSX.Element;
|
|
62
|
+
readonly RadioGroup: ({ isSkeleton, ...props }: import("./renderers-forms.js").RadioGroupProps) => import("react").JSX.Element;
|
|
63
|
+
readonly SearchField: ({ isSkeleton, ...props }: import("./renderers-forms.js").SearchFieldProps) => import("react").JSX.Element;
|
|
64
|
+
readonly SegmentedControl: ({ isSkeleton, ...props }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
|
|
65
|
+
readonly Select: ({ isSkeleton, ...props }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
|
|
66
66
|
readonly Slider: ({ value, defaultValue, onValueChange, onValueCommit, minValue, maxValue, step, formatOptions, thumbLabels, orientation, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").SliderProps) => import("react").JSX.Element;
|
|
67
|
-
readonly Switch: ({
|
|
68
|
-
readonly Textarea: ({
|
|
67
|
+
readonly Switch: ({ isSkeleton, ...props }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
|
|
68
|
+
readonly Textarea: ({ isSkeleton, ...props }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
|
|
69
69
|
readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant: requestedVariant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
|
|
70
70
|
readonly Badge: ({ children, startContent, tone, isDot, isSkeleton }: import("./renderers.js").BadgeProps) => import("react").JSX.Element;
|
|
71
71
|
readonly Button: (props: import("./renderers.js").ButtonProps) => import("react").JSX.Element;
|
|
72
|
+
readonly Code: ({ children, isSkeleton }: import("./renderers.js").CodeProps) => import("react").JSX.Element;
|
|
72
73
|
readonly ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, isSkeleton, }: import("./renderers.js").ChatBubbleProps) => import("react").JSX.Element;
|
|
73
74
|
readonly ChatWorkspace: (props: import("./renderers.js").ChatWorkspaceProps) => import("react").JSX.Element;
|
|
74
75
|
readonly Divider: (props: import("./renderers.js").DividerProps) => import("react").JSX.Element;
|
|
75
76
|
readonly EmptyNotice: ({ message, description, iconSource, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: import("./renderers.js").EmptyNoticeProps) => import("react").JSX.Element;
|
|
76
77
|
readonly FencedCodeBlock: (props: import("./renderers.js").FencedCodeBlockProps) => import("react").JSX.Element;
|
|
77
78
|
readonly FillViewport: ({ children, minHeight, bottomInset, label }: import("./renderers.js").FillViewportProps) => import("react").JSX.Element;
|
|
78
|
-
readonly GrammarRoot: ({ className, theme, ...props }: import("./renderers.js").GrammarRootProps) => import("react").JSX.Element;
|
|
79
|
+
readonly GrammarRoot: ({ className, theme, navigate, useHref, ...props }: import("./renderers.js").GrammarRootProps) => import("react").JSX.Element;
|
|
79
80
|
readonly Heading: ({ children, level, scale, isSkeleton, isVisuallyHidden, }: import("./renderers.js").HeadingProps) => import("react").JSX.Element;
|
|
80
81
|
readonly HorizontalScrollRegion: import("react").ForwardRefExoticComponent<Omit<import("./renderers.js").HorizontalScrollRegionProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
81
82
|
readonly Icon: ({ source: Source, usage, ariaLabel, isSkeleton }: import("./renderers.js").IconProps) => import("react").JSX.Element;
|
|
82
83
|
readonly IconButton: ({ source, label, intent, step, variant: legacyVariant, size, isFloating, isActive, isDisabled, isSkeleton, onPress, href, "aria-controls": controls, "aria-expanded": expanded, badge, badgeLabel, badgeMax, }: import("./renderers.js").IconButtonProps) => import("react").JSX.Element;
|
|
83
84
|
readonly IconTile: ({ source, artwork, ariaLabel, tone, size, isSkeleton, }: import("./renderers.js").IconTileProps) => import("react").JSX.Element;
|
|
84
85
|
readonly IncludedMark: ({ className, label, ...props }: import("./renderers.js").IncludedMarkProps) => import("react").JSX.Element;
|
|
85
|
-
readonly Input: ({
|
|
86
|
+
readonly Input: ({ isSkeleton, ...props }: import("./renderers.js").InputProps) => import("react").JSX.Element;
|
|
86
87
|
readonly Label: ({ id, children, depth, as }: import("./renderers.js").LabelProps) => import("react").DetailedReactHTMLElement<{
|
|
87
88
|
readonly id: string | undefined;
|
|
88
89
|
readonly className: string;
|
|
@@ -103,7 +104,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
103
104
|
readonly NavLandmark: (props: import("./renderers.js").NavLandmarkProps) => import("react").JSX.Element;
|
|
104
105
|
readonly OtpInput: (props: import("./renderers.js").OtpInputProps) => import("react").JSX.Element;
|
|
105
106
|
readonly PageContainer: ({ className, measure, ...props }: import("./renderers.js").PageContainerProps) => import("react").JSX.Element;
|
|
106
|
-
readonly PinnedActionBar: (
|
|
107
|
+
readonly PinnedActionBar: (props: import("./renderers.js").PinnedActionBarProps) => import("react").JSX.Element;
|
|
107
108
|
readonly PressableField: ({ label, placeholder, source, shortcut, variant: requestedVariant, isDisabled, onPress }: import("./renderers.js").PressableFieldProps) => import("react").JSX.Element;
|
|
108
109
|
readonly PrimaryRailLayout: ({ primary, rail, railWidth, align, collapsedOrder, railPosition, className, }: import("./renderers.js").PrimaryRailLayoutProps) => import("react").JSX.Element;
|
|
109
110
|
readonly Progress: ({ label, value, isSkeleton, steps, valueText }: import("./renderers.js").ProgressProps) => import("react").JSX.Element;
|
|
@@ -115,15 +116,17 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
115
116
|
readonly Sidebar: ({ label, groups, selectedKey, presentation, isCollapsed, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }: import("./renderers.js").SidebarProps) => import("react").JSX.Element;
|
|
116
117
|
readonly StateMark: (props: import("./renderers.js").StateMarkProps) => import("react").JSX.Element | null;
|
|
117
118
|
readonly StaticStateRow: (props: import("./renderers.js").StaticStateRowProps) => import("react").JSX.Element;
|
|
119
|
+
readonly StatusDot: (props: import("./renderers.js").StatusDotProps) => import("react").JSX.Element;
|
|
118
120
|
readonly Subnav: ({ label, title, leading, menuIcon, openMenuLabel, closeMenuLabel, isMenuOpen, onMenuOpenChange, position, visibility, className, ...navProps }: import("./renderers.js").SubnavProps) => import("react").JSX.Element;
|
|
119
121
|
readonly SurfaceAccordionCard: <Summary, Body>(props: import("./renderers.js").SurfaceAccordionCardProps<Summary, Body>) => import("react").JSX.Element;
|
|
120
122
|
readonly SurfaceCard: (props: import("./renderers.js").SurfaceCardProps) => import("react").JSX.Element;
|
|
121
123
|
readonly SurfaceCopyGroup: ({ className, density, ...props }: import("./renderers.js").SurfaceCopyGroupProps) => import("react").JSX.Element;
|
|
122
124
|
readonly SurfaceListCard: (props: import("./renderers.js").SurfaceListCardProps) => import("react").JSX.Element;
|
|
123
125
|
readonly Tabs: (props: import("./renderers.js").TabsProps) => import("react").JSX.Element;
|
|
124
|
-
readonly
|
|
126
|
+
readonly Terminal: ({ lines, title, label, isSkeleton }: import("./renderers.js").TerminalProps) => import("react").JSX.Element;
|
|
127
|
+
readonly Text: ({ as: Element, id, children, startContent, size, tone, weight, live, overflow, mono, tabular, isSkeleton, isSuperseded, parentEmphasis, }: import("./renderers.js").TextProps) => import("react").JSX.Element;
|
|
125
128
|
readonly TextAction: (props: import("./renderers.js").TextActionProps) => import("react").JSX.Element;
|
|
126
|
-
readonly Tooltip: ({ content, children, placement }: import("./renderers.js").TooltipProps) => import("react").JSX.Element;
|
|
129
|
+
readonly Tooltip: ({ content, children, placement, isDisabledTrigger, triggerDescribedBy }: import("./renderers.js").TooltipProps) => import("react").JSX.Element;
|
|
127
130
|
readonly VerticalScrollRegion: (props: import("./renderers.js").VerticalScrollRegionProps) => import("react").JSX.Element;
|
|
128
131
|
readonly WorkspaceShell: (props: import("./renderers.js").WorkspaceShellProps) => import("react").JSX.Element;
|
|
129
132
|
}>;
|