Skip to content

Commit 5373fdb

Browse files
authored
Merge pull request #494 from acelaya-forks/feature/bootstrapless-fixes
Add fixes for tailwind components to work without bootstrap
2 parents e648eda + 5427673 commit 5373fdb

File tree

18 files changed

+79
-65
lines changed

18 files changed

+79
-65
lines changed

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org).
66

7-
## [Unreleased]
7+
## [0.9.10] - 2025-06-11
88
### Added
99
* *Nothing*
1010

1111
### Changed
1212
* Change 2xl breakpoint to 1320px.
1313

1414
### Deprecated
15-
* *Nothing*
15+
* Deprecated `determineOrder` and `determineOrderDir` when arguments are passed individually. The only supported signature going forward is the one where an `OrderDirChange` object is passed.
1616

1717
### Removed
1818
* *Nothing*
1919

2020
### Fixed
21-
* *Nothing*
21+
* Fixes and adjustments to work when bootstrap styles are not present.
2222

2323

2424
## [0.9.9] - 2025-06-10

src/ordering/ordering.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export type OrderDirChange<Fields extends string = string> = {
1414
};
1515

1616
export function determineOrderDir<Fields extends string = string>(orderDirChange: OrderDirChange<Fields>): OrderDir;
17+
/** @deprecated */
1718
export function determineOrderDir<Fields extends string = string>(
1819
currentField?: Fields,
1920
newField?: Fields,
@@ -27,11 +28,12 @@ export function determineOrderDir<Fields extends string = string>(
2728
newField?: Fields,
2829
currentOrderDir?: OrderDir,
2930
): OrderDir {
30-
if (typeof firstArg === 'object') {
31-
return determineOrderDir(firstArg.currentField, firstArg.newField, firstArg.currentOrderDir);
31+
if (!firstArg || typeof firstArg === 'string') {
32+
return determineOrderDir({ currentField: firstArg, newField, currentOrderDir });
3233
}
3334

34-
if (firstArg !== newField) {
35+
const orderDirChange = firstArg;
36+
if (orderDirChange.currentField !== orderDirChange.newField) {
3537
return 'ASC';
3638
}
3739

@@ -40,10 +42,11 @@ export function determineOrderDir<Fields extends string = string>(
4042
DESC: undefined,
4143
};
4244

43-
return currentOrderDir ? newOrderMap[currentOrderDir] : 'ASC';
45+
return orderDirChange.currentOrderDir ? newOrderMap[orderDirChange.currentOrderDir] : 'ASC';
4446
}
4547

4648
export function determineOrder<Fields extends string = string>(orderDirChange: OrderDirChange<Fields>): Order<Fields>;
49+
/** @deprecated */
4750
export function determineOrder<Fields extends string = string>(
4851
currentField?: Fields,
4952
newField?: Fields,
@@ -57,13 +60,14 @@ export function determineOrder<Fields extends string = string>(
5760
newField?: Fields,
5861
currentOrderDir?: OrderDir,
5962
): Order<Fields> {
60-
if (typeof firstArg === 'object') {
61-
return determineOrder(firstArg.currentField, firstArg.newField, firstArg.currentOrderDir);
63+
if (!firstArg || typeof firstArg === 'string') {
64+
return determineOrder({ currentField: firstArg, newField, currentOrderDir });
6265
}
6366

64-
const newOrderDir = determineOrderDir(firstArg, newField, currentOrderDir);
67+
const orderDirChange = firstArg;
68+
const newOrderDir = determineOrderDir(orderDirChange);
6569
return {
66-
field: newOrderDir ? newField : undefined,
70+
field: newOrderDir ? orderDirChange.newField : undefined,
6771
dir: newOrderDir,
6872
};
6973
}
@@ -92,6 +96,7 @@ export const stringToOrder = <T>(order: string): Order<T> => {
9296

9397
export type OrderSetter<T> = {
9498
(order: Order<T>): void;
99+
/** @deprecated Pass the order object as the only argument */
95100
(orderField?: T, orderDir?: OrderDir): void;
96101
};
97102

src/tailwind/content/Table.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ const Cell: FC<CellProps> = ({ children, className, columnName, type, ...rest })
121121

122122
'tw:border-b-1': !responsive,
123123
'tw:block tw:lg:table-cell tw:not-last:border-b-1 tw:lg:border-b-1': responsive,
124+
'tw:text-left': Tag === 'th',
124125

125126
// For responsive tables, display the content in data-column attribute for md sizes and lower
126127
'tw:before:lg:hidden tw:before:content-[attr(data-column)] tw:before:font-bold tw:before:mr-1': responsive && Tag === 'td',

src/tailwind/form/Button.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export const Button = forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonPr
8181
'tw:highlight:bg-danger': variant === 'danger',
8282
},
8383
{
84+
'tw:cursor-pointer': !disabled,
8485
'tw:pointer-events-none tw:opacity-65': disabled,
8586
},
8687
className,

src/tailwind/form/CloseButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const CloseButton = forwardRef<HTMLButtonElement, CloseButtonProps>((
2020
onClick={onClick}
2121
className={clsx(
2222
'tw:opacity-50 tw:highlight:opacity-80 tw:transition-opacity',
23-
'tw:rounded-md tw:focus-ring',
23+
'tw:rounded-md tw:focus-ring tw:cursor-pointer',
2424
className,
2525
)}
2626
aria-label={label}

src/tailwind/form/RevealablePasswordInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export const RevealablePasswordInput = forwardRef<HTMLInputElement, RevealablePa
4949
title={passwordRevealed ? 'Hide password' : 'Show password'}
5050
aria-label={passwordRevealed ? 'Hide password' : 'Show password'}
5151
className={clsx(
52-
'tw:absolute tw:top-[50%] tw:translate-y-[-50%] tw:px-1',
52+
'tw:absolute tw:top-[50%] tw:translate-y-[-50%] tw:px-1 tw:cursor-pointer',
5353
'tw:text-placeholder tw:hover:text-lm-text tw:hover:dark:text-dm-text tw:transition-colors',
5454
{
5555
'tw:right-1.5': size !== 'sm',

src/tailwind/navigation/Dropdown.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ const BaseDropdown: FC<DropdownProps> = ({
112112
'tw:flex tw:items-center tw:rounded-md tw:focus-ring',
113113
{
114114
'tw:justify-between': !caretless,
115+
'tw:cursor-pointer': !buttonDisabled,
115116
'tw:pointer-events-none tw:opacity-50': buttonDisabled,
116117

117118
// Button variant

src/tailwind/navigation/LinkButton.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export const LinkButton = forwardRef<HTMLButtonElement, LinkButtonProps>((
2121
'tw:px-1.5 tw:py-1 tw:text-sm': size === 'sm',
2222
'tw:px-3 tw:py-1.5': size === 'md',
2323
'tw:px-4 tw:py-2 tw:text-lg': size === 'lg',
24+
'tw:cursor-pointer': !disabled,
2425
'tw:pointer-events-none tw:opacity-65': disabled,
2526
},
2627
className,

src/tailwind/navigation/Menu.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const Item: FC<MenuItemProps> = ({ className, selected, disabled, ...rest }) =>
2929
// Overwrite link styles in case a Link is being used
3030
'tw:no-underline tw:text-inherit',
3131
{
32+
'tw:cursor-pointer': !disabled,
3233
'tw:pointer-events-none tw:opacity-50': disabled,
3334
'tw:bg-lm-secondary tw:dark:bg-dm-secondary': selected && !disabled,
3435
'tw:highlight:bg-lm-secondary tw:dark:highlight:bg-dm-secondary tw:highlight:z-1 tw:relative': !selected && !disabled,

src/tailwind/navigation/Paginator.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const commonClasses = [
1414

1515
const buildPaginatorItemClasses = (active = false) => clsx(
1616
commonClasses,
17-
'tw:px-3 py-2 tw:cursor-pointer tw:no-underline',
17+
'tw:px-3 tw:py-2 tw:cursor-pointer tw:no-underline',
1818
'tw:focus-ring tw:focus-visible:z-1',
1919
!active && [
2020
'tw:text-lm-brand tw:dark:text-dm-brand',
@@ -25,7 +25,7 @@ const buildPaginatorItemClasses = (active = false) => clsx(
2525
);
2626

2727
const DisabledPaginatorItem: FC<PropsWithChildren> = ({ children }) => (
28-
<span aria-hidden className={clsx(commonClasses, 'tw:px-3 py-2 tw:text-gray-400')}>
28+
<span aria-hidden className={clsx(commonClasses, 'tw:px-3 tw:py-2 tw:text-gray-400')}>
2929
{children}
3030
</span>
3131
);

0 commit comments

Comments
 (0)