@starci/grammar 0.9.5 → 0.9.8
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/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +129 -1
- package/dist/common/components-navigation.css +101 -0
- package/dist/common/components-overlays.css +17 -0
- package/dist/common/registry.d.ts +16 -16
- package/dist/common/renderers-forms.d.ts +7 -7
- package/dist/common/renderers-navigation.d.ts +5 -5
- 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 +14 -0
- package/dist/core/branch/ComboBox/index.d.ts +1 -1
- package/dist/core/branch/ComboBox/index.d.ts.map +1 -1
- package/dist/core/branch/ComboBox/index.js +14 -1
- package/dist/core/branch/ComboBox/index.js.map +1 -1
- package/dist/core/branch/Disclosure/index.d.ts +6 -1
- package/dist/core/branch/Disclosure/index.d.ts.map +1 -1
- package/dist/core/branch/Disclosure/index.js +5 -3
- package/dist/core/branch/Disclosure/index.js.map +1 -1
- 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 +15 -4
- package/dist/core/branch/Select/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/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/Input/index.d.ts +20 -3
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +13 -4
- package/dist/core/primitive/Input/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 +13 -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 +13 -1
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +10 -4
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/dist/offset-pop/components-forms.css +29 -0
- package/dist/offset-pop/components-navigation.css +7 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Meter/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Meter/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAqC/C,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,yEAAyE;AACzE,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;AAE3J,gGAAgG;AAChG,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEhH;;;;;;;;;;;;GAYG;AACH,MAAM,eAAe,GAAG,CAAC,QAAsC,EAAE,EAAE,CAAC,iBAAS,QAAQ,EAAE,IAAI,EAAC,OAAO,GAAG,CAAA;AAEtG,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAClB,KAAK,EACL,KAAK,EACL,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,GAAG,EACd,UAAU,EACV,IAAI,GAAG,SAAS,EAChB,aAAa,GAAG,KAAK,EACrB,QAAQ,EACR,UAAU,GAAG,KAAK,GACT,EAAE,EAAE;IACb,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CACH,4BACc,MAAM,oBACD,OAAO,kBACT,MAAM,2BACG,MAAM,uBACV,SAAS,mBACb,gBAAgB,eACpB,MAAM,EAChB,SAAS,EAAC,8CAA8C,aAExD,eAAM,SAAS,EAAC,0BAA0B,YACtC,eAAM,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,yBAAyB,YAAG,KAAK,GAAQ,GACzI,EACP,8BAAkB,MAAM,eAAW,aAAa,EAAC,SAAS,EAAC,gCAAgC,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,IAC1H,CACT,CAAA;IACL,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC1E,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1F,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACnG,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;IAC5F,OAAO,CACH,MAAC,SAAS,iBACI,MAAM,oBACD,OAAO,uBACH,IAAI,mBACT,iBAAiB,EAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,KACT,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,KACrE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAChD,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAClD,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAC/C,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,EAC7B,MAAM,EAAE,eAAe,aAEtB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpB,gBAAM,SAAS,EAAC,0BAA0B,aACtC,KAAC,SAAS,IAAC,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAa,EAClE,KAAC,SAAS,CAAC,MAAM,IAAC,SAAS,EAAC,0BAA0B,GAAG,IACtD,CACV,EACA,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CACnB,KAAC,SAAS,CAAC,KAAK,IAAC,SAAS,EAAC,yBAAyB,YAChD,KAAC,SAAS,CAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,mBAAe,UAAU,GAAG,GAChE,CACrB,CAAC,CAAC,CAAC,CACA,KAAC,SAAS,CAAC,KAAK,IAAC,SAAS,EAAC,oDAAoD,YAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACzC,8BAEgB,MAAM,EAClB,SAAS,EAAC,2BAA2B,gCACT,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAH1D,KAAK,CAIZ,CACL,CAAC,GACY,CACrB,IACO,CACf,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -14,10 +14,15 @@ export type NumberFieldProps = FieldControlProps & {
|
|
|
14
14
|
readonly hideSteppers?: boolean;
|
|
15
15
|
/** Layer variant: `secondary` when the control sits on a surface (ANATOMY-2 case-1). */
|
|
16
16
|
readonly variant?: "primary" | "secondary";
|
|
17
|
+
/**
|
|
18
|
+
* Initial unresolved content (knowledge STATE-8): the label stays real text and the input group becomes Skeleton geometry of the same size,
|
|
19
|
+
* `aria-hidden` and not focusable; the root is `aria-busy`. Value, description and error copy are not drawn.
|
|
20
|
+
*/
|
|
21
|
+
readonly isSkeleton?: boolean;
|
|
17
22
|
};
|
|
18
23
|
/**
|
|
19
24
|
* A number with stepping. The vendor owns `role="spinbutton"`-equivalent semantics on the input,
|
|
20
25
|
* locale parsing, arrow-key and wheel stepping, clamping to min/max and the localized stepper names.
|
|
21
26
|
*/
|
|
22
|
-
export declare const NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, ...field }: NumberFieldProps) => import("react").JSX.Element;
|
|
27
|
+
export declare const NumberField: ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers, variant, isSkeleton, ...field }: NumberFieldProps) => import("react").JSX.Element;
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/NumberField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/NumberField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IAC/C,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,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAA;IACjD,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAQD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,+IAczB,gBAAgB,gCAiClB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { NumberField as HeroNumberField } from "@heroui/react";
|
|
4
|
-
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
4
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
5
5
|
/*
|
|
6
6
|
* Consumer hook: `starci-core-number-field` names this control's root for a consumer or family
|
|
7
7
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-field`, so
|
|
@@ -11,5 +11,5 @@ import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, v
|
|
|
11
11
|
* A number with stepping. The vendor owns `role="spinbutton"`-equivalent semantics on the input,
|
|
12
12
|
* locale parsing, arrow-key and wheel stepping, clamping to min/max and the localized stepper names.
|
|
13
13
|
*/
|
|
14
|
-
export const NumberField = ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers = false, variant = "primary", ...field }) => (_jsxs(HeroNumberField, { "data-tier": "atom", "data-component": "NumberField", "data-contract": "A11Y-1 FIELD-1 FIELD-2 FIELD-3", className: "starci-core-field starci-core-number-field", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(minValue === undefined ? {} : { minValue }), ...(maxValue === undefined ? {} : { maxValue }), ...(step === undefined ? {} : { step }), ...(formatOptions === undefined ? {} : { formatOptions }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroNumberField.Group, { className: "starci-core-number-field-group", "data-grammar-field-control": "true", children: [hideSteppers ? null : _jsx(HeroNumberField.DecrementButton, { className: "starci-core-number-field-step" }), _jsx(HeroNumberField.Input, { ...(id === undefined ? {} : { id }), ...(placeholder === undefined ? {} : { placeholder }), className: "starci-core-number-field-input" }), hideSteppers ? null : _jsx(HeroNumberField.IncrementButton, { className: "starci-core-number-field-step" })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
14
|
+
export const NumberField = ({ id, placeholder, value, defaultValue, onValueChange, minValue, maxValue, step, formatOptions, hideSteppers = false, variant = "primary", isSkeleton = false, ...field }) => isSkeleton ? (_jsx(FieldSkeleton, { component: "NumberField", tier: "atom", label: field.label, isLabelHidden: field.isLabelHidden, isRequired: field.isRequired, variant: variant, kind: "input", className: "starci-core-number-field" })) : (_jsxs(HeroNumberField, { "data-tier": "atom", "data-component": "NumberField", "data-contract": "A11Y-1 FIELD-1 FIELD-2 FIELD-3", className: "starci-core-field starci-core-number-field", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(minValue === undefined ? {} : { minValue }), ...(maxValue === undefined ? {} : { maxValue }), ...(step === undefined ? {} : { step }), ...(formatOptions === undefined ? {} : { formatOptions }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroNumberField.Group, { className: "starci-core-number-field-group", "data-grammar-field-control": "true", children: [hideSteppers ? null : _jsx(HeroNumberField.DecrementButton, { className: "starci-core-number-field-step" }), _jsx(HeroNumberField.Input, { ...(id === undefined ? {} : { id }), ...(placeholder === undefined ? {} : { placeholder }), className: "starci-core-number-field-input" }), hideSteppers ? null : _jsx(HeroNumberField.IncrementButton, { className: "starci-core-number-field-step" })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/NumberField/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/NumberField/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ClipboardEvent } from "react";
|
|
1
2
|
import { type FieldControlProps } from "../Field/index.js";
|
|
2
3
|
export type SearchFieldProps = FieldControlProps & {
|
|
3
4
|
readonly id?: string;
|
|
@@ -15,10 +16,21 @@ export type SearchFieldProps = FieldControlProps & {
|
|
|
15
16
|
readonly clearLabel?: string;
|
|
16
17
|
/** Layer variant: `secondary` when the control sits on a surface (ANATOMY-2 case-1). */
|
|
17
18
|
readonly variant?: "primary" | "secondary";
|
|
19
|
+
/**
|
|
20
|
+
* Initial unresolved content (knowledge STATE-8): the label stays real text and the search box becomes Skeleton geometry of the same size,
|
|
21
|
+
* `aria-hidden` and not focusable; the root is `aria-busy`. Value, description and error copy are not drawn.
|
|
22
|
+
*/
|
|
23
|
+
readonly isSkeleton?: boolean;
|
|
24
|
+
/** Focus left the input. */
|
|
25
|
+
readonly onBlur?: () => void;
|
|
26
|
+
/** The native paste event of the input. */
|
|
27
|
+
readonly onPaste?: (event: ClipboardEvent<HTMLInputElement>) => void;
|
|
28
|
+
/** Focuses the input when it mounts. */
|
|
29
|
+
readonly autoFocus?: boolean;
|
|
18
30
|
};
|
|
19
31
|
/**
|
|
20
32
|
* A text field whose job is a query: `type="search"`, a clear button, Escape to clear, Enter to
|
|
21
33
|
* submit - all the vendor's. The leading glyph is decoration; the label is the name.
|
|
22
34
|
*/
|
|
23
|
-
export declare const SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, ...field }: SearchFieldProps) => import("react").JSX.Element;
|
|
35
|
+
export declare const SearchField: ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending, clearLabel, variant, isSkeleton, onBlur, onPaste, autoFocus, ...field }: SearchFieldProps) => import("react").JSX.Element;
|
|
24
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/SearchField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/SearchField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IAC/C,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,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,oDAAoD;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IACpE,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAQD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,8JAgBzB,gBAAgB,gCAuClB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { SearchField as HeroSearchField, Spinner as HeroSpinner } from "@heroui/react";
|
|
4
|
-
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
4
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
5
5
|
/*
|
|
6
6
|
* Consumer hook: `starci-core-search-field` names this control's root for a consumer or family
|
|
7
7
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-field`, so
|
|
@@ -11,5 +11,5 @@ import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, v
|
|
|
11
11
|
* A text field whose job is a query: `type="search"`, a clear button, Escape to clear, Enter to
|
|
12
12
|
* submit - all the vendor's. The leading glyph is decoration; the label is the name.
|
|
13
13
|
*/
|
|
14
|
-
export const SearchField = ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending = false, clearLabel, variant = "primary", ...field }) => (_jsxs(HeroSearchField, { "data-tier": "atom", "data-component": "SearchField", "data-contract": "A11Y-1 FIELD-1 FIELD-2 CONTROL-STATE-2", className: "starci-core-field starci-core-search-field", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps({ ...field, isPending }), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(onSubmit === undefined ? {} : { onSubmit }), ...(onClear === undefined ? {} : { onClear }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroSearchField.Group, { className: "starci-core-search-field-group", "data-grammar-field-control": "true", children: [_jsx(HeroSearchField.SearchIcon, { "aria-hidden": "true" }), _jsx(HeroSearchField.Input, { ...(id === undefined ? {} : { id }), ...(placeholder === undefined ? {} : { placeholder }), className: "starci-core-search-field-input", ...(isPending ? { "aria-busy": true } : {}) }), isPending ? _jsx(HeroSpinner, { size: "sm", color: "current", "aria-hidden": "true", className: "starci-core-field-spinner" }) : null, _jsx(HeroSearchField.ClearButton, { className: "starci-core-search-field-clear", ...(clearLabel === undefined ? {} : { "aria-label": clearLabel }) })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
14
|
+
export const SearchField = ({ id, placeholder, value, defaultValue, onValueChange, onSubmit, onClear, isPending = false, clearLabel, variant = "primary", isSkeleton = false, onBlur, onPaste, autoFocus = false, ...field }) => isSkeleton ? (_jsx(FieldSkeleton, { component: "SearchField", tier: "atom", label: field.label, isLabelHidden: field.isLabelHidden, isRequired: field.isRequired, variant: variant, kind: "input", className: "starci-core-search-field" })) : (_jsxs(HeroSearchField, { "data-tier": "atom", "data-component": "SearchField", "data-contract": "A11Y-1 FIELD-1 FIELD-2 CONTROL-STATE-2", className: "starci-core-field starci-core-search-field", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps({ ...field, isPending }), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(onSubmit === undefined ? {} : { onSubmit }), ...(onClear === undefined ? {} : { onClear }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroSearchField.Group, { className: "starci-core-search-field-group", "data-grammar-field-control": "true", children: [_jsx(HeroSearchField.SearchIcon, { "aria-hidden": "true" }), _jsx(HeroSearchField.Input, { ...(id === undefined ? {} : { id }), ...(placeholder === undefined ? {} : { placeholder }), className: "starci-core-search-field-input", ...(autoFocus ? { autoFocus: true } : {}), ...(onBlur === undefined ? {} : { onBlur: () => onBlur() }), ...(onPaste === undefined ? {} : { onPaste }), ...(isPending ? { "aria-busy": true } : {}) }), isPending ? _jsx(HeroSpinner, { size: "sm", color: "current", "aria-hidden": "true", className: "starci-core-field-spinner" }) : null, _jsx(HeroSearchField.ClearButton, { className: "starci-core-search-field-clear", ...(clearLabel === undefined ? {} : { "aria-label": clearLabel }) })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/SearchField/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/SearchField/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,13 @@ export type SectionHeaderProps = {
|
|
|
20
20
|
readonly id?: string;
|
|
21
21
|
/** Closed semantic anatomy; ContextIntro requires eyebrow, title and description. */
|
|
22
22
|
readonly composition?: "section-header" | "context-intro";
|
|
23
|
+
/**
|
|
24
|
+
* Draw the header as inert geometry while its content is unresolved (knowledge STATE-8): `title` keeps its heading rank and
|
|
25
|
+
* size but holds a Skeleton text line, `description` and `meta` become Skeleton text of their own size (each only if passed),
|
|
26
|
+
* `count` is dropped, and `action` keeps its footprint as a small Skeleton block with no control inside. `eyebrow` stays real.
|
|
27
|
+
* The skeleton parts are `aria-hidden` (the heading is hidden with its line, so no empty heading is announced); the root is `aria-busy`.
|
|
28
|
+
*/
|
|
29
|
+
readonly isSkeleton?: boolean;
|
|
23
30
|
};
|
|
24
31
|
/**
|
|
25
32
|
* Reusable title-copy-action hierarchy shared by StarCi product sections.
|
|
@@ -28,5 +35,5 @@ export type SectionHeaderProps = {
|
|
|
28
35
|
* banner landmark, and the banner belongs to the application bar (TopBar / NavigationFeatureNav /
|
|
29
36
|
* WorkspaceShell header). A section heading group must not add a second one.
|
|
30
37
|
*/
|
|
31
|
-
export declare const SectionHeader: ({ title, description, eyebrow, action, count, meta, level, className, id, composition, }: SectionHeaderProps) => import("react").JSX.Element;
|
|
38
|
+
export declare const SectionHeader: ({ title, description, eyebrow, action, count, meta, level, className, id, composition, isSkeleton, }: SectionHeaderProps) => import("react").JSX.Element;
|
|
32
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/SectionHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/SectionHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAAA;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,sGAY3B,kBAAkB,gCAkDpB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "@heroui/react";
|
|
3
3
|
import { createElement } from "react";
|
|
4
|
+
import { Skeleton } from "../Skeleton/index.js";
|
|
4
5
|
/**
|
|
5
6
|
* Reusable title-copy-action hierarchy shared by StarCi product sections.
|
|
6
7
|
*
|
|
@@ -8,5 +9,5 @@ import { createElement } from "react";
|
|
|
8
9
|
* banner landmark, and the banner belongs to the application bar (TopBar / NavigationFeatureNav /
|
|
9
10
|
* WorkspaceShell header). A section heading group must not add a second one.
|
|
10
11
|
*/
|
|
11
|
-
export const SectionHeader = ({ title, description, eyebrow, action, count, meta, level = 2, className, id, composition = "section-header", }) => (_jsxs("div", { className: cn("starci-core-section-header", className), "data-component": "SectionHeader", "data-tier": "atom", "data-contract": "GAP-5", "data-grammar-section-header": "true", "data-grammar-composition": composition, children: [_jsxs("div", { className: "starci-core-section-header-copy", "data-contract": "GAP-2", children: [eyebrow === undefined ? null : _jsx("div", { className: "starci-core-section-eyebrow", children: eyebrow }), createElement(`h${level}`, { className: "starci-core-section-title", id, "data-contract": "MARGIN-0 FLOW-3" }, title, count === undefined ? null : (_jsx("span", { className: "starci-core-section-count", "data-grammar-section-count": count, "data-contract": "TONE-2", children: ` (${count})` }, "count"))), description === undefined ? null : _jsx("div", { className: "starci-core-section-description", children: description })] }), meta === undefined ? null : _jsx("div", { className: "starci-core-section-meta", "data-contract": "FONT-1 TONE-2", children: meta }), action === undefined ? null : _jsx("div", { className: "starci-core-section-action", children: action })] }));
|
|
12
|
+
export const SectionHeader = ({ title, description, eyebrow, action, count, meta, level = 2, className, id, composition = "section-header", isSkeleton = false, }) => isSkeleton ? (_jsxs("div", { className: cn("starci-core-section-header", className), "data-component": "SectionHeader", "data-tier": "atom", "data-contract": "GAP-5 STATE-8", "data-grammar-section-header": "true", "data-grammar-composition": composition, "data-grammar-skeleton": "true", "data-loading": "true", "aria-busy": "true", children: [_jsxs("div", { className: "starci-core-section-header-copy", "data-contract": "GAP-2", children: [eyebrow === undefined ? null : _jsx("div", { className: "starci-core-section-eyebrow", children: eyebrow }), createElement(`h${level}`, { className: "starci-core-section-title starci-core-section-skeleton-title", id, "aria-hidden": "true", "data-contract": "MARGIN-0 FLOW-3" }, _jsx(Skeleton, { shape: "text" })), description === undefined ? null : _jsx("div", { "aria-hidden": "true", className: "starci-core-section-description starci-core-section-skeleton-description", children: _jsx(Skeleton, { shape: "text" }) })] }), meta === undefined ? null : _jsx("div", { "aria-hidden": "true", className: "starci-core-section-meta starci-core-section-skeleton-meta", children: _jsx(Skeleton, { shape: "text" }) }), action === undefined ? null : _jsx("div", { "aria-hidden": "true", className: "starci-core-section-action", children: _jsx("span", { className: "starci-core-section-skeleton-action", children: _jsx(Skeleton, { shape: "rect" }) }) })] })) : (_jsxs("div", { className: cn("starci-core-section-header", className), "data-component": "SectionHeader", "data-tier": "atom", "data-contract": "GAP-5", "data-grammar-section-header": "true", "data-grammar-composition": composition, children: [_jsxs("div", { className: "starci-core-section-header-copy", "data-contract": "GAP-2", children: [eyebrow === undefined ? null : _jsx("div", { className: "starci-core-section-eyebrow", children: eyebrow }), createElement(`h${level}`, { className: "starci-core-section-title", id, "data-contract": "MARGIN-0 FLOW-3" }, title, count === undefined ? null : (_jsx("span", { className: "starci-core-section-count", "data-grammar-section-count": count, "data-contract": "TONE-2", children: ` (${count})` }, "count"))), description === undefined ? null : _jsx("div", { className: "starci-core-section-description", children: description })] }), meta === undefined ? null : _jsx("div", { className: "starci-core-section-meta", "data-contract": "FONT-1 TONE-2", children: meta }), action === undefined ? null : _jsx("div", { className: "starci-core-section-action", children: action })] }));
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/SectionHeader/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/SectionHeader/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,15 @@ export type SwitchProps = Omit<FieldControlProps, "isLabelHidden"> & {
|
|
|
4
4
|
readonly isSelected?: boolean;
|
|
5
5
|
readonly defaultSelected?: boolean;
|
|
6
6
|
readonly onSelectedChange?: (isSelected: boolean) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Initial unresolved content (knowledge STATE-8): the label stays real text and the switch track becomes a Skeleton of the same size,
|
|
9
|
+
* `aria-hidden`, no `role="switch"` and nothing focusable; the root is `aria-busy`.
|
|
10
|
+
*/
|
|
11
|
+
readonly isSkeleton?: boolean;
|
|
7
12
|
};
|
|
8
13
|
/**
|
|
9
14
|
* An immediate on/off setting (`role="switch"`). Use Checkbox for a choice that only takes effect
|
|
10
15
|
* on submit. The label is part of the hit area; Space toggles.
|
|
11
16
|
*/
|
|
12
|
-
export declare const Switch: ({ value, isSelected, defaultSelected, onSelectedChange, ...field }: SwitchProps) => import("react").JSX.Element;
|
|
17
|
+
export declare const Switch: ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton, ...field }: SwitchProps) => import("react").JSX.Element;
|
|
13
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Switch/index.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Switch/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAQD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,gFAAwF,WAAW,gCAuBzH,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Switch as HeroSwitch } from "@heroui/react";
|
|
4
|
-
import { FieldDescription, FieldErrorText, FieldLabel, vendorFieldProps, } from "../Field/index.js";
|
|
4
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, vendorFieldProps, } from "../Field/index.js";
|
|
5
5
|
/*
|
|
6
6
|
* Consumer hook: `starci-core-switch` names this control's root for a consumer or family
|
|
7
7
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-choice`, so
|
|
@@ -11,5 +11,5 @@ import { FieldDescription, FieldErrorText, FieldLabel, vendorFieldProps, } from
|
|
|
11
11
|
* An immediate on/off setting (`role="switch"`). Use Checkbox for a choice that only takes effect
|
|
12
12
|
* on submit. The label is part of the hit area; Space toggles.
|
|
13
13
|
*/
|
|
14
|
-
export const Switch = ({ value, isSelected, defaultSelected, onSelectedChange, ...field }) => (_jsxs(HeroSwitch, { "data-tier": "atom", "data-component": "Switch", "data-contract": "A11Y-1 FIELD-1 CONTROL-STATE-3", className: "starci-core-choice starci-core-switch", ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? {} : { value }), ...(isSelected === undefined ? defaultSelected === undefined ? {} : { defaultSelected } : { isSelected }), ...(onSelectedChange === undefined ? {} : { onChange: onSelectedChange }), children: [_jsxs(HeroSwitch.Content, { className: "starci-core-choice-content", "data-grammar-choice-target": "true", children: [_jsx(HeroSwitch.Control, { className: "starci-core-choice-control", "data-grammar-choice-control": "switch", children: _jsx(HeroSwitch.Thumb, {}) }), _jsx(FieldLabel, { children: field.label })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
14
|
+
export const Switch = ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton = false, ...field }) => isSkeleton ? (_jsx(FieldSkeleton, { component: "Switch", tier: "atom", label: field.label, isRequired: field.isRequired, kind: "switch", className: "starci-core-switch" })) : (_jsxs(HeroSwitch, { "data-tier": "atom", "data-component": "Switch", "data-contract": "A11Y-1 FIELD-1 CONTROL-STATE-3", className: "starci-core-choice starci-core-switch", ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? {} : { value }), ...(isSelected === undefined ? defaultSelected === undefined ? {} : { defaultSelected } : { isSelected }), ...(onSelectedChange === undefined ? {} : { onChange: onSelectedChange }), children: [_jsxs(HeroSwitch.Content, { className: "starci-core-choice-content", "data-grammar-choice-target": "true", children: [_jsx(HeroSwitch.Control, { className: "starci-core-choice-control", "data-grammar-choice-control": "switch", children: _jsx(HeroSwitch.Thumb, {}) }), _jsx(FieldLabel, { children: field.label })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Switch/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Switch/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;AAc1B;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CACxI,KAAC,aAAa,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,GAAG,CAClJ,CAAC,CAAC,CAAC,CACA,MAAC,UAAU,iBACG,MAAM,oBACD,QAAQ,mBACT,gCAAgC,EAC9C,SAAS,EAAC,uCAAuC,KAC7C,gBAAgB,CAAC,KAAK,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,KACjC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KACtC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KACtG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,aAE1E,MAAC,UAAU,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,gCAA4B,MAAM,aACxF,KAAC,UAAU,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,iCAA6B,QAAQ,YAC3F,KAAC,UAAU,CAAC,KAAK,KAAG,GACH,EACrB,KAAC,UAAU,cAAE,KAAK,CAAC,KAAK,GAAc,IACrB,EACrB,KAAC,gBAAgB,cAAE,KAAK,CAAC,WAAW,GAAoB,EACxD,KAAC,cAAc,cAAE,KAAK,CAAC,YAAY,GAAkB,IAC5C,CAChB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ClipboardEvent } from "react";
|
|
1
2
|
import { type FieldControlProps } from "../Field/index.js";
|
|
2
3
|
/** One person or agent the reader can mention. `label` is what is inserted after the trigger. */
|
|
3
4
|
export type TextareaMentionOption = {
|
|
@@ -26,6 +27,11 @@ export type TextareaProps = FieldControlProps & {
|
|
|
26
27
|
readonly defaultValue?: string;
|
|
27
28
|
/** Initial visible lines. The field still grows with the reader's own resize. */
|
|
28
29
|
readonly rows?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Initial unresolved content (knowledge STATE-8): the label stays real and the field becomes a Skeleton block of the
|
|
32
|
+
* `rows` height, `aria-hidden` and not focusable; the root is `aria-busy`.
|
|
33
|
+
*/
|
|
34
|
+
readonly isSkeleton?: boolean;
|
|
29
35
|
/** Also shows a live `count / max` beside the guidance. */
|
|
30
36
|
readonly maxLength?: number;
|
|
31
37
|
readonly minLength?: number;
|
|
@@ -38,6 +44,12 @@ export type TextareaProps = FieldControlProps & {
|
|
|
38
44
|
*/
|
|
39
45
|
readonly onSubmitShortcut?: () => void;
|
|
40
46
|
readonly mentions?: TextareaMentions;
|
|
47
|
+
/** Focus left the textarea. */
|
|
48
|
+
readonly onBlur?: () => void;
|
|
49
|
+
/** The native paste event of the textarea. */
|
|
50
|
+
readonly onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;
|
|
51
|
+
/** Focuses the textarea when it mounts. */
|
|
52
|
+
readonly autoFocus?: boolean;
|
|
41
53
|
};
|
|
42
54
|
type MentionQuery = {
|
|
43
55
|
readonly start: number;
|
|
@@ -49,6 +61,6 @@ export declare const findMentionQuery: (text: string, caret: number, trigger?: s
|
|
|
49
61
|
/** Options whose label (accent- and case-insensitive) contains the query, at most eight. */
|
|
50
62
|
export declare const filterMentionOptions: (options: ReadonlyArray<TextareaMentionOption>, query: string) => ReadonlyArray<TextareaMentionOption>;
|
|
51
63
|
/** 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;
|
|
64
|
+
export declare const Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus, ...field }: TextareaProps) => import("react").JSX.Element;
|
|
53
65
|
export {};
|
|
54
66
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,cAAc,EAAsB,MAAM,OAAO,CAAA;AACzF,OAAO,EAQH,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;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,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;IACpC,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IACvE,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC/B,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,4KAiBtB,aAAa,gCAqKf,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
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
4
|
import { useId, useMemo, useState } from "react";
|
|
5
|
-
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, isFieldInvalid, vendorFieldProps, } from "../Field/index.js";
|
|
5
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, isFieldInvalid, vendorFieldProps, } from "../Field/index.js";
|
|
6
6
|
const fold = (s) => s.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
|
|
7
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
8
|
export const findMentionQuery = (text, caret, trigger = "@") => {
|
|
@@ -28,7 +28,7 @@ export const filterMentionOptions = (options, query) => {
|
|
|
28
28
|
* a rule on the hook adds to the shared anatomy and never has to replace it.
|
|
29
29
|
*/
|
|
30
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 }) => {
|
|
31
|
+
export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, isSkeleton = false, maxLength, minLength, onValueChange, variant = "primary", onSubmitShortcut, mentions, onBlur, onPaste, autoFocus = false, ...field }) => {
|
|
32
32
|
const [uncontrolledLength, setUncontrolledLength] = useState((defaultValue ?? "").length);
|
|
33
33
|
const length = value === undefined ? uncontrolledLength : value.length;
|
|
34
34
|
const generatedId = useId();
|
|
@@ -90,6 +90,9 @@ export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, maxLe
|
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
92
|
const activeId = isOpen ? `${listId}-${suggestions[active]?.id ?? ""}` : undefined;
|
|
93
|
+
if (isSkeleton) {
|
|
94
|
+
return _jsx(FieldSkeleton, { component: "Textarea", tier: "atom", label: field.label, isLabelHidden: field.isLabelHidden, isRequired: field.isRequired, variant: variant, kind: "textarea", rows: rows, className: "starci-core-textarea" });
|
|
95
|
+
}
|
|
93
96
|
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) => {
|
|
94
97
|
setUncontrolledLength(next.length);
|
|
95
98
|
onValueChange?.(next);
|
|
@@ -101,7 +104,11 @@ export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, maxLe
|
|
|
101
104
|
readQuery(control);
|
|
102
105
|
});
|
|
103
106
|
}
|
|
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, ...(
|
|
107
|
+
}, 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, ...(autoFocus ? { autoFocus: true } : {}), ...(onPaste === undefined ? {} : { onPaste }), onBlur: () => {
|
|
108
|
+
if (mentions !== undefined)
|
|
109
|
+
setQuery(null);
|
|
110
|
+
onBlur?.();
|
|
111
|
+
}, ...(mentions === undefined
|
|
105
112
|
? {}
|
|
106
113
|
: {
|
|
107
114
|
onKeyUp: (event) => {
|
|
@@ -109,7 +116,6 @@ export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, maxLe
|
|
|
109
116
|
readQuery(event.currentTarget);
|
|
110
117
|
},
|
|
111
118
|
onClick: (event) => readQuery(event.currentTarget),
|
|
112
|
-
onBlur: () => setQuery(null),
|
|
113
119
|
"aria-autocomplete": "list",
|
|
114
120
|
// A textbox may carry aria-controls / aria-autocomplete / aria-activedescendant, not aria-expanded (ARIA 1.2);
|
|
115
121
|
// both references are set only while the list exists, so they never point at a missing element.
|
|
@@ -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,KAAK,EAAE,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,35 @@
|
|
|
69
69
|
border-color var(--offset-pop-transition);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
/*
|
|
73
|
+
* A ComboBox draws its box on the input group (ink outline, surface paint, control radius, the one field height of
|
|
74
|
+
* Common's anatomy). The vendor input inside is only the text: no paint of its own (the secondary layer's tint
|
|
75
|
+
* would otherwise fill the group and read as a second, differently cornered box), no outline, the group's corner.
|
|
76
|
+
*/
|
|
77
|
+
.grammar-common-root[data-grammar-family="offset-pop"] [data-component="ComboBox"] .starci-core-combo-box-input {
|
|
78
|
+
border: 0;
|
|
79
|
+
border-radius: inherit;
|
|
80
|
+
background: transparent;
|
|
81
|
+
box-shadow: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* A loading Select or Textarea (knowledge STATE-8) keeps the field box: ink outline and control radius around the skeleton block. */
|
|
85
|
+
.grammar-common-root[data-grammar-family="offset-pop"] :is([data-component="Select"], [data-component="Textarea"], [data-component="NumberField"], [data-component="SearchField"], [data-component="SegmentedControl"]) .starci-core-field-skeleton-control {
|
|
86
|
+
box-sizing: border-box;
|
|
87
|
+
border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
|
|
88
|
+
border-radius: var(--offset-pop-control-radius);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.grammar-common-root[data-grammar-family="offset-pop"] :is([data-component="Select"], [data-component="Textarea"], [data-component="NumberField"], [data-component="SearchField"], [data-component="SegmentedControl"]) .starci-core-field-skeleton-control > .starci-core-skeleton {
|
|
92
|
+
border-radius: calc(var(--offset-pop-control-radius) - var(--offset-pop-outline-width));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* A loading checkbox box or switch track keeps the ink outline of the real control. */
|
|
96
|
+
.grammar-common-root[data-grammar-family="offset-pop"] :is([data-component="CheckboxGroup"], [data-component="Switch"]) .starci-core-field-skeleton-control {
|
|
97
|
+
box-sizing: border-box;
|
|
98
|
+
border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
|
|
99
|
+
}
|
|
100
|
+
|
|
72
101
|
/* Focus: the hard offset shadow, ink by default, critical while invalid. */
|
|
73
102
|
.grammar-common-root[data-grammar-family="offset-pop"] :is([data-component="Select"], [data-component="ComboBox"], [data-component="SearchField"], [data-component="NumberField"], [data-component="DateField"], [data-component="TimeField"], [data-component="DatePicker"], [data-component="DateRangePicker"], [data-component="Textarea"]) [data-grammar-field-control="true"]:is(:focus-visible, :focus-within, [data-focus-visible="true"], [data-focus-within="true"]),
|
|
74
103
|
.grammar-common-root[data-grammar-family="offset-pop"] [data-component="Field"] [data-grammar-field-control="true"] > :where(input, select, textarea):focus-visible,
|
|
@@ -173,6 +173,13 @@
|
|
|
173
173
|
font-weight: 800;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
/* Selectable chips take the secondary-button treatment: --default fill (via the Common token hook), ink outline, a small ink offset. */
|
|
177
|
+
.grammar-common-root[data-grammar-family="offset-pop"] :is([data-grammar-tag-selection="single"], [data-grammar-tag-selection="multiple"]) [data-grammar-tag]:not([data-grammar-tag-state="off"]) {
|
|
178
|
+
--starci-core-tag-bg: var(--default);
|
|
179
|
+
--starci-core-tag-bg-hover: var(--default-hover, var(--default));
|
|
180
|
+
box-shadow: 0.125rem 0.125rem 0 var(--offset-pop-shadow-ink);
|
|
181
|
+
}
|
|
182
|
+
|
|
176
183
|
.grammar-common-root[data-grammar-family="offset-pop"] [data-component="TagGroup"] [data-grammar-tag]:has(> [data-grammar-selected="true"]) {
|
|
177
184
|
background: var(--offset-pop-pink);
|
|
178
185
|
color: var(--accent-foreground);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starci/grammar",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.8",
|
|
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/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/v093.spec.tsx src/core/v094.spec.tsx src/core/v095.spec.tsx src/core/loading.spec.tsx src/core/branch/FlowGraph/index.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",
|
|
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/v093.spec.tsx src/core/v094.spec.tsx src/core/v095.spec.tsx src/core/v096.spec.tsx src/core/v097.spec.tsx src/core/v098.spec.tsx src/core/loading.spec.tsx src/core/branch/FlowGraph/index.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",
|