@starci/grammar 0.2.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +54 -30
  2. package/dist/common/conformance.d.ts +31 -0
  3. package/dist/common/conformance.d.ts.map +1 -0
  4. package/dist/common/conformance.js +33 -0
  5. package/dist/common/conformance.js.map +1 -0
  6. package/dist/common/index.d.ts +5 -73
  7. package/dist/common/index.d.ts.map +1 -1
  8. package/dist/common/index.js +5 -202
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/common/registry.d.ts +79 -0
  11. package/dist/common/registry.d.ts.map +1 -0
  12. package/dist/common/registry.js +34 -0
  13. package/dist/common/registry.js.map +1 -0
  14. package/dist/common/renderers.d.ts +41 -0
  15. package/dist/common/renderers.d.ts.map +1 -0
  16. package/dist/common/renderers.js +44 -0
  17. package/dist/common/renderers.js.map +1 -0
  18. package/dist/common/rule-catalog.generated.d.ts +40 -0
  19. package/dist/common/rule-catalog.generated.d.ts.map +1 -0
  20. package/dist/common/rule-catalog.generated.js +230 -0
  21. package/dist/common/rule-catalog.generated.js.map +1 -0
  22. package/dist/common/spacing.d.ts +20 -0
  23. package/dist/common/spacing.d.ts.map +1 -0
  24. package/dist/common/spacing.js +18 -0
  25. package/dist/common/spacing.js.map +1 -0
  26. package/dist/common/state.d.ts +6 -0
  27. package/dist/common/state.d.ts.map +1 -0
  28. package/dist/common/state.js +11 -0
  29. package/dist/common/state.js.map +1 -0
  30. package/dist/common/styles.css +1566 -2
  31. package/dist/core/LeadingNumber.d.ts +12 -0
  32. package/dist/core/LeadingNumber.d.ts.map +1 -0
  33. package/dist/core/LeadingNumber.js +10 -0
  34. package/dist/core/LeadingNumber.js.map +1 -0
  35. package/dist/core/OtpInput.d.ts +12 -0
  36. package/dist/core/OtpInput.d.ts.map +1 -0
  37. package/dist/core/OtpInput.js +22 -0
  38. package/dist/core/OtpInput.js.map +1 -0
  39. package/dist/core/StateMark.d.ts +3 -5
  40. package/dist/core/StateMark.d.ts.map +1 -1
  41. package/dist/core/StateMark.js +3 -3
  42. package/dist/core/StateMark.js.map +1 -1
  43. package/dist/core/branch/MarkdownArticle/classNames.d.ts +9 -0
  44. package/dist/core/branch/MarkdownArticle/classNames.d.ts.map +1 -0
  45. package/dist/core/branch/MarkdownArticle/classNames.js +10 -0
  46. package/dist/core/branch/MarkdownArticle/classNames.js.map +1 -0
  47. package/dist/core/branch/MarkdownArticle/index.d.ts +30 -0
  48. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -0
  49. package/dist/core/branch/MarkdownArticle/index.js +12 -0
  50. package/dist/core/branch/MarkdownArticle/index.js.map +1 -0
  51. package/dist/core/branch/Rail/classNames.d.ts +9 -0
  52. package/dist/core/branch/Rail/classNames.d.ts.map +1 -0
  53. package/dist/core/branch/Rail/classNames.js +10 -0
  54. package/dist/core/branch/Rail/classNames.js.map +1 -0
  55. package/dist/core/branch/Rail/index.d.ts +7 -6
  56. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  57. package/dist/core/branch/Rail/index.js +16 -5
  58. package/dist/core/branch/Rail/index.js.map +1 -1
  59. package/dist/core/branch/Subnav/classNames.d.ts +8 -0
  60. package/dist/core/branch/Subnav/classNames.d.ts.map +1 -0
  61. package/dist/core/branch/Subnav/classNames.js +9 -0
  62. package/dist/core/branch/Subnav/classNames.js.map +1 -0
  63. package/dist/core/branch/Subnav/index.d.ts +17 -0
  64. package/dist/core/branch/Subnav/index.d.ts.map +1 -0
  65. package/dist/core/branch/Subnav/index.js +6 -0
  66. package/dist/core/branch/Subnav/index.js.map +1 -0
  67. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts +19 -0
  68. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts.map +1 -0
  69. package/dist/core/branch/SurfaceAccordionCard/classNames.js +21 -0
  70. package/dist/core/branch/SurfaceAccordionCard/classNames.js.map +1 -0
  71. package/dist/core/branch/SurfaceAccordionCard/index.d.ts +44 -0
  72. package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -0
  73. package/dist/core/branch/SurfaceAccordionCard/index.js +42 -0
  74. package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -0
  75. package/dist/core/branch/SurfaceCard/classNames.d.ts +23 -0
  76. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -0
  77. package/dist/core/branch/SurfaceCard/classNames.js +23 -0
  78. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -0
  79. package/dist/core/branch/SurfaceCard/index.d.ts +14 -7
  80. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  81. package/dist/core/branch/SurfaceCard/index.js +18 -4
  82. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  83. package/dist/core/branch/SurfaceListCard/classNames.d.ts +13 -0
  84. package/dist/core/branch/SurfaceListCard/classNames.d.ts.map +1 -0
  85. package/dist/core/branch/SurfaceListCard/classNames.js +14 -0
  86. package/dist/core/branch/SurfaceListCard/classNames.js.map +1 -0
  87. package/dist/core/branch/SurfaceListCard/index.d.ts +5 -19
  88. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  89. package/dist/core/branch/SurfaceListCard/index.js +6 -8
  90. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  91. package/dist/core/branch/Tabs/classNames.d.ts +11 -0
  92. package/dist/core/branch/Tabs/classNames.d.ts.map +1 -0
  93. package/dist/core/branch/Tabs/classNames.js +13 -0
  94. package/dist/core/branch/Tabs/classNames.js.map +1 -0
  95. package/dist/core/branch/Tabs/index.d.ts +22 -0
  96. package/dist/core/branch/Tabs/index.d.ts.map +1 -0
  97. package/dist/core/branch/Tabs/index.js +28 -0
  98. package/dist/core/branch/Tabs/index.js.map +1 -0
  99. package/dist/core/branch/Tooltip/classNames.d.ts +3 -0
  100. package/dist/core/branch/Tooltip/classNames.d.ts.map +1 -0
  101. package/dist/core/branch/Tooltip/classNames.js +4 -0
  102. package/dist/core/branch/Tooltip/classNames.js.map +1 -0
  103. package/dist/core/branch/Tooltip/index.d.ts +18 -0
  104. package/dist/core/branch/Tooltip/index.d.ts.map +1 -0
  105. package/dist/core/branch/Tooltip/index.js +14 -0
  106. package/dist/core/branch/Tooltip/index.js.map +1 -0
  107. package/dist/core/classNames.d.ts +23 -0
  108. package/dist/core/classNames.d.ts.map +1 -0
  109. package/dist/core/classNames.js +24 -0
  110. package/dist/core/classNames.js.map +1 -0
  111. package/dist/core/composite/EmptyNotice/index.d.ts +17 -0
  112. package/dist/core/composite/EmptyNotice/index.d.ts.map +1 -0
  113. package/dist/core/composite/EmptyNotice/index.js +7 -0
  114. package/dist/core/composite/EmptyNotice/index.js.map +1 -0
  115. package/dist/core/composite/HorizontalScrollRegion/index.d.ts +9 -0
  116. package/dist/core/composite/HorizontalScrollRegion/index.d.ts.map +1 -0
  117. package/dist/core/composite/HorizontalScrollRegion/index.js +10 -0
  118. package/dist/core/composite/HorizontalScrollRegion/index.js.map +1 -0
  119. package/dist/core/composite/StaticStateRow/index.d.ts +1 -5
  120. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -1
  121. package/dist/core/composite/StaticStateRow/index.js +4 -3
  122. package/dist/core/composite/StaticStateRow/index.js.map +1 -1
  123. package/dist/core/composite/VerticalScrollRegion/index.d.ts +10 -0
  124. package/dist/core/composite/VerticalScrollRegion/index.d.ts.map +1 -0
  125. package/dist/core/composite/VerticalScrollRegion/index.js +10 -0
  126. package/dist/core/composite/VerticalScrollRegion/index.js.map +1 -0
  127. package/dist/core/composition/ChatWorkspace/classNames.d.ts +30 -0
  128. package/dist/core/composition/ChatWorkspace/classNames.d.ts.map +1 -0
  129. package/dist/core/composition/ChatWorkspace/classNames.js +31 -0
  130. package/dist/core/composition/ChatWorkspace/classNames.js.map +1 -0
  131. package/dist/core/composition/ChatWorkspace/index.d.ts +48 -0
  132. package/dist/core/composition/ChatWorkspace/index.d.ts.map +1 -0
  133. package/dist/core/composition/ChatWorkspace/index.js +40 -0
  134. package/dist/core/composition/ChatWorkspace/index.js.map +1 -0
  135. package/dist/core/composition/NavigationFeatureNav/classNames.d.ts +9 -0
  136. package/dist/core/composition/NavigationFeatureNav/classNames.d.ts.map +1 -0
  137. package/dist/core/composition/NavigationFeatureNav/classNames.js +10 -0
  138. package/dist/core/composition/NavigationFeatureNav/classNames.js.map +1 -0
  139. package/dist/core/composition/NavigationFeatureNav/index.d.ts +26 -0
  140. package/dist/core/composition/NavigationFeatureNav/index.d.ts.map +1 -0
  141. package/dist/core/composition/NavigationFeatureNav/index.js +13 -0
  142. package/dist/core/composition/NavigationFeatureNav/index.js.map +1 -0
  143. package/dist/core/composition/PrimaryRailLayout/index.d.ts +14 -0
  144. package/dist/core/composition/PrimaryRailLayout/index.d.ts.map +1 -0
  145. package/dist/core/composition/PrimaryRailLayout/index.js +8 -0
  146. package/dist/core/composition/PrimaryRailLayout/index.js.map +1 -0
  147. package/dist/core/composition/Sidebar/index.d.ts +31 -0
  148. package/dist/core/composition/Sidebar/index.d.ts.map +1 -0
  149. package/dist/core/composition/Sidebar/index.js +40 -0
  150. package/dist/core/composition/Sidebar/index.js.map +1 -0
  151. package/dist/core/composition/WorkspaceShell/classNames.d.ts +11 -0
  152. package/dist/core/composition/WorkspaceShell/classNames.d.ts.map +1 -0
  153. package/dist/core/composition/WorkspaceShell/classNames.js +12 -0
  154. package/dist/core/composition/WorkspaceShell/classNames.js.map +1 -0
  155. package/dist/core/composition/WorkspaceShell/index.d.ts +67 -0
  156. package/dist/core/composition/WorkspaceShell/index.d.ts.map +1 -0
  157. package/dist/core/composition/WorkspaceShell/index.js +20 -0
  158. package/dist/core/composition/WorkspaceShell/index.js.map +1 -0
  159. package/dist/core/dna.d.ts +180 -0
  160. package/dist/core/dna.d.ts.map +1 -0
  161. package/dist/core/dna.js +175 -0
  162. package/dist/core/dna.js.map +1 -0
  163. package/dist/core/index.d.ts +59 -10
  164. package/dist/core/index.d.ts.map +1 -1
  165. package/dist/core/index.js +27 -10
  166. package/dist/core/index.js.map +1 -1
  167. package/dist/core/primitive/Badge/index.d.ts +12 -0
  168. package/dist/core/primitive/Badge/index.d.ts.map +1 -0
  169. package/dist/core/primitive/Badge/index.js +15 -0
  170. package/dist/core/primitive/Badge/index.js.map +1 -0
  171. package/dist/core/primitive/Button/index.d.ts +52 -0
  172. package/dist/core/primitive/Button/index.d.ts.map +1 -0
  173. package/dist/core/primitive/Button/index.js +26 -0
  174. package/dist/core/primitive/Button/index.js.map +1 -0
  175. package/dist/core/primitive/Divider/index.d.ts +7 -0
  176. package/dist/core/primitive/Divider/index.d.ts.map +1 -0
  177. package/dist/core/primitive/Divider/index.js +5 -0
  178. package/dist/core/primitive/Divider/index.js.map +1 -0
  179. package/dist/core/primitive/GrammarRoot/index.d.ts +10 -0
  180. package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -0
  181. package/dist/core/primitive/GrammarRoot/index.js +5 -0
  182. package/dist/core/primitive/GrammarRoot/index.js.map +1 -0
  183. package/dist/core/primitive/Heading/index.d.ts +15 -0
  184. package/dist/core/primitive/Heading/index.d.ts.map +1 -0
  185. package/dist/core/primitive/Heading/index.js +26 -0
  186. package/dist/core/primitive/Heading/index.js.map +1 -0
  187. package/dist/core/primitive/Icon/index.d.ts +31 -0
  188. package/dist/core/primitive/Icon/index.d.ts.map +1 -0
  189. package/dist/core/primitive/Icon/index.js +23 -0
  190. package/dist/core/primitive/Icon/index.js.map +1 -0
  191. package/dist/core/primitive/IconButton/index.d.ts +13 -0
  192. package/dist/core/primitive/IconButton/index.d.ts.map +1 -0
  193. package/dist/core/primitive/IconButton/index.js +9 -0
  194. package/dist/core/primitive/IconButton/index.js.map +1 -0
  195. package/dist/core/primitive/IconTile/index.d.ts +17 -0
  196. package/dist/core/primitive/IconTile/index.d.ts.map +1 -0
  197. package/dist/core/primitive/IconTile/index.js +32 -0
  198. package/dist/core/primitive/IconTile/index.js.map +1 -0
  199. package/dist/core/primitive/IncludedMark/index.d.ts +10 -0
  200. package/dist/core/primitive/IncludedMark/index.d.ts.map +1 -0
  201. package/dist/core/primitive/IncludedMark/index.js +8 -0
  202. package/dist/core/primitive/IncludedMark/index.js.map +1 -0
  203. package/dist/core/primitive/Input/index.d.ts +31 -0
  204. package/dist/core/primitive/Input/index.d.ts.map +1 -0
  205. package/dist/core/primitive/Input/index.js +27 -0
  206. package/dist/core/primitive/Input/index.js.map +1 -0
  207. package/dist/core/primitive/Label/classNames.d.ts +12 -0
  208. package/dist/core/primitive/Label/classNames.d.ts.map +1 -0
  209. package/dist/core/primitive/Label/classNames.js +13 -0
  210. package/dist/core/primitive/Label/classNames.js.map +1 -0
  211. package/dist/core/primitive/Label/index.d.ts +11 -0
  212. package/dist/core/primitive/Label/index.d.ts.map +1 -0
  213. package/dist/core/primitive/Label/index.js +14 -0
  214. package/dist/core/primitive/Label/index.js.map +1 -0
  215. package/dist/core/primitive/MediaFrame/index.d.ts +15 -0
  216. package/dist/core/primitive/MediaFrame/index.d.ts.map +1 -0
  217. package/dist/core/primitive/MediaFrame/index.js +8 -0
  218. package/dist/core/primitive/MediaFrame/index.js.map +1 -0
  219. package/dist/core/primitive/PageContainer/index.d.ts +9 -0
  220. package/dist/core/primitive/PageContainer/index.d.ts.map +1 -0
  221. package/dist/core/primitive/PageContainer/index.js +8 -0
  222. package/dist/core/primitive/PageContainer/index.js.map +1 -0
  223. package/dist/core/primitive/Progress/index.d.ts +11 -0
  224. package/dist/core/primitive/Progress/index.d.ts.map +1 -0
  225. package/dist/core/primitive/Progress/index.js +13 -0
  226. package/dist/core/primitive/Progress/index.js.map +1 -0
  227. package/dist/core/primitive/RankArtwork/index.d.ts +12 -0
  228. package/dist/core/primitive/RankArtwork/index.d.ts.map +1 -0
  229. package/dist/core/primitive/RankArtwork/index.js +14 -0
  230. package/dist/core/primitive/RankArtwork/index.js.map +1 -0
  231. package/dist/core/primitive/SectionHeader/index.d.ts +15 -0
  232. package/dist/core/primitive/SectionHeader/index.d.ts.map +1 -0
  233. package/dist/core/primitive/SectionHeader/index.js +6 -0
  234. package/dist/core/primitive/SectionHeader/index.js.map +1 -0
  235. package/dist/core/primitive/SurfaceCopyGroup/index.d.ts +7 -0
  236. package/dist/core/primitive/SurfaceCopyGroup/index.d.ts.map +1 -0
  237. package/dist/core/primitive/SurfaceCopyGroup/index.js +5 -0
  238. package/dist/core/primitive/SurfaceCopyGroup/index.js.map +1 -0
  239. package/dist/core/primitive/Text/index.d.ts +25 -0
  240. package/dist/core/primitive/Text/index.d.ts.map +1 -0
  241. package/dist/core/primitive/Text/index.js +57 -0
  242. package/dist/core/primitive/Text/index.js.map +1 -0
  243. package/dist/core/primitive/TextAction/index.d.ts +45 -0
  244. package/dist/core/primitive/TextAction/index.d.ts.map +1 -0
  245. package/dist/core/primitive/TextAction/index.js +112 -0
  246. package/dist/core/primitive/TextAction/index.js.map +1 -0
  247. package/dist/core/primitive/actionStyles.d.ts +5 -0
  248. package/dist/core/primitive/actionStyles.d.ts.map +1 -0
  249. package/dist/core/primitive/actionStyles.js +19 -0
  250. package/dist/core/primitive/actionStyles.js.map +1 -0
  251. package/dist/core/state.d.ts +4 -4
  252. package/dist/core/state.d.ts.map +1 -1
  253. package/dist/core/state.js +4 -4
  254. package/dist/core/state.js.map +1 -1
  255. package/dist/core/styles.css +152 -225
  256. package/dist/heritage/index.d.ts +27 -0
  257. package/dist/heritage/index.d.ts.map +1 -0
  258. package/dist/heritage/index.js +44 -0
  259. package/dist/heritage/index.js.map +1 -0
  260. package/dist/heritage/styles.css +165 -0
  261. package/dist/offset-pop/index.d.ts +9 -263
  262. package/dist/offset-pop/index.d.ts.map +1 -1
  263. package/dist/offset-pop/index.js +35 -63
  264. package/dist/offset-pop/index.js.map +1 -1
  265. package/dist/offset-pop/styles.css +292 -393
  266. package/package.json +78 -72
  267. package/dist/core/contracts.d.ts +0 -190
  268. package/dist/core/contracts.d.ts.map +0 -1
  269. package/dist/core/contracts.js +0 -145
  270. package/dist/core/contracts.js.map +0 -1
  271. package/dist/core/grammar.d.ts +0 -18
  272. package/dist/core/grammar.d.ts.map +0 -1
  273. package/dist/core/grammar.js +0 -27
  274. package/dist/core/grammar.js.map +0 -1
  275. package/dist/core/layout.d.ts +0 -9
  276. package/dist/core/layout.d.ts.map +0 -1
  277. package/dist/core/layout.js +0 -43
  278. package/dist/core/layout.js.map +0 -1
  279. package/dist/core/rules.d.ts +0 -63
  280. package/dist/core/rules.d.ts.map +0 -1
  281. package/dist/core/rules.js +0 -66
  282. package/dist/core/rules.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { type ComponentProps, type ReactNode } from "react";
