@starci/grammar 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +26 -0
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-forms.css +27 -43
  4. package/dist/common/components-list-panel.css +8 -0
  5. package/dist/common/components-navigation.css +163 -6
  6. package/dist/common/components-overlays.css +41 -2
  7. package/dist/common/registry.d.ts +24 -21
  8. package/dist/common/registry.d.ts.map +1 -1
  9. package/dist/common/registry.js +4 -4
  10. package/dist/common/registry.js.map +1 -1
  11. package/dist/common/renderers-forms.d.ts +11 -11
  12. package/dist/common/renderers-navigation.d.ts +5 -5
  13. package/dist/common/renderers-navigation.d.ts.map +1 -1
  14. package/dist/common/renderers-navigation.js +1 -1
  15. package/dist/common/renderers-navigation.js.map +1 -1
  16. package/dist/common/renderers-overlays.d.ts +2 -2
  17. package/dist/common/renderers-overlays.d.ts.map +1 -1
  18. package/dist/common/renderers-overlays.js.map +1 -1
  19. package/dist/common/renderers.d.ts +4 -1
  20. package/dist/common/renderers.d.ts.map +1 -1
  21. package/dist/common/renderers.js +3 -0
  22. package/dist/common/renderers.js.map +1 -1
  23. package/dist/common/styles.css +229 -46
  24. package/dist/core/branch/ComboBox/index.d.ts +5 -5
  25. package/dist/core/branch/ComboBox/index.d.ts.map +1 -1
  26. package/dist/core/branch/ComboBox/index.js +9 -2
  27. package/dist/core/branch/ComboBox/index.js.map +1 -1
  28. package/dist/core/branch/DataTable/index.d.ts +20 -3
  29. package/dist/core/branch/DataTable/index.d.ts.map +1 -1
  30. package/dist/core/branch/DataTable/index.js +45 -8
  31. package/dist/core/branch/DataTable/index.js.map +1 -1
  32. package/dist/core/branch/FlowGraph/index.d.ts +26 -7
  33. package/dist/core/branch/FlowGraph/index.d.ts.map +1 -1
  34. package/dist/core/branch/FlowGraph/index.js +132 -30
  35. package/dist/core/branch/FlowGraph/index.js.map +1 -1
  36. package/dist/core/branch/FlowGraph/layout.d.ts +34 -1
  37. package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -1
  38. package/dist/core/branch/FlowGraph/layout.js +82 -0
  39. package/dist/core/branch/FlowGraph/layout.js.map +1 -1
  40. package/dist/core/branch/FlowGraph/types.d.ts +13 -1
  41. package/dist/core/branch/FlowGraph/types.d.ts.map +1 -1
  42. package/dist/core/branch/ListBox/index.d.ts +4 -2
  43. package/dist/core/branch/ListBox/index.d.ts.map +1 -1
  44. package/dist/core/branch/ListBox/index.js +2 -2
  45. package/dist/core/branch/ListBox/index.js.map +1 -1
  46. package/dist/core/branch/MarkdownArticle/index.d.ts +7 -1
  47. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -1
  48. package/dist/core/branch/MarkdownArticle/index.js +5 -2
  49. package/dist/core/branch/MarkdownArticle/index.js.map +1 -1
  50. package/dist/core/branch/Select/index.d.ts +6 -8
  51. package/dist/core/branch/Select/index.d.ts.map +1 -1
  52. package/dist/core/branch/Select/index.js +9 -5
  53. package/dist/core/branch/Select/index.js.map +1 -1
  54. package/dist/core/branch/SurfaceCard/index.d.ts +9 -0
  55. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  56. package/dist/core/branch/SurfaceCard/index.js +3 -2
  57. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  58. package/dist/core/branch/Tabs/index.d.ts.map +1 -1
  59. package/dist/core/branch/Tabs/index.js +17 -0
  60. package/dist/core/branch/Tabs/index.js.map +1 -1
  61. package/dist/core/branch/Tooltip/index.d.ts +9 -1
  62. package/dist/core/branch/Tooltip/index.d.ts.map +1 -1
  63. package/dist/core/branch/Tooltip/index.js +2 -2
  64. package/dist/core/branch/Tooltip/index.js.map +1 -1
  65. package/dist/core/collectionItem.d.ts +3 -3
  66. package/dist/core/collectionItem.d.ts.map +1 -1
  67. package/dist/core/composite/Alert/index.d.ts +5 -0
  68. package/dist/core/composite/Alert/index.d.ts.map +1 -1
  69. package/dist/core/composite/Alert/index.js +7 -2
  70. package/dist/core/composite/Alert/index.js.map +1 -1
  71. package/dist/core/composite/CheckboxGroup/index.d.ts +6 -5
  72. package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
  73. package/dist/core/composite/CheckboxGroup/index.js +10 -3
  74. package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
  75. package/dist/core/composite/DescriptionList/index.d.ts +3 -2
  76. package/dist/core/composite/DescriptionList/index.d.ts.map +1 -1
  77. package/dist/core/composite/DescriptionList/index.js +5 -4
  78. package/dist/core/composite/DescriptionList/index.js.map +1 -1
  79. package/dist/core/composite/RadioGroup/index.d.ts +5 -3
  80. package/dist/core/composite/RadioGroup/index.d.ts.map +1 -1
  81. package/dist/core/composite/RadioGroup/index.js +9 -2
  82. package/dist/core/composite/RadioGroup/index.js.map +1 -1
  83. package/dist/core/composite/SegmentedControl/index.d.ts +6 -6
  84. package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -1
  85. package/dist/core/composite/SegmentedControl/index.js +9 -5
  86. package/dist/core/composite/SegmentedControl/index.js.map +1 -1
  87. package/dist/core/composite/TagGroup/index.d.ts +27 -4
  88. package/dist/core/composite/TagGroup/index.d.ts.map +1 -1
  89. package/dist/core/composite/TagGroup/index.js +132 -2
  90. package/dist/core/composite/TagGroup/index.js.map +1 -1
  91. package/dist/core/composite/Timeline/index.d.ts +5 -0
  92. package/dist/core/composite/Timeline/index.d.ts.map +1 -1
  93. package/dist/core/composite/Timeline/index.js +1 -1
  94. package/dist/core/composite/Timeline/index.js.map +1 -1
  95. package/dist/core/composition/Sidebar/index.d.ts +4 -0
  96. package/dist/core/composition/Sidebar/index.d.ts.map +1 -1
  97. package/dist/core/composition/Sidebar/index.js +4 -2
  98. package/dist/core/composition/Sidebar/index.js.map +1 -1
  99. package/dist/core/index.d.ts +1 -1
  100. package/dist/core/index.d.ts.map +1 -1
  101. package/dist/core/primitive/Avatar/index.d.ts +1 -1
  102. package/dist/core/primitive/Badge/index.d.ts +8 -5
  103. package/dist/core/primitive/Badge/index.d.ts.map +1 -1
  104. package/dist/core/primitive/Badge/index.js +14 -5
  105. package/dist/core/primitive/Badge/index.js.map +1 -1
  106. package/dist/core/primitive/Button/index.d.ts +10 -2
  107. package/dist/core/primitive/Button/index.d.ts.map +1 -1
  108. package/dist/core/primitive/Button/index.js +15 -4
  109. package/dist/core/primitive/Button/index.js.map +1 -1
  110. package/dist/core/primitive/Checkbox/index.d.ts +5 -3
  111. package/dist/core/primitive/Checkbox/index.d.ts.map +1 -1
  112. package/dist/core/primitive/Checkbox/index.js +9 -2
  113. package/dist/core/primitive/Checkbox/index.js.map +1 -1
  114. package/dist/core/primitive/Code/index.d.ts +10 -0
  115. package/dist/core/primitive/Code/index.d.ts.map +1 -0
  116. package/dist/core/primitive/Code/index.js +5 -0
  117. package/dist/core/primitive/Code/index.js.map +1 -0
  118. package/dist/core/primitive/Field/index.d.ts +12 -25
  119. package/dist/core/primitive/Field/index.d.ts.map +1 -1
  120. package/dist/core/primitive/Field/index.js +13 -14
  121. package/dist/core/primitive/Field/index.js.map +1 -1
  122. package/dist/core/primitive/GrammarRoot/index.d.ts +8 -1
  123. package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -1
  124. package/dist/core/primitive/GrammarRoot/index.js +5 -1
  125. package/dist/core/primitive/GrammarRoot/index.js.map +1 -1
  126. package/dist/core/primitive/Icon/index.d.ts.map +1 -1
  127. package/dist/core/primitive/Icon/index.js +3 -2
  128. package/dist/core/primitive/Icon/index.js.map +1 -1
  129. package/dist/core/primitive/Input/index.d.ts +9 -4
  130. package/dist/core/primitive/Input/index.d.ts.map +1 -1
  131. package/dist/core/primitive/Input/index.js +13 -8
  132. package/dist/core/primitive/Input/index.js.map +1 -1
  133. package/dist/core/primitive/Meter/index.d.ts +4 -1
  134. package/dist/core/primitive/Meter/index.d.ts.map +1 -1
  135. package/dist/core/primitive/Meter/index.js +3 -3
  136. package/dist/core/primitive/Meter/index.js.map +1 -1
  137. package/dist/core/primitive/NumberField/index.d.ts +6 -5
  138. package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
  139. package/dist/core/primitive/NumberField/index.js +10 -3
  140. package/dist/core/primitive/NumberField/index.js.map +1 -1
  141. package/dist/core/primitive/PinnedActionBar/index.d.ts +25 -6
  142. package/dist/core/primitive/PinnedActionBar/index.d.ts.map +1 -1
  143. package/dist/core/primitive/PinnedActionBar/index.js +9 -4
  144. package/dist/core/primitive/PinnedActionBar/index.js.map +1 -1
  145. package/dist/core/primitive/SearchField/index.d.ts +6 -5
  146. package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
  147. package/dist/core/primitive/SearchField/index.js +10 -3
  148. package/dist/core/primitive/SearchField/index.js.map +1 -1
  149. package/dist/core/primitive/SectionHeader/index.d.ts +3 -3
  150. package/dist/core/primitive/SectionHeader/index.js +2 -2
  151. package/dist/core/primitive/SectionHeader/index.js.map +1 -1
  152. package/dist/core/primitive/Skeleton/index.d.ts +11 -0
  153. package/dist/core/primitive/Skeleton/index.d.ts.map +1 -1
  154. package/dist/core/primitive/Skeleton/index.js +12 -1
  155. package/dist/core/primitive/Skeleton/index.js.map +1 -1
  156. package/dist/core/primitive/StatusDot/index.d.ts +61 -0
  157. package/dist/core/primitive/StatusDot/index.d.ts.map +1 -0
  158. package/dist/core/primitive/StatusDot/index.js +55 -0
  159. package/dist/core/primitive/StatusDot/index.js.map +1 -0
  160. package/dist/core/primitive/Switch/index.d.ts +4 -3
  161. package/dist/core/primitive/Switch/index.d.ts.map +1 -1
  162. package/dist/core/primitive/Switch/index.js +5 -2
  163. package/dist/core/primitive/Switch/index.js.map +1 -1
  164. package/dist/core/primitive/Terminal/index.d.ts +20 -0
  165. package/dist/core/primitive/Terminal/index.d.ts.map +1 -0
  166. package/dist/core/primitive/Terminal/index.js +29 -0
  167. package/dist/core/primitive/Terminal/index.js.map +1 -0
  168. package/dist/core/primitive/Text/index.d.ts +5 -1
  169. package/dist/core/primitive/Text/index.d.ts.map +1 -1
  170. package/dist/core/primitive/Text/index.js +12 -7
  171. package/dist/core/primitive/Text/index.js.map +1 -1
  172. package/dist/core/primitive/TextAction/index.d.ts.map +1 -1
  173. package/dist/core/primitive/TextAction/index.js +9 -4
  174. package/dist/core/primitive/TextAction/index.js.map +1 -1
  175. package/dist/core/primitive/Textarea/index.d.ts +8 -4
  176. package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
  177. package/dist/core/primitive/Textarea/index.js +9 -5
  178. package/dist/core/primitive/Textarea/index.js.map +1 -1
  179. package/dist/core/styles.css +17 -5
  180. package/dist/offset-pop/components-forms.css +0 -17
  181. package/dist/offset-pop/components-navigation.css +30 -4
  182. package/dist/offset-pop/components-overlays.css +5 -0
  183. package/dist/offset-pop/index.d.ts +1 -1
  184. package/dist/offset-pop/index.d.ts.map +1 -1
  185. package/dist/offset-pop/styles.css +44 -0
  186. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { Link as HeroLink, Spinner, skeletonVariants } from "@heroui/react";
