@inzumer/ui-library 1.5.0 → 2.0.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.
Files changed (77) hide show
  1. package/dist/{chunk-BKPP4D3Q.js → chunk-27HTTVFO.js} +2 -2
  2. package/dist/{chunk-BKPP4D3Q.js.map → chunk-27HTTVFO.js.map} +1 -1
  3. package/dist/chunk-4TPQTZSR.js +76 -0
  4. package/dist/chunk-4TPQTZSR.js.map +1 -0
  5. package/dist/{chunk-D4I5OF3C.js → chunk-5LKLTY55.js} +2 -2
  6. package/dist/{chunk-D4I5OF3C.js.map → chunk-5LKLTY55.js.map} +1 -1
  7. package/dist/{chunk-YYNW2PXL.js → chunk-DIA7L6IA.js} +3 -3
  8. package/dist/{chunk-YYNW2PXL.js.map → chunk-DIA7L6IA.js.map} +1 -1
  9. package/dist/{chunk-DP274HDM.js → chunk-IY452YEX.js} +14 -4
  10. package/dist/chunk-IY452YEX.js.map +1 -0
  11. package/dist/{chunk-4CY55XM3.js → chunk-J7X6NLSR.js} +29 -11
  12. package/dist/chunk-J7X6NLSR.js.map +1 -0
  13. package/dist/{chunk-5IHM2545.js → chunk-KAU7S3D4.js} +2 -2
  14. package/dist/{chunk-5IHM2545.js.map → chunk-KAU7S3D4.js.map} +1 -1
  15. package/dist/{chunk-ZABQF65Z.js → chunk-KSNAVEJP.js} +3 -3
  16. package/dist/{chunk-ZABQF65Z.js.map → chunk-KSNAVEJP.js.map} +1 -1
  17. package/dist/chunk-LLJXVAR6.js +184 -0
  18. package/dist/chunk-LLJXVAR6.js.map +1 -0
  19. package/dist/{chunk-7HQFLM4A.js → chunk-NA7YKEO4.js} +2 -2
  20. package/dist/{chunk-7HQFLM4A.js.map → chunk-NA7YKEO4.js.map} +1 -1
  21. package/dist/{chunk-L4BPQAXU.js → chunk-NTXFFBL6.js} +3 -3
  22. package/dist/{chunk-L4BPQAXU.js.map → chunk-NTXFFBL6.js.map} +1 -1
  23. package/dist/{chunk-P4CV2EPR.js → chunk-SPDOYFCU.js} +2 -2
  24. package/dist/{chunk-P4CV2EPR.js.map → chunk-SPDOYFCU.js.map} +1 -1
  25. package/dist/{chunk-42G4RRCZ.js → chunk-TO3FF6FR.js} +3 -3
  26. package/dist/{chunk-42G4RRCZ.js.map → chunk-TO3FF6FR.js.map} +1 -1
  27. package/dist/{chunk-UL33H4AD.js → chunk-TRLFK626.js} +24 -4
  28. package/dist/chunk-TRLFK626.js.map +1 -0
  29. package/dist/{chunk-3YRDRHO3.js → chunk-UUW7L2AV.js} +3 -3
  30. package/dist/{chunk-3YRDRHO3.js.map → chunk-UUW7L2AV.js.map} +1 -1
  31. package/dist/{chunk-PE6XEC7Y.js → chunk-VCJN4FS2.js} +4 -4
  32. package/dist/{chunk-PE6XEC7Y.js.map → chunk-VCJN4FS2.js.map} +1 -1
  33. package/dist/chunk-VK24YOIC.js +184 -0
  34. package/dist/chunk-VK24YOIC.js.map +1 -0
  35. package/dist/{chunk-BGUNAALU.js → chunk-XUGSIK2P.js} +3 -3
  36. package/dist/{chunk-BGUNAALU.js.map → chunk-XUGSIK2P.js.map} +1 -1
  37. package/dist/{chunk-N5CLCKR3.js → chunk-ZH2EDGW6.js} +3 -3
  38. package/dist/{chunk-N5CLCKR3.js.map → chunk-ZH2EDGW6.js.map} +1 -1
  39. package/dist/components/atoms/Icon/index.js +1 -1
  40. package/dist/components/atoms/Image/index.js +1 -1
  41. package/dist/components/atoms/Input/index.js +2 -2
  42. package/dist/components/atoms/Link/index.js +1 -1
  43. package/dist/components/atoms/RichText/index.js +1 -1
  44. package/dist/components/atoms/Select/index.js +2 -2
  45. package/dist/components/atoms/Switch/index.js +2 -2
  46. package/dist/components/atoms/Textarea/index.js +2 -2
  47. package/dist/components/molecules/BottomSheet/index.js +2 -2
  48. package/dist/components/molecules/Breadcrumbs/index.js +3 -3
  49. package/dist/components/molecules/Card/index.js +2 -2
  50. package/dist/components/molecules/Carousel/index.d.ts +61 -0
  51. package/dist/components/molecules/{CookieBanner → Carousel}/index.js +2 -2
  52. package/dist/components/molecules/Drawer/index.js +2 -2
  53. package/dist/components/molecules/Dropdown/index.js +2 -2
  54. package/dist/components/molecules/MediaCard/index.d.ts +56 -0
  55. package/dist/components/molecules/MediaCard/index.js +6 -0
  56. package/dist/components/molecules/Modal/index.d.ts +4 -0
  57. package/dist/components/molecules/Modal/index.js +2 -2
  58. package/dist/components/molecules/Snackbar/index.js +1 -1
  59. package/dist/components/molecules/Timeline/index.d.ts +7 -0
  60. package/dist/components/molecules/Timeline/index.js +3 -2
  61. package/dist/components/organisms/CookieConsent/index.d.ts +59 -0
  62. package/dist/components/{molecules/CookiePreferences → organisms/CookieConsent}/index.js +4 -4
  63. package/dist/components/organisms/CookieConsent/index.js.map +1 -0
  64. package/dist/index.d.ts +3 -2
  65. package/dist/index.js +20 -19
  66. package/package.json +13 -9
  67. package/dist/chunk-4CY55XM3.js.map +0 -1
  68. package/dist/chunk-DP274HDM.js.map +0 -1
  69. package/dist/chunk-LSWJBAM6.js +0 -79
  70. package/dist/chunk-LSWJBAM6.js.map +0 -1
  71. package/dist/chunk-TR7XKJCO.js +0 -85
  72. package/dist/chunk-TR7XKJCO.js.map +0 -1
  73. package/dist/chunk-UL33H4AD.js.map +0 -1
  74. package/dist/components/molecules/CookieBanner/index.d.ts +0 -46
  75. package/dist/components/molecules/CookiePreferences/index.d.ts +0 -34
  76. /package/dist/components/molecules/{CookieBanner → Carousel}/index.js.map +0 -0
  77. /package/dist/components/molecules/{CookiePreferences → MediaCard}/index.js.map +0 -0
