zyzz 0.0.15 → 0.0.17

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 (40) hide show
  1. package/dist/Style.d.ts +4 -3
  2. package/dist/Style.d.ts.map +1 -1
  3. package/dist/compiler/Graph.js +19 -10
  4. package/dist/compiler/Graph.js.map +1 -1
  5. package/dist/compiler/Transform.d.ts.map +1 -1
  6. package/dist/compiler/Transform.js +1 -0
  7. package/dist/compiler/Transform.js.map +1 -1
  8. package/dist/internal/Cascade.d.ts +29 -0
  9. package/dist/internal/Cascade.d.ts.map +1 -1
  10. package/dist/internal/Cascade.js +45 -0
  11. package/dist/internal/Cascade.js.map +1 -1
  12. package/dist/internal/Compound.d.ts +12 -0
  13. package/dist/internal/Compound.d.ts.map +1 -1
  14. package/dist/internal/Literal.d.ts +1063 -27
  15. package/dist/internal/Literal.d.ts.map +1 -1
  16. package/dist/internal/Literal.js +739 -3
  17. package/dist/internal/Literal.js.map +1 -1
  18. package/dist/next/loader.js +43 -17
  19. package/dist/next/loader.js.map +1 -1
  20. package/dist/vite/index.d.ts.map +1 -1
  21. package/dist/vite/index.js +19 -7
  22. package/dist/vite/index.js.map +1 -1
  23. package/dist/web/Css.d.ts.map +1 -1
  24. package/dist/web/Css.js +2 -1
  25. package/dist/web/Css.js.map +1 -1
  26. package/dist/web/internal/Themes.d.ts +16 -4
  27. package/dist/web/internal/Themes.d.ts.map +1 -1
  28. package/dist/web/internal/Themes.js +155 -41
  29. package/dist/web/internal/Themes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/Style.ts +23 -14
  32. package/src/compiler/Graph.ts +19 -10
  33. package/src/compiler/Transform.ts +1 -0
  34. package/src/internal/Cascade.ts +45 -0
  35. package/src/internal/Compound.ts +56 -0
  36. package/src/internal/Literal.ts +746 -3
  37. package/src/next/loader.ts +49 -17
  38. package/src/vite/index.ts +24 -5
  39. package/src/web/Css.ts +2 -1
  40. package/src/web/internal/Themes.ts +208 -44
