@intlayer/design-system 5.5.11 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +1 -1
  2. package/dist/.vite/manifest.json +38 -10
  3. package/dist/components/Container/index.cjs +2 -1
  4. package/dist/components/Container/index.cjs.map +1 -1
  5. package/dist/components/Container/index.d.ts +2 -3
  6. package/dist/components/Container/index.d.ts.map +1 -1
  7. package/dist/components/Container/index.mjs +3 -2
  8. package/dist/components/Container/index.mjs.map +1 -1
  9. package/dist/components/{IDE/CopyButton.cjs → CopyButton/index.cjs} +6 -5
  10. package/dist/components/CopyButton/index.cjs.map +1 -0
  11. package/dist/components/{IDE/CopyButton.d.ts → CopyButton/index.d.ts} +3 -2
  12. package/dist/components/CopyButton/index.d.ts.map +1 -0
  13. package/dist/components/{IDE/CopyButton.mjs → CopyButton/index.mjs} +6 -5
  14. package/dist/components/CopyButton/index.mjs.map +1 -0
  15. package/dist/components/IDE/Code.cjs +3 -3
  16. package/dist/components/IDE/Code.cjs.map +1 -1
  17. package/dist/components/IDE/Code.d.ts +1 -1
  18. package/dist/components/IDE/Code.d.ts.map +1 -1
  19. package/dist/components/IDE/Code.mjs +3 -3
  20. package/dist/components/IDE/Code.mjs.map +1 -1
  21. package/dist/components/IDE/CopyCode.cjs +28 -0
  22. package/dist/components/IDE/CopyCode.cjs.map +1 -0
  23. package/dist/components/IDE/CopyCode.d.ts +7 -0
  24. package/dist/components/IDE/CopyCode.d.ts.map +1 -0
  25. package/dist/components/IDE/CopyCode.mjs +28 -0
  26. package/dist/components/IDE/CopyCode.mjs.map +1 -0
  27. package/dist/components/IDE/MonacoCode.cjs +2 -2
  28. package/dist/components/IDE/MonacoCode.cjs.map +1 -1
  29. package/dist/components/IDE/MonacoCode.mjs +1 -1
  30. package/dist/components/IDE/MonacoCode.mjs.map +1 -1
  31. package/dist/components/IDE/code.content.cjs +39 -0
  32. package/dist/components/IDE/code.content.cjs.map +1 -0
  33. package/dist/components/IDE/code.content.d.ts +73 -0
  34. package/dist/components/IDE/code.content.d.ts.map +1 -0
  35. package/dist/components/IDE/code.content.mjs +40 -0
  36. package/dist/components/IDE/code.content.mjs.map +1 -0
  37. package/dist/components/IDE/copyCode.content.cjs +39 -0
  38. package/dist/components/IDE/copyCode.content.cjs.map +1 -0
  39. package/dist/components/IDE/copyCode.content.d.ts +73 -0
  40. package/dist/components/IDE/copyCode.content.d.ts.map +1 -0
  41. package/dist/components/IDE/copyCode.content.mjs +40 -0
  42. package/dist/components/IDE/copyCode.content.mjs.map +1 -0
  43. package/dist/components/Popover/index.cjs +59 -15
  44. package/dist/components/Popover/index.cjs.map +1 -1
  45. package/dist/components/Popover/index.d.ts +32 -6
  46. package/dist/components/Popover/index.d.ts.map +1 -1
  47. package/dist/components/Popover/index.mjs +60 -16
  48. package/dist/components/Popover/index.mjs.map +1 -1
  49. package/dist/components/SocialNetworks/index.cjs +1 -1
  50. package/dist/components/SocialNetworks/index.cjs.map +1 -1
  51. package/dist/components/SocialNetworks/index.mjs +1 -1
  52. package/dist/components/SocialNetworks/index.mjs.map +1 -1
  53. package/dist/components/index.cjs +3 -0
  54. package/dist/components/index.cjs.map +1 -1
  55. package/dist/components/index.d.ts +1 -0
  56. package/dist/components/index.d.ts.map +1 -1
  57. package/dist/components/index.mjs +4 -1
  58. package/dist/components/index.mjs.map +1 -1
  59. package/dist/tailwind.css +1 -1
  60. package/package.json +17 -17
  61. package/dist/components/IDE/CopyButton.cjs.map +0 -1
  62. package/dist/components/IDE/CopyButton.d.ts.map +0 -1
  63. package/dist/components/IDE/CopyButton.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoCode.mjs","sources":["../../../src/components/IDE/MonacoCode.tsx"],"sourcesContent":["'use client';\n\nimport { type OnChange, type OnMount, Editor } from '@monaco-editor/react';\nimport { type FC, useState, useRef, useMemo } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Loader } from '../Loader';\nimport { CopyButton } from './CopyButton';\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n showCopyButton?: boolean;\n isReadOnly?: boolean;\n onChange?: OnChange;\n};\n\nexport const MonacoCode: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers,\n showCopyButton = true,\n isReadOnly = false,\n onChange,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const ideRef = useRef(null);\n const [editorSize, setEditorSize] = useState<{\n height: number;\n width: number;\n }>({ height: 0, width: 0 });\n\n const theme = useMemo(\n () => (isDarkMode ? 'vs-dark-transparent' : 'hc-light-theme'),\n [isDarkMode]\n );\n\n const handleMountIde: OnMount = (editor, monaco) => {\n // first time you set the height based on content Height\n\n ideRef.current = editor as any;\n const contentHeight = (editor.getContentHeight() ?? 0) + 25;\n\n monaco.editor.defineTheme('vs-dark-transparent', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n monaco.editor.defineTheme('hc-light-theme', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n\n monaco.editor.setTheme(theme);\n\n // Disable TypeScript diagnostics\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true, // Disables type checking\n noSyntaxValidation: true, // Disables syntax errors\n });\n\n // Disable JavaScript diagnostics\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true,\n });\n\n // Disable unnecessary language features (e.g., suggestions, quick fixes)\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n setEditorSize({\n height: contentHeight,\n width: containerRef.current?.clientWidth ?? 0,\n });\n };\n\n const isShowLineNumbers = showLineNumbers ?? children.split('\\n').length > 1;\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n {showCopyButton && (\n <div className=\"sticky top-5 z-10\">\n <div\n className={cn('absolute bottom-0 right-2 flex h-7 items-center')}\n >\n <CopyButton content={children} />\n </div>\n </div>\n )}\n <div\n className=\"z-0 grid size-full grid-cols-[0px] overflow-auto\"\n ref={containerRef}\n >\n <Editor\n {...editorSize}\n defaultLanguage=\"typescript\"\n language={language}\n loading={<Loader />}\n defaultValue={String(children).replace(/\\n$/, '')}\n onMount={handleMountIde}\n onChange={onChange}\n options={{\n readOnly: isReadOnly,\n cursorStyle: 'line',\n minimap: { enabled: false },\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 0,\n alwaysConsumeMouseWheel: false,\n },\n folding: false, // Disable code folding\n renderValidationDecorations: 'off', // Disable error/warning decorations\n quickSuggestions: false, // Disable IntelliSense\n parameterHints: { enabled: false }, // Disable parameter hints\n suggestOnTriggerCharacters: false, // Disable suggestions on typing\n\n mouseWheelScrollSensitivity: 0,\n fastScrollSensitivity: 0,\n scrollBeyondLastLine: false,\n lineNumbers: isShowLineNumbers ? 'on' : 'off',\n }}\n theme={theme}\n className=\"my-2 rounded-md\"\n />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonacoCode.mjs","sources":["../../../src/components/IDE/MonacoCode.tsx"],"sourcesContent":["'use client';\n\nimport { type OnChange, type OnMount, Editor } from '@monaco-editor/react';\nimport { type FC, useMemo, useRef, useState } from 'react';\nimport { cn } from '../../utils/cn';\nimport { CopyButton } from '../CopyButton';\nimport { Loader } from '../Loader';\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n showCopyButton?: boolean;\n isReadOnly?: boolean;\n onChange?: OnChange;\n};\n\nexport const MonacoCode: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers,\n showCopyButton = true,\n isReadOnly = false,\n onChange,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const ideRef = useRef(null);\n const [editorSize, setEditorSize] = useState<{\n height: number;\n width: number;\n }>({ height: 0, width: 0 });\n\n const theme = useMemo(\n () => (isDarkMode ? 'vs-dark-transparent' : 'hc-light-theme'),\n [isDarkMode]\n );\n\n const handleMountIde: OnMount = (editor, monaco) => {\n // first time you set the height based on content Height\n\n ideRef.current = editor as any;\n const contentHeight = (editor.getContentHeight() ?? 0) + 25;\n\n monaco.editor.defineTheme('vs-dark-transparent', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n monaco.editor.defineTheme('hc-light-theme', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n\n monaco.editor.setTheme(theme);\n\n // Disable TypeScript diagnostics\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true, // Disables type checking\n noSyntaxValidation: true, // Disables syntax errors\n });\n\n // Disable JavaScript diagnostics\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true,\n });\n\n // Disable unnecessary language features (e.g., suggestions, quick fixes)\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n setEditorSize({\n height: contentHeight,\n width: containerRef.current?.clientWidth ?? 0,\n });\n };\n\n const isShowLineNumbers = showLineNumbers ?? children.split('\\n').length > 1;\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n {showCopyButton && (\n <div className=\"sticky top-5 z-10\">\n <div\n className={cn('absolute bottom-0 right-2 flex h-7 items-center')}\n >\n <CopyButton content={children} />\n </div>\n </div>\n )}\n <div\n className=\"z-0 grid size-full grid-cols-[0px] overflow-auto\"\n ref={containerRef}\n >\n <Editor\n {...editorSize}\n defaultLanguage=\"typescript\"\n language={language}\n loading={<Loader />}\n defaultValue={String(children).replace(/\\n$/, '')}\n onMount={handleMountIde}\n onChange={onChange}\n options={{\n readOnly: isReadOnly,\n cursorStyle: 'line',\n minimap: { enabled: false },\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 0,\n alwaysConsumeMouseWheel: false,\n },\n folding: false, // Disable code folding\n renderValidationDecorations: 'off', // Disable error/warning decorations\n quickSuggestions: false, // Disable IntelliSense\n parameterHints: { enabled: false }, // Disable parameter hints\n suggestOnTriggerCharacters: false, // Disable suggestions on typing\n\n mouseWheelScrollSensitivity: 0,\n fastScrollSensitivity: 0,\n scrollBeyondLastLine: false,\n lineNumbers: isShowLineNumbers ? 'on' : 'off',\n }}\n theme={theme}\n className=\"my-2 rounded-md\"\n />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ const intlayer = require("intlayer");
3
+ const codeContent = {
4
+ key: "code",
5
+ content: {
6
+ title: intlayer.t({
7
+ en: "Copy code",
8
+ es: "Copiar código",
9
+ pt: "Copiar código",
10
+ fr: "Copier le code",
11
+ de: "Code kopieren",
12
+ it: "Copiare il codice",
13
+ ja: "コードをコピー",
14
+ ko: "코드 복사",
15
+ zh: "复制代码",
16
+ hi: "कोड कॉपी करें",
17
+ "en-GB": "Copy code",
18
+ ru: "Копировать код",
19
+ ar: "نسخ الكود"
20
+ }),
21
+ description: intlayer.t({
22
+ en: "Copy the code to the clipboard",
23
+ es: "Copiar el código al portapapeles",
24
+ pt: "Copiar o código para a área de transferência",
25
+ fr: "Copier le code dans le presse-papiers",
26
+ de: "Kopieren Sie den Code in die Zwischenablage",
27
+ it: "Copiare il codice nella clipboard",
28
+ ja: "コードをクリップボードにコピー",
29
+ ko: "코드를 클립보드에 복사",
30
+ zh: "复制代码到剪贴板",
31
+ hi: "कोड को क्लिपबोर्ड पर कॉपी करें",
32
+ "en-GB": "Copy the code to the clipboard",
33
+ ru: "Копировать код в буфер обмена",
34
+ ar: "نسخ الكود إلى الحافظة"
35
+ })
36
+ }
37
+ };
38
+ module.exports = codeContent;
39
+ //# sourceMappingURL=code.content.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.content.cjs","sources":["../../../src/components/IDE/code.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst codeContent = {\n key: 'code',\n content: {\n title: t({\n en: 'Copy code',\n es: 'Copiar código',\n pt: 'Copiar código',\n fr: 'Copier le code',\n de: 'Code kopieren',\n it: 'Copiare il codice',\n ja: 'コードをコピー',\n ko: '코드 복사',\n zh: '复制代码',\n hi: 'कोड कॉपी करें',\n 'en-GB': 'Copy code',\n ru: 'Копировать код',\n ar: 'نسخ الكود',\n }),\n description: t({\n en: 'Copy the code to the clipboard',\n es: 'Copiar el código al portapapeles',\n pt: 'Copiar o código para a área de transferência',\n fr: 'Copier le code dans le presse-papiers',\n de: 'Kopieren Sie den Code in die Zwischenablage',\n it: 'Copiare il codice nella clipboard',\n ja: 'コードをクリップボードにコピー',\n ko: '코드를 클립보드에 복사',\n zh: '复制代码到剪贴板',\n hi: 'कोड को क्लिपबोर्ड पर कॉपी करें',\n 'en-GB': 'Copy the code to the clipboard',\n ru: 'Копировать код в буфер обмена',\n ar: 'نسخ الكود إلى الحافظة',\n }),\n },\n} satisfies Dictionary;\n\nexport default codeContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,cAAc;AAAA,EAClB,KAAK;AAAA,EACL,SAAS;AAAA,IACP,OAAOA,SAAAA,EAAE;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAaA,SAAAA,EAAE;AAAA,MACb,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAA;AAAA,EAAA;AAEL;;"}
@@ -0,0 +1,73 @@
1
+ declare const codeContent: {
2
+ key: string;
3
+ content: {
4
+ title: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
5
+ en: string;
6
+ es: string;
7
+ pt: string;
8
+ fr: string;
9
+ de: string;
10
+ it: string;
11
+ ja: string;
12
+ ko: string;
13
+ zh: string;
14
+ hi: string;
15
+ 'en-GB': string;
16
+ ru: string;
17
+ ar: string;
18
+ }, {
19
+ nodeType: import("@intlayer/core").NodeType.Translation | "translation";
20
+ } & {
21
+ translation: {
22
+ en: string;
23
+ es: string;
24
+ pt: string;
25
+ fr: string;
26
+ de: string;
27
+ it: string;
28
+ ja: string;
29
+ ko: string;
30
+ zh: string;
31
+ hi: string;
32
+ 'en-GB': string;
33
+ ru: string;
34
+ ar: string;
35
+ };
36
+ }>;
37
+ description: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
38
+ en: string;
39
+ es: string;
40
+ pt: string;
41
+ fr: string;
42
+ de: string;
43
+ it: string;
44
+ ja: string;
45
+ ko: string;
46
+ zh: string;
47
+ hi: string;
48
+ 'en-GB': string;
49
+ ru: string;
50
+ ar: string;
51
+ }, {
52
+ nodeType: import("@intlayer/core").NodeType.Translation | "translation";
53
+ } & {
54
+ translation: {
55
+ en: string;
56
+ es: string;
57
+ pt: string;
58
+ fr: string;
59
+ de: string;
60
+ it: string;
61
+ ja: string;
62
+ ko: string;
63
+ zh: string;
64
+ hi: string;
65
+ 'en-GB': string;
66
+ ru: string;
67
+ ar: string;
68
+ };
69
+ }>;
70
+ };
71
+ };
72
+ export default codeContent;
73
+ //# sourceMappingURL=code.content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.content.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/code.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCK,CAAC;AAEvB,eAAe,WAAW,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { t } from "intlayer";
2
+ const codeContent = {
3
+ key: "code",
4
+ content: {
5
+ title: t({
6
+ en: "Copy code",
7
+ es: "Copiar código",
8
+ pt: "Copiar código",
9
+ fr: "Copier le code",
10
+ de: "Code kopieren",
11
+ it: "Copiare il codice",
12
+ ja: "コードをコピー",
13
+ ko: "코드 복사",
14
+ zh: "复制代码",
15
+ hi: "कोड कॉपी करें",
16
+ "en-GB": "Copy code",
17
+ ru: "Копировать код",
18
+ ar: "نسخ الكود"
19
+ }),
20
+ description: t({
21
+ en: "Copy the code to the clipboard",
22
+ es: "Copiar el código al portapapeles",
23
+ pt: "Copiar o código para a área de transferência",
24
+ fr: "Copier le code dans le presse-papiers",
25
+ de: "Kopieren Sie den Code in die Zwischenablage",
26
+ it: "Copiare il codice nella clipboard",
27
+ ja: "コードをクリップボードにコピー",
28
+ ko: "코드를 클립보드에 복사",
29
+ zh: "复制代码到剪贴板",
30
+ hi: "कोड को क्लिपबोर्ड पर कॉपी करें",
31
+ "en-GB": "Copy the code to the clipboard",
32
+ ru: "Копировать код в буфер обмена",
33
+ ar: "نسخ الكود إلى الحافظة"
34
+ })
35
+ }
36
+ };
37
+ export {
38
+ codeContent as default
39
+ };
40
+ //# sourceMappingURL=code.content.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.content.mjs","sources":["../../../src/components/IDE/code.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst codeContent = {\n key: 'code',\n content: {\n title: t({\n en: 'Copy code',\n es: 'Copiar código',\n pt: 'Copiar código',\n fr: 'Copier le code',\n de: 'Code kopieren',\n it: 'Copiare il codice',\n ja: 'コードをコピー',\n ko: '코드 복사',\n zh: '复制代码',\n hi: 'कोड कॉपी करें',\n 'en-GB': 'Copy code',\n ru: 'Копировать код',\n ar: 'نسخ الكود',\n }),\n description: t({\n en: 'Copy the code to the clipboard',\n es: 'Copiar el código al portapapeles',\n pt: 'Copiar o código para a área de transferência',\n fr: 'Copier le code dans le presse-papiers',\n de: 'Kopieren Sie den Code in die Zwischenablage',\n it: 'Copiare il codice nella clipboard',\n ja: 'コードをクリップボードにコピー',\n ko: '코드를 클립보드에 복사',\n zh: '复制代码到剪贴板',\n hi: 'कोड को क्लिपबोर्ड पर कॉपी करें',\n 'en-GB': 'Copy the code to the clipboard',\n ru: 'Копировать код в буфер обмена',\n ar: 'نسخ الكود إلى الحافظة',\n }),\n },\n} satisfies Dictionary;\n\nexport default codeContent;\n"],"names":[],"mappings":";AAEA,MAAM,cAAc;AAAA,EAClB,KAAK;AAAA,EACL,SAAS;AAAA,IACP,OAAO,EAAE;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa,EAAE;AAAA,MACb,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAA;AAAA,EAAA;AAEL;"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ const intlayer = require("intlayer");
3
+ const copyContentContent = {
4
+ key: "code",
5
+ content: {
6
+ title: intlayer.t({
7
+ en: "Copy code",
8
+ es: "Copiar código",
9
+ pt: "Copiar código",
10
+ fr: "Copier le code",
11
+ de: "Code kopieren",
12
+ it: "Copiare il codice",
13
+ ja: "コードをコピー",
14
+ ko: "코드 복사",
15
+ zh: "复制代码",
16
+ hi: "कोड कॉपी करें",
17
+ "en-GB": "Copy code",
18
+ ru: "Копировать код",
19
+ ar: "نسخ الكود"
20
+ }),
21
+ description: intlayer.t({
22
+ en: "Copy the code to the clipboard",
23
+ es: "Copiar el código al portapapeles",
24
+ pt: "Copiar o código para a área de transferência",
25
+ fr: "Copier le code dans le presse-papiers",
26
+ de: "Kopieren Sie den Code in die Zwischenablage",
27
+ it: "Copiare il codice nella clipboard",
28
+ ja: "コードをクリップボードにコピー",
29
+ ko: "코드를 클립보드에 복사",
30
+ zh: "复制代码到剪贴板",
31
+ hi: "कोड को क्लिपबोर्ड पर कॉपी करें",
32
+ "en-GB": "Copy the code to the clipboard",
33
+ ru: "Копировать код в буфер обмена",
34
+ ar: "نسخ الكود إلى الحافظة"
35
+ })
36
+ }
37
+ };
38
+ module.exports = copyContentContent;
39
+ //# sourceMappingURL=copyCode.content.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyCode.content.cjs","sources":["../../../src/components/IDE/copyCode.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst copyContentContent = {\n key: 'code',\n content: {\n title: t({\n en: 'Copy code',\n es: 'Copiar código',\n pt: 'Copiar código',\n fr: 'Copier le code',\n de: 'Code kopieren',\n it: 'Copiare il codice',\n ja: 'コードをコピー',\n ko: '코드 복사',\n zh: '复制代码',\n hi: 'कोड कॉपी करें',\n 'en-GB': 'Copy code',\n ru: 'Копировать код',\n ar: 'نسخ الكود',\n }),\n description: t({\n en: 'Copy the code to the clipboard',\n es: 'Copiar el código al portapapeles',\n pt: 'Copiar o código para a área de transferência',\n fr: 'Copier le code dans le presse-papiers',\n de: 'Kopieren Sie den Code in die Zwischenablage',\n it: 'Copiare il codice nella clipboard',\n ja: 'コードをクリップボードにコピー',\n ko: '코드를 클립보드에 복사',\n zh: '复制代码到剪贴板',\n hi: 'कोड को क्लिपबोर्ड पर कॉपी करें',\n 'en-GB': 'Copy the code to the clipboard',\n ru: 'Копировать код в буфер обмена',\n ar: 'نسخ الكود إلى الحافظة',\n }),\n },\n} satisfies Dictionary;\n\nexport default copyContentContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,qBAAqB;AAAA,EACzB,KAAK;AAAA,EACL,SAAS;AAAA,IACP,OAAOA,SAAAA,EAAE;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAaA,SAAAA,EAAE;AAAA,MACb,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAA;AAAA,EAAA;AAEL;;"}
@@ -0,0 +1,73 @@
1
+ declare const copyContentContent: {
2
+ key: string;
3
+ content: {
4
+ title: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
5
+ en: string;
6
+ es: string;
7
+ pt: string;
8
+ fr: string;
9
+ de: string;
10
+ it: string;
11
+ ja: string;
12
+ ko: string;
13
+ zh: string;
14
+ hi: string;
15
+ 'en-GB': string;
16
+ ru: string;
17
+ ar: string;
18
+ }, {
19
+ nodeType: import("@intlayer/core").NodeType.Translation | "translation";
20
+ } & {
21
+ translation: {
22
+ en: string;
23
+ es: string;
24
+ pt: string;
25
+ fr: string;
26
+ de: string;
27
+ it: string;
28
+ ja: string;
29
+ ko: string;
30
+ zh: string;
31
+ hi: string;
32
+ 'en-GB': string;
33
+ ru: string;
34
+ ar: string;
35
+ };
36
+ }>;
37
+ description: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
38
+ en: string;
39
+ es: string;
40
+ pt: string;
41
+ fr: string;
42
+ de: string;
43
+ it: string;
44
+ ja: string;
45
+ ko: string;
46
+ zh: string;
47
+ hi: string;
48
+ 'en-GB': string;
49
+ ru: string;
50
+ ar: string;
51
+ }, {
52
+ nodeType: import("@intlayer/core").NodeType.Translation | "translation";
53
+ } & {
54
+ translation: {
55
+ en: string;
56
+ es: string;
57
+ pt: string;
58
+ fr: string;
59
+ de: string;
60
+ it: string;
61
+ ja: string;
62
+ ko: string;
63
+ zh: string;
64
+ hi: string;
65
+ 'en-GB': string;
66
+ ru: string;
67
+ ar: string;
68
+ };
69
+ }>;
70
+ };
71
+ };
72
+ export default copyContentContent;
73
+ //# sourceMappingURL=copyCode.content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyCode.content.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/copyCode.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCF,CAAC;AAEvB,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { t } from "intlayer";
2
+ const copyContentContent = {
3
+ key: "code",
4
+ content: {
5
+ title: t({
6
+ en: "Copy code",
7
+ es: "Copiar código",
8
+ pt: "Copiar código",
9
+ fr: "Copier le code",
10
+ de: "Code kopieren",
11
+ it: "Copiare il codice",
12
+ ja: "コードをコピー",
13
+ ko: "코드 복사",
14
+ zh: "复制代码",
15
+ hi: "कोड कॉपी करें",
16
+ "en-GB": "Copy code",
17
+ ru: "Копировать код",
18
+ ar: "نسخ الكود"
19
+ }),
20
+ description: t({
21
+ en: "Copy the code to the clipboard",
22
+ es: "Copiar el código al portapapeles",
23
+ pt: "Copiar o código para a área de transferência",
24
+ fr: "Copier le code dans le presse-papiers",
25
+ de: "Kopieren Sie den Code in die Zwischenablage",
26
+ it: "Copiare il codice nella clipboard",
27
+ ja: "コードをクリップボードにコピー",
28
+ ko: "코드를 클립보드에 복사",
29
+ zh: "复制代码到剪贴板",
30
+ hi: "कोड को क्लिपबोर्ड पर कॉपी करें",
31
+ "en-GB": "Copy the code to the clipboard",
32
+ ru: "Копировать код в буфер обмена",
33
+ ar: "نسخ الكود إلى الحافظة"
34
+ })
35
+ }
36
+ };
37
+ export {
38
+ copyContentContent as default
39
+ };
40
+ //# sourceMappingURL=copyCode.content.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyCode.content.mjs","sources":["../../../src/components/IDE/copyCode.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst copyContentContent = {\n key: 'code',\n content: {\n title: t({\n en: 'Copy code',\n es: 'Copiar código',\n pt: 'Copiar código',\n fr: 'Copier le code',\n de: 'Code kopieren',\n it: 'Copiare il codice',\n ja: 'コードをコピー',\n ko: '코드 복사',\n zh: '复制代码',\n hi: 'कोड कॉपी करें',\n 'en-GB': 'Copy code',\n ru: 'Копировать код',\n ar: 'نسخ الكود',\n }),\n description: t({\n en: 'Copy the code to the clipboard',\n es: 'Copiar el código al portapapeles',\n pt: 'Copiar o código para a área de transferência',\n fr: 'Copier le code dans le presse-papiers',\n de: 'Kopieren Sie den Code in die Zwischenablage',\n it: 'Copiare il codice nella clipboard',\n ja: 'コードをクリップボードにコピー',\n ko: '코드를 클립보드에 복사',\n zh: '复制代码到剪贴板',\n hi: 'कोड को क्लिपबोर्ड पर कॉपी करें',\n 'en-GB': 'Copy the code to the clipboard',\n ru: 'Копировать код в буфер обмена',\n ar: 'نسخ الكود إلى الحافظة',\n }),\n },\n} satisfies Dictionary;\n\nexport default copyContentContent;\n"],"names":[],"mappings":";AAEA,MAAM,qBAAqB;AAAA,EACzB,KAAK;AAAA,EACL,SAAS;AAAA,IACP,OAAO,EAAE;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa,EAAE;AAAA,MACb,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAA;AAAA,EAAA;AAEL;"}
@@ -1,25 +1,69 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const Popover = ({ children, content }) => /* @__PURE__ */ jsxRuntime.jsxs(
4
+ const utils_cn = require("../../utils/cn.cjs");
5
+ const components_Container_index = require("../Container/index.cjs");
6
+ const Popover = ({
7
+ children,
8
+ className,
9
+ identifier,
10
+ ...props
11
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
5
12
  "div",
6
13
  {
7
- className: "group relative",
14
+ className: utils_cn.cn("group/popover relative flex cursor-pointer", className),
15
+ "aria-label": `Popover ${identifier}`,
16
+ id: `unrollable-panel-button-${identifier}`,
8
17
  "aria-haspopup": true,
9
- "aria-expanded": false,
10
- "aria-label": "Display the popup by hovering this element",
11
- children: [
12
- children,
13
- /* @__PURE__ */ jsxRuntime.jsx(
14
- "div",
15
- {
16
- className: "bg-card absolute bottom-0 left-5 z-50 translate-y-[150%] rounded-md p-1 text-xs text-opacity-75 opacity-0 ring-2 ring-current transition-all delay-200 duration-200 ease-in-out hover:delay-0 group-hover:opacity-100",
17
- "aria-hidden": true,
18
- children: content
19
- }
20
- )
21
- ]
18
+ ...props,
19
+ children
22
20
  }
23
21
  );
22
+ const Detail = ({
23
+ children,
24
+ isHidden = void 0,
25
+ isOverable = true,
26
+ isFocusable = false,
27
+ xAlign = "start",
28
+ yAlign = "bellow",
29
+ identifier,
30
+ className,
31
+ displayArrow = true,
32
+ ...props
33
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
34
+ components_Container_index.Container,
35
+ {
36
+ transparency: "sm",
37
+ "aria-hidden": isHidden,
38
+ "aria-labelledby": `unrollable-panel-button-${identifier}`,
39
+ id: `unrollable-panel-${identifier}`,
40
+ className: utils_cn.cn(
41
+ "absolute z-[1000] min-w-full ring-neutral ring-1 rounded-md",
42
+ /* Positioning */
43
+ xAlign === "start" && "left-0",
44
+ xAlign === "end" && "right-0",
45
+ yAlign === "bellow" && "top-[calc(100%+1rem)]",
46
+ yAlign === "above" && "bottom-[calc(100%+1rem)]",
47
+ /* Arrow indicator */
48
+ displayArrow && 'before:absolute before:z-[999] before:content-[""] before:w-0 before:h-0',
49
+ /* Horizontal positioning */
50
+ displayArrow && xAlign === "start" && "before:left-2",
51
+ displayArrow && xAlign === "end" && "before:right-2",
52
+ /* Arrow pointing up (when popover is below trigger) */
53
+ displayArrow && yAlign === "bellow" && "before:-top-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-b-[10px] before:border-b-neutral",
54
+ /* Arrow pointing down (when popover is above trigger) */
55
+ displayArrow && yAlign === "above" && "before:-bottom-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-t-[10px] before:border-t-neutral",
56
+ /* Visibility management */
57
+ "overflow-x-visible transition-all duration-400 ease-in-out opacity-0",
58
+ isHidden !== false ? "invisible" : "delay-800 visible opacity-100",
59
+ isOverable && "group-hover/popover:visible group-hover/popover:opacity-100 group-hover/popover:delay-800",
60
+ isFocusable && "group-focus-within/popover:visible group-focus-within/popover:opacity-100 group-focus-within/popover:delay-800",
61
+ className
62
+ ),
63
+ ...props,
64
+ children
65
+ }
66
+ );
67
+ Popover.Detail = Detail;
24
68
  exports.Popover = Popover;
25
69
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/Popover/index.tsx"],"sourcesContent":["import type { FC, ReactNode } from 'react';\n\ntype PopoverProps = {\n content: ReactNode | string;\n children: ReactNode;\n};\n\nexport const Popover: FC<PopoverProps> = ({ children, content }) => (\n <div\n className=\"group relative\"\n aria-haspopup={true}\n aria-expanded={false}\n aria-label=\"Display the popup by hovering this element\"\n >\n {children}\n <div\n className=\"bg-card absolute bottom-0 left-5 z-50 translate-y-[150%] rounded-md p-1 text-xs text-opacity-75 opacity-0 ring-2 ring-current transition-all delay-200 duration-200 ease-in-out hover:delay-0 group-hover:opacity-100\"\n aria-hidden={true}\n >\n {content}\n </div>\n </div>\n);\n"],"names":["jsxs","jsx"],"mappings":";;;AAOO,MAAM,UAA4B,CAAC,EAAE,UAAU,QACpD,MAAAA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,iBAAe;AAAA,IACf,iBAAe;AAAA,IACf,cAAW;AAAA,IAEV,UAAA;AAAA,MAAA;AAAA,MACDC,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAa;AAAA,UAEZ,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AACF;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Popover/index.tsx"],"sourcesContent":["import type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\n\nexport type PopoverProps = DetailedHTMLProps<\n HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n> & {\n identifier: string;\n};\n\nexport type PopoverType = FC<PopoverProps> & {\n Detail: FC<DetailProps>;\n};\n\n/**\n * Trigger allowing to open a popover menu.\n *\n * Example:\n * ```jsx\n * <Popover identifier=\"popover\">\n * Open popover\n *\n * <Popover.Detail identifier=\"popover\">\n * <div>Content</div>\n * </Popover.Detail>\n * </Popover>\n * ```\n *\n * > Note Popover.Trigger can be replaced by a button. Don't add a button inside the trigger.\n */\nexport const Popover: PopoverType = ({\n children,\n className,\n identifier,\n ...props\n}) => (\n <div\n className={cn('group/popover relative flex cursor-pointer', className)}\n aria-label={`Popover ${identifier}`}\n id={`unrollable-panel-button-${identifier}`}\n aria-haspopup\n {...props}\n >\n {children}\n </div>\n);\n\nexport type DetailProps = HTMLAttributes<HTMLDivElement> & {\n isFocusable?: boolean;\n isHidden?: boolean;\n isOverable?: boolean;\n identifier: string;\n xAlign?: 'start' | 'end';\n yAlign?: 'bellow' | 'above';\n displayArrow?: boolean;\n};\n\n/**\n * Component that opens a popover menu when the trigger is clicked.\n *\n * Example:\n * ```jsx\n * <Popover.Detail identifier=\"popover\">\n * <div>Content</div>\n * </Popover.Detail>\n * ```\n */\nconst Detail: FC<DetailProps> = ({\n children,\n isHidden = undefined,\n isOverable = true,\n isFocusable = false,\n xAlign = 'start',\n yAlign = 'bellow',\n identifier,\n className,\n displayArrow = true,\n ...props\n}) => (\n <Container\n transparency=\"sm\"\n aria-hidden={isHidden}\n aria-labelledby={`unrollable-panel-button-${identifier}`}\n id={`unrollable-panel-${identifier}`}\n className={cn(\n 'absolute z-[1000] min-w-full ring-neutral ring-1 rounded-md',\n\n /* Positioning */\n xAlign === 'start' && 'left-0',\n xAlign === 'end' && 'right-0',\n yAlign === 'bellow' && 'top-[calc(100%+1rem)]',\n yAlign === 'above' && 'bottom-[calc(100%+1rem)]',\n\n /* Arrow indicator */\n displayArrow &&\n 'before:absolute before:z-[999] before:content-[\"\"] before:w-0 before:h-0',\n\n /* Horizontal positioning */\n displayArrow && xAlign === 'start' && 'before:left-2',\n displayArrow && xAlign === 'end' && 'before:right-2',\n\n /* Arrow pointing up (when popover is below trigger) */\n displayArrow &&\n yAlign === 'bellow' &&\n 'before:-top-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-b-[10px] before:border-b-neutral',\n\n /* Arrow pointing down (when popover is above trigger) */\n displayArrow &&\n yAlign === 'above' &&\n 'before:-bottom-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-t-[10px] before:border-t-neutral',\n\n /* Visibility management */\n 'overflow-x-visible transition-all duration-400 ease-in-out opacity-0',\n isHidden !== false ? 'invisible' : 'delay-800 visible opacity-100',\n isOverable &&\n 'group-hover/popover:visible group-hover/popover:opacity-100 group-hover/popover:delay-800',\n isFocusable &&\n 'group-focus-within/popover:visible group-focus-within/popover:opacity-100 group-focus-within/popover:delay-800',\n className\n )}\n {...props}\n >\n {children}\n </Container>\n);\n\nPopover.Detail = Detail;\n"],"names":["jsx","cn","Container"],"mappings":";;;;;AA+BO,MAAM,UAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACEA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC,SAAAA,GAAG,8CAA8C,SAAS;AAAA,IACrE,cAAY,WAAW,UAAU;AAAA,IACjC,IAAI,2BAA2B,UAAU;AAAA,IACzC,iBAAa;AAAA,IACZ,GAAG;AAAA,IAEH;AAAA,EAAA;AACH;AAuBF,MAAM,SAA0B,CAAC;AAAA,EAC/B;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,SAAS;AAAA,EACT,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,GAAG;AACL,MACED,2BAAA;AAAA,EAACE,2BAAA;AAAA,EAAA;AAAA,IACC,cAAa;AAAA,IACb,eAAa;AAAA,IACb,mBAAiB,2BAA2B,UAAU;AAAA,IACtD,IAAI,oBAAoB,UAAU;AAAA,IAClC,WAAWD,SAAA;AAAA,MACT;AAAA;AAAA,MAGA,WAAW,WAAW;AAAA,MACtB,WAAW,SAAS;AAAA,MACpB,WAAW,YAAY;AAAA,MACvB,WAAW,WAAW;AAAA;AAAA,MAGtB,gBACE;AAAA;AAAA,MAGF,gBAAgB,WAAW,WAAW;AAAA,MACtC,gBAAgB,WAAW,SAAS;AAAA;AAAA,MAGpC,gBACE,WAAW,YACX;AAAA;AAAA,MAGF,gBACE,WAAW,WACX;AAAA;AAAA,MAGF;AAAA,MACA,aAAa,QAAQ,cAAc;AAAA,MACnC,cACE;AAAA,MACF,eACE;AAAA,MACF;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA,EAAA;AACH;AAGF,QAAQ,SAAS;;"}
@@ -1,8 +1,34 @@
1
- import { FC, ReactNode } from 'react';
2
- type PopoverProps = {
3
- content: ReactNode | string;
4
- children: ReactNode;
1
+ import { DetailedHTMLProps, FC, HTMLAttributes } from 'react';
2
+ export type PopoverProps = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
3
+ identifier: string;
4
+ };
5
+ export type PopoverType = FC<PopoverProps> & {
6
+ Detail: FC<DetailProps>;
7
+ };
8
+ /**
9
+ * Trigger allowing to open a popover menu.
10
+ *
11
+ * Example:
12
+ * ```jsx
13
+ * <Popover identifier="popover">
14
+ * Open popover
15
+ *
16
+ * <Popover.Detail identifier="popover">
17
+ * <div>Content</div>
18
+ * </Popover.Detail>
19
+ * </Popover>
20
+ * ```
21
+ *
22
+ * > Note Popover.Trigger can be replaced by a button. Don't add a button inside the trigger.
23
+ */
24
+ export declare const Popover: PopoverType;
25
+ export type DetailProps = HTMLAttributes<HTMLDivElement> & {
26
+ isFocusable?: boolean;
27
+ isHidden?: boolean;
28
+ isOverable?: boolean;
29
+ identifier: string;
30
+ xAlign?: 'start' | 'end';
31
+ yAlign?: 'bellow' | 'above';
32
+ displayArrow?: boolean;
5
33
  };
6
- export declare const Popover: FC<PopoverProps>;
7
- export {};
8
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAepC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAC1C,cAAc,CAAC,cAAc,CAAC,EAC9B,cAAc,CACf,GAAG;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG;IAC3C,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,EAAE,WAerB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC"}
@@ -1,24 +1,68 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- const Popover = ({ children, content }) => /* @__PURE__ */ jsxs(
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn.mjs";
3
+ import { Container } from "../Container/index.mjs";
4
+ const Popover = ({
5
+ children,
6
+ className,
7
+ identifier,
8
+ ...props
9
+ }) => /* @__PURE__ */ jsx(
3
10
  "div",
4
11
  {
5
- className: "group relative",
12
+ className: cn("group/popover relative flex cursor-pointer", className),
13
+ "aria-label": `Popover ${identifier}`,
14
+ id: `unrollable-panel-button-${identifier}`,
6
15
  "aria-haspopup": true,
7
- "aria-expanded": false,
8
- "aria-label": "Display the popup by hovering this element",
9
- children: [
10
- children,
11
- /* @__PURE__ */ jsx(
12
- "div",
13
- {
14
- className: "bg-card absolute bottom-0 left-5 z-50 translate-y-[150%] rounded-md p-1 text-xs text-opacity-75 opacity-0 ring-2 ring-current transition-all delay-200 duration-200 ease-in-out hover:delay-0 group-hover:opacity-100",
15
- "aria-hidden": true,
16
- children: content
17
- }
18
- )
19
- ]
16
+ ...props,
17
+ children
20
18
  }
21
19
  );
20
+ const Detail = ({
21
+ children,
22
+ isHidden = void 0,
23
+ isOverable = true,
24
+ isFocusable = false,
25
+ xAlign = "start",
26
+ yAlign = "bellow",
27
+ identifier,
28
+ className,
29
+ displayArrow = true,
30
+ ...props
31
+ }) => /* @__PURE__ */ jsx(
32
+ Container,
33
+ {
34
+ transparency: "sm",
35
+ "aria-hidden": isHidden,
36
+ "aria-labelledby": `unrollable-panel-button-${identifier}`,
37
+ id: `unrollable-panel-${identifier}`,
38
+ className: cn(
39
+ "absolute z-[1000] min-w-full ring-neutral ring-1 rounded-md",
40
+ /* Positioning */
41
+ xAlign === "start" && "left-0",
42
+ xAlign === "end" && "right-0",
43
+ yAlign === "bellow" && "top-[calc(100%+1rem)]",
44
+ yAlign === "above" && "bottom-[calc(100%+1rem)]",
45
+ /* Arrow indicator */
46
+ displayArrow && 'before:absolute before:z-[999] before:content-[""] before:w-0 before:h-0',
47
+ /* Horizontal positioning */
48
+ displayArrow && xAlign === "start" && "before:left-2",
49
+ displayArrow && xAlign === "end" && "before:right-2",
50
+ /* Arrow pointing up (when popover is below trigger) */
51
+ displayArrow && yAlign === "bellow" && "before:-top-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-b-[10px] before:border-b-neutral",
52
+ /* Arrow pointing down (when popover is above trigger) */
53
+ displayArrow && yAlign === "above" && "before:-bottom-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-t-[10px] before:border-t-neutral",
54
+ /* Visibility management */
55
+ "overflow-x-visible transition-all duration-400 ease-in-out opacity-0",
56
+ isHidden !== false ? "invisible" : "delay-800 visible opacity-100",
57
+ isOverable && "group-hover/popover:visible group-hover/popover:opacity-100 group-hover/popover:delay-800",
58
+ isFocusable && "group-focus-within/popover:visible group-focus-within/popover:opacity-100 group-focus-within/popover:delay-800",
59
+ className
60
+ ),
61
+ ...props,
62
+ children
63
+ }
64
+ );
65
+ Popover.Detail = Detail;
22
66
  export {
23
67
  Popover
24
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/Popover/index.tsx"],"sourcesContent":["import type { FC, ReactNode } from 'react';\n\ntype PopoverProps = {\n content: ReactNode | string;\n children: ReactNode;\n};\n\nexport const Popover: FC<PopoverProps> = ({ children, content }) => (\n <div\n className=\"group relative\"\n aria-haspopup={true}\n aria-expanded={false}\n aria-label=\"Display the popup by hovering this element\"\n >\n {children}\n <div\n className=\"bg-card absolute bottom-0 left-5 z-50 translate-y-[150%] rounded-md p-1 text-xs text-opacity-75 opacity-0 ring-2 ring-current transition-all delay-200 duration-200 ease-in-out hover:delay-0 group-hover:opacity-100\"\n aria-hidden={true}\n >\n {content}\n </div>\n </div>\n);\n"],"names":[],"mappings":";AAOO,MAAM,UAA4B,CAAC,EAAE,UAAU,QACpD,MAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,iBAAe;AAAA,IACf,iBAAe;AAAA,IACf,cAAW;AAAA,IAEV,UAAA;AAAA,MAAA;AAAA,MACD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAa;AAAA,UAEZ,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AACF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/Popover/index.tsx"],"sourcesContent":["import type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\n\nexport type PopoverProps = DetailedHTMLProps<\n HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n> & {\n identifier: string;\n};\n\nexport type PopoverType = FC<PopoverProps> & {\n Detail: FC<DetailProps>;\n};\n\n/**\n * Trigger allowing to open a popover menu.\n *\n * Example:\n * ```jsx\n * <Popover identifier=\"popover\">\n * Open popover\n *\n * <Popover.Detail identifier=\"popover\">\n * <div>Content</div>\n * </Popover.Detail>\n * </Popover>\n * ```\n *\n * > Note Popover.Trigger can be replaced by a button. Don't add a button inside the trigger.\n */\nexport const Popover: PopoverType = ({\n children,\n className,\n identifier,\n ...props\n}) => (\n <div\n className={cn('group/popover relative flex cursor-pointer', className)}\n aria-label={`Popover ${identifier}`}\n id={`unrollable-panel-button-${identifier}`}\n aria-haspopup\n {...props}\n >\n {children}\n </div>\n);\n\nexport type DetailProps = HTMLAttributes<HTMLDivElement> & {\n isFocusable?: boolean;\n isHidden?: boolean;\n isOverable?: boolean;\n identifier: string;\n xAlign?: 'start' | 'end';\n yAlign?: 'bellow' | 'above';\n displayArrow?: boolean;\n};\n\n/**\n * Component that opens a popover menu when the trigger is clicked.\n *\n * Example:\n * ```jsx\n * <Popover.Detail identifier=\"popover\">\n * <div>Content</div>\n * </Popover.Detail>\n * ```\n */\nconst Detail: FC<DetailProps> = ({\n children,\n isHidden = undefined,\n isOverable = true,\n isFocusable = false,\n xAlign = 'start',\n yAlign = 'bellow',\n identifier,\n className,\n displayArrow = true,\n ...props\n}) => (\n <Container\n transparency=\"sm\"\n aria-hidden={isHidden}\n aria-labelledby={`unrollable-panel-button-${identifier}`}\n id={`unrollable-panel-${identifier}`}\n className={cn(\n 'absolute z-[1000] min-w-full ring-neutral ring-1 rounded-md',\n\n /* Positioning */\n xAlign === 'start' && 'left-0',\n xAlign === 'end' && 'right-0',\n yAlign === 'bellow' && 'top-[calc(100%+1rem)]',\n yAlign === 'above' && 'bottom-[calc(100%+1rem)]',\n\n /* Arrow indicator */\n displayArrow &&\n 'before:absolute before:z-[999] before:content-[\"\"] before:w-0 before:h-0',\n\n /* Horizontal positioning */\n displayArrow && xAlign === 'start' && 'before:left-2',\n displayArrow && xAlign === 'end' && 'before:right-2',\n\n /* Arrow pointing up (when popover is below trigger) */\n displayArrow &&\n yAlign === 'bellow' &&\n 'before:-top-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-b-[10px] before:border-b-neutral',\n\n /* Arrow pointing down (when popover is above trigger) */\n displayArrow &&\n yAlign === 'above' &&\n 'before:-bottom-[10px] before:border-l-[10px] before:border-l-transparent before:border-r-[10px] before:border-r-transparent before:border-t-[10px] before:border-t-neutral',\n\n /* Visibility management */\n 'overflow-x-visible transition-all duration-400 ease-in-out opacity-0',\n isHidden !== false ? 'invisible' : 'delay-800 visible opacity-100',\n isOverable &&\n 'group-hover/popover:visible group-hover/popover:opacity-100 group-hover/popover:delay-800',\n isFocusable &&\n 'group-focus-within/popover:visible group-focus-within/popover:opacity-100 group-focus-within/popover:delay-800',\n className\n )}\n {...props}\n >\n {children}\n </Container>\n);\n\nPopover.Detail = Detail;\n"],"names":[],"mappings":";;;AA+BO,MAAM,UAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAG,8CAA8C,SAAS;AAAA,IACrE,cAAY,WAAW,UAAU;AAAA,IACjC,IAAI,2BAA2B,UAAU;AAAA,IACzC,iBAAa;AAAA,IACZ,GAAG;AAAA,IAEH;AAAA,EAAA;AACH;AAuBF,MAAM,SAA0B,CAAC;AAAA,EAC/B;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,SAAS;AAAA,EACT,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,GAAG;AACL,MACE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,cAAa;AAAA,IACb,eAAa;AAAA,IACb,mBAAiB,2BAA2B,UAAU;AAAA,IACtD,IAAI,oBAAoB,UAAU;AAAA,IAClC,WAAW;AAAA,MACT;AAAA;AAAA,MAGA,WAAW,WAAW;AAAA,MACtB,WAAW,SAAS;AAAA,MACpB,WAAW,YAAY;AAAA,MACvB,WAAW,WAAW;AAAA;AAAA,MAGtB,gBACE;AAAA;AAAA,MAGF,gBAAgB,WAAW,WAAW;AAAA,MACtC,gBAAgB,WAAW,SAAS;AAAA;AAAA,MAGpC,gBACE,WAAW,YACX;AAAA;AAAA,MAGF,gBACE,WAAW,WACX;AAAA;AAAA,MAGF;AAAA,MACA,aAAa,QAAQ,cAAc;AAAA,MACnC,cACE;AAAA,MACF,eACE;AAAA,MACF;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA,EAAA;AACH;AAGF,QAAQ,SAAS;"}