@luscii-healthtech/web-ui 44.0.1 → 44.2.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.
@@ -65,4 +65,17 @@ export interface CheckboxProps {
65
65
  */
66
66
  renderLabel?: (props: CheckboxProps) => JSX.Element | null;
67
67
  }
68
+ /**
69
+ * @deprecated - use `LabeledCheckbox` components in a `LabeledCheckboxGroup` instead.
70
+ *
71
+ * E.g. with React Hook Form:
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * <LabeledCheckboxGroup>
76
+ * <LabeledCheckbox {...register("orderedMeals")} label="Anchovies pasta" value="anchovies-pasta" />
77
+ * <LabeledCheckbox {...register("orderedMeals")} label="Banana dessert" value="banana-dessert" />
78
+ * </LabeledCheckboxGroup>
79
+ * ```
80
+ */
68
81
  export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,75 @@
1
+ import React from "react";
2
+ /**
3
+ * @example
4
+ * ```tsx
5
+ * <LabeledCheckbox
6
+ * name="newsletter"
7
+ * id="newsletter"
8
+ * value="yes"
9
+ * label="Subscribe to newsletter"
10
+ * helperText="We will send you updates about new features."
11
+ * />
12
+ * ```
13
+ */
14
+ export declare const LabeledCheckbox: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
15
+ ref?: ((instance: HTMLInputElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLInputElement> | null | undefined;
16
+ } & {
17
+ /**
18
+ * The visual label next to the checkbox indicator.
19
+ */
20
+ children?: React.ReactNode;
21
+ /**
22
+ * Additional classes to apply to the checkbox input HTML element.
23
+ */
24
+ inputClassName?: string;
25
+ /**
26
+ * Making `id` required, since it's important for accessibility.
27
+ */
28
+ id: string;
29
+ /**
30
+ * The visual label next to the checkbox indicator.
31
+ * Alternative to `children` for when it's easier to just pass
32
+ * a string as a prop. Will be rendered inside a `<Text>` component.
33
+ */
34
+ label?: React.ReactNode;
35
+ } & {
36
+ /**
37
+ * Any additional information to show underneath the label.
38
+ */
39
+ helperText?: React.ReactNode;
40
+ /**
41
+ * An error message that should be shown when there's something wrong
42
+ * with the user's input.
43
+ */
44
+ errorText?: React.ReactNode;
45
+ aside?: never;
46
+ }, "ref"> & React.RefAttributes<HTMLInputElement>>;
47
+ export declare const LabeledCheckboxCard: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
48
+ ref?: ((instance: HTMLInputElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLInputElement> | null | undefined;
49
+ } & {
50
+ /**
51
+ * The visual label next to the checkbox indicator.
52
+ */
53
+ children?: React.ReactNode;
54
+ /**
55
+ * Additional classes to apply to the checkbox input HTML element.
56
+ */
57
+ inputClassName?: string;
58
+ /**
59
+ * Making `id` required, since it's important for accessibility.
60
+ */
61
+ id: string;
62
+ /**
63
+ * The visual label next to the checkbox indicator.
64
+ * Alternative to `children` for when it's easier to just pass
65
+ * a string as a prop. Will be rendered inside a `<Text>` component.
66
+ */
67
+ label?: React.ReactNode;
68
+ } & {
69
+ /**
70
+ * Slot rendered to the side of the label and helper text.
71
+ */
72
+ aside?: React.ReactNode;
73
+ helperText?: never;
74
+ errorText?: never;
75
+ }, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ type Props = React.ComponentPropsWithoutRef<"fieldset"> & {
3
+ children: React.ReactNode;
4
+ title?: string;
5
+ className?: string;
6
+ /**
7
+ * Over how many columns the checkbox cards should be distributed.
8
+ */
9
+ columns?: 1 | 2 | 3 | 4;
10
+ /**
11
+ * Any additional information to show underneath the radio group.
12
+ */
13
+ helperText?: React.ReactNode;
14
+ /**
15
+ * An error message that should be shown when there's something wrong
16
+ * with the user's input.
17
+ */
18
+ errorText?: React.ReactNode;
19
+ };
20
+ /**
21
+ * This component is used to group radio buttons together with a title, and provide
22
+ * a semantic helper and error text to the group. It requires children to function,
23
+ * in practice these are always `LabeledCheckboxCard` components.
24
+ */
25
+ export declare const LabeledCheckboxCardGroup: React.FC<Props>;
26
+ export {};
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ type Props = {
3
+ children: React.ReactNode;
4
+ title?: string;
5
+ className?: string;
6
+ /**
7
+ * Any additional information to show underneath the radio group.
8
+ */
9
+ helperText?: React.ReactNode;
10
+ /**
11
+ * An error message that should be shown when there's something wrong
12
+ * with the user's input.
13
+ */
14
+ errorText?: React.ReactNode;
15
+ };
16
+ /**
17
+ * This component is used to group radio buttons together with a title, and provide
18
+ * a semantic helper and error text to the group. It requires children to function,
19
+ * in practice these are always `LabeledCheckbox` components (as opposed to `LabeledCheckbox`
20
+ * and `LabeledInput`, which provide the HTML `input` element themselves).
21
+ */
22
+ export declare const LabeledCheckboxGroup: React.FC<Props>;
23
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ export declare const StyledCheckbox: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
3
+ ref?: ((instance: HTMLInputElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLInputElement> | null | undefined;
4
+ }, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -30,6 +30,10 @@ export { TertiaryIconButton } from "./components/ButtonV2/TertiaryIconButton";
30
30
  export { default as Carousel } from "./components/Carousel/Carousel";
31
31
  export { default as CenteredHero } from "./components/CenteredHero/CenteredHero";
32
32
  export { Checkbox } from "./components/Checkbox/Checkbox";
33
+ export { LabeledCheckbox } from "./components/Checkbox/LabeledCheckbox";
34
+ export { LabeledCheckboxGroup } from "./components/Checkbox/LabeledCheckboxGroup";
35
+ export { LabeledCheckboxCard } from "./components/Checkbox/LabeledCheckbox";
36
+ export { LabeledCheckboxCardGroup } from "./components/Checkbox/LabeledCheckboxCardGroup";
33
37
  export { Chip } from "./components/Chip/Chip";
34
38
  export { ConfirmationDialog } from "./components/ConfirmationDialog/ConfirmationDialog";
35
39
  export type { ConfirmationDialogChoice, ConfirmationDialogProps, ConfirmationDialogTitleProps, } from "./components/ConfirmationDialog/types/ConfirmationDialog.types";
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { type StoryObj } from "@storybook/react-vite";
3
+ declare const meta: {
4
+ title: string;
5
+ component: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
6
+ ref?: ((instance: HTMLInputElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLInputElement> | null | undefined;
7
+ } & {
8
+ children?: React.ReactNode;
9
+ inputClassName?: string;
10
+ id: string;
11
+ label?: React.ReactNode;
12
+ } & {
13
+ helperText?: React.ReactNode;
14
+ errorText?: React.ReactNode;
15
+ aside?: never;
16
+ }, "ref"> & React.RefAttributes<HTMLInputElement>>;
17
+ parameters: {
18
+ backgrounds: {
19
+ default: string;
20
+ };
21
+ docs: {
22
+ helperText: {
23
+ component: string;
24
+ };
25
+ };
26
+ };
27
+ };
28
+ export default meta;
29
+ type Story = StoryObj<typeof meta>;
30
+ export declare const Base: Story;
31
+ export declare const Overview: Story;
32
+ export declare const OverviewLabeledCheckboxCard: Story;
33
+ export declare const LabeledCheckboxCardGroupLarge: Story;
34
+ export declare const Disabled: Story;
35
+ export declare const MultipleCheckboxes: Story;
36
+ export declare const WithHelperAndErrorText: Story;
@@ -115,6 +115,7 @@
115
115
  --ui-primitive-color-grey-700: #7387a4;
116
116
  --ui-primitive-color-grey-800: #3a4657;
117
117
  --ui-primitive-color-grey-900: #162130;
118
+ --ui-primitive-color-brand-100: #eff6ff;
118
119
  --ui-primitive-color-brand-500: #1d4ed8;
119
120
  --ui-primitive-color-brand-700: #1e40af;
120
121
  --ui-primitive-color-brand-900: #112d9c;
@@ -1004,6 +1005,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1004
1005
  .ui\:h-\[20px\] {
1005
1006
  height: 20px;
1006
1007
  }
1008
+ .ui\:h-\[22px\] {
1009
+ height: 22px;
1010
+ }
1007
1011
  .ui\:h-\[24px\] {
1008
1012
  height: 24px;
1009
1013
  }
@@ -1316,6 +1320,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1316
1320
  .ui\:max-w-\[500px\] {
1317
1321
  max-width: 500px;
1318
1322
  }
1323
+ .ui\:max-w-\[900px\] {
1324
+ max-width: 900px;
1325
+ }
1319
1326
  .ui\:max-w-\[calc\(100dvw-\(var\(--ui-spacing-xl\)\)\)\] {
1320
1327
  max-width: calc(100dvw - (var(--ui-spacing-xl)));
1321
1328
  }
@@ -1349,6 +1356,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1349
1356
  .ui\:flex-initial {
1350
1357
  flex: 0 auto;
1351
1358
  }
1359
+ .ui\:flex-shrink-0 {
1360
+ flex-shrink: 0;
1361
+ }
1352
1362
  .ui\:shrink-0 {
1353
1363
  flex-shrink: 0;
1354
1364
  }
@@ -1531,6 +1541,18 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1531
1541
  .ui\:appearance-none {
1532
1542
  appearance: none;
1533
1543
  }
1544
+ .ui\:grid-cols-1 {
1545
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1546
+ }
1547
+ .ui\:grid-cols-2 {
1548
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1549
+ }
1550
+ .ui\:grid-cols-3 {
1551
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1552
+ }
1553
+ .ui\:grid-cols-4 {
1554
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1555
+ }
1534
1556
  .ui\:grid-cols-\[100px_auto\] {
1535
1557
  grid-template-columns: 100px auto;
1536
1558
  }
@@ -1677,6 +1699,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1677
1699
  .ui\:gap-x-2 {
1678
1700
  column-gap: calc(var(--ui-spacing) * 2);
1679
1701
  }
1702
+ .ui\:gap-x-m {
1703
+ column-gap: var(--ui-spacing-m);
1704
+ }
1680
1705
  .ui\:gap-x-s {
1681
1706
  column-gap: var(--ui-spacing-s);
1682
1707
  }
@@ -1718,6 +1743,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
1718
1743
  margin-inline-end: calc(calc(var(--ui-spacing) * 8) * calc(1 - var(--tw-space-x-reverse)));
1719
1744
  }
1720
1745
  }
1746
+ .ui\:gap-y-xs {
1747
+ row-gap: var(--ui-spacing-xs);
1748
+ }
1721
1749
  .ui\:divide-x {
1722
1750
  :where(& > :not(:last-child)) {
1723
1751
  --tw-divide-x-reverse: 0;
@@ -2024,6 +2052,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
2024
2052
  .ui\:border-black {
2025
2053
  border-color: var(--ui-color-black);
2026
2054
  }
2055
+ .ui\:border-border-neutral-primary-default {
2056
+ border-color: var(--ui-primitive-color-grey-700);
2057
+ }
2027
2058
  .ui\:border-border-success-primary-default {
2028
2059
  border-color: var(--ui-primitive-color-green-700);
2029
2060
  }
@@ -2907,6 +2938,9 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
2907
2938
  .ui\:text-text-error-primary-default {
2908
2939
  color: var(--ui-primitive-color-red-900);
2909
2940
  }
2941
+ .ui\:text-text-neutral-secondary-disabled {
2942
+ color: var(--ui-primitive-color-grey-500);
2943
+ }
2910
2944
  .ui\:text-transparent {
2911
2945
  color: transparent;
2912
2946
  }
@@ -3020,6 +3054,10 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3020
3054
  --tw-shadow: none;
3021
3055
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3022
3056
  }
3057
+ .ui\:ring {
3058
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3059
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3060
+ }
3023
3061
  .ui\:ring-1 {
3024
3062
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3025
3063
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -3027,6 +3065,12 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3027
3065
  .ui\:ring-black {
3028
3066
  --tw-ring-color: var(--ui-color-black);
3029
3067
  }
3068
+ .ui\:ring-border-brand-primary-default {
3069
+ --tw-ring-color: var(--ui-primitive-color-brand-700);
3070
+ }
3071
+ .ui\:ring-border-neutral-primary-default {
3072
+ --tw-ring-color: var(--ui-primitive-color-grey-700);
3073
+ }
3030
3074
  .ui\:outline {
3031
3075
  outline-style: var(--tw-outline-style);
3032
3076
  outline-width: 1px;
@@ -3413,18 +3457,36 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3413
3457
  left: 0px;
3414
3458
  }
3415
3459
  }
3460
+ .ui\:before\:block {
3461
+ &::before {
3462
+ content: var(--tw-content);
3463
+ display: block;
3464
+ }
3465
+ }
3416
3466
  .ui\:before\:h-1\.5 {
3417
3467
  &::before {
3418
3468
  content: var(--tw-content);
3419
3469
  height: 0.375rem;
3420
3470
  }
3421
3471
  }
3472
+ .ui\:before\:h-full {
3473
+ &::before {
3474
+ content: var(--tw-content);
3475
+ height: 100%;
3476
+ }
3477
+ }
3422
3478
  .ui\:before\:w-1\.5 {
3423
3479
  &::before {
3424
3480
  content: var(--tw-content);
3425
3481
  width: 0.375rem;
3426
3482
  }
3427
3483
  }
3484
+ .ui\:before\:w-full {
3485
+ &::before {
3486
+ content: var(--tw-content);
3487
+ width: 100%;
3488
+ }
3489
+ }
3428
3490
  .ui\:before\:w-m {
3429
3491
  &::before {
3430
3492
  content: var(--tw-content);
@@ -3505,6 +3567,24 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3505
3567
  background-color: var(--ui-color-white);
3506
3568
  }
3507
3569
  }
3570
+ .ui\:before\:bg-\[url\(\'data\:image\/svg\+xml\;utf8\,\%3Csvg\%20width\%3D\%2214\%22\%20height\%3D\%2211\%22\%20viewBox\%3D\%220\%200\%2014\%2011\%22\%20fill\%3D\%22none\%22\%20xmlns\%3D\%22http\%3A\%2F\%2Fwww\.w3\.org\%2F2000\%2Fsvg\%22\%3E\%3Cpath\%20d\%3D\%22M13\.0421\%200\.43918C13\.3233\%200\.720471\%2013\.4812\%201\.10193\%2013\.4812\%201\.49968C13\.4812\%201\.89743\%2013\.3233\%202\.27889\%2013\.0421\%202\.56018L5\.54207\%2010\.0602C5\.26078\%2010\.3414\%204\.87931\%2010\.4994\%204\.48157\%2010\.4994C4\.08382\%2010\.4994\%203\.70236\%2010\.3414\%203\.42107\%2010\.0602L0\.421068\%207\.06018C0\.147831\%206\.77728\%20-0\.00336092\%206\.39837\%205\.6704e-05\%206\.00508C0\.00347433\%205\.61178\%200\.161228\%205\.23556\%200\.43934\%204\.95745C0\.717452\%204\.67934\%201\.09367\%204\.52159\%201\.48697\%204\.51817C1\.88026\%204\.51475\%202\.25916\%204\.66594\%202\.54207\%204\.93918L4\.48157\%206\.87868L10\.9211\%200\.43918C11\.2024\%200\.157973\%2011\.5838\%200\%2011\.9816\%200C12\.3793\%200\%2012\.7608\%200\.157973\%2013\.0421\%200\.43918Z\%22\%20fill\%3D\%22white\%22\%2F\%3E\%3C\%2Fsvg\%3E\'\)\] {
3571
+ &::before {
3572
+ content: var(--tw-content);
3573
+ background-image: url('data:image/svg+xml;utf8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.0421%200.43918C13.3233%200.720471%2013.4812%201.10193%2013.4812%201.49968C13.4812%201.89743%2013.3233%202.27889%2013.0421%202.56018L5.54207%2010.0602C5.26078%2010.3414%204.87931%2010.4994%204.48157%2010.4994C4.08382%2010.4994%203.70236%2010.3414%203.42107%2010.0602L0.421068%207.06018C0.147831%206.77728%20-0.00336092%206.39837%205.6704e-05%206.00508C0.00347433%205.61178%200.161228%205.23556%200.43934%204.95745C0.717452%204.67934%201.09367%204.52159%201.48697%204.51817C1.88026%204.51475%202.25916%204.66594%202.54207%204.93918L4.48157%206.87868L10.9211%200.43918C11.2024%200.157973%2011.5838%200%2011.9816%200C12.3793%200%2012.7608%200.157973%2013.0421%200.43918Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');
3574
+ }
3575
+ }
3576
+ .ui\:before\:bg-center {
3577
+ &::before {
3578
+ content: var(--tw-content);
3579
+ background-position: center;
3580
+ }
3581
+ }
3582
+ .ui\:before\:bg-no-repeat {
3583
+ &::before {
3584
+ content: var(--tw-content);
3585
+ background-repeat: no-repeat;
3586
+ }
3587
+ }
3508
3588
  .ui\:before\:opacity-0 {
3509
3589
  &::before {
3510
3590
  content: var(--tw-content);
@@ -3517,6 +3597,14 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3517
3597
  opacity: 100%;
3518
3598
  }
3519
3599
  }
3600
+ .ui\:before\:transition-\[scale\] {
3601
+ &::before {
3602
+ content: var(--tw-content);
3603
+ transition-property: scale;
3604
+ transition-timing-function: var(--tw-ease, var(--ui-default-transition-timing-function));
3605
+ transition-duration: var(--tw-duration, var(--ui-default-transition-duration));
3606
+ }
3607
+ }
3520
3608
  .ui\:before\:transition-transform {
3521
3609
  &::before {
3522
3610
  content: var(--tw-content);
@@ -3545,6 +3633,13 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3545
3633
  transition-duration: 200ms;
3546
3634
  }
3547
3635
  }
3636
+ .ui\:before\:ease-\[cubic-bezier\(\.17\,\.67\,\.16\,1\.5\)\] {
3637
+ &::before {
3638
+ content: var(--tw-content);
3639
+ --tw-ease: cubic-bezier(.17,.67,.16,1.5);
3640
+ transition-timing-function: cubic-bezier(.17,.67,.16,1.5);
3641
+ }
3642
+ }
3548
3643
  .ui\:before\:ease-\[cubic-bezier\(\.47\,\.34\,\.52\,1\.39\)\] {
3549
3644
  &::before {
3550
3645
  content: var(--tw-content);
@@ -3603,6 +3698,12 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3603
3698
  animation-duration: 200ms;
3604
3699
  }
3605
3700
  }
3701
+ .ui\:before\:ease-\[cubic-bezier\(\.17\,\.67\,\.16\,1\.5\)\] {
3702
+ &::before {
3703
+ content: var(--tw-content);
3704
+ animation-timing-function: cubic-bezier(.17,.67,.16,1.5);
3705
+ }
3706
+ }
3606
3707
  .ui\:before\:ease-\[cubic-bezier\(\.47\,\.34\,\.52\,1\.39\)\] {
3607
3708
  &::before {
3608
3709
  content: var(--tw-content);
@@ -3856,11 +3957,21 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3856
3957
  place-content: center;
3857
3958
  }
3858
3959
  }
3960
+ .ui\:checked\:border-border-brand-primary-default {
3961
+ &:checked {
3962
+ border-color: var(--ui-primitive-color-brand-700);
3963
+ }
3964
+ }
3859
3965
  .ui\:checked\:border-primary {
3860
3966
  &:checked {
3861
3967
  border-color: var(--ui-color-blue-800);
3862
3968
  }
3863
3969
  }
3970
+ .ui\:checked\:bg-icon-brand-primary-default {
3971
+ &:checked {
3972
+ background-color: var(--ui-primitive-color-brand-700);
3973
+ }
3974
+ }
3864
3975
  .ui\:checked\:bg-primary {
3865
3976
  &:checked {
3866
3977
  background-color: var(--ui-color-blue-800);
@@ -3881,6 +3992,13 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
3881
3992
  }
3882
3993
  }
3883
3994
  }
3995
+ .ui\:hover\:border-border-neutral-primary-hovered {
3996
+ &:hover {
3997
+ @media (hover: hover) {
3998
+ border-color: var(--ui-primitive-color-brand-500);
3999
+ }
4000
+ }
4001
+ }
3884
4002
  .ui\:hover\:border-input-border-dark {
3885
4003
  &:hover {
3886
4004
  @media (hover: hover) {
@@ -4119,6 +4237,13 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
4119
4237
  }
4120
4238
  }
4121
4239
  }
4240
+ .ui\:hover\:ring-border-neutral-primary-hovered {
4241
+ &:hover {
4242
+ @media (hover: hover) {
4243
+ --tw-ring-color: var(--ui-primitive-color-brand-500);
4244
+ }
4245
+ }
4246
+ }
4122
4247
  .ui\:hover\:transition-shadow {
4123
4248
  &:hover {
4124
4249
  @media (hover: hover) {
@@ -4135,6 +4260,15 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
4135
4260
  }
4136
4261
  }
4137
4262
  }
4263
+ .ui\:checked\:hover\:bg-icon-brand-primary-hover {
4264
+ &:checked {
4265
+ &:hover {
4266
+ @media (hover: hover) {
4267
+ background-color: var(--ui-primitive-color-brand-500);
4268
+ }
4269
+ }
4270
+ }
4271
+ }
4138
4272
  .ui\:focus\:z-\[4\] {
4139
4273
  &:focus {
4140
4274
  z-index: 4;
@@ -4311,6 +4445,68 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
4311
4445
  transition-duration: var(--tw-duration, var(--ui-default-transition-duration));
4312
4446
  }
4313
4447
  }
4448
+ .ui\:disabled\:cursor-not-allowed {
4449
+ &:disabled {
4450
+ cursor: not-allowed;
4451
+ }
4452
+ }
4453
+ .ui\:disabled\:border-border-neutral-primary-disabled {
4454
+ &:disabled {
4455
+ border-color: var(--ui-primitive-color-grey-500);
4456
+ }
4457
+ }
4458
+ .ui\:disabled\:checked\:bg-background-brand-primary-disabled {
4459
+ &:disabled {
4460
+ &:checked {
4461
+ background-color: var(--ui-primitive-color-grey-500);
4462
+ }
4463
+ }
4464
+ }
4465
+ .ui\:has-checked\:ring-border-brand-primary-default {
4466
+ &:has(*:checked) {
4467
+ --tw-ring-color: var(--ui-primitive-color-brand-700);
4468
+ }
4469
+ }
4470
+ .ui\:has-checked\:not-has-disabled\:bg-background-neutral-secondary-hovered {
4471
+ &:has(*:checked) {
4472
+ &:not(*:has(*:disabled)) {
4473
+ background-color: var(
4474
+ --ui-primitive-color-brand-100
4475
+ );
4476
+ }
4477
+ }
4478
+ }
4479
+ .ui\:has-checked\:not-has-disabled\:ring-2 {
4480
+ &:has(*:checked) {
4481
+ &:not(*:has(*:disabled)) {
4482
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
4483
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4484
+ }
4485
+ }
4486
+ }
4487
+ .ui\:hover\:has-checked\:not-has-disabled\:ring-border-brand-primary-hovered {
4488
+ &:hover {
4489
+ @media (hover: hover) {
4490
+ &:has(*:checked) {
4491
+ &:not(*:has(*:disabled)) {
4492
+ --tw-ring-color: var(--ui-primitive-color-brand-500);
4493
+ }
4494
+ }
4495
+ }
4496
+ }
4497
+ }
4498
+ .ui\:has-disabled\:ring-border-neutral-primary-disabled {
4499
+ &:has(*:disabled) {
4500
+ --tw-ring-color: var(--ui-primitive-color-grey-500);
4501
+ }
4502
+ }
4503
+ .ui\:has-disabled\:checked\:bg-background-brand-primary-disabled {
4504
+ &:has(*:disabled) {
4505
+ &:checked {
4506
+ background-color: var(--ui-primitive-color-grey-500);
4507
+ }
4508
+ }
4509
+ }
4314
4510
  .ui\:data-\[side\=bottom\]\:slide-in-from-top-2 {
4315
4511
  &[data-side="bottom"] {
4316
4512
  --tw-enter-translate-y: -0.5rem;
@@ -4494,6 +4690,11 @@ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-se
4494
4690
  margin-top: calc(var(--ui-spacing) * 0);
4495
4691
  }
4496
4692
  }
4693
+ .ui\:sm\:mt-\[2px\] {
4694
+ @media (width >= 40rem) {
4695
+ margin-top: 2px;
4696
+ }
4697
+ }
4497
4698
  .ui\:sm\:ml-4 {
4498
4699
  @media (width >= 40rem) {
4499
4700
  margin-left: calc(var(--ui-spacing) * 4);