Skip to content

Commit 3256cba

Browse files
committed
WIP: removed clsq
1 parent 59e4be8 commit 3256cba

File tree

20 files changed

+77
-154
lines changed

20 files changed

+77
-154
lines changed

CODING_STANDARDS.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,11 @@ return (
104104
- Use accessibility attributes whenever they are needed.
105105
- For simple primitive states use signals. For object state, use stores.
106106

107-
## Example of headless button customisation with Tailwind
107+
## Example of headless button customization with Tailwind
108108

109109
```tsx
110110
import { component$, QwikIntrinsicElements, Slot } from '@builder.io/qwik';
111111
import { Button as HeadlessButton, ButtonProps as ButtonHeadlessProps } from '@qwik-ui/headless';
112-
import { clsq } from '@qwik-ui/shared';
113112

114113
type TailwindButtonProps = { size?: 'sm' | 'md', ... };
115114
export type ButtonProps = ButtonHeadlessProps & TailwindButtonProps;
@@ -118,7 +117,7 @@ export const Button = component$(
118117
({ size = 'md', class: classNames, ...rest }: ButtonProps) => {
119118
const { sizes, ... } = { sizes: { sm: 'btn-sm', md: 'btn-md', ... } };
120119
return (
121-
<HeadlessButton {...rest} class={clsq('btn', sizes[size], classNames)}>
120+
<HeadlessButton {...rest} class={['btn', sizes[size], classNames]}>
122121
<Slot />
123122
</HeadlessButton>
124123
);

packages/kit-headless/src/components/breadcrumb/breadcrumb-item.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { component$, HTMLAttributes, Slot, useStylesScoped$ } from '@builder.io/qwik';
22
import styles from './breadcrumb-item.css?inline';
3-
import { clsq } from '@qwik-ui/shared';
43

54
export interface BreadcrumbItemProps extends HTMLAttributes<HTMLElement> {
65
divider?: string;
@@ -12,7 +11,7 @@ export const BreadcrumbItem = component$((props: BreadcrumbItemProps) => {
1211
useStylesScoped$(styles);
1312

1413
return (
15-
<div style={clsq(`--breadcrumb-divider: "${props.divider || '/'}"`, style)} {...rest}>
14+
<div style={`--breadcrumb-divider: "${props.divider || '/'}" ${style}}`} {...rest}>
1615
<Slot />
1716
</div>
1817
);

packages/kit-headless/src/components/menu/menu.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import {
22
$,
3-
component$,
4-
createContextId,
53
QRL,
64
QwikKeyboardEvent,
75
Signal,
86
Slot,
9-
useVisibleTask$,
7+
component$,
8+
createContextId,
109
useContext,
1110
useContextProvider,
1211
useId,
1312
useOnWindow,
1413
useSignal,
1514
useStore,
15+
useVisibleTask$,
1616
} from '@builder.io/qwik';
1717
import { JSX } from '@builder.io/qwik/jsx-runtime';
18-
import { clsq } from '@qwik-ui/shared';
1918
import { Button } from '@qwik-ui/primitives';
2019

2120
interface MenuProps {
@@ -88,10 +87,13 @@ export const Menu = component$((props: MenuProps) => {
8887
return (
8988
<div
9089
id={parentId}
91-
class={clsq(props.class, {
92-
[CSS_CLASS_NAMES.IS_EXPANDED]: isExpanded.value,
93-
[CSS_CLASS_NAMES.IS_HOVERED]: isHovered.value,
94-
})}
90+
class={[
91+
props.class,
92+
{
93+
[CSS_CLASS_NAMES.IS_EXPANDED]: isExpanded.value,
94+
[CSS_CLASS_NAMES.IS_HOVERED]: isHovered.value,
95+
},
96+
]}
9597
onMouseEnter$={() => (isHovered.value = true)}
9698
onMouseLeave$={() => (isHovered.value = false)}
9799
onKeyDown$={(event: QwikKeyboardEvent) => {
@@ -161,9 +163,9 @@ export const MenuItem = component$((props: MenuItemProps) => {
161163
<Button
162164
tabIndex={-1}
163165
id={myId}
164-
class={clsq({
166+
class={{
165167
[CSS_CLASS_NAMES.IS_FOCUSED]: isFocused,
166-
})}
168+
}}
167169
onClick$={props.onClick$}
168170
disabled={props.disabled || false}
169171
>

packages/kit-headless/src/components/slider/slider.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import {
2-
component$,
3-
createContextId,
42
PropFunction,
3+
QwikIntrinsicElements,
54
Signal,
65
Slot,
7-
useVisibleTask$,
6+
component$,
7+
createContextId,
88
useContextProvider,
99
useSignal,
10+
useVisibleTask$,
1011
} from '@builder.io/qwik';
1112

1213
export const getPercentage = (value: number, min = 0, max = 100) => {
@@ -23,14 +24,14 @@ interface SliderContextService {
2324

2425
export const sliderContext = createContextId<SliderContextService>('slider');
2526

26-
interface SliderProps {
27+
export type SliderProps = {
2728
value: number;
2829
min: number;
2930
max: number;
3031
onChange$?: PropFunction<(value: number) => void>;
3132
class?: string;
3233
style?: string;
33-
}
34+
} & QwikIntrinsicElements['div'];
3435

3536
export const Slider = component$(
3637
({

packages/kit-headless/src/components/spinner/spinner.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { component$, useStylesScoped$ } from '@builder.io/qwik';
2-
import { clsq } from '@qwik-ui/shared';
32
import styles from './spinner.css?inline';
43

54
export type SpinnerProps = {
@@ -22,7 +21,7 @@ export const Spinner = component$((props: SpinnerProps) => {
2221
} = props;
2322
useStylesScoped$(styles);
2423
return (
25-
<div class={clsq('spinner-container', classNames)} style={style}>
24+
<div class={`spinner-container ${classNames}`} style={style}>
2625
<svg part="base" class="spinner" role="spinner">
2726
<circle
2827
class="track"

packages/kit-material/src/components/button/button.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { component$, QwikIntrinsicElements, Slot } from '@builder.io/qwik';
2-
import { Button as HeadlessButton } from '@qwik-ui/primitives';
3-
import { clsq } from '@qwik-ui/shared';
42

53
export type HTMLButtonProps = QwikIntrinsicElements['button'];
64

@@ -17,9 +15,9 @@ export const Button = component$((props: ButtonProps) => {
1715
const { class: classNames, disabled, floating, flat, size = 'medium', ...rest } = props;
1816

1917
return (
20-
<HeadlessButton
18+
<button
2119
{...rest}
22-
class={clsq(
20+
class={[
2321
{
2422
disabled: disabled,
2523
'btn-floating': floating,
@@ -29,10 +27,9 @@ export const Button = component$((props: ButtonProps) => {
2927
btn: size === 'medium',
3028
'btn-large': size === 'large',
3129
},
32-
classNames,
33-
)}
30+
]}
3431
>
3532
<Slot />
36-
</HeadlessButton>
33+
</button>
3734
);
3835
});

packages/kit-tailwind/src/components/alert/alert.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { component$, Slot } from '@builder.io/qwik';
2-
3-
import { clsq } from '@qwik-ui/shared';
42
import { Button, ButtonProps } from '../button/button';
53
import { daisyConfig } from './daisy.config';
64

@@ -35,13 +33,7 @@ export const Alert = component$((props: TailwindAlertProps) => {
3533
return (
3634
<div
3735
{...rest}
38-
class={clsq(
39-
variants[variant],
40-
sizes[size],
41-
radius[rounding],
42-
'flex gap-4',
43-
classNames,
44-
)}
36+
class={[variants[variant], sizes[size], radius[rounding], 'flex gap-4', classNames]}
4537
>
4638
<Slot name="icon" />
4739
<div class="flex-1">

packages/kit-tailwind/src/components/badge/badge.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { component$, HTMLAttributes, Slot } from '@builder.io/qwik';
2-
import { Badge as HeadlessBadge } from '@qwik-ui/headless';
3-
import { clsq } from '@qwik-ui/shared';
42

53
export interface TailwindBadgeProps extends HTMLAttributes<HTMLElement> {
64
variant?: TailwindBadgeVariants;
@@ -48,15 +46,13 @@ export const Badge = component$((props: TailwindBadgeProps) => {
4846
return (
4947
<div
5048
{...rest}
51-
class={clsq(
49+
class={[
5250
'badge',
5351
variants[variant],
5452
sizes[size],
55-
{
56-
[options.outline]: outline,
57-
},
58-
classNames,
59-
)}
53+
outline ? options.outline : '',
54+
`${classNames}`,
55+
]}
6056
>
6157
<Slot />
6258
</div>

packages/kit-tailwind/src/components/breadcrumb/breadcrumb.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { component$, HTMLAttributes, Slot } from '@builder.io/qwik';
22
import { Breadcrumb as HeadlessBreadcrumb } from '@qwik-ui/headless';
3-
import { clsq } from '@qwik-ui/shared';
43

54
type BreadcrumbProps = HTMLAttributes<HTMLElement>;
65

76
export const Breadcrumb = component$((props: BreadcrumbProps) => {
87
const { class: classNames, ...rest } = props;
98

109
return (
11-
<HeadlessBreadcrumb class={clsq('breadcrumbs ', classNames)} {...rest}>
10+
<HeadlessBreadcrumb class={`breadcrumbs ${classNames}`} {...rest}>
1211
<ul>
1312
<Slot />
1413
</ul>

packages/kit-tailwind/src/components/button-group/button-group.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { component$, HTMLAttributes, Slot } from '@builder.io/qwik';
22
import { ButtonGroup as HeadlessButtonGroup } from '@qwik-ui/headless';
3-
import { clsq } from '@qwik-ui/shared';
43

54
export type ButtonGroupProps = HTMLAttributes<HTMLElement>;
65

6+
// TODO: discuss this
7+
78
export const ButtonGroup = component$((props: ButtonGroupProps) => {
89
const { class: classNames, ...rest } = props;
910
return (
10-
<HeadlessButtonGroup class={clsq('btn-group', classNames)} {...rest}>
11+
<HeadlessButtonGroup class={['btn-group', classNames]} {...rest}>
1112
<Slot />
1213
</HeadlessButtonGroup>
1314
);

0 commit comments

Comments
 (0)