@starci/grammar 0.2.0 → 0.3.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 (107) hide show
  1. package/README.md +44 -55
  2. package/dist/common/index.d.ts +1 -69
  3. package/dist/common/index.d.ts.map +1 -1
  4. package/dist/common/index.js +5 -197
  5. package/dist/common/index.js.map +1 -1
  6. package/dist/core/LeadingNumber.d.ts +12 -0
  7. package/dist/core/LeadingNumber.d.ts.map +1 -0
  8. package/dist/core/LeadingNumber.js +10 -0
  9. package/dist/core/LeadingNumber.js.map +1 -0
  10. package/dist/core/OtpInput.d.ts +12 -0
  11. package/dist/core/OtpInput.d.ts.map +1 -0
  12. package/dist/core/OtpInput.js +21 -0
  13. package/dist/core/OtpInput.js.map +1 -0
  14. package/dist/core/StateMark.d.ts +3 -5
  15. package/dist/core/StateMark.d.ts.map +1 -1
  16. package/dist/core/StateMark.js +3 -3
  17. package/dist/core/StateMark.js.map +1 -1
  18. package/dist/core/branch/MarkdownArticle/classNames.d.ts +9 -0
  19. package/dist/core/branch/MarkdownArticle/classNames.d.ts.map +1 -0
  20. package/dist/core/branch/MarkdownArticle/classNames.js +10 -0
  21. package/dist/core/branch/MarkdownArticle/classNames.js.map +1 -0
  22. package/dist/core/branch/MarkdownArticle/index.d.ts +30 -0
  23. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -0
  24. package/dist/core/branch/MarkdownArticle/index.js +12 -0
  25. package/dist/core/branch/MarkdownArticle/index.js.map +1 -0
  26. package/dist/core/branch/Rail/classNames.d.ts +9 -0
  27. package/dist/core/branch/Rail/classNames.d.ts.map +1 -0
  28. package/dist/core/branch/Rail/classNames.js +10 -0
  29. package/dist/core/branch/Rail/classNames.js.map +1 -0
  30. package/dist/core/branch/Rail/index.d.ts +3 -6
  31. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  32. package/dist/core/branch/Rail/index.js +6 -5
  33. package/dist/core/branch/Rail/index.js.map +1 -1
  34. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts +15 -0
  35. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts.map +1 -0
  36. package/dist/core/branch/SurfaceAccordionCard/classNames.js +16 -0
  37. package/dist/core/branch/SurfaceAccordionCard/classNames.js.map +1 -0
  38. package/dist/core/branch/SurfaceAccordionCard/index.d.ts +37 -0
  39. package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -0
  40. package/dist/core/branch/SurfaceAccordionCard/index.js +24 -0
  41. package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -0
  42. package/dist/core/branch/SurfaceCard/classNames.d.ts +13 -0
  43. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -0
  44. package/dist/core/branch/SurfaceCard/classNames.js +14 -0
  45. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -0
  46. package/dist/core/branch/SurfaceCard/index.d.ts +3 -6
  47. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  48. package/dist/core/branch/SurfaceCard/index.js +7 -4
  49. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  50. package/dist/core/branch/SurfaceListCard/classNames.d.ts +11 -0
  51. package/dist/core/branch/SurfaceListCard/classNames.d.ts.map +1 -0
  52. package/dist/core/branch/SurfaceListCard/classNames.js +12 -0
  53. package/dist/core/branch/SurfaceListCard/classNames.js.map +1 -0
  54. package/dist/core/branch/SurfaceListCard/index.d.ts +5 -19
  55. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  56. package/dist/core/branch/SurfaceListCard/index.js +5 -8
  57. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  58. package/dist/core/classNames.d.ts +23 -0
  59. package/dist/core/classNames.d.ts.map +1 -0
  60. package/dist/core/classNames.js +24 -0
  61. package/dist/core/classNames.js.map +1 -0
  62. package/dist/core/composite/HorizontalScrollRegion/index.d.ts +7 -0
  63. package/dist/core/composite/HorizontalScrollRegion/index.d.ts.map +1 -0
  64. package/dist/core/composite/HorizontalScrollRegion/index.js +7 -0
  65. package/dist/core/composite/HorizontalScrollRegion/index.js.map +1 -0
  66. package/dist/core/composite/StaticStateRow/index.d.ts +1 -5
  67. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -1
  68. package/dist/core/composite/StaticStateRow/index.js +4 -3
  69. package/dist/core/composite/StaticStateRow/index.js.map +1 -1
  70. package/dist/core/composite/VerticalScrollRegion/index.d.ts +8 -0
  71. package/dist/core/composite/VerticalScrollRegion/index.d.ts.map +1 -0
  72. package/dist/core/composite/VerticalScrollRegion/index.js +10 -0
  73. package/dist/core/composite/VerticalScrollRegion/index.js.map +1 -0
  74. package/dist/core/index.d.ts +12 -10
  75. package/dist/core/index.d.ts.map +1 -1
  76. package/dist/core/index.js +11 -10
  77. package/dist/core/index.js.map +1 -1
  78. package/dist/core/scrollable-surfaces.spec.d.ts +2 -0
  79. package/dist/core/scrollable-surfaces.spec.d.ts.map +1 -0
  80. package/dist/core/scrollable-surfaces.spec.js +37 -0
  81. package/dist/core/scrollable-surfaces.spec.js.map +1 -0
  82. package/dist/core/state.d.ts +4 -4
  83. package/dist/core/state.d.ts.map +1 -1
  84. package/dist/core/state.js +3 -3
  85. package/dist/core/state.js.map +1 -1
  86. package/dist/core/styles.css +426 -70
  87. package/package.json +5 -9
  88. package/dist/core/contracts.d.ts +0 -190
  89. package/dist/core/contracts.d.ts.map +0 -1
  90. package/dist/core/contracts.js +0 -145
  91. package/dist/core/contracts.js.map +0 -1
  92. package/dist/core/grammar.d.ts +0 -18
  93. package/dist/core/grammar.d.ts.map +0 -1
  94. package/dist/core/grammar.js +0 -27
  95. package/dist/core/grammar.js.map +0 -1
  96. package/dist/core/layout.d.ts +0 -9
  97. package/dist/core/layout.d.ts.map +0 -1
  98. package/dist/core/layout.js +0 -43
  99. package/dist/core/layout.js.map +0 -1
  100. package/dist/core/rules.d.ts +0 -63
  101. package/dist/core/rules.d.ts.map +0 -1
  102. package/dist/core/rules.js +0 -66
  103. package/dist/core/rules.js.map +0 -1
  104. package/dist/offset-pop/index.d.ts +0 -266
  105. package/dist/offset-pop/index.d.ts.map +0 -1
  106. package/dist/offset-pop/index.js +0 -69
  107. package/dist/offset-pop/index.js.map +0 -1
