@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,46 @@
1
+ import type { DesignOpConfigBase } from '../../design-system/ops/ops.types.js';
2
+ import { COMPOSITE_FIELD_SPEC_BY_FAMILY, OPS_BY_TOKEN_FAMILY } from '../CompositeFieldOpByFamily.js';
3
+ export type OpConfigRecord = Record<string, DesignOpConfigBase<string>>;
4
+ type OpName<TConfig extends OpConfigRecord> = keyof TConfig & string;
5
+ type TokenFamilyForOp<TConfig extends OpConfigRecord, Op extends OpName<TConfig>> = TConfig[Op]['tokenFamily'] & string;
6
+ export type CompositeFamilyName = keyof typeof COMPOSITE_FIELD_SPEC_BY_FAMILY & string;
7
+ type CompositeFieldKey<Family extends CompositeFamilyName> = keyof (typeof COMPOSITE_FIELD_SPEC_BY_FAMILY)[Family] & string;
8
+ type CompositeFieldSpec<Family extends CompositeFamilyName, Field extends CompositeFieldKey<Family>> = (typeof COMPOSITE_FIELD_SPEC_BY_FAMILY)[Family][Field];
9
+ type CompositeDefaultFieldOp<Family extends CompositeFamilyName, Field extends CompositeFieldKey<Family>> = CompositeFieldSpec<Family, Field> extends {
10
+ defaultOp: infer Op extends string;
11
+ } ? Op : never;
12
+ type CompositeTargetFamily<Family extends CompositeFamilyName, Field extends CompositeFieldKey<Family>> = CompositeFieldSpec<Family, Field> extends {
13
+ targetFamily: infer FamilyName extends string;
14
+ } ? FamilyName : never;
15
+ type KnownDelegateTargetFamily = keyof typeof OPS_BY_TOKEN_FAMILY & string;
16
+ type OpsForTargetFamily<Family extends string> = Family extends KnownDelegateTargetFamily ? (typeof OPS_BY_TOKEN_FAMILY)[Family][number] : never;
17
+ type OpsUsingTokenFamily<TConfig extends OpConfigRecord, Family extends string> = {
18
+ [Candidate in OpName<TConfig>]: TokenFamilyForOp<TConfig, Candidate> extends Family ? Candidate : never;
19
+ }[OpName<TConfig>] & string;
20
+ type CompositeSpecFieldError<TConfig extends OpConfigRecord, Family extends CompositeFamilyName, Field extends CompositeFieldKey<Family>> = CompositeDefaultFieldOp<Family, Field> extends OpName<TConfig> ? TokenFamilyForOp<TConfig, CompositeDefaultFieldOp<Family, Field>> extends CompositeTargetFamily<Family, Field> ? never : `${Family}.${Field}: defaultOpFamilyMismatch` : `${Family}.${Field}: defaultOpMissing`;
21
+ type CompositeSpecError<TConfig extends OpConfigRecord> = {
22
+ [Family in CompositeFamilyName]: {
23
+ [Field in CompositeFieldKey<Family>]: CompositeSpecFieldError<TConfig, Family, Field>;
24
+ }[CompositeFieldKey<Family>];
25
+ }[CompositeFamilyName];
26
+ type CompositeSpecGuard<TConfig extends OpConfigRecord> = [
27
+ CompositeSpecError<TConfig>
28
+ ] extends [never] ? unknown : never;
29
+ type DelegateMapForFamily<TConfig extends OpConfigRecord, Family extends CompositeFamilyName> = Partial<{
30
+ [Field in CompositeFieldKey<Family>]: CompositeDefaultFieldOp<Family, Field> extends OpName<TConfig> ? OpsUsingTokenFamily<TConfig, CompositeTargetFamily<Family, Field>> : never;
31
+ }>;
32
+ export type CompositeDelegateForFamily<Family extends CompositeFamilyName> = Partial<{
33
+ [Field in CompositeFieldKey<Family>]: OpsForTargetFamily<CompositeTargetFamily<Family, Field>>;
34
+ }>;
35
+ type StrictCompositeDelegateForFamily<Family extends CompositeFamilyName, Delegate extends Record<string, string>> = CompositeDelegateForFamily<Family> & Delegate & Record<Exclude<keyof Delegate, keyof CompositeDelegateForFamily<Family>>, never>;
36
+ export declare function defineDelegate<Family extends CompositeFamilyName, const Delegate extends Record<string, string>>(_family: Family, delegate: StrictCompositeDelegateForFamily<Family, Delegate>): CompositeDelegateForFamily<Family>;
37
+ export type DelegateMapForOp<TConfig extends OpConfigRecord, Op extends OpName<TConfig>> = TokenFamilyForOp<TConfig, Op> extends infer Family ? Family extends CompositeFamilyName ? DelegateMapForFamily<TConfig, Family> : never : never;
38
+ type StrictDelegateForOp<TConfig extends OpConfigRecord, Op extends OpName<TConfig>> = TConfig[Op] extends {
39
+ delegate: infer Delegate;
40
+ } ? Delegate extends Record<string, string> ? DelegateMapForOp<TConfig, Op> & Record<Exclude<keyof Delegate, keyof DelegateMapForOp<TConfig, Op>>, never> : DelegateMapForOp<TConfig, Op> : DelegateMapForOp<TConfig, Op>;
41
+ export type ValidateOpConfig<TConfig extends OpConfigRecord> = {
42
+ [Op in OpName<TConfig>]: Omit<TConfig[Op], 'delegate'> & {
43
+ delegate?: StrictDelegateForOp<TConfig, Op>;
44
+ };
45
+ } & CompositeSpecGuard<TConfig>;
46
+ export {};
@@ -0,0 +1,4 @@
1
+ import { COMPOSITE_FIELD_SPEC_BY_FAMILY, OPS_BY_TOKEN_FAMILY } from '../CompositeFieldOpByFamily.js';
2
+ export function defineDelegate(_family, delegate) {
3
+ return delegate;
4
+ }
@@ -0,0 +1,24 @@
1
+ export declare class Emit {
2
+ static isEmpty(value: unknown): boolean;
3
+ static prefix(prefix: string, value: unknown): string;
4
+ static rounded(prefix: string, value: unknown): string;
5
+ static composite(value: unknown): string;
6
+ static containerSize(prefix: string, value: unknown): string;
7
+ static containerSizeAlias(prefix: string, value: unknown): string;
8
+ static contentWidth(value: unknown): string;
9
+ static align(value: unknown): string;
10
+ static shadow(value: unknown): string;
11
+ static shadowTokenVar(cssVarName: string, tokenVarPrefix: string, value: unknown): string;
12
+ static shadowOpacityVar(cssVarName: string, value: unknown): string;
13
+ static colorRuntimeVar(cssVarName: string, tokenPrefix: string, value: unknown): string;
14
+ static shadowCompose(value: unknown): string;
15
+ static border(value: string): string;
16
+ static borderComposite(value: unknown): string;
17
+ static borderCompositeSide(side: 't' | 'r' | 'b' | 'l', value: unknown): string;
18
+ static borderCompositeAxis(axis: 'x' | 'y', value: unknown): string;
19
+ static divideBorder(value: string): string;
20
+ static divideComposite(value: unknown): string;
21
+ static zIndex(value: unknown): string;
22
+ static aspect(value: unknown): string;
23
+ static aspectAlias(value: unknown): string;
24
+ }
@@ -0,0 +1,151 @@
1
+ const CONTAINER_PASSTHROUGH_SPECIALS = new Set(['full', 'screen', 'fit', 'min', 'max']);
2
+ const CONTAINER_ALIAS_PASSTHROUGH = new Set(['full', 'screen', 'fit', 'min', 'max', 'none']);
3
+ const ASPECT_ALIAS_PASSTHROUGH = new Set(['auto', 'square', 'video', 'none']);
4
+ export class Emit {
5
+ static isEmpty(value) {
6
+ return value === undefined || value === null || value === '' || value === false;
7
+ }
8
+ static prefix(prefix, value) {
9
+ return Emit.isEmpty(value) ? '' : `${prefix}-${String(value)}`;
10
+ }
11
+ static rounded(prefix, value) {
12
+ if (Emit.isEmpty(value))
13
+ return '';
14
+ return value === 'none' ? `${prefix}-none` : `${prefix}-${String(value)}`;
15
+ }
16
+ static composite(value) {
17
+ return Emit.isEmpty(value) ? '' : String(value);
18
+ }
19
+ static containerSize(prefix, value) {
20
+ if (Emit.isEmpty(value))
21
+ return '';
22
+ const key = String(value);
23
+ if (CONTAINER_PASSTHROUGH_SPECIALS.has(key))
24
+ return `${prefix}-${key}`;
25
+ return `${prefix}-(--container-${key})`;
26
+ }
27
+ static containerSizeAlias(prefix, value) {
28
+ if (Emit.isEmpty(value))
29
+ return '';
30
+ const key = String(value);
31
+ if (CONTAINER_ALIAS_PASSTHROUGH.has(key))
32
+ return '';
33
+ return `${prefix}-${key}`;
34
+ }
35
+ static contentWidth(value) {
36
+ if (Emit.isEmpty(value))
37
+ return '';
38
+ const key = String(value);
39
+ if (key === 'fit' || key === 'min' || key === 'max' || key === 'full')
40
+ return `w-${key}`;
41
+ if (key === 'screen')
42
+ return 'w-full max-w-screen';
43
+ return `w-full max-w-(--container-${key})`;
44
+ }
45
+ static align(value) {
46
+ if (Emit.isEmpty(value))
47
+ return '';
48
+ const key = String(value);
49
+ if (key === 'left' || key === 'start')
50
+ return '';
51
+ if (key === 'center')
52
+ return 'mx-auto';
53
+ if (key === 'right' || key === 'end')
54
+ return 'ml-auto';
55
+ return '';
56
+ }
57
+ static shadow(value) {
58
+ if (Emit.isEmpty(value))
59
+ return '';
60
+ const key = String(value);
61
+ return `shadow-style-${key}`;
62
+ }
63
+ static shadowTokenVar(cssVarName, tokenVarPrefix, value) {
64
+ if (Emit.isEmpty(value))
65
+ return '';
66
+ const numericValue = Number(String(value));
67
+ if (Number.isFinite(numericValue)) {
68
+ return `[--${cssVarName}:${numericValue}px]`;
69
+ }
70
+ return `[--${cssVarName}:var(--${tokenVarPrefix}-${String(value)})]`;
71
+ }
72
+ static shadowOpacityVar(cssVarName, value) {
73
+ if (Emit.isEmpty(value))
74
+ return '';
75
+ return `[--${cssVarName}:calc(${String(value)}/100)]`;
76
+ }
77
+ static colorRuntimeVar(cssVarName, tokenPrefix, value) {
78
+ if (Emit.isEmpty(value) || value === 'none')
79
+ return '';
80
+ return `[--${cssVarName}:var(--${tokenPrefix}-${String(value)})]`;
81
+ }
82
+ static shadowCompose(value) {
83
+ if (Emit.isEmpty(value))
84
+ return '';
85
+ const key = String(value);
86
+ const layer1 = 'var(--shadow-x-1)_var(--shadow-y-1)_var(--shadow-blur-1)_var(--shadow-spread-1)_rgb(from_var(--tw-shadow-color)_r_g_b/var(--shadow-opacity-1))';
87
+ const layer2 = 'var(--shadow-x-2)_var(--shadow-y-2)_var(--shadow-blur-2)_var(--shadow-spread-2)_rgb(from_var(--tw-shadow-color)_r_g_b/var(--shadow-opacity-2))';
88
+ if (key === 'none')
89
+ return 'shadow-none';
90
+ if (key === 'single')
91
+ return `[box-shadow:${layer1}]`;
92
+ if (key === 'double')
93
+ return `[box-shadow:${layer1},${layer2}]`;
94
+ return '';
95
+ }
96
+ static border(value) {
97
+ const numericValue = Number(String(value));
98
+ if (!Number.isFinite(numericValue)) {
99
+ return Emit.isEmpty(value) ? 'border-1' : `border-(length:--border-${String(value)})`;
100
+ }
101
+ if (Number.isInteger(numericValue)) {
102
+ return `border-${numericValue}`;
103
+ }
104
+ return `border-[${numericValue}px]`;
105
+ }
106
+ static borderComposite(value) {
107
+ return Emit.isEmpty(value) ? '' : `border-${String(value)}`;
108
+ }
109
+ static borderCompositeSide(side, value) {
110
+ return Emit.isEmpty(value) ? '' : `border-${side}-${String(value)}`;
111
+ }
112
+ static borderCompositeAxis(axis, value) {
113
+ return Emit.isEmpty(value) ? '' : `border-${axis}-${String(value)}`;
114
+ }
115
+ static divideBorder(value) {
116
+ const numericValue = Number(String(value));
117
+ if (!Number.isFinite(numericValue)) {
118
+ return Emit.isEmpty(value) ? '' : `divide-x-(--border-${String(value)})`;
119
+ }
120
+ if (Number.isInteger(numericValue)) {
121
+ return `divide-x-${numericValue}`;
122
+ }
123
+ return `divide-x-[${numericValue}px]`;
124
+ }
125
+ static divideComposite(value) {
126
+ return Emit.isEmpty(value) ? '' : `divide-border-${String(value)}`;
127
+ }
128
+ static zIndex(value) {
129
+ return Emit.isEmpty(value) ? 'z-auto' : `z-(--z-${String(value)})`;
130
+ }
131
+ static aspect(value) {
132
+ if (Emit.isEmpty(value))
133
+ return '';
134
+ const key = String(value);
135
+ if (key === 'auto')
136
+ return 'aspect-auto';
137
+ if (key === 'square')
138
+ return 'aspect-square';
139
+ if (key === 'video')
140
+ return 'aspect-video';
141
+ return `[aspect-ratio:var(--aspect-${key})]`;
142
+ }
143
+ static aspectAlias(value) {
144
+ if (Emit.isEmpty(value))
145
+ return '';
146
+ const key = String(value);
147
+ if (ASPECT_ALIAS_PASSTHROUGH.has(key))
148
+ return '';
149
+ return `aspect-${key}`;
150
+ }
151
+ }