@dust-tt/sparkle 0.2.528 → 0.2.529-rc-1

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 (56) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/esm/components/AssistantCard.d.ts +2 -2
  3. package/dist/esm/components/AssistantCard.d.ts.map +1 -1
  4. package/dist/esm/components/Button.d.ts +24 -8
  5. package/dist/esm/components/Button.d.ts.map +1 -1
  6. package/dist/esm/components/Button.js +29 -33
  7. package/dist/esm/components/Button.js.map +1 -1
  8. package/dist/esm/components/Card.d.ts +12 -1
  9. package/dist/esm/components/Card.d.ts.map +1 -1
  10. package/dist/esm/components/Card.js.map +1 -1
  11. package/dist/esm/components/EmptyCTA.d.ts +3 -3
  12. package/dist/esm/components/EmptyCTA.d.ts.map +1 -1
  13. package/dist/esm/components/EmptyCTA.js +1 -1
  14. package/dist/esm/components/EmptyCTA.js.map +1 -1
  15. package/dist/esm/components/IconButton.d.ts.map +1 -1
  16. package/dist/esm/components/IconButton.js +1 -1
  17. package/dist/esm/components/IconButton.js.map +1 -1
  18. package/dist/esm/components/LinkWrapper.d.ts +1 -0
  19. package/dist/esm/components/LinkWrapper.d.ts.map +1 -1
  20. package/dist/esm/components/LinkWrapper.js +2 -2
  21. package/dist/esm/components/LinkWrapper.js.map +1 -1
  22. package/dist/esm/components/SplitButton.d.ts +3 -3
  23. package/dist/esm/components/SplitButton.d.ts.map +1 -1
  24. package/dist/esm/components/SplitButton.js.map +1 -1
  25. package/dist/esm/components/Tabs.d.ts +1 -1
  26. package/dist/esm/components/Tabs.js +1 -1
  27. package/dist/esm/components/Tabs.js.map +1 -1
  28. package/dist/esm/components/index.d.ts +1 -1
  29. package/dist/esm/components/index.d.ts.map +1 -1
  30. package/dist/esm/context.d.ts +1 -0
  31. package/dist/esm/context.d.ts.map +1 -1
  32. package/dist/esm/context.js +7 -4
  33. package/dist/esm/context.js.map +1 -1
  34. package/dist/esm/stories/Button.stories.d.ts +2 -2
  35. package/dist/esm/stories/Button.stories.d.ts.map +1 -1
  36. package/dist/esm/stories/Button.stories.js +12 -5
  37. package/dist/esm/stories/Button.stories.js.map +1 -1
  38. package/dist/esm/stories/Chip.stories.d.ts +1 -0
  39. package/dist/esm/stories/Chip.stories.d.ts.map +1 -1
  40. package/dist/esm/stories/EmptyCTA.stories.d.ts.map +1 -1
  41. package/dist/esm/stories/EmptyCTA.stories.js +4 -6
  42. package/dist/esm/stories/EmptyCTA.stories.js.map +1 -1
  43. package/dist/esm/stories/IconButton.stories.d.ts +1 -1
  44. package/package.json +1 -1
  45. package/src/components/AssistantCard.tsx +2 -2
  46. package/src/components/Button.tsx +148 -91
  47. package/src/components/Card.tsx +2 -2
  48. package/src/components/EmptyCTA.tsx +11 -13
  49. package/src/components/IconButton.tsx +0 -1
  50. package/src/components/LinkWrapper.tsx +26 -19
  51. package/src/components/SplitButton.tsx +4 -4
  52. package/src/components/Tabs.tsx +1 -1
  53. package/src/components/index.ts +2 -2
  54. package/src/context.tsx +18 -4
  55. package/src/stories/Button.stories.tsx +24 -4
  56. package/src/stories/EmptyCTA.stories.tsx +3 -6