4
4
  import { useRef } from "react";
5
5
  import { getActionClassName } from "../actionStyles.js";
@@ -82,9 +82,6 @@ export const TextAction = (props) => {
82
82
  const { children, startContent, endContent, appearance = "inline", size = "sm", isCurrent = false, isDisabled = false, isPending = false, isSkeleton = false, } = props;
83
83
  const pressLockRef = useRef(false);
84
84
  const unavailable = isDisabled || isPending;
85
- if (isSkeleton) {
86
- return _jsx("span", { "data-tier": "atom", "data-component": "TextAction", "data-loading": "true", "data-grammar-control-size": size === "control" ? "control" : undefined, "aria-hidden": true, className: SKELETON_CLASS_NAME, children: "\u00A0" });
87
- }
88
85
  const shared = {
89
86
  "data-tier": "atom",
90
87
  "data-component": "TextAction",
@@ -97,6 +94,14 @@ export const TextAction = (props) => {
97
94
  "data-contract": getActionContract(appearance, size, isCurrent),
98
95
  className: getActionClassName(),
99
96
  };
97
+ /*
98
+ * Skeleton parity: the loading action is the same recipe on an inert span (appearance, size and pressable floor
99
+ * unchanged), so it keeps the ready action's box. Its label stays laid out as a measured placeholder inside the
100
+ * shimmer bar; the start and end content keep their places, unseen.
101
+ */
102
+ if (isSkeleton) {
103
+ return (_jsxs("span", { ...shared, "aria-busy": undefined, "data-element": "span", "data-loading": "true", "aria-hidden": "true", "data-contract": FONT_RULE_BY_SIZE[size], children: [startContent == null ? null : _jsx("span", { className: "starci-core-text-action-placeholder", children: startContent }), _jsx("span", { className: SKELETON_CLASS_NAME, children: children }), endContent == null ? null : _jsx("span", { className: "starci-core-text-action-placeholder", children: endContent })] }));
104
+ }
100
105
  const content = (_jsxs(_Fragment, { children: [isPending ? _jsx(Spinner, { size: "sm", color: "current", "aria-hidden": "true" }) : startContent, _jsx("span", { children: children }), isPending ? null : endContent] }));
101
106
  if (props.href !== undefined) {
102
107
  const { href, target, rel, download, onFollow } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/TextAction/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/TextAction/index.tsx"],"names":[],"mappings":"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"}
@@ -28,8 +28,9 @@ export type TextareaProps = FieldControlProps & {
28
28
  /** Initial visible lines. The field still grows with the reader's own resize. */
29
29
  readonly rows?: number;
30
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`.
31
+ * Initial unresolved content (knowledge STATE-8), with skeleton parity: the ready anatomy at the same props (label,
32
+ * description, control box, options) inside an inert, `aria-busy` scope, its control box painted as a Skeleton and its
33
+ * value or mark not drawn, so the loading field keeps the ready box. Nothing is invalid or pending while it loads.
33
34
  */
34
35
  readonly isSkeleton?: boolean;
35
36
  /** Also shows a live `count / max` beside the guidance. */
@@ -60,7 +61,10 @@ type MentionQuery = {
60
61
  export declare const findMentionQuery: (text: string, caret: number, trigger?: string) => MentionQuery | null;
61
62
  /** Options whose label (accent- and case-insensitive) contains the query, at most eight. */
62
63
  export declare const filterMentionOptions: (options: ReadonlyArray<TextareaMentionOption>, query: string) => ReadonlyArray<TextareaMentionOption>;
63
- /** Multi-line text with the shared field anatomy, an optional Enter-to-submit shortcut and optional mention suggestions. */
64
- export declare const Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant: requestedVariant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus, ...field }: TextareaProps) => import("react").JSX.Element;
64
+ /**
65
+ * Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
66
+ * `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
67
+ */
68
+ export declare const Textarea: ({ isSkeleton, ...props }: TextareaProps) => import("react").JSX.Element;
65
69
  export {};
66
70
  //# 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,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,iGAAiG;IACjG,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,8LAiBtB,aAAa,gCAsKf,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,cAAc,EAAsB,MAAM,OAAO,CAAA;AACzF,OAAO,EASH,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;;;;OAIG;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,iGAAiG;IACjG,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;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,0BAAkC,aAAa,gCAEpC,CAAA"}
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useFieldVariant } from "../../surfaceContext.js";
4
4
  import { TextArea as HeroTextArea, TextField as HeroTextField } from "@heroui/react";
5
5
  import { useId, useMemo, useState } from "react";
6
- import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, isFieldInvalid, vendorFieldProps, } from "../Field/index.js";
6
+ import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeletonScope, loadingFieldProps, fieldVariantAttributes, isFieldInvalid, vendorFieldProps, } from "../Field/index.js";
7
7
  const fold = (s) => s.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
8
8
  /** The trigger word that ends at the caret (`@an` in "hi @an|"), or null. The trigger must start the text or follow a space. */
9
9
  export const findMentionQuery = (text, caret, trigger = "@") => {
@@ -28,8 +28,15 @@ export const filterMentionOptions = (options, query) => {
28
28
  * stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-field`, so
29
29
  * a rule on the hook adds to the shared anatomy and never has to replace it.
30
30
  */
31
+ /**
32
+ * Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
33
+ * `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
34
+ */
35
+ export const Textarea = ({ isSkeleton = false, ...props }) => isSkeleton
36
+ ? _jsx(FieldSkeletonScope, { component: "Textarea", children: _jsx(TextareaControl, { ...loadingFieldProps(props) }) })
37
+ : _jsx(TextareaControl, { ...props });
31
38
  /** Multi-line text with the shared field anatomy, an optional Enter-to-submit shortcut and optional mention suggestions. */
32
- export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, isSkeleton = false, maxLength, minLength, onValueChange, variant: requestedVariant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus = false, ...field }) => {
39
+ const TextareaControl = ({ id, placeholder, value, defaultValue, rows = 4, maxLength, minLength, onValueChange, variant: requestedVariant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus = false, ...field }) => {
33
40
  const variant = useFieldVariant(requestedVariant);
34
41
  const [uncontrolledLength, setUncontrolledLength] = useState((defaultValue ?? "").length);
35
42
  const length = value === undefined ? uncontrolledLength : value.length;
@@ -92,9 +99,6 @@ export const Textarea = ({ id, placeholder, value, defaultValue, rows = 4, isSke
92
99
  }
93
100
  };
94
101
  const activeId = isOpen ? `${listId}-${suggestions[active]?.id ?? ""}` : undefined;
95
- if (isSkeleton) {
96
- 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" });
97
- }
98
102
  return (_jsxs(HeroTextField, { "data-tier": "atom", "data-component": "Textarea", "data-contract": "A11Y-1 FEEDBACK-1 STATE-1", 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) => {
99
103
  setUncontrolledLength(next.length);
100
104
  onValueChange?.(next);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Textarea/index.tsx"],"names":[],"mappings":"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"}
@@ -42,6 +42,10 @@
42
42
  --starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
43
43
  --starci-core-motion-duration: 180ms;
44
44
  --starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
45
+ /* The Terminal console: dark in both themes. */
46
+ --starci-core-terminal-background: oklch(20% 0.01 286);
47
+ --starci-core-terminal-foreground: oklch(92% 0.005 286);
48
+ --starci-core-terminal-title-foreground: oklch(72% 0.01 286);
45
49
 
46
50
  /* HeroUI and existing Grammar anatomy resolve through the same DNA. */
47
51
  --accent: var(--starci-core-accent);
@@ -53,6 +57,9 @@
53
57
  --surface-foreground: var(--starci-core-foreground);
54
58
  --surface-secondary: var(--starci-core-surface-secondary);
55
59
  --surface-secondary-foreground: var(--starci-core-foreground);
60
+ --terminal-background: var(--starci-core-terminal-background);
61
+ --terminal-foreground: var(--starci-core-terminal-foreground);
62
+ --terminal-title-foreground: var(--starci-core-terminal-title-foreground);
56
63
  /*
57
64
  * The StarCi tertiary face (a raised band on the secondary surface) is published under the
58
65
  * family's own name, never as HeroUI's --surface-tertiary: that vendor variable stays Common's
@@ -125,25 +132,30 @@
125
132
  --starci-core-accent: var(--starci-core-accent-text);
126
133
  }
127
134
 
128
- /* StarCi labelled surfaces paint one material box around label and content. */
135
+ /*
136
+ * Card label placement (ruling card-label-placement-per-grammar): a FLOATING Core card keeps Common's anatomy, its label
137
+ * an unpainted row above the material. A PANEL card (`placement="panel"`: a docked panel or full-height region of the
138
+ * layout) carries its title inside, as the card header: one material box around title and content, the title inset
139
+ * by the surface inset, and the content frame (also inside a highlight) losing its own material so it paints once.
140
+ */
129
141
  .grammar-common-root[data-grammar-family="core"]
130
- .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"] {
142
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-surface-placement="panel"][data-grammar-frame="bounded"] {
131
143
  overflow: hidden;
132
144
  background: var(--starci-core-surface, var(--surface, Canvas));
133
145
  box-shadow: var(--starci-core-surface-shadow, var(--shadow-surface, none));
134
146
  }
135
147
 
136
148
  .grammar-common-root[data-grammar-family="core"]
137
- .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
149
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-surface-placement="panel"][data-grammar-frame="bounded"]
138
150
  > [data-grammar-surface-label] {
139
151
  --starci-core-surface-label-padding: var(--starci-core-surface-inset, 1rem) var(--starci-core-surface-inset, 1rem) 0;
140
152
  }
141
153
 
142
154
  .grammar-common-root[data-grammar-family="core"]
143
- .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
155
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-surface-placement="panel"][data-grammar-frame="bounded"]
144
156
  > [data-grammar-frame="bounded"],
145
157
  .grammar-common-root[data-grammar-family="core"]
146
- .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
158
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-surface-placement="panel"][data-grammar-frame="bounded"]
147
159
  > [data-grammar-highlight="true"]
148
160
  > [data-grammar-frame="bounded"] {
149
161
  border: 0;
@@ -81,23 +81,6 @@
81
81
  box-shadow: none;
82
82
  }
83
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
-
101
84
  /* Focus: the hard offset shadow, ink by default, critical while invalid. */
102
85
  .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"]),
103
86
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Field"] [data-grammar-field-control="true"] > :where(input, select, textarea):focus-visible,
@@ -148,8 +148,9 @@
148
148
  letter-spacing: -.01em;
149
149
  }
150
150
 
151
- /* Avatar / AvatarGroup: ink-ringed faces; the current identity gets a pink ring. */
152
- .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Avatar"] {
151
+ /* Avatar / AvatarGroup: ink-ringed faces; the current identity gets a pink ring. A loading avatar has no ring: its
152
+ Skeleton circle already takes the avatar's whole box (skeleton parity). */
153
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Avatar"]:not([data-grammar-skeleton="true"]) {
153
154
  border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
154
155
  }
