stillwind 0.0.0 → 0.1.0-rc.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.
- package/AGENTS_TEMPLATE.md +5 -0
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/TAILWINDCSS-MIT-LICENSE +21 -0
- package/css/builtin-metadata/sw-motion-properties.css +186 -0
- package/css/builtin-metadata/tw-legacy-metadata.css +36 -0
- package/css/builtin-metadata/tw-properties.css +944 -0
- package/css/builtin-metadata/tw-registry-metadata.css +52 -0
- package/css/builtin-metadata/tw-relationship-metadata.css +10 -0
- package/css/builtin-utilities/sw-motion-contexts.css +1043 -0
- package/css/builtin-utilities/tw-backgrounds.css +606 -0
- package/css/builtin-utilities/tw-borders.css +954 -0
- package/css/builtin-utilities/tw-effects.css +1209 -0
- package/css/builtin-utilities/tw-flex-grid.css +749 -0
- package/css/builtin-utilities/tw-interactivity.css +680 -0
- package/css/builtin-utilities/tw-layout.css +943 -0
- package/css/builtin-utilities/tw-masks.css +1268 -0
- package/css/builtin-utilities/tw-motion.css +142 -0
- package/css/builtin-utilities/tw-spacing-sizing.css +621 -0
- package/css/builtin-utilities/tw-svg.css +50 -0
- package/css/builtin-utilities/tw-transforms.css +652 -0
- package/css/builtin-utilities/tw-typography.css +720 -0
- package/css/builtin-variants/sw-conditional.css +5 -0
- package/css/builtin-variants/sw-document.css +13 -0
- package/css/builtin-variants/tw-conditional.css +187 -0
- package/css/builtin-variants/tw-dynamic-selector.css +49 -0
- package/css/builtin-variants/tw-relationship.css +41 -0
- package/css/builtin-variants/tw-state.css +159 -0
- package/css/builtin-variants/tw-structural.css +121 -0
- package/css/builtins.css +111 -0
- package/css/preflight.css +401 -0
- package/css/templates.css +40 -0
- package/css/theme.css +546 -0
- package/css/utilities.css +9 -0
- package/dist/class-object-D24FFYqO.js +6 -0
- package/dist/class-object-D24FFYqO.js.map +1 -0
- package/dist/class-object-D7ZGJOf_.d.ts +9 -0
- package/dist/class-string-CQHnc9GN.d.ts +9 -0
- package/dist/class-string-Db8-oI4q.js +6 -0
- package/dist/class-string-Db8-oI4q.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js +2 -0
- package/dist/css.d.ts +100 -0
- package/dist/css.js +143 -0
- package/dist/css.js.map +1 -0
- package/dist/cva-BwX07CFw.js +204 -0
- package/dist/cva-BwX07CFw.js.map +1 -0
- package/dist/cva-DSpDNBYi.d.ts +9 -0
- package/dist/development-DttPQc71.d.ts +27 -0
- package/dist/development-J-JCSIm0.js +111 -0
- package/dist/development-J-JCSIm0.js.map +1 -0
- package/dist/frameworks/alpine.d.ts +20 -0
- package/dist/frameworks/alpine.js +18 -0
- package/dist/frameworks/alpine.js.map +1 -0
- package/dist/frameworks/astro.d.ts +3 -0
- package/dist/frameworks/astro.js +1 -0
- package/dist/frameworks/lit.d.ts +21 -0
- package/dist/frameworks/lit.js +38 -0
- package/dist/frameworks/lit.js.map +1 -0
- package/dist/frameworks/preact.d.ts +3 -0
- package/dist/frameworks/preact.js +1 -0
- package/dist/frameworks/qwik.d.ts +3 -0
- package/dist/frameworks/qwik.js +1 -0
- package/dist/frameworks/react.d.ts +10 -0
- package/dist/frameworks/react.js +6 -0
- package/dist/frameworks/react.js.map +1 -0
- package/dist/frameworks/solid.d.ts +3 -0
- package/dist/frameworks/solid.js +1 -0
- package/dist/frameworks/svelte.d.ts +3 -0
- package/dist/frameworks/svelte.js +1 -0
- package/dist/frameworks/vanilla.d.ts +27 -0
- package/dist/frameworks/vanilla.js +3 -0
- package/dist/frameworks/vue.d.ts +3 -0
- package/dist/frameworks/vue.js +1 -0
- package/dist/index-RwVFpxhE.d.ts +815 -0
- package/dist/macro/index.d.ts +2 -0
- package/dist/macro/index.js +1 -0
- package/dist/module-css.d.ts +30 -0
- package/dist/module-css.js +23 -0
- package/dist/module-css.js.map +1 -0
- package/dist/runtime/class-name-object-development.d.ts +10 -0
- package/dist/runtime/class-name-object-development.js +18 -0
- package/dist/runtime/class-name-object-development.js.map +1 -0
- package/dist/runtime/class-name-object.d.ts +16 -0
- package/dist/runtime/class-name-object.js +31 -0
- package/dist/runtime/class-name-object.js.map +1 -0
- package/dist/runtime/class-object-development.d.ts +10 -0
- package/dist/runtime/class-object-development.js +18 -0
- package/dist/runtime/class-object-development.js.map +1 -0
- package/dist/runtime/class-object.d.ts +16 -0
- package/dist/runtime/class-object.js +31 -0
- package/dist/runtime/class-object.js.map +1 -0
- package/dist/runtime/class-string-development.d.ts +10 -0
- package/dist/runtime/class-string-development.js +18 -0
- package/dist/runtime/class-string-development.js.map +1 -0
- package/dist/runtime/class-string.d.ts +16 -0
- package/dist/runtime/class-string.js +31 -0
- package/dist/runtime/class-string.js.map +1 -0
- package/dist/shared-B9IQXU6P.d.ts +32 -0
- package/dist/style-BV4ctkni.js +78 -0
- package/dist/style-BV4ctkni.js.map +1 -0
- package/dist/style-fTQbsVWZ.js +41 -0
- package/dist/style-fTQbsVWZ.js.map +1 -0
- package/docs/agents.md +76 -0
- package/docs/at-rules/apply.md +93 -0
- package/docs/at-rules/custom-variant.md +127 -0
- package/docs/at-rules/index.md +75 -0
- package/docs/at-rules/plugin.md +71 -0
- package/docs/at-rules/registry-directives.md +181 -0
- package/docs/at-rules/slot.md +58 -0
- package/docs/at-rules/stillwind-css-template.md +126 -0
- package/docs/at-rules/stillwind-property.md +133 -0
- package/docs/at-rules/stillwind-registry.md +115 -0
- package/docs/at-rules/stillwind-require-properties.md +91 -0
- package/docs/at-rules/stillwind-slot.md +85 -0
- package/docs/at-rules/stillwind-undef-arbitrary-property.md +75 -0
- package/docs/at-rules/stillwind-undef-utility.md +87 -0
- package/docs/at-rules/stillwind-undef-variant.md +55 -0
- package/docs/at-rules/theme.md +304 -0
- package/docs/at-rules/utility.md +286 -0
- package/docs/at-rules/variant.md +91 -0
- package/docs/concepts/css-ordering.md +245 -0
- package/docs/concepts/how-styles-compile.md +132 -0
- package/docs/configuration.md +298 -0
- package/docs/errors/SW01001.md +51 -0
- package/docs/errors/SW01002.md +52 -0
- package/docs/errors/SW01003.md +69 -0
- package/docs/errors/SW02001.md +23 -0
- package/docs/errors/SW02002.md +51 -0
- package/docs/errors/SW03001.md +71 -0
- package/docs/errors/SW03002.md +79 -0
- package/docs/errors/SW03003.md +36 -0
- package/docs/errors/SW10001.md +34 -0
- package/docs/errors/SW10002.md +36 -0
- package/docs/errors/SW10003.md +30 -0
- package/docs/errors/SW10004.md +39 -0
- package/docs/errors/SW10005.md +35 -0
- package/docs/errors/SW11001.md +37 -0
- package/docs/errors/SW11002.md +65 -0
- package/docs/errors/SW11003.md +20 -0
- package/docs/errors/SW12001.md +43 -0
- package/docs/errors/SW12002.md +42 -0
- package/docs/errors/SW13001.md +35 -0
- package/docs/errors/SW13002.md +33 -0
- package/docs/errors/SW13003.md +18 -0
- package/docs/errors/SW13004.md +45 -0
- package/docs/errors/SW14001.md +44 -0
- package/docs/errors/SW14002.md +47 -0
- package/docs/errors/SW14003.md +38 -0
- package/docs/errors/SW14004.md +48 -0
- package/docs/errors/SW14005.md +51 -0
- package/docs/errors/SW14006.md +19 -0
- package/docs/errors/SW14007.md +35 -0
- package/docs/errors/SW14008.md +41 -0
- package/docs/errors/SW15001.md +18 -0
- package/docs/errors/SW15002.md +19 -0
- package/docs/errors/SW15003.md +16 -0
- package/docs/errors/SW30001.md +21 -0
- package/docs/errors/SW30002.md +18 -0
- package/docs/errors/SW30003.md +17 -0
- package/docs/errors/SW30004.md +18 -0
- package/docs/errors/SW31001.md +20 -0
- package/docs/errors/SW31002.md +17 -0
- package/docs/errors/SW31003.md +18 -0
- package/docs/errors/SW31004.md +20 -0
- package/docs/errors/SW31005.md +18 -0
- package/docs/errors/SW31006.md +17 -0
- package/docs/errors/SW31007.md +18 -0
- package/docs/errors/SW31008.md +16 -0
- package/docs/errors/SW31009.md +18 -0
- package/docs/errors/SW31010.md +16 -0
- package/docs/errors/SW31011.md +17 -0
- package/docs/errors/SW32001.md +18 -0
- package/docs/errors/SW32002.md +45 -0
- package/docs/errors/SW32003.md +43 -0
- package/docs/errors/SW32004.md +17 -0
- package/docs/errors/SW32005.md +40 -0
- package/docs/errors/SW32006.md +18 -0
- package/docs/errors/SW32007.md +20 -0
- package/docs/errors/SW33001.md +17 -0
- package/docs/errors/SW33002.md +17 -0
- package/docs/errors/SW33003.md +17 -0
- package/docs/errors/SW33004.md +17 -0
- package/docs/errors/SW33005.md +20 -0
- package/docs/errors/SW34001.md +18 -0
- package/docs/errors/SW34002.md +17 -0
- package/docs/errors/SW34003.md +18 -0
- package/docs/errors/SW90001.md +17 -0
- package/docs/errors/SW90002.md +18 -0
- package/docs/errors/SW90003.md +17 -0
- package/docs/errors/SW90004.md +17 -0
- package/docs/errors/SW90005.md +16 -0
- package/docs/errors/SW90006.md +17 -0
- package/docs/errors/SW90007.md +17 -0
- package/docs/errors/SW90008.md +17 -0
- package/docs/errors/index.md +125 -0
- package/docs/guides/animations.md +73 -0
- package/docs/guides/design-systems.md +119 -0
- package/docs/guides/element-relationships.md +136 -0
- package/docs/guides/lint-adoption.md +128 -0
- package/docs/guides/migrating-from-css.md +126 -0
- package/docs/guides/migrating-from-tailwind.md +179 -0
- package/docs/guides/recommended-practices.md +338 -0
- package/docs/guides/responsive-styles.md +103 -0
- package/docs/guides/reusable-styles.md +110 -0
- package/docs/guides/style.md +181 -0
- package/docs/guides/tailwind-compatibility.md +126 -0
- package/docs/guides/view-transitions.md +84 -0
- package/docs/guides/web-components.md +216 -0
- package/docs/index.md +136 -0
- package/docs/integrations.md +190 -0
- package/docs/lints/ambiguous-style-base-order.md +50 -0
- package/docs/lints/bypassed-undefinition.md +50 -0
- package/docs/lints/clamped-value.md +44 -0
- package/docs/lints/conflicting-provider-properties.md +47 -0
- package/docs/lints/conflicting-utilities.md +55 -0
- package/docs/lints/document-scoped-selector.md +45 -0
- package/docs/lints/duplicate-definition.md +44 -0
- package/docs/lints/duplicate-utility.md +44 -0
- package/docs/lints/duplicate-view-transition-name.md +45 -0
- package/docs/lints/ignored-definition-condition.md +51 -0
- package/docs/lints/ignored-tailwind-feature.md +62 -0
- package/docs/lints/incompatible-property-value.md +60 -0
- package/docs/lints/incompatible-theme-value.md +46 -0
- package/docs/lints/index.md +140 -0
- package/docs/lints/ineffective-anchor-scope.md +46 -0
- package/docs/lints/interfering-imported-style-base.md +57 -0
- package/docs/lints/invalid-animation-option.md +47 -0
- package/docs/lints/invalid-css-directive.md +43 -0
- package/docs/lints/invalid-css-import.md +43 -0
- package/docs/lints/invalid-css-input.md +45 -0
- package/docs/lints/invalid-cva-config.md +46 -0
- package/docs/lints/invalid-cva-input.md +50 -0
- package/docs/lints/invalid-keyframes-definition.md +47 -0
- package/docs/lints/invalid-keyframes-use.md +47 -0
- package/docs/lints/invalid-keyframes-variant.md +48 -0
- package/docs/lints/invalid-lint-suppression.md +47 -0
- package/docs/lints/invalid-marker-use.md +53 -0
- package/docs/lints/invalid-media-query.md +52 -0
- package/docs/lints/invalid-ref-input.md +49 -0
- package/docs/lints/invalid-rule-group-input.md +58 -0
- package/docs/lints/invalid-runtime-condition.md +67 -0
- package/docs/lints/invalid-style-composition.md +52 -0
- package/docs/lints/invalid-style-input.md +47 -0
- package/docs/lints/invalid-theme-reference.md +52 -0
- package/docs/lints/invalid-utility.md +44 -0
- package/docs/lints/invalid-variant.md +45 -0
- package/docs/lints/invalid-view-transition-definition.md +46 -0
- package/docs/lints/invalid-view-transition-use.md +46 -0
- package/docs/lints/invalid-view-transition-variant.md +51 -0
- package/docs/lints/mismatched-framework-import.md +47 -0
- package/docs/lints/missing-document-target.md +44 -0
- package/docs/lints/missing-ref-attachment.md +44 -0
- package/docs/lints/missing-view-transition-name.md +46 -0
- package/docs/lints/mutating-macro-argument.md +48 -0
- package/docs/lints/no-arbitrary-breakpoints.md +50 -0
- package/docs/lints/no-arbitrary-colors.md +51 -0
- package/docs/lints/no-arbitrary-spacing.md +57 -0
- package/docs/lints/no-class-property.md +58 -0
- package/docs/lints/no-important.md +50 -0
- package/docs/lints/no-restricted-declarations.md +76 -0
- package/docs/lints/no-restricted-length-units.md +73 -0
- package/docs/lints/no-restricted-theme-tokens.md +73 -0
- package/docs/lints/no-restricted-utilities.md +73 -0
- package/docs/lints/prefer-canonical-utilities.md +69 -0
- package/docs/lints/prefer-direct-styling.md +47 -0
- package/docs/lints/prefer-explicit-nesting-selector.md +42 -0
- package/docs/lints/prefer-logical-properties.md +49 -0
- package/docs/lints/prefer-sorted-utilities.md +46 -0
- package/docs/lints/prefer-typed-relationships.md +48 -0
- package/docs/lints/prefer-typed-variables.md +43 -0
- package/docs/lints/prefer-variant-directive.md +59 -0
- package/docs/lints/redundant-variant.md +50 -0
- package/docs/lints/repeated-nesting-selector.md +59 -0
- package/docs/lints/runtime-condition-requires-css-if.md +59 -0
- package/docs/lints/split-view-transition-class.md +47 -0
- package/docs/lints/suspending-macro-argument.md +46 -0
- package/docs/lints/unknown-utility.md +47 -0
- package/docs/lints/unknown-variant.md +42 -0
- package/docs/lints/unsatisfiable-variants.md +42 -0
- package/docs/lints/unused-lint-suppression.md +57 -0
- package/docs/lints/unverified-style-base.md +64 -0
- package/docs/macros/anchor-scope.md +90 -0
- package/docs/macros/css.md +68 -0
- package/docs/macros/cva.md +153 -0
- package/docs/macros/index.md +30 -0
- package/docs/macros/keyframes.md +98 -0
- package/docs/macros/media.md +65 -0
- package/docs/macros/ref/as-anchor.md +70 -0
- package/docs/macros/ref/as-container.md +64 -0
- package/docs/macros/ref/at.md +68 -0
- package/docs/macros/ref/condition.md +86 -0
- package/docs/macros/ref/in.md +81 -0
- package/docs/macros/ref/index.md +115 -0
- package/docs/macros/ref/position-anchor.md +64 -0
- package/docs/macros/style.md +185 -0
- package/docs/macros/view-transition.md +159 -0
- package/docs/utilities.md +35 -0
- package/docs/why.md +144 -0
- package/index.css +7 -0
- package/package.json +135 -8
- package/skills/migrate-to-stillwind/SKILL.md +81 -0
- package/skills/setup-stillwind/SKILL.md +51 -0
- package/skills/stillwind/SKILL.md +54 -0
- package/index.js +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW13004: CSS nesting limit exceeded"
|
|
3
|
+
description: "CSS rules or functions in your stylesheet are nested too deeply."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW13004: CSS nesting limit exceeded
|
|
7
|
+
|
|
8
|
+
This error occurs when blocks or functions in your stylesheet are nested deeper
|
|
9
|
+
than the compiler supports. The message gives the limit and the position where
|
|
10
|
+
the nesting exceeds it.
|
|
11
|
+
|
|
12
|
+
## Flatten selectors
|
|
13
|
+
|
|
14
|
+
Replace nested selectors with their full selector. For example:
|
|
15
|
+
|
|
16
|
+
```css
|
|
17
|
+
.card {
|
|
18
|
+
& .content {
|
|
19
|
+
& .title {
|
|
20
|
+
color: blue;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The same rule needs no nested blocks:
|
|
27
|
+
|
|
28
|
+
```css
|
|
29
|
+
.card .content .title {
|
|
30
|
+
color: blue;
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This small example is within the limit. Apply the same transformation to the
|
|
35
|
+
deeply nested construct that the error identifies.
|
|
36
|
+
|
|
37
|
+
## How to fix
|
|
38
|
+
|
|
39
|
+
- Flatten nested rules, for example by writing the full selector instead of
|
|
40
|
+
nesting it.
|
|
41
|
+
- Split a deeply nested value, such as many `calc()` calls inside each other,
|
|
42
|
+
into custom properties.
|
|
43
|
+
|
|
44
|
+
Splitting the stylesheet into files does not help, because the limit applies to
|
|
45
|
+
one construct.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14001: Missing utilities slot"
|
|
3
|
+
description: "Your stylesheet does not place the generated utility CSS anywhere."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14001: Missing utilities slot
|
|
7
|
+
|
|
8
|
+
This error occurs when your stylesheet has no `@stillwind-slot utilities;`. The
|
|
9
|
+
slot marks where the compiler writes the CSS of the utilities that you use. The
|
|
10
|
+
default stylesheet contains it, so the error usually appears when a stylesheet
|
|
11
|
+
imports only some parts of Stillwind.
|
|
12
|
+
|
|
13
|
+
## Reported
|
|
14
|
+
|
|
15
|
+
```css
|
|
16
|
+
@import "stillwind/theme.css" layer(theme);
|
|
17
|
+
@import "stillwind/builtins.css";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
style("p-4");
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
> SW14001: generated utilities require an @stillwind-slot utilities; in the CSS entry graph
|
|
25
|
+
|
|
26
|
+
## Fixed
|
|
27
|
+
|
|
28
|
+
```css
|
|
29
|
+
@import "stillwind/theme.css" layer(theme);
|
|
30
|
+
@import "stillwind/utilities.css" layer(utilities);
|
|
31
|
+
@import "stillwind/builtins.css";
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
style("p-4");
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## How to fix
|
|
39
|
+
|
|
40
|
+
- Import `stillwind/utilities.css`, which contains the slot, as in the example.
|
|
41
|
+
- Or write `@stillwind-slot utilities;` where the utilities should go.
|
|
42
|
+
- If you do not need a custom selection, import `stillwind` instead.
|
|
43
|
+
|
|
44
|
+
Other slots that a feature needs are reported as [SW14002](SW14002.md).
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14002: Missing support slot"
|
|
3
|
+
description: "Your stylesheet has no place for CSS that a feature needs, such as keyframes."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14002: Missing support slot
|
|
7
|
+
|
|
8
|
+
This error occurs when the compiler generates supporting CSS, such as the
|
|
9
|
+
`@keyframes` of an animation, but your stylesheet has no slot for it. The message
|
|
10
|
+
names the missing slot.
|
|
11
|
+
|
|
12
|
+
## Reported
|
|
13
|
+
|
|
14
|
+
```css
|
|
15
|
+
@import "stillwind/utilities.css" layer(utilities);
|
|
16
|
+
@import "stillwind/builtins.css";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
const fade = style.keyframes({
|
|
21
|
+
to: "opacity-0",
|
|
22
|
+
});
|
|
23
|
+
style(fade(""));
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> SW14002: generated support requires an @stillwind-slot keyframes; in the CSS entry graph
|
|
27
|
+
|
|
28
|
+
## Fixed
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
@import "stillwind/utilities.css" layer(utilities);
|
|
32
|
+
@import "stillwind/builtins.css";
|
|
33
|
+
@stillwind-slot keyframes;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
const fade = style.keyframes({
|
|
38
|
+
to: "opacity-0",
|
|
39
|
+
});
|
|
40
|
+
style(fade(""));
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## How to fix
|
|
44
|
+
|
|
45
|
+
- Add the slot that the message names, as in the example. `stillwind/theme.css`
|
|
46
|
+
contains the `theme` and `keyframes` slots.
|
|
47
|
+
- If you do not need a custom selection, import `stillwind` instead.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14003: Malformed property requirement"
|
|
3
|
+
description: "An @stillwind-require-properties directive in your stylesheet has invalid syntax."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14003: Malformed property requirement
|
|
7
|
+
|
|
8
|
+
This error occurs when an `@stillwind-require-properties` directive in your
|
|
9
|
+
stylesheet has invalid syntax, such as an incomplete custom property name. The
|
|
10
|
+
directive lists the registered custom properties that a utility needs.
|
|
11
|
+
|
|
12
|
+
## Reported
|
|
13
|
+
|
|
14
|
+
```css
|
|
15
|
+
.card {
|
|
16
|
+
@stillwind-require-properties tw-rotate-x;
|
|
17
|
+
transform: var(--tw-rotate-x);
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
> SW14003: invalid Stillwind property requirement at byte 9660
|
|
22
|
+
|
|
23
|
+
## Fixed
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
.card {
|
|
27
|
+
@stillwind-require-properties --tw-rotate-x;
|
|
28
|
+
transform: var(--tw-rotate-x);
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## How to fix
|
|
33
|
+
|
|
34
|
+
Write each name in full, including the leading `--`, as in the example.
|
|
35
|
+
|
|
36
|
+
A valid name that no registration provides is reported as
|
|
37
|
+
[SW14005](SW14005.md). An invalid directive inside a utility from a
|
|
38
|
+
plugin is reported as [SW14004](SW14004.md).
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14004: Malformed utility property requirement"
|
|
3
|
+
description: "A utility that you use has an @stillwind-require-properties directive with invalid syntax."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14004: Malformed utility property requirement
|
|
7
|
+
|
|
8
|
+
This error occurs when you use a utility whose definition contains an invalid
|
|
9
|
+
`@stillwind-require-properties` directive. The message names the utility and the
|
|
10
|
+
position in its definition. The definition can be in your stylesheet or in a
|
|
11
|
+
plugin.
|
|
12
|
+
|
|
13
|
+
## Reported
|
|
14
|
+
|
|
15
|
+
```css
|
|
16
|
+
@utility spin-x {
|
|
17
|
+
@stillwind-require-properties tw-rotate-x;
|
|
18
|
+
transform: var(--tw-rotate-x);
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
style("spin-x");
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> SW14004: utility `spin-x` has an invalid property requirement at body byte 0
|
|
27
|
+
|
|
28
|
+
## Fixed
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
@utility spin-x {
|
|
32
|
+
@stillwind-require-properties --tw-rotate-x;
|
|
33
|
+
transform: var(--tw-rotate-x);
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
style("spin-x");
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## How to fix
|
|
42
|
+
|
|
43
|
+
- Write the full custom property name, including the leading `--`. In the
|
|
44
|
+
example, change `tw-rotate-x` to `--tw-rotate-x`.
|
|
45
|
+
- If the definition comes from a plugin, report the utility and the plugin
|
|
46
|
+
version to the plugin's maintainer. Turning off a lint rule does not help.
|
|
47
|
+
|
|
48
|
+
[SW14003](SW14003.md) covers the same mistake in an ordinary CSS rule.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14005: Required property is unregistered"
|
|
3
|
+
description: "A utility requires a custom property that no @stillwind-property registers."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14005: Required property is unregistered
|
|
7
|
+
|
|
8
|
+
This error occurs when a utility requires a custom property, but no
|
|
9
|
+
`@stillwind-property` in the loaded stylesheets registers it. The registration
|
|
10
|
+
provides the initial value and other support CSS. Assigning the property in a
|
|
11
|
+
rule does not register it.
|
|
12
|
+
|
|
13
|
+
## Reported
|
|
14
|
+
|
|
15
|
+
```css
|
|
16
|
+
@utility spin-x {
|
|
17
|
+
@stillwind-require-properties --spin-angle;
|
|
18
|
+
rotate: var(--spin-angle);
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
style("spin-x");
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> SW14005: required custom property `--spin-angle` has no `@stillwind-property` registration
|
|
27
|
+
|
|
28
|
+
## Fixed
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
@stillwind-property --spin-angle {
|
|
32
|
+
syntax: "<angle>";
|
|
33
|
+
inherits: false;
|
|
34
|
+
initial-value: 0deg;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@utility spin-x {
|
|
38
|
+
@stillwind-require-properties --spin-angle;
|
|
39
|
+
rotate: var(--spin-angle);
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
style("spin-x");
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## How to fix
|
|
48
|
+
|
|
49
|
+
- Register the property with `@stillwind-property`, as in the example.
|
|
50
|
+
- If the property comes from Stillwind or a plugin, check that the stylesheet
|
|
51
|
+
imports the file that registers it, and check the spelling of the name.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14006: Property-usage parse failure"
|
|
3
|
+
description: "The compiler cannot parse CSS while collecting custom-property usage."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14006: Property-usage parse failure
|
|
7
|
+
|
|
8
|
+
This error occurs when the compiler cannot parse the CSS that it scans for
|
|
9
|
+
custom-property usage. It needs that usage to select property registrations and
|
|
10
|
+
initial values for the output stylesheet.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
Correct the malformed CSS in the stylesheet or utility definition that produced
|
|
15
|
+
it. If the authored CSS is valid, report a small reproduction and the Stillwind
|
|
16
|
+
and plugin versions.
|
|
17
|
+
|
|
18
|
+
Syntax errors found while the stylesheet loads usually produce
|
|
19
|
+
[SW13001](SW13001.md) or [SW13002](SW13002.md) instead.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14007: Malformed theme reference"
|
|
3
|
+
description: "A --theme() call in your stylesheet has invalid syntax."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14007: Malformed theme reference
|
|
7
|
+
|
|
8
|
+
This error occurs when a `--theme()` call in your stylesheet has invalid syntax,
|
|
9
|
+
such as no token name.
|
|
10
|
+
|
|
11
|
+
## Reported
|
|
12
|
+
|
|
13
|
+
```css
|
|
14
|
+
.card {
|
|
15
|
+
color: --theme();
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
> SW14007: invalid --theme() reference at value byte 9667: invalid --theme() property `` at byte 0
|
|
20
|
+
|
|
21
|
+
## Fixed
|
|
22
|
+
|
|
23
|
+
```css
|
|
24
|
+
.card {
|
|
25
|
+
color: --theme(--color-blue-500);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## How to fix
|
|
30
|
+
|
|
31
|
+
Write the full name of a theme token, with an optional fallback after a comma,
|
|
32
|
+
such as `--theme(--color-brand, blue)`.
|
|
33
|
+
|
|
34
|
+
A valid reference to a token that the theme does not define is reported by
|
|
35
|
+
[invalid-theme-reference](../lints/invalid-theme-reference.md) instead.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW14008: Circular utility application"
|
|
3
|
+
description: "A utility applies itself directly or through another utility."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW14008: Circular utility application
|
|
7
|
+
|
|
8
|
+
This error occurs when an `@apply` dependency returns to a utility that is already
|
|
9
|
+
being expanded. The cycle can pass through several utilities.
|
|
10
|
+
|
|
11
|
+
## Reported
|
|
12
|
+
|
|
13
|
+
```css
|
|
14
|
+
@utility card {
|
|
15
|
+
@apply card;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.card {
|
|
19
|
+
@apply card;
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
> SW14008: circular @apply dependency for utility `card`
|
|
24
|
+
|
|
25
|
+
## Fixed
|
|
26
|
+
|
|
27
|
+
```css
|
|
28
|
+
@utility card {
|
|
29
|
+
display: block;
|
|
30
|
+
padding: 1rem;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.card {
|
|
34
|
+
@apply card;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## How to fix
|
|
39
|
+
|
|
40
|
+
Remove the `@apply` that closes the dependency cycle. A shared utility can contain
|
|
41
|
+
the common declarations, provided that it does not apply the utilities that use it.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW15001: CSS offset exceeds source coordinates"
|
|
3
|
+
description: "A stylesheet is too large for the compiler's source positions."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW15001: CSS offset exceeds source coordinates
|
|
7
|
+
|
|
8
|
+
This error occurs when a stylesheet is so large that a position in it does not
|
|
9
|
+
fit in the compiler's 32-bit source positions, which allow about 4 GB. Such a
|
|
10
|
+
stylesheet is almost always generated by mistake.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- Find the tool or plugin that generates the stylesheet, and limit its output.
|
|
15
|
+
- Split the stylesheet into several files.
|
|
16
|
+
|
|
17
|
+
If the stylesheet has a normal size, report the error as a bug with the input
|
|
18
|
+
sizes.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW15002: Rendered source is too large"
|
|
3
|
+
description: "A compiled module is too large for the compiler's source positions."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW15002: Rendered source is too large
|
|
7
|
+
|
|
8
|
+
This error occurs when the compiled code of one module is so large that its
|
|
9
|
+
positions do not fit in the compiler's 32-bit source positions. The source may be
|
|
10
|
+
small while the compiled code is not, for example when a style lists a very large
|
|
11
|
+
number of options.
|
|
12
|
+
|
|
13
|
+
## How to fix
|
|
14
|
+
|
|
15
|
+
- Split the module into smaller modules.
|
|
16
|
+
- Reduce the number of style combinations that one call generates.
|
|
17
|
+
|
|
18
|
+
If the module has a normal size, report the error as a bug with the size of the
|
|
19
|
+
input and the output.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW15003: Source size or offset is too large"
|
|
3
|
+
description: "A source file or a position in it is too large for the compiler's source positions."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW15003: Source size or offset is too large
|
|
7
|
+
|
|
8
|
+
This error occurs when a source file, or a position that the compiler is asked to
|
|
9
|
+
read, does not fit in the compiler's 32-bit source positions. The message shows
|
|
10
|
+
the value and the operation.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- Split a very large source file into smaller files.
|
|
15
|
+
- If the file has a normal size, the position came from an integration or a tool.
|
|
16
|
+
Report the error with the operation from the message.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW30001: TypeScript checker facts required"
|
|
3
|
+
description: "The compiler needs type information for a value, but the integration did not provide it."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW30001: TypeScript checker facts required
|
|
7
|
+
|
|
8
|
+
This error occurs when the compiler needs TypeScript type information to compile
|
|
9
|
+
a value, but the integration compiled the file without it. Examples are a ref
|
|
10
|
+
chosen by a condition, or an animation imported from another module. The message
|
|
11
|
+
names the kind of value.
|
|
12
|
+
|
|
13
|
+
## How to fix
|
|
14
|
+
|
|
15
|
+
- With an official integration, update the Stillwind packages. If the error
|
|
16
|
+
remains, report it with the file that causes it.
|
|
17
|
+
- In your own integration, run the type queries before compilation, and pass
|
|
18
|
+
their results with the same revision of the source.
|
|
19
|
+
|
|
20
|
+
Type information that exists but does not match the source is reported as
|
|
21
|
+
[SW30002](SW30002.md).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW30002: Invalid or stale TypeScript facts"
|
|
3
|
+
description: "The type information from the integration does not match the source or the compiler version."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW30002: Invalid or stale TypeScript facts
|
|
7
|
+
|
|
8
|
+
This error occurs when the type information that the integration provides is
|
|
9
|
+
invalid, or belongs to another revision of the source. For example, information
|
|
10
|
+
from an older editor buffer does not apply to the edited text, even if the file
|
|
11
|
+
path is the same.
|
|
12
|
+
|
|
13
|
+
## How to fix
|
|
14
|
+
|
|
15
|
+
- With an official integration, check that all `@stillwind/*` packages have the
|
|
16
|
+
same version, then update them. If the error remains, report it.
|
|
17
|
+
- In your own integration, collect the type information again after every source
|
|
18
|
+
change, and use the host and native packages from the same release.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW30003: Incompatible symbolic fact kinds"
|
|
3
|
+
description: "The type information describes a value as the wrong kind, such as a keyframes definition as a ref."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW30003: Incompatible symbolic fact kinds
|
|
7
|
+
|
|
8
|
+
This error occurs when the type information describes a value as a different kind
|
|
9
|
+
of definition than the code uses it as. For example, it encodes a keyframes
|
|
10
|
+
definition as a ref. The compiler cannot read the fields of one kind as another.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, update the Stillwind packages. If the error
|
|
15
|
+
remains, report it with the declaration and the code that uses it.
|
|
16
|
+
- In your own integration, fix the conversion from TypeScript types to the
|
|
17
|
+
compiler's facts, and collect the facts again.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW30004: Checker expression unavailable"
|
|
3
|
+
description: "The integration cannot find the code that TypeScript needs to check for an expression."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW30004: Checker expression unavailable
|
|
7
|
+
|
|
8
|
+
This error occurs when the compiler needs type information for an expression, but
|
|
9
|
+
the integration cannot find that expression in the code that TypeScript checks.
|
|
10
|
+
This usually happens in Vue, Svelte, or Astro components, where a converter
|
|
11
|
+
produces the checked code. The message names the operation.
|
|
12
|
+
|
|
13
|
+
## How to fix
|
|
14
|
+
|
|
15
|
+
- With an official integration, update the Stillwind packages and the framework
|
|
16
|
+
packages. If the error remains, report it with the component.
|
|
17
|
+
- In your own integration, keep the mapping between the original expressions and
|
|
18
|
+
the checked code, including for unsaved editor buffers.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31001: Invalid projection map"
|
|
3
|
+
description: "The mapping between a component and its converted script is malformed."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31001: Invalid projection map
|
|
7
|
+
|
|
8
|
+
This error occurs when the map that links a Vue, Svelte, or Astro component to its
|
|
9
|
+
converted script is malformed. For example, a range in the map extends past the
|
|
10
|
+
end of the text that it refers to. The message describes the problem.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, update the Stillwind packages and the framework
|
|
15
|
+
packages. If the error remains, report it with the component.
|
|
16
|
+
- In your own converter, check each range against the exact texts that you pass
|
|
17
|
+
to the compiler.
|
|
18
|
+
|
|
19
|
+
A valid map that cannot point to one original range is reported as
|
|
20
|
+
[SW31002](SW31002.md).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31002: Ambiguous or missing original range"
|
|
3
|
+
description: "A Stillwind expression in a converted script maps to no place, or several places, in the component."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31002: Ambiguous or missing original range
|
|
7
|
+
|
|
8
|
+
This error occurs when a Stillwind expression in the converted script of a
|
|
9
|
+
component maps to no place in the original component, or to more than one place.
|
|
10
|
+
The compiler must edit the original source, so it needs exactly one location.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, update the Stillwind packages and the framework
|
|
15
|
+
packages. If the error remains, report it with the component.
|
|
16
|
+
- In your own converter, map the whole expression. A mapping for a nearby token
|
|
17
|
+
is not enough.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31003: Projection content mismatch"
|
|
3
|
+
description: "The converted script and the component contain different text at a mapped location."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31003: Projection content mismatch
|
|
7
|
+
|
|
8
|
+
This error occurs when the converted script and the original component contain
|
|
9
|
+
different text at a location that the map links. The compiler would edit the
|
|
10
|
+
wrong text, so it stops.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, save the file and build again, in case the
|
|
15
|
+
editor passed an old buffer. If the error remains, report it with the
|
|
16
|
+
component.
|
|
17
|
+
- In your own converter, check rewrites and escaping of the mapped text, and do
|
|
18
|
+
not reuse a map for a changed buffer.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31004: Invalid converter output syntax"
|
|
3
|
+
description: "The script that a converter generated from a valid component has a syntax error."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31004: Invalid converter output syntax
|
|
7
|
+
|
|
8
|
+
This error occurs when a Vue, Svelte, or Astro component is valid, but the script
|
|
9
|
+
that the converter generates from it cannot be parsed. The message contains the
|
|
10
|
+
explanation from the parser.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, update the Stillwind packages and the framework
|
|
15
|
+
packages. If the error remains, report it with the component.
|
|
16
|
+
- In your own converter, fix the generated code, or select the right language
|
|
17
|
+
for the parser.
|
|
18
|
+
|
|
19
|
+
A syntax error in the component itself is reported as
|
|
20
|
+
[SW10002](SW10002.md) instead.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31005: Component projection preparation failed"
|
|
3
|
+
description: "The converter for a Vue, Svelte, or Astro component failed before compilation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31005: Component projection preparation failed
|
|
7
|
+
|
|
8
|
+
This error occurs when the converter that prepares a Vue, Svelte, or Astro
|
|
9
|
+
component for compilation or type checking fails. The message contains the
|
|
10
|
+
explanation from the converter.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, check that the framework and Stillwind package
|
|
15
|
+
versions are supported, and update them. If the error remains, report it with
|
|
16
|
+
the component.
|
|
17
|
+
- In your own integration, report the converter failure instead of compiling a
|
|
18
|
+
partly prepared component.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31006: Invalid UTF-16 offset"
|
|
3
|
+
description: "A requested UTF-16 offset is outside the source or inside a character."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31006: Invalid UTF-16 offset
|
|
7
|
+
|
|
8
|
+
This error occurs when an integration or a tool asks for a UTF-16 offset that is
|
|
9
|
+
not a valid position in the source, such as an offset past the end. UTF-16
|
|
10
|
+
offsets count code units, not bytes.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, report the error with the file and the action
|
|
15
|
+
that caused it.
|
|
16
|
+
- In your own integration, use offsets from the same revision of the source, and
|
|
17
|
+
convert explicitly between byte offsets and UTF-16 offsets.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31007: Invalid UTF-16 position"
|
|
3
|
+
description: "A requested line and column do not exist in the source."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31007: Invalid UTF-16 position
|
|
7
|
+
|
|
8
|
+
This error occurs when an integration or a tool asks for a line and column that
|
|
9
|
+
do not exist in the source. Lines count from zero, and columns count UTF-16 code
|
|
10
|
+
units from zero.
|
|
11
|
+
|
|
12
|
+
## How to fix
|
|
13
|
+
|
|
14
|
+
- With an official integration, report the error with the file and the action
|
|
15
|
+
that caused it.
|
|
16
|
+
- In your own integration, convert positions from one-based editor numbers, and
|
|
17
|
+
compute them again after each edit. Do not use positions in the converted
|
|
18
|
+
script as positions in the original component.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SW31008: Invalid UTF-8 offset"
|
|
3
|
+
description: "A requested byte offset is outside the source or inside a multibyte character."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SW31008: Invalid UTF-8 offset
|
|
7
|
+
|
|
8
|
+
This error occurs when an integration or a tool asks for a UTF-8 byte offset that
|
|
9
|
+
is outside the source, or that falls inside a character of several bytes.
|
|
10
|
+
|
|
11
|
+
## How to fix
|
|
12
|
+
|
|
13
|
+
- With an official integration, report the error with the file and the action
|
|
14
|
+
that caused it.
|
|
15
|
+
- In your own integration, use byte offsets for byte-based APIs. Convert UTF-16
|
|
16
|
+
editor positions with the source service instead of counting characters.
|