@salt-ds/core 1.18.0 → 1.19.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 (96) hide show
  1. package/css/salt-core.css +185 -10
  2. package/dist-cjs/avatar/Avatar.css.js +1 -1
  3. package/dist-cjs/badge/Badge.css.js +1 -1
  4. package/dist-cjs/banner/Banner.css.js +1 -1
  5. package/dist-cjs/button/Button.css.js +1 -1
  6. package/dist-cjs/card/Card.css.js +1 -1
  7. package/dist-cjs/card/InteractableCard.css.js +1 -1
  8. package/dist-cjs/checkbox/Checkbox.css.js +1 -1
  9. package/dist-cjs/checkbox/CheckboxIcon.css.js +1 -1
  10. package/dist-cjs/drawer/Drawer.css.js +6 -0
  11. package/dist-cjs/drawer/Drawer.css.js.map +1 -0
  12. package/dist-cjs/drawer/Drawer.js +110 -0
  13. package/dist-cjs/drawer/Drawer.js.map +1 -0
  14. package/dist-cjs/drawer/DrawerCloseButton.css.js +6 -0
  15. package/dist-cjs/drawer/DrawerCloseButton.css.js.map +1 -0
  16. package/dist-cjs/drawer/DrawerCloseButton.js +49 -0
  17. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -0
  18. package/dist-cjs/file-drop-zone/FileDropZone.css.js +1 -1
  19. package/dist-cjs/flex-layout/FlexLayout.css.js +1 -1
  20. package/dist-cjs/index.js +9 -0
  21. package/dist-cjs/index.js.map +1 -1
  22. package/dist-cjs/input/Input.css.js +1 -1
  23. package/dist-cjs/link/Link.css.js +1 -1
  24. package/dist-cjs/link-card/LinkCard.css.js +6 -0
  25. package/dist-cjs/link-card/LinkCard.css.js.map +1 -0
  26. package/dist-cjs/link-card/LinkCard.js +54 -0
  27. package/dist-cjs/link-card/LinkCard.js.map +1 -0
  28. package/dist-cjs/panel/Panel.css.js +1 -1
  29. package/dist-cjs/pill/Pill.css.js +1 -1
  30. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  31. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  32. package/dist-cjs/radio-button/RadioButton.css.js +1 -1
  33. package/dist-cjs/salt-provider/SaltProvider.js +80 -14
  34. package/dist-cjs/salt-provider/SaltProvider.js.map +1 -1
  35. package/dist-cjs/switch/Switch.css.js +1 -1
  36. package/dist-cjs/theme/Corner.js +8 -0
  37. package/dist-cjs/theme/Corner.js.map +1 -0
  38. package/dist-cjs/toast/Toast.css.js +1 -1
  39. package/dist-cjs/toggle-button/ToggleButton.css.js +1 -1
  40. package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js +1 -1
  41. package/dist-cjs/tooltip/Tooltip.css.js +1 -1
  42. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js +4 -2
  43. package/dist-cjs/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  44. package/dist-es/avatar/Avatar.css.js +1 -1
  45. package/dist-es/badge/Badge.css.js +1 -1
  46. package/dist-es/banner/Banner.css.js +1 -1
  47. package/dist-es/button/Button.css.js +1 -1
  48. package/dist-es/card/Card.css.js +1 -1
  49. package/dist-es/card/InteractableCard.css.js +1 -1
  50. package/dist-es/checkbox/Checkbox.css.js +1 -1
  51. package/dist-es/checkbox/CheckboxIcon.css.js +1 -1
  52. package/dist-es/drawer/Drawer.css.js +4 -0
  53. package/dist-es/drawer/Drawer.css.js.map +1 -0
  54. package/dist-es/drawer/Drawer.js +106 -0
  55. package/dist-es/drawer/Drawer.js.map +1 -0
  56. package/dist-es/drawer/DrawerCloseButton.css.js +4 -0
  57. package/dist-es/drawer/DrawerCloseButton.css.js.map +1 -0
  58. package/dist-es/drawer/DrawerCloseButton.js +41 -0
  59. package/dist-es/drawer/DrawerCloseButton.js.map +1 -0
  60. package/dist-es/file-drop-zone/FileDropZone.css.js +1 -1
  61. package/dist-es/flex-layout/FlexLayout.css.js +1 -1
  62. package/dist-es/index.js +5 -1
  63. package/dist-es/index.js.map +1 -1
  64. package/dist-es/input/Input.css.js +1 -1
  65. package/dist-es/link/Link.css.js +1 -1
  66. package/dist-es/link-card/LinkCard.css.js +4 -0
  67. package/dist-es/link-card/LinkCard.css.js.map +1 -0
  68. package/dist-es/link-card/LinkCard.js +50 -0
  69. package/dist-es/link-card/LinkCard.js.map +1 -0
  70. package/dist-es/panel/Panel.css.js +1 -1
  71. package/dist-es/pill/Pill.css.js +1 -1
  72. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  73. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  74. package/dist-es/radio-button/RadioButton.css.js +1 -1
  75. package/dist-es/salt-provider/SaltProvider.js +80 -15
  76. package/dist-es/salt-provider/SaltProvider.js.map +1 -1
  77. package/dist-es/switch/Switch.css.js +1 -1
  78. package/dist-es/theme/Corner.js +4 -0
  79. package/dist-es/theme/Corner.js.map +1 -0
  80. package/dist-es/toast/Toast.css.js +1 -1
  81. package/dist-es/toggle-button/ToggleButton.css.js +1 -1
  82. package/dist-es/toggle-button-group/ToggleButtonGroup.css.js +1 -1
  83. package/dist-es/tooltip/Tooltip.css.js +1 -1
  84. package/dist-es/utils/useFloatingUI/useFloatingUI.js +5 -3
  85. package/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -1
  86. package/dist-types/drawer/Drawer.d.ts +28 -0
  87. package/dist-types/drawer/DrawerCloseButton.d.ts +2 -0
  88. package/dist-types/drawer/index.d.ts +2 -0
  89. package/dist-types/index.d.ts +2 -0
  90. package/dist-types/link-card/LinkCard.d.ts +12 -0
  91. package/dist-types/link-card/index.d.ts +1 -0
  92. package/dist-types/salt-provider/SaltProvider.d.ts +9 -0
  93. package/dist-types/theme/Corner.d.ts +2 -0
  94. package/dist-types/theme/index.d.ts +1 -0
  95. package/dist-types/utils/useFloatingUI/useFloatingUI.d.ts +2 -3
  96. package/package.json +1 -1
