@frontify/fondue-components 24.0.0-rc.3 → 24.1.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 +48 -52
  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 +86 -104
  6. package/dist/fondue-components11.js.map +1 -1
  7. package/dist/fondue-components12.js +2 -2
  8. package/dist/fondue-components13.js +57 -58
  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 +73 -18
  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 +50 -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 +99 -137
  28. package/dist/fondue-components24.js.map +1 -1
  29. package/dist/fondue-components25.js +26 -48
  30. package/dist/fondue-components25.js.map +1 -1
  31. package/dist/fondue-components26.js +188 -92
  32. package/dist/fondue-components26.js.map +1 -1
  33. package/dist/fondue-components27.js +134 -30
  34. package/dist/fondue-components27.js.map +1 -1
  35. package/dist/fondue-components28.js +126 -191
  36. package/dist/fondue-components28.js.map +1 -1
  37. package/dist/fondue-components29.js +30 -134
  38. package/dist/fondue-components29.js.map +1 -1
  39. package/dist/fondue-components3.js +1 -1
  40. package/dist/fondue-components30.js +63 -130
  41. package/dist/fondue-components30.js.map +1 -1
  42. package/dist/fondue-components31.js +114 -31
  43. package/dist/fondue-components31.js.map +1 -1
  44. package/dist/fondue-components32.js +36 -64
  45. package/dist/fondue-components32.js.map +1 -1
  46. package/dist/fondue-components33.js +54 -103
  47. package/dist/fondue-components33.js.map +1 -1
  48. package/dist/fondue-components34.js +20 -36
  49. package/dist/fondue-components34.js.map +1 -1
  50. package/dist/fondue-components35.js +23 -57
  51. package/dist/fondue-components35.js.map +1 -1
  52. package/dist/fondue-components36.js +7 -20
  53. package/dist/fondue-components36.js.map +1 -1
  54. package/dist/fondue-components37.js +6 -23
  55. package/dist/fondue-components37.js.map +1 -1
  56. package/dist/fondue-components38.js +32 -8
  57. package/dist/fondue-components38.js.map +1 -1
  58. package/dist/fondue-components39.js +3 -5
  59. package/dist/fondue-components39.js.map +1 -1
  60. package/dist/fondue-components4.js +3 -3
  61. package/dist/fondue-components40.js +12 -32
  62. package/dist/fondue-components40.js.map +1 -1
  63. package/dist/fondue-components41.js +155 -5
  64. package/dist/fondue-components41.js.map +1 -1
  65. package/dist/fondue-components42.js +116 -18
  66. package/dist/fondue-components42.js.map +1 -1
  67. package/dist/fondue-components43.js +22 -59
  68. package/dist/fondue-components43.js.map +1 -1
  69. package/dist/fondue-components44.js +14 -111
  70. package/dist/fondue-components44.js.map +1 -1
  71. package/dist/fondue-components45.js +30 -116
  72. package/dist/fondue-components45.js.map +1 -1
  73. package/dist/fondue-components46.js +54 -21
  74. package/dist/fondue-components46.js.map +1 -1
  75. package/dist/fondue-components47.js +131 -32
  76. package/dist/fondue-components47.js.map +1 -1
  77. package/dist/fondue-components48.js +20 -53
  78. package/dist/fondue-components48.js.map +1 -1
  79. package/dist/fondue-components49.js +53 -131
  80. package/dist/fondue-components49.js.map +1 -1
  81. package/dist/fondue-components5.js +2 -2
  82. package/dist/fondue-components50.js +7 -20
  83. package/dist/fondue-components50.js.map +1 -1
  84. package/dist/fondue-components51.js +13 -53
  85. package/dist/fondue-components51.js.map +1 -1
  86. package/dist/fondue-components52.js +14 -7
  87. package/dist/fondue-components52.js.map +1 -1
  88. package/dist/fondue-components53.js +5 -13
  89. package/dist/fondue-components53.js.map +1 -1
  90. package/dist/fondue-components54.js +60 -15
  91. package/dist/fondue-components54.js.map +1 -1
  92. package/dist/fondue-components55.js +18 -5
  93. package/dist/fondue-components55.js.map +1 -1
  94. package/dist/fondue-components56.js +19 -60
  95. package/dist/fondue-components56.js.map +1 -1
  96. package/dist/fondue-components57.js +5 -18
  97. package/dist/fondue-components57.js.map +1 -1
  98. package/dist/fondue-components58.js +14 -18
  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 +16 -10
  103. package/dist/fondue-components60.js.map +1 -1
  104. package/dist/fondue-components61.js +10 -4
  105. package/dist/fondue-components61.js.map +1 -1
  106. package/dist/fondue-components62.js +35 -18
  107. package/dist/fondue-components62.js.map +1 -1
  108. package/dist/fondue-components63.js +4 -10
  109. package/dist/fondue-components63.js.map +1 -1
  110. package/dist/fondue-components64.js +10 -34
  111. package/dist/fondue-components64.js.map +1 -1
  112. package/dist/fondue-components65.js +5 -35
  113. package/dist/fondue-components65.js.map +1 -1
  114. package/dist/fondue-components66.js +24 -4
  115. package/dist/fondue-components66.js.map +1 -1
  116. package/dist/fondue-components67.js +16 -12
  117. package/dist/fondue-components67.js.map +1 -1
  118. package/dist/fondue-components68.js +151 -4
  119. package/dist/fondue-components68.js.map +1 -1
  120. package/dist/fondue-components69.js +19 -25
  121. package/dist/fondue-components69.js.map +1 -1
  122. package/dist/fondue-components7.js +2 -2
  123. package/dist/fondue-components70.js +78 -16
  124. package/dist/fondue-components70.js.map +1 -1
  125. package/dist/fondue-components71.js +8 -152
  126. package/dist/fondue-components71.js.map +1 -1
  127. package/dist/fondue-components72.js +37 -19
  128. package/dist/fondue-components72.js.map +1 -1
  129. package/dist/fondue-components73.js +69 -77
  130. package/dist/fondue-components73.js.map +1 -1
  131. package/dist/fondue-components74.js +11 -8
  132. package/dist/fondue-components74.js.map +1 -1
  133. package/dist/fondue-components75.js +10 -36
  134. package/dist/fondue-components75.js.map +1 -1
  135. package/dist/fondue-components76.js +12 -70
  136. package/dist/fondue-components76.js.map +1 -1
  137. package/dist/fondue-components77.js +12 -10
  138. package/dist/fondue-components77.js.map +1 -1
  139. package/dist/fondue-components78.js +22 -10
  140. package/dist/fondue-components78.js.map +1 -1
  141. package/dist/fondue-components79.js +34 -13
  142. package/dist/fondue-components79.js.map +1 -1
  143. package/dist/fondue-components8.js +5 -5
  144. package/dist/fondue-components80.js +10 -12
  145. package/dist/fondue-components80.js.map +1 -1
  146. package/dist/fondue-components81.js +67 -22
  147. package/dist/fondue-components81.js.map +1 -1
  148. package/dist/fondue-components82.js +15 -34
  149. package/dist/fondue-components82.js.map +1 -1
  150. package/dist/fondue-components83.js +24 -9
  151. package/dist/fondue-components83.js.map +1 -1
  152. package/dist/fondue-components84.js +18 -67
  153. package/dist/fondue-components84.js.map +1 -1
  154. package/dist/fondue-components85.js +22 -12
  155. package/dist/fondue-components85.js.map +1 -1
  156. package/dist/fondue-components86.js +6 -24
  157. package/dist/fondue-components86.js.map +1 -1
  158. package/dist/fondue-components87.js +19 -18
  159. package/dist/fondue-components87.js.map +1 -1
  160. package/dist/fondue-components88.js +5 -21
  161. package/dist/fondue-components88.js.map +1 -1
  162. package/dist/fondue-components89.js +4 -8
  163. package/dist/fondue-components89.js.map +1 -1
  164. package/dist/fondue-components9.js +5 -5
  165. package/dist/fondue-components90.js +4 -19
  166. package/dist/fondue-components90.js.map +1 -1
  167. package/dist/fondue-components91.js +2 -7
  168. package/dist/fondue-components91.js.map +1 -1
  169. package/dist/fondue-components92.js +40 -2
  170. package/dist/fondue-components92.js.map +1 -1
  171. package/dist/fondue-components93.js +20 -4
  172. package/dist/fondue-components93.js.map +1 -1
  173. package/dist/fondue-components94.js +16 -4
  174. package/dist/fondue-components94.js.map +1 -1
  175. package/dist/index.d.ts +30 -117
  176. package/dist/style.css +1 -1
  177. package/package.json +6 -6
  178. package/dist/fondue-components95.js +0 -20
  179. package/dist/fondue-components95.js.map +0 -1
  180. package/dist/fondue-components96.js +0 -43
  181. package/dist/fondue-components96.js.map +0 -1
  182. package/dist/fondue-components97.js +0 -24
  183. package/dist/fondue-components97.js.map +0 -1
