@droplinked_inc/ui-kit 0.1.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 (108) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +129 -0
  3. package/README.md +62 -0
  4. package/dist/components/Button.d.ts +17 -0
  5. package/dist/components/Button.d.ts.map +1 -0
  6. package/dist/components/Button.js +40 -0
  7. package/dist/components/Button.js.map +1 -0
  8. package/dist/components/Checkbox.d.ts +18 -0
  9. package/dist/components/Checkbox.d.ts.map +1 -0
  10. package/dist/components/Checkbox.js +13 -0
  11. package/dist/components/Checkbox.js.map +1 -0
  12. package/dist/components/CheckoutHeader.d.ts +13 -0
  13. package/dist/components/CheckoutHeader.d.ts.map +1 -0
  14. package/dist/components/CheckoutHeader.js +13 -0
  15. package/dist/components/CheckoutHeader.js.map +1 -0
  16. package/dist/components/Chips.d.ts +14 -0
  17. package/dist/components/Chips.d.ts.map +1 -0
  18. package/dist/components/Chips.js +30 -0
  19. package/dist/components/Chips.js.map +1 -0
  20. package/dist/components/DetailsItem.d.ts +28 -0
  21. package/dist/components/DetailsItem.d.ts.map +1 -0
  22. package/dist/components/DetailsItem.js +10 -0
  23. package/dist/components/DetailsItem.js.map +1 -0
  24. package/dist/components/Divider.d.ts +15 -0
  25. package/dist/components/Divider.d.ts.map +1 -0
  26. package/dist/components/Divider.js +11 -0
  27. package/dist/components/Divider.js.map +1 -0
  28. package/dist/components/Dropdown.d.ts +27 -0
  29. package/dist/components/Dropdown.d.ts.map +1 -0
  30. package/dist/components/Dropdown.js +15 -0
  31. package/dist/components/Dropdown.js.map +1 -0
  32. package/dist/components/IconContainer.d.ts +14 -0
  33. package/dist/components/IconContainer.d.ts.map +1 -0
  34. package/dist/components/IconContainer.js +20 -0
  35. package/dist/components/IconContainer.js.map +1 -0
  36. package/dist/components/Input.d.ts +25 -0
  37. package/dist/components/Input.d.ts.map +1 -0
  38. package/dist/components/Input.js +13 -0
  39. package/dist/components/Input.js.map +1 -0
  40. package/dist/components/ListItem.d.ts +8 -0
  41. package/dist/components/ListItem.d.ts.map +1 -0
  42. package/dist/components/ListItem.js +27 -0
  43. package/dist/components/ListItem.js.map +1 -0
  44. package/dist/components/Modal.d.ts +25 -0
  45. package/dist/components/Modal.d.ts.map +1 -0
  46. package/dist/components/Modal.js +9 -0
  47. package/dist/components/Modal.js.map +1 -0
  48. package/dist/components/ProductCard.d.ts +18 -0
  49. package/dist/components/ProductCard.d.ts.map +1 -0
  50. package/dist/components/ProductCard.js +17 -0
  51. package/dist/components/ProductCard.js.map +1 -0
  52. package/dist/components/RuledGrid.d.ts +9 -0
  53. package/dist/components/RuledGrid.d.ts.map +1 -0
  54. package/dist/components/RuledGrid.js +7 -0
  55. package/dist/components/RuledGrid.js.map +1 -0
  56. package/dist/components/SearchBar.d.ts +17 -0
  57. package/dist/components/SearchBar.d.ts.map +1 -0
  58. package/dist/components/SearchBar.js +24 -0
  59. package/dist/components/SearchBar.js.map +1 -0
  60. package/dist/components/SectionTitle.d.ts +12 -0
  61. package/dist/components/SectionTitle.d.ts.map +1 -0
  62. package/dist/components/SectionTitle.js +7 -0
  63. package/dist/components/SectionTitle.js.map +1 -0
  64. package/dist/components/SelectionCard.d.ts +14 -0
  65. package/dist/components/SelectionCard.d.ts.map +1 -0
  66. package/dist/components/SelectionCard.js +6 -0
  67. package/dist/components/SelectionCard.js.map +1 -0
  68. package/dist/components/SelectionTab.d.ts +12 -0
  69. package/dist/components/SelectionTab.d.ts.map +1 -0
  70. package/dist/components/SelectionTab.js +12 -0
  71. package/dist/components/SelectionTab.js.map +1 -0
  72. package/dist/components/SuccessBar.d.ts +9 -0
  73. package/dist/components/SuccessBar.d.ts.map +1 -0
  74. package/dist/components/SuccessBar.js +6 -0
  75. package/dist/components/SuccessBar.js.map +1 -0
  76. package/dist/components/TextArea.d.ts +17 -0
  77. package/dist/components/TextArea.d.ts.map +1 -0
  78. package/dist/components/TextArea.js +9 -0
  79. package/dist/components/TextArea.js.map +1 -0
  80. package/dist/components/Toast.d.ts +19 -0
  81. package/dist/components/Toast.d.ts.map +1 -0
  82. package/dist/components/Toast.js +19 -0
  83. package/dist/components/Toast.js.map +1 -0
  84. package/dist/index.d.ts +25 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +32 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/internal/sanitize.d.ts +17 -0
  89. package/dist/internal/sanitize.d.ts.map +1 -0
  90. package/dist/internal/sanitize.js +46 -0
  91. package/dist/internal/sanitize.js.map +1 -0
  92. package/dist/theme/UIKitProvider.d.ts +16 -0
  93. package/dist/theme/UIKitProvider.d.ts.map +1 -0
  94. package/dist/theme/UIKitProvider.js +14 -0
  95. package/dist/theme/UIKitProvider.js.map +1 -0
  96. package/dist/theme/palette.d.ts +8 -0
  97. package/dist/theme/palette.d.ts.map +1 -0
  98. package/dist/theme/palette.js +62 -0
  99. package/dist/theme/palette.js.map +1 -0
  100. package/dist/theme/system.d.ts +12 -0
  101. package/dist/theme/system.d.ts.map +1 -0
  102. package/dist/theme/system.js +58 -0
  103. package/dist/theme/system.js.map +1 -0
  104. package/dist/types.d.ts +114 -0
  105. package/dist/types.d.ts.map +1 -0
  106. package/dist/types.js +2 -0
  107. package/dist/types.js.map +1 -0
  108. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconContainer.js","sourceRoot":"","sources":["../../src/components/IconContainer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAyB/C,MAAM,cAAc,GAAgF;IAClG,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE;IAC1E,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;IACvE,SAAS,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;IAClF,WAAW,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;IAC9E,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;IAChF,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;IAChF,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE;IAC1E,QAAQ,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE;IACnF,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE;CACxE,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,GAAG,MAAM,EACb,OAAO,GAAG,OAAO,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACY;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/B,OAAO,CACL,MAAC,GAAG,IACF,OAAO,EAAC,aAAa,EACrB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,YAAY,EAAC,OAAO,EACpB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACtE,WAAW,EAAE,KAAK,CAAC,MAAM,EACzB,QAAQ,EAAC,QAAQ,KACb,IAAI,aAEP,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,KAAG,CAAC,CAAC,CAAC,IAAI,EACzC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,QAAQ,EAAC,IAAI,YAAE,IAAI,GAAO,CAAC,CAAC,CAAC,IAAI,EAChE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAC1B,cACE,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,QAAQ,IAAI,EAAE,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAC5D,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type ReactNode, type ChangeEvent } from 'react';