@@ -99,7 +99,8 @@ var ButtonBySize = function (_a) {
99
99
  React.createElement(Button, { size: size, variant: "highlight", label: "Button" }),
100
100
  React.createElement(Button, { size: size, variant: "warning", label: "Button" }),
101
101
  React.createElement(Button, { size: size, variant: "ghost", label: "Button" }),
102
- React.createElement(Button, { size: size, variant: "primary", label: "Button with href", href: "hello" })),
102
+ React.createElement(Button, { size: size, variant: "primary", label: "Button with href", href: "hello" }),
103
+ React.createElement(Button, { size: size, variant: "primary", label: "Button with href and disabled", href: "hello", disabled: true })),
103
104
  React.createElement("div", { className: "s-flex s-items-center s-gap-4" },
104
105
  React.createElement(Button, { size: size, label: "Button", isLoading: true }),
105
106
  React.createElement(Button, { size: size, variant: "outline", label: "Button", isLoading: true }),
@@ -114,9 +115,15 @@ var ButtonBySize = function (_a) {
114
115
  React.createElement(Button, { size: size, variant: "ghost", icon: PlusIcon, label: "Button" }))));
115
116
  };
116
117
  export var Gallery = {
117
- render: function () { return (React.createElement("div", { className: "s-flex s-flex-col s-gap-4" },
118
- React.createElement(ButtonBySize, { size: "xs" }),
119
- React.createElement(ButtonBySize, { size: "sm" }),
120
- React.createElement(ButtonBySize, { size: "md" }))); },
118
+ render: function () { return (React.createElement("div", { className: "s-flex s-flex-col s-gap-6" },
119
+ React.createElement("div", { className: "s-flex s-flex-col s-gap-4" },
120
+ React.createElement(ButtonBySize, { size: "xs" }),
121
+ React.createElement(ButtonBySize, { size: "sm" }),
122
+ React.createElement(ButtonBySize, { size: "md" })),
123
+ React.createElement(Separator, null),
124
+ React.createElement("h3", { className: "s-text-primary dark:s-text-primary-50" }, "With tooltip"),
125
+ React.createElement("div", { className: "s-flex s-gap-4" },
126
+ React.createElement(Button, { label: "Button with tooltip", tooltip: "Hello" }),
127
+ React.createElement(Button, { label: "Button as link with tooltip", href: "https://dust.tt", target: "_blank", tooltip: "Hello" })))); },
121
128
  };
122
129
  //# sourceMappingURL=Button.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.stories.js","sourceRoot":"","sources":["../../../src/stories/Button.stories.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE/E,IAAM,KAAK,GAAG;IACZ,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;CACZ,CAAC;AAEX,IAAM,IAAI,GAAG;IACX,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,WAAW,EAAE,wCAAwC;YACrD,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,IAAI,EAAE;YACJ,WAAW,EACT,qFAAqF;YACvF,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;SACjC;QACD,KAAK,EAAE;YACL,WAAW,EAAE,4CAA4C;YACzD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;SACjC;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,KAAK;SACpB;QACD,SAAS,EAAE;YACT,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,SAAS;SACnB;QACD,SAAS,EAAE;YACT,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,SAAS;SACnB;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,sDAAsD;YACnE,OAAO,EAAE,SAAS;SACnB;QACD,SAAS,EAAE;YACT,WAAW,EAAE,6CAA6C;YAC1D,OAAO,EAAE,SAAS;SACnB;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE;SACnC;QACD,OAAO,EAAE;YACP,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,MAAM;SAChB;KACF;IACD,MAAM,EAAE,UAAC,IAAI;QACX,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,OAAO,oBAAC,MAAM,eAAK,IAAI,EAAI,CAAC;IAC9B,CAAC;CAC4B,CAAC;AAEhC,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,IAAM,aAAa,GAAU;IAClC,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,GAAG;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,IAAM,UAAU,GAAU;IAC/B,MAAM,EAAE,cAAM,OAAA,oBAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,GAAI,EAAtC,CAAsC;CACrD,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,EAIrB;QAHC,IAAI,UAAA;IAGA,OAAA,CACJ;QACE,oBAAC,SAAS,OAAG;QACb,4BAAI,SAAS,EAAC,uCAAuC,IAClD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,CACjB;QACL,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,QAAQ,GAAG;YACrC,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,GAAG;YACvD,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,GAAG;YACzD,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,GAAG;YACvD,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,GAAG;YACrD,oBAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,OAAO,GACZ,CACE;QACN,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,SAAS,SAAG;YAC/C,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,SAAG;YACjE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,SAAG;YACnE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,SAAG;YACjE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,SAAG,CAC3D;QACN,6BAAK,SAAS,EAAC,+BAA+B;YAC5C,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,QAAQ,GAAG;YACrD,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,QAAQ,GAAG;YACvE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,QAAQ,GAAG;YACzE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,SAAS,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,QAAQ,GAAG;YACvE,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,QAAQ,GAAG,CACjE,CACL,CACJ;AAlCK,CAkCL,CAAC;AAEF,MAAM,CAAC,IAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,cAAM,OAAA,CACZ,6BAAK,SAAS,EAAC,2BAA2B;QACxC,oBAAC,YAAY,IAAC,IAAI,EAAC,IAAI,GAAG;QAC1B,oBAAC,YAAY,IAAC,IAAI,EAAC,IAAI,GAAG;QAC1B,oBAAC,YAAY,IAAC,IAAI,EAAC,IAAI,GAAG,CACtB,CACP,EANa,CAMb;CACF,CAAC"}
