@starci/grammar 0.9.4 → 0.9.7
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 +21 -21
- package/README.md +1 -1
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +45 -0
- package/dist/common/components-navigation.css +267 -0
- package/dist/common/components-overlays.css +9 -0
- package/dist/common/registry.d.ts +17 -16
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/renderers-forms.d.ts +7 -7
- package/dist/common/renderers-navigation.d.ts +7 -5
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js +3 -1
- package/dist/common/renderers-navigation.js.map +1 -1
- package/dist/common/renderers-overlays.d.ts +1 -1
- package/dist/common/renderers.d.ts +1 -1
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +1 -1
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/styles.css +20 -0
- package/dist/core/branch/DataTable/index.d.ts +7 -2
- package/dist/core/branch/DataTable/index.d.ts.map +1 -1
- package/dist/core/branch/DataTable/index.js +9 -4
- package/dist/core/branch/DataTable/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/index.d.ts +34 -0
- package/dist/core/branch/FlowGraph/index.d.ts.map +1 -0
- package/dist/core/branch/FlowGraph/index.js +83 -0
- package/dist/core/branch/FlowGraph/index.js.map +1 -0
- package/dist/core/branch/FlowGraph/layout.d.ts +17 -0
- package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -0
- package/dist/core/branch/FlowGraph/layout.js +51 -0
- package/dist/core/branch/FlowGraph/layout.js.map +1 -0
- package/dist/core/branch/FlowGraph/types.d.ts +28 -0
- package/dist/core/branch/FlowGraph/types.d.ts.map +1 -0
- package/dist/core/branch/FlowGraph/types.js +2 -0
- package/dist/core/branch/FlowGraph/types.js.map +1 -0
- package/dist/core/branch/ListBox/index.d.ts +9 -1
- package/dist/core/branch/ListBox/index.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.js +8 -2
- package/dist/core/branch/ListBox/index.js.map +1 -1
- package/dist/core/branch/Select/index.d.ts +6 -1
- package/dist/core/branch/Select/index.d.ts.map +1 -1
- package/dist/core/branch/Select/index.js +5 -2
- package/dist/core/branch/Select/index.js.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.d.ts +6 -0
- package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.js +10 -3
- package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
- package/dist/core/composite/Breadcrumbs/index.d.ts +5 -0
- package/dist/core/composite/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/core/composite/Breadcrumbs/index.js +3 -2
- package/dist/core/composite/Breadcrumbs/index.js.map +1 -1
- package/dist/core/composite/ChatBubble/index.d.ts +21 -3
- package/dist/core/composite/ChatBubble/index.d.ts.map +1 -1
- package/dist/core/composite/ChatBubble/index.js +10 -1
- package/dist/core/composite/ChatBubble/index.js.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.d.ts +6 -1
- package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.js +2 -2
- package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
- package/dist/core/composite/DescriptionList/index.d.ts +5 -0
- package/dist/core/composite/DescriptionList/index.d.ts.map +1 -1
- package/dist/core/composite/DescriptionList/index.js +6 -4
- package/dist/core/composite/DescriptionList/index.js.map +1 -1
- package/dist/core/composite/ListRow/index.d.ts +8 -1
- package/dist/core/composite/ListRow/index.d.ts.map +1 -1
- package/dist/core/composite/ListRow/index.js +5 -1
- package/dist/core/composite/ListRow/index.js.map +1 -1
- package/dist/core/composite/SegmentedControl/index.d.ts +6 -1
- package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -1
- package/dist/core/composite/SegmentedControl/index.js +5 -2
- package/dist/core/composite/SegmentedControl/index.js.map +1 -1
- package/dist/core/composite/Stepper/index.d.ts +7 -1
- package/dist/core/composite/Stepper/index.d.ts.map +1 -1
- package/dist/core/composite/Stepper/index.js +2 -1
- package/dist/core/composite/Stepper/index.js.map +1 -1
- package/dist/core/composite/Timeline/index.d.ts +8 -1
- package/dist/core/composite/Timeline/index.d.ts.map +1 -1
- package/dist/core/composite/Timeline/index.js +2 -1
- package/dist/core/composite/Timeline/index.js.map +1 -1
- package/dist/core/primitive/Avatar/index.d.ts +6 -1
- package/dist/core/primitive/Avatar/index.d.ts.map +1 -1
- package/dist/core/primitive/Avatar/index.js +2 -1
- package/dist/core/primitive/Avatar/index.js.map +1 -1
- package/dist/core/primitive/Field/index.d.ts +24 -0
- package/dist/core/primitive/Field/index.d.ts.map +1 -1
- package/dist/core/primitive/Field/index.js +15 -1
- package/dist/core/primitive/Field/index.js.map +1 -1
- package/dist/core/primitive/Meter/index.d.ts +7 -1
- package/dist/core/primitive/Meter/index.d.ts.map +1 -1
- package/dist/core/primitive/Meter/index.js +5 -1
- package/dist/core/primitive/Meter/index.js.map +1 -1
- package/dist/core/primitive/NumberField/index.d.ts +6 -1
- package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
- package/dist/core/primitive/NumberField/index.js +2 -2
- package/dist/core/primitive/NumberField/index.js.map +1 -1
- package/dist/core/primitive/SearchField/index.d.ts +6 -1
- package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
- package/dist/core/primitive/SearchField/index.js +2 -2
- package/dist/core/primitive/SearchField/index.js.map +1 -1
- package/dist/core/primitive/SectionHeader/index.d.ts +8 -1
- package/dist/core/primitive/SectionHeader/index.d.ts.map +1 -1
- package/dist/core/primitive/SectionHeader/index.js +2 -1
- package/dist/core/primitive/SectionHeader/index.js.map +1 -1
- package/dist/core/primitive/Switch/index.d.ts +6 -1
- package/dist/core/primitive/Switch/index.d.ts.map +1 -1
- package/dist/core/primitive/Switch/index.js +2 -2
- package/dist/core/primitive/Switch/index.js.map +1 -1
- package/dist/core/primitive/Textarea/index.d.ts +6 -1
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +5 -2
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/dist/offset-pop/components-forms.css +17 -0
- package/dist/offset-pop/components-navigation.css +21 -0
- package/package.json +6 -4
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 StarCi
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 StarCi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ npm install @starci/grammar @heroui/react react react-dom
|
|
|
17
17
|
npm install ./.claude/packages/grammar
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The package needs Node.js 20 or newer. Its peer dependencies are React 18
|
|
20
|
+
The package needs Node.js 20 or newer. Its peer dependencies are React 18+, `@xyflow/react` 12 (for `FlowGraph`) and `@heroui/react`
|
|
21
21
|
3.2+. Load the HeroUI stylesheet once in the app, as HeroUI's own setup describes. Then import
|
|
22
22
|
exactly one Grammar family stylesheet. Each family sheet already imports Common anatomy first.
|
|
23
23
|
|
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.9.
|
|
4
|
+
"version": "0.9.7",
|
|
5
5
|
"algorithm": "starci/grammar-source-digest@1",
|
|
6
|
-
"sourceDigest": "sha256:
|
|
7
|
-
"distDigest": "sha256:
|
|
8
|
-
"builtAt": "2026-10-
|
|
6
|
+
"sourceDigest": "sha256:bb9c8631d0a38a0dbfe4d8b373455913ab764f56713536d73d08d75b0a4977c9",
|
|
7
|
+
"distDigest": "sha256:f54058f586f5dcdf2bc83a84c989e76eeb7cf3ed9c8d700ba28e42ff4ff895e2",
|
|
8
|
+
"builtAt": "2026-10-11T22:41:22.989Z"
|
|
9
9
|
}
|
|
@@ -124,6 +124,51 @@
|
|
|
124
124
|
resize: vertical;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
/*
|
|
128
|
+
* Loading field (knowledge STATE-8, Select and Textarea `isSkeleton`): the label stays real, the control is one
|
|
129
|
+
* Skeleton block of the loaded control's height (the select trigger 2.5rem, with the touch floor below; the textarea
|
|
130
|
+
* `rows` at 1.25rem a line plus its padding, never under the 5rem field minimum). Not focusable: no control exists.
|
|
131
|
+
*/
|
|
132
|
+
.starci-core-field-skeleton-control { display: block; min-width: 0; }
|
|
133
|
+
|
|
134
|
+
.starci-core-field-skeleton-control > .starci-core-skeleton {
|
|
135
|
+
block-size: 100%;
|
|
136
|
+
aspect-ratio: auto;
|
|
137
|
+
border-radius: var(--field-radius, calc(var(--radius, 0.5rem) * 1.5));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.starci-core-field-skeleton-control:is([data-grammar-field-skeleton="select"], [data-grammar-field-skeleton="input"]) { block-size: 2.5rem; }
|
|
141
|
+
|
|
142
|
+
/* Joined segments: one block, a segment-width (5rem) per option, never wider than the field; `fill` takes the whole row. */
|
|
143
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="segmented"] {
|
|
144
|
+
block-size: 2.5rem;
|
|
145
|
+
inline-size: min(100%, calc(var(--starci-core-skeleton-segments, 2) * 5rem));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="segmented"][data-width="fill"] { inline-size: 100%; }
|
|
149
|
+
|
|
150
|
+
/* A checkbox box and a switch track beside their real labels. */
|
|
151
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="choice"] { flex: none; block-size: 1rem; inline-size: 1rem; }
|
|
152
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="choice"] > .starci-core-skeleton { border-radius: 0.25rem; }
|
|
153
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"] { flex: none; block-size: 1.25rem; inline-size: 2rem; }
|
|
154
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"] > .starci-core-skeleton { border-radius: 999px; }
|
|
155
|
+
|
|
156
|
+
.starci-core-field-skeleton-choice-label {
|
|
157
|
+
color: var(--foreground, CanvasText);
|
|
158
|
+
font-size: 0.875rem;
|
|
159
|
+
line-height: 1.25;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.starci-core-field-skeleton-control[data-grammar-field-skeleton="textarea"] {
|
|
163
|
+
block-size: max(5rem, calc(var(--starci-core-skeleton-rows, 4) * 1.25rem + 1rem));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@media (pointer: coarse), (max-width: 40rem) {
|
|
167
|
+
.starci-core-field-skeleton-control:is([data-grammar-field-skeleton="select"], [data-grammar-field-skeleton="input"], [data-grammar-field-skeleton="segmented"]) {
|
|
168
|
+
min-block-size: var(--starci-core-control-min-size, 2.75rem);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
127
172
|
.starci-core-select-trigger,
|
|
128
173
|
.starci-core-combo-box-group,
|
|
129
174
|
.starci-core-search-field-group,
|
|
@@ -122,6 +122,11 @@
|
|
|
122
122
|
font-weight: 600;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
/* A crumb whose label is not known yet (knowledge STATE-8): a short Skeleton text line of the label's size. */
|
|
126
|
+
.starci-core-breadcrumb-skeleton { display: inline-block; inline-size: 6rem; }
|
|
127
|
+
.starci-core-breadcrumb-skeleton > .starci-core-skeleton-group { gap: 0; }
|
|
128
|
+
.starci-core-breadcrumb-skeleton .starci-core-skeleton { block-size: 0.875rem; }
|
|
129
|
+
|
|
125
130
|
@media (max-width: 30rem) {
|
|
126
131
|
.starci-core-breadcrumb-label {
|
|
127
132
|
max-width: 8rem;
|
|
@@ -289,6 +294,12 @@
|
|
|
289
294
|
color: var(--danger, CanvasText);
|
|
290
295
|
}
|
|
291
296
|
|
|
297
|
+
/* Loading stepper (knowledge STATE-8): a static Skeleton circle for the mark, labels stay real. */
|
|
298
|
+
.starci-core-step-skeleton-marker { border: 0; background: transparent; }
|
|
299
|
+
.starci-core-step-skeleton-label { display: block; inline-size: 5rem; }
|
|
300
|
+
.starci-core-step-skeleton-label > .starci-core-skeleton-group { gap: 0; }
|
|
301
|
+
.starci-core-step-skeleton-label .starci-core-skeleton { block-size: 0.875rem; }
|
|
302
|
+
|
|
292
303
|
.starci-core-step-copy {
|
|
293
304
|
display: flex;
|
|
294
305
|
min-width: 0;
|
|
@@ -641,6 +652,9 @@
|
|
|
641
652
|
flex: 0 0 auto;
|
|
642
653
|
}
|
|
643
654
|
|
|
655
|
+
/* A loading avatar (knowledge STATE-8): the Skeleton circle at the avatar's size. */
|
|
656
|
+
.starci-core-avatar-skeleton { display: inline-flex; }
|
|
657
|
+
|
|
644
658
|
.starci-core-avatar[data-grammar-current="true"] {
|
|
645
659
|
box-shadow: 0 0 0 2px var(--background, Canvas), 0 0 0 4px var(--accent, Highlight);
|
|
646
660
|
}
|
|
@@ -685,6 +699,42 @@
|
|
|
685
699
|
color: var(--accent-soft-foreground, HighlightText);
|
|
686
700
|
}
|
|
687
701
|
|
|
702
|
+
/*
|
|
703
|
+
* Selectable chips (0.9.6, selectionMode single or multiple): a group of choices reads as secondary
|
|
704
|
+
* buttons with a border. Unselected = the secondary-button face (--default, hover --default-hover,
|
|
705
|
+
* the same tokens `.button--secondary` uses) with a 1px inset --border and the default foreground;
|
|
706
|
+
* selected = the accent-soft fill plus a 1px inset accent border. Static groups (selectionMode
|
|
707
|
+
* "none") and off chips are not matched and keep their look. The vendor `.tag--default` paint lives
|
|
708
|
+
* in the later `components` layer, which beats any earlier layer, so only the background takes
|
|
709
|
+
* `!important` (the same documented approach as the off chip); a family restyles it through
|
|
710
|
+
* `--starci-core-tag-bg` and `--starci-core-tag-bg-hover`, never by out-ranking this rule.
|
|
711
|
+
*/
|
|
712
|
+
.starci-core-tag-group:is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) .starci-core-tag:not([data-grammar-tag-state="off"]) {
|
|
713
|
+
box-shadow: inset 0 0 0 1px var(--starci-core-tag-ring, var(--border, GrayText));
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.starci-core-tag-group:is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) .starci-core-tag:not([data-grammar-tag-state="off"]):not([data-selected="true"]):not(:has(> [data-grammar-selected="true"])) {
|
|
717
|
+
background: var(--starci-core-tag-bg, var(--default, ButtonFace)) !important;
|
|
718
|
+
color: var(--default-foreground, var(--foreground, ButtonText));
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
@media (hover: hover) {
|
|
722
|
+
.starci-core-tag-group:is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) .starci-core-tag:not([data-grammar-tag-state="off"]):not([data-selected="true"]):not([data-disabled="true"]):not(:has(> [data-grammar-selected="true"])):is(:hover, [data-hovered="true"]) {
|
|
723
|
+
background: var(--starci-core-tag-bg-hover, var(--default-hover, ButtonFace)) !important;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
.starci-core-tag-group:is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) .starci-core-tag:not([data-grammar-tag-state="off"]):is([data-selected="true"], :has(> [data-grammar-selected="true"])) {
|
|
728
|
+
--starci-core-tag-ring: var(--accent, Highlight);
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
@media (forced-colors: active) {
|
|
732
|
+
.starci-core-tag-group:is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) .starci-core-tag:not([data-grammar-tag-state="off"]):not([data-selected="true"]):not(:has(> [data-grammar-selected="true"])):not([data-focus-visible="true"]) {
|
|
733
|
+
outline: 1px solid ButtonText;
|
|
734
|
+
outline-offset: -1px;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
|
|
688
738
|
/*
|
|
689
739
|
* An off chip (0.6.0, `TagGroupItem.isOff`): HeroUI's tertiary chip - a transparent ground - with a
|
|
690
740
|
* 1px --border outline and the muted foreground, so it reads as present-but-off beside its filled
|
|
@@ -970,6 +1020,22 @@
|
|
|
970
1020
|
flex: 0 0 auto;
|
|
971
1021
|
}
|
|
972
1022
|
|
|
1023
|
+
/* Loading options (knowledge STATE-8): a label line and a description line, at the loaded option's height. */
|
|
1024
|
+
.starci-core-list-box-skeleton-option {
|
|
1025
|
+
display: flex;
|
|
1026
|
+
align-items: center;
|
|
1027
|
+
padding-inline: 0.75rem;
|
|
1028
|
+
padding-block: 0.375rem;
|
|
1029
|
+
pointer-events: none;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-label,
|
|
1033
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-description { display: block; }
|
|
1034
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-label > .starci-core-skeleton-group { inline-size: 55%; }
|
|
1035
|
+
.starci-core-list-box-skeleton-option .starci-core-list-box-description > .starci-core-skeleton-group { inline-size: 80%; }
|
|
1036
|
+
.starci-core-list-box-skeleton-option .starci-core-skeleton { block-size: 0.75rem; }
|
|
1037
|
+
.starci-core-list-box-skeleton-option .starci-core-skeleton-group { gap: 0; margin-block: 0.125rem; }
|
|
1038
|
+
|
|
973
1039
|
.starci-core-list-box-empty {
|
|
974
1040
|
padding: var(--grammar-section-gap, 1rem);
|
|
975
1041
|
color: var(--muted, GrayText);
|
|
@@ -1200,6 +1266,15 @@
|
|
|
1200
1266
|
background: currentColor;
|
|
1201
1267
|
}
|
|
1202
1268
|
|
|
1269
|
+
/* Loading timeline (knowledge STATE-8): static mark and connector tint, three Skeleton lines of the entry's rhythm. */
|
|
1270
|
+
.starci-core-timeline-skeleton-marker > .starci-core-skeleton { inline-size: 1rem; block-size: 1rem; }
|
|
1271
|
+
.starci-core-timeline[data-loading="true"] .starci-core-timeline-item:not(:last-child)::before { background: color-mix(in srgb, var(--foreground, CanvasText) 9%, transparent); }
|
|
1272
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-timeline-title > .starci-core-skeleton-group { inline-size: 50%; }
|
|
1273
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-timeline-time > .starci-core-skeleton-group { inline-size: 25%; }
|
|
1274
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-timeline-description > .starci-core-skeleton-group { inline-size: 80%; }
|
|
1275
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-skeleton-group { gap: 0; }
|
|
1276
|
+
.starci-core-timeline-item[data-grammar-skeleton="true"] .starci-core-skeleton { block-size: 0.8125rem; }
|
|
1277
|
+
|
|
1203
1278
|
.starci-core-timeline-copy {
|
|
1204
1279
|
display: flex;
|
|
1205
1280
|
min-width: 0;
|
|
@@ -1274,4 +1349,196 @@
|
|
|
1274
1349
|
forced-color-adjust: none;
|
|
1275
1350
|
}
|
|
1276
1351
|
}
|
|
1352
|
+
|
|
1353
|
+
/* ---------- FlowGraph ----------
|
|
1354
|
+
* The structural base rules of React Flow, scoped to the graph so a host needs no @xyflow/react stylesheet import.
|
|
1355
|
+
* Its colours (edges, background, nodes) are replaced by grammar tokens below. */
|
|
1356
|
+
.starci-core-flow-graph {
|
|
1357
|
+
display: block;
|
|
1358
|
+
position: relative;
|
|
1359
|
+
min-width: 0;
|
|
1360
|
+
margin: 0;
|
|
1361
|
+
overflow: hidden;
|
|
1362
|
+
border: 1px solid var(--separator, CanvasText);
|
|
1363
|
+
border-radius: var(--starci-core-surface-radius, 1rem);
|
|
1364
|
+
background: var(--surface, Canvas);
|
|
1365
|
+
color: var(--foreground, CanvasText);
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.starci-core-flow-graph-canvas {
|
|
1369
|
+
position: relative;
|
|
1370
|
+
inline-size: 100%;
|
|
1371
|
+
block-size: 24rem;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
.starci-core-flow-graph[data-grammar-flow-height="sm"] .starci-core-flow-graph-canvas { block-size: 16rem; }
|
|
1375
|
+
.starci-core-flow-graph[data-grammar-flow-height="lg"] .starci-core-flow-graph-canvas { block-size: 32rem; }
|
|
1376
|
+
|
|
1377
|
+
.starci-core-flow-graph-loading > .starci-core-skeleton { block-size: 100%; aspect-ratio: auto; border-radius: 0; }
|
|
1378
|
+
|
|
1379
|
+
.starci-core-flow-graph-empty {
|
|
1380
|
+
display: flex;
|
|
1381
|
+
align-items: center;
|
|
1382
|
+
justify-content: center;
|
|
1383
|
+
min-block-size: 8rem;
|
|
1384
|
+
margin: 0;
|
|
1385
|
+
padding: 1.5rem;
|
|
1386
|
+
color: var(--muted, GrayText);
|
|
1387
|
+
text-align: center;
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
.starci-core-flow-graph .react-flow {
|
|
1391
|
+
direction: ltr;
|
|
1392
|
+
--xy-edge-stroke: var(--separator, CanvasText);
|
|
1393
|
+
--xy-edge-stroke-width: 1.5;
|
|
1394
|
+
--xy-edge-stroke-selected: var(--separator, CanvasText);
|
|
1395
|
+
--xy-background-color: transparent;
|
|
1396
|
+
background: transparent;
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
.starci-core-flow-graph .react-flow__container { position: absolute; inline-size: 100%; block-size: 100%; inset-block-start: 0; inset-inline-start: 0; }
|
|
1400
|
+
.starci-core-flow-graph .react-flow__pane { z-index: 1; touch-action: none; }
|
|
1401
|
+
.starci-core-flow-graph[data-grammar-flow-interactive="true"] .react-flow__pane.draggable { cursor: grab; }
|
|
1402
|
+
.starci-core-flow-graph[data-grammar-flow-interactive="true"] .react-flow__pane.dragging { cursor: grabbing; }
|
|
1403
|
+
.starci-core-flow-graph .react-flow__viewport { transform-origin: 0 0; z-index: 2; pointer-events: none; }
|
|
1404
|
+
.starci-core-flow-graph .react-flow__renderer { z-index: 4; }
|
|
1405
|
+
.starci-core-flow-graph .react-flow__background { pointer-events: none; z-index: -1; }
|
|
1406
|
+
.starci-core-flow-graph .react-flow__edges { position: absolute; }
|
|
1407
|
+
.starci-core-flow-graph .react-flow__edges svg { position: absolute; overflow: visible; pointer-events: none; }
|
|
1408
|
+
.starci-core-flow-graph .react-flow__edge-path { fill: none; stroke: var(--xy-edge-stroke); stroke-width: var(--xy-edge-stroke-width); stroke-linecap: round; }
|
|
1409
|
+
.starci-core-flow-graph .starci-core-flow-graph-edge-placeholder .react-flow__edge-path { stroke-dasharray: 4 5; }
|
|
1410
|
+
.starci-core-flow-graph .react-flow__nodes { pointer-events: none; transform-origin: 0 0; }
|
|
1411
|
+
.starci-core-flow-graph .react-flow__node {
|
|
1412
|
+
position: absolute;
|
|
1413
|
+
box-sizing: border-box;
|
|
1414
|
+
transform-origin: 0 0;
|
|
1415
|
+
pointer-events: all;
|
|
1416
|
+
user-select: none;
|
|
1417
|
+
cursor: default;
|
|
1418
|
+
outline: none;
|
|
1419
|
+
}
|
|
1420
|
+
.starci-core-flow-graph .react-flow__node.selectable { cursor: pointer; }
|
|
1421
|
+
.starci-core-flow-graph .react-flow__panel { position: absolute; z-index: 5; margin: 0.75rem; }
|
|
1422
|
+
.starci-core-flow-graph .react-flow__panel.bottom { inset-block-end: 0; }
|
|
1423
|
+
.starci-core-flow-graph .react-flow__panel.left { inset-inline-start: 0; }
|
|
1424
|
+
.starci-core-flow-graph .react-flow__panel.right { inset-inline-end: 0; }
|
|
1425
|
+
.starci-core-flow-graph .react-flow__panel.top { inset-block-start: 0; }
|
|
1426
|
+
|
|
1427
|
+
/* The edge ends meet at the node centre: the handle is a hidden point in the middle of the card. */
|
|
1428
|
+
.starci-core-flow-graph .starci-core-flow-graph-handle {
|
|
1429
|
+
position: absolute;
|
|
1430
|
+
inset-block-start: 50%;
|
|
1431
|
+
inset-inline-start: 50%;
|
|
1432
|
+
min-inline-size: 1px;
|
|
1433
|
+
min-block-size: 1px;
|
|
1434
|
+
inline-size: 1px;
|
|
1435
|
+
block-size: 1px;
|
|
1436
|
+
border: 0;
|
|
1437
|
+
opacity: 0;
|
|
1438
|
+
pointer-events: none;
|
|
1439
|
+
transform: none;
|
|
1440
|
+
background: transparent;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
.starci-core-flow-graph-node {
|
|
1444
|
+
--starci-flow-tint: var(--default-soft, transparent);
|
|
1445
|
+
--starci-flow-ink: var(--foreground, CanvasText);
|
|
1446
|
+
position: relative;
|
|
1447
|
+
display: inline-flex;
|
|
1448
|
+
align-items: center;
|
|
1449
|
+
gap: 0.5rem;
|
|
1450
|
+
max-inline-size: 14rem;
|
|
1451
|
+
padding: 0.375rem 0.875rem;
|
|
1452
|
+
border: 1px solid var(--separator, CanvasText);
|
|
1453
|
+
border-radius: 999px;
|
|
1454
|
+
background-color: var(--surface, Canvas);
|
|
1455
|
+
background-image: linear-gradient(var(--starci-flow-tint), var(--starci-flow-tint));
|
|
1456
|
+
color: var(--starci-flow-ink);
|
|
1457
|
+
font-size: 0.875rem;
|
|
1458
|
+
line-height: 1.25;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
.starci-core-flow-graph-node[data-size="sm"] { padding: 0.25rem 0.625rem; font-size: 0.75rem; }
|
|
1462
|
+
.starci-core-flow-graph-node[data-size="lg"] { padding: 0.625rem 1.25rem; font-size: 1rem; font-weight: 600; }
|
|
1463
|
+
.starci-core-flow-graph-node[data-tone="accent"] { --starci-flow-tint: var(--accent-soft, transparent); --starci-flow-ink: var(--accent-soft-foreground, CanvasText); }
|
|
1464
|
+
.starci-core-flow-graph-node[data-tone="success"] { --starci-flow-tint: var(--success-soft, transparent); --starci-flow-ink: var(--success-soft-foreground, CanvasText); }
|
|
1465
|
+
.starci-core-flow-graph-node[data-tone="warning"] { --starci-flow-tint: var(--warning-soft, transparent); --starci-flow-ink: var(--warning-soft-foreground, CanvasText); }
|
|
1466
|
+
.starci-core-flow-graph-node[data-tone="danger"] { --starci-flow-tint: var(--danger-soft, transparent); --starci-flow-ink: var(--danger-soft-foreground, CanvasText); }
|
|
1467
|
+
.starci-core-flow-graph-node[data-tone="muted"] { --starci-flow-tint: transparent; --starci-flow-ink: var(--muted, GrayText); }
|
|
1468
|
+
.starci-core-flow-graph-node[data-placeholder="true"] { border-style: dashed; }
|
|
1469
|
+
|
|
1470
|
+
.starci-core-flow-graph-copy {
|
|
1471
|
+
display: flex;
|
|
1472
|
+
min-width: 0;
|
|
1473
|
+
flex-direction: column;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
.starci-core-flow-graph-label {
|
|
1477
|
+
overflow: hidden;
|
|
1478
|
+
text-overflow: ellipsis;
|
|
1479
|
+
white-space: nowrap;
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
.starci-core-flow-graph-description {
|
|
1483
|
+
overflow: hidden;
|
|
1484
|
+
color: var(--muted, GrayText);
|
|
1485
|
+
font-size: 0.75rem;
|
|
1486
|
+
text-overflow: ellipsis;
|
|
1487
|
+
white-space: nowrap;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.starci-core-flow-graph-count {
|
|
1491
|
+
flex: 0 0 auto;
|
|
1492
|
+
min-inline-size: 1.25rem;
|
|
1493
|
+
padding: 0 0.375rem;
|
|
1494
|
+
border-radius: 999px;
|
|
1495
|
+
background: var(--surface, Canvas);
|
|
1496
|
+
color: var(--foreground, CanvasText);
|
|
1497
|
+
font-size: 0.6875rem;
|
|
1498
|
+
font-variant-numeric: tabular-nums;
|
|
1499
|
+
line-height: 1.25rem;
|
|
1500
|
+
text-align: center;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
/* Selection and keyboard focus draw the package focus ring on the card, not on the React Flow wrapper. */
|
|
1504
|
+
.starci-core-flow-graph-node[data-grammar-selected="true"],
|
|
1505
|
+
.starci-core-flow-graph .react-flow__node:focus-visible > .starci-core-flow-graph-node {
|
|
1506
|
+
outline: 2px solid var(--focus, var(--starci-core-focus, Highlight));
|
|
1507
|
+
outline-offset: 2px;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
.starci-core-flow-graph-controls {
|
|
1511
|
+
display: flex;
|
|
1512
|
+
flex-direction: column;
|
|
1513
|
+
overflow: hidden;
|
|
1514
|
+
border: 1px solid var(--separator, CanvasText);
|
|
1515
|
+
border-radius: 0.75rem;
|
|
1516
|
+
background: var(--surface, Canvas);
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
.starci-core-flow-graph-controls .react-flow__controls-button {
|
|
1520
|
+
display: flex;
|
|
1521
|
+
align-items: center;
|
|
1522
|
+
justify-content: center;
|
|
1523
|
+
inline-size: 2rem;
|
|
1524
|
+
block-size: 2rem;
|
|
1525
|
+
padding: 0.375rem;
|
|
1526
|
+
border: 0;
|
|
1527
|
+
background: transparent;
|
|
1528
|
+
color: var(--foreground, CanvasText);
|
|
1529
|
+
cursor: pointer;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
.starci-core-flow-graph-controls .react-flow__controls-button + .react-flow__controls-button { border-block-start: 1px solid var(--separator, CanvasText); }
|
|
1533
|
+
.starci-core-flow-graph-controls .react-flow__controls-button svg { inline-size: 100%; max-inline-size: 0.75rem; max-block-size: 0.75rem; fill: currentColor; }
|
|
1534
|
+
.starci-core-flow-graph-controls .react-flow__controls-button:focus-visible { outline: 2px solid var(--focus, var(--starci-core-focus, Highlight)); outline-offset: -2px; }
|
|
1535
|
+
.starci-core-flow-graph-controls .react-flow__controls-button:disabled { opacity: 0.4; cursor: default; }
|
|
1536
|
+
|
|
1537
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1538
|
+
.starci-core-flow-graph .react-flow__edge.animated path { animation: none; }
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
@media (forced-colors: active) {
|
|
1542
|
+
.starci-core-flow-graph-node[data-grammar-selected="true"] { outline-color: Highlight; forced-color-adjust: none; }
|
|
1543
|
+
}
|
|
1277
1544
|
}
|
|
@@ -915,6 +915,15 @@
|
|
|
915
915
|
transition: width var(--starci-core-motion-duration, 180ms) var(--starci-core-motion-easing, cubic-bezier(0.2, 0, 0, 1));
|
|
916
916
|
}
|
|
917
917
|
|
|
918
|
+
/* Loading meter (knowledge STATE-8, `isSkeleton`): the label stays real, the bar is a static Skeleton bar of the track height. */
|
|
919
|
+
.starci-core-meter-skeleton-bar { display: block; block-size: 0.5rem; overflow: hidden; border-radius: 999px; }
|
|
920
|
+
|
|
921
|
+
.starci-core-meter-skeleton-bar > .starci-core-skeleton {
|
|
922
|
+
block-size: 100%;
|
|
923
|
+
aspect-ratio: auto;
|
|
924
|
+
border-radius: inherit;
|
|
925
|
+
}
|
|
926
|
+
|
|
918
927
|
/*
|
|
919
928
|
* Segmented meter (owner ruling 2026-09-27): the track spans the full width of its container,
|
|
920
929
|
* like a Progress track, at HeroUI's h-1 (0.25rem, 4px) - thinner than the plain meter's h-2 -
|
|
@@ -9,23 +9,24 @@ type ExtensionWithoutCommonCollisions<Common extends GrammarRendererRegistry, Ex
|
|
|
9
9
|
};
|
|
10
10
|
export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
11
11
|
readonly Accordion: ({ label, items, expandedIds, defaultExpandedIds, onExpandedChange, allowsMultipleExpanded, headingLevel, className, }: import("./renderers-navigation.js").AccordionProps) => import("react").JSX.Element;
|
|
12
|
-
readonly Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
|
|
12
|
+
readonly Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className, isSkeleton }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
|
|
13
13
|
readonly AvatarGroup: ({ label, items, max, size, overflowLabel, className }: import("./renderers-navigation.js").AvatarGroupProps) => import("react").JSX.Element;
|
|
14
14
|
readonly BottomNav: ({ label, items, currentId, onSelect, position, visibility, className }: import("./renderers-navigation.js").BottomNavProps) => import("react").JSX.Element;
|
|
15
15
|
readonly Breadcrumbs: ({ label, items, separator, onAction, className }: import("./renderers-navigation.js").BreadcrumbsProps) => import("react").JSX.Element;
|
|
16
16
|
readonly Calendar: ({ label, value, defaultValue, onChange, minValue, maxValue, isDateUnavailable, isDisabled, isReadOnly, previousLabel, nextLabel, className, }: import("./renderers-navigation.js").CalendarProps) => import("react").JSX.Element;
|
|
17
|
-
readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: import("./renderers-navigation.js").DataTableProps<Row>) => import("react").JSX.Element;
|
|
17
|
+
readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, 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
18
|
readonly DescriptionList: (props: import("./renderers-navigation.js").DescriptionListProps) => import("react").JSX.Element;
|
|
19
19
|
readonly Disclosure: ({ title, children, isExpanded, defaultExpanded, onExpandedChange, isDisabled, headingLevel, className, }: import("./renderers-navigation.js").DisclosureProps) => import("react").JSX.Element;
|
|
20
|
+
readonly FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, isInteractive, showControls, layout, emptyLabel, isLoading, className, }: import("./renderers-navigation.js").FlowGraphProps) => import("react").JSX.Element;
|
|
20
21
|
readonly Footer: ({ label, brand, groups, legal, externalHint, children, className }: import("./renderers-navigation.js").FooterProps) => import("react").JSX.Element;
|
|
21
22
|
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;
|
|
22
23
|
readonly Link: ({ children, href, kind, isCurrent, visited, externalHint, externalIcon, isDisabled, onFollow, className, }: import("./renderers-navigation.js").LinkProps) => import("react").JSX.Element;
|
|
23
|
-
readonly ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
24
|
+
readonly ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading, loadingRows, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
24
25
|
readonly Pagination: ({ label, page, pageCount, onPageChange, siblingCount, previousLabel, nextLabel, pageLabel, summary, className, }: import("./renderers-navigation.js").PaginationProps) => import("react").JSX.Element;
|
|
25
26
|
readonly Rating: ({ label, value, defaultValue, onChange, max, isReadOnly, isDisabled, valueLabel, icon, name, className, }: import("./renderers-navigation.js").RatingProps) => import("react").JSX.Element;
|
|
26
|
-
readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
|
|
27
|
+
readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, isLoading, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
|
|
27
28
|
readonly TagGroup: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onRemove, removeLabel, emptyContent, size, className, }: import("./renderers-navigation.js").TagGroupProps) => import("react").JSX.Element;
|
|
28
|
-
readonly Timeline: ({ label, items, className }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
|
|
29
|
+
readonly Timeline: ({ label, items, className, isLoading, loadingRows }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
|
|
29
30
|
readonly TopBar: ({ brand, navigation, actions, menu, position, className, ...headerProps }: import("./renderers-navigation.js").TopBarProps) => import("react").JSX.Element;
|
|
30
31
|
readonly Alert: (props: import("./renderers-overlays.js").AlertProps) => import("react").JSX.Element | null;
|
|
31
32
|
readonly AlertDialog: ({ title, description, children, tone, confirmLabel, cancelLabel, onConfirm, onCancel, isConfirmPending, trigger, isKeyboardDismissDisabled, ...openState }: import("./renderers-overlays.js").AlertDialogProps) => import("react").JSX.Element;
|
|
@@ -34,7 +35,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
34
35
|
readonly Drawer: ({ title, description, children, footer, trigger, closeLabel, placement, showHandle, isDismissable, isKeyboardDismissDisabled, ...openState }: import("./renderers-overlays.js").DrawerProps) => import("react").JSX.Element;
|
|
35
36
|
readonly DropdownMenu: ({ trigger, entries, onAction, placement, ...openState }: import("./renderers-overlays.js").DropdownMenuProps) => import("react").JSX.Element;
|
|
36
37
|
readonly Kbd: ({ keys }: import("./renderers-overlays.js").KbdProps) => import("react").JSX.Element;
|
|
37
|
-
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
38
|
+
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, isSkeleton, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
38
39
|
readonly Popover: ({ trigger, children, placement, showArrow, title, label, ...openState }: import("./renderers-overlays.js").PopoverProps) => import("react").JSX.Element;
|
|
39
40
|
readonly ProgressCircle: ({ label, value, isIndeterminate, size }: import("./renderers-overlays.js").ProgressCircleProps) => import("react").JSX.Element;
|
|
40
41
|
readonly Skeleton: ({ shape, lines, ratio, size }: import("./renderers-overlays.js").SkeletonProps) => import("react").JSX.Element;
|
|
@@ -43,7 +44,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
43
44
|
readonly Toaster: ({ label, dismissLabel, queue, placement, maxVisible }: import("./renderers-overlays.js").ToasterProps) => import("react").JSX.Element;
|
|
44
45
|
readonly ButtonGroup: ({ label, children, orientation, isDisabled, width }: import("./renderers-forms.js").ButtonGroupProps) => import("react").JSX.Element;
|
|
45
46
|
readonly Checkbox: ({ value, isSelected, defaultSelected, onSelectedChange, isIndeterminate, variant, ...field }: import("./renderers-forms.js").CheckboxProps) => import("react").JSX.Element;
|
|
46
|
-
readonly CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: import("./renderers-forms.js").CheckboxGroupProps) => import("react").JSX.Element;
|
|
47
|
+
readonly CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, isSkeleton, ...field }: import("./renderers-forms.js").CheckboxGroupProps) => import("react").JSX.Element;
|
|
47
48
|
readonly ComboBox: ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue, emptyState, isPending, menuTrigger, variant, ...field }: import("./renderers-forms.js").ComboBoxProps) => import("react").JSX.Element;
|
|
48
49
|
readonly DateField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, variant, ...field }: import("./renderers-forms.js").DateFieldProps) => import("react").JSX.Element;
|
|
49
50
|
readonly DatePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity, variant, ...field }: import("./renderers-forms.js").DatePickerProps) => import("react").JSX.Element;
|
|
@@ -52,18 +53,18 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
52
53
|
readonly Fieldset: ({ legend, isLegendHidden, description, errorMessage, children, actions, isDisabled }: import("./renderers-forms.js").FieldsetProps) => import("react").JSX.Element;
|
|
53
54
|
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;
|
|
54
55
|
readonly Form: ({ children, label, id, onSubmit, onReset, action, method, validationErrors, validationBehavior, isPending, }: import("./renderers-forms.js").FormProps) => import("react").JSX.Element;
|
|
55
|
-
readonly NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, ...field }: import("./renderers-forms.js").NumberFieldProps) => import("react").JSX.Element;
|
|
56
|
+
readonly NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, isSkeleton, ...field }: import("./renderers-forms.js").NumberFieldProps) => import("react").JSX.Element;
|
|
56
57
|
readonly RadioGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: import("./renderers-forms.js").RadioGroupProps) => import("react").JSX.Element;
|
|
57
|
-
readonly SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, ...field }: import("./renderers-forms.js").SearchFieldProps) => import("react").JSX.Element;
|
|
58
|
-
readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
|
|
59
|
-
readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
|
|
58
|
+
readonly SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, isSkeleton, ...field }: import("./renderers-forms.js").SearchFieldProps) => import("react").JSX.Element;
|
|
59
|
+
readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
|
|
60
|
+
readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, isSkeleton, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
|
|
60
61
|
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;
|
|
61
|
-
readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
|
|
62
|
-
readonly Textarea: ({ id, placeholder, value, defaultValue, rows, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
|
|
62
|
+
readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
|
|
63
|
+
readonly Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
|
|
63
64
|
readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
|
|
64
65
|
readonly Badge: ({ children, startContent, tone, isDot, isSkeleton }: import("./renderers.js").BadgeProps) => import("react").JSX.Element;
|
|
65
66
|
readonly Button: (props: import("./renderers.js").ButtonProps) => import("react").JSX.Element;
|
|
66
|
-
readonly ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, }: import("./renderers.js").ChatBubbleProps) => import("react").JSX.Element;
|
|
67
|
+
readonly ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, isSkeleton, }: import("./renderers.js").ChatBubbleProps) => import("react").JSX.Element;
|
|
67
68
|
readonly ChatWorkspace: (props: import("./renderers.js").ChatWorkspaceProps) => import("react").JSX.Element;
|
|
68
69
|
readonly Divider: (props: import("./renderers.js").DividerProps) => import("react").JSX.Element;
|
|
69
70
|
readonly EmptyNotice: ({ message, description, iconSource, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: import("./renderers.js").EmptyNoticeProps) => import("react").JSX.Element;
|
|
@@ -89,7 +90,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
89
90
|
readonly LeadingNumber: (props: import("./renderers.js").LeadingNumberProps) => import("react").JSX.Element;
|
|
90
91
|
readonly List: (props: import("./renderers.js").ListProps) => import("react").JSX.Element;
|
|
91
92
|
readonly ListItem: (props: import("./renderers.js").ListItemProps) => import("react").JSX.Element;
|
|
92
|
-
readonly ListRow: ({ title, description, leading, badges, actions, children, state, verdict }: import("./renderers.js").ListRowProps) => import("react").JSX.Element;
|
|
93
|
+
readonly ListRow: ({ title, description, leading, badges, actions, children, state, verdict, isSkeleton }: import("./renderers.js").ListRowProps) => import("react").JSX.Element;
|
|
93
94
|
readonly MarkdownArticle: (props: import("./renderers.js").MarkdownArticleProps) => import("react").JSX.Element;
|
|
94
95
|
readonly MarkdownTableFrame: (props: import("./renderers.js").MarkdownTableFrameProps) => import("react").JSX.Element;
|
|
95
96
|
readonly MediaFrame: ({ children, caption, aspect, fit, treatment, className, ...assetSlot }: import("./renderers.js").MediaFrameProps) => import("react").JSX.Element;
|
|
@@ -104,7 +105,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
|
|
|
104
105
|
readonly Rail: (props: import("./renderers.js").RailProps) => import("react").JSX.Element;
|
|
105
106
|
readonly RankArtwork: ({ className, kind, label, ...props }: import("./renderers.js").RankArtworkProps) => import("react").JSX.Element;
|
|
106
107
|
readonly Region: (props: import("./renderers.js").RegionProps) => import("react").JSX.Element;
|
|
107
|
-
readonly SectionHeader: ({ title, description, eyebrow, action, count, meta, level, className, id, composition, }: import("./renderers.js").SectionHeaderProps) => import("react").JSX.Element;
|
|
108
|
+
readonly SectionHeader: ({ title, description, eyebrow, action, count, meta, level, className, id, composition, isSkeleton, }: import("./renderers.js").SectionHeaderProps) => import("react").JSX.Element;
|
|
108
109
|
readonly Sidebar: ({ label, groups, selectedKey, presentation, isCollapsed, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }: import("./renderers.js").SidebarProps) => import("react").JSX.Element;
|
|
109
110
|
readonly StateMark: (props: import("./renderers.js").StateMarkProps) => import("react").JSX.Element | null;
|
|
110
111
|
readonly StaticStateRow: (props: import("./renderers.js").StaticStateRowProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,MAAM,aAAa,CAAA;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC1F,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,uBAAuB,IAAI;IACrG,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,yBAAyB,GAAG,UAAU,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CACrE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC5B,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC7B,KAAK,CAAC,YAAY,SAAS,sBAAsB,CAAC,OAAO,yBAAyB,CAAC,EACnF,KAAK,CAAC,UAAU,SAAS,uBAAuB,EAClD,YAAY;IACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;QACnC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAA;KACtG,CAAA;CACJ,KAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAuB7C,CAAA"}
|
|
@@ -22,7 +22,7 @@ export { DateRangePicker, type DateRangePickerProps, type DateRangeValue } from
|
|
|
22
22
|
export declare const COMMON_FORMS_COMPONENTS: Readonly<{
|
|
23
23
|
readonly ButtonGroup: ({ label, children, orientation, isDisabled, width }: import("./renderers-forms.js").ButtonGroupProps) => import("react").JSX.Element;
|
|
24
24
|
readonly Checkbox: ({ value, isSelected, defaultSelected, onSelectedChange, isIndeterminate, variant, ...field }: import("./renderers-forms.js").CheckboxProps) => import("react").JSX.Element;
|
|
25
|
-
readonly CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: import("./renderers-forms.js").CheckboxGroupProps) => import("react").JSX.Element;
|
|
25
|
+
readonly CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, isSkeleton, ...field }: import("./renderers-forms.js").CheckboxGroupProps) => import("react").JSX.Element;
|
|
26
26
|
readonly ComboBox: ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue, emptyState, isPending, menuTrigger, variant, ...field }: import("./renderers-forms.js").ComboBoxProps) => import("react").JSX.Element;
|
|
27
27
|
readonly DateField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, variant, ...field }: import("./renderers-forms.js").DateFieldProps) => import("react").JSX.Element;
|
|
28
28
|
readonly DatePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity, variant, ...field }: import("./renderers-forms.js").DatePickerProps) => import("react").JSX.Element;
|
|
@@ -31,14 +31,14 @@ export declare const COMMON_FORMS_COMPONENTS: Readonly<{
|
|
|
31
31
|
readonly Fieldset: ({ legend, isLegendHidden, description, errorMessage, children, actions, isDisabled }: import("./renderers-forms.js").FieldsetProps) => import("react").JSX.Element;
|
|
32
32
|
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;
|
|
33
33
|
readonly Form: ({ children, label, id, onSubmit, onReset, action, method, validationErrors, validationBehavior, isPending, }: import("./renderers-forms.js").FormProps) => import("react").JSX.Element;
|
|
34
|
-
readonly NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, ...field }: import("./renderers-forms.js").NumberFieldProps) => import("react").JSX.Element;
|
|
34
|
+
readonly NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, isSkeleton, ...field }: import("./renderers-forms.js").NumberFieldProps) => import("react").JSX.Element;
|
|
35
35
|
readonly RadioGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: import("./renderers-forms.js").RadioGroupProps) => import("react").JSX.Element;
|
|
36
|
-
readonly SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, ...field }: import("./renderers-forms.js").SearchFieldProps) => import("react").JSX.Element;
|
|
37
|
-
readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
|
|
38
|
-
readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
|
|
36
|
+
readonly SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, isSkeleton, ...field }: import("./renderers-forms.js").SearchFieldProps) => import("react").JSX.Element;
|
|
37
|
+
readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
|
|
38
|
+
readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, isSkeleton, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
|
|
39
39
|
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;
|
|
40
|
-
readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
|
|
41
|
-
readonly Textarea: ({ id, placeholder, value, defaultValue, rows, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
|
|
40
|
+
readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
|
|
41
|
+
readonly Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
|
|
42
42
|
readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
|
|
43
43
|
}>;
|
|
44
44
|
//# sourceMappingURL=renderers-forms.d.ts.map
|