twico-ui 1.46.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 +14 -0
- package/dist/icons.d.cts +2 -1
- package/dist/icons.d.ts +2 -1
- package/dist/index.cjs +220 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +433 -1
- package/dist/index.d.ts +433 -1
- package/dist/index.mjs +220 -14
- package/dist/index.mjs.map +1 -1
- package/llms.txt +16 -0
- package/package.json +2 -2
package/llms.txt
CHANGED
|
@@ -615,6 +615,7 @@ Props:
|
|
|
615
615
|
- `onChange` — `(hex: string) => void` — Fires with the new hex string whenever the user adjusts saturation, hue, the text field, or picks a preset.
|
|
616
616
|
- `disabled` — `boolean` · default `false` — Disable all interaction (the popover cannot be opened).
|
|
617
617
|
- `hint` — `React.ReactNode` — Helper text shown below when there is no error.
|
|
618
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
618
619
|
- `error` — `React.ReactNode` — Error message — turns the field red and replaces the hint.
|
|
619
620
|
- `alpha` — `boolean` · default `false` — Show an alpha slider and emit 8-digit `#RRGGBBAA`; the hex input then accepts 3/6/8-digit hex.
|
|
620
621
|
- `size` — `"sm" | "md" | "lg"` · default `"md"` — Control size.
|
|
@@ -643,6 +644,7 @@ Combobox is a searchable single-select dropdown (MUI-Autocomplete style) where y
|
|
|
643
644
|
Props:
|
|
644
645
|
- `label` — `React.ReactNode` — Renders a caption above the control to identify the field and improve accessibility for the searchable select.
|
|
645
646
|
- `hint` — `React.ReactNode` — Shows helper text below the field to guide input, displayed only while no error message is present.
|
|
647
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
646
648
|
- `error` — `React.ReactNode` — Displays an error message, marks the field invalid, and replaces the hint to flag a failed validation.
|
|
647
649
|
- `virtualized` — `boolean` · default `false` — Virtualize the option list — render only the visible slice (plus overscan) so long lists open fast.
|
|
648
650
|
- `overscan` — `number` · default `8` — Extra option rows rendered above/below the viewport when virtualized, smoothing fast scrolling.
|
|
@@ -705,6 +707,7 @@ Currency is a text input for monetary amounts with a fixed currency defined in c
|
|
|
705
707
|
Props:
|
|
706
708
|
- `label` — `React.ReactNode` — Renders a label above the input describing the monetary field, accepting any ReactNode for icons or rich text.
|
|
707
709
|
- `hint` — `React.ReactNode` — Shows helper text below the input to guide entry, displayed only when no error is present.
|
|
710
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
708
711
|
- `error` — `React.ReactNode` — Displays an error message below the input and marks the field invalid, overriding any hint while set.
|
|
709
712
|
- `required` — `boolean` · default `false` — Marks the field as required and renders an asterisk beside the label; off by default.
|
|
710
713
|
- `size` — `"sm" | "md" | "lg"` · default `"md"` — Sets the input height and padding (sm, md, or lg) to match the surrounding form's density, defaulting to "md".
|
|
@@ -745,6 +748,7 @@ CurrencyField is a currency amount input where the user picks the currency from
|
|
|
745
748
|
Props:
|
|
746
749
|
- `label` — `React.ReactNode` — Renders a label above the field describing the amount, accepting any ReactNode for icons or formatted text.
|
|
747
750
|
- `hint` — `React.ReactNode` — Shows helper text below the field to guide entry, displayed only when no error message is present.
|
|
751
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
748
752
|
- `error` — `React.ReactNode` — Displays an error message and marks the field invalid when set, taking visual precedence over the hint.
|
|
749
753
|
- `required` — `boolean` · default `false` — Marks the field as required and renders an asterisk beside the label; off by default.
|
|
750
754
|
- `size` — `"sm" | "md" | "lg"` · default `"md"` — Sets the input and dropdown height (sm, md, or lg) to match the surrounding form's density, defaulting to "md".
|
|
@@ -804,6 +808,7 @@ Props:
|
|
|
804
808
|
- `weekStartsOn` — `0 | 1 | 2 | 3 | 4 | 5 | 6` · default `0` — Widened from 0|1 to any weekday; controls which day the calendar grid + weekday header start on (0 = Sunday).
|
|
805
809
|
- `onChange` — `(date: Date | null) => void` — Fires with the newly selected Date, or null when the value is cleared, so you can update state.
|
|
806
810
|
- `hint` — `React.ReactNode` — Helper text shown below when there is no error.
|
|
811
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
807
812
|
- `error` — `React.ReactNode` — Error message — turns the field red and replaces the hint.
|
|
808
813
|
- `required` — `boolean` · default `false` — Marks the field required (adds an asterisk to the label).
|
|
809
814
|
- `locale` — `string` — BCP-47 locale for Intl-derived month/weekday names and date formatting; omit for the runtime default.
|
|
@@ -843,6 +848,7 @@ Props:
|
|
|
843
848
|
- `onChange` — `(range: DateRange) => void` — Fires with the updated { start, end } range whenever the selection changes so you can update state.
|
|
844
849
|
- `disabled` — `boolean` · default `false` — Disable all interaction (the popover cannot be opened).
|
|
845
850
|
- `hint` — `React.ReactNode` — Helper text shown below when there is no error.
|
|
851
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
846
852
|
- `error` — `React.ReactNode` — Error message — turns the field red and replaces the hint.
|
|
847
853
|
- `required` — `boolean` · default `false` — Marks the field required (adds an asterisk to the label).
|
|
848
854
|
- `locale` — `string` — BCP-47 locale for Intl-derived month/weekday names and date formatting; omit for the runtime default.
|
|
@@ -875,6 +881,7 @@ DateTimePicker combines a calendar and a time-column popover over a single Date
|
|
|
875
881
|
Props:
|
|
876
882
|
- `label` — `React.ReactNode` — Optional field label rendered above the date/time pair to name and associate it.
|
|
877
883
|
- `hint` — `React.ReactNode` — Helper text shown below the controls when there is no error message set.
|
|
884
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
878
885
|
- `error` — `React.ReactNode` — Error message that recolors both controls red and replaces the hint, shown once on the wrapper.
|
|
879
886
|
- `required` — `boolean` · default `false` — Marks the field required, adding an asterisk to the label as a validation cue.
|
|
880
887
|
- `value` — `Date | null` — Controlled selected date-time as a Date; pair with onChange to own the value in state.
|
|
@@ -921,6 +928,7 @@ Field is the reusable form-field wrapper that supplies the label, required aster
|
|
|
921
928
|
Props:
|
|
922
929
|
- `label` — `React.ReactNode` — Field label rendered above the control.
|
|
923
930
|
- `hint` — `React.ReactNode` — Helper text shown below when there is no error.
|
|
931
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
924
932
|
- `error` — `React.ReactNode` — Error message — replaces the hint and renders in the danger color.
|
|
925
933
|
- `required` — `boolean` · default `false` — Marks the field required, adding an asterisk after the label.
|
|
926
934
|
- `htmlFor` — `string` — Id of the control the <label> binds to (sets the label's htmlFor).
|
|
@@ -1025,6 +1033,7 @@ A text input with optional label, hint text, error/validation state, and inline
|
|
|
1025
1033
|
Props:
|
|
1026
1034
|
- `label` — `React.ReactNode` — Renders a label node above the control so the field has an accessible, visible name for the user.
|
|
1027
1035
|
- `hint` — `React.ReactNode` — Shows helper text below the input to guide entry; it is hidden once an error message is present.
|
|
1036
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
1028
1037
|
- `error` — `React.ReactNode` — Displays a validation error below the field, switches the control to its red invalid state, and replaces the hint.
|
|
1029
1038
|
- `required` — `boolean` · default `false` — Marks the field as required and appends an asterisk to the label to signal mandatory input; defaults to false.
|
|
1030
1039
|
- `size` — `"sm" | "md" | "lg"` · default `"md"` — Sets the control height and padding (sm, md, or lg) to match the density of the surrounding form.
|
|
@@ -1067,6 +1076,7 @@ Props:
|
|
|
1067
1076
|
- `options` — `Array<string | MultiSelectOption | MultiSelectGroup>` · **required** — Supplies the selectable options as plain strings, {value,label,description} objects, or {group,options} grouped sections.
|
|
1068
1077
|
- `label` — `React.ReactNode` — Renders a label node above the control so the multi-select has an accessible, visible name for the user.
|
|
1069
1078
|
- `hint` — `React.ReactNode` — Shows helper text below the control to guide selection; it is hidden once an error message is present.
|
|
1079
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
1070
1080
|
- `error` — `React.ReactNode` — Displays a validation error below the control and styles it as invalid to flag a selection problem.
|
|
1071
1081
|
- `virtualized` — `boolean` · default `false` — Virtualize the option list — render only the visible slice (plus overscan) so long lists open fast.
|
|
1072
1082
|
- `overscan` — `number` · default `8` — Extra option rows rendered above/below the viewport when virtualized, smoothing fast scrolling.
|
|
@@ -1193,6 +1203,7 @@ A custom select that replaces the native browser dropdown with a rounded, keyboa
|
|
|
1193
1203
|
Props:
|
|
1194
1204
|
- `label` — `React.ReactNode` — Renders a field label above the trigger to identify what the select controls within a form.
|
|
1195
1205
|
- `hint` — `React.ReactNode` — Shows helper text below the trigger to guide selection, automatically hidden once an error message is set.
|
|
1206
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
1196
1207
|
- `error` — `React.ReactNode` — Displays an error message and marks the field invalid, replacing the hint to flag failed validation.
|
|
1197
1208
|
- `virtualized` — `boolean` · default `false` — Virtualize the option list — render only the visible slice (plus overscan) so long lists open fast.
|
|
1198
1209
|
- `overscan` — `number` · default `8` — Extra option rows rendered above/below the viewport when virtualized, smoothing fast scrolling.
|
|
@@ -1330,6 +1341,7 @@ Textarea is a multi-line text input with an optional label, hint text, and error
|
|
|
1330
1341
|
Props:
|
|
1331
1342
|
- `label` — `React.ReactNode` — Renders a field label above the textarea, identifying what longer-form input the control collects.
|
|
1332
1343
|
- `hint` — `React.ReactNode` — Shows helper text below the textarea to guide input, hidden whenever an error message is present.
|
|
1344
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
1333
1345
|
- `error` — `React.ReactNode` — Displays an error message and marks the field invalid when set, replacing the hint text below.
|
|
1334
1346
|
- `required` — `boolean` · default `false` — Adds a required asterisk beside the label when true, signaling that the field must be filled in.
|
|
1335
1347
|
- `size` — `"sm" | "md" | "lg"` · default `"md"` — Control size — same padding steps as Input.
|
|
@@ -1368,6 +1380,7 @@ TimePicker is a time-of-day input with a column-spinner popover: scrollable hour
|
|
|
1368
1380
|
Props:
|
|
1369
1381
|
- `label` — `React.ReactNode` — Optional field label rendered above the control to name it and associate it for accessibility.
|
|
1370
1382
|
- `hint` — `React.ReactNode` — Helper text shown below the control when there is no error message set.
|
|
1383
|
+
- `reserveFooter` — `boolean` · default `false` — Always render the footer lane, empty when there is nothing to say, so this field is the same height as one that has a hint, an error or a counter. A row of fields aligned with align="flex-end" splits onto two lines the moment ONE of them has a hint — that field grows a footer and the others do not, so the caption ends up moving a different control. align cannot fix it: flex-start lines up the labels instead, so the controls part company as soon as one label wraps. Set it per field, or once on any ancestor (data-reserve-footer) for everything inside — the safer habit in a row, since with a per-field prop alone, adding a field later and forgetting it brings the misalignment straight back.
|
|
1371
1384
|
- `error` — `React.ReactNode` — Error message that turns the control red and replaces the hint text below it.
|
|
1372
1385
|
- `required` — `boolean` · default `false` — Marks the field required, adding an asterisk to the label as a validation cue.
|
|
1373
1386
|
- `value` — `Date | null` — Controlled selected time as a Date; pair with onChange to own the value in state.
|
|
@@ -1702,6 +1715,8 @@ Props:
|
|
|
1702
1715
|
- `rowHeight` — `number` — Estimated/fixed row height in px used to compute the virtualization window. Set if rows have a custom height so the scrollbar stays accurate.
|
|
1703
1716
|
- `rowNumbers` — `boolean` · default `false` — Render a leading auto-numbered row column (1, 2, 3…). The number reflects each row's position in the current sorted/filtered order and continues across pages (page 2 starts where page 1 ended; in server mode it uses the current page × pageSize). Sits after the checkbox column, sticky-left. This prop is the initial state — when enabled, users can hide/show the column from the toolbar's **Columns** panel ("Row number").
|
|
1704
1717
|
- `getRowStyle` — `(row: T, index: number) => React.CSSProperties | undefined` — Inline style for a WHOLE row from its own state — the row-level counterpart to a column's cellStyle, so marking a row no longer means repeating cellStyle on every column. A background (or backgroundColor) reaches the row's cells through the --twc-dt-row-bg custom property, since each cell paints its own opaque surface; every other declaration lands on the <tr>. Sticky positioning and measured row height are applied after yours, so it cannot break row pinning or row resizing. Layering is one rule: the tint is the bottom layer above the cell's plain surface and every built-in state covers it — hover, selection, activeRowId, a pinned or grabbed row, the diff washes, cell selection/editing, and an inline cellStyle over all of them — because a data-derived wash should never hide an interaction state. (So a row pinned from the ⋮ menu loses its background tint while pinned, like a selected one; use getRowClassName with a rule outranking (0,3,0) if you need a tint that beats hover — and note .twc-dt__row.my-row .twc-dt__td is itself (0,3,0), a tie, so add an element: tr.twc-dt__row.my-row .twc-dt__td.) Applies to every data row, pinned ones included — not to group-header or pivot aggregate rows, which have no row to pass. No stripe in that stack: Datatable does not zebra-stripe data rows at all, only the pivot grid does.
|
|
1718
|
+
- `verticalAlign` — `"top" | "middle" | "bottom"` — Default vertical alignment for every body cell. The transpose of a column's align: align decides where content sits across the column's width, this decides where it sits down the row's height. Only visible once rows vary in height — a wrapText column, a multi-line renderCell, or a drag-resized row. Precedence, lowest first: this → getRowVerticalAlign → the column's verticalAlign. Resolved in one place and emitted as a single data-valign on the cell rather than as three competing CSS rules, so the order cannot be changed by an unrelated stylesheet edit.
|
|
1719
|
+
- `getRowVerticalAlign` — `(row: T, index: number) => "top" | "middle" | "bottom" | undefined` — Vertical alignment for one row's cells, called (row, index) like getRowStyle; return undefined to leave a row on the table default. Overrides verticalAlign but NOT a column's own verticalAlign — an explicit column value is a property of that column's content type and is almost always a deliberate exemption (the actions column stays centred while the rest of the row moves). To move every cell in a row, leave the columns' values unset. index is page-relative, like getRowStyle.
|
|
1705
1720
|
- `getRowClassName` — `(row: T, index: number) => string | undefined` — Class appended to the row's twc-dt__row (never replacing it), called (row, index) like getRowStyle. Which to reach for: getRowStyle is the default, because its background is routed through --twc-dt-row-bg and read by the (0,1,0) base rule, making it the LOWEST layer that every built-in state covers — the reverse of what "inline wins" would suggest. Use getRowClassName when you deliberately want the tint to outrank hover/selection, since your own rule picks its specificity (beat (0,3,0), e.g. tr.twc-dt__row.my-row .twc-dt__td). Same scope: every data row, pinned ones included; not group headers or pivot aggregates.
|
|
1706
1721
|
- `searchFields` — `string[]` — Restrict the toolbar quick-search to these column `field`s (client mode); defaults to every visible column. Mirrors `runDatatableQuery`'s `options.searchFields`.
|
|
1707
1722
|
- `searchable` — `boolean` · default `true` — Render the built-in toolbar quick-search box; set false to externalize search with your own input wired to quickFilter (CardGrid parity).
|
|
@@ -2038,6 +2053,7 @@ Props:
|
|
|
2038
2053
|
- `renderCell (column)` — `(value: any, row: T, index: number) => React.ReactNode` — Alias for render (Datatable vocabulary); render wins when both are set.
|
|
2039
2054
|
- `cellClassName (column)` — `(value: any, row: T) => string | undefined` — Class applied to the whole cell (.twc-dt__td, pinned included) — value/row-based tinting via your own stylesheet; a plain class may lose to the hover/selection background (specificity).
|
|
2040
2055
|
- `cellStyle (column)` — `(value: any, row: T) => React.CSSProperties | undefined` — Inline style applied to the whole cell (.twc-dt__td, pinned included) — the simplest full-cell tint from value/row; wins over hover/selection/diff backgrounds (use cellClassName if those cues must stay visible), pin positioning preserved. On a pinned column keep the background opaque (composite over var(--color-surface)).
|
|
2056
|
+
- `verticalAlign (column)` — `"top" | "middle" | "bottom"` — Vertical alignment of this column's body cells. Wins over the row and table values: a per-column setting is a statement about the column's content type — an actions column or a status badge that should stay centred however tall the row gets — so it survives a row-level or table-wide sweep. To move a whole row including this column, leave this unset. Defaults to top for wrapText columns, otherwise to the table's verticalAlign.
|
|
2041
2057
|
|
|
2042
2058
|
```jsx
|
|
2043
2059
|
import { Table } from "twico-ui";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "twico-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.48.0",
|
|
4
4
|
"description": "Twico UI — a free, modern, themeable React + Tailwind-friendly component library. 61 components with dark mode, motion, and accessibility built in.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Twico UI",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"lucide-react": "^1.31.0",
|
|
121
121
|
"semantic-release": "^25.0.9",
|
|
122
122
|
"size-limit": "^14.0.0",
|
|
123
|
-
"tsup": "^
|
|
123
|
+
"tsup": "^9.0.0",
|
|
124
124
|
"typescript": "^5.9.3",
|
|
125
125
|
"vitest": "^5.0.0",
|
|
126
126
|
"wawoff2": "^2.0.1"
|