alicia-design-system 1.110.13 → 1.111.1

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.
Files changed (53) hide show
  1. package/dist/cjs/alicia-ui/common/Buttons/ButtonBrand.d.ts +34 -0
  2. package/dist/cjs/alicia-ui/common/Buttons/ButtonBrand.js +37 -0
  3. package/dist/cjs/alicia-ui/common/Buttons/ButtonBrand.js.map +1 -0
  4. package/dist/cjs/alicia-ui/common/List/ListBrand.d.ts +38 -0
  5. package/dist/cjs/alicia-ui/common/List/ListBrand.js +90 -0
  6. package/dist/cjs/alicia-ui/common/List/ListBrand.js.map +1 -0
  7. package/dist/cjs/alicia-ui/common/List/ListBrand.types.d.ts +140 -0
  8. package/dist/cjs/alicia-ui/common/List/ListBrand.types.js +3 -0
  9. package/dist/cjs/alicia-ui/common/List/ListBrand.types.js.map +1 -0
  10. package/dist/cjs/alicia-ui/common/Search/SearchBrand.d.ts +4 -0
  11. package/dist/cjs/alicia-ui/common/Search/SearchBrand.js +117 -0
  12. package/dist/cjs/alicia-ui/common/Search/SearchBrand.js.map +1 -0
  13. package/dist/cjs/alicia-ui/common/Search/SearchBrand.types.d.ts +231 -0
  14. package/dist/cjs/alicia-ui/common/Search/SearchBrand.types.js +35 -0
  15. package/dist/cjs/alicia-ui/common/Search/SearchBrand.types.js.map +1 -0
  16. package/dist/cjs/alicia-ui/common/Table/Table.js +3 -2
  17. package/dist/cjs/alicia-ui/common/Table/Table.js.map +1 -1
  18. package/dist/cjs/brand/index.d.ts +25 -0
  19. package/dist/cjs/brand/index.js +37 -0
  20. package/dist/cjs/brand/index.js.map +1 -0
  21. package/dist/cjs/styles/aliciaDesignTheme.d.ts +88 -0
  22. package/dist/cjs/styles/aliciaDesignTheme.js +401 -0
  23. package/dist/cjs/styles/aliciaDesignTheme.js.map +1 -0
  24. package/dist/cjs/styles/chakraTheme.d.ts +1 -1
  25. package/dist/cjs/styles/chakraTheme.js +2 -1
  26. package/dist/cjs/styles/chakraTheme.js.map +1 -1
  27. package/dist/esm/alicia-ui/common/Buttons/ButtonBrand.d.ts +34 -0
  28. package/dist/esm/alicia-ui/common/Buttons/ButtonBrand.js +34 -0
  29. package/dist/esm/alicia-ui/common/Buttons/ButtonBrand.js.map +1 -0
  30. package/dist/esm/alicia-ui/common/List/ListBrand.d.ts +38 -0
  31. package/dist/esm/alicia-ui/common/List/ListBrand.js +85 -0
  32. package/dist/esm/alicia-ui/common/List/ListBrand.js.map +1 -0
  33. package/dist/esm/alicia-ui/common/List/ListBrand.types.d.ts +140 -0
  34. package/dist/esm/alicia-ui/common/List/ListBrand.types.js +2 -0
  35. package/dist/esm/alicia-ui/common/List/ListBrand.types.js.map +1 -0
  36. package/dist/esm/alicia-ui/common/Search/SearchBrand.d.ts +4 -0
  37. package/dist/esm/alicia-ui/common/Search/SearchBrand.js +112 -0
  38. package/dist/esm/alicia-ui/common/Search/SearchBrand.js.map +1 -0
  39. package/dist/esm/alicia-ui/common/Search/SearchBrand.types.d.ts +231 -0
  40. package/dist/esm/alicia-ui/common/Search/SearchBrand.types.js +32 -0
  41. package/dist/esm/alicia-ui/common/Search/SearchBrand.types.js.map +1 -0
  42. package/dist/esm/alicia-ui/common/Table/Table.js +3 -2
  43. package/dist/esm/alicia-ui/common/Table/Table.js.map +1 -1
  44. package/dist/esm/brand/index.d.ts +25 -0
  45. package/dist/esm/brand/index.js +25 -0
  46. package/dist/esm/brand/index.js.map +1 -0
  47. package/dist/esm/styles/aliciaDesignTheme.d.ts +88 -0
  48. package/dist/esm/styles/aliciaDesignTheme.js +398 -0
  49. package/dist/esm/styles/aliciaDesignTheme.js.map +1 -0
  50. package/dist/esm/styles/chakraTheme.d.ts +1 -1
  51. package/dist/esm/styles/chakraTheme.js +2 -1
  52. package/dist/esm/styles/chakraTheme.js.map +1 -1
  53. package/package.json +14 -1
