@codecademy/gamut 68.6.1-alpha.edab62.0 → 68.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/Modals/elements.d.ts +186 -1
  2. package/dist/Modals/elements.js +3 -3
  3. package/dist/{InternalFloatingCard/InternalFloatingCard.d.ts → PatternBackdrop/PatternBackdrop.d.ts} +8 -24
  4. package/dist/PatternBackdrop/PatternBackdrop.js +42 -0
  5. package/dist/Toast/Toast.js +4 -4
  6. package/package.json +8 -11
  7. package/agent-tools/.claude-plugin/marketplace.json +0 -16
  8. package/agent-tools/.claude-plugin/plugin.json +0 -7
  9. package/agent-tools/.cursor-plugin/plugin.json +0 -7
  10. package/agent-tools/DESIGN.Codecademy.md +0 -643
  11. package/agent-tools/DESIGN.LXStudio.md +0 -444
  12. package/agent-tools/DESIGN.Percipio.md +0 -435
  13. package/agent-tools/DESIGN.md +0 -1
  14. package/agent-tools/agents/.gitkeep +0 -0
  15. package/agent-tools/commands/gamut-review.md +0 -170
  16. package/agent-tools/guidelines/components/buttons.md +0 -44
  17. package/agent-tools/guidelines/components/overview.md +0 -44
  18. package/agent-tools/guidelines/foundations/color.md +0 -86
  19. package/agent-tools/guidelines/foundations/modes.md +0 -45
  20. package/agent-tools/guidelines/foundations/spacing.md +0 -66
  21. package/agent-tools/guidelines/foundations/typography.md +0 -50
  22. package/agent-tools/guidelines/overview.md +0 -35
  23. package/agent-tools/guidelines/setup.md +0 -42
  24. package/agent-tools/rules/accessibility.mdc +0 -69
  25. package/agent-tools/skills/gamut-accessibility/SKILL.md +0 -239
  26. package/agent-tools/skills/gamut-color-mode/SKILL.md +0 -99
  27. package/agent-tools/skills/gamut-system-props/SKILL.md +0 -173
  28. package/agent-tools/skills/gamut-testing/SKILL.md +0 -181
  29. package/agent-tools/skills/gamut-theming/SKILL.md +0 -113
  30. package/agent-tools/skills/gamut-typography/SKILL.md +0 -123
  31. package/bin/commands/plugin/install.mjs +0 -173
  32. package/bin/commands/plugin/list.mjs +0 -105
  33. package/bin/commands/plugin/remove.mjs +0 -116
  34. package/bin/commands/plugin/update.mjs +0 -49
  35. package/bin/gamut.mjs +0 -92
  36. package/bin/lib/claude.mjs +0 -52
  37. package/bin/lib/cursor.mjs +0 -40
  38. package/bin/lib/figma.mjs +0 -49
  39. package/bin/lib/resolve-plugin-dir.mjs +0 -38
  40. package/bin/lib/run-command.mjs +0 -22
  41. package/dist/InternalFloatingCard/InternalFloatingCard.js +0 -98
