@frontify/fondue-components 20.0.0-rc.0 → 20.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 (174) hide show
  1. package/dist/fondue-components.js +46 -50
  2. package/dist/fondue-components.js.map +1 -1
  3. package/dist/fondue-components10.js +3 -3
  4. package/dist/fondue-components10.js.map +1 -1
  5. package/dist/fondue-components11.js +66 -84
  6. package/dist/fondue-components11.js.map +1 -1
  7. package/dist/fondue-components12.js +2 -2
  8. package/dist/fondue-components13.js +49 -50
  9. package/dist/fondue-components13.js.map +1 -1
  10. package/dist/fondue-components14.js +2 -2
  11. package/dist/fondue-components15.js +2 -2
  12. package/dist/fondue-components16.js +2 -2
  13. package/dist/fondue-components17.js +36 -56
  14. package/dist/fondue-components17.js.map +1 -1
  15. package/dist/fondue-components18.js +16 -34
  16. package/dist/fondue-components18.js.map +1 -1
  17. package/dist/fondue-components19.js +71 -21
  18. package/dist/fondue-components19.js.map +1 -1
  19. package/dist/fondue-components20.js +36 -18
  20. package/dist/fondue-components20.js.map +1 -1
  21. package/dist/fondue-components21.js +55 -71
  22. package/dist/fondue-components21.js.map +1 -1
  23. package/dist/fondue-components22.js +138 -36
  24. package/dist/fondue-components22.js.map +1 -1
  25. package/dist/fondue-components23.js +50 -50
  26. package/dist/fondue-components23.js.map +1 -1
  27. package/dist/fondue-components24.js +29 -138
  28. package/dist/fondue-components24.js.map +1 -1
  29. package/dist/fondue-components25.js +157 -53
  30. package/dist/fondue-components25.js.map +1 -1
  31. package/dist/fondue-components26.js +137 -29
  32. package/dist/fondue-components26.js.map +1 -1
  33. package/dist/fondue-components27.js +127 -157
  34. package/dist/fondue-components27.js.map +1 -1
  35. package/dist/fondue-components28.js +30 -134
  36. package/dist/fondue-components28.js.map +1 -1
  37. package/dist/fondue-components29.js +58 -128
  38. package/dist/fondue-components29.js.map +1 -1
  39. package/dist/fondue-components3.js +1 -1
  40. package/dist/fondue-components30.js +101 -31
  41. package/dist/fondue-components30.js.map +1 -1
  42. package/dist/fondue-components31.js +12 -59
  43. package/dist/fondue-components31.js.map +1 -1
  44. package/dist/fondue-components32.js +52 -97
  45. package/dist/fondue-components32.js.map +1 -1
  46. package/dist/fondue-components33.js +20 -12
  47. package/dist/fondue-components33.js.map +1 -1
  48. package/dist/fondue-components34.js +7 -56
  49. package/dist/fondue-components34.js.map +1 -1
  50. package/dist/fondue-components35.js +6 -20
  51. package/dist/fondue-components35.js.map +1 -1
  52. package/dist/fondue-components36.js +32 -8
  53. package/dist/fondue-components36.js.map +1 -1
  54. package/dist/fondue-components37.js +3 -5
  55. package/dist/fondue-components37.js.map +1 -1
  56. package/dist/fondue-components38.js +12 -32
  57. package/dist/fondue-components38.js.map +1 -1
  58. package/dist/fondue-components39.js +155 -5
  59. package/dist/fondue-components39.js.map +1 -1
  60. package/dist/fondue-components4.js +2 -2
  61. package/dist/fondue-components40.js +116 -18
  62. package/dist/fondue-components40.js.map +1 -1
  63. package/dist/fondue-components41.js +22 -59
  64. package/dist/fondue-components41.js.map +1 -1
  65. package/dist/fondue-components42.js +14 -111
  66. package/dist/fondue-components42.js.map +1 -1
  67. package/dist/fondue-components43.js +30 -116
  68. package/dist/fondue-components43.js.map +1 -1
  69. package/dist/fondue-components44.js +53 -21
  70. package/dist/fondue-components44.js.map +1 -1
  71. package/dist/fondue-components45.js +129 -31
  72. package/dist/fondue-components45.js.map +1 -1
  73. package/dist/fondue-components46.js +20 -52
  74. package/dist/fondue-components46.js.map +1 -1
  75. package/dist/fondue-components47.js +53 -130
  76. package/dist/fondue-components47.js.map +1 -1
  77. package/dist/fondue-components48.js +7 -20
  78. package/dist/fondue-components48.js.map +1 -1
  79. package/dist/fondue-components49.js +13 -53
  80. package/dist/fondue-components49.js.map +1 -1
  81. package/dist/fondue-components5.js +2 -2
  82. package/dist/fondue-components50.js +14 -7
  83. package/dist/fondue-components50.js.map +1 -1
  84. package/dist/fondue-components51.js +5 -13
  85. package/dist/fondue-components51.js.map +1 -1
  86. package/dist/fondue-components52.js +60 -15
  87. package/dist/fondue-components52.js.map +1 -1
  88. package/dist/fondue-components53.js +18 -5
  89. package/dist/fondue-components53.js.map +1 -1
  90. package/dist/fondue-components54.js +19 -59
  91. package/dist/fondue-components54.js.map +1 -1
  92. package/dist/fondue-components55.js +5 -18
  93. package/dist/fondue-components55.js.map +1 -1
  94. package/dist/fondue-components56.js +14 -18
  95. package/dist/fondue-components56.js.map +1 -1
  96. package/dist/fondue-components57.js +1 -1
  97. package/dist/fondue-components58.js +16 -10
  98. package/dist/fondue-components58.js.map +1 -1
  99. package/dist/fondue-components59.js +10 -4
  100. package/dist/fondue-components59.js.map +1 -1
  101. package/dist/fondue-components6.js +4 -4
  102. package/dist/fondue-components60.js +35 -18
  103. package/dist/fondue-components60.js.map +1 -1
  104. package/dist/fondue-components61.js +4 -10
  105. package/dist/fondue-components61.js.map +1 -1
  106. package/dist/fondue-components62.js +10 -34
  107. package/dist/fondue-components62.js.map +1 -1
  108. package/dist/fondue-components63.js +5 -35
  109. package/dist/fondue-components63.js.map +1 -1
  110. package/dist/fondue-components64.js +24 -4
  111. package/dist/fondue-components64.js.map +1 -1
  112. package/dist/fondue-components65.js +16 -12
  113. package/dist/fondue-components65.js.map +1 -1
  114. package/dist/fondue-components66.js +150 -4
  115. package/dist/fondue-components66.js.map +1 -1
  116. package/dist/fondue-components67.js +19 -25
  117. package/dist/fondue-components67.js.map +1 -1
  118. package/dist/fondue-components68.js +77 -16
  119. package/dist/fondue-components68.js.map +1 -1
  120. package/dist/fondue-components69.js +8 -151
  121. package/dist/fondue-components69.js.map +1 -1
  122. package/dist/fondue-components7.js +2 -2
  123. package/dist/fondue-components70.js +37 -19
  124. package/dist/fondue-components70.js.map +1 -1
  125. package/dist/fondue-components71.js +69 -76
  126. package/dist/fondue-components71.js.map +1 -1
  127. package/dist/fondue-components72.js +11 -8
  128. package/dist/fondue-components72.js.map +1 -1
  129. package/dist/fondue-components73.js +12 -36
  130. package/dist/fondue-components73.js.map +1 -1
  131. package/dist/fondue-components74.js +12 -70
  132. package/dist/fondue-components74.js.map +1 -1
  133. package/dist/fondue-components75.js +20 -10
  134. package/dist/fondue-components75.js.map +1 -1
  135. package/dist/fondue-components76.js +34 -13
  136. package/dist/fondue-components76.js.map +1 -1
  137. package/dist/fondue-components77.js +10 -12
  138. package/dist/fondue-components77.js.map +1 -1
  139. package/dist/fondue-components78.js +55 -20
  140. package/dist/fondue-components78.js.map +1 -1
  141. package/dist/fondue-components79.js +15 -34
  142. package/dist/fondue-components79.js.map +1 -1
  143. package/dist/fondue-components8.js +5 -5
  144. package/dist/fondue-components80.js +24 -9
  145. package/dist/fondue-components80.js.map +1 -1
  146. package/dist/fondue-components81.js +14 -55
  147. package/dist/fondue-components81.js.map +1 -1
  148. package/dist/fondue-components82.js +22 -14
  149. package/dist/fondue-components82.js.map +1 -1
  150. package/dist/fondue-components83.js +6 -24
  151. package/dist/fondue-components83.js.map +1 -1
  152. package/dist/fondue-components84.js +5 -13
  153. package/dist/fondue-components84.js.map +1 -1
  154. package/dist/fondue-components85.js +4 -22
  155. package/dist/fondue-components85.js.map +1 -1
  156. package/dist/fondue-components86.js +4 -8
  157. package/dist/fondue-components86.js.map +1 -1
  158. package/dist/fondue-components87.js +2 -7
  159. package/dist/fondue-components87.js.map +1 -1
  160. package/dist/fondue-components88.js +39 -4
  161. package/dist/fondue-components88.js.map +1 -1
  162. package/dist/fondue-components89.js +6 -5
  163. package/dist/fondue-components89.js.map +1 -1
  164. package/dist/fondue-components9.js +4 -4
  165. package/dist/fondue-components90.js +8 -8
  166. package/dist/index.d.ts +4 -117
  167. package/dist/style.css +1 -1
  168. package/package.json +5 -6
  169. package/dist/fondue-components91.js +0 -43
  170. package/dist/fondue-components91.js.map +0 -1
  171. package/dist/fondue-components92.js +0 -9
  172. package/dist/fondue-components92.js.map +0 -1
  173. package/dist/fondue-components93.js +0 -5
  174. package/dist/fondue-components93.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components26.js","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport * as RadixSwitch from '@radix-ui/react-switch';\nimport { type FormEvent, type ForwardedRef, forwardRef } from 'react';\n\nimport { cn } from '#/utilities/styleUtilities';\nimport { type CommonAriaAttrs } from '#/utilities/types';\n\nimport styles from './styles/switch.module.scss';\n\ntype SwitchProps = {\n id?: string;\n name?: string;\n /**\n * The size of the switch component.\n * @default medium\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * The active value in the select component. This is used to control the select externally.\n * @default false\n */\n value?: boolean;\n /**\n * The default value of the select component. Used for uncontrolled usages.\n * @default false\n */\n defaultValue?: boolean;\n /**\n * Disables the select component.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the switch is required.\n * @default false\n */\n required?: boolean;\n /**\n * Callback function that is called when the switch is toggled.\n * @param checked - The new checked state of the switch\n */\n onChange?: (checked: boolean) => void;\n /**\n * Event handler called when the checkbox is blurred\n * @param event - The event object\n */\n onBlur?: (event: FormEvent<HTMLButtonElement>) => void;\n /**\n * Event handler called when the checkbox is focused\n * @param event - The event object\n */\n onFocus?: (event: FormEvent<HTMLButtonElement>) => void;\n 'data-test-id'?: string;\n} & CommonAriaAttrs;\n\nconst SwitchComponent = (\n {\n value,\n defaultValue,\n size = 'medium',\n onChange,\n 'data-test-id': dataTestId = 'fondue-switch',\n 'aria-label': ariaLabel = 'Switch',\n ...props\n }: SwitchProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) => (\n <RadixSwitch.Root\n ref={ref}\n checked={value}\n defaultChecked={defaultValue}\n className={cn([styles.root, styles[size]])}\n onCheckedChange={onChange}\n aria-label={ariaLabel}\n data-test-id={dataTestId}\n {...props}\n >\n <RadixSwitch.Thumb className={styles.thumb} />\n </RadixSwitch.Root>\n);\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(SwitchComponent);\nSwitch.displayName = 'Switch';\n"],"names":["SwitchComponent","value","defaultValue","size","onChange","dataTestId","ariaLabel","props","ref","jsx","RadixSwitch","cn","styles","Switch","forwardRef"],"mappings":";;;;;AAwDA,MAAMA,IAAkB,CACpB;AAAA,EACI,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,cAAcC,IAAY;AAAA,EAC1B,GAAGC;AACP,GACAC,MAEA,gBAAAC;AAAA,EAACC,EAAY;AAAA,EAAZ;AAAA,IACG,KAAAF;AAAA,IACA,SAASP;AAAA,IACT,gBAAgBC;AAAA,IAChB,WAAWS,EAAG,CAACC,EAAO,MAAMA,EAAOT,CAAI,CAAC,CAAC;AAAA,IACzC,iBAAiBC;AAAA,IACjB,cAAYE;AAAA,IACZ,gBAAcD;AAAA,IACb,GAAGE;AAAA,IAEJ,4BAACG,EAAY,OAAZ,EAAkB,WAAWE,EAAO,MAAA,CAAO;AAAA,EAAA;AAChD,GAGSC,IAASC,EAA2Cd,CAAe;AAChFa,EAAO,cAAc;"}