155
156
 
@@ -185,6 +186,11 @@
185
186
  }
186
187
 
187
188
  /* TagGroup: outlined chips; selected chips turn pink and lift. */
189
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="TagGroup"] [data-grammar-tag][data-grammar-tag-drop-target="true"] {
190
+ outline-offset: 3px;
191
+ outline-style: dashed;
192
+ }
193
+
188
194
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="TagGroup"] [data-grammar-tag] {
189
195
  border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
190
196
  border-radius: 999px;
@@ -266,9 +272,9 @@
266
272
  * ListBox: every option (role="option") is an interactive row - it is the pointer and focus
267
273
  * target itself, so its states come from the vendor's attributes on the row, never from an
268
274
  * inner link or button (an option may not hold one). At rest the row keeps a transparent 2px
269
- * edge so selecting it never shifts the layout.
275
+ * edge so selecting it never shifts the layout; a loading option keeps the same edge (skeleton parity).
270
276
  */
271
- .grammar-common-root[data-grammar-family="offset-pop"] [data-component="ListBox"] [data-grammar-list-item] {
277
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="ListBox"] :is([data-grammar-list-item], .starci-core-list-box-skeleton-option) {
272
278
  border: var(--offset-pop-outline-width) solid transparent;
273
279
  border-radius: var(--offset-pop-control-radius);
274
280
  font-weight: 700;
@@ -372,6 +378,26 @@
372
378
  box-shadow: 0.125rem 0.1875rem 0 var(--offset-pop-shadow-ink);
373
379
  }
374
380
 
381
+ /*
382
+ * Timeline attention: an inked, tone-filled card that sits on the offset shadow, like a raised sticker. The outline
383
+ * comes out of Common's 0.5rem padding, so the marker and the copy stay in the column of the other entries.
384
+ */
385
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Timeline"] [data-grammar-attention="true"] {
386
+ padding: calc(0.5rem - var(--offset-pop-outline-width));
387
+ border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
388
+ border-radius: var(--offset-pop-control-radius);
389
+ background: color-mix(in srgb, var(--starci-core-timeline-attention-tone) 55%, var(--surface));
390
+ box-shadow: 0.125rem 0.1875rem 0 var(--offset-pop-shadow-ink);
391
+ color: var(--offset-pop-ink);
392
+ }
393
+
394
+ /* The connector is placed from the padding edge, one outline inside the border edge Common measures from. */
395
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Timeline"] [data-grammar-attention="true"]:not(:last-child)::before {
396
+ top: calc(2rem - var(--offset-pop-outline-width));
397
+ bottom: calc(-0.5rem - var(--offset-pop-outline-width));
398
+ inset-inline-start: calc(1.25rem - var(--offset-pop-outline-width) / 2 + var(--offset-pop-outline-width) * -1);
399
+ }
400
+
375
401
  /* Calendar: outlined sheet; the selected day is a raised pink tile. */