2
+ export type HorizontalScrollRegionProps = Omit<ComponentProps<"div">, "children"> & {
3
+ readonly children: ReactNode;
4
+ /** Uses the ScrollShadow-owned no-chrome treatment while retaining horizontal reachability. */
5
+ readonly hideScrollBar?: boolean;
6
+ };
7
+ /** Preserve intrinsic inline content and expose HeroUI's horizontal overflow affordance. */
8
+ export declare const HorizontalScrollRegion: import("react").ForwardRefExoticComponent<Omit<HorizontalScrollRegionProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGvE,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,+FAA+F;IAC/F,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,qIAYjC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { ScrollShadow, cn } from "@heroui/react";
4
+ /** Preserve intrinsic inline content and expose HeroUI's horizontal overflow affordance. */
5
+ export const HorizontalScrollRegion = forwardRef((props, ref) => {
6
+ const { hideScrollBar = true, className, ...regionProps } = props;
7
+ return (_jsx(ScrollShadow, { ...regionProps, ref: ref, className: cn("starci-core-horizontal-scroll-region", className), "data-contract": "PADDING-1 MEASURE-3 OVERFLOW-3 OVERFLOW-5", hideScrollBar: hideScrollBar, orientation: "horizontal" }));
8
+ });
9
+ HorizontalScrollRegion.displayName = "HorizontalScrollRegion";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAQhD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAA8C,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACzG,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAA;IACjE,OAAO,CACH,KAAC,YAAY,OACL,WAAW,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sCAAsC,EAAE,SAAS,CAAC,mBAClD,2CAA2C,EACzD,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAC,YAAY,GAC1B,CACL,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,sBAAsB,CAAC,WAAW,GAAG,wBAAwB,CAAA"}
@@ -9,9 +9,5 @@ export type StaticStateRowProps = {
9
9
  readonly item: StaticStateRowData;
10
10
  };
