diff --git a/package-lock.json b/package-lock.json index 2b0dc73..957d39f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,8 @@ "hammerjs": "^2.0.8", "remark-gfm": "^3.0.1", "svelte-awesome-color-picker": "2.4.6", - "svelte-dnd-action": "0.9.24" + "svelte-dnd-action": "0.9.24", + "svelte-tooltip": "^1.2.0" }, "devDependencies": { "@storybook/addon-docs": "^7.0.18", @@ -7296,6 +7297,14 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -11738,6 +11747,14 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", + "engines": { + "node": ">=6" + } + }, "node_modules/local-pkg": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", @@ -15018,6 +15035,70 @@ "node": ">= 10" } }, + "node_modules/sirv-cli": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-0.4.6.tgz", + "integrity": "sha512-/Vj85/kBvPL+n9ibgX6FicLE8VjidC1BhlX67PYPBfbBAphzR6i0k0HtU5c2arejfU3uzq8l3SYPCwl1x7z6Ww==", + "dependencies": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^3.0.0", + "local-access": "^1.0.1", + "sade": "^1.4.0", + "sirv": "^0.4.6", + "tinydate": "^1.0.0" + }, + "bin": { + "sirv": "index.js" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sirv-cli/node_modules/@polka/url": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", + "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==" + }, + "node_modules/sirv-cli/node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/sirv-cli/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/sirv-cli/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/sirv-cli/node_modules/sirv": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-0.4.6.tgz", + "integrity": "sha512-rYpOXlNbpHiY4nVXxuDf4mXPvKz1reZGap/LkWp9TvcZ84qD/nPBjjH/6GZsgIjVMbOslnY8YYULAyP8jMn1GQ==", + "dependencies": { + "@polka/url": "^0.5.0", + "mime": "^2.3.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -15532,6 +15613,14 @@ } } }, + "node_modules/svelte-tooltip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/svelte-tooltip/-/svelte-tooltip-1.2.0.tgz", + "integrity": "sha512-FmaiNoCGkXBqF5AAscv+NdLtVIhywpqcaKw7mP1IksLJPMW3QaOPB8G23CHPQWde0J3A0NdCDQ3DI2isWGsDbg==", + "dependencies": { + "sirv-cli": "^0.4.4" + } + }, "node_modules/svelte2tsx": { "version": "0.6.15", "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.6.15.tgz", @@ -16147,6 +16236,14 @@ "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", "dev": true }, + "node_modules/tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", + "engines": { + "node": ">=4" + } + }, "node_modules/tinypool": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz", diff --git a/package.json b/package.json index eeb8d33..fe50645 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,8 @@ "fuse.js": "^6.6.2", "hammerjs": "^2.0.8", "remark-gfm": "^3.0.1", + "svelte-awesome-color-picker": "2.4.6", "svelte-dnd-action": "0.9.24", - "svelte-awesome-color-picker": "2.4.6" + "svelte-tooltip": "^1.2.0" } } diff --git a/src/lib/components/Modal/Modal.stories.mdx b/src/lib/components/Modal/Modal.stories.mdx index 76091e9..085b855 100644 --- a/src/lib/components/Modal/Modal.stories.mdx +++ b/src/lib/components/Modal/Modal.stories.mdx @@ -6,20 +6,20 @@ import { Meta } from "@storybook/blocks"; You can set the following css variables for the modal -| Variable | Default | -| ---------------------------- | ------------------------------- | -| --szot-modal-width | fit-content | -| --szot-modal-height | fit-content | -| --szot-modal-max-height | calc(100vh - 1.2rem) | -| --szot-modal-max-width | calc(100vw - 1.2rem) | -| --szot-modal-overlay-color | ccc | -| --szot-modal-overlay-blur | 2px | -| --szot-modal-z-index | 9999 | -| --szot-modal-bg-color | white | -| --szot-modal-close-bg-color | --szot-light-surface | -| --szot-modal-close-txt-color | --szot-txt-on-light-surface | -| --szot-modal-padding | 0.6rem | -| --szot-modal-margin-content | 0.6rem 0 | -| --szot-modal-header-padding | 0.9375rem 0.9375rem 0 0.9375rem | -| --szot-modal-footer-padding | 0 0.9375rem 0.9375rem 0.9375rem | -| --szot-modal-content-padding | 0 0.9375rem 0.9375rem 0.9375rem | +| Variable | Default | +| ---------------------------- | ------------------------------- | +| --szot-modal-width | fit-content | +| --szot-modal-height | fit-content | +| --szot-modal-max-height | calc(100vh - 1.2rem) | +| --szot-modal-max-width | calc(100vw - 1.2rem) | +| --szot-modal-overlay-color | ccc | +| --szot-modal-overlay-blur | 2px | +| --szot-modal-z-index | 9999 | +| --szot-modal-bg-color | white | +| --szot-modal-close-bg-color | --szot-light-surface | +| --szot-modal-close-txt-color | --szot-txt-on-light-surface | +| --szot-modal-padding | 0.6rem | +| --szot-modal-margin-content | 0.6rem 0 | +| --szot-modal-header-padding | 0.9375rem 0.9375rem 0 0.9375rem | +| --szot-modal-footer-padding | 0 0.9375rem 0.9375rem 0.9375rem | +| --szot-modal-content-padding | 0 0.9375rem 0.9375rem 0.9375rem | diff --git a/src/lib/components/Tooltip/Tooltip.stories.mdx b/src/lib/components/Tooltip/Tooltip.stories.mdx new file mode 100644 index 0000000..95eef5c --- /dev/null +++ b/src/lib/components/Tooltip/Tooltip.stories.mdx @@ -0,0 +1,13 @@ +import { Meta } from "@storybook/blocks"; + + + +# CSS variables for Tooltip + +You can set the following css variables for the Tooltip + +| Variable | Default | +| ------------------------------ | ------- | +| --szot-tooltip-txt-color | #ffffff | +| --szot-tooltip-txt-font-size | 1rem | +| --szot-tooltip-txt-font-weight | 400 | diff --git a/src/lib/components/Tooltip/Tooltip.stories.ts b/src/lib/components/Tooltip/Tooltip.stories.ts new file mode 100644 index 0000000..5243167 --- /dev/null +++ b/src/lib/components/Tooltip/Tooltip.stories.ts @@ -0,0 +1,53 @@ +import type { Meta } from "@storybook/svelte"; +import type { StoryObj, TemplateObj } from "$types/storybook"; +import Tooltip from "./Tooltip.svelte"; +import TooltipExample from "./TooltipExample.svelte"; + +const meta = { + title: "Components/Tooltip", + component: Tooltip, + tags: ["autodocs"], // enable auto docs +} satisfies Meta; + +export default meta; + +type Template = TemplateObj; +type Story = StoryObj; + +const template = { + render: (props) => ({ + Component: TooltipExample, + props, + }), + args: { + tip: "Here's your tooltip", + position: "right", + }, +} satisfies Template; + +export const Default: Story = { + ...template, + args: { + ...template.args, + style: "", + }, +}; + +export const Big: Story = { + ...template, + args: { + ...template.args, + iconSize: "50px", + style: "--szot-tooltip-txt-font-size:2rem;" + "--szot-tooltip-txt-font-weight:400;", + }, +}; + +export const Colored: Story = { + ...template, + args: { + ...template.args, + iconColor: "red", + tipBgColor: "#928aff", + style: "--szot-tooltip-txt-color:red;", + }, +}; diff --git a/src/lib/components/Tooltip/Tooltip.svelte b/src/lib/components/Tooltip/Tooltip.svelte new file mode 100644 index 0000000..5a60a38 --- /dev/null +++ b/src/lib/components/Tooltip/Tooltip.svelte @@ -0,0 +1,40 @@ + + +
+ + + +
+ + diff --git a/src/lib/components/Tooltip/TooltipExample.svelte b/src/lib/components/Tooltip/TooltipExample.svelte new file mode 100644 index 0000000..9ccdaee --- /dev/null +++ b/src/lib/components/Tooltip/TooltipExample.svelte @@ -0,0 +1,20 @@ + + +
+ +