@salt-ds/core 1.57.1 → 1.59.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/CHANGELOG.md +69 -0
  2. package/css/salt-core.css +198 -123
  3. package/dist-cjs/avatar/Avatar.css.js +1 -1
  4. package/dist-cjs/badge/Badge.css.js +1 -1
  5. package/dist-cjs/card/Card.css.js +1 -1
  6. package/dist-cjs/checkbox/Checkbox.css.js +1 -1
  7. package/dist-cjs/checkbox/Checkbox.js +2 -3
  8. package/dist-cjs/checkbox/Checkbox.js.map +1 -1
  9. package/dist-cjs/checkbox/CheckboxIcon.css.js +1 -1
  10. package/dist-cjs/dialog/Dialog.js +10 -3
  11. package/dist-cjs/dialog/Dialog.js.map +1 -1
  12. package/dist-cjs/dialog/DialogContent.js +9 -1
  13. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  14. package/dist-cjs/dialog/DialogContext.js +19 -4
  15. package/dist-cjs/dialog/DialogContext.js.map +1 -1
  16. package/dist-cjs/dialog/DialogHeader.css.js +1 -1
  17. package/dist-cjs/dialog/DialogHeader.js +13 -4
  18. package/dist-cjs/dialog/DialogHeader.js.map +1 -1
  19. package/dist-cjs/dropdown/Dropdown.css.js +1 -1
  20. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  21. package/dist-cjs/index.js +8 -0
  22. package/dist-cjs/index.js.map +1 -1
  23. package/dist-cjs/input/Input.css.js +1 -1
  24. package/dist-cjs/input/Input.js +2 -2
  25. package/dist-cjs/input/Input.js.map +1 -1
  26. package/dist-cjs/interactable-card/InteractableCard.css.js +1 -1
  27. package/dist-cjs/kbd/Kbd.css.js +6 -0
  28. package/dist-cjs/kbd/Kbd.css.js.map +1 -0
  29. package/dist-cjs/kbd/Kbd.js +38 -0
  30. package/dist-cjs/kbd/Kbd.js.map +1 -0
  31. package/dist-cjs/link-card/LinkCard.css.js +1 -1
  32. package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
  33. package/dist-cjs/multiline-input/MultilineInput.js +2 -2
  34. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  35. package/dist-cjs/number-input/NumberInput.css.js +1 -1
  36. package/dist-cjs/number-input/NumberInput.js.map +1 -1
  37. package/dist-cjs/option/Option.css.js +1 -1
  38. package/dist-cjs/option/Option.js +1 -1
  39. package/dist-cjs/option/Option.js.map +1 -1
  40. package/dist-cjs/overlay/OverlayPanel.js +2 -2
  41. package/dist-cjs/overlay/OverlayPanel.js.map +1 -1
  42. package/dist-cjs/pill-input/PillInput.css.js +1 -1
  43. package/dist-cjs/pill-input/PillInput.js +2 -2
  44. package/dist-cjs/pill-input/PillInput.js.map +1 -1
  45. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  46. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  47. package/dist-cjs/radio-button/RadioButton.css.js +1 -1
  48. package/dist-cjs/radio-button/RadioButton.js +0 -1
  49. package/dist-cjs/radio-button/RadioButton.js.map +1 -1
  50. package/dist-cjs/radio-button/RadioButtonIcon.css.js +1 -1
  51. package/dist-cjs/salt-provider/SaltProvider.js +1 -1
  52. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  53. package/dist-cjs/slider/internal/SliderThumb.css.js +1 -1
  54. package/dist-cjs/slider/internal/SliderTrack.css.js +1 -1
  55. package/dist-cjs/slider/internal/SliderTrack.js +0 -2
  56. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -1
  57. package/dist-cjs/spinner/Spinner.css.js +1 -1
  58. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js +1 -1
  59. package/dist-cjs/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  60. package/dist-cjs/switch/Switch.css.js +1 -1
  61. package/dist-cjs/switch/Switch.js +2 -8
  62. package/dist-cjs/switch/Switch.js.map +1 -1
  63. package/dist-cjs/toggletip/Toggletip.js +71 -0
  64. package/dist-cjs/toggletip/Toggletip.js.map +1 -0
  65. package/dist-cjs/toggletip/ToggletipContext.js +42 -0
  66. package/dist-cjs/toggletip/ToggletipContext.js.map +1 -0
  67. package/dist-cjs/toggletip/ToggletipPanel.css.js +6 -0
  68. package/dist-cjs/toggletip/ToggletipPanel.css.js.map +1 -0
  69. package/dist-cjs/toggletip/ToggletipPanel.js +117 -0
  70. package/dist-cjs/toggletip/ToggletipPanel.js.map +1 -0
  71. package/dist-cjs/toggletip/ToggletipTrigger.css.js +6 -0
  72. package/dist-cjs/toggletip/ToggletipTrigger.css.js.map +1 -0
  73. package/dist-cjs/toggletip/ToggletipTrigger.js +67 -0
  74. package/dist-cjs/toggletip/ToggletipTrigger.js.map +1 -0
  75. package/dist-cjs/tooltip/TooltipBase.js +2 -2
  76. package/dist-cjs/tooltip/TooltipBase.js.map +1 -1
  77. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  78. package/dist-cjs/utils/useForkRef.js.map +1 -1
  79. package/dist-es/avatar/Avatar.css.js +1 -1
  80. package/dist-es/badge/Badge.css.js +1 -1
  81. package/dist-es/card/Card.css.js +1 -1
  82. package/dist-es/checkbox/Checkbox.css.js +1 -1
  83. package/dist-es/checkbox/Checkbox.js +2 -3
  84. package/dist-es/checkbox/Checkbox.js.map +1 -1
  85. package/dist-es/checkbox/CheckboxIcon.css.js +1 -1
  86. package/dist-es/dialog/Dialog.js +10 -3
  87. package/dist-es/dialog/Dialog.js.map +1 -1
  88. package/dist-es/dialog/DialogContent.js +9 -1
  89. package/dist-es/dialog/DialogContent.js.map +1 -1
  90. package/dist-es/dialog/DialogContext.js +20 -5
  91. package/dist-es/dialog/DialogContext.js.map +1 -1
  92. package/dist-es/dialog/DialogHeader.css.js +1 -1
  93. package/dist-es/dialog/DialogHeader.js +14 -5
  94. package/dist-es/dialog/DialogHeader.js.map +1 -1
  95. package/dist-es/dropdown/Dropdown.css.js +1 -1
  96. package/dist-es/dropdown/Dropdown.js.map +1 -1
  97. package/dist-es/index.js +4 -0
  98. package/dist-es/index.js.map +1 -1
  99. package/dist-es/input/Input.css.js +1 -1
  100. package/dist-es/input/Input.js +2 -2
  101. package/dist-es/input/Input.js.map +1 -1
  102. package/dist-es/interactable-card/InteractableCard.css.js +1 -1
  103. package/dist-es/kbd/Kbd.css.js +4 -0
  104. package/dist-es/kbd/Kbd.css.js.map +1 -0
  105. package/dist-es/kbd/Kbd.js +36 -0
  106. package/dist-es/kbd/Kbd.js.map +1 -0
  107. package/dist-es/link-card/LinkCard.css.js +1 -1
  108. package/dist-es/menu/MenuBase.js +1 -1
  109. package/dist-es/multiline-input/MultilineInput.css.js +1 -1
  110. package/dist-es/multiline-input/MultilineInput.js +2 -2
  111. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  112. package/dist-es/number-input/NumberInput.css.js +1 -1
  113. package/dist-es/number-input/NumberInput.js.map +1 -1
  114. package/dist-es/option/Option.css.js +1 -1
  115. package/dist-es/option/Option.js +1 -1
  116. package/dist-es/option/Option.js.map +1 -1
  117. package/dist-es/overlay/Overlay.js +1 -1
  118. package/dist-es/overlay/OverlayPanel.js +2 -2
  119. package/dist-es/overlay/OverlayPanel.js.map +1 -1
  120. package/dist-es/pill-input/PillInput.css.js +1 -1
  121. package/dist-es/pill-input/PillInput.js +2 -2
  122. package/dist-es/pill-input/PillInput.js.map +1 -1
  123. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  124. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  125. package/dist-es/radio-button/RadioButton.css.js +1 -1
  126. package/dist-es/radio-button/RadioButton.js +0 -1
  127. package/dist-es/radio-button/RadioButton.js.map +1 -1
  128. package/dist-es/radio-button/RadioButtonIcon.css.js +1 -1
  129. package/dist-es/salt-provider/SaltProvider.js +1 -1
  130. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  131. package/dist-es/slider/internal/SliderThumb.css.js +1 -1
  132. package/dist-es/slider/internal/SliderTrack.css.js +1 -1
  133. package/dist-es/slider/internal/SliderTrack.js +0 -2
  134. package/dist-es/slider/internal/SliderTrack.js.map +1 -1
  135. package/dist-es/spinner/Spinner.css.js +1 -1
  136. package/dist-es/spinner/svgSpinners/SpinnerSVG.js +1 -1
  137. package/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -1
  138. package/dist-es/switch/Switch.css.js +1 -1
  139. package/dist-es/switch/Switch.js +2 -8
  140. package/dist-es/switch/Switch.js.map +1 -1
  141. package/dist-es/toggletip/Toggletip.js +69 -0
  142. package/dist-es/toggletip/Toggletip.js.map +1 -0
  143. package/dist-es/toggletip/ToggletipContext.js +39 -0
  144. package/dist-es/toggletip/ToggletipContext.js.map +1 -0
  145. package/dist-es/toggletip/ToggletipPanel.css.js +4 -0
  146. package/dist-es/toggletip/ToggletipPanel.css.js.map +1 -0
  147. package/dist-es/toggletip/ToggletipPanel.js +115 -0
  148. package/dist-es/toggletip/ToggletipPanel.js.map +1 -0
  149. package/dist-es/toggletip/ToggletipTrigger.css.js +4 -0
  150. package/dist-es/toggletip/ToggletipTrigger.css.js.map +1 -0
  151. package/dist-es/toggletip/ToggletipTrigger.js +65 -0
  152. package/dist-es/toggletip/ToggletipTrigger.js.map +1 -0
  153. package/dist-es/tooltip/TooltipBase.js +2 -2
  154. package/dist-es/tooltip/TooltipBase.js.map +1 -1
  155. package/dist-es/tooltip/useTooltip.js +1 -1
  156. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  157. package/dist-es/utils/useForkRef.js.map +1 -1
  158. package/dist-types/dialog/Dialog.d.ts +2 -0
  159. package/dist-types/dialog/DialogContext.d.ts +8 -7
  160. package/dist-types/dropdown/Dropdown.d.ts +1 -1
  161. package/dist-types/index.d.ts +2 -0
  162. package/dist-types/input/Input.d.ts +1 -1
  163. package/dist-types/kbd/Kbd.d.ts +8 -0
  164. package/dist-types/kbd/index.d.ts +1 -0
  165. package/dist-types/multiline-input/MultilineInput.d.ts +1 -1
  166. package/dist-types/number-input/NumberInput.d.ts +1 -1
  167. package/dist-types/pill-input/PillInput.d.ts +1 -1
  168. package/dist-types/toggletip/Toggletip.d.ts +14 -0
  169. package/dist-types/toggletip/ToggletipContext.d.ts +17 -0
  170. package/dist-types/toggletip/ToggletipPanel.d.ts +8 -0
  171. package/dist-types/toggletip/ToggletipTrigger.d.ts +5 -0
  172. package/dist-types/toggletip/index.d.ts +3 -0
  173. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +1 -1
  174. package/package.json +2 -2
