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 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
- From the repository root:
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
- When ready to publish:
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. ✨
@@ -113,9 +113,7 @@
113
113
  "core-black",
114
114
  "core-ui-100",
115
115
  "core-ui-300",
116
- "core-ui-400",
117
116
  "core-ui-50",
118
- "core-ui-600",
119
117
  "core-ui-700",
120
118
  "core-ui-800",
121
119
  "core-ui-900",
@@ -134,7 +134,6 @@
134
134
  "core-ui-100",
135
135
  "core-ui-200",
136
136
  "core-ui-300",
137
- "core-ui-400",
138
137
  "core-ui-50",
139
138
  "core-ui-600",
140
139
  "core-ui-700",
@@ -122,9 +122,7 @@
122
122
  "core-black",
123
123
  "core-ui-100",
124
124
  "core-ui-300",
125
- "core-ui-400",
126
125
  "core-ui-50",
127
- "core-ui-600",
128
126
  "core-ui-700",
129
127
  "core-ui-800",
130
128
  "core-ui-900",
@@ -150,9 +150,7 @@
150
150
  "core-black",
151
151
  "core-ui-100",
152
152
  "core-ui-300",
153
- "core-ui-400",
154
153
  "core-ui-50",
155
- "core-ui-600",
156
154
  "core-ui-700",
157
155
  "core-ui-800",
158
156
  "core-ui-900",
@@ -171,7 +171,6 @@
171
171
  "core-ui-400",
172
172
  "core-ui-50",
173
173
  "core-ui-500",
174
- "core-ui-600",
175
174
  "core-ui-700",
176
175
  "core-ui-800",
177
176
  "core-ui-900",
package/llm/index.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "llmSchemaVersion": "1.0.0",
3
- "designSystemVersion": "1.0.8",
3
+ "designSystemVersion": "1.0.9",
4
4
  "packageName": "twntyx-css",
5
5
  "apiModel": "html-class",
6
- "sourceFingerprint": "6903c44d40ec2318c9d1a121b9f3aa4a706789fada73dfb338c02a9b33ed3465",
6
+ "sourceFingerprint": "da5c687a1df4907a77f8f1b512ad33f27f39b7edff70707323b7590abd5d56ba",
7
7
  "files": {
8
8
  "schema": "schema.json",
9
9
  "tokens": "tokens.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twntyx-css",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "exports": {
5
5
  "./llm": "./llm/index.json",
6
6
  "./llm/components/*": "./llm/components/*.json",
@@ -1357,7 +1357,7 @@
1357
1357
 
1358
1358
  @keyframes tooltipSlideDown {
1359
1359
  0% {
1360
- transform: translate(0, -1rem);
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(-1rem);
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(-4px);
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(-4px);
2093
+ transform: translateX(4px);
2094
2094
  }
2095
2095
  100% {
2096
2096
  opacity: 1;
@@ -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;
@@ -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-strong)_20%,transparent)]
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-[0_-1px_0_color-mix(in_srgb,var(--tw-drop-shadow-color)_10%,transparent)]
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
- &::-webkit-scrollbar {
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 */