@dorsk/tsumikit 0.60.0 → 0.60.1

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
@@ -524,7 +524,8 @@ clipped to the space between the adornments). Once a `Textarea` needs more
524
524
  than one row (content, `rows`, or a dragged floor) the adornments move into a
525
525
  bar under the text: every line then runs the full width with the normal
526
526
  padding, the textarea's box (and its scrollbar) ends above the controls, and
527
- the bar continues the field's border. The textarea measures that in the
527
+ the bar continues the field's border, the controls still flush against its
528
+ bottom and side edges. The textarea measures that in the
528
529
  single-line layout, so the switch cannot flip back and forth; the single-line
529
530
  look is untouched. Tab order is leading → field → trailing; the group shows
530
531
  the focus ring around the whole unit.
@@ -134,46 +134,28 @@
134
134
  width: 100%;
135
135
  min-width: 0;
136
136
  }
137
+ /* The adornments fill the field inside its 1px border, their outer corners
138
+ following the field's; inner corners go square. In the bar they hug the
139
+ bottom and side borders, so only the bottom-outer corner is rounded. */
137
140
  .ig-adorn {
141
+ --ig-fuse-r: calc(var(--ig-radius) - 1px);
138
142
  position: absolute;
139
- bottom: 0;
143
+ top: 1px;
144
+ bottom: 1px;
140
145
  z-index: 1;
141
146
  display: flex;
142
147
  align-items: center;
143
148
  gap: var(--ig-inset);
144
- height: var(--ig-h);
145
- padding-inline: var(--ig-inset);
146
149
  pointer-events: none;
147
150
  }
148
- .ig-adorn > :global(*) {
149
- pointer-events: auto;
150
- }
151
151
  .ig-leading {
152
- inset-inline-start: 0;
153
- }
154
- .ig-trailing {
155
- inset-inline-end: 0;
156
- }
157
- .ig-center .ig-adorn {
158
- top: 0;
159
- height: auto;
160
- }
161
- /* Until the field grows into a bar, the adornments fill it inside its 1px
162
- border, their outer corners following the field's; inner corners go square. */
163
- .ig:not(.ig-bar) .ig-adorn {
164
- --ig-fuse-r: calc(var(--ig-radius) - 1px);
165
- top: 1px;
166
- bottom: 1px;
167
- height: auto;
168
- padding-inline: 0;
169
- }
170
- .ig:not(.ig-bar) .ig-leading {
171
152
  inset-inline-start: 1px;
172
153
  }
173
- .ig:not(.ig-bar) .ig-trailing {
154
+ .ig-trailing {
174
155
  inset-inline-end: 1px;
175
156
  }
176
- .ig:not(.ig-bar) .ig-adorn > :global(*) {
157
+ .ig-adorn > :global(*) {
158
+ pointer-events: auto;
177
159
  align-self: stretch;
178
160
  height: auto;
179
161
  min-height: 0;
@@ -182,34 +164,52 @@
182
164
  --pop-trigger-radius: 0;
183
165
  border-radius: 0;
184
166
  }
185
- .ig:not(.ig-bar) .ig-adorn > :global(:is(.btn-box, .btn-square, .btn-icon, .icon-only)) {
167
+ .ig-adorn > :global(:is(.btn-box, .btn-square, .btn-icon, .icon-only)) {
186
168
  width: auto;
187
169
  min-width: 0;
188
170
  aspect-ratio: 1;
189
171
  }
190
- .ig:not(.ig-bar) .ig-leading > :global(:first-child) {
172
+ .ig-leading > :global(:first-child) {
191
173
  --btn-radius: var(--ig-fuse-r) 0 0 var(--ig-fuse-r);
192
174
  border-radius: var(--ig-fuse-r) 0 0 var(--ig-fuse-r);
193
175
  }
194
- .ig:not(.ig-bar) .ig-trailing > :global(:last-child) {
176
+ .ig-trailing > :global(:last-child) {
195
177
  --btn-radius: 0 var(--ig-fuse-r) var(--ig-fuse-r) 0;
196
178
  border-radius: 0 var(--ig-fuse-r) var(--ig-fuse-r) 0;
197
179
  }
198
- .ig:not(.ig-bar) .ig-adorn :global(.split-main) {
180
+ .ig-adorn :global(.split-main) {
199
181
  --btn-radius: 0;
200
182
  }
201
- .ig:not(.ig-bar) .ig-adorn :global(.split-caret) {
183
+ .ig-adorn :global(.split-caret) {
202
184
  --pop-trigger-radius: 0;
203
185
  }
204
- .ig:not(.ig-bar) .ig-adorn :global(.split-caret .pop-trigger) {
186
+ .ig-adorn :global(.split-caret .pop-trigger) {
205
187
  height: 100%;
206
188
  }
207
- .ig:not(.ig-bar) .ig-leading > :global(:first-child .split-main) {
189
+ .ig-leading > :global(:first-child .split-main) {
208
190
  --btn-radius: var(--ig-fuse-r) 0 0 var(--ig-fuse-r);
209
191
  }
210
- .ig:not(.ig-bar) .ig-trailing > :global(:last-child .split-caret) {
192
+ .ig-trailing > :global(:last-child .split-caret) {
211
193
  --pop-trigger-radius: 0 var(--ig-fuse-r) var(--ig-fuse-r) 0;
212
194
  }
195
+ .ig-bar .ig-adorn {
196
+ top: auto;
197
+ height: calc(var(--ig-h) - 1px);
198
+ }
199
+ .ig-bar .ig-leading > :global(:first-child) {
200
+ --btn-radius: 0 0 0 var(--ig-fuse-r);
201
+ border-radius: 0 0 0 var(--ig-fuse-r);
202
+ }
203
+ .ig-bar .ig-trailing > :global(:last-child) {
204
+ --btn-radius: 0 0 var(--ig-fuse-r) 0;
205
+ border-radius: 0 0 var(--ig-fuse-r) 0;
206
+ }
207
+ .ig-bar .ig-leading > :global(:first-child .split-main) {
208
+ --btn-radius: 0 0 0 var(--ig-fuse-r);
209
+ }
210
+ .ig-bar .ig-trailing > :global(:last-child .split-caret) {
211
+ --pop-trigger-radius: 0 0 var(--ig-fuse-r) 0;
212
+ }
213
213
  .ig-bar .ig-field {
214
214
  padding-bottom: var(--ig-h);
215
215
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dorsk/tsumikit",
3
- "version": "0.60.0",
3
+ "version": "0.60.1",
4
4
  "description": "Minimal, dependency-free Svelte 5 + pure-CSS UI kit. Token-driven atoms, molecules & layouts with theming out of the box.",
5
5
  "type": "module",
6
6
  "license": "MIT",