@starci/grammar 0.8.5 → 0.9.1
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/dist/.build-stamp.json +4 -4
- package/dist/common/components-navigation.css +3 -0
- package/dist/common/registry.d.ts +7 -4
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/registry.js +3 -3
- package/dist/common/registry.js.map +1 -1
- package/dist/common/renderers-forms.d.ts +2 -2
- package/dist/common/renderers-forms.d.ts.map +1 -1
- package/dist/common/renderers-forms.js.map +1 -1
- package/dist/common/renderers-navigation.d.ts +1 -1
- package/dist/common/renderers.d.ts +3 -0
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +3 -0
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/styles.css +282 -0
- package/dist/core/branch/AlertDialog/index.d.ts.map +1 -1
- package/dist/core/branch/AlertDialog/index.js +1 -0
- package/dist/core/branch/AlertDialog/index.js.map +1 -1
- package/dist/core/branch/Dialog/index.d.ts.map +1 -1
- package/dist/core/branch/Dialog/index.js +1 -0
- package/dist/core/branch/Dialog/index.js.map +1 -1
- package/dist/core/branch/Drawer/index.d.ts.map +1 -1
- package/dist/core/branch/Drawer/index.js +1 -0
- package/dist/core/branch/Drawer/index.js.map +1 -1
- package/dist/core/branch/Rail/index.d.ts.map +1 -1
- package/dist/core/branch/Rail/index.js +1 -0
- package/dist/core/branch/Rail/index.js.map +1 -1
- package/dist/core/branch/Subnav/index.d.ts.map +1 -1
- package/dist/core/branch/Subnav/index.js +1 -0
- package/dist/core/branch/Subnav/index.js.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.js +1 -0
- package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/index.js +1 -0
- package/dist/core/branch/SurfaceCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.js +2 -1
- package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
- package/dist/core/branch/Tooltip/index.d.ts.map +1 -1
- package/dist/core/branch/Tooltip/index.js +1 -0
- package/dist/core/branch/Tooltip/index.js.map +1 -1
- package/dist/core/composite/Alert/index.d.ts.map +1 -1
- package/dist/core/composite/Alert/index.js +1 -0
- package/dist/core/composite/Alert/index.js.map +1 -1
- package/dist/core/composite/ChatBubble/index.d.ts +32 -0
- package/dist/core/composite/ChatBubble/index.d.ts.map +1 -0
- package/dist/core/composite/ChatBubble/index.js +12 -0
- package/dist/core/composite/ChatBubble/index.js.map +1 -0
- package/dist/core/composite/FillViewport/index.d.ts +28 -0
- package/dist/core/composite/FillViewport/index.d.ts.map +1 -0
- package/dist/core/composite/FillViewport/index.js +55 -0
- package/dist/core/composite/FillViewport/index.js.map +1 -0
- package/dist/core/composite/ListRow/index.d.ts +31 -0
- package/dist/core/composite/ListRow/index.d.ts.map +1 -0
- package/dist/core/composite/ListRow/index.js +16 -0
- package/dist/core/composite/ListRow/index.js.map +1 -0
- package/dist/core/composition/BottomNav/index.d.ts.map +1 -1
- package/dist/core/composition/BottomNav/index.js +1 -1
- package/dist/core/composition/BottomNav/index.js.map +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.d.ts +6 -1
- package/dist/core/composition/PrimaryRailLayout/index.d.ts.map +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.js +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.js.map +1 -1
- package/dist/core/composition/WorkspaceShell/index.js +1 -1
- package/dist/core/composition/WorkspaceShell/index.js.map +1 -1
- package/dist/core/primitive/IconButton/index.d.ts +12 -1
- package/dist/core/primitive/IconButton/index.d.ts.map +1 -1
- package/dist/core/primitive/IconButton/index.js +13 -2
- package/dist/core/primitive/IconButton/index.js.map +1 -1
- package/dist/core/primitive/Image/index.d.ts +6 -1
- package/dist/core/primitive/Image/index.d.ts.map +1 -1
- package/dist/core/primitive/Image/index.js +2 -2
- package/dist/core/primitive/Image/index.js.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.d.ts.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.js +1 -1
- package/dist/core/primitive/PinnedActionBar/index.js.map +1 -1
- package/dist/core/primitive/Textarea/index.d.ts +38 -2
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +106 -4
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -24,6 +24,6 @@ export const WorkspaceShell = (props) => {
|
|
|
24
24
|
const leadingRule = railPosition === "leading" ? _jsx("div", { "aria-hidden": "true", className: workspaceShellLeadingRuleClassName, "data-contract": "BOUNDARY-4", "data-grammar-workspace-leading-rule": "true" }) : null;
|
|
25
25
|
return _jsxs("div", { className: cn(workspaceShellClassName, props.className), "data-grammar-workspace-floating": hasFloatingLayer ? "present" : "absent", "data-grammar-workspace-shell": "true", "data-component": "WorkspaceShell", "data-tier": "composition", children: [hasHeader ? (resolveWorkspaceHeaderLandmark(props.header, props.headerLandmark) === "slot"
|
|
26
26
|
? _jsx("div", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "slot", children: props.header })
|
|
27
|
-
: _jsx("header", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "shell", children: props.header })) : null, hasCompactHeader ? _jsx("div", { className: workspaceShellCompactHeaderClassName, "data-grammar-workspace-compact-header": "true", children: props.compactHeader }) : null, _jsxs("div", { className: workspaceShellLayoutClassName, "data-contract": "GAP-5 MEASURE-1", "data-grammar-workspace-align": props.align ?? "start", "data-grammar-workspace-navigation": hasNavigation ? "present" : "absent", "data-grammar-workspace-navigation-track": hasNavigation ? props.navigationTrack ?? "fixed" : undefined, "data-grammar-workspace-navigation-visibility": hasNavigation ? props.navigationVisibility ?? "always" : undefined, "data-grammar-workspace-rail": hasRail ? "present" : "absent", "data-grammar-workspace-rail-position": railPosition, "data-grammar-workspace-rail-width": hasRail ? props.railWidth ?? "standard" : undefined, children: [hasNavigation ? _jsx("nav", { "aria-label": props.navigationLabel, className: workspaceShellNavigationClassName, "data-grammar-workspace-navigation-region": "true", children: props.navigation }) : null, railPosition === "leading" ? rail : null, leadingRule, primary, railPosition === "trailing" ? rail : null] }), hasCompactNavigation ? _jsx("nav", { "aria-label": props.compactNavigationLabel, className: workspaceShellCompactNavigationClassName, "data-contract": "BOUNDARY-1", "data-grammar-workspace-compact-navigation": "true", children: props.compactNavigation }) : null, hasFloatingLayer ? _jsx("div", { className: workspaceShellFloatingLayerClassName, "data-contract": "OVERFLOW-4", "data-grammar-workspace-floating-layer": "true", children: props.floatingLayer }) : null] });
|
|
27
|
+
: _jsx("header", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "shell", children: props.header })) : null, hasCompactHeader ? _jsx("div", { className: workspaceShellCompactHeaderClassName, "data-grammar-workspace-compact-header": "true", children: props.compactHeader }) : null, _jsxs("div", { className: workspaceShellLayoutClassName, "data-contract": "GAP-5 MEASURE-1", "data-grammar-workspace-align": props.align ?? "start", "data-grammar-workspace-navigation": hasNavigation ? "present" : "absent", "data-grammar-workspace-navigation-track": hasNavigation ? props.navigationTrack ?? "fixed" : undefined, "data-grammar-workspace-navigation-visibility": hasNavigation ? props.navigationVisibility ?? "always" : undefined, "data-grammar-workspace-rail": hasRail ? "present" : "absent", "data-grammar-workspace-rail-position": railPosition, "data-grammar-workspace-rail-width": hasRail ? props.railWidth ?? "standard" : undefined, children: [hasNavigation ? _jsx("nav", { "aria-label": props.navigationLabel, className: workspaceShellNavigationClassName, "data-grammar-workspace-navigation-region": "true", children: props.navigation }) : null, railPosition === "leading" ? rail : null, leadingRule, primary, railPosition === "trailing" ? rail : null] }), hasCompactNavigation ? _jsx("nav", { "aria-label": props.compactNavigationLabel, className: workspaceShellCompactNavigationClassName, "data-contract": "BOUNDARY-1", "data-grammar-workspace-compact-navigation": "true", "data-grammar-bottom-chrome": "true", children: props.compactNavigation }) : null, hasFloatingLayer ? _jsx("div", { className: workspaceShellFloatingLayerClassName, "data-contract": "OVERFLOW-4", "data-grammar-workspace-floating-layer": "true", children: props.floatingLayer }) : null] });
|
|
28
28
|
};
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,18 @@ export type IconButtonProps = {
|
|
|
18
18
|
readonly "aria-controls"?: string;
|
|
19
19
|
/** Disclosure: whether that region is open now (`aria-expanded`). */
|
|
20
20
|
readonly "aria-expanded"?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* A count pinned to the glyph's top end corner (unread notifications, waiting items). `0`, empty or absent draws nothing;
|
|
23
|
+
* a number above `badgeMax` shows as `badgeMax+`. The plate is decorative: `badgeLabel` carries the count to assistive tech.
|
|
24
|
+
*/
|
|
25
|
+
readonly badge?: number | string;
|
|
26
|
+
/** Appended to the accessible name when a badge shows, e.g. "3 unread". Required for a badge to be announced. */
|
|
27
|
+
readonly badgeLabel?: string;
|
|
28
|
+
/** Largest number shown before it collapses to `n+`. Default 99. */
|
|
29
|
+
readonly badgeMax?: number;
|
|
21
30
|
};
|
|
31
|
+
/** What the badge plate prints: nothing for 0 / empty, the capped number, or the given text. */
|
|
32
|
+
export declare const iconButtonBadgeText: (badge: number | string | undefined, max?: number) => string | null;
|
|
22
33
|
/** Circular glyph-only action with a mandatory accessible name (A11Y-2, ICON-5). */
|
|
23
|
-
export declare const IconButton: ({ source, label, variant, isActive, isDisabled, isSkeleton, onPress, "aria-controls": controls, "aria-expanded": expanded, }: IconButtonProps) => import("react").JSX.Element;
|
|
34
|
+
export declare const IconButton: ({ source, label, variant, isActive, isDisabled, isSkeleton, onPress, "aria-controls": controls, "aria-expanded": expanded, badge, badgeLabel, badgeMax, }: IconButtonProps) => import("react").JSX.Element;
|
|
24
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,iHAAiH;IACjH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,YAAQ,KAAG,MAAM,GAAG,IAI3F,CAAA;AAQD,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,2JAaxB,eAAe,gCAyBjB,CAAA"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button as HeroButton, cn, skeletonVariants } from "@heroui/react";
|
|
3
3
|
import { Icon } from "../Icon/index.js";
|
|
4
|
+
/** What the badge plate prints: nothing for 0 / empty, the capped number, or the given text. */
|
|
5
|
+
export const iconButtonBadgeText = (badge, max = 99) => {
|
|
6
|
+
if (badge === undefined || badge === "" || badge === 0)
|
|
7
|
+
return null;
|
|
8
|
+
if (typeof badge === "number")
|
|
9
|
+
return badge > max ? `${max}+` : String(badge);
|
|
10
|
+
return badge;
|
|
11
|
+
};
|
|
4
12
|
/**
|
|
5
13
|
* The pill corner is SHIPPED by `.starci-core-icon-button` in `src/common/styles.css`, for the
|
|
6
14
|
* resolved action and its resting shimmer alike; only the shimmer itself comes from the vendor.
|
|
7
15
|
*/
|
|
8
16
|
const SKELETON_CLASS_NAME = skeletonVariants({ animationType: "shimmer" }).base();
|
|
9
17
|
/** Circular glyph-only action with a mandatory accessible name (A11Y-2, ICON-5). */
|
|
10
|
-
export const IconButton = ({ source, label, variant = "tertiary", isActive = false, isDisabled = false, isSkeleton = false, onPress, "aria-controls": controls, "aria-expanded": expanded,
|
|
18
|
+
export const IconButton = ({ source, label, variant = "tertiary", isActive = false, isDisabled = false, isSkeleton = false, onPress, "aria-controls": controls, "aria-expanded": expanded, badge, badgeLabel, badgeMax = 99, }) => {
|
|
19
|
+
const badgeText = isSkeleton ? null : iconButtonBadgeText(badge, badgeMax);
|
|
20
|
+
return (_jsxs(HeroButton, { "data-tier": "atom", "data-component": "IconButton", "data-contract": "A11Y-2 ICON-5", "data-active": isActive ? "true" : "false", "data-variant": variant, "data-loading": isSkeleton ? "true" : "false", type: "button", variant: variant, className: cn("starci-core-icon-button", isSkeleton ? SKELETON_CLASS_NAME : undefined) ?? "starci-core-icon-button", isIconOnly: true, isDisabled: isDisabled || isSkeleton, "aria-label": badgeText !== null && badgeLabel !== undefined ? `${label}, ${badgeLabel}` : label, "data-grammar-icon-button-badge": badgeText === null ? "none" : "present", ...(controls === undefined ? {} : { "aria-controls": controls }), ...(expanded === undefined ? {} : { "aria-expanded": expanded }), ...(isDisabled || isSkeleton || onPress === undefined ? {} : { onPress }), children: [isSkeleton ? null : _jsx(Icon, { source: source, usage: "leading" }), badgeText === null ? null : _jsx("span", { "aria-hidden": true, className: "starci-core-icon-button-badge", "data-contract": "TONE-2", children: badgeText })] }));
|
|
21
|
+
};
|
|
11
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAA;AAiCxD,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAkC,EAAE,GAAG,GAAG,EAAE,EAAiB,EAAE;IAC/F,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7E,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AAEjF,oFAAoF;AACpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,MAAM,EACN,KAAK,EACL,OAAO,GAAG,UAAU,EACpB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,UAAU,GAAG,KAAK,EAClB,OAAO,EACP,eAAe,EAAE,QAAQ,EACzB,eAAe,EAAE,QAAQ,EACzB,KAAK,EACL,UAAU,EACV,QAAQ,GAAG,EAAE,GACC,EAAE,EAAE;IAClB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC1E,OAAO,CACP,MAAC,UAAU,iBACG,MAAM,oBACD,YAAY,mBACb,eAAe,iBAChB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,kBAC1B,OAAO,kBACP,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC3C,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,yBAAyB,EACnH,UAAU,QACV,UAAU,EAAE,UAAU,IAAI,UAAU,gBACxB,SAAS,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,oCAC9D,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KACnE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAC7D,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAC7D,CAAC,UAAU,IAAI,UAAU,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,aAEzE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,SAAS,GAAG,EAC5D,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAkB,SAAS,EAAC,+BAA+B,mBAAe,QAAQ,YAAE,SAAS,GAAQ,IACzH,CACZ,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -19,6 +19,11 @@ export type ImageProps = AssetSlotProps & {
|
|
|
19
19
|
readonly width?: number;
|
|
20
20
|
readonly height?: number;
|
|
21
21
|
readonly onLoadStateChange?: (state: ImageLoadState) => void;
|
|
22
|
+
/**
|
|
23
|
+
* `default` paints the neutral loading plate behind the picture; `none` keeps the box transparent for cut-out art
|
|
24
|
+
* (a mascot or logo with an alpha channel) that must sit directly on its surface.
|
|
25
|
+
*/
|
|
26
|
+
readonly plate?: "default" | "none";
|
|
22
27
|
readonly className?: string;
|
|
23
28
|
};
|
|
24
29
|
/**
|
|
@@ -28,5 +33,5 @@ export type ImageProps = AssetSlotProps & {
|
|
|
28
33
|
* `MediaFrame` frames approved art with a caption; `Image` is the element inside or outside it.
|
|
29
34
|
* Contract: box MEDIA-2 MEDIA-5 (reserved ratio, load states), img MEDIA-4 MOTION-2, fallback MEDIA-4 MEDIA-5.
|
|
30
35
|
*/
|
|
31
|
-
export declare const Image: ({ src, alt, aspect, fit, fallback, loading, srcSet, sizes, width, height, onLoadStateChange, className, ...assetSlot }: ImageProps) => import("react").JSX.Element;
|
|
36
|
+
export declare const Image: ({ src, alt, aspect, fit, fallback, loading, srcSet, sizes, width, height, onLoadStateChange, plate, className, ...assetSlot }: ImageProps) => import("react").JSX.Element;
|
|
32
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Image/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEzE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/E,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3D,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Image/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEzE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/E,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3D,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IAC5D;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,+HAenB,UAAU,gCAqDZ,CAAA"}
|
|
@@ -10,7 +10,7 @@ import { assetSlotAttributes } from "./assetSlot.js";
|
|
|
10
10
|
* `MediaFrame` frames approved art with a caption; `Image` is the element inside or outside it.
|
|
11
11
|
* Contract: box MEDIA-2 MEDIA-5 (reserved ratio, load states), img MEDIA-4 MOTION-2, fallback MEDIA-4 MEDIA-5.
|
|
12
12
|
*/
|
|
13
|
-
export const Image = ({ src, alt, aspect = "auto", fit = "cover", fallback, loading = "lazy", srcSet, sizes, width, height, onLoadStateChange, className, ...assetSlot }) => {
|
|
13
|
+
export const Image = ({ src, alt, aspect = "auto", fit = "cover", fallback, loading = "lazy", srcSet, sizes, width, height, onLoadStateChange, plate = "default", className, ...assetSlot }) => {
|
|
14
14
|
const [state, setState] = useState("loading");
|
|
15
15
|
const imageRef = useRef(null);
|
|
16
16
|
const report = (next) => {
|
|
@@ -25,6 +25,6 @@ export const Image = ({ src, alt, aspect = "auto", fit = "cover", fallback, load
|
|
|
25
25
|
report("loaded");
|
|
26
26
|
}, [src]);
|
|
27
27
|
const showFallback = state === "error" && fallback !== undefined;
|
|
28
|
-
return (_jsx("span", { className: navigationClassName("starci-core-image", className), "data-component": "Image", "data-contract": "MEDIA-2 MEDIA-5", "data-tier": "atom", "data-grammar-image-aspect": aspect, "data-grammar-image-fit": fit, "data-grammar-image-state": state, ...assetSlotAttributes(assetSlot), children: showFallback ? (_jsx("span", { className: "starci-core-image-fallback", "data-contract": "MEDIA-4 MEDIA-5", "data-grammar-image-fallback": "true", ...(alt === "" ? { "aria-hidden": true } : { role: "img", "aria-label": alt }), children: fallback })) : (_jsx("img", { ref: imageRef, alt: alt, className: "starci-core-image-element", "data-contract": "MEDIA-4 MOTION-2", decoding: "async", loading: loading, src: src, ...(srcSet === undefined ? {} : { srcSet }), ...(sizes === undefined ? {} : { sizes }), ...(width === undefined ? {} : { width }), ...(height === undefined ? {} : { height }), onError: () => report("error"), onLoad: () => report("loaded") })) }));
|
|
28
|
+
return (_jsx("span", { className: navigationClassName("starci-core-image", className), "data-component": "Image", "data-contract": "MEDIA-2 MEDIA-5", "data-tier": "atom", "data-grammar-image-aspect": aspect, "data-grammar-image-fit": fit, "data-grammar-image-state": state, "data-grammar-image-plate": plate, ...assetSlotAttributes(assetSlot), children: showFallback ? (_jsx("span", { className: "starci-core-image-fallback", "data-contract": "MEDIA-4 MEDIA-5", "data-grammar-image-fallback": "true", ...(alt === "" ? { "aria-hidden": true } : { role: "img", "aria-label": alt }), children: fallback })) : (_jsx("img", { ref: imageRef, alt: alt, className: "starci-core-image-element", "data-contract": "MEDIA-4 MOTION-2", decoding: "async", loading: loading, src: src, ...(srcSet === undefined ? {} : { srcSet }), ...(sizes === undefined ? {} : { sizes }), ...(width === undefined ? {} : { width }), ...(height === undefined ? {} : { height }), onError: () => report("error"), onLoad: () => report("loaded") })) }));
|
|
29
29
|
};
|
|
30
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Image/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Image/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/PinnedActionBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,8HAA8H;AAC9H,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,wBAAwB;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAA;CAClD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,iCAA4C,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/PinnedActionBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,8HAA8H;AAC9H,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,wBAAwB;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAA;CAClD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,iCAA4C,oBAAoB,gCAa/F,CAAA"}
|
|
@@ -6,5 +6,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
* inset. It holds one Button; it is not navigation (that is `BottomNav`). Hidden at 48rem and wider unless
|
|
7
7
|
* `visibility="always"`, so the same command is shown once per viewport (LAYOUT-4 case-2).
|
|
8
8
|
*/
|
|
9
|
-
export const PinnedActionBar = ({ children, label, visibility = "narrow" }) => (_jsx("div", { "aria-label": label, className: "starci-core-pinned-action-bar", "data-component": "PinnedActionBar", "data-contract": "BOUNDARY-1", "data-grammar-pinned-visibility": visibility, "data-tier": "atom", role: "group", children: children }));
|
|
9
|
+
export const PinnedActionBar = ({ children, label, visibility = "narrow" }) => (_jsx("div", { "aria-label": label, className: "starci-core-pinned-action-bar", "data-component": "PinnedActionBar", "data-grammar-bottom-chrome": "true", "data-contract": "BOUNDARY-1", "data-grammar-pinned-visibility": visibility, "data-tier": "atom", role: "group", children: children }));
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/PinnedActionBar/index.tsx"],"names":[],"mappings":";AAcA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAwB,EAAE,EAAE,CAAC,CACjG,4BACgB,KAAK,EACjB,SAAS,EAAC,+BAA+B,oBAC1B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/PinnedActionBar/index.tsx"],"names":[],"mappings":";AAcA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAwB,EAAE,EAAE,CAAC,CACjG,4BACgB,KAAK,EACjB,SAAS,EAAC,+BAA+B,oBAC1B,iBAAiB,gCACL,MAAM,mBACnB,YAAY,oCACM,UAAU,eAChC,MAAM,EAChB,IAAI,EAAC,OAAO,YAEX,QAAQ,GACP,CACT,CAAA"}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { type FieldControlProps } from "../Field/index.js";
|
|
2
|
+
/** One person or agent the reader can mention. `label` is what is inserted after the trigger. */
|
|
3
|
+
export type TextareaMentionOption = {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly label: string;
|
|
6
|
+
/** A second muted line in the suggestion list (role, handle). */
|
|
7
|
+
readonly description?: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Mention suggestions: typing the trigger (default `@`) at a word start opens a list filtered by what follows it;
|
|
11
|
+
* ArrowUp/ArrowDown move, Enter or Tab inserts `trigger + label + space`, Escape closes. Works on a controlled value
|
|
12
|
+
* (`value` + `onValueChange`), because inserting a mention rewrites the text.
|
|
13
|
+
*/
|
|
14
|
+
export type TextareaMentions = {
|
|
15
|
+
readonly options: ReadonlyArray<TextareaMentionOption>;
|
|
16
|
+
/** Accessible name of the suggestion list, e.g. "People to mention". */
|
|
17
|
+
readonly label: string;
|
|
18
|
+
readonly trigger?: string;
|
|
19
|
+
/** Called after a mention was inserted. */
|
|
20
|
+
readonly onSelect?: (option: TextareaMentionOption) => void;
|
|
21
|
+
};
|
|
2
22
|
export type TextareaProps = FieldControlProps & {
|
|
3
23
|
readonly id?: string;
|
|
4
24
|
readonly placeholder?: string;
|
|
@@ -12,7 +32,23 @@ export type TextareaProps = FieldControlProps & {
|
|
|
12
32
|
readonly onValueChange?: (value: string) => void;
|
|
13
33
|
/** Layer variant: `secondary` when the control sits on a surface (ANATOMY-2 case-1). */
|
|
14
34
|
readonly variant?: "primary" | "secondary";
|
|
35
|
+
/**
|
|
36
|
+
* Chat composer shortcut: Enter (without Shift, outside an IME composition and with no suggestion list open) calls this
|
|
37
|
+
* instead of breaking the line; Shift+Enter still breaks the line.
|
|
38
|
+
*/
|
|
39
|
+
readonly onSubmitShortcut?: () => void;
|
|
40
|
+
readonly mentions?: TextareaMentions;
|
|
41
|
+
};
|
|
42
|
+
type MentionQuery = {
|
|
43
|
+
readonly start: number;
|
|
44
|
+
readonly end: number;
|
|
45
|
+
readonly text: string;
|
|
15
46
|
};
|
|
16
|
-
/**
|
|
17
|
-
export declare const
|
|
47
|
+
/** The trigger word that ends at the caret (`@an` in "hi @an|"), or null. The trigger must start the text or follow a space. */
|
|
48
|
+
export declare const findMentionQuery: (text: string, caret: number, trigger?: string) => MentionQuery | null;
|
|
49
|
+
/** Options whose label (accent- and case-insensitive) contains the query, at most eight. */
|
|
50
|
+
export declare const filterMentionOptions: (options: ReadonlyArray<TextareaMentionOption>, query: string) => ReadonlyArray<TextareaMentionOption>;
|
|
51
|
+
/** Multi-line text with the shared field anatomy, an optional Enter-to-submit shortcut and optional mention suggestions. */
|
|
52
|
+
export declare const Textarea: ({ id, placeholder, value, defaultValue, rows, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, ...field }: TextareaProps) => import("react").JSX.Element;
|
|
53
|
+
export {};
|
|
18
54
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,iGAAiG;AACjG,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;IACtD,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CACvC,CAAA;AAED,KAAK,YAAY,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAI3F,gIAAgI;AAChI,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,gBAAa,KAAG,YAAY,GAAG,IAQ5F,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,GAAI,SAAS,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,MAAM,KAAG,aAAa,CAAC,qBAAqB,CAGtI,CAAA;AAQD,4HAA4H;AAC5H,eAAO,MAAM,QAAQ,GAAI,oIAatB,aAAa,gCA4Jf,CAAA"}
|
|
@@ -1,20 +1,122 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { TextArea as HeroTextArea, TextField as HeroTextField } from "@heroui/react";
|
|
4
|
-
import { useState } from "react";
|
|
4
|
+
import { useId, useMemo, useState } from "react";
|
|
5
5
|
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, isFieldInvalid, vendorFieldProps, } from "../Field/index.js";
|
|
6
|
+
const fold = (s) => s.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
|
|
7
|
+
/** The trigger word that ends at the caret (`@an` in "hi @an|"), or null. The trigger must start the text or follow a space. */
|
|
8
|
+
export const findMentionQuery = (text, caret, trigger = "@") => {
|
|
9
|
+
const before = text.slice(0, caret);
|
|
10
|
+
const at = before.lastIndexOf(trigger);
|
|
11
|
+
if (at < 0)
|
|
12
|
+
return null;
|
|
13
|
+
if (at > 0 && !/\s/.test(before.charAt(at - 1)))
|
|
14
|
+
return null;
|
|
15
|
+
const query = before.slice(at + trigger.length);
|
|
16
|
+
if (/\s/.test(query))
|
|
17
|
+
return null;
|
|
18
|
+
return { start: at, end: caret, text: query };
|
|
19
|
+
};
|
|
20
|
+
/** Options whose label (accent- and case-insensitive) contains the query, at most eight. */
|
|
21
|
+
export const filterMentionOptions = (options, query) => {
|
|
22
|
+
const q = fold(query);
|
|
23
|
+
return options.filter((o) => fold(o.label).includes(q) || fold(o.description ?? "").includes(q)).slice(0, 8);
|
|
24
|
+
};
|
|
6
25
|
/*
|
|
7
26
|
* Consumer hook: `starci-core-textarea` names this control's root for a consumer or family
|
|
8
27
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-field`, so
|
|
9
28
|
* a rule on the hook adds to the shared anatomy and never has to replace it.
|
|
10
29
|
*/
|
|
11
|
-
/** Multi-line text with the shared field anatomy. */
|
|
12
|
-
export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, maxLength, minLength, onValueChange, variant = "primary", ...field }) => {
|
|
30
|
+
/** Multi-line text with the shared field anatomy, an optional Enter-to-submit shortcut and optional mention suggestions. */
|
|
31
|
+
export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, maxLength, minLength, onValueChange, variant = "primary", onSubmitShortcut, mentions, ...field }) => {
|
|
13
32
|
const [uncontrolledLength, setUncontrolledLength] = useState((defaultValue ?? "").length);
|
|
14
33
|
const length = value === undefined ? uncontrolledLength : value.length;
|
|
34
|
+
const generatedId = useId();
|
|
35
|
+
const controlId = id ?? `textarea-${generatedId}`;
|
|
36
|
+
const listId = `${controlId}-mentions`;
|
|
37
|
+
const trigger = mentions?.trigger ?? "@";
|
|
38
|
+
const [query, setQuery] = useState(null);
|
|
39
|
+
const [active, setActive] = useState(0);
|
|
40
|
+
const suggestions = useMemo(() => (mentions === undefined || query === null ? [] : filterMentionOptions(mentions.options, query.text)), [mentions, query]);
|
|
41
|
+
const isOpen = suggestions.length > 0;
|
|
42
|
+
const readQuery = (control) => {
|
|
43
|
+
if (mentions === undefined)
|
|
44
|
+
return;
|
|
45
|
+
const next = control.selectionStart === control.selectionEnd ? findMentionQuery(control.value, control.selectionStart, trigger) : null;
|
|
46
|
+
setQuery(next);
|
|
47
|
+
setActive(0);
|
|
48
|
+
};
|
|
49
|
+
const insert = (option) => {
|
|
50
|
+
const control = document.getElementById(controlId);
|
|
51
|
+
if (!(control instanceof HTMLTextAreaElement) || query === null)
|
|
52
|
+
return;
|
|
53
|
+
const text = control.value;
|
|
54
|
+
const inserted = `${trigger}${option.label} `;
|
|
55
|
+
const next = `${text.slice(0, query.start)}${inserted}${text.slice(query.end)}`;
|
|
56
|
+
const caret = query.start + inserted.length;
|
|
57
|
+
onValueChange?.(next);
|
|
58
|
+
setUncontrolledLength(next.length);
|
|
59
|
+
setQuery(null);
|
|
60
|
+
mentions?.onSelect?.(option);
|
|
61
|
+
requestAnimationFrame(() => {
|
|
62
|
+
control.focus();
|
|
63
|
+
control.setSelectionRange(caret, caret);
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
const onKeyDown = (event) => {
|
|
67
|
+
if (isOpen) {
|
|
68
|
+
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
const step = event.key === "ArrowDown" ? 1 : -1;
|
|
71
|
+
setActive((current) => (current + step + suggestions.length) % suggestions.length);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (event.key === "Enter" || event.key === "Tab") {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
const option = suggestions[active];
|
|
77
|
+
if (option !== undefined)
|
|
78
|
+
insert(option);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (event.key === "Escape") {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
setQuery(null);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (onSubmitShortcut !== undefined && event.key === "Enter" && !event.shiftKey && !event.nativeEvent.isComposing) {
|
|
88
|
+
event.preventDefault();
|
|
89
|
+
onSubmitShortcut();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const activeId = isOpen ? `${listId}-${suggestions[active]?.id ?? ""}` : undefined;
|
|
15
93
|
return (_jsxs(HeroTextField, { "data-tier": "atom", "data-component": "Textarea", "data-contract": "A11Y-1 FIELD-1 FIELD-2 FIELD-3", className: "starci-core-field starci-core-textarea", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(maxLength === undefined ? {} : { maxLength }), ...(minLength === undefined ? {} : { minLength }), onChange: (next) => {
|
|
16
94
|
setUncontrolledLength(next.length);
|
|
17
95
|
onValueChange?.(next);
|
|
18
|
-
|
|
96
|
+
// Text can arrive without a key release (IME, paste, a phone keyboard, dictation): re-read the trigger then too.
|
|
97
|
+
if (mentions !== undefined) {
|
|
98
|
+
queueMicrotask(() => {
|
|
99
|
+
const control = document.getElementById(controlId);
|
|
100
|
+
if (control instanceof HTMLTextAreaElement)
|
|
101
|
+
readQuery(control);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}, children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs("div", { className: "starci-core-textarea-anchor", children: [_jsx(HeroTextArea, { id: controlId, rows: rows, ...(placeholder === undefined ? {} : { placeholder }), className: "starci-core-textarea-control", "data-grammar-field-control": "true", onKeyDown: onKeyDown, ...(mentions === undefined
|
|
105
|
+
? {}
|
|
106
|
+
: {
|
|
107
|
+
onKeyUp: (event) => {
|
|
108
|
+
if (!["ArrowDown", "ArrowUp", "Enter", "Tab", "Escape"].includes(event.key))
|
|
109
|
+
readQuery(event.currentTarget);
|
|
110
|
+
},
|
|
111
|
+
onClick: (event) => readQuery(event.currentTarget),
|
|
112
|
+
onBlur: () => setQuery(null),
|
|
113
|
+
"aria-autocomplete": "list",
|
|
114
|
+
// A textbox may carry aria-controls / aria-autocomplete / aria-activedescendant, not aria-expanded (ARIA 1.2);
|
|
115
|
+
// both references are set only while the list exists, so they never point at a missing element.
|
|
116
|
+
...(activeId === undefined ? {} : { "aria-controls": listId, "aria-activedescendant": activeId }),
|
|
117
|
+
}) }), mentions === undefined || !isOpen ? null : (_jsx("ul", { id: listId, role: "listbox", "aria-label": mentions.label, className: "starci-core-mention-list", "data-grammar-mention-list": "true", children: suggestions.map((option, index) => (_jsxs("li", { id: `${listId}-${option.id}`, role: "option", "aria-selected": index === active, className: "starci-core-mention-option", "data-grammar-mention-active": index === active ? "true" : "false", onMouseDown: (event) => {
|
|
118
|
+
event.preventDefault();
|
|
119
|
+
insert(option);
|
|
120
|
+
}, onMouseEnter: () => setActive(index), children: [_jsx("span", { className: "starci-core-mention-label", children: option.label }), option.description === undefined ? null : _jsx("span", { className: "starci-core-mention-description", children: option.description })] }, option.id))) }))] }), field.description == null && maxLength === undefined ? null : (_jsxs("div", { className: "starci-core-field-meta", children: [_jsx(FieldDescription, { children: field.description }), maxLength === undefined ? null : (_jsxs("span", { className: "starci-core-field-count", "data-grammar-field-count": "true", "data-grammar-invalid": isFieldInvalid(field) || length > maxLength ? "true" : "false", children: [length, "/", maxLength] }))] })), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
19
121
|
};
|
|
20
122
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAA;AACpE,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;AA+C1B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAE3F,gIAAgI;AAChI,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,OAAO,GAAG,GAAG,EAAuB,EAAE;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACjD,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAA6C,EAAE,KAAa,EAAwC,EAAE;IACvI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IACrB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChH,CAAC,CAAA;AAED;;;;GAIG;AAEH,4HAA4H;AAC5H,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACrB,EAAE,EACF,WAAW,EACX,KAAK,EACL,YAAY,EACZ,IAAI,GAAG,CAAC,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,GAAG,SAAS,EACnB,gBAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACI,EAAE,EAAE;IAChB,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACzF,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;IACtE,MAAM,WAAW,GAAG,KAAK,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,EAAE,IAAI,YAAY,WAAW,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,GAAG,SAAS,WAAW,CAAA;IACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,GAAG,CAAA;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,WAAW,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAC1G,CAAC,QAAQ,EAAE,KAAK,CAAC,CACpB,CAAA;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;IAErC,MAAM,SAAS,GAAG,CAAC,OAA4B,EAAE,EAAE;QAC/C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtI,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,SAAS,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,MAA6B,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,CAAC,OAAO,YAAY,mBAAmB,CAAC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAM;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,MAAM,QAAQ,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,CAAA;QAC7C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAA;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC3C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAA;QACrB,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,QAAQ,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAA;QAC5B,qBAAqB,CAAC,GAAG,EAAE;YACvB,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,KAAyC,EAAE,EAAE;QAC5D,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACvD,KAAK,CAAC,cAAc,EAAE,CAAA;gBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/C,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;gBAClF,OAAM;YACV,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE,CAAA;gBACtB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;gBAClC,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAA;gBACxC,OAAM;YACV,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACzB,KAAK,CAAC,cAAc,EAAE,CAAA;gBACtB,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACd,OAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC/G,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,gBAAgB,EAAE,CAAA;QACtB,CAAC;IACL,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAElF,OAAO,CACH,MAAC,aAAa,iBACA,MAAM,oBACD,UAAU,mBACX,gCAAgC,EAC9C,SAAS,EAAC,wCAAwC,EAClD,SAAS,QACT,OAAO,EAAE,OAAO,KACZ,sBAAsB,CAAC,OAAO,CAAC,KAC/B,gBAAgB,CAAC,KAAK,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,KACjC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KACtF,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAC9C,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAA;YACrB,iHAAiH;YACjH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,cAAc,CAAC,GAAG,EAAE;oBAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;oBAClD,IAAI,OAAO,YAAY,mBAAmB;wBAAE,SAAS,CAAC,OAAO,CAAC,CAAA;gBAClE,CAAC,CAAC,CAAA;YACN,CAAC;QACL,CAAC,aAED,KAAC,UAAU,IAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,CAAC,KAAK,GAAc,EACnG,eAAK,SAAS,EAAC,6BAA6B,aACxC,KAAC,YAAY,IACT,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,IAAI,KACN,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EACtD,SAAS,EAAC,8BAA8B,gCACb,MAAM,EACjC,SAAS,EAAE,SAAS,KAChB,CAAC,QAAQ,KAAK,SAAS;4BACvB,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC;gCACE,OAAO,EAAE,CAAC,KAAyC,EAAE,EAAE;oCACnD,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;wCAAE,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;gCAC/G,CAAC;gCACD,OAAO,EAAE,CAAC,KAA6C,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;gCAC1F,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gCAC5B,mBAAmB,EAAE,MAAe;gCACpC,+GAA+G;gCAC/G,gGAAgG;gCAChG,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC;6BACpG,CAAC,GACR,EACD,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,aAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAC,SAAS,gBAAa,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAC,0BAA0B,+BAA2B,MAAM,YAC3H,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,cAEI,EAAE,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,EAC5B,IAAI,EAAC,QAAQ,mBACE,KAAK,KAAK,MAAM,EAC/B,SAAS,EAAC,4BAA4B,iCACT,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAChE,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gCACnB,KAAK,CAAC,cAAc,EAAE,CAAA;gCACtB,MAAM,CAAC,MAAM,CAAC,CAAA;4BAClB,CAAC,EACD,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,aAEpC,eAAM,SAAS,EAAC,2BAA2B,YAAE,MAAM,CAAC,KAAK,GAAQ,EAChE,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,iCAAiC,YAAE,MAAM,CAAC,WAAW,GAAQ,KAbnH,MAAM,CAAC,EAAE,CAcb,CACR,CAAC,GACD,CACR,IACC,EACL,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D,eAAK,SAAS,EAAC,wBAAwB,aACnC,KAAC,gBAAgB,cAAE,KAAK,CAAC,WAAW,GAAoB,EACvD,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9B,gBACI,SAAS,EAAC,yBAAyB,8BACV,MAAM,0BACT,cAAc,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAEnF,MAAM,OAAG,SAAS,IAChB,CACV,IACC,CACT,EACD,KAAC,cAAc,cAAE,KAAK,CAAC,YAAY,GAAkB,IACzC,CACnB,CAAA;AACL,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starci/grammar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Reusable StarCi React components, compositions, and packaged visual DNA.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"starci",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "node scripts/clean.mjs && tsc -p tsconfig.build.json && node scripts/copy-css.mjs && node scripts/build-stamp.mjs",
|
|
61
61
|
"typecheck": "tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.stories.json",
|
|
62
|
-
"test": "npm run build && node --test src/common/index.spec.mjs src/core/index.spec.mjs src/offset-pop/index.spec.mjs src/package-boundary.spec.mjs && vitest run --config vitest.config.ts src/shipped-geometry.spec.ts src/core/shipped-claims.spec.tsx src/common/conformance.spec.ts src/common/styles.spec.ts src/core/family.spec.tsx src/core/styles.spec.ts src/core/surface-card-family.spec.tsx src/core/scrollable-surfaces.spec.tsx src/core/primitive/Badge/index.spec.tsx src/core/primitive/Button/index.spec.tsx src/core/primitive/Divider/index.spec.tsx src/core/primitive/Region/index.spec.tsx src/core/primitive/NavLandmark/index.spec.tsx src/core/primitive/List/index.spec.tsx src/core/primitive/Heading/index.spec.tsx src/core/primitive/Icon/index.spec.tsx src/core/primitive/IconButton/index.spec.tsx src/core/primitive/IconTile/index.spec.tsx src/core/primitive/Input/index.spec.tsx src/core/primitive/Input/copyable.spec.tsx src/core/primitive/PressableField/index.spec.tsx src/core/primitive/Progress/index.spec.tsx src/core/primitive/Text/index.spec.tsx src/core/primitive/TextAction/index.spec.tsx src/core/primitive/Label/index.spec.tsx src/core/primitive/RankArtwork/index.spec.tsx src/core/composite/EmptyNotice/index.spec.tsx src/core/branch/Tabs/index.spec.tsx src/core/branch/Subnav/index.spec.tsx src/core/branch/Subnav/styles.spec.ts src/core/branch/Tooltip/index.spec.tsx src/core/composition/NavigationFeatureNav/index.spec.tsx src/core/composition/NavigationFeatureNav/styles.spec.ts src/core/composition/Sidebar/index.spec.tsx src/core/composition/Sidebar/styles.spec.ts src/core/composition/collapse.spec.tsx src/core/composition/WorkspaceShell/index.spec.tsx src/core/composition/ChatWorkspace/index.spec.tsx src/heritage/index.spec.tsx src/heritage/styles.spec.ts src/offset-pop/index.spec.tsx src/offset-pop/render.spec.tsx src/offset-pop/styles.spec.ts src/offset-pop/family.spec.tsx src/offset-pop/shipped-claims.spec.tsx src/offset-pop/surface-card-family.spec.tsx src/offset-pop/scrollable-surfaces.spec.tsx src/offset-pop/conformance.spec.ts src/core/branch/Accordion/index.spec.tsx src/core/branch/AlertDialog/index.spec.tsx src/core/branch/Calendar/index.spec.tsx src/core/branch/ComboBox/index.spec.tsx src/core/branch/DataTable/index.spec.tsx src/core/branch/DatePicker/index.spec.tsx src/core/branch/DateRangePicker/index.spec.tsx src/core/branch/Dialog/index.spec.tsx src/core/branch/Disclosure/index.spec.tsx src/core/branch/Drawer/index.spec.tsx src/core/branch/DropdownMenu/index.spec.tsx src/core/branch/ListBox/index.spec.tsx src/core/branch/Popover/index.spec.tsx src/core/branch/Select/index.spec.tsx src/core/branch/Toast/index.spec.tsx src/core/composite/Alert/index.spec.tsx src/core/composite/AvatarGroup/index.spec.tsx src/core/composite/Breadcrumbs/index.spec.tsx src/core/composite/ButtonGroup/index.spec.tsx src/core/composite/CheckboxGroup/index.spec.tsx src/core/composite/DescriptionList/index.spec.tsx src/core/composite/Fieldset/index.spec.tsx src/core/composite/Form/index.spec.tsx src/core/composite/Pagination/index.spec.tsx src/core/composite/RadioGroup/index.spec.tsx src/core/composite/SegmentedControl/index.spec.tsx src/core/composite/Stepper/index.spec.tsx src/core/composite/TagGroup/index.spec.tsx src/core/composite/Timeline/index.spec.tsx src/core/composition/BottomNav/index.spec.tsx src/core/composition/Footer/index.spec.tsx src/core/composition/TopBar/index.spec.tsx src/core/primitive/Avatar/index.spec.tsx src/core/primitive/Checkbox/index.spec.tsx src/core/primitive/CloseButton/index.spec.tsx src/core/primitive/DateField/index.spec.tsx src/core/primitive/Field/index.spec.tsx src/core/primitive/FileDropzone/index.spec.tsx src/core/primitive/Image/index.spec.tsx src/core/primitive/Kbd/index.spec.tsx src/core/primitive/Link/index.spec.tsx src/core/primitive/Meter/index.spec.tsx src/core/primitive/NumberField/index.spec.tsx src/core/primitive/ProgressCircle/index.spec.tsx src/core/primitive/Rating/index.spec.tsx src/core/primitive/SearchField/index.spec.tsx src/core/primitive/Skeleton/index.spec.tsx src/core/primitive/Slider/index.spec.tsx src/core/primitive/Spinner/index.spec.tsx src/core/primitive/Switch/index.spec.tsx src/core/primitive/Textarea/index.spec.tsx src/core/primitive/TimeField/index.spec.tsx src/offset-pop/components-forms.spec.ts src/offset-pop/components-navigation.spec.ts src/offset-pop/components-overlays.spec.ts src/core/branch/SurfaceCard/index.spec.tsx src/core/branch/SurfaceListCard/index.spec.tsx src/core/branch/SurfaceAccordionCard/index.spec.tsx src/core/branch/Rail/index.spec.tsx src/core/branch/MarkdownArticle/index.spec.tsx src/core/composite/VerticalScrollRegion/index.spec.tsx src/core/primitive/SectionHeader/index.spec.tsx src/core/primitive/PinnedActionBar/index.spec.tsx src/core/branch/SurfaceCard/ink.spec.ts src/core/data-component.spec.tsx src/core/OtpInput.spec.tsx src/core/field-variant.spec.tsx src/stories/catalog.spec.ts",
|
|
62
|
+
"test": "npm run build && node --test src/common/index.spec.mjs src/core/index.spec.mjs src/offset-pop/index.spec.mjs src/package-boundary.spec.mjs && vitest run --config vitest.config.ts src/shipped-geometry.spec.ts src/core/shipped-claims.spec.tsx src/common/conformance.spec.ts src/common/styles.spec.ts src/core/family.spec.tsx src/core/styles.spec.ts src/core/surface-card-family.spec.tsx src/core/scrollable-surfaces.spec.tsx src/core/primitive/Badge/index.spec.tsx src/core/primitive/Button/index.spec.tsx src/core/primitive/Divider/index.spec.tsx src/core/primitive/Region/index.spec.tsx src/core/primitive/NavLandmark/index.spec.tsx src/core/primitive/List/index.spec.tsx src/core/primitive/Heading/index.spec.tsx src/core/primitive/Icon/index.spec.tsx src/core/primitive/IconButton/index.spec.tsx src/core/primitive/IconTile/index.spec.tsx src/core/primitive/Input/index.spec.tsx src/core/primitive/Input/copyable.spec.tsx src/core/composite/ChatBubble/index.spec.tsx src/core/composite/FillViewport/index.spec.tsx src/core/primitive/IconButton/badge.spec.tsx src/core/primitive/Textarea/mentions.spec.tsx src/core/v090.spec.tsx src/core/primitive/PressableField/index.spec.tsx src/core/primitive/Progress/index.spec.tsx src/core/primitive/Text/index.spec.tsx src/core/primitive/TextAction/index.spec.tsx src/core/primitive/Label/index.spec.tsx src/core/primitive/RankArtwork/index.spec.tsx src/core/composite/EmptyNotice/index.spec.tsx src/core/composite/ListRow/index.spec.tsx src/core/branch/Tabs/index.spec.tsx src/core/branch/Subnav/index.spec.tsx src/core/branch/Subnav/styles.spec.ts src/core/branch/Tooltip/index.spec.tsx src/core/composition/NavigationFeatureNav/index.spec.tsx src/core/composition/NavigationFeatureNav/styles.spec.ts src/core/composition/Sidebar/index.spec.tsx src/core/composition/Sidebar/styles.spec.ts src/core/composition/collapse.spec.tsx src/core/composition/WorkspaceShell/index.spec.tsx src/core/composition/ChatWorkspace/index.spec.tsx src/heritage/index.spec.tsx src/heritage/styles.spec.ts src/offset-pop/index.spec.tsx src/offset-pop/render.spec.tsx src/offset-pop/styles.spec.ts src/offset-pop/family.spec.tsx src/offset-pop/shipped-claims.spec.tsx src/offset-pop/surface-card-family.spec.tsx src/offset-pop/scrollable-surfaces.spec.tsx src/offset-pop/conformance.spec.ts src/core/branch/Accordion/index.spec.tsx src/core/branch/AlertDialog/index.spec.tsx src/core/branch/Calendar/index.spec.tsx src/core/branch/ComboBox/index.spec.tsx src/core/branch/DataTable/index.spec.tsx src/core/branch/DatePicker/index.spec.tsx src/core/branch/DateRangePicker/index.spec.tsx src/core/branch/Dialog/index.spec.tsx src/core/branch/Disclosure/index.spec.tsx src/core/branch/Drawer/index.spec.tsx src/core/branch/DropdownMenu/index.spec.tsx src/core/branch/ListBox/index.spec.tsx src/core/branch/Popover/index.spec.tsx src/core/branch/Select/index.spec.tsx src/core/branch/Toast/index.spec.tsx src/core/composite/Alert/index.spec.tsx src/core/composite/AvatarGroup/index.spec.tsx src/core/composite/Breadcrumbs/index.spec.tsx src/core/composite/ButtonGroup/index.spec.tsx src/core/composite/CheckboxGroup/index.spec.tsx src/core/composite/DescriptionList/index.spec.tsx src/core/composite/Fieldset/index.spec.tsx src/core/composite/Form/index.spec.tsx src/core/composite/Pagination/index.spec.tsx src/core/composite/RadioGroup/index.spec.tsx src/core/composite/SegmentedControl/index.spec.tsx src/core/composite/Stepper/index.spec.tsx src/core/composite/TagGroup/index.spec.tsx src/core/composite/Timeline/index.spec.tsx src/core/composition/BottomNav/index.spec.tsx src/core/composition/Footer/index.spec.tsx src/core/composition/TopBar/index.spec.tsx src/core/primitive/Avatar/index.spec.tsx src/core/primitive/Checkbox/index.spec.tsx src/core/primitive/CloseButton/index.spec.tsx src/core/primitive/DateField/index.spec.tsx src/core/primitive/Field/index.spec.tsx src/core/primitive/FileDropzone/index.spec.tsx src/core/primitive/Image/index.spec.tsx src/core/primitive/Kbd/index.spec.tsx src/core/primitive/Link/index.spec.tsx src/core/primitive/Meter/index.spec.tsx src/core/primitive/NumberField/index.spec.tsx src/core/primitive/ProgressCircle/index.spec.tsx src/core/primitive/Rating/index.spec.tsx src/core/primitive/SearchField/index.spec.tsx src/core/primitive/Skeleton/index.spec.tsx src/core/primitive/Slider/index.spec.tsx src/core/primitive/Spinner/index.spec.tsx src/core/primitive/Switch/index.spec.tsx src/core/primitive/Textarea/index.spec.tsx src/core/primitive/TimeField/index.spec.tsx src/offset-pop/components-forms.spec.ts src/offset-pop/components-navigation.spec.ts src/offset-pop/components-overlays.spec.ts src/core/branch/SurfaceCard/index.spec.tsx src/core/branch/SurfaceListCard/index.spec.tsx src/core/branch/SurfaceAccordionCard/index.spec.tsx src/core/branch/Rail/index.spec.tsx src/core/branch/MarkdownArticle/index.spec.tsx src/core/composite/VerticalScrollRegion/index.spec.tsx src/core/primitive/SectionHeader/index.spec.tsx src/core/primitive/PinnedActionBar/index.spec.tsx src/core/branch/SurfaceCard/ink.spec.ts src/core/data-component.spec.tsx src/core/OtpInput.spec.tsx src/core/field-variant.spec.tsx src/stories/catalog.spec.ts",
|
|
63
63
|
"test:a11y": "vitest run --config vitest.a11y.config.ts",
|
|
64
64
|
"pack:check": "npm run build && node --test src/package-boundary.spec.mjs",
|
|
65
65
|
"prepack": "npm run typecheck && npm test",
|