@@ -0,0 +1,106 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { forwardRef, useState, useEffect } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { useInteractions, useClick, useDismiss } from '@floating-ui/react';
5
+ import { makePrefixer } from '../utils/makePrefixer.js';
6
+ import { useFloatingComponent, useFloatingUI } from '../utils/useFloatingUI/useFloatingUI.js';
7
+ import { useForkRef } from '../utils/useForkRef.js';
8
+ import '../utils/useId.js';
9
+ import '../salt-provider/SaltProvider.js';
10
+ import '../viewport/ViewportProvider.js';
11
+ import { Scrim } from '../scrim/Scrim.js';
12
+ import { useWindow } from '@salt-ds/window';
13
+ import { useComponentCssInjection } from '@salt-ds/styles';
14
+ import css_248z from './Drawer.css.js';
15
+
16
+ const ConditionalScrimWrapper = ({
17
+ condition,
18
+ children
19
+ }) => {
20
+ return condition ? /* @__PURE__ */ jsxs(Scrim, {
21
+ fixed: true,
22
+ children: [
23
+ " ",
24
+ children,
25
+ " "
26
+ ]
27
+ }) : /* @__PURE__ */ jsxs(Fragment, {
28
+ children: [
29
+ children,
30
+ " "
31
+ ]
32
+ });
33
+ };
34
+ const withBaseName = makePrefixer("saltDrawer");
35
+ const Drawer = forwardRef(function Drawer2(props, ref) {
36
+ var _a, _b;
37
+ const {
38
+ children,
39
+ className,
40
+ position = "left",
41
+ open = false,
42
+ onOpenChange,
43
+ variant = "primary",
44
+ disableDismiss,
45
+ disableScrim,
46
+ ...rest
47
+ } = props;
48
+ const targetWindow = useWindow();
49
+ useComponentCssInjection({
50
+ testId: "salt-drawer",
51
+ css: css_248z,
52
+ window: targetWindow
53
+ });
54
+ const [showComponent, setShowComponent] = useState(false);
55
+ const { Component: FloatingComponent } = useFloatingComponent();
56
+ const { context, floating, elements } = useFloatingUI({
57
+ open,
58
+ onOpenChange
59
+ });
60
+ const { getFloatingProps } = useInteractions([
61
+ useClick(context),
62
+ useDismiss(context, { enabled: !disableDismiss })
63
+ ]);
64
+ const handleRef = useForkRef(floating, ref);
65
+ useEffect(() => {
66
+ if (open && !showComponent) {
67
+ setShowComponent(true);
68
+ }
69
+ if (!open && showComponent) {
70
+ const animate = setTimeout(() => {
71
+ setShowComponent(false);
72
+ }, 300);
73
+ return () => clearTimeout(animate);
74
+ }
75
+ }, [open, showComponent, setShowComponent]);
76
+ return /* @__PURE__ */ jsx(ConditionalScrimWrapper, {
77
+ condition: open && !disableScrim,
78
+ children: /* @__PURE__ */ jsx(FloatingComponent, {
79
+ open: showComponent,
80
+ ref: handleRef,
81
+ role: "dialog",
82
+ width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
83
+ height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
84
+ "aria-modal": "true",
85
+ focusManagerProps: {
86
+ context
87
+ },
88
+ className: clsx(
89
+ withBaseName(),
90
+ withBaseName(position),
91
+ {
92
+ [withBaseName("enterAnimation")]: open,
93
+ [withBaseName("exitAnimation")]: !open,
94
+ [withBaseName(variant)]: variant
95
+ },
96
+ className
97
+ ),
98
+ ...getFloatingProps(),
99
+ ...rest,
100
+ children
101
+ })
102
+ });
103
+ });
104
+
105
+ export { Drawer };
106
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sources":["../src/drawer/Drawer.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n PropsWithChildren,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { useClick, useDismiss, useInteractions } from \"@floating-ui/react\";\nimport {\n makePrefixer,\n useFloatingComponent,\n useFloatingUI,\n useForkRef,\n} from \"../utils\";\nimport { Scrim } from \"../scrim\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport drawerCss from \"./Drawer.css\";\n\ninterface ConditionalScrimWrapperProps extends PropsWithChildren {\n condition: boolean;\n}\n\nconst ConditionalScrimWrapper = ({\n condition,\n children,\n}: ConditionalScrimWrapperProps) => {\n return condition ? <Scrim fixed> {children} </Scrim> : <>{children} </>;\n};\n\nexport interface DrawerProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Defines the drawer position within the screen. Defaults to `left`.\n */\n position?: \"left\" | \"top\" | \"right\" | \"bottom\";\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (newOpen: boolean) => void;\n /**\n * Change background color palette\n */\n variant?: \"primary\" | \"secondary\";\n /**\n * Prevent the dialog closing on click away\n * */\n disableDismiss?: boolean;\n /**\n * Prevent Scrim from rendering\n * */\n disableScrim?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltDrawer\");\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(function Drawer(\n props,\n ref\n) {\n const {\n children,\n className,\n position = \"left\",\n open = false,\n onOpenChange,\n variant = \"primary\",\n disableDismiss,\n disableScrim,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-drawer\",\n css: drawerCss,\n window: targetWindow,\n });\n\n const [showComponent, setShowComponent] = useState(false);\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const { context, floating, elements } = useFloatingUI({\n open,\n onOpenChange,\n });\n\n const { getFloatingProps } = useInteractions([\n useClick(context),\n useDismiss(context, { enabled: !disableDismiss }),\n ]);\n\n const handleRef = useForkRef<HTMLDivElement>(floating, ref);\n\n useEffect(() => {\n if (open && !showComponent) {\n setShowComponent(true);\n }\n\n if (!open && showComponent) {\n const animate = setTimeout(() => {\n setShowComponent(false);\n }, 300); // var(--salt-duration-perceptible)\n return () => clearTimeout(animate);\n }\n }, [open, showComponent, setShowComponent]);\n\n return (\n <ConditionalScrimWrapper condition={open && !disableScrim}>\n <FloatingComponent\n open={showComponent}\n ref={handleRef}\n role={\"dialog\"}\n width={elements.floating?.offsetWidth}\n height={elements.floating?.offsetHeight}\n aria-modal=\"true\"\n focusManagerProps={{\n context: context,\n }}\n className={clsx(\n withBaseName(),\n withBaseName(position),\n {\n [withBaseName(\"enterAnimation\")]: open,\n [withBaseName(\"exitAnimation\")]: !open,\n [withBaseName(variant)]: variant,\n },\n className\n )}\n {...getFloatingProps()}\n {...rest}\n >\n {children}\n </FloatingComponent>\n </ConditionalScrimWrapper>\n );\n});\n"],"names":["Drawer","drawerCss"],"mappings":";;;;;;;;;;;;;;;AAwBA,MAAM,0BAA0B,CAAC;AAAA,EAC/B,SAAA;AAAA,EACA,QAAA;AACF,CAAoC,KAAA;AAClC,EAAA,OAAO,4BAAa,IAAA,CAAA,KAAA,EAAA;AAAA,IAAM,KAAK,EAAA,IAAA;AAAA,IAAC,QAAA,EAAA;AAAA,MAAA,GAAA;AAAA,MAAE,QAAA;AAAA,MAAS,GAAA;AAAA,KAAA;AAAA,GAAC,CAAW,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,IAAG,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MAAS,GAAA;AAAA,KAAA;AAAA,GAAC,CAAA,CAAA;AACtE,CAAA,CAAA;AA6BA,MAAM,YAAA,GAAe,aAAa,YAAY,CAAA,CAAA;AAEvC,MAAM,MAAS,GAAA,UAAA,CAAwC,SAASA,OAAAA,CACrE,OACA,GACA,EAAA;AA/DF,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAgEE,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAW,GAAA,MAAA;AAAA,IACX,IAAO,GAAA,KAAA;AAAA,IACP,YAAA;AAAA,IACA,OAAU,GAAA,SAAA;AAAA,IACV,cAAA;AAAA,IACA,YAAA;AAAA,IACG,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,aAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,SAAA,EAAW,iBAAkB,EAAA,GAAI,oBAAqB,EAAA,CAAA;AAE9D,EAAA,MAAM,EAAE,OAAA,EAAS,QAAU,EAAA,QAAA,KAAa,aAAc,CAAA;AAAA,IACpD,IAAA;AAAA,IACA,YAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,eAAgB,CAAA;AAAA,IAC3C,SAAS,OAAO,CAAA;AAAA,IAChB,WAAW,OAAS,EAAA,EAAE,OAAS,EAAA,CAAC,gBAAgB,CAAA;AAAA,GACjD,CAAA,CAAA;AAED,EAAM,MAAA,SAAA,GAAY,UAA2B,CAAA,QAAA,EAAU,GAAG,CAAA,CAAA;AAE1D,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,IAAA,IAAQ,CAAC,aAAe,EAAA;AAC1B,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAEA,IAAI,IAAA,CAAC,QAAQ,aAAe,EAAA;AAC1B,MAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAC/B,QAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,SACrB,GAAG,CAAA,CAAA;AACN,MAAO,OAAA,MAAM,aAAa,OAAO,CAAA,CAAA;AAAA,KACnC;AAAA,GACC,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,gBAAgB,CAAC,CAAA,CAAA;AAE1C,EAAA,uBACG,GAAA,CAAA,uBAAA,EAAA;AAAA,IAAwB,SAAA,EAAW,QAAQ,CAAC,YAAA;AAAA,IAC3C,QAAC,kBAAA,GAAA,CAAA,iBAAA,EAAA;AAAA,MACC,IAAM,EAAA,aAAA;AAAA,MACN,GAAK,EAAA,SAAA;AAAA,MACL,IAAM,EAAA,QAAA;AAAA,MACN,KAAA,EAAA,CAAO,EAAS,GAAA,QAAA,CAAA,QAAA,KAAT,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA;AAAA,MAC1B,MAAA,EAAA,CAAQ,EAAS,GAAA,QAAA,CAAA,QAAA,KAAT,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,MAC3B,YAAW,EAAA,MAAA;AAAA,MACX,iBAAmB,EAAA;AAAA,QACjB,OAAA;AAAA,OACF;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,QAAQ,CAAA;AAAA,QACrB;AAAA,UACE,CAAC,YAAa,CAAA,gBAAgB,CAAI,GAAA,IAAA;AAAA,UAClC,CAAC,YAAA,CAAa,eAAe,CAAA,GAAI,CAAC,IAAA;AAAA,UAClC,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,OAAA;AAAA,SAC3B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,gBAAiB,EAAA;AAAA,MACpB,GAAG,IAAA;AAAA,MAEH,QAAA;AAAA,KACH,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltDrawerCloseButton-container {\n position: relative;\n display: flex;\n justify-content: flex-end;\n}\n\n.saltButton-secondary.saltDrawerCloseButton {\n position: fixed;\n margin-top: calc(var(--salt-spacing-300) * -1);\n margin-right: calc(var(--salt-spacing-300) * -1);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=DrawerCloseButton.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerCloseButton.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,41 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import clsx from 'clsx';
4
+ import { Button } from '../button/Button.js';
5
+ import { makePrefixer } from '../utils/makePrefixer.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 { useWindow } from '@salt-ds/window';
11
+ import { useComponentCssInjection } from '@salt-ds/styles';
12
+ import { CloseIcon } from '@salt-ds/icons';
13
+ import css_248z from './DrawerCloseButton.css.js';
14
+
15
+ const withBaseName = makePrefixer("saltDrawerCloseButton");
16
+ const DrawerCloseButton = forwardRef(
17
+ function DrawerCloseButton2({ className, ...rest }, ref) {
18
+ const targetWindow = useWindow();
19
+ useComponentCssInjection({
20
+ testId: "salt-drawer-close-button",
21
+ css: css_248z,
22
+ window: targetWindow
23
+ });
24
+ return /* @__PURE__ */ jsx("div", {
25
+ className: withBaseName("container"),
26
+ children: /* @__PURE__ */ jsx(Button, {
27
+ ref,
28
+ "aria-label": "Close Drawer",
29
+ variant: "secondary",
30
+ className: clsx(withBaseName(), className),
31
+ ...rest,
32
+ children: /* @__PURE__ */ jsx(CloseIcon, {
33
+ "aria-hidden": true
34
+ })
35
+ })
36
+ });
37
+ }
38
+ );
39
+
40
+ export { DrawerCloseButton };
41
+ //# sourceMappingURL=DrawerCloseButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerCloseButton.js","sources":["../src/drawer/DrawerCloseButton.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Button, ButtonProps } from \"../button\";\nimport { makePrefixer } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { CloseIcon } from \"@salt-ds/icons\";\n\nimport drawerCloseButtonCss from \"./DrawerCloseButton.css\";\n\nconst withBaseName = makePrefixer(\"saltDrawerCloseButton\");\n\nexport const DrawerCloseButton = forwardRef<HTMLButtonElement, ButtonProps>(\n function DrawerCloseButton({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-drawer-close-button\",\n css: drawerCloseButtonCss,\n window: targetWindow,\n });\n\n return (\n <div className={withBaseName(\"container\")}>\n <Button\n ref={ref}\n aria-label=\"Close Drawer\"\n variant=\"secondary\"\n className={clsx(withBaseName(), className)}\n {...rest}\n >\n <CloseIcon aria-hidden />\n </Button>\n </div>\n );\n }\n);\n"],"names":["DrawerCloseButton","drawerCloseButtonCss"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,uBAAuB,CAAA,CAAA;AAElD,MAAM,iBAAoB,GAAA,UAAA;AAAA,EAC/B,SAASA,kBAAkB,CAAA,EAAE,SAAc,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtD,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,0BAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,MACtC,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAW,EAAA,cAAA;AAAA,QACX,OAAQ,EAAA,WAAA;AAAA,QACR,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACxC,GAAG,IAAA;AAAA,QAEJ,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA;AAAA,UAAU,aAAW,EAAA,IAAA;AAAA,SAAC,CAAA;AAAA,OACzB,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltFileDropZone {\n color: var(--saltFileDropZone-text-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n background: var(--saltFileDropZone-background, var(--salt-container-primary-background));\n text-align: center;\n align-items: center;\n justify-content: center;\n border: var(--saltFileDropZone-border, var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor));\n flex-direction: column;\n padding: var(--salt-spacing-200);\n gap: var(--salt-spacing-200);\n width: 100%;\n font-size: var(--saltFileDropZone-fontSize, var(--salt-text-fontSize));\n font-family: var(--saltFileDropZone-fontFamily, var(--salt-text-fontFamily));\n line-height: var(--saltFileDropZone-lineHeight, var(--salt-text-lineHeight));\n}\n\n.saltFileDropZone-active {\n background: var(--salt-target-background-hover);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle-hover) var(--salt-target-borderColor-hover);\n}\n\n/* Styles applied if `status=\"error\" */\n.saltFileDropZone-error {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-error-borderColor);\n}\n\n/* Styles applied if `status=\"success\" */\n.saltFileDropZone-success {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-success-borderColor);\n}\n\n.saltFileDropZone .input-hidden {\n display: none;\n}\n\n/* Styles applied if `disabled={true}` */\n.saltFileDropZone-disabled {\n background: var(--salt-container-primary-background-disabled);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor-disabled);\n cursor: var(--salt-target-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
1
+ var css_248z = ".saltFileDropZone {\n color: var(--saltFileDropZone-text-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n background: var(--saltFileDropZone-background, var(--salt-container-primary-background));\n text-align: center;\n align-items: center;\n justify-content: center;\n border: var(--saltFileDropZone-border, var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor));\n border-radius: var(--saltFileDropZone-borderRadius, var(--salt-palette-corner, 0));\n flex-direction: column;\n padding: var(--salt-spacing-200);\n gap: var(--salt-spacing-200);\n width: 100%;\n font-size: var(--saltFileDropZone-fontSize, var(--salt-text-fontSize));\n font-family: var(--saltFileDropZone-fontFamily, var(--salt-text-fontFamily));\n line-height: var(--saltFileDropZone-lineHeight, var(--salt-text-lineHeight));\n box-sizing: border-box;\n}\n\n.saltFileDropZone-active {\n background: var(--salt-target-background-hover);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle-hover) var(--salt-target-borderColor-hover);\n}\n\n/* Styles applied if `status=\"error\" */\n.saltFileDropZone-error {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-error-borderColor);\n}\n\n/* Styles applied if `status=\"success\" */\n.saltFileDropZone-success {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-success-borderColor);\n}\n\n.saltFileDropZone .input-hidden {\n display: none;\n}\n\n/* Styles applied if `disabled={true}` */\n.saltFileDropZone-disabled {\n background: var(--salt-container-primary-background-disabled);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor-disabled);\n cursor: var(--salt-target-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=FileDropZone.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Default variables applied to the root element */\n.saltFlexLayout {\n --flexLayout-gap-multiplier: var(--flexLayout-gap-density-multiplier, 3);\n --flexLayout-layout-display: flex;\n --flexLayout-direction: row;\n --flexLayout-wrap: nowrap;\n --flexLayout-justify: flex-start;\n --flexLayout-align: stretch;\n --flexLayout-separator: var(--salt-size-border);\n --flexLayout-gap: calc(var(--salt-size-unit) * var(--flexLayout-gap-multiplier));\n}\n\n/* Style applied to the root element */\n.saltFlexLayout {\n gap: var(--flexLayout-gap);\n display: var(--flexLayout-layout-display);\n flex-direction: var(--flexLayout-direction);\n flex-wrap: var(--flexLayout-wrap);\n justify-content: var(--flexLayout-justify);\n align-items: var(--flexLayout-align);\n}\n\n.saltFlexLayout-separator {\n gap: calc(var(--flexLayout-gap) * 2);\n}\n\n.saltFlexLayout-separator > * {\n position: relative;\n}\n.saltFlexLayout-separator > *:not(:last-child)::after {\n position: absolute;\n display: block;\n content: \"\";\n background-color: var(--salt-separable-secondary-borderColor);\n}\n\n/* Row separator */\n\n.saltFlexLayout-separator-row > *:not(:last-child)::after {\n height: 100%;\n}\n\n.saltFlexLayout-separator-row > *:not(:last-child)::after {\n width: var(--flexLayout-separator);\n top: 0;\n}\n.saltFlexLayout-separator-row-start > *:not(:last-child)::after {\n right: 0;\n}\n.saltFlexLayout-separator-row-center > *:not(:last-child)::after {\n right: calc(var(--flexLayout-gap) * -1);\n}\n.saltFlexLayout-separator-row-end > *:not(:last-child)::after {\n right: calc(var(--flexLayout-gap) * -2);\n}\n\n/* Column separator */\n.saltFlexLayout-separator-column > *:not(:last-child)::after {\n width: 100%;\n}\n\n.saltFlexLayout-separator-column > *:not(:last-child)::after {\n height: var(--flexLayout-separator);\n left: 0;\n width: 100%;\n}\n.saltFlexLayout-separator-column-start > *:not(:last-child)::after {\n bottom: 0;\n}\n.saltFlexLayout-separator-column-center > *:not(:last-child)::after {\n bottom: calc(var(--flexLayout-gap) * -1);\n}\n.saltFlexLayout-separator-column-end > *:not(:last-child)::after {\n bottom: calc(var(--flexLayout-gap) * -2);\n}\n";
1
+ var css_248z = "/* Default variables applied to the root element */\n.saltFlexLayout {\n --flexLayout-gap-multiplier: var(--flexLayout-gap-density-multiplier, 3);\n --flexLayout-layout-display: flex;\n --flexLayout-direction: row;\n --flexLayout-wrap: nowrap;\n --flexLayout-justify: flex-start;\n --flexLayout-align: stretch;\n --flexLayout-separator: var(--salt-size-border);\n --flexLayout-gap: calc(var(--salt-size-unit) * var(--flexLayout-gap-multiplier));\n}\n\n/* Style applied to the root element */\n.saltFlexLayout {\n gap: var(--flexLayout-gap);\n display: var(--flexLayout-layout-display);\n flex-direction: var(--flexLayout-direction);\n flex-wrap: var(--flexLayout-wrap);\n justify-content: var(--flexLayout-justify);\n align-items: var(--flexLayout-align);\n box-sizing: border-box;\n}\n\n.saltFlexLayout-separator {\n gap: calc(var(--flexLayout-gap) * 2);\n}\n\n.saltFlexLayout-separator > * {\n position: relative;\n}\n.saltFlexLayout-separator > *:not(:last-child)::after {\n position: absolute;\n display: block;\n content: \"\";\n background-color: var(--salt-separable-secondary-borderColor);\n}\n\n/* Row separator */\n\n.saltFlexLayout-separator-row > *:not(:last-child)::after {\n height: 100%;\n}\n\n.saltFlexLayout-separator-row > *:not(:last-child)::after {\n width: var(--flexLayout-separator);\n top: 0;\n}\n.saltFlexLayout-separator-row-start > *:not(:last-child)::after {\n right: 0;\n}\n.saltFlexLayout-separator-row-center > *:not(:last-child)::after {\n right: calc(var(--flexLayout-gap) * -1);\n}\n.saltFlexLayout-separator-row-end > *:not(:last-child)::after {\n right: calc(var(--flexLayout-gap) * -2);\n}\n\n/* Column separator */\n.saltFlexLayout-separator-column > *:not(:last-child)::after {\n width: 100%;\n}\n\n.saltFlexLayout-separator-column > *:not(:last-child)::after {\n height: var(--flexLayout-separator);\n left: 0;\n width: 100%;\n}\n.saltFlexLayout-separator-column-start > *:not(:last-child)::after {\n bottom: 0;\n}\n.saltFlexLayout-separator-column-center > *:not(:last-child)::after {\n bottom: calc(var(--flexLayout-gap) * -1);\n}\n.saltFlexLayout-separator-column-end > *:not(:last-child)::after {\n bottom: calc(var(--flexLayout-gap) * -2);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=FlexLayout.css.js.map
package/dist-es/index.js CHANGED
@@ -22,6 +22,8 @@ export { InteractableCard } from './card/InteractableCard.js';
22
22
  export { Checkbox } from './checkbox/Checkbox.js';
