@frontify/fondue-components 24.0.0 → 25.0.0-rc.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 (183) hide show
  1. package/dist/fondue-components.js +52 -48
  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 +104 -86
  6. package/dist/fondue-components11.js.map +1 -1
  7. package/dist/fondue-components12.js +2 -2
  8. package/dist/fondue-components13.js +58 -57
  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 +56 -36
  14. package/dist/fondue-components17.js.map +1 -1
  15. package/dist/fondue-components18.js +34 -16
  16. package/dist/fondue-components18.js.map +1 -1
  17. package/dist/fondue-components19.js +18 -73
  18. package/dist/fondue-components19.js.map +1 -1
  19. package/dist/fondue-components20.js +18 -36
  20. package/dist/fondue-components20.js.map +1 -1
  21. package/dist/fondue-components21.js +71 -50
  22. package/dist/fondue-components21.js.map +1 -1
  23. package/dist/fondue-components22.js +36 -138
  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 +137 -99
  28. package/dist/fondue-components24.js.map +1 -1
  29. package/dist/fondue-components25.js +48 -26
  30. package/dist/fondue-components25.js.map +1 -1
  31. package/dist/fondue-components26.js +92 -188
  32. package/dist/fondue-components26.js.map +1 -1
  33. package/dist/fondue-components27.js +30 -134
  34. package/dist/fondue-components27.js.map +1 -1
  35. package/dist/fondue-components28.js +191 -126
  36. package/dist/fondue-components28.js.map +1 -1
  37. package/dist/fondue-components29.js +134 -30
  38. package/dist/fondue-components29.js.map +1 -1
  39. package/dist/fondue-components3.js +1 -1
  40. package/dist/fondue-components30.js +130 -63
  41. package/dist/fondue-components30.js.map +1 -1
  42. package/dist/fondue-components31.js +31 -105
  43. package/dist/fondue-components31.js.map +1 -1
  44. package/dist/fondue-components32.js +64 -36
  45. package/dist/fondue-components32.js.map +1 -1
  46. package/dist/fondue-components33.js +111 -53
  47. package/dist/fondue-components33.js.map +1 -1
  48. package/dist/fondue-components34.js +36 -20
  49. package/dist/fondue-components34.js.map +1 -1
  50. package/dist/fondue-components35.js +57 -23
  51. package/dist/fondue-components35.js.map +1 -1
  52. package/dist/fondue-components36.js +20 -7
  53. package/dist/fondue-components36.js.map +1 -1
  54. package/dist/fondue-components37.js +23 -6
  55. package/dist/fondue-components37.js.map +1 -1
  56. package/dist/fondue-components38.js +8 -32
  57. package/dist/fondue-components38.js.map +1 -1
  58. package/dist/fondue-components39.js +5 -3
  59. package/dist/fondue-components39.js.map +1 -1
  60. package/dist/fondue-components4.js +3 -3
  61. package/dist/fondue-components40.js +32 -12
  62. package/dist/fondue-components40.js.map +1 -1
  63. package/dist/fondue-components41.js +5 -155
  64. package/dist/fondue-components41.js.map +1 -1
  65. package/dist/fondue-components42.js +18 -116
  66. package/dist/fondue-components42.js.map +1 -1
  67. package/dist/fondue-components43.js +59 -22
  68. package/dist/fondue-components43.js.map +1 -1
  69. package/dist/fondue-components44.js +111 -14
  70. package/dist/fondue-components44.js.map +1 -1
  71. package/dist/fondue-components45.js +116 -30
  72. package/dist/fondue-components45.js.map +1 -1
  73. package/dist/fondue-components46.js +21 -54
  74. package/dist/fondue-components46.js.map +1 -1
  75. package/dist/fondue-components47.js +32 -131
  76. package/dist/fondue-components47.js.map +1 -1
  77. package/dist/fondue-components48.js +53 -20
  78. package/dist/fondue-components48.js.map +1 -1
  79. package/dist/fondue-components49.js +131 -53
  80. package/dist/fondue-components49.js.map +1 -1
  81. package/dist/fondue-components5.js +2 -2
  82. package/dist/fondue-components50.js +20 -7
  83. package/dist/fondue-components50.js.map +1 -1
  84. package/dist/fondue-components51.js +53 -13
  85. package/dist/fondue-components51.js.map +1 -1
  86. package/dist/fondue-components52.js +7 -14
  87. package/dist/fondue-components52.js.map +1 -1
  88. package/dist/fondue-components53.js +13 -5
  89. package/dist/fondue-components53.js.map +1 -1
  90. package/dist/fondue-components54.js +15 -60
  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 +60 -19
  95. package/dist/fondue-components56.js.map +1 -1
  96. package/dist/fondue-components57.js +18 -5
  97. package/dist/fondue-components57.js.map +1 -1
  98. package/dist/fondue-components58.js +18 -14
  99. package/dist/fondue-components58.js.map +1 -1
  100. package/dist/fondue-components59.js +1 -1
  101. package/dist/fondue-components6.js +4 -4
  102. package/dist/fondue-components60.js +10 -16
  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 +18 -35
  107. package/dist/fondue-components62.js.map +1 -1
  108. package/dist/fondue-components63.js +10 -4
  109. package/dist/fondue-components63.js.map +1 -1
  110. package/dist/fondue-components64.js +34 -10
  111. package/dist/fondue-components64.js.map +1 -1
  112. package/dist/fondue-components65.js +35 -5
  113. package/dist/fondue-components65.js.map +1 -1
  114. package/dist/fondue-components66.js +4 -24
  115. package/dist/fondue-components66.js.map +1 -1
  116. package/dist/fondue-components67.js +12 -16
  117. package/dist/fondue-components67.js.map +1 -1
  118. package/dist/fondue-components68.js +4 -151
  119. package/dist/fondue-components68.js.map +1 -1
  120. package/dist/fondue-components69.js +25 -19
  121. package/dist/fondue-components69.js.map +1 -1
  122. package/dist/fondue-components7.js +2 -2
  123. package/dist/fondue-components70.js +16 -78
  124. package/dist/fondue-components70.js.map +1 -1
  125. package/dist/fondue-components71.js +152 -8
  126. package/dist/fondue-components71.js.map +1 -1
  127. package/dist/fondue-components72.js +19 -37
  128. package/dist/fondue-components72.js.map +1 -1
  129. package/dist/fondue-components73.js +77 -69
  130. package/dist/fondue-components73.js.map +1 -1
  131. package/dist/fondue-components74.js +8 -11
  132. package/dist/fondue-components74.js.map +1 -1
  133. package/dist/fondue-components75.js +36 -10
  134. package/dist/fondue-components75.js.map +1 -1
  135. package/dist/fondue-components76.js +70 -12
  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 +10 -22
  140. package/dist/fondue-components78.js.map +1 -1
  141. package/dist/fondue-components79.js +13 -34
  142. package/dist/fondue-components79.js.map +1 -1
  143. package/dist/fondue-components8.js +5 -5
  144. package/dist/fondue-components80.js +12 -10
  145. package/dist/fondue-components80.js.map +1 -1
  146. package/dist/fondue-components81.js +22 -67
  147. package/dist/fondue-components81.js.map +1 -1
  148. package/dist/fondue-components82.js +34 -15
  149. package/dist/fondue-components82.js.map +1 -1
  150. package/dist/fondue-components83.js +9 -24
  151. package/dist/fondue-components83.js.map +1 -1
  152. package/dist/fondue-components84.js +67 -18
  153. package/dist/fondue-components84.js.map +1 -1
  154. package/dist/fondue-components85.js +14 -22
  155. package/dist/fondue-components85.js.map +1 -1
  156. package/dist/fondue-components86.js +24 -6
  157. package/dist/fondue-components86.js.map +1 -1
  158. package/dist/fondue-components87.js +18 -19
  159. package/dist/fondue-components87.js.map +1 -1
  160. package/dist/fondue-components88.js +24 -6
  161. package/dist/fondue-components88.js.map +1 -1
  162. package/dist/fondue-components89.js +8 -16
  163. package/dist/fondue-components89.js.map +1 -1
  164. package/dist/fondue-components9.js +5 -5
  165. package/dist/fondue-components90.js +20 -2
  166. package/dist/fondue-components90.js.map +1 -1
  167. package/dist/fondue-components91.js +5 -3
  168. package/dist/fondue-components91.js.map +1 -1
  169. package/dist/fondue-components92.js +4 -4
  170. package/dist/fondue-components92.js.map +1 -1
  171. package/dist/fondue-components93.js +4 -39
  172. package/dist/fondue-components93.js.map +1 -1
  173. package/dist/fondue-components94.js +2 -21
  174. package/dist/fondue-components94.js.map +1 -1
  175. package/dist/fondue-components95.js +43 -0
  176. package/dist/fondue-components95.js.map +1 -0
  177. package/dist/fondue-components96.js +24 -0
  178. package/dist/fondue-components96.js.map +1 -0
  179. package/dist/fondue-components97.js +20 -0
  180. package/dist/fondue-components97.js.map +1 -0
  181. package/dist/index.d.ts +143 -4
  182. package/dist/style.css +1 -1
  183. package/package.json +6 -6
