@roblawn/devtool-runtime 0.1.0-alpha.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 (161) hide show
  1. package/LICENSE.md +11 -0
  2. package/README.md +7 -0
  3. package/dist/ak/ak.cssState.transform.d.ts +2 -0
  4. package/dist/ak/ak.cssState.transform.js +60 -0
  5. package/dist/ak/ak.cssState.types.d.ts +2 -0
  6. package/dist/ak/ak.cssState.types.js +1 -0
  7. package/dist/ak/ak.responsive.types.d.ts +18 -0
  8. package/dist/ak/ak.responsive.types.js +1 -0
  9. package/dist/ak/ak.tokens.d.ts +10 -0
  10. package/dist/ak/ak.tokens.js +10 -0
  11. package/dist/ak/ak.tokens.registry.d.ts +10 -0
  12. package/dist/ak/ak.tokens.registry.js +45 -0
  13. package/dist/ak/authoring-surface.shared.d.ts +31 -0
  14. package/dist/ak/authoring-surface.shared.js +185 -0
  15. package/dist/ak/configured-core.shared.d.ts +7 -0
  16. package/dist/ak/configured-core.shared.js +16 -0
  17. package/dist/ak/configured-surfaces.shared.d.ts +67 -0
  18. package/dist/ak/configured-surfaces.shared.js +144 -0
  19. package/dist/ak/index.d.ts +16 -0
  20. package/dist/ak/index.js +16 -0
  21. package/dist/ak/project-entry.d.ts +57 -0
  22. package/dist/ak/project-entry.js +260 -0
  23. package/dist/ak/project-surface-adapters.shared.d.ts +33 -0
  24. package/dist/ak/project-surface-adapters.shared.js +83 -0
  25. package/dist/ak/public-entry.shared.d.ts +16 -0
  26. package/dist/ak/public-entry.shared.js +18 -0
  27. package/dist/ak/resolved-layout-marker.shared.d.ts +3 -0
  28. package/dist/ak/resolved-layout-marker.shared.js +19 -0
  29. package/dist/ak/runtime-surface.shared.d.ts +31 -0
  30. package/dist/ak/runtime-surface.shared.js +221 -0
  31. package/dist/ak/style-execution.d.ts +13 -0
  32. package/dist/ak/style-execution.js +91 -0
  33. package/dist/ak/style-schema.d.ts +16 -0
  34. package/dist/ak/style-schema.js +6 -0
  35. package/dist/ak/useAk.shared.d.ts +3 -0
  36. package/dist/ak/useAk.shared.js +36 -0
  37. package/dist/authoring/authoringEffectKinds.d.ts +2 -0
  38. package/dist/authoring/authoringEffectKinds.js +48 -0
  39. package/dist/authoring/index.d.ts +1 -0
  40. package/dist/authoring/index.js +1 -0
  41. package/dist/cms/CMSPresenterSchemaTypes.d.ts +108 -0
  42. package/dist/cms/CMSPresenterSchemaTypes.js +6 -0
  43. package/dist/cms/CMSSchema.d.ts +27 -0
  44. package/dist/cms/CMSSchema.js +89 -0
  45. package/dist/cms/CMSSchemaTypes.d.ts +141 -0
  46. package/dist/cms/CMSSchemaTypes.js +1 -0
  47. package/dist/cms/index.d.ts +3 -0
  48. package/dist/cms/index.js +1 -0
  49. package/dist/design-system/DesignSystemSnapshotFactory.d.ts +34 -0
  50. package/dist/design-system/DesignSystemSnapshotFactory.js +38 -0
  51. package/dist/design-system/ProjectDesignSystemFactory.d.ts +39 -0
  52. package/dist/design-system/ProjectDesignSystemFactory.js +32 -0
  53. package/dist/design-system/index.d.ts +8 -0
  54. package/dist/design-system/index.js +7 -0
  55. package/dist/design-system/ops/ops.types.d.ts +22 -0
  56. package/dist/design-system/ops/ops.types.js +1 -0
  57. package/dist/design-system/resolvers/ds.resolvers.d.ts +3 -0
  58. package/dist/design-system/resolvers/ds.resolvers.js +24 -0
  59. package/dist/design-system/resolvers/ds.responsive.d.ts +12 -0
  60. package/dist/design-system/resolvers/ds.responsive.js +28 -0
  61. package/dist/design-system/tokens/TokenSchemas.types.d.ts +48 -0
  62. package/dist/design-system/tokens/TokenSchemas.types.js +3 -0
  63. package/dist/design-system/tokens/coreTokenFamilies.types.d.ts +2 -0
  64. package/dist/design-system/tokens/coreTokenFamilies.types.js +1 -0
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.js +1 -0
  67. package/dist/layout/index.d.ts +1 -0
  68. package/dist/layout/index.js +1 -0
  69. package/dist/layout/layoutRuntime.d.ts +12 -0
  70. package/dist/layout/layoutRuntime.js +88 -0
  71. package/dist/schema/LayoutBindingEditorPolicyMetadata.d.ts +7 -0
  72. package/dist/schema/LayoutBindingEditorPolicyMetadata.js +19 -0
  73. package/dist/schema/LayoutBindingEditorSectionMetadata.d.ts +7 -0
  74. package/dist/schema/LayoutBindingEditorSectionMetadata.js +19 -0
  75. package/dist/schema/LayoutDefinitionMeta.d.ts +54 -0
  76. package/dist/schema/LayoutDefinitionMeta.js +1 -0
  77. package/dist/schema/LayoutFieldIntentMetadata.d.ts +22 -0
  78. package/dist/schema/LayoutFieldIntentMetadata.js +38 -0
  79. package/dist/schema/LayoutFieldUiMetadata.d.ts +30 -0
  80. package/dist/schema/LayoutFieldUiMetadata.js +19 -0
  81. package/dist/schema/LayoutSchema.d.ts +39 -0
  82. package/dist/schema/LayoutSchema.js +53 -0
  83. package/dist/schema/LayoutVariantBindings.d.ts +55 -0
  84. package/dist/schema/LayoutVariantBindings.js +107 -0
  85. package/dist/schema/SlotSchema.d.ts +10 -0
  86. package/dist/schema/SlotSchema.js +3 -0
  87. package/dist/schema/StyleSchema.d.ts +16 -0
  88. package/dist/schema/StyleSchema.js +6 -0
  89. package/dist/schema/index.d.ts +9 -0
  90. package/dist/schema/index.js +9 -0
  91. package/dist/theme-contract/CompositeFieldOpByFamily.d.ts +126 -0
  92. package/dist/theme-contract/CompositeFieldOpByFamily.js +126 -0
  93. package/dist/theme-contract/index.d.ts +7 -0
  94. package/dist/theme-contract/index.js +7 -0
  95. package/dist/theme-contract/ops/coreOps.d.ts +697 -0
  96. package/dist/theme-contract/ops/coreOps.js +748 -0
  97. package/dist/theme-contract/ops/delegateValidation.types.d.ts +46 -0
  98. package/dist/theme-contract/ops/delegateValidation.types.js +4 -0
  99. package/dist/theme-contract/ops/emitters.d.ts +24 -0
  100. package/dist/theme-contract/ops/emitters.js +151 -0
  101. package/dist/theme-contract/ops/op.config.d.ts +711 -0
  102. package/dist/theme-contract/ops/op.config.js +15 -0
  103. package/dist/theme-contract/tokens/coreTokenFamilies.d.ts +9 -0
  104. package/dist/theme-contract/tokens/coreTokenFamilies.js +6 -0
  105. package/dist/theme-contract/tokens/cssLengthConversion.d.ts +2 -0
  106. package/dist/theme-contract/tokens/cssLengthConversion.js +39 -0
  107. package/dist/theme-contract/tokens/defineProjectTokenFamilySchema.d.ts +1 -0
  108. package/dist/theme-contract/tokens/defineProjectTokenFamilySchema.js +1 -0
  109. package/dist/theme-contract/tokens/defineTokenFamilySchema.d.ts +3 -0
  110. package/dist/theme-contract/tokens/defineTokenFamilySchema.js +5 -0
  111. package/dist/theme-contract/tokens/runtimeTokenFamilies.types.d.ts +5 -0
  112. package/dist/theme-contract/tokens/runtimeTokenFamilies.types.js +1 -0
  113. package/dist/theme-contract/tokens/schemas/aspect.token.schema.d.ts +20 -0
  114. package/dist/theme-contract/tokens/schemas/aspect.token.schema.js +19 -0
  115. package/dist/theme-contract/tokens/schemas/blur.token.schema.d.ts +21 -0
  116. package/dist/theme-contract/tokens/schemas/blur.token.schema.js +19 -0
  117. package/dist/theme-contract/tokens/schemas/border.token.schema.d.ts +54 -0
  118. package/dist/theme-contract/tokens/schemas/border.token.schema.js +43 -0
  119. package/dist/theme-contract/tokens/schemas/breakpoint.token.schema.d.ts +19 -0
  120. package/dist/theme-contract/tokens/schemas/breakpoint.token.schema.js +18 -0
  121. package/dist/theme-contract/tokens/schemas/color.token.schema.d.ts +24 -0
  122. package/dist/theme-contract/tokens/schemas/color.token.schema.js +23 -0
  123. package/dist/theme-contract/tokens/schemas/container.token.schema.d.ts +26 -0
  124. package/dist/theme-contract/tokens/schemas/container.token.schema.js +30 -0
  125. package/dist/theme-contract/tokens/schemas/font.token.schema.d.ts +17 -0
  126. package/dist/theme-contract/tokens/schemas/font.token.schema.js +15 -0
  127. package/dist/theme-contract/tokens/schemas/fontWeight.token.schema.d.ts +24 -0
  128. package/dist/theme-contract/tokens/schemas/fontWeight.token.schema.js +22 -0
  129. package/dist/theme-contract/tokens/schemas/leading.token.schema.d.ts +20 -0
  130. package/dist/theme-contract/tokens/schemas/leading.token.schema.js +18 -0
  131. package/dist/theme-contract/tokens/schemas/radius.token.schema.d.ts +23 -0
  132. package/dist/theme-contract/tokens/schemas/radius.token.schema.js +22 -0
  133. package/dist/theme-contract/tokens/schemas/shadow.token.schema.d.ts +108 -0
  134. package/dist/theme-contract/tokens/schemas/shadow.token.schema.js +73 -0
  135. package/dist/theme-contract/tokens/schemas/size.token.schema.d.ts +20 -0
  136. package/dist/theme-contract/tokens/schemas/size.token.schema.js +19 -0
  137. package/dist/theme-contract/tokens/schemas/spacing.token.schema.d.ts +21 -0
  138. package/dist/theme-contract/tokens/schemas/spacing.token.schema.js +20 -0
  139. package/dist/theme-contract/tokens/schemas/text.token.schema.d.ts +87 -0
  140. package/dist/theme-contract/tokens/schemas/text.token.schema.js +30 -0
  141. package/dist/theme-contract/tokens/schemas/textSize.token.schema.d.ts +28 -0
  142. package/dist/theme-contract/tokens/schemas/textSize.token.schema.js +27 -0
  143. package/dist/theme-contract/tokens/schemas/title.token.schema.d.ts +85 -0
  144. package/dist/theme-contract/tokens/schemas/title.token.schema.js +30 -0
  145. package/dist/theme-contract/tokens/schemas/tracking.token.schema.d.ts +20 -0
  146. package/dist/theme-contract/tokens/schemas/tracking.token.schema.js +18 -0
  147. package/dist/theme-contract/tokens/schemas/zIndex.token.schema.d.ts +18 -0
  148. package/dist/theme-contract/tokens/schemas/zIndex.token.schema.js +17 -0
  149. package/dist/theme-contract/tokens/tokens.schema.d.ts +531 -0
  150. package/dist/theme-contract/tokens/tokens.schema.js +32 -0
  151. package/dist/types/LayoutResolvedTs.types.d.ts +18 -0
  152. package/dist/types/LayoutResolvedTs.types.js +1 -0
  153. package/dist/types/authoredTree.types.d.ts +112 -0
  154. package/dist/types/authoredTree.types.js +1 -0
  155. package/dist/types/blockRegistry.types.d.ts +37 -0
  156. package/dist/types/blockRegistry.types.js +1 -0
  157. package/dist/types/index.d.ts +4 -0
  158. package/dist/types/index.js +1 -0
  159. package/dist/types/layout.types.d.ts +30 -0
  160. package/dist/types/layout.types.js +1 -0
  161. package/package.json +65 -0