23
23
  export { CheckboxGroup } from './checkbox/CheckboxGroup.js';
24
24
  export { CheckboxIcon } from './checkbox/CheckboxIcon.js';
25
+ export { Drawer } from './drawer/Drawer.js';
26
+ export { DrawerCloseButton } from './drawer/DrawerCloseButton.js';
25
27
  export { FileDropZone } from './file-drop-zone/FileDropZone.js';
26
28
  export { FileDropZoneIcon } from './file-drop-zone/FileDropZoneIcon.js';
27
29
  export { FileDropZoneTrigger } from './file-drop-zone/FileDropZoneTrigger.js';
@@ -37,6 +39,7 @@ export { GRID_ALIGNMENT_BASE, GridItem } from './grid-item/GridItem.js';
37
39
  export { GridLayout } from './grid-layout/GridLayout.js';
38
40
  export { Input } from './input/Input.js';
39
41
  export { Link } from './link/Link.js';
42
+ export { LinkCard } from './link-card/LinkCard.js';
40
43
  export { MultilineInput } from './multiline-input/MultilineInput.js';
41
44
  export { NavigationItem } from './navigation-item/NavigationItem.js';
42
45
  export { Pagination } from './pagination/Pagination.js';
@@ -66,9 +69,10 @@ export { TextAction } from './text/TextAction.js';
66
69
  export { DensityValues } from './theme/Density.js';
