From 8ab8d6d7717e3c05af1de5b84b8a84583c65944a Mon Sep 17 00:00:00 2001 From: jorgemike Date: Sat, 22 Mar 2025 18:08:10 -0500 Subject: [PATCH] Componentes --- package-lock.json | 308 ++++++++++++++++- package.json | 4 +- public/input.png | Bin 15854 -> 11393 bytes public/options.png | Bin 0 -> 18288 bytes public/pagination.png | Bin 0 -> 12469 bytes public/select.png | Bin 0 -> 23180 bytes public/table.png | Bin 24380 -> 45448 bytes src/app/(components)/button/page.tsx | 96 ++++++ src/app/(components)/input/page.tsx | 187 ++++++++++ src/app/(components)/layout.tsx | 13 + src/app/(components)/options/page.tsx | 200 +++++++++++ src/app/(components)/pagination/page.tsx | 107 ++++++ src/app/(components)/select/page.tsx | 123 +++++++ src/app/(components)/table/page.tsx | 325 ++++++++++++++++++ src/app/input/page.tsx | 122 ------- src/app/layout.tsx | 2 + src/app/page.tsx | 42 ++- src/app/table/page.tsx | 225 ------------ src/components/button.tsx | 72 ++++ src/components/checkbox-option-group.tsx | 58 ++++ src/components/code-block.tsx | 15 +- src/components/content-index.tsx | 23 ++ src/components/input.tsx | 48 +-- src/components/navbar.tsx | 47 +++ src/components/pagination.tsx | 49 +-- src/components/radio-option-group.tsx | 46 +++ src/components/select.tsx | 103 ++++++ src/components/table.tsx | 2 +- src/components/vista-componente.tsx | 16 +- src/snippets/input/input-examples.ts | 23 ++ src/snippets/options/option-examples.ts | 59 ++++ src/snippets/pagination/pagination-example.ts | 16 + src/snippets/select/select.tsx | 32 ++ src/snippets/table/table-auto-pagination.ts | 30 ++ src/snippets/table/table-basic.ts | 38 +- src/snippets/table/table-clickable.ts | 27 ++ src/snippets/table/table-column-width.ts | 23 ++ .../table/table-custom-cell-render.ts | 37 ++ src/snippets/table/table-custom-pagination.ts | 50 +++ src/snippets/table/table-filter.ts | 42 +++ src/styles/sass/_extends.scss | 56 +++ src/styles/sass/_gradients.scss | 16 +- src/styles/sass/bootstrap.scss | 57 ++- 43 files changed, 2281 insertions(+), 458 deletions(-) create mode 100644 public/options.png create mode 100644 public/pagination.png create mode 100644 public/select.png create mode 100644 src/app/(components)/button/page.tsx create mode 100644 src/app/(components)/input/page.tsx create mode 100644 src/app/(components)/layout.tsx create mode 100644 src/app/(components)/options/page.tsx create mode 100644 src/app/(components)/pagination/page.tsx create mode 100644 src/app/(components)/select/page.tsx create mode 100644 src/app/(components)/table/page.tsx delete mode 100644 src/app/input/page.tsx delete mode 100644 src/app/table/page.tsx create mode 100644 src/components/button.tsx create mode 100644 src/components/checkbox-option-group.tsx create mode 100644 src/components/content-index.tsx create mode 100644 src/components/navbar.tsx create mode 100644 src/components/radio-option-group.tsx create mode 100644 src/components/select.tsx create mode 100644 src/snippets/input/input-examples.ts create mode 100644 src/snippets/options/option-examples.ts create mode 100644 src/snippets/pagination/pagination-example.ts create mode 100644 src/snippets/select/select.tsx create mode 100644 src/snippets/table/table-auto-pagination.ts create mode 100644 src/snippets/table/table-clickable.ts create mode 100644 src/snippets/table/table-column-width.ts create mode 100644 src/snippets/table/table-custom-cell-render.ts create mode 100644 src/snippets/table/table-custom-pagination.ts create mode 100644 src/snippets/table/table-filter.ts diff --git a/package-lock.json b/package-lock.json index ebb1a85..05fd0ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,19 +12,33 @@ "bootstrap-icons": "^1.11.3", "next": "15.2.3", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-syntax-highlighter": "^15.6.1" }, "devDependencies": { "@eslint/eslintrc": "^3", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-syntax-highlighter": "^15.5.13", "eslint": "^9", "eslint-config-next": "15.2.3", "sass": "^1.86.0", "typescript": "^5" } }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@emnapi/core": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", @@ -1210,6 +1224,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1254,6 +1277,22 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/react-syntax-highlighter": { + "version": "15.5.13", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", + "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.27.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", @@ -2105,6 +2144,36 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -2172,6 +2241,16 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3042,6 +3121,19 @@ "reusify": "^1.0.4" } }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3122,6 +3214,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3390,6 +3490,48 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/highlightjs-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz", + "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==", + "license": "CC0-1.0" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3449,6 +3591,30 @@ "node": ">= 0.4" } }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -3601,6 +3767,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3659,6 +3835,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -4026,6 +4212,20 @@ "loose-envify": "cli.js" } }, + "node_modules/lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "license": "MIT", + "dependencies": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -4381,6 +4581,24 @@ "node": ">=6" } }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4475,6 +4693,15 @@ "node": ">= 0.8.0" } }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4487,6 +4714,19 @@ "react-is": "^16.13.1" } }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4546,6 +4786,23 @@ "dev": true, "license": "MIT" }, + "node_modules/react-syntax-highlighter": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.6.1.tgz", + "integrity": "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "highlightjs-vue": "^1.0.0", + "lowlight": "^1.17.0", + "prismjs": "^1.27.0", + "refractor": "^3.6.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -4583,6 +4840,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "license": "MIT", + "dependencies": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/refractor/node_modules/prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -5005,6 +5292,16 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -5551,6 +5848,15 @@ "node": ">=0.10.0" } }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 0f43efe..09c1b1e 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,15 @@ "bootstrap-icons": "^1.11.3", "next": "15.2.3", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-syntax-highlighter": "^15.6.1" }, "devDependencies": { "@eslint/eslintrc": "^3", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-syntax-highlighter": "^15.5.13", "eslint": "^9", "eslint-config-next": "15.2.3", "sass": "^1.86.0", diff --git a/public/input.png b/public/input.png index 8eae39b09cdeb56eedb5c20b2169ce2531d62e58..099f75cf640ec3d3130ac284d60af56f08b49827 100644 GIT binary patch literal 11393 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 J_Vulw{}-qAY<&O# literal 15854 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 I%U2)%8(F4lr2qf` literal 0 HcmV?d00001 diff --git a/public/pagination.png b/public/pagination.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0bc412ebc2c3dda6acd64630a3373f99e04c93 GIT binary patch literal 12469 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 literal 0 HcmV?d00001 diff --git a/public/select.png b/public/select.png new file mode 100644 index 0000000000000000000000000000000000000000..82afd52db1fb5341bffb6332b27230b0547a3bac GIT binary patch literal 23180 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 + + +
+

+ 🧩 Componente: Button +

+ +

+ El componente <Button /> permite crear botones con + estilos de Bootstrap, variantes personalizables, íconos opcionales y + soporte completo para props de HTML estándar. +

+ +
+ + alert("¡Hola mundo!")}> + Clic aquí +`} + > + + + + + Guardar +`} + > + + + +
+