@@ -1,103 +1,141 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { forwardRef as c } from "react";
3
- import d from "./fondue-components75.js";
4
- const b = c(
5
- ({
6
- "aria-label": t,
7
- "data-test-id": a = "split-button",
8
- children: o,
9
- disabled: i = !1,
10
- emphasis: e = "default",
11
- size: n = "medium"
12
- }, l) => /* @__PURE__ */ s(
13
- "div",
14
- {
15
- ref: l,
16
- role: "group",
17
- "aria-label": t,
18
- "data-test-id": a,
19
- "data-component": "split-button",
20
- "data-emphasis": e,
21
- "data-size": n,
22
- "data-disabled": i,
23
- className: d.root,
24
- children: o
25
- }
26
- )
27
- );
28
- b.displayName = "SplitButton.Root";
29
- const p = c(
30
- ({
31
- "aria-label": t,
32
- "aria-describedby": a,
33
- "data-test-id": o = "split-button-content",
34
- children: i,
35
- disabled: e = !1,
36
- onPress: n,
37
- title: l,
38
- type: r = "button"
39
- }, u) => /* @__PURE__ */ s(
40
- "button",
41
- {
42
- ref: u,
43
- type: r,
44
- disabled: e,
45
- "aria-label": t,
46
- "aria-describedby": a,
47
- title: l,
48
- "data-test-id": o,
49
- className: d.content,
50
- onClick: n,
51
- children: i
52
- }
53
- )
54
- );
55
- p.displayName = "SplitButton.Content";
56
- const m = ({
57
- "aria-label": t,
58
- "data-test-id": a = "split-button-action",
59
- rotateIcon: o = !0,
60
- children: i
61
- }) => /* @__PURE__ */ s("div", { "aria-label": t, "data-test-id": a, "data-rotate-icon": o, className: d.action, children: i });
62
- m.displayName = "SplitButton.Action";
63
- const B = c(
64
- ({
65
- "aria-label": t,
66
- "aria-describedby": a,
67
- "data-test-id": o = "split-button-action-button",
68
- children: i,
69
- disabled: e = !1,
70
- title: n,
71
- type: l = "button",
72
- ...r
73
- }, u) => /* @__PURE__ */ s(
74
- "button",
75
- {
76
- ref: u,
77
- type: l,
78
- disabled: e,
79
- "aria-label": t,
80
- "aria-describedby": a,
81
- title: n,
82
- "data-test-id": o,
83
- className: d.actionButton,
84
- ...r,
85
- children: i
86
- }
87
- )
88
- );
89
- B.displayName = "SplitButton.ActionButton";
90
- const N = {
91
- Root: b,
92
- Content: p,
93
- Action: m,
94
- ActionButton: B
1
+ import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
+ import { IconCaretDown as T, IconCheckMark as $, IconExclamationMarkTriangle as A } from "@frontify/fondue-icons";
3
+ import * as g from "@radix-ui/react-popover";
4
+ import { Slot as q } from "@radix-ui/react-slot";
5
+ import { useSelect as J } from "downshift";
6
+ import { forwardRef as K, useRef as L, useState as Q } from "react";
7
+ import { ForwardedRefCombobox as U } from "./fondue-components71.js";
8
+ import { ForwardedRefSelectItem as W, ForwardedRefSelectItemGroup as X } from "./fondue-components72.js";
9
+ import { SelectMenu as Y } from "./fondue-components73.js";
10
+ import { ForwardedRefSelectSlot as Z } from "./fondue-components74.js";
11
+ import o from "./fondue-components75.js";
12
+ import { useSelectData as _ } from "./fondue-components76.js";
13
+ const S = ({
14
+ children: h,
15
+ onSelect: s,
16
+ value: b,
17
+ defaultValue: I,
18
+ placeholder: N = "",
19
+ status: n = "neutral",
20
+ disabled: m,
21
+ alignMenu: w = "start",
22
+ side: y = "bottom",
23
+ id: C,
24
+ showStringValue: R = !0,
25
+ "data-test-id": c = "fondue-select",
26
+ viewportCollisionPadding: x = "compact",
27
+ ...l
28
+ }, F) => {
29
+ const { inputSlots: v, menuSlots: k, items: B, clearButton: u, getItemByValue: p } = _(h), M = p(I), P = p(b), i = L(!1), [G, f] = Q(!1), { getToggleButtonProps: O, getMenuProps: z, getItemProps: D, reset: V, selectedItem: r, isOpen: j, highlightedIndex: E } = J({
30
+ items: B,
31
+ defaultSelectedItem: M,
32
+ selectedItem: P,
33
+ toggleButtonId: C,
34
+ labelId: "aria-labelledby" in l ? l["aria-labelledby"] : void 0,
35
+ onIsOpenChange: () => {
36
+ f(!1);
37
+ },
38
+ onHighlightedIndexChange: () => {
39
+ f(!0);
40
+ },
41
+ onSelectedItemChange: ({ selectedItem: e }) => {
42
+ s == null || s((e == null ? void 0 : e.value) ?? null);
43
+ },
44
+ itemToString: (e) => e ? e.label : ""
45
+ }), H = r ? !R && r.children || r.label : N;
46
+ return /* @__PURE__ */ d(g.Root, { open: j, children: [
47
+ /* @__PURE__ */ a(
48
+ g.Anchor,
49
+ {
50
+ asChild: !0,
51
+ onMouseDown: (e) => {
52
+ i.current = !0, e.currentTarget.dataset.showFocusRing = "false";
53
+ },
54
+ onFocus: (e) => {
55
+ i.current || (e.target.dataset.showFocusRing = "true");
56
+ },
57
+ onBlur: (e) => {
58
+ e.target.dataset.showFocusRing = "false", i.current = !1;
59
+ },
60
+ children: /* @__PURE__ */ d(
61
+ "div",
62
+ {
63
+ className: o.root,
64
+ "data-status": n,
65
+ "data-disabled": m,
66
+ "data-empty": !r,
67
+ "data-test-id": c,
68
+ ...m ? {} : O({
69
+ "aria-label": "aria-label" in l ? l["aria-label"] : void 0,
70
+ ref: F
71
+ }),
72
+ children: [
73
+ /* @__PURE__ */ a("span", { className: o.selectedValue, children: H }),
74
+ v,
75
+ u ? /* @__PURE__ */ a(
76
+ q,
77
+ {
78
+ onClick: (e) => {
79
+ e.stopPropagation(), V();
80
+ },
81
+ className: o.clear,
82
+ children: u
83
+ }
84
+ ) : null,
85
+ /* @__PURE__ */ d("div", { className: o.icons, children: [
86
+ /* @__PURE__ */ a(T, { size: 16, className: o.caret }),
87
+ n === "success" ? /* @__PURE__ */ a(
88
+ $,
89
+ {
90
+ size: 16,
91
+ className: o.iconSuccess,
92
+ "data-test-id": `${c}-success-icon`
93
+ }
94
+ ) : null,
95
+ n === "error" ? /* @__PURE__ */ a(
96
+ A,
97
+ {
98
+ size: 16,
99
+ className: o.iconError,
100
+ "data-test-id": `${c}-error-icon`
101
+ }
102
+ ) : null
103
+ ] })
104
+ ]
105
+ }
106
+ )
107
+ }
108
+ ),
109
+ /* @__PURE__ */ a(
110
+ Y,
111
+ {
112
+ align: w,
113
+ side: y,
114
+ highlightedIndex: E,
115
+ getMenuProps: z,
116
+ getItemProps: D,
117
+ selectedItem: r,
118
+ hasInteractedSinceOpening: G,
119
+ viewportCollisionPadding: x,
120
+ children: k
121
+ }
122
+ )
123
+ ] });
95
124
  };
125
+ S.displayName = "Select";
126
+ const ee = K(S), t = ee;
127
+ t.displayName = "Select";
128
+ t.Combobox = U;
129
+ t.Combobox.displayName = "Select.Combobox";
130
+ t.Item = W;
131
+ t.Item.displayName = "Select.Item";
132
+ t.Group = X;
133
+ t.Group.displayName = "Select.Group";
134
+ t.Slot = Z;
135
+ t.Slot.displayName = "Select.Slot";
96
136
  export {
97
- N as SplitButton,
98
- m as SplitButtonAction,
99
- B as SplitButtonActionButton,
100
- p as SplitButtonContent,
101
- b as SplitButtonRoot
137
+ ee as ForwardedRefSelect,
138
+ t as Select,
139
+ S as SelectInput
102
140
  };
103
141
  //# sourceMappingURL=fondue-components24.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components24.js","sources":["../src/components/SplitButton/SplitButton.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef, type MouseEvent, type ReactNode } from 'react';\n\nimport styles from './styles/splitButton.module.scss';\n\ntype ButtonSize = 'small' | 'medium' | 'large';\n\ntype ButtonEmphasis = 'default' | 'weak' | 'strong';\n\nexport type SplitButtonProps = {\n /**\n * @default 'default'\n */\n emphasis?: ButtonEmphasis;\n /**\n * @default 'medium'\n */\n size?: ButtonSize;\n /**\n * @default false\n */\n disabled?: boolean;\n /**\n * Accessible label for the button group\n */\n 'aria-label'?: string;\n /**\n * Test ID for the root element\n */\n 'data-test-id'?: string;\n children: ReactNode;\n};\n\nexport type SplitButtonContentProps = {\n /**\n * Button type\n * @default 'button'\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * Whether the button is disabled\n * @default false\n */\n disabled?: boolean;\n /**\n * Click handler\n */\n onPress?: (event?: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Accessible label\n */\n 'aria-label'?: string;\n /**\n * Accessible description\n */\n 'aria-describedby'?: string;\n /**\n * Test ID for the content section\n */\n 'data-test-id'?: string;\n /**\n * Button title\n */\n title?: string;\n children: ReactNode;\n};\n\nexport type SplitButtonActionProps = {\n /**\n * Accessible label\n */\n 'aria-label'?: string;\n /**\n * Test ID for the action slot\n */\n 'data-test-id'?: string;\n /**\n * Whether to rotate the icon 180 degrees when active (typically for caret icons)\n * @default true\n */\n rotateIcon?: boolean;\n children: ReactNode;\n};\n\nexport type SplitButtonActionButtonProps = {\n /**\n * Button type\n * @default 'button'\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * Whether the button is disabled\n * @default false\n */\n disabled?: boolean;\n /**\n * Accessible label\n */\n 'aria-label'?: string;\n /**\n * Accessible description\n */\n 'aria-describedby'?: string;\n /**\n * Test ID for the action button\n */\n 'data-test-id'?: string;\n /**\n * Button title\n */\n title?: string;\n children: ReactNode;\n};\n\nexport const SplitButtonRoot = forwardRef<HTMLDivElement, SplitButtonProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId = 'split-button',\n children,\n disabled = false,\n emphasis = 'default',\n size = 'medium',\n }: SplitButtonProps,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel}\n data-test-id={dataTestId}\n data-component=\"split-button\"\n data-emphasis={emphasis}\n data-size={size}\n data-disabled={disabled}\n className={styles.root}\n >\n {children}\n </div>\n );\n },\n);\nSplitButtonRoot.displayName = 'SplitButton.Root';\n\nexport const SplitButtonContent = forwardRef<HTMLButtonElement, SplitButtonContentProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedby,\n 'data-test-id': dataTestId = 'split-button-content',\n children,\n disabled = false,\n onPress,\n title,\n type = 'button',\n }: SplitButtonContentProps,\n ref: ForwardedRef<HTMLButtonElement>,\n ) => {\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n title={title}\n data-test-id={dataTestId}\n className={styles.content}\n onClick={onPress}\n >\n {children}\n </button>\n );\n },\n);\nSplitButtonContent.displayName = 'SplitButton.Content';\n\nexport const SplitButtonAction = ({\n 'aria-label': ariaLabel,\n 'data-test-id': dataTestId = 'split-button-action',\n rotateIcon = true,\n children,\n}: SplitButtonActionProps) => {\n return (\n <div aria-label={ariaLabel} data-test-id={dataTestId} data-rotate-icon={rotateIcon} className={styles.action}>\n {children}\n </div>\n );\n};\nSplitButtonAction.displayName = 'SplitButton.Action';\n\nexport const SplitButtonActionButton = forwardRef<HTMLButtonElement, SplitButtonActionButtonProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedby,\n 'data-test-id': dataTestId = 'split-button-action-button',\n children,\n disabled = false,\n title,\n type = 'button',\n ...props\n },\n ref,\n ) => {\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n title={title}\n data-test-id={dataTestId}\n className={styles.actionButton}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\nSplitButtonActionButton.displayName = 'SplitButton.ActionButton';\n\nexport const SplitButton = {\n Root: SplitButtonRoot,\n Content: SplitButtonContent,\n Action: SplitButtonAction,\n ActionButton: SplitButtonActionButton,\n};\n"],"names":["SplitButtonRoot","forwardRef","ariaLabel","dataTestId","children","disabled","emphasis","size","ref","jsx","styles","SplitButtonContent","ariaDescribedby","onPress","title","type","SplitButtonAction","rotateIcon","SplitButtonActionButton","props","SplitButton"],"mappings":";;;AAmHO,MAAMA,IAAkBC;AAAA,EAC3B,CACI;AAAA,IACI,cAAcC;AAAA,IACd,gBAAgBC,IAAa;AAAA,IAC7B,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,MAAAC,IAAO;AAAA,EAAA,GAEXC,MAGI,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,cAAYN;AAAA,MACZ,gBAAcC;AAAA,MACd,kBAAe;AAAA,MACf,iBAAeG;AAAA,MACf,aAAWC;AAAA,MACX,iBAAeF;AAAA,MACf,WAAWK,EAAO;AAAA,MAEjB,UAAAN;AAAA,IAAA;AAAA,EAAA;AAIjB;AACAJ,EAAgB,cAAc;AAEvB,MAAMW,IAAqBV;AAAA,EAC9B,CACI;AAAA,IACI,cAAcC;AAAA,IACd,oBAAoBU;AAAA,IACpB,gBAAgBT,IAAa;AAAA,IAC7B,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,SAAAQ;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,EAAA,GAEXP,MAGI,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAD;AAAA,MACA,MAAAO;AAAA,MACA,UAAAV;AAAA,MACA,cAAYH;AAAA,MACZ,oBAAkBU;AAAA,MAClB,OAAAE;AAAA,MACA,gBAAcX;AAAA,MACd,WAAWO,EAAO;AAAA,MAClB,SAASG;AAAA,MAER,UAAAT;AAAA,IAAA;AAAA,EAAA;AAIjB;AACAO,EAAmB,cAAc;AAE1B,MAAMK,IAAoB,CAAC;AAAA,EAC9B,cAAcd;AAAA,EACd,gBAAgBC,IAAa;AAAA,EAC7B,YAAAc,IAAa;AAAA,EACb,UAAAb;AACJ,MAEQ,gBAAAK,EAAC,OAAA,EAAI,cAAYP,GAAW,gBAAcC,GAAY,oBAAkBc,GAAY,WAAWP,EAAO,QACjG,UAAAN,EAAA,CACL;AAGRY,EAAkB,cAAc;AAEzB,MAAME,IAA0BjB;AAAA,EACnC,CACI;AAAA,IACI,cAAcC;AAAA,IACd,oBAAoBU;AAAA,IACpB,gBAAgBT,IAAa;AAAA,IAC7B,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,OAAAS;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,GAAGI;AAAA,EAAA,GAEPX,MAGI,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAD;AAAA,MACA,MAAAO;AAAA,MACA,UAAAV;AAAA,MACA,cAAYH;AAAA,MACZ,oBAAkBU;AAAA,MAClB,OAAAE;AAAA,MACA,gBAAcX;AAAA,MACd,WAAWO,EAAO;AAAA,MACjB,GAAGS;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAIjB;AACAc,EAAwB,cAAc;AAE/B,MAAME,IAAc;AAAA,EACvB,MAAMpB;AAAA,EACN,SAASW;AAAA,EACT,QAAQK;AAAA,EACR,cAAcE;AAClB;"}
1
+ {"version":3,"file":"fondue-components24.js","sources":["../src/components/Select/Select.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCaretDown, IconCheckMark, IconExclamationMarkTriangle } from '@frontify/fondue-icons';\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport { Slot as RadixSlot } from '@radix-ui/react-slot';\nimport { useSelect } from 'downshift';\nimport { forwardRef, useRef, useState, type ForwardedRef, type ReactNode } from 'react';\n\nimport { type CommonAriaProps } from '#/helpers/aria';\n\nimport { ForwardedRefCombobox } from './Combobox';\nimport { ForwardedRefSelectItem, ForwardedRefSelectItemGroup } from './SelectItem';\nimport { SelectMenu, type SelectMenuViewportCollisionPadding } from './SelectMenu';\nimport { ForwardedRefSelectSlot } from './SelectSlot';\nimport styles from './styles/select.module.scss';\nimport { useSelectData } from './useSelectData';\n\nexport type SelectComponentProps = {\n /**\n * Children of the Select component. This can contain the `Select.Slot` components for the label, decorators, clear action and menu.\n */\n children?: ReactNode;\n /**\n * Callback function that is called when an item is selected.\n */\n onSelect?: (selectedValue: string | null) => void;\n /**\n * The active value in the select component. This is used to control the select externally.\n */\n value?: string | null;\n /**\n * The default value of the select component. Used for uncontrolled usages.\n */\n defaultValue?: string;\n /**\n * The placeholder in the select component.\n */\n placeholder?: string;\n /**\n * Status of the text input\n * @default \"neutral\"\n */\n status?: 'neutral' | 'success' | 'error';\n /**\n * Disables the select component.\n */\n disabled?: boolean;\n /**\n * The alignment of the menu.\n * @default \"start\"\n */\n alignMenu?: 'start' | 'center' | 'end';\n /**\n * Defines the preferred side of the select. It will not be respected if there are collisions with the viewport.\n * @default \"bottom\"\n */\n side?: 'left' | 'right' | 'bottom' | 'top';\n /**\n * The data test id of the select component.\n */\n 'data-test-id'?: string;\n /**\n * Id of the select component\n */\n id?: string;\n /**\n * The value of the select is shown as plain text (from the label prop) when set to true.\n * Items child components are used if set to false\n * @default true\n */\n showStringValue?: boolean;\n /**\n * Define the minimum distance between the select menu and the viewport edge\n * @default 'compact'\n */\n viewportCollisionPadding?: SelectMenuViewportCollisionPadding;\n} & CommonAriaProps;\n\nexport const SelectInput = (\n {\n children,\n onSelect,\n value,\n defaultValue,\n placeholder = '',\n status = 'neutral',\n disabled,\n alignMenu = 'start',\n side = 'bottom',\n id,\n showStringValue = true,\n 'data-test-id': dataTestId = 'fondue-select',\n viewportCollisionPadding = 'compact',\n ...props\n }: SelectComponentProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n const { inputSlots, menuSlots, items, clearButton, getItemByValue } = useSelectData(children);\n\n const defaultItem = getItemByValue(defaultValue);\n const activeItem = getItemByValue(value);\n\n const wasClicked = useRef(false);\n\n const [hasInteractedSinceOpening, setHasInteractedSinceOpening] = useState(false);\n\n const { getToggleButtonProps, getMenuProps, getItemProps, reset, selectedItem, isOpen, highlightedIndex } =\n useSelect({\n items,\n defaultSelectedItem: defaultItem,\n selectedItem: activeItem,\n toggleButtonId: id,\n labelId: 'aria-labelledby' in props ? props['aria-labelledby'] : undefined,\n onIsOpenChange: () => {\n setHasInteractedSinceOpening(false);\n },\n onHighlightedIndexChange: () => {\n setHasInteractedSinceOpening(true);\n },\n onSelectedItemChange: ({ selectedItem }) => {\n onSelect?.(selectedItem?.value ?? null);\n },\n itemToString: (item) => (item ? item.label : ''),\n });\n\n const displayedValue = selectedItem\n ? (!showStringValue && selectedItem.children) || selectedItem.label\n : placeholder;\n\n return (\n <RadixPopover.Root open={isOpen}>\n <RadixPopover.Anchor\n asChild\n onMouseDown={(mouseEvent) => {\n wasClicked.current = true;\n mouseEvent.currentTarget.dataset.showFocusRing = 'false';\n }}\n onFocus={(focusEvent) => {\n if (!wasClicked.current) {\n focusEvent.target.dataset.showFocusRing = 'true';\n }\n }}\n onBlur={(blurEvent) => {\n blurEvent.target.dataset.showFocusRing = 'false';\n wasClicked.current = false;\n }}\n >\n <div\n className={styles.root}\n data-status={status}\n data-disabled={disabled}\n data-empty={!selectedItem}\n data-test-id={dataTestId}\n {...(disabled\n ? {}\n : getToggleButtonProps({\n 'aria-label': 'aria-label' in props ? props['aria-label'] : undefined,\n ref: forwardedRef,\n }))}\n >\n <span className={styles.selectedValue}>{displayedValue}</span>\n {inputSlots}\n {clearButton ? (\n <RadixSlot\n onClick={(event) => {\n event.stopPropagation();\n reset();\n }}\n className={styles.clear}\n >\n {clearButton}\n </RadixSlot>\n ) : null}\n <div className={styles.icons}>\n <IconCaretDown size={16} className={styles.caret} />\n {status === 'success' ? (\n <IconCheckMark\n size={16}\n className={styles.iconSuccess}\n data-test-id={`${dataTestId}-success-icon`}\n />\n ) : null}\n {status === 'error' ? (\n <IconExclamationMarkTriangle\n size={16}\n className={styles.iconError}\n data-test-id={`${dataTestId}-error-icon`}\n />\n ) : null}\n </div>\n </div>\n </RadixPopover.Anchor>\n\n <SelectMenu\n align={alignMenu}\n side={side}\n highlightedIndex={highlightedIndex}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n selectedItem={selectedItem}\n hasInteractedSinceOpening={hasInteractedSinceOpening}\n viewportCollisionPadding={viewportCollisionPadding}\n >\n {menuSlots}\n </SelectMenu>\n </RadixPopover.Root>\n );\n};\nSelectInput.displayName = 'Select';\n\nexport const ForwardedRefSelect = forwardRef<HTMLDivElement, SelectComponentProps>(SelectInput);\n\n// @ts-expect-error We support both Select and Select.Combobox as the Root\nexport const Select: typeof SelectInput & {\n Combobox: typeof ForwardedRefCombobox;\n Item: typeof ForwardedRefSelectItem;\n Group: typeof ForwardedRefSelectItemGroup;\n Slot: typeof ForwardedRefSelectSlot;\n} = ForwardedRefSelect;\nSelect.displayName = 'Select';\nSelect.Combobox = ForwardedRefCombobox;\nSelect.Combobox.displayName = 'Select.Combobox';\nSelect.Item = ForwardedRefSelectItem;\nSelect.Item.displayName = 'Select.Item';\nSelect.Group = ForwardedRefSelectItemGroup;\nSelect.Group.displayName = 'Select.Group';\nSelect.Slot = ForwardedRefSelectSlot;\nSelect.Slot.displayName = 'Select.Slot';\n"],"names":["SelectInput","children","onSelect","value","defaultValue","placeholder","status","disabled","alignMenu","side","id","showStringValue","dataTestId","viewportCollisionPadding","props","forwardedRef","inputSlots","menuSlots","items","clearButton","getItemByValue","useSelectData","defaultItem","activeItem","wasClicked","useRef","hasInteractedSinceOpening","setHasInteractedSinceOpening","useState","getToggleButtonProps","getMenuProps","getItemProps","reset","selectedItem","isOpen","highlightedIndex","useSelect","item","displayedValue","jsxs","RadixPopover","jsx","mouseEvent","focusEvent","blurEvent","styles","RadixSlot","event","IconCaretDown","IconCheckMark","IconExclamationMarkTriangle","SelectMenu","ForwardedRefSelect","forwardRef","Select","ForwardedRefCombobox","ForwardedRefSelectItem","ForwardedRefSelectItemGroup","ForwardedRefSelectSlot"],"mappings":"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"}
@@ -1,36 +1,58 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import * as o from "@radix-ui/react-switch";
3
- import { forwardRef as n } from "react";
4
- import { useTranslation as f } from "./fondue-components35.js";
5
- import { cn as p } from "./fondue-components40.js";
6
- import t from "./fondue-components76.js";
7
- const u = ({
1
+ import { jsxs as f, jsx as s } from "react/jsx-runtime";
2
+ import * as e from "@radix-ui/react-slider";
3
+ import { forwardRef as h, useRef as R } from "react";
4
+ import r from "./fondue-components77.js";
5
+ const g = ({
8
6
  value: a,
9
- defaultValue: r,
10
- size: i = "medium",
11
- onChange: m,
12
- "data-test-id": c = "fondue-switch",
13
- "aria-label": s,
7
+ defaultValue: n = [0],
8
+ onChange: i,
9
+ onCommit: m,
10
+ "data-test-id": c = "fondue-slider",
14
11
  ...d
15
- }, h) => {
16
- const { t: l } = f();
17
- return /* @__PURE__ */ e(
18
- o.Root,
12
+ }, l) => {
13
+ const o = R(null);
14
+ return /* @__PURE__ */ f(
15
+ e.Root,
19
16
  {
20
- ref: h,
21
- checked: a,
22
- defaultChecked: r,
23
- className: p([t.root, t[i]]),
24
- onCheckedChange: m,
25
- "aria-label": s ?? l("Switch_defaultLabel"),
17
+ ref: l,
18
+ className: r.root,
19
+ value: a,
20
+ defaultValue: n,
21
+ onValueChange: i,
22
+ onValueCommit: m,
26
23
  "data-test-id": c,
27
24
  ...d,
28
- children: /* @__PURE__ */ e(o.Thumb, { className: t.thumb })
25
+ children: [
26
+ /* @__PURE__ */ s(
27
+ e.Track,
28
+ {
29
+ onPointerDown: () => {
30
+ o.current && (o.current.dataset.showFocusRing = "false");
31
+ },
32
+ className: r.track,
33
+ children: /* @__PURE__ */ s(e.Range, { className: r.range })
34
+ }
35
+ ),
36
+ (a || n).map((w, u) => /* @__PURE__ */ s(
37
+ e.Thumb,
38
+ {
39
+ ref: o,
40
+ className: r.thumb,
41
+ onPointerDown: (t) => {
42
+ t.currentTarget.dataset.showFocusRing = "false";
43
+ },
44
+ onBlur: (t) => {
45
+ t.currentTarget.dataset.showFocusRing = "true";
46
+ }
47
+ },
48
+ u
49
+ ))
50
+ ]
29
51
  }
30
52
  );
31
- }, w = n(u);
32
- w.displayName = "Switch";
53
+ }, p = h(g);
54
+ p.displayName = "Slider";
33
55
  export {
34
- w as Switch
56
+ p as Slider
35
57
  };
36
58
  //# sourceMappingURL=fondue-components25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components25.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 { useTranslation } from '#/hooks/useTranslation';\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,\n ...props\n }: SwitchProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) => {\n const { t } = useTranslation();\n\n return (\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 ?? t('Switch_defaultLabel')}\n data-test-id={dataTestId}\n {...props}\n >\n <RadixSwitch.Thumb className={styles.thumb} />\n </RadixSwitch.Root>\n );\n};\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(SwitchComponent);\nSwitch.displayName = 'Switch';\n"],"names":["SwitchComponent","value","defaultValue","size","onChange","dataTestId","ariaLabel","props","ref","t","useTranslation","jsx","RadixSwitch","cn","styles","Switch","forwardRef"],"mappings":";;;;;;AAyDA,MAAMA,IAAkB,CACpB;AAAA,EACI,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,cAAcC;AAAA,EACd,GAAGC;AACP,GACAC,MACC;AACD,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACI,gBAAAC;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACG,KAAAJ;AAAA,MACA,SAASP;AAAA,MACT,gBAAgBC;AAAA,MAChB,WAAWW,EAAG,CAACC,EAAO,MAAMA,EAAOX,CAAI,CAAC,CAAC;AAAA,MACzC,iBAAiBC;AAAA,MACjB,cAAYE,KAAaG,EAAE,qBAAqB;AAAA,MAChD,gBAAcJ;AAAA,MACb,GAAGE;AAAA,MAEJ,4BAACK,EAAY,OAAZ,EAAkB,WAAWE,EAAO,MAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGxD,GAEaC,IAASC,EAA2ChB,CAAe;AAChFe,EAAO,cAAc;"}
1
+ {"version":3,"file":"fondue-components25.js","sources":["../src/components/Slider/Slider.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport * as RadixSlider from '@radix-ui/react-slider';\nimport { type ForwardedRef, forwardRef, useRef } from 'react';\n\nimport { type CommonAriaAttrs } from '#/utilities/types';\n\nimport styles from './styles/slider.module.scss';\n\nexport type SliderProps = {\n id?: string;\n name?: string;\n /**\n * The default value of the slider\n * Used for uncontrolled components\n * @default [0]\n */\n defaultValue?: number[];\n /**\n * The controlled value of the slider\n * @default [0]\n */\n value?: number[];\n /**\n * Minimum value of the slider\n * @default 0\n */\n min?: number;\n /**\n * Maximum value of the slider\n * @default 100\n */\n max?: number;\n /**\n * The granularity with which the slider can step through values\n * @default 1\n */\n step?: number;\n /**\n * The minimum steps between thumbs in a range slider\n * @default 0\n */\n minStepsBetweenThumbs?: number;\n /**\n * Disable the slider\n * @default false\n */\n disabled?: boolean;\n onChange?: (value: number[]) => void;\n onCommit?: (value: number[]) => void;\n 'data-test-id'?: string;\n} & CommonAriaAttrs;\n\nconst SliderComponent = (\n {\n value,\n defaultValue = [0],\n onChange,\n onCommit,\n 'data-test-id': dataTestId = 'fondue-slider',\n ...props\n }: SliderProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) => {\n const sliderThumbRef = useRef<HTMLSpanElement | null>(null);\n return (\n <RadixSlider.Root\n ref={ref}\n className={styles.root}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onChange}\n onValueCommit={onCommit}\n data-test-id={dataTestId}\n {...props}\n >\n <RadixSlider.Track\n onPointerDown={() => {\n if (sliderThumbRef.current) {\n sliderThumbRef.current.dataset.showFocusRing = 'false';\n }\n }}\n className={styles.track}\n >\n <RadixSlider.Range className={styles.range} />\n </RadixSlider.Track>\n {(value || defaultValue).map((_, index) => (\n <RadixSlider.Thumb\n ref={sliderThumbRef}\n className={styles.thumb}\n onPointerDown={(event) => {\n event.currentTarget.dataset.showFocusRing = 'false';\n }}\n onBlur={(event) => {\n event.currentTarget.dataset.showFocusRing = 'true';\n }}\n key={index}\n />\n ))}\n </RadixSlider.Root>\n );\n};\n\nexport const Slider = forwardRef<HTMLButtonElement, SliderProps>(SliderComponent);\nSlider.displayName = 'Slider';\n"],"names":["SliderComponent","value","defaultValue","onChange","onCommit","dataTestId","props","ref","sliderThumbRef","useRef","jsxs","RadixSlider","styles","jsx","_","index","event","Slider","forwardRef"],"mappings":";;;;AAqDA,MAAMA,IAAkB,CACpB;AAAA,EACI,OAAAC;AAAA,EACA,cAAAC,IAAe,CAAC,CAAC;AAAA,EACjB,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,GAAGC;AACP,GACAC,MACC;AACD,QAAMC,IAAiBC,EAA+B,IAAI;AAC1D,SACI,gBAAAC;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACG,KAAAJ;AAAA,MACA,WAAWK,EAAO;AAAA,MAClB,OAAAX;AAAA,MACA,cAAAC;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf,gBAAcC;AAAA,MACb,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAO;AAAA,UAACF,EAAY;AAAA,UAAZ;AAAA,YACG,eAAe,MAAM;AACjB,cAAIH,EAAe,YACfA,EAAe,QAAQ,QAAQ,gBAAgB;AAAA,YAEvD;AAAA,YACA,WAAWI,EAAO;AAAA,YAElB,4BAACD,EAAY,OAAZ,EAAkB,WAAWC,EAAO,MAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAAA,SAE9CX,KAASC,GAAc,IAAI,CAACY,GAAGC,MAC7B,gBAAAF;AAAA,UAACF,EAAY;AAAA,UAAZ;AAAA,YACG,KAAKH;AAAA,YACL,WAAWI,EAAO;AAAA,YAClB,eAAe,CAACI,MAAU;AACtB,cAAAA,EAAM,cAAc,QAAQ,gBAAgB;AAAA,YAChD;AAAA,YACA,QAAQ,CAACA,MAAU;AACf,cAAAA,EAAM,cAAc,QAAQ,gBAAgB;AAAA,YAChD;AAAA,UAAA;AAAA,UACKD;AAAA,QAAA,CAEZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGb,GAEaE,IAASC,EAA2ClB,CAAe;AAChFiB,EAAO,cAAc;"}