67
70
  export { getCharacteristicValue } from './theme/Theme.js';
68
71
  export { ModeValues } from './theme/Mode.js';
72
+ export { UNSTABLE_CornerValues } from './theme/Corner.js';
69
73
  export { Toast } from './toast/Toast.js';
70
74
  export { ToastContent } from './toast/ToastContent.js';
71
- export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, ThemeContext, useBreakpoints, useDensity, useTheme } from './salt-provider/SaltProvider.js';
75
+ export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, ThemeContext, UNSTABLE_SaltProviderNext, useBreakpoints, useDensity, useTheme } from './salt-provider/SaltProvider.js';
72
76
  export { SplitLayout } from './split-layout/SplitLayout.js';
73
77
  export { Switch } from './switch/Switch.js';
74
78
  export { ToggleButton } from './toggle-button/ToggleButton.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Style applied to the root element */\n.saltInput {\n --input-borderColor: var(--salt-editable-borderColor);\n --input-borderStyle: var(--salt-editable-borderStyle);\n --input-outlineColor: var(--salt-focused-outlineColor);\n --input-borderWidth: var(--salt-size-border);\n\n align-items: center;\n background: var(--saltInput-background, var(--input-background));\n color: var(--saltInput-color, var(--salt-content-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltInput-fontSize, var(--salt-text-fontSize));\n height: var(--saltInput-height, var(--salt-size-base));\n line-height: var(--saltInput-lineHeight, var(--salt-text-lineHeight));\n min-height: var(--saltInput-minHeight, var(--salt-size-base));\n min-width: var(--saltInput-minWidth, 4em);\n padding-left: var(--saltInput-paddingLeft, var(--salt-spacing-100));\n padding-right: var(--saltInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n}\n\n.saltInput:hover {\n --input-borderStyle: var(--salt-editable-borderStyle-hover);\n --input-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--saltInput-background-hover, var(--input-background-hover));\n cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltInput:active {\n --input-borderColor: var(--salt-editable-borderColor-active);\n --input-borderStyle: var(--salt-editable-borderStyle-active);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--saltInput-background-active, var(--input-background-active));\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInput-primary {\n --input-background: var(--salt-editable-primary-background);\n --input-background-active: var(--salt-editable-primary-background-active);\n --input-background-hover: var(--salt-editable-primary-background-hover);\n --input-background-disabled: var(--salt-editable-primary-background-disabled);\n --input-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInput-secondary {\n --input-background: var(--salt-editable-secondary-background);\n --input-background-active: var(--salt-editable-secondary-background-active);\n --input-background-hover: var(--salt-editable-secondary-background-active);\n --input-background-disabled: var(--salt-editable-secondary-background-disabled);\n --input-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltInput-error,\n.saltInput-error:hover {\n --input-background: var(--salt-status-error-background);\n --input-background-active: var(--salt-status-error-background);\n --input-background-hover: var(--salt-status-error-background);\n --input-borderColor: var(--salt-status-error-borderColor);\n --input-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltInput-warning,\n.saltInput-warning:hover {\n --input-background: var(--salt-status-warning-background);\n --input-background-active: var(--salt-status-warning-background);\n --input-background-hover: var(--salt-status-warning-background);\n --input-borderColor: var(--salt-status-warning-borderColor);\n --input-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltInput-success,\n.saltInput-success:hover {\n --input-background: var(--salt-status-success-background);\n --input-background-active: var(--salt-status-success-background);\n --input-background-hover: var(--salt-status-success-background);\n --input-borderColor: var(--salt-status-success-borderColor);\n --input-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInput-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--input-textAlign);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInput-input::selection {\n background: var(--salt-content-foreground-highlight);\n}\n\n/* Style applied to placeholder text */\n.saltInput-input::placeholder {\n color: var(--salt-content-secondary-foreground);\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Styling when focused */\n.saltInput-focused {\n --input-borderColor: var(--input-outlineColor);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--saltInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInput.saltInput-readOnly {\n --input-borderColor: var(--salt-editable-borderColor-readonly);\n --input-borderStyle: var(--salt-editable-borderStyle-readonly);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` */\n.saltInput-focused.saltInput-disabled {\n --input-borderWidth: var(--salt-size-border);\n outline: none;\n}\n\n/* Styling when focused if `readOnly={true}` */\n.saltInput-focused.saltInput-readOnly {\n --input-borderWidth: var(--salt-size-border);\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInput-disabled .saltInput-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInput.saltInput-disabled,\n.saltInput.saltInput-disabled:hover,\n.saltInput.saltInput-disabled:active {\n --input-borderColor: var(--salt-editable-borderColor-disabled);\n --input-borderStyle: var(--salt-editable-borderStyle-disabled);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInput-color-disabled, var(--salt-content-primary-foreground-disabled));\n}\n\n.saltInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);\n}\n\n/* Style applied to start adornments */\n.saltInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n.saltInput-readOnly .saltInput-startAdornmentContainer {\n margin-left: var(--salt-spacing-50);\n}\n\n.saltInput-startAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n.saltInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n.saltInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltInput-startAdornmentContainer > .saltButton,\n.saltInput-endAdornmentContainer > .saltButton {\n --saltButton-padding: var(--salt-spacing-50);\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n}\n";