package/dist/index.js CHANGED
@@ -1,19 +1,20 @@
1
- export { useMediaQuery } from './chunk-2HCMNEIQ.js';
2
- export { Drawer } from './chunk-42G4RRCZ.js';
3
- export { Dropdown } from './chunk-BGUNAALU.js';
1
+ export { Dropdown } from './chunk-XUGSIK2P.js';
4
2
  export { Language } from './chunk-2YBZCUME.js';
5
- export { Snackbar } from './chunk-BKPP4D3Q.js';
3
+ export { MediaCard } from './chunk-4TPQTZSR.js';
4
+ export { Snackbar } from './chunk-27HTTVFO.js';
6
5
  export { Table, TableBody, TableCell, TableHead, TableHeaderCell, TableRow } from './chunk-XCUA543I.js';
7
- export { Timeline } from './chunk-UL33H4AD.js';
8
- export { Textarea } from './chunk-3YRDRHO3.js';
6
+ export { Timeline } from './chunk-TRLFK626.js';
7
+ export { CookieConsent } from './chunk-VK24YOIC.js';
8
+ export { Modal } from './chunk-J7X6NLSR.js';
9
+ export { Switch } from './chunk-KSNAVEJP.js';
10
+ export { Textarea } from './chunk-UUW7L2AV.js';
9
11
  export { Accordion } from './chunk-V3YXRI7M.js';
10
- export { BottomSheet } from './chunk-L4BPQAXU.js';
11
- export { Breadcrumbs } from './chunk-PE6XEC7Y.js';
12
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-N5CLCKR3.js';
13
- export { CookieBanner } from './chunk-TR7XKJCO.js';
14
- export { CookiePreferences } from './chunk-LSWJBAM6.js';
15
- export { Modal } from './chunk-4CY55XM3.js';
16
- export { Switch } from './chunk-ZABQF65Z.js';
12
+ export { BottomSheet } from './chunk-NTXFFBL6.js';
13
+ export { Breadcrumbs } from './chunk-VCJN4FS2.js';
14
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-ZH2EDGW6.js';
15
+ export { Carousel } from './chunk-LLJXVAR6.js';
16
+ export { useMediaQuery } from './chunk-2HCMNEIQ.js';
17
+ export { Drawer } from './chunk-TO3FF6FR.js';
17
18
  export { useFocusTrap } from './chunk-QT62VC36.js';
18
19
  export { useScrollLock } from './chunk-53YMHM24.js';
19
20
  export { useDismissableLayer } from './chunk-JCJP427C.js';
@@ -21,14 +22,14 @@ export { useDelayedUnmount } from './chunk-BNEEI7S5.js';
21
22
  import './chunk-GQMA2AQI.js';
22
23
  export { Button, buttonStyles } from './chunk-KL6I2JFC.js';
23
24
  export { useMergedRef } from './chunk-P4Z7HH66.js';
24
- export { Icon } from './chunk-7HQFLM4A.js';
25
- export { Image } from './chunk-5IHM2545.js';
26
- export { Input } from './chunk-DP274HDM.js';
27
- export { Link } from './chunk-D4I5OF3C.js';
28
- export { Select } from './chunk-YYNW2PXL.js';
25
+ export { Icon } from './chunk-NA7YKEO4.js';
26
+ export { Image } from './chunk-KAU7S3D4.js';
27
+ export { Input } from './chunk-IY452YEX.js';
28
+ export { Link } from './chunk-5LKLTY55.js';
29
+ export { Select } from './chunk-DIA7L6IA.js';
29
30
  import './chunk-4H6VER5P.js';
30
31
  import './chunk-FFKHEBQ7.js';
31
- export { RichText, elementByVariant } from './chunk-P4CV2EPR.js';
32
+ export { RichText, elementByVariant } from './chunk-SPDOYFCU.js';
32
33
  export { cn } from './chunk-6LLGTBM6.js';
33
34
  //# sourceMappingURL=index.js.map
34
35
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inzumer/ui-library",
3
- "version": "1.5.0",
3
+ "version": "2.0.0",
4
4
  "private": false,
5
5
  "description": "React UI component library for the Inzumer design system",
6
6
  "license": "MIT",
@@ -84,13 +84,13 @@
84
84
  "types": "./dist/components/molecules/Card/index.d.ts",
85
85
  "import": "./dist/components/molecules/Card/index.js"
86
86
  },