1
+ {"version":3,"file":"fondue-components26.js","sources":["../src/components/Tag/Tag.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross, IconPlus } from '@frontify/fondue-icons';\nimport { Children, isValidElement, useState, type MouseEvent, type ReactNode } from 'react';\n\nimport styles from './styles/tag.module.scss';\n\ntype TagStyle = 'default' | 'highlight';\n\ntype TagEmphasis = 'strong' | 'weak';\n\ntype TagSize = 'default' | 'small';\n\ntype TagProps = {\n /**\n * @default 'strong'\n */\n emphasis?: TagEmphasis;\n /**\n * @default 'default'\n */\n variant?: TagStyle;\n /**\n * @default 'default'\n */\n size?: TagSize;\n /**\n * @default false\n */\n disabled?: boolean;\n /**\n * Click handler\n */\n onClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on dismiss - providing this will show the dismiss button\n */\n onDismiss?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on add click - providing this will show the add button\n */\n onAddClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n title?: string;\n 'aria-label'?: string;\n 'data-test-id'?: string;\n children: ReactNode;\n};\n\nexport type TagHoverContentProps = {\n children: ReactNode;\n};\n\nexport type TagSecondaryContentProps = {\n children: ReactNode;\n};\n\nconst TagRoot = ({\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId = 'tag',\n children,\n disabled = false,\n emphasis = 'strong',\n onAddClick,\n onClick,\n onDismiss,\n size = 'default',\n title,\n variant,\n}: TagProps) => {\n const [isHover, setIsHover] = useState(false);\n\n // Extract hover content from slots\n let extractedHoverContent: ReactNode = null;\n const processedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && child.type === TagHoverContent) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n extractedHoverContent = child.props.children;\n return null;\n }\n return child;\n });\n\n const commonProps = {\n 'data-addable': !!onAddClick,\n 'data-component': 'tag',\n 'data-disabled': disabled,\n 'data-dismissable': !!onDismiss,\n 'data-emphasis': emphasis,\n 'data-size': size,\n 'data-variant': variant,\n className: styles.root,\n };\n\n return (\n <div {...commonProps}>\n <TagMainContent\n aria-label={ariaLabel || title}\n disabled={disabled}\n hoverContent={extractedHoverContent}\n isHover={isHover}\n onClick={onClick}\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n title={title}\n data-test-id={dataTestId}\n >\n {processedChildren}\n </TagMainContent>\n <TagActionButtons\n aria-label={ariaLabel || title}\n disabled={disabled}\n onAddClick={onAddClick}\n onDismiss={onDismiss}\n />\n </div>\n );\n};\nTagRoot.displayName = 'Tag';\n\nconst TagMainContent = ({\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId,\n children,\n disabled = false,\n hoverContent,\n isHover = false,\n onClick,\n onMouseEnter,\n onMouseLeave,\n title,\n}: {\n 'aria-label'?: string;\n 'data-test-id'?: string;\n children: ReactNode;\n disabled?: boolean;\n hoverContent?: ReactNode;\n isHover?: boolean;\n onClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n title?: string;\n}) => {\n // Process children to handle secondary content slots in their natural position\n let secondaryIndex = 0;\n const processedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && child.type === TagSecondaryContent) {\n const currentIndex = secondaryIndex++;\n return (\n <div className={styles.secondaryContent} key={`secondary-${currentIndex}`}>\n {/* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */}\n {child.props.children}\n </div>\n );\n }\n return child;\n });\n\n const content = hoverContent ? (\n <div data-hover={isHover}>\n <div>{hoverContent}</div>\n <div>{processedChildren}</div>\n </div>\n ) : (\n processedChildren\n );\n\n if (onClick) {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={title}\n className={styles.mainContent}\n onClick={disabled ? undefined : onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n disabled={disabled}\n data-test-id={dataTestId}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={styles.mainContent}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-test-id={dataTestId}\n >\n {content}\n </div>\n );\n};\n\ntype TagActionButtonsProps = {\n /**\n * @default false\n */\n disabled?: boolean;\n /**\n * Click handler on dismiss\n */\n onDismiss?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on add click\n */\n onAddClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n 'aria-label'?: string;\n};\n\nconst TagActionButtons = ({ 'aria-label': ariaLabel, disabled, onAddClick, onDismiss }: TagActionButtonsProps) => {\n return (\n <>\n {onAddClick && (\n <button\n type=\"button\"\n aria-label={`Add ${ariaLabel || ''}`}\n className={styles.actionButton}\n disabled={disabled}\n onClick={onAddClick}\n >\n <IconPlus size=\"16\" />\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n aria-label={`Dismiss ${ariaLabel || ''}`}\n className={styles.actionButton}\n disabled={disabled}\n onClick={onDismiss}\n >\n <IconCross size=\"16\" />\n </button>\n )}\n </>\n );\n};\n\nexport const TagHoverContent = ({ children }: TagHoverContentProps) => {\n return <>{children}</>;\n};\nTagHoverContent.displayName = 'Tag.HoverContent';\n\nexport const TagSecondaryContent = ({ children }: TagSecondaryContentProps) => {\n return <>{children}</>;\n};\nTagSecondaryContent.displayName = 'Tag.SecondaryContent';\n\nexport const Tag = TagRoot as typeof TagRoot & {\n HoverContent: typeof TagHoverContent;\n SecondaryContent: typeof TagSecondaryContent;\n displayName?: string;\n};\nTag.HoverContent = TagHoverContent;\nTag.SecondaryContent = TagSecondaryContent;\n"],"names":["TagRoot","ariaLabel","dataTestId","children","disabled","emphasis","onAddClick","onClick","onDismiss","size","title","variant","isHover","setIsHover","useState","extractedHoverContent","processedChildren","Children","child","isValidElement","TagHoverContent","commonProps","styles","jsxs","jsx","TagMainContent","TagActionButtons","hoverContent","onMouseEnter","onMouseLeave","secondaryIndex","TagSecondaryContent","currentIndex","content","Fragment","IconPlus","IconCross","Tag"],"mappings":"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"}
@@ -1,162 +1,132 @@
1
- import { jsx as t, jsxs as p } from "react/jsx-runtime";
2
- import { IconArrowUp as A, IconArrowDown as K, IconArrowBidirectional as h } from "@frontify/fondue-icons";
3
- import { forwardRef as b, useRef as w, useMemo as j } from "react";
4
- import { useSyncRefs as N } from "./fondue-components50.js";
5
- import { useTextTruncation as g } from "./fondue-components77.js";
6
- import { Box as L } from "./fondue-components5.js";
7
- import { LoadingCircle as S } from "./fondue-components19.js";
8
- import o from "./fondue-components78.js";
9
- import { handleKeyDown as $, shouldIgnoreRowClick as D } from "./fondue-components79.js";
10
- const R = b(
11
- ({ layout: a = "auto", fontSize: e = "medium", sticky: d, children: s, ...i }, l) => (
12
- // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions
13
- /* @__PURE__ */ t(
14
- "table",
15
- {
16
- ref: l,
17
- className: o.table,
18
- "data-layout": a,
19
- "data-font-size": e,
20
- "data-sticky": d,
21
- onKeyDown: $,
22
- ...i,
23
- children: s
24
- }
25
- )
26
- )
27
- );
28
- R.displayName = "Table.Root";
29
- const C = b(({ children: a }, e) => /* @__PURE__ */ t("caption", { ref: e, className: o.caption, children: a }));
30
- C.displayName = "Table.Caption";
31
- const v = b(
32
- ({ children: a, "aria-label": e, "aria-busy": d }, s) => /* @__PURE__ */ t("thead", { ref: s, className: o.header, "aria-label": e, "aria-busy": d, children: a })
33
- );
34
- v.displayName = "Table.Header";
35
- const x = b(
36
- ({
37
- noShrink: a = !1,
38
- truncate: e = !1,
39
- align: d = "left",
40
- scope: s = "col",
41
- sortTranslations: i,
42
- sortDirection: l,
43
- colSpan: m,
44
- width: c,
45
- state: f = "idle",
46
- loadingStateAriaLabel: u,
47
- onSortChange: n,
48
- children: r
49
- }, H) => {
50
- const y = w(null);
51
- N(y, H), g(y);
52
- const z = j(() => typeof r == "string" ? l === "ascending" ? (i == null ? void 0 : i.sortDescending) ?? `Sort by ${r} descending` : (i == null ? void 0 : i.sortAscending) ?? `Sort by ${r} ascending` : l === "ascending" ? "Sort descending" : "Sort ascending", [r, l, i]), B = () => {
53
- if (!n)
54
- return;
55
- n(l === void 0 || l === "descending" ? "ascending" : "descending");
56
- };
57
- return /* @__PURE__ */ t(
58
- "th",
59
- {
60
- ref: y,
61
- style: { width: c },
62
- className: o.headerCell,
63
- scope: s,
64
- colSpan: m,
65
- "data-align": d,
66
- "data-truncate": e,
67
- "data-no-shrink": a,
68
- "data-sortable": !!n,
69
- "aria-sort": n ? l || "none" : void 0,
70
- children: f === "loading" ? /* @__PURE__ */ p("div", { className: o.cellContent, "aria-live": "polite", "aria-label": u, children: [
71
- typeof r == "string" && e ? /* @__PURE__ */ t("span", { className: o.buttonText, children: r }) : r,
72
- /* @__PURE__ */ t(S, { "data-test-id": "fondue-loading-circle", size: "xx-small" })
73
- ] }) : n ? /* @__PURE__ */ p(
74
- "button",
75
- {
76
- className: o.cellContent,
77
- "aria-label": z,
78
- "data-active": !!l,
79
- onClick: B,
80
- type: "button",
81
- children: [
82
- typeof r == "string" && e ? /* @__PURE__ */ t("span", { className: o.buttonText, children: r }) : r,
83
- /* @__PURE__ */ t(L, { width: 3, children: l === "ascending" ? /* @__PURE__ */ t(A, { className: o.sortIndicator, size: "12" }) : l === "descending" ? /* @__PURE__ */ t(K, { className: o.sortIndicator, size: "12" }) : /* @__PURE__ */ t(h, { className: o.sortIndicator, size: "12" }) })
84
- ]
85
- }
86
- ) : r
87
- }
88
- );
1
+ import { jsx as a, jsxs as b } from "react/jsx-runtime";
2
+ import { createContext as E, forwardRef as l, useContext as f, useRef as w, useEffect as O, useMemo as I, useCallback as q, createElement as z } from "react";
3
+ import { IconDotsHorizontal as B } from "@frontify/fondue-icons";
4
+ import * as c from "@radix-ui/react-tabs";
5
+ import { useControllableState as H } from "./fondue-components64.js";
6
+ import { Button as M } from "./fondue-components6.js";
7
+ import { Dropdown as d } from "./fondue-components11.js";
8
+ import { useTabTriggers as W } from "./fondue-components78.js";
9
+ import n from "./fondue-components79.js";
10
+ const m = E({
11
+ value: "",
12
+ disabled: !1
13
+ });
14
+ m.displayName = "TabConfigContext";
15
+ const v = E({
16
+ addTrigger: () => {
89
17
  }
90
- );
91
- x.displayName = "Table.HeaderCell";
92
- const I = b(
93
- ({ children: a, "aria-busy": e }, d) => /* @__PURE__ */ t("tbody", { ref: d, className: o.body, "aria-busy": e, children: a })
94
- );
95
- I.displayName = "Table.Body";
96
- const T = b(
97
- ({ disabled: a = !1, selected: e = !1, onClick: d, children: s, "aria-label": i, "data-test-id": l }, m) => {
98
- const c = d !== void 0 && !a, f = (n) => {
99
- a || D(n) || d && d(e);
100
- }, u = (n) => {
101
- c && (n.key === "Enter" || n.key === " ") && (n.preventDefault(), f());
102
- };
103
- return /* @__PURE__ */ t(
104
- "tr",
105
- {
106
- ref: m,
107
- className: o.row,
108
- tabIndex: 0,
109
- role: c ? "button" : "row",
110
- "data-disabled": a,
111
- "data-interactive": c,
112
- "data-selected": c ? void 0 : e,
113
- "aria-disabled": a,
114
- "aria-label": i,
115
- "aria-selected": c ? void 0 : e,
116
- onClick: c ? f : void 0,
117
- onKeyDown: c ? u : void 0,
118
- "data-test-id": l,
119
- children: s
120
- }
121
- );
122
- }
123
- );
124
- T.displayName = "Table.Row";
125
- const k = b(
126
- ({ colSpan: a, truncate: e, align: d = "left", children: s, "aria-label": i }, l) => {
127
- const m = w(null);
128
- return N(m, l), g(m), /* @__PURE__ */ t(
129
- "td",
130
- {
131
- ref: m,
132
- className: o.rowCell,
133
- colSpan: a,
134
- "data-align": d,
135
- "data-truncate": e,
136
- "aria-label": i,
137
- children: s
138
- }
139
- );
140
- }
141
- );
142
- k.displayName = "Table.RowCell";
143
- const V = {
144
- Root: R,
145
- Caption: C,
146
- Header: v,
147
- HeaderCell: x,
148
- Body: I,
149
- Row: T,
150
- RowCell: k
18
+ });
19
+ v.displayName = "TabTriggerContext";
20
+ const L = ({
21
+ padding: t = "compact",
22
+ activeTab: o,
23
+ defaultActiveTab: s,
24
+ size: r = "medium",
25
+ onActiveTabChange: u,
26
+ children: p,
27
+ variant: T = "default",
28
+ ...i
29
+ }, S) => {
30
+ var y;
31
+ const [g, C] = H({
32
+ prop: o,
33
+ defaultProp: s,
34
+ onChange: u
35
+ }), x = q(
36
+ (e) => {
37
+ C(e);
38
+ },
39
+ [C]
40
+ ), { triggerListRef: j, activeIndicatorRef: A, triggers: N, triggersOutOfView: h, addTrigger: R } = W({
41
+ activeTab: g
42
+ }), D = I(() => ({ addTrigger: R }), [R]);
43
+ return /* @__PURE__ */ a(v.Provider, { value: D, children: /* @__PURE__ */ b(
44
+ c.Root,
45
+ {
46
+ ref: S,
47
+ className: n.root,
48
+ onValueChange: x,
49
+ value: g ?? ((y = N[0]) == null ? void 0 : y.value),
50
+ "data-tabs-content-padding": t,
51
+ "data-tabs-variant": T,
52
+ ...i,
53
+ children: [
54
+ /* @__PURE__ */ b("div", { className: n.triggerListWrapper, children: [
55
+ /* @__PURE__ */ a(c.List, { ref: j, "data-size": r, className: n.triggerList, children: N.map((e) => /* @__PURE__ */ z(
56
+ c.Trigger,
57
+ {
58
+ ...e.props,
59
+ key: e.value,
60
+ value: e.value,
61
+ disabled: e.disabled,
62
+ className: n.trigger,
63
+ ref: e.ref
64
+ },
65
+ e.element
66
+ )) }),
67
+ /* @__PURE__ */ b(d.Root, { children: [
68
+ h.length > 0 && /* @__PURE__ */ a(d.Trigger, { "data-test-id": "overflow-items-dropdown-trigger", children: /* @__PURE__ */ a(M, { emphasis: "default", aspect: "square", size: "small", children: /* @__PURE__ */ a(B, { size: 16 }) }) }),
69
+ /* @__PURE__ */ a(d.Content, { align: "end", "data-test-id": "overflow-items-dropdown-content", children: h.map((e) => /* @__PURE__ */ z(
70
+ d.Item,
71
+ {
72
+ ...e.props,
73
+ disabled: e.disabled,
74
+ onSelect: () => x(e.value),
75
+ key: e.value
76
+ },
77
+ e.element
78
+ )) })
79
+ ] }),
80
+ /* @__PURE__ */ a(
81
+ "span",
82
+ {
83
+ "data-test-id": "active-tab-indicator",
84
+ ref: A,
85
+ className: n.activeIndicator
86
+ }
87
+ )
88
+ ] }),
89
+ p
90
+ ]
91
+ }
92
+ ) });
93
+ };
94
+ L.displayName = "Tabs.Root";
95
+ const V = ({ children: t, value: o, disabled: s }) => {
96
+ const r = I(() => ({ value: o, disabled: s }), [o, s]);
97
+ return /* @__PURE__ */ a(m.Provider, { value: r, children: t });
98
+ };
99
+ V.displayName = "Tabs.Tab";
100
+ const k = ({ children: t, ...o }, s) => {
101
+ const { value: r, disabled: u } = f(m), { addTrigger: p } = f(v), T = w(null), i = w();
102
+ return O(() => {
103
+ p({
104
+ ref: T || s,
105
+ value: r ?? "",
106
+ disabled: u,
107
+ props: o,
108
+ element: t,
109
+ previousElement: i.current
110
+ }), i.current = t;
111
+ }, [t]), null;
112
+ };
113
+ k.displayName = "Tabs.Trigger";
114
+ const P = ({ children: t, ...o }, s) => {
115
+ const { value: r } = f(m);
116
+ return /* @__PURE__ */ a(c.Content, { ref: s, ...o, className: n.content, value: r ?? "", children: t });
117
+ };
118
+ P.displayName = "Tabs.Content";
119
+ const Z = {
120
+ Root: l(L),
121
+ Tab: l(V),
122
+ Trigger: l(k),
123
+ Content: l(P)
151
124
  };
152
125
  export {
153
- V as Table,
154
- I as TableBody,
155
- C as TableCaption,
156
- v as TableHeader,
157
- x as TableHeaderCell,
158
- R as TableRoot,
159
- T as TableRow,
160
- k as TableRowCell
126
+ Z as Tabs,
127
+ P as TabsContent,
128
+ L as TabsRoot,
129
+ V as TabsTab,
130
+ k as TabsTrigger
161
131
  };
162
132
  //# sourceMappingURL=fondue-components27.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components27.js","sources":["../src/components/Table/Table.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconArrowBidirectional, IconArrowDown, IconArrowUp } from '@frontify/fondue-icons';\nimport {\n type AriaAttributes,\n forwardRef,\n useMemo,\n useRef,\n type CSSProperties,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\n\nimport { useSyncRefs } from '#/hooks/useSyncRefs';\nimport { useTextTruncation } from '#/hooks/useTextTruncation';\nimport { type CommonAriaAttrs } from '#/utilities/types';\n\nimport { Box } from '../Box/Box';\nimport { LoadingCircle } from '../LoadingCircle/LoadingCircle';\n\nimport styles from './styles/table.module.scss';\nimport { handleKeyDown, shouldIgnoreRowClick } from './utils';\n\ntype TableRootProps = {\n /**\n * Whether the table should have a fixed or auto layout\n * @default 'auto'\n */\n layout?: 'auto' | 'fixed';\n /**\n * Font size of the table content\n * @default 'small'\n */\n fontSize?: 'small' | 'medium';\n /**\n * Whether header should stick to the top when scrolling\n */\n sticky?: 'head' | 'col' | 'both';\n children: ReactNode;\n} & CommonAriaAttrs &\n Pick<AriaAttributes, 'aria-multiselectable'>;\n\nexport const TableRoot = forwardRef<HTMLTableElement, TableRootProps>(\n ({ layout = 'auto', fontSize = 'medium', sticky, children, ...props }, ref) => {\n return (\n // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions\n <table\n ref={ref}\n className={styles.table}\n data-layout={layout}\n data-font-size={fontSize}\n data-sticky={sticky}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </table>\n );\n },\n);\nTableRoot.displayName = 'Table.Root';\n\nexport const TableCaption = forwardRef<HTMLTableCaptionElement, { children: ReactNode }>(({ children }, ref) => {\n return (\n <caption ref={ref} className={styles.caption}>\n {children}\n </caption>\n );\n});\nTableCaption.displayName = 'Table.Caption';\n\ntype TableHeaderProps = {\n children: ReactNode;\n 'aria-label'?: string;\n 'aria-busy'?: boolean;\n};\n\nexport const TableHeader = forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ children, 'aria-label': ariaLabel, 'aria-busy': ariaBusy }, ref) => {\n return (\n <thead ref={ref} className={styles.header} aria-label={ariaLabel} aria-busy={ariaBusy}>\n {children}\n </thead>\n );\n },\n);\nTableHeader.displayName = 'Table.Header';\n\ntype SortDirection = 'ascending' | 'descending' | undefined;\ntype HorizontalAlignment = 'left' | 'center' | 'right';\n\ntype TableHeaderCellProps = {\n /**\n * Scope of the column\n * @default 'col'\n */\n scope?: HTMLTableCellElement['scope'];\n /**\n * Number of columns the cell should span\n */\n colSpan?: HTMLTableCellElement['colSpan'];\n /**\n * Width of the column\n */\n width?: CSSProperties['width'];\n /**\n * Current sort direction of the column\n */\n sortDirection?: SortDirection;\n /**\n * Horizontal alignment of the content\n * @default 'left'\n */\n align?: HorizontalAlignment;\n /**\n * Whether to truncate content with ellipsis when it overflows\n * @default false\n */\n truncate?: boolean;\n /**\n * Aria label for asceding/descending sort. Variables: {column} - column name\n * @default \"Sort by {column} ascending/descending\"\n */\n sortTranslations?: {\n sortAscending?: string;\n sortDescending?: string;\n };\n /**\n * Whether the column should have a minimum width\n * @default false\n */\n noShrink?: boolean;\n /**\n * State of the cell, used for displaying loading state\n * @default 'idle'\n */\n state?: 'idle' | 'loading';\n /**\n * The aria-label to be applied when state='loading'\n */\n loadingStateAriaLabel?: string;\n /**\n * Handler called when the sort direction changes\n * @param direction - The new sort direction\n */\n onSortChange?: (direction: SortDirection) => void;\n children: ReactNode;\n};\n\nexport const TableHeaderCell = forwardRef<HTMLTableCellElement, TableHeaderCellProps>(\n (\n {\n noShrink = false,\n truncate = false,\n align = 'left',\n scope = 'col',\n sortTranslations,\n sortDirection,\n colSpan,\n width,\n state = 'idle',\n loadingStateAriaLabel,\n onSortChange,\n children,\n },\n ref,\n ) => {\n const cellRef = useRef<HTMLTableCellElement>(null);\n useSyncRefs<HTMLTableCellElement>(cellRef, ref);\n\n useTextTruncation(cellRef);\n\n const sortLabel = useMemo(() => {\n if (typeof children === 'string') {\n if (sortDirection === 'ascending') {\n return sortTranslations?.sortDescending ?? `Sort by ${children} descending`;\n }\n return sortTranslations?.sortAscending ?? `Sort by ${children} ascending`;\n }\n\n return sortDirection === 'ascending' ? 'Sort descending' : 'Sort ascending';\n }, [children, sortDirection, sortTranslations]);\n\n const handleSortChange = () => {\n if (!onSortChange) {\n return;\n }\n\n const newDirection: SortDirection =\n sortDirection === undefined || sortDirection === 'descending' ? 'ascending' : 'descending';\n\n onSortChange(newDirection);\n };\n\n return (\n <th\n ref={cellRef}\n style={{ width }}\n className={styles.headerCell}\n scope={scope}\n colSpan={colSpan}\n data-align={align}\n data-truncate={truncate}\n data-no-shrink={noShrink}\n data-sortable={!!onSortChange}\n aria-sort={onSortChange ? sortDirection || 'none' : undefined}\n >\n {state === 'loading' ? (\n <div className={styles.cellContent} aria-live=\"polite\" aria-label={loadingStateAriaLabel}>\n {typeof children === 'string' && truncate ? (\n <span className={styles.buttonText}>{children}</span>\n ) : (\n children\n )}\n <LoadingCircle data-test-id=\"fondue-loading-circle\" size=\"xx-small\" />\n </div>\n ) : onSortChange ? (\n <button\n className={styles.cellContent}\n aria-label={sortLabel}\n data-active={!!sortDirection}\n onClick={handleSortChange}\n type=\"button\"\n >\n {typeof children === 'string' && truncate ? (\n <span className={styles.buttonText}>{children}</span>\n ) : (\n children\n )}\n <Box width={3}>\n {sortDirection === 'ascending' ? (\n <IconArrowUp className={styles.sortIndicator} size=\"12\" />\n ) : sortDirection === 'descending' ? (\n <IconArrowDown className={styles.sortIndicator} size=\"12\" />\n ) : (\n <IconArrowBidirectional className={styles.sortIndicator} size=\"12\" />\n )}\n </Box>\n </button>\n ) : (\n children\n )}\n </th>\n );\n },\n);\nTableHeaderCell.displayName = 'Table.HeaderCell';\n\ntype TableBodyProps = {\n children: ReactNode;\n 'aria-busy'?: boolean;\n};\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ children, 'aria-busy': ariaBusy }, ref) => {\n return (\n <tbody ref={ref} className={styles.body} aria-busy={ariaBusy}>\n {children}\n </tbody>\n );\n },\n);\nTableBody.displayName = 'Table.Body';\n\ntype TableRowProps = {\n /**\n * Whether the row is in a selected state\n * @default false\n */\n selected?: boolean;\n /**\n * Whether to disable interactions for this row\n * @default false\n */\n disabled?: boolean;\n /**\n * Handler called when the row is clicked or activated via keyboard\n * If provided, the row will be hoverable and interactive\n */\n onClick?: (selected: boolean) => void;\n /**\n * Content to be rendered within the row\n */\n children: ReactNode;\n /**\n * Accessible label for the row\n */\n 'aria-label'?: string;\n 'data-test-id'?: string;\n};\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(\n (\n { disabled = false, selected = false, onClick, children, 'aria-label': ariaLabel, 'data-test-id': dataTestId },\n ref,\n ) => {\n const isInteractive = onClick !== undefined && !disabled;\n\n const handleClick = (event?: MouseEvent) => {\n if (disabled) {\n return;\n }\n\n if (shouldIgnoreRowClick(event)) {\n return;\n }\n\n if (onClick) {\n onClick(selected);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableRowElement>) => {\n if (!isInteractive) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleClick();\n }\n };\n\n return (\n <tr\n ref={ref}\n className={styles.row}\n tabIndex={0}\n role={isInteractive ? 'button' : 'row'}\n data-disabled={disabled}\n data-interactive={isInteractive}\n data-selected={!isInteractive ? selected : undefined}\n aria-disabled={disabled}\n aria-label={ariaLabel}\n aria-selected={!isInteractive ? selected : undefined}\n onClick={isInteractive ? handleClick : undefined}\n onKeyDown={isInteractive ? handleKeyDown : undefined}\n data-test-id={dataTestId}\n >\n {children}\n </tr>\n );\n },\n);\nTableRow.displayName = 'Table.Row';\n\ntype TableRowCellProps = {\n /**\n * Number of columns the cell should span\n */\n colSpan?: HTMLTableCellElement['colSpan'];\n /**\n * Whether to truncate content with ellipsis when it overflows\n * @default false\n */\n truncate?: boolean;\n /**\n * Horizontal alignment of the content\n * @default 'left'\n */\n align?: HorizontalAlignment;\n children: ReactNode;\n 'aria-label'?: string;\n};\n\nexport const TableRowCell = forwardRef<HTMLTableCellElement, TableRowCellProps>(\n ({ colSpan, truncate, align = 'left', children, 'aria-label': ariaLabel }, ref): ReactElement => {\n const cellRef = useRef<HTMLTableCellElement>(null);\n useSyncRefs<HTMLTableCellElement>(cellRef, ref);\n\n useTextTruncation(cellRef);\n\n return (\n <td\n ref={cellRef}\n className={styles.rowCell}\n colSpan={colSpan}\n data-align={align}\n data-truncate={truncate}\n aria-label={ariaLabel}\n >\n {children}\n </td>\n );\n },\n);\nTableRowCell.displayName = 'Table.RowCell';\n\nexport const Table = {\n Root: TableRoot,\n Caption: TableCaption,\n Header: TableHeader,\n HeaderCell: TableHeaderCell,\n Body: TableBody,\n Row: TableRow,\n RowCell: TableRowCell,\n};\n"],"names":["TableRoot","forwardRef","layout","fontSize","sticky","children","props","ref","jsx","styles","handleKeyDown","TableCaption","TableHeader","ariaLabel","ariaBusy","TableHeaderCell","noShrink","truncate","align","scope","sortTranslations","sortDirection","colSpan","width","state","loadingStateAriaLabel","onSortChange","cellRef","useRef","useSyncRefs","useTextTruncation","sortLabel","useMemo","handleSortChange","jsxs","LoadingCircle","Box","IconArrowUp","IconArrowDown","IconArrowBidirectional","TableBody","TableRow","disabled","selected","onClick","dataTestId","isInteractive","handleClick","event","shouldIgnoreRowClick","TableRowCell","Table"],"mappings":"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"}
1
+ {"version":3,"file":"fondue-components27.js","sources":["../src/components/Tabs/Tabs.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconDotsHorizontal } from '@frontify/fondue-icons';\nimport * as RadixTabs from '@radix-ui/react-tabs';\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type ForwardedRef,\n type ReactNode,\n} from 'react';\n\nimport { useControllableState } from '#/hooks/useControllableState';\n\nimport { Button } from '../Button/Button';\nimport { Dropdown } from '../Dropdown/Dropdown';\n\nimport { useTabTriggers } from './hooks/useTabTriggers';\nimport styles from './styles/tabs.module.scss';\nimport { type TabTrigger } from './types';\n\nexport type TabsRootProps = {\n id?: string;\n children: ReactNode;\n /**\n * Define the padding of the dialog\n * @default \"compact\"\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * The default active tab\n * Used for uncontrolled components\n */\n defaultActiveTab?: string;\n /**\n * The controlled value of the active tab\n */\n activeTab?: string;\n /**\n * The height of the tabs\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /**\n * Event handler called when the active tab changes\n */\n onActiveTabChange?: (value: string) => void;\n /**\n * Select the used variant\n * “default 'default'\n */\n variant?: 'default' | 'pill';\n};\n\nconst TabConfigContext = createContext<{\n value: string;\n disabled?: boolean;\n}>({\n value: '',\n disabled: false,\n});\nTabConfigContext.displayName = 'TabConfigContext';\n\nconst TabTriggerContext = createContext<{\n addTrigger: (trigger: TabTrigger) => void;\n}>({\n addTrigger: () => {},\n});\nTabTriggerContext.displayName = 'TabTriggerContext';\n\nexport const TabsRoot = (\n {\n padding = 'compact',\n activeTab: propsActiveTab,\n defaultActiveTab,\n size = 'medium',\n onActiveTabChange,\n children,\n variant = 'default',\n ...props\n }: TabsRootProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const [activeTab, setActiveTab] = useControllableState({\n prop: propsActiveTab,\n defaultProp: defaultActiveTab,\n onChange: onActiveTabChange,\n });\n\n const handleSetActiveTab = useCallback(\n (value: string) => {\n setActiveTab(value);\n },\n [setActiveTab],\n );\n\n const { triggerListRef, activeIndicatorRef, triggers, triggersOutOfView, addTrigger } = useTabTriggers({\n activeTab,\n });\n\n const contextValue = useMemo(() => ({ addTrigger }), [addTrigger]);\n\n return (\n <TabTriggerContext.Provider value={contextValue}>\n <RadixTabs.Root\n ref={ref}\n className={styles.root}\n onValueChange={handleSetActiveTab}\n value={activeTab ?? triggers[0]?.value}\n data-tabs-content-padding={padding}\n data-tabs-variant={variant}\n {...props}\n >\n <div className={styles.triggerListWrapper}>\n <RadixTabs.List ref={triggerListRef} data-size={size} className={styles.triggerList}>\n {triggers.map((trigger) => (\n <RadixTabs.Trigger\n {...trigger.props}\n key={trigger.value}\n value={trigger.value}\n disabled={trigger.disabled}\n className={styles.trigger}\n ref={trigger.ref}\n >\n {trigger.element}\n </RadixTabs.Trigger>\n ))}\n </RadixTabs.List>\n <Dropdown.Root>\n {triggersOutOfView.length > 0 && (\n <Dropdown.Trigger data-test-id=\"overflow-items-dropdown-trigger\">\n <Button emphasis=\"default\" aspect=\"square\" size=\"small\">\n <IconDotsHorizontal size={16} />\n </Button>\n </Dropdown.Trigger>\n )}\n <Dropdown.Content align=\"end\" data-test-id=\"overflow-items-dropdown-content\">\n {triggersOutOfView.map((trigger) => (\n <Dropdown.Item\n {...trigger.props}\n disabled={trigger.disabled}\n onSelect={() => handleSetActiveTab(trigger.value)}\n key={trigger.value}\n >\n {trigger.element}\n </Dropdown.Item>\n ))}\n </Dropdown.Content>\n </Dropdown.Root>\n <span\n data-test-id=\"active-tab-indicator\"\n ref={activeIndicatorRef}\n className={styles.activeIndicator}\n />\n </div>\n {children}\n </RadixTabs.Root>\n </TabTriggerContext.Provider>\n );\n};\nTabsRoot.displayName = 'Tabs.Root';\n\ntype TabsTabProps = {\n children: ReactNode;\n value: string;\n disabled?: boolean;\n};\n\nexport const TabsTab = ({ children, value, disabled }: TabsTabProps) => {\n const contextValue = useMemo(() => ({ value, disabled }), [value, disabled]);\n\n return <TabConfigContext.Provider value={contextValue}>{children}</TabConfigContext.Provider>;\n};\nTabsTab.displayName = 'Tabs.Tab';\n\ntype TabsTriggerProps = {\n children: ReactNode;\n};\n\nexport const TabsTrigger = ({ children, ...props }: TabsTriggerProps, ref: ForwardedRef<HTMLButtonElement>) => {\n const { value, disabled } = useContext(TabConfigContext);\n\n const { addTrigger } = useContext(TabTriggerContext);\n\n const localRef = useRef<HTMLButtonElement>(null);\n const previousElement = useRef<ReactNode>();\n\n useEffect(() => {\n addTrigger({\n ref: localRef || ref,\n value: value ?? '',\n disabled,\n props,\n element: children,\n previousElement: previousElement.current,\n });\n previousElement.current = children;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n return null;\n};\nTabsTrigger.displayName = 'Tabs.Trigger';\n\ntype TabsContentProps = {\n children: ReactNode;\n asChild?: boolean;\n};\n\nexport const TabsContent = ({ children, ...itemProps }: TabsContentProps, ref: ForwardedRef<HTMLDivElement>) => {\n const { value } = useContext(TabConfigContext);\n\n return (\n <RadixTabs.Content ref={ref} {...itemProps} className={styles.content} value={value ?? ''}>\n {children}\n </RadixTabs.Content>\n );\n};\nTabsContent.displayName = 'Tabs.Content';\n\nexport const Tabs = {\n Root: forwardRef<HTMLDivElement, TabsRootProps>(TabsRoot),\n Tab: forwardRef<HTMLDivElement, TabsTabProps>(TabsTab),\n Trigger: forwardRef<HTMLButtonElement, TabsTriggerProps>(TabsTrigger),\n Content: forwardRef<HTMLDivElement, TabsContentProps>(TabsContent),\n};\n"],"names":["TabConfigContext","createContext","TabTriggerContext","TabsRoot","padding","propsActiveTab","defaultActiveTab","size","onActiveTabChange","children","variant","props","ref","activeTab","setActiveTab","useControllableState","handleSetActiveTab","useCallback","value","triggerListRef","activeIndicatorRef","triggers","triggersOutOfView","addTrigger","useTabTriggers","contextValue","useMemo","jsx","jsxs","RadixTabs","styles","_a","trigger","createElement","Dropdown","Button","IconDotsHorizontal","TabsTab","disabled","TabsTrigger","useContext","localRef","useRef","previousElement","useEffect","TabsContent","itemProps","Tabs","forwardRef"],"mappings":"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"}
@@ -1,140 +1,36 @@
1
- import { jsxs as g, jsx as t, Fragment as h } from "react/jsx-runtime";
2
- import { IconPlus as z, IconCross as B } from "@frontify/fondue-icons";
3
- import { useState as $, Children as T, isValidElement as x } from "react";
4
- import s from "./fondue-components80.js";
5
- const H = ({
6
- "aria-label": e,
7
- "data-test-id": n = "tag",
8
- children: o,
9
- disabled: a = !1,
10
- emphasis: c = "strong",
11
- onAddClick: m,
12
- onClick: u,
13
- onDismiss: i,
14
- size: p = "default",
15
- title: l,
16
- variant: C
17
- }) => {
18
- const [v, d] = $(!1);
19
- let r = null;
20
- const f = T.map(o, (y) => x(y) && y.type === b ? (r = y.props.children, null) : y), S = {
21
- "data-addable": !!m,
22
- "data-component": "tag",
23
- "data-disabled": a,
24
- "data-dismissable": !!i,
25
- "data-emphasis": c,
26
- "data-size": p,
27
- "data-variant": C,
28
- className: s.root
29
- };
30
- return /* @__PURE__ */ g("div", { ...S, children: [
31
- /* @__PURE__ */ t(
32
- j,
33
- {
34
- "aria-label": e || l,
35
- disabled: a,
36
- hoverContent: r,
37
- isHover: v,
38
- onClick: u,
39
- onMouseEnter: () => d(!0),
40
- onMouseLeave: () => d(!1),
41
- title: l,
42
- "data-test-id": n,
43
- children: f
44
- }
45
- ),
46
- /* @__PURE__ */ t(
47
- P,
48
- {
49
- "aria-label": e || l,
50
- disabled: a,
51
- onAddClick: m,
52
- onDismiss: i
53
- }
54
- )
55
- ] });
56
- };
57
- H.displayName = "Tag";
58
- const j = ({
59
- "aria-label": e,
60
- "data-test-id": n,
61
- children: o,
62
- disabled: a = !1,
63
- hoverContent: c,
64
- isHover: m = !1,
65
- onClick: u,
66
- onMouseEnter: i,
67
- onMouseLeave: p,
68
- title: l
69
- }) => {
70
- let C = 0;
71
- const v = T.map(o, (r) => {
72
- if (x(r) && r.type === N) {
73
- const f = C++;
74
- return /* @__PURE__ */ t("div", { className: s.secondaryContent, children: r.props.children }, `secondary-${f}`);
75
- }
76
- return r;
77
- }), d = c ? /* @__PURE__ */ g("div", { "data-hover": m, children: [
78
- /* @__PURE__ */ t("div", { children: c }),
79
- /* @__PURE__ */ t("div", { children: v })
80
- ] }) : v;
81
- return u ? /* @__PURE__ */ t(
82
- "button",
83
- {
84
- type: "button",
85
- "aria-label": e,
86
- title: l,
87
- className: s.mainContent,
88
- onClick: a ? void 0 : u,
89
- onMouseEnter: i,
90
- onMouseLeave: p,
91
- disabled: a,
92
- "data-test-id": n,
93
- children: d
94
- }
95
- ) : /* @__PURE__ */ t(
96
- "div",
97
- {
98
- className: s.mainContent,
99
- onMouseEnter: i,
100
- onMouseLeave: p,
101
- "data-test-id": n,
102
- children: d
103
- }
104
- );
105
- }, P = ({ "aria-label": e, disabled: n, onAddClick: o, onDismiss: a }) => /* @__PURE__ */ g(h, { children: [
106
- o && /* @__PURE__ */ t(
107
- "button",
108
- {
109
- type: "button",
110
- "aria-label": `Add ${e || ""}`,
111
- className: s.actionButton,
112
- disabled: n,
113
- onClick: o,
114
- children: /* @__PURE__ */ t(z, { size: "16" })
115
- }
116
- ),
117
- a && /* @__PURE__ */ t(
118
- "button",
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { forwardRef as l } from "react";
3
+ import { cn as c } from "./fondue-components38.js";
4
+ import t from "./fondue-components80.js";
5
+ const x = l(
6
+ ({
7
+ children: e,
8
+ as: r = "span",
9
+ size: m = "medium",
10
+ weight: a = "default",
11
+ color: s = "default",
12
+ boxColor: o,
13
+ className: i,
14
+ ...d
15
+ }, f) => /* @__PURE__ */ p(
16
+ r,
119
17
  {
120
- type: "button",
121
- "aria-label": `Dismiss ${e || ""}`,
122
- className: s.actionButton,
123
- disabled: n,
124
- onClick: a,
125
- children: /* @__PURE__ */ t(B, { size: "16" })
18
+ "data-test-id": "text",
19
+ className: c([
20
+ t.root,
21
+ t[`size-${m}`],
22
+ t[`weight-${a}`],
23
+ t[o ? `color-box-${o}` : `color-${s}`],
24
+ i
25
+ ]),
26
+ ref: f,
27
+ ...d,
28
+ children: e
126
29
  }
127
30
  )
128
- ] }), b = ({ children: e }) => /* @__PURE__ */ t(h, { children: e });
129
- b.displayName = "Tag.HoverContent";
130
- const N = ({ children: e }) => /* @__PURE__ */ t(h, { children: e });
131
- N.displayName = "Tag.SecondaryContent";
132
- const I = H;
133
- I.HoverContent = b;
134
- I.SecondaryContent = N;
31
+ );
32
+ x.displayName = "FondueText";
135
33
  export {
136
- I as Tag,
137
- b as TagHoverContent,
138
- N as TagSecondaryContent
34
+ x as Text
139
35
  };
140
36
  //# sourceMappingURL=fondue-components28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components28.js","sources":["../src/components/Tag/Tag.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross, IconPlus } from '@frontify/fondue-icons';\nimport { Children, isValidElement, useState, type MouseEvent, type ReactNode } from 'react';\n\nimport styles from './styles/tag.module.scss';\n\ntype TagStyle = 'default' | 'highlight';\n\ntype TagEmphasis = 'strong' | 'weak';\n\ntype TagSize = 'default' | 'small';\n\ntype TagProps = {\n /**\n * @default 'strong'\n */\n emphasis?: TagEmphasis;\n /**\n * @default 'default'\n */\n variant?: TagStyle;\n /**\n * @default 'default'\n */\n size?: TagSize;\n /**\n * @default false\n */\n disabled?: boolean;\n /**\n * Click handler\n */\n onClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on dismiss - providing this will show the dismiss button\n */\n onDismiss?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on add click - providing this will show the add button\n */\n onAddClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n title?: string;\n 'aria-label'?: string;\n 'data-test-id'?: string;\n children: ReactNode;\n};\n\nexport type TagHoverContentProps = {\n children: ReactNode;\n};\n\nexport type TagSecondaryContentProps = {\n children: ReactNode;\n};\n\nconst TagRoot = ({\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId = 'tag',\n children,\n disabled = false,\n emphasis = 'strong',\n onAddClick,\n onClick,\n onDismiss,\n size = 'default',\n title,\n variant,\n}: TagProps) => {\n const [isHover, setIsHover] = useState(false);\n\n // Extract hover content from slots\n let extractedHoverContent: ReactNode = null;\n const processedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && child.type === TagHoverContent) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n extractedHoverContent = child.props.children;\n return null;\n }\n return child;\n });\n\n const commonProps = {\n 'data-addable': !!onAddClick,\n 'data-component': 'tag',\n 'data-disabled': disabled,\n 'data-dismissable': !!onDismiss,\n 'data-emphasis': emphasis,\n 'data-size': size,\n 'data-variant': variant,\n className: styles.root,\n };\n\n return (\n <div {...commonProps}>\n <TagMainContent\n aria-label={ariaLabel || title}\n disabled={disabled}\n hoverContent={extractedHoverContent}\n isHover={isHover}\n onClick={onClick}\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n title={title}\n data-test-id={dataTestId}\n >\n {processedChildren}\n </TagMainContent>\n <TagActionButtons\n aria-label={ariaLabel || title}\n disabled={disabled}\n onAddClick={onAddClick}\n onDismiss={onDismiss}\n />\n </div>\n );\n};\nTagRoot.displayName = 'Tag';\n\nconst TagMainContent = ({\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId,\n children,\n disabled = false,\n hoverContent,\n isHover = false,\n onClick,\n onMouseEnter,\n onMouseLeave,\n title,\n}: {\n 'aria-label'?: string;\n 'data-test-id'?: string;\n children: ReactNode;\n disabled?: boolean;\n hoverContent?: ReactNode;\n isHover?: boolean;\n onClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n title?: string;\n}) => {\n // Process children to handle secondary content slots in their natural position\n let secondaryIndex = 0;\n const processedChildren = Children.map(children, (child) => {\n if (isValidElement(child) && child.type === TagSecondaryContent) {\n const currentIndex = secondaryIndex++;\n return (\n <div className={styles.secondaryContent} key={`secondary-${currentIndex}`}>\n {/* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */}\n {child.props.children}\n </div>\n );\n }\n return child;\n });\n\n const content = hoverContent ? (\n <div data-hover={isHover}>\n <div>{hoverContent}</div>\n <div>{processedChildren}</div>\n </div>\n ) : (\n processedChildren\n );\n\n if (onClick) {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n title={title}\n className={styles.mainContent}\n onClick={disabled ? undefined : onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n disabled={disabled}\n data-test-id={dataTestId}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={styles.mainContent}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-test-id={dataTestId}\n >\n {content}\n </div>\n );\n};\n\ntype TagActionButtonsProps = {\n /**\n * @default false\n */\n disabled?: boolean;\n /**\n * Click handler on dismiss\n */\n onDismiss?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Click handler on add click\n */\n onAddClick?: (event?: MouseEvent<HTMLButtonElement>) => void;\n 'aria-label'?: string;\n};\n\nconst TagActionButtons = ({ 'aria-label': ariaLabel, disabled, onAddClick, onDismiss }: TagActionButtonsProps) => {\n return (\n <>\n {onAddClick && (\n <button\n type=\"button\"\n aria-label={`Add ${ariaLabel || ''}`}\n className={styles.actionButton}\n disabled={disabled}\n onClick={onAddClick}\n >\n <IconPlus size=\"16\" />\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n aria-label={`Dismiss ${ariaLabel || ''}`}\n className={styles.actionButton}\n disabled={disabled}\n onClick={onDismiss}\n >\n <IconCross size=\"16\" />\n </button>\n )}\n </>\n );\n};\n\nexport const TagHoverContent = ({ children }: TagHoverContentProps) => {\n return <>{children}</>;\n};\nTagHoverContent.displayName = 'Tag.HoverContent';\n\nexport const TagSecondaryContent = ({ children }: TagSecondaryContentProps) => {\n return <>{children}</>;\n};\nTagSecondaryContent.displayName = 'Tag.SecondaryContent';\n\nexport const Tag = TagRoot as typeof TagRoot & {\n HoverContent: typeof TagHoverContent;\n SecondaryContent: typeof TagSecondaryContent;\n displayName?: string;\n};\nTag.HoverContent = TagHoverContent;\nTag.SecondaryContent = TagSecondaryContent;\n"],"names":["TagRoot","ariaLabel","dataTestId","children","disabled","emphasis","onAddClick","onClick","onDismiss","size","title","variant","isHover","setIsHover","useState","extractedHoverContent","processedChildren","Children","child","isValidElement","TagHoverContent","commonProps","styles","jsxs","jsx","TagMainContent","TagActionButtons","hoverContent","onMouseEnter","onMouseLeave","secondaryIndex","TagSecondaryContent","currentIndex","content","Fragment","IconPlus","IconCross","Tag"],"mappings":";;;;AAwDA,MAAMA,IAAU,CAAC;AAAA,EACb,cAAcC;AAAA,EACd,gBAAgBC,IAAa;AAAA,EAC7B,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,SAAAC;AACJ,MAAgB;AACZ,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAG5C,MAAIC,IAAmC;AACvC,QAAMC,IAAoBC,EAAS,IAAId,GAAU,CAACe,MAC1CC,EAAeD,CAAK,KAAKA,EAAM,SAASE,KAExCL,IAAwBG,EAAM,MAAM,UAC7B,QAEJA,CACV,GAEKG,IAAc;AAAA,IAChB,gBAAgB,CAAC,CAACf;AAAA,IAClB,kBAAkB;AAAA,IAClB,iBAAiBF;AAAA,IACjB,oBAAoB,CAAC,CAACI;AAAA,IACtB,iBAAiBH;AAAA,IACjB,aAAaI;AAAA,IACb,gBAAgBE;AAAA,IAChB,WAAWW,EAAO;AAAA,EAAA;AAGtB,SACI,gBAAAC,EAAC,OAAA,EAAK,GAAGF,GACL,UAAA;AAAA,IAAA,gBAAAG;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,cAAYxB,KAAaS;AAAA,QACzB,UAAAN;AAAA,QACA,cAAcW;AAAA,QACd,SAAAH;AAAA,QACA,SAAAL;AAAA,QACA,cAAc,MAAMM,EAAW,EAAI;AAAA,QACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,QACpC,OAAAH;AAAA,QACA,gBAAcR;AAAA,QAEb,UAAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEL,gBAAAQ;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,cAAYzB,KAAaS;AAAA,QACzB,UAAAN;AAAA,QACA,YAAAE;AAAA,QACA,WAAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAER;AACAR,EAAQ,cAAc;AAEtB,MAAMyB,IAAiB,CAAC;AAAA,EACpB,cAAcxB;AAAA,EACd,gBAAgBC;AAAA,EAChB,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAuB;AAAA,EACA,SAAAf,IAAU;AAAA,EACV,SAAAL;AAAA,EACA,cAAAqB;AAAA,EACA,cAAAC;AAAA,EACA,OAAAnB;AACJ,MAWM;AAEF,MAAIoB,IAAiB;AACrB,QAAMd,IAAoBC,EAAS,IAAId,GAAU,CAACe,MAAU;AACxD,QAAIC,EAAeD,CAAK,KAAKA,EAAM,SAASa,GAAqB;AAC7D,YAAMC,IAAeF;AACrB,aACI,gBAAAN,EAAC,OAAA,EAAI,WAAWF,EAAO,kBAElB,YAAM,MAAM,SAAA,GAF6B,aAAaU,CAAY,EAGvE;AAAA,IAER;AACA,WAAOd;AAAA,EACX,CAAC,GAEKe,IAAUN,IACZ,gBAAAJ,EAAC,OAAA,EAAI,cAAYX,GACb,UAAA;AAAA,IAAA,gBAAAY,EAAC,SAAK,UAAAG,EAAA,CAAa;AAAA,IACnB,gBAAAH,EAAC,SAAK,UAAAR,EAAA,CAAkB;AAAA,EAAA,EAAA,CAC5B,IAEAA;AAGJ,SAAIT,IAEI,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,cAAYvB;AAAA,MACZ,OAAAS;AAAA,MACA,WAAWY,EAAO;AAAA,MAClB,SAASlB,IAAW,SAAYG;AAAA,MAChC,cAAAqB;AAAA,MACA,cAAAC;AAAA,MACA,UAAAzB;AAAA,MACA,gBAAcF;AAAA,MAEb,UAAA+B;AAAA,IAAA;AAAA,EAAA,IAMT,gBAAAT;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWF,EAAO;AAAA,MAClB,cAAAM;AAAA,MACA,cAAAC;AAAA,MACA,gBAAc3B;AAAA,MAEb,UAAA+B;AAAA,IAAA;AAAA,EAAA;AAGb,GAkBMP,IAAmB,CAAC,EAAE,cAAczB,GAAW,UAAAG,GAAU,YAAAE,GAAY,WAAAE,QAEnE,gBAAAe,EAAAW,GAAA,EACK,UAAA;AAAA,EAAA5B,KACG,gBAAAkB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,cAAY,OAAOvB,KAAa,EAAE;AAAA,MAClC,WAAWqB,EAAO;AAAA,MAClB,UAAAlB;AAAA,MACA,SAASE;AAAA,MAET,UAAA,gBAAAkB,EAACW,GAAA,EAAS,MAAK,KAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAAA,EAG3B3B,KACG,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,cAAY,WAAWvB,KAAa,EAAE;AAAA,MACtC,WAAWqB,EAAO;AAAA,MAClB,UAAAlB;AAAA,MACA,SAASI;AAAA,MAET,UAAA,gBAAAgB,EAACY,GAAA,EAAU,MAAK,KAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AACzB,GAER,GAIKhB,IAAkB,CAAC,EAAE,UAAAjB,+BACpB,UAAAA,GAAS;AAEvBiB,EAAgB,cAAc;AAEvB,MAAMW,IAAsB,CAAC,EAAE,UAAA5B,+BACxB,UAAAA,GAAS;AAEvB4B,EAAoB,cAAc;AAE3B,MAAMM,IAAMrC;AAKnBqC,EAAI,eAAejB;AACnBiB,EAAI,mBAAmBN;"}
1
+ {"version":3,"file":"fondue-components28.js","sources":["../src/components/Text/Text.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ReactNode, forwardRef, type ForwardedRef, type HTMLAttributeAnchorTarget } from 'react';\n\nimport { type CommonAriaProps } from '#/helpers/aria';\nimport { cn } from '#/utilities/styleUtilities';\n\nimport styles from './styles/text.module.scss';\n\ntype TextWeight = 'default' | 'strong' | 'x-strong';\ntype TextSize = 'x-small' | 'small' | 'medium' | 'large';\ntype TextColor = 'default' | 'weak' | 'x-weak' | 'disabled' | 'negative' | 'positive' | 'warning' | 'interactive';\ntype BoxColor = 'neutral' | 'selected' | 'disabled' | 'positive' | 'negative' | 'warning';\n\ntype TagType = 'a' | 'abbr' | 'address' | 'em' | 'label' | 'li' | 'span' | 'strong' | 'time' | 'p';\n\nexport type TextProps<TTag extends TagType = 'span'> = CommonAriaProps &\n TagProps<TTag> & {\n /**\n * Id of the element\n */\n id?: string;\n /**\n * Size of the text\n *\n * @default 'medium'\n */\n size?: TextSize;\n /**\n * Weight of the font\n *\n * @default 'default'\n */\n weight?: TextWeight;\n /**\n * The html element used to render\n *\n * @default 'span'\n */\n as?: TTag;\n /**\n * Color of the text\n *\n * @default 'default'\n */\n color?: TextColor;\n /**\n * The texts color when used within a box\n *\n * @description optional color prop that uses the inverse box color when accessibility contrast is needed\n **/\n boxColor?: BoxColor;\n className?: string;\n children?: ReactNode;\n };\n\ntype TagPropMap = {\n a: { href?: string; target: HTMLAttributeAnchorTarget; rel?: string; title?: string };\n abbr: { title?: string };\n address: object;\n em: object;\n label: { for?: string };\n li: { value?: string };\n p: object;\n span: object;\n strong: object;\n time: { dateTime?: string };\n};\ntype TagProps<TTag extends TagType> = TagPropMap[TTag];\n\ntype TextElementMap = {\n a: HTMLAnchorElement;\n abbr: HTMLElement;\n address: HTMLElement;\n em: HTMLElement;\n label: HTMLLabelElement;\n li: HTMLLIElement;\n p: HTMLParagraphElement;\n span: HTMLSpanElement;\n strong: HTMLElement;\n time: HTMLTimeElement;\n};\ntype TextElementType<TTag extends TagType> = TextElementMap[TTag];\n\nexport const Text = forwardRef(\n (\n {\n children,\n as: Tag = 'span',\n size = 'medium',\n weight = 'default',\n color = 'default',\n boxColor,\n className,\n ...props\n },\n ref,\n ) => (\n <Tag\n data-test-id=\"text\"\n className={cn([\n styles.root,\n styles[`size-${size}`],\n styles[`weight-${weight}`],\n styles[boxColor ? `color-box-${boxColor}` : `color-${color}`],\n className,\n ])}\n // @ts-expect-error ref can not be inferred properly by TS\n ref={ref}\n {...props}\n >\n {children}\n </Tag>\n ),\n) as (<TTag extends TagType = 'span'>(\n props: TextProps<TTag> & { ref?: ForwardedRef<TextElementType<TTag>> },\n) => JSX.Element) & { displayName: string };\n\nText.displayName = 'FondueText';\n"],"names":["Text","forwardRef","children","Tag","size","weight","color","boxColor","className","props","ref","jsx","cn","styles"],"mappings":";;;;AAoFO,MAAMA,IAAOC;AAAA,EAChB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,IAAIC,IAAM;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAEPC,MAEA,gBAAAC;AAAA,IAACR;AAAA,IAAA;AAAA,MACG,gBAAa;AAAA,MACb,WAAWS,EAAG;AAAA,QACVC,EAAO;AAAA,QACPA,EAAO,QAAQT,CAAI,EAAE;AAAA,QACrBS,EAAO,UAAUR,CAAM,EAAE;AAAA,QACzBQ,EAAON,IAAW,aAAaA,CAAQ,KAAK,SAASD,CAAK,EAAE;AAAA,QAC5DE;AAAA,MAAA,CACH;AAAA,MAED,KAAAE;AAAA,MACC,GAAGD;AAAA,MAEH,UAAAP;AAAA,IAAA;AAAA,EAAA;AAGb;AAIAF,EAAK,cAAc;"}