@@ -0,0 +1,69 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useFloatingRootContext, useInteractions, useRole, useClick, useDismiss } from '@floating-ui/react';
3
+ import { useState } from 'react';
4
+ import 'clsx';
5
+ import { useControlled } from '../utils/useControlled.js';
6
+ import '../utils/useFloatingUI/useFloatingUI.js';
7
+ import '../utils/useId.js';
8
+ import '../salt-provider/SaltProvider.js';
9
+ import '../viewport/ViewportProvider.js';
10
+ import { ToggletipContext } from './ToggletipContext.js';
11
+
12
+ const Toggletip = ({
13
+ children,
14
+ open,
15
+ onOpenChange,
16
+ placement = "top"
17
+ }) => {
18
+ const [openState, setOpenState] = useControlled({
19
+ controlled: open,
20
+ default: false,
21
+ name: "Toggletip",
22
+ state: "open"
23
+ });
24
+ const handleOpenChange = (newOpen) => {
25
+ setOpenState(newOpen);
26
+ onOpenChange == null ? void 0 : onOpenChange(newOpen);
27
+ };
28
+ const [reference, setReference] = useState(null);
29
+ const [floating, setFloating] = useState(null);
30
+ const [floatingContent, setFloatingContent] = useState(
31
+ null
32
+ );
33
+ const [triggerId, setTriggerId] = useState(void 0);
34
+ const floatingRootContext = useFloatingRootContext({
35
+ open: openState,
36
+ onOpenChange: handleOpenChange,
37
+ elements: {
38
+ reference,
39
+ floating
40
+ }
41
+ });
42
+ const { getReferenceProps, getFloatingProps } = useInteractions([
43
+ useRole(floatingRootContext, { role: "dialog" }),
44
+ useClick(floatingRootContext),
45
+ useDismiss(floatingRootContext)
46
+ ]);
47
+ return /* @__PURE__ */ jsx(
48
+ ToggletipContext.Provider,
49
+ {
50
+ value: {
51
+ openState,
52
+ floatingRootContext,
53
+ placement,
54
+ floatingContent,
55
+ getFloatingProps,
56
+ getReferenceProps,
57
+ setFloating,
58
+ setFloatingContent,
59
+ setReference,
60
+ setTriggerId,
61
+ triggerId
62
+ },
63
+ children
64
+ }
65
+ );
66
+ };
67
+
68
+ export { Toggletip };
69
+ //# sourceMappingURL=Toggletip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toggletip.js","sources":["../src/toggletip/Toggletip.tsx"],"sourcesContent":["import {\n useClick,\n useDismiss,\n useFloatingRootContext,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { type ReactNode, useState } from \"react\";\nimport { useControlled } from \"../utils\";\nimport { ToggletipContext } from \"./ToggletipContext\";\n\nexport interface ToggletipProps {\n children?: ReactNode;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /*\n * Set the placement of the Toggletip component relative to the trigger element. Defaults to `top`.\n */\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nexport const Toggletip = ({\n children,\n open,\n onOpenChange,\n placement = \"top\",\n}: ToggletipProps) => {\n const [openState, setOpenState] = useControlled({\n controlled: open,\n default: false,\n name: \"Toggletip\",\n state: \"open\",\n });\n\n const handleOpenChange = (newOpen: boolean) => {\n setOpenState(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const [reference, setReference] = useState<HTMLButtonElement | null>(null);\n const [floating, setFloating] = useState<HTMLDivElement | null>(null);\n const [floatingContent, setFloatingContent] = useState<HTMLDivElement | null>(\n null,\n );\n const [triggerId, setTriggerId] = useState<string | undefined>(undefined);\n\n const floatingRootContext = useFloatingRootContext({\n open: openState,\n onOpenChange: handleOpenChange,\n elements: {\n reference,\n floating,\n },\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(floatingRootContext, { role: \"dialog\" }),\n useClick(floatingRootContext),\n useDismiss(floatingRootContext),\n ]);\n\n return (\n <ToggletipContext.Provider\n value={{\n openState,\n floatingRootContext,\n placement,\n floatingContent,\n getFloatingProps,\n getReferenceProps,\n setFloating,\n setFloatingContent,\n setReference,\n setTriggerId,\n triggerId,\n }}\n >\n {children}\n </ToggletipContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AA2BO,MAAM,YAAY,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAsB;AACpB,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,aAAA,CAAc;AAAA,IAC9C,UAAA,EAAY,IAAA;AAAA,IACZ,OAAA,EAAS,KAAA;AAAA,IACT,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAqB;AAC7C,IAAA,YAAA,CAAa,OAAO,CAAA;AACpB,IAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAe,OAAA,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAmC,IAAI,CAAA;AACzE,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAgC,IAAI,CAAA;AACpE,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,QAAA;AAAA,IAC5C;AAAA,GACF;AACA,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,MAAS,CAAA;AAExE,EAAA,MAAM,sBAAsB,sBAAA,CAAuB;AAAA,IACjD,IAAA,EAAM,SAAA;AAAA,IACN,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,EAAU;AAAA,MACR,SAAA;AAAA,MACA;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAA,EAAiB,GAAI,eAAA,CAAgB;AAAA,IAC9D,OAAA,CAAQ,mBAAA,EAAqB,EAAE,IAAA,EAAM,UAAU,CAAA;AAAA,IAC/C,SAAS,mBAAmB,CAAA;AAAA,IAC5B,WAAW,mBAAmB;AAAA,GAC/B,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA,CAAiB,QAAA;AAAA,IAAjB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,SAAA;AAAA,QACA,mBAAA;AAAA,QACA,SAAA;AAAA,QACA,eAAA;AAAA,QACA,gBAAA;AAAA,QACA,iBAAA;AAAA,QACA,WAAA;AAAA,QACA,kBAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;;"}
@@ -0,0 +1,39 @@
1
+ import { useContext } from 'react';
2
+ import { createContext } from '../utils/createContext.js';
3
+ import 'clsx';
4
+ import 'react/jsx-runtime';
5
+ import '../utils/useFloatingUI/useFloatingUI.js';
6
+ import '../utils/useId.js';
7
+ import '../salt-provider/SaltProvider.js';
8
+ import '../viewport/ViewportProvider.js';
9
+
10
+ const ToggletipContext = createContext(
11
+ "ToggletipContext",
12
+ {
13
+ openState: false,
14
+ floatingRootContext: {},
15
+ placement: "top",
16
+ floatingContent: null,
17
+ getFloatingProps() {
18
+ return {};
19
+ },
20
+ getReferenceProps() {
21
+ return {};
22
+ },
23
+ setFloating: () => {
24
+ },
25
+ setFloatingContent: () => {
26
+ },
27
+ setReference: () => {
28
+ },
29
+ setTriggerId: () => {
30
+ },
31
+ triggerId: void 0
32
+ }
33
+ );
34
+ function useToggletipContext() {
35
+ return useContext(ToggletipContext);
36
+ }
37
+
38
+ export { ToggletipContext, useToggletipContext };
39
+ //# sourceMappingURL=ToggletipContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggletipContext.js","sources":["../src/toggletip/ToggletipContext.ts"],"sourcesContent":["import type { FloatingRootContext, Placement } from \"@floating-ui/react\";\nimport {\n type Dispatch,\n type HTMLProps,\n type SetStateAction,\n useContext,\n} from \"react\";\nimport { createContext } from \"../utils\";\n\nexport interface ToggletipContextValue {\n openState: boolean;\n floatingRootContext: FloatingRootContext;\n placement: Placement;\n floatingContent: HTMLDivElement | null;\n getFloatingProps: (\n userProps?: HTMLProps<HTMLElement> | undefined,\n ) => Record<string, unknown>;\n getReferenceProps: (\n userProps?: HTMLProps<Element> | undefined,\n ) => Record<string, unknown>;\n setFloating: Dispatch<SetStateAction<HTMLDivElement | null>>;\n setFloatingContent: Dispatch<SetStateAction<HTMLDivElement | null>>;\n setReference: Dispatch<SetStateAction<HTMLButtonElement | null>>;\n setTriggerId: Dispatch<SetStateAction<string | undefined>>;\n triggerId: string | undefined;\n}\n\nexport const ToggletipContext = createContext<ToggletipContextValue>(\n \"ToggletipContext\",\n {\n openState: false,\n floatingRootContext: {} as FloatingRootContext,\n placement: \"top\",\n floatingContent: null,\n getFloatingProps() {\n return {} as Record<string, unknown>;\n },\n getReferenceProps() {\n return {} as Record<string, unknown>;\n },\n setFloating: () => {},\n setFloatingContent: () => {},\n setReference: () => {},\n setTriggerId: () => {},\n triggerId: undefined,\n },\n);\n\nexport function useToggletipContext() {\n return useContext(ToggletipContext);\n}\n"],"names":[],"mappings":";;;;;;;;;AA2BO,MAAM,gBAAA,GAAmB,aAAA;AAAA,EAC9B,kBAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,qBAAqB,EAAC;AAAA,IACtB,SAAA,EAAW,KAAA;AAAA,IACX,eAAA,EAAiB,IAAA;AAAA,IACjB,gBAAA,GAAmB;AACjB,MAAA,OAAO,EAAC;AAAA,IACV,CAAA;AAAA,IACA,iBAAA,GAAoB;AAClB,MAAA,OAAO,EAAC;AAAA,IACV,CAAA;AAAA,IACA,aAAa,MAAM;AAAA,IAAC,CAAA;AAAA,IACpB,oBAAoB,MAAM;AAAA,IAAC,CAAA;AAAA,IAC3B,cAAc,MAAM;AAAA,IAAC,CAAA;AAAA,IACrB,cAAc,MAAM;AAAA,IAAC,CAAA;AAAA,IACrB,SAAA,EAAW;AAAA;AAEf;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACpC;;;;"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltToggletipPanel {\n --toggletip-background: var(--salt-container-primary-background);\n --toggletip-borderColor: var(--salt-container-primary-borderColor);\n\n box-sizing: border-box;\n padding: var(--salt-spacing-100);\n\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--toggletip-borderColor);\n border-radius: var(--salt-palette-corner-weak);\n\n background: var(--toggletip-background);\n box-shadow: var(--salt-overlayable-shadow-popout);\n\n color: var(--salt-content-primary-foreground);\n z-index: var(--salt-zIndex-flyover);\n\n max-width: 45ch;\n max-height: 100vh;\n}\n\n.saltToggletipPanel-content {\n max-height: 100%;\n overflow-y: auto;\n}\n\n.saltToggletipPanel-content:focus-visible {\n outline-offset: var(--salt-spacing-fixed-100);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=ToggletipPanel.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggletipPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,115 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { offset, shift, limitShift, flip, arrow, FloatingArrow } from '@floating-ui/react';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef, useRef } from 'react';
7
+ import { makePrefixer } from '../utils/makePrefixer.js';
8
+ import { useFloatingComponent, useFloatingUI } from '../utils/useFloatingUI/useFloatingUI.js';
9
+ import { useForkRef } from '../utils/useForkRef.js';
10
+ import '../utils/useId.js';
11
+ import '../salt-provider/SaltProvider.js';
12
+ import '../viewport/ViewportProvider.js';
13
+ import { useToggletipContext } from './ToggletipContext.js';
14
+ import css_248z from './ToggletipPanel.css.js';
15
+
16
+ const withBaseName = makePrefixer("saltToggletipPanel");
17
+ const ToggletipPanel = forwardRef(
18
+ function ToggletipPanel2(props, ref) {
19
+ var _a, _b;
20
+ const {
21
+ className,
22
+ "aria-labelledby": ariaLabelledby,
23
+ children,
24
+ ...rest
25
+ } = props;
26
+ const targetWindow = useWindow();
27
+ useComponentCssInjection({
28
+ testId: "salt-toggletip-panel",
29
+ css: css_248z,
30
+ window: targetWindow
31
+ });
32
+ const { Component: FloatingComponent } = useFloatingComponent();
33
+ const {
34
+ openState,
35
+ floatingRootContext,
36
+ setFloatingContent,
37
+ getFloatingProps,
38
+ setFloating,
39
+ placement,
40
+ triggerId
41
+ } = useToggletipContext();
42
+ const handleRef = useForkRef(setFloating, ref);
43
+ const arrowRef = useRef(null);
44
+ const contentRef = useRef(null);
45
+ const handleContentRef = useForkRef(
46
+ contentRef,
47
+ setFloatingContent
48
+ );
49
+ const { y, x, elements, strategy, context } = useFloatingUI({
50
+ rootContext: floatingRootContext,
51
+ placement,
52
+ middleware: [
53
+ offset(8),
54
+ shift({ limiter: limitShift() }),
55
+ flip({
56
+ fallbackAxisSideDirection: "end",
57
+ fallbackStrategy: "initialPlacement"
58
+ }),
59
+ arrow({
60
+ element: arrowRef
61
+ })
62
+ ]
63
+ });
64
+ return /* @__PURE__ */ jsxs(
65
+ FloatingComponent,
66
+ {
67
+ open: openState,
68
+ className: clsx(withBaseName(), className),
69
+ ref: handleRef,
70
+ width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
71
+ height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
72
+ top: y ?? 0,
73
+ left: x ?? 0,
74
+ position: strategy,
75
+ focusManagerProps: {
76
+ context,
77
+ modal: false,
78
+ initialFocus: contentRef,
79
+ closeOnFocusOut: true,
80
+ order: ["floating", "content"]
81
+ },
82
+ children: [
83
+ /* @__PURE__ */ jsx(
84
+ "div",
85
+ {
86
+ ref: handleContentRef,
87
+ className: withBaseName("content"),
88
+ tabIndex: 0,
89
+ ...getFloatingProps({
90
+ "aria-labelledby": clsx(ariaLabelledby, triggerId) || void 0,
91
+ ...rest
92
+ }),
93
+ children
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsx(
97
+ FloatingArrow,
98
+ {
99
+ ref: arrowRef,
100
+ context,
101
+ strokeWidth: 1,
102
+ fill: "var(--toggletip-background)",
103
+ stroke: "var(--toggletip-borderColor)",
104
+ height: 6,
105
+ width: 12
106
+ }
107
+ )
108
+ ]
109
+ }
110
+ );
111
+ }
112
+ );
113
+
114
+ export { ToggletipPanel };
115
+ //# sourceMappingURL=ToggletipPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggletipPanel.js","sources":["../src/toggletip/ToggletipPanel.tsx"],"sourcesContent":["import {\n arrow,\n FloatingArrow,\n flip,\n limitShift,\n offset,\n shift,\n} from \"@floating-ui/react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useRef,\n} from \"react\";\nimport {\n makePrefixer,\n useFloatingComponent,\n useFloatingUI,\n useForkRef,\n} from \"../utils\";\nimport { useToggletipContext } from \"./ToggletipContext\";\nimport toggletipPanelCss from \"./ToggletipPanel.css\";\n\nconst withBaseName = makePrefixer(\"saltToggletipPanel\");\n\nexport interface ToggletipPanelProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of Toggletip Panel\n */\n children?: ReactNode;\n}\n\nexport const ToggletipPanel = forwardRef<HTMLDivElement, ToggletipPanelProps>(\n function ToggletipPanel(props, ref) {\n const {\n className,\n \"aria-labelledby\": ariaLabelledby,\n children,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toggletip-panel\",\n css: toggletipPanelCss,\n window: targetWindow,\n });\n\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const {\n openState,\n floatingRootContext,\n setFloatingContent,\n getFloatingProps,\n setFloating,\n placement,\n triggerId,\n } = useToggletipContext();\n\n const handleRef = useForkRef<HTMLDivElement>(setFloating, ref);\n\n const arrowRef = useRef<SVGSVGElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const handleContentRef = useForkRef<HTMLDivElement>(\n contentRef,\n setFloatingContent,\n );\n const { y, x, elements, strategy, context } = useFloatingUI({\n rootContext: floatingRootContext,\n placement,\n middleware: [\n offset(8),\n shift({ limiter: limitShift() }),\n flip({\n fallbackAxisSideDirection: \"end\",\n fallbackStrategy: \"initialPlacement\",\n }),\n arrow({\n element: arrowRef,\n }),\n ],\n });\n return (\n <FloatingComponent\n open={openState}\n className={clsx(withBaseName(), className)}\n ref={handleRef}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n top={y ?? 0}\n left={x ?? 0}\n position={strategy}\n focusManagerProps={{\n context,\n modal: false,\n initialFocus: contentRef,\n closeOnFocusOut: true,\n order: [\"floating\", \"content\"],\n }}\n >\n <div\n ref={handleContentRef}\n className={withBaseName(\"content\")}\n tabIndex={0}\n {...getFloatingProps({\n \"aria-labelledby\": clsx(ariaLabelledby, triggerId) || undefined,\n ...rest,\n })}\n >\n {children}\n </div>\n <FloatingArrow\n ref={arrowRef}\n context={context}\n strokeWidth={1}\n fill=\"var(--toggletip-background)\"\n stroke=\"var(--toggletip-borderColor)\"\n height={6}\n width={12}\n />\n </FloatingComponent>\n );\n },\n);\n"],"names":["ToggletipPanel","toggletipPanelCss"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltToggletipTrigger {\n box-sizing: border-box;\n align-items: center;\n appearance: none;\n display: inline-flex;\n gap: var(--salt-spacing-50);\n justify-content: center;\n font-size: var(--salt-text-fontSize);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n padding: 0;\n margin: 0;\n min-height: var(--salt-size-icon);\n min-width: var(--salt-size-icon);\n position: relative;\n text-align: var(--salt-text-action-textAlign);\n text-decoration: none;\n transition: none;\n width: auto;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n\n color: var(--salt-content-primary-foreground);\n background: transparent;\n border: none;\n\n cursor: var(--salt-cursor-hover);\n flex: 0;\n}\n\n.saltToggletipTrigger:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: var(--salt-size-fixed-100);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=ToggletipTrigger.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggletipTrigger.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,65 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useComponentCssInjection } from '@salt-ds/styles';
3
+ import { useWindow } from '@salt-ds/window';
4
+ import { clsx } from 'clsx';
5
+ import { forwardRef, useEffect } from 'react';
6
+ import { makePrefixer } from '../utils/makePrefixer.js';
7
+ import '../utils/useFloatingUI/useFloatingUI.js';
8
+ import { useForkRef } from '../utils/useForkRef.js';
9
+ import { useId } from '../utils/useId.js';
10
+ import '../salt-provider/SaltProvider.js';
11
+ import '../viewport/ViewportProvider.js';
12
+ import { useToggletipContext } from './ToggletipContext.js';
13
+ import css_248z from './ToggletipTrigger.css.js';
14
+
15
+ const withBaseName = makePrefixer("saltToggletipTrigger");
16
+ const ToggletipTrigger = forwardRef(function ToggletipTrigger2(props, ref) {
17
+ const { children, className, id: idProp, onKeyDown, ...rest } = props;
18
+ const targetWindow = useWindow();
19
+ useComponentCssInjection({
20
+ testId: "salt-toggletip-trigger",
21
+ css: css_248z,
22
+ window: targetWindow
23
+ });
24
+ const {
25
+ floatingContent,
26
+ openState,
27
+ setReference,
28
+ getReferenceProps,
29
+ setTriggerId
30
+ } = useToggletipContext();
31
+ const handleRef = useForkRef(setReference, ref);
32
+ const id = useId(idProp);
33
+ useEffect(() => {
34
+ if (id) {
35
+ setTriggerId == null ? void 0 : setTriggerId(id);
36
+ }
37
+ }, [id, setTriggerId]);
38
+ const handleKeyDown = (event) => {
39
+ onKeyDown == null ? void 0 : onKeyDown(event);
40
+ if (!openState || event.key !== "Tab" || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) {
41
+ return;
42
+ }
43
+ if (floatingContent) {
44
+ event.preventDefault();
45
+ floatingContent.focus();
46
+ }
47
+ };
48
+ return /* @__PURE__ */ jsx(
49
+ "button",
50
+ {
51
+ type: "button",
52
+ ...getReferenceProps({
53
+ ref: handleRef,
54
+ className: clsx(withBaseName(), className),
55
+ id,
56
+ onKeyDown: handleKeyDown,
57
+ ...rest
58
+ }),
59
+ children
60
+ }
61
+ );
62
+ });
63
+
64
+ export { ToggletipTrigger };
65
+ //# sourceMappingURL=ToggletipTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggletipTrigger.js","sources":["../src/toggletip/ToggletipTrigger.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type KeyboardEvent,\n type ReactNode,\n useEffect,\n} from \"react\";\nimport { makePrefixer, useForkRef, useId } from \"../utils\";\nimport { useToggletipContext } from \"./ToggletipContext\";\nimport toggletipTriggerCss from \"./ToggletipTrigger.css\";\n\nexport interface ToggletipTriggerProps\n extends ComponentPropsWithoutRef<\"button\"> {\n children?: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltToggletipTrigger\");\n\nexport const ToggletipTrigger = forwardRef<\n HTMLButtonElement,\n ToggletipTriggerProps\n>(function ToggletipTrigger(props, ref) {\n const { children, className, id: idProp, onKeyDown, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toggletip-trigger\",\n css: toggletipTriggerCss,\n window: targetWindow,\n });\n\n const {\n floatingContent,\n openState,\n setReference,\n getReferenceProps,\n setTriggerId,\n } = useToggletipContext();\n\n const handleRef = useForkRef<HTMLButtonElement>(setReference, ref);\n\n const id = useId(idProp);\n\n useEffect(() => {\n if (id) {\n setTriggerId?.(id);\n }\n }, [id, setTriggerId]);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event);\n\n if (\n !openState ||\n event.key !== \"Tab\" ||\n event.shiftKey ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey\n ) {\n return;\n }\n\n if (floatingContent) {\n // React 16 support: explicitly move focus back into the open panel.\n event.preventDefault();\n floatingContent.focus();\n }\n };\n\n return (\n <button\n type=\"button\"\n {...getReferenceProps({\n ref: handleRef,\n className: clsx(withBaseName(), className),\n id,\n onKeyDown: handleKeyDown,\n ...rest,\n })}\n >\n {children}\n </button>\n );\n});\n"],"names":["ToggletipTrigger","toggletipTriggerCss"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA;AAEjD,MAAM,gBAAA,GAAmB,UAAA,CAG9B,SAASA,iBAAAA,CAAiB,OAAO,GAAA,EAAK;AACtC,EAAA,MAAM,EAAE,UAAU,SAAA,EAAW,EAAA,EAAI,QAAQ,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEhE,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,wBAAA;AAAA,IACR,GAAA,EAAKC,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM;AAAA,IACJ,eAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,MACE,mBAAA,EAAoB;AAExB,EAAA,MAAM,SAAA,GAAY,UAAA,CAA8B,YAAA,EAAc,GAAG,CAAA;AAEjE,EAAA,MAAM,EAAA,GAAK,MAAM,MAAM,CAAA;AAEvB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,EAAA,EAAI;AACN,MAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAe,EAAA,CAAA;AAAA,IACjB;AAAA,EACF,CAAA,EAAG,CAAC,EAAA,EAAI,YAAY,CAAC,CAAA;AAErB,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA4C;AACjE,IAAA,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAY,KAAA,CAAA;AAEZ,IAAA,IACE,CAAC,SAAA,IACD,KAAA,CAAM,GAAA,KAAQ,KAAA,IACd,KAAA,CAAM,QAAA,IACN,KAAA,CAAM,MAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,OAAA,EACN;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,eAAA,EAAiB;AAEnB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,eAAA,CAAgB,KAAA,EAAM;AAAA,IACxB;AAAA,EACF,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACJ,GAAG,iBAAA,CAAkB;AAAA,QACpB,GAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAW,IAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,EAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,GAAG;AAAA,OACJ,CAAA;AAAA,MAEA;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -51,8 +51,8 @@ const TooltipBase = (props) => {
51
51
  strokeWidth: 1,
52
52
  fill: "var(--salt-container-primary-background)",
53
53
  stroke: "var(--tooltip-status-borderColor)",
54
- height: 5,
55
- width: 10
54
+ height: 6,
55
+ width: 12
56
56
  }
57
57
  )