87
- "./cookie-banner": {
88
- "types": "./dist/components/molecules/CookieBanner/index.d.ts",
89
- "import": "./dist/components/molecules/CookieBanner/index.js"
87
+ "./carousel": {
88
+ "types": "./dist/components/molecules/Carousel/index.d.ts",
89
+ "import": "./dist/components/molecules/Carousel/index.js"
90
90
  },
91
- "./cookie-preferences": {
92
- "types": "./dist/components/molecules/CookiePreferences/index.d.ts",
93
- "import": "./dist/components/molecules/CookiePreferences/index.js"
91
+ "./cookie-consent": {
92
+ "types": "./dist/components/organisms/CookieConsent/index.d.ts",
93
+ "import": "./dist/components/organisms/CookieConsent/index.js"
94
94
  },
95
95
  "./drawer": {
96
96
  "types": "./dist/components/molecules/Drawer/index.d.ts",
@@ -104,6 +104,10 @@
104
104
  "types": "./dist/components/molecules/Language/index.d.ts",
105
105
  "import": "./dist/components/molecules/Language/index.js"
106
106
  },
107
+ "./media-card": {
108
+ "types": "./dist/components/molecules/MediaCard/index.d.ts",
109
+ "import": "./dist/components/molecules/MediaCard/index.js"
110
+ },
107
111
  "./modal": {
108
112
  "types": "./dist/components/molecules/Modal/index.d.ts",
109
113
  "import": "./dist/components/molecules/Modal/index.js"
@@ -178,8 +182,8 @@
178
182
  "typescript": "^5.7.2",
179
183
  "vite-tsconfig-paths": "^6.1.1",
180
184
  "vitest": "^2.1.6",
181
- "@inzumer/tsconfig": "0.1.0",
182
- "@inzumer/eslint-config": "0.1.0"
185
+ "@inzumer/eslint-config": "0.1.0",
186
+ "@inzumer/tsconfig": "0.1.0"
183
187
  },
184
188
  "scripts": {
185
189
  "build": "tsup",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/molecules/Modal/Modal.styles.ts","../src/components/molecules/Modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAEO,IAAM,kBAAA,GAAqB,GAAA;AAAA,EAChC;AAAA,IACE,qFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B;AAAA,IACE,8GAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,uBAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,gBAAA,GAAmB,uDAAA;AAEzB,IAAM,iBAAA,GAAoB,0CAAA;ACvBjC,IAAM,gBAAA,GAAmB,GAAA;AAUlB,IAAM,KAAA,GAAQ,UAAA;AAAA,EACnB,CACE,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,oBAAA,GAAuB,IAAA,EAAM,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IACrF,GAAA,KACG;AACH,IAAA,MAAM,QAAA,GAAW,OAA8B,IAAI,CAAA;AACnD,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,GAAA,EAAK,QAAQ,CAAA;AAC9C,IAAA,MAAM,UAAU,KAAA,EAAM;AACtB,IAAA,MAAM,EAAE,OAAA,EAAS,OAAA,EAAQ,GAAI,iBAAA,CAAkB,MAAM,gBAAgB,CAAA;AAErE,IAAA,mBAAA,CAAoB,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,oBAAoB,CAAA;AAEjE,IAAA,YAAA,CAAa,IAAA,IAAQ,SAAS,QAAQ,CAAA;AACtC,IAAA,aAAA,CAAc,IAAI,CAAA;AAElB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAmB,EAAE,OAAA,EAAS,CAAA,EAC5C,QAAA,kBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,MAAA;AAAA,QACX,iBAAA,EAAiB,QAAQ,OAAA,GAAU,MAAA;AAAA,QACnC,QAAA,EAAU,EAAA;AAAA,QACV,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACrD,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,IAAA,EAAK,EAAA,EAAI,SAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,gBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UAED,QAAA;AAAA,UACA,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAoB,QAAA,EAAA,MAAA,EAAO;AAAA;AAAA;AAAA,KACxD,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-4CY55XM3.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const modalOverlayStyles = cva(\n [\n 'fixed inset-0 z-50 flex items-center justify-center bg-[var(--surface-overlay)] p-4',\n 'transition-opacity duration-200 ease-out',\n ],\n {\n variants: {\n visible: {\n true: 'opacity-100',\n false: 'opacity-0',\n },\n },\n defaultVariants: {\n visible: false,\n },\n },\n);\n\nexport const modalPanelStyles = cva(\n [\n 'w-full max-w-md rounded-xl border border-[var(--border-default)] bg-[var(--surface-secondary)] p-6 shadow-lg',\n 'transition-all duration-200 ease-out',\n ],\n {\n variants: {\n visible: {\n true: 'scale-100 opacity-100',\n false: 'scale-95 opacity-0',\n },\n },\n defaultVariants: {\n visible: false,\n },\n },\n);\n\nexport const modalTitleStyles = 'mb-4 text-lg font-semibold text-[var(--text-primary)]';\n\nexport const modalFooterStyles = 'mt-6 flex items-center justify-end gap-2';\n","import { forwardRef, useId, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { RichText } from '@components';\nimport {\n useDelayedUnmount,\n useDismissableLayer,\n useFocusTrap,\n useMergedRef,\n useScrollLock,\n} from '@hooks';\nimport { cn } from '@utils';\nimport {\n modalFooterStyles,\n modalOverlayStyles,\n modalPanelStyles,\n modalTitleStyles,\n} from './Modal.styles';\n\nconst EXIT_DURATION_MS = 200;\n\nexport type ModalProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n open: boolean;\n onClose: () => void;\n title?: ReactNode;\n footer?: ReactNode;\n closeOnBackdropClick?: boolean;\n};\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n (\n { open, onClose, title, footer, closeOnBackdropClick = true, className, children, ...props },\n ref,\n ) => {\n const panelRef = useRef<HTMLDivElement | null>(null);\n const setPanelRef = useMergedRef(ref, panelRef);\n const titleId = useId();\n const { mounted, visible } = useDelayedUnmount(open, EXIT_DURATION_MS);\n\n useDismissableLayer(open, onClose, panelRef, closeOnBackdropClick);\n // The panel mounts one render after `open` flips, so the trap starts once it exists.\n useFocusTrap(open && mounted, panelRef);\n useScrollLock(open);\n\n if (!mounted) {\n return null;\n }\n\n return (\n <div className={modalOverlayStyles({ visible })}>\n <div\n ref={setPanelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n tabIndex={-1}\n className={cn(modalPanelStyles({ visible }), className)}\n {...props}\n >\n {title && (\n <RichText as=\"h2\" id={titleId} variant=\"s1\" className={modalTitleStyles}>\n {title}\n </RichText>\n )}\n {children}\n {footer && <div className={modalFooterStyles}>{footer}</div>}\n </div>\n </div>\n );\n },\n);\n\nModal.displayName = 'Modal';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/atoms/Input/Input.tsx"],"names":[],"mappings":";;;;;;AAkBO,IAAM,KAAA,GAAQ,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClF,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,aAAA,GAAgB,QAAQ,OAAA,GAAU,KAAA;AAExC,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,GAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EACd,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,gBAAA,EACzC,iBACH,CAAA,EACF,CAAA;AAAA,sBAEF,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA;AAAA,UACA,kBAAA,EAAkB,QAAQ,CAAA,EAAG,EAAE,WAAW,IAAA,GAAO,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,GAAU,MAAA;AAAA,UAChE,cAAA,EAAc,QAAQ,MAAA,GAAS,MAAA;AAAA,UAC/B,SAAA,EAAW,GAAG,WAAA,CAAY,EAAE,OAAO,aAAA,EAAe,SAAA,EAAW,CAAA,EAAG,SAAS,CAAA;AAAA,UACxE,GAAG;AAAA;AAAA,OACN;AAAA,MACC,KAAA,oBACC,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,KAAI,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,MAAA,CAAA,EAAU,MAAK,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,kBACtE,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAED,CAAC,KAAA,IAAS,IAAA,oBACT,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,EAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,iBACxD,QAAA,EAAA,IAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-DP274HDM.js","sourcesContent":["import type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useId, type InputHTMLAttributes } from 'react';\nimport { RichText } from '@components';\nimport { cn } from '@utils';\nimport {\n inputErrorStyles,\n inputHintStyles,\n inputLabelStyles,\n inputStyles,\n} from './Input.styles';\n\nexport type InputProps = InputHTMLAttributes<HTMLInputElement> &\n VariantProps<typeof inputStyles> & {\n label?: string;\n hint?: string;\n error?: string;\n };\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, state, inputSize, label, hint, error, id: idProp, ...props }, ref) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const resolvedState = error ? 'error' : state;\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <label htmlFor={id}>\n <RichText as=\"span\" variant=\"p3\" className={inputLabelStyles}>\n {label}\n </RichText>\n </label>\n )}\n <input\n ref={ref}\n id={id}\n aria-describedby={error ? `${id}-error` : hint ? `${id}-hint` : undefined}\n aria-invalid={error ? 'true' : undefined}\n className={cn(inputStyles({ state: resolvedState, inputSize }), className)}\n {...props}\n />\n {error && (\n <RichText as=\"p\" id={`${id}-error`} role=\"alert\" variant=\"p4\" className={inputErrorStyles}>\n {error}\n </RichText>\n )}\n {!error && hint && (\n <RichText as=\"p\" id={`${id}-hint`} variant=\"p4\" className={inputHintStyles}>\n {hint}\n </RichText>\n )}\n </div>\n );\n },\n);\n\nInput.displayName = 'Input';\n"]}
@@ -1,79 +0,0 @@
1
- import { Modal } from './chunk-4CY55XM3.js';
2
- import { Switch } from './chunk-ZABQF65Z.js';
3
- import { Button } from './chunk-KL6I2JFC.js';
4
- import { RichText } from './chunk-P4CV2EPR.js';
5
- import { useId } from 'react';
6
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
-
8
- // src/components/molecules/CookiePreferences/CookiePreferences.styles.ts
9
- var cookiePreferencesIntroStyles = "mb-4 text-sm text-[var(--text-secondary)]";
10
- var cookieCategoryListStyles = "flex flex-col gap-4";
11
- var cookieCategoryStyles = "flex flex-col gap-2 rounded-lg border border-[var(--border-default)] p-4";
12
- var cookieCategoryHeaderStyles = "flex items-center justify-between gap-4";
13
- var cookieCategoryTitleStyles = "font-semibold text-[var(--text-primary)]";
14
- var cookieCategoryRequiredStyles = "text-xs font-semibold text-[var(--text-secondary)]";
15
- var cookieCategoryDescriptionStyles = "text-sm text-[var(--text-secondary)]";
16
- var CookiePreferences = ({
17
- open,
18
- onClose,
19
- title,
20
- description,
21
- categories,
22
- value,
23
- onChange,
24
- onSave,
25
- saveLabel,
26
- cancelLabel,
27
- requiredLabel,
28
- idPrefix
29
- }) => {
30
- const baseId = useId();
31
- const prefix = idPrefix ?? baseId;
32
- return /* @__PURE__ */ jsxs(
33
- Modal,
34
- {
35
- open,
36
- onClose,
37
- title,
38
- footer: /* @__PURE__ */ jsxs(Fragment, { children: [
39
- /* @__PURE__ */ jsx(Button, { id: `${prefix}-cancel`, type: "button", variant: "ghost", onClick: onClose, children: cancelLabel }),
40
- /* @__PURE__ */ jsx(Button, { id: `${prefix}-save`, type: "button", onClick: onSave, children: saveLabel })
41
- ] }),
42
- children: [
43
- description && /* @__PURE__ */ jsx(RichText, { as: "p", variant: "p3", className: cookiePreferencesIntroStyles, children: description }),
44
- /* @__PURE__ */ jsx("ul", { className: cookieCategoryListStyles, children: categories.map((category) => {
45
- const descriptionId = `${prefix}-${category.id}-description`;
46
- return /* @__PURE__ */ jsxs("li", { className: cookieCategoryStyles, children: [
47
- /* @__PURE__ */ jsx("div", { className: cookieCategoryHeaderStyles, children: category.required ? /* @__PURE__ */ jsxs(Fragment, { children: [
48
- /* @__PURE__ */ jsx(RichText, { as: "h3", variant: "p2", className: cookieCategoryTitleStyles, children: category.title }),
49
- /* @__PURE__ */ jsx(RichText, { as: "span", variant: "p4", className: cookieCategoryRequiredStyles, children: requiredLabel })
50
- ] }) : /* @__PURE__ */ jsx(
51
- Switch,
52
- {
53
- id: `${prefix}-${category.id}`,
54
- label: category.title,
55
- checked: value[category.id] === true,
56
- onCheckedChange: (checked) => onChange(category.id, checked),
57
- "aria-describedby": descriptionId
58
- }
59
- ) }),
60
- /* @__PURE__ */ jsx(
61
- RichText,
62
- {
63
- as: "p",
64
- id: descriptionId,
65
- variant: "p3",
66
- className: cookieCategoryDescriptionStyles,
67
- children: category.description
68
- }
69
- )
70
- ] }, category.id);
71
- }) })
72
- ]
73
- }
74
- );
75
- };
76
-
77
- export { CookiePreferences };
78
- //# sourceMappingURL=chunk-LSWJBAM6.js.map
79
- //# sourceMappingURL=chunk-LSWJBAM6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/molecules/CookiePreferences/CookiePreferences.styles.ts","../src/components/molecules/CookiePreferences/CookiePreferences.tsx"],"names":[],"mappings":"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","file":"chunk-LSWJBAM6.js","sourcesContent":["export const cookiePreferencesIntroStyles = 'mb-4 text-sm text-[var(--text-secondary)]';\n\nexport const cookieCategoryListStyles = 'flex flex-col gap-4';\n\nexport const cookieCategoryStyles =\n 'flex flex-col gap-2 rounded-lg border border-[var(--border-default)] p-4';\n\nexport const cookieCategoryHeaderStyles = 'flex items-center justify-between gap-4';\n\nexport const cookieCategoryTitleStyles = 'font-semibold text-[var(--text-primary)]';\n\nexport const cookieCategoryRequiredStyles = 'text-xs font-semibold text-[var(--text-secondary)]';\n\nexport const cookieCategoryDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n","import { useId, type ReactNode } from 'react';\nimport { Button, Modal, RichText, Switch } from '@components';\nimport {\n cookieCategoryDescriptionStyles,\n cookieCategoryHeaderStyles,\n cookieCategoryListStyles,\n cookieCategoryRequiredStyles,\n cookieCategoryStyles,\n cookieCategoryTitleStyles,\n cookiePreferencesIntroStyles,\n} from './CookiePreferences.styles';\n\nexport interface CookieCategory {\n id: string;\n title: string;\n description: ReactNode;\n /** Strictly necessary cookies can't be turned off; they show `requiredLabel` instead of a switch. */\n required?: boolean;\n}\n\nexport interface CookiePreferencesProps {\n open: boolean;\n onClose: () => void;\n title: ReactNode;\n description?: ReactNode;\n categories: CookieCategory[];\n /** Enabled state of each optional category, by id. */\n value: Record<string, boolean>;\n onChange: (id: string, enabled: boolean) => void;\n onSave: () => void;\n saveLabel: string;\n cancelLabel: string;\n /** e.g. \"Always on\". */\n requiredLabel: string;\n /** Prefix for stable ids: `<prefix>-<category id>` switches and `<prefix>-save` / `<prefix>-cancel` buttons. */\n idPrefix?: string;\n}\n\n/**\n * Per-category cookie choices in a `Modal` (focus trapped, Escape closes). Controlled: the\n * consumer holds `value` and persists it on `onSave`.\n */\nexport const CookiePreferences = ({\n open,\n onClose,\n title,\n description,\n categories,\n value,\n onChange,\n onSave,\n saveLabel,\n cancelLabel,\n requiredLabel,\n idPrefix,\n}: CookiePreferencesProps) => {\n const baseId = useId();\n const prefix = idPrefix ?? baseId;\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={title}\n footer={\n <>\n <Button id={`${prefix}-cancel`} type=\"button\" variant=\"ghost\" onClick={onClose}>\n {cancelLabel}\n </Button>\n <Button id={`${prefix}-save`} type=\"button\" onClick={onSave}>\n {saveLabel}\n </Button>\n </>\n }\n >\n {description && (\n <RichText as=\"p\" variant=\"p3\" className={cookiePreferencesIntroStyles}>\n {description}\n </RichText>\n )}\n <ul className={cookieCategoryListStyles}>\n {categories.map((category) => {\n const descriptionId = `${prefix}-${category.id}-description`;\n return (\n <li key={category.id} className={cookieCategoryStyles}>\n <div className={cookieCategoryHeaderStyles}>\n {category.required ? (\n <>\n <RichText as=\"h3\" variant=\"p2\" className={cookieCategoryTitleStyles}>\n {category.title}\n </RichText>\n <RichText as=\"span\" variant=\"p4\" className={cookieCategoryRequiredStyles}>\n {requiredLabel}\n </RichText>\n </>\n ) : (\n <Switch\n id={`${prefix}-${category.id}`}\n label={category.title}\n checked={value[category.id] === true}\n onCheckedChange={(checked) => onChange(category.id, checked)}\n aria-describedby={descriptionId}\n />\n )}\n </div>\n <RichText\n as=\"p\"\n id={descriptionId}\n variant=\"p3\"\n className={cookieCategoryDescriptionStyles}\n >\n {category.description}\n </RichText>\n </li>\n );\n })}\n </ul>\n </Modal>\n );\n};\n"]}
@@ -1,85 +0,0 @@
1
- import { Button } from './chunk-KL6I2JFC.js';
2
- import { RichText } from './chunk-P4CV2EPR.js';
3
- import { cn } from './chunk-6LLGTBM6.js';
4
- import { forwardRef, useId } from 'react';
5
- import { jsx, jsxs } from 'react/jsx-runtime';
6
-
7
- // src/components/molecules/CookieBanner/CookieBanner.styles.ts
8
- var cookieBannerStyles = [
9
- "fixed inset-x-0 bottom-0 z-40 border-t border-[var(--border-default)]",
10
- "bg-[var(--surface-primary)] shadow-lg"
11
- ].join(" ");
12
- var cookieBannerContentStyles = "mx-auto flex w-full max-w-5xl flex-col gap-3 px-4 py-4";
13
- var cookieBannerTitleStyles = "text-lg font-semibold text-[var(--text-primary)]";
14
- var cookieBannerDescriptionStyles = "text-sm text-[var(--text-secondary)]";
15
- var cookieBannerActionsStyles = "flex flex-wrap gap-2";
16
- var cookieBannerButtonStyles = "min-h-11 flex-1";
17
- var CookieBanner = forwardRef(
18
- ({
19
- title,
20
- description,
21
- acceptLabel,
22
- rejectLabel,
23
- customizeLabel,
24
- onAccept,
25
- onReject,
26
- onCustomize,
27
- buttonIds = {},
28
- className,
29
- ...props
30
- }, ref) => {
31
- const titleId = useId();
32
- return /* @__PURE__ */ jsx(
33
- "section",
34
- {
35
- ref,
36
- "aria-labelledby": titleId,
37
- className: cn(cookieBannerStyles, className),
38
- ...props,
39
- children: /* @__PURE__ */ jsxs("div", { className: cookieBannerContentStyles, children: [
40
- /* @__PURE__ */ jsx(RichText, { as: "h2", id: titleId, variant: "s1", className: cookieBannerTitleStyles, children: title }),
41
- /* @__PURE__ */ jsx(RichText, { as: "p", variant: "p3", className: cookieBannerDescriptionStyles, children: description }),
42
- /* @__PURE__ */ jsxs("div", { className: cookieBannerActionsStyles, children: [
43
- /* @__PURE__ */ jsx(
44
- Button,
45
- {
46
- id: buttonIds.accept,
47
- type: "button",
48
- className: cookieBannerButtonStyles,
49
- onClick: onAccept,
50
- children: acceptLabel
51
- }
52
- ),
53
- /* @__PURE__ */ jsx(
54
- Button,
55
- {
56
- id: buttonIds.reject,
57
- type: "button",
58
- variant: "secondary",
59
- className: cookieBannerButtonStyles,
60
- onClick: onReject,
61
- children: rejectLabel
62
- }
63
- ),
64
- onCustomize && customizeLabel && /* @__PURE__ */ jsx(
65
- Button,
66
- {
67
- id: buttonIds.customize,
68
- type: "button",
69
- variant: "ghost",
70
- className: cookieBannerButtonStyles,
71
- onClick: onCustomize,
72
- children: customizeLabel
73
- }
74
- )
75
- ] })
76
- ] })
77
- }
78
- );
79
- }
80
- );
81
- CookieBanner.displayName = "CookieBanner";
82
-
83
- export { CookieBanner };
84
- //# sourceMappingURL=chunk-TR7XKJCO.js.map
85
- //# sourceMappingURL=chunk-TR7XKJCO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/molecules/CookieBanner/CookieBanner.styles.ts","../src/components/molecules/CookieBanner/CookieBanner.tsx"],"names":[],"mappings":";;;;;;;AAAO,IAAM,kBAAA,GAAqB;AAAA,EAChC,uEAAA;AAAA,EACA;AACF,CAAA,CAAE,KAAK,GAAG,CAAA;AAEH,IAAM,yBAAA,GAA4B,wDAAA;AAElC,IAAM,uBAAA,GAA0B,kDAAA;AAEhC,IAAM,6BAAA,GAAgC,sCAAA;AAEtC,IAAM,yBAAA,GAA4B,sBAAA;AAElC,IAAM,wBAAA,GAA2B,iBAAA;ACmBjC,IAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CACE;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAY,EAAC;AAAA,IACb,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,UAAU,KAAA,EAAM;AACtB,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,iBAAA,EAAiB,OAAA;AAAA,QACjB,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS,CAAA;AAAA,QAC1C,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,yBAAA,EACd,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAG,IAAA,EAAK,EAAA,EAAI,SAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,uBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,0BACA,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,SAAQ,IAAA,EAAK,SAAA,EAAW,+BACtC,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,0BACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,yBAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,IAAI,SAAA,CAAU,MAAA;AAAA,gBACd,IAAA,EAAK,QAAA;AAAA,gBACL,SAAA,EAAW,wBAAA;AAAA,gBACX,OAAA,EAAS,QAAA;AAAA,gBAER,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,4BACA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,IAAI,SAAA,CAAU,MAAA;AAAA,gBACd,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,WAAA;AAAA,gBACR,SAAA,EAAW,wBAAA;AAAA,gBACX,OAAA,EAAS,QAAA;AAAA,gBAER,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YACC,eAAe,cAAA,oBACd,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,IAAI,SAAA,CAAU,SAAA;AAAA,gBACd,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,OAAA;AAAA,gBACR,SAAA,EAAW,wBAAA;AAAA,gBACX,OAAA,EAAS,WAAA;AAAA,gBAER,QAAA,EAAA;AAAA;AAAA;AACH,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-TR7XKJCO.js","sourcesContent":["export const cookieBannerStyles = [\n 'fixed inset-x-0 bottom-0 z-40 border-t border-[var(--border-default)]',\n 'bg-[var(--surface-primary)] shadow-lg',\n].join(' ');\n\nexport const cookieBannerContentStyles = 'mx-auto flex w-full max-w-5xl flex-col gap-3 px-4 py-4';\n\nexport const cookieBannerTitleStyles = 'text-lg font-semibold text-[var(--text-primary)]';\n\nexport const cookieBannerDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n\nexport const cookieBannerActionsStyles = 'flex flex-wrap gap-2';\n\nexport const cookieBannerButtonStyles = 'min-h-11 flex-1';\n","import { forwardRef, useId, type HTMLAttributes, type ReactNode } from 'react';\nimport { Button, RichText } from '@components';\nimport { cn } from '@utils';\nimport {\n cookieBannerActionsStyles,\n cookieBannerButtonStyles,\n cookieBannerContentStyles,\n cookieBannerDescriptionStyles,\n cookieBannerStyles,\n cookieBannerTitleStyles,\n} from './CookieBanner.styles';\n\nexport type CookieBannerProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {\n title: ReactNode;\n /** What the cookies are for; usually ends with a link to the privacy policy. */\n description: ReactNode;\n acceptLabel: string;\n rejectLabel: string;\n /** Shown only when `onCustomize` is set (opens the preferences, e.g. `CookiePreferences`). */\n customizeLabel?: string;\n onAccept: () => void;\n onReject: () => void;\n onCustomize?: () => void;\n /** Stable ids for the buttons, e.g. for analytics click triggers. */\n buttonIds?: { accept?: string; reject?: string; customize?: string };\n};\n\n/**\n * Cookie consent bar pinned to the bottom of the page. Presentational: the consumer decides when\n * to show it and stores the answer. Accept and reject weigh the same visually, so rejecting is as\n * easy as accepting. Not modal: the page stays usable.\n */\nexport const CookieBanner = forwardRef<HTMLElement, CookieBannerProps>(\n (\n {\n title,\n description,\n acceptLabel,\n rejectLabel,\n customizeLabel,\n onAccept,\n onReject,\n onCustomize,\n buttonIds = {},\n className,\n ...props\n },\n ref,\n ) => {\n const titleId = useId();\n return (\n <section\n ref={ref}\n aria-labelledby={titleId}\n className={cn(cookieBannerStyles, className)}\n {...props}\n >\n <div className={cookieBannerContentStyles}>\n <RichText as=\"h2\" id={titleId} variant=\"s1\" className={cookieBannerTitleStyles}>\n {title}\n </RichText>\n <RichText as=\"p\" variant=\"p3\" className={cookieBannerDescriptionStyles}>\n {description}\n </RichText>\n <div className={cookieBannerActionsStyles}>\n <Button\n id={buttonIds.accept}\n type=\"button\"\n className={cookieBannerButtonStyles}\n onClick={onAccept}\n >\n {acceptLabel}\n </Button>\n <Button\n id={buttonIds.reject}\n type=\"button\"\n variant=\"secondary\"\n className={cookieBannerButtonStyles}\n onClick={onReject}\n >\n {rejectLabel}\n </Button>\n {onCustomize && customizeLabel && (\n <Button\n id={buttonIds.customize}\n type=\"button\"\n variant=\"ghost\"\n className={cookieBannerButtonStyles}\n onClick={onCustomize}\n >\n {customizeLabel}\n </Button>\n )}\n </div>\n </div>\n </section>\n );\n },\n);\n\nCookieBanner.displayName = 'CookieBanner';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/molecules/Timeline/Timeline.styles.ts","../src/components/molecules/Timeline/Timeline.tsx"],"names":[],"mappings":";;;;;;AAAO,IAAM,cAAA,GACX,0KAAA;AAEK,IAAM,kBAAA,GAAqB,UAAA;AAE3B,IAAM,kBAAA,GACX,+FAAA;AAEK,IAAM,mBAAA,GAAsB,gDAAA;AAE5B,IAAM,6BAAA,GAAgC,0BAAA;AAEtC,IAAM,yBAAA,GAA4B,sCAAA;ACUlC,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC/B,GAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,gBAAgB,SAAS,CAAA,EAAI,GAAG,KAAA,EACzD,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChB,IAAA,CAAC,IAAA,EAAA,EAA0B,SAAA,EAAW,kBAAA,EACpC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,kBAAA,EAAoB,CAAA;AAAA,oBACrC,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,SAAQ,IAAA,EAAK,SAAA,EAAW,mBAAA,EACtC,QAAA,EAAA,IAAA,CAAK,KAAA,EACR,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,SAAA,EAAW,6BAAA,EACb,eAAK,WAAA,CAAY,GAAA,CAAI,CAAC,WAAA,EAAa,gBAAA,yBACjC,QAAA,EAAA,EAAgC,EAAA,EAAG,KAAI,OAAA,EAAQ,IAAA,EAAK,WAAW,yBAAA,EAC7D,QAAA,EAAA,WAAA,EAAA,EADY,gBAEf,CACD,CAAA,EACH;AAAA,GAAA,EAAA,EAXO,IAAA,CAAK,EAAA,IAAM,KAYpB,CACD,CAAA,EACH;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-UL33H4AD.js","sourcesContent":["export const timelineStyles =\n \"relative flex flex-col gap-8 pl-6 before:absolute before:bottom-0 before:left-0 before:top-1.5 before:border-l before:border-[var(--border-default)] before:content-['']\";\n\nexport const timelineItemStyles = 'relative';\n\nexport const timelineNodeStyles =\n 'absolute -left-6 top-1.5 h-2.5 w-2.5 -translate-x-1/2 rounded-full bg-[var(--btn-primary-bg)]';\n\nexport const timelineTitleStyles = 'text-base font-bold text-[var(--text-primary)]';\n\nexport const timelineDescriptionListStyles = 'mt-1 flex flex-col gap-1';\n\nexport const timelineDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { RichText } from '@components';\nimport { cn } from '@utils';\nimport {\n timelineDescriptionListStyles,\n timelineDescriptionStyles,\n timelineItemStyles,\n timelineNodeStyles,\n timelineStyles,\n timelineTitleStyles,\n} from './Timeline.styles';\n\nexport interface TimelineItem {\n id?: string;\n title: ReactNode;\n description: ReactNode[];\n}\n\nexport type TimelineProps = HTMLAttributes<HTMLUListElement> & {\n items: TimelineItem[];\n};\n\nexport const Timeline = forwardRef<HTMLUListElement, TimelineProps>(\n ({ items, className, ...props }, ref) => (\n <ul ref={ref} className={cn(timelineStyles, className)} {...props}>\n {items.map((item, index) => (\n <li key={item.id ?? index} className={timelineItemStyles}>\n <span className={timelineNodeStyles} />\n <RichText as=\"p\" variant=\"p2\" className={timelineTitleStyles}>\n {item.title}\n </RichText>\n <div className={timelineDescriptionListStyles}>\n {item.description.map((description, descriptionIndex) => (\n <RichText key={descriptionIndex} as=\"p\" variant=\"p3\" className={timelineDescriptionStyles}>\n {description}\n </RichText>\n ))}\n </div>\n </li>\n ))}\n </ul>\n ),\n);\n\nTimeline.displayName = 'Timeline';\n"]}
@@ -1,46 +0,0 @@
1
- import * as react from 'react';
2
- import { HTMLAttributes, ReactNode } from 'react';
3
-
4
- type CookieBannerProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {
5
- title: ReactNode;
6
- /** What the cookies are for; usually ends with a link to the privacy policy. */
7
- description: ReactNode;
8
- acceptLabel: string;
9
- rejectLabel: string;
10
- /** Shown only when `onCustomize` is set (opens the preferences, e.g. `CookiePreferences`). */
11
- customizeLabel?: string;
12
- onAccept: () => void;
13
- onReject: () => void;
14
- onCustomize?: () => void;
15
- /** Stable ids for the buttons, e.g. for analytics click triggers. */
16
- buttonIds?: {
17
- accept?: string;
18
- reject?: string;
19
- customize?: string;
20
- };
21
- };
22
- /**
23
- * Cookie consent bar pinned to the bottom of the page. Presentational: the consumer decides when
24
- * to show it and stores the answer. Accept and reject weigh the same visually, so rejecting is as
25
- * easy as accepting. Not modal: the page stays usable.
26
- */
27
- declare const CookieBanner: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLElement>, "title"> & {
28
- title: ReactNode;
29
- /** What the cookies are for; usually ends with a link to the privacy policy. */
30
- description: ReactNode;
31
- acceptLabel: string;
32
- rejectLabel: string;
33
- /** Shown only when `onCustomize` is set (opens the preferences, e.g. `CookiePreferences`). */
34
- customizeLabel?: string;
35
- onAccept: () => void;
36
- onReject: () => void;
37
- onCustomize?: () => void;
38
- /** Stable ids for the buttons, e.g. for analytics click triggers. */
39
- buttonIds?: {
40
- accept?: string;
41
- reject?: string;
42
- customize?: string;
43
- };
44
- } & react.RefAttributes<HTMLElement>>;
45
-
46
- export { CookieBanner, type CookieBannerProps };
@@ -1,34 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
3
-
4
- interface CookieCategory {
5
- id: string;
6
- title: string;
7
- description: ReactNode;
8
- /** Strictly necessary cookies can't be turned off; they show `requiredLabel` instead of a switch. */
9
- required?: boolean;
10
- }
11
- interface CookiePreferencesProps {
12
- open: boolean;
13
- onClose: () => void;
14
- title: ReactNode;
15
- description?: ReactNode;
16
- categories: CookieCategory[];
17
- /** Enabled state of each optional category, by id. */
18
- value: Record<string, boolean>;
19
- onChange: (id: string, enabled: boolean) => void;
20
- onSave: () => void;
21
- saveLabel: string;
22
- cancelLabel: string;
23
- /** e.g. "Always on". */
24
- requiredLabel: string;
25
- /** Prefix for stable ids: `<prefix>-<category id>` switches and `<prefix>-save` / `<prefix>-cancel` buttons. */
26
- idPrefix?: string;
27
- }
28
- /**
29
- * Per-category cookie choices in a `Modal` (focus trapped, Escape closes). Controlled: the
30
- * consumer holds `value` and persists it on `onSave`.
31
- */
32
- declare const CookiePreferences: ({ open, onClose, title, description, categories, value, onChange, onSave, saveLabel, cancelLabel, requiredLabel, idPrefix, }: CookiePreferencesProps) => react_jsx_runtime.JSX.Element;
33
-
34
- export { type CookieCategory, CookiePreferences, type CookiePreferencesProps };