1
+ {"version":3,"file":"Button.stories.js","sourceRoot":"","sources":["../../../src/stories/Button.stories.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ declare const meta: {
15
15
  onClick?: (() => void) | undefined;
16
16
  } & {
17
17
  replace?: undefined;
18
+ disabled?: undefined;
18
19
  href?: undefined;
19
20
  target?: undefined;
20
21
  rel?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Chip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCmB,CAAC;AAE9B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAC;AAEF,eAAO,MAAM,YAAY,yBAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,yBAezB,CAAC;AAEF,eAAO,MAAM,SAAS,yBA+ErB,CAAC"}
1
+ {"version":3,"file":"Chip.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Chip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCmB,CAAC;AAE9B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAC;AAEF,eAAO,MAAM,YAAY,yBAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,yBAezB,CAAC;AAEF,eAAO,MAAM,SAAS,yBA+ErB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyCTA.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/EmptyCTA.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,IAAI;;CAEM,CAAC;AAEjB,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,IAAI,yBAmBhB,CAAC"}
1
+ {"version":3,"file":"EmptyCTA.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/EmptyCTA.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,IAAI;;CAEM,CAAC;AAEjB,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,IAAI,yBAgBhB,CAAC"}
@@ -1,15 +1,13 @@
1
1
  import React from "react";
2
- import { Button, EmptyCTA, EmptyCTAButton } from "../components";
3
- import { CloudArrowDownIcon, PlusIcon } from "../icons/app";
2
+ import { EmptyCTA, EmptyCTAButton } from "../components";
3
+ import { CloudArrowDownIcon } from "../icons/app";
4
4
  var meta = {
5
5
  title: "Components/EmptyCTA",
6
6
  };
7
7
  export default meta;
8
8
  export var Demo = function () {
9
- return (React.createElement("div", { className: "s-flex s-flex-col s-gap-4" },
9
+ return (React.createElement("div", null,
10
10
  React.createElement("div", { className: "s-flex s-items-center s-space-x-2" },
11
- React.createElement(EmptyCTA, { action: React.createElement(EmptyCTAButton, { icon: CloudArrowDownIcon, label: "Create a new space" }), message: "You don't have any spaces yet." })),
12
- React.createElement("div", { className: "s-flex s-items-center s-space-x-2" },
13
- React.createElement(EmptyCTA, { action: React.createElement(Button, { icon: PlusIcon, label: "Add domain" }) }))));
11
+ React.createElement(EmptyCTA, { action: React.createElement(EmptyCTAButton, { icon: CloudArrowDownIcon, label: "Create a new space" }), message: "You don't have any spaces yet." }))));
14
12
  };
15
13
  //# sourceMappingURL=EmptyCTA.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyCTA.stories.js","sourceRoot":"","sources":["../../../src/stories/EmptyCTA.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAElE,IAAM,IAAI,GAAG;IACX,KAAK,EAAE,qBAAqB;CACd,CAAC;AAEjB,eAAe,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,IAAI,GAAG;IAClB,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,QAAQ,IACP,MAAM,EACJ,oBAAC,cAAc,IACb,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAC,oBAAoB,GAC1B,EAEJ,OAAO,EAAC,gCAAgC,GACxC,CACE;QACN,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,QAAQ,IAAC,MAAM,EAAE,oBAAC,MAAM,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,YAAY,GAAG,GAAI,CAC/D,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"EmptyCTA.stories.js","sourceRoot":"","sources":["../../../src/stories/EmptyCTA.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAM,IAAI,GAAG;IACX,KAAK,EAAE,qBAAqB;CACd,CAAC;AAEjB,eAAe,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,IAAI,GAAG;IAClB,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,QAAQ,IACP,MAAM,EACJ,oBAAC,cAAc,IACb,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAC,oBAAoB,GAC1B,EAEJ,OAAO,EAAC,gCAAgC,GACxC,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import type { StoryObj } from "@storybook/react";
3
3
  declare const meta: {
4
4
  title: string;
5
5
  component: import("react").ForwardRefExoticComponent<{
6
- variant?: "primary" | "highlight" | "warning" | "outline" | "ghost" | "ghost-secondary" | null | undefined;
6
+ variant?: "primary" | "highlight" | "warning" | "outline" | "ghost" | "ghost-secondary" | undefined;
7
7
  onClick?: import("react").MouseEventHandler<HTMLButtonElement> | undefined;
8
8
  size?: "xs" | "sm" | "md" | "xmini" | "mini" | undefined;
9
9
  tooltip?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dust-tt/sparkle",
3
- "version": "0.2.528",
3
+ "version": "0.2.529-rc-1",
4
4
  "scripts": {
5
5
  "build": "rm -rf dist && npm run tailwind && npm run build:esm && npm run build:cjs",
6
6
  "tailwind": "tailwindcss -i ./src/styles/tailwind.css -o dist/sparkle.css",
@@ -4,7 +4,7 @@ import {
4
4
  Avatar,
5
5
  Card,
6
6
  CardActionButton,
7
- MiniButtonProps,
7
+ MiniButtonAsButtonProps,
8
8
  } from "@sparkle/components/";
9
9
  import { CardVariantType } from "@sparkle/components/Card";
10
10
  import { MoreIcon } from "@sparkle/icons/app/";
@@ -20,7 +20,7 @@ interface BaseAssistantCardProps {
20
20
  variant?: CardVariantType;
21
21
  }
22
22
 
23
- type AssistantCardMore = Omit<MiniButtonProps, "icon" | "size">;
23
+ type AssistantCardMore = Omit<MiniButtonAsButtonProps, "icon" | "size">;
24
24
 
25
25
  export const AssistantCardMore = React.forwardRef<
26
26
  HTMLButtonElement,
@@ -1,7 +1,6 @@
1
1
  import { Slot } from "@radix-ui/react-slot";
2
2
  import { cva, type VariantProps } from "class-variance-authority";
3
3
  import * as React from "react";
4
- import { useMemo } from "react";
5
4
 
6
5
  import {
7
6
  Counter,
@@ -188,31 +187,78 @@ const COUNTER_SIZE_MAP: Record<ButtonSizeType, CounterSizeType> = {
188
187
  md: "md",
189
188
  };
190
189
 
191
- type CommonButtonProps = Omit<MetaButtonProps, "children"> &
192
- Omit<LinkWrapperProps, "children"> & {
193
- isSelect?: boolean;
194
- isLoading?: boolean;
195
- isPulsing?: boolean;
196
- tooltip?: string;
197
- isCounter?: boolean;
198
- counterValue?: string;
190
+ type ButtonBaseProps = {
191
+ label?: string;
192
+ icon?: React.ComponentType;
193
+ isSelect?: boolean;
194
+ isLoading?: boolean;
195
+ isPulsing?: boolean;
196
+ tooltip?: string;
197
+ isCounter?: boolean;
198
+ counterValue?: string;
199
+ variant?: ButtonVariantType;
200
+ size?: ButtonSizeType;
201
+ className?: string;
202
+ "aria-label"?: string;
203
+ };
204
+
205
+ export type ButtonAsButtonProps = ButtonBaseProps &
206
+ React.ButtonHTMLAttributes<HTMLButtonElement> & {
207
+ href?: never;
208
+ target?: never;
209
+ replace?: never;
210
+ shallow?: never;
199
211
  };
200
212
 
201
- export type MiniButtonProps = CommonButtonProps & {
213
+ export type MiniButtonAsButtonProps = ButtonAsButtonProps & {
202
214
  size: "mini";
203
215
  icon: React.ComponentType;
204
216
  label?: never;
205
217
  };
206
218
 
207
- export type RegularButtonProps = CommonButtonProps & {
208
- size?: Exclude<ButtonSizeType, "mini">;
209
- icon?: React.ComponentType;
210
- label?: string;
211
- };
219
+ type ButtonAsAnchorLinkProps = ButtonBaseProps &
220
+ Omit<LinkWrapperProps, "children"> & {
221
+ href: string;
222
+ disabled?: boolean;
223
+ type?: never;
224
+ onClick?: never;
225
+ form?: never;
226
+ autoFocus?: never;
227
+ tabIndex?: never;
228
+ };
229
+
230
+ export type ButtonProps =
231
+ | ButtonAsButtonProps
232
+ | ButtonAsAnchorLinkProps
233
+ | MiniButtonAsButtonProps;
212
234
 
213
- export type ButtonProps = MiniButtonProps | RegularButtonProps;
235
+ function isAnchorProps(props: ButtonProps): props is ButtonAsAnchorLinkProps {
236
+ return typeof props.href === "string" && props.href.length > 0;
237
+ }
238
+
239
+ const ContentWithTooltip = ({
240
+ children,
241
+ tooltip,
242
+ }: {
243
+ children: React.ReactNode;
244
+ tooltip: string;
245
+ }) => {
246
+ return (
247
+ <TooltipProvider>
248
+ <TooltipRoot>
249
+ <TooltipTrigger asChild>{children}</TooltipTrigger>
250
+ <TooltipPortal>
251
+ <TooltipContent>{tooltip}</TooltipContent>
252
+ </TooltipPortal>
253
+ </TooltipRoot>
254
+ </TooltipProvider>
255
+ );
256
+ };
214
257
 
215
- const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
258
+ const Button = React.forwardRef<
259
+ HTMLButtonElement | HTMLAnchorElement,
260
+ ButtonProps
261
+ >(
216
262
  (
217
263
  {
218
264
  label,
@@ -226,11 +272,6 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
226
272
  isCounter = false,
227
273
  counterValue,
228
274
  size = "sm",
229
- href,
230
- target,
231
- rel,
232
- replace,
233
- shallow,
234
275
  "aria-label": ariaLabel,
235
276
  ...props
236
277
  },
@@ -239,17 +280,6 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
239
280
  const iconSize = ICON_SIZE_MAP[size];
240
281
  const counterSize = COUNTER_SIZE_MAP[size];
241
282
 
242
- const renderIcon = (visual: React.ComponentType, extraClass = "") => (
243
- <Icon visual={visual} size={iconSize} className={cn(extraClass)} />
244
- );
245
- const renderChevron = (visual: React.ComponentType, extraClass = "") => (
246
- <Icon
247
- visual={visual}
248
- size={iconSize}
249
- className={cn(variant ? chevronVariantMap[variant] : "", extraClass)}
250
- />
251
- );
252
-
253
283
  const showCounter = isCounter && counterValue != null;
254
284
  const showContainer = label || showCounter;
255
285
 
@@ -269,7 +299,7 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
269
299
  />
270
300
  </div>
271
301
  ) : (
272
- icon && renderIcon(icon, "-s-mx-0.5")
302
+ icon && <Icon visual={icon} size={iconSize} className="-s-mx-0.5" />
273
303
  )}
274
304
 
275
305
  {showContainer && (
@@ -290,69 +320,96 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
290
320
  )}
291
321
  </div>
292
322
  )}
293
- {isSelect && renderChevron(ChevronDownIcon, isLoading ? "" : "-s-mr-1")}
323
+ {isSelect && (
324
+ <Icon
325
+ visual={ChevronDownIcon}
326
+ size={iconSize}
327
+ className={cn(
328
+ variant ? chevronVariantMap[variant] : "",
329
+ isLoading ? "" : "-s-mr-1"
330
+ )}
331
+ />
332
+ )}
294
333
  </>
295
334
  );
296
335
 
297
- const pointerEventProps = useMemo(() => {
298
- if (isLoading || props.disabled) {
299
- return {
300
- onPointerDown: (e: React.PointerEvent<HTMLButtonElement>) => {
301
- e.preventDefault();
302
- e.stopPropagation();
303
- },
304
- };
305
- }
306
- return {};
307
- }, [isLoading, props.disabled]);
336
+ if (isAnchorProps(props)) {
337
+ const {
338
+ href,
339
+ target,
340
+ rel,
341
+ replace,
342
+ shallow,
343
+ prefetch,
344
+ tabIndex,
345
+ disabled,
346
+ } = props;
308
347
 
309
- const innerButton = (
310
- <MetaButton
311
- ref={ref}
312
- size={size}
313
- variant={variant}
314
- disabled={isLoading || props.disabled}
315
- className={cn(isPulsing && "s-animate-pulse", className)}
316
- aria-label={ariaLabel || tooltip || label}
317
- style={
318
- {
319
- "--pulse-color": "#93C5FD",
320
- "--duration": "1.5s",
321
- } as React.CSSProperties
322
- }
323
- {...props}
324
- {...pointerEventProps}
325
- >
326
- {content}
327
- </MetaButton>
328
- );
348
+ const innerContent = (
349
+ <span
350
+ className={cn(
351
+ buttonVariants({ variant, size, className }),
352
+ isPulsing && "s-animate-pulse"
353
+ )}
354
+ tabIndex={tabIndex}
355
+ style={
356
+ {
357
+ "--pulse-color": "#93C5FD",
358
+ "--duration": "1.5s",
359
+ } as React.CSSProperties
360
+ }
361
+ >
362
+ {content}
363
+ </span>
364
+ );
329
365
 
330
- const wrappedContent = tooltip ? (
331
- <TooltipProvider>
332
- <TooltipRoot>
333
- <TooltipTrigger asChild>{innerButton}</TooltipTrigger>
334
- <TooltipPortal>
335
- <TooltipContent>{tooltip}</TooltipContent>
336
- </TooltipPortal>
337
- </TooltipRoot>
338
- </TooltipProvider>
339
- ) : (
340
- innerButton
341
- );
366
+ return (
367
+ <LinkWrapper
368
+ ref={ref as React.Ref<HTMLAnchorElement>}
369
+ href={href}
370
+ target={target}
371
+ rel={rel}
372
+ replace={replace}
373
+ shallow={shallow}
374
+ prefetch={prefetch}
375
+ disabled={disabled}
376
+ >
377
+ {tooltip ? (
378
+ <ContentWithTooltip tooltip={tooltip}>
379
+ {innerContent}
380
+ </ContentWithTooltip>
381
+ ) : (
382
+ innerContent
383
+ )}
384
+ </LinkWrapper>
385
+ );
386
+ } else {
387
+ const innerButton = (
388
+ <MetaButton
389
+ ref={ref as React.Ref<HTMLButtonElement>}
390
+ size={size}
391
+ variant={variant}
392
+ disabled={isLoading || props.disabled}
393
+ className={cn(isPulsing && "s-animate-pulse", className)}
394
+ aria-label={ariaLabel || tooltip || label}
395
+ style={
396
+ {
397
+ "--pulse-color": "#93C5FD",
398
+ "--duration": "1.5s",
399
+ } as React.CSSProperties
400
+ }
401
+ {...props}
402
+ >
403
+ {content}
404
+ </MetaButton>
405
+ );
342
406
 
343
- return href ? (
344
- <LinkWrapper
345
- href={href}
346
- target={target}
347
- rel={rel}
348
- replace={replace}
349
- shallow={shallow}
350
- >
351
- {wrappedContent}
352
- </LinkWrapper>
353
- ) : (
354
- wrappedContent
355
- );
407
+ return tooltip ? (
408
+ <ContentWithTooltip tooltip={tooltip}>{innerButton}</ContentWithTooltip>
409
+ ) : (
410
+ innerButton
411
+ );
412
+ }
356
413
  }
357
414
  );
358
415
 
@@ -1,7 +1,7 @@
1
1
  import { cva } from "class-variance-authority";
2
2
  import React from "react";
3
3
 
4
- import { Button, MiniButtonProps } from "@sparkle/components/Button";
4
+ import { Button, MiniButtonAsButtonProps } from "@sparkle/components/Button";
5
5
  import { LinkWrapperProps } from "@sparkle/components/LinkWrapper";
6
6
  import {
7
7
  noHrefLink,
@@ -216,7 +216,7 @@ CardActions.displayName = "CardActions";
216
216
 
217
217
  export const CardActionButton = React.forwardRef<
218
218
  HTMLButtonElement,
219
- MiniButtonProps
219
+ MiniButtonAsButtonProps
220
220
  >(({ className, variant = "outline", icon = XMarkIcon, ...props }, ref) => {
221
221
  return (
222
222
  <Button
@@ -1,11 +1,11 @@
1
1
  import * as React from "react";
2
2
 
3
- import { Button, RegularButtonProps } from "@sparkle/components/";
3
+ import { Button, ButtonAsButtonProps } from "@sparkle/components/";
4
4
  import { cn } from "@sparkle/lib/utils";
5
5
 
6
6
  interface EmptyCTAProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  action: React.ReactNode;
8
- message?: string;
8
+ message: string;
9
9
  }
10
10
 
11
11
  const EmptyCTA = React.forwardRef<HTMLDivElement, EmptyCTAProps>(
@@ -20,16 +20,14 @@ const EmptyCTA = React.forwardRef<HTMLDivElement, EmptyCTAProps>(
20
20
  )}
21
21
  {...props}
22
22
  >
23
- {message && (
24
- <div
25
- className={cn(
26
- "s-text-center s-text-sm",
27
- "s-text-muted-foreground dark:s-text-muted-foreground-night"
28
- )}
29
- >
30
- {message}
31
- </div>
32
- )}
23
+ <div
24
+ className={cn(
25
+ "s-text-center s-text-sm",
26
+ "s-text-muted-foreground dark:s-text-muted-foreground-night"
27
+ )}
28
+ >
29
+ {message}
30
+ </div>
33
31
  <div>{action}</div>
34
32
  </div>
35
33
  )
@@ -37,7 +35,7 @@ const EmptyCTA = React.forwardRef<HTMLDivElement, EmptyCTAProps>(
37
35
 
38
36
  EmptyCTA.displayName = "EmptyCTA";
39
37
 
40
- interface EmptyCTAButtonProps extends RegularButtonProps {
38
+ interface EmptyCTAButtonProps extends ButtonAsButtonProps {
41
39
  icon: React.ComponentType;
42
40
  label: string;
43
41
  }
@@ -96,7 +96,6 @@ const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
96
96
  ref={ref}
97
97
  size={size}
98
98
  icon={icon}
99
- variant={null}
100
99
  {...props}
101
100
  />
102
101
  )
@@ -10,29 +10,36 @@ export interface LinkWrapperProps {
10
10
  shallow?: boolean;
11
11
  target?: string;
12
12
  prefetch?: boolean;
13
+ disabled?: boolean;
13
14
  }
14
15
 
15
16
  export const LinkWrapper = React.forwardRef<
16
17
  HTMLAnchorElement,
17
18
  LinkWrapperProps
18
- >(({ children, href, rel, replace, shallow, target, prefetch }, ref) => {
19
- const { components } = React.useContext(SparkleContext);
19
+ >(
20
+ (
21
+ { children, href, rel, replace, shallow, target, prefetch, disabled },
22
+ ref
23
+ ) => {
24
+ const { components } = React.useContext(SparkleContext);
20
25
 
21
- if (href) {
22
- return (
23
- <components.link
24
- ref={ref}
25
- href={href}
26
- target={target}
27
- rel={rel}
28
- replace={replace}
29
- shallow={shallow}
30
- prefetch={prefetch}
31
- >
32
- {children}
33
- </components.link>
34
- );
35
- }
26
+ if (href) {
27
+ return (
28
+ <components.link
29
+ ref={ref}
30
+ href={href}
31
+ target={target}
32
+ rel={rel}
33
+ replace={replace}
34
+ shallow={shallow}
35
+ prefetch={prefetch}
36
+ disabled={disabled}
37
+ >
38
+ {children}
39
+ </components.link>
40
+ );
41
+ }
36
42
 
37
- return children;
38
- });
43
+ return children;
44
+ }
45
+ );
@@ -1,12 +1,11 @@
1
1
  import React, { useState } from "react";
2
2
 
3
3
  import {
4
- ButtonProps,
4
+ ButtonAsButtonProps,
5
5
  DropdownMenu,
6
6
  DropdownMenuContent,
7
7
  DropdownMenuItem,
8
8
  DropdownMenuTrigger,
9
- RegularButtonProps,
10
9
  } from "@sparkle/components/";
11
10
  import { Button, ButtonVariantType } from "@sparkle/components/Button";
12
11
  import { Separator } from "@sparkle/components/Separator";
@@ -23,7 +22,7 @@ interface SplitButtonActionProps {
23
22
  }
24
23
 
25
24
  export interface SplitButtonProps
26
- extends Omit<RegularButtonProps, "children" | "onClick"> {
25
+ extends Omit<ButtonAsButtonProps, "children" | "onClick"> {
27
26
  /**
28
27
  * List of possible actions, will be displayed in dropdown
29
28
  */
@@ -130,7 +129,8 @@ const flexSeparatorVariants: Record<ButtonVariantType, string> = {
130
129
  "ghost-secondary": "s-bg-separator dark:s-bg-separator-night",
131
130
  };
132
131
 
133
- export interface FlexSplitButtonProps extends Omit<ButtonProps, "size"> {
132
+ export interface FlexSplitButtonProps
133
+ extends Omit<ButtonAsButtonProps, "size"> {
134
134
  containerClassName?: string;
135
135
  splitAction: React.ReactElement<React.ComponentProps<typeof Button>>;
136
136
  }
@@ -88,7 +88,7 @@ const TabsTrigger = React.forwardRef<
88
88
  tooltip={tooltip}
89
89
  icon={icon}
90
90
  disabled={disabled}
91
- href={href}
91
+ href={href ?? ""}
92
92
  target={target}
93
93
  rel={rel}
94
94
  replace={replace}
@@ -11,9 +11,9 @@ export { BarHeader } from "./BarHeader";
11
11
  export type { BreadcrumbItem } from "./Breadcrumbs";
12
12
  export { Breadcrumbs } from "./Breadcrumbs";
13
13
  export type {
14
+ ButtonAsButtonProps,
14
15
  ButtonProps,
15
- MiniButtonProps,
16
- RegularButtonProps,
16
+ MiniButtonAsButtonProps,
17
17
  } from "./Button";
18
18
  export { Button } from "./Button";
19
19
  export type { CardProps } from "./Card";