1
+ var css_248z = "/* Style applied to the root element */\n.saltInput {\n --input-borderColor: var(--salt-editable-borderColor);\n --input-borderStyle: var(--salt-editable-borderStyle);\n --input-outlineColor: var(--salt-focused-outlineColor);\n --input-borderWidth: var(--salt-size-border);\n\n align-items: center;\n background: var(--saltInput-background, var(--input-background));\n color: var(--saltInput-color, var(--salt-content-primary-foreground));\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--saltInput-fontSize, var(--salt-text-fontSize));\n height: var(--saltInput-height, var(--salt-size-base));\n line-height: var(--saltInput-lineHeight, var(--salt-text-lineHeight));\n min-height: var(--saltInput-minHeight, var(--salt-size-base));\n min-width: var(--saltInput-minWidth, 4em);\n padding-left: var(--saltInput-paddingLeft, var(--salt-spacing-100));\n padding-right: var(--saltInput-paddingRight, var(--salt-spacing-100));\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n.saltInput:hover {\n --input-borderStyle: var(--salt-editable-borderStyle-hover);\n --input-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--saltInput-background-hover, var(--input-background-hover));\n cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltInput:active {\n --input-borderColor: var(--salt-editable-borderColor-active);\n --input-borderStyle: var(--salt-editable-borderStyle-active);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--saltInput-background-active, var(--input-background-active));\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInput-primary {\n --input-background: var(--salt-editable-primary-background);\n --input-background-active: var(--salt-editable-primary-background-active);\n --input-background-hover: var(--salt-editable-primary-background-hover);\n --input-background-disabled: var(--salt-editable-primary-background-disabled);\n --input-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInput-secondary {\n --input-background: var(--salt-editable-secondary-background);\n --input-background-active: var(--salt-editable-secondary-background-active);\n --input-background-hover: var(--salt-editable-secondary-background-active);\n --input-background-disabled: var(--salt-editable-secondary-background-disabled);\n --input-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltInput-error,\n.saltInput-error:hover {\n --input-background: var(--salt-status-error-background);\n --input-background-active: var(--salt-status-error-background);\n --input-background-hover: var(--salt-status-error-background);\n --input-borderColor: var(--salt-status-error-borderColor);\n --input-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltInput-warning,\n.saltInput-warning:hover {\n --input-background: var(--salt-status-warning-background);\n --input-background-active: var(--salt-status-warning-background);\n --input-background-hover: var(--salt-status-warning-background);\n --input-borderColor: var(--salt-status-warning-borderColor);\n --input-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltInput-success,\n.saltInput-success:hover {\n --input-background: var(--salt-status-success-background);\n --input-background-active: var(--salt-status-success-background);\n --input-background-hover: var(--salt-status-success-background);\n --input-borderColor: var(--salt-status-success-borderColor);\n --input-outlineColor: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltInput-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInput-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--input-textAlign);\n width: 100%;\n}\n\n/* Reset in the class */\n.saltInput-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInput-input::selection {\n background: var(--salt-content-foreground-highlight);\n}\n\n/* Style applied to placeholder text */\n.saltInput-input::placeholder {\n color: var(--salt-content-secondary-foreground);\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Styling when focused */\n.saltInput-focused {\n --input-borderColor: var(--input-outlineColor);\n --input-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--saltInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInput.saltInput-readOnly {\n --input-borderColor: var(--salt-editable-borderColor-readonly);\n --input-borderStyle: var(--salt-editable-borderStyle-readonly);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` */\n.saltInput-focused.saltInput-disabled {\n --input-borderWidth: var(--salt-size-border);\n outline: none;\n}\n\n/* Styling when focused if `readOnly={true}` */\n.saltInput-focused.saltInput-readOnly {\n --input-borderWidth: var(--salt-size-border);\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInput-disabled .saltInput-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInput.saltInput-disabled,\n.saltInput.saltInput-disabled:hover,\n.saltInput.saltInput-disabled:active {\n --input-borderColor: var(--salt-editable-borderColor-disabled);\n --input-borderStyle: var(--salt-editable-borderStyle-disabled);\n --input-borderWidth: var(--salt-size-border);\n\n background: var(--input-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInput-color-disabled, var(--salt-content-primary-foreground-disabled));\n}\n\n.saltInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);\n}\n\n/* Style applied to start adornments */\n.saltInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to end adornments */\n.saltInput-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-spacing-100);\n column-gap: var(--salt-spacing-100);\n}\n\n.saltInput-readOnly .saltInput-startAdornmentContainer {\n margin-left: var(--salt-spacing-50);\n}\n\n.saltInput-startAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n.saltInput-endAdornmentContainer .saltButton ~ .saltButton {\n margin-left: calc(-1 * var(--salt-spacing-50));\n}\n\n.saltInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n.saltInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n\n.saltInput-startAdornmentContainer > .saltButton,\n.saltInput-endAdornmentContainer > .saltButton {\n --saltButton-padding: var(--salt-spacing-50);\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Input.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltLink {\n --link-color-hover: var(--saltLink-color-hover, var(--salt-content-foreground-hover));\n --link-color-active: var(--saltLink-color-active, var(--salt-content-foreground-active));\n --link-color-visited: var(--saltLink-color-visited, var(--salt-content-foreground-visited));\n /* When focused, we also want hover style */\n --link-color-focus: var(--saltLink-color-focus, var(--link-color-hover));\n\n --link-textDecoration: var(--salt-navigable-textDecoration);\n --link-textDecoration-hover: var(--salt-navigable-textDecoration-hover);\n\n --link-fontFamily: var(--salt-text-fontFamily);\n --link-focus-outline: var(--salt-focused-outline);\n}\n\n/* Main css class */\n.saltLink {\n color: var(--link-color);\n letter-spacing: 0px;\n text-decoration: var(--link-textDecoration);\n font-family: var(--link-fontFamily);\n}\n\n/* Primary variant */\n.saltText-primary {\n --link-color: var(--salt-content-primary-foreground);\n}\n\n/* Secondary variant */\n.saltText-secondary {\n --link-color: var(--salt-content-secondary-foreground);\n}\n\n/* External link's icon */\n.saltLink-icon {\n margin-left: var(--salt-size-adornmentGap);\n margin-bottom: -2px;\n}\n\n/* Set color for visited link */\n.saltLink:visited {\n color: var(--link-color-visited);\n}\n\n/* Set color for hovered link */\n.saltLink:hover {\n color: var(--link-color-hover);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Set color for active link */\n.saltLink:active {\n color: var(--link-color-active);\n}\n\n/* Set color for focused link */\n.saltLink:focus {\n outline: var(--link-focus-outline);\n color: var(--link-color-focus);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Class for ADA content */\n.saltLink-externalLinkADA {\n display: block;\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n top: 0px;\n left: 0px;\n opacity: 0;\n}\n";
1
+ var css_248z = ".saltLink {\n --link-color-hover: var(--saltLink-color-hover, var(--salt-content-foreground-hover));\n --link-color-active: var(--saltLink-color-active, var(--salt-content-foreground-active));\n --link-color-visited: var(--saltLink-color-visited, var(--salt-content-foreground-visited));\n /* When focused, we also want hover style */\n --link-color-focus: var(--saltLink-color-focus, var(--link-color-hover));\n\n --link-textDecoration: var(--salt-navigable-textDecoration);\n --link-textDecoration-hover: var(--salt-navigable-textDecoration-hover);\n\n --link-fontFamily: var(--salt-text-fontFamily);\n --link-focus-outline: var(--salt-focused-outline);\n}\n\n/* Main css class */\n.saltLink {\n color: var(--link-color);\n letter-spacing: var(--salt-text-letterSpacing);\n text-decoration: var(--link-textDecoration);\n font-family: var(--link-fontFamily);\n}\n\n/* Primary variant */\n.saltText-primary {\n --link-color: var(--salt-content-primary-foreground);\n}\n\n/* Secondary variant */\n.saltText-secondary {\n --link-color: var(--salt-content-secondary-foreground);\n}\n\n/* External link's icon */\n.saltLink .saltLink-icon {\n margin-left: var(--salt-spacing-75);\n margin-bottom: -2px;\n}\n\n/* Set color for visited link */\n.saltLink:visited {\n color: var(--link-color-visited);\n}\n\n/* Set color for hovered link */\n.saltLink:hover {\n color: var(--link-color-hover);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Set color for active link */\n.saltLink:active {\n color: var(--link-color-active);\n}\n\n/* Set color for focused link */\n.saltLink:focus {\n outline: var(--link-focus-outline);\n color: var(--link-color-focus);\n text-decoration: var(--link-textDecoration-hover);\n}\n\n/* Class for ADA content */\n.saltLink-externalLinkADA {\n display: block;\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n top: 0px;\n left: 0px;\n opacity: 0;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Link.css.js.map
@@ -0,0 +1,4 @@
1
+ var css_248z = "/* Styles applied to LinkCard */\n.saltLinkCard {\n border-width: var(--saltLinkCard-borderWidth, var(--salt-size-border));\n border-style: var(--saltLinkCard-borderStyle, var(--salt-container-borderStyle));\n border-radius: var(--saltLinkCard-borderRadius, 0);\n display: block;\n padding: var(--saltLinkCard-padding, var(--salt-spacing-200));\n position: relative;\n text-decoration: none;\n transition: box-shadow var(--salt-duration-instant) ease-in-out;\n}\n\n/* Styles applied to LinkCard when variant=\"primary\" */\n.saltLinkCard-primary {\n background: var(--saltLinkCard-background, var(--salt-container-primary-background));\n border-color: var(--salt-container-primary-borderColor);\n --linkCard-accent-color: var(--salt-container-primary-borderColor);\n}\n\n/* Styles applied to LinkCard when variant=\"secondary\" */\n.saltLinkCard-secondary {\n background: var(--saltLinkCard-background, var(--salt-container-secondary-background));\n border-color: var(--salt-container-secondary-borderColor);\n --linkCard-accent-color: var(--salt-container-secondary-borderColor);\n}\n\n/* Styles applied to create accent */\n.saltLinkCard-accent::after {\n content: \"\";\n position: absolute;\n background-color: var(--saltLinkCard-accent-color, var(--linkCard-accent-color));\n}\n\n/* Styles applied to LinkCard if `accent=\"bottom\"` (default) */\n.saltLinkCard-accentBottom::after {\n left: calc(-1 * var(--salt-size-border));\n bottom: calc(-1 * var(--salt-size-border));\n height: var(--salt-size-accent);\n width: calc(100% + calc(2 * var(--salt-size-border)));\n}\n\n/* Styles applied to LinkCard if `accent=\"left\"` */\n.saltLinkCard-accentLeft::after {\n left: calc(-1 * var(--salt-size-border));\n top: calc(-1 * var(--salt-size-border));\n height: calc(100% + calc(2 * var(--salt-size-border)));\n width: var(--salt-size-accent);\n}\n\n/* Styles applied to LinkCard if `accent=\"top\"` */\n.saltLinkCard-accentTop::after {\n left: calc(-1 * var(--salt-size-border));\n top: calc(-1 * var(--salt-size-border));\n height: var(--salt-size-accent);\n width: calc(100% + calc(2 * var(--salt-size-border)));\n}\n\n/* Styles applied to LinkCard if `accent=\"right\"` */\n.saltLinkCard-accentRight::after {\n right: calc(-1 * var(--salt-size-border));\n top: calc(-1 * var(--salt-size-border));\n height: calc(100% + calc(2 * var(--salt-size-border)));\n width: var(--salt-size-accent);\n}\n\n/* Styles applied to LinkCard on focus */\n.saltLinkCard:focus-visible {\n cursor: var(--salt-selectable-cursor-hover);\n box-shadow: var(--salt-overlayable-shadow-hover);\n outline-color: var(--salt-focused-outlineColor);\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n outline-offset: var(--salt-focused-outlineOffset);\n --linkCard-accent-color: var(--salt-selectable-foreground-hover);\n}\n\n/* Styles applied on hover state to LinkCard */\n.saltLinkCard:hover {\n cursor: var(--salt-selectable-cursor-hover);\n box-shadow: var(--salt-overlayable-shadow-hover);\n --linkCard-accent-color: var(--salt-selectable-foreground-hover);\n}\n\n/* Styles applied on active state to LinkCard */\n.saltLinkCard:active {\n cursor: var(--salt-selectable-cursor-active);\n border-color: var(--salt-selectable-borderColor-selected);\n box-shadow: var(--salt-overlayable-shadow);\n --linkCard-accent-color: var(--salt-selectable-foreground-selected);\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=LinkCard.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkCard.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,50 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { clsx } from 'clsx';
3
+ import { forwardRef } from 'react';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { useComponentCssInjection } from '@salt-ds/styles';
6
+ import { capitalize } from '../utils/capitalize.js';
7
+ import { makePrefixer } from '../utils/makePrefixer.js';
8
+ import '../utils/useFloatingUI/useFloatingUI.js';
9
+ import '../utils/useId.js';
10
+ import '../salt-provider/SaltProvider.js';
11
+ import '../viewport/ViewportProvider.js';
12
+ import css_248z from './LinkCard.css.js';
13
+
14
+ const withBaseName = makePrefixer("saltLinkCard");
15
+ const LinkCard = forwardRef(
16
+ function LinkCard2(props, ref) {
17
+ const {
18
+ accent,
19
+ children,
20
+ className,
21
+ href,
22
+ variant = "primary",
23
+ ...rest
24
+ } = props;
25
+ const targetWindow = useWindow();
26
+ useComponentCssInjection({
27
+ testId: "salt-link-card",
28
+ css: css_248z,
29
+ window: targetWindow
30
+ });
31
+ return /* @__PURE__ */ jsx("a", {
32
+ className: clsx(
33
+ withBaseName(),
34
+ withBaseName(variant),
35
+ {
36
+ [withBaseName("accent")]: accent,
37
+ [withBaseName(`accent${capitalize(accent != null ? accent : "")}`)]: accent
38
+ },
39
+ className
40
+ ),
41
+ href,
42
+ ...rest,
43
+ ref,
44
+ children
45
+ });
46
+ }
47
+ );
48
+
49
+ export { LinkCard };
50
+ //# sourceMappingURL=LinkCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkCard.js","sources":["../src/link-card/LinkCard.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { capitalize, makePrefixer } from \"../utils\";\n\nimport linkCardCss from \"./LinkCard.css\";\n\nconst withBaseName = makePrefixer(\"saltLinkCard\");\n\nexport interface LinkCardProps extends ComponentPropsWithoutRef<\"a\"> {\n /**\n * If provided an accent is shown in the specified position.\n */\n accent?: \"bottom\" | \"top\" | \"left\" | \"right\";\n /**\n * Styling variant; defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nexport const LinkCard = forwardRef<HTMLAnchorElement, LinkCardProps>(\n function LinkCard(props, ref) {\n const {\n accent,\n children,\n className,\n href,\n variant = \"primary\",\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-link-card\",\n css: linkCardCss,\n window: targetWindow,\n });\n\n return (\n <a\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"accent\")]: accent,\n [withBaseName(`accent${capitalize(accent ?? \"\")}`)]: accent,\n },\n className\n )}\n href={href}\n {...rest}\n ref={ref}\n >\n {children}\n </a>\n );\n }\n);\n"],"names":["LinkCard","linkCardCss"],"mappings":";;;;;;;;;;;;;AASA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAazC,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,SAASA,SAAS,CAAA,KAAA,EAAO,GAAK,EAAA;AAC5B,IAAM,MAAA;AAAA,MACJ,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAU,GAAA,SAAA;AAAA,MACP,GAAA,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACG,GAAA,CAAA,GAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,OAAO,CAAA;AAAA,QACpB;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,CAAA,MAAA,EAAS,WAAW,MAAU,IAAA,IAAA,GAAA,MAAA,GAAA,EAAE,GAAG,CAAI,GAAA,MAAA;AAAA,SACvD;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,IAAA;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEC,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Styles applied to the root element when variant=\"primary\" */\n.saltPanel-primary.saltPanel {\n --panel-background: var(--salt-container-primary-background);\n}\n\n/* Styles applied to the root element when variant=\"secondary\" */\n.saltPanel-secondary.saltPanel {\n --panel-background: var(--salt-container-secondary-background);\n}\n\n/* Styles applied to the root element */\n.saltPanel {\n background: var(--saltPanel-background, var(--panel-background));\n color: var(--saltPanel-color, initial);\n height: var(--saltPanel-height, 100%);\n overflow: auto;\n padding: var(--saltPanel-padding, var(--salt-size-container-spacing));\n width: var(--saltPanel-width, 100%);\n}\n";
1
+ var css_248z = "/* Styles applied to the root element when variant=\"primary\" */\n.saltPanel-primary.saltPanel {\n --panel-background: var(--salt-container-primary-background);\n}\n\n/* Styles applied to the root element when variant=\"secondary\" */\n.saltPanel-secondary.saltPanel {\n --panel-background: var(--salt-container-secondary-background);\n}\n\n/* Styles applied to the root element */\n.saltPanel {\n background: var(--saltPanel-background, var(--panel-background));\n color: var(--saltPanel-color, initial);\n height: var(--saltPanel-height, 100%);\n overflow: auto;\n padding: var(--saltPanel-padding, var(--salt-size-container-spacing));\n width: var(--saltPanel-width, 100%);\n border-radius: var(--saltPanel-borderRadius, var(--salt-palette-corner, 0));\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Panel.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Styles applied to the root element */\n.saltPill {\n appearance: none;\n display: inline-flex;\n align-items: center;\n background: var(--saltPill-background, var(--salt-actionable-primary-background));\n border-radius: 0;\n border: 0;\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n min-height: var(--salt-text-minHeight);\n outline: 0;\n position: relative;\n gap: var(--salt-spacing-50);\n padding-left: var(--salt-spacing-50);\n padding-right: var(--salt-spacing-50);\n color: var(--saltPill-color, var(--salt-actionable-primary-foreground));\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 overflow: hidden;\n white-space: nowrap;\n}\n\n/* Style applied to Pill if pill is clickable */\n.saltPill-clickable {\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltPill-clickable:hover,\n.saltPill-clickable:focus-visible {\n color: var(--salt-actionable-primary-foreground-hover);\n background: var(--salt-actionable-primary-background-hover);\n}\n\n.saltPill-clickable.saltPill-active,\n.saltPill-clickable:active {\n background: var(--salt-actionable-primary-background-active);\n color: var(--salt-actionable-primary-foreground-active);\n}\n\n/* Style applied to Pill on focus */\n.saltPill:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Style applied to Pill when disabled */\n.saltPill:disabled,\n.saltPill:disabled:hover {\n color: var(--salt-actionable-primary-foreground-disabled);\n background: var(--salt-actionable-primary-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n";
1
+ var css_248z = "/* Styles applied to the root element */\n.saltPill {\n appearance: none;\n display: inline-flex;\n align-items: center;\n background: var(--saltPill-background, var(--salt-actionable-primary-background));\n border-radius: var(--saltPill-borderRadius, var(--salt-palette-corner-weaker, 0));\n border: 0;\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n min-height: var(--salt-text-minHeight);\n outline: 0;\n position: relative;\n gap: var(--salt-spacing-50);\n padding-left: var(--salt-spacing-50);\n padding-right: var(--salt-spacing-50);\n color: var(--saltPill-color, var(--salt-actionable-primary-foreground));\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 overflow: hidden;\n white-space: nowrap;\n}\n\n/* Style applied to Pill if pill is clickable */\n.saltPill-clickable {\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltPill-clickable:hover,\n.saltPill-clickable:focus-visible {\n color: var(--salt-actionable-primary-foreground-hover);\n background: var(--salt-actionable-primary-background-hover);\n}\n\n.saltPill-clickable.saltPill-active,\n.saltPill-clickable:active {\n background: var(--salt-actionable-primary-background-active);\n color: var(--salt-actionable-primary-foreground-active);\n}\n\n/* Style applied to Pill on focus */\n.saltPill:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Style applied to Pill when disabled */\n.saltPill:disabled,\n.saltPill:disabled:hover {\n color: var(--salt-actionable-primary-foreground-disabled);\n background: var(--salt-actionable-primary-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Pill.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltCircularProgress {\n color: var(--salt-content-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-progressLabel {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-track {\n inline-size: calc(var(--salt-size-base) * 3);\n block-size: calc(var(--salt-size-base) * 3);\n border-style: var(--salt-track-borderStyle);\n border-width: var(--salt-size-bar-small);\n border-radius: calc(var(--salt-size-base) * 3);\n border-color: var(--salt-track-borderColor);\n}\n\n.saltCircularProgress-bar {\n inline-size: calc(var(--salt-size-base) * 3);\n block-size: calc(var(--salt-size-base) * 3);\n border-style: var(--salt-track-borderStyle);\n border-width: var(--salt-size-bar-strong);\n border-radius: calc(var(--salt-size-base) * 3);\n border-color: var(--salt-accent-background);\n}\n\n.saltCircularProgress-bars {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n}\n\n.saltCircularProgress-barOverlayRight,\n.saltCircularProgress-barOverlayLeft {\n inline-size: 50%;\n block-size: 100%;\n transform-origin: 100% center;\n transform: rotate(180deg);\n overflow: hidden;\n position: absolute;\n}\n\n.saltCircularProgress-barSubOverlayRight,\n.saltCircularProgress-barSubOverlayLeft {\n inline-size: 100%;\n block-size: 100%;\n transform-origin: 100% center;\n overflow: hidden;\n transform: rotate(-180deg);\n}\n\n.saltCircularProgress-barOverlayLeft {\n transform: rotate(0deg);\n}\n";
1
+ var css_248z = ".saltCircularProgress {\n color: var(--salt-content-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-progressLabel {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-track {\n inline-size: calc(var(--salt-size-base) * 3);\n block-size: calc(var(--salt-size-base) * 3);\n border-style: var(--salt-track-borderStyle);\n border-width: var(--salt-size-bar-small);\n border-radius: calc(var(--salt-size-base) * 3);\n border-color: var(--salt-track-borderColor);\n box-sizing: border-box;\n}\n\n.saltCircularProgress-bar {\n inline-size: calc(var(--salt-size-base) * 3);\n block-size: calc(var(--salt-size-base) * 3);\n border-style: var(--salt-track-borderStyle);\n border-width: var(--salt-size-bar-strong);\n border-radius: calc(var(--salt-size-base) * 3);\n border-color: var(--salt-accent-background);\n box-sizing: border-box;\n}\n\n.saltCircularProgress-bars {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n}\n\n.saltCircularProgress-barOverlayRight,\n.saltCircularProgress-barOverlayLeft {\n inline-size: 50%;\n block-size: 100%;\n transform-origin: 100% center;\n transform: rotate(180deg);\n overflow: hidden;\n position: absolute;\n}\n\n.saltCircularProgress-barSubOverlayRight,\n.saltCircularProgress-barSubOverlayLeft {\n inline-size: 100%;\n block-size: 100%;\n transform-origin: 100% center;\n overflow: hidden;\n transform: rotate(-180deg);\n}\n\n.saltCircularProgress-barOverlayLeft {\n transform: rotate(0deg);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CircularProgress.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n min-width: 400px;\n font-size: var(--linearProgress-fontSize);\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: 100%;\n overflow: hidden;\n height: var(--salt-size-bar-strong);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n background: var(--salt-accent-background);\n z-index: 2;\n}\n\n.saltLinearProgress-track {\n background: var(--salt-track-borderColor);\n width: 100%;\n height: var(--salt-size-bar-small);\n position: absolute;\n top: calc((var(--salt-size-bar-strong) - var(--salt-size-bar-small)) / 2);\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-progressLabel {\n color: inherit;\n margin: 0;\n white-space: nowrap;\n padding-left: var(--salt-spacing-100);\n}\n";
1
+ var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: flex;\n min-width: 400px;\n font-size: var(--linearProgress-fontSize);\n box-sizing: border-box;\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: 100%;\n overflow: hidden;\n height: var(--salt-size-bar-strong);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n background: var(--salt-accent-background);\n z-index: 2;\n}\n\n.saltLinearProgress-track {\n background: var(--salt-track-borderColor);\n width: 100%;\n height: var(--salt-size-bar-small);\n position: absolute;\n top: calc((var(--salt-size-bar-strong) - var(--salt-size-bar-small)) / 2);\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-progressLabel {\n color: inherit;\n margin: 0;\n white-space: nowrap;\n padding-left: var(--salt-spacing-100);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=LinearProgress.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = "/* Styles applied to RadioButton container */\n.saltRadioButton {\n display: flex;\n gap: var(--salt-spacing-100);\n cursor: var(--salt-selectable-cursor-hover);\n position: relative;\n\n font-size: var(--salt-text-fontSize);\n line-height: var(--salt-text-lineHeight);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n\n --radioButton-icon-marginTop: calc((var(--salt-text-lineHeight) - var(--salt-size-selectable)) / 2);\n}\n\n/* Styles applied when RadioButton is disabled */\n.saltRadioButton-disabled {\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n/* Styles applied to root component if `readOnly={true}` */\n.saltRadioButton-readOnly {\n color: var(--salt-content-primary-foreground);\n cursor: var(--salt-selectable-cursor-readonly);\n}\n\n/* Styles applied to input component */\n.saltRadioButton-input {\n cursor: inherit;\n position: absolute;\n height: var(--salt-size-selectable);\n opacity: 0;\n margin: var(--radioButton-icon-marginTop) 0 0 0;\n padding: 0;\n width: var(--salt-size-selectable);\n z-index: var(--salt-zIndex-default);\n}\n\n.saltRadioButtonIcon {\n margin-top: var(--radioButton-icon-marginTop);\n}\n\n.saltRadioButtonIcon > svg {\n /* ensures svg is centered in all browsers */\n transform: translate(0px, 0px);\n}\n\n/* Styles applied to icon when :focus-visible */\n.saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline: var(--saltRadioButton-outline, var(--salt-focused-outline));\n outline-offset: var(--salt-focused-outlineOffset);\n border-color: var(--salt-selectable-borderColor-hover);\n color: var(--salt-selectable-foreground-hover);\n}\n\n.saltRadioButton-input:focus-visible + .saltRadioButtonIcon-checked {\n border-color: var(--salt-selectable-borderColor-selected);\n color: var(--salt-selectable-foreground-selected);\n}\n\n.saltRadioButton-error .saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline-color: var(--salt-status-error-foreground);\n border-color: var(--salt-status-error-foreground);\n color: var(--salt-status-error-foreground);\n}\n\n.saltRadioButton-warning .saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline-color: var(--salt-status-warning-foreground);\n border-color: var(--salt-status-warning-foreground);\n color: var(--salt-status-warning-foreground);\n}\n";
1
+ var css_248z = "/* Styles applied to RadioButton container */\n.saltRadioButton {\n display: flex;\n gap: var(--salt-spacing-100);\n cursor: var(--salt-selectable-cursor-hover);\n position: relative;\n\n font-size: var(--salt-text-fontSize);\n line-height: var(--salt-text-lineHeight);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n\n --radioButton-icon-marginTop: calc((var(--salt-text-lineHeight) - var(--salt-size-selectable)) / 2);\n}\n\n/* Styles applied when RadioButton is disabled */\n.saltRadioButton-disabled {\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n/* Styles applied to root component if `readOnly={true}` */\n.saltRadioButton-readOnly {\n color: var(--salt-content-primary-foreground);\n cursor: var(--salt-selectable-cursor-readonly);\n}\n\n/* Styles applied to input component */\n.saltRadioButton-input {\n cursor: inherit;\n position: absolute;\n height: var(--salt-size-selectable);\n opacity: 0;\n margin: var(--radioButton-icon-marginTop) 0 0 0;\n padding: 0;\n width: var(--salt-size-selectable);\n z-index: var(--salt-zIndex-default);\n box-sizing: border-box;\n}\n\n.saltRadioButtonIcon {\n margin-top: var(--radioButton-icon-marginTop);\n box-sizing: border-box;\n}\n\n.saltRadioButtonIcon > svg {\n /* ensures svg is centered in all browsers */\n transform: translate(0px, 0px);\n}\n\n/* Styles applied to icon when :focus-visible */\n.saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline: var(--saltRadioButton-outline, var(--salt-focused-outline));\n outline-offset: var(--salt-focused-outlineOffset);\n border-color: var(--salt-selectable-borderColor-hover);\n color: var(--salt-selectable-foreground-hover);\n}\n\n.saltRadioButton-input:focus-visible + .saltRadioButtonIcon-checked {\n border-color: var(--salt-selectable-borderColor-selected);\n color: var(--salt-selectable-foreground-selected);\n}\n\n.saltRadioButton-error .saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline-color: var(--salt-status-error-foreground);\n border-color: var(--salt-status-error-foreground);\n color: var(--salt-status-error-foreground);\n}\n\n.saltRadioButton-warning .saltRadioButton-input:focus-visible + .saltRadioButtonIcon {\n outline-color: var(--salt-status-warning-foreground);\n border-color: var(--salt-status-warning-foreground);\n color: var(--salt-status-warning-foreground);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=RadioButton.css.js.map
@@ -14,16 +14,40 @@ import { StyleInjectionProvider, useComponentCssInjection } from '@salt-ds/style
14
14
 
15
15
  const DEFAULT_DENSITY = "medium";
16
16
  const DEFAULT_THEME_NAME = "salt-theme";
17
+ const UNSTABLE_ADDITIONAL_THEME_NAME = "salt-theme-next";
17
18
  const DEFAULT_MODE = "light";
19
+ const DEFAULT_CORNER = "sharp";
18
20
  const DensityContext = createContext(DEFAULT_DENSITY);
19
21
  const ThemeContext = createContext({
20
22
  theme: "",
21
- mode: DEFAULT_MODE
23
+ mode: DEFAULT_MODE,
24
+ themeNext: false,
25
+ UNSTABLE_corner: DEFAULT_CORNER
22
26
  });
23
27
  const BreakpointContext = createContext(DEFAULT_BREAKPOINTS);
24
- const createThemedChildren = (children, themeName, density, mode, applyClassesTo) => {
28
+ const getThemeNames = (themeName, themeNext) => {
29
+ if (themeNext) {
30
+ return themeName === DEFAULT_THEME_NAME ? [DEFAULT_THEME_NAME, UNSTABLE_ADDITIONAL_THEME_NAME] : [DEFAULT_THEME_NAME, UNSTABLE_ADDITIONAL_THEME_NAME, themeName];
31
+ } else {
32
+ {
33
+ return themeName === DEFAULT_THEME_NAME ? [DEFAULT_THEME_NAME] : [DEFAULT_THEME_NAME, themeName];
34
+ }
35
+ }
36
+ };
37
+ const createThemedChildren = ({
38
+ children,
39
+ themeName,
40
+ density,
41
+ mode,
42
+ applyClassesTo,
43
+ themeNext,
44
+ corner
45
+ }) => {
25
46
  var _a;
26
- const themeNames = themeName === DEFAULT_THEME_NAME ? [DEFAULT_THEME_NAME] : [DEFAULT_THEME_NAME, themeName];
47
+ const themeNames = getThemeNames(themeName, themeNext);
48
+ const themeNextProps = {
49
+ "data-corner": corner
50
+ };
27
51
  if (applyClassesTo === "root") {
28
52
  return children;
29
53
  } else if (applyClassesTo === "child") {
@@ -34,7 +58,8 @@ const createThemedChildren = (children, themeName, density, mode, applyClassesTo
34
58
  ...themeNames,
35
59
  `salt-density-${density}`
36
60
  ),
37
- "data-mode": mode
61
+ "data-mode": mode,
62
+ ...themeNext ? themeNextProps : {}
38
63
  });
39
64
  } else {
40
65
  console.warn(
@@ -53,6 +78,7 @@ SaltProvider can only apply CSS classes for theming to a single nested child ele
53
78
  `salt-density-${density}`
54
79
  ),
55
80
  "data-mode": mode,
81
+ ...themeNext ? themeNextProps : {},
56
82
  children
57
83
  });
58
84
  }