⚙️ Props del componente

+
    +
  • + variant?: string – Clase base del botón. Ej:{" "} + "primary", "danger". +
  • +
  • + outline?: boolean – Si el botón debe usar estilo{" "} + outline. +
  • +
  • + icon?: string | ReactNode – Ícono Bootstrap (por + nombre) o componente React. +
  • +
  • + size?: "sm" | "lg" – Tamaño del botón. +
  • +
  • + className?: string – Clases adicionales para el + botón. +
  • +
  • + type?: "button" | "submit" | "reset" – Tipo de botón. +
  • +
  • + disabled?: boolean – Desactiva el botón. +
  • +
  • + children: ReactNode – Contenido del botón. +
  • +
  • + ...rest – Cualquier otra prop válida de{" "} + <button>. +
  • +
+
+
+ + ); +} diff --git a/src/app/(components)/input/page.tsx b/src/app/(components)/input/page.tsx new file mode 100644 index 0000000..c38e1d8 --- /dev/null +++ b/src/app/(components)/input/page.tsx @@ -0,0 +1,187 @@ +"use client"; + +import IndiceContenido from "@/components/content-index"; +import Input from "@/components/input"; +import VistaComponente from "@/components/vista-componente"; +import { inputBasicExample, inputPasswordExample, inputStylesExample } from "@/snippets/input/input-examples"; +import { useState } from "react"; + +export default function Page() { + const [value, setValue] = useState(""); + const [password, setPassword] = useState(""); + + return ( + <> + +
+

+ 🔤 Componente: Input +

+ +

+ El componente <Input /> es un campo de entrada + reutilizable con soporte para etiquetas, tipos como{" "} + password, accesibilidad mejorada, y personalización de + estilos. Además, incluye un botón para mostrar/ocultar contraseñas + cuando el tipo es password. +

+ +
+ + + setValue(e.target.value)} + /> + + + + setPassword(e.target.value)} + /> + + + + + + +
+

Props del componente

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropTipoDescripción
+ label? + + string + Etiqueta asociada al campo de entrada.
+ type? + + string + + Tipo del input. Soporta cualquier tipo válido de HTML como{" "} + text, password, email, + etc. +
+ value? + + string + Valor del input en modo controlado.
+ onChange? + + + (e: React.ChangeEvent<HTMLInputElement>) => void + + Función que se ejecuta al cambiar el valor del input.
+ name? + + string + Nombre del campo, útil en formularios.
+ id? + + string + + ID personalizado para el input. Si no se proporciona, se + genera automáticamente. +
+ className? + + {`{ container?, label?, input? }`} + + Permite personalizar los estilos del contenedor, la etiqueta y + el input. +
+ ...rest + + InputHTMLAttributes<HTMLInputElement> + + Cualquier otra prop válida de un <input />{" "} + estándar. +
+
+
+ + ); +} diff --git a/src/app/(components)/layout.tsx b/src/app/(components)/layout.tsx new file mode 100644 index 0000000..cb55daf --- /dev/null +++ b/src/app/(components)/layout.tsx @@ -0,0 +1,13 @@ +import React from "react"; + +export default function ComponentsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+ {children} +
+ ); +} diff --git a/src/app/(components)/options/page.tsx b/src/app/(components)/options/page.tsx new file mode 100644 index 0000000..4d9a7ff --- /dev/null +++ b/src/app/(components)/options/page.tsx @@ -0,0 +1,200 @@ +"use client"; + +import React, { useState } from "react"; +import RadioOptionGroup, { RadioOption } from "@/components/radio-option-group"; +import CheckboxOptionGroup, { + CheckboxOption, +} from "@/components/checkbox-option-group"; +import VistaComponente from "@/components/vista-componente"; +import { CodeBlock } from "@/components/code-block"; +import { + checkboxBasicExample, + checkboxLimitExample, + radioBasicExample, + radioDisabledExample, +} from "@/snippets/options/option-examples"; +import IndiceContenido from "@/components/content-index"; + +export default function RadioCheckboxDocs() { + const [selectedRadio, setSelectedRadio] = useState("op1"); + + const [checkboxBasicSelected, setCheckboxBasicSelected] = useState([ + "a", + ]); + const [checkboxLimitSelected, setCheckboxLimitSelected] = useState( + [] + ); + + const radioOptions: RadioOption[] = [ + { label: "Opción 1", value: "op1" }, + { label: "Opción 2", value: "op2" }, + { label: "Opción 3", value: "op3" }, + ]; + + const checkboxOptions: CheckboxOption[] = [ + { label: "Activo", value: "a" }, + { label: "Inactivo", value: "b" }, + { label: "Pendiente", value: "c" }, + ]; + + const handleCheckboxChange = ( + value: string, + checked: boolean, + setValues: React.Dispatch> + ) => { + setValues((prev) => + checked ? [...prev, value] : prev.filter((v) => v !== value) + ); + }; + + return ( + <> + +
+

+ Componentes: RadioOptionGroup y{" "} + CheckboxOptionGroup +

+ +

+ Estos componentes permiten mostrar grupos de opciones radio o + checkbox, para seleccionar una o varias opciones respectivamente. Son + útiles en formularios, encuestas o filtros. Los estilos de estos + componentes se basan en Bootstrap y se encuentran el el archivo{" "} + @/styles/sass/_extneds.scss y es el selector{" "} + .option. +

+ + + +
+ + + + + + + {}} + /> + + + + + handleCheckboxChange(value, checked, setCheckboxBasicSelected) + } + /> + + + + + handleCheckboxChange(value, checked, setCheckboxLimitSelected) + } + maxSelected={2} + /> + + +
+

