@starci/grammar 0.1.0 → 0.2.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 (46) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +53 -40
  3. package/dist/common/styles.css +2 -2
  4. package/dist/core/StateMark.d.ts +4 -0
  5. package/dist/core/StateMark.d.ts.map +1 -1
  6. package/dist/core/StateMark.js +1 -0
  7. package/dist/core/StateMark.js.map +1 -1
  8. package/dist/core/branch/Rail/index.d.ts +13 -2
  9. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  10. package/dist/core/branch/Rail/index.js +17 -2
  11. package/dist/core/branch/Rail/index.js.map +1 -1
  12. package/dist/core/branch/SurfaceCard/index.d.ts +7 -1
  13. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  14. package/dist/core/branch/SurfaceCard/index.js +3 -2
  15. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  16. package/dist/core/branch/SurfaceListCard/index.d.ts +20 -10
  17. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  18. package/dist/core/branch/SurfaceListCard/index.js +7 -9
  19. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  20. package/dist/core/composite/StaticStateRow/index.d.ts +17 -0
  21. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -0
  22. package/dist/core/composite/StaticStateRow/index.js +11 -0
  23. package/dist/core/composite/StaticStateRow/index.js.map +1 -0
  24. package/dist/core/contracts.d.ts +28 -28
  25. package/dist/core/contracts.d.ts.map +1 -1
  26. package/dist/core/contracts.js +65 -11
  27. package/dist/core/contracts.js.map +1 -1
  28. package/dist/core/grammar.d.ts +1 -1
  29. package/dist/core/grammar.js +1 -1
  30. package/dist/core/index.d.ts +3 -0
  31. package/dist/core/index.d.ts.map +1 -1
  32. package/dist/core/index.js +3 -0
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/layout.d.ts +9 -0
  35. package/dist/core/layout.d.ts.map +1 -0
  36. package/dist/core/layout.js +43 -0
  37. package/dist/core/layout.js.map +1 -0
  38. package/dist/core/rules.d.ts +18 -0
  39. package/dist/core/rules.d.ts.map +1 -1
  40. package/dist/core/rules.js +21 -0
  41. package/dist/core/rules.js.map +1 -1
  42. package/dist/core/styles.css +211 -162
  43. package/dist/offset-pop/index.d.ts +29 -29
  44. package/dist/offset-pop/index.js +2 -2
  45. package/dist/offset-pop/styles.css +393 -393
  46. package/package.json +72 -72