@@ -63,20 +89,24 @@ function InternalSaltProvider({
63
89
  density: densityProp,
64
90
  theme: themeProp,
65
91
  mode: modeProp,
66
- breakpoints: breakpointsProp
92
+ breakpoints: breakpointsProp,
93
+ themeNext,
94
+ corner: cornerProp
67
95
  }) {
68
- var _a;
96
+ var _a, _b;
69
97
  const inheritedDensity = useContext(DensityContext);
70
98
  const {
71
99
  theme: inheritedTheme,
72
100
  mode: inheritedMode,
73
- window: inheritedWindow
101
+ window: inheritedWindow,
102
+ UNSTABLE_corner: inheritedCorner
74
103
  } = useContext(ThemeContext);
75
104
  const isRootProvider = inheritedTheme === void 0 || inheritedTheme === "";
76
105
  const density = (_a = densityProp != null ? densityProp : inheritedDensity) != null ? _a : DEFAULT_DENSITY;
77
106
  const themeName = themeProp != null ? themeProp : inheritedTheme === "" ? DEFAULT_THEME_NAME : inheritedTheme;
78
107
  const mode = modeProp != null ? modeProp : inheritedMode;
79
108
  const breakpoints = breakpointsProp != null ? breakpointsProp : DEFAULT_BREAKPOINTS;
109
+ const corner = (_b = cornerProp != null ? cornerProp : inheritedCorner) != null ? _b : DEFAULT_CORNER;
80
110
  const applyClassesTo = applyClassesToProp != null ? applyClassesToProp : isRootProvider ? "root" : "scope";
81
111
  const targetWindow = useWindow();
82
112
  useComponentCssInjection({
@@ -85,18 +115,26 @@ function InternalSaltProvider({
85
115
  window: targetWindow
86
116
  });
87
117
  const themeContextValue = useMemo(
88
- () => ({ theme: themeName, mode, window: targetWindow }),
89
- [themeName, mode, targetWindow]
118
+ () => ({
119
+ theme: themeName,
120
+ mode,
121
+ window: targetWindow,
122
+ themeNext: Boolean(themeNext),
123
+ UNSTABLE_corner: corner
124
+ }),
125
+ [themeName, mode, targetWindow, themeNext, corner]
90
126
  );
91
- const themedChildren = createThemedChildren(
127
+ const themedChildren = createThemedChildren({
92
128
  children,
93
129
  themeName,
94
130
  density,
95
131
  mode,
96
- applyClassesTo
97
- );
132
+ applyClassesTo,
133
+ themeNext,
134
+ corner
135
+ });
98
136
  useIsomorphicLayoutEffect(() => {
99
- const themeNames = themeName === DEFAULT_THEME_NAME ? [DEFAULT_THEME_NAME] : [DEFAULT_THEME_NAME, themeName];
137
+ const themeNames = getThemeNames(themeName, themeNext);
100
138
  if (applyClassesTo === "root" && targetWindow) {
101
139
  if (inheritedWindow != targetWindow) {
102
140
  targetWindow.document.documentElement.classList.add(
@@ -104,6 +142,9 @@ function InternalSaltProvider({
104
142
  `salt-density-${density}`
105
143
  );
106
144
  targetWindow.document.documentElement.dataset.mode = mode;
145
+ if (themeNext) {
146
+ targetWindow.document.documentElement.dataset.corner = corner;
147
+ }
107
148
  } else {
108
149
  console.warn(
109
150
  "SaltProvider can only apply CSS classes to the root if it is the root level SaltProvider."
@@ -117,9 +158,21 @@ function InternalSaltProvider({
117
158
  `salt-density-${density}`
118
159
  );
119
160
  targetWindow.document.documentElement.dataset.mode = void 0;
161
+ if (themeNext) {
162
+ delete targetWindow.document.documentElement.dataset.corner;
163
+ }
120
164
  }
121
165
  };
122
- }, [applyClassesTo, density, mode, themeName, targetWindow, inheritedWindow]);
166
+ }, [
167
+ applyClassesTo,
168
+ density,
169
+ mode,
170
+ themeName,
171
+ targetWindow,
172
+ inheritedWindow,
173
+ themeNext,
174
+ corner
175
+ ]);
123
176
  const saltProvider = /* @__PURE__ */ jsx(DensityContext.Provider, {
124
177
  value: density,
125
178
  children: /* @__PURE__ */ jsx(ThemeContext.Provider, {
@@ -151,6 +204,18 @@ function SaltProvider({
151
204
  })
152
205
  });
153
206
  }
207
+ function UNSTABLE_SaltProviderNext({
208
+ enableStyleInjection,
209
+ ...restProps
210
+ }) {
211
+ return /* @__PURE__ */ jsx(StyleInjectionProvider, {
212
+ value: enableStyleInjection,
213
+ children: /* @__PURE__ */ jsx(InternalSaltProvider, {
214
+ ...restProps,
215
+ themeNext: true
216
+ })
217
+ });
218
+ }
154
219
  const useTheme = () => {
155
220
  const { window, ...contextWithoutWindow } = useContext(ThemeContext);
156
221
  return contextWithoutWindow;
@@ -164,5 +229,5 @@ const useBreakpoints = () => {
164
229
  return useContext(BreakpointContext);
165
230
  };
166
231
 
167
- export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, ThemeContext, useBreakpoints, useDensity, useTheme };
232
+ export { BreakpointContext, DEFAULT_DENSITY, DensityContext, SaltProvider, ThemeContext, UNSTABLE_SaltProviderNext, useBreakpoints, useDensity, useTheme };
168
233
  //# sourceMappingURL=SaltProvider.js.map