Props comunes

+
    +
  • + name: Nombre del grupo de inputs. +
  • +
  • + options: Lista de opciones con label,{" "} + value y opcionalmente disabled. +
  • +
  • + className?: Clases CSS adicionales. +
  • +
+ +

+ Props de RadioOptionGroup +

+
    +
  • + selectedValue?: Valor seleccionado actualmente. +
  • +
  • + onChange: Función que se ejecuta al cambiar de + opción. +
  • +
  • + disabled?: Deshabilita todo el grupo. +
  • +
+ +

+ ☑️ Props de CheckboxOptionGroup +

+
    +
  • + selectedValues: Lista de valores seleccionados. +
  • +
  • + onChange: Función que se ejecuta al marcar o + desmarcar una opción. +
  • +
  • + maxSelected?: Número máximo de opciones + seleccionables. +
  • +
  • + disabled?: Deshabilita todo el grupo. +
  • +
+
+
+ + ); +} diff --git a/src/app/(components)/pagination/page.tsx b/src/app/(components)/pagination/page.tsx new file mode 100644 index 0000000..5609caf --- /dev/null +++ b/src/app/(components)/pagination/page.tsx @@ -0,0 +1,107 @@ +"use client"; + +import React, { useState } from "react"; +import VistaComponente from "@/components/vista-componente"; +import { CodeBlock } from "@/components/code-block"; +import Pagination from "@/components/pagination"; +import { + paginationBasic, + paginationWithDelta, +} from "@/snippets/pagination/pagination-example"; +import IndiceContenido from "@/components/content-index"; + +export default function Page() { + const [currentPage1, setCurrentPage1] = useState(1); + const [currentPage2, setCurrentPage2] = useState(6); + + return ( + <> + +
+

+ 📄 Componente: Pagination +

+ +

+ El componente <Pagination /> permite navegar entre + páginas de forma controlada. Es completamente reutilizable y permite + mostrar botones de anterior/siguiente y paginación con saltos. +

+ + + +
+ + {/* Ejemplo básico */} + + +

+ Página actual: {currentPage1} +

+
+ + {/* Ejemplo con delta */} + + +

+ Página actual: {currentPage2} +

+
+ + {/* Props */} +
+

⚙️ Props del componente

+
    +
  • + totalPages: number — Total de páginas + disponibles. +
  • +
  • + currentPage: number — Página actual. +
  • +
  • + onPageChange: (page: number) => void — + Callback que se ejecuta al cambiar de página. +
  • +
  • + delta?: number — Número de páginas vecinas + visibles (por defecto: 1). +
  • +
  • + className?: string — Clases CSS + personalizadas para el contenedor. +
  • +
+
+
+ + ); +} diff --git a/src/app/(components)/select/page.tsx b/src/app/(components)/select/page.tsx new file mode 100644 index 0000000..386aae1 --- /dev/null +++ b/src/app/(components)/select/page.tsx @@ -0,0 +1,123 @@ +"use client"; + +import IndiceContenido from "@/components/content-index"; +import Select from "@/components/select"; +import VistaComponente from "@/components/vista-componente"; +import { countrySelectSnippet, languageSelectSnippet } from "@/snippets/select/select"; +import { useState } from "react"; + +export default function Page() { + const [pais, setPais] = useState(""); + + const opcionesPais = [ + { value: "mx", label: "México" }, + { value: "us", label: "Estados Unidos" }, + { value: "ca", label: "Canadá" }, + ]; + + return ( + <> + +
+

+ 📑 Componente: Select +

+ +

+ El componente <Select /> permite mostrar una lista + desplegable con opciones personalizables, soporta etiquetas, estilos + por clase, y es compatible con formularios. +

+ +
+ + + + + +
+

⚙️ Props del componente

+
    +
  • + label: string – Etiqueta visible del campo. +
  • +
  • + + options: { value: string | number; label: string + }[] + {" "} + – Opciones a mostrar. +
  • +
  • + placeholder?: string – Texto inicial deshabilitado. +
  • +
  • + name?: string – Nombre del campo. +
  • +
  • + id?: string – ID del campo (se genera si no se + proporciona). +
  • +
  • + defaultValue?: string | number – Valor por defecto + (modo no controlado). +
  • +
  • + value?: string | number – Valor actual del select + (modo controlado). +
  • +
  • + className?: { container?, label?, input? }{" "} + – Clases personalizadas. +
  • +
  • + ...rest – Cualquier otra prop válida de{" "} + <select>. +
  • +
+
+
+ + ); +} diff --git a/src/app/(components)/table/page.tsx b/src/app/(components)/table/page.tsx new file mode 100644 index 0000000..2831f8d --- /dev/null +++ b/src/app/(components)/table/page.tsx @@ -0,0 +1,325 @@ +"use client"; + +import React, { useState } from "react"; +import Table, { Header, TableSkeleton } from "@/components/table"; +import VistaComponente from "@/components/vista-componente"; +import { + tableBasicExample, + tableSkeletonExample, +} from "@/snippets/table/table-basic"; +import { tableClickable } from "@/snippets/table/table-clickable"; +import { tableAutoPagination } from "@/snippets/table/table-auto-pagination"; +import { tableCustomPagination } from "@/snippets/table/table-custom-pagination"; +import { tableCustomCellRender } from "@/snippets/table/table-custom-cell-render"; +import { tableColumnWidth } from "@/snippets/table/table-column-width"; +import { CodeBlock } from "@/components/code-block"; +import Input from "@/components/input"; +import { tableFilter } from "@/snippets/table/table-filter"; +import IndiceContenido from "@/components/content-index"; + +export default function Page() { + const headers: Header<{ + name: string; + age: number; + email: string; + acciones?: null; + }>[] = [ + { key: "name", label: "Nombre", width: "30%" }, + { key: "age", label: "Edad", width: "15%" }, + { key: "email", label: "Correo", width: "40%" }, + ]; + + const baseData = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + const [currentPage, setCurrentPage] = useState(1); + const [search, setSearch] = useState(""); + + const filteredData = baseData.filter((item) => + item.name.toLowerCase().includes(search.toLowerCase()) + ); + + return ( + <> + +
+

+ Componente: Table +

+ +

+ El componente <Table /> permite mostrar datos en + forma tabular, con funcionalidades como ordenamiento, paginación, + renderizado personalizado, clic en filas y un estado de carga + esqueleto. Los estilos de esta tabla se encuentran en{" "} + @/styles/sass/_table.scss +

+ + + +
+ + + + + + {/* SKELETON */} + + + + + +
alert(`Seleccionaste a ${row.name}`)} + /> + + + +
+ + + +
+ + + +
( + + ), + }, + ]} + data={baseData.map((d) => ({ ...d, acciones: null }))} + /> + + + +
+ + + {/* FILTRO */} + + setSearch(e.target.value)} + /> +
+ + + +
({ ...item, id: index }))} + rowKey={(row) => row.email} + /> + + + {/* PROPS */} +
+

