@starci/grammar 0.16.1 → 0.16.3

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.
Files changed (47) hide show
  1. package/README.md +3 -3
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-navigation.css +33 -5
  4. package/dist/common/registry.d.ts +3 -1
  5. package/dist/common/registry.d.ts.map +1 -1
  6. package/dist/common/registry.js +2 -2
  7. package/dist/common/registry.js.map +1 -1
  8. package/dist/common/renderers.d.ts +2 -1
  9. package/dist/common/renderers.d.ts.map +1 -1
  10. package/dist/common/renderers.js +2 -1
  11. package/dist/common/renderers.js.map +1 -1
  12. package/dist/common/styles.css +119 -84
  13. package/dist/core/branch/SurfaceListCard/index.d.ts +1 -0
  14. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  15. package/dist/core/branch/SurfaceListCard/index.js +4 -2
  16. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  17. package/dist/core/composite/ChatBubble/index.d.ts +1 -1
  18. package/dist/core/composite/ChatBubble/index.js +1 -1
  19. package/dist/core/composite/FillViewport/index.d.ts +1 -1
  20. package/dist/core/composite/FillViewport/index.js +1 -1
  21. package/dist/core/composite/Freestyle/index.d.ts +19 -0
  22. package/dist/core/composite/Freestyle/index.d.ts.map +1 -0
  23. package/dist/core/composite/Freestyle/index.js +9 -0
  24. package/dist/core/composite/Freestyle/index.js.map +1 -0
  25. package/dist/core/composite/Stepper/index.d.ts +3 -2
  26. package/dist/core/composite/Stepper/index.d.ts.map +1 -1
  27. package/dist/core/composite/Stepper/index.js +2 -1
  28. package/dist/core/composite/Stepper/index.js.map +1 -1
  29. package/dist/core/composition/Page/index.d.ts +1 -1
  30. package/dist/core/composition/Page/index.js +1 -1
  31. package/dist/core/composition/PaneGrid/index.d.ts +78 -0
  32. package/dist/core/composition/PaneGrid/index.d.ts.map +1 -0
  33. package/dist/core/composition/PaneGrid/index.js +93 -0
  34. package/dist/core/composition/PaneGrid/index.js.map +1 -0
  35. package/dist/core/composition/PaneGrid/layout.d.ts +48 -0
  36. package/dist/core/composition/PaneGrid/layout.d.ts.map +1 -0
  37. package/dist/core/composition/PaneGrid/layout.js +83 -0
  38. package/dist/core/composition/PaneGrid/layout.js.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/core/composition/ChatWorkspace/classNames.d.ts +0 -37
  41. package/dist/core/composition/ChatWorkspace/classNames.d.ts.map +0 -1
  42. package/dist/core/composition/ChatWorkspace/classNames.js +0 -38
  43. package/dist/core/composition/ChatWorkspace/classNames.js.map +0 -1
  44. package/dist/core/composition/ChatWorkspace/index.d.ts +0 -48
  45. package/dist/core/composition/ChatWorkspace/index.d.ts.map +0 -1
  46. package/dist/core/composition/ChatWorkspace/index.js +0 -42
  47. package/dist/core/composition/ChatWorkspace/index.js.map +0 -1