58
58
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipBase.js","sources":["../src/tooltip/TooltipBase.tsx"],"sourcesContent":["import { FloatingArrow, type FloatingArrowProps } from \"@floating-ui/react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { StatusIndicator, type ValidationStatus } from \"../status-indicator\";\nimport { makePrefixer } from \"../utils\";\nimport type { TooltipProps } from \"./Tooltip\";\nimport tooltipCss from \"./Tooltip.css\";\n\nconst withBaseName = makePrefixer(\"saltTooltip\");\n\ninterface TooltipBaseProps extends Omit<TooltipProps, \"children\"> {\n arrowProps: FloatingArrowProps;\n /**\n * Optional string to determine the status of the Tooltip.\n */\n status?: ValidationStatus;\n}\n\nexport const TooltipBase = (props: TooltipBaseProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tooltip\",\n css: tooltipCss,\n window: targetWindow,\n });\n\n const { a11yProps } = useFormFieldProps();\n\n const { arrowProps, content, hideArrow, hideIcon, status } = props;\n\n return (\n <>\n <div className={withBaseName(\"container\")}>\n {!hideIcon && status && (\n <StatusIndicator\n status={status}\n size={1}\n className={withBaseName(\"icon\")}\n />\n )}\n <span\n id={a11yProps?.[\"aria-describedby\"]}\n className={withBaseName(\"content\")}\n >\n {content}\n </span>\n </div>\n {!hideArrow && (\n <FloatingArrow\n {...arrowProps}\n className={withBaseName(\"arrow\")}\n strokeWidth={1}\n fill=\"var(--salt-container-primary-background)\"\n stroke=\"var(--tooltip-status-borderColor)\"\n height={5}\n width={10}\n />\n )}\n </>\n );\n};\n"],"names":["tooltipCss"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA;AAUxC,MAAM,WAAA,GAAc,CAAC,KAAA,KAA4B;AACtD,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,cAAA;AAAA,IACR,GAAA,EAAKA,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,SAAA,EAAU,GAAI,iBAAA,EAAkB;AAExC,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,QAAO,GAAI,KAAA;AAE7D,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EACrC,QAAA,EAAA;AAAA,MAAA,CAAC,YAAY,MAAA,oBACZ,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,MAAA;AAAA,UACA,IAAA,EAAM,CAAA;AAAA,UACN,SAAA,EAAW,aAAa,MAAM;AAAA;AAAA,OAChC;AAAA,sBAEF,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAI,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAY,kBAAA,CAAA;AAAA,UAChB,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,UAEhC,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,IACC,CAAC,SAAA,oBACA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,UAAA;AAAA,QACJ,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,QAC/B,WAAA,EAAa,CAAA;AAAA,QACb,IAAA,EAAK,0CAAA;AAAA,QACL,MAAA,EAAO,mCAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,KAAA,EAAO;AAAA;AAAA;AACT,GAAA,EAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TooltipBase.js","sources":["../src/tooltip/TooltipBase.tsx"],"sourcesContent":["import { FloatingArrow, type FloatingArrowProps } from \"@floating-ui/react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { StatusIndicator, type ValidationStatus } from \"../status-indicator\";\nimport { makePrefixer } from \"../utils\";\nimport type { TooltipProps } from \"./Tooltip\";\nimport tooltipCss from \"./Tooltip.css\";\n\nconst withBaseName = makePrefixer(\"saltTooltip\");\n\ninterface TooltipBaseProps extends Omit<TooltipProps, \"children\"> {\n arrowProps: FloatingArrowProps;\n /**\n * Optional string to determine the status of the Tooltip.\n */\n status?: ValidationStatus;\n}\n\nexport const TooltipBase = (props: TooltipBaseProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tooltip\",\n css: tooltipCss,\n window: targetWindow,\n });\n\n const { a11yProps } = useFormFieldProps();\n\n const { arrowProps, content, hideArrow, hideIcon, status } = props;\n\n return (\n <>\n <div className={withBaseName(\"container\")}>\n {!hideIcon && status && (\n <StatusIndicator\n status={status}\n size={1}\n className={withBaseName(\"icon\")}\n />\n )}\n <span\n id={a11yProps?.[\"aria-describedby\"]}\n className={withBaseName(\"content\")}\n >\n {content}\n </span>\n </div>\n {!hideArrow && (\n <FloatingArrow\n {...arrowProps}\n className={withBaseName(\"arrow\")}\n strokeWidth={1}\n fill=\"var(--salt-container-primary-background)\"\n stroke=\"var(--tooltip-status-borderColor)\"\n height={6}\n width={12}\n />\n )}\n </>\n );\n};\n"],"names":["tooltipCss"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA;AAUxC,MAAM,WAAA,GAAc,CAAC,KAAA,KAA4B;AACtD,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,cAAA;AAAA,IACR,GAAA,EAAKA,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,SAAA,EAAU,GAAI,iBAAA,EAAkB;AAExC,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,QAAO,GAAI,KAAA;AAE7D,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,WAAW,CAAA,EACrC,QAAA,EAAA;AAAA,MAAA,CAAC,YAAY,MAAA,oBACZ,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,MAAA;AAAA,UACA,IAAA,EAAM,CAAA;AAAA,UACN,SAAA,EAAW,aAAa,MAAM;AAAA;AAAA,OAChC;AAAA,sBAEF,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAI,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAY,kBAAA,CAAA;AAAA,UAChB,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,UAEhC,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,IACC,CAAC,SAAA,oBACA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,UAAA;AAAA,QACJ,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,QAC/B,WAAA,EAAa,CAAA;AAAA,QACb,IAAA,EAAK,0CAAA;AAAA,QACL,MAAA,EAAO,mCAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,KAAA,EAAO;AAAA;AAAA;AACT,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import { offset, shift, flip, arrow, limitShift, useInteractions, useHover, useFocus, useRole, useDismiss, safePolygon } from '@floating-ui/react';
1
+ import { offset, shift, limitShift, flip, arrow, useInteractions, useHover, safePolygon, useFocus, useRole, useDismiss } from '@floating-ui/react';
2
2
  import { useRef } from 'react';
3
3
  import 'clsx';
4
4
  import 'react/jsx-runtime';
@@ -1 +1 @@
1
- {"version":3,"file":"useFloatingUI.js","sources":["../src/utils/useFloatingUI/useFloatingUI.tsx"],"sourcesContent":["import {\n autoUpdate,\n FloatingFocusManager,\n type FloatingFocusManagerProps,\n FloatingPortal,\n flip,\n limitShift,\n type Middleware,\n type Platform,\n platform,\n type Strategy,\n shift,\n type UseFloatingOptions,\n useFloating,\n} from \"@floating-ui/react\";\nimport {\n type ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\nimport { SaltProvider, SaltProviderNext, useTheme } from \"../../salt-provider\";\nimport { usePreventScroll } from \"../usePreventScroll\";\n\nexport interface FloatingComponentProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether the floating component is open (used for determining whether to show the component)\n * We pass this as a prop rather than not rendering the component to allow more advanced use-cases e.g.\n * for caching windows and reusing them, rather than always spawning a new one\n */\n open: boolean;\n /**\n * Use this prop when `FloatingFocusManager` is needed for floating component\n */\n focusManagerProps?: Omit<FloatingFocusManagerProps, \"children\">;\n /**\n * Position and sizing optional props for the floating component. `top`, `left`, and `position` for floating elements where they aren't positioned with relative to the trigger.\n * `width` and `height` are used to define the size of the floating element.\n *\n */\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n position?: Strategy;\n /**\n * Makes the page unscrollable when the floating component is open.\n */\n lockScroll?: boolean;\n}\n\nconst DefaultFloatingComponent = forwardRef<\n HTMLDivElement,\n FloatingComponentProps\n>(function DefaultFloatingComponent(props, ref) {\n const {\n open,\n top,\n left,\n position,\n width: _width,\n height: _height,\n focusManagerProps,\n lockScroll,\n style: styleProp,\n ...rest\n } = props;\n const style = {\n ...styleProp,\n top,\n left,\n position,\n };\n\n const { themeNext } = useTheme();\n usePreventScroll({ isDisabled: !lockScroll || !open });\n\n const ChosenSaltProvider = themeNext ? SaltProviderNext : SaltProvider;\n\n if (focusManagerProps && open) {\n return (\n <FloatingPortal>\n <ChosenSaltProvider applyClassesTo=\"scope\">\n <FloatingFocusManager {...focusManagerProps}>\n <div style={style} {...rest} ref={ref} />\n </FloatingFocusManager>\n </ChosenSaltProvider>\n </FloatingPortal>\n );\n }\n\n return open ? (\n <FloatingPortal>\n <ChosenSaltProvider applyClassesTo=\"scope\">\n <div style={style} {...rest} ref={ref} />\n </ChosenSaltProvider>\n </FloatingPortal>\n ) : null;\n});\n\nexport interface FloatingComponentContextType {\n Component: typeof DefaultFloatingComponent;\n}\n\nconst FloatingComponentContext = createContext<FloatingComponentContextType>({\n Component: DefaultFloatingComponent,\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FloatingComponentContext.displayName = \"FloatingComponentContext\";\n}\n\nexport interface FloatingComponentProviderProps\n extends FloatingComponentContextType {\n children: ReactNode;\n}\n\nexport function FloatingComponentProvider(\n props: FloatingComponentProviderProps,\n) {\n const { Component, children } = props;\n const value = useMemo(() => ({ Component }), [Component]);\n\n return (\n <FloatingComponentContext.Provider value={value}>\n {children}\n </FloatingComponentContext.Provider>\n );\n}\n\nexport function useFloatingComponent() {\n return useContext(FloatingComponentContext);\n}\n\nexport interface UseFloatingUIProps\n extends Pick<\n UseFloatingOptions,\n \"placement\" | \"strategy\" | \"open\" | \"onOpenChange\" | \"nodeId\"\n > {\n /**\n * Function to update the default middleware used to extend or replace it\n */\n middleware?: Middleware[];\n}\n\ntype GetMiddleware = (middleware: Middleware[]) => Middleware[];\n\nconst defaultGetMiddleware: GetMiddleware = (defaultMiddleware) =>\n defaultMiddleware;\n\ninterface FloatingPlatformContextType {\n platform: Platform;\n middleware: GetMiddleware;\n animationFrame: boolean;\n}\n\nconst defaultFloatingPlaform: FloatingPlatformContextType = {\n platform,\n middleware: defaultGetMiddleware,\n animationFrame: false,\n};\n\nconst FloatingPlatformContext = createContext<FloatingPlatformContextType>(\n defaultFloatingPlaform,\n);\n\nexport interface FloatingPlatformProviderProps {\n platform?: Platform;\n middleware?: GetMiddleware;\n children: ReactNode;\n animationFrame?: boolean;\n}\n\nexport function FloatingPlatformProvider(props: FloatingPlatformProviderProps) {\n const {\n platform: platformProp,\n middleware,\n animationFrame,\n children,\n } = props;\n\n const floatingPlatformContextValue = useMemo<FloatingPlatformContextType>(\n () => ({\n platform: platformProp ?? platform,\n middleware: middleware ?? defaultGetMiddleware,\n animationFrame: animationFrame || false,\n }),\n [platformProp, middleware, animationFrame],\n );\n\n return (\n <FloatingPlatformContext.Provider value={floatingPlatformContextValue}>\n {children}\n </FloatingPlatformContext.Provider>\n );\n}\n\nexport function useFloatingPlatform() {\n return useContext(FloatingPlatformContext);\n}\n\nexport const DEFAULT_FLOATING_UI_MIDDLEWARE = [\n flip(),\n shift({ limiter: limitShift() }),\n];\n\ntype UseFloatingRefs = ReturnType<typeof useFloating>[\"refs\"];\n\nexport interface UseFloatingUIReturn extends ReturnType<typeof useFloating> {\n reference: UseFloatingRefs[\"setReference\"];\n floating: UseFloatingRefs[\"setFloating\"];\n}\n\nexport function useFloatingUI(props: UseFloatingUIProps): UseFloatingUIReturn {\n const {\n middleware = DEFAULT_FLOATING_UI_MIDDLEWARE,\n open = false,\n onOpenChange,\n ...other\n } = props;\n\n const handleOpenChange: UseFloatingUIProps[\"onOpenChange\"] = (\n open,\n boolean,\n reason,\n ) => {\n update();\n onOpenChange?.(open, boolean, reason);\n };\n\n const {\n platform: contextPlatform,\n middleware: contextMiddleware,\n animationFrame,\n } = useFloatingPlatform();\n\n const { refs, update, ...rest } = useFloating({\n ...other,\n middleware: contextMiddleware(middleware),\n open,\n onOpenChange: handleOpenChange,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, { animationFrame });\n\n return cleanup;\n },\n platform: contextPlatform,\n });\n\n return {\n reference: refs.setReference,\n floating: refs.setFloating,\n refs,\n update,\n ...rest,\n };\n}\n"],"names":["DefaultFloatingComponent","open"],"mappings":"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"}
1
+ {"version":3,"file":"useFloatingUI.js","sources":["../src/utils/useFloatingUI/useFloatingUI.tsx"],"sourcesContent":["import {\n autoUpdate,\n FloatingFocusManager,\n type FloatingFocusManagerProps,\n FloatingPortal,\n flip,\n limitShift,\n type Middleware,\n type Platform,\n platform,\n type Strategy,\n shift,\n type UseFloatingOptions,\n useFloating,\n} from \"@floating-ui/react\";\nimport {\n type ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\nimport { SaltProvider, SaltProviderNext, useTheme } from \"../../salt-provider\";\nimport { usePreventScroll } from \"../usePreventScroll\";\n\nexport interface FloatingComponentProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether the floating component is open (used for determining whether to show the component)\n * We pass this as a prop rather than not rendering the component to allow more advanced use-cases e.g.\n * for caching windows and reusing them, rather than always spawning a new one\n */\n open: boolean;\n /**\n * Use this prop when `FloatingFocusManager` is needed for floating component\n */\n focusManagerProps?: Omit<FloatingFocusManagerProps, \"children\">;\n /**\n * Position and sizing optional props for the floating component. `top`, `left`, and `position` for floating elements where they aren't positioned with relative to the trigger.\n * `width` and `height` are used to define the size of the floating element.\n *\n */\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n position?: Strategy;\n /**\n * Makes the page unscrollable when the floating component is open.\n */\n lockScroll?: boolean;\n}\n\nconst DefaultFloatingComponent = forwardRef<\n HTMLDivElement,\n FloatingComponentProps\n>(function DefaultFloatingComponent(props, ref) {\n const {\n open,\n top,\n left,\n position,\n width: _width,\n height: _height,\n focusManagerProps,\n lockScroll,\n style: styleProp,\n ...rest\n } = props;\n const style = {\n ...styleProp,\n top,\n left,\n position,\n };\n\n const { themeNext } = useTheme();\n usePreventScroll({ isDisabled: !lockScroll || !open });\n\n const ChosenSaltProvider = themeNext ? SaltProviderNext : SaltProvider;\n\n if (focusManagerProps && open) {\n return (\n <FloatingPortal>\n <ChosenSaltProvider applyClassesTo=\"scope\">\n <FloatingFocusManager {...focusManagerProps}>\n <div style={style} {...rest} ref={ref} />\n </FloatingFocusManager>\n </ChosenSaltProvider>\n </FloatingPortal>\n );\n }\n\n return open ? (\n <FloatingPortal>\n <ChosenSaltProvider applyClassesTo=\"scope\">\n <div style={style} {...rest} ref={ref} />\n </ChosenSaltProvider>\n </FloatingPortal>\n ) : null;\n});\n\nexport interface FloatingComponentContextType {\n Component: typeof DefaultFloatingComponent;\n}\n\nconst FloatingComponentContext = createContext<FloatingComponentContextType>({\n Component: DefaultFloatingComponent,\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FloatingComponentContext.displayName = \"FloatingComponentContext\";\n}\n\nexport interface FloatingComponentProviderProps\n extends FloatingComponentContextType {\n children: ReactNode;\n}\n\nexport function FloatingComponentProvider(\n props: FloatingComponentProviderProps,\n) {\n const { Component, children } = props;\n const value = useMemo(() => ({ Component }), [Component]);\n\n return (\n <FloatingComponentContext.Provider value={value}>\n {children}\n </FloatingComponentContext.Provider>\n );\n}\n\nexport function useFloatingComponent() {\n return useContext(FloatingComponentContext);\n}\n\nexport interface UseFloatingUIProps\n extends Pick<\n UseFloatingOptions,\n | \"placement\"\n | \"strategy\"\n | \"open\"\n | \"onOpenChange\"\n | \"nodeId\"\n | \"rootContext\"\n > {\n /**\n * Function to update the default middleware used to extend or replace it\n */\n middleware?: Middleware[];\n}\n\ntype GetMiddleware = (middleware: Middleware[]) => Middleware[];\n\nconst defaultGetMiddleware: GetMiddleware = (defaultMiddleware) =>\n defaultMiddleware;\n\ninterface FloatingPlatformContextType {\n platform: Platform;\n middleware: GetMiddleware;\n animationFrame: boolean;\n}\n\nconst defaultFloatingPlaform: FloatingPlatformContextType = {\n platform,\n middleware: defaultGetMiddleware,\n animationFrame: false,\n};\n\nconst FloatingPlatformContext = createContext<FloatingPlatformContextType>(\n defaultFloatingPlaform,\n);\n\nexport interface FloatingPlatformProviderProps {\n platform?: Platform;\n middleware?: GetMiddleware;\n children: ReactNode;\n animationFrame?: boolean;\n}\n\nexport function FloatingPlatformProvider(props: FloatingPlatformProviderProps) {\n const {\n platform: platformProp,\n middleware,\n animationFrame,\n children,\n } = props;\n\n const floatingPlatformContextValue = useMemo<FloatingPlatformContextType>(\n () => ({\n platform: platformProp ?? platform,\n middleware: middleware ?? defaultGetMiddleware,\n animationFrame: animationFrame || false,\n }),\n [platformProp, middleware, animationFrame],\n );\n\n return (\n <FloatingPlatformContext.Provider value={floatingPlatformContextValue}>\n {children}\n </FloatingPlatformContext.Provider>\n );\n}\n\nexport function useFloatingPlatform() {\n return useContext(FloatingPlatformContext);\n}\n\nexport const DEFAULT_FLOATING_UI_MIDDLEWARE = [\n flip(),\n shift({ limiter: limitShift() }),\n];\n\ntype UseFloatingRefs = ReturnType<typeof useFloating>[\"refs\"];\n\nexport interface UseFloatingUIReturn extends ReturnType<typeof useFloating> {\n reference: UseFloatingRefs[\"setReference\"];\n floating: UseFloatingRefs[\"setFloating\"];\n}\n\nexport function useFloatingUI(props: UseFloatingUIProps): UseFloatingUIReturn {\n const {\n middleware = DEFAULT_FLOATING_UI_MIDDLEWARE,\n open = false,\n onOpenChange,\n ...other\n } = props;\n\n const handleOpenChange: UseFloatingUIProps[\"onOpenChange\"] = (\n open,\n boolean,\n reason,\n ) => {\n update();\n onOpenChange?.(open, boolean, reason);\n };\n\n const {\n platform: contextPlatform,\n middleware: contextMiddleware,\n animationFrame,\n } = useFloatingPlatform();\n\n const { refs, update, ...rest } = useFloating({\n ...other,\n middleware: contextMiddleware(middleware),\n open,\n onOpenChange: handleOpenChange,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, { animationFrame });\n\n return cleanup;\n },\n platform: contextPlatform,\n });\n\n return {\n reference: refs.setReference,\n floating: refs.setFloating,\n refs,\n update,\n ...rest,\n };\n}\n"],"names":["DefaultFloatingComponent","open"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForkRef.js","sources":["../src/utils/useForkRef.ts"],"sourcesContent":["import { type Ref, useMemo } from \"react\";\nimport { setRef } from \"./setRef\";\n\nexport function useForkRef<Instance>(\n refA: Ref<Instance> | null | undefined,\n refB: Ref<Instance> | null | undefined,\n): Ref<Instance> | null {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means React will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return useMemo(() => {\n if (refA == null && refB == null) {\n return () => null;\n }\n return (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,UAAA,CACd,MACA,IAAA,EACsB;AAMtB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,IAAA,IAAQ,IAAA,EAAM;AAChC,MAAA,OAAO,MAAM,IAAA;AAAA,IACf;AACA,IAAA,OAAO,CAAC,QAAA,KAAa;AACnB,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA;AACrB,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA;AAAA,IACvB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AACjB;;;;"}
1
+ {"version":3,"file":"useForkRef.js","sources":["../src/utils/useForkRef.ts"],"sourcesContent":["import { type Ref, useMemo } from \"react\";\nimport { setRef } from \"./setRef\";\n\nexport function useForkRef<Instance>(\n refA: Ref<Instance> | null | undefined,\n refB: Ref<Instance> | null | undefined,\n): Ref<Instance> | null {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means React will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return useMemo(() => {\n if (refA == null && refB == null) {\n return () => null;\n }\n return (refValue: Instance | null) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,UAAA,CACd,MACA,IAAA,EACsB;AAMtB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,IAAA,IAAQ,IAAA,EAAM;AAChC,MAAA,OAAO,MAAM,IAAA;AAAA,IACf;AACA,IAAA,OAAO,CAAC,QAAA,KAA8B;AACpC,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA;AACrB,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA;AAAA,IACvB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AACjB;;;;"}
@@ -37,6 +37,8 @@ export interface DialogProps extends HTMLAttributes<HTMLDivElement> {
37
37
  * */
38
38
  disableScrim?: boolean;
39
39
  /**
40
+ * @deprecated IDs are now auto-generated internally for proper ARIA labeling.
41
+ *
40
42
  * Optional id prop
41
43
  * Used for accessibility purposes to announce the title and subtitle when using a screen reader
42
44
  * */
@@ -1,9 +1,10 @@
1
1
  import type { ValidationStatus } from "../status-indicator";
2
- export declare const DialogContext: import("react").Context<{
2
+ export interface DialogContextValue {
3
3
  status?: ValidationStatus;
4
- id: string | undefined;
5
- }>;
6
- export declare const useDialogContext: () => {
7
- status?: ValidationStatus;
8
- id: string | undefined;
9
- };
4
+ id?: string;
5
+ setId?: (id: string) => void;
6
+ dialogId?: string;
7
+ setDialogId?: (id: string) => void;
8
+ }
9
+ export declare const DialogContext: import("react").Context<DialogContextValue>;
10
+ export declare const useDialogContext: () => DialogContextValue;
@@ -39,7 +39,7 @@ export interface DropdownProps<Item = string> extends Omit<ComponentPropsWithout
39
39
  /**
40
40
  * Styling variant. Defaults to "primary".
41
41
  */
42
- variant?: "primary" | "secondary";
42
+ variant?: "primary" | "secondary" | "tertiary";
43
43
  /**
44
44
  * The content of the dropdown shown in the button. The component will be controlled if this prop is provided.
45
45
  */
@@ -25,6 +25,7 @@ export * from "./grid-item";
25
25
  export * from "./grid-layout";
26
26
  export * from "./input";
27
27
  export * from "./interactable-card";
28
+ export * from "./kbd";
28
29
  export * from "./link";
29
30
  export * from "./link-card";
30
31
  export * from "./list-box";
@@ -65,6 +66,7 @@ export * from "./theme";
65
66
  export * from "./toast";
66
67
  export * from "./toggle-button";
67
68
  export * from "./toggle-button-group";
69
+ export * from "./toggletip";
68
70
  export * from "./tooltip";
69
71
  export * from "./types";
70
72
  export * from "./utils";
@@ -38,7 +38,7 @@ export interface InputProps extends Omit<ComponentPropsWithoutRef<"div">, "defau
38
38
  /**
39
39
  * Styling variant. Defaults to "primary".
40
40
  */
41
- variant?: "primary" | "secondary";
41
+ variant?: "primary" | "secondary" | "tertiary";
42
42
  /** Styling variant with full border. Defaults to false
43
43
  */
44
44
  bordered?: boolean;
@@ -0,0 +1,8 @@
1
+ import { type ComponentPropsWithoutRef } from "react";
2
+ export interface KbdProps extends ComponentPropsWithoutRef<"kbd"> {
3
+ /**
4
+ * The variant of the kbd. Defaults to `"primary"`.
5
+ */
6
+ variant?: "primary" | "secondary" | "tertiary";
7
+ }
8
+ export declare const Kbd: import("react").ForwardRefExoticComponent<KbdProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export * from "./Kbd";
@@ -37,6 +37,6 @@ export interface MultilineInputProps extends Omit<ComponentPropsWithoutRef<"div"
37
37
  /**
38
38
  * Styling variant. Defaults to "primary".
39
39
  */
40
- variant?: "primary" | "secondary";
40
+ variant?: "primary" | "secondary" | "tertiary";
41
41
  }
42
42
  export declare const MultilineInput: import("react").ForwardRefExoticComponent<MultilineInputProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -140,7 +140,7 @@ export interface NumberInputProps extends Omit<ComponentPropsWithoutRef<"div">,
140
140
  * Styling variant.
141
141
  * @default "primary"
142
142
  */
143
- variant?: "primary" | "secondary";
143
+ variant?: "primary" | "secondary" | "tertiary";
144
144
  /**
145
145
  * Value of the `NumberInput`, to be used when in a controlled state.
146
146
  */
@@ -43,7 +43,7 @@ export interface PillInputProps extends Omit<ComponentPropsWithoutRef<"div">, "d
43
43
  /**
44
44
  * Styling variant. Defaults to "primary".
45
45
  */
46
- variant?: "primary" | "secondary";
46
+ variant?: "primary" | "secondary" | "tertiary";
47
47
  hidePillClose?: boolean;
48
48
  truncate?: boolean;
49
49
  /** Styling variant with full border. Defaults to false
@@ -0,0 +1,14 @@
1
+ import { type ReactNode } from "react";
2
+ export interface ToggletipProps {
3
+ children?: ReactNode;
4
+ /**
5
+ * Display or hide the component.
6
+ */
7
+ open?: boolean;
8
+ /**
9
+ * Callback function triggered when open state changes.
10
+ */
11
+ onOpenChange?: (open: boolean) => void;
12
+ placement?: "top" | "bottom" | "left" | "right";
13
+ }
14
+ export declare const Toggletip: ({ children, open, onOpenChange, placement, }: ToggletipProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import type { FloatingRootContext, Placement } from "@floating-ui/react";
2
+ import { type Dispatch, type HTMLProps, type SetStateAction } from "react";
3
+ export interface ToggletipContextValue {
4
+ openState: boolean;
5
+ floatingRootContext: FloatingRootContext;
6
+ placement: Placement;
7
+ floatingContent: HTMLDivElement | null;
8
+ getFloatingProps: (userProps?: HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
9
+ getReferenceProps: (userProps?: HTMLProps<Element> | undefined) => Record<string, unknown>;
10
+ setFloating: Dispatch<SetStateAction<HTMLDivElement | null>>;
11
+ setFloatingContent: Dispatch<SetStateAction<HTMLDivElement | null>>;
12
+ setReference: Dispatch<SetStateAction<HTMLButtonElement | null>>;
13
+ setTriggerId: Dispatch<SetStateAction<string | undefined>>;
14
+ triggerId: string | undefined;
15
+ }
16
+ export declare const ToggletipContext: import("react").Context<ToggletipContextValue>;
17
+ export declare function useToggletipContext(): ToggletipContextValue;
@@ -0,0 +1,8 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ export interface ToggletipPanelProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * The content of Toggletip Panel
5
+ */
6
+ children?: ReactNode;
7
+ }
8
+ export declare const ToggletipPanel: import("react").ForwardRefExoticComponent<ToggletipPanelProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ export interface ToggletipTriggerProps extends ComponentPropsWithoutRef<"button"> {
3
+ children?: ReactNode;
4
+ }
5
+ export declare const ToggletipTrigger: import("react").ForwardRefExoticComponent<ToggletipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,3 @@
1
+ export * from "./Toggletip";
2
+ export * from "./ToggletipPanel";
3
+ export * from "./ToggletipTrigger";
@@ -35,7 +35,7 @@ export interface FloatingComponentProviderProps extends FloatingComponentContext
35
35
  }
36
36
  export declare function FloatingComponentProvider(props: FloatingComponentProviderProps): import("react/jsx-runtime").JSX.Element;
37
37
  export declare function useFloatingComponent(): FloatingComponentContextType;
38
- export interface UseFloatingUIProps extends Pick<UseFloatingOptions, "placement" | "strategy" | "open" | "onOpenChange" | "nodeId"> {
38
+ export interface UseFloatingUIProps extends Pick<UseFloatingOptions, "placement" | "strategy" | "open" | "onOpenChange" | "nodeId" | "rootContext"> {
39
39
  /**
40
40
  * Function to update the default middleware used to extend or replace it
41
41
  */