Props del componente

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropTipoDescripción
+ headers + + Header<T>[] + + Columnas de la tabla. Cada header puede tener key, label, + width, y una función render. +
+ data + + T[] + Datos a mostrar en la tabla.
+ rowsPerPage? + + number + + Número de filas por página (por defecto: 10). +
+ onRowClick? + + (row: T) => void + Función que se ejecuta al hacer clic en una fila.
+ rowKey? + + (row: T) => string | number + + Función para obtener un identificador único de cada fila + (evita usar index). +
+ className? + + {"{ table?, row?, cell?, header? }"} + + Clases personalizadas para la tabla, filas, celdas y + encabezados. +
+ controlledPage? + + number + Página actual controlada desde el componente padre.
+ onPageChange? + + (page: number) => void + Función callback que se dispara al cambiar de página.
+ +
+ + ); +} diff --git a/src/app/input/page.tsx b/src/app/input/page.tsx deleted file mode 100644 index 77f1452..0000000 --- a/src/app/input/page.tsx +++ /dev/null @@ -1,122 +0,0 @@ -"use client"; - -import React from "react"; -import Input from "@/components/input"; - -export default function Page() { - return ( -
-

- 📦 Componente: Input -

- -

- El componente {``} encapsula un campo de entrada - HTML estándar con mejoras en accesibilidad, estilo y experiencia de - usuario. Soporta etiquetas, clases personalizadas, inputs - deshabilitados, y funcionalidad para mostrar u ocultar contraseñas. -

- -
- -
-

🔹 Uso básico

-

Un campo de texto simple con etiqueta y placeholder.

- -
-          {``}
-        
-
- -
- -
-

🔐 Campo de tipo contraseña

-

- Incluye un botón para mostrar u ocultar el contenido del campo. -

- -
-          {``}
-        
-
- -
- -
-

🚫 Input deshabilitado

- -
-          {``}
-        
-
- -
- -
-

🎨 Personalización de clases

-

- Puedes personalizar el estilo de cada parte del input: contenedor, - etiqueta e input. -

- -
-          {``}
-        
-
- -
- -
-

📏 Input en contenedor reducido

-

Se adapta a contenedores pequeños sin problemas.

-
- -
-
-          {`
- -
`}
-
-
-
- ); -} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index b64257c..53df080 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -3,6 +3,7 @@ import { Roboto } from "next/font/google"; import 'bootstrap-icons/font/bootstrap-icons.css'; import '@/styles/sass/bootstrap.scss'; +import Navbar from "@/components/navbar"; const roboto = Roboto({ weight: ["100", "300", "400", "500", "700", "900"], @@ -25,6 +26,7 @@ export default function RootLayout({ return ( + {children} diff --git a/src/app/page.tsx b/src/app/page.tsx index 0f6d9b4..98bf2e4 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -6,28 +6,40 @@ import React from "react"; export default function Page() { return (
-
-
-
- CIDWA -
-

- Libreria de componentes de CIDWA -

+
+
+ CIDWA
-
+

Libreria de componentes de CIDWA

+
+
+

Componentes

+
+
+ +
+
+ +
+
+ +
diff --git a/src/app/table/page.tsx b/src/app/table/page.tsx deleted file mode 100644 index 6b70e07..0000000 --- a/src/app/table/page.tsx +++ /dev/null @@ -1,225 +0,0 @@ -"use client"; - -import React, { useState } from "react"; -import Table, { Header, TablaSkeleton } from "@/components/table"; -import VistaComponente from "@/components/vista-componente"; -import { tableBasicExample } from "@/snippets/table/table-basic"; - -export default function Page() { - const headers: Header<{ - name: string; - age: number; - email: string; - acciones?: null; - }>[] = [ - { key: "name", label: "Nombre", width: "30%" }, - { key: "age", label: "Edad", width: "15%" }, - { key: "email", label: "Correo", width: "40%" }, - ]; - - const baseData = [ - { name: "Juan", age: 20, email: "juan@example.com" }, - { name: "María", age: 25, email: "maria@example.com" }, - { name: "Pedro", age: 30, email: "pedro@example.com" }, - { name: "Luisa", age: 28, email: "luisa@example.com" }, - ]; - - const [currentPage, setCurrentPage] = useState(1); - const [search, setSearch] = useState(""); - - const filteredData = baseData.filter((item) => - item.name.toLowerCase().includes(search.toLowerCase()) - ); - - return ( -
-

- 📊 Componente: Table -

- -

- El componente <Table /> permite mostrar datos en - forma tabular, con funcionalidades como ordenamiento, paginación, - renderizado personalizado, clic en filas y un estado de carga esqueleto. -

- -
- - {/* USO BÁSICO */} - - - - - {/* FILAS CLICABLES */} - -
alert(`Seleccionaste a ${row.name}`)} - /> - - - {/* PAGINACIÓN */} - -
- - - {/* CONTROL DE PÁGINA EXTERNO */} - -
- - - {/* RENDER PERSONALIZADO */} - -
( - - ), - }, - ]} - data={baseData.map((d) => ({ ...d, acciones: null }))} - /> - - - {/* PERSONALIZACIÓN DE ANCHO */} - -
- - - {/* ANCHO AUTOMÁTICO */} - -
- - - {/* SKELETON */} - - - - - {/* ROW KEY */} - -
({ ...item, id: index }))} - rowKey={(row) => row.email} - /> - - - {/* FILTRO */} - - setSearch(e.target.value)} - /> -
- - - {/* PROPS */} -
-

⚙️ Props del componente

-
    -
  • - headers: Columnas de la tabla (con key, label, render, - width...) -
  • -
  • - data: Datos a mostrar. -
  • -
  • - rowsPerPage?: Número de filas por página (por defecto: - 10). -
  • -
  • - onRowClick?: Función al hacer clic en una fila. -
  • -
  • - rowKey?: Función que retorna un ID único para cada - fila. -
  • -
  • - className?: Estilos personalizados (tabla, fila, celda, - header). -
  • -
  • - controlledPage?: Página actual controlada externamente. -
  • -
  • - onPageChange?: Callback para cambiar la página. -
  • -
-
- - ); -} diff --git a/src/components/button.tsx b/src/components/button.tsx new file mode 100644 index 0000000..dd46dc3 --- /dev/null +++ b/src/components/button.tsx @@ -0,0 +1,72 @@ +import React from 'react'; + +/** + * Botón reutilizable con soporte para variantes de Bootstrap y personalización de íconos. + * + * @component + */ +interface ButtonProps extends React.ButtonHTMLAttributes { + /** + * Variante Bootstrap o personalizada. Ej: `primary`, `danger`, `mi-clase-custom`. + * @default "primary" + */ + variant?: string; + + /** + * Si se usa variante `outline` (por ejemplo, `btn-outline-primary`). + * @default false + */ + outline?: boolean; + + /** + * Ícono Bootstrap (`string`, como `check-circle`) o componente React. + */ + icon?: string | React.ReactNode; + + /** + * Tamaño del botón: `sm` o `lg` para tamaños Bootstrap. + */ + size?: 'sm' | 'lg'; + + /** + * Clases adicionales personalizadas para el botón. + */ + className?: string; +} + +/** + * Componente `Button` con estilos de Bootstrap y soporte para íconos. + */ +const Button: React.FC = ({ + children, + type = 'button', + icon, + className = '', + variant = 'primary', + outline = false, + disabled = false, + size, + ...rest +}) => { + const btnVariant = outline ? `btn-outline-${variant}` : `btn-${variant}`; + const sizeClass = size ? `btn-${size}` : ''; + const combinedClasses = `btn ${btnVariant} ${sizeClass} ${className}`.trim(); + + return ( + + ); +}; + +export default Button; diff --git a/src/components/checkbox-option-group.tsx b/src/components/checkbox-option-group.tsx new file mode 100644 index 0000000..66720ac --- /dev/null +++ b/src/components/checkbox-option-group.tsx @@ -0,0 +1,58 @@ +import React from "react"; + +export interface CheckboxOption { + label: string; + value: T; + disabled?: boolean; +} + +interface CheckboxOptionGroupProps { + name: string; + options: CheckboxOption[]; + selectedValues: T[]; + onChange: (value: T, checked: boolean) => void; + maxSelected?: number; + disabled?: boolean; + className?: string; +} + +export default function CheckboxOptionGroup({ + name, + options, + selectedValues, + onChange, + maxSelected, + disabled = false, + className = "", +}: CheckboxOptionGroupProps) { + const isSelected = (value: T) => selectedValues.includes(value); + + return ( +
+ {options.map((option, index) => { + const checked = isSelected(option.value); + const limitReached = + maxSelected !== undefined && + selectedValues.length >= maxSelected && + !checked; + + return ( + + ); + })} +
+ ); +} diff --git a/src/components/code-block.tsx b/src/components/code-block.tsx index ddfa8dd..bdf4c1e 100644 --- a/src/components/code-block.tsx +++ b/src/components/code-block.tsx @@ -1,13 +1,20 @@ +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import { vscDarkPlus } from 'react-syntax-highlighter/dist/cjs/styles/prism'; + export const CodeBlock = ({ code }: { code: string }) => (
-
-      {code}
-    
+ + {code} +
); diff --git a/src/components/content-index.tsx b/src/components/content-index.tsx new file mode 100644 index 0000000..069d313 --- /dev/null +++ b/src/components/content-index.tsx @@ -0,0 +1,23 @@ +interface IndiceContenidoProps { + items: { + id: string; + label: string; + }[]; +} + +export default function IndiceContenido({ items }: IndiceContenidoProps) { + return ( + + ); +} diff --git a/src/components/input.tsx b/src/components/input.tsx index 87bb9d3..2b32e67 100644 --- a/src/components/input.tsx +++ b/src/components/input.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; export interface InputProps extends Omit, "className"> { - label: string; + label?: string; className?: { container?: string; label?: string; @@ -13,13 +13,13 @@ export interface InputProps /** * Componente de entrada (`Input`) reutilizable en React. * - * Este componente renderiza un campo de entrada (``) con una etiqueta y + * Este componente renderiza un campo de entrada (``) con una etiqueta opcional y * funcionalidad para mostrar u ocultar contraseñas cuando el tipo es `password`. * También permite personalizar clases CSS y es accesible mediante `aria-label` y `htmlFor`. * * @component * @param {Object} props - Propiedades del componente. - * @param {string} props.label - Etiqueta visible asociada al campo de entrada. + * @param {string} [props.label] - Etiqueta visible asociada al campo de entrada. * @param {Object} [props.className] - Clases CSS personalizables para distintos elementos. * @param {string} [props.className.container] - Clases para el contenedor del input. * @param {string} [props.className.label] - Clases para la etiqueta del input. @@ -30,29 +30,6 @@ export interface InputProps * @param {string} [props.value] - Valor del input (para uso controlado). * @param {function} [props.onChange] - Manejador del cambio de valor del input. * @param {React.InputHTMLAttributes} [rest] - Atributos adicionales compatibles con ``. - * - * @example - * // Ejemplo de uso con contraseña: - * - * - * @example - * // Ejemplo de input controlado: - * setEmail(e.target.value)} - * /> */ export default function Input(props: InputProps) { const { className, label, type, name, id, ...rest } = props; @@ -60,18 +37,21 @@ export default function Input(props: InputProps) { const isPassword = type === "password"; const inputType = isPassword && showPassword ? "text" : type; - const inputId = id || name || `input-${label.replace(/\s+/g, "-")}`; + const inputId = + id || name || (label ? `input-${label.replace(/\s+/g, "-")}` : undefined); const togglePasswordVisibility = () => setShowPassword(!showPassword); return ( -
- +
+ {label && inputId && ( + + )}
{ + return ( + + ); +}; + +export default Navbar; diff --git a/src/components/pagination.tsx b/src/components/pagination.tsx index 7514b3e..19a2ac2 100644 --- a/src/components/pagination.tsx +++ b/src/components/pagination.tsx @@ -1,54 +1,52 @@ -import React, { useMemo } from 'react'; +import React, { useMemo } from "react"; interface PaginationProps { totalPages: number; currentPage: number; onPageChange: (page: number) => void; + delta?: number; } export default function Pagination({ currentPage, onPageChange, totalPages, + delta = 1, }: PaginationProps) { const handlePageChange = (page: number) => { - if (page >= 1 && page <= totalPages) { + if (page >= 1 && page <= totalPages && page !== currentPage) { onPageChange(page); } }; - // Lógica para mostrar paginación compacta cuando hay muchas páginas const visiblePages = useMemo(() => { - const pages: number[] = []; - const delta = 0; // Cuántas páginas cercanas a la actual mostrar + const pages: (number | -1)[] = []; - if (totalPages <= 5) { + if (totalPages <= 5 + delta * 2) { return Array.from({ length: totalPages }, (_, i) => i + 1); } - const leftBoundary = Math.max(1, currentPage - delta); - const rightBoundary = Math.min(totalPages, currentPage + delta); + const left = Math.max(2, currentPage - delta); + const right = Math.min(totalPages - 1, currentPage + delta); - if (leftBoundary > 2) { - pages.push(1, -1); // -1 es un marcador de "..." - } + pages.push(1); + if (left > 2) pages.push(-1); - for (let i = leftBoundary; i <= rightBoundary; i++) { + for (let i = left; i <= right; i++) { pages.push(i); } - if (rightBoundary < totalPages - 1) { - pages.push(-1, totalPages); - } + if (right < totalPages - 1) pages.push(-1); + pages.push(totalPages); return pages; - }, [currentPage, totalPages]); + }, [currentPage, totalPages, delta]); return (
+ ); +}; + +export default Select; diff --git a/src/components/table.tsx b/src/components/table.tsx index 7acc404..b90bae2 100644 --- a/src/components/table.tsx +++ b/src/components/table.tsx @@ -169,7 +169,7 @@ interface TablaSkeletonProps { columns?: number; } -export function TablaSkeleton({ rows = 5, columns = 5 }: TablaSkeletonProps) { +export function TableSkeleton({ rows = 5, columns = 5 }: TablaSkeletonProps) { return (
diff --git a/src/components/vista-componente.tsx b/src/components/vista-componente.tsx index 8afb9ea..8a215ce 100644 --- a/src/components/vista-componente.tsx +++ b/src/components/vista-componente.tsx @@ -1,11 +1,13 @@ -import React, { useState } from "react"; import { CodeBlock } from "./code-block"; +import Button from "./button"; +import { useState } from "react"; interface VistaComponenteProps { title: string; description?: string; code?: string; children: React.ReactNode; + id: string; } export default function VistaComponente({ @@ -13,11 +15,12 @@ export default function VistaComponente({ description, code, children, + id, }: VistaComponenteProps) { const [showCode, setShowCode] = useState(false); return ( -
+

{title}

{description &&

{description}

} @@ -26,12 +29,15 @@ export default function VistaComponente({ {code && (
- + {showCode && }
)} diff --git a/src/snippets/input/input-examples.ts b/src/snippets/input/input-examples.ts new file mode 100644 index 0000000..4d3ff71 --- /dev/null +++ b/src/snippets/input/input-examples.ts @@ -0,0 +1,23 @@ +export const inputBasicExample = ` setValue(e.target.value)} +/>`; + +export const inputPasswordExample = ` setPassword(e.target.value)} +/>`; + +export const inputStylesExample = ``; diff --git a/src/snippets/options/option-examples.ts b/src/snippets/options/option-examples.ts new file mode 100644 index 0000000..93ca2b4 --- /dev/null +++ b/src/snippets/options/option-examples.ts @@ -0,0 +1,59 @@ +export const radioBasicExample = ` + +`; + +export const radioDisabledExample = ` + {}} +/> +`; + +export const checkboxBasicExample = ` + { + setSelectedCheckboxes((prev) => + checked ? [...prev, value] : prev.filter((v) => v !== value) + ); + }} +/> +`; + +export const checkboxLimitExample = ` + { + setSelectedCheckboxes((prev) => + checked ? [...prev, value] : prev.filter((v) => v !== value) + ); + }} + maxSelected={2} +/> +`; diff --git a/src/snippets/pagination/pagination-example.ts b/src/snippets/pagination/pagination-example.ts new file mode 100644 index 0000000..3e60188 --- /dev/null +++ b/src/snippets/pagination/pagination-example.ts @@ -0,0 +1,16 @@ +export const paginationBasic = ` + +`; + +export const paginationWithDelta = ` + +`; diff --git a/src/snippets/select/select.tsx b/src/snippets/select/select.tsx new file mode 100644 index 0000000..fcbad84 --- /dev/null +++ b/src/snippets/select/select.tsx @@ -0,0 +1,32 @@ +export const countrySelectSnippet = ` + +`; \ No newline at end of file diff --git a/src/snippets/table/table-auto-pagination.ts b/src/snippets/table/table-auto-pagination.ts new file mode 100644 index 0000000..fde61f7 --- /dev/null +++ b/src/snippets/table/table-auto-pagination.ts @@ -0,0 +1,30 @@ +export const tableAutoPagination = `import React from "react"; +import Table, { Header } from "@/components/table"; + +export default function Page() { + const headers: Header<{ + name: string; + age: number; + email: string; + }>[] = [ + { key: "name", label: "Nombre"}, + { key: "age", label: "Edad" }, + { key: "email", label: "Correo" }, + ]; + + const baseData = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + return ( +
+ ) +} +`; diff --git a/src/snippets/table/table-basic.ts b/src/snippets/table/table-basic.ts index 857b439..2684ce2 100644 --- a/src/snippets/table/table-basic.ts +++ b/src/snippets/table/table-basic.ts @@ -1,4 +1,36 @@ -// src/code-snippets/table-basic.ts -export const tableBasicExample = ` -
+export const tableBasicExample = `import React from "react"; +import Table, { Header } from "@/components/table"; + +export default function Page() { + const headers: Header<{ + name: string; + age: number; + email: string; + }>[] = [ + { key: "name", label: "Nombre"}, + { key: "age", label: "Edad" }, + { key: "email", label: "Correo" }, + ]; + + const baseData = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + return ( +
+ ) +} +`; + +export const tableSkeletonExample = `import React from "react"; +import { TableSkeleton } from "@/components/table"; + +export default function Page() { + return ( + + ) +} `; diff --git a/src/snippets/table/table-clickable.ts b/src/snippets/table/table-clickable.ts new file mode 100644 index 0000000..700ca76 --- /dev/null +++ b/src/snippets/table/table-clickable.ts @@ -0,0 +1,27 @@ +export const tableClickable = `export default function Page() { + const headers: Header<{ + name: string; + age: number; + email: string; + }>[] = [ + { key: "name", label: "Nombre"}, + { key: "age", label: "Edad" }, + { key: "email", label: "Correo" }, + ]; + + const baseData = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + return ( +
alert(\`Seleccionaste a \${row.name}\`)} + /> + ) +} +`; diff --git a/src/snippets/table/table-column-width.ts b/src/snippets/table/table-column-width.ts new file mode 100644 index 0000000..1fdfc8d --- /dev/null +++ b/src/snippets/table/table-column-width.ts @@ -0,0 +1,23 @@ +export const tableColumnWidth = `interface RowData { + name: string; + age: number; + email: string; +} + +export default function Page() { + const headers: Header[] = [ + { key: "name", label: "Nombre", width: "50%" }, + { key: "age", label: "Edad", width: "15%" }, + { key: "email", label: "Correo electrónico", width: "35%" }, + ]; + + const data: RowData[] = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + return
; +} +`; diff --git a/src/snippets/table/table-custom-cell-render.ts b/src/snippets/table/table-custom-cell-render.ts new file mode 100644 index 0000000..4874dcb --- /dev/null +++ b/src/snippets/table/table-custom-cell-render.ts @@ -0,0 +1,37 @@ +export const tableCustomCellRender = ` +interface RowData { + name: string; + age: number; + email: string; + acciones?: null; +} + +export default function Page() { + const headers: Header[] = [ + { key: "name", label: "Nombre", width: "30%" }, + { key: "age", label: "Edad", width: "15%" }, + { key: "email", label: "Correo", width: "40%" }, + { + key: "acciones", + label: "Acciones", + width: "15%", + render: (_, row) => ( + + ), + }, + ]; + + const data = [ + { name: "Juan", age: 20, email: "juan@example.com", acciones: null }, + { name: "María", age: 25, email: "maria@example.com", acciones: null }, + { name: "Pedro", age: 30, email: "pedro@example.com", acciones: null }, + ]; + + return
; +} +`; diff --git a/src/snippets/table/table-custom-pagination.ts b/src/snippets/table/table-custom-pagination.ts new file mode 100644 index 0000000..121e5f2 --- /dev/null +++ b/src/snippets/table/table-custom-pagination.ts @@ -0,0 +1,50 @@ +export const tableCustomPagination = `interface RowData { + name: string; + age: number; + email: string; +} + +export default function Page() { + const headers: Header[] = [ + { key: "name", label: "Nombre" }, + { key: "age", label: "Edad" }, + { key: "email", label: "Correo" }, + ]; + + const [currentPage, setCurrentPage] = useState(1); + const [data, setData] = useState([]); + const [loading, setLoading] = useState(false); + const rowsPerPage = 2; + + useEffect(() => { + setLoading(true); + + fetch(\`https://api.example.com/users?page=\${currentPage}&limit=\${rowsPerPage}\`) + .then((res) => res.json()) + .then((json) => { + setData(json.data); + }) + .catch((err) => { + console.error("Error fetching data:", err); + setData([]); + }) + .finally(() => setLoading(false)); + }, [currentPage]); + + return ( + <> + {loading ? ( + + ) : ( +
+ )} + + ) +} +`; diff --git a/src/snippets/table/table-filter.ts b/src/snippets/table/table-filter.ts new file mode 100644 index 0000000..522d3fa --- /dev/null +++ b/src/snippets/table/table-filter.ts @@ -0,0 +1,42 @@ +export const tableFilter = `import React, { useState } from "react"; +import Table, { Header } from "@/components/table"; +import Input from "@/components/input"; + +interface RowData { + name: string; + age: number; + email: string; +} + +export default function Page() { + const headers: Header[] = [ + { key: "name", label: "Nombre", width: "30%" }, + { key: "age", label: "Edad", width: "15%" }, + { key: "email", label: "Correo", width: "40%" }, + ]; + + const data: RowData[] = [ + { name: "Juan", age: 20, email: "juan@example.com" }, + { name: "María", age: 25, email: "maria@example.com" }, + { name: "Pedro", age: 30, email: "pedro@example.com" }, + { name: "Luisa", age: 28, email: "luisa@example.com" }, + ]; + + const [search, setSearch] = useState(""); + + const filteredData = data.filter((item) => + item.name.toLowerCase().includes(search.toLowerCase()) + ); + + return ( + <> + setSearch(e.target.value)} + /> +
+ + ); +} +`; diff --git a/src/styles/sass/_extends.scss b/src/styles/sass/_extends.scss index c4accbc..e2d4d70 100644 --- a/src/styles/sass/_extends.scss +++ b/src/styles/sass/_extends.scss @@ -10,3 +10,59 @@ @extend .text-white; } } + +.unlink { + @extend .text-decoration-none; + @extend .text-dark; +} + +.flex-center { + @extend .d-flex; + @extend .justify-content-center; + @extend .align-items-center; +} + +.option { + @extend .box; + @extend .py-2; + + cursor: pointer; + transition: all 0.3s; + + &:has(input:checked) { + @extend .bg-primary; + @extend .bg-opacity-75; + @extend .text-white; + } + + input[type='radio']:checked { + border: 1px solid #ffffff; + @extend .bg-primary; + @extend .bg-opacity-75; + } + + &:hover { + background-color: #f1f1f1 !important; + } + + &:has(input:disabled) { + @extend .bg-light; + @extend .text-muted; + cursor: not-allowed; + } +} + +.border-top-azul { + position: relative; + + &::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 5px; + background: $azul; + border-radius: 5px 5px 0 0; + } +} diff --git a/src/styles/sass/_gradients.scss b/src/styles/sass/_gradients.scss index a51ebcb..e9db7e4 100644 --- a/src/styles/sass/_gradients.scss +++ b/src/styles/sass/_gradients.scss @@ -3,7 +3,7 @@ .bg-gradient-#{$color-name}-top { background-image: linear-gradient( to top, - $color-value, + rgba($color-value, 0.5), $body-bg ); } @@ -11,24 +11,16 @@ .bg-gradient-#{$color-name}-bottom { background-image: linear-gradient( to bottom, - $color-value, + rgba($color-value, 0.3), $body-bg ); } .bg-gradient-#{$color-name}-left { - background-image: linear-gradient( - to left, - $color-value, - $body-bg - ); + background-image: linear-gradient(to left, rgba($color-value, 0.5), $body-bg); } .bg-gradient-#{$color-name}-right { - background-image: linear-gradient( - to right, - $color-value, - $body-bg - ); + background-image: linear-gradient(to right, rgba($color-value, 0.5), $body-bg); } } diff --git a/src/styles/sass/bootstrap.scss b/src/styles/sass/bootstrap.scss index 121c755..1aa33e6 100644 --- a/src/styles/sass/bootstrap.scss +++ b/src/styles/sass/bootstrap.scss @@ -1,28 +1,57 @@ -@import 'bootstrap/scss/functions'; +@import "bootstrap/scss/functions"; -@import 'variables'; +@import "variables"; -@import 'bootstrap/scss/variables'; -@import 'bootstrap/scss/variables-dark'; +@import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; // Include any default map overrides here $azul: #003d79; $dorado: #d59f0f; $custom-colors: ( - 'azul': $azul, - 'dorado': $dorado, + "azul": $azul, + "dorado": $dorado, ); $theme-colors: map-merge($theme-colors, $custom-colors); -@import 'gradients'; -@import 'extends'; -@import 'table'; -@import 'utilities'; +@import "gradients"; +@import "extends"; +@import "table"; +@import "utilities"; -@import 'bootstrap/scss/maps'; -@import 'bootstrap/scss/mixins'; -@import 'bootstrap/scss/bootstrap'; +@import "bootstrap/scss/maps"; +@import "bootstrap/scss/mixins"; +@import "bootstrap/scss/bootstrap"; + +//Add additional custom code here + +@media (min-width: 992px) { + .bd-layout { + display: grid; + grid-template-areas: "sidebar main"; + grid-template-columns: 1fr 5fr; + gap: 1.5rem; + } +} + +.bd-sidebar { + grid-area: sidebar; + position: sticky; + top: ($spacer * 3); + height: calc(100vh - 6rem); +} + +ul.list-unstyled li { + padding: 0.5rem 0; + a { + color: $azul; + transition: color 0.2s; + text-decoration: none; + &:hover { + color: $dorado; + } + } +} -//Add additional custom code here \ No newline at end of file