twntyx-css 1.0.8 → 1.0.9
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/README.md +42 -3
- package/llm/components/breadcrumb.json +0 -2
- package/llm/components/button.json +0 -1
- package/llm/components/checkmark.json +0 -2
- package/llm/components/progress-bullet.json +0 -2
- package/llm/components/table.json +0 -1
- package/llm/index.json +2 -2
- package/package.json +1 -1
- package/styles/animation.css +8 -8
- package/styles/collapsible.css +6 -1
- package/styles/shared.css +1 -1
- package/styles/surface.css +6 -3
- package/styles/table.css +1 -11
package/README.md
CHANGED
|
@@ -101,20 +101,59 @@ cp node_modules/twntyx-css/llm/assistants/codex/AGENTS.md ./AGENTS.md
|
|
|
101
101
|
cp node_modules/twntyx-css/llm/assistants/claude/CLAUDE.md ./CLAUDE.md
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
## Publishing
|
|
104
|
+
## Publishing a new version
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
The npm package is **`twntyx-css`**, published from the `framework/` folder. Version lives in **`framework/package.json`** (`version` field).
|
|
107
|
+
|
|
108
|
+
### 1. Bump the version
|
|
109
|
+
|
|
110
|
+
Each publish needs a **new semver** than anything already on [npm](https://www.npmjs.com/package/twntyx-css). npm will reject republishing the same version (403).
|
|
111
|
+
|
|
112
|
+
Edit `framework/package.json` and increment `version` (e.g. `1.0.8` → `1.0.9` for a patch).
|
|
113
|
+
|
|
114
|
+
### 2. Log in to npm
|
|
115
|
+
|
|
116
|
+
From any directory:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm whoami
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
If that fails, run `npm login` and use an account that is a **maintainer** of `twntyx-css`. Granular access tokens must allow **publish** for this package.
|
|
123
|
+
|
|
124
|
+
### 3. Dry run (optional)
|
|
125
|
+
|
|
126
|
+
From the **repository root**:
|
|
107
127
|
|
|
108
128
|
```bash
|
|
109
129
|
npm run pack:framework
|
|
110
130
|
```
|
|
111
131
|
|
|
112
|
-
|
|
132
|
+
This runs the same prepare step as publish and shows what would go into the tarball, without uploading.
|
|
133
|
+
|
|
134
|
+
### 4. Publish
|
|
135
|
+
|
|
136
|
+
Still from the **repository root**:
|
|
113
137
|
|
|
114
138
|
```bash
|
|
115
139
|
npm run publish:framework
|
|
116
140
|
```
|
|
117
141
|
|
|
142
|
+
That script:
|
|
143
|
+
|
|
144
|
+
1. Runs `scripts/package-framework.mjs` (syncs styles/fonts into `framework/`, rebuilds the LLM kit, validates metadata).
|
|
145
|
+
2. Runs `npm publish --access public ./framework` (uses a separate cache under `/tmp/twntyx-npm-cache`).
|
|
146
|
+
|
|
147
|
+
Publishing also triggers **`prepack`** in `framework/package.json`, which runs the prepare script again so the packed tarball matches a fresh build.
|
|
148
|
+
|
|
149
|
+
### Troubleshooting
|
|
150
|
+
|
|
151
|
+
| Symptom | Likely cause |
|
|
152
|
+
|--------|----------------|
|
|
153
|
+
| **403** — cannot publish over previously published version | Bump `framework/package.json` `version`. |
|
|
154
|
+
| **404** on `PUT` / “not in this registry” | Usually **auth**: not logged in, expired token, or token without publish rights. Fix with `npm login` or a new publish-capable token. |
|
|
155
|
+
| Prepare / validation errors | Fix LLM or assistant-guide issues, then retry; see `LLM_MAINTENANCE.md`. |
|
|
156
|
+
|
|
118
157
|
## That's it!
|
|
119
158
|
|
|
120
159
|
Your projects can now consume the twntyX theme and components. ✨
|
package/llm/index.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"llmSchemaVersion": "1.0.0",
|
|
3
|
-
"designSystemVersion": "1.0.
|
|
3
|
+
"designSystemVersion": "1.0.9",
|
|
4
4
|
"packageName": "twntyx-css",
|
|
5
5
|
"apiModel": "html-class",
|
|
6
|
-
"sourceFingerprint": "
|
|
6
|
+
"sourceFingerprint": "da5c687a1df4907a77f8f1b512ad33f27f39b7edff70707323b7590abd5d56ba",
|
|
7
7
|
"files": {
|
|
8
8
|
"schema": "schema.json",
|
|
9
9
|
"tokens": "tokens.json",
|
package/package.json
CHANGED
package/styles/animation.css
CHANGED
|
@@ -1357,7 +1357,7 @@
|
|
|
1357
1357
|
|
|
1358
1358
|
@keyframes tooltipSlideDown {
|
|
1359
1359
|
0% {
|
|
1360
|
-
transform: translate(0,
|
|
1360
|
+
transform: translate(0, 1rem);
|
|
1361
1361
|
opacity: 0;
|
|
1362
1362
|
}
|
|
1363
1363
|
100% {
|
|
@@ -1368,7 +1368,7 @@
|
|
|
1368
1368
|
|
|
1369
1369
|
@keyframes tooltipSlideUp {
|
|
1370
1370
|
0% {
|
|
1371
|
-
transform: translate(0, 1rem);
|
|
1371
|
+
transform: translate(0, -1rem);
|
|
1372
1372
|
opacity: 0;
|
|
1373
1373
|
}
|
|
1374
1374
|
100% {
|
|
@@ -1379,7 +1379,7 @@
|
|
|
1379
1379
|
|
|
1380
1380
|
@keyframes tooltipSlideRight {
|
|
1381
1381
|
0% {
|
|
1382
|
-
transform: translateX(1rem);
|
|
1382
|
+
transform: translateX(-1rem);
|
|
1383
1383
|
opacity: 0;
|
|
1384
1384
|
}
|
|
1385
1385
|
100% {
|
|
@@ -1390,7 +1390,7 @@
|
|
|
1390
1390
|
|
|
1391
1391
|
@keyframes tooltipSlideLeft {
|
|
1392
1392
|
0% {
|
|
1393
|
-
transform: translateX(
|
|
1393
|
+
transform: translateX(1rem);
|
|
1394
1394
|
opacity: 0;
|
|
1395
1395
|
}
|
|
1396
1396
|
100% {
|
|
@@ -2057,7 +2057,7 @@
|
|
|
2057
2057
|
@keyframes tooltip-in-top {
|
|
2058
2058
|
0% {
|
|
2059
2059
|
opacity: 0;
|
|
2060
|
-
transform: translateY(4px);
|
|
2060
|
+
transform: translateY(-4px);
|
|
2061
2061
|
}
|
|
2062
2062
|
100% {
|
|
2063
2063
|
opacity: 1;
|
|
@@ -2068,7 +2068,7 @@
|
|
|
2068
2068
|
@keyframes tooltip-in-bottom {
|
|
2069
2069
|
0% {
|
|
2070
2070
|
opacity: 0;
|
|
2071
|
-
transform: translateY(
|
|
2071
|
+
transform: translateY(4px);
|
|
2072
2072
|
}
|
|
2073
2073
|
100% {
|
|
2074
2074
|
opacity: 1;
|
|
@@ -2079,7 +2079,7 @@
|
|
|
2079
2079
|
@keyframes tooltip-in-left {
|
|
2080
2080
|
0% {
|
|
2081
2081
|
opacity: 0;
|
|
2082
|
-
transform: translateX(4px);
|
|
2082
|
+
transform: translateX(-4px);
|
|
2083
2083
|
}
|
|
2084
2084
|
100% {
|
|
2085
2085
|
opacity: 1;
|
|
@@ -2090,7 +2090,7 @@
|
|
|
2090
2090
|
@keyframes tooltip-in-right {
|
|
2091
2091
|
0% {
|
|
2092
2092
|
opacity: 0;
|
|
2093
|
-
transform: translateX(
|
|
2093
|
+
transform: translateX(4px);
|
|
2094
2094
|
}
|
|
2095
2095
|
100% {
|
|
2096
2096
|
opacity: 1;
|
package/styles/collapsible.css
CHANGED
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
> .collapsible-content {
|
|
13
13
|
@apply grid-rows-[1fr]!;
|
|
14
14
|
}
|
|
15
|
+
&.collapsible-card {
|
|
16
|
+
> .collapsible-header {
|
|
17
|
+
@apply rounded-b-sm;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
&.collapsible-has-arrow {
|
|
@@ -81,7 +86,7 @@
|
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
.collapsible-header {
|
|
84
|
-
@apply rounded-[calc(var(--roundness)-0.125rem-1px)] flex-1 flex items-center gap-2 cursor-pointer include-interactive text-text-default;
|
|
89
|
+
@apply rounded-[calc(var(--roundness)-0.125rem-1px)] text-left flex-1 flex items-center gap-2 cursor-pointer include-interactive text-text-default;
|
|
85
90
|
|
|
86
91
|
> span {
|
|
87
92
|
@apply flex-1;
|
package/styles/shared.css
CHANGED
|
@@ -158,7 +158,7 @@ body {
|
|
|
158
158
|
@apply relative z-10;
|
|
159
159
|
}
|
|
160
160
|
&::before {
|
|
161
|
-
@apply content-[''] rounded-[inherit] absolute z-0 inset-0 scale-y-0 translate-y-2 transition-[scale,translate,opacity] duration-75 opacity-0 bg-background-brand/15 ease-out-expo;
|
|
161
|
+
@apply content-[''] rounded-[inherit] absolute z-0 inset-0 scale-y-0 translate-y-2 transition-[scale,translate,opacity,border-radius] duration-75 opacity-0 bg-background-brand/15 ease-out-expo;
|
|
162
162
|
}
|
|
163
163
|
&:hover {
|
|
164
164
|
@apply include-hover-primary-hover;
|
package/styles/surface.css
CHANGED
|
@@ -68,12 +68,15 @@
|
|
|
68
68
|
via-75%
|
|
69
69
|
from-[0.5rem]
|
|
70
70
|
to-[calc(100%-0.5rem)]
|
|
71
|
-
to-brand-default
|
|
72
71
|
from-brand-moderate
|
|
72
|
+
to-brand-default
|
|
73
|
+
dark:from-brand-default
|
|
74
|
+
dark:to-brand-moderate
|
|
73
75
|
border
|
|
74
76
|
border-brand-default
|
|
75
77
|
transition-[background-position,brightness]
|
|
76
|
-
shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-
|
|
78
|
+
shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-default)_50%,transparent)]
|
|
79
|
+
dark:shadow-[inset_0_1px_0_0_color-mix(in_srgb,var(--color-brand-default)_100%,transparent),inset_0_-2px_0_0_color-mix(in_srgb,var(--color-brand-moderate)_50%,transparent)]
|
|
77
80
|
duration-75
|
|
78
81
|
ease-out-cubic;
|
|
79
82
|
|
|
@@ -81,7 +84,7 @@
|
|
|
81
84
|
&::before,
|
|
82
85
|
&::after {
|
|
83
86
|
@apply drop-shadow-[0_0.5px_0_color-mix(in_srgb,var(--tw-drop-shadow-color)_20%,transparent),0_1px_0_color-mix(in_srgb,var(--tw-drop-shadow-color)_20%,transparent),0_1px_1px_color-mix(in_srgb,var(--tw-drop-shadow-color)_100%,transparent),0_1px_2px_color-mix(in_srgb,var(--tw-drop-shadow-color)_20%,transparent)]
|
|
84
|
-
dark:drop-shadow-[
|
|
87
|
+
dark:drop-shadow-[0_1px_0_color-mix(in_srgb,var(--tw-drop-shadow-color)_10%,transparent)]
|
|
85
88
|
drop-shadow-brand-strong/50;
|
|
86
89
|
}
|
|
87
90
|
}
|
package/styles/table.css
CHANGED
|
@@ -10,17 +10,7 @@
|
|
|
10
10
|
@apply overflow-x-auto;
|
|
11
11
|
|
|
12
12
|
/* Custom scrollbar styling */
|
|
13
|
-
|
|
14
|
-
@apply w-2 h-2;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&::-webkit-scrollbar-track {
|
|
18
|
-
@apply rounded-full bg-core-ui-100 dark:bg-core-ui-900;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
&::-webkit-scrollbar-thumb {
|
|
22
|
-
@apply rounded-full transition-colors bg-core-ui-400 dark:bg-core-ui-600 hover:bg-text-tertiary;
|
|
23
|
-
}
|
|
13
|
+
@apply scrollbar;
|
|
24
14
|
}
|
|
25
15
|
|
|
26
16
|
/* Sticky first column */
|