@@ -1,6 +1,85 @@
1
1
  @layer starci-grammar-core {
2
+ .starci-core-form-page {
3
+ display: flex;
4
+ min-height: 100dvh;
5
+ padding: 1.5rem 1rem;
6
+ align-items: center;
7
+ justify-content: center;
8
+ overflow: hidden;
9
+ }
10
+
11
+ .starci-core-form-scroll-viewport {
12
+ width: 100%;
13
+ max-height: calc(100dvh - 3rem);
14
+ overscroll-behavior: contain;
15
+ }
16
+
17
+ .starci-core-form-surface {
18
+ display: flex;
19
+ width: min(100%, var(--starci-core-form-measure, 30rem));
20
+ min-width: 0;
21
+ flex-direction: column;
22
+ gap: var(--starci-core-section-gap, 0.75rem);
23
+ }
24
+
25
+ .starci-core-form-surface--compact {
26
+ width: min(100%, var(--starci-core-form-compact-measure, 28rem));
27
+ }
28
+
29
+ .starci-core-form-surface > .card {
30
+ max-height: calc(100dvh - 3rem);
31
+ overflow: hidden !important;
32
+ padding: 0 !important;
33
+ }
34
+
35
+ .starci-core-form-field {
36
+ display: flex;
37
+ min-width: 0;
38
+ flex-direction: column;
39
+ gap: var(--starci-core-field-gap, 0.5rem);
40
+ }
41
+
42
+ .starci-core-form-label--screen-reader {
43
+ position: absolute;
44
+ width: 1px;
45
+ height: 1px;
46
+ padding: 0;
47
+ margin: -1px;
48
+ overflow: hidden;
49
+ clip: rect(0, 0, 0, 0);
50
+ white-space: nowrap;
51
+ border: 0;
52
+ }
53
+
54
+ .starci-core-horizontal-scroll-region {
55
+ width: 100%;
56
+ min-width: 0;
57
+ padding-block: 0.25rem;
58
+ overscroll-behavior-inline: contain;
59
+ }
60
+
61
+ .starci-core-horizontal-scroll-region > * {
62
+ width: max-content;
63
+ min-width: max-content;
64
+ }
65
+
66
+ @media (min-width: 40rem) {
67
+ .starci-core-form-page {
68
+ padding-block: 2.5rem;
69
+ }
70
+
71
+ .starci-core-form-scroll-viewport {
72
+ max-height: calc(100dvh - 5rem);
73
+ }
74
+
75
+ .starci-core-form-surface > .card {
76
+ max-height: calc(100dvh - 5rem);
77
+ }
78
+ }
79
+
2
80
  .starci-core-surface-card,
3
- .starci-core-surface-list {
81
+ .starci-core-surface-list,
82
+ .starci-core-surface-accordion-card {
4
83
  container-name: starci-core-surface;
5
84
  container-type: inline-size;
6
85
  display: flex;
@@ -28,50 +107,51 @@
28
107
  min-width: 0;
29
108
  overflow: hidden;
30
109
  border-radius: var(--starci-core-surface-radius, 1rem);
31
- background: var(--surface, Canvas);
32
- color: var(--surface-foreground, CanvasText);
110
+ background: var(--surface, Canvas);
111
+ color: var(--surface-foreground, CanvasText);
33
112
  }
34
113
 
35
114
  .starci-core-surface[data-grammar-surface-depth="top"] {
36
115
  border: 0;
37
- box-shadow: var(--starci-core-surface-shadow, var(--shadow-surface, 0 1px 3px rgb(0 0 0 / 0.16)));
116
+ box-shadow: var(--starci-core-surface-shadow, var(--shadow-surface, 0 1px 3px rgb(0 0 0 / 0.16)));
38
117
  }
39
118
 
40
119
  .starci-core-surface[data-grammar-surface-depth="nested"] {
41
- border: 1px solid var(--border, GrayText);
120
+ border: 1px solid var(--border, GrayText);
42
121
  box-shadow: none;
43
122
  }
44
123
 
45
- .starci-core-surface-content {
124
+ .starci-core-surface-content {
46
125
  min-width: 0;
47
126
  padding: var(--starci-core-surface-inset, 1rem);
48
- }
49
-
50
- .starci-core-surface.starci-core-frameless-surface {
51
- position: relative;
52
- min-width: 0;
53
- overflow: visible;
54
- border: 0;
55
- border-radius: 0;
56
- background: transparent;
57
- box-shadow: none;
58
- color: inherit;
59
- }
60
-
61
- .starci-core-frameless-surface > .starci-core-surface-content {
62
- padding: 0;
63
- }
64
-
65
- [data-grammar-scroll="contained"] {
66
- max-height: var(--starci-core-contained-max-height, none);
67
- overflow: hidden;
68
- }
69
-
70
- [data-grammar-scroll="contained"] > .starci-core-surface-content {
71
- min-height: 0;
72
- overflow-y: auto;
73
- overscroll-behavior: contain;
74
- }
127
+ }
128
+
129
+ .starci-core-surface.starci-core-frameless-surface {
130
+ position: relative;
131
+ min-width: 0;
132
+ overflow: visible;
133
+ border: 0;
134
+ border-radius: 0;
135
+ background: transparent;
136
+ box-shadow: none;
137
+ color: inherit;
138
+ }
139
+
140
+ .starci-core-frameless-surface > .starci-core-surface-content {
141
+ padding: 0;
142
+ }
143
+
144
+ [data-grammar-scroll="contained"] {
145
+ max-height: var(--starci-core-contained-max-height, calc(100dvh - 3rem));
146
+ overflow: hidden;
147
+ }
148
+
149
+ [data-grammar-scroll="contained"] > .scroll-shadow--vertical {
150
+ width: 100%;
151
+ max-height: inherit;
152
+ min-height: 0;
153
+ overscroll-behavior: contain;
154
+ }
75
155
 
76
156
  [data-grammar-whole-action] {
77
157
  position: absolute;
@@ -85,7 +165,7 @@
85
165
  }
86
166
 
87
167
  [data-grammar-whole-action]:focus-visible {
88
- outline: 2px solid var(--focus, Highlight);
168
+ outline: 2px solid var(--focus, Highlight);
89
169
  outline-offset: -2px;
90
170
  }
91
171
 
@@ -102,25 +182,37 @@
102
182
  cursor: progress;
103
183
  }
104
184
 
185
+ .starci-core-leading-number {
186
+ display: inline-block;
187
+ flex: none;
188
+ min-width: 1.25rem;
189
+ color: var(--muted, GrayText);
190
+ font-size: 0.875rem;
191
+ font-variant-numeric: tabular-nums;
192
+ line-height: 1.25rem;
193
+ text-align: end;
194
+ white-space: nowrap;
195
+ }
196
+
105
197
  .starci-core-list-shell {
106
198
  padding: 0;
107
199
  }
108
200
 
109
- .starci-core-static-list {
201
+ .starci-core-static-list {
110
202
  display: flex;
111
203
  margin: 0;
112
204
  padding: 0;
113
205
  flex-direction: column;
114
206
  list-style: none;
115
- }
116
-
117
- .starci-core-owned-collection {
118
- min-width: 0;
119
- }
120
-
121
- .starci-core-surface-footer {
122
- min-width: 0;
123
- }
207
+ }
208
+
209
+ .starci-core-owned-collection {
210
+ min-width: 0;
211
+ }
212
+
213
+ .starci-core-surface-footer {
214
+ min-width: 0;
215
+ }
124
216
 
125
217
  .starci-core-static-row,
126
218
  .starci-core-empty-row {
@@ -133,7 +225,255 @@
133
225
  }
134
226
 
135
227
  .starci-core-static-row + .starci-core-static-row {
136
- border-top: 1px solid var(--separator, var(--border, GrayText));
228
+ border-top: 1px solid var(--separator, var(--border, GrayText));
229
+ }
230
+
231
+ .starci-core-list-shell[data-grammar-hover="invariant"] .starci-core-static-row:hover {
232
+ background: transparent;
233
+ box-shadow: none;
234
+ color: inherit;
235
+ transform: none;
236
+ }
237
+
238
+ .starci-core-accordion-shell {
239
+ width: 100%;
240
+ min-width: 0;
241
+ }
242
+
243
+ .starci-core-accordion-shell-frameless {
244
+ overflow: visible;
245
+ border: 0;
246
+ border-radius: 0;
247
+ background: transparent;
248
+ box-shadow: none;
249
+ }
250
+
251
+ .starci-core-accordion-row {
252
+ width: 100%;
253
+ min-width: 0;
254
+ }
255
+
256
+ .starci-core-accordion-row + .starci-core-accordion-row {
257
+ border-top: 1px solid var(--separator, var(--border, GrayText));
258
+ }
259
+
260
+ .starci-core-accordion-heading {
261
+ margin: 0;
262
+ }
263
+
264
+ .starci-core-accordion-trigger {
265
+ display: block;
266
+ width: 100%;
267
+ min-width: 0;
268
+ min-height: 44px;
269
+ padding: var(--starci-core-row-inset, 1rem);
270
+ border: 0;
271
+ background: transparent;
272
+ box-shadow: none;
273
+ color: inherit;
274
+ cursor: pointer;
275
+ font: inherit;
276
+ text-align: left;
277
+ transform: none;
278
+ }
279
+
280
+ .starci-core-accordion-trigger:hover,
281
+ .starci-core-accordion-trigger[data-hovered="true"] {
282
+ background: transparent;
283
+ box-shadow: none;
284
+ color: inherit;
285
+ transform: none;
286
+ }
287
+
288
+ .starci-core-accordion-trigger:disabled {
289
+ cursor: default;
290
+ }
291
+
292
+ .starci-core-accordion-panel {
293
+ width: 100%;
294
+ min-width: 0;
295
+ padding: 0 var(--starci-core-row-inset, 1rem) var(--starci-core-row-inset, 1rem);
296
+ }
297
+
298
+ .starci-core-markdown-article {
299
+ display: flex;
300
+ width: 100%;
301
+ min-width: 0;
302
+ flex-direction: column;
303
+ gap: 1rem;
304
+ color: inherit;
305
+ font-size: 0.875rem;
306
+ line-height: 1.65;
307
+ overflow-wrap: anywhere;
308
+ }
309
+
310
+ .starci-core-markdown-article[data-grammar-markdown-measure="compact"] {
311
+ max-width: 72ch;
312
+ gap: 0.75rem;
313
+ }
314
+
315
+ .starci-core-markdown-article > :first-child {
316
+ margin-top: 0;
317
+ }
318
+
319
+ .starci-core-markdown-article > :last-child {
320
+ margin-bottom: 0;
321
+ }
322
+
323
+ .starci-core-markdown-article :where(h1, h2, h3, h4) {
324
+ margin: 1.5rem 0 0.625rem;
325
+ color: inherit;
326
+ font-weight: 600;
327
+ line-height: 1.3;
328
+ }
329
+
330
+ .starci-core-markdown-article h1 { font-size: 1.5rem; }
331
+ .starci-core-markdown-article h2 { font-size: 1.25rem; }
332
+ .starci-core-markdown-article h3 { font-size: 1.125rem; }
333
+ .starci-core-markdown-article h4 { font-size: 1rem; }
334
+
335
+ .starci-core-markdown-article :where(p, ul, ol, blockquote, pre, table) {
336
+ margin: 0;
337
+ }
338
+
339
+ .starci-core-markdown-article :where(ul, ol) {
340
+ padding-inline-start: 1.5rem;
341
+ }
342
+
343
+ .starci-core-markdown-article ul { list-style: disc; }
344
+ .starci-core-markdown-article ol { list-style: decimal; }
345
+
346
+ .starci-core-markdown-article strong { font-weight: 600; }
347
+ .starci-core-markdown-article em { font-style: italic; }
348
+
349
+ .starci-core-markdown-article li + li {
350
+ margin-top: 0.375rem;
351
+ }
352
+
353
+ .starci-core-markdown-article :not(pre) > code {
354
+ display: inline;
355
+ padding: 0.125rem 0.375rem;
356
+ border: 1px solid var(--border, GrayText);
357
+ border-radius: 999px;
358
+ background: var(--muted-surface, color-mix(in srgb, CanvasText 7%, Canvas));
359
+ color: inherit;
360
+ font: 500 0.875rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
361
+ white-space: break-spaces;
362
+ }
363
+
364
+ .starci-core-markdown-article pre,
365
+ .starci-core-fenced-code-block pre {
366
+ max-width: 100%;
367
+ margin: 0;
368
+ padding: 1rem;
369
+ overflow-x: auto;
370
+ border: 1px solid var(--border, GrayText);
371
+ border-radius: 0.75rem;
372
+ background: var(--code-surface, color-mix(in srgb, CanvasText 6%, Canvas));
373
+ color: inherit;
374
+ overscroll-behavior-inline: contain;
375
+ }
376
+
377
+ .starci-core-markdown-article pre code,
378
+ .starci-core-fenced-code-block pre code {
379
+ padding: 0;
380
+ border: 0;
381
+ background: transparent;
382
+ color: inherit;
383
+ font: 400 0.875rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
384
+ white-space: pre;
385
+ }
386
+
387
+ .starci-core-fenced-code-block {
388
+ width: 100%;
389
+ min-width: 0;
390
+ margin: 0 0 1rem;
391
+ }
392
+
393
+ .starci-core-fenced-code-header {
394
+ display: flex;
395
+ min-width: 0;
396
+ align-items: center;
397
+ justify-content: space-between;
398
+ gap: 0.75rem;
399
+ padding: 0 0 0.5rem;
400
+ color: var(--muted, GrayText);
401
+ }
402
+
403
+ .starci-core-fenced-code-header :where(button) {
404
+ padding: 0;
405
+ border: 0;
406
+ background: transparent;
407
+ color: inherit;
408
+ cursor: pointer;
409
+ font: inherit;
410
+ }
411
+
412
+ [data-grammar-fenced-code-highlight="true"] {
413
+ width: 100%;
414
+ min-width: 0;
415
+ overflow-x: auto;
416
+ border: 1px solid var(--border, GrayText);
417
+ border-radius: 0.75rem;
418
+ background: var(--code-surface, color-mix(in srgb, CanvasText 6%, Canvas));
419
+ overscroll-behavior-inline: contain;
420
+ }
421
+
422
+ [data-grammar-fenced-code-highlight="true"] pre {
423
+ width: max-content;
424
+ min-width: 100%;
425
+ padding: 1rem;
426
+ border: 0;
427
+ border-radius: 0;
428
+ background: transparent !important;
429
+ }
430
+
431
+ .starci-core-markdown-article blockquote {
432
+ padding-inline-start: 1rem;
433
+ border-inline-start: 3px solid var(--border, GrayText);
434
+ color: var(--muted, GrayText);
435
+ }
436
+
437
+ .starci-core-markdown-article table,
438
+ .starci-core-markdown-table-frame {
439
+ display: block;
440
+ width: 100%;
441
+ max-width: 100%;
442
+ overflow-x: auto;
443
+ overscroll-behavior-inline: contain;
444
+ }
445
+
446
+ .starci-core-markdown-article table {
447
+ border-collapse: collapse;
448
+ }
449
+
450
+ .starci-core-markdown-table-frame {
451
+ min-width: 0;
452
+ border: 1px solid var(--border, GrayText);
453
+ border-radius: 0.75rem;
454
+ background: var(--code-surface, color-mix(in srgb, CanvasText 4%, Canvas));
455
+ box-shadow: none;
456
+ }
457
+
458
+ .starci-core-markdown-article hr {
459
+ width: 100%;
460
+ margin: 1rem 0;
461
+ border: 0;
462
+ border-top: 1px solid var(--separator, var(--border, GrayText));
463
+ }
464
+
465
+ .starci-core-markdown-article :where(th, td) {
466
+ min-width: 8rem;
467
+ padding: 0.625rem 0.75rem;
468
+ border-bottom: 1px solid var(--separator, var(--border, GrayText));
469
+ text-align: start;
470
+ vertical-align: top;
471
+ }
472
+
473
+ .starci-core-markdown-article a {
474
+ color: var(--link, LinkText);
475
+ text-decoration: underline;
476
+ text-underline-offset: 0.15em;
137
477
  }
138
478
 
139
479
  .starci-core-static-row-copy {
@@ -145,14 +485,14 @@
145
485
  }
146
486
 
147
487
  .starci-core-static-row-copy > :last-child:not(:first-child) {
148
- color: var(--muted, GrayText);
488
+ color: var(--muted, GrayText);
149
489
  }
150
490
 
151
491
  [data-grammar-state-mark="check"] {
152
492
  width: 1.25rem;
153
493
  height: 1.25rem;
154
494
  flex: none;
155
- color: var(--success, #15803d);
495
+ color: var(--success, #15803d);
156
496
  }
157
497
 
158
498
  .starci-core-rail {
@@ -162,13 +502,13 @@
162
502
  min-width: 0;
163
503
  }
164
504
 
165
- .starci-core-rail[data-grammar-rail-width="compact"] {
505
+ .starci-core-rail[data-grammar-rail-width="compact"] {
166
506
  max-width: var(--starci-core-rail-compact, 16rem);
167
- }
168
-
169
- .starci-core-rail[data-grammar-collapse="collapsed"] {
170
- max-width: var(--starci-core-rail-collapsed, 4rem);
171
- }
507
+ }
508
+
509
+ .starci-core-rail[data-grammar-collapse="collapsed"] {
510
+ max-width: var(--starci-core-rail-collapsed, 4rem);
511
+ }
172
512
 
173
513
  .starci-core-rail[data-grammar-rail-width="standard"] {
174
514
  max-width: var(--starci-core-rail-standard, 20rem);
@@ -197,14 +537,30 @@
197
537
  overscroll-behavior: contain;
198
538
  }
199
539
 
200
- .starci-core-rail-footer {
201
- flex: none;
202
- }
203
-
204
- .starci-core-rail :where(button, [role="button"]) {
205
- min-inline-size: 44px;
206
- min-block-size: 44px;
207
- }
540
+ .starci-core-rail[data-grammar-rail-height="fill"],
541
+ .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-frame,
542
+ .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-body {
543
+ height: 100%;
544
+ min-height: 0;
545
+ }
546
+
547
+ .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-frame {
548
+ max-height: none;
549
+ }
550
+
551
+ .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-body {
552
+ flex: 1 1 0%;
553
+ overflow: hidden;
554
+ }
555
+
556
+ .starci-core-rail-footer {
557
+ flex: none;
558
+ }
559
+
560
+ .starci-core-rail :where(button, [role="button"]) {
561
+ min-inline-size: 44px;
562
+ min-block-size: 44px;
563
+ }
208
564
 
209
565
  @container starci-core-surface (max-width: 28rem) {
210
566
  .starci-core-surface-label {
@@ -223,7 +579,7 @@
223
579
  }
224
580
  }
225
581
 
226
- @media (max-width: 47.999rem) {
582
+ @media (max-width: 47.999rem) {
227
583
  .starci-core-rail[data-grammar-rail-mode="sticky"] .starci-core-rail-frame {
228
584
  position: static;
229
585
  max-height: none;
@@ -232,11 +588,11 @@
232
588
  .starci-core-rail-body {
233
589
  overflow-y: visible;
234
590
  }
235
- }
236
-
237
- @media (prefers-reduced-motion: reduce) {
238
- [data-grammar-motion="animated"] {
239
- scroll-behavior: auto;
240
- }
241
- }
242
- }
591
+ }
592
+
593
+ @media (prefers-reduced-motion: reduce) {
594
+ [data-grammar-motion="animated"] {
595
+ scroll-behavior: auto;
596
+ }
597
+ }
598
+ }
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@starci/grammar",
3
- "version": "0.2.0",
4
- "description": "Business-neutral StarCi UI contracts and versioned Grammar bundles.",
3
+ "version": "0.3.0",
4
+ "description": "Business-neutral StarCi React components and the Offset Pop visual layer.",
5
5
  "keywords": [
6
6
  "starci",
7
7
  "design-system",
8
- "ui-contracts",
9
8
  "grammar"
10
9
  ],
11
10
  "repository": {
@@ -39,10 +38,6 @@
39
38
  },
40
39
  "./core.css": "./dist/core/styles.css",
41
40
  "./core/styles.css": "./dist/core/styles.css",
42
- "./offset-pop": {
43
- "types": "./dist/offset-pop/index.d.ts",
44
- "import": "./dist/offset-pop/index.js"
45
- },
46
41
  "./offset-pop.css": "./dist/offset-pop/styles.css",
47
42
  "./offset-pop/styles.css": "./dist/offset-pop/styles.css",
48
43
  "./package.json": "./package.json"
@@ -50,14 +45,15 @@
50
45
  "scripts": {
51
46
  "build": "node scripts/clean.mjs && tsc -p tsconfig.build.json && node scripts/copy-css.mjs",
52
47
  "typecheck": "tsc -p tsconfig.build.json --noEmit",
53
- "test": "npm run build && node --test src/common/index.test.mjs src/core/index.test.mjs src/offset-pop/index.test.mjs && vitest run --config vitest.config.ts src/core/styles.spec.ts src/offset-pop/styles.spec.ts",
48
+ "test": "npm run build && node --test src/common/index.test.mjs src/core/index.test.mjs src/package-boundary.test.mjs && vitest run --config vitest.config.ts src/core/styles.spec.ts src/core/scrollable-surfaces.spec.tsx src/offset-pop/styles.spec.ts",
54
49
  "prepack": "npm run typecheck && npm test"
55
50
  },
56
51
  "engines": {
57
52
  "node": ">=20"
58
53
  },
59
54
  "peerDependencies": {
60
- "react": ">=18"
55
+ "react": ">=18",
56
+ "@heroui/react": ">=3.2.0"
61
57
  },
62
58
  "devDependencies": {
63
59
  "@types/react": "^19.0.0",