@@ -1,48 +0,0 @@
1
- import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- type ChatWorkspaceBaseProps = Omit<ComponentPropsWithoutRef<"section">, "aria-label" | "children"> & {
3
- /** Accessible name for the complete workspace landmark. */
4
- readonly label: string;
5
- /** Optional non-scrolling workspace heading or toolbar. */
6
- readonly header?: ReactNode;
7
- /** Caller-owned task content. Grammar supplies no message or business-state semantics. */
8
- readonly conversation: ReactNode;
9
- /** Accessible name for the independently scrollable task region. */
10
- readonly conversationLabel: string;
11
- /** Caller-owned input/action region pinned after the conversation scroll owner. */
12
- readonly composer: ReactNode;
13
- };
14
- type ChatWorkspaceWithRailProps = {
15
- /** Caller-owned supporting content; Grammar supplies only layout and overlay mechanics. */
16
- readonly rail: ReactNode;
17
- /** Accessible name shared by the persistent rail and compact drawer. */
18
- readonly railLabel: string;
19
- /** Visible and accessible label for the compact drawer trigger. */
20
- readonly railOpenLabel: string;
21
- /** Accessible label for the compact drawer close control. */
22
- readonly railCloseLabel: string;
23
- /** Controlled compact drawer state. Ignored while the persistent rail is active. */
24
- readonly isRailOpen: boolean;
25
- /** Receives trigger, backdrop, close-control, Escape, and breakpoint closure changes. */
26
- readonly onRailOpenChange: (isOpen: boolean) => void;
27
- readonly railWidth?: "compact" | "standard" | "wide";
28
- };
29
- type ChatWorkspaceWithoutRailProps = {
30
- readonly rail?: undefined;
31
- readonly railLabel?: never;
32
- readonly railOpenLabel?: never;
33
- readonly railCloseLabel?: never;
34
- readonly isRailOpen?: never;
35
- readonly onRailOpenChange?: never;
36
- readonly railWidth?: never;
37
- };
38
- /**
39
- * Generic bounded chat workbench composition.
40
- *
41
- * The host supplies a height. ChatWorkspace owns the remaining height chain,
42
- * keeps the composer outside the conversation scroll owner, and transforms one
43
- * optional persistent supporting rail into a controlled compact drawer.
44
- */
45
- export type ChatWorkspaceProps = ChatWorkspaceBaseProps & (ChatWorkspaceWithRailProps | ChatWorkspaceWithoutRailProps);
46
- export declare const ChatWorkspace: (props: ChatWorkspaceProps) => import("react").JSX.Element;
47
- export {};
48
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;AAqCd,KAAK,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG;IACjG,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAA;IAChC,oEAAoE;IACpE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,KAAK,0BAA0B,GAAG;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;CACvD,CAAA;AAED,KAAK,6BAA6B,GAAG;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,CACtD,0BAA0B,GAAG,6BAA6B,CAC7D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAiKtD,CAAA"}
@@ -1,42 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn, Drawer } from "@heroui/react";
4
- import { useEffect, useSyncExternalStore, } from "react";
5
- import { Rail } from "../../branch/Rail/index.js";
6
- import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
7
- import { SurfaceNesting } from "../../surfaceContext.js";
8
- import { ButtonPlacementProvider } from "../../buttonIntent.js";
9
- import { chatWorkspaceClassName, chatWorkspaceComposerClassName, chatWorkspaceConversationClassName, chatWorkspaceDrawerBodyClassName, chatWorkspaceDrawerCloseClassName, chatWorkspaceDrawerContentClassName, chatWorkspaceDrawerDialogClassName, chatWorkspaceHeaderClassName, chatWorkspaceInlineRailClassName, chatWorkspaceOverlayRailClassName, chatWorkspacePrimaryClassName, chatWorkspaceRailTriggerBoundaryClassName, chatWorkspaceRailTriggerClassName, getChatWorkspaceLayoutClassName, } from "./classNames.js";
10
- const compactRailQuery = "(max-width: 47.999rem)";
11
- const subscribeToCompactRail = (onStoreChange) => {
12
- if (typeof window === "undefined")
13
- return () => undefined;
14
- const query = window.matchMedia(compactRailQuery);
15
- query.addEventListener("change", onStoreChange);
16
- return () => query.removeEventListener("change", onStoreChange);
17
- };
18
- const getCompactRailSnapshot = () => (typeof window === "undefined" ? false : window.matchMedia(compactRailQuery).matches);
19
- const getCompactRailServerSnapshot = () => false;
20
- export const ChatWorkspace = (props) => {
21
- const { className, composer, conversation, conversationLabel, header, label, rail, railCloseLabel, railLabel, railOpenLabel, railWidth: requestedRailWidth, isRailOpen: requestedRailOpen, onRailOpenChange: requestedRailOpenChange, ...sectionProps } = props;
22
- const isCompactRail = useSyncExternalStore(subscribeToCompactRail, getCompactRailSnapshot, getCompactRailServerSnapshot);
23
- const railConfig = rail === undefined ? undefined : {
24
- content: rail,
25
- label: railLabel ?? "",
26
- openLabel: railOpenLabel ?? "",
27
- closeLabel: railCloseLabel ?? "",
28
- isOpen: requestedRailOpen ?? false,
29
- onOpenChange: requestedRailOpenChange,
30
- width: requestedRailWidth ?? "standard",
31
- };
32
- const hasRail = railConfig !== undefined;
33
- const railWidth = railConfig?.width ?? "standard";
34
- const isRailOpen = railConfig?.isOpen ?? false;
35
- const onRailOpenChange = railConfig?.onOpenChange;
36
- useEffect(() => {
37
- if (hasRail && !isCompactRail && isRailOpen)
38
- onRailOpenChange?.(false);
39
- }, [hasRail, isCompactRail, isRailOpen, onRailOpenChange]);
40
- return (_jsxs("section", { ...sectionProps, "aria-label": label, className: cn(chatWorkspaceClassName, className), "data-grammar-chat-workspace": "true", "data-component": "ChatWorkspace", "data-tier": "composition", "data-grammar-chat-workspace-rail": hasRail ? "present" : "absent", children: [header === undefined ? null : (_jsx("header", { className: chatWorkspaceHeaderClassName, "data-grammar-chat-workspace-slot": "header", children: _jsx(ButtonPlacementProvider, { placement: "chrome", children: header }) })), hasRail && isCompactRail ? (_jsxs(Drawer, { isOpen: railConfig.isOpen, onOpenChange: railConfig.onOpenChange, children: [_jsx("div", { className: chatWorkspaceRailTriggerBoundaryClassName, "data-contract": "BOUNDARY-1 PADDING-4 PADDING-2", children: _jsx(Drawer.Trigger, { className: chatWorkspaceRailTriggerClassName, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: railConfig.openLabel }) }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: chatWorkspaceDrawerContentClassName, placement: "right", children: _jsx(Drawer.Dialog, { className: chatWorkspaceDrawerDialogClassName, "data-grammar-nesting": "surface", children: _jsxs(SurfaceNesting, { children: [_jsx(Drawer.Header, { children: _jsx(Drawer.Heading, { children: railConfig.label }) }), _jsx(Drawer.CloseTrigger, { "aria-label": railConfig.closeLabel, className: chatWorkspaceDrawerCloseClassName, "data-contract": "SURFACE-2 TONE-1" }), _jsx(Drawer.Body, { className: chatWorkspaceDrawerBodyClassName, "data-contract": "OVERFLOW-2 PADDING-0", children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "overlay", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) })] }) }) }) })] })) : null, _jsxs("div", { className: getChatWorkspaceLayoutClassName(railWidth, hasRail), "data-contract": "GAP-5", "data-grammar-chat-workspace-layout": "true", "data-grammar-chat-workspace-rail-width": hasRail ? railWidth : undefined, children: [_jsxs("div", { className: chatWorkspacePrimaryClassName, "data-grammar-chat-workspace-slot": "primary", children: [_jsx(VerticalScrollRegion, { "aria-label": conversationLabel, className: chatWorkspaceConversationClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5", "data-grammar-chat-workspace-scroll-owner": "conversation", "data-grammar-chat-workspace-slot": "conversation", isScrollable: true, role: "region", tabIndex: 0, children: conversation }), _jsx("div", { className: chatWorkspaceComposerClassName, "data-contract": "BOUNDARY-1", "data-grammar-chat-workspace-slot": "composer", children: composer })] }), hasRail && !isCompactRail ? (_jsx("div", { className: chatWorkspaceInlineRailClassName, children: _jsx(Rail, { height: "fill", inset: "none", isLabelHidden: true, label: railConfig.label, mode: "flow", width: railWidth, children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "inline", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) }) })) : null] })] }));
41
- };
42
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"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"}