376
402
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Calendar"] {
377
403
  padding: 0.75rem;
@@ -211,6 +211,11 @@
211
211
  background: var(--surface);
212
212
  }
213
213
 
214
+ /* size="sm": the thin track keeps the ink outline at half the plain meter's height. */
215
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Meter"][data-size="sm"] [data-slot="meter-track"] {
216
+ height: 0.5rem;
217
+ }
218
+
214
219
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Meter"] [data-slot="meter-fill"] {
215
220
  background: var(--offset-pop-tone-color);
216
221
  }
@@ -4,5 +4,5 @@ export { OFFSET_POP_BAND_TOKEN_NAMES, OFFSET_POP_DARK_TOKEN_DEFAULTS, OFFSET_POP
4
4
  export { OFFSET_POP_FAMILY_EVIDENCE, offsetPopRuleConformance } from "./conformance.js";
5
5
  /** Official product-neutral Offset Pop sibling family over the Common contract. */
6
6
  export declare const offsetPopGrammar: import("./index.js").GrammarFamilyContract<"offset-pop", {}>;
7
- export declare const OffsetPopGrammarRoot: ({ className, theme, ...props }: GrammarRootProps) => import("react").JSX.Element;
7
+ export declare const OffsetPopGrammarRoot: ({ className, theme, navigate, useHref, ...props }: GrammarRootProps) => import("react").JSX.Element;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offset-pop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAA;AAM3B,cAAc,oBAAoB,CAAA;AAElC,OAAO,EACH,2BAA2B,EAC3B,8BAA8B,EAC9B,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GAC1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAQvF,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,8DAY3B,CAAA;AAEF,eAAO,MAAM,oBAAoB,mFAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offset-pop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAA;AAM3B,cAAc,oBAAoB,CAAA;AAElC,OAAO,EACH,2BAA2B,EAC3B,8BAA8B,EAC9B,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GAC1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAQvF,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,8DAY3B,CAAA;AAEF,eAAO,MAAM,oBAAoB,sGAA0C,CAAA"}
@@ -58,6 +58,10 @@
58
58
  --offset-pop-surface-shadow: var(--offset-pop-shadow-x) var(--offset-pop-shadow-y) 0 var(--offset-pop-shadow-ink);
59
59
  --offset-pop-motion-duration: 140ms;
60
60
  --offset-pop-motion-easing: cubic-bezier(.2, .8, .2, 1);
61
+ /* The Terminal console: an ink panel with canvas text and a yellow title. */
62
+ --offset-pop-terminal-background: var(--offset-pop-ink);
63
+ --offset-pop-terminal-foreground: var(--offset-pop-canvas);
64
+ --offset-pop-terminal-title-foreground: var(--offset-pop-yellow);
61
65
 
62
66
  /* The composite motion value every family transition reads; reduced motion replaces it. */
63
67
  --offset-pop-transition: var(--offset-pop-motion-duration) var(--offset-pop-motion-easing);
@@ -72,6 +76,9 @@
72
76
  --surface-foreground: var(--offset-pop-foreground);
73
77
  --surface-secondary: var(--offset-pop-surface-secondary);
74
78
  --surface-secondary-foreground: var(--offset-pop-foreground);
79
+ --terminal-background: var(--offset-pop-terminal-background);
80
+ --terminal-foreground: var(--offset-pop-terminal-foreground);
81
+ --terminal-title-foreground: var(--offset-pop-terminal-title-foreground);
75
82
  --muted: var(--offset-pop-muted);
76
83
  --border: var(--offset-pop-border);
77
84
  --separator: var(--offset-pop-separator);
@@ -181,6 +188,11 @@
181
188
  font-weight: 800;
182
189
  }