@@ -0,0 +1,34 @@
1
+ /// <reference types="react" />
2
+ import { type ButtonProps } from '@chakra-ui/react';
3
+ export type ButtonBrandProps = ButtonProps;
4
+ /**
5
+ * Brand-aware button component.
6
+ *
7
+ * Styles are defined in `aliciaDesignTheme.ts` via `buttonBrandRecipe`.
8
+ * The recipe is registered globally as `recipes.button`, extending Chakra's
9
+ * built-in button recipe — so existing buttons using `solid`, `outline` etc.
10
+ * are completely unaffected.
11
+ *
12
+ * Import via the `/brand` subpath:
13
+ * ```ts
14
+ * import { Button } from 'alicia-design-system/brand';
15
+ * ```
16
+ *
17
+ * @example Primary CTA
18
+ * ```tsx
19
+ * <Button variant="primary" onClick={handleClick}>
20
+ * Plan een gesprek
21
+ * </Button>
22
+ * ```
23
+ *
24
+ * @example Secondary
25
+ * ```tsx
26
+ * <Button variant="secondary">Bekijk platform</Button>
27
+ * ```
28
+ *
29
+ * @example Compact for header
30
+ * ```tsx
31
+ * <Button variant="primary" size="compact">Header CTA</Button>
32
+ * ```
33
+ */
34
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Button = void 0;
4
+ const react_1 = require("@chakra-ui/react");
5
+ // ─── Component ────────────────────────────────────────────────────────────────
6
+ /**
7
+ * Brand-aware button component.
8
+ *
9
+ * Styles are defined in `aliciaDesignTheme.ts` via `buttonBrandRecipe`.
10
+ * The recipe is registered globally as `recipes.button`, extending Chakra's
11
+ * built-in button recipe — so existing buttons using `solid`, `outline` etc.
12
+ * are completely unaffected.
13
+ *
14
+ * Import via the `/brand` subpath:
15
+ * ```ts
16
+ * import { Button } from 'alicia-design-system/brand';
17
+ * ```
18
+ *
19
+ * @example Primary CTA
20
+ * ```tsx
21
+ * <Button variant="primary" onClick={handleClick}>
22
+ * Plan een gesprek
23
+ * </Button>
24
+ * ```
25
+ *
26
+ * @example Secondary
27
+ * ```tsx
28
+ * <Button variant="secondary">Bekijk platform</Button>
29
+ * ```
30
+ *
31
+ * @example Compact for header
32
+ * ```tsx
33
+ * <Button variant="primary" size="compact">Header CTA</Button>
34
+ * ```
35
+ */
36
+ exports.Button = react_1.Button;
37
+ //# sourceMappingURL=ButtonBrand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonBrand.js","sourceRoot":"","sources":["../../../../../src/alicia-ui/common/Buttons/ButtonBrand.tsx"],"names":[],"mappings":";;;AAAA,4CAA4E;AAM5E,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACU,QAAA,MAAM,GAAG,cAAY,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type CustomListItemProps, type ListProps } from './ListBrand.types';
2
+ export type { ListOption, ListProps, CustomListItemProps, } from './ListBrand.types';
3
+ export declare const CustomListItem: (props: CustomListItemProps) => import("react/jsx-runtime").JSX.Element;
4
+ /**
5
+ * Brand-aware ordered/unordered list component.
6
+ *
7
+ * Import via the `/brand` subpath to use the Alicia design tokens:
8
+ * ```ts
9
+ * import { List } from 'alicia-design-system/brand';
10
+ * ```
11
+ *
12
+ * @example Plain ordered list
13
+ * ```tsx
14
+ * <List
15
+ * list={steps}
16
+ * type="ordered"
17
+ * bubbleProps={{ bg: 'volt.500', color: 'ink.900' }}
18
+ * enableVisualEffects
19
+ * />
20
+ * ```
21
+ *
22
+ * @example Card variant with staggered entrance
23
+ * ```tsx
24
+ * <List
25
+ * list={steps}
26
+ * type="ordered"
27
+ * variant="card"
28
+ * title="Wat ga je doen?"
29
+ * cardBg="forest.600"
30
+ * bubbleProps={{ bg: 'volt.500', color: 'ink.900' }}
31
+ * itemLabelProps={{ color: 'white' }}
32
+ * itemDescriptionProps={{ color: 'whiteAlpha.700' }}
33
+ * dividerColor="border.onForest"
34
+ * enableVisualEffects
35
+ * />
36
+ * ```
37
+ */
38
+ export declare const List: (props: ListProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.List = exports.CustomListItem = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("@chakra-ui/react");
6
+ const polished_1 = require("polished");
7
+ const icons_1 = require("../../icons");
8
+ const CustomListItem = (props) => {
9
+ const { data, type = 'ordered', bubbleProps, itemLabelProps, itemDescriptionProps, itemProps, withRightIcon, enableVisualEffects, } = props;
10
+ const isClickable = props.isClickable === true;
11
+ const isSelected = isClickable && props.selectedValue === data.value;
12
+ const selectedBg = isClickable ? props.selectedItemColor : undefined;
13
+ const isCard = props.variant === 'card';
14
+ const itemDelay = enableVisualEffects
15
+ ? (isCard ? 0.3 : 0) + data.index * 0.15
16
+ : 0;
17
+ const handleClick = () => {
18
+ if (isClickable) {
19
+ props.onItemClick({ value: data.value, label: data.label });
20
+ }
21
+ };
22
+ const ArrowIcon = (0, icons_1.ArrowForwardCircleIcon)({
23
+ fillColor: 'currentColor',
24
+ });
25
+ return ((0, jsx_runtime_1.jsxs)(react_1.List.Item, Object.assign({ css: {
26
+ listStyle: 'none',
27
+ '&[data-selected=true]': { background: selectedBg },
28
+ }, display: "flex", gap: (0, polished_1.rem)(16), alignItems: "center", py: (0, polished_1.rem)(18), cursor: isClickable ? 'pointer' : 'auto', transition: "background 0.15s ease", px: isClickable ? (0, polished_1.rem)(8) : 0, _hover: isClickable ? { bg: selectedBg } : undefined }, itemProps, { "data-testid": "list-brand-item", "data-selected": isSelected, animationStyle: enableVisualEffects ? 'alicia.fadeUp' : undefined, style: enableVisualEffects ? { animationDelay: `${itemDelay}s` } : undefined, onClick: handleClick, children: [type === 'ordered' && ((0, jsx_runtime_1.jsx)(react_1.Box, Object.assign({ borderRadius: "full", w: (0, polished_1.rem)(44), h: (0, polished_1.rem)(44), flexShrink: 0, justifyContent: "center", alignItems: "center", display: "flex" }, bubbleProps, { children: (0, jsx_runtime_1.jsx)(react_1.Text, { textStyle: "body.md", fontWeight: "700", fontVariantNumeric: "tabular-nums", children: data.index + 1 }) }))), (0, jsx_runtime_1.jsxs)(react_1.Stack, { gap: (0, polished_1.rem)(4), flex: 1, children: [(0, jsx_runtime_1.jsx)(react_1.Text, Object.assign({ textStyle: "body.lg", fontWeight: "600" }, itemLabelProps, { children: data.label })), (data === null || data === void 0 ? void 0 : data.description) && ((0, jsx_runtime_1.jsx)(react_1.Text, Object.assign({ as: "span", textStyle: "body.md" }, itemDescriptionProps, { children: data === null || data === void 0 ? void 0 : data.description })))] }), withRightIcon && ((0, jsx_runtime_1.jsx)(ArrowIcon, { flexShrink: 0, width: (0, polished_1.rem)(30), height: (0, polished_1.rem)(30) }))] })));
29
+ };
30
+ exports.CustomListItem = CustomListItem;
31
+ // ─── List ─────────────────────────────────────────────────────────────────────
32
+ /**
33
+ * Brand-aware ordered/unordered list component.
34
+ *
35
+ * Import via the `/brand` subpath to use the Alicia design tokens:
36
+ * ```ts
37
+ * import { List } from 'alicia-design-system/brand';
38
+ * ```
39
+ *
40
+ * @example Plain ordered list
41
+ * ```tsx
42
+ * <List
43
+ * list={steps}
44
+ * type="ordered"
45
+ * bubbleProps={{ bg: 'volt.500', color: 'ink.900' }}
46
+ * enableVisualEffects
47
+ * />
48
+ * ```
49
+ *
50
+ * @example Card variant with staggered entrance
51
+ * ```tsx
52
+ * <List
53
+ * list={steps}
54
+ * type="ordered"
55
+ * variant="card"
56
+ * title="Wat ga je doen?"
57
+ * cardBg="forest.600"
58
+ * bubbleProps={{ bg: 'volt.500', color: 'ink.900' }}
59
+ * itemLabelProps={{ color: 'white' }}
60
+ * itemDescriptionProps={{ color: 'whiteAlpha.700' }}
61
+ * dividerColor="border.onForest"
62
+ * enableVisualEffects
63
+ * />
64
+ * ```
65
+ */
66
+ const List = (props) => {
67
+ var _a;
68
+ const fx = (_a = props.enableVisualEffects) !== null && _a !== void 0 ? _a : false;
69
+ const { dividerColor } = props;
70
+ const listItems = props.list.flatMap(({ value, label, description }, index) => {
71
+ const item = ((0, jsx_runtime_1.jsx)(exports.CustomListItem, Object.assign({ data: { value, label, description, index } }, props), `item-${index}`));
72
+ if (index < props.list.length - 1) {
73
+ return [
74
+ item,
75
+ (0, jsx_runtime_1.jsx)(react_1.Separator, { borderColor: dividerColor }, `sep-${index}`),
76
+ ];
77
+ }
78
+ return [item];
79
+ });
80
+ const list = ((0, jsx_runtime_1.jsx)(react_1.List.Root, { "data-testid": "list-brand-root", children: listItems }));
81
+ const wrapWithCard = (list) => {
82
+ var _a;
83
+ if (props.variant !== 'card')
84
+ return null;
85
+ return ((0, jsx_runtime_1.jsxs)(react_1.Box, { bg: (_a = props.cardBg) !== null && _a !== void 0 ? _a : 'forest.500', borderRadius: "xl", p: (0, polished_1.rem)(32), boxShadow: "card", "data-testid": "list-brand-card", animationStyle: fx ? 'alicia.fadeUp' : undefined, children: [(props.title || props.subtitle) && ((0, jsx_runtime_1.jsxs)(react_1.Stack, { gap: (0, polished_1.rem)(4), mb: (0, polished_1.rem)(24), children: [props.title && ((0, jsx_runtime_1.jsx)(react_1.Text, Object.assign({ textStyle: "heading.lg", fontWeight: "700" }, props.itemLabelProps, { children: props.title }))), props.subtitle && ((0, jsx_runtime_1.jsx)(react_1.Text, Object.assign({ textStyle: "body.lg" }, props.itemDescriptionProps, { children: props.subtitle })))] })), list] }));
86
+ };
87
+ return ((0, jsx_runtime_1.jsx)(react_1.Flex, { flexDirection: "column", w: "inherit", children: props.variant === 'card' ? wrapWithCard(list) : list }));
88
+ };
89
+ exports.List = List;
90
+ //# sourceMappingURL=ListBrand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBrand.js","sourceRoot":"","sources":["../../../../../src/alicia-ui/common/List/ListBrand.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Type definitions for the brand List component.
3
+ * See ListBrand.tsx for implementation.
4
+ */
5
+ import { type BoxProps, type SystemStyleObject, type TextProps } from '@chakra-ui/react';
6
+ export type ListOption = {
7
+ /** Unique identifier for this item. Used as the selected value in clickable mode. */
8
+ value: string;
9
+ /** Primary text label displayed on the item row. */
10
+ label: string;
11
+ /** Optional secondary text shown below the label. */
12
+ description?: string;
13
+ };
14
+ /** Props present on every variant / clickable state. */
15
+ type ListBaseProps = {
16
+ /** Array of items to render in the list. */
17
+ list: ListOption[];
18
+ /**
19
+ * Render style of the list.
20
+ * - `'ordered'` — each item shows a numbered circular bubble on the left.
21
+ * - `'unordered'` — plain list with no bubble.
22
+ * @default 'ordered'
23
+ */
24
+ type?: 'ordered' | 'unordered';
25
+ /**
26
+ * When `true`, an arrow icon is appended to the right of every item.
27
+ * Icon color is fixed to the `text` token.
28
+ * @default false
29
+ */
30
+ withRightIcon?: boolean;
31
+ /**
32
+ * Override any Chakra `Box` props on the numbered bubble (the circular
33
+ * icon shown when `type="ordered"`).
34
+ *
35
+ * Defaults: `borderRadius="full"`, `w=44px`, `h=44px`.
36
+ *
37
+ * Use `bg` and `color` to set the bubble background and number colour:
38
+ * @example
39
+ * bubbleProps={{ bg: 'volt.500', color: 'ink.900' }}
40
+ */
41
+ bubbleProps?: BoxProps;
42
+ /**
43
+ * Override any Chakra `Text` props on each item's label (primary line).
44
+ *
45
+ * Defaults: `textStyle="body.lg"`, `fontWeight="600"`.
46
+ * @example
47
+ * itemLabelProps={{ color: 'white', fontWeight: '700' }}
48
+ */
49
+ itemLabelProps?: TextProps;
50
+ /**
51
+ * Override any Chakra `Text` props on each item's description (secondary line).
52
+ *
53
+ * Default: `textStyle="body.md"`.
54
+ * @example
55
+ * itemDescriptionProps={{ color: 'whiteAlpha.700' }}
56
+ */
57
+ itemDescriptionProps?: TextProps;
58
+ /**
59
+ * Override Chakra style tokens on each item row (`<li>` rendered as Flex).
60
+ *
61
+ * Defaults: `py="4.5"`, `gap=4`, `alignItems="center"`.
62
+ * @example
63
+ * itemProps={{ py: 6, gap: 6 }}
64
+ */
65
+ itemProps?: SystemStyleObject;
66
+ /**
67
+ * Token or CSS value for the hairline divider drawn between items.
68
+ * @example
69
+ * dividerColor="border.onForest" // on dark forest card
70
+ * dividerColor="border" // on light background
71
+ */
72
+ dividerColor?: string;
73
+ /**
74
+ * When `true`, items and the card container fade up on mount using the
75
+ * `alicia.fadeUp` animation style defined in `aliciaDesignTheme.ts`.
76
+ * Items are staggered by 150 ms each.
77
+ * @default false
78
+ */
79
+ enableVisualEffects?: boolean;
80
+ };
81
+ /** Default variant — plain list with no card wrapper. */
82
+ type PlainVariant = {
83
+ variant?: 'plain';
84
+ };
85
+ /**
86
+ * Card variant — wraps the list in a styled container with optional
87
+ * title and subtitle. Typically used on dark (`forest`) backgrounds.
88
+ */
89
+ type CardVariant = {
90
+ variant: 'card';
91
+ /** Optional heading shown above the list inside the card. */
92
+ title?: string;
93
+ /** Optional supporting text shown below the title. */
94
+ subtitle?: string;
95
+ /**
96
+ * Background color token for the card container.
97
+ * @default 'forest.500'
98
+ */
99
+ cardBg?: string;
100
+ };
101
+ type VariantProps = PlainVariant | CardVariant;
102
+ /** Non-interactive list — items cannot be selected. */
103
+ type NotClickable = {
104
+ /** @default false */
105
+ isClickable?: false;
106
+ /** Not available when `isClickable` is false. */
107
+ onItemClick?: never;
108
+ /** Not available when `isClickable` is false. */
109
+ selectedValue?: never;
110
+ /** Not available when `isClickable` is false. */
111
+ selectedItemColor?: never;
112
+ };
113
+ /** Interactive list — items can be tapped/clicked and one can be pre-selected. */
114
+ type IsClickable = {
115
+ /** Set to `true` to enable row selection. */
116
+ isClickable: true;
117
+ /**
118
+ * Callback fired when the user clicks an item.
119
+ * Receives the full `ListOption` object (`{ value, label }`).
120
+ */
121
+ onItemClick: (item: ListOption) => void;
122
+ /** Value of the currently selected item (controlled). */
123
+ selectedValue?: string;
124
+ /**
125
+ * Background color token applied to the hovered / selected row.
126
+ * @example selectedItemColor="forest.50"
127
+ */
128
+ selectedItemColor?: string;
129
+ };
130
+ type ClickableProps = NotClickable | IsClickable;
131
+ export type ListProps = ListBaseProps & VariantProps & ClickableProps;
132
+ export type CustomListItemProps = ListProps & {
133
+ data: {
134
+ value: string;
135
+ label: string;
136
+ description?: string;
137
+ index: number;
138
+ };
139
+ };
140
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ListBrand.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBrand.types.js","sourceRoot":"","sources":["../../../../../src/alicia-ui/common/List/ListBrand.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { BoldTextI, SearchProps } from './SearchBrand.types';
3
+ export declare const boldedText: ({ text, shouldBeBold }: BoldTextI) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const Search: FC<SearchProps>;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Search = exports.boldedText = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_2 = require("@chakra-ui/react");
7
+ const polished_1 = require("polished");
8
+ const pi_1 = require("react-icons/pi");
9
+ const rx_1 = require("react-icons/rx");
10
+ const lu_1 = require("react-icons/lu");
11
+ const SearchBrand_types_1 = require("./SearchBrand.types");
12
+ const boldedText = ({ text, shouldBeBold }) => {
13
+ const textArray = text.split(RegExp(shouldBeBold, 'ig'));
14
+ const match = text.match(RegExp(shouldBeBold, 'ig'));
15
+ return ((0, jsx_runtime_1.jsx)(react_2.Text, { lineClamp: 1, fontSize: (0, polished_1.rem)(16), children: textArray.map((item, index) => ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [item, index !== textArray.length - 1 && match ? ((0, jsx_runtime_1.jsx)("b", { children: match[index] })) : null] }, index))) }));
16
+ };
17
+ exports.boldedText = boldedText;
18
+ const Search = ({ variant = SearchBrand_types_1.SearchVariantEnum.DEFAULT, query, options = [], loading = false, isError = undefined, withRightIcon = true, customRightIcon = undefined, setQuery, onClickItem, selectedItem = undefined, renderItem = undefined, emptyMessage = 'No results found', skeletonCount = 3, selected = undefined, inputProps = undefined, mainContainerProps = undefined, inputContainerProps = undefined, listRootProps = undefined, skeletonProps = undefined, listItemProps = undefined, emptyItemProps = undefined, emptyRender = undefined, }) => {
19
+ const inputRef = (0, react_1.useRef)(null);
20
+ const hasQuery = query !== '' && query !== undefined;
21
+ // ── isCard ───────────────────────────────────────────────────────────────────
22
+ const isCard = variant === SearchBrand_types_1.SearchVariantEnum.CARD;
23
+ // ── isEmpty ───────────────────────────────────────────────────────────────────
24
+ const isEmpty = !loading && options.length === 0 && hasQuery;
25
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, Object.assign({ direction: "column", width: "100%", "data-testid": "search-container" }, (isCard && {
26
+ borderRadius: 'lg',
27
+ bg: 'volt.400',
28
+ px: (0, polished_1.rem)(20),
29
+ pt: (0, polished_1.rem)(16),
30
+ pb: (0, polished_1.rem)(20),
31
+ }), mainContainerProps, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, Object.assign({ width: "inherit", border: "input", borderRadius: "lg", _focusWithin: {
32
+ borderColor: 'border.focus',
33
+ boxShadow: 'focus',
34
+ }, px: (0, polished_1.rem)(16), py: (0, polished_1.rem)(9), bg: "white", justifyContent: "space-between", alignItems: "center", gap: (0, polished_1.rem)(8) }, ((inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled) && {
35
+ opacity: 0.5,
36
+ cursor: 'not-allowed',
37
+ }), (isCard && {
38
+ bg: 'transparent',
39
+ borderRadius: 'none',
40
+ _focusWithin: {
41
+ borderLeft: 'none',
42
+ borderRight: 'none',
43
+ borderTop: 'none',
44
+ boxShadow: 'none',
45
+ },
46
+ borderLeft: 'none',
47
+ borderRight: 'none',
48
+ borderTop: 'none',
49
+ borderBottom: '1px solid',
50
+ borderBottomColor: 'border.focus',
51
+ }), (isError && {
52
+ color: 'critical.500',
53
+ borderColor: 'critical.500',
54
+ boxShadow: 'error',
55
+ _focusWithin: {
56
+ borderColor: 'critical.500',
57
+ boxShadow: 'error',
58
+ },
59
+ }), inputContainerProps, { children: [(0, jsx_runtime_1.jsx)(react_2.Input, Object.assign({ defaultValue: query, ref: inputRef, autoFocus: true, "data-testid": "search-input", px: (0, polished_1.rem)(2), py: (0, polished_1.rem)(1), border: "none", boxShadow: "none", _focusVisible: {
60
+ boxShadow: 'none',
61
+ borderColor: 'transparent',
62
+ outline: 'none',
63
+ }, css: {
64
+ '&:focus, &:focus-visible': {
65
+ outline: 'none',
66
+ boxShadow: 'none',
67
+ },
68
+ }, _placeholder: {
69
+ color: 'fg.subtle',
70
+ }, textStyle: "body.lg", onChange: (e) => setQuery(e.target.value) }, inputProps)), (0, jsx_runtime_1.jsx)(react_2.Flex, Object.assign({ as: react_2.chakra.button, boxSize: (0, polished_1.rem)(20), cursor: "pointer", "data-testid": "search-clear-button", onClick: () => {
71
+ setQuery('');
72
+ if (inputRef.current) {
73
+ inputRef.current.value = '';
74
+ }
75
+ if (hasQuery)
76
+ onClickItem(undefined);
77
+ } }, (isError && {
78
+ color: 'critical.500',
79
+ }), ((inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled) && {
80
+ opacity: 0.5,
81
+ cursor: 'not-allowed',
82
+ }), { children: hasQuery ? ((0, jsx_runtime_1.jsx)(react_2.Icon, { "aria-label": "Clear search", as: rx_1.RxCross2, height: (0, polished_1.rem)(20), width: (0, polished_1.rem)(20) })) : ((0, jsx_runtime_1.jsx)(react_2.Icon, { "aria-label": "Search", as: pi_1.PiMagnifyingGlassBold, height: (0, polished_1.rem)(20), width: (0, polished_1.rem)(20) })) }))] })), loading ? ((0, jsx_runtime_1.jsx)(react_2.List.Root, Object.assign({ my: (0, polished_1.rem)(12), gap: (0, polished_1.rem)(8) }, listRootProps, { children: Array.from({ length: skeletonCount !== null && skeletonCount !== void 0 ? skeletonCount : 3 }).map((_, i) => ((0, jsx_runtime_1.jsx)(react_2.Skeleton, Object.assign({ as: react_2.List.Item, "data-testid": `search-skeleton-${i}`, css: { display: 'block' }, border: "default", borderRadius: "sm", px: (0, polished_1.rem)(12), py: (0, polished_1.rem)(4), height: (0, polished_1.rem)(60), loading: true }, skeletonProps), i))) }))) : isEmpty ? ((0, jsx_runtime_1.jsx)(react_2.List.Root, Object.assign({ my: (0, polished_1.rem)(12), gap: (0, polished_1.rem)(8) }, listRootProps, { children: emptyRender ? (emptyRender(query !== null && query !== void 0 ? query : '')) : ((0, jsx_runtime_1.jsx)(react_2.List.Item, Object.assign({ as: react_2.Flex, justifyContent: "center", alignItems: "center", px: (0, polished_1.rem)(12), py: (0, polished_1.rem)(4), "data-testid": "search-empty-message" }, emptyItemProps, { children: (0, jsx_runtime_1.jsx)(react_2.Text, { textStyle: "caption", color: "gray.500", children: emptyMessage }) }))) }))) : ((0, jsx_runtime_1.jsx)(react_2.List.Root, Object.assign({ my: (0, polished_1.rem)(12), gap: (0, polished_1.rem)(8) }, listRootProps, { children: options.map((option, i) => {
83
+ var _a, _b, _c, _d;
84
+ return ((0, jsx_runtime_1.jsx)(react_2.List.Item, Object.assign({ as: react_2.chakra.button, "data-selected": selectedItem === (option === null || option === void 0 ? void 0 : option.value), "aria-pressed": selectedItem === (option === null || option === void 0 ? void 0 : option.value), "data-testid": `search-option-${i}`, color: "text", cursor: "pointer", onClick: () => onClickItem(option), fontSize: (0, polished_1.rem)(16), display: "block", borderRadius: "sm", px: (0, polished_1.rem)(18), py: (0, polished_1.rem)(4), transition: "transform .15s,background .15s", _hover: {
85
+ transform: 'translateY(-1px)',
86
+ }, boxShadow: "searchOption" }, (isCard && {
87
+ transition: 'none',
88
+ bg: 'transparent',
89
+ boxShadow: 'none',
90
+ _hover: {
91
+ transform: 'none',
92
+ },
93
+ borderRadius: 'none',
94
+ borderBottom: '1px solid',
95
+ borderBottomColor: 'border.default',
96
+ }), listItemProps, (selectedItem === (option === null || option === void 0 ? void 0 : option.value)
97
+ ? isCard
98
+ ? {
99
+ bg: (_a = selected === null || selected === void 0 ? void 0 : selected.bg) !== null && _a !== void 0 ? _a : 'ink.900',
100
+ color: (_b = selected === null || selected === void 0 ? void 0 : selected.color) !== null && _b !== void 0 ? _b : 'white',
101
+ borderRadius: 'sm',
102
+ }
103
+ : {
104
+ bg: (_c = selected === null || selected === void 0 ? void 0 : selected.bg) !== null && _c !== void 0 ? _c : 'ink.900',
105
+ color: (_d = selected === null || selected === void 0 ? void 0 : selected.color) !== null && _d !== void 0 ? _d : 'white',
106
+ transform: 'translateY(-2px)',
107
+ }
108
+ : undefined), { children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { py: (0, polished_1.rem)(12), direction: "row", justifyContent: "space-between", gap: (0, polished_1.rem)(8), alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { overflow: "auto", flexWrap: "wrap", textAlign: "left", children: renderItem
109
+ ? renderItem(option)
110
+ : (0, exports.boldedText)({
111
+ text: option.label,
112
+ shouldBeBold: query !== null && query !== void 0 ? query : '',
113
+ }) }), withRightIcon && ((0, jsx_runtime_1.jsx)(react_2.Flex, { boxSize: (0, polished_1.rem)(20), children: customRightIcon !== null && customRightIcon !== void 0 ? customRightIcon : ((0, jsx_runtime_1.jsx)(react_2.Icon, { className: "hover-arrow", as: lu_1.LuArrowRight, width: (0, polished_1.rem)(20), height: (0, polished_1.rem)(20), "aria-label": "Arrow right" })) }))] }) }), i));
114
+ }) })))] })));
115
+ };
116
+ exports.Search = Search;
117
+ //# sourceMappingURL=SearchBrand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchBrand.js","sourceRoot":"","sources":["../../../../../src/alicia-ui/common/Search/SearchBrand.tsx"],"names":[],"mappings":"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"}