2
+ import { type InputProps as ChakraInputProps } from '@chakra-ui/react';
3
+ import type { Variant, TestableProps } from '../types';
4
+ export interface InputProps extends Omit<ChakraInputProps, 'title' | 'onChange' | 'variant' | 'isInvalid'>, TestableProps {
5
+ /** Label text */
6
+ title?: string;
7
+ /** Subtitle text displayed below label */
8
+ subtitle?: string;
9
+ leftIcon?: ReactNode;
10
+ rightIcon?: ReactNode;
11
+ supportingMessage?: string;
12
+ rightElement?: ReactNode;
13
+ secondaryText?: string;
14
+ required?: boolean;
15
+ chipsLabel?: string;
16
+ variant?: Variant;
17
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
18
+ isDisabled?: boolean;
19
+ }
20
+ /**
21
+ * Text input with optional label/subtitle/icons and supporting message.
22
+ * Uses Chakra v3 `Field.Root` for a11y-correct label association.
23
+ */
24
+ export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
25
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAML,KAAK,UAAU,IAAI,gBAAgB,EACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC,EAC5E,aAAa;IACf,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,yGAyDhB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { Box, Field, Input as ChakraInput, Group, InputAddon, } from '@chakra-ui/react';
4
+ /**
5
+ * Text input with optional label/subtitle/icons and supporting message.
6
+ * Uses Chakra v3 `Field.Root` for a11y-correct label association.
7
+ */
8
+ export const Input = forwardRef(function Input({ title, subtitle, leftIcon, rightIcon, supportingMessage, rightElement, secondaryText, required, chipsLabel, variant = 'outlined', isDisabled, ...rest }, ref) {
9
+ const isError = variant === 'error';
10
+ const isSuccess = variant === 'success';
11
+ return (_jsxs(Field.Root, { invalid: isError, disabled: isDisabled, required: required, children: [title ? (_jsxs(Field.Label, { children: [title, secondaryText ? (_jsx(Box, { as: "span", color: "dl.text.subtext", ml: "1", children: secondaryText })) : null, chipsLabel ? (_jsx(Box, { as: "span", ml: "2", px: "2", py: "0.5", bg: "dl.neutral.10", borderRadius: "dl.sm", fontSize: "xs", children: chipsLabel })) : null] })) : null, subtitle ? (_jsx(Box, { color: "dl.text.subtext", fontSize: "sm", mb: "1", children: subtitle })) : null, _jsxs(Group, { attached: true, children: [leftIcon ? _jsx(InputAddon, { children: leftIcon }) : null, _jsx(ChakraInput, { ref: ref, ...rest }), rightIcon ? _jsx(InputAddon, { children: rightIcon }) : null, rightElement] }), supportingMessage ? (_jsx(Field.HelperText, { color: isError ? 'dl.error' : isSuccess ? 'dl.success' : 'dl.text.subtext', children: supportingMessage })) : null] }));
12
+ });
13
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAoC,MAAM,OAAO,CAAC;AACrE,OAAO,EACL,GAAG,EACH,KAAK,EACL,KAAK,IAAI,WAAW,EACpB,KAAK,EACL,UAAU,GAEX,MAAM,kBAAkB,CAAC;AAsB1B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAA+B,SAAS,KAAK,CAC1E,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,EACV,OAAO,GAAG,UAAU,EACpB,UAAU,EACV,GAAG,IAAI,EACR,EACD,GAAG;IAEH,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC;IAExC,OAAO,CACL,MAAC,KAAK,CAAC,IAAI,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,aACnE,KAAK,CAAC,CAAC,CAAC,CACP,MAAC,KAAK,CAAC,KAAK,eACT,KAAK,EACL,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAC,GAAG,YAC1C,aAAa,GACV,CACP,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,eAAe,EAAC,YAAY,EAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,YACxF,UAAU,GACP,CACP,CAAC,CAAC,CAAC,IAAI,IACI,CACf,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,YAC9C,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,KAAK,IAAC,QAAQ,mBACZ,QAAQ,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,QAAQ,GAAc,CAAC,CAAC,CAAC,IAAI,EACtD,KAAC,WAAW,IAAC,GAAG,EAAE,GAAG,KAAM,IAAI,GAAI,EAClC,SAAS,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,SAAS,GAAc,CAAC,CAAC,CAAC,IAAI,EACvD,YAAY,IACP,EACP,iBAAiB,CAAC,CAAC,CAAC,CACnB,KAAC,KAAK,CAAC,UAAU,IACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,YAEzE,iBAAiB,GACD,CACpB,CAAC,CAAC,CAAC,IAAI,IACG,CACd,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ListItemProps } from '../types';
2
+ /**
3
+ * List row. Discriminated by `type`:
4
+ * - `text` → label + optional left icon / right content / chips
5
+ * - `icon` → left icon only
6
+ */
7
+ export declare function ListItem(props: ListItemProps): JSX.Element;
8
+ //# sourceMappingURL=ListItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../src/components/ListItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAoD1D"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ import { Chips } from './Chips';
4
+ /**
5
+ * List row. Discriminated by `type`:
6
+ * - `text` → label + optional left icon / right content / chips
7
+ * - `icon` → left icon only
8
+ */
9
+ export function ListItem(props) {
10
+ const isInteractive = Boolean(props.onClick) && !props.isDisabled;
11
+ const baseProps = {
12
+ role: isInteractive ? 'button' : undefined,
13
+ tabIndex: isInteractive ? 0 : undefined,
14
+ 'aria-disabled': props.isDisabled || undefined,
15
+ 'aria-selected': props.isSelected || undefined,
16
+ 'aria-invalid': props.isInvalid || undefined,
17
+ onClick: isInteractive ? props.onClick : undefined,
18
+ 'data-testid': props['data-testid'],
19
+ };
20
+ if (props.type === 'icon') {
21
+ const LeftIcon = props.leftIcon;
22
+ return (_jsx(Flex, { align: "center", gap: "2", p: "2", borderRadius: "dl.sm", bg: props.isSelected ? 'dl.primary.tint10' : undefined, opacity: props.isDisabled ? 0.5 : 1, cursor: isInteractive ? 'pointer' : 'default', ...baseProps, children: _jsx(LeftIcon, {}) }));
23
+ }
24
+ const LeftIcon = props.leftIcon;
25
+ return (_jsxs(Flex, { align: "center", gap: "3", px: "3", py: "2", borderRadius: "dl.sm", bg: props.isSelected ? 'dl.primary.tint10' : undefined, opacity: props.isDisabled ? 0.5 : 1, cursor: isInteractive ? 'pointer' : 'default', ...baseProps, children: [LeftIcon ? _jsx(LeftIcon, {}) : null, _jsx(Box, { flex: "1", color: props.isInvalid ? 'dl.error' : 'dl.text', children: props.label }), props.chipsLabel ? _jsx(Chips, { label: props.chipsLabel, variant: "muted" }) : null, props.rightContent] }));
26
+ }
27
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../src/components/ListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAElE,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC1C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACvC,eAAe,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS;QAC9C,eAAe,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS;QAC9C,cAAc,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;QAC5C,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAClD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;KACpC,CAAC;IAEF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,GAAG,EACP,CAAC,EAAC,GAAG,EACL,YAAY,EAAC,OAAO,EACpB,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACzC,SAAS,YAEb,KAAC,QAAQ,KAAG,GACP,CACR,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,GAAG,EACP,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,YAAY,EAAC,OAAO,EACpB,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACzC,SAAS,aAEZ,QAAQ,CAAC,CAAC,CAAC,KAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,IAAI,EAC/B,KAAC,GAAG,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,YAC1D,KAAK,CAAC,KAAK,GACR,EACL,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAC5E,KAAK,CAAC,YAAY,IACd,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ import type { TestableProps } from '../types';
3
+ export interface ModalProps extends TestableProps {
4
+ open: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ headerContent?: ReactNode;
7
+ children: ReactNode;
8
+ footerContent?: ReactNode;
9
+ title?: string;
10
+ icon?: ComponentType<{
11
+ className?: string;
12
+ }>;
13
+ iconType?: 'container' | 'button';
14
+ iconButton?: ReactNode;
15
+ showCloseButton?: boolean;
16
+ hasBlurBg?: boolean;
17
+ size?: 'full' | 'sm' | 'md' | 'lg' | 'xl';
18
+ minHeight?: string;
19
+ maxHeight?: string;
20
+ }
21
+ /**
22
+ * Modal dialog. Uses Chakra v3 `Dialog.*` which implements ARIA dialog focus-trap.
23
+ */
24
+ export declare function Modal({ open, onOpenChange, headerContent, children, footerContent, title, icon: Icon, iconType, iconButton, showCloseButton, hasBlurBg, size, minHeight, maxHeight, ...rest }: ModalProps): JSX.Element;
25
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAClC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,aAAa,EACb,KAAK,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EACR,UAAU,EACV,eAAsB,EACtB,SAAS,EACT,IAAW,EACX,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACR,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAiC1B"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Dialog, Portal, Box } from '@chakra-ui/react';
3
+ /**
4
+ * Modal dialog. Uses Chakra v3 `Dialog.*` which implements ARIA dialog focus-trap.
5
+ */
6
+ export function Modal({ open, onOpenChange, headerContent, children, footerContent, title, icon: Icon, iconType, iconButton, showCloseButton = true, hasBlurBg, size = 'md', minHeight, maxHeight, ...rest }) {
7
+ return (_jsx(Dialog.Root, { open: open, onOpenChange: (details) => onOpenChange?.(details.open), size: size, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { backdropFilter: hasBlurBg ? 'blur(6px)' : undefined }), _jsx(Dialog.Positioner, { children: _jsxs(Dialog.Content, { minH: minHeight, maxH: maxHeight, ...rest, children: [title || Icon || iconButton || headerContent ? (_jsxs(Dialog.Header, { children: [_jsxs(Box, { display: "flex", alignItems: "center", gap: "3", children: [iconType === 'button' && iconButton ? iconButton : null, iconType !== 'button' && Icon ? _jsx(Icon, {}) : null, title ? _jsx(Dialog.Title, { children: title }) : null] }), headerContent, showCloseButton ? (_jsx(Dialog.CloseTrigger, { asChild: true, children: _jsx("button", { type: "button", "aria-label": "Close dialog", children: "\u00D7" }) })) : null] })) : null, _jsx(Dialog.Body, { children: children }), footerContent ? _jsx(Dialog.Footer, { children: footerContent }) : null] }) })] }) }));
8
+ }
9
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAoBvD;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,aAAa,EACb,KAAK,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EACR,UAAU,EACV,eAAe,GAAG,IAAI,EACtB,SAAS,EACT,IAAI,GAAG,IAAI,EACX,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACI;IACX,OAAO,CACL,KAAC,MAAM,CAAC,IAAI,IACV,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EACvD,IAAI,EAAE,IAAI,YAEV,MAAC,MAAM,eACL,KAAC,MAAM,CAAC,QAAQ,IAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAI,EACxE,KAAC,MAAM,CAAC,UAAU,cAChB,MAAC,MAAM,CAAC,OAAO,IAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,KAAM,IAAI,aACvD,KAAK,IAAI,IAAI,IAAI,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,CAC9C,MAAC,MAAM,CAAC,MAAM,eACZ,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC5C,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EACvD,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,KAAG,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAK,CAAC,CAAC,CAAC,KAAC,MAAM,CAAC,KAAK,cAAE,KAAK,GAAgB,CAAC,CAAC,CAAC,IAAI,IAChD,EACL,aAAa,EACb,eAAe,CAAC,CAAC,CAAC,CACjB,KAAC,MAAM,CAAC,YAAY,IAAC,OAAO,kBAC1B,iBAAQ,IAAI,EAAC,QAAQ,gBAAY,cAAc,uBAAW,GACtC,CACvB,CAAC,CAAC,CAAC,IAAI,IACM,CACjB,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,MAAM,CAAC,IAAI,cAAE,QAAQ,GAAe,EACpC,aAAa,CAAC,CAAC,CAAC,KAAC,MAAM,CAAC,MAAM,cAAE,aAAa,GAAiB,CAAC,CAAC,CAAC,IAAI,IACvD,GACC,IACb,GACG,CACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TestableProps } from '../types';
3
+ export interface ProductCardProps extends TestableProps {
4
+ title?: string;
5
+ price?: string;
6
+ abbreviation?: string;
7
+ sku?: string[];
8
+ quantity: number;
9
+ url?: string;
10
+ thumbnail: string;
11
+ rightContent?: ReactNode;
12
+ }
13
+ /**
14
+ * Compact product summary used in cart / order summary.
15
+ * Sanitizes both `url` and `thumbnail` URLs.
16
+ */
17
+ export declare function ProductCard({ title, price, abbreviation, sku, quantity, url, thumbnail, rightContent, ...rest }: ProductCardProps): JSX.Element;
18
+ //# sourceMappingURL=ProductCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductCard.d.ts","sourceRoot":"","sources":["../../src/components/ProductCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,YAAY,EACZ,GAAG,EACH,QAAQ,EACR,GAAG,EACH,SAAS,EACT,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAsFhC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ import { safeUrl } from '../internal/sanitize';
4
+ /**
5
+ * Compact product summary used in cart / order summary.
6
+ * Sanitizes both `url` and `thumbnail` URLs.
7
+ */
8
+ export function ProductCard({ title, price, abbreviation, sku, quantity, url, thumbnail, rightContent, ...rest }) {
9
+ const safeThumb = safeUrl(thumbnail);
10
+ const safeUrlVal = safeUrl(url);
11
+ const body = (_jsxs(Flex, { gap: "3", align: "center", width: "100%", children: [_jsxs(Box, { width: "64px", height: "64px", borderRadius: "dl.md", overflow: "hidden", bg: "dl.neutral.10", flexShrink: 0, position: "relative", children: [safeThumb ? (_jsx("img", { src: safeThumb, alt: title ?? 'product', style: { width: '100%', height: '100%', objectFit: 'cover' } })) : null, quantity > 0 ? (_jsx(Box, { position: "absolute", top: "-6px", right: "-6px", minW: "20px", height: "20px", px: "1", borderRadius: "full", bg: "dl.primary", color: "dl.text.inverse", fontSize: "xs", display: "flex", alignItems: "center", justifyContent: "center", children: quantity })) : null] }), _jsxs(Box, { flex: "1", minW: 0, children: [title ? (_jsx(Box, { fontWeight: "600", color: "dl.text", truncate: true, children: title })) : null, sku && sku.length > 0 ? (_jsx(Box, { color: "dl.text.subtext", fontSize: "xs", truncate: true, children: sku.join(' · ') })) : null, price ? (_jsxs(Box, { color: "dl.text", fontSize: "sm", children: [price, abbreviation ? (_jsx(Box, { as: "span", color: "dl.text.subtext", ml: "1", children: abbreviation })) : null] })) : null] }), rightContent] }));
12
+ if (safeUrlVal) {
13
+ return (_jsx("a", { href: safeUrlVal, rel: "noopener noreferrer", style: { display: 'block', padding: '12px', borderRadius: '8px' }, "data-testid": rest['data-testid'], children: body }));
14
+ }
15
+ return (_jsx(Box, { p: "3", ...rest, children: body }));
16
+ }
17
+ //# sourceMappingURL=ProductCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../src/components/ProductCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAc/C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,YAAY,EACZ,GAAG,EACH,QAAQ,EACR,GAAG,EACH,SAAS,EACT,YAAY,EACZ,GAAG,IAAI,EACU;IACjB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,IAAI,GAAG,CACX,MAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,aACvC,MAAC,GAAG,IACF,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,YAAY,EAAC,OAAO,EACpB,QAAQ,EAAC,QAAQ,EACjB,EAAE,EAAC,eAAe,EAClB,UAAU,EAAE,CAAC,EACb,QAAQ,EAAC,UAAU,aAElB,SAAS,CAAC,CAAC,CAAC,CACX,cACE,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,KAAK,IAAI,SAAS,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAC5D,CACH,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CACd,KAAC,GAAG,IACF,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,MAAM,EACV,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,GAAG,EACN,YAAY,EAAC,MAAM,EACnB,EAAE,EAAC,YAAY,EACf,KAAK,EAAC,iBAAiB,EACvB,QAAQ,EAAC,IAAI,EACb,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,YAEtB,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,MAAC,GAAG,IAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAE,CAAC,aAClB,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,GAAG,IAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,kBAC3C,KAAK,GACF,CACP,CAAC,CAAC,CAAC,IAAI,EACP,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,kBAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GACZ,CACP,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,CACP,MAAC,GAAG,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,aAC/B,KAAK,EACL,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAC,GAAG,YAC1C,YAAY,GACT,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,YAAY,IACR,CACR,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,YACE,IAAI,EAAE,UAAU,EAChB,GAAG,EAAC,qBAAqB,EACzB,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBACpD,IAAI,CAAC,aAAa,CAAC,YAE/B,IAAI,GACH,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,CAAC,EAAC,GAAG,KAAK,IAAI,YAChB,IAAI,GACD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type GridProps } from '@chakra-ui/react';
2
+ import type { TestableProps } from '../types';
3
+ export interface RuledGridProps extends GridProps, TestableProps {
4
+ columns: number;
5
+ nested?: boolean;
6
+ }
7
+ /** Grid with `columns`-evenly-spaced tracks. `nested` removes border + padding for compositions. */
8
+ export declare function RuledGrid({ columns, nested, children, ...rest }: RuledGridProps): JSX.Element;
9
+ //# sourceMappingURL=RuledGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuledGrid.d.ts","sourceRoot":"","sources":["../../src/components/RuledGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,aAAa;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oGAAoG;AACpG,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAc7F"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Grid } from '@chakra-ui/react';
3
+ /** Grid with `columns`-evenly-spaced tracks. `nested` removes border + padding for compositions. */
4
+ export function RuledGrid({ columns, nested, children, ...rest }) {
5
+ return (_jsx(Grid, { templateColumns: `repeat(${Math.max(1, Math.floor(columns))}, 1fr)`, gap: nested ? 0 : 3, borderWidth: nested ? 0 : '1px', borderColor: "dl.neutral.30", borderRadius: nested ? undefined : 'dl.md', p: nested ? 0 : 2, ...rest, children: children }));
6
+ }
7
+ //# sourceMappingURL=RuledGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuledGrid.js","sourceRoot":"","sources":["../../src/components/RuledGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,kBAAkB,CAAC;AAQxD,oGAAoG;AACpG,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAkB;IAC9E,OAAO,CACL,KAAC,IAAI,IACH,eAAe,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EACnE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAC/B,WAAW,EAAC,eAAe,EAC3B,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAC1C,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACb,IAAI,YAEP,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type BoxProps, type InputProps as ChakraInputProps } from '@chakra-ui/react';
2
+ import type { TestableProps } from '../types';
3
+ export type SearchBarVariant = 'maximized' | 'icon';
4
+ export interface SearchBarProps extends Omit<BoxProps, 'onChange'>, TestableProps {
5
+ placeholder?: string;
6
+ variant?: SearchBarVariant;
7
+ value?: string;
8
+ defaultValue?: string;
9
+ onChange?: ChakraInputProps['onChange'];
10
+ showClear?: boolean;
11
+ isDisabled?: boolean;
12
+ isExpanded?: boolean;
13
+ defaultExpanded?: boolean;
14
+ onExpandedChange?: (expanded: boolean) => void;
15
+ }
16
+ export declare function SearchBar({ placeholder, variant, value, defaultValue, onChange, showClear, isDisabled, isExpanded, defaultExpanded, onExpandedChange, ...rest }: SearchBarProps): JSX.Element;
17
+ //# sourceMappingURL=SearchBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchBar.d.ts","sourceRoot":"","sources":["../../src/components/SearchBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,QAAQ,EAAE,KAAK,UAAU,IAAI,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,aAAa;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED,wBAAgB,SAAS,CAAC,EACxB,WAAsB,EACtB,OAAqB,EACrB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,SAAgB,EAChB,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,GAAG,IAAI,EACR,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAsD9B"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Box, Group, Input as ChakraInput } from '@chakra-ui/react';
4
+ export function SearchBar({ placeholder = 'Search', variant = 'maximized', value, defaultValue, onChange, showClear = true, isDisabled, isExpanded, defaultExpanded, onExpandedChange, ...rest }) {
5
+ const [expanded, setExpanded] = useState(defaultExpanded ?? false);
6
+ const effectiveExpanded = isExpanded ?? expanded;
7
+ const [internal, setInternal] = useState(defaultValue ?? '');
8
+ const effectiveValue = value ?? internal;
9
+ const onInputChange = (e) => {
10
+ setInternal(e.target.value);
11
+ onChange?.(e);
12
+ };
13
+ if (variant === 'icon' && !effectiveExpanded) {
14
+ return (_jsx(Box, { ...rest, children: _jsx("button", { type: "button", "aria-label": "Open search", onClick: () => {
15
+ setExpanded(true);
16
+ onExpandedChange?.(true);
17
+ }, disabled: isDisabled, children: "\uD83D\uDD0D" }) }));
18
+ }
19
+ return (_jsx(Box, { ...rest, children: _jsxs(Group, { attached: true, children: [_jsx(ChakraInput, { "aria-label": "Search", placeholder: placeholder, value: effectiveValue, onChange: onInputChange, disabled: isDisabled }), showClear && effectiveValue ? (_jsx("button", { type: "button", "aria-label": "Clear search", onClick: () => {
20
+ setInternal('');
21
+ onChange?.({ target: { value: '' } });
22
+ }, children: "\u00D7" })) : null] }) }));
23
+ }
24
+ //# sourceMappingURL=SearchBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../src/components/SearchBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,WAAW,EAAsD,MAAM,kBAAkB,CAAC;AAkBxH,MAAM,UAAU,SAAS,CAAC,EACxB,WAAW,GAAG,QAAQ,EACtB,OAAO,GAAG,WAAW,EACrB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,GAAG,IAAI,EACQ;IACf,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,UAAU,IAAI,QAAQ,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,KAAK,IAAI,QAAQ,CAAC;IAEzC,MAAM,aAAa,GAAG,CAAC,CAAgC,EAAQ,EAAE;QAC/D,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,OAAO,CACL,KAAC,GAAG,OAAK,IAAI,YACX,iBACE,IAAI,EAAC,QAAQ,gBACF,aAAa,EACxB,OAAO,EAAE,GAAG,EAAE;oBACZ,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClB,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC,EACD,QAAQ,EAAE,UAAU,6BAGb,GACL,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,OAAK,IAAI,YACX,MAAC,KAAK,IAAC,QAAQ,mBACb,KAAC,WAAW,kBACC,QAAQ,EACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,UAAU,GACpB,EACD,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAC7B,iBACE,IAAI,EAAC,QAAQ,gBACF,cAAc,EACzB,OAAO,EAAE,GAAG,EAAE;wBACZ,WAAW,CAAC,EAAE,CAAC,CAAC;wBAChB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAA8C,CAAC,CAAC;oBACpF,CAAC,uBAGM,CACV,CAAC,CAAC,CAAC,IAAI,IACF,GACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type BoxProps } from '@chakra-ui/react';
3
+ import { type IconContainerProps } from './IconContainer';
4
+ import type { TestableProps } from '../types';
5
+ export interface SectionTitleProps extends Omit<BoxProps, 'title' | 'color' | 'direction'>, TestableProps {
6
+ title?: string;
7
+ iconContainerProps?: IconContainerProps;
8
+ rightContent?: ReactNode;
9
+ showIcon?: boolean;
10
+ }
11
+ export declare function SectionTitle({ title, iconContainerProps, rightContent, showIcon, ...rest }: SectionTitleProps): JSX.Element;
12
+ //# sourceMappingURL=SectionTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../src/components/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,EACrD,aAAa;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAcjC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ import { IconContainer } from './IconContainer';
4
+ export function SectionTitle({ title, iconContainerProps, rightContent, showIcon, ...rest }) {
5
+ return (_jsxs(Flex, { align: "center", justify: "space-between", width: "100%", ...rest, children: [_jsxs(Flex, { align: "center", gap: "3", children: [showIcon && iconContainerProps ? _jsx(IconContainer, { ...iconContainerProps }) : null, title ? (_jsx(Box, { as: "h3", fontSize: "lg", fontWeight: "600", color: "dl.text", children: title })) : null] }), rightContent] }));
6
+ }
7
+ //# sourceMappingURL=SectionTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.js","sourceRoot":"","sources":["../../src/components/SectionTitle.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAiB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAYzE,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACW;IAClB,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,KAAK,IAAI,aAChE,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aACzB,QAAQ,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAC,aAAa,OAAK,kBAAkB,GAAI,CAAC,CAAC,CAAC,IAAI,EACjF,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,GAAG,IAAC,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,YACxD,KAAK,GACF,CACP,CAAC,CAAC,CAAC,IAAI,IACH,EACN,YAAY,IACR,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ActionMenuItem, TestableProps } from '../types';
3
+ export interface SelectionCardProps extends TestableProps {
4
+ title: string;
5
+ subtitle: ReactNode;
6
+ /** Action items — currently rendered as a compact label only. ActionMenu deferred to v0.2. */
7
+ actionMenuItems?: ActionMenuItem[];
8
+ /** Reserved for v0.2 — extra props passed through to ActionMenu. */
9
+ actionMenuProps?: Record<string, unknown>;
10
+ isSelected?: boolean;
11
+ onClick?: () => void;
12
+ }
13
+ export declare function SelectionCard({ title, subtitle, isSelected, onClick, actionMenuItems, ...rest }: SelectionCardProps): JSX.Element;
14
+ //# sourceMappingURL=SelectionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionCard.d.ts","sourceRoot":"","sources":["../../src/components/SelectionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,8FAA8F;IAC9F,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,OAAO,EACP,eAAe,EACf,GAAG,IAAI,EACR,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAgClC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ export function SelectionCard({ title, subtitle, isSelected, onClick, actionMenuItems, ...rest }) {
4
+ return (_jsx(Box, { role: "button", tabIndex: onClick ? 0 : undefined, "aria-pressed": isSelected, onClick: onClick, cursor: onClick ? 'pointer' : 'default', borderWidth: "1px", borderColor: isSelected ? 'dl.primary' : 'dl.neutral.30', borderRadius: "dl.md", p: "3", bg: isSelected ? 'dl.primary.tint10' : 'dl.bg', ...rest, children: _jsxs(Flex, { justify: "space-between", align: "center", gap: "2", children: [_jsxs(Box, { flex: "1", children: [_jsx(Box, { fontWeight: "600", color: "dl.text", children: title }), _jsx(Box, { mt: "1", color: "dl.text.subtext", fontSize: "sm", children: subtitle })] }), actionMenuItems && actionMenuItems.length > 0 ? (_jsx(Box, { color: "dl.text.subtext", fontSize: "xs", "aria-label": "More actions", children: "\u22EF" })) : null] }) }));
5
+ }
6
+ //# sourceMappingURL=SelectionCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionCard.js","sourceRoot":"","sources":["../../src/components/SelectionCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAc7C,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,OAAO,EACP,eAAe,EACf,GAAG,IAAI,EACY;IACnB,OAAO,CACL,KAAC,GAAG,IACF,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,kBACnB,UAAU,EACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvC,WAAW,EAAC,KAAK,EACjB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,EACxD,YAAY,EAAC,OAAO,EACpB,CAAC,EAAC,GAAG,EACL,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,KAC1C,IAAI,YAER,MAAC,IAAI,IAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAClD,MAAC,GAAG,IAAC,IAAI,EAAC,GAAG,aACX,KAAC,GAAG,IAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,YAClC,KAAK,GACF,EACN,KAAC,GAAG,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,YAC9C,QAAQ,GACL,IACF,EACL,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/C,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,gBAAY,cAAc,uBAE9D,CACP,CAAC,CAAC,CAAC,IAAI,IACH,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ElementType } from 'react';
2
+ import type { TestableProps } from '../types';
3
+ export interface SelectionTabProps extends TestableProps {
4
+ label: string;
5
+ icon?: ElementType;
6
+ showIcon?: boolean;
7
+ isSelected?: boolean;
8
+ isDisabled?: boolean;
9
+ onClick?: () => void;
10
+ }
11
+ export declare const SelectionTab: ({ label, icon: Icon, showIcon, isSelected, isDisabled, onClick, ...rest }: SelectionTabProps) => JSX.Element;
12
+ //# sourceMappingURL=SelectionTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTab.d.ts","sourceRoot":"","sources":["../../src/components/SelectionTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GAAI,2EAQ1B,iBAAiB,KAAG,GAAG,CAAC,OAwB1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ export const SelectionTab = ({ label, icon: Icon, showIcon, isSelected, isDisabled, onClick, ...rest }) => (_jsx("button", { type: "button", role: "tab", "aria-selected": isSelected, "aria-disabled": isDisabled, disabled: isDisabled, onClick: isDisabled ? undefined : onClick, "data-testid": rest['data-testid'], style: {
4
+ padding: '8px 12px',
5
+ borderRadius: '6px',
6
+ background: isSelected ? 'var(--chakra-colors-dl-primary-tint10)' : 'transparent',
7
+ color: isSelected ? 'var(--chakra-colors-dl-primary)' : 'var(--chakra-colors-dl-text)',
8
+ opacity: isDisabled ? 0.5 : 1,
9
+ cursor: isDisabled ? 'not-allowed' : 'pointer',
10
+ border: 'none',
11
+ }, children: _jsxs(Flex, { align: "center", gap: "2", children: [showIcon && Icon ? _jsx(Icon, {}) : null, _jsx(Box, { children: label })] }) }));
12
+ //# sourceMappingURL=SelectionTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTab.js","sourceRoot":"","sources":["../../src/components/SelectionTab.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAY7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,KAAK,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,EACP,GAAG,IAAI,EACW,EAAe,EAAE,CAAC,CACpC,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,UAAU,mBACV,UAAU,EACzB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,iBAC5B,IAAI,CAAC,aAAa,CAAC,EAChC,KAAK,EAAE;QACL,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,aAAa;QACjF,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,8BAA8B;QACtF,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC9C,MAAM,EAAE,MAAM;KACf,YAED,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aACzB,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,KAAG,CAAC,CAAC,CAAC,IAAI,EACnC,KAAC,GAAG,cAAE,KAAK,GAAO,IACb,GACA,CACV,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ElementType } from 'react';
2
+ import { type BoxProps } from '@chakra-ui/react';
3
+ import type { TestableProps } from '../types';
4
+ export interface SuccessBarProps extends BoxProps, TestableProps {
5
+ icon?: ElementType;
6
+ label?: string;
7
+ }
8
+ export declare function SuccessBar({ icon: Icon, label, ...rest }: SuccessBarProps): JSX.Element;
9
+ //# sourceMappingURL=SuccessBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuccessBar.d.ts","sourceRoot":"","sources":["../../src/components/SuccessBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,eAAgB,SAAQ,QAAQ,EAAE,aAAa;IAC9D,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAoBvF"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ export function SuccessBar({ icon: Icon, label, ...rest }) {
4
+ return (_jsxs(Box, { role: "status", display: "flex", alignItems: "center", gap: "2", px: "3", py: "2", borderRadius: "dl.md", bg: "dl.success.tint10", color: "dl.success", borderWidth: "1px", borderColor: "dl.success", ...rest, children: [Icon ? _jsx(Icon, {}) : null, label ? _jsx(Box, { children: label }) : null] }));
5
+ }
6
+ //# sourceMappingURL=SuccessBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuccessBar.js","sourceRoot":"","sources":["../../src/components/SuccessBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAiB,MAAM,kBAAkB,CAAC;AAQtD,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAmB;IACxE,OAAO,CACL,MAAC,GAAG,IACF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,GAAG,EAAC,GAAG,EACP,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,YAAY,EAAC,OAAO,EACpB,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,KAAK,EACjB,WAAW,EAAC,YAAY,KACpB,IAAI,aAEP,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,KAAG,CAAC,CAAC,CAAC,IAAI,EACtB,KAAK,CAAC,CAAC,CAAC,KAAC,GAAG,cAAE,KAAK,GAAO,CAAC,CAAC,CAAC,IAAI,IAC9B,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type ChangeEvent } from 'react';
2
+ import { type TextareaProps as ChakraTextareaProps } from '@chakra-ui/react';
3
+ import type { Variant, TestableProps } from '../types';
4
+ export interface TextAreaProps extends Omit<ChakraTextareaProps, 'title' | 'onChange' | 'variant' | 'isInvalid'>, TestableProps {
5
+ title?: string;
6
+ subtitle?: string;
7
+ supportingMessage?: string;
8
+ secondaryText?: string;
9
+ required?: boolean;
10
+ chipsLabel?: string;
11
+ variant?: Variant;
12
+ onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void;
13
+ isDisabled?: boolean;
14
+ rows?: number;
15
+ }
16
+ export declare const TextArea: import("react").ForwardRefExoticComponent<TextAreaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
17
+ //# sourceMappingURL=TextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../src/components/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAIL,KAAK,aAAa,IAAI,mBAAmB,EAC1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC,EAC/E,aAAa;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ,+GAkDnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { Box, Field, Textarea as ChakraTextarea, } from '@chakra-ui/react';
4
+ export const TextArea = forwardRef(function TextArea({ title, subtitle, supportingMessage, secondaryText, required, chipsLabel, variant = 'outlined', isDisabled, rows, ...rest }, ref) {
5
+ const isError = variant === 'error';
6
+ const isSuccess = variant === 'success';
7
+ return (_jsxs(Field.Root, { invalid: isError, disabled: isDisabled, required: required, children: [title ? (_jsxs(Field.Label, { children: [title, secondaryText ? (_jsx(Box, { as: "span", color: "dl.text.subtext", ml: "1", children: secondaryText })) : null, chipsLabel ? (_jsx(Box, { as: "span", ml: "2", px: "2", py: "0.5", bg: "dl.neutral.10", borderRadius: "dl.sm", fontSize: "xs", children: chipsLabel })) : null] })) : null, subtitle ? (_jsx(Box, { color: "dl.text.subtext", fontSize: "sm", mb: "1", children: subtitle })) : null, _jsx(ChakraTextarea, { ref: ref, rows: rows, ...rest }), supportingMessage ? (_jsx(Field.HelperText, { color: isError ? 'dl.error' : isSuccess ? 'dl.success' : 'dl.text.subtext', children: supportingMessage })) : null] }));
8
+ });
9
+ //# sourceMappingURL=TextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../src/components/TextArea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,GAAG,EACH,KAAK,EACL,QAAQ,IAAI,cAAc,GAE3B,MAAM,kBAAkB,CAAC;AAkB1B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAqC,SAAS,QAAQ,CACtF,EACE,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,OAAO,GAAG,UAAU,EACpB,UAAU,EACV,IAAI,EACJ,GAAG,IAAI,EACR,EACD,GAAG;IAEH,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC;IAExC,OAAO,CACL,MAAC,KAAK,CAAC,IAAI,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,aACnE,KAAK,CAAC,CAAC,CAAC,CACP,MAAC,KAAK,CAAC,KAAK,eACT,KAAK,EACL,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAC,GAAG,YAC1C,aAAa,GACV,CACP,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,eAAe,EAAC,YAAY,EAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,YACxF,UAAU,GACP,CACP,CAAC,CAAC,CAAC,IAAI,IACI,CACf,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,YAC9C,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,cAAc,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAM,IAAI,GAAI,EACjD,iBAAiB,CAAC,CAAC,CAAC,CACnB,KAAC,KAAK,CAAC,UAAU,IACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,YAEzE,iBAAiB,GACD,CACpB,CAAC,CAAC,CAAC,IAAI,IACG,CACd,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { TestableProps } from '../types';
2
+ export type ToastVariant = 'information' | 'success' | 'warning' | 'error';
3
+ export interface ToastProps extends TestableProps {
4
+ variant?: ToastVariant;
5
+ title: string;
6
+ description?: string;
7
+ secondaryTitle?: string;
8
+ primaryTitle?: string;
9
+ onSecondaryClick?: () => void;
10
+ onPrimaryClick?: () => void;
11
+ onClose?: () => void;
12
+ }
13
+ /**
14
+ * In-app toast notification surface.
15
+ * Renders the body as text (no `dangerouslySetInnerHTML`) — caller-provided
16
+ * strings cannot inject markup.
17
+ */
18
+ export declare function Toast({ variant, title, description, secondaryTitle, primaryTitle, onSecondaryClick, onPrimaryClick, onClose, ...rest }: ToastProps): JSX.Element;
19
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/components/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AASD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,OAAuB,EACvB,KAAK,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,GAAG,IAAI,EACR,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CA+C1B"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ import { Button } from './Button';
4
+ const variantToTheme = {
5
+ information: { bg: 'dl.info.tint10', color: 'dl.info' },
6
+ success: { bg: 'dl.success.tint10', color: 'dl.success' },
7
+ warning: { bg: 'dl.warning.tint10', color: 'dl.warning' },
8
+ error: { bg: 'dl.error.tint10', color: 'dl.error' },
9
+ };
10
+ /**
11
+ * In-app toast notification surface.
12
+ * Renders the body as text (no `dangerouslySetInnerHTML`) — caller-provided
13
+ * strings cannot inject markup.
14
+ */
15
+ export function Toast({ variant = 'information', title, description, secondaryTitle, primaryTitle, onSecondaryClick, onPrimaryClick, onClose, ...rest }) {
16
+ const theme = variantToTheme[variant];
17
+ return (_jsxs(Box, { role: "status", "aria-live": "polite", bg: theme.bg, color: theme.color, borderRadius: "dl.md", p: "3", borderWidth: "1px", borderColor: theme.color, ...rest, children: [_jsxs(Flex, { justify: "space-between", align: "flex-start", gap: "3", children: [_jsxs(Box, { flex: "1", children: [_jsx(Box, { fontWeight: "600", color: "dl.text", children: title }), description ? (_jsx(Box, { mt: "1", color: "dl.text.subtext", fontSize: "sm", children: description })) : null] }), onClose ? (_jsx("button", { type: "button", "aria-label": "Close", onClick: onClose, children: "\u00D7" })) : null] }), (primaryTitle || secondaryTitle) && (_jsxs(Flex, { gap: "2", mt: "3", justify: "flex-end", children: [secondaryTitle ? (_jsx(Button, { variant: "transparent", onClick: onSecondaryClick, children: secondaryTitle })) : null, primaryTitle ? (_jsx(Button, { variant: "primary", onClick: onPrimaryClick, children: primaryTitle })) : null] }))] }));
18
+ }
19
+ //# sourceMappingURL=Toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/components/Toast.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgBlC,MAAM,cAAc,GAAwD;IAC1E,WAAW,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;IACvD,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE;IACzD,OAAO,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE;IACzD,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE;CACpD,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,OAAO,GAAG,aAAa,EACvB,KAAK,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,GAAG,IAAI,EACI;IACX,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CACL,MAAC,GAAG,IACF,IAAI,EAAC,QAAQ,eACH,QAAQ,EAClB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,YAAY,EAAC,OAAO,EACpB,CAAC,EAAC,GAAG,EACL,WAAW,EAAC,KAAK,EACjB,WAAW,EAAE,KAAK,CAAC,KAAK,KACpB,IAAI,aAER,MAAC,IAAI,IAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,YAAY,EAAC,GAAG,EAAC,GAAG,aACtD,MAAC,GAAG,IAAC,IAAI,EAAC,GAAG,aACX,KAAC,GAAG,IAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,YAClC,KAAK,GACF,EACL,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,GAAG,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,IAAI,YAC9C,WAAW,GACR,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,OAAO,CAAC,CAAC,CAAC,CACT,iBAAQ,IAAI,EAAC,QAAQ,gBAAY,OAAO,EAAC,OAAO,EAAE,OAAO,uBAEhD,CACV,CAAC,CAAC,CAAC,IAAI,IACH,EACN,CAAC,YAAY,IAAI,cAAc,CAAC,IAAI,CACnC,MAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,aACpC,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,MAAM,IAAC,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,gBAAgB,YACpD,cAAc,GACR,CACV,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,cAAc,YAC9C,YAAY,GACN,CACV,CAAC,CAAC,CAAC,IAAI,IACH,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ export { UIKitProvider, type UIKitProviderProps } from './theme/UIKitProvider';
2
+ export { defaultSystem, createThemeSystem } from './theme/system';
3
+ export { defaultLightTheme, defaultRadii, defaultTypography, cornerRadiusOptions, } from './theme/palette';
4
+ export type { Variant, variants, AlertBoxState, RadiiOption, RadiiConfigs, TypographyConfigs, FullThemePalette, ActionMenuItem, ActionMenuItemVariant, ListItemProps, TextListItemProps, IconListItemProps, } from './types';
5
+ export { Button, type ButtonProps, type ButtonType } from './components/Button';
6
+ export { Input, type InputProps } from './components/Input';
7
+ export { TextArea, type TextAreaProps } from './components/TextArea';
8
+ export { Checkbox, type CheckboxProps } from './components/Checkbox';
9
+ export { Divider, type DividerProps, type DividerOrientation } from './components/Divider';
10
+ export { RuledGrid, type RuledGridProps } from './components/RuledGrid';
11
+ export { SectionTitle, type SectionTitleProps } from './components/SectionTitle';
12
+ export { CheckoutHeader, type CheckoutHeaderProps } from './components/CheckoutHeader';
13
+ export { Modal, type ModalProps } from './components/Modal';
14
+ export { Toast, type ToastProps, type ToastVariant } from './components/Toast';
15
+ export { SuccessBar, type SuccessBarProps } from './components/SuccessBar';
16
+ export { Chips, type ChipsProps } from './components/Chips';
17
+ export { IconContainer, type IconContainerProps } from './components/IconContainer';
18
+ export { ProductCard, type ProductCardProps } from './components/ProductCard';
19
+ export { DetailsItem, DetailsData, type DetailsItemProps, type DetailsItemVariant, type DetailsDataProps, type DetailsDataVariant, } from './components/DetailsItem';
20
+ export { ListItem } from './components/ListItem';
21
+ export { SelectionCard, type SelectionCardProps } from './components/SelectionCard';
22
+ export { SelectionTab, type SelectionTabProps } from './components/SelectionTab';
23
+ export { Dropdown, type DropdownProps } from './components/Dropdown';
24
+ export { SearchBar, type SearchBarProps, type SearchBarVariant } from './components/SearchBar';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,OAAO,EACP,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG3F,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ // @droplinked_inc/ui-kit — v0.1 rebuild from droplinked-ui-kit@0.0.40
2
+ // See MIGRATION.md for the upgrade path from the substrate package.
3
+ // --- Theme & provider -------------------------------------------------------
4
+ export { UIKitProvider } from './theme/UIKitProvider';
5
+ export { defaultSystem, createThemeSystem } from './theme/system';
6
+ export { defaultLightTheme, defaultRadii, defaultTypography, cornerRadiusOptions, } from './theme/palette';
7
+ // --- Primitives -------------------------------------------------------------
8
+ export { Button } from './components/Button';
9
+ export { Input } from './components/Input';
10
+ export { TextArea } from './components/TextArea';
11
+ export { Checkbox } from './components/Checkbox';
12
+ export { Divider } from './components/Divider';
13
+ // --- Layout & composition ---------------------------------------------------
14
+ export { RuledGrid } from './components/RuledGrid';
15
+ export { SectionTitle } from './components/SectionTitle';
16
+ export { CheckoutHeader } from './components/CheckoutHeader';
17
+ // --- Feedback & overlays ----------------------------------------------------
18
+ export { Modal } from './components/Modal';
19
+ export { Toast } from './components/Toast';
20
+ export { SuccessBar } from './components/SuccessBar';
21
+ // --- Data display -----------------------------------------------------------
22
+ export { Chips } from './components/Chips';
23
+ export { IconContainer } from './components/IconContainer';
24
+ export { ProductCard } from './components/ProductCard';
25
+ export { DetailsItem, DetailsData, } from './components/DetailsItem';
26
+ export { ListItem } from './components/ListItem';
27
+ // --- Selection composites ---------------------------------------------------
28
+ export { SelectionCard } from './components/SelectionCard';
29
+ export { SelectionTab } from './components/SelectionTab';
30
+ export { Dropdown } from './components/Dropdown';
31
+ export { SearchBar } from './components/SearchBar';
32
+ //# sourceMappingURL=index.js.map