183
190
 
191
+ /* A disabled Button's tooltip wrapper carries its focus ring in the family's button radius. */
192
+ .grammar-common-root[data-grammar-family="offset-pop"] .starci-core-tooltip-disabled-trigger:has(> [data-component="Button"]) {
193
+ border-radius: var(--radius);
194
+ }
195
+
184
196
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Badge"] {
185
197
  border: var(--offset-pop-outline-width) solid var(--border);
186
198
  border-radius: var(--offset-pop-pill-radius);
@@ -188,6 +200,38 @@
188
200
  font-weight: 800;
189
201
  }
190
202
 
203
+ /* StatusDot with text: a pill in ink. No outline, so its padding and height stay the HeroUI Chip's. */
204
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="StatusDot"][data-variant="text"] {
205
+ border-radius: var(--offset-pop-pill-radius);
206
+ font-weight: 800;
207
+ }
208
+
209
+ /* The status dot takes an ink ring so it reads on the cream canvas. */
210
+ .grammar-common-root[data-grammar-family="offset-pop"] .starci-core-status-dot-mark {
211
+ box-shadow: 0 0 0 1px var(--offset-pop-ink);
212
+ }
213
+
214
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Badge"][data-tone="muted"] {
215
+ border-style: dashed;
216
+ }
217
+
218
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Code"] {
219
+ border: 1px solid var(--offset-pop-ink);
220
+ border-radius: 0.5rem;
221
+ background: var(--offset-pop-blush);
222
+ color: var(--offset-pop-ink);
223
+ }
224
+
225
+ /*
226
+ * Terminal: ink panel with the family's offset shadow. An ink shadow would vanish into an ink panel (it only
227
+ * notched the corners), so the shadow takes the family's pink.
228
+ */
229
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Terminal"] {
230
+ border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
231
+ border-radius: var(--offset-pop-control-radius);
232
+ box-shadow: var(--offset-pop-shadow-x) var(--offset-pop-shadow-x) 0 var(--offset-pop-pink);
233
+ }
234
+
191
235
  .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] {
192
236
  border: 0;
193
237
  background: transparent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starci/grammar",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Reusable StarCi React components, compositions, and packaged visual DNA.",
5
5
  "keywords": [
6
6
  "starci",