@@ -11,6 +11,7 @@ export function create() {
11
11
  let nextVariable = 0;
12
12
  const contracts = new Map();
13
13
  const defaults = new Map();
14
+ const defaultGroups = new Map();
14
15
  function serialize(token) {
15
16
  const value = token.value;
16
17
  let contract = contracts.get(token.contract);
@@ -30,10 +31,12 @@ export function create() {
30
31
  contract.paths.set(token.path, name);
31
32
  }
32
33
  const label = contract.identity?.startsWith('src-') ? token.path : undefined;
33
- return `var(${name},${literal(value, label)})`;
34
+ return `var(${name},${literal(value, label, token.contract)})`;
34
35
  }
35
36
  function emit(themes, schemes = false, separate) {
36
37
  const classes = Object.create(null);
38
+ const completeDefaults = new Set();
39
+ const empty = [];
37
40
  const rules = [];
38
41
  for (const [name, theme] of Object.entries(themes)) {
39
42
  if (!name)
@@ -66,83 +69,158 @@ export function create() {
66
69
  }
67
70
  if (!contract)
68
71
  continue;
69
- const body = [...contract.paths]
70
- .map(([path, name]) => {
72
+ // Independently compiled consumers must import identical fallback contents.
73
+ if (separate === 'all' && contract.identity) {
74
+ completeDefaults.add(data.contract);
75
+ for (const [path, value] of Object.entries(data.values))
76
+ literal(value, contract.identity.startsWith('src-') ? path : undefined, data.contract);
77
+ }
78
+ if (!contract.paths.size)
79
+ empty.push(`.${className}{}`);
80
+ const declarations = [];
81
+ // Resolving a value can add references to this contract.
82
+ const paths = [...contract.paths];
83
+ for (const [path, name] of paths) {
71
84
  const value = data.values[path];
72
85
  if (value === undefined)
73
86
  throw new Error('Theme scope is missing a live token.');
74
87
  const label = contract.identity?.startsWith('src-') ? path : undefined;
75
- return `${name}:${literal(value, label)};`;
76
- })
77
- .join('');
78
- rules.push(`.${className}{${body}}`);
88
+ declarations.push({
89
+ conditions: [],
90
+ property: name,
91
+ selector: `.${className}`,
92
+ value: literal(value, label, data.contract),
93
+ });
94
+ }
95
+ rules.push(...declarations);
79
96
  for (const [path, name] of contract.paths)
80
- conditional(data.values[path], name, `.${className}`, rules, contract.identity?.startsWith('src-') ? path : undefined);
97
+ conditional(data.values[path], name, `.${className}`, rules, contract.identity?.startsWith('src-') ? path : undefined, [], data.contract);
98
+ }
99
+ const scopes = new Map();
100
+ for (const rule of rules) {
101
+ const entries = scopes.get(rule.property) ?? [];
102
+ entries.push(rule);
103
+ scopes.set(rule.property, entries);
81
104
  }
82
- // Scheme rules travel with the module that can apply them, so lowered
83
- // light-dark() resolves wherever selection helpers load.
84
- if (schemes)
85
- rules.push(Scheme.css);
105
+ const grouped = new Set();
106
+ const resources = [];
107
+ if (separate === 'all')
108
+ for (const [contract, names] of defaultGroups) {
109
+ if (!completeDefaults.has(contract))
110
+ continue;
111
+ // Sort independent properties only. Each property retains its authored conditional order.
112
+ const rules = [...names].sort().flatMap((name) => defaults.get(name));
113
+ resources.push({
114
+ css: render(rules),
115
+ id: JSON.stringify([
116
+ contract[Token.identity],
117
+ 'fallbacks',
118
+ Object.entries(themes)
119
+ .filter(([, theme]) => theme[Token.definition].contract === contract)
120
+ .map(([name]) => name)
121
+ .sort(),
122
+ ]),
123
+ rules,
124
+ });
125
+ for (const name of names)
126
+ grouped.add(name);
127
+ }
86
128
  return {
87
129
  classes: Object.freeze(classes),
88
130
  css: separate === 'all'
89
131
  ? ''
90
- : [...(separate ? [] : defaults.values()), ...rules].join('\n'),
132
+ : [
133
+ ...empty,
134
+ render([
135
+ ...(separate ? [] : [...defaults.values()].flat()),
136
+ ...rules,
137
+ ]),
138
+ ...(schemes ? [Scheme.css] : []),
139
+ ]
140
+ .filter(Boolean)
141
+ .join('\n'),
91
142
  resources: separate
92
143
  ? [
93
- ...[...defaults].map(([id, css]) => ({ css, id })),
94
- // Scope rules stay together to preserve cascade order without one import per token.
95
- ...(separate === 'all' && rules.length
96
- ? [
97
- {
98
- css: rules.join('\n'),
99
- id: JSON.stringify([
100
- classes,
101
- [...contracts.values()].flatMap((contract) => [
102
- ...contract.paths.values(),
103
- ]),
104
- ]),
105
- },
106
- ]
144
+ ...resources,
145
+ ...[...defaults]
146
+ .filter(([id]) => !grouped.has(id))
147
+ .map(([id, rules]) => ({
148
+ css: render(rules),
149
+ id,
150
+ rules,
151
+ })),
152
+ // Keep every scope of a property together so overlapping themes retain precedence.
153
+ ...(separate === 'all'
154
+ ? [...scopes].map(([property, rules]) => ({
155
+ css: render(rules),
156
+ id: JSON.stringify([classes, property]),
157
+ rules,
158
+ }))
159
+ : []),
160
+ ...(separate === 'all' && schemes
161
+ ? [{ css: Scheme.css, id: 'zyzz-color-scheme' }]
107
162
  : []),
108
163
  ]
109
164
  : [],
110
165
  };
111
166
  }
112
- function literal(value, label) {
167
+ function literal(value, label, owner) {
113
168
  if (Token.is(value))
114
169
  return serialize(value);
115
170
  if (typeof value !== 'object')
116
171
  return String(value);
117
172
  if ('default' in value) {
118
173
  // Separate fallback properties preserve extensions and resolve references within each scope.
119
- const base = literal(value.default, label);
120
- const rules = [`:where(*){--fallback:${base};}`];
121
- conditional(value, '--fallback', ':where(*)', rules, label);
122
- const css = rules.join('');
174
+ const base = literal(value.default, label, owner);
175
+ // Rule consolidation must not change existing variable identities.
176
+ const css = `:where(*){--fallback:${base};}${conditionalCss(value, '--fallback', ':where(*)', label, owner)}`;
123
177
  const name = label
124
178
  ? `--z-${Identity.label(label)}-fallback-${Identity.compact(css)}`
125
179
  : `--z-f${Identity.hash(css)}`;
126
- const emitted = [`:where(*){${name}:${base};}`];
127
- conditional(value, name, ':where(*)', emitted, label);
128
- defaults.set(name, emitted.join(''));
180
+ const emitted = [
181
+ { conditions: [], property: name, selector: ':where(*)', value: base },
182
+ ];
183
+ conditional(value, name, ':where(*)', emitted, label, [], owner);
184
+ defaults.set(name, emitted);
185
+ if (owner) {
186
+ const names = defaultGroups.get(owner) ?? new Set();
187
+ names.add(name);
188
+ defaultGroups.set(owner, names);
189
+ }
129
190
  return `var(${name})`;
130
191
  }
131
- return `light-dark(${literal(value.light, label)},${literal(value.dark, label)})`;
192
+ return `light-dark(${literal(value.light, label, owner)},${literal(value.dark, label, owner)})`;
193
+ }
194
+ function conditionalCss(value, property, selector, label, owner) {
195
+ if (!value ||
196
+ typeof value !== 'object' ||
197
+ Token.is(value) ||
198
+ !('default' in value))
199
+ return '';
200
+ return (conditionalCss(value.default, property, selector, label, owner) +
201
+ Object.entries(value)
202
+ .filter(([query]) => query !== 'default')
203
+ .map(([query, entry]) => `${query}{${selector}{${property}:${literal(entry, label, owner)};}${conditionalCss(entry, property, selector, label, owner)}}`)
204
+ .join(''));
132
205
  }
133
- function conditional(value, name, selector, rules, label) {
206
+ function conditional(value, name, selector, rules, label, conditions = [], owner) {
134
207
  if (!value ||
135
208
  typeof value !== 'object' ||
136
209
  Token.is(value) ||
137
210
  !('default' in value))
138
211
  return;
139
- conditional(value.default, name, selector, rules, label);
212
+ conditional(value.default, name, selector, rules, label, conditions, owner);
140
213
  for (const [query, entry] of Object.entries(value)) {
141
214
  if (query === 'default')
142
215
  continue;
143
- const nested = [`${selector}{${name}:${literal(entry, label)};}`];
144
- conditional(entry, name, selector, nested, label);
145
- rules.push(`${query}{${nested.join('')}}`);
216
+ const nested = [...conditions, query];
217
+ rules.push({
218
+ conditions: nested,
219
+ property: name,
220
+ selector,
221
+ value: literal(entry, label, owner),
222
+ });
223
+ conditional(entry, name, selector, rules, label, nested, owner);
146
224
  }
147
225
  }
148
226
  return { emit, serialize };
@@ -151,6 +229,42 @@ export function create() {
151
229
  export function encode(value) {
152
230
  return value.replace(/[^a-zA-Z0-9-]/g, (character) => `_${character.charCodeAt(0).toString(16)}_`);
153
231
  }
232
+ /** Combines generated declarations without crossing competing declarations of the same property. */
233
+ export function render(rules) {
234
+ const groups = [];
235
+ for (const rule of rules) {
236
+ let target;
237
+ for (let index = groups.length - 1; index >= 0; index--) {
238
+ const group = groups[index];
239
+ if (group.selector === rule.selector &&
240
+ JSON.stringify(group.conditions) === JSON.stringify(rule.conditions)) {
241
+ target = group;
242
+ break;
243
+ }
244
+ if (group.declarations.some((entry) => entry.property === rule.property))
245
+ break;
246
+ }
247
+ if (!target) {
248
+ target = {
249
+ conditions: rule.conditions,
250
+ declarations: [],
251
+ selector: rule.selector,
252
+ };
253
+ groups.push(target);
254
+ }
255
+ const previous = target.declarations.findLast((entry) => entry.property === rule.property);
256
+ if (previous?.value !== rule.value)
257
+ target.declarations.push(rule);
258
+ }
259
+ return groups
260
+ .map(({ conditions, declarations, selector }) => {
261
+ let css = `${selector}{${declarations.map(({ property, value }) => `${property}:${value};`).join('')}}`;
262
+ for (const condition of [...conditions].reverse())
263
+ css = `${condition}{${css}}`;
264
+ return css;
265
+ })
266
+ .join('\n');
267
+ }
154
268
  /** Selects independently shareable defaults or all token rules. */
155
269
  export const shared = Symbol('shared token rules');
156
270
  function variable(index, path) {
@@ -1 +1 @@
1
- {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/web/internal/Themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/web/internal/Themes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zyzz",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "license": "MIT",
5
5
  "description": "Modern, universal, simple styling library for the Web and React Native",
6
6
  "repository": {
package/src/Style.ts CHANGED
@@ -839,23 +839,32 @@ export type NamedStyle<name extends string = string> = {
839
839
 
840
840
  /** Supported literal and token declarations. Unknown properties and undefined values are rejected. */
841
841
  export type DeclarationProperties<tokens extends Theme.Tokens = {}> = {
842
- readonly [property in keyof Literal.Properties]: Value.Fallbacks<
843
- | (property extends `--${string}`
844
- ? LiteralAtoms[property]
845
- : [Token.Names<tokens, property>] extends [never]
846
- ? LiteralAtoms[property]
847
- :
848
- | Value.Atom<`${string} !custom`>
849
- | Extract<LiteralAtoms[property], Binding.Reference>)
850
- | Value.Atom<Token.Names<tokens, property>>
851
- | {
852
- [group in Token.Group]: property extends Token.Properties<group>
853
- ? Value.Atom<Token.Reference<group> | Token.Variable<group>>
854
- : never
855
- }[Token.Group]
842
+ readonly [property in keyof Literal.Properties]: DeclarationValue<
843
+ tokens,
844
+ property
856
845
  >
857
846
  }
858
847
 
848
+ // A named alias caches each property domain without expanding the full declaration map.
849
+ type DeclarationValue<
850
+ tokens extends Theme.Tokens,
851
+ property extends keyof Literal.Properties,
852
+ > = Value.Fallbacks<
853
+ | (property extends `--${string}`
854
+ ? LiteralAtoms[property]
855
+ : [Token.Names<tokens, property>] extends [never]
856
+ ? LiteralAtoms[property]
857
+ :
858
+ | Value.Atom<`${string} !custom`>
859
+ | Extract<LiteralAtoms[property], Binding.Reference>)
860
+ | Value.Atom<Token.Names<tokens, property>>
861
+ | {
862
+ [group in Token.Group]: property extends Token.Properties<group>
863
+ ? Value.Atom<Token.Reference<group> | Token.Variable<group>>
864
+ : never
865
+ }[Token.Group]
866
+ >
867
+
859
868
  /** Recursive theme-aware declaration and condition authoring. */
860
869
  export type Properties<
861
870
  tokens extends Theme.Tokens = {},
@@ -1649,20 +1649,29 @@ function build(options: compile.Options, cache?: Cache): Cache {
1649
1649
  styleClasses[call.identity] = modules[moduleId]!.classes[call.name]!
1650
1650
  }
1651
1651
 
1652
- const defaults = new Map<string, Stylesheets.Section>()
1652
+ const defaults = new Set<string>()
1653
+ const defaultRules = new Map<string, ThemeRules.Rule[]>()
1653
1654
  if (options[Stylesheets.entry] === undefined)
1654
1655
  for (const [source, output] of Object.entries(modules))
1655
- for (const resource of output[ThemeRules.shared] ?? [])
1656
- if (!defaults.has(resource.id))
1657
- defaults.set(resource.id, {
1658
- css: resource.css,
1659
- key: resource.id,
1660
- layers: [],
1661
- source,
1662
- })
1656
+ for (const resource of output[ThemeRules.shared] ?? []) {
1657
+ if (defaults.has(resource.id)) continue
1658
+ defaults.add(resource.id)
1659
+
1660
+ const rules = defaultRules.get(source) ?? []
1661
+ rules.push(...(resource.rules ?? []))
1662
+ defaultRules.set(source, rules)
1663
+ }
1663
1664
 
1664
1665
  const shared = defaults.size
1665
- ? renderShared([...sharedSections, ...defaults.values()])
1666
+ ? renderShared([
1667
+ ...sharedSections,
1668
+ ...[...defaultRules].map(([source, rules]) => ({
1669
+ css: ThemeRules.render(rules),
1670
+ key: 'theme-defaults',
1671
+ layers: [],
1672
+ source,
1673
+ })),
1674
+ ])
1666
1675
  : contributions
1667
1676
  const sharedCss = shared.css
1668
1677
 
@@ -986,6 +986,7 @@ export function compile(options: compile.Options): compile.ReturnType {
986
986
  rule.startsWith(':where(*){--z-') ||
987
987
  (rule.startsWith('@media ') &&
988
988
  (rule.includes(':root{') ||
989
+ rule.includes(':where(*){--z-') ||
989
990
  Object.values(emitted.vars).some((name) =>
990
991
  rule.includes(`.${name}{`),
991
992
  )))
@@ -26,6 +26,7 @@ export const shorthands = {
26
26
  'backgroundAttachment',
27
27
  'backgroundColor',
28
28
  ],
29
+ backgroundRepeat: ['backgroundRepeatX', 'backgroundRepeatY'],
29
30
  border: ['borderWidth', 'borderStyle', 'borderColor', 'borderImage'],
30
31
  borderImage: [
31
32
  'borderImageSource',
@@ -34,7 +35,23 @@ export const shorthands = {
34
35
  'borderImageOutset',
35
36
  'borderImageRepeat',
36
37
  ],
38
+ borderSpacing: [
39
+ 'WebkitBorderHorizontalSpacing',
40
+ 'WebkitBorderVerticalSpacing',
41
+ ],
37
42
  caret: ['caretColor', 'caretAnimation', 'caretShape'],
43
+ columnRule: ['columnRuleWidth', 'columnRuleStyle', 'columnRuleColor'],
44
+ columnRuleInset: ['columnRuleInsetCap', 'columnRuleInsetJunction'],
45
+ columnRuleInsetCap: ['columnRuleInsetCapStart', 'columnRuleInsetCapEnd'],
46
+ columnRuleInsetEnd: ['columnRuleInsetCapEnd', 'columnRuleInsetJunctionEnd'],
47
+ columnRuleInsetJunction: [
48
+ 'columnRuleInsetJunctionStart',
49
+ 'columnRuleInsetJunctionEnd',
50
+ ],
51
+ columnRuleInsetStart: [
52
+ 'columnRuleInsetCapStart',
53
+ 'columnRuleInsetJunctionStart',
54
+ ],
38
55
  columns: ['columnWidth', 'columnCount', 'columnHeight'],
39
56
  container: ['containerName', 'containerType'],
40
57
  flex: ['flexGrow', 'flexShrink', 'flexBasis'],
@@ -80,6 +97,7 @@ export const shorthands = {
80
97
  'gridTemplateAreas',
81
98
  ],
82
99
  listStyle: ['listStyleType', 'listStylePosition', 'listStyleImage'],
100
+ lineClamp: ['maxLines', 'blockEllipsis', 'continue'],
83
101
  mask: [
84
102
  'maskImage',
85
103
  'maskMode',
@@ -116,10 +134,31 @@ export const shorthands = {
116
134
  'offsetAnchor',
117
135
  'offsetRotate',
118
136
  ],
137
+ perspectiveOrigin: ['WebkitPerspectiveOriginX', 'WebkitPerspectiveOriginY'],
119
138
  placeContent: ['alignContent', 'justifyContent'],
120
139
  placeItems: ['alignItems', 'justifyItems'],
121
140
  placeSelf: ['alignSelf', 'justifySelf'],
122
141
  positionTry: ['positionTryFallbacks', 'positionTryOrder'],
142
+ rowRule: ['rowRuleWidth', 'rowRuleStyle', 'rowRuleColor'],
143
+ rowRuleInset: ['rowRuleInsetCap', 'rowRuleInsetJunction'],
144
+ rowRuleInsetCap: ['rowRuleInsetCapStart', 'rowRuleInsetCapEnd'],
145
+ rowRuleInsetEnd: ['rowRuleInsetCapEnd', 'rowRuleInsetJunctionEnd'],
146
+ rowRuleInsetJunction: [
147
+ 'rowRuleInsetJunctionStart',
148
+ 'rowRuleInsetJunctionEnd',
149
+ ],
150
+ rowRuleInsetStart: ['rowRuleInsetCapStart', 'rowRuleInsetJunctionStart'],
151
+ rule: ['columnRule', 'rowRule'],
152
+ ruleBreak: ['columnRuleBreak', 'rowRuleBreak'],
153
+ ruleColor: ['columnRuleColor', 'rowRuleColor'],
154
+ ruleInset: ['columnRuleInset', 'rowRuleInset'],
155
+ ruleInsetCap: ['columnRuleInsetCap', 'rowRuleInsetCap'],
156
+ ruleInsetEnd: ['columnRuleInsetEnd', 'rowRuleInsetEnd'],
157
+ ruleInsetJunction: ['columnRuleInsetJunction', 'rowRuleInsetJunction'],
158
+ ruleInsetStart: ['columnRuleInsetStart', 'rowRuleInsetStart'],
159
+ ruleStyle: ['columnRuleStyle', 'rowRuleStyle'],
160
+ ruleVisibilityItems: ['columnRuleVisibilityItems', 'rowRuleVisibilityItems'],
161
+ ruleWidth: ['columnRuleWidth', 'rowRuleWidth'],
123
162
  scrollTimeline: ['scrollTimelineName', 'scrollTimelineAxis'],
124
163
  textBox: ['textBoxTrim', 'textBoxEdge'],
125
164
  textDecoration: [
@@ -128,6 +167,7 @@ export const shorthands = {
128
167
  'textDecorationLine',
129
168
  'textDecorationThickness',
130
169
  ],
170
+ textDecorationSkip: ['textDecorationSkipInk', 'textDecorationSkipSpaces'],
131
171
  textEmphasis: ['textEmphasisStyle', 'textEmphasisColor'],
132
172
  timelineTrigger: [
133
173
  'timelineTriggerName',
@@ -143,6 +183,11 @@ export const shorthands = {
143
183
  'timelineTriggerActiveRangeStart',
144
184
  'timelineTriggerActiveRangeEnd',
145
185
  ],
186
+ transformOrigin: [
187
+ 'WebkitTransformOriginX',
188
+ 'WebkitTransformOriginY',
189
+ 'WebkitTransformOriginZ',
190
+ ],
146
191
  transition: [
147
192
  'transitionDelay',
148
193
  'transitionDuration',
@@ -241,6 +241,15 @@ export type Properties = {
241
241
  readonly fontVariationSettings:
242
242
  | 'normal'
243
243
  | List<`${Quoted}${'' | ' '}${number}`>
244
+ /** Legacy vertical glyph orientation accepts only quarter-turn values. */
245
+ readonly glyphOrientationVertical:
246
+ | 'auto'
247
+ | '0deg'
248
+ | '90deg'
249
+ | '0'
250
+ | '90'
251
+ | 0
252
+ | 90
244
253
  readonly grid:
245
254
  | 'none'
246
255
  | Chain<Track | Quoted | 'auto-flow' | 'dense'>
@@ -400,6 +409,53 @@ export type Properties = {
400
409
  | 'none'
401
410
  | `${Quoted}${'' | ' '}${Quoted}`
402
411
  | `${Quoted}${'' | ' '}${Quoted}${string}`
412
+ /** Gap decoration shorthand with optional repetition. */
413
+ readonly rowRule: List<
414
+ | Chain<
415
+ | Exclude<Dimension, `${number}%`>
416
+ | Literal.Color
417
+ | 'thin'
418
+ | 'medium'
419
+ | 'thick'
420
+ | 'none'
421
+ | 'hidden'
422
+ | 'dotted'
423
+ | 'dashed'
424
+ | 'solid'
425
+ | 'double'
426
+ | 'groove'
427
+ | 'ridge'
428
+ | 'inset'
429
+ | 'outset'
430
+ >
431
+ | `repeat(${string})`
432
+ >
433
+ /** Gap decoration colors with optional repetition. */
434
+ readonly rowRuleColor: List<Literal.Color | `repeat(${string})`>
435
+ /** Gap decoration styles with optional repetition. */
436
+ readonly rowRuleStyle: List<
437
+ | 'none'
438
+ | 'hidden'
439
+ | 'dotted'
440
+ | 'dashed'
441
+ | 'solid'
442
+ | 'double'
443
+ | 'groove'
444
+ | 'ridge'
445
+ | 'inset'
446
+ | 'outset'
447
+ | `repeat(${string})`
448
+ >
449
+ /** Gap decoration widths with optional repetition. */
450
+ readonly rowRuleWidth: List<
451
+ | Exclude<Dimension, `${number}%`>
452
+ | 'thin'
453
+ | 'medium'
454
+ | 'thick'
455
+ | `repeat(${string})`
456
+ >
457
+ /** Cap and junction insets separated by an optional slash. */
458
+ readonly ruleInset: Chain<Dimension | Percentage | 'overlap-join'>
403
459
  readonly scrollSnapCoordinate: 'none' | List<Position>
404
460
  readonly scrollSnapDestination: Position
405
461
  readonly scrollSnapPointsX: 'none' | `repeat(${string})`