@@ -3,16 +3,16 @@ export declare const surfaceCardContract: Readonly<{
3
3
  key: "core.surface-card";
4
4
  version: string;
5
5
  spec: Readonly<{
6
- readonly version: "1.0.0";
6
+ readonly version: "1.1.0";
7
7
  readonly layer: "branch";
8
8
  readonly slots: readonly ["external-label", "content", "whole-action"];
9
9
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
10
- readonly variableAxes: readonly ["surface-depth", "state-treatment", "action-mode", "container-response"];
10
+ readonly variableAxes: readonly ["surface-depth", "state-treatment", "action-mode", "label-end", "frame-mode", "scroll-mode", "container-response"];
11
11
  readonly extensionPolicy: {
12
- readonly allowedAxes: readonly ["surface-depth", "state-treatment", "container-response"];
12
+ readonly allowedAxes: readonly ["surface-depth", "state-treatment", "label-end", "frame-mode", "scroll-mode", "container-response"];
13
13
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
14
14
  };
15
- readonly closedInvariants: readonly ["label-outside-surface", "nested-border-xor-shadow", "one-content-owner", "whole-action-is-overlay", "neutral-state-only"];
15
+ readonly closedInvariants: readonly ["label-outside-surface", "nested-border-xor-shadow", "one-content-owner", "whole-action-is-overlay", "frameless-has-no-surface-shell", "contained-scroll-has-one-scroll-owner", "neutral-state-only"];
16
16
  }>;
17
17
  base: Readonly<{
18
18
  key: string;
@@ -26,16 +26,16 @@ export declare const surfaceListCardContract: Readonly<{
26
26
  key: "core.surface-list-card";
27
27
  version: string;
28
28
  spec: Readonly<{
29
- readonly version: "1.0.0";
29
+ readonly version: "1.1.0";
30
30
  readonly layer: "branch";
31
- readonly slots: readonly ["external-label", "single-list-shell", "static-row"];
31
+ readonly slots: readonly ["external-label", "single-list-shell", "single-collection-shell", "static-row", "interactive-row", "footer"];
32
32
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
33
- readonly variableAxes: readonly ["surface-depth", "state-treatment", "row-count", "container-response"];
33
+ readonly variableAxes: readonly ["surface-depth", "state-treatment", "row-count", "row-mode", "label-visibility", "footer-mode", "container-response"];
34
34
  readonly extensionPolicy: {
35
- readonly allowedAxes: readonly ["surface-depth", "state-treatment", "container-response"];
35
+ readonly allowedAxes: readonly ["surface-depth", "state-treatment", "row-mode", "label-visibility", "footer-mode", "container-response"];
36
36
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
37
37
  };
38
- readonly closedInvariants: readonly ["one-list-one-shell", "rows-separated-by-dividers", "affirmative-row-uses-one-check", "nested-border-xor-shadow", "static-rows-have-no-action", "neutral-state-only"];
38
+ readonly closedInvariants: readonly ["one-list-one-shell", "one-collection-one-shell", "rows-separated-by-dividers", "affirmative-row-uses-one-check", "nested-border-xor-shadow", "static-rows-have-no-action", "interactive-rows-own-their-actions", "hidden-label-retains-accessible-name", "footer-follows-collection", "neutral-state-only"];
39
39
  }>;
40
40
  base: Readonly<{
41
41
  key: string;
@@ -49,16 +49,16 @@ export declare const railContract: Readonly<{
49
49
  key: "core.rail";
50
50
  version: string;
51
51
  spec: Readonly<{
52
- readonly version: "1.0.0";
52
+ readonly version: "1.1.0";
53
53
  readonly layer: "branch";
54
- readonly slots: readonly ["heading", "body", "footer"];
54
+ readonly slots: readonly ["heading", "body", "footer", "content-landmark"];
55
55
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
56
- readonly variableAxes: readonly ["rail-mode", "rail-width", "state-treatment", "container-response"];
56
+ readonly variableAxes: readonly ["landmark-mode", "rail-mode", "rail-width", "collapse-mode", "motion-mode", "state-treatment", "container-response"];
57
57
  readonly extensionPolicy: {
58
- readonly allowedAxes: readonly ["rail-width", "state-treatment", "container-response"];
58
+ readonly allowedAxes: readonly ["landmark-mode", "rail-width", "collapse-mode", "motion-mode", "state-treatment", "container-response"];
59
59
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
60
60
  };
61
- readonly closedInvariants: readonly ["one-rail-landmark", "sticky-disabled-on-narrow-viewport", "body-remains-reachable", "footer-follows-body", "neutral-state-only"];
61
+ readonly closedInvariants: readonly ["one-rail-landmark", "sticky-disabled-on-narrow-viewport", "body-remains-reachable", "footer-follows-body", "content-landmark-is-not-wrapped-by-a-second-landmark", "collapsed-navigation-retains-accessible-names", "reduced-motion-removes-interpolation-not-state-change", "neutral-state-only"];
62
62
  }>;
63
63
  base: Readonly<{
64
64
  key: string;
@@ -96,16 +96,16 @@ export declare const CORE_COMPONENT_CONTRACTS: Readonly<{
96
96
  key: "core.surface-card";
97
97
  version: string;
98
98
  spec: Readonly<{
99
- readonly version: "1.0.0";
99
+ readonly version: "1.1.0";
100
100
  readonly layer: "branch";
101
101
  readonly slots: readonly ["external-label", "content", "whole-action"];
102
102
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
103
- readonly variableAxes: readonly ["surface-depth", "state-treatment", "action-mode", "container-response"];
103
+ readonly variableAxes: readonly ["surface-depth", "state-treatment", "action-mode", "label-end", "frame-mode", "scroll-mode", "container-response"];
104
104
  readonly extensionPolicy: {
105
- readonly allowedAxes: readonly ["surface-depth", "state-treatment", "container-response"];
105
+ readonly allowedAxes: readonly ["surface-depth", "state-treatment", "label-end", "frame-mode", "scroll-mode", "container-response"];
106
106
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
107
107
  };
108
- readonly closedInvariants: readonly ["label-outside-surface", "nested-border-xor-shadow", "one-content-owner", "whole-action-is-overlay", "neutral-state-only"];
108
+ readonly closedInvariants: readonly ["label-outside-surface", "nested-border-xor-shadow", "one-content-owner", "whole-action-is-overlay", "frameless-has-no-surface-shell", "contained-scroll-has-one-scroll-owner", "neutral-state-only"];
109
109
  }>;
110
110
  base: Readonly<{
111
111
  key: string;
@@ -119,16 +119,16 @@ export declare const CORE_COMPONENT_CONTRACTS: Readonly<{
119
119
  key: "core.surface-list-card";
120
120
  version: string;
121
121
  spec: Readonly<{
122
- readonly version: "1.0.0";
122
+ readonly version: "1.1.0";
123
123
  readonly layer: "branch";
124
- readonly slots: readonly ["external-label", "single-list-shell", "static-row"];
124
+ readonly slots: readonly ["external-label", "single-list-shell", "single-collection-shell", "static-row", "interactive-row", "footer"];
125
125
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
126
- readonly variableAxes: readonly ["surface-depth", "state-treatment", "row-count", "container-response"];
126
+ readonly variableAxes: readonly ["surface-depth", "state-treatment", "row-count", "row-mode", "label-visibility", "footer-mode", "container-response"];
127
127
  readonly extensionPolicy: {
128
- readonly allowedAxes: readonly ["surface-depth", "state-treatment", "container-response"];
128
+ readonly allowedAxes: readonly ["surface-depth", "state-treatment", "row-mode", "label-visibility", "footer-mode", "container-response"];
129
129
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
130
130
  };
131
- readonly closedInvariants: readonly ["one-list-one-shell", "rows-separated-by-dividers", "affirmative-row-uses-one-check", "nested-border-xor-shadow", "static-rows-have-no-action", "neutral-state-only"];
131
+ readonly closedInvariants: readonly ["one-list-one-shell", "one-collection-one-shell", "rows-separated-by-dividers", "affirmative-row-uses-one-check", "nested-border-xor-shadow", "static-rows-have-no-action", "interactive-rows-own-their-actions", "hidden-label-retains-accessible-name", "footer-follows-collection", "neutral-state-only"];
132
132
  }>;
133
133
  base: Readonly<{
134
134
  key: string;
@@ -142,16 +142,16 @@ export declare const CORE_COMPONENT_CONTRACTS: Readonly<{
142
142
  key: "core.rail";
143
143
  version: string;
144
144
  spec: Readonly<{
145
- readonly version: "1.0.0";
145
+ readonly version: "1.1.0";
146
146
  readonly layer: "branch";
147
- readonly slots: readonly ["heading", "body", "footer"];
147
+ readonly slots: readonly ["heading", "body", "footer", "content-landmark"];
148
148
  readonly stateInputs: readonly ["neutral", "informative", "affirmative", "cautionary", "negative", "pending", "unavailable"];
149
- readonly variableAxes: readonly ["rail-mode", "rail-width", "state-treatment", "container-response"];
149
+ readonly variableAxes: readonly ["landmark-mode", "rail-mode", "rail-width", "collapse-mode", "motion-mode", "state-treatment", "container-response"];
150
150
  readonly extensionPolicy: {
151
- readonly allowedAxes: readonly ["rail-width", "state-treatment", "container-response"];
151
+ readonly allowedAxes: readonly ["landmark-mode", "rail-width", "collapse-mode", "motion-mode", "state-treatment", "container-response"];
152
152
  readonly forbiddenChanges: readonly ["anatomy", "closed-invariant", "owner-substitution"];
153
153
  };
154
- readonly closedInvariants: readonly ["one-rail-landmark", "sticky-disabled-on-narrow-viewport", "body-remains-reachable", "footer-follows-body", "neutral-state-only"];
154
+ readonly closedInvariants: readonly ["one-rail-landmark", "sticky-disabled-on-narrow-viewport", "body-remains-reachable", "footer-follows-body", "content-landmark-is-not-wrapped-by-a-second-landmark", "collapsed-navigation-retains-accessible-names", "reduced-motion-removes-interpolation-not-state-change", "neutral-state-only"];
155
155
  }>;
156
156
  base: Readonly<{
157
157
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAC3B,MAAM,oBAAoB,CAAA;AAsF3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;EAA8D,CAAA;AAC9F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAAuE,CAAA;AAC3G,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;EAA+C,CAAA;AACxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAAsE,CAAA;AAE1G,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;AAChF,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,wBAAwB,CAAA"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAC3B,MAAM,oBAAoB,CAAA;AA4I3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;EAA8D,CAAA;AAC9F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAAuE,CAAA;AAC3G,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;EAA+C,CAAA;AACxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAAsE,CAAA;AAE1G,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;AAChF,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,wBAAwB,CAAA"}
@@ -6,13 +6,28 @@ const CLOSED_EXTENSION_BOUNDARIES = [
6
6
  "owner-substitution",
7
7
  ];
8
8
  const surfaceCardSpec = {
9
- version: "1.0.0",
9
+ version: "1.1.0",
10
10
  layer: "branch",
11
11
  slots: ["external-label", "content", "whole-action"],
12
12
  stateInputs: PRESENTATION_STATES,
13
- variableAxes: ["surface-depth", "state-treatment", "action-mode", "container-response"],
13
+ variableAxes: [
14
+ "surface-depth",
15
+ "state-treatment",
16
+ "action-mode",
17
+ "label-end",
18
+ "frame-mode",
19
+ "scroll-mode",
20
+ "container-response",
21
+ ],
14
22
  extensionPolicy: {
15
- allowedAxes: ["surface-depth", "state-treatment", "container-response"],
23
+ allowedAxes: [
24
+ "surface-depth",
25
+ "state-treatment",
26
+ "label-end",
27
+ "frame-mode",
28
+ "scroll-mode",
29
+ "container-response",
30
+ ],
16
31
  forbiddenChanges: CLOSED_EXTENSION_BOUNDARIES,
17
32
  },
18
33
  closedInvariants: [
@@ -20,36 +35,72 @@ const surfaceCardSpec = {
20
35
  "nested-border-xor-shadow",
21
36
  "one-content-owner",
22
37
  "whole-action-is-overlay",
38
+ "frameless-has-no-surface-shell",
39
+ "contained-scroll-has-one-scroll-owner",
23
40
  "neutral-state-only",
24
41
  ],
25
42
  };
26
43
  const surfaceListCardSpec = {
27
- version: "1.0.0",
44
+ version: "1.1.0",
28
45
  layer: "branch",
29
- slots: ["external-label", "single-list-shell", "static-row"],
46
+ slots: ["external-label", "single-list-shell", "single-collection-shell", "static-row", "interactive-row", "footer"],
30
47
  stateInputs: PRESENTATION_STATES,
31
- variableAxes: ["surface-depth", "state-treatment", "row-count", "container-response"],
48
+ variableAxes: [
49
+ "surface-depth",
50
+ "state-treatment",
51
+ "row-count",
52
+ "row-mode",
53
+ "label-visibility",
54
+ "footer-mode",
55
+ "container-response",
56
+ ],
32
57
  extensionPolicy: {
33
- allowedAxes: ["surface-depth", "state-treatment", "container-response"],
58
+ allowedAxes: [
59
+ "surface-depth",
60
+ "state-treatment",
61
+ "row-mode",
62
+ "label-visibility",
63
+ "footer-mode",
64
+ "container-response",
65
+ ],
34
66
  forbiddenChanges: CLOSED_EXTENSION_BOUNDARIES,
35
67
  },
36
68
  closedInvariants: [
37
69
  "one-list-one-shell",
70
+ "one-collection-one-shell",
38
71
  "rows-separated-by-dividers",
39
72
  "affirmative-row-uses-one-check",
40
73
  "nested-border-xor-shadow",
41
74
  "static-rows-have-no-action",
75
+ "interactive-rows-own-their-actions",
76
+ "hidden-label-retains-accessible-name",
77
+ "footer-follows-collection",
42
78
  "neutral-state-only",
43
79
  ],
44
80
  };
45
81
  const railSpec = {
46
- version: "1.0.0",
82
+ version: "1.1.0",
47
83
  layer: "branch",
48
- slots: ["heading", "body", "footer"],
84
+ slots: ["heading", "body", "footer", "content-landmark"],
49
85
  stateInputs: PRESENTATION_STATES,
50
- variableAxes: ["rail-mode", "rail-width", "state-treatment", "container-response"],
86
+ variableAxes: [
87
+ "landmark-mode",
88
+ "rail-mode",
89
+ "rail-width",
90
+ "collapse-mode",
91
+ "motion-mode",
92
+ "state-treatment",
93
+ "container-response",
94
+ ],
51
95
  extensionPolicy: {
52
- allowedAxes: ["rail-width", "state-treatment", "container-response"],
96
+ allowedAxes: [
97
+ "landmark-mode",
98
+ "rail-width",
99
+ "collapse-mode",
100
+ "motion-mode",
101
+ "state-treatment",
102
+ "container-response",
103
+ ],
53
104
  forbiddenChanges: CLOSED_EXTENSION_BOUNDARIES,
54
105
  },
55
106
  closedInvariants: [
@@ -57,6 +108,9 @@ const railSpec = {
57
108
  "sticky-disabled-on-narrow-viewport",
58
109
  "body-remains-reachable",
59
110
  "footer-follows-body",
111
+ "content-landmark-is-not-wrapped-by-a-second-landmark",
112
+ "collapsed-navigation-retains-accessible-names",
113
+ "reduced-motion-removes-interpolation-not-state-change",
60
114
  "neutral-state-only",
61
115
  ],
62
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { CORE_RULES } from "./rules.js";
4
4
  import { CORE_NEUTRAL_TREATMENTS, PRESENTATION_STATES } from "./state.js";
5
5
  export type CoreGrammar = Readonly<{
6
6
  id: "core";
7
- version: "1.0.0";
7
+ version: "1.1.0";
8
8
  extends: ReadonlyArray<string>;
9
9
  presentationStates: typeof PRESENTATION_STATES;
10
10
  treatments: typeof CORE_NEUTRAL_TREATMENTS;
@@ -4,7 +4,7 @@ import { CORE_NEUTRAL_TREATMENTS, PRESENTATION_STATES } from "./state.js";
4
4
  /** Business-neutral default Grammar assembled entirely from common-kernel contracts. */
5
5
  export const coreGrammar = Object.freeze({
6
6
  id: "core",
7
- version: "1.0.0",
7
+ version: "1.1.0",
8
8
  extends: Object.freeze([]),
9
9
  presentationStates: PRESENTATION_STATES,
10
10
  treatments: CORE_NEUTRAL_TREATMENTS,
@@ -2,6 +2,9 @@ export { coreGrammar, type CoreGrammar } from "./grammar.js";
2
2
  export { CORE_COMPONENT_CONTRACTS, railContract, surfaceCardContract, surfaceListCardContract, visualTreatmentContract, type CoreComponentContract, type CoreComponentContractId, } from "./contracts.js";
3
3
  export { CORE_RULES, type CoreRule } from "./rules.js";
4
4
  export { CORE_NEUTRAL_TREATMENTS, PRESENTATION_STATES, assertPresentationState, isPresentationState, treatmentFor, type NeutralTreatment, type PresentationState, } from "./state.js";
5
+ export { CORE_LAYOUT_CLASS_NAMES, type CoreLayoutClassName, } from "./layout.js";
6
+ export { StateMark, meta as stateMarkMeta, type StateMarkProps } from "./StateMark.js";
7
+ export { StaticStateRow, meta as staticStateRowMeta, type StaticStateRowData, type StaticStateRowProps, } from "./composite/StaticStateRow/index.js";
5
8
  export { SurfaceCard, meta as surfaceCardMeta, type SurfaceCardProps, type WholeCardAction } from "./branch/SurfaceCard/index.js";
6
9
  export { SurfaceListCard, meta as surfaceListCardMeta, type SurfaceListCardProps, type SurfaceListItem } from "./branch/SurfaceListCard/index.js";
7
10
  export { Rail, meta as railMeta, type RailProps } from "./branch/Rail/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACH,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC/B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACjI,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACjJ,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EACH,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC/B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EACH,uBAAuB,EACvB,KAAK,mBAAmB,GAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACtF,OAAO,EACH,cAAc,EACd,IAAI,IAAI,kBAAkB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GAC3B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACjI,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACjJ,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAA"}
@@ -2,6 +2,9 @@ export { coreGrammar } from "./grammar.js";
2
2
  export { CORE_COMPONENT_CONTRACTS, railContract, surfaceCardContract, surfaceListCardContract, visualTreatmentContract, } from "./contracts.js";
3
3
  export { CORE_RULES } from "./rules.js";
4
4
  export { CORE_NEUTRAL_TREATMENTS, PRESENTATION_STATES, assertPresentationState, isPresentationState, treatmentFor, } from "./state.js";
5
+ export { CORE_LAYOUT_CLASS_NAMES, } from "./layout.js";
6
+ export { StateMark, meta as stateMarkMeta } from "./StateMark.js";
7
+ export { StaticStateRow, meta as staticStateRowMeta, } from "./composite/StaticStateRow/index.js";
5
8
  export { SurfaceCard, meta as surfaceCardMeta } from "./branch/SurfaceCard/index.js";
6
9
  export { SurfaceListCard, meta as surfaceListCardMeta } from "./branch/SurfaceListCard/index.js";
7
10
  export { Rail, meta as railMeta } from "./branch/Rail/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAA;AAC5D,OAAO,EACH,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,GAG1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAA;AACtD,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,GAGf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAA+C,MAAM,+BAA+B,CAAA;AACjI,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,mBAAmB,EAAmD,MAAM,mCAAmC,CAAA;AACjJ,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAkB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAA;AAC5D,OAAO,EACH,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,GAG1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAA;AACtD,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,GAGf,MAAM,YAAY,CAAA;AACnB,OAAO,EACH,uBAAuB,GAE1B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,aAAa,EAAuB,MAAM,gBAAgB,CAAA;AACtF,OAAO,EACH,cAAc,EACd,IAAI,IAAI,kBAAkB,GAG7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,eAAe,EAA+C,MAAM,+BAA+B,CAAA;AACjI,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,mBAAmB,EAAmD,MAAM,mCAAmC,CAAA;AACjJ,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAkB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Product-neutral layout vocabulary owned by Core.
3
+ *
4
+ * Product breakpoints, token names and selectors remain in the consuming application's contract
5
+ * registry. This list intentionally contains no `app-*`, `data-node` or product component names.
6
+ */
7
+ export declare const CORE_LAYOUT_CLASS_NAMES: readonly ["flex", "grid", "flex-col", "flex-row", "flex-wrap", "flex-nowrap", "items-start", "items-center", "items-end", "items-stretch", "justify-between", "justify-center", "justify-end", "gap-1", "gap-2", "gap-3", "gap-4", "gap-6", "gap-8", "min-w-0", "min-h-0", "w-full", "grow", "grow-0", "flex-1", "shrink-0", "overflow-hidden", "overflow-auto", "overflow-y-auto", "overscroll-contain", "relative", "sticky", "hidden", "contents"];
8
+ export type CoreLayoutClassName = (typeof CORE_LAYOUT_CLASS_NAMES)[number];
9
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/core/layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,ubAmC1B,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Product-neutral layout vocabulary owned by Core.
3
+ *
4
+ * Product breakpoints, token names and selectors remain in the consuming application's contract
5
+ * registry. This list intentionally contains no `app-*`, `data-node` or product component names.
6
+ */
7
+ export const CORE_LAYOUT_CLASS_NAMES = [
8
+ "flex",
9
+ "grid",
10
+ "flex-col",
11
+ "flex-row",
12
+ "flex-wrap",
13
+ "flex-nowrap",
14
+ "items-start",
15
+ "items-center",
16
+ "items-end",
17
+ "items-stretch",
18
+ "justify-between",
19
+ "justify-center",
20
+ "justify-end",
21
+ "gap-1",
22
+ "gap-2",
23
+ "gap-3",
24
+ "gap-4",
25
+ "gap-6",
26
+ "gap-8",
27
+ "min-w-0",
28
+ "min-h-0",
29
+ "w-full",
30
+ "grow",
31
+ "grow-0",
32
+ "flex-1",
33
+ "shrink-0",
34
+ "overflow-hidden",
35
+ "overflow-auto",
36
+ "overflow-y-auto",
37
+ "overscroll-contain",
38
+ "relative",
39
+ "sticky",
40
+ "hidden",
41
+ "contents",
42
+ ];
43
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/core/layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,MAAM;IACN,MAAM;IACN,UAAU;IACV,UAAU;IACV,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,aAAa;IACb,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;CACJ,CAAA"}
@@ -23,6 +23,18 @@ export declare const CORE_RULES: readonly [{
23
23
  readonly when: readonly ["zero, one or many static peer statements share one boundary"];
24
24
  readonly decide: readonly ["render one list shell", "separate adjacent rows", "show one check for an affirmative row"];
25
25
  readonly refuse: readonly ["one shell per row", "interactive row behavior", "more than one state mark per row"];
26
+ }, {
27
+ readonly id: "core.anatomy.interactive-collection";
28
+ readonly concern: "anatomy";
29
+ readonly when: readonly ["peer rows share one boundary and one or more rows own an action"];
30
+ readonly decide: readonly ["render one collection shell", "keep every row action inside its row owner", "place a collection outcome after the shell"];
31
+ readonly refuse: readonly ["claiming the static-row capability", "one surface per row", "moving row actions into the surface owner"];
32
+ }, {
33
+ readonly id: "core.anatomy.frameless-surface";
34
+ readonly concern: "anatomy";
35
+ readonly when: readonly ["the content already owns its visible surface boundaries"];
36
+ readonly decide: readonly ["retain the external label", "remove the redundant surface shell"];
37
+ readonly refuse: readonly ["dropping the accessible name", "drawing a transparent decorative shell"];
26
38
  }, {
27
39
  readonly id: "core.interaction.whole-surface-action";
28
40
  readonly concern: "interaction";
@@ -41,5 +53,11 @@ export declare const CORE_RULES: readonly [{
41
53
  readonly when: readonly ["a surface or rail loses useful inline space"];
42
54
  readonly decide: readonly ["reflow owned rows within the component container", "disable sticky positioning on a narrow viewport"];
43
55
  readonly refuse: readonly ["content clipping", "hiding the primary body", "caller-authored breakpoint classes"];
56
+ }, {
57
+ readonly id: "core.layout.collapsible-navigation-rail";
58
+ readonly concern: "layout";
59
+ readonly when: readonly ["one persistent navigation rail changes between expanded and compact modes"];
60
+ readonly decide: readonly ["keep one mounted rail owner", "retain accessible destination names", "remove interpolation for reduced motion"];
61
+ readonly refuse: readonly ["nesting navigation landmarks", "hiding destinations in compact mode", "removing the state change with the animation"];
44
62
  }];
45
63
  //# sourceMappingURL=rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAA;IAChE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CqB,CAAA"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAA;IAChE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEqB,CAAA"}
@@ -20,6 +20,20 @@ export const CORE_RULES = [
20
20
  decide: ["render one list shell", "separate adjacent rows", "show one check for an affirmative row"],
21
21
  refuse: ["one shell per row", "interactive row behavior", "more than one state mark per row"],
22
22
  },
23
+ {
24
+ id: "core.anatomy.interactive-collection",
25
+ concern: "anatomy",
26
+ when: ["peer rows share one boundary and one or more rows own an action"],
27
+ decide: ["render one collection shell", "keep every row action inside its row owner", "place a collection outcome after the shell"],
28
+ refuse: ["claiming the static-row capability", "one surface per row", "moving row actions into the surface owner"],
29
+ },
30
+ {
31
+ id: "core.anatomy.frameless-surface",
32
+ concern: "anatomy",
33
+ when: ["the content already owns its visible surface boundaries"],
34
+ decide: ["retain the external label", "remove the redundant surface shell"],
35
+ refuse: ["dropping the accessible name", "drawing a transparent decorative shell"],
36
+ },
23
37
  {
24
38
  id: "core.interaction.whole-surface-action",
25
39
  concern: "interaction",
@@ -41,5 +55,12 @@ export const CORE_RULES = [
41
55
  decide: ["reflow owned rows within the component container", "disable sticky positioning on a narrow viewport"],
42
56
  refuse: ["content clipping", "hiding the primary body", "caller-authored breakpoint classes"],
43
57
  },
58
+ {
59
+ id: "core.layout.collapsible-navigation-rail",
60
+ concern: "layout",
61
+ when: ["one persistent navigation rail changes between expanded and compact modes"],
62
+ decide: ["keep one mounted rail owner", "retain accessible destination names", "remove interpolation for reduced motion"],
63
+ refuse: ["nesting navigation landmarks", "hiding destinations in compact mode", "removing the state change with the animation"],
64
+ },
44
65
  ];
45
66
  //# sourceMappingURL=rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB;QACI,EAAE,EAAE,oCAAoC;QACxC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,8CAA8C,CAAC;QACtD,MAAM,EAAE,CAAC,uDAAuD,CAAC;QACjE,MAAM,EAAE,CAAC,0CAA0C,EAAE,kCAAkC,CAAC;KAC3F;IACD;QACI,EAAE,EAAE,6BAA6B;QACjC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,iDAAiD,CAAC;QACzD,MAAM,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;QACjD,MAAM,EAAE,CAAC,4BAA4B,EAAE,wCAAwC,CAAC;KACnF;IACD;QACI,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,6DAA6D,CAAC;QACrE,MAAM,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,uCAAuC,CAAC;QACpG,MAAM,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,kCAAkC,CAAC;KAChG;IACD;QACI,EAAE,EAAE,uCAAuC;QAC3C,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,CAAC,0DAA0D,CAAC;QAClE,MAAM,EAAE,CAAC,0DAA0D,CAAC;QACpE,MAAM,EAAE,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;KAC9E;IACD;QACI,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,4CAA4C,CAAC;QACpD,MAAM,EAAE,CAAC,8CAA8C,CAAC;QACxD,MAAM,EAAE,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KACzE;IACD;QACI,EAAE,EAAE,gCAAgC;QACpC,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,CAAC,6CAA6C,CAAC;QACrD,MAAM,EAAE,CAAC,kDAAkD,EAAE,iDAAiD,CAAC;QAC/G,MAAM,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,oCAAoC,CAAC;KAChG;CACuC,CAAA"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB;QACI,EAAE,EAAE,oCAAoC;QACxC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,8CAA8C,CAAC;QACtD,MAAM,EAAE,CAAC,uDAAuD,CAAC;QACjE,MAAM,EAAE,CAAC,0CAA0C,EAAE,kCAAkC,CAAC;KAC3F;IACD;QACI,EAAE,EAAE,6BAA6B;QACjC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,iDAAiD,CAAC;QACzD,MAAM,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;QACjD,MAAM,EAAE,CAAC,4BAA4B,EAAE,wCAAwC,CAAC;KACnF;IACD;QACI,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,6DAA6D,CAAC;QACrE,MAAM,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,uCAAuC,CAAC;QACpG,MAAM,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,kCAAkC,CAAC;KAChG;IACD;QACI,EAAE,EAAE,qCAAqC;QACzC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,iEAAiE,CAAC;QACzE,MAAM,EAAE,CAAC,6BAA6B,EAAE,4CAA4C,EAAE,4CAA4C,CAAC;QACnI,MAAM,EAAE,CAAC,oCAAoC,EAAE,qBAAqB,EAAE,2CAA2C,CAAC;KACrH;IACD;QACI,EAAE,EAAE,gCAAgC;QACpC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,CAAC,yDAAyD,CAAC;QACjE,MAAM,EAAE,CAAC,2BAA2B,EAAE,oCAAoC,CAAC;QAC3E,MAAM,EAAE,CAAC,8BAA8B,EAAE,wCAAwC,CAAC;KACrF;IACD;QACI,EAAE,EAAE,uCAAuC;QAC3C,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,CAAC,0DAA0D,CAAC;QAClE,MAAM,EAAE,CAAC,0DAA0D,CAAC;QACpE,MAAM,EAAE,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;KAC9E;IACD;QACI,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,4CAA4C,CAAC;QACpD,MAAM,EAAE,CAAC,8CAA8C,CAAC;QACxD,MAAM,EAAE,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KACzE;IACD;QACI,EAAE,EAAE,gCAAgC;QACpC,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,CAAC,6CAA6C,CAAC;QACrD,MAAM,EAAE,CAAC,kDAAkD,EAAE,iDAAiD,CAAC;QAC/G,MAAM,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,oCAAoC,CAAC;KAChG;IACD;QACI,EAAE,EAAE,yCAAyC;QAC7C,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,CAAC,2EAA2E,CAAC;QACnF,MAAM,EAAE,CAAC,6BAA6B,EAAE,qCAAqC,EAAE,yCAAyC,CAAC;QACzH,MAAM,EAAE,CAAC,8BAA8B,EAAE,qCAAqC,EAAE,8CAA8C,CAAC;KAClI;CACuC,CAAA"}