@@ -1,141 +1,103 @@
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
- ] });
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
124
95
  };
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";
136
96
  export {
137
- ee as ForwardedRefSelect,
138
- t as Select,
139
- S as SelectInput
97
+ N as SplitButton,
98
+ m as SplitButtonAction,
99
+ B as SplitButtonActionButton,
100
+ p as SplitButtonContent,
101
+ b as SplitButtonRoot
140
102
  };
141
103
  //# sourceMappingURL=fondue-components24.js.map
@@ -1 +1 @@
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":";;;;;;;;;;;;AA8EO,MAAMA,IAAc,CACvB;AAAA,EACI,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,IAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,gBAAgBC,IAAa;AAAA,EAC7B,0BAAAC,IAA2B;AAAA,EAC3B,GAAGC;AACP,GACAC,MACC;AACD,QAAM,EAAE,YAAAC,GAAY,WAAAC,GAAW,OAAAC,GAAO,aAAAC,GAAa,gBAAAC,EAAA,IAAmBC,EAAcpB,CAAQ,GAEtFqB,IAAcF,EAAehB,CAAY,GACzCmB,IAAaH,EAAejB,CAAK,GAEjCqB,IAAaC,EAAO,EAAK,GAEzB,CAACC,GAA2BC,CAA4B,IAAIC,EAAS,EAAK,GAE1E,EAAE,sBAAAC,GAAsB,cAAAC,GAAc,cAAAC,GAAc,OAAAC,GAAO,cAAAC,GAAc,QAAAC,GAAQ,kBAAAC,EAAA,IACnFC,EAAU;AAAA,IACN,OAAAlB;AAAA,IACA,qBAAqBI;AAAA,IACrB,cAAcC;AAAA,IACd,gBAAgBb;AAAA,IAChB,SAAS,qBAAqBI,IAAQA,EAAM,iBAAiB,IAAI;AAAA,IACjE,gBAAgB,MAAM;AAClB,MAAAa,EAA6B,EAAK;AAAA,IACtC;AAAA,IACA,0BAA0B,MAAM;AAC5B,MAAAA,EAA6B,EAAI;AAAA,IACrC;AAAA,IACA,sBAAsB,CAAC,EAAE,cAAAM,QAAmB;AACxC,MAAA/B,KAAA,QAAAA,GAAW+B,KAAAA,gBAAAA,EAAc,UAAS;AAAA,IACtC;AAAA,IACA,cAAc,CAACI,MAAUA,IAAOA,EAAK,QAAQ;AAAA,EAAA,CAChD,GAECC,IAAiBL,IAChB,CAACtB,KAAmBsB,EAAa,YAAaA,EAAa,QAC5D5B;AAEN,SACI,gBAAAkC,EAACC,EAAa,MAAb,EAAkB,MAAMN,GACrB,UAAA;AAAA,IAAA,gBAAAO;AAAA,MAACD,EAAa;AAAA,MAAb;AAAA,QACG,SAAO;AAAA,QACP,aAAa,CAACE,MAAe;AACzB,UAAAlB,EAAW,UAAU,IACrBkB,EAAW,cAAc,QAAQ,gBAAgB;AAAA,QACrD;AAAA,QACA,SAAS,CAACC,MAAe;AACrB,UAAKnB,EAAW,YACZmB,EAAW,OAAO,QAAQ,gBAAgB;AAAA,QAElD;AAAA,QACA,QAAQ,CAACC,MAAc;AACnB,UAAAA,EAAU,OAAO,QAAQ,gBAAgB,SACzCpB,EAAW,UAAU;AAAA,QACzB;AAAA,QAEA,UAAA,gBAAAe;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAWM,EAAO;AAAA,YAClB,eAAavC;AAAA,YACb,iBAAeC;AAAA,YACf,cAAY,CAAC0B;AAAA,YACb,gBAAcrB;AAAA,YACb,GAAIL,IACC,CAAA,IACAsB,EAAqB;AAAA,cACjB,cAAc,gBAAgBf,IAAQA,EAAM,YAAY,IAAI;AAAA,cAC5D,KAAKC;AAAA,YAAA,CACR;AAAA,YAEP,UAAA;AAAA,cAAA,gBAAA0B,EAAC,QAAA,EAAK,WAAWI,EAAO,eAAgB,UAAAP,GAAe;AAAA,cACtDtB;AAAA,cACAG,IACG,gBAAAsB;AAAA,gBAACK;AAAAA,gBAAA;AAAA,kBACG,SAAS,CAACC,MAAU;AAChB,oBAAAA,EAAM,gBAAA,GACNf,EAAA;AAAA,kBACJ;AAAA,kBACA,WAAWa,EAAO;AAAA,kBAEjB,UAAA1B;AAAA,gBAAA;AAAA,cAAA,IAEL;AAAA,cACJ,gBAAAoB,EAAC,OAAA,EAAI,WAAWM,EAAO,OACnB,UAAA;AAAA,gBAAA,gBAAAJ,EAACO,GAAA,EAAc,MAAM,IAAI,WAAWH,EAAO,OAAO;AAAA,gBACjDvC,MAAW,YACR,gBAAAmC;AAAA,kBAACQ;AAAA,kBAAA;AAAA,oBACG,MAAM;AAAA,oBACN,WAAWJ,EAAO;AAAA,oBAClB,gBAAc,GAAGjC,CAAU;AAAA,kBAAA;AAAA,gBAAA,IAE/B;AAAA,gBACHN,MAAW,UACR,gBAAAmC;AAAA,kBAACS;AAAA,kBAAA;AAAA,oBACG,MAAM;AAAA,oBACN,WAAWL,EAAO;AAAA,oBAClB,gBAAc,GAAGjC,CAAU;AAAA,kBAAA;AAAA,gBAAA,IAE/B;AAAA,cAAA,EAAA,CACR;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,IAGJ,gBAAA6B;AAAA,MAACU;AAAA,MAAA;AAAA,QACG,OAAO3C;AAAA,QACP,MAAAC;AAAA,QACA,kBAAA0B;AAAA,QACA,cAAAL;AAAA,QACA,cAAAC;AAAA,QACA,cAAAE;AAAA,QACA,2BAAAP;AAAA,QACA,0BAAAb;AAAA,QAEC,UAAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GACJ;AAER;AACAjB,EAAY,cAAc;AAEnB,MAAMoD,KAAqBC,EAAiDrD,CAAW,GAGjFsD,IAKTF;AACJE,EAAO,cAAc;AACrBA,EAAO,WAAWC;AAClBD,EAAO,SAAS,cAAc;AAC9BA,EAAO,OAAOE;AACdF,EAAO,KAAK,cAAc;AAC1BA,EAAO,QAAQG;AACfH,EAAO,MAAM,cAAc;AAC3BA,EAAO,OAAOI;AACdJ,EAAO,KAAK,cAAc;"}
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,58 +1,36 @@
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 = ({
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 = ({
6
8
  value: a,
7
- defaultValue: n = [0],
8
- onChange: i,
9
- onCommit: m,
10
- "data-test-id": c = "fondue-slider",
9
+ defaultValue: r,
10
+ size: i = "medium",
11
+ onChange: m,
12
+ "data-test-id": c = "fondue-switch",
13
+ "aria-label": s,
11
14
  ...d
12
- }, l) => {
13
- const o = R(null);
14
- return /* @__PURE__ */ f(
15
- e.Root,
15
+ }, h) => {
16
+ const { t: l } = f();
17
+ return /* @__PURE__ */ e(
18
+ o.Root,
16
19
  {
17
- ref: l,
18
- className: r.root,
19
- value: a,
20
- defaultValue: n,
21
- onValueChange: i,
22
- onValueCommit: m,
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"),
23
26
  "data-test-id": c,
24
27
  ...d,
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
- ]
28
+ children: /* @__PURE__ */ e(o.Thumb, { className: t.thumb })
51
29
  }
52
30
  );
53
- }, p = h(g);
54
- p.displayName = "Slider";
31
+ }, w = n(u);
32
+ w.displayName = "Switch";
55
33
  export {
56
- p as Slider
34
+ w as Switch
57
35
  };
58
36
  //# sourceMappingURL=fondue-components25.js.map
@@ -1 +1 @@
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;"}
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;"}