@@ -0,0 +1,748 @@
1
+ import { defineDelegate } from './delegateValidation.types.js';
2
+ import { Emit } from './emitters.js';
3
+ function defineCoreOps(config) {
4
+ return config;
5
+ }
6
+ const CORE_DESIGN_OP_CONFIG_RAW = {
7
+ m: {
8
+ tokenFamily: 'spacing',
9
+ authoringEffect: 'margin',
10
+ responsive: true,
11
+ addNoneasOmit: true,
12
+ resolve: (v) => Emit.prefix('m', v),
13
+ },
14
+ mt: {
15
+ tokenFamily: 'spacing',
16
+ authoringEffect: 'margin-top',
17
+ responsive: true,
18
+ addNoneasOmit: true,
19
+ resolve: (v) => Emit.prefix('mt', v),
20
+ },
21
+ mr: {
22
+ tokenFamily: 'spacing',
23
+ authoringEffect: 'margin-right',
24
+ responsive: true,
25
+ addNoneasOmit: true,
26
+ resolve: (v) => Emit.prefix('mr', v),
27
+ },
28
+ mb: {
29
+ tokenFamily: 'spacing',
30
+ authoringEffect: 'margin-bottom',
31
+ responsive: true,
32
+ addNoneasOmit: true,
33
+ resolve: (v) => Emit.prefix('mb', v),
34
+ },
35
+ ml: {
36
+ tokenFamily: 'spacing',
37
+ authoringEffect: 'margin-left',
38
+ responsive: true,
39
+ addNoneasOmit: true,
40
+ resolve: (v) => Emit.prefix('ml', v),
41
+ },
42
+ mx: {
43
+ tokenFamily: 'spacing',
44
+ authoringEffect: 'margin-x',
45
+ responsive: true,
46
+ addNoneasOmit: true,
47
+ resolve: (v) => Emit.prefix('mx', v),
48
+ },
49
+ my: {
50
+ tokenFamily: 'spacing',
51
+ authoringEffect: 'margin-y',
52
+ responsive: true,
53
+ addNoneasOmit: true,
54
+ resolve: (v) => Emit.prefix('my', v),
55
+ },
56
+ p: {
57
+ tokenFamily: 'spacing',
58
+ authoringEffect: 'padding',
59
+ responsive: true,
60
+ addNoneasOmit: true,
61
+ resolve: (v) => Emit.prefix('p', v),
62
+ },
63
+ pt: {
64
+ tokenFamily: 'spacing',
65
+ authoringEffect: 'padding-top',
66
+ responsive: true,
67
+ addNoneasOmit: true,
68
+ resolve: (v) => Emit.prefix('pt', v),
69
+ },
70
+ pr: {
71
+ tokenFamily: 'spacing',
72
+ authoringEffect: 'padding-right',
73
+ responsive: true,
74
+ addNoneasOmit: true,
75
+ resolve: (v) => Emit.prefix('pr', v),
76
+ },
77
+ pb: {
78
+ tokenFamily: 'spacing',
79
+ authoringEffect: 'padding-bottom',
80
+ responsive: true,
81
+ addNoneasOmit: true,
82
+ resolve: (v) => Emit.prefix('pb', v),
83
+ },
84
+ pl: {
85
+ tokenFamily: 'spacing',
86
+ authoringEffect: 'padding-left',
87
+ responsive: true,
88
+ addNoneasOmit: true,
89
+ resolve: (v) => Emit.prefix('pl', v),
90
+ },
91
+ px: {
92
+ tokenFamily: 'spacing',
93
+ authoringEffect: 'padding-x',
94
+ responsive: true,
95
+ addNoneasOmit: true,
96
+ resolve: (v) => Emit.prefix('px', v),
97
+ },
98
+ py: {
99
+ tokenFamily: 'spacing',
100
+ authoringEffect: 'padding-y',
101
+ responsive: true,
102
+ addNoneasOmit: true,
103
+ resolve: (v) => Emit.prefix('py', v),
104
+ },
105
+ gap: {
106
+ tokenFamily: 'spacing',
107
+ authoringEffect: 'gap',
108
+ responsive: true,
109
+ addNoneasOmit: true,
110
+ resolve: (v) => Emit.prefix('gap', v),
111
+ },
112
+ gapx: {
113
+ tokenFamily: 'spacing',
114
+ authoringEffect: 'gap-x',
115
+ responsive: true,
116
+ addNoneasOmit: true,
117
+ resolve: (v) => Emit.prefix('gap-x', v),
118
+ },
119
+ gapy: {
120
+ tokenFamily: 'spacing',
121
+ authoringEffect: 'gap-y',
122
+ responsive: true,
123
+ addNoneasOmit: true,
124
+ resolve: (v) => Emit.prefix('gap-y', v),
125
+ },
126
+ xspace: {
127
+ tokenFamily: 'spacing',
128
+ authoringEffect: 'gap-x',
129
+ responsive: true,
130
+ addNoneasOmit: true,
131
+ resolve: (v) => Emit.prefix('space-x', v),
132
+ },
133
+ yspace: {
134
+ tokenFamily: 'spacing',
135
+ authoringEffect: 'gap-y',
136
+ responsive: true,
137
+ addNoneasOmit: true,
138
+ resolve: (v) => Emit.prefix('space-y', v),
139
+ },
140
+ w: {
141
+ tokenFamily: 'container',
142
+ authoringEffect: 'width',
143
+ responsive: true,
144
+ addNoneasOmit: true,
145
+ resolve: (v) => Emit.containerSize('w', v),
146
+ },
147
+ h: {
148
+ tokenFamily: 'container',
149
+ authoringEffect: 'height',
150
+ responsive: true,
151
+ addNoneasOmit: true,
152
+ resolve: (v) => Emit.containerSize('h', v),
153
+ },
154
+ minW: {
155
+ tokenFamily: 'container',
156
+ authoringEffect: 'min-width',
157
+ responsive: true,
158
+ addNoneasOmit: true,
159
+ resolve: (v) => Emit.containerSize('min-w', v),
160
+ },
161
+ minH: {
162
+ tokenFamily: 'container',
163
+ authoringEffect: 'min-height',
164
+ responsive: true,
165
+ addNoneasOmit: true,
166
+ resolve: (v) => Emit.containerSize('min-h', v),
167
+ },
168
+ maxW: {
169
+ tokenFamily: 'container',
170
+ authoringEffect: 'max-width',
171
+ responsive: true,
172
+ addNoneasOmit: true,
173
+ resolve: (v) => Emit.containerSize('max-w', v),
174
+ },
175
+ maxH: {
176
+ tokenFamily: 'container',
177
+ authoringEffect: 'max-height',
178
+ responsive: true,
179
+ addNoneasOmit: true,
180
+ resolve: (v) => Emit.containerSize('max-h', v),
181
+ },
182
+ contentWidth: {
183
+ tokenFamily: 'container',
184
+ authoringEffect: 'max-width',
185
+ responsive: true,
186
+ addNoneasOmit: true,
187
+ resolve: (v) => Emit.contentWidth(v),
188
+ },
189
+ cols: {
190
+ tokenFamily: 'colCount',
191
+ authoringEffect: 'element',
192
+ authoringValue: {
193
+ kind: 'number',
194
+ min: 1,
195
+ max: 12,
196
+ step: 1,
197
+ },
198
+ resolve: (v) => Emit.prefix('grid-cols', v),
199
+ },
200
+ rows: {
201
+ tokenFamily: 'rowCount',
202
+ authoringEffect: 'element',
203
+ authoringValue: {
204
+ kind: 'number',
205
+ min: 1,
206
+ max: 6,
207
+ step: 1,
208
+ },
209
+ resolve: (v) => Emit.prefix('grid-rows', v),
210
+ },
211
+ colSpan: {
212
+ tokenFamily: 'colCount',
213
+ authoringEffect: 'element',
214
+ authoringValue: {
215
+ kind: 'number',
216
+ min: 1,
217
+ max: 12,
218
+ step: 1,
219
+ },
220
+ resolve: (v) => Emit.prefix('col-span', v),
221
+ },
222
+ rowSpan: {
223
+ tokenFamily: 'rowCount',
224
+ authoringEffect: 'element',
225
+ authoringValue: {
226
+ kind: 'number',
227
+ min: 1,
228
+ max: 6,
229
+ step: 1,
230
+ },
231
+ resolve: (v) => Emit.prefix('row-span', v),
232
+ },
233
+ rounded: {
234
+ tokenFamily: 'radius',
235
+ authoringEffect: 'radius',
236
+ resolve: (v) => Emit.rounded('rounded', v),
237
+ },
238
+ roundedT: {
239
+ tokenFamily: 'radius',
240
+ authoringEffect: 'radius-top',
241
+ resolve: (v) => Emit.rounded('rounded-t', v),
242
+ },
243
+ roundedR: {
244
+ tokenFamily: 'radius',
245
+ authoringEffect: 'radius-right',
246
+ resolve: (v) => Emit.rounded('rounded-r', v),
247
+ },
248
+ roundedB: {
249
+ tokenFamily: 'radius',
250
+ authoringEffect: 'radius-bottom',
251
+ resolve: (v) => Emit.rounded('rounded-b', v),
252
+ },
253
+ roundedL: {
254
+ tokenFamily: 'radius',
255
+ authoringEffect: 'radius-left',
256
+ resolve: (v) => Emit.rounded('rounded-l', v),
257
+ },
258
+ border: {
259
+ tokenFamily: 'border',
260
+ authoringEffect: 'border',
261
+ addNoneasOmit: true,
262
+ resolve: (v) => Emit.borderComposite(v),
263
+ },
264
+ borderT: {
265
+ tokenFamily: 'border',
266
+ authoringEffect: 'border-top',
267
+ resolve: (v) => Emit.borderCompositeSide('t', v),
268
+ delegate: defineDelegate('border', {
269
+ width: 'borderWidthT',
270
+ }),
271
+ },
272
+ borderR: {
273
+ tokenFamily: 'border',
274
+ authoringEffect: 'border-right',
275
+ resolve: (v) => Emit.borderCompositeSide('r', v),
276
+ delegate: defineDelegate('border', {
277
+ width: 'borderWidthR',
278
+ }),
279
+ },
280
+ borderB: {
281
+ tokenFamily: 'border',
282
+ authoringEffect: 'border-bottom',
283
+ resolve: (v) => Emit.borderCompositeSide('b', v),
284
+ delegate: defineDelegate('border', {
285
+ width: 'borderWidthB',
286
+ }),
287
+ },
288
+ borderL: {
289
+ tokenFamily: 'border',
290
+ authoringEffect: 'border-left',
291
+ resolve: (v) => Emit.borderCompositeSide('l', v),
292
+ delegate: defineDelegate('border', {
293
+ width: 'borderWidthL',
294
+ }),
295
+ },
296
+ borderWidth: {
297
+ tokenFamily: 'borderWidth',
298
+ authoringEffect: 'border',
299
+ addNoneasOmit: true,
300
+ authoringValue: {
301
+ kind: 'number',
302
+ min: 0,
303
+ step: 0.5,
304
+ },
305
+ private: true,
306
+ resolve: (v) => Emit.border(v),
307
+ },
308
+ borderWidthT: {
309
+ tokenFamily: 'borderWidth',
310
+ authoringEffect: 'border-top',
311
+ addNoneasOmit: true,
312
+ authoringValue: {
313
+ kind: 'number',
314
+ min: 0,
315
+ step: 0.5,
316
+ },
317
+ private: true,
318
+ resolve: (v) => {
319
+ const numericValue = Number(String(v));
320
+ if (!Number.isFinite(numericValue)) {
321
+ return Emit.isEmpty(v) ? 'border-t' : `border-t-(length:--border-${String(v)})`;
322
+ }
323
+ if (Number.isInteger(numericValue)) {
324
+ return `border-t-${numericValue}`;
325
+ }
326
+ return `border-t-[${numericValue}px]`;
327
+ },
328
+ },
329
+ borderWidthR: {
330
+ tokenFamily: 'borderWidth',
331
+ authoringEffect: 'border-right',
332
+ addNoneasOmit: true,
333
+ authoringValue: {
334
+ kind: 'number',
335
+ min: 0,
336
+ step: 0.5,
337
+ },
338
+ private: true,
339
+ resolve: (v) => {
340
+ const numericValue = Number(String(v));
341
+ if (!Number.isFinite(numericValue)) {
342
+ return Emit.isEmpty(v) ? 'border-r' : `border-r-(length:--border-${String(v)})`;
343
+ }
344
+ if (Number.isInteger(numericValue)) {
345
+ return `border-r-${numericValue}`;
346
+ }
347
+ return `border-r-[${numericValue}px]`;
348
+ },
349
+ },
350
+ borderWidthB: {
351
+ tokenFamily: 'borderWidth',
352
+ authoringEffect: 'border-bottom',
353
+ addNoneasOmit: true,
354
+ authoringValue: {
355
+ kind: 'number',
356
+ min: 0,
357
+ step: 0.5,
358
+ },
359
+ private: true,
360
+ resolve: (v) => {
361
+ const numericValue = Number(String(v));
362
+ if (!Number.isFinite(numericValue)) {
363
+ return Emit.isEmpty(v) ? 'border-b' : `border-b-(length:--border-${String(v)})`;
364
+ }
365
+ if (Number.isInteger(numericValue)) {
366
+ return `border-b-${numericValue}`;
367
+ }
368
+ return `border-b-[${numericValue}px]`;
369
+ },
370
+ },
371
+ borderWidthL: {
372
+ tokenFamily: 'borderWidth',
373
+ authoringEffect: 'border-left',
374
+ addNoneasOmit: true,
375
+ authoringValue: {
376
+ kind: 'number',
377
+ min: 0,
378
+ step: 0.5,
379
+ },
380
+ private: true,
381
+ resolve: (v) => {
382
+ const numericValue = Number(String(v));
383
+ if (!Number.isFinite(numericValue)) {
384
+ return Emit.isEmpty(v) ? 'border-l' : `border-l-(length:--border-${String(v)})`;
385
+ }
386
+ if (Number.isInteger(numericValue)) {
387
+ return `border-l-${numericValue}`;
388
+ }
389
+ return `border-l-[${numericValue}px]`;
390
+ },
391
+ },
392
+ borderColor: {
393
+ tokenFamily: 'color',
394
+ authoringEffect: 'border',
395
+ addNoneasOmit: true,
396
+ private: true,
397
+ resolve: (v) => Emit.prefix('border', v),
398
+ },
399
+ borderStyle: {
400
+ tokenFamily: 'borderStyle',
401
+ authoringEffect: 'border',
402
+ private: true,
403
+ resolve: (v) => (Emit.isEmpty(v) ? 'border-solid' : `border-${String(v)}`),
404
+ },
405
+ divide: {
406
+ tokenFamily: 'border',
407
+ authoringEffect: 'divide',
408
+ resolve: (v) => Emit.divideComposite(v),
409
+ delegate: defineDelegate('border', {
410
+ color: 'divideColor',
411
+ width: 'divideWidth',
412
+ style: 'divideStyle',
413
+ }),
414
+ },
415
+ divideColor: {
416
+ tokenFamily: 'color',
417
+ authoringEffect: 'divide',
418
+ addNoneasOmit: true,
419
+ private: true,
420
+ resolve: (v) => Emit.prefix('divide', v),
421
+ },
422
+ divideWidth: {
423
+ tokenFamily: 'borderWidth',
424
+ authoringEffect: 'divide-x',
425
+ addNoneasOmit: true,
426
+ authoringValue: {
427
+ kind: 'number',
428
+ min: 0,
429
+ step: 0.5,
430
+ },
431
+ private: true,
432
+ resolve: (v) => Emit.divideBorder(v),
433
+ },
434
+ divideStyle: {
435
+ tokenFamily: 'borderStyle',
436
+ authoringEffect: 'divide',
437
+ private: true,
438
+ resolve: (v) => (Emit.isEmpty(v) ? 'divide-solid' : `divide-${String(v)}`),
439
+ },
440
+ bg: {
441
+ tokenFamily: 'color',
442
+ authoringEffect: 'background',
443
+ addNoneasOmit: true,
444
+ resolve: (v) => Emit.prefix('bg', v),
445
+ },
446
+ textColor: {
447
+ tokenFamily: 'color',
448
+ authoringEffect: 'text',
449
+ addNoneasOmit: true,
450
+ resolve: (v) => Emit.prefix('text', v),
451
+ },
452
+ opacity: {
453
+ tokenFamily: 'opacity',
454
+ authoringEffect: 'element',
455
+ authoringValue: {
456
+ kind: 'number',
457
+ min: 0,
458
+ max: 100,
459
+ step: 1,
460
+ },
461
+ resolve: (v) => Emit.prefix('opacity', v),
462
+ },
463
+ textStyle: {
464
+ tokenFamily: 'text',
465
+ authoringEffect: 'text-style',
466
+ responsive: true,
467
+ resolve: (v) => Emit.prefix('text-style', v),
468
+ },
469
+ titleStyle: {
470
+ tokenFamily: 'title',
471
+ authoringEffect: 'text-style',
472
+ responsive: true,
473
+ resolve: (v) => Emit.prefix('title-style', v),
474
+ },
475
+ textAlign: {
476
+ tokenFamily: 'textAlign',
477
+ authoringEffect: 'text-alignment',
478
+ addNoneasOmit: true,
479
+ responsive: true,
480
+ resolve: (v) => Emit.prefix('text', v),
481
+ },
482
+ textSize: {
483
+ tokenFamily: 'textSize',
484
+ authoringEffect: 'text',
485
+ responsive: true,
486
+ authoringValue: {
487
+ kind: 'number',
488
+ min: 1,
489
+ step: 1,
490
+ },
491
+ private: true,
492
+ resolve: (v) => {
493
+ const numericValue = Number(String(v));
494
+ if (Number.isFinite(numericValue)) {
495
+ return `text-[${numericValue}px]`;
496
+ }
497
+ return Emit.prefix('text', v);
498
+ },
499
+ },
500
+ textTransform: {
501
+ tokenFamily: 'textTransform',
502
+ authoringEffect: 'text',
503
+ responsive: false,
504
+ addNoneasOmit: true,
505
+ resolve: (v) => (Emit.isEmpty(v) ? '' : v),
506
+ },
507
+ fontWeight: {
508
+ tokenFamily: 'fontWeight',
509
+ authoringEffect: 'text',
510
+ responsive: true,
511
+ private: true,
512
+ resolve: (v) => (Emit.isEmpty(v) ? '' : `font-${String(v)}`),
513
+ },
514
+ fontFamily: {
515
+ tokenFamily: 'font',
516
+ authoringEffect: 'text',
517
+ responsive: true,
518
+ private: true,
519
+ resolve: (v) => (Emit.isEmpty(v) ? '' : `font-${String(v)}`),
520
+ },
521
+ leading: {
522
+ tokenFamily: 'leading',
523
+ authoringEffect: 'text',
524
+ responsive: true,
525
+ authoringValue: {
526
+ kind: 'number',
527
+ min: 0,
528
+ step: 0.001,
529
+ },
530
+ private: true,
531
+ resolve: (v) => {
532
+ const numericValue = Number(String(v));
533
+ if (Number.isFinite(numericValue)) {
534
+ return `leading-[${numericValue}]`;
535
+ }
536
+ return Emit.prefix('leading', v);
537
+ },
538
+ },
539
+ tracking: {
540
+ tokenFamily: 'tracking',
541
+ authoringEffect: 'text',
542
+ responsive: true,
543
+ authoringValue: {
544
+ kind: 'number',
545
+ step: 0.001,
546
+ },
547
+ private: true,
548
+ resolve: (v) => {
549
+ const numericValue = Number(String(v));
550
+ if (Number.isFinite(numericValue)) {
551
+ return `tracking-[${numericValue}em]`;
552
+ }
553
+ return Emit.prefix('tracking', v);
554
+ },
555
+ },
556
+ shadow: {
557
+ tokenFamily: 'shadow',
558
+ authoringEffect: 'shadow',
559
+ addNoneasOmit: true,
560
+ resolve: (v) => Emit.shadow(v),
561
+ },
562
+ shadowCompose: {
563
+ tokenFamily: 'shadowCompose',
564
+ authoringEffect: 'shadow',
565
+ private: true,
566
+ resolve: (v) => Emit.shadowCompose(v),
567
+ },
568
+ shadowX1: {
569
+ tokenFamily: 'shadowOffset',
570
+ authoringEffect: 'shadow',
571
+ authoringValue: {
572
+ kind: 'number',
573
+ step: 1,
574
+ },
575
+ private: true,
576
+ resolve: (v) => Emit.shadowTokenVar('shadow-x-1', 'shadow-offset', v),
577
+ },
578
+ shadowY1: {
579
+ tokenFamily: 'shadowOffset',
580
+ authoringEffect: 'shadow',
581
+ authoringValue: {
582
+ kind: 'number',
583
+ step: 1,
584
+ },
585
+ private: true,
586
+ resolve: (v) => Emit.shadowTokenVar('shadow-y-1', 'shadow-offset', v),
587
+ },
588
+ shadowBlur1: {
589
+ tokenFamily: 'shadowBlur',
590
+ authoringEffect: 'shadow',
591
+ authoringValue: {
592
+ kind: 'number',
593
+ min: 0,
594
+ step: 1,
595
+ },
596
+ private: true,
597
+ resolve: (v) => Emit.shadowTokenVar('shadow-blur-1', 'shadow-blur', v),
598
+ },
599
+ shadowSpread1: {
600
+ tokenFamily: 'shadowSpread',
601
+ authoringEffect: 'shadow',
602
+ authoringValue: {
603
+ kind: 'number',
604
+ step: 1,
605
+ },
606
+ private: true,
607
+ resolve: (v) => Emit.shadowTokenVar('shadow-spread-1', 'shadow-spread', v),
608
+ },
609
+ shadowOpacity1: {
610
+ tokenFamily: 'shadowOpacity',
611
+ authoringEffect: 'shadow',
612
+ authoringValue: {
613
+ kind: 'number',
614
+ min: 0,
615
+ max: 100,
616
+ step: 1,
617
+ },
618
+ private: true,
619
+ resolve: (v) => Emit.shadowOpacityVar('shadow-opacity-1', v),
620
+ },
621
+ shadowX2: {
622
+ tokenFamily: 'shadowOffset',
623
+ authoringEffect: 'shadow',
624
+ authoringValue: {
625
+ kind: 'number',
626
+ step: 1,
627
+ },
628
+ private: true,
629
+ resolve: (v) => Emit.shadowTokenVar('shadow-x-2', 'shadow-offset', v),
630
+ },
631
+ shadowY2: {
632
+ tokenFamily: 'shadowOffset',
633
+ authoringEffect: 'shadow',
634
+ authoringValue: {
635
+ kind: 'number',
636
+ step: 1,
637
+ },
638
+ private: true,
639
+ resolve: (v) => Emit.shadowTokenVar('shadow-y-2', 'shadow-offset', v),
640
+ },
641
+ shadowBlur2: {
642
+ tokenFamily: 'shadowBlur',
643
+ authoringEffect: 'shadow',
644
+ authoringValue: {
645
+ kind: 'number',
646
+ min: 0,
647
+ step: 1,
648
+ },
649
+ private: true,
650
+ resolve: (v) => Emit.shadowTokenVar('shadow-blur-2', 'shadow-blur', v),
651
+ },
652
+ shadowSpread2: {
653
+ tokenFamily: 'shadowSpread',
654
+ authoringEffect: 'shadow',
655
+ authoringValue: {
656
+ kind: 'number',
657
+ step: 1,
658
+ },
659
+ private: true,
660
+ resolve: (v) => Emit.shadowTokenVar('shadow-spread-2', 'shadow-spread', v),
661
+ },
662
+ shadowOpacity2: {
663
+ tokenFamily: 'shadowOpacity',
664
+ authoringEffect: 'shadow',
665
+ authoringValue: {
666
+ kind: 'number',
667
+ min: 0,
668
+ max: 100,
669
+ step: 1,
670
+ },
671
+ private: true,
672
+ resolve: (v) => Emit.shadowOpacityVar('shadow-opacity-2', v),
673
+ },
674
+ shadowColor: {
675
+ tokenFamily: 'color',
676
+ authoringEffect: 'shadow',
677
+ resolve: (v) => Emit.colorRuntimeVar('tw-shadow-color', 'color', v),
678
+ },
679
+ ring: {
680
+ tokenFamily: 'ringWidth',
681
+ authoringEffect: 'ring',
682
+ authoringValue: {
683
+ kind: 'number',
684
+ min: 0,
685
+ step: 1,
686
+ },
687
+ resolve: (v) => (Emit.isEmpty(v) ? '' : v === '0' ? 'ring-0' : `ring-${String(v)}`),
688
+ },
689
+ ringColor: {
690
+ tokenFamily: 'color',
691
+ authoringEffect: 'ring',
692
+ addNoneasOmit: true,
693
+ resolve: (v) => Emit.colorRuntimeVar('tw-ring-color', 'color', v),
694
+ },
695
+ z: {
696
+ tokenFamily: 'zIndex',
697
+ authoringEffect: 'element',
698
+ addNoneasOmit: true,
699
+ resolve: (v) => Emit.zIndex(v),
700
+ },
701
+ inset: {
702
+ tokenFamily: 'inset',
703
+ authoringEffect: 'element',
704
+ resolve: (v) => Emit.prefix('inset', v),
705
+ },
706
+ insetX: {
707
+ tokenFamily: 'inset',
708
+ authoringEffect: 'element',
709
+ resolve: (v) => Emit.prefix('inset-x', v),
710
+ },
711
+ insetY: {
712
+ tokenFamily: 'inset',
713
+ authoringEffect: 'element',
714
+ resolve: (v) => Emit.prefix('inset-y', v),
715
+ },
716
+ top: {
717
+ tokenFamily: 'inset',
718
+ authoringEffect: 'element',
719
+ resolve: (v) => Emit.prefix('top', v),
720
+ },
721
+ right: {
722
+ tokenFamily: 'inset',
723
+ authoringEffect: 'element',
724
+ resolve: (v) => Emit.prefix('right', v),
725
+ },
726
+ bottom: {
727
+ tokenFamily: 'inset',
728
+ authoringEffect: 'element',
729
+ resolve: (v) => Emit.prefix('bottom', v),
730
+ },
731
+ left: {
732
+ tokenFamily: 'inset',
733
+ authoringEffect: 'element',
734
+ resolve: (v) => Emit.prefix('left', v),
735
+ },
736
+ align: {
737
+ tokenFamily: 'align',
738
+ authoringEffect: 'alignment',
739
+ resolve: (v) => Emit.align(v),
740
+ },
741
+ aspect: {
742
+ tokenFamily: 'aspect',
743
+ authoringEffect: 'element',
744
+ addNoneasOmit: true,
745
+ resolve: (v) => Emit.aspect(v),
746
+ },
747
+ };
748
+ export const CORE_DESIGN_OP_CONFIG = defineCoreOps(CORE_DESIGN_OP_CONFIG_RAW);