package/bin/gamut.mjs DELETED
@@ -1,92 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Gamut CLI
5
- *
6
- * Usage:
7
- * gamut plugin install [cursor|claude|figma] [--scope all|skills|rules|commands|agents]
8
- * gamut plugin remove [cursor|claude|figma]
9
- * gamut plugin update [cursor|claude|figma] [--scope all|skills|rules|commands|agents]
10
- * gamut plugin list
11
- */
12
-
13
- const args = process.argv.slice(2);
14
- const [noun, verb, ...rest] = args;
15
-
16
- if (!noun || noun === '--help' || noun === '-h') {
17
- printHelp();
18
- process.exit(noun ? 0 : 1);
19
- }
20
-
21
- if (noun !== 'plugin') {
22
- console.error(`Unknown command: "${noun}"`);
23
- printHelp();
24
- process.exit(1);
25
- }
26
-
27
- if (!verb || verb === '--help' || verb === '-h') {
28
- printPluginHelp();
29
- process.exit(verb ? 0 : 1);
30
- }
31
-
32
- let cmd;
33
- try {
34
- cmd = await import(`./commands/plugin/${verb}.mjs`);
35
- } catch {
36
- console.error(`Unknown plugin subcommand: "${verb}"`);
37
- printPluginHelp();
38
- process.exit(1);
39
- }
40
-
41
- if (rest.includes('--help') || rest.includes('-h')) {
42
- cmd.help();
43
- process.exit(0);
44
- }
45
-
46
- try {
47
- await cmd.default(rest);
48
- } catch (/** @type {any} */ err) {
49
- console.error(`Error: ${err.message}`);
50
- process.exit(1);
51
- }
52
-
53
- // ---------------------------------------------------------------------------
54
- // Help
55
- // ---------------------------------------------------------------------------
56
-
57
- function printHelp() {
58
- console.log(`
59
- gamut — Gamut design system CLI
60
-
61
- Usage:
62
- gamut <command> [subcommand] [options]
63
-
64
- Commands:
65
- plugin Manage the Gamut plugin in your AI/design tools
66
-
67
- Run "gamut plugin --help" for plugin subcommands.
68
- `);
69
- }
70
-
71
- function printPluginHelp() {
72
- console.log(`
73
- gamut plugin — Manage the Gamut plugin
74
-
75
- Subcommands:
76
- install [target] [--scope <scope>] Install the plugin into a tool
77
- remove [target] Remove an installed plugin
78
- update [target] [--scope <scope>] Update an already-installed plugin
79
- list Show installation status for all targets
80
-
81
- Targets: cursor (default) | claude | figma
82
- Scopes: all (default) | skills | rules | commands | agents
83
-
84
- Examples:
85
- gamut plugin install
86
- gamut plugin install claude
87
- gamut plugin install cursor --scope skills
88
- gamut plugin remove claude
89
- gamut plugin update
90
- gamut plugin list
91
- `);
92
- }
@@ -1,52 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
-
4
- /**
5
- * Reads .claude-plugin/marketplace.json and returns a "name@marketplace" plugin spec.
6
- *
7
- * @param {string} sourceRoot
8
- * @returns {Promise<string>}
9
- */
10
- export async function claudePluginSpec(sourceRoot) {
11
- const mp = join(sourceRoot, '.claude-plugin', 'marketplace.json');
12
- let text;
13
- try {
14
- text = await readFile(mp, 'utf8');
15
- } catch {
16
- throw new Error(
17
- `Missing ${mp}.\n` +
18
- `A .claude-plugin/marketplace.json is required for Claude Code installation.`,
19
- );
20
- }
21
-
22
- const json =
23
- /** @type {{ name?: string; plugins?: Array<{ name?: string; source?: string }> }} */ (
24
- JSON.parse(text)
25
- );
26
- const { name: marketplaceName, plugins } = json;
27
-
28
- if (!marketplaceName || !Array.isArray(plugins) || plugins.length === 0) {
29
- throw new Error(`Invalid marketplace.json — needs "name" and "plugins[]": ${mp}`);
30
- }
31
-
32
- const entry =
33
- plugins.find((p) => p.source === './' || p.source === '.' || p.source == null) ?? plugins[0];
34
-
35
- if (!entry?.name) {
36
- throw new Error(`No plugin name found in marketplace.json plugins[]: ${mp}`);
37
- }
38
-
39
- return `${entry.name}@${marketplaceName}`;
40
- }
41
-
42
- /**
43
- * Returns just the marketplace name portion of a plugin spec ("name@marketplace").
44
- *
45
- * @param {string} spec
46
- * @returns {string}
47
- */
48
- export function marketplaceName(spec) {
49
- const name = spec.split('@')[1];
50
- if (!name) throw new Error(`Could not parse marketplace name from plugin spec: ${spec}`);
51
- return name;
52
- }
@@ -1,40 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { homedir } from 'node:os';
3
- import { join } from 'node:path';
4
-
5
- /** @returns {string} */
6
- export function cursorPluginsRoot() {
7
- return process.env.CURSOR_PLUGINS_LOCAL ?? join(homedir(), '.cursor', 'plugins', 'local');
8
- }
9
-
10
- /**
11
- * Reads the .cursor-plugin/plugin.json manifest and derives a folder name.
12
- * Falls back to "gamut-agent-tools" if no manifest is found.
13
- *
14
- * @param {string} sourceRoot
15
- * @returns {Promise<string>}
16
- */
17
- export async function cursorFolderName(sourceRoot) {
18
- const manifest = join(sourceRoot, '.cursor-plugin', 'plugin.json');
19
- try {
20
- const text = await readFile(manifest, 'utf8');
21
- const json = /** @type {{ name?: string }} */ (JSON.parse(text));
22
- if (json.name && typeof json.name === 'string') {
23
- return json.name.replace(/^@/, '').replace(/\//g, '-');
24
- }
25
- } catch {
26
- // no manifest — use default
27
- }
28
- return 'gamut-agent-tools';
29
- }
30
-
31
- /**
32
- * Returns the absolute path where the plugin is/should be installed for Cursor.
33
- *
34
- * @param {string} sourceRoot
35
- * @returns {Promise<string>}
36
- */
37
- export async function cursorDestPath(sourceRoot) {
38
- const folderName = await cursorFolderName(sourceRoot);
39
- return join(cursorPluginsRoot(), folderName);
40
- }
package/bin/lib/figma.mjs DELETED
@@ -1,49 +0,0 @@
1
- import { stat } from 'node:fs/promises';
2
- import { dirname, join, resolve } from 'node:path';
3
-
4
- /**
5
- * Walk up from `startDir` looking for a `figma.config.json` file.
6
- * Returns the directory containing it, or null if not found before the filesystem root.
7
- *
8
- * @param {string} startDir
9
- * @returns {Promise<string | null>}
10
- */
11
- export async function findFigmaConfigDir(startDir) {
12
- let dir = startDir;
13
- while (true) {
14
- const st = await stat(join(dir, 'figma.config.json')).catch(() => null);
15
- if (st?.isFile()) return dir;
16
- const parent = dirname(dir);
17
- if (parent === dir) return null;
18
- dir = parent;
19
- }
20
- }
21
-
22
- /**
23
- * Resolves the destination directory for the guidelines/ folder.
24
- *
25
- * Priority:
26
- * 1. --output <path> if provided (treated as the parent directory)
27
- * 2. Directory containing the nearest figma.config.json (walking up from cwd)
28
- *
29
- * Throws with actionable guidance if neither resolves.
30
- *
31
- * @param {string | undefined} outputArg
32
- * @returns {Promise<{ path: string; discovered: boolean }>}
33
- */
34
- export async function resolveFigmaOutput(outputArg) {
35
- if (outputArg) {
36
- return { path: resolve(outputArg), discovered: false };
37
- }
38
-
39
- const dir = await findFigmaConfigDir(process.cwd());
40
- if (dir) {
41
- return { path: join(dir, 'guidelines'), discovered: true };
42
- }
43
-
44
- throw new Error(
45
- `Could not find figma.config.json in ${process.cwd()} or any parent directory.\n` +
46
- `Provide the destination explicitly with --output:\n` +
47
- ` gamut plugin install figma --output /path/to/your/project/guidelines`,
48
- );
49
- }
@@ -1,38 +0,0 @@
1
- import { stat } from 'node:fs/promises';
2
- import { dirname, resolve } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
-
5
- const __dirname = dirname(fileURLToPath(import.meta.url));
6
-
7
- /**
8
- * Returns the absolute path to the bundled agent-tools directory, or the
9
- * value of --plugin-dir if provided.
10
- *
11
- * @param {string[]} args
12
- * @returns {Promise<string>}
13
- */
14
- export async function resolvePluginDir(args) {
15
- const override = getFlag(args, '--plugin-dir');
16
- if (override) {
17
- const abs = resolve(override);
18
- const st = await stat(abs).catch(() => null);
19
- if (!st?.isDirectory()) {
20
- throw new Error(`--plugin-dir path not found: ${abs}`);
21
- }
22
- return abs;
23
- }
24
-
25
- // agent-tools/ is bundled at <package-root>/agent-tools/ relative to bin/lib/
26
- return resolve(__dirname, '..', '..', 'agent-tools');
27
- }
28
-
29
- /**
30
- * @param {string[]} argv
31
- * @param {string} flag
32
- * @param {string} [fallback]
33
- * @returns {string | undefined}
34
- */
35
- export function getFlag(argv, flag, fallback) {
36
- const idx = argv.indexOf(flag);
37
- return idx !== -1 ? argv[idx + 1] : fallback;
38
- }
@@ -1,22 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
-
3
- /**
4
- * Spawns an external command and returns its exit code.
5
- *
6
- * @param {string} command
7
- * @param {string[]} args
8
- * @returns {Promise<number>}
9
- */
10
- export function runCommand(command, args) {
11
- return new Promise((resolve, reject) => {
12
- const child = spawn(command, args, { stdio: 'inherit', shell: false });
13
- child.on('error', (/** @type {NodeJS.ErrnoException} */ err) => {
14
- if (err.code === 'ENOENT') {
15
- reject(new Error(`"${command}" not found on PATH. Is it installed?`));
16
- } else {
17
- reject(err);
18
- }
19
- });
20
- child.on('close', (code) => resolve(code ?? 1));
21
- });
22
- }
@@ -1,98 +0,0 @@
1
- import _styled from "@emotion/styled/base";
2
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
- import { CheckerDense } from '@codecademy/gamut-patterns';
4
- import { styledOptions, system } from '@codecademy/gamut-styles';
5
- import { variance } from '@codecademy/variance';
6
- import { forwardRef } from 'react';
7
- import * as React from 'react';
8
- import { Box } from '../Box';
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- const cardProps = variance.compose(system.layout, system.padding);
11
- const beakVariants = system.variant({
12
- prop: 'beak',
13
- base: {
14
- p: 12,
15
- '&:after': {
16
- content: '""',
17
- width: '1.25rem',
18
- height: '1.25rem',
19
- bg: 'inherit',
20
- transform: 'rotate(45deg)',
21
- position: 'absolute',
22
- border: 1,
23
- borderStyleRight: 'none',
24
- borderStyleBottom: 'none'
25
- }
26
- },
27
- variants: {
28
- 'bottom-left': {
29
- '&:after': {
30
- bottom: 'calc(-0.625rem - 1px)',
31
- left: '1.5rem',
32
- transform: 'rotate(225deg)'
33
- }
34
- },
35
- 'bottom-right': {
36
- '&:after': {
37
- bottom: 'calc(-0.625rem - 1px)',
38
- right: '1.5rem',
39
- transform: 'rotate(225deg)'
40
- }
41
- },
42
- 'top-left': {
43
- '&:after': {
44
- top: 'calc(-0.625rem - 1px)',
45
- left: '1.5rem',
46
- transform: 'rotate(45deg)'
47
- }
48
- },
49
- 'top-right': {
50
- '&:after': {
51
- top: 'calc(-0.625rem - 1px)',
52
- right: '1.5rem',
53
- transform: 'rotate(45deg)'
54
- }
55
- }
56
- }
57
- });
58
- const CardBody = /*#__PURE__*/_styled('div', _extends({}, {
59
- target: "e14ubxlw0",
60
- label: "CardBody"
61
- }, styledOptions))(system.css({
62
- p: 12,
63
- zIndex: 1,
64
- position: 'relative',
65
- bg: 'background',
66
- border: 1,
67
- maxWidth: 1
68
- }), beakVariants, cardProps, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbnRlcm5hbEZsb2F0aW5nQ2FyZC9JbnRlcm5hbEZsb2F0aW5nQ2FyZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNERpQiIsImZpbGUiOiIuLi8uLi9zcmMvSW50ZXJuYWxGbG9hdGluZ0NhcmQvSW50ZXJuYWxGbG9hdGluZ0NhcmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hlY2tlckRlbnNlLCBQYXR0ZXJuUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1wYXR0ZXJucyc7XG5pbXBvcnQgeyBzdHlsZWRPcHRpb25zLCBzeXN0ZW0gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcywgdmFyaWFuY2UgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBQcm9wZXJ0aWVzIH0gZnJvbSAnY3NzdHlwZSc7XG5pbXBvcnQgeyBDb21wb25lbnRQcm9wcywgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vQm94JztcblxuY29uc3QgY2FyZFByb3BzID0gdmFyaWFuY2UuY29tcG9zZShzeXN0ZW0ubGF5b3V0LCBzeXN0ZW0ucGFkZGluZyk7XG5cbmNvbnN0IGJlYWtWYXJpYW50cyA9IHN5c3RlbS52YXJpYW50KHtcbiAgcHJvcDogJ2JlYWsnLFxuICBiYXNlOiB7XG4gICAgcDogMTIsXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICB3aWR0aDogJzEuMjVyZW0nLFxuICAgICAgaGVpZ2h0OiAnMS4yNXJlbScsXG4gICAgICBiZzogJ2luaGVyaXQnLFxuICAgICAgdHJhbnNmb3JtOiAncm90YXRlKDQ1ZGVnKScsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGJvcmRlcjogMSxcbiAgICAgIGJvcmRlclN0eWxlUmlnaHQ6ICdub25lJyxcbiAgICAgIGJvcmRlclN0eWxlQm90dG9tOiAnbm9uZScsXG4gICAgfSxcbiAgfSxcbiAgdmFyaWFudHM6IHtcbiAgICAnYm90dG9tLWxlZnQnOiB7XG4gICAgICAnJjphZnRlcic6IHtcbiAgICAgICAgYm90dG9tOiAnY2FsYygtMC42MjVyZW0gLSAxcHgpJyxcbiAgICAgICAgbGVmdDogJzEuNXJlbScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgyMjVkZWcpJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnYm90dG9tLXJpZ2h0Jzoge1xuICAgICAgJyY6YWZ0ZXInOiB7XG4gICAgICAgIGJvdHRvbTogJ2NhbGMoLTAuNjI1cmVtIC0gMXB4KScsXG4gICAgICAgIHJpZ2h0OiAnMS41cmVtJyxcbiAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKDIyNWRlZyknLFxuICAgICAgfSxcbiAgICB9LFxuICAgICd0b3AtbGVmdCc6IHtcbiAgICAgICcmOmFmdGVyJzoge1xuICAgICAgICB0b3A6ICdjYWxjKC0wLjYyNXJlbSAtIDFweCknLFxuICAgICAgICBsZWZ0OiAnMS41cmVtJyxcbiAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKDQ1ZGVnKScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJ3RvcC1yaWdodCc6IHtcbiAgICAgICcmOmFmdGVyJzoge1xuICAgICAgICB0b3A6ICdjYWxjKC0wLjYyNXJlbSAtIDFweCknLFxuICAgICAgICByaWdodDogJzEuNXJlbScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSg0NWRlZyknLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG5cbmNvbnN0IENhcmRCb2R5ID0gc3R5bGVkKCdkaXYnLCBzdHlsZWRPcHRpb25zKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgYmVha1ZhcmlhbnRzPiAmIFN0eWxlUHJvcHM8dHlwZW9mIGNhcmRQcm9wcz5cbj4oXG4gIHN5c3RlbS5jc3Moe1xuICAgIHA6IDEyLFxuICAgIHpJbmRleDogMSxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBiZzogJ2JhY2tncm91bmQnLFxuICAgIGJvcmRlcjogMSxcbiAgICBtYXhXaWR0aDogMSxcbiAgfSksXG4gIGJlYWtWYXJpYW50cyxcbiAgY2FyZFByb3BzXG4pO1xuXG50eXBlIEludGVybmFsRmxvYXRpbmdDYXJkV3JhcHBlciA9IHtcbiAgY29udGFpbmVyRGlzcGxheT86IFByb3BlcnRpZXNbJ2Rpc3BsYXknXTtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsRmxvYXRpbmdDYXJkUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgcGF0dGVybj86IFJlYWN0LkNvbXBvbmVudFR5cGU8UGF0dGVyblByb3BzPjtcbiAgc2hhZG93PzogJ2JvdHRvbUxlZnQnIHwgJ2JvdHRvbVJpZ2h0Jztcbn0gJiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2FyZEJvZHk+O1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbEZsb2F0aW5nQ2FyZFdpdGhXcmFwcGVyID0gSW50ZXJuYWxGbG9hdGluZ0NhcmRQcm9wcyAmXG4gIEludGVybmFsRmxvYXRpbmdDYXJkV3JhcHBlcjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVGhpcyBjb21wb25lbnQgaXMgc3RyaWN0bHkgZm9yIGludGVybmFsIEdhbXV0IHVzYWdlLlxuICogUGxlYXNlIHVzZSB0aGUgYENhcmRgIGNvbXBvbmVudCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgSW50ZXJuYWxGbG9hdGluZ0NhcmQgPSBmb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgSW50ZXJuYWxGbG9hdGluZ0NhcmRXaXRoV3JhcHBlclxuPihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgcGF0dGVybjogUGF0dGVybiA9IENoZWNrZXJEZW5zZSxcbiAgICAgIHNoYWRvdyA9ICdib3R0b21MZWZ0JyxcbiAgICAgIGNvbnRhaW5lckRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJyxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZlxuICApID0+IChcbiAgICA8Qm94XG4gICAgICBkaXNwbGF5PXtjb250YWluZXJEaXNwbGF5fVxuICAgICAgbWF4V2lkdGg9XCIxMDAlXCJcbiAgICAgIHBvc2l0aW9uPVwicmVsYXRpdmVcIlxuICAgICAgekluZGV4PXsxfVxuICAgID5cbiAgICAgIDxQYXR0ZXJuXG4gICAgICAgIGRpbWVuc2lvbnM9ezF9XG4gICAgICAgIGxlZnQ9e3NoYWRvdyA9PT0gJ2JvdHRvbUxlZnQnID8gJy0wLjVyZW0nIDogdW5kZWZpbmVkfVxuICAgICAgICBwb3NpdGlvbj1cImFic29sdXRlXCJcbiAgICAgICAgcmlnaHQ9e3NoYWRvdyA9PT0gJ2JvdHRvbVJpZ2h0JyA/ICctMC41cmVtJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgdG9wPVwiMC41cmVtXCJcbiAgICAgIC8+XG4gICAgICA8Q2FyZEJvZHkgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHsuLi5yZXN0fSByZWY9e3JlZn0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQ2FyZEJvZHk+XG4gICAgPC9Cb3g+XG4gIClcbik7XG4iXX0= */");
69
- /**
70
- * @deprecated
71
- * This component is strictly for internal Gamut usage.
72
- * Please use the `Card` component instead.
73
- */
74
- export const InternalFloatingCard = /*#__PURE__*/forwardRef(({
75
- children,
76
- className,
77
- pattern: Pattern = CheckerDense,
78
- shadow = 'bottomLeft',
79
- containerDisplay = 'inline-block',
80
- ...rest
81
- }, ref) => /*#__PURE__*/_jsxs(Box, {
82
- display: containerDisplay,
83
- maxWidth: "100%",
84
- position: "relative",
85
- zIndex: 1,
86
- children: [/*#__PURE__*/_jsx(Pattern, {
87
- dimensions: 1,
88
- left: shadow === 'bottomLeft' ? '-0.5rem' : undefined,
89
- position: "absolute",
90
- right: shadow === 'bottomRight' ? '-0.5rem' : undefined,
91
- top: "0.5rem"
92
- }), /*#__PURE__*/_jsx(CardBody, {
93
- className: className,
94
- ...rest,
95
- ref: ref,
96
- children: children
97
- })]
98
- }));