twico-ui 1.47.0 → 1.48.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/CHANGELOG.md +7 -0
- package/dist/icons.d.cts +2 -1
- package/dist/icons.d.ts +2 -1
- package/dist/index.cjs +16 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -1
- package/dist/index.d.ts +41 -1
- package/dist/index.mjs +16 -1
- package/dist/index.mjs.map +1 -1
- package/llms.txt +3 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Twico UI are documented here (newest first). This file is generated automatically on each release by [semantic-release](https://semantic-release.gitbook.io/) from [Conventional Commits](https://www.conventionalcommits.org/) — do not edit it by hand. The same notes appear on each [GitHub Release](https://github.com/EncryptionL/twico-ui/releases).
|
|
4
4
|
|
|
5
|
+
# [1.48.0](https://github.com/EncryptionL/twico-ui/compare/v1.47.0...v1.48.0) (2026-10-23)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **datatable:** vertical alignment at three levels — table, row, column ([221978b](https://github.com/EncryptionL/twico-ui/commit/221978b1db3527d97b93335a9b36b9274d2c8b10))
|
|
11
|
+
|
|
5
12
|
# [1.47.0](https://github.com/EncryptionL/twico-ui/compare/v1.46.0...v1.47.0) (2026-10-23)
|
|
6
13
|
|
|
7
14
|
|
package/dist/icons.d.cts
CHANGED
|
@@ -56,4 +56,5 @@ declare const brandIcons: BrandIconMeta[];
|
|
|
56
56
|
/** Just the exported component names of every brand icon. */
|
|
57
57
|
declare const brandIconNames: string[];
|
|
58
58
|
|
|
59
|
-
export { AppleBrandIcon, BlueskyIcon,
|
|
59
|
+
export { AppleBrandIcon, BlueskyIcon, DiscordIcon, DockerIcon, DribbbleIcon, FacebookIcon, FigmaIcon, GithubIcon, GitlabIcon, GoogleIcon, InstagramIcon, MastodonIcon, MediumIcon, NextjsIcon, NodejsIcon, NpmIcon, PinterestIcon, ReactjsIcon, RedditIcon, SpotifyIcon, StackOverflowIcon, TailwindIcon, TelegramIcon, ThreadsIcon, TikTokIcon, TwitchIcon, TypeScriptIcon, VercelIcon, WhatsAppIcon, XTwitterIcon, YoutubeIcon, brandIconNames, brandIcons };
|
|
60
|
+
export type { BrandIcon, BrandIconMeta, BrandIconProps };
|
package/dist/icons.d.ts
CHANGED
|
@@ -56,4 +56,5 @@ declare const brandIcons: BrandIconMeta[];
|
|
|
56
56
|
/** Just the exported component names of every brand icon. */
|
|
57
57
|
declare const brandIconNames: string[];
|
|
58
58
|
|
|
59
|
-
export { AppleBrandIcon, BlueskyIcon,
|
|
59
|
+
export { AppleBrandIcon, BlueskyIcon, DiscordIcon, DockerIcon, DribbbleIcon, FacebookIcon, FigmaIcon, GithubIcon, GitlabIcon, GoogleIcon, InstagramIcon, MastodonIcon, MediumIcon, NextjsIcon, NodejsIcon, NpmIcon, PinterestIcon, ReactjsIcon, RedditIcon, SpotifyIcon, StackOverflowIcon, TailwindIcon, TelegramIcon, ThreadsIcon, TikTokIcon, TwitchIcon, TypeScriptIcon, VercelIcon, WhatsAppIcon, XTwitterIcon, YoutubeIcon, brandIconNames, brandIcons };
|
|
60
|
+
export type { BrandIcon, BrandIconMeta, BrandIconProps };
|
package/dist/index.cjs
CHANGED
|
@@ -9378,9 +9378,20 @@ var DT_CSS = `
|
|
|
9378
9378
|
font-size: var(--text-sm); color: var(--color-text); background: var(--twc-dt-row-bg, var(--color-surface));
|
|
9379
9379
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 0; }
|
|
9380
9380
|
/* Wrap-text columns: content flows onto multiple lines (the row grows down) instead of
|
|
9381
|
-
clipping to one line. height stays a per-row minimum, so single-line cells are unchanged.
|
|
9381
|
+
clipping to one line. height stays a per-row minimum, so single-line cells are unchanged.
|
|
9382
|
+
The top alignment here is only a DEFAULT for wrapped cells - an explicit verticalAlign at any
|
|
9383
|
+
level resolves to data-valign below, which is more specific and wins. Before that existed, a row
|
|
9384
|
+
mixing a wrapped column with normal ones was silently inconsistent: the wrapped cell sat top and
|
|
9385
|
+
its neighbours sat middle, with no way to say otherwise. */
|
|
9382
9386
|
.twc-dt__td[data-wrap="true"] { white-space: normal; overflow: hidden; text-overflow: clip;
|
|
9383
9387
|
word-break: break-word; overflow-wrap: anywhere; vertical-align: top; padding-block: 10px; line-height: 1.45; }
|
|
9388
|
+
/* Vertical alignment. One attribute, already resolved: column > row > table default, computed in
|
|
9389
|
+
renderLeaf rather than left to three competing selectors, so the precedence is readable in the
|
|
9390
|
+
code and cannot be reordered by an unrelated CSS edit. Matters whenever rows vary in height -
|
|
9391
|
+
wrapText, a multi-line renderCell, or a drag-resized row. */
|
|
9392
|
+
.twc-dt__td[data-valign="top"] { vertical-align: top; }
|
|
9393
|
+
.twc-dt__td[data-valign="middle"] { vertical-align: middle; }
|
|
9394
|
+
.twc-dt__td[data-valign="bottom"] { vertical-align: bottom; }
|
|
9384
9395
|
/* #338: "combined" column cell \u2014 one column showing several source columns' values. */
|
|
9385
9396
|
.twc-dt__combine--stack { display: flex; flex-direction: column; gap: 1px; }
|
|
9386
9397
|
.twc-dt__combine-sep { color: var(--color-text-subtle); padding-inline: 3px; }
|
|
@@ -10149,6 +10160,8 @@ function Datatable({
|
|
|
10149
10160
|
batchActions = [],
|
|
10150
10161
|
onRowSelectionChange,
|
|
10151
10162
|
selectionSummary,
|
|
10163
|
+
verticalAlign,
|
|
10164
|
+
getRowVerticalAlign,
|
|
10152
10165
|
getRowStyle,
|
|
10153
10166
|
getRowClassName,
|
|
10154
10167
|
showExport = false,
|
|
@@ -12728,6 +12741,7 @@ function Datatable({
|
|
|
12728
12741
|
const h = rowHeights[k];
|
|
12729
12742
|
const userRowStyle = getRowStyle ? getRowStyle(row, ri) : void 0;
|
|
12730
12743
|
const userRowClass = getRowClassName ? getRowClassName(row, ri) : void 0;
|
|
12744
|
+
const rowValign = getRowVerticalAlign ? getRowVerticalAlign(row, ri) : void 0;
|
|
12731
12745
|
const { background: _rowBgShorthand, backgroundColor: _rowBgColor, ...restRowStyle } = userRowStyle || {};
|
|
12732
12746
|
const usable = (v) => typeof v === "string" && v.trim() !== "" ? v : void 0;
|
|
12733
12747
|
const rowBg = usable(_rowBgShorthand) ?? usable(_rowBgColor);
|
|
@@ -12838,6 +12852,7 @@ function Datatable({
|
|
|
12838
12852
|
"data-num": c.type === "number" || void 0,
|
|
12839
12853
|
"data-actions": isActions || void 0,
|
|
12840
12854
|
"data-align": c.align !== dtNaturalAlign(c) ? c.align : void 0,
|
|
12855
|
+
"data-valign": c.verticalAlign ?? rowValign ?? verticalAlign,
|
|
12841
12856
|
"data-editable": editable && !isEditing || void 0,
|
|
12842
12857
|
"data-editing": isEditing || void 0,
|
|
12843
12858
|
"data-cell-active": cellActive || void 0,
|