11
11
  /** One non-interactive, product-neutral row in a Core-owned static collection. */
12
- export declare const StaticStateRow: ({ item }: StaticStateRowProps) => import("react").JSX.Element;
13
- export declare const meta: {
14
- readonly shape: "composite";
15
- readonly grammar: "core";
16
- };
12
+ export declare const StaticStateRow: (props: StaticStateRowProps) => import("react").JSX.Element;
17
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/StaticStateRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CACpC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,cAAc,GAAI,UAAU,mBAAmB,gCAkB3D,CAAA;AAED,eAAO,MAAM,IAAI;;;CAAmD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/StaticStateRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGrE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CACpC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,gCAoBxD,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { StateMark } from "../../StateMark.js";
3
3
  import { treatmentFor } from "../../state.js";
4
+ import { staticRowClassName, staticRowCopyClassName } from "../../classNames.js";
4
5
  /** One non-interactive, product-neutral row in a Core-owned static collection. */
5
- export const StaticStateRow = ({ item }) => {
6
+ export const StaticStateRow = (props) => {
7
+ const item = props.item;
6
8
  const state = item.state ?? "neutral";
7
9
  const treatment = treatmentFor(state);
8
- return (_jsxs("li", { className: "starci-core-static-row", "data-grammar-row": "true", "data-grammar-state": state, "data-grammar-treatment": treatment.tone, children: [_jsx(StateMark, { state: state }), _jsxs("span", { className: "starci-core-static-row-copy", children: [_jsx("span", { children: item.label }), item.description === undefined ? null : _jsx("span", { children: item.description })] })] }));
10
+ return (_jsxs("li", { className: staticRowClassName, "data-grammar-row": "true", "data-grammar-state": state, "data-grammar-treatment": treatment.tone, "data-contract": "GAP-3 PADDING-4 BOUNDARY-3", children: [_jsx(StateMark, { state: state }), _jsxs("span", { className: staticRowCopyClassName, "data-contract": "GAP-1", children: [_jsx("span", { children: item.label }), item.description === undefined ? null : _jsx("span", { children: item.description })] })] }));
9
11
  };
10
- export const meta = { shape: "composite", grammar: "core" };
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/StaticStateRow/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAarE,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAuB,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA;IACrC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,OAAO,CACH,cACI,SAAS,EAAC,wBAAwB,sBACjB,MAAM,wBACH,KAAK,4BACD,SAAS,CAAC,IAAI,aAEtC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAC3B,gBAAM,SAAS,EAAC,6BAA6B,aACzC,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACxB,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,CAAC,WAAW,GAAQ,IACrE,IACN,CACR,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/StaticStateRow/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAahF,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA;IACrC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,OAAO,CACH,cACI,SAAS,EAAE,kBAAkB,sBACZ,MAAM,wBACH,KAAK,4BACD,SAAS,CAAC,IAAI,mBACxB,4BAA4B,aAE1C,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAC3B,gBAAM,SAAS,EAAE,sBAAsB,mBAAgB,OAAO,aAC1D,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACxB,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,CAAC,WAAW,GAAQ,IACrE,IACN,CACR,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ export type VerticalScrollRegionProps = Omit<ComponentProps<"div">, "children"> & {
3
+ readonly children: ReactNode;
4
+ readonly isScrollable: boolean;
5
+ /** Hide scrollbar chrome by default while retaining wheel, touch and keyboard scrolling. */
6
+ readonly hideScrollBar?: boolean;
7
+ };
8
+ /** Use HeroUI's Vertical ScrollShadow without making consumers own its DOM contract. */
9
+ export declare const VerticalScrollRegion: (props: VerticalScrollRegionProps) => import("react").JSX.Element;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/VerticalScrollRegion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC9E,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,GAAI,OAAO,yBAAyB,gCAKpE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ScrollShadow } from "@heroui/react";
3
+ /** Use HeroUI's Vertical ScrollShadow without making consumers own its DOM contract. */
4
+ export const VerticalScrollRegion = (props) => {
5
+ const { children, isScrollable, hideScrollBar = true, ...regionProps } = props;
6
+ return isScrollable
7
+ ? _jsx(ScrollShadow, { ...regionProps, "data-contract": "MEASURE-7 OVERFLOW-3", hideScrollBar: hideScrollBar, orientation: "vertical", children: children })
8
+ : _jsx("div", { ...regionProps, children: children });
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/VerticalScrollRegion/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAS5C,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACrE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAA;IAC9E,OAAO,YAAY;QACf,CAAC,CAAC,KAAC,YAAY,OAAK,WAAW,mBAAgB,sBAAsB,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,UAAU,YAAE,QAAQ,GAAgB;QACpJ,CAAC,CAAC,iBAAS,WAAW,YAAG,QAAQ,GAAO,CAAA;AAChD,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ /** Bounded height chain for a workbench supplied with height by its host. */
2
+ export declare const chatWorkspaceClassName: import("tailwind-variants").CnReturn;
3
+ /** Header remains outside every workspace-owned scroll region. */
4
+ export declare const chatWorkspaceHeaderClassName: import("tailwind-variants").CnReturn;
5
+ /** Compact rail disclosure has its own non-scrolling action boundary. */
6
+ export declare const chatWorkspaceRailTriggerBoundaryClassName: import("tailwind-variants").CnReturn;
7
+ /** Visible, keyboard-sized trigger for the compact supporting overlay. */
8
+ export declare const chatWorkspaceRailTriggerClassName: string;
9
+ /** Primary work region and the persistent rail share the remaining bounded height. */
10
+ export declare const chatWorkspaceLayoutClassName: import("tailwind-variants").CnReturn;
11
+ /** Bind the layout column to the same authored widths as Core Rail. */
12
+ export declare const getChatWorkspaceLayoutClassName: (_railWidth: "compact" | "standard" | "wide", hasRail: boolean) => import("tailwind-variants").CnReturn;
13
+ /** Main task owner: only its conversation child scrolls. */
14
+ export declare const chatWorkspacePrimaryClassName: import("tailwind-variants").CnReturn;
15
+ /** The conversation is the single primary bounded scroll owner. */
16
+ export declare const chatWorkspaceConversationClassName: import("tailwind-variants").CnReturn;
17
+ /** Composer remains reachable at the terminal edge without duplicating scroll padding. */
18
+ export declare const chatWorkspaceComposerClassName: import("tailwind-variants").CnReturn;
19
+ /** Persistent supporting rail fills the same bounded layout track as the task owner. */
20
+ export declare const chatWorkspaceInlineRailClassName: import("tailwind-variants").CnReturn;
21
+ /** Keep the compact vendor drawer on one safe viewport width. */
22
+ export declare const chatWorkspaceDrawerContentClassName: string;
23
+ /** The dialog and its body extend the bounded height chain into the overlay. */
24
+ export declare const chatWorkspaceDrawerDialogClassName: string;
25
+ export declare const chatWorkspaceDrawerBodyClassName: string;
26
+ /** Scroll owner inside the compact supporting overlay. */
27
+ export declare const chatWorkspaceOverlayRailClassName: import("tailwind-variants").CnReturn;
28
+ /** Make the vendor-provided overlay exit easy to target in every input mode. */
29
+ export declare const chatWorkspaceDrawerCloseClassName: string;
30
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/classNames.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,sCASlC,CAAA;AAED,kEAAkE;AAClE,eAAO,MAAM,4BAA4B,sCAAiE,CAAA;AAE1G,yEAAyE;AACzE,eAAO,MAAM,yCAAyC,sCAUrD,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,iCAAiC,QAsBvC,CAAA;AAEP,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,sCAOxC,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,GACxC,YAAY,SAAS,GAAG,UAAU,GAAG,MAAM,EAC3C,SAAS,OAAO,yCAC+E,CAAA;AAEnG,4DAA4D;AAC5D,eAAO,MAAM,6BAA6B,sCAOzC,CAAA;AAED,mEAAmE;AACnE,eAAO,MAAM,kCAAkC,sCAY9C,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B,sCAO1C,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,gCAAgC,sCAAqE,CAAA;AAElH,iEAAiE;AACjE,eAAO,MAAM,mCAAmC,QAMzC,CAAA;AAEP,gFAAgF;AAChF,eAAO,MAAM,kCAAkC,QAAwG,CAAA;AACvJ,eAAO,MAAM,gCAAgC,QAAqG,CAAA;AAElJ,0DAA0D;AAC1D,eAAO,MAAM,iCAAiC,sCAW7C,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,iCAAiC,QASvC,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Bounded height chain for a workbench supplied with height by its host. */
3
+ export const chatWorkspaceClassName = cn("starci-core-chat-workspace", "flex", "h-full", "min-h-0", "min-w-0", "flex-col", "overflow-hidden", "bg-background");
4
+ /** Header remains outside every workspace-owned scroll region. */
5
+ export const chatWorkspaceHeaderClassName = cn("starci-core-chat-workspace-header", "min-w-0", "shrink-0");
6
+ /** Compact rail disclosure has its own non-scrolling action boundary. */
7
+ export const chatWorkspaceRailTriggerBoundaryClassName = cn("starci-core-chat-workspace-rail-trigger-boundary", "flex", "min-w-0", "shrink-0", "justify-end", "border-b", "border-separator", "px-4", "py-2");
8
+ /** Visible, keyboard-sized trigger for the compact supporting overlay. */
9
+ export const chatWorkspaceRailTriggerClassName = cn("starci-core-chat-workspace-rail-trigger", "inline-flex", "min-h-11", "min-w-11", "items-center", "justify-center", "rounded-lg", "border", "border-separator", "bg-surface", "px-3", "text-sm", "font-medium", "text-foreground", "shadow-sm", "outline-none", "transition-colors", "hover:bg-default-100", "focus-visible:ring-2", "focus-visible:ring-focus", "focus-visible:ring-offset-2") ?? "";
10
+ /** Primary work region and the persistent rail share the remaining bounded height. */
11
+ export const chatWorkspaceLayoutClassName = cn("starci-core-chat-workspace-layout", "grid", "min-h-0", "min-w-0", "flex-1", "gap-[var(--starci-core-region-gap,1.5rem)]");
12
+ /** Bind the layout column to the same authored widths as Core Rail. */
13
+ export const getChatWorkspaceLayoutClassName = (_railWidth, hasRail) => cn(chatWorkspaceLayoutClassName, !hasRail && "starci-core-chat-workspace-layout-without-rail");
14
+ /** Main task owner: only its conversation child scrolls. */
15
+ export const chatWorkspacePrimaryClassName = cn("starci-core-chat-workspace-primary", "flex", "min-h-0", "min-w-0", "flex-col", "overflow-hidden");
16
+ /** The conversation is the single primary bounded scroll owner. */
17
+ export const chatWorkspaceConversationClassName = cn("starci-core-chat-workspace-conversation", "min-h-0", "min-w-0", "flex-1", "overflow-y-auto", "overscroll-contain", "scroll-smooth", "focus-visible:outline-2", "focus-visible:outline-offset-[-2px]", "focus-visible:outline-focus", "motion-reduce:scroll-auto");
18
+ /** Composer remains reachable at the terminal edge without duplicating scroll padding. */
19
+ export const chatWorkspaceComposerClassName = cn("starci-core-chat-workspace-composer", "min-w-0", "shrink-0", "border-t", "border-separator", "bg-background");
20
+ /** Persistent supporting rail fills the same bounded layout track as the task owner. */
21
+ export const chatWorkspaceInlineRailClassName = cn("starci-core-chat-workspace-inline-rail", "min-h-0", "min-w-0");
22
+ /** Keep the compact vendor drawer on one safe viewport width. */
23
+ export const chatWorkspaceDrawerContentClassName = cn("starci-core-chat-workspace-drawer-content", "left-auto!", "right-0!", "w-[min(24rem,calc(100dvw-1rem))]!", "max-w-[calc(100dvw-1rem)]!") ?? "";
24
+ /** The dialog and its body extend the bounded height chain into the overlay. */
25
+ export const chatWorkspaceDrawerDialogClassName = cn("starci-core-chat-workspace-drawer-dialog", "h-full!", "min-h-0!", "w-full!", "max-w-none!") ?? "";
26
+ export const chatWorkspaceDrawerBodyClassName = cn("starci-core-chat-workspace-drawer-body", "min-h-0", "min-w-0", "overflow-hidden", "p-0") ?? "";
27
+ /** Scroll owner inside the compact supporting overlay. */
28
+ export const chatWorkspaceOverlayRailClassName = cn("starci-core-chat-workspace-overlay-rail", "h-full", "min-h-0", "min-w-0", "overflow-y-auto", "overscroll-contain", "p-4", "focus-visible:outline-2", "focus-visible:outline-offset-[-2px]", "focus-visible:outline-focus");
29
+ /** Make the vendor-provided overlay exit easy to target in every input mode. */
30
+ export const chatWorkspaceDrawerCloseClassName = cn("starci-core-chat-workspace-drawer-close", "size-10!", "rounded-full!", "border!", "border-separator!", "bg-surface!", "text-foreground!", "shadow-sm!") ?? "";
31
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/classNames.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ type ChatWorkspaceBaseProps = Omit<ComponentPropsWithoutRef<"section">, "aria-label" | "children"> & {
3
+ /** Accessible name for the complete workspace landmark. */
4
+ readonly label: string;
5
+ /** Optional non-scrolling workspace heading or toolbar. */
6
+ readonly header?: ReactNode;
7
+ /** Caller-owned task content. Grammar supplies no message or business-state semantics. */
8
+ readonly conversation: ReactNode;
9
+ /** Accessible name for the independently scrollable task region. */
10
+ readonly conversationLabel: string;
11
+ /** Caller-owned input/action region pinned after the conversation scroll owner. */
12
+ readonly composer: ReactNode;
13
+ };
14
+ type ChatWorkspaceWithRailProps = {
15
+ /** Caller-owned supporting content; Grammar supplies only layout and overlay mechanics. */
16
+ readonly rail: ReactNode;
17
+ /** Accessible name shared by the persistent rail and compact drawer. */
18
+ readonly railLabel: string;
19
+ /** Visible and accessible label for the compact drawer trigger. */
20
+ readonly railOpenLabel: string;
21
+ /** Accessible label for the compact drawer close control. */
22
+ readonly railCloseLabel: string;
23
+ /** Controlled compact drawer state. Ignored while the persistent rail is active. */
24
+ readonly isRailOpen: boolean;
25
+ /** Receives trigger, backdrop, close-control, Escape, and breakpoint closure changes. */
26
+ readonly onRailOpenChange: (isOpen: boolean) => void;
27
+ readonly railWidth?: "compact" | "standard" | "wide";
28
+ };
29
+ type ChatWorkspaceWithoutRailProps = {
30
+ readonly rail?: undefined;
31
+ readonly railLabel?: never;
32
+ readonly railOpenLabel?: never;
33
+ readonly railCloseLabel?: never;
34
+ readonly isRailOpen?: never;
35
+ readonly onRailOpenChange?: never;
36
+ readonly railWidth?: never;
37
+ };
38
+ /**
39
+ * Generic bounded chat workbench composition.
40
+ *
41
+ * The host supplies a height. ChatWorkspace owns the remaining height chain,
42
+ * keeps the composer outside the conversation scroll owner, and transforms one
43
+ * optional persistent supporting rail into a controlled compact drawer.
44
+ */
45
+ export type ChatWorkspaceProps = ChatWorkspaceBaseProps & (ChatWorkspaceWithRailProps | ChatWorkspaceWithoutRailProps);
46
+ export declare const ChatWorkspace: (props: ChatWorkspaceProps) => import("react").JSX.Element;
47
+ export {};
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;AAmCd,KAAK,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG;IACjG,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAA;IAChC,oEAAoE;IACpE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,KAAK,0BAA0B,GAAG;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;CACvD,CAAA;AAED,KAAK,6BAA6B,GAAG;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,CACtD,0BAA0B,GAAG,6BAA6B,CAC7D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCA6JtD,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn, Drawer } from "@heroui/react";
4
+ import { useEffect, useSyncExternalStore, } from "react";
5
+ import { Rail } from "../../branch/Rail/index.js";
6
+ import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
7
+ import { chatWorkspaceClassName, chatWorkspaceComposerClassName, chatWorkspaceConversationClassName, chatWorkspaceDrawerBodyClassName, chatWorkspaceDrawerCloseClassName, chatWorkspaceDrawerContentClassName, chatWorkspaceDrawerDialogClassName, chatWorkspaceHeaderClassName, chatWorkspaceInlineRailClassName, chatWorkspaceOverlayRailClassName, chatWorkspacePrimaryClassName, chatWorkspaceRailTriggerBoundaryClassName, chatWorkspaceRailTriggerClassName, getChatWorkspaceLayoutClassName, } from "./classNames.js";
8
+ const compactRailQuery = "(max-width: 47.999rem)";
9
+ const subscribeToCompactRail = (onStoreChange) => {
10
+ if (typeof window === "undefined")
11
+ return () => undefined;
12
+ const query = window.matchMedia(compactRailQuery);
13
+ query.addEventListener("change", onStoreChange);
14
+ return () => query.removeEventListener("change", onStoreChange);
15
+ };
16
+ const getCompactRailSnapshot = () => (typeof window === "undefined" ? false : window.matchMedia(compactRailQuery).matches);
17
+ const getCompactRailServerSnapshot = () => false;
18
+ export const ChatWorkspace = (props) => {
19
+ const { className, composer, conversation, conversationLabel, header, label, rail, railCloseLabel, railLabel, railOpenLabel, railWidth: requestedRailWidth, isRailOpen: requestedRailOpen, onRailOpenChange: requestedRailOpenChange, ...sectionProps } = props;
20
+ const isCompactRail = useSyncExternalStore(subscribeToCompactRail, getCompactRailSnapshot, getCompactRailServerSnapshot);
21
+ const railConfig = rail === undefined ? undefined : {
22
+ content: rail,
23
+ label: railLabel ?? "",
24
+ openLabel: railOpenLabel ?? "",
25
+ closeLabel: railCloseLabel ?? "",
26
+ isOpen: requestedRailOpen ?? false,
27
+ onOpenChange: requestedRailOpenChange,
28
+ width: requestedRailWidth ?? "standard",
29
+ };
30
+ const hasRail = railConfig !== undefined;
31
+ const railWidth = railConfig?.width ?? "standard";
32
+ const isRailOpen = railConfig?.isOpen ?? false;
33
+ const onRailOpenChange = railConfig?.onOpenChange;
34
+ useEffect(() => {
35
+ if (hasRail && !isCompactRail && isRailOpen)
36
+ onRailOpenChange?.(false);
37
+ }, [hasRail, isCompactRail, isRailOpen, onRailOpenChange]);
38
+ return (_jsxs("section", { ...sectionProps, "aria-label": label, className: cn(chatWorkspaceClassName, className), "data-grammar-chat-workspace": "true", "data-grammar-chat-workspace-rail": hasRail ? "present" : "absent", children: [header === undefined ? null : (_jsx("header", { className: chatWorkspaceHeaderClassName, "data-grammar-chat-workspace-slot": "header", children: header })), hasRail && isCompactRail ? (_jsxs(Drawer, { isOpen: railConfig.isOpen, onOpenChange: railConfig.onOpenChange, children: [_jsx("div", { className: chatWorkspaceRailTriggerBoundaryClassName, "data-contract": "BOUNDARY-1 PADDING-4 PADDING-2", children: _jsx(Drawer.Trigger, { className: chatWorkspaceRailTriggerClassName, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: railConfig.openLabel }) }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: chatWorkspaceDrawerContentClassName, placement: "right", children: _jsxs(Drawer.Dialog, { className: chatWorkspaceDrawerDialogClassName, children: [_jsx(Drawer.Header, { children: _jsx(Drawer.Heading, { children: railConfig.label }) }), _jsx(Drawer.CloseTrigger, { "aria-label": railConfig.closeLabel, className: chatWorkspaceDrawerCloseClassName, "data-contract": "SURFACE-2 TONE-1" }), _jsx(Drawer.Body, { className: chatWorkspaceDrawerBodyClassName, "data-contract": "OVERFLOW-2 PADDING-0", children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "overlay", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) })] }) }) })] })) : null, _jsxs("div", { className: getChatWorkspaceLayoutClassName(railWidth, hasRail), "data-contract": "GAP-5", "data-grammar-chat-workspace-layout": "true", "data-grammar-chat-workspace-rail-width": hasRail ? railWidth : undefined, children: [_jsxs("div", { className: chatWorkspacePrimaryClassName, "data-grammar-chat-workspace-slot": "primary", children: [_jsx(VerticalScrollRegion, { "aria-label": conversationLabel, className: chatWorkspaceConversationClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5", "data-grammar-chat-workspace-scroll-owner": "conversation", "data-grammar-chat-workspace-slot": "conversation", isScrollable: true, role: "region", tabIndex: 0, children: conversation }), _jsx("div", { className: chatWorkspaceComposerClassName, "data-contract": "BOUNDARY-1", "data-grammar-chat-workspace-slot": "composer", children: composer })] }), hasRail && !isCompactRail ? (_jsx("div", { className: chatWorkspaceInlineRailClassName, children: _jsx(Rail, { height: "fill", inset: "none", isLabelHidden: true, label: railConfig.label, mode: "flow", width: railWidth, children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "inline", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) }) })) : null] })] }));
39
+ };
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const navigationFeatureNavClassName: import("tailwind-variants").CnReturn;
2
+ export declare const navigationFeatureNavStickyClassName: import("tailwind-variants").CnReturn;
3
+ export declare const navigationFeatureNavPrimaryClassName: import("tailwind-variants").CnReturn;
4
+ export declare const navigationFeatureNavIdentityClassName: import("tailwind-variants").CnReturn;
5
+ export declare const navigationFeatureNavNavigationClassName: import("tailwind-variants").CnReturn;
6
+ export declare const navigationFeatureNavCompactNavigationClassName: import("tailwind-variants").CnReturn;
7
+ export declare const navigationFeatureNavActionsClassName: import("tailwind-variants").CnReturn;
8
+ export declare const navigationFeatureNavFeatureClassName: import("tailwind-variants").CnReturn;
9
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/NavigationFeatureNav/classNames.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,6BAA6B,sCAOzC,CAAA;AAED,eAAO,MAAM,mCAAmC,sCAAgC,CAAA;AAEhF,eAAO,MAAM,oCAAoC,sCAEhD,CAAA;AAED,eAAO,MAAM,qCAAqC,sCAA+D,CAAA;AACjH,eAAO,MAAM,uCAAuC,sCAAiE,CAAA;AACrH,eAAO,MAAM,8CAA8C,sCAAyE,CAAA;AACpI,eAAO,MAAM,oCAAoC,sCAA8G,CAAA;AAC/J,eAAO,MAAM,oCAAoC,sCAA8D,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { cn } from "@heroui/react";
2
+ export const navigationFeatureNavClassName = cn("starci-core-navigation-feature-nav", "w-full", "border-b", "border-separator", "bg-background", "text-foreground");
3
+ export const navigationFeatureNavStickyClassName = cn("sticky", "top-0", "z-50");
4
+ export const navigationFeatureNavPrimaryClassName = cn("starci-core-navigation-feature-nav-primary");
5
+ export const navigationFeatureNavIdentityClassName = cn("starci-core-navigation-feature-nav-identity", "min-w-0");
6
+ export const navigationFeatureNavNavigationClassName = cn("starci-core-navigation-feature-nav-navigation", "min-w-0");
7
+ export const navigationFeatureNavCompactNavigationClassName = cn("starci-core-navigation-feature-nav-compact-navigation", "min-w-0");
8
+ export const navigationFeatureNavActionsClassName = cn("starci-core-navigation-feature-nav-actions", "flex", "min-w-0", "items-center", "justify-end", "gap-2");
9
+ export const navigationFeatureNavFeatureClassName = cn("starci-core-navigation-feature-nav-feature", "min-w-0");
10
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/composition/NavigationFeatureNav/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAC3C,oCAAoC,EACpC,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,CACpB,CAAA;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAEhF,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAClD,4CAA4C,CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAA;AACjH,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,CAAC,+CAA+C,EAAE,SAAS,CAAC,CAAA;AACrH,MAAM,CAAC,MAAM,8CAA8C,GAAG,EAAE,CAAC,uDAAuD,EAAE,SAAS,CAAC,CAAA;AACpI,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAC/J,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ import { type PageContainerProps } from "../../primitive/PageContainer/index.js";
3
+ export type NavigationFeatureNavProps = Omit<ComponentPropsWithoutRef<"header">, "children"> & {
4
+ readonly identity: ReactNode;
5
+ readonly navigation: ReactNode;
6
+ readonly navigationLabel: string;
7
+ /** Compact trigger for an application-owned drawer containing the same primary destinations. */
8
+ readonly compactNavigationTrigger: ReactNode;
9
+ readonly compactNavigationTriggerLabel: string;
10
+ readonly actions?: ReactNode;
11
+ readonly actionsLabel?: string;
12
+ /** Optional second and final layer. A third navigation scope must use the separate Subnav branch. */
13
+ readonly featureNavigation?: ReactNode;
14
+ readonly featureNavigationLabel?: string;
15
+ readonly measure?: PageContainerProps["measure"];
16
+ readonly position?: "static" | "sticky";
17
+ };
18
+ /**
19
+ * Global navigation with at most one feature layer.
20
+ *
21
+ * The composition owns the single outer separator: the primary and feature
22
+ * layers are intentionally continuous. Deeper responsive navigation belongs
23
+ * to the independent Subnav branch instead of becoming a third navbar layer.
24
+ */
25
+ export declare const NavigationFeatureNav: ({ identity, navigation, navigationLabel, compactNavigationTrigger, compactNavigationTriggerLabel, actions, actionsLabel, featureNavigation, featureNavigationLabel, measure, position, className, ...headerProps }: NavigationFeatureNavProps) => import("react").JSX.Element;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/NavigationFeatureNav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAY/F,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,GAAG;IAC3F,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,gGAAgG;IAChG,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAA;IAC5C,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,qGAAqG;IACrG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC1C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,oNAclC,yBAAyB,gCA2C3B,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@heroui/react";
3
+ import { PageContainer } from "../../primitive/PageContainer/index.js";
4
+ import { navigationFeatureNavActionsClassName, navigationFeatureNavClassName, navigationFeatureNavCompactNavigationClassName, navigationFeatureNavFeatureClassName, navigationFeatureNavIdentityClassName, navigationFeatureNavNavigationClassName, navigationFeatureNavPrimaryClassName, navigationFeatureNavStickyClassName, } from "./classNames.js";
5
+ /**
6
+ * Global navigation with at most one feature layer.
7
+ *
8
+ * The composition owns the single outer separator: the primary and feature
9
+ * layers are intentionally continuous. Deeper responsive navigation belongs
10
+ * to the independent Subnav branch instead of becoming a third navbar layer.
11
+ */
12
+ export const NavigationFeatureNav = ({ identity, navigation, navigationLabel, compactNavigationTrigger, compactNavigationTriggerLabel, actions, actionsLabel, featureNavigation, featureNavigationLabel, measure = "full", position = "sticky", className, ...headerProps }) => (_jsxs("header", { ...headerProps, className: cn(navigationFeatureNavClassName, position === "sticky" && navigationFeatureNavStickyClassName, className), "data-contract": "MEASURE-2 BOUNDARY-1", "data-grammar-navigation-feature-nav": "true", "data-grammar-navigation-feature-nav-layers": featureNavigation === undefined ? "one" : "two", "data-grammar-navigation-feature-nav-position": position, children: [_jsxs(PageContainer, { className: navigationFeatureNavPrimaryClassName, "data-contract": "GAP-3 PADDING-3", "data-grammar-navigation-feature-nav-primary": "true", measure: measure, children: [_jsx("div", { className: navigationFeatureNavIdentityClassName, "data-grammar-navigation-feature-nav-identity": "true", children: identity }), _jsx("nav", { "aria-label": navigationLabel, className: navigationFeatureNavNavigationClassName, "data-grammar-navigation-feature-nav-navigation": "true", children: navigation }), _jsx("div", { "aria-label": compactNavigationTriggerLabel, className: navigationFeatureNavCompactNavigationClassName, "data-grammar-navigation-feature-nav-compact-navigation": "true", role: "group", children: compactNavigationTrigger }), actions === undefined ? null : (_jsx("div", { "aria-label": actionsLabel, className: navigationFeatureNavActionsClassName, "data-contract": "GAP-2", "data-grammar-navigation-feature-nav-actions": "true", role: actionsLabel === undefined ? undefined : "group", children: actions }))] }), featureNavigation === undefined ? null : (_jsx("div", { "aria-label": featureNavigationLabel, className: navigationFeatureNavFeatureClassName, "data-grammar-navigation-feature-nav-feature": "true", role: featureNavigationLabel === undefined ? undefined : "region", children: featureNavigation }))] }));
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/NavigationFeatureNav/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,OAAO,EAAE,aAAa,EAA2B,MAAM,wCAAwC,CAAA;AAC/F,OAAO,EACH,oCAAoC,EACpC,6BAA6B,EAC7B,8CAA8C,EAC9C,oCAAoC,EACpC,qCAAqC,EACrC,uCAAuC,EACvC,oCAAoC,EACpC,mCAAmC,GACtC,MAAM,iBAAiB,CAAA;AAkBxB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACjC,QAAQ,EACR,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,6BAA6B,EAC7B,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,OAAO,GAAG,MAAM,EAChB,QAAQ,GAAG,QAAQ,EACnB,SAAS,EACT,GAAG,WAAW,EACU,EAAE,EAAE,CAAC,CAC7B,qBACQ,WAAW,EACf,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,QAAQ,KAAK,QAAQ,IAAI,mCAAmC,EAAE,SAAS,CAAC,mBACvG,sBAAsB,yCACA,MAAM,gDACE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,kDAC7C,QAAQ,aAEtD,MAAC,aAAa,IAAC,SAAS,EAAE,oCAAoC,mBAAgB,iBAAiB,iDAA6C,MAAM,EAAC,OAAO,EAAE,OAAO,aAC/J,cAAK,SAAS,EAAE,qCAAqC,kDAA+C,MAAM,YAAE,QAAQ,GAAO,EAC3H,4BAAiB,eAAe,EAAE,SAAS,EAAE,uCAAuC,oDAAiD,MAAM,YAAE,UAAU,GAAO,EAC9J,4BACgB,6BAA6B,EACzC,SAAS,EAAE,8CAA8C,4DACF,MAAM,EAC7D,IAAI,EAAC,OAAO,YAEX,wBAAwB,GACvB,EACL,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,4BACgB,YAAY,EACxB,SAAS,EAAE,oCAAoC,mBACjC,OAAO,iDACuB,MAAM,EAClD,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,YAErD,OAAO,GACN,CACT,IACW,EACf,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,4BACgB,sBAAsB,EAClC,SAAS,EAAE,oCAAoC,iDACH,MAAM,EAClD,IAAI,EAAE,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,YAEhE,iBAAiB,GAChB,CACT,IACI,CACZ,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from "react";
2
+ export type PrimaryRailLayoutProps = {
3
+ readonly primary: ReactNode;
4
+ readonly rail?: ReactNode;
5
+ readonly railWidth?: "compact" | "standard" | "wide";
6
+ readonly align?: "start" | "stretch";
7
+ readonly className?: string;
8
+ };
9
+ /**
10
+ * Dominant product content plus one subordinate rail. The composition changes
11
+ * to a single reading flow when the owning container becomes constrained.
12
+ */
13
+ export declare const PrimaryRailLayout: ({ primary, rail, railWidth, align, className, }: PrimaryRailLayoutProps) => import("react").JSX.Element;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PrimaryRailLayout/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,iDAM/B,sBAAsB,gCAaxB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@heroui/react";
3
+ /**
4
+ * Dominant product content plus one subordinate rail. The composition changes
5
+ * to a single reading flow when the owning container becomes constrained.
6
+ */
7
+ export const PrimaryRailLayout = ({ primary, rail, railWidth = "standard", align = "start", className, }) => (_jsx("div", { className: cn("starci-core-primary-rail-container", className), children: _jsxs("div", { className: "starci-core-primary-rail-layout", "data-contract": "GAP-5", "data-grammar-layout-align": align, "data-grammar-layout-rail": rail === undefined ? "absent" : "present", "data-grammar-layout-rail-width": railWidth, children: [_jsx("div", { className: "starci-core-primary-region", "data-grammar-primary-region": "true", children: primary }), rail === undefined ? null : _jsx("div", { className: "starci-core-rail-region", "data-grammar-rail-region": "true", children: rail })] }) }));
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/PrimaryRailLayout/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAWlC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,OAAO,EACP,IAAI,EACJ,SAAS,GAAG,UAAU,EACtB,KAAK,GAAG,OAAO,EACf,SAAS,GACY,EAAE,EAAE,CAAC,CAC1B,cAAK,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,YAC/D,eACI,SAAS,EAAC,iCAAiC,mBAC7B,OAAO,+BACM,KAAK,8BACN,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,oCACnC,SAAS,aAEzC,cAAK,SAAS,EAAC,4BAA4B,iCAA6B,MAAM,YAAE,OAAO,GAAO,EAC7F,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,yBAAyB,8BAA0B,MAAM,YAAE,IAAI,GAAO,IAChH,GACJ,CACT,CAAA"}
@@ -0,0 +1,31 @@
1
+ import type { ReactNode } from "react";
2
+ import { type IconSource } from "../../primitive/Icon/index.js";
3
+ export type SidebarItem = {
4
+ readonly id: string;
5
+ readonly label: string;
6
+ readonly source?: IconSource;
7
+ readonly trailing?: ReactNode;
8
+ readonly isDisabled?: boolean;
9
+ };
10
+ export type SidebarGroup = {
11
+ readonly id: string;
12
+ readonly label?: string;
13
+ readonly items: ReadonlyArray<SidebarItem>;
14
+ };
15
+ export type SidebarProps = {
16
+ readonly label: string;
17
+ readonly groups: ReadonlyArray<SidebarGroup>;
18
+ readonly selectedKey?: string;
19
+ readonly presentation?: "rail" | "drawer";
20
+ readonly isCollapsed?: boolean;
21
+ readonly collapseLabel?: string;
22
+ readonly expandLabel?: string;
23
+ readonly toggleSource?: IconSource;
24
+ readonly header?: ReactNode;
25
+ readonly footer?: ReactNode;
26
+ readonly onAction?: (id: string) => void;
27
+ readonly onCollapsedChange?: (collapsed: boolean) => void;
28
+ };
29
+ /** Shared grouped sidebar renderer; apps own route, permission, copy and persistence policy. */
30
+ export declare const Sidebar: ({ label, groups, selectedKey, presentation, isCollapsed, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }: SidebarProps) => import("react").JSX.Element;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5D,CAAA;AAoBD,gGAAgG;AAChG,eAAO,MAAM,OAAO,GAAI,mJAarB,YAAY,gCA8Ed,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Header, ListBox } from "@heroui/react";
4
+ import { Icon } from "../../primitive/Icon/index.js";
5
+ import { IconButton } from "../../primitive/IconButton/index.js";
6
+ /**
7
+ * Sections and items share ONE key namespace inside the collection.
8
+ *
9
+ * A caller naturally writes `{ id: "home", items: [{ id: "home" }] }` - the group that holds the
10
+ * home destination, named after it. That duplicate key made the collection unresolvable: every
11
+ * section after the first was dropped from the render, and a re-render (collapsing the rail) sent
12
+ * reconciliation into a loop that never settled, which under Vitest reads as a worker that never
13
+ * reports. Prefixing the section key keeps the caller's vocabulary free: a group id and an item id
14
+ * may be the same word, because only the item id is ever a real collection key.
15
+ */
16
+ const sectionKey = (id) => `sidebar-section:${id}`;
17
+ const firstKey = (keys) => {
18
+ if (keys === "all")
19
+ return undefined;
20
+ const value = keys.values().next().value;
21
+ return value === undefined ? undefined : String(value);
22
+ };
23
+ /** Shared grouped sidebar renderer; apps own route, permission, copy and persistence policy. */
24
+ export const Sidebar = ({ label, groups, selectedKey, presentation = "rail", isCollapsed = false, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }) => {
25
+ const collapsed = presentation === "rail" && isCollapsed;
26
+ const toggleLabel = collapsed ? expandLabel : collapseLabel;
27
+ const canToggle = presentation === "rail" && toggleSource !== undefined && toggleLabel !== undefined && onCollapsedChange !== undefined;
28
+ return (_jsxs("div", { "data-tier": "composition", "data-component": "Sidebar", "data-presentation": presentation, "data-collapsed": collapsed ? "true" : "false", className: [
29
+ "flex min-h-0 flex-col overflow-hidden bg-background text-foreground",
30
+ presentation === "drawer" ? "w-full" : collapsed ? "h-full w-16" : "h-full w-64",
31
+ presentation === "rail" ? "border-r border-separator transition-[width] motion-reduce:transition-none" : "",
32
+ ].join(" "), "data-contract": ["OVERFLOW-2", presentation === "drawer" ? "MEASURE-2" : "MEASURE-6"].join(" "), children: [canToggle ? (_jsx("div", { className: collapsed ? "flex justify-center p-2" : "flex justify-end p-2", "data-contract": "PADDING-2", children: _jsx(IconButton, { source: toggleSource, label: toggleLabel, isActive: collapsed, onPress: () => onCollapsedChange(!collapsed) }) })) : null, collapsed || header == null ? null : _jsx("div", { className: "px-3 pb-3", "data-contract": "PADDING-3", children: header }), _jsx(ListBox, { "aria-label": label, selectionMode: "single", selectedKeys: selectedKey === undefined ? [] : [selectedKey], onSelectionChange: (keys) => {
33
+ const key = firstKey(keys);
34
+ if (key !== undefined)
35
+ onAction?.(key);
36
+ }, className: collapsed ? "min-h-0 flex-1 items-center gap-1 overflow-y-auto p-2" : "min-h-0 flex-1 gap-1 overflow-y-auto p-3", "data-contract": collapsed ? "GAP-1 PADDING-2" : "GAP-1 PADDING-3", children: groups.map((group) => (_jsxs(ListBox.Section, { id: sectionKey(group.id), className: collapsed ? "flex flex-col items-center gap-1" : "flex flex-col gap-1", "data-contract": "GAP-1", children: [group.label === undefined ? null : (_jsx(Header, { className: collapsed ? "sr-only" : "px-2 pb-1 pt-3 text-xs font-medium text-muted", ...(collapsed ? {} : { "data-contract": "PADDING-2 PADDING-1 PADDING-3 FONT-1 TONE-2" }), children: group.label })), group.items.map((item) => (_jsxs(ListBox.Item, { id: item.id, textValue: item.label, className: collapsed
37
+ ? "group flex size-11 cursor-pointer items-center justify-center rounded-full text-foreground outline-none data-[disabled=true]:cursor-default data-[disabled=true]:opacity-50 data-[focus-visible=true]:ring-2 data-[focus-visible=true]:ring-accent data-[hovered=true]:bg-default data-[selected=true]:bg-accent-soft data-[selected=true]:text-accent-soft-foreground"
38
+ : "flex cursor-pointer items-center gap-3 rounded-large px-3 py-2 text-foreground outline-none data-[disabled=true]:cursor-default data-[disabled=true]:opacity-50 data-[focus-visible=true]:ring-2 data-[focus-visible=true]:ring-accent data-[hovered=true]:bg-default data-[selected=true]:bg-accent-soft data-[selected=true]:text-accent-soft-foreground", "data-contract": collapsed ? "TONE-1 SURFACE-4" : "GAP-3 PADDING-3 PADDING-2 TONE-1 SURFACE-4", ...(collapsed ? { "aria-label": item.label } : {}), ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: [item.source === undefined ? null : _jsx(Icon, { source: item.source, usage: "leading" }), collapsed ? null : _jsx("span", { className: "min-w-0 flex-1 truncate text-sm font-medium", "data-contract": "FLOW-4 FONT-2", children: item.label }), collapsed || item.trailing == null ? null : _jsx("span", { className: "shrink-0", children: item.trailing })] }, item.id)))] }, group.id))) }), collapsed || footer == null ? null : _jsx("div", { className: "p-3 pt-0", "data-contract": "PADDING-3 PADDING-0", children: footer })] }));
39
+ };
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const workspaceShellClassName: import("tailwind-variants").CnReturn;
2
+ export declare const workspaceShellHeaderClassName: import("tailwind-variants").CnReturn;
3
+ export declare const workspaceShellCompactHeaderClassName: import("tailwind-variants").CnReturn;
4
+ export declare const workspaceShellLayoutClassName: import("tailwind-variants").CnReturn;
5
+ export declare const workspaceShellNavigationClassName: import("tailwind-variants").CnReturn;
6
+ export declare const workspaceShellPrimaryClassName: import("tailwind-variants").CnReturn;
7
+ export declare const workspaceShellRailClassName: import("tailwind-variants").CnReturn;
8
+ export declare const workspaceShellLeadingRuleClassName: import("tailwind-variants").CnReturn;
9
+ export declare const workspaceShellCompactNavigationClassName: import("tailwind-variants").CnReturn;
10
+ export declare const workspaceShellFloatingLayerClassName: import("tailwind-variants").CnReturn;
11
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,sCAAoC,CAAA;AACxE,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,oCAAoC,sCAAmD,CAAA;AACpG,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,iCAAiC,sCAA+C,CAAA;AAC7F,eAAO,MAAM,8BAA8B,sCAA4C,CAAA;AACvF,eAAO,MAAM,2BAA2B,sCAAyC,CAAA;AACjF,eAAO,MAAM,kCAAkC,sCAAiD,CAAA;AAChG,eAAO,MAAM,wCAAwC,sCAAuD,CAAA;AAC5G,eAAO,MAAM,oCAAoC,sCAAmD,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { cn } from "@heroui/react";
2
+ export const workspaceShellClassName = cn("starci-core-workspace-shell");
3
+ export const workspaceShellHeaderClassName = cn("starci-core-workspace-shell-header");
4
+ export const workspaceShellCompactHeaderClassName = cn("starci-core-workspace-shell-compact-header");
5
+ export const workspaceShellLayoutClassName = cn("starci-core-workspace-shell-layout");
6
+ export const workspaceShellNavigationClassName = cn("starci-core-workspace-shell-navigation");
7
+ export const workspaceShellPrimaryClassName = cn("starci-core-workspace-shell-primary");
8
+ export const workspaceShellRailClassName = cn("starci-core-workspace-shell-rail");
9
+ export const workspaceShellLeadingRuleClassName = cn("starci-core-workspace-shell-leading-rule");
10
+ export const workspaceShellCompactNavigationClassName = cn("starci-core-workspace-shell-compact-navigation");
11
+ export const workspaceShellFloatingLayerClassName = cn("starci-core-workspace-shell-floating-layer");
12
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC,wCAAwC,CAAC,CAAA;AAC7F,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,qCAAqC,CAAC,CAAA;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,kCAAkC,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC,0CAA0C,CAAC,CAAA;AAChG,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC,gDAAgD,CAAC,CAAA;AAC5G,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA"}