@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
|
@@ -2,6 +2,7 @@ export { Accordion, type AccordionItem, type AccordionProps } from "../core/bran
|
|
|
2
2
|
export { Calendar, type CalendarProps } from "../core/branch/Calendar/index.js";
|
|
3
3
|
export { DataTable, type DataTableColumn, type DataTableProps, type DataTableRow, type DataTableSort } from "../core/branch/DataTable/index.js";
|
|
4
4
|
export { Disclosure, type DisclosureProps } from "../core/branch/Disclosure/index.js";
|
|
5
|
+
export { FlowGraph, radialPositions, type FlowGraphEdge, type FlowGraphHeight, type FlowGraphLayout, type FlowGraphNode, type FlowGraphNodeSize, type FlowGraphProps, type FlowGraphTone } from "../core/branch/FlowGraph/index.js";
|
|
5
6
|
export { ListBox, type ListBoxItem, type ListBoxProps } from "../core/branch/ListBox/index.js";
|
|
6
7
|
export { AvatarGroup, type AvatarGroupItem, type AvatarGroupProps } from "../core/composite/AvatarGroup/index.js";
|
|
7
8
|
export { Breadcrumbs, type BreadcrumbItem, type BreadcrumbsProps } from "../core/composite/Breadcrumbs/index.js";
|
|
@@ -20,23 +21,24 @@ export { Rating, type RatingProps } from "../core/primitive/Rating/index.js";
|
|
|
20
21
|
/** Every navigation-group renderer, spread into `COMMON_GRAMMAR_COMPONENTS`. */
|
|
21
22
|
export declare const COMMON_NAVIGATION_COMPONENTS: Readonly<{
|
|
22
23
|
readonly Accordion: ({ label, items, expandedIds, defaultExpandedIds, onExpandedChange, allowsMultipleExpanded, headingLevel, className, }: import("./renderers-navigation.js").AccordionProps) => import("react").JSX.Element;
|
|
23
|
-
readonly Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
|
|
24
|
+
readonly Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className, isSkeleton }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
|
|
24
25
|
readonly AvatarGroup: ({ label, items, max, size, overflowLabel, className }: import("./renderers-navigation.js").AvatarGroupProps) => import("react").JSX.Element;
|
|
25
26
|
readonly BottomNav: ({ label, items, currentId, onSelect, position, visibility, className }: import("./renderers-navigation.js").BottomNavProps) => import("react").JSX.Element;
|
|
26
27
|
readonly Breadcrumbs: ({ label, items, separator, onAction, className }: import("./renderers-navigation.js").BreadcrumbsProps) => import("react").JSX.Element;
|
|
27
28
|
readonly Calendar: ({ label, value, defaultValue, onChange, minValue, maxValue, isDateUnavailable, isDisabled, isReadOnly, previousLabel, nextLabel, className, }: import("./renderers-navigation.js").CalendarProps) => import("react").JSX.Element;
|
|
28
|
-
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;
|
|
29
|
+
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;
|
|
29
30
|
readonly DescriptionList: (props: import("./renderers-navigation.js").DescriptionListProps) => import("react").JSX.Element;
|
|
30
31
|
readonly Disclosure: ({ title, children, isExpanded, defaultExpanded, onExpandedChange, isDisabled, headingLevel, className, }: import("./renderers-navigation.js").DisclosureProps) => import("react").JSX.Element;
|
|
32
|
+
readonly FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, isInteractive, showControls, layout, emptyLabel, isLoading, className, }: import("./renderers-navigation.js").FlowGraphProps) => import("react").JSX.Element;
|
|
31
33
|
readonly Footer: ({ label, brand, groups, legal, externalHint, children, className }: import("./renderers-navigation.js").FooterProps) => import("react").JSX.Element;
|
|
32
34
|
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;
|
|
33
35
|
readonly Link: ({ children, href, kind, isCurrent, visited, externalHint, externalIcon, isDisabled, onFollow, className, }: import("./renderers-navigation.js").LinkProps) => import("react").JSX.Element;
|
|
34
|
-
readonly ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
36
|
+
readonly ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading, loadingRows, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
|
|
35
37
|
readonly Pagination: ({ label, page, pageCount, onPageChange, siblingCount, previousLabel, nextLabel, pageLabel, summary, className, }: import("./renderers-navigation.js").PaginationProps) => import("react").JSX.Element;
|
|
36
38
|
readonly Rating: ({ label, value, defaultValue, onChange, max, isReadOnly, isDisabled, valueLabel, icon, name, className, }: import("./renderers-navigation.js").RatingProps) => import("react").JSX.Element;
|
|
37
|
-
readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
|
|
39
|
+
readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, isLoading, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
|
|
38
40
|
readonly TagGroup: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onRemove, removeLabel, emptyContent, size, className, }: import("./renderers-navigation.js").TagGroupProps) => import("react").JSX.Element;
|
|
39
|
-
readonly Timeline: ({ label, items, className }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
|
|
41
|
+
readonly Timeline: ({ label, items, className, isLoading, loadingRows }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
|
|
40
42
|
readonly TopBar: ({ brand, navigation, actions, menu, position, className, ...headerProps }: import("./renderers-navigation.js").TopBarProps) => import("react").JSX.Element;
|
|
41
43
|
}>;
|
|
42
44
|
//# sourceMappingURL=renderers-navigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers-navigation.d.ts","sourceRoot":"","sources":["../../src/common/renderers-navigation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderers-navigation.d.ts","sourceRoot":"","sources":["../../src/common/renderers-navigation.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACtG,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAC/I,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACnO,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AAC3L,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAChI,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACtI,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAC3G,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACrH,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAC/F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC7G,OAAO,EAAE,KAAK,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAA;AACrI,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE5E,gFAAgF;AAChF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;EAG9B,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { Accordion } from "../core/branch/Accordion/index.js";
|
|
|
4
4
|
import { Calendar } from "../core/branch/Calendar/index.js";
|
|
5
5
|
import { DataTable } from "../core/branch/DataTable/index.js";
|
|
6
6
|
import { Disclosure } from "../core/branch/Disclosure/index.js";
|
|
7
|
+
import { FlowGraph } from "../core/branch/FlowGraph/index.js";
|
|
7
8
|
import { ListBox } from "../core/branch/ListBox/index.js";
|
|
8
9
|
import { AvatarGroup } from "../core/composite/AvatarGroup/index.js";
|
|
9
10
|
import { Breadcrumbs } from "../core/composite/Breadcrumbs/index.js";
|
|
@@ -23,6 +24,7 @@ export { Accordion } from "../core/branch/Accordion/index.js";
|
|
|
23
24
|
export { Calendar } from "../core/branch/Calendar/index.js";
|
|
24
25
|
export { DataTable } from "../core/branch/DataTable/index.js";
|
|
25
26
|
export { Disclosure } from "../core/branch/Disclosure/index.js";
|
|
27
|
+
export { FlowGraph, radialPositions } from "../core/branch/FlowGraph/index.js";
|
|
26
28
|
export { ListBox } from "../core/branch/ListBox/index.js";
|
|
27
29
|
export { AvatarGroup } from "../core/composite/AvatarGroup/index.js";
|
|
28
30
|
export { Breadcrumbs } from "../core/composite/Breadcrumbs/index.js";
|
|
@@ -41,6 +43,6 @@ export { Rating } from "../core/primitive/Rating/index.js";
|
|
|
41
43
|
/** Every navigation-group renderer, spread into `COMMON_GRAMMAR_COMPONENTS`. */
|
|
42
44
|
export const COMMON_NAVIGATION_COMPONENTS = Object.freeze({
|
|
43
45
|
Accordion, Avatar, AvatarGroup, BottomNav, Breadcrumbs, Calendar, DataTable, DescriptionList,
|
|
44
|
-
Disclosure, Footer, Image, Link, ListBox, Pagination, Rating, Stepper, TagGroup, Timeline, TopBar,
|
|
46
|
+
Disclosure, FlowGraph, Footer, Image, Link, ListBox, Pagination, Rating, Stepper, TagGroup, Timeline, TopBar,
|
|
45
47
|
});
|
|
46
48
|
//# sourceMappingURL=renderers-navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers-navigation.js","sourceRoot":"","sources":["../../src/common/renderers-navigation.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,8EAA8E;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAE1D,OAAO,EAAE,SAAS,EAA2C,MAAM,mCAAmC,CAAA;AACtG,OAAO,EAAE,QAAQ,EAAsB,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAoF,MAAM,mCAAmC,CAAA;AAC/I,OAAO,EAAE,UAAU,EAAwB,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,OAAO,EAAuC,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,WAAW,EAA+C,MAAM,wCAAwC,CAAA;AACjH,OAAO,EAAE,WAAW,EAA8C,MAAM,wCAAwC,CAAA;AAChH,OAAO,EAAE,eAAe,EAAiH,MAAM,4CAA4C,CAAA;AAC3L,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAA8C,MAAM,uCAAuC,CAAA;AAChI,OAAO,EAAE,OAAO,EAAE,YAAY,EAA8D,MAAM,oCAAoC,CAAA;AACtI,OAAO,EAAE,QAAQ,EAAyC,MAAM,qCAAqC,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAyC,MAAM,qCAAqC,CAAA;AACrG,OAAO,EAAE,SAAS,EAA2C,MAAM,wCAAwC,CAAA;AAC3G,OAAO,EAAE,MAAM,EAA2D,MAAM,qCAAqC,CAAA;AACrH,OAAO,EAAE,MAAM,EAAqC,MAAM,qCAAqC,CAAA;AAC/F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAqC,MAAM,mCAAmC,CAAA;AAC7G,OAAO,EAAE,KAAK,EAA+E,MAAM,kCAAkC,CAAA;AACrI,OAAO,EAAE,IAAI,EAAiC,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,MAAM,EAAoB,MAAM,mCAAmC,CAAA;AAE5E,gFAAgF;AAChF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe;IAC5F,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"renderers-navigation.js","sourceRoot":"","sources":["../../src/common/renderers-navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export declare const COMMON_OVERLAYS_COMPONENTS: Readonly<{
|
|
|
21
21
|
readonly Drawer: ({ title, description, children, footer, trigger, closeLabel, placement, showHandle, isDismissable, isKeyboardDismissDisabled, ...openState }: import("./renderers-overlays.js").DrawerProps) => import("react").JSX.Element;
|
|
22
22
|
readonly DropdownMenu: ({ trigger, entries, onAction, placement, ...openState }: import("./renderers-overlays.js").DropdownMenuProps) => import("react").JSX.Element;
|
|
23
23
|
readonly Kbd: ({ keys }: import("./renderers-overlays.js").KbdProps) => import("react").JSX.Element;
|
|
24
|
-
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
24
|
+
readonly Meter: ({ label, value, minValue, maxValue, valueLabel, tone, isLabelHidden, segments, isSkeleton, }: import("./renderers-overlays.js").MeterProps) => import("react").JSX.Element;
|
|
25
25
|
readonly Popover: ({ trigger, children, placement, showArrow, title, label, ...openState }: import("./renderers-overlays.js").PopoverProps) => import("react").JSX.Element;
|
|
26
26
|
readonly ProgressCircle: ({ label, value, isIndeterminate, size }: import("./renderers-overlays.js").ProgressCircleProps) => import("react").JSX.Element;
|
|
27
27
|
readonly Skeleton: ({ shape, lines, ratio, size }: import("./renderers-overlays.js").SkeletonProps) => import("react").JSX.Element;
|
|
@@ -34,7 +34,7 @@ export { OtpInput, type OtpInputProps } from "../core/OtpInput.js";
|
|
|
34
34
|
export { StaticStateRow, type RowVerdict, type StaticStateRowData, type StaticStateRowProps } from "../core/composite/StaticStateRow/index.js";
|
|
35
35
|
export { ListRow, type ListRowProps } from "../core/composite/ListRow/index.js";
|
|
36
36
|
export { EmptyNotice, type EmptyNoticeProps } from "../core/composite/EmptyNotice/index.js";
|
|
37
|
-
export { ChatBubble, type ChatBubbleProps, type ChatBubbleSide } from "../core/composite/ChatBubble/index.js";
|
|
37
|
+
export { ChatBubble, ChatBubbleSkeletons, type ChatBubbleProps, type ChatBubbleSide, type ChatBubbleSkeletonsProps } from "../core/composite/ChatBubble/index.js";
|
|
38
38
|
export { FillViewport, type FillViewportBottomInset, type FillViewportMinHeight, type FillViewportProps } from "../core/composite/FillViewport/index.js";
|
|
39
39
|
export { HorizontalScrollRegion, type HorizontalScrollRegionProps } from "../core/composite/HorizontalScrollRegion/index.js";
|
|
40
40
|
export { VerticalScrollRegion, type VerticalScrollRegionProps } from "../core/composite/VerticalScrollRegion/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AACjG,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACzF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAClI,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACtG,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACnH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAChG,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACrH,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAC7H,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACxH,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAChH,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACnG,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC5G,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AACpG,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjJ,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACxI,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AACjG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AACvI,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC9F,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAC/G,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,mDAAmD,CAAA;AACxH,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,KAAK,4BAA4B,EAAE,KAAK,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACzI,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC9I,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
|
package/dist/common/renderers.js
CHANGED
|
@@ -36,7 +36,7 @@ export { OtpInput } from "../core/OtpInput.js";
|
|
|
36
36
|
export { StaticStateRow } from "../core/composite/StaticStateRow/index.js";
|
|
37
37
|
export { ListRow } from "../core/composite/ListRow/index.js";
|
|
38
38
|
export { EmptyNotice } from "../core/composite/EmptyNotice/index.js";
|
|
39
|
-
export { ChatBubble } from "../core/composite/ChatBubble/index.js";
|
|
39
|
+
export { ChatBubble, ChatBubbleSkeletons } from "../core/composite/ChatBubble/index.js";
|
|
40
40
|
export { FillViewport } from "../core/composite/FillViewport/index.js";
|
|
41
41
|
export { HorizontalScrollRegion } from "../core/composite/HorizontalScrollRegion/index.js";
|
|
42
42
|
export { VerticalScrollRegion } from "../core/composite/VerticalScrollRegion/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,uCAAuC;AACvC,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,aAAa,EAA2B,MAAM,0CAA0C,CAAA;AACjG,OAAO,EAAE,KAAK,EAAmC,MAAM,kCAAkC,CAAA;AACzF,OAAO,EAAE,MAAM,EAA0E,MAAM,mCAAmC,CAAA;AAClI,OAAO,EAAE,OAAO,EAA4C,MAAM,oCAAoC,CAAA;AACtG,OAAO,EAAE,WAAW,EAAiD,MAAM,wCAAwC,CAAA;AACnH,OAAO,EAAE,MAAM,EAAwC,MAAM,mCAAmC,CAAA;AAChG,OAAO,EAAE,IAAI,EAAkB,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAsB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,OAAO,EAA2D,MAAM,oCAAoC,CAAA;AACrH,OAAO,EAAE,IAAI,EAAyE,MAAM,iCAAiC,CAAA;AAC7H,OAAO,EAAE,QAAQ,EAA4D,MAAM,qCAAqC,CAAA;AACxH,OAAO,EAAE,UAAU,EAAgD,MAAM,uCAAuC,CAAA;AAChH,OAAO,EAAE,KAAK,EAA6C,MAAM,kCAAkC,CAAA;AACnG,OAAO,EAAE,KAAK,EAAsD,MAAM,kCAAkC,CAAA;AAC5G,OAAO,EAAE,cAAc,EAA4B,MAAM,2CAA2C,CAAA;AACpG,OAAO,EAAE,QAAQ,EAAsB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,IAAI,EAA6F,MAAM,iCAAiC,CAAA;AACjJ,OAAO,EAAE,UAAU,EAAwE,MAAM,uCAAuC,CAAA;AACxI,OAAO,EAAE,aAAa,EAA2B,MAAM,0CAA0C,CAAA;AACjG,OAAO,EAAE,UAAU,EAAwB,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,eAAe,EAA6D,MAAM,4CAA4C,CAAA;AACvI,OAAO,EAAE,YAAY,EAA0B,MAAM,yCAAyC,CAAA;AAC9F,OAAO,EAAE,WAAW,EAA+C,MAAM,wCAAwC,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAA8B,MAAM,6CAA6C,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAA+B,MAAM,gDAAgD,CAAA;AAC/G,OAAO,EAAE,oBAAoB,EAAkC,MAAM,mDAAmD,CAAA;AACxH,OAAO,EAAE,OAAO,EAA0D,MAAM,sCAAsC,CAAA;AACtH,OAAO,EAAE,cAAc,EAA+D,MAAM,6CAA6C,CAAA;AACzI,OAAO,EAAE,aAAa,EAA2B,MAAM,4CAA4C,CAAA;AACnG,OAAO,EAAE,SAAS,EAAuB,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,aAAa,EAA2B,MAAM,0BAA0B,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAsB,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAsE,MAAM,2CAA2C,CAAA;AAC9I,OAAO,EAAE,OAAO,EAAqB,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
|
package/dist/common/styles.css
CHANGED
|
@@ -324,6 +324,15 @@
|
|
|
324
324
|
overflow-wrap: anywhere;
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
+
/* Loading header (knowledge STATE-8): the same ranks and sizes, the copy drawn as Skeleton text, the action as a footprint. */
|
|
328
|
+
.starci-core-section-skeleton-title > .starci-core-skeleton-group { inline-size: min(60%, 20rem); }
|
|
329
|
+
.starci-core-section-skeleton-title .starci-core-skeleton { block-size: 1em; }
|
|
330
|
+
.starci-core-section-skeleton-description > .starci-core-skeleton-group { inline-size: min(90%, 28rem); }
|
|
331
|
+
.starci-core-section-skeleton-meta > .starci-core-skeleton-group { inline-size: 6rem; }
|
|
332
|
+
.starci-core-section-skeleton-meta .starci-core-skeleton { block-size: 0.75rem; }
|
|
333
|
+
.starci-core-section-skeleton-action { display: block; inline-size: 6rem; block-size: 2.5rem; }
|
|
334
|
+
.starci-core-section-skeleton-action > .starci-core-skeleton { block-size: 100%; aspect-ratio: auto; border-radius: 0.5rem; }
|
|
335
|
+
|
|
327
336
|
/*
|
|
328
337
|
* Keyboard-reachable scroll owners (VerticalScrollRegion / HorizontalScrollRegion when focusable,
|
|
329
338
|
* the Rail body, fenced code and Markdown table frames) draw the same inset focus ring the chat
|
|
@@ -1319,6 +1328,12 @@
|
|
|
1319
1328
|
gap: var(--grammar-inline-gap, 0.5rem);
|
|
1320
1329
|
}
|
|
1321
1330
|
|
|
1331
|
+
/* Skeleton row (knowledge STATE-8): the copy lines take a share of the row, the action keeps a button footprint. */
|
|
1332
|
+
.starci-core-list-row[data-grammar-skeleton="true"] .starci-core-list-row-name { flex: 0 1 55%; }
|
|
1333
|
+
.starci-core-list-row[data-grammar-skeleton="true"] .starci-core-list-row-description { inline-size: 85%; }
|
|
1334
|
+
.starci-core-list-row-skeleton-action { display: block; inline-size: 4.5rem; block-size: 2rem; }
|
|
1335
|
+
.starci-core-list-row-skeleton-action > .starci-core-skeleton { block-size: 100%; aspect-ratio: auto; border-radius: 0.5rem; }
|
|
1336
|
+
|
|
1322
1337
|
.starci-core-list-row-detail {
|
|
1323
1338
|
display: flex;
|
|
1324
1339
|
min-width: 0;
|
|
@@ -3463,6 +3478,11 @@
|
|
|
3463
3478
|
.starci-core-chat-bubble-actions { transition: none; }
|
|
3464
3479
|
}
|
|
3465
3480
|
|
|
3481
|
+
/* Loading bubble (knowledge STATE-8): the face on its side with two Skeleton lines; a thread alternates sides. */
|
|
3482
|
+
.starci-core-chat-bubble-skeleton-body { inline-size: min(18rem, 70vw); white-space: normal; }
|
|
3483
|
+
.starci-core-chat-bubble-skeleton-body .starci-core-skeleton { block-size: 0.875rem; }
|
|
3484
|
+
.starci-core-chat-bubble-thread { display: flex; min-width: 0; flex-direction: column; gap: 1rem; }
|
|
3485
|
+
|
|
3466
3486
|
@media (forced-colors: active) {
|
|
3467
3487
|
.starci-core-chat-bubble-body { border: 1px solid CanvasText; }
|
|
3468
3488
|
}
|
|
@@ -30,8 +30,13 @@ export type DataTableProps<Row extends DataTableRow> = {
|
|
|
30
30
|
/** App-owned accessible names of the selection checkboxes in multiple mode. */
|
|
31
31
|
readonly selectAllLabel?: string;
|
|
32
32
|
readonly selectRowLabel?: (row: Row) => string;
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Marks the table busy and replaces the rows (knowledge STATE-8). With no `loadingContent` the real column headers stay
|
|
35
|
+
* and the body draws `loadingRows` skeleton rows; `loadingContent` replaces the body with that content instead.
|
|
36
|
+
*/
|
|
34
37
|
readonly isLoading?: boolean;
|
|
38
|
+
/** Skeleton rows drawn while loading without `loadingContent` (default 3, 1 to 12). */
|
|
39
|
+
readonly loadingRows?: number;
|
|
35
40
|
readonly loadingContent?: ReactNode;
|
|
36
41
|
/** Shown when there are no rows and the table is not loading. */
|
|
37
42
|
readonly emptyContent: ReactNode;
|
|
@@ -48,5 +53,5 @@ export type DataTableProps<Row extends DataTableRow> = {
|
|
|
48
53
|
* horizontal scroll so a wide table never widens a 360px page.
|
|
49
54
|
* Contract: scroll LAYOUT-3, grid FOCUS-2 CONTROL-STATE-3, row FOCUS-1, empty STATE-3.
|
|
50
55
|
*/
|
|
51
|
-
export declare const DataTable: <Row extends DataTableRow>({ label, columns, rows, renderCell, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: DataTableProps<Row>) => import("react").JSX.Element;
|
|
56
|
+
export declare const DataTable: <Row extends DataTableRow>({ label, columns, rows, renderCell, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, loadingRows, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: DataTableProps<Row>) => import("react").JSX.Element;
|
|
52
57
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DataTable/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DataTable/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIpE,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,YAAY,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,YAAY,IAAI;IACnD,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAA;IAC9D,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;IACpD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;IAC3D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,CAAA;IACzE,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IAC9C;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAA;IACnC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAA;IAChC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AA8BD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,YAAY,EAAE,wQAqBjD,cAAc,CAAC,GAAG,CAAC,gCAsGrB,CAAA"}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Checkbox as HeroCheckbox, Table as HeroTable } from "@heroui/react";
|
|
4
4
|
import { useState } from "react";
|
|
5
|
+
import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
5
6
|
import { navigationClassName } from "../../navigationClassNames.js";
|
|
7
|
+
/** The row primitive filters aria-hidden out of its props, so the skeleton rows take it by ref (knowledge STATE-8). */
|
|
8
|
+
const hideFromAssistiveTechnology = (node) => node?.setAttribute("aria-hidden", "true");
|
|
6
9
|
const SELECTION_COLUMN = "starci-data-table-selection";
|
|
7
10
|
const toSortDescriptor = (sort) => ({ column: sort.columnId, direction: sort.direction });
|
|
8
11
|
const toIds = (selection) => selection === "all" ? "all" : [...selection].map(String);
|
|
@@ -20,17 +23,19 @@ const SelectionCheckbox = ({ label }) => (_jsx(HeroCheckbox, { className: "starc
|
|
|
20
23
|
* horizontal scroll so a wide table never widens a 360px page.
|
|
21
24
|
* Contract: scroll LAYOUT-3, grid FOCUS-2 CONTROL-STATE-3, row FOCUS-1, empty STATE-3.
|
|
22
25
|
*/
|
|
23
|
-
export const DataTable = ({ label, columns, rows, renderCell, sort, onSortChange, selectionMode = "none", selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading = false, loadingContent, emptyContent, stickyHeader = false, maxBlockSize, onRowAction, className, }) => {
|
|
26
|
+
export const DataTable = ({ label, columns, rows, renderCell, sort, onSortChange, selectionMode = "none", selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading = false, loadingContent, loadingRows = 3, emptyContent, stickyHeader = false, maxBlockSize, onRowAction, className, }) => {
|
|
24
27
|
const rowHeaderId = columns.find((column) => column.isRowHeader)?.id ?? columns[0]?.id;
|
|
25
28
|
const multiple = selectionMode === "multiple";
|
|
26
29
|
// Selection is always held here so every row can expose its own `data-grammar-selected`.
|
|
27
30
|
const [uncontrolledSelection, setUncontrolledSelection] = useState(defaultSelectedIds ?? []);
|
|
28
31
|
const selection = selectedIds ?? uncontrolledSelection;
|
|
29
32
|
const isRowSelected = (id) => selection === "all" || selection.includes(id);
|
|
33
|
+
const isSkeleton = isLoading && loadingContent === undefined;
|
|
34
|
+
const skeletonRows = isSkeleton ? Array.from({ length: Math.min(12, Math.max(1, Math.floor(Number.isFinite(loadingRows) ? loadingRows : 3))) }, (_, index) => ({ id: `starci-skeleton-${index}` })) : [];
|
|
30
35
|
const visibleRows = isLoading ? [] : rows;
|
|
31
36
|
const state = isLoading ? "loading" : rows.length === 0 ? "empty" : "ready";
|
|
32
37
|
const scrollStyle = maxBlockSize === undefined ? undefined : { "--starci-core-data-table-max-block-size": maxBlockSize };
|
|
33
|
-
return (_jsx(HeroTable, { "aria-busy": isLoading || undefined, className: navigationClassName("starci-core-data-table", className), "data-component": "DataTable", "data-tier": "branch", "data-grammar-table-state": state, "data-grammar-table-sticky": stickyHeader ? "true" : "false", "data-grammar-table-bounded": maxBlockSize === undefined ? "false" : "true", children: _jsx(HeroTable.ScrollContainer, { className: "starci-core-data-table-scroll", "data-contract": "LAYOUT-3", "data-grammar-table-scroll": "true", style: scrollStyle, children: _jsxs(HeroTable.Content, { "aria-label": label, className: "starci-core-data-table-content", "data-contract": "FOCUS-2 CONTROL-STATE-3", selectionMode: selectionMode, ...(sort === undefined ? {} : { sortDescriptor: toSortDescriptor(sort) }), ...(onSortChange === undefined ? {} : {
|
|
38
|
+
return (_jsx(HeroTable, { "aria-busy": isLoading || undefined, className: navigationClassName("starci-core-data-table", className), "data-component": "DataTable", "data-tier": "branch", "data-grammar-table-state": state, "data-grammar-table-sticky": stickyHeader ? "true" : "false", "data-grammar-table-bounded": maxBlockSize === undefined ? "false" : "true", children: _jsx(HeroTable.ScrollContainer, { className: "starci-core-data-table-scroll", "data-contract": "LAYOUT-3", "data-grammar-table-scroll": "true", style: scrollStyle, children: _jsxs(HeroTable.Content, { "aria-label": label, className: "starci-core-data-table-content", "data-contract": "FOCUS-2 CONTROL-STATE-3", selectionMode: isSkeleton ? "none" : selectionMode, ...(sort === undefined ? {} : { sortDescriptor: toSortDescriptor(sort) }), ...(onSortChange === undefined ? {} : {
|
|
34
39
|
onSortChange: (descriptor) => onSortChange({ columnId: String(descriptor.column), direction: descriptor.direction }),
|
|
35
40
|
}), selectedKeys: toSelection(selection), onSelectionChange: (next) => {
|
|
36
41
|
const ids = toIds(next);
|
|
@@ -39,8 +44,8 @@ export const DataTable = ({ label, columns, rows, renderCell, sort, onSortChange
|
|
|
39
44
|
onSelectionChange?.(ids);
|
|
40
45
|
}, ...(onRowAction === undefined ? {} : { onRowAction: (key) => onRowAction(String(key)) }), children: [_jsxs(HeroTable.Header, { className: "starci-core-data-table-header", children: [multiple ? (_jsx(HeroTable.Column, { className: "starci-core-data-table-column", "data-grammar-table-selection": "true", id: SELECTION_COLUMN, children: _jsx(SelectionCheckbox, { label: selectAllLabel }) })) : null, columns.map((column) => (_jsx(HeroTable.Column, { id: column.id, allowsSorting: column.allowsSorting === true, className: "starci-core-data-table-column", "data-grammar-table-align": column.align ?? "start", isRowHeader: column.id === rowHeaderId, textValue: column.label, children: ({ sortDirection }) => column.allowsSorting === true
|
|
41
46
|
? _jsx(HeroTable.SortableColumnHeader, { className: "starci-core-data-table-sort", ...(sortDirection === undefined ? {} : { sortDirection }), children: column.label })
|
|
42
|
-
: column.label }, column.id)))] }),
|
|
47
|
+
: column.label }, column.id)))] }), _jsxs(HeroTable.Body, { className: "starci-core-data-table-body", renderEmptyState: () => isLoading
|
|
43
48
|
? _jsx("div", { className: "starci-core-data-table-placeholder", "data-grammar-table-loading": "true", role: "status", children: loadingContent })
|
|
44
|
-
: _jsx("div", { className: "starci-core-data-table-placeholder", "data-contract": "STATE-3", "data-grammar-table-empty": "true", children: emptyContent }), children: visibleRows.map((row) => (_jsxs(HeroTable.Row, { id: row.id, className: "starci-core-data-table-row", "data-contract": "FOCUS-1", "data-grammar-table-row": "true", "data-grammar-selected": selectionMode !== "none" && isRowSelected(row.id) ? "true" : "false", children: [multiple ? (_jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-selection": "true", children: _jsx(SelectionCheckbox, { label: selectRowLabel?.(row) }) })) : null, columns.map((column) => (_jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-align": column.align ?? "start", children: renderCell(row, column.id) }, column.id)))] }, row.id))) })] }) }) }));
|
|
49
|
+
: _jsx("div", { className: "starci-core-data-table-placeholder", "data-contract": "STATE-3", "data-grammar-table-empty": "true", children: emptyContent }), children: [skeletonRows.map((row) => (_jsxs(HeroTable.Row, { id: row.id, ref: hideFromAssistiveTechnology, className: "starci-core-data-table-row", "data-grammar-table-row": "true", "data-grammar-skeleton": "true", "data-grammar-selected": "false", children: [multiple ? _jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-selection": "true", children: null }) : null, columns.map((column) => (_jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-align": column.align ?? "start", children: _jsx(Skeleton, { shape: "text" }) }, column.id)))] }, row.id))), visibleRows.map((row) => (_jsxs(HeroTable.Row, { id: row.id, className: "starci-core-data-table-row", "data-contract": "FOCUS-1", "data-grammar-table-row": "true", "data-grammar-selected": selectionMode !== "none" && isRowSelected(row.id) ? "true" : "false", children: [multiple ? (_jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-selection": "true", children: _jsx(SelectionCheckbox, { label: selectRowLabel?.(row) }) })) : null, columns.map((column) => (_jsx(HeroTable.Cell, { className: "starci-core-data-table-cell", "data-grammar-table-align": column.align ?? "start", children: renderCell(row, column.id) }, column.id)))] }, row.id)))] })] }) }) }));
|
|
45
50
|
};
|
|
46
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DataTable/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,KAAK,IAAI,SAAS,EAAuC,MAAM,eAAe,CAAA;AACjH,OAAO,EAAE,QAAQ,EAAsC,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DataTable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FlowGraphEdge, FlowGraphHeight, FlowGraphLayout, FlowGraphNode } from "./types.js";
|
|
2
|
+
export { radialPositions } from "./layout.js";
|
|
3
|
+
export type { FlowGraphEdge, FlowGraphHeight, FlowGraphLayout, FlowGraphNode, FlowGraphNodeSize, FlowGraphTone } from "./types.js";
|
|
4
|
+
export type FlowGraphProps = {
|
|
5
|
+
/** Names the graph for assistive technology, e.g. "Second brain". */
|
|
6
|
+
readonly label: string;
|
|
7
|
+
readonly nodes: ReadonlyArray<FlowGraphNode>;
|
|
8
|
+
readonly edges: ReadonlyArray<FlowGraphEdge>;
|
|
9
|
+
/** The selected node. Pass it (with `onSelect`) to control selection; leave it out and the graph keeps its own. */
|
|
10
|
+
readonly selectedId?: string | null;
|
|
11
|
+
/** Fires with the node id on click, Enter or Space, and with `null` when the empty canvas is clicked or Escape is pressed. */
|
|
12
|
+
readonly onSelect?: (id: string | null) => void;
|
|
13
|
+
/** Fixed canvas height: 16rem, 24rem or 32rem. */
|
|
14
|
+
readonly height?: FlowGraphHeight;
|
|
15
|
+
/** Pan and zoom. `false` draws a static picture. */
|
|
16
|
+
readonly isInteractive?: boolean;
|
|
17
|
+
/** Zoom buttons. Defaults to on while the graph is interactive. */
|
|
18
|
+
readonly showControls?: boolean;
|
|
19
|
+
/** `radial` places the nodes itself; `manual` uses each node's `position`. */
|
|
20
|
+
readonly layout?: FlowGraphLayout;
|
|
21
|
+
/** Shown instead of the canvas when there are no nodes. */
|
|
22
|
+
readonly emptyLabel?: string;
|
|
23
|
+
/** Unresolved graph (knowledge STATE-8): the frame at its height with a Skeleton block, no React Flow mounted, `aria-busy`. */
|
|
24
|
+
readonly isLoading?: boolean;
|
|
25
|
+
readonly className?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A node-and-edge map drawn with React Flow (`@xyflow/react`, a peer dependency) in grammar tokens. The radial layout
|
|
29
|
+
* puts the root in the centre with its children on a ring and their children on an outer ring around them. Nodes are
|
|
30
|
+
* keyboard focusable (Tab) and selectable with Enter or Space; a visually hidden list repeats the nodes for screen readers.
|
|
31
|
+
* Contract: focus FOCUS-2, selection CONTROL-STATE-3, empty STATE-3.
|
|
32
|
+
*/
|
|
33
|
+
export declare const FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, isInteractive, showControls, layout, emptyLabel, isLoading, className, }: FlowGraphProps) => import("react").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAElI,MAAM,MAAM,cAAc,GAAG;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C,mHAAmH;IACnH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,8HAA8H;IAC9H,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,+HAA+H;IAC/H,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAgDD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,+HAavB,cAAc,gCAuGhB,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Background, Controls, Handle, Position, ReactFlow, useNodesInitialized, useReactFlow, } from "@xyflow/react";
|
|
4
|
+
import { memo, useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
6
|
+
import { flowGraphRoot, radialPositions } from "./layout.js";
|
|
7
|
+
export { radialPositions } from "./layout.js";
|
|
8
|
+
const FlowGraphNodeView = memo(({ data }) => {
|
|
9
|
+
const { graphNode, isSelected } = data;
|
|
10
|
+
const hasCount = graphNode.count !== undefined && graphNode.count !== "";
|
|
11
|
+
return (_jsxs("div", { className: "starci-core-flow-graph-node", "data-grammar-flow-node": graphNode.id, "data-grammar-selected": isSelected ? "true" : "false", "data-placeholder": graphNode.isPlaceholder === true ? "true" : undefined, "data-root": graphNode.isRoot === true ? "true" : undefined, "data-size": graphNode.size ?? "md", "data-tone": graphNode.isPlaceholder === true ? "muted" : graphNode.tone ?? "neutral", children: [_jsx(Handle, { className: "starci-core-flow-graph-handle", isConnectable: false, position: Position.Top, type: "target" }), _jsxs("span", { className: "starci-core-flow-graph-copy", children: [_jsx("span", { className: "starci-core-flow-graph-label", children: graphNode.label }), graphNode.description === undefined ? null : _jsx("span", { className: "starci-core-flow-graph-description", children: graphNode.description })] }), hasCount ? _jsx("span", { className: "starci-core-flow-graph-count", children: graphNode.count }) : null, _jsx(Handle, { className: "starci-core-flow-graph-handle", isConnectable: false, position: Position.Top, type: "source" })] }));
|
|
12
|
+
});
|
|
13
|
+
FlowGraphNodeView.displayName = "FlowGraphNodeView";
|
|
14
|
+
const NODE_TYPES = { flowGraph: FlowGraphNodeView };
|
|
15
|
+
const FIT_OPTIONS = { padding: 0.2, duration: 0 };
|
|
16
|
+
/** Re-fits the viewport once the nodes are measured, and again whenever the set of nodes or the layout changes. */
|
|
17
|
+
const Refit = ({ signature }) => {
|
|
18
|
+
const { fitView } = useReactFlow();
|
|
19
|
+
const isReady = useNodesInitialized();
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (isReady)
|
|
22
|
+
void fitView(FIT_OPTIONS);
|
|
23
|
+
}, [fitView, isReady, signature]);
|
|
24
|
+
return null;
|
|
25
|
+
};
|
|
26
|
+
const labelFor = (node) => node.count === undefined || node.count === "" ? node.label : `${node.label} (${node.count})`;
|
|
27
|
+
/**
|
|
28
|
+
* A node-and-edge map drawn with React Flow (`@xyflow/react`, a peer dependency) in grammar tokens. The radial layout
|
|
29
|
+
* puts the root in the centre with its children on a ring and their children on an outer ring around them. Nodes are
|
|
30
|
+
* keyboard focusable (Tab) and selectable with Enter or Space; a visually hidden list repeats the nodes for screen readers.
|
|
31
|
+
* Contract: focus FOCUS-2, selection CONTROL-STATE-3, empty STATE-3.
|
|
32
|
+
*/
|
|
33
|
+
export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, height = "md", isInteractive = true, showControls, layout = "radial", emptyLabel = "Nothing to show yet.", isLoading = false, className, }) => {
|
|
34
|
+
const [ownSelectedId, setOwnSelectedId] = useState(null);
|
|
35
|
+
const currentId = selectedId === undefined ? ownSelectedId : selectedId;
|
|
36
|
+
const select = (id) => {
|
|
37
|
+
if (selectedId === undefined)
|
|
38
|
+
setOwnSelectedId(id);
|
|
39
|
+
onSelect?.(id);
|
|
40
|
+
};
|
|
41
|
+
const positions = useMemo(() => layout === "radial" ? radialPositions(nodes, edges) : null, [layout, nodes, edges]);
|
|
42
|
+
const rootId = flowGraphRoot(nodes)?.id;
|
|
43
|
+
const flowNodes = useMemo(() => nodes.map((graphNode) => ({
|
|
44
|
+
id: graphNode.id,
|
|
45
|
+
type: "flowGraph",
|
|
46
|
+
position: positions?.get(graphNode.id) ?? graphNode.position ?? { x: 0, y: 0 },
|
|
47
|
+
data: { graphNode: layout === "radial" ? { ...graphNode, isRoot: graphNode.id === rootId } : graphNode, isSelected: graphNode.id === currentId },
|
|
48
|
+
selected: graphNode.id === currentId,
|
|
49
|
+
ariaLabel: labelFor(graphNode),
|
|
50
|
+
draggable: false,
|
|
51
|
+
connectable: false,
|
|
52
|
+
})), [nodes, positions, layout, rootId, currentId]);
|
|
53
|
+
const flowEdges = useMemo(() => edges.map((edge) => ({
|
|
54
|
+
id: edge.id,
|
|
55
|
+
source: edge.source,
|
|
56
|
+
target: edge.target,
|
|
57
|
+
type: layout === "radial" ? "straight" : "default",
|
|
58
|
+
className: edge.isPlaceholder === true ? "starci-core-flow-graph-edge starci-core-flow-graph-edge-placeholder" : "starci-core-flow-graph-edge",
|
|
59
|
+
focusable: false,
|
|
60
|
+
selectable: false,
|
|
61
|
+
animated: false,
|
|
62
|
+
})), [edges, layout]);
|
|
63
|
+
const signature = `${layout}:${nodes.map((node) => node.id).join("|")}`;
|
|
64
|
+
const onKeyDown = (event) => {
|
|
65
|
+
if (event.key === "Escape") {
|
|
66
|
+
if (currentId !== null)
|
|
67
|
+
select(null);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (event.key !== "Enter" && event.key !== " ")
|
|
71
|
+
return;
|
|
72
|
+
const target = event.target instanceof Element ? event.target.closest(".react-flow__node") : null;
|
|
73
|
+
const id = target?.getAttribute("data-id");
|
|
74
|
+
if (id === null || id === undefined)
|
|
75
|
+
return;
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
select(id);
|
|
78
|
+
};
|
|
79
|
+
const controls = showControls ?? isInteractive;
|
|
80
|
+
return (_jsx("figure", { "aria-label": label, className: ["starci-core-flow-graph", className].filter(Boolean).join(" "), "data-component": "FlowGraph", "data-contract": "FOCUS-2 CONTROL-STATE-3 STATE-3", "data-grammar-flow-height": height, "data-grammar-flow-interactive": isInteractive ? "true" : "false", "data-grammar-flow-layout": layout, "data-tier": "branch", ...(isLoading ? { "aria-busy": true, "data-loading": "true" } : {}), onKeyDown: onKeyDown, children: isLoading ? (_jsx("div", { className: "starci-core-flow-graph-canvas starci-core-flow-graph-loading", "data-grammar-flow-loading": "true", children: _jsx(Skeleton, { shape: "rect" }) })) : nodes.length === 0 ? (_jsx("p", { className: "starci-core-flow-graph-empty", "data-contract": "STATE-3", "data-grammar-flow-empty": "true", children: emptyLabel })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "starci-core-flow-graph-canvas", children: _jsxs(ReactFlow, { edges: flowEdges, edgesFocusable: false, elementsSelectable: true, fitView: true, fitViewOptions: FIT_OPTIONS, maxZoom: 2, minZoom: 0.2, nodeOrigin: [0.5, 0.5], nodeTypes: NODE_TYPES, nodes: flowNodes, nodesConnectable: false, nodesDraggable: false, nodesFocusable: true, onNodeClick: (_event, node) => select(node.id), onPaneClick: () => { if (currentId !== null)
|
|
81
|
+
select(null); }, panOnDrag: isInteractive, panOnScroll: false, preventScrolling: isInteractive, proOptions: { hideAttribution: true }, zoomOnDoubleClick: false, zoomOnPinch: isInteractive, zoomOnScroll: isInteractive, children: [_jsx(Background, { className: "starci-core-flow-graph-background", gap: 1000, size: 0 }), controls ? _jsx(Controls, { "aria-label": `${label}: zoom`, className: "starci-core-flow-graph-controls", showInteractive: false }) : null, _jsx(Refit, { signature: signature })] }) }), _jsx("ul", { className: "starci-core-visually-hidden", "data-grammar-flow-fallback": "true", children: nodes.map((node) => _jsx("li", { children: labelFor(node) }, node.id)) })] })) }));
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FlowGraphEdge, FlowGraphNode } from "./types.js";
|
|
2
|
+
export type FlowGraphPoint = {
|
|
3
|
+
readonly x: number;
|
|
4
|
+
readonly y: number;
|
|
5
|
+
};
|
|
6
|
+
/** Distance of the first ring from the root, and the step between the rings after it. */
|
|
7
|
+
export declare const FLOW_GRAPH_FIRST_RING = 200;
|
|
8
|
+
export declare const FLOW_GRAPH_RING_STEP = 170;
|
|
9
|
+
/** The node the radial layout puts in the centre: the one flagged `isRoot`, else the first. */
|
|
10
|
+
export declare const flowGraphRoot: (nodes: ReadonlyArray<FlowGraphNode>) => FlowGraphNode | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Radial positions, node centres in graph units, the root at (0, 0). Direct children of the root sit evenly on
|
|
13
|
+
* the first ring; each deeper level sits on the next ring, spread over the wedge of its parent so a branch
|
|
14
|
+
* stays together. Nodes the root cannot reach through any edge (either direction) share an outer ring.
|
|
15
|
+
*/
|
|
16
|
+
export declare const radialPositions: (nodes: ReadonlyArray<FlowGraphNode>, edges: ReadonlyArray<FlowGraphEdge>) => ReadonlyMap<string, FlowGraphPoint>;
|
|
17
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvE,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,+FAA+F;AAC/F,eAAO,MAAM,aAAa,GAAI,OAAO,aAAa,CAAC,aAAa,CAAC,KAAG,aAAa,GAAG,SAC1B,CAAA;AAE1D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC,aAAa,CAAC,KAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAqC5I,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Distance of the first ring from the root, and the step between the rings after it. */
|
|
2
|
+
export const FLOW_GRAPH_FIRST_RING = 200;
|
|
3
|
+
export const FLOW_GRAPH_RING_STEP = 170;
|
|
4
|
+
/** The node the radial layout puts in the centre: the one flagged `isRoot`, else the first. */
|
|
5
|
+
export const flowGraphRoot = (nodes) => nodes.find((node) => node.isRoot === true) ?? nodes[0];
|
|
6
|
+
/**
|
|
7
|
+
* Radial positions, node centres in graph units, the root at (0, 0). Direct children of the root sit evenly on
|
|
8
|
+
* the first ring; each deeper level sits on the next ring, spread over the wedge of its parent so a branch
|
|
9
|
+
* stays together. Nodes the root cannot reach through any edge (either direction) share an outer ring.
|
|
10
|
+
*/
|
|
11
|
+
export const radialPositions = (nodes, edges) => {
|
|
12
|
+
const positions = new Map();
|
|
13
|
+
const root = flowGraphRoot(nodes);
|
|
14
|
+
if (root === undefined)
|
|
15
|
+
return positions;
|
|
16
|
+
const known = new Set(nodes.map((node) => node.id));
|
|
17
|
+
const neighbours = new Map();
|
|
18
|
+
for (const edge of edges) {
|
|
19
|
+
if (!known.has(edge.source) || !known.has(edge.target))
|
|
20
|
+
continue;
|
|
21
|
+
neighbours.set(edge.source, [...(neighbours.get(edge.source) ?? []), edge.target]);
|
|
22
|
+
neighbours.set(edge.target, [...(neighbours.get(edge.target) ?? []), edge.source]);
|
|
23
|
+
}
|
|
24
|
+
positions.set(root.id, { x: 0, y: 0 });
|
|
25
|
+
const radius = (depth) => FLOW_GRAPH_FIRST_RING + (depth - 1) * FLOW_GRAPH_RING_STEP;
|
|
26
|
+
const place = (id, depth, angle) => {
|
|
27
|
+
positions.set(id, { x: Math.cos(angle) * radius(depth), y: Math.sin(angle) * radius(depth) });
|
|
28
|
+
};
|
|
29
|
+
// A level at a time. The root shares the full circle out evenly; every other parent spreads its unplaced
|
|
30
|
+
// neighbours over its own wedge, centred on the direction it was placed in, so a branch stays together.
|
|
31
|
+
let level = [{ id: root.id, angle: -Math.PI / 2, wedge: Math.PI * 2 }];
|
|
32
|
+
let deepest = 0;
|
|
33
|
+
for (let depth = 1; level.length > 0; depth += 1) {
|
|
34
|
+
const next = [];
|
|
35
|
+
for (const parent of level) {
|
|
36
|
+
const children = (neighbours.get(parent.id) ?? []).filter((id, index, all) => !positions.has(id) && all.indexOf(id) === index);
|
|
37
|
+
const slot = parent.wedge / Math.max(children.length, 1);
|
|
38
|
+
children.forEach((id, index) => {
|
|
39
|
+
const angle = depth === 1 ? parent.angle + index * slot : parent.angle + (index - (children.length - 1) / 2) * slot;
|
|
40
|
+
place(id, depth, angle);
|
|
41
|
+
deepest = depth;
|
|
42
|
+
next.push({ id, angle, wedge: Math.min(slot, Math.PI * 0.9) });
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
level = next;
|
|
46
|
+
}
|
|
47
|
+
const orphans = nodes.filter((node) => !positions.has(node.id));
|
|
48
|
+
orphans.forEach((node, index) => place(node.id, deepest + 1, -Math.PI / 2 + (index * Math.PI * 2) / orphans.length));
|
|
49
|
+
return positions;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type FlowGraphTone = "neutral" | "accent" | "success" | "warning" | "danger" | "muted";
|
|
2
|
+
export type FlowGraphNodeSize = "sm" | "md" | "lg";
|
|
3
|
+
export type FlowGraphHeight = "sm" | "md" | "lg";
|
|
4
|
+
export type FlowGraphLayout = "radial" | "manual";
|
|
5
|
+
export type FlowGraphNode = {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly label: string;
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
readonly tone?: FlowGraphTone;
|
|
10
|
+
readonly size?: FlowGraphNodeSize;
|
|
11
|
+
readonly count?: number | string;
|
|
12
|
+
/** The centre of a radial layout. Defaults to the first node. */
|
|
13
|
+
readonly isRoot?: boolean;
|
|
14
|
+
/** A slot not filled yet: dashed outline, muted. */
|
|
15
|
+
readonly isPlaceholder?: boolean;
|
|
16
|
+
/** Where the node sits in `layout="manual"`, as its centre in graph units. */
|
|
17
|
+
readonly position?: {
|
|
18
|
+
readonly x: number;
|
|
19
|
+
readonly y: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type FlowGraphEdge = {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly source: string;
|
|
25
|
+
readonly target: string;
|
|
26
|
+
readonly isPlaceholder?: boolean;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC7F,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACjE,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA"}
|