pentatrion-design 1.2.1 → 1.2.2
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.
- package/.github/workflows/ci.yml +36 -0
- package/CHANGELOG.md +6 -0
- package/dist/Button-CVudu6dV.d.mts.map +1 -1
- package/dist/{Button-CL7xvvey.mjs → Button-Cx5QDjg9.mjs} +2 -2
- package/dist/{Button-CL7xvvey.mjs.map → Button-Cx5QDjg9.mjs.map} +1 -1
- package/dist/Field-BHxm4Nr-.mjs.map +1 -1
- package/dist/Input-B9HNBGpq.mjs.map +1 -1
- package/dist/Scroll-BSL6d8Ob.mjs.map +1 -1
- package/dist/{Snack-B1Fa9Ofb.mjs → Snack-0wCsjAOm.mjs} +7 -9
- package/dist/Snack-0wCsjAOm.mjs.map +1 -0
- package/dist/TooltipTrigger-VrJxlxNx.mjs.map +1 -1
- package/dist/badge-CtcHuvQK.mjs.map +1 -1
- package/dist/{button-tAEodFUL.mjs → button-CuqQ_n9M.mjs} +3 -3
- package/dist/{button-tAEodFUL.mjs.map → button-CuqQ_n9M.mjs.map} +1 -1
- package/dist/components/accordion/index.d.mts.map +1 -1
- package/dist/components/accordion/index.mjs +3 -5
- package/dist/components/accordion/index.mjs.map +1 -1
- package/dist/components/autocomplete/index.d.mts.map +1 -1
- package/dist/components/autocomplete/index.mjs +17 -22
- package/dist/components/autocomplete/index.mjs.map +1 -1
- package/dist/components/button/index.mjs +2 -2
- package/dist/components/context-menu/index.d.mts.map +1 -1
- package/dist/components/context-menu/index.mjs +3 -7
- package/dist/components/context-menu/index.mjs.map +1 -1
- package/dist/components/dialog/index.d.mts.map +1 -1
- package/dist/components/dropdown-menu-nested/index.mjs +1 -1
- package/dist/components/dropdown-menu-nested/index.mjs.map +1 -1
- package/dist/components/fields/checkbox/index.mjs +2 -2
- package/dist/components/fields/checkbox/index.mjs.map +1 -1
- package/dist/components/fields/color/index.mjs +3 -3
- package/dist/components/fields/color/index.mjs.map +1 -1
- package/dist/components/fields/date/index.mjs.map +1 -1
- package/dist/components/fields/file/index.d.mts.map +1 -1
- package/dist/components/fields/file/index.mjs +2 -2
- package/dist/components/fields/file/index.mjs.map +1 -1
- package/dist/components/fields/input-button/index.mjs +2 -2
- package/dist/components/fields/input-button/index.mjs.map +1 -1
- package/dist/components/fields/radio/index.mjs +2 -2
- package/dist/components/fields/radio/index.mjs.map +1 -1
- package/dist/components/fields/range/index.mjs.map +1 -1
- package/dist/components/fields/select/index.mjs +2 -2
- package/dist/components/fields/select/index.mjs.map +1 -1
- package/dist/components/fields/stars/index.mjs +3 -3
- package/dist/components/fields/stars/index.mjs.map +1 -1
- package/dist/components/fields/text/index.mjs +1 -1
- package/dist/components/fields/textarea/index.mjs.map +1 -1
- package/dist/components/fields/toggle/index.mjs.map +1 -1
- package/dist/components/fields/totp/index.mjs.map +1 -1
- package/dist/components/fields/wysiwyg/index.d.mts +10 -1
- package/dist/components/fields/wysiwyg/index.d.mts.map +1 -1
- package/dist/components/fields/wysiwyg/index.mjs +44 -12
- package/dist/components/fields/wysiwyg/index.mjs.map +1 -1
- package/dist/components/highlight/index.mjs.map +1 -1
- package/dist/components/modal/index.mjs +1 -1
- package/dist/components/notification/index.d.mts.map +1 -1
- package/dist/components/notification/index.mjs +1 -1
- package/dist/components/notification/index.mjs.map +1 -1
- package/dist/components/popover/index.mjs +2 -2
- package/dist/components/popover/index.mjs.map +1 -1
- package/dist/components/resizable/index.mjs.map +1 -1
- package/dist/components/resize-area/index.mjs.map +1 -1
- package/dist/components/select-legacy/index.mjs +3 -5
- package/dist/components/select-legacy/index.mjs.map +1 -1
- package/dist/components/snack/index.d.mts.map +1 -1
- package/dist/components/snack/index.mjs +1 -1
- package/dist/components/steps/index.mjs.map +1 -1
- package/dist/components/table/index.mjs.map +1 -1
- package/dist/components/tabs/index.mjs.map +1 -1
- package/dist/components/toast/index.mjs +1 -1
- package/dist/components/toast/index.mjs.map +1 -1
- package/dist/components/tooltip/index.mjs.map +1 -1
- package/dist/dropdown-menu-Bk0Asqb4.mjs.map +1 -1
- package/dist/hooks/index.d.mts +1 -4
- package/dist/hooks/index.d.mts.map +1 -1
- package/dist/hooks/index.mjs +2 -2
- package/dist/{hooks-CBijm9RA.mjs → hooks-BQw3Dsve.mjs} +3 -12
- package/dist/hooks-BQw3Dsve.mjs.map +1 -0
- package/dist/index-BG1rgXFb.d.mts.map +1 -1
- package/dist/index-C03MgO8e.d.mts.map +1 -1
- package/dist/loader-csj5qb99.mjs.map +1 -1
- package/dist/media-preview-DzVLd1Yz.mjs.map +1 -1
- package/dist/{modal-DY7p5b0n.mjs → modal-BndYAj4O.mjs} +2 -2
- package/dist/{modal-DY7p5b0n.mjs.map → modal-BndYAj4O.mjs.map} +1 -1
- package/dist/slot-D8EJRq72.mjs.map +1 -1
- package/dist/{text-BdLXdha1.mjs → text-INwc4EdW.mjs} +3 -3
- package/dist/{text-BdLXdha1.mjs.map → text-INwc4EdW.mjs.map} +1 -1
- package/package.json +12 -22
- package/src/components/accordion/Accordion.tsx +2 -5
- package/src/components/autocomplete/Autocomplete.tsx +8 -12
- package/src/components/autocomplete/LazyAutocomplete.tsx +5 -8
- package/src/components/autocomplete/SimpleAutocomplete.tsx +2 -4
- package/src/components/context-menu/ContextMenu.tsx +3 -2
- package/src/components/fields/wysiwyg/index.ts +9 -0
- package/src/components/resizable/util.ts +1 -0
- package/src/components/select-legacy/Select.tsx +2 -5
- package/src/components/snack/Snack.tsx +2 -5
- package/src/hooks/index.ts +0 -1
- package/tsdown.config.ts +0 -1
- package/vitest.config.ts +1 -1
- package/dist/Snack-B1Fa9Ofb.mjs.map +0 -1
- package/dist/components/fields/altcha/index.d.mts +0 -20
- package/dist/components/fields/altcha/index.d.mts.map +0 -1
- package/dist/components/fields/altcha/index.mjs +0 -128
- package/dist/components/fields/altcha/index.mjs.map +0 -1
- package/dist/hooks-CBijm9RA.mjs.map +0 -1
- package/src/components/fields/altcha/Altcha.stories.tsx +0 -24
- package/src/components/fields/altcha/Altcha.tsx +0 -52
- package/src/components/fields/altcha/AltchaField.stories.tsx +0 -76
- package/src/components/fields/altcha/AltchaField.tsx +0 -24
- package/src/components/fields/altcha/env.d.ts +0 -21
- package/src/components/fields/altcha/index.ts +0 -2
- package/src/components/fields/altcha/locales.fr.ts +0 -18
- package/src/hooks/useEffectEvent.ts +0 -11
- package/src/hooks/useRipple.test.tsx +0 -52
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
check:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Setup Node
|
|
19
|
+
uses: actions/setup-node@v6
|
|
20
|
+
with:
|
|
21
|
+
node-version: 26.5.0
|
|
22
|
+
|
|
23
|
+
- name: "Install JS dependencies"
|
|
24
|
+
run: "npm ci"
|
|
25
|
+
|
|
26
|
+
- name: Format
|
|
27
|
+
run: npm run check:format
|
|
28
|
+
|
|
29
|
+
- name: Typecheck
|
|
30
|
+
run: npm run check:type
|
|
31
|
+
|
|
32
|
+
- name: Lint
|
|
33
|
+
run: npm run check:lint
|
|
34
|
+
|
|
35
|
+
- name: Test
|
|
36
|
+
run: npm run test-run
|
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-CVudu6dV.d.mts","names":[],"sources":["../src/components/button/Button.tsx"],"mappings":";;;UAmBiB,oBAAoB,KAAK;EACxC;EAEA;EAEA;EAEA,QAAQ;EAER;EAEA;EAEA;EAEA;;;;EAIA;EAEA;EAEA;EAEA,MAAM,UAAU;;cAGL,iBAAc
|
|
1
|
+
{"version":3,"file":"Button-CVudu6dV.d.mts","names":[],"sources":["../src/components/button/Button.tsx"],"mappings":";;;UAmBiB,oBAAoB,KAAK;EACxC;EAEA;EAEA;EAEA,QAAQ;EAER;EAEA;EAEA;EAEA;;;;EAIA;EAEA;EAEA;EAEA,MAAM,UAAU;;cAGL,iBAAc;;;;;;6CAqD1B;iBAEe,SACd,YACA,SACA,SACA,OACA,MACA,WACA,WACA,UACA,UACA,UACA,MACA,SACA,OACA,QACG,SACF,8BAAW,IAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as useRipple } from "./hooks-CBijm9RA.mjs";
|
|
2
1
|
import { t as Loader } from "./loader-csj5qb99.mjs";
|
|
2
|
+
import { h as useRipple } from "./hooks-BQw3Dsve.mjs";
|
|
3
3
|
import { t as Slot } from "./slot-D8EJRq72.mjs";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
5
5
|
import { useImperativeHandle, useRef } from "react";
|
|
@@ -208,4 +208,4 @@ function Button(t0) {
|
|
|
208
208
|
//#endregion
|
|
209
209
|
export { buttonVariants as n, Button as t };
|
|
210
210
|
|
|
211
|
-
//# sourceMappingURL=Button-
|
|
211
|
+
//# sourceMappingURL=Button-Cx5QDjg9.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-CL7xvvey.mjs","names":["ComponentProps","RefObject","useImperativeHandle","useRef","clsx","Loader","useRipple","Slot","cva","ThemeColor","loaderColor","color","ButtonProps","Omit","withRipple","variant","size","width","loading","disabled","focusable","selected","icon","asChild","ref","HTMLButtonElement","buttonVariants","variants","clickable","true","false","small","medium","large","input","custom","scalable","fit","full","contained","light","outlined","text","ghost","defaultVariants","Button","t0","$","_c","children","className","props","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","undefined","inputRef","t12","Symbol","for","current","rippleEnabled","includes","Comp","t13","t14","t15","t16","t17"],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Loader } from \"../loader\";\nimport { useRipple } from \"../../hooks\";\nimport { Slot } from \"../slot\";\nimport { cva } from \"class-variance-authority\";\nimport { ThemeColor } from \"../../types\";\n\nfunction loaderColor(color: ThemeColor): ThemeColor {\n switch (color) {\n case \"yellow-alpha\":\n return \"yellow\";\n case \"gray-alpha\":\n return \"gray\";\n default:\n return color;\n }\n}\n\nexport interface ButtonProps extends Omit<ComponentProps<\"button\">, \"color\"> {\n withRipple?: boolean;\n\n variant?: \"contained\" | \"light\" | \"outlined\" | \"text\" | \"ghost\";\n\n size?: \"small\" | \"medium\" | \"large\" | \"custom\" | \"input\" | \"scalable\";\n\n color?: ThemeColor;\n\n width?: \"fit\" | \"full\" | \"custom\";\n\n loading?: boolean;\n\n disabled?: boolean;\n\n focusable?: boolean;\n /**\n * For a selected item inside a group.\n */\n selected?: boolean;\n\n icon?: boolean;\n\n asChild?: boolean;\n\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const buttonVariants = cva(\n \"relative box-border inline-flex items-center leading-5 no-underline focus-visible-has:outline-2\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer active:translate-y-px focus-visible-has:z-10\",\n false: \"pointer-events-none\",\n },\n size: {\n small: \"[--h-button:1.5rem] h-(--h-button) truncate\",\n medium: \"[--h-button:2rem] h-(--h-button) truncate\",\n large: \"[--h-button:3rem] h-(--h-button) truncate\",\n input: \"[--h-button:calc(var(--h-input)-2px)] h-(--h-button) truncate\",\n custom: \"truncate\",\n scalable: \"\",\n },\n icon: {\n true: \"rounded-[calc(var(--h-button)/2)] min-w-(--h-button) [&_i,&_img,&_svg]:w-(--h-button) justify-center [&_:last-child:not(i,img,svg,strong)]:pr-4\",\n false: \"rounded-2xl px-4\",\n custom: \"\",\n },\n width: {\n fit: \"w-full max-w-fit\",\n full: \"w-full justify-center\",\n custom: \"\",\n },\n variant: {\n /**\n * src/tailwind/plugin.ts\n * addVariant(\"current\", [\n * `&[aria-checked=\"true\"]`,\n * `&[aria-current=\"page\"]`,\n * `&:has(:checked)`\n * ])\n */\n contained:\n \"shadow-sm hover:shadow-md active:shadow-md-active outline-offset-0 text-custom-text bg-custom-3 hover:bg-custom-4 current:bg-custom-4 focus-visible-has:outline-custom-5\",\n light:\n \"shadow-sm hover:shadow-md has-checked:shadow-md focus:shadow-md active:shadow-md-active outline-offset-0 bg-custom-1 text-gray-text hover:text-custom-text hover:bg-custom-3 current:bg-custom-3 focus-visible-has:outline-custom-4\",\n outlined:\n \"bg-custom-0 hover:shadow-xs active:shadow-xs-active text-gray-7 outline-offset-0 border-1 hover:bg-custom-1 border-custom-border focus-visible-has:outline-custom-5 current:bg-custom-3 focus-visible-has:border-transparent\",\n text: \"bg-transparent hover:shadow-xs active:shadow-xs-active outline-offset-0 hover:bg-custom-1 dark:hover:bg-custom-1/50 text-gray-7 hover:text-gray-8 current:bg-custom-3 focus-visible-has:outline-custom-5\",\n ghost: \"outline-offset-0 current:bg-custom-1 focus-visible-has:outline-custom-5\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n icon: false,\n variant: \"contained\",\n clickable: true,\n width: \"fit\",\n },\n },\n);\n\nexport function Button({\n withRipple = true,\n variant = \"contained\",\n loading = false,\n color = \"yellow\",\n size = \"medium\",\n focusable = true,\n className,\n disabled = false,\n children,\n selected = false,\n icon = false,\n asChild = false,\n width = \"fit\",\n ref,\n ...props\n}: ButtonProps) {\n const inputRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => inputRef.current,\n );\n\n const rippleEnabled = !loading && !disabled && withRipple;\n\n useRipple(\n inputRef,\n [\"text\", \"outlined\", \"ghost\"].includes(variant) ? true : false,\n rippleEnabled,\n );\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n tabIndex={focusable ? 0 : -1}\n role=\"button\"\n ref={inputRef}\n className={clsx(\n buttonVariants({\n variant,\n size,\n width,\n icon: width === \"custom\" && !icon ? \"custom\" : icon,\n }),\n className,\n loading && !icon && \"text-transparent\",\n )}\n data-color={color}\n data-variant={variant}\n aria-checked={selected}\n suppressHydrationWarning\n aria-busy={loading}\n {...(disabled ? { disabled } : {})}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {/* {!notClickable && withRipple && ripples} */}\n {children}\n {loading && (\n <Loader\n color={loaderColor(color)}\n className={clsx(\"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\")}\n position=\"absolute\"\n />\n )}\n </>\n )}\n </Comp>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button-Cx5QDjg9.mjs","names":["ComponentProps","RefObject","useImperativeHandle","useRef","clsx","Loader","useRipple","Slot","cva","ThemeColor","loaderColor","color","ButtonProps","Omit","withRipple","variant","size","width","loading","disabled","focusable","selected","icon","asChild","ref","HTMLButtonElement","buttonVariants","variants","clickable","true","false","small","medium","large","input","custom","scalable","fit","full","contained","light","outlined","text","ghost","defaultVariants","Button","t0","$","_c","children","className","props","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","undefined","inputRef","t12","Symbol","for","current","rippleEnabled","includes","Comp","t13","t14","t15","t16","t17"],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Loader } from \"../loader\";\nimport { useRipple } from \"../../hooks\";\nimport { Slot } from \"../slot\";\nimport { cva } from \"class-variance-authority\";\nimport { ThemeColor } from \"../../types\";\n\nfunction loaderColor(color: ThemeColor): ThemeColor {\n switch (color) {\n case \"yellow-alpha\":\n return \"yellow\";\n case \"gray-alpha\":\n return \"gray\";\n default:\n return color;\n }\n}\n\nexport interface ButtonProps extends Omit<ComponentProps<\"button\">, \"color\"> {\n withRipple?: boolean;\n\n variant?: \"contained\" | \"light\" | \"outlined\" | \"text\" | \"ghost\";\n\n size?: \"small\" | \"medium\" | \"large\" | \"custom\" | \"input\" | \"scalable\";\n\n color?: ThemeColor;\n\n width?: \"fit\" | \"full\" | \"custom\";\n\n loading?: boolean;\n\n disabled?: boolean;\n\n focusable?: boolean;\n /**\n * For a selected item inside a group.\n */\n selected?: boolean;\n\n icon?: boolean;\n\n asChild?: boolean;\n\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const buttonVariants = cva(\n \"relative box-border inline-flex items-center leading-5 no-underline focus-visible-has:outline-2\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer active:translate-y-px focus-visible-has:z-10\",\n false: \"pointer-events-none\",\n },\n size: {\n small: \"[--h-button:1.5rem] h-(--h-button) truncate\",\n medium: \"[--h-button:2rem] h-(--h-button) truncate\",\n large: \"[--h-button:3rem] h-(--h-button) truncate\",\n input: \"[--h-button:calc(var(--h-input)-2px)] h-(--h-button) truncate\",\n custom: \"truncate\",\n scalable: \"\",\n },\n icon: {\n true: \"rounded-[calc(var(--h-button)/2)] min-w-(--h-button) [&_i,&_img,&_svg]:w-(--h-button) justify-center [&_:last-child:not(i,img,svg,strong)]:pr-4\",\n false: \"rounded-2xl px-4\",\n custom: \"\",\n },\n width: {\n fit: \"w-full max-w-fit\",\n full: \"w-full justify-center\",\n custom: \"\",\n },\n variant: {\n /**\n * src/tailwind/plugin.ts\n * addVariant(\"current\", [\n * `&[aria-checked=\"true\"]`,\n * `&[aria-current=\"page\"]`,\n * `&:has(:checked)`\n * ])\n */\n contained:\n \"shadow-sm hover:shadow-md active:shadow-md-active outline-offset-0 text-custom-text bg-custom-3 hover:bg-custom-4 current:bg-custom-4 focus-visible-has:outline-custom-5\",\n light:\n \"shadow-sm hover:shadow-md has-checked:shadow-md focus:shadow-md active:shadow-md-active outline-offset-0 bg-custom-1 text-gray-text hover:text-custom-text hover:bg-custom-3 current:bg-custom-3 focus-visible-has:outline-custom-4\",\n outlined:\n \"bg-custom-0 hover:shadow-xs active:shadow-xs-active text-gray-7 outline-offset-0 border-1 hover:bg-custom-1 border-custom-border focus-visible-has:outline-custom-5 current:bg-custom-3 focus-visible-has:border-transparent\",\n text: \"bg-transparent hover:shadow-xs active:shadow-xs-active outline-offset-0 hover:bg-custom-1 dark:hover:bg-custom-1/50 text-gray-7 hover:text-gray-8 current:bg-custom-3 focus-visible-has:outline-custom-5\",\n ghost: \"outline-offset-0 current:bg-custom-1 focus-visible-has:outline-custom-5\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n icon: false,\n variant: \"contained\",\n clickable: true,\n width: \"fit\",\n },\n },\n);\n\nexport function Button({\n withRipple = true,\n variant = \"contained\",\n loading = false,\n color = \"yellow\",\n size = \"medium\",\n focusable = true,\n className,\n disabled = false,\n children,\n selected = false,\n icon = false,\n asChild = false,\n width = \"fit\",\n ref,\n ...props\n}: ButtonProps) {\n const inputRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => inputRef.current,\n );\n\n const rippleEnabled = !loading && !disabled && withRipple;\n\n useRipple(\n inputRef,\n [\"text\", \"outlined\", \"ghost\"].includes(variant) ? true : false,\n rippleEnabled,\n );\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n tabIndex={focusable ? 0 : -1}\n role=\"button\"\n ref={inputRef}\n className={clsx(\n buttonVariants({\n variant,\n size,\n width,\n icon: width === \"custom\" && !icon ? \"custom\" : icon,\n }),\n className,\n loading && !icon && \"text-transparent\",\n )}\n data-color={color}\n data-variant={variant}\n aria-checked={selected}\n suppressHydrationWarning\n aria-busy={loading}\n {...(disabled ? { disabled } : {})}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {/* {!notClickable && withRipple && ripples} */}\n {children}\n {loading && (\n <Loader\n color={loaderColor(color)}\n className={clsx(\"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\")}\n position=\"absolute\"\n />\n )}\n </>\n )}\n </Comp>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field-BHxm4Nr-.mjs","names":["isValidElement","ReactNode","useId","ThemeColor","isArrayOfString","Slot","useTranslate","FieldProps","label","hint","description","footerDescription","errors","warning","children","id","preventLayerShift","className","Field","t0","$","_c","rawErrors","providedId","t1","dataTestId","undefined","translate","t2","map","k","join","internalId","t3","props","t4","labelElement","t5","hintElement","t6","errorsElement","t7","warningElement","color","showLabel","showFooter","t8","testIdProp","t9","t10","t11","t12","t13","t14"],"sources":["../src/components/fields/field/Field.tsx"],"sourcesContent":["import { isValidElement, ReactNode, useId } from \"react\";\nimport { type ThemeColor } from \"../../../types\";\nimport { isArrayOfString } from \"../../../lib/arrUtil\";\nimport { Slot } from \"../../slot\";\nimport { useTranslate } from \"../../i18n\";\n\nexport interface FieldProps {\n label?: ReactNode;\n hint?: ReactNode;\n description?: ReactNode;\n footerDescription?: ReactNode;\n errors?: ReactNode | boolean;\n warning?: ReactNode | boolean;\n children: ReactNode;\n id?: string;\n preventLayerShift?: boolean;\n \"data-testid\"?: string;\n className?: string;\n}\n\nexport function Field({\n label,\n hint,\n description,\n footerDescription,\n errors: rawErrors,\n warning,\n id: providedId,\n children,\n preventLayerShift = true,\n \"data-testid\": dataTestId,\n className,\n}: FieldProps) {\n const translate = useTranslate();\n const errors =\n isArrayOfString(rawErrors) && translate\n ? rawErrors.map((k) => translate(k)).join(\", \")\n : rawErrors;\n const internalId = useId();\n const id = isValidElement<{ id?: string }>(children)\n ? children?.props.id\n : (providedId ?? internalId);\n\n const labelElement = label && <span>{label}</span>;\n const hintElement = hint && <span className=\"text-body-sm text-gray-6\">{hint}</span>;\n const errorsElement = errors && typeof errors !== \"boolean\" && (\n <span\n className=\"text-red-4 dark:text-red-2 font-medium\"\n aria-live=\"polite\"\n role=\"status\"\n data-testid={dataTestId ? `input-field/alert/${dataTestId}` : undefined}\n >\n <i className=\"fe-circle-exclamation\"></i>\n <span>{errors}</span>\n </span>\n );\n const warningElement = warning && typeof warning !== \"boolean\" && (\n <span className=\"text-orange-4 dark:text-orange-2 font-medium\" aria-live=\"polite\" role=\"status\">\n <i className=\"fe-circle-exclamation\"></i>\n <span data-testid={dataTestId ? `input-field/warning/${dataTestId}` : undefined}>\n {warning}\n </span>\n </span>\n );\n\n const color: ThemeColor = errors ? \"red\" : warning ? \"orange\" : \"yellow\";\n\n const showLabel = preventLayerShift || label || hint;\n const showFooter = preventLayerShift || errorsElement || warningElement;\n\n const testIdProp = dataTestId ? { \"data-testid\": `input-field-${dataTestId}` } : {};\n\n return (\n <div role=\"group\" className={className} {...testIdProp}>\n {showLabel &&\n (label || hint ? (\n <label className=\"mb-1 flex flex-wrap items-center justify-between\" htmlFor={id}>\n {labelElement}\n {hintElement}\n </label>\n ) : (\n <label htmlFor={id} className=\"invisible\"></label>\n ))}\n {description && <div className=\"text-body-sm text-gray-6 mb-2\">{description}</div>}\n <Slot id={id} color={color}>\n {children}\n </Slot>\n {showFooter && (\n <div className=\"text-body-sm text-gray-6 mt-1 min-h-5\">\n {errorsElement || warningElement}\n </div>\n )}\n {footerDescription && (\n <div className=\"text-body-sm text-gray-6 mb-2\">{footerDescription}</div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAoBA,SAAOkB,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAe,MAAA,EAAAb,OAAAC,MAAAC,aAAAC,mBAAAC,QAAAU,WAAAT,SAAAE,IAAAQ,YAAAT,UAAAE,mBAAAQ,IAAA,eAAAC,YAAAR,cAAAE;CASpB,MAAAH,oBAAAQ,OAAAE,KAAAA,IAAA,OAAAF;CAIA,MAAAG,YAAkBrB,aAAa;CAAE,IAAAsB;CAAA,IAAAR,EAAA,OAAAE,aAAAF,EAAA,OAAAO,WAAA;EAE/BC,KAAAxB,gBAAgBkB,SAAsB,KAAtCK,YACIL,UAASO,KAAKC,MAAOH,UAAUG,CAAC,CAAC,CAAC,CAAAC,KAAM,IAChC,IAFZT;EAEaF,EAAA,KAAAE;EAAAF,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAHf,MAAAR,SACEgB;CAGF,MAAAI,aAAmB9B,MAAM;CAAE,IAAA+B;CAAA,IAAAb,EAAA,OAAAN,YAAAM,EAAA,OAAAY,cAAAZ,EAAA,OAAAG,YAAA;EAChBU,KAAAjC,eAAgCc,QAEd,IADzBA,UAAQoB,MAAUnB,KACjBQ,cAAAS;EAAyBZ,EAAA,KAAAN;EAAAM,EAAA,KAAAY;EAAAZ,EAAA,KAAAG;EAAAH,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAF9B,MAAAL,KAAWkB;CAEoB,IAAAE;CAAA,IAAAf,EAAA,OAAAZ,OAAA;EAEV2B,KAAA3B,SAAS,oBAAA,QAAA,EAAA,UAAOA,MAAa,CAAA;EAAAY,EAAA,KAAAZ;EAAAY,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAlD,MAAAgB,eAAqBD;CAA8B,IAAAE;CAAA,IAAAjB,EAAA,OAAAX,MAAA;EAC/B4B,KAAA5B,QAAQ,oBAAA,QAAA;GAAgB,WAAA;
|
|
1
|
+
{"version":3,"file":"Field-BHxm4Nr-.mjs","names":["isValidElement","ReactNode","useId","ThemeColor","isArrayOfString","Slot","useTranslate","FieldProps","label","hint","description","footerDescription","errors","warning","children","id","preventLayerShift","className","Field","t0","$","_c","rawErrors","providedId","t1","dataTestId","undefined","translate","t2","map","k","join","internalId","t3","props","t4","labelElement","t5","hintElement","t6","errorsElement","t7","warningElement","color","showLabel","showFooter","t8","testIdProp","t9","t10","t11","t12","t13","t14"],"sources":["../src/components/fields/field/Field.tsx"],"sourcesContent":["import { isValidElement, ReactNode, useId } from \"react\";\nimport { type ThemeColor } from \"../../../types\";\nimport { isArrayOfString } from \"../../../lib/arrUtil\";\nimport { Slot } from \"../../slot\";\nimport { useTranslate } from \"../../i18n\";\n\nexport interface FieldProps {\n label?: ReactNode;\n hint?: ReactNode;\n description?: ReactNode;\n footerDescription?: ReactNode;\n errors?: ReactNode | boolean;\n warning?: ReactNode | boolean;\n children: ReactNode;\n id?: string;\n preventLayerShift?: boolean;\n \"data-testid\"?: string;\n className?: string;\n}\n\nexport function Field({\n label,\n hint,\n description,\n footerDescription,\n errors: rawErrors,\n warning,\n id: providedId,\n children,\n preventLayerShift = true,\n \"data-testid\": dataTestId,\n className,\n}: FieldProps) {\n const translate = useTranslate();\n const errors =\n isArrayOfString(rawErrors) && translate\n ? rawErrors.map((k) => translate(k)).join(\", \")\n : rawErrors;\n const internalId = useId();\n const id = isValidElement<{ id?: string }>(children)\n ? children?.props.id\n : (providedId ?? internalId);\n\n const labelElement = label && <span>{label}</span>;\n const hintElement = hint && <span className=\"text-body-sm text-gray-6\">{hint}</span>;\n const errorsElement = errors && typeof errors !== \"boolean\" && (\n <span\n className=\"text-red-4 dark:text-red-2 font-medium\"\n aria-live=\"polite\"\n role=\"status\"\n data-testid={dataTestId ? `input-field/alert/${dataTestId}` : undefined}\n >\n <i className=\"fe-circle-exclamation\"></i>\n <span>{errors}</span>\n </span>\n );\n const warningElement = warning && typeof warning !== \"boolean\" && (\n <span className=\"text-orange-4 dark:text-orange-2 font-medium\" aria-live=\"polite\" role=\"status\">\n <i className=\"fe-circle-exclamation\"></i>\n <span data-testid={dataTestId ? `input-field/warning/${dataTestId}` : undefined}>\n {warning}\n </span>\n </span>\n );\n\n const color: ThemeColor = errors ? \"red\" : warning ? \"orange\" : \"yellow\";\n\n const showLabel = preventLayerShift || label || hint;\n const showFooter = preventLayerShift || errorsElement || warningElement;\n\n const testIdProp = dataTestId ? { \"data-testid\": `input-field-${dataTestId}` } : {};\n\n return (\n <div role=\"group\" className={className} {...testIdProp}>\n {showLabel &&\n (label || hint ? (\n <label className=\"mb-1 flex flex-wrap items-center justify-between\" htmlFor={id}>\n {labelElement}\n {hintElement}\n </label>\n ) : (\n <label htmlFor={id} className=\"invisible\"></label>\n ))}\n {description && <div className=\"text-body-sm text-gray-6 mb-2\">{description}</div>}\n <Slot id={id} color={color}>\n {children}\n </Slot>\n {showFooter && (\n <div className=\"text-body-sm text-gray-6 mt-1 min-h-5\">\n {errorsElement || warningElement}\n </div>\n )}\n {footerDescription && (\n <div className=\"text-body-sm text-gray-6 mb-2\">{footerDescription}</div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input-B9HNBGpq.mjs","names":["ComponentPropsWithRef","ReactNode","clsx","ThemeColor","InputProps","Omit","variant","disabled","prefix","suffix","color","size","flexibleWidth","children","inputClassName","sizeVariant","small","medium","large","custom","inputConfig","container","input","icon","Input","t0","$","_c","className","readOnly","ref","rest","t1","t2","t3","t4","t5","type","undefined","t6","t7","t8","t9","t10","t11","t12","t13","e","target","HTMLInputElement","select","t14","t15","t16","t17"],"sources":["../src/components/fields/text/Input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport type { ThemeColor } from \"../../../types\";\n\nexport interface InputProps extends Omit<ComponentPropsWithRef<\"input\">, \"prefix\" | \"size\"> {\n variant?: \"normal\" | \"ghost\";\n disabled?: boolean;\n prefix?: ReactNode;\n suffix?: ReactNode;\n color?: ThemeColor;\n size?: \"small\" | \"medium\" | \"large\" | \"custom\";\n flexibleWidth?: boolean;\n children?: ReactNode;\n inputClassName?: string;\n}\n\nexport const sizeVariant = {\n small: \"[--h-input:24px] h-(--h-input)\",\n medium: \"[--h-input:32px] h-(--h-input)\",\n large: \"[--h-input:48px] h-(--h-input)\",\n custom: \"\",\n};\n\nexport const inputConfig = {\n container: \"p8n-input-text rounded-full flex box-border\",\n input: \"h-full flex-1 appearance-none outline-hidden filter-none min-w-0 bg-transparent\",\n icon: \"[--h-icon:calc(var(--h-input)-2px)] h-(--h-icon) w-(--h-icon) inline-flex-center\",\n};\n\nexport function Input({\n variant = \"normal\",\n color = \"yellow\",\n disabled = false,\n prefix,\n suffix,\n className,\n inputClassName,\n readOnly,\n size = \"medium\",\n flexibleWidth = true,\n type,\n children,\n ref,\n ...rest\n}: InputProps) {\n return (\n <div\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-color={color}\n data-variant={variant}\n className={clsx(inputConfig.container, sizeVariant[size], className)}\n >\n {prefix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof prefix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {prefix}\n </div>\n )}\n <input\n type={type}\n ref={ref}\n className={clsx(\n inputConfig.input,\n size !== \"custom\" && !prefix && \"pl-4\",\n size !== \"custom\" && type !== \"date\" && type !== \"datetime-local\"\n ? !suffix && \"pr-4\"\n : \"pr-1\",\n flexibleWidth && \"w-0\",\n inputClassName,\n )}\n readOnly={readOnly}\n onClick={(e) => {\n if (readOnly) {\n (e.target as HTMLInputElement)?.select();\n }\n }}\n {...(disabled ? { disabled } : {})}\n {...rest}\n />\n {suffix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof suffix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {suffix}\n </div>\n )}\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAgBA,MAAae,cAAc;CACzBC,OAAO;CACPC,QAAQ;CACRC,OAAO;CACPC,QAAQ;AACV;AAEA,MAAaC,cAAc;CACzBC,WAAW;CACXC,OAAO;CACPC,MAAM;AACR;AAEA,SAAOC,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAd;CAAA,IAAAe;CAAA,IAAAd;CAAA,IAAAN;CAAA,IAAAqB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAtB;CAAA,IAAAuB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAX,EAAA,OAAAD,IAAA;EAAe,CAAA,CAAAnB,SAAA0B,IAAAtB,OAAAuB,IAAA1B,UAAA2B,IAAA1B,QAAAC,QAAAmB,WAAAd,gBAAAe,UAAAlB,MAAAwB,IAAAvB,eAAAwB,IAAAC,MAAAxB,UAAAiB,QAAAC,QAAAN;EAeTC,EAAA,KAAAD;EAAAC,EAAA,KAAAb;EAAAa,EAAA,KAAAE;EAAAF,EAAA,KAAAZ;EAAAY,EAAA,KAAAlB;EAAAkB,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAjB;EAAAiB,EAAA,KAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;CAAA,OAAA;EAAAxB,WAAAa,EAAA;EAAAE,YAAAF,EAAA;EAAAZ,iBAAAY,EAAA;EAAAlB,SAAAkB,EAAA;EAAAG,WAAAH,EAAA;EAAAI,MAAAJ,EAAA;EAAAK,OAAAL,EAAA;EAAAjB,SAAAiB,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;EAAAQ,KAAAR,EAAA;EAAAS,KAAAT,EAAA;EAAAU,KAAAV,EAAA;EAAAW,OAAAX,EAAA;CAAA;CAdX,MAAApB,UAAA0B,OAAAM,KAAAA,IAAA,WAAAN;CACA,MAAAtB,QAAAuB,OAAAK,KAAAA,IAAA,WAAAL;CACA,MAAA1B,WAAA2B,OAAAI,KAAAA,IAAA,QAAAJ;CAMA,MAAAvB,OAAAwB,OAAAG,KAAAA,IAAA,WAAAH;CACA,MAAAvB,gBAAAwB,OAAAE,KAAAA,IAAA,OAAAF;CAY2C,MAAAG,KAAAxB,YAAYJ;CAAK,IAAA6B;CAAA,IAAAd,EAAA,QAAAE,aAAAF,EAAA,QAAAa,IAAA;EAA7CC,KAAAtC,KAAKkB,YAAWC,WAAYkB,IAAmBX,SAAS;EAACF,EAAA,MAAAE;EAAAF,EAAA,MAAAa;EAAAb,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,IAAAe;CAAA,IAAAf,EAAA,QAAAlB,QAAA;EAEnEiC,KAAAjC,UACC,oBAAA,OAAA;GACa,WAAAN,KAAK,CACd,wBACA,OAAOM,WAAW,YAAlB,8BAA4D,CAC7D;
|
|
1
|
+
{"version":3,"file":"Input-B9HNBGpq.mjs","names":["ComponentPropsWithRef","ReactNode","clsx","ThemeColor","InputProps","Omit","variant","disabled","prefix","suffix","color","size","flexibleWidth","children","inputClassName","sizeVariant","small","medium","large","custom","inputConfig","container","input","icon","Input","t0","$","_c","className","readOnly","ref","rest","t1","t2","t3","t4","t5","type","undefined","t6","t7","t8","t9","t10","t11","t12","t13","e","target","HTMLInputElement","select","t14","t15","t16","t17"],"sources":["../src/components/fields/text/Input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport type { ThemeColor } from \"../../../types\";\n\nexport interface InputProps extends Omit<ComponentPropsWithRef<\"input\">, \"prefix\" | \"size\"> {\n variant?: \"normal\" | \"ghost\";\n disabled?: boolean;\n prefix?: ReactNode;\n suffix?: ReactNode;\n color?: ThemeColor;\n size?: \"small\" | \"medium\" | \"large\" | \"custom\";\n flexibleWidth?: boolean;\n children?: ReactNode;\n inputClassName?: string;\n}\n\nexport const sizeVariant = {\n small: \"[--h-input:24px] h-(--h-input)\",\n medium: \"[--h-input:32px] h-(--h-input)\",\n large: \"[--h-input:48px] h-(--h-input)\",\n custom: \"\",\n};\n\nexport const inputConfig = {\n container: \"p8n-input-text rounded-full flex box-border\",\n input: \"h-full flex-1 appearance-none outline-hidden filter-none min-w-0 bg-transparent\",\n icon: \"[--h-icon:calc(var(--h-input)-2px)] h-(--h-icon) w-(--h-icon) inline-flex-center\",\n};\n\nexport function Input({\n variant = \"normal\",\n color = \"yellow\",\n disabled = false,\n prefix,\n suffix,\n className,\n inputClassName,\n readOnly,\n size = \"medium\",\n flexibleWidth = true,\n type,\n children,\n ref,\n ...rest\n}: InputProps) {\n return (\n <div\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-color={color}\n data-variant={variant}\n className={clsx(inputConfig.container, sizeVariant[size], className)}\n >\n {prefix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof prefix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {prefix}\n </div>\n )}\n <input\n type={type}\n ref={ref}\n className={clsx(\n inputConfig.input,\n size !== \"custom\" && !prefix && \"pl-4\",\n size !== \"custom\" && type !== \"date\" && type !== \"datetime-local\"\n ? !suffix && \"pr-4\"\n : \"pr-1\",\n flexibleWidth && \"w-0\",\n inputClassName,\n )}\n readOnly={readOnly}\n onClick={(e) => {\n if (readOnly) {\n (e.target as HTMLInputElement)?.select();\n }\n }}\n {...(disabled ? { disabled } : {})}\n {...rest}\n />\n {suffix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof suffix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {suffix}\n </div>\n )}\n {children}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroll-BSL6d8Ob.mjs","names":["ComponentPropsWithoutRef","useEffect","useRef","useState","clsx","TOLERANCE","Props","horizontal","scrollVariants","vertical","inner","shadow","shadowStart","shadowEnd","child","Scroll","t0","$","_c","children","className","rest","t1","undefined","showStartShadow","setShowStartShadow","showEndShadow","setShowEndShadow","scrollChildRef","scrollContainerRef","position","t2","container","containerRect","getBoundingClientRect","childRect","isOnStartEdge","left","top","isOnEndEdge","right","bottom","previousShowStartShadow","previousShowEndShadow","setShadows","t3","resizeObserver","ResizeObserver","current","observe","disconnect","t4","handleScroll","event","currentTarget","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20"],"sources":["../src/components/scroll/Scroll.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, useEffect, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nconst TOLERANCE = 5;\n\ninterface Props extends ComponentPropsWithoutRef<\"div\"> {\n horizontal?: boolean;\n}\n\nexport const scrollVariants = {\n vertical: {\n inner: \"overflow-y-auto h-full\",\n shadow: \"h-1 left-0 right-0\",\n shadowStart: \"top-0 bg-linear-to-b from-gray-8/10\",\n shadowEnd: \"bottom-0 bg-linear-to-t from-gray-8/10\",\n child: \"\",\n },\n horizontal: {\n inner: \"overflow-x-auto\",\n shadow: \"w-1 top-0 bottom-0\",\n shadowStart: \"left-0 bg-linear-to-r from-gray-8/10\",\n shadowEnd: \"right-0 bg-linear-to-l from-gray-8/10\",\n child: \"inline-block\",\n },\n};\n\nexport function Scroll({ horizontal = false, className, children, ...rest }: Props) {\n const [showStartShadow, setShowStartShadow] = useState(false);\n const [showEndShadow, setShowEndShadow] = useState(false);\n const scrollChildRef = useRef<HTMLDivElement>(null);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const position = horizontal ? \"horizontal\" : \"vertical\";\n\n const setShadows = (container: HTMLDivElement | null, child: HTMLDivElement | null) => {\n if (!container || !child) {\n return;\n }\n\n const containerRect = container.getBoundingClientRect();\n\n const childRect = child.getBoundingClientRect();\n\n const isOnStartEdge = horizontal\n ? containerRect.left - childRect.left < TOLERANCE\n : containerRect.top - childRect.top < TOLERANCE;\n\n const isOnEndEdge = horizontal\n ? childRect.right - containerRect.right < TOLERANCE\n : childRect.bottom - containerRect.bottom < TOLERANCE;\n\n setShowStartShadow((previousShowStartShadow) =>\n isOnStartEdge === previousShowStartShadow\n ? !previousShowStartShadow\n : previousShowStartShadow,\n );\n\n setShowEndShadow((previousShowEndShadow) =>\n isOnEndEdge === previousShowEndShadow ? !previousShowEndShadow : previousShowEndShadow,\n );\n };\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n setShadows(scrollContainerRef.current, scrollChildRef.current);\n });\n resizeObserver.observe(scrollChildRef.current!);\n resizeObserver.observe(scrollContainerRef.current!);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n function handleScroll(event: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (!scrollChildRef?.current) {\n return;\n }\n setShadows(event.currentTarget, scrollChildRef.current);\n }\n\n return (\n <div className={clsx(\"ll-scroll-zone\", \"relative\", className)} {...rest}>\n <div\n className={clsx(\n \"scroll-shadow-sm absolute z-1 opacity-0 transition-all\",\n scrollVariants[position].shadow,\n scrollVariants[position].shadowStart,\n showStartShadow && \"opacity-100\",\n )}\n ></div>\n <div\n className={clsx(\n \"scroll-shadow-sm absolute z-1 opacity-0 transition-all\",\n scrollVariants[position].shadow,\n scrollVariants[position].shadowEnd,\n showEndShadow && \"opacity-100\",\n )}\n ></div>\n <div\n className={scrollVariants[position].inner}\n ref={scrollContainerRef}\n onScroll={handleScroll}\n >\n <div className={scrollVariants[position].child} ref={scrollChildRef}>\n {children}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Scroll-BSL6d8Ob.mjs","names":["ComponentPropsWithoutRef","useEffect","useRef","useState","clsx","TOLERANCE","Props","horizontal","scrollVariants","vertical","inner","shadow","shadowStart","shadowEnd","child","Scroll","t0","$","_c","children","className","rest","t1","undefined","showStartShadow","setShowStartShadow","showEndShadow","setShowEndShadow","scrollChildRef","scrollContainerRef","position","t2","container","containerRect","getBoundingClientRect","childRect","isOnStartEdge","left","top","isOnEndEdge","right","bottom","previousShowStartShadow","previousShowEndShadow","setShadows","t3","resizeObserver","ResizeObserver","current","observe","disconnect","t4","handleScroll","event","currentTarget","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20"],"sources":["../src/components/scroll/Scroll.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, useEffect, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nconst TOLERANCE = 5;\n\ninterface Props extends ComponentPropsWithoutRef<\"div\"> {\n horizontal?: boolean;\n}\n\nexport const scrollVariants = {\n vertical: {\n inner: \"overflow-y-auto h-full\",\n shadow: \"h-1 left-0 right-0\",\n shadowStart: \"top-0 bg-linear-to-b from-gray-8/10\",\n shadowEnd: \"bottom-0 bg-linear-to-t from-gray-8/10\",\n child: \"\",\n },\n horizontal: {\n inner: \"overflow-x-auto\",\n shadow: \"w-1 top-0 bottom-0\",\n shadowStart: \"left-0 bg-linear-to-r from-gray-8/10\",\n shadowEnd: \"right-0 bg-linear-to-l from-gray-8/10\",\n child: \"inline-block\",\n },\n};\n\nexport function Scroll({ horizontal = false, className, children, ...rest }: Props) {\n const [showStartShadow, setShowStartShadow] = useState(false);\n const [showEndShadow, setShowEndShadow] = useState(false);\n const scrollChildRef = useRef<HTMLDivElement>(null);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const position = horizontal ? \"horizontal\" : \"vertical\";\n\n const setShadows = (container: HTMLDivElement | null, child: HTMLDivElement | null) => {\n if (!container || !child) {\n return;\n }\n\n const containerRect = container.getBoundingClientRect();\n\n const childRect = child.getBoundingClientRect();\n\n const isOnStartEdge = horizontal\n ? containerRect.left - childRect.left < TOLERANCE\n : containerRect.top - childRect.top < TOLERANCE;\n\n const isOnEndEdge = horizontal\n ? childRect.right - containerRect.right < TOLERANCE\n : childRect.bottom - containerRect.bottom < TOLERANCE;\n\n setShowStartShadow((previousShowStartShadow) =>\n isOnStartEdge === previousShowStartShadow\n ? !previousShowStartShadow\n : previousShowStartShadow,\n );\n\n setShowEndShadow((previousShowEndShadow) =>\n isOnEndEdge === previousShowEndShadow ? !previousShowEndShadow : previousShowEndShadow,\n );\n };\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n setShadows(scrollContainerRef.current, scrollChildRef.current);\n });\n resizeObserver.observe(scrollChildRef.current!);\n resizeObserver.observe(scrollContainerRef.current!);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n function handleScroll(event: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (!scrollChildRef?.current) {\n return;\n }\n setShadows(event.currentTarget, scrollChildRef.current);\n }\n\n return (\n <div className={clsx(\"ll-scroll-zone\", \"relative\", className)} {...rest}>\n <div\n className={clsx(\n \"scroll-shadow-sm absolute z-1 opacity-0 transition-all\",\n scrollVariants[position].shadow,\n scrollVariants[position].shadowStart,\n showStartShadow && \"opacity-100\",\n )}\n ></div>\n <div\n className={clsx(\n \"scroll-shadow-sm absolute z-1 opacity-0 transition-all\",\n scrollVariants[position].shadow,\n scrollVariants[position].shadowEnd,\n showEndShadow && \"opacity-100\",\n )}\n ></div>\n <div\n className={scrollVariants[position].inner}\n ref={scrollContainerRef}\n onScroll={handleScroll}\n >\n <div className={scrollVariants[position].child} ref={scrollChildRef}>\n {children}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { f as useEffectEvent } from "./hooks-CBijm9RA.mjs";
|
|
2
1
|
import { t as Loader } from "./loader-csj5qb99.mjs";
|
|
3
|
-
import { t as Button } from "./Button-
|
|
4
|
-
import "./button-
|
|
2
|
+
import { t as Button } from "./Button-Cx5QDjg9.mjs";
|
|
3
|
+
import "./button-CuqQ_n9M.mjs";
|
|
5
4
|
import { t as Dialog } from "./Dialog-DeQv8OeS.mjs";
|
|
6
5
|
import "./components/dialog/index.mjs";
|
|
7
6
|
import { c } from "react/compiler-runtime";
|
|
@@ -18,18 +17,17 @@ function Snack(t0) {
|
|
|
18
17
|
const withLoader = t4 === void 0 ? false : t4;
|
|
19
18
|
const canClose = t5 === void 0 ? false : t5;
|
|
20
19
|
const onRemove = t6 === void 0 ? _temp : t6;
|
|
21
|
-
const onRemoveStable = useEffectEvent(onRemove);
|
|
22
20
|
let t7;
|
|
23
21
|
let t8;
|
|
24
|
-
if ($[0] !== expiration || $[1] !==
|
|
22
|
+
if ($[0] !== expiration || $[1] !== onRemove) {
|
|
25
23
|
t7 = () => {
|
|
26
24
|
if (expiration === -1) return;
|
|
27
|
-
const timeoutId = setTimeout(() =>
|
|
25
|
+
const timeoutId = setTimeout(() => onRemove(), expiration);
|
|
28
26
|
return () => void clearTimeout(timeoutId);
|
|
29
27
|
};
|
|
30
|
-
t8 = [
|
|
28
|
+
t8 = [onRemove, expiration];
|
|
31
29
|
$[0] = expiration;
|
|
32
|
-
$[1] =
|
|
30
|
+
$[1] = onRemove;
|
|
33
31
|
$[2] = t7;
|
|
34
32
|
$[3] = t8;
|
|
35
33
|
} else {
|
|
@@ -109,4 +107,4 @@ function _temp() {}
|
|
|
109
107
|
//#endregion
|
|
110
108
|
export { Snack as t };
|
|
111
109
|
|
|
112
|
-
//# sourceMappingURL=Snack-
|
|
110
|
+
//# sourceMappingURL=Snack-0wCsjAOm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Snack-0wCsjAOm.mjs","names":["clsx","useEffect","Button","Dialog","Loader","Message","SnackProps","Partial","onRemove","Snack","t0","$","_c","expiration","t1","content","t2","color","t3","withLoader","t4","canClose","t5","t6","undefined","_temp","t7","t8","timeoutId","setTimeout","clearTimeout","t9","Symbol","for","t10","t11","t12","t13","t14","t15"],"sources":["../src/components/snack/Snack.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useEffect } from \"react\";\n\nimport { Button } from \"../button\";\nimport { Dialog } from \"../dialog\";\nimport { Loader } from \"../loader\";\nimport { Message } from \"../../types\";\n\nexport type SnackProps = Partial<Message> & {\n onRemove?: () => void;\n};\n\nexport function Snack({\n expiration = 5000,\n content = \"\",\n color = \"yellow\",\n withLoader = false,\n canClose = false,\n onRemove = () => {},\n}: SnackProps) {\n useEffect(() => {\n if (expiration === -1) {\n return;\n }\n\n const timeoutId = setTimeout(() => onRemove(), expiration);\n return () => void clearTimeout(timeoutId);\n }, [onRemove, expiration]);\n\n return (\n <Dialog\n className={clsx(\"motion-safe:animate-fade-in pointer-events-auto\", \"ll-snack\")}\n placement=\"top\"\n color={color}\n role={color !== \"red\" ? \"status\" : \"alertdialog\"}\n >\n <div className=\"flex w-fit min-w-60 items-center px-2 py-1\">\n <span className=\"flex-1 pr-4\">{content}</span>\n {withLoader && <Loader size=\"small\" color=\"gray\" />}\n\n {canClose && (\n <Button icon variant=\"text\" color=\"gray\" onClick={onRemove}>\n <i className=\"fe-cancel\"></i>\n </Button>\n )}\n </div>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;AAYA,SAAOS,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAe,MAAA,EAAAC,YAAAC,IAAAC,SAAAC,IAAAC,OAAAC,IAAAC,YAAAC,IAAAC,UAAAC,IAAAd,UAAAe,OAAAb;CACpB,MAAAG,aAAAC,OAAAU,KAAAA,IAAA,MAAAV;CACA,MAAAC,UAAAC,OAAAQ,KAAAA,IAAA,KAAAR;CACA,MAAAC,QAAAC,OAAAM,KAAAA,IAAA,WAAAN;CACA,MAAAC,aAAAC,OAAAI,KAAAA,IAAA,QAAAJ;CACA,MAAAC,WAAAC,OAAAE,KAAAA,IAAA,QAAAF;CACA,MAAAd,WAAAe,OAAAC,KAAAA,IAAAC,QAAAF;CAAmB,IAAAG;CAAA,IAAAC;CAAA,IAAAhB,EAAA,OAAAE,cAAAF,EAAA,OAAAH,UAAA;EAETkB,WAAA;GACR,IAAIb,eAAe,IAAE;GAIrB,MAAAe,YAAkBC,iBAAiBrB,SAAS,GAAGK,UAAU;GAAE,aAC9C,KAAKiB,aAAaF,SAAS;EAAC;EACxCD,KAAA,CAACnB,UAAUK,UAAU;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAH;EAAAG,EAAA,KAAAe;EAAAf,EAAA,KAAAgB;CAAA,OAAA;EAAAD,KAAAf,EAAA;EAAAgB,KAAAhB,EAAA;CAAA;CAPzBV,UAAUyB,IAOPC,EAAsB;CAAC,IAAAI;CAAA,IAAApB,EAAA,OAAAqB,OAAAC,IAAA,2BAAA,GAAA;EAIXF,KAAA/B,KAAK,mDAAmD,UAAU;EAACW,EAAA,KAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAGxE,MAAAuB,MAAAjB,UAAU,QAAV,WAAA;CAA0C,IAAAkB;CAAA,IAAAxB,EAAA,OAAAI,SAAA;EAG9CoB,MAAA,oBAAA,QAAA;GAAgB,WAAA;GAAepB,UAAAA;EAAe,CAAA;EAAAJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAwB;CAAA,OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,OAAAQ,YAAA;EAC7CiB,MAAAjB,cAAc,oBAAC,QAAD;GAAa,MAAA;GAAc,OAAA;EAAM,CAAA;EAAGR,EAAA,KAAAQ;EAAAR,EAAA,KAAAyB;CAAA,OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAU,YAAAV,EAAA,QAAAH,UAAA;EAElD6B,MAAAhB,YACC,oBAAC,QAAD;GAAQ,MAAA;GAAa,SAAA;GAAa,OAAA;GAAgBb,SAAAA;GAChD,UAAA,oBAAA,KAAA,EAAa,WAAA,YAAW,CAAA;EADnB,CAAA;EAGRG,EAAA,KAAAU;EAAAV,EAAA,MAAAH;EAAAG,EAAA,MAAA0B;CAAA,OAAAA,MAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,QAAAwB,OAAAxB,EAAA,QAAAyB,OAAAzB,EAAA,QAAA0B,KAAA;EARHC,MAAA,qBAAA,OAAA;GAAe,WAAA;GAAf,UAAA;IACEH;IACCC;IAEAC;GAKG;;EAAA1B,EAAA,MAAAwB;EAAAxB,EAAA,MAAAyB;EAAAzB,EAAA,MAAA0B;EAAA1B,EAAA,MAAA2B;CAAA,OAAAA,MAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,QAAAM,SAAAN,EAAA,QAAAuB,OAAAvB,EAAA,QAAA2B,KAAA;EAfRC,MAAA,oBAAC,QAAD;GACa,WAAAR;GACD,WAAA;GACHd;GACD,MAAAiB;GAENI,UAAAA;EANK,CAAA;EAgBE3B,EAAA,MAAAM;EAAAN,EAAA,MAAAuB;EAAAvB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,MAAA5B,EAAA;CAAA,OAhBT4B;AAgBS;AAlCN,SAAAd,QAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipTrigger-VrJxlxNx.mjs","names":["RefObject","useMemo","useRef","useState","TooltipOptions","arrow","autoUpdate","flip","hide","offset","shift","useDismiss","useFloating","UseFloatingReturn","useFocus","useHover","useInteractions","UseInteractionsReturn","useRole","ThemeBaseColor","arrowWidth","UseTooltipReturn","open","setOpen","color","arrowRef","HTMLDivElement","useTooltip","initialOpen","placement","controlledOpen","onOpen","setControlledOpen","openDelay","closeDelay","uncontrolledOpen","setUncontrolledOpen","isUncontrolled","undefined","offsetVal","data","onOpenChange","whileElementsMounted","middleware","padding","element","context","hover","move","enabled","delay","close","focus","dismiss","role","interactions","createContext","useContext","useTooltip","ContextType","ReturnType","TooltipContext","useTooltipContext","context","Error","ReactNode","TooltipOptions","useTooltip","TooltipContext","Props","children","Tooltip","t0","$","_c","options","tooltip","t1","ComponentProps","RefObject","useTooltipContext","FloatingPortal","useMergeRefs","clsx","computeArrowStyle","Dialog","Props","ref","HTMLDivElement","pointerEvents","TooltipContent","style","children","className","props","context","mergedRef","refs","setFloating","open","middlewareData","hide","referenceHidden","floatingStyles","getFloatingProps","placement","color","arrowRef","HTMLProps","RefObject","cloneElement","isValidElement","useTooltipContext","useMergeRefs","Props","HTMLElement","asChild","ref","TooltipTrigger","children","props","context","childrenRef","mergedRef","refs","setReference","getReferenceProps","open"],"sources":["../src/components/tooltip/useTooltip.ts","../src/components/tooltip/useTooltipContext.ts","../src/components/tooltip/Tooltip.tsx","../src/components/tooltip/TooltipContent.tsx","../src/components/tooltip/TooltipTrigger.tsx"],"sourcesContent":["import { RefObject, useMemo, useRef, useState } from \"react\";\nimport { TooltipOptions } from \"./interface\";\nimport {\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useDismiss,\n useFloating,\n UseFloatingReturn,\n useFocus,\n useHover,\n useInteractions,\n UseInteractionsReturn,\n useRole,\n} from \"@floating-ui/react\";\nimport { ThemeBaseColor } from \"../../types\";\n\nconst arrowWidth = 16;\n\nexport type UseTooltipReturn = {\n open: boolean;\n setOpen?: (open: boolean) => void;\n color?: ThemeBaseColor;\n arrowRef: RefObject<HTMLDivElement | null>;\n} & UseInteractionsReturn &\n UseFloatingReturn;\n\nexport function useTooltip({\n initialOpen = false,\n placement = \"top\",\n open: controlledOpen,\n onOpen: setControlledOpen,\n openDelay = 500,\n closeDelay = 500,\n color = \"yellow\",\n}: TooltipOptions = {}): UseTooltipReturn {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(initialOpen);\n\n const isUncontrolled = controlledOpen === null || controlledOpen === undefined;\n\n const open = isUncontrolled ? uncontrolledOpen : controlledOpen;\n const setOpen = isUncontrolled ? setUncontrolledOpen : setControlledOpen;\n\n const arrowRef = useRef<HTMLDivElement>(null);\n\n const offsetVal = arrowWidth / 2;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(offsetVal),\n flip(),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef,\n padding: 12,\n }),\n hide({\n padding: 20,\n }),\n ],\n });\n const { context } = data;\n\n const hover = useHover(context, {\n move: false,\n enabled: isUncontrolled,\n delay: {\n open: openDelay || 1,\n close: closeDelay,\n },\n });\n const focus = useFocus(context, {\n enabled: isUncontrolled,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: \"tooltip\" });\n\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n ...interactions,\n ...data,\n arrowRef,\n color,\n }),\n [open, setOpen, color, interactions, data],\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { useTooltip } from \"./useTooltip\";\n\ntype ContextType = ReturnType<typeof useTooltip> | null;\n\nexport const TooltipContext = createContext<ContextType>(null);\n\nexport function useTooltipContext() {\n const context = useContext(TooltipContext);\n\n if (context === null) {\n throw new Error(\"Tooltip components must be wrapped in <Tooltip />\");\n }\n\n return context;\n}\n","import { ReactNode } from \"react\";\nimport { TooltipOptions } from \"./interface\";\nimport { useTooltip } from \"./useTooltip\";\nimport { TooltipContext } from \"./useTooltipContext\";\n\ninterface Props extends TooltipOptions {\n children: ReactNode;\n}\n\nexport function Tooltip({ children, ...options }: Props) {\n const tooltip = useTooltip(options);\n return <TooltipContext.Provider value={tooltip}>{children}</TooltipContext.Provider>;\n}\n","import { ComponentProps, RefObject } from \"react\";\nimport { useTooltipContext } from \"./useTooltipContext\";\nimport { FloatingPortal, useMergeRefs } from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport { computeArrowStyle } from \"../dialog/util\";\nimport { Dialog } from \"../dialog/Dialog\";\n\ninterface Props extends ComponentProps<\"div\"> {\n ref?: RefObject<HTMLDivElement>;\n pointerEvents?: \"none\" | \"auto\";\n}\n\nexport function TooltipContent({\n style,\n children,\n className,\n ref,\n pointerEvents = \"none\",\n ...props\n}: Props) {\n const context = useTooltipContext();\n const mergedRef = useMergeRefs([context.refs.setFloating, ref]);\n if (!context.open) {\n return null;\n }\n return (\n <FloatingPortal>\n <div\n ref={mergedRef}\n className={clsx(\n \"z-tooltip outline-hidden\",\n pointerEvents === \"none\" && \"pointer-events-none\",\n context.middlewareData.hide?.referenceHidden && \"invisible\",\n )}\n style={{ ...context.floatingStyles, ...style }}\n {...context.getFloatingProps(props)}\n >\n <Dialog\n placement={context.placement}\n className={clsx(\"text-body-sm motion-safe:animate-fade-in max-w-80 px-2 py-1\", className)}\n color={context.color}\n role=\"tooltip\"\n >\n {children}\n <div\n ref={context.arrowRef}\n style={computeArrowStyle(context)}\n className=\"p8n-arrow\"\n ></div>\n </Dialog>\n </div>\n </FloatingPortal>\n );\n}\n","import { HTMLProps, RefObject, cloneElement, isValidElement } from \"react\";\nimport { useTooltipContext } from \"./useTooltipContext\";\nimport { useMergeRefs } from \"@floating-ui/react\";\n\ninterface Props extends HTMLProps<HTMLElement> {\n /* allows the user to pass any element as the anchor instead of <button> */\n asChild?: boolean;\n ref?: RefObject<HTMLElement>;\n}\n\nexport function TooltipTrigger({ children, asChild = false, ref, ...props }: Props) {\n const context = useTooltipContext();\n const childrenRef = (children as any).ref;\n const mergedRef = useMergeRefs([context.refs.setReference, ref, childrenRef]);\n\n if (asChild && isValidElement(children)) {\n return cloneElement(\n children,\n context.getReferenceProps({\n ref: mergedRef,\n ...props,\n ...(children.props ?? {}),\n // @ts-ignore\n \"data-state\": context.open ? \"open\" : \"closed\",\n }),\n );\n }\n\n return (\n <abbr ref={mergedRef} {...context.getReferenceProps(props)}>\n {children}\n </abbr>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TooltipTrigger-VrJxlxNx.mjs","names":["RefObject","useMemo","useRef","useState","TooltipOptions","arrow","autoUpdate","flip","hide","offset","shift","useDismiss","useFloating","UseFloatingReturn","useFocus","useHover","useInteractions","UseInteractionsReturn","useRole","ThemeBaseColor","arrowWidth","UseTooltipReturn","open","setOpen","color","arrowRef","HTMLDivElement","useTooltip","initialOpen","placement","controlledOpen","onOpen","setControlledOpen","openDelay","closeDelay","uncontrolledOpen","setUncontrolledOpen","isUncontrolled","undefined","offsetVal","data","onOpenChange","whileElementsMounted","middleware","padding","element","context","hover","move","enabled","delay","close","focus","dismiss","role","interactions","createContext","useContext","useTooltip","ContextType","ReturnType","TooltipContext","useTooltipContext","context","Error","ReactNode","TooltipOptions","useTooltip","TooltipContext","Props","children","Tooltip","t0","$","_c","options","tooltip","t1","ComponentProps","RefObject","useTooltipContext","FloatingPortal","useMergeRefs","clsx","computeArrowStyle","Dialog","Props","ref","HTMLDivElement","pointerEvents","TooltipContent","style","children","className","props","context","mergedRef","refs","setFloating","open","middlewareData","hide","referenceHidden","floatingStyles","getFloatingProps","placement","color","arrowRef","HTMLProps","RefObject","cloneElement","isValidElement","useTooltipContext","useMergeRefs","Props","HTMLElement","asChild","ref","TooltipTrigger","children","props","context","childrenRef","mergedRef","refs","setReference","getReferenceProps","open"],"sources":["../src/components/tooltip/useTooltip.ts","../src/components/tooltip/useTooltipContext.ts","../src/components/tooltip/Tooltip.tsx","../src/components/tooltip/TooltipContent.tsx","../src/components/tooltip/TooltipTrigger.tsx"],"sourcesContent":["import { RefObject, useMemo, useRef, useState } from \"react\";\nimport { TooltipOptions } from \"./interface\";\nimport {\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useDismiss,\n useFloating,\n UseFloatingReturn,\n useFocus,\n useHover,\n useInteractions,\n UseInteractionsReturn,\n useRole,\n} from \"@floating-ui/react\";\nimport { ThemeBaseColor } from \"../../types\";\n\nconst arrowWidth = 16;\n\nexport type UseTooltipReturn = {\n open: boolean;\n setOpen?: (open: boolean) => void;\n color?: ThemeBaseColor;\n arrowRef: RefObject<HTMLDivElement | null>;\n} & UseInteractionsReturn &\n UseFloatingReturn;\n\nexport function useTooltip({\n initialOpen = false,\n placement = \"top\",\n open: controlledOpen,\n onOpen: setControlledOpen,\n openDelay = 500,\n closeDelay = 500,\n color = \"yellow\",\n}: TooltipOptions = {}): UseTooltipReturn {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(initialOpen);\n\n const isUncontrolled = controlledOpen === null || controlledOpen === undefined;\n\n const open = isUncontrolled ? uncontrolledOpen : controlledOpen;\n const setOpen = isUncontrolled ? setUncontrolledOpen : setControlledOpen;\n\n const arrowRef = useRef<HTMLDivElement>(null);\n\n const offsetVal = arrowWidth / 2;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(offsetVal),\n flip(),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef,\n padding: 12,\n }),\n hide({\n padding: 20,\n }),\n ],\n });\n const { context } = data;\n\n const hover = useHover(context, {\n move: false,\n enabled: isUncontrolled,\n delay: {\n open: openDelay || 1,\n close: closeDelay,\n },\n });\n const focus = useFocus(context, {\n enabled: isUncontrolled,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: \"tooltip\" });\n\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n ...interactions,\n ...data,\n arrowRef,\n color,\n }),\n [open, setOpen, color, interactions, data],\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { useTooltip } from \"./useTooltip\";\n\ntype ContextType = ReturnType<typeof useTooltip> | null;\n\nexport const TooltipContext = createContext<ContextType>(null);\n\nexport function useTooltipContext() {\n const context = useContext(TooltipContext);\n\n if (context === null) {\n throw new Error(\"Tooltip components must be wrapped in <Tooltip />\");\n }\n\n return context;\n}\n","import { ReactNode } from \"react\";\nimport { TooltipOptions } from \"./interface\";\nimport { useTooltip } from \"./useTooltip\";\nimport { TooltipContext } from \"./useTooltipContext\";\n\ninterface Props extends TooltipOptions {\n children: ReactNode;\n}\n\nexport function Tooltip({ children, ...options }: Props) {\n const tooltip = useTooltip(options);\n return <TooltipContext.Provider value={tooltip}>{children}</TooltipContext.Provider>;\n}\n","import { ComponentProps, RefObject } from \"react\";\nimport { useTooltipContext } from \"./useTooltipContext\";\nimport { FloatingPortal, useMergeRefs } from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport { computeArrowStyle } from \"../dialog/util\";\nimport { Dialog } from \"../dialog/Dialog\";\n\ninterface Props extends ComponentProps<\"div\"> {\n ref?: RefObject<HTMLDivElement>;\n pointerEvents?: \"none\" | \"auto\";\n}\n\nexport function TooltipContent({\n style,\n children,\n className,\n ref,\n pointerEvents = \"none\",\n ...props\n}: Props) {\n const context = useTooltipContext();\n const mergedRef = useMergeRefs([context.refs.setFloating, ref]);\n if (!context.open) {\n return null;\n }\n return (\n <FloatingPortal>\n <div\n ref={mergedRef}\n className={clsx(\n \"z-tooltip outline-hidden\",\n pointerEvents === \"none\" && \"pointer-events-none\",\n context.middlewareData.hide?.referenceHidden && \"invisible\",\n )}\n style={{ ...context.floatingStyles, ...style }}\n {...context.getFloatingProps(props)}\n >\n <Dialog\n placement={context.placement}\n className={clsx(\"text-body-sm motion-safe:animate-fade-in max-w-80 px-2 py-1\", className)}\n color={context.color}\n role=\"tooltip\"\n >\n {children}\n <div\n ref={context.arrowRef}\n style={computeArrowStyle(context)}\n className=\"p8n-arrow\"\n ></div>\n </Dialog>\n </div>\n </FloatingPortal>\n );\n}\n","import { HTMLProps, RefObject, cloneElement, isValidElement } from \"react\";\nimport { useTooltipContext } from \"./useTooltipContext\";\nimport { useMergeRefs } from \"@floating-ui/react\";\n\ninterface Props extends HTMLProps<HTMLElement> {\n /* allows the user to pass any element as the anchor instead of <button> */\n asChild?: boolean;\n ref?: RefObject<HTMLElement>;\n}\n\nexport function TooltipTrigger({ children, asChild = false, ref, ...props }: Props) {\n const context = useTooltipContext();\n const childrenRef = (children as any).ref;\n const mergedRef = useMergeRefs([context.refs.setReference, ref, childrenRef]);\n\n if (asChild && isValidElement(children)) {\n return cloneElement(\n children,\n context.getReferenceProps({\n ref: mergedRef,\n ...props,\n ...(children.props ?? {}),\n // @ts-ignore\n \"data-state\": context.open ? \"open\" : \"closed\",\n }),\n );\n }\n\n return (\n <abbr ref={mergedRef} {...context.getReferenceProps(props)}>\n {children}\n </abbr>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge-CtcHuvQK.mjs","names":["ReactNode","ThemeColor","clsx","Tooltip","TooltipContent","TooltipTrigger","Props","children","className","tooltip","url","color","onClick","onRemove","Badge","t0","$","_c","t1","undefined","clickable","t2","t3","t4","t5","t6","badge","t7","wrappedBadge","t8","t9","t10"],"sources":["../src/components/badge/Badge.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { ThemeColor } from \"../../types\";\nimport clsx from \"clsx\";\nimport { Tooltip } from \"../tooltip/Tooltip\";\nimport { TooltipContent } from \"../tooltip/TooltipContent\";\nimport { TooltipTrigger } from \"../tooltip/TooltipTrigger\";\n\ninterface Props {\n children: ReactNode;\n className?: string;\n tooltip?: string;\n url?: string;\n color?: ThemeColor;\n onClick?: () => void;\n onRemove?: () => void;\n}\n\nexport function Badge({\n children,\n className,\n onRemove,\n onClick,\n tooltip,\n url,\n color = \"yellow\",\n}: Props) {\n const clickable = onClick !== undefined || url !== undefined;\n const badge = (\n <span\n data-color={color}\n className={clsx(\n \"bg-custom-2/50 text-gray-text relative box-border inline-flex h-(--h-button) items-center truncate leading-5 no-underline [--h-button:1.5rem]\",\n clickable && \"cursor-pointer active:translate-y-[1px]\",\n \"text-body-xs w-fit rounded-full\",\n className,\n )}\n >\n {onClick ? (\n <button className=\"cursor-pointer px-2\" onClick={onClick}>\n {children}\n </button>\n ) : (\n <span className=\"px-2\">{children}</span>\n )}\n {onRemove && (\n <button\n className=\"remove cursor-pointer rounded-r-full pr-1 pl-0.5 active:translate-y-[1px]\"\n onClick={onRemove}\n >\n <i className=\"fe-cancel\"></i>\n </button>\n )}\n </span>\n );\n const wrappedBadge = url ? <a href={url}>{badge}</a> : badge;\n\n if (!tooltip) {\n return wrappedBadge;\n }\n\n return (\n <Tooltip>\n <TooltipContent>{tooltip}</TooltipContent>\n <TooltipTrigger asChild={true}>{wrappedBadge}</TooltipTrigger>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;AAiBA,SAAOc,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAe,MAAA,EAAAV,UAAAC,WAAAK,UAAAD,SAAAH,SAAAC,KAAAC,OAAAO,OAAAH;CAOpB,MAAAJ,QAAAO,OAAAC,KAAAA,IAAA,WAAAD;CAQM,MAAAG,MANYT,YAAYO,KAAAA,KAAaT,QAAQS,KAAAA,MAM7C;CAAsD,IAAAG;CAAA,IAAAN,EAAA,OAAAR,aAAAQ,EAAA,OAAAK,IAAA;EAF7CC,KAAApB,KACT,iJACAmB,IACA,mCACAb,SACF;EAACQ,EAAA,KAAAR;EAAAQ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAT,YAAAS,EAAA,OAAAJ,SAAA;EAEAW,KAAAX,UACC,oBAAA,UAAA;GAAkB,WAAA;GAA+BA;GAC9CL;EACM,CAAA,IAET,oBAAA,QAAA;GAAgB,WAAA;GAAQA;EAAgB,CAAA;EACzCS,EAAA,KAAAT;EAAAS,EAAA,KAAAJ;EAAAI,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAH,UAAA;EACAW,KAAAX,YACC,oBAAA,UAAA;GACY,WAAA;GACDA,SAAAA;
|
|
1
|
+
{"version":3,"file":"badge-CtcHuvQK.mjs","names":["ReactNode","ThemeColor","clsx","Tooltip","TooltipContent","TooltipTrigger","Props","children","className","tooltip","url","color","onClick","onRemove","Badge","t0","$","_c","t1","undefined","clickable","t2","t3","t4","t5","t6","badge","t7","wrappedBadge","t8","t9","t10"],"sources":["../src/components/badge/Badge.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { ThemeColor } from \"../../types\";\nimport clsx from \"clsx\";\nimport { Tooltip } from \"../tooltip/Tooltip\";\nimport { TooltipContent } from \"../tooltip/TooltipContent\";\nimport { TooltipTrigger } from \"../tooltip/TooltipTrigger\";\n\ninterface Props {\n children: ReactNode;\n className?: string;\n tooltip?: string;\n url?: string;\n color?: ThemeColor;\n onClick?: () => void;\n onRemove?: () => void;\n}\n\nexport function Badge({\n children,\n className,\n onRemove,\n onClick,\n tooltip,\n url,\n color = \"yellow\",\n}: Props) {\n const clickable = onClick !== undefined || url !== undefined;\n const badge = (\n <span\n data-color={color}\n className={clsx(\n \"bg-custom-2/50 text-gray-text relative box-border inline-flex h-(--h-button) items-center truncate leading-5 no-underline [--h-button:1.5rem]\",\n clickable && \"cursor-pointer active:translate-y-[1px]\",\n \"text-body-xs w-fit rounded-full\",\n className,\n )}\n >\n {onClick ? (\n <button className=\"cursor-pointer px-2\" onClick={onClick}>\n {children}\n </button>\n ) : (\n <span className=\"px-2\">{children}</span>\n )}\n {onRemove && (\n <button\n className=\"remove cursor-pointer rounded-r-full pr-1 pl-0.5 active:translate-y-[1px]\"\n onClick={onRemove}\n >\n <i className=\"fe-cancel\"></i>\n </button>\n )}\n </span>\n );\n const wrappedBadge = url ? <a href={url}>{badge}</a> : badge;\n\n if (!tooltip) {\n return wrappedBadge;\n }\n\n return (\n <Tooltip>\n <TooltipContent>{tooltip}</TooltipContent>\n <TooltipTrigger asChild={true}>{wrappedBadge}</TooltipTrigger>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;AAiBA,SAAOc,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAe,MAAA,EAAAV,UAAAC,WAAAK,UAAAD,SAAAH,SAAAC,KAAAC,OAAAO,OAAAH;CAOpB,MAAAJ,QAAAO,OAAAC,KAAAA,IAAA,WAAAD;CAQM,MAAAG,MANYT,YAAYO,KAAAA,KAAaT,QAAQS,KAAAA,MAM7C;CAAsD,IAAAG;CAAA,IAAAN,EAAA,OAAAR,aAAAQ,EAAA,OAAAK,IAAA;EAF7CC,KAAApB,KACT,iJACAmB,IACA,mCACAb,SACF;EAACQ,EAAA,KAAAR;EAAAQ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAT,YAAAS,EAAA,OAAAJ,SAAA;EAEAW,KAAAX,UACC,oBAAA,UAAA;GAAkB,WAAA;GAA+BA;GAC9CL;EACM,CAAA,IAET,oBAAA,QAAA;GAAgB,WAAA;GAAQA;EAAgB,CAAA;EACzCS,EAAA,KAAAT;EAAAS,EAAA,KAAAJ;EAAAI,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAH,UAAA;EACAW,KAAAX,YACC,oBAAA,UAAA;GACY,WAAA;GACDA,SAAAA;GAET,UAAA,oBAAA,KAAA,EAAa,WAAA,YAAW,CAAA;EACjB,CAAA;EACVG,EAAA,KAAAH;EAAAG,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAL,SAAAK,EAAA,OAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,IAAA;EAvBHC,KAAA,qBAAA,QAAA;GACcd,cAAAA;GACD,WAAAW;GAFb,UAAA,CASGC,IAOAC,EAQI;;EAAAR,EAAA,KAAAL;EAAAK,EAAA,KAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAzBT,MAAAU,QACED;CAyBA,IAAAE;CAAA,IAAAX,EAAA,QAAAU,SAAAV,EAAA,QAAAN,KAAA;EACmBiB,KAAAjB,MAAM,oBAAA,KAAA;GAASA,MAAAA;GAAMgB,UAAAA;EAAU,CAAA,IAA/BA;EAAuCV,EAAA,MAAAU;EAAAV,EAAA,MAAAN;EAAAM,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAA5D,MAAAY,eAAqBD;CAErB,IAAI,CAAClB,SAAO,OACHmB;CACR,IAAAC;CAAA,IAAAb,EAAA,QAAAP,SAAA;EAIGoB,KAAA,oBAAC,gBAAD,EAAA,UAAiBpB,QAAF,CAAA;EAA2BO,EAAA,MAAAP;EAAAO,EAAA,MAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,QAAAY,cAAA;EAC1CE,KAAA,oBAAC,gBAAD;GAAyB,SAAA;GAAOF,UAAAA;EAAjB,CAAA;EAA+CZ,EAAA,MAAAY;EAAAZ,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,IAAAe;CAAA,IAAAf,EAAA,QAAAa,MAAAb,EAAA,QAAAc,IAAA;EAFhEC,MAAA,qBAAC,SAAD,EAAA,UAAA,CACEF,IACAC,EAFM,EAAA,CAAA;EAGEd,EAAA,MAAAa;EAAAb,EAAA,MAAAc;EAAAd,EAAA,MAAAe;CAAA,OAAAA,MAAAf,EAAA;CAAA,OAHVe;AAGU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as buttonVariants } from "./Button-
|
|
1
|
+
import { h as useRipple } from "./hooks-BQw3Dsve.mjs";
|
|
2
|
+
import { n as buttonVariants } from "./Button-Cx5QDjg9.mjs";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useImperativeHandle, useRef } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -146,4 +146,4 @@ function HrefButton(t0) {
|
|
|
146
146
|
//#endregion
|
|
147
147
|
export { ButtonGroup as n, buttonGroupVariants as r, HrefButton as t };
|
|
148
148
|
|
|
149
|
-
//# sourceMappingURL=button-
|
|
149
|
+
//# sourceMappingURL=button-CuqQ_n9M.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-
|
|
1
|
+
{"version":3,"file":"button-CuqQ_n9M.mjs","names":["ComponentProps","ReactNode","clsx","cva","Props","children","direction","buttonGroupVariants","variants","horizontal","vertical","defaultVariants","ButtonGroup","t0","$","_c","className","t1","undefined","t2","t3","ComponentProps","RefObject","useImperativeHandle","useRef","clsx","useRipple","ButtonProps","buttonVariants","HrefButtonProps","Pick","ref","HTMLAnchorElement","HrefButton","t0","$","_c","children","className","disabled","href","props","t1","t2","t3","t4","t5","t6","t7","withRipple","variant","color","size","width","selected","icon","undefined","anchorRef","t8","Symbol","for","current","ripples","t9","t10","t11"],"sources":["../src/components/button/ButtonGroup.tsx","../src/components/button/HrefButton.tsx"],"sourcesContent":["import { ComponentProps, ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { cva } from \"class-variance-authority\";\n\ninterface Props extends ComponentProps<\"div\"> {\n children: ReactNode;\n direction?: \"horizontal\" | \"vertical\";\n}\n\nexport const buttonGroupVariants = cva(\n \"[&_:not(:first-child)]:rounded-tl-none [&_:not(:last-child)]:rounded-br-none\",\n {\n variants: {\n direction: {\n horizontal:\n \"[&_:not(:first-child)]:rounded-bl-none [&_:not(:last-child)]:rounded-tr-none *:data-[variant='outlined']:-mx-[.5px] *:shadow-none\",\n vertical:\n \"flex flex-col [&_:not(:first-child)]:rounded-tr-none [&_:not(:last-child)]:rounded-bl-none *:data-[variant='outlined']:-my-[.5px] *:shadow-none\",\n },\n },\n defaultVariants: {\n direction: \"horizontal\",\n },\n },\n);\n\nexport function ButtonGroup({ children, className, direction = \"horizontal\" }: Props) {\n return <div className={clsx(buttonGroupVariants({ direction }), className)}>{children}</div>;\n}\n","import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useRipple } from \"../../hooks/useRipple\";\nimport { ButtonProps, buttonVariants } from \"./Button\";\n\nexport type HrefButtonProps = ComponentProps<\"a\"> &\n Pick<\n ButtonProps,\n \"withRipple\" | \"variant\" | \"size\" | \"color\" | \"selected\" | \"icon\" | \"disabled\" | \"width\"\n > & { ref?: RefObject<HTMLAnchorElement> };\n\nexport function HrefButton({\n withRipple = true,\n variant = \"contained\",\n color = \"yellow\",\n size = \"medium\",\n width = \"fit\",\n className,\n disabled,\n children,\n selected = false,\n icon = false,\n href,\n ref,\n ...props\n}: HrefButtonProps) {\n const anchorRef = useRef<HTMLAnchorElement>(null!);\n\n useImperativeHandle<HTMLAnchorElement | null, HTMLAnchorElement | null>(\n ref,\n () => anchorRef.current,\n );\n\n const ripples = useRipple(anchorRef);\n\n return (\n <a\n role=\"button\"\n href={href}\n ref={anchorRef}\n className={clsx(\n buttonVariants({ variant, size, width, icon: size === \"custom\" ? \"custom\" : icon }),\n className,\n selected && \"active\",\n )}\n data-color={color}\n data-variant={variant}\n aria-checked={selected}\n aria-disabled={disabled}\n {...props}\n >\n {!disabled && withRipple && ripples}\n {children}\n </a>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/components/accordion/Accordion.tsx","../../../src/components/accordion/AccordionTrigger.tsx","../../../src/components/accordion/AccordionContent.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/components/accordion/Accordion.tsx","../../../src/components/accordion/AccordionTrigger.tsx","../../../src/components/accordion/AccordionContent.tsx"],"mappings":";;UAGU;EACR;EACA;EACA,YAAY;EACZ,UAAU;;iBAKI,YACd,OAAO,iBACP,cACA,UACA,YACC,0BAAK,IAAA;;;UCbE,gBAAc;EACtB;;iBAGc,mBAAmB,MAAM,aAAa,QAAQ,0BAAK,IAAA;;;UCJzD,cAAc;EACtB;;iBAGc,mBAAmB,MAAM,aAAa,QAAQ,wBAAK,IAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { f as useEffectEvent } from "../../hooks-CBijm9RA.mjs";
|
|
2
1
|
import { c } from "react/compiler-runtime";
|
|
3
2
|
import { createContext, useContext, useEffect, useRef, useState } from "react";
|
|
4
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -20,18 +19,17 @@ function Accordion(t0) {
|
|
|
20
19
|
const isControlled = typeof controlledValue !== "undefined";
|
|
21
20
|
const [unControlledValue, setUnControlledValue] = useState(defaultValue ?? null);
|
|
22
21
|
const value = (isControlled ? controlledValue : unControlledValue) ?? null;
|
|
23
|
-
const stableOnChange = useEffectEvent(onChange);
|
|
24
22
|
let t2;
|
|
25
|
-
if ($[0] !== isControlled || $[1] !==
|
|
23
|
+
if ($[0] !== isControlled || $[1] !== onChange || $[2] !== value) {
|
|
26
24
|
t2 = {
|
|
27
25
|
value,
|
|
28
26
|
onChange(value_0) {
|
|
29
27
|
if (!isControlled) setUnControlledValue(value_0);
|
|
30
|
-
|
|
28
|
+
onChange(value_0);
|
|
31
29
|
}
|
|
32
30
|
};
|
|
33
31
|
$[0] = isControlled;
|
|
34
|
-
$[1] =
|
|
32
|
+
$[1] = onChange;
|
|
35
33
|
$[2] = value;
|
|
36
34
|
$[3] = t2;
|
|
37
35
|
} else t2 = $[3];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["createContext","useContext","AccordionContext","value","onChange","useAccordion","context","Error","ReactNode","useMemo","useState","AccordionContext","
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["createContext","useContext","AccordionContext","value","onChange","useAccordion","context","Error","ReactNode","useMemo","useState","AccordionContext","Props","value","defaultValue","onChange","children","noop","Accordion","t0","$","_c","controlledValue","t1","undefined","isControlled","unControlledValue","setUnControlledValue","t2","value_0","context","t3","ComponentProps","useAccordion","clsx","Props","name","AccordionTrigger","t0","$","_c","children","rest","value","onChange","t1","t2","t3","t4","t5","t6","ComponentProps","useEffect","useRef","useAccordion","clsx","Props","name","AccordionContent","t0","$","_c","children","rest","value","wrapperRef","contentRef","isOpen","t1","t2","Symbol","for","updateHeight","current","style","setProperty","scrollHeight","observer","ResizeObserver","observe","disconnect","t3","t4","t5","t6"],"sources":["../../../src/components/accordion/useAccordion.tsx","../../../src/components/accordion/Accordion.tsx","../../../src/components/accordion/AccordionTrigger.tsx","../../../src/components/accordion/AccordionContent.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport const AccordionContext = createContext<{\n value: string | null;\n onChange: (value: string | null) => void;\n} | null>(null);\n\nexport const useAccordion = () => {\n const context = useContext(AccordionContext);\n\n if (context === null) {\n throw new Error(\"useAccordion to be use inside Accordion component\");\n }\n\n return context;\n};\n","import { ReactNode, useMemo, useState } from \"react\";\nimport { AccordionContext } from \"./useAccordion\";\n\ninterface Props {\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n children: ReactNode;\n}\n\nconst noop = () => {};\n\nexport function Accordion({\n value: controlledValue,\n defaultValue,\n onChange = noop,\n children,\n}: Props) {\n const isControlled = typeof controlledValue !== \"undefined\";\n const [unControlledValue, setUnControlledValue] = useState<string | null>(defaultValue ?? null);\n\n const value = (isControlled ? controlledValue : unControlledValue) ?? null;\n\n const context = useMemo(\n () => ({\n value,\n onChange(value: string | null) {\n if (!isControlled) {\n setUnControlledValue(value);\n }\n onChange(value);\n },\n }),\n [value, onChange, isControlled],\n );\n\n return <AccordionContext.Provider value={context}>{children}</AccordionContext.Provider>;\n}\n","import { ComponentProps } from \"react\";\nimport { useAccordion } from \"./useAccordion\";\nimport clsx from \"clsx\";\n\ninterface Props extends ComponentProps<\"button\"> {\n name: string;\n}\n\nexport function AccordionTrigger({ name, children, ...rest }: Props) {\n const { value, onChange } = useAccordion();\n return (\n <button\n type=\"button\"\n onClick={() => onChange(name === value ? null : name)}\n {...rest}\n className=\"border-l-yellow-4 bg-gray-0 hover:border-l-yellow-4 relative mt-[-1px] flex h-12 w-full cursor-pointer border border-l-4 border-black/5 hover:z-[1] hover:border-black/15\"\n >\n <div className=\"flex-center h-12 w-12\">\n <i className={clsx(\"fe-angle-up transition-transform\", name !== value && \"rotate-180\")}></i>\n </div>\n <div className=\"flex flex-1 items-center\">{children}</div>\n </button>\n );\n}\n","import { ComponentProps, useEffect, useRef } from \"react\";\nimport { useAccordion } from \"./useAccordion\";\nimport clsx from \"clsx\";\n\ninterface Props extends ComponentProps<\"div\"> {\n name: string;\n}\n\nexport function AccordionContent({ name, children, ...rest }: Props) {\n const { value } = useAccordion();\n const wrapperRef = useRef<HTMLDivElement>(null!);\n const contentRef = useRef<HTMLDivElement>(null!);\n\n const isOpen = value === name;\n\n useEffect(() => {\n const updateHeight = () => {\n wrapperRef.current.style.setProperty(\n \"--accordion-content-height\",\n `${contentRef.current.scrollHeight}px`,\n );\n };\n\n updateHeight();\n\n const observer = new ResizeObserver(updateHeight);\n observer.observe(contentRef.current);\n\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n ref={wrapperRef}\n className={clsx(\n \"overflow-hidden transition-[height] ease-in-out\",\n isOpen ? \"h-(--accordion-content-height)\" : \"h-0\",\n )}\n {...rest}\n >\n <div className=\"p-2\" ref={contentRef}>\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/components/autocomplete/AutocompleteOption.tsx","../../../src/components/autocomplete/Autocomplete.tsx","../../../src/components/autocomplete/SimpleAutocomplete.tsx","../../../src/components/autocomplete/LazyAutocomplete.tsx","../../../src/components/autocomplete/useAutocompleteContext.ts","../../../src/components/autocomplete/util.ts"],"mappings":";;;;;KAOY,wBAAwB,UAAU,cAAc;cAE/C,oCAAkB,qBAAoC,UAAU,YAAU,OAC9E,wBAAwB,uBAAE,IAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/components/autocomplete/AutocompleteOption.tsx","../../../src/components/autocomplete/Autocomplete.tsx","../../../src/components/autocomplete/SimpleAutocomplete.tsx","../../../src/components/autocomplete/LazyAutocomplete.tsx","../../../src/components/autocomplete/useAutocompleteContext.ts","../../../src/components/autocomplete/util.ts"],"mappings":";;;;;KAOY,wBAAwB,UAAU,cAAc;cAE/C,oCAAkB,qBAAoC,UAAU,YAAU,OAC9E,wBAAwB,uBAAE,IAAA;;;UC6BlB,kBAAkB,UAAU,aAAa,gBAAgB;EACxE,iBAAiB;EAEjB,QAAQ;;;;EAKR,iBAAiB;EAEjB,SAAS;EAET,YAAY;;;;EAIZ;;;;;EAKA,sBAAsB,eAAe;EAErC,YAAY;;;;;;EAMZ,oBAAoB,QAAQ;EAC5B,SAAS;EAET,+BAA+B,OAAO,wBAAwB,OAAO;EAErE;EAEA;EAEA;EAEA,MAAM,UAAU;;iBAGF,aAAa,UAAU,aAAa,UAClD,WACA,WACA,MACA,OACA,gBACA,QACA,WACA,aACA,WACA,mBACA,6BACA,SACA,mBACA,aACA,qBACA,SACA,eACA,UACA,QACG,QACF,kBAAkB,qBAAE,IAAA;;;UChGb,QAAM,UAAU,aAAa,gBAAgB,KACrD,kBAAkB;iBAIJ,mBAAmB,UAAU,aAAa,UACxD,SACA,WACA,sBACG,QACF,QAAM,qBAAE,IAAA;;;UCXD,MAAM,UAAU,aAAa,gBAE7B,KACN,kBAAkB;EAGpB,8BAA8B,wBAAwB,QAAQ;EAC9D;;iBAGc,iBAAiB,UAAU,aAAa,UACtD,6BACA,UACA,WACA,sBACG,QACF,MAAM,qBAAE,IAAA;;;UClBD;EACR;EACA,WAAW;EACX,cAAc,kBAAkB;EAChC,eAAe;;cAGJ,qCAAmB,QAAA;iBAEhB,mBAAe;;;iBCXf,eAAe,QAAQ;iBASvB,eAAe,QAAQ"}
|