@pushwoosh/dumb-components 1.1.40 → 1.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AccessForbidden/AccessForbidden.d.ts +2 -0
- package/AccessForbidden/AccessForbidden.js +9 -0
- package/AccessForbidden/assets/AccessForbidden.svg +1 -0
- package/AccessForbidden/index.d.ts +1 -0
- package/AccessForbidden/index.js +1 -0
- package/AccessForbidden/styles.d.ts +5 -0
- package/AccessForbidden/styles.js +19 -0
- package/Alert/ai-documentation.mdx +132 -0
- package/Badge/ai-documentation.mdx +155 -0
- package/Banner/ai-documentation.mdx +285 -0
- package/Button/ai-documentation.mdx +228 -0
- package/CardMetric/ai-documentation.mdx +277 -0
- package/Checkbox/ai-documentation.mdx +231 -0
- package/Chip/ai-documentation.mdx +241 -0
- package/CodeEditor/ai-documentation.mdx +350 -0
- package/DateTimePicker/ai-documentation.mdx +400 -0
- package/Drawer/ai-documentation.mdx +417 -0
- package/EnhancedInput/ai-documentation.mdx +352 -0
- package/InputFile/ai-documentation.mdx +420 -0
- package/Modal/ai-documentation.mdx +285 -0
- package/PageHeader/ai-documentation.mdx +511 -0
- package/Pagination/ai-documentation.mdx +509 -0
- package/Popover/ai-documentation.mdx +625 -0
- package/ProgressBar/ai-documentation.mdx +533 -0
- package/Radio/ai-documentation.mdx +243 -0
- package/Select/ai-documentation.mdx +374 -0
- package/Skeleton/ai-documentation.mdx +574 -0
- package/Spinner/ai-documentation.mdx +607 -0
- package/Switch/ai-documentation.mdx +312 -0
- package/Tabs/ai-documentation.mdx +475 -0
- package/Toast/ai-documentation.mdx +230 -0
- package/Tooltip/ai-documentation.mdx +340 -0
- package/ai-documentation.mdx +124 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/native/ai-documentation.mdx +433 -0
- package/package.json +4 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import accessForbiddenImage from './assets/AccessForbidden.svg?url';
|
|
3
|
+
import { RootBox, ImageBox, TitleBox, DescriptionBox } from './styles';
|
|
4
|
+
export function AccessForbidden() {
|
|
5
|
+
return React.createElement(RootBox, null, React.createElement(ImageBox, {
|
|
6
|
+
alt: "Access forbidden",
|
|
7
|
+
src: accessForbiddenImage
|
|
8
|
+
}), React.createElement(TitleBox, null, "Access forbidden"), React.createElement(DescriptionBox, null, "You do not have permission to access this page. Please contact your administrator for assistance."));
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" fill="none" viewBox="0 0 120 120"><path fill="#969CA3" fill-rule="evenodd" d="M113.248 57.805c.312 6.296.624 12.591 1.055 18.88.022.326-.482.322-.507 0a503.856 503.856 0 0 1-.53-7.67c-.253-4.14-.471-8.282-.688-12.425-.403-7.672-.806-15.345-1.437-23.002-.211-2.553-1.081-4.882-2.923-6.716-1.767-1.762-4.061-2.696-6.524-2.911a546.7 546.7 0 0 0-9.237-.714 665.636 665.636 0 0 0-23.877-1.222c-8.606-.286-17.224-.413-25.833-.208-7.198.171-14.471.48-21.58 1.69-2.431.415-4.888.926-7.188 1.833-1.337.527-2.947 1.272-3.662 2.6a2.53 2.53 0 0 0-.254.756c-.226 1.22-.348 2.475-.47 3.72-.04.419-.08.837-.125 1.252a201.62 201.62 0 0 0-.865 10.74 197.784 197.784 0 0 0 .843 31.702l.028.264c.301 2.82.608 5.694 1.589 8.372.98 2.675 2.763 4.872 5.312 6.18 2.429 1.247 5.211 1.664 7.907 1.823 2.363.14 4.738.104 7.108.068.703-.01 1.407-.021 2.109-.027l8.174-.07v.754l-8.44.072c-.68.005-1.36.015-2.042.026-2.473.037-4.951.075-7.415-.105-2.635-.191-5.316-.648-7.695-1.85a11.465 11.465 0 0 1-5.317-5.631c-1.151-2.582-1.555-5.409-1.877-8.194a197.73 197.73 0 0 1-1.306-21.61c-.038-7.256.319-14.51 1.07-21.727.186-1.796.395-3.589.628-5.378a4.41 4.41 0 0 1 .293-1.271 4.287 4.287 0 0 1 1.262-1.56c1.523-1.232 3.498-1.886 5.36-2.404 2.797-.78 5.684-1.23 8.561-1.587 7.765-.965 15.626-1.185 23.443-1.244 8.882-.066 17.768.166 26.641.556 7.628.324 15.246.789 22.854 1.395l.614.048c1.244.099 2.489.197 3.731.318a10.88 10.88 0 0 1 6.517 2.957 10.553 10.553 0 0 1 3.128 6.164c.277 2.06.395 4.159.511 6.245.04.71.08 1.42.126 2.126.367 5.658.647 11.322.928 16.985ZM55 93.36l.206-.002 44.079-.378h.07c2.963-.025 5.949-.051 8.662-1.392.403-.199.05-.8-.352-.602-2.569 1.27-5.565 1.262-8.41 1.255-.438 0-.873-.002-1.302.002l-10.653.09-21.574.184-10.726.09v.753Z" clip-rule="evenodd"/><path fill="#fff" d="M10.427 36.48c33.12-.323 66.238-.02 99.353.909l-99.353-.908Z"/><path fill="#969CA3" d="M10.427 36.736c12.93.024 25.86-.112 38.79-.048a2628.4 2628.4 0 0 1 60.563 1.001c.385.01.385-.587 0-.598a2623.045 2623.045 0 0 0-77.567-1.03c-7.262.014-14.526.012-21.786.166-.327.007-.329.509 0 .51Z"/><path fill="#fff" d="M15.164 29.052v-.212a.798.798 0 0 0-.11-.444.86.86 0 0 0-.264-.37.974.974 0 0 0-.411-.24 1.048 1.048 0 0 0-.492-.099 1.365 1.365 0 0 0-.904.338 1.14 1.14 0 0 0-.374.815v.212a.8.8 0 0 0 .11.444.86.86 0 0 0 .264.37.976.976 0 0 0 .412.24c.153.072.322.106.492.098.332.002.653-.119.903-.337a1.141 1.141 0 0 0 .374-.816Z"/><path fill="#969CA3" d="M15.49 29.051c0-.897-.566-1.648-1.517-1.686-.874-.035-1.648.582-1.69 1.475-.095 2.056 3.05 2.256 3.207.211.033-.418-.62-.416-.651 0-.093 1.207-2 1.005-1.904-.211a.919.919 0 0 1 .952-.827c.628-.003.952.463.952 1.038 0 .42.651.42.651 0Z"/><path fill="#fff" d="M19.735 30.204c1.645 0 1.647-2.306 0-2.306-1.644 0-1.646 2.306 0 2.306Z"/><path fill="#969CA3" d="M19.736 30.53c.857-.026 1.577-.615 1.56-1.516-.018-.852-.736-1.442-1.56-1.442-.829 0-1.537.59-1.56 1.442-.024.901.706 1.49 1.56 1.516.42.012.419-.64 0-.652-1.17-.035-1.177-1.654 0-1.654s1.169 1.619 0 1.654c-.419.013-.42.664 0 .652Z"/><path fill="#fff" d="M24.882 30.204c1.645 0 1.647-2.306 0-2.306-1.644 0-1.647 2.306 0 2.306Z"/><path fill="#969CA3" d="M24.882 30.53c.857-.026 1.578-.615 1.56-1.516-.018-.852-.735-1.442-1.56-1.442-.828 0-1.537.59-1.56 1.442-.023.901.707 1.49 1.56 1.516.42.012.42-.64 0-.652-1.17-.035-1.177-1.654 0-1.654 1.178 0 1.17 1.619 0 1.654-.418.013-.42.664 0 .652Zm69.241.532c.479.128 1.004.076 1.497.077.556.001 1.111.002 1.667-.004.414-.004.415-.64 0-.644-.555-.006-1.111-.005-1.667-.004-.496.002-1.016-.051-1.497.077a.26.26 0 0 0-.133.404.26.26 0 0 0 .133.094Z"/><path fill="#EBF0F5" d="M38.935 57.428a2.754 2.754 0 0 1 3.29-2.086l12.724 2.851a2.755 2.755 0 0 1-1.205 5.377l-12.723-2.852a2.755 2.755 0 0 1-2.086-3.29Z"/><path fill="#969CA3" fill-rule="evenodd" d="M42.225 55.342a2.755 2.755 0 1 0-1.204 5.376l12.723 2.851a2.754 2.754 0 0 0 1.205-5.376l-12.724-2.85Zm12.601 3.393-12.722-2.851a2.2 2.2 0 0 0-2.627 1.665m15.35 1.186a2.2 2.2 0 0 1-.963 4.292l-12.722-2.85a2.2 2.2 0 0 1-1.665-2.628" clip-rule="evenodd"/><path fill="#EBF0F5" d="M24.159 51.478a8.365 8.365 0 0 1 10.65-5.12l5.979 2.097a8.356 8.356 0 0 1-5.53 15.77l-5.98-2.097a8.365 8.365 0 0 1-5.12-10.65Zm16.55 5.804a2.85 2.85 0 0 0-1.744-3.628l-5.979-2.097a2.847 2.847 0 0 0-1.884 5.372l5.979 2.097a2.85 2.85 0 0 0 3.628-1.744Z"/><path fill="#969CA3" fill-rule="evenodd" d="M41.233 57.465v.001a3.405 3.405 0 0 1-4.335 2.084l-5.98-2.097a3.404 3.404 0 0 1-2.08-4.334 3.402 3.402 0 0 1 4.33-2.087l5.98 2.098a3.406 3.406 0 0 1 2.085 4.335ZM28.666 47.216a7.81 7.81 0 0 0-3.983 4.445 7.81 7.81 0 0 0 4.78 9.943l5.978 2.097a7.8 7.8 0 1 0 5.163-14.722l-5.978-2.097a7.81 7.81 0 0 0-5.96.334Zm6.143-.858a8.365 8.365 0 0 0-10.65 5.12 8.365 8.365 0 0 0 5.12 10.65l5.979 2.097a8.357 8.357 0 0 0 10.296-11.506 8.356 8.356 0 0 0-4.766-4.264l-5.979-2.097Zm4.156 7.296a2.85 2.85 0 0 1 1.744 3.628 2.85 2.85 0 0 1-3.628 1.744l-5.979-2.097a2.846 2.846 0 0 1 1.884-5.372l5.979 2.096Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M.009 50.523a8.366 8.366 0 0 1 8.734-7.959l6.33.294a8.356 8.356 0 1 1-.776 16.694l-6.33-.294A8.366 8.366 0 0 1 .01 50.523Zm17.519.814a2.85 2.85 0 0 0-2.711-2.975l-6.33-.294a2.849 2.849 0 0 0-2.975 2.711 2.847 2.847 0 0 0 2.711 2.975l6.33.295a2.85 2.85 0 0 0 2.975-2.712Z"/><path fill="#969CA3" fill-rule="evenodd" d="m15.072 42.858-6.329-.294a8.365 8.365 0 0 0-8.734 7.96 8.366 8.366 0 0 0 7.959 8.734l6.329.294a8.355 8.355 0 1 0 .775-16.694ZM7.994 58.703l6.328.294a7.804 7.804 0 0 0 7.428-4.474 7.8 7.8 0 0 0-6.703-11.11l-6.329-.294a7.81 7.81 0 0 0-8.155 7.43 7.81 7.81 0 0 0 7.431 8.154Zm10.089-7.34a3.405 3.405 0 0 1-3.556 3.24l-6.33-.294a3.4 3.4 0 0 1-2.92-4.844 3.401 3.401 0 0 1 3.236-1.952l6.33.294a3.407 3.407 0 0 1 3.24 3.555Zm-3.266-3.001a2.85 2.85 0 0 1 2.71 2.975 2.85 2.85 0 0 1-2.975 2.712l-6.329-.294a2.844 2.844 0 0 1-2.711-2.976 2.846 2.846 0 0 1 2.976-2.711l6.329.294Z" clip-rule="evenodd"/><path fill="#969CA3" d="m63.25 76.662-5.467-.69c.2-1.58.496-3.259.809-5.037.55-3.12 1.118-6.348 1.178-9.17.058-2.695-.372-4.583-1.278-5.61-1.274-1.444-3.77-1.322-4.59-1.282-2.188.107-3.95 1.03-5.388 2.82-1.296 1.614-2.316 3.9-3.031 6.796-1.299 5.26-1.086 10.598-1.084 10.65l-5.504.246c-.011-.246-.253-6.087 1.212-12.104.901-3.704 2.272-6.728 4.072-8.989 2.453-3.079 5.633-4.735 9.454-4.922 3.957-.194 6.982.863 8.99 3.14 4.008 4.545 2.62 12.427 1.395 19.381-.301 1.71-.586 3.325-.768 4.771Z"/><path fill="#969CA3" fill-rule="evenodd" d="M31.706 106.329c1.64 3.717 29.242 6.329 31.176 2.676 1.935-3.652 5.352-27.725 2.723-31.709-2.63-3.983-28.887-6.54-31.177-2.676-2.29 3.864-4.362 27.992-2.722 31.709Zm19.499-15.566a33.83 33.83 0 0 0 .016 2.07c.091 1.393.19 2.785.29 4.177.012.165.033.345.055.534.09.767.196 1.679-.234 2.279-.44.611-1.299.526-2.012.455-.14-.013-.273-.027-.397-.034a68.964 68.964 0 0 1-3.55-.304l-.115-.013c-.58-.062-1.053-.112-1.204-.771-.11-.482-.03-1.01.041-1.49l.002-.015c.183-1.23.53-2.433.873-3.627l.078-.268c.307-1.07.499-2.164.69-3.259.088-.498.176-.997.274-1.493a4.577 4.577 0 0 1-1.483-4.76c.866-2.988 4.575-4.23 7.063-2.36 2.572 1.933 2.266 5.832-.383 7.496.007.46.001.922-.004 1.383Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M73.83 63.871a8.366 8.366 0 0 1 5.416-10.503l6.035-1.928a8.356 8.356 0 0 1 5.086 15.92l-6.035 1.928A8.365 8.365 0 0 1 73.83 63.87Zm16.706-5.337a2.85 2.85 0 0 0-3.578-1.846l-6.035 1.928a2.847 2.847 0 1 0 1.732 5.424l6.035-1.929a2.85 2.85 0 0 0 1.846-3.577Z"/><path fill="#969CA3" fill-rule="evenodd" d="M91.065 58.364v.001a3.405 3.405 0 0 1-2.205 4.275l-6.035 1.928a3.403 3.403 0 1 1-2.07-6.48l6.034-1.929a3.407 3.407 0 0 1 4.276 2.205Zm-8.41 5.676 6.035-1.929a2.85 2.85 0 0 0 1.846-3.577 2.85 2.85 0 0 0-3.578-1.846l-6.035 1.928a2.847 2.847 0 1 0 1.732 5.424Zm-7.795-6.286a7.81 7.81 0 0 0-.502 5.948 7.81 7.81 0 0 0 9.805 5.057l6.035-1.928a7.8 7.8 0 0 0-4.748-14.862l-6.034 1.928a7.81 7.81 0 0 0-4.556 3.857Zm4.386-4.386a8.366 8.366 0 0 0-5.416 10.503 8.365 8.365 0 0 0 10.502 5.417l6.035-1.929a8.356 8.356 0 1 0-5.086-15.919l-6.035 1.928Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M97.428 56.158a8.365 8.365 0 0 1 5.417-10.503l6.035-1.928a8.353 8.353 0 0 1 10.52 5.411 8.368 8.368 0 0 1-.537 6.381 8.351 8.351 0 0 1-4.897 4.127l-6.035 1.928a8.367 8.367 0 0 1-10.503-5.416Zm16.706-5.338a2.847 2.847 0 0 0-3.577-1.845l-6.036 1.928a2.85 2.85 0 0 0-1.849 3.58 2.844 2.844 0 0 0 2.478 1.97 2.85 2.85 0 0 0 1.104-.127l6.035-1.928a2.85 2.85 0 0 0 1.845-3.578Z"/><path fill="#969CA3" fill-rule="evenodd" d="m108.88 43.727-6.035 1.928a8.364 8.364 0 0 0-5.417 10.503 8.366 8.366 0 0 0 10.503 5.416l6.035-1.928a8.357 8.357 0 1 0-5.086-15.919Zm-1.118 17.318 6.036-1.928a7.793 7.793 0 0 0 4.571-3.853 7.805 7.805 0 0 0 .502-5.957 7.795 7.795 0 0 0-3.863-4.563 7.799 7.799 0 0 0-5.958-.488h-.001l-6.035 1.928a7.811 7.811 0 0 0-5.057 9.805 7.81 7.81 0 0 0 9.805 5.056Zm6.901-10.394.001.001a3.409 3.409 0 0 1-2.205 4.275l-6.035 1.928a3.406 3.406 0 0 1-3.637-1.042 3.396 3.396 0 0 1-.793-2.482 3.398 3.398 0 0 1 1.196-2.315 3.406 3.406 0 0 1 1.163-.642l6.035-1.928a3.407 3.407 0 0 1 4.275 2.205Zm-8.409 5.675 6.035-1.928a2.85 2.85 0 0 0 1.845-3.578 2.847 2.847 0 0 0-3.577-1.845l-6.036 1.928a2.85 2.85 0 0 0-1.849 3.58 2.844 2.844 0 0 0 2.478 1.97 2.85 2.85 0 0 0 1.104-.127Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M49.05 61.898a8.366 8.366 0 0 1 8.749-7.944l6.328.306a8.356 8.356 0 1 1-.805 16.692l-6.329-.305a8.365 8.365 0 0 1-7.943-8.75Zm17.518.845a2.85 2.85 0 0 0-2.706-2.98l-6.329-.306a2.848 2.848 0 0 0-2.245 4.757 2.847 2.847 0 0 0 1.97.93l6.33.305a2.85 2.85 0 0 0 2.98-2.706Z"/><path fill="#969CA3" fill-rule="evenodd" d="M67.122 62.77a3.405 3.405 0 0 1-3.56 3.234l-6.33-.306a3.4 3.4 0 0 1-2.912-4.85 3.402 3.402 0 0 1 3.24-1.946l6.328.306a3.406 3.406 0 0 1 3.234 3.561Zm-14.967-6.242a7.81 7.81 0 0 0-2.55 5.396 7.81 7.81 0 0 0 7.415 8.168l6.328.305a7.8 7.8 0 0 0 .752-15.583l-6.327-.305a7.81 7.81 0 0 0-5.618 2.019Zm5.644-2.574a8.366 8.366 0 0 0-8.75 7.944 8.366 8.366 0 0 0 7.944 8.748l6.329.306a8.357 8.357 0 0 0 .805-16.692l-6.328-.306Zm6.063 5.809a2.85 2.85 0 0 1 2.706 2.98 2.85 2.85 0 0 1-2.98 2.706l-6.33-.305a2.848 2.848 0 0 1-2.436-4.059 2.847 2.847 0 0 1 2.711-1.628l6.329.306Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M63.723 62.755a2.755 2.755 0 0 1 2.5-2.987l12.988-1.154a2.755 2.755 0 0 1 .487 5.488L66.71 65.255a2.755 2.755 0 0 1-2.987-2.5Z"/><path fill="#969CA3" fill-rule="evenodd" d="M66.223 59.768a2.754 2.754 0 1 0 .487 5.487l12.988-1.153a2.755 2.755 0 0 0-.487-5.488l-12.988 1.154Zm13.036-.6h-.001L66.272 60.32a2.2 2.2 0 1 0 .39 4.381l.048.553-.049-.553 12.986-1.153a2.2 2.2 0 0 0-.388-4.382Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M13.908 50.31a2.754 2.754 0 0 1 3.171-2.263l12.86 2.15a2.754 2.754 0 1 1-.908 5.435l-12.86-2.15a2.755 2.755 0 0 1-2.263-3.172Z"/><path fill="#969CA3" fill-rule="evenodd" d="m29.94 50.198-12.86-2.15a2.754 2.754 0 1 0-.91 5.433l12.86 2.15a2.754 2.754 0 1 0 .91-5.433Zm-12.953-1.603a2.2 2.2 0 1 0-.725 4.339l12.863 2.15a2.2 2.2 0 1 0 .725-4.338h-.002l-12.86-2.15Z" clip-rule="evenodd"/><path fill="#EBF0F5" d="M88.697 59.998a2.755 2.755 0 0 1 1.52-3.588l12.086-4.893a2.755 2.755 0 0 1 2.067 5.107l-12.085 4.893a2.755 2.755 0 0 1-3.588-1.52Z"/><path fill="#969CA3" fill-rule="evenodd" d="M90.316 56.321a2.755 2.755 0 1 0 2.102 5.093l12.053-4.974a2.753 2.753 0 0 0 1.485-3.594 2.756 2.756 0 0 0-3.587-1.5l-12.053 4.975Zm12.264-4.46h-.001l-12.051 4.973a2.199 2.199 0 1 0 1.678 4.066l.212.514-.212-.514 12.051-4.973h.001a2.2 2.2 0 0 0-1.678-4.066Z" clip-rule="evenodd"/><path fill="#969CA3" d="M33.668 40.524c6.325.71 12.725.388 19.074.305 6.418-.083 12.837-.142 19.255-.178 3.621-.015 7.243-.024 10.864-.026l-.142-.142c.037.857.074 1.713.104 2.57.006.15.037.336-.048.467-.126.195-.44.196-.649.223-.416.053-.833.102-1.25.154-1.687.21-3.378.386-5.074.527-3.429.289-6.867.426-10.308.453-3.44.027-6.881-.045-10.32-.125-3.441-.08-6.882-.168-10.324-.171-1.736-.002-3.472.019-5.207.072-1.626.05-3.276.147-4.89-.111-.383-.06-.763-.142-1.137-.244l.115.15c-.04-.74-.105-1.48-.138-2.221-.007-.152-.244-.153-.237 0 .033.74.035 1.482.063 2.222a.16.16 0 0 0 .114.15c1.572.458 3.228.463 4.851.42 1.746-.045 3.49-.096 5.238-.104 3.54-.018 7.078.065 10.617.149 3.538.084 7.077.168 10.616.153 3.508-.015 7.014-.143 10.51-.427 1.745-.142 3.486-.321 5.223-.538.415-.051.83-.107 1.243-.166.33-.047.773-.043 1.051-.252.239-.18.24-.46.227-.732-.02-.437-.04-.873-.056-1.31l-.05-1.309a.145.145 0 0 0-.142-.142c-6.42-.02-12.839.02-19.258.08-6.407.062-12.813.198-19.22.281-3.574.047-7.157.032-10.715-.346-.107-.011-.106.156 0 .168Z"/><path fill="#fff" d="M79.513 41.702c-.297-.023-.547.308-.484.6a.649.649 0 0 0 .673.468.627.627 0 0 0 .578-.48c.047-.266-.177-.56-.447-.545-.27.016-.448.396-.262.591"/><path fill="#969CA3" d="M79.513 41.54c-.37-.02-.682.347-.656.705.03.39.387.662.759.688a.795.795 0 0 0 .821-.6c.066-.362-.229-.79-.625-.748-.398.043-.636.559-.356.867a.163.163 0 1 0 .23-.23c-.028-.032.01.025-.009-.012-.003-.006-.02-.046-.007-.01-.005-.014-.013-.073-.011-.036-.001-.011.002-.077-.003-.039a.417.417 0 0 1 .021-.081c-.01.03.016-.028.022-.038.002-.004.03-.04.008-.014a.374.374 0 0 1 .05-.05c-.026.023.007-.005.012-.008l.025-.014c.017-.008.017-.008 0 0a.348.348 0 0 1 .026-.008c.026-.01.009-.003-.001-.002.016-.002.032-.001.048-.002.048-.001-.013-.004.013.001l.04.01c.042.01-.017-.012.021.008l.029.016s.043.031.02.013a.366.366 0 0 1 .132.227c-.005-.03.001.022.001.024l-.001.05c.003-.032-.006.023-.006.024l-.01.034c-.012.046.011-.018-.01.025a.463.463 0 0 1-.136.168c.016-.013-.014.008-.017.01a.692.692 0 0 1-.085.048c-.002.001-.028.012-.01.005a.5.5 0 0 1-.474-.05.424.424 0 0 1-.19-.268.448.448 0 0 1 0-.082c.001-.033-.007.013.003-.021l.013-.048c.002-.005.019-.047.008-.023a.575.575 0 0 1 .049-.086c.026-.039-.018.015.015-.018l.034-.035s.042-.034.017-.016a.424.424 0 0 1 .041-.026c.001 0 .048-.024.019-.011a.329.329 0 0 1 .045-.015c.003-.001.053-.01.02-.006a.404.404 0 0 1 .065 0 .163.163 0 1 0 0-.326Zm11.312-.89a37.884 37.884 0 0 1 4.326-.158c.48.011.964.052 1.444.034.15-.006.202-.253.037-.277a9.845 9.845 0 0 0-1.415-.074c-.493-.004-.985.003-1.478.02-.975.036-1.947.127-2.914.254-.125.017-.13.214 0 .201Zm.862 2.523c.18.07.43.025.62.018.222-.008.443-.019.664-.028.431-.018.862-.037 1.293-.058l1.293-.063c.426-.022.885-.004 1.298-.12.125-.034.144-.25 0-.272-.424-.065-.872 0-1.298.03l-1.326.092c-.431.03-.862.063-1.293.096-.221.017-.443.032-.663.05-.193.016-.436.004-.609.095a.089.089 0 0 0-.02.133.09.09 0 0 0 .041.027Zm.799 3.119c1.036-.065 2.074-.096 3.108-.176.2-.016.204-.329 0-.316-1.037.067-2.072.183-3.108.265-.144.012-.146.236 0 .227ZM12.964 65.366c.14 2.555.318 5.106.602 7.65.283 2.537.64 5.065 1.069 7.584.241 1.418.508 2.832.784 4.243a.222.222 0 0 0 .267.152c1.962-.321 3.924-.64 5.887-.957l2.926-.48c.403-.066.913-.071 1.243-.342.335-.275.391-.787.473-1.184.378-1.843.393-3.735.266-5.605-.13-1.915-.379-3.823-.605-5.728a531.451 531.451 0 0 0-.818-6.56.236.236 0 0 0-.23-.231c-2.776.07-5.551.14-8.326.212-.785.021-1.57.04-2.355.066-.303.01-.305.477 0 .471 2.775-.056 5.55-.145 8.325-.222l2.355-.066-.23-.23c.25 1.911.487 3.824.712 5.74.224 1.883.462 3.769.626 5.659.159 1.824.228 3.678-.03 5.497a14.44 14.44 0 0 1-.253 1.333c-.039.162-.074.362-.206.478-.143.125-.37.139-.547.169l-2.891.48-6.437 1.08.267.153c-.546-2.477-.99-4.977-1.371-7.484a136.903 136.903 0 0 1-.939-7.576 115.687 115.687 0 0 1-.348-4.302c-.008-.138-.224-.14-.216 0Zm58.401-13.11a3.393 3.393 0 0 0 2.138-1.603c.228-.399.453-.934.346-1.4a.842.842 0 0 0-.844-.613 1.157 1.157 0 0 0-1.021.623c-.23.422-.25.93-.184 1.397.063.445.226.922.59 1.21.437.348.998.277 1.482.073a7.464 7.464 0 0 0 1.597-.97 9.58 9.58 0 0 0 1.384-1.292c.14-.16-.046-.451-.24-.313-.607.432-.561 1.392.016 1.832.706.537 1.701.183 2.187-.47.288-.419.456-.91.483-1.417l-.345.143c.872.704 2.011.83 3.095.746 1.297-.102 2.56-.45 3.87-.283.205.026.242-.305.049-.356-1.238-.32-2.499.046-3.735.183-1.01.112-2.164.092-2.993-.576a.205.205 0 0 0-.345.143c-.07.802-.524 1.734-1.445 1.745a.83.83 0 0 1-.821-.507c-.105-.28-.077-.654.184-.84l-.24-.311a9.194 9.194 0 0 1-2.123 1.794c-.388.237-.837.527-1.306.54-.416.012-.697-.265-.844-.633-.238-.597-.334-1.767.404-2.07.26-.107.644-.102.833.135.275.346.012.959-.16 1.302a3.14 3.14 0 0 1-2.052 1.643c-.094.022-.055.167.04.145Zm-1.973 21.789a44.6 44.6 0 0 0 6.382.222c.248-.01.25-.395 0-.386a68.61 68.61 0 0 1-6.382-.052c-.14-.008-.135.202 0 .216Zm34.523-9.963c-1.426.088-2.848.2-4.268.36a96.22 96.22 0 0 0-2.074.256 8.318 8.318 0 0 0-.962.144c-.247.063-.464.217-.494.487a1.55 1.55 0 0 0 .076.515l.135.583.278 1.197a.175.175 0 0 0 .125.125c1.379.263 2.782.364 4.184.304a17.852 17.852 0 0 0 2.073-.219c.495-.08 1.113-.167 1.414-.625a.857.857 0 0 0 .044-.776c-.085-.224-.278-.495-.188-.743.058-.16-.187-.311-.296-.172a.628.628 0 0 0-.094.63c.068.207.217.42.215.644-.003.452-.729.541-1.051.598a18.19 18.19 0 0 1-6.206.014l.126.125c-.157-.634-.314-1.268-.469-1.903-.032-.134-.084-.302.05-.395a.79.79 0 0 1 .323-.096c.312-.05.625-.09.937-.134 1.305-.18 2.613-.322 3.92-.479a82.571 82.571 0 0 1 2.202-.237c.129-.011.132-.211 0-.203Zm-6.545 6.432c.708.07 1.416.139 2.124.206.222.021.222-.327 0-.346-.708-.06-1.416-.116-2.124-.17-.201-.016-.197.29 0 .31Zm-28.47.916c1.851.117 3.705.225 5.56.261a.157.157 0 0 0 .109-.267.158.158 0 0 0-.108-.048c-1.852-.096-3.708-.122-5.562-.137a.095.095 0 0 0 0 .19Zm-41.201-4.37a26.371 26.371 0 0 1 3.087-.49 28.173 28.173 0 0 1 3.098-.106.185.185 0 0 0 0-.369 21.002 21.002 0 0 0-6.243.757.108.108 0 0 0 .058.209Zm.431 2.927a5.125 5.125 0 0 0 1.99.19c.163-.019.168-.275 0-.26a5.901 5.901 0 0 1-1.938-.12.098.098 0 0 0-.11.143.098.098 0 0 0 .058.047Zm.354 4.107 1.473.005a.122.122 0 0 0 .084-.207.122.122 0 0 0-.084-.037l-1.473.005a.118.118 0 0 0-.08.199c.021.022.05.034.08.035Z"/><path fill="#969CA3" d="M14.973 68.497a181.319 181.319 0 0 1 7.525 10.8.499.499 0 0 0 .668.176.494.494 0 0 0 .176-.67 181.443 181.443 0 0 0-7.525-10.8.504.504 0 0 0-.668-.175c-.208.121-.335.457-.176.669Z"/><path fill="#969CA3" d="M17.923 78.724a72.21 72.21 0 0 1 4.36-9.452.489.489 0 1 0-.843-.493 74.498 74.498 0 0 0-4.46 9.684c-.093.248.104.537.341.602a.5.5 0 0 0 .602-.341ZM5.294 50.488c-.328.624-.244 1.351.053 1.97.343.714 1.014 1.173 1.734 1.456.81.318 1.706.404 2.566.482.971.088 1.947.12 2.922.096a22.326 22.326 0 0 0 3.35-.315c.255-.045.142-.417-.105-.383a28.057 28.057 0 0 1-5.519.263 14.067 14.067 0 0 1-2.487-.31c-.718-.176-1.429-.475-1.93-1.036-.524-.587-.826-1.415-.497-2.172.026-.058-.056-.11-.087-.05ZM3.21 55.196c.438.446.928.837 1.46 1.165.144.09.28-.142.133-.229a7.422 7.422 0 0 1-1.427-1.102.117.117 0 0 0-.166.166Zm33.112-5.146a30.618 30.618 0 0 1 3.389 1.98c.144.095.276-.136.135-.232a25.068 25.068 0 0 0-3.422-1.921c-.116-.055-.219.116-.102.173ZM64.98 64.603c1.47.515 3.02.573 4.56.472 1.616-.106 3.226-.325 4.834-.513 1.622-.19 3.25-.357 4.869-.573.68-.091 1.376-.239 1.93-.671A2.48 2.48 0 0 0 79.87 58.9c-.262-.026-.256.377 0 .407 1.126.133 2.002 1.225 1.801 2.355a2.13 2.13 0 0 1-.835 1.37c-.539.375-1.208.479-1.845.556-1.54.186-3.08.362-4.618.543-1.497.175-2.992.385-4.493.527-1.609.153-3.277.188-4.845-.26a.106.106 0 0 0-.126.075.105.105 0 0 0 .07.129Zm25.116-3.765c-.331.688-1.002 1.126-1.723 1.32-.16.043-.134.318.04.297a1.98 1.98 0 0 0 .634-.178 2.509 2.509 0 0 0 1.244-1.357c.046-.111-.143-.19-.195-.082Zm28.089-13.245a7.292 7.292 0 0 1 1.548 4.296 7.022 7.022 0 0 1-1.242 4.126 7.134 7.134 0 0 1-1.703 1.75c-.18.13-.006.433.176.302a7.342 7.342 0 0 0 2.672-3.64 7.192 7.192 0 0 0-1.357-6.928c-.056-.066-.145.028-.094.093Zm-1.832 6.827c.183.47.21.986.074 1.471l.143-.108c-.272-.02-.483-.2-.744-.258a.43.43 0 0 0-.483.205.417.417 0 0 0-.053.179c-.037.33-.175.64-.395.887a2.552 2.552 0 0 1-.88.587c-.381.15-.774.268-1.174.352-.431.107-.858.222-1.29.324l-2.523.599c-.97.23-1.942.455-2.907.703a.112.112 0 0 0-.075.136.113.113 0 0 0 .134.08c1.709-.381 3.407-.812 5.108-1.224.812-.197 1.64-.347 2.443-.58.669-.193 1.324-.516 1.67-1.154a1.56 1.56 0 0 0 .175-.504c.021-.13.007-.318.182-.28.294.063.531.3.851.238a.15.15 0 0 0 .079-.053.151.151 0 0 0 .03-.09 4.122 4.122 0 0 0-.205-1.554c-.037-.1-.196-.057-.16.044Z"/><path fill="#969CA3" d="M118.01 49.986a4.327 4.327 0 0 1-.134 1.9.107.107 0 0 0 .013.08.107.107 0 0 0 .064.049.108.108 0 0 0 .132-.072c.212-.65.256-1.342.129-2.013-.024-.134-.226-.077-.204.056ZM91.2 56.593c.01 0 .02-.004.026-.011a.038.038 0 0 0-.026-.065.038.038 0 0 0 0 .076ZM85.676 87.74a1.908 1.908 0 0 0 1.996-.439c.248-.246-.125-.612-.382-.381a1.489 1.489 0 0 1-1.476.32c-.32-.103-.45.39-.138.5Zm-2.156-9.983c3.658-.05 7.31-.31 10.95-.657 3.623-.344 7.235-.777 10.849-1.196l6.117-.71c.166-.019.168-.282 0-.262l-10.915 1.306c-3.614.427-7.23.85-10.86 1.108-2.044.145-4.091.243-6.14.276a.068.068 0 0 0-.065.067c0 .018.006.035.019.047.012.013.028.02.046.02Zm11.23 3.112c.832.132 1.675.178 2.517.138.17-.008.17-.277 0-.264-.82.065-1.646.04-2.461-.078-.133-.02-.191.183-.057.204ZM84.17 92.93h.433a.15.15 0 1 0 0-.297h-.433a.15.15 0 1 0 0 .298Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AccessForbidden } from './AccessForbidden';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AccessForbidden } from './AccessForbidden';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { H1 } from '@pushwoosh/kit-typography';
|
|
2
|
+
export declare const RootBox: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const ImageBox: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
4
|
+
export declare const TitleBox: import("styled-components").StyledComponent<typeof H1, any, {}, never>;
|
|
5
|
+
export declare const DescriptionBox: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { Color, FontWeight } from '@pushwoosh/kit-constants';
|
|
3
|
+
import { H1 } from '@pushwoosh/kit-typography';
|
|
4
|
+
export const RootBox = styled.div.withConfig({
|
|
5
|
+
displayName: "RootBox",
|
|
6
|
+
componentId: "sc-vun7qs-0"
|
|
7
|
+
})(["display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:520px;padding:56px 48px;margin:0 auto;"]);
|
|
8
|
+
export const ImageBox = styled.img.withConfig({
|
|
9
|
+
displayName: "ImageBox",
|
|
10
|
+
componentId: "sc-vun7qs-1"
|
|
11
|
+
})(["width:240px;margin-bottom:12px;"]);
|
|
12
|
+
export const TitleBox = styled(H1).withConfig({
|
|
13
|
+
displayName: "TitleBox",
|
|
14
|
+
componentId: "sc-vun7qs-2"
|
|
15
|
+
})(["color:", ";font-weight:", ";margin-bottom:8px;"], Color.LOCKED, FontWeight.MEDIUM);
|
|
16
|
+
export const DescriptionBox = styled.div.withConfig({
|
|
17
|
+
displayName: "DescriptionBox",
|
|
18
|
+
componentId: "sc-vun7qs-3"
|
|
19
|
+
})(["color:", ";text-align:center;"], Color.LOCKED);
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Alert - AI Documentation
|
|
2
|
+
|
|
3
|
+
> Auto-generated AI agent documentation for Alert component
|
|
4
|
+
> Part of @pushwoosh/dumb-components library
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
**Component:** Alert
|
|
9
|
+
**Import Path:** `import { Alert } from '@pushwoosh/dumb-components'`
|
|
10
|
+
**Files:** Alert.tsx, types.ts, styles.ts, maps.ts, index.ts
|
|
11
|
+
**Type:** UI Component / Notification Component
|
|
12
|
+
**Description:** Alert component for displaying informational, warning, and error messages with optional collapsible content
|
|
13
|
+
|
|
14
|
+
## TypeScript Interface
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
type AlertType = 'info' | 'warning' | 'error';
|
|
18
|
+
|
|
19
|
+
interface AlertProps {
|
|
20
|
+
title: ReactNode;
|
|
21
|
+
type: AlertType;
|
|
22
|
+
isExpandedDefault?: boolean;
|
|
23
|
+
readonly children?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Import & Usage
|
|
28
|
+
|
|
29
|
+
**Import:**
|
|
30
|
+
```typescript
|
|
31
|
+
import { Alert } from '@pushwoosh/dumb-components';
|
|
32
|
+
import type { AlertProps } from '@pushwoosh/dumb-components';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Basic Usage:**
|
|
36
|
+
```tsx
|
|
37
|
+
function App() {
|
|
38
|
+
return (
|
|
39
|
+
<Alert
|
|
40
|
+
title="Information Alert"
|
|
41
|
+
type="info"
|
|
42
|
+
/>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Advanced Examples:**
|
|
48
|
+
```tsx
|
|
49
|
+
// Warning alert with collapsible content
|
|
50
|
+
<Alert
|
|
51
|
+
title="Warning: Check your settings"
|
|
52
|
+
type="warning"
|
|
53
|
+
isExpandedDefault={true}
|
|
54
|
+
>
|
|
55
|
+
<p>Please review your configuration before proceeding.</p>
|
|
56
|
+
<ul>
|
|
57
|
+
<li>Check database connection</li>
|
|
58
|
+
<li>Verify API endpoints</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</Alert>
|
|
61
|
+
|
|
62
|
+
// Error alert
|
|
63
|
+
<Alert
|
|
64
|
+
title="Error: Failed to save"
|
|
65
|
+
type="error"
|
|
66
|
+
>
|
|
67
|
+
<p>There was an error saving your data. Please try again.</p>
|
|
68
|
+
</Alert>
|
|
69
|
+
|
|
70
|
+
// Simple info alert without children (non-collapsible)
|
|
71
|
+
<Alert
|
|
72
|
+
title="Your changes have been saved successfully"
|
|
73
|
+
type="info"
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
// Dynamic content
|
|
77
|
+
{errors.map(error => (
|
|
78
|
+
<Alert
|
|
79
|
+
key={error.id}
|
|
80
|
+
title={error.title}
|
|
81
|
+
type="error"
|
|
82
|
+
isExpandedDefault={false}
|
|
83
|
+
>
|
|
84
|
+
{error.details}
|
|
85
|
+
</Alert>
|
|
86
|
+
))}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Props Reference
|
|
90
|
+
|
|
91
|
+
| Prop | Type | Default | Description |
|
|
92
|
+
|------|------|---------|-------------|
|
|
93
|
+
| title | ReactNode | required | The main title/message of the alert |
|
|
94
|
+
| type | 'info' \| 'warning' \| 'error' | required | Alert type that determines styling and icon |
|
|
95
|
+
| isExpandedDefault | boolean | undefined | Whether collapsible content is expanded by default |
|
|
96
|
+
| children | ReactNode | undefined | Optional content that makes the alert collapsible |
|
|
97
|
+
|
|
98
|
+
## AI Agent Guidelines
|
|
99
|
+
|
|
100
|
+
### ✅ Recommended Patterns
|
|
101
|
+
- Use `type="info"` for general information and success messages
|
|
102
|
+
- Use `type="warning"` for cautions and non-critical issues
|
|
103
|
+
- Use `type="error"` for errors and critical problems
|
|
104
|
+
- Include `children` only when you need expandable details
|
|
105
|
+
- Set `isExpandedDefault={true}` for important details that should be visible immediately
|
|
106
|
+
- Use meaningful, action-oriented titles
|
|
107
|
+
|
|
108
|
+
### ❌ Common Mistakes to Avoid
|
|
109
|
+
- Don't use Alert for loading states (use Spinner instead)
|
|
110
|
+
- Don't nest Alerts inside each other
|
|
111
|
+
- Don't use Alert for permanent UI elements (use Banner instead)
|
|
112
|
+
- Avoid very long titles - use children for detailed content
|
|
113
|
+
|
|
114
|
+
### Integration Tips
|
|
115
|
+
- Works well at the top of forms to show validation errors
|
|
116
|
+
- Can be used in modals for confirmation messages
|
|
117
|
+
- Effective in dashboards for system status updates
|
|
118
|
+
- Combines well with Toast for temporary notifications vs persistent alerts
|
|
119
|
+
- Use multiple alerts in a stack for different message types
|
|
120
|
+
|
|
121
|
+
## Behavior Notes
|
|
122
|
+
- **Collapsible**: Alert becomes collapsible when `children` prop is provided
|
|
123
|
+
- **Icon Display**: Each alert type has its own icon and color scheme
|
|
124
|
+
- **Click Interaction**: Header is clickable only when content is collapsible
|
|
125
|
+
- **Responsive**: Adapts to container width with proper padding and spacing
|
|
126
|
+
|
|
127
|
+
## Related Components
|
|
128
|
+
- Toast - for temporary notifications
|
|
129
|
+
- Banner - for persistent promotional messages
|
|
130
|
+
- Modal - for critical alerts requiring user action
|
|
131
|
+
|
|
132
|
+
---
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Badge - AI Documentation
|
|
2
|
+
|
|
3
|
+
> Auto-generated AI agent documentation for Badge component
|
|
4
|
+
> Part of @pushwoosh/dumb-components library
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
**Component:** Badge
|
|
9
|
+
**Import Path:** `import { Badge } from '@pushwoosh/dumb-components'`
|
|
10
|
+
**Files:** Badge.tsx, types.ts, styles.ts, maps.ts, index.ts
|
|
11
|
+
**Type:** UI Component / Status Indicator
|
|
12
|
+
**Description:** Badge component for displaying status, categories, or labels with various color options and saturation levels
|
|
13
|
+
|
|
14
|
+
## TypeScript Interface
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
type BadgeColor = 'gray' | 'green' | 'orange' | 'red' | 'purple' | 'sky' | 'locked';
|
|
18
|
+
|
|
19
|
+
interface BadgeProps extends Omit<JSX.IntrinsicElements['div'], 'ref'> {
|
|
20
|
+
readonly boxRef?: Ref<HTMLDivElement>;
|
|
21
|
+
readonly color: BadgeColor;
|
|
22
|
+
readonly isSaturated?: boolean;
|
|
23
|
+
readonly children: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Import & Usage
|
|
28
|
+
|
|
29
|
+
**Import:**
|
|
30
|
+
```typescript
|
|
31
|
+
import { Badge } from '@pushwoosh/dumb-components';
|
|
32
|
+
import type { BadgeProps, BadgeColor } from '@pushwoosh/dumb-components';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Basic Usage:**
|
|
36
|
+
```tsx
|
|
37
|
+
function App() {
|
|
38
|
+
return (
|
|
39
|
+
<Badge color="green">
|
|
40
|
+
Active
|
|
41
|
+
</Badge>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Advanced Examples:**
|
|
47
|
+
```tsx
|
|
48
|
+
// Status indicators with semantic colors
|
|
49
|
+
<Badge color="green">Active</Badge>
|
|
50
|
+
<Badge color="red">Inactive</Badge>
|
|
51
|
+
<Badge color="orange">Pending</Badge>
|
|
52
|
+
<Badge color="gray">Draft</Badge>
|
|
53
|
+
|
|
54
|
+
// Saturated vs normal badges
|
|
55
|
+
<Badge color="purple" isSaturated={true}>
|
|
56
|
+
Premium
|
|
57
|
+
</Badge>
|
|
58
|
+
<Badge color="purple" isSaturated={false}>
|
|
59
|
+
Basic
|
|
60
|
+
</Badge>
|
|
61
|
+
|
|
62
|
+
// With ref for DOM access
|
|
63
|
+
const badgeRef = useRef<HTMLDivElement>(null);
|
|
64
|
+
|
|
65
|
+
<Badge
|
|
66
|
+
color="sky"
|
|
67
|
+
boxRef={badgeRef}
|
|
68
|
+
onClick={() => console.log('Badge clicked')}
|
|
69
|
+
>
|
|
70
|
+
Clickable
|
|
71
|
+
</Badge>
|
|
72
|
+
|
|
73
|
+
// In lists and tables
|
|
74
|
+
{users.map(user => (
|
|
75
|
+
<div key={user.id}>
|
|
76
|
+
<span>{user.name}</span>
|
|
77
|
+
<Badge color={getStatusColor(user.status)}>
|
|
78
|
+
{user.status}
|
|
79
|
+
</Badge>
|
|
80
|
+
</div>
|
|
81
|
+
))}
|
|
82
|
+
|
|
83
|
+
// Dynamic color based on data
|
|
84
|
+
function getStatusBadge(status: string) {
|
|
85
|
+
const colorMap = {
|
|
86
|
+
active: 'green',
|
|
87
|
+
inactive: 'red',
|
|
88
|
+
pending: 'orange',
|
|
89
|
+
locked: 'locked'
|
|
90
|
+
} as const;
|
|
91
|
+
|
|
92
|
+
return (
|
|
93
|
+
<Badge color={colorMap[status] || 'gray'}>
|
|
94
|
+
{status.toUpperCase()}
|
|
95
|
+
</Badge>
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Props Reference
|
|
101
|
+
|
|
102
|
+
| Prop | Type | Default | Description |
|
|
103
|
+
|------|------|---------|-------------|
|
|
104
|
+
| color | BadgeColor | required | Badge color theme: 'gray', 'green', 'orange', 'red', 'purple', 'sky', 'locked' |
|
|
105
|
+
| isSaturated | boolean | false | Whether to use saturated/bold version of the color |
|
|
106
|
+
| children | ReactNode | required | Content to display inside the badge |
|
|
107
|
+
| boxRef | Ref<HTMLDivElement> | undefined | Ref to access the badge DOM element |
|
|
108
|
+
| ...rest | HTMLDivElement props | | All standard div props (onClick, className, etc.) |
|
|
109
|
+
|
|
110
|
+
## Color Guide
|
|
111
|
+
|
|
112
|
+
| Color | Best Used For | Example Use Cases |
|
|
113
|
+
|-------|---------------|-------------------|
|
|
114
|
+
| green | Success, Active, Positive | "Active", "Published", "Success" |
|
|
115
|
+
| red | Error, Danger, Negative | "Inactive", "Error", "Failed" |
|
|
116
|
+
| orange | Warning, Pending, Caution | "Pending", "Warning", "In Review" |
|
|
117
|
+
| gray | Neutral, Default, Disabled | "Draft", "Disabled", "Unknown" |
|
|
118
|
+
| purple | Premium, Special, Priority | "Premium", "VIP", "Priority" |
|
|
119
|
+
| sky | Info, Neutral Positive | "Info", "New", "Updated" |
|
|
120
|
+
| locked | Restricted, Locked | "Locked", "Private", "Restricted" |
|
|
121
|
+
|
|
122
|
+
## AI Agent Guidelines
|
|
123
|
+
|
|
124
|
+
### ✅ Recommended Patterns
|
|
125
|
+
- Use semantic colors that match the meaning (green for success, red for errors)
|
|
126
|
+
- Keep badge text short and concise (1-2 words ideal)
|
|
127
|
+
- Use `isSaturated={true}` for high-importance badges
|
|
128
|
+
- Combine with tooltips for badges that need explanation
|
|
129
|
+
- Use consistent color meanings across your application
|
|
130
|
+
|
|
131
|
+
### ❌ Common Mistakes to Avoid
|
|
132
|
+
- Don't use badges for long text content (use chips or tags instead)
|
|
133
|
+
- Avoid mixing saturated and non-saturated badges in the same context
|
|
134
|
+
- Don't use too many different colors in one interface
|
|
135
|
+
- Don't use badges for interactive elements without proper accessibility
|
|
136
|
+
|
|
137
|
+
### Integration Tips
|
|
138
|
+
- Works well in tables for status columns
|
|
139
|
+
- Effective in user lists, dashboards, and card components
|
|
140
|
+
- Can be combined with icons for richer status indicators
|
|
141
|
+
- Good for filtering interfaces when combined with interactive elements
|
|
142
|
+
- Use with consistent spacing in badge groups
|
|
143
|
+
|
|
144
|
+
## Behavior Notes
|
|
145
|
+
- **Interactive**: Accepts all standard div props including onClick for interactivity
|
|
146
|
+
- **Accessible**: Maintains proper contrast ratios for readability
|
|
147
|
+
- **Flexible**: Can contain any ReactNode content
|
|
148
|
+
- **Responsive**: Adapts to content size while maintaining consistent styling
|
|
149
|
+
|
|
150
|
+
## Related Components
|
|
151
|
+
- Chip - for removable tags and filters
|
|
152
|
+
- Alert - for larger status messages
|
|
153
|
+
- Tooltip - for additional badge explanations
|
|
154
|
+
|
|
155
|
+
---
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# Banner - AI Documentation
|
|
2
|
+
|
|
3
|
+
> Auto-generated AI agent documentation for Banner component
|
|
4
|
+
> Part of @pushwoosh/dumb-components library
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
**Component:** Banner
|
|
9
|
+
**Import Path:** `import { Banner } from '@pushwoosh/dumb-components'`
|
|
10
|
+
**Files:** Banner.tsx, types.ts, styles.ts, maps.ts, colors.ts, index.ts
|
|
11
|
+
**Type:** UI Component / Notification Component
|
|
12
|
+
**Description:** Banner component for displaying prominent notifications with optional actions, loading states, and close functionality
|
|
13
|
+
|
|
14
|
+
## TypeScript Interface
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
type BannerType = 'error' | 'warning' | 'info' | 'success';
|
|
18
|
+
|
|
19
|
+
interface RequiredBannerProps {
|
|
20
|
+
readonly boxRef?: any;
|
|
21
|
+
readonly type: BannerType;
|
|
22
|
+
readonly title: string;
|
|
23
|
+
readonly view?: 'shape' | 'ghost';
|
|
24
|
+
readonly icon?: ReactElement;
|
|
25
|
+
readonly className?: string;
|
|
26
|
+
readonly isLoading?: boolean;
|
|
27
|
+
readonly canBeClosed?: boolean;
|
|
28
|
+
readonly onClose?: () => void;
|
|
29
|
+
readonly children?: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface BannerPropsWithButton extends RequiredBannerProps {
|
|
33
|
+
readonly action?: {
|
|
34
|
+
readonly onClick: () => void;
|
|
35
|
+
readonly buttonText: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Import & Usage
|
|
41
|
+
|
|
42
|
+
**Import:**
|
|
43
|
+
```typescript
|
|
44
|
+
import { Banner } from '@pushwoosh/dumb-components';
|
|
45
|
+
import type {
|
|
46
|
+
BannerType,
|
|
47
|
+
RequiredBannerProps,
|
|
48
|
+
BannerPropsWithButton
|
|
49
|
+
} from '@pushwoosh/dumb-components';
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Basic Usage:**
|
|
53
|
+
```tsx
|
|
54
|
+
function App() {
|
|
55
|
+
return (
|
|
56
|
+
<Banner
|
|
57
|
+
type="info"
|
|
58
|
+
title="Welcome to the new dashboard!"
|
|
59
|
+
/>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Advanced Examples:**
|
|
65
|
+
```tsx
|
|
66
|
+
// Success banner with action
|
|
67
|
+
<Banner
|
|
68
|
+
type="success"
|
|
69
|
+
title="Account verified successfully"
|
|
70
|
+
action={{
|
|
71
|
+
buttonText: "Get Started",
|
|
72
|
+
onClick: () => navigate('/dashboard')
|
|
73
|
+
}}
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
// Error banner with close functionality
|
|
77
|
+
<Banner
|
|
78
|
+
type="error"
|
|
79
|
+
title="Connection failed"
|
|
80
|
+
canBeClosed
|
|
81
|
+
onClose={() => console.log('Banner closed')}
|
|
82
|
+
>
|
|
83
|
+
<p>Unable to connect to server. Please check your internet connection.</p>
|
|
84
|
+
</Banner>
|
|
85
|
+
|
|
86
|
+
// Warning banner with loading action
|
|
87
|
+
<Banner
|
|
88
|
+
type="warning"
|
|
89
|
+
title="Unsaved changes detected"
|
|
90
|
+
isLoading={isSaving}
|
|
91
|
+
action={{
|
|
92
|
+
buttonText: isSaving ? "Saving..." : "Save Changes",
|
|
93
|
+
onClick: handleSave
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<p>You have unsaved changes that will be lost if you navigate away.</p>
|
|
97
|
+
</Banner>
|
|
98
|
+
|
|
99
|
+
// Info banner with custom icon
|
|
100
|
+
<Banner
|
|
101
|
+
type="info"
|
|
102
|
+
title="New features available"
|
|
103
|
+
icon={<StarIcon />}
|
|
104
|
+
canBeClosed
|
|
105
|
+
onClose={() => setShowBanner(false)}
|
|
106
|
+
>
|
|
107
|
+
<p>Check out our latest updates and improvements.</p>
|
|
108
|
+
</Banner>
|
|
109
|
+
|
|
110
|
+
// Ghost view banner
|
|
111
|
+
<Banner
|
|
112
|
+
type="success"
|
|
113
|
+
title="Operation completed"
|
|
114
|
+
view="ghost"
|
|
115
|
+
action={{
|
|
116
|
+
buttonText: "View Details",
|
|
117
|
+
onClick: () => showDetails()
|
|
118
|
+
}}
|
|
119
|
+
/>
|
|
120
|
+
|
|
121
|
+
// Conditional banner display
|
|
122
|
+
{showErrorBanner && (
|
|
123
|
+
<Banner
|
|
124
|
+
type="error"
|
|
125
|
+
title="Validation failed"
|
|
126
|
+
canBeClosed
|
|
127
|
+
onClose={() => setShowErrorBanner(false)}
|
|
128
|
+
>
|
|
129
|
+
<ul>
|
|
130
|
+
{errors.map(error => (
|
|
131
|
+
<li key={error.field}>{error.message}</li>
|
|
132
|
+
))}
|
|
133
|
+
</ul>
|
|
134
|
+
</Banner>
|
|
135
|
+
)}
|
|
136
|
+
|
|
137
|
+
// Banner with async action
|
|
138
|
+
<Banner
|
|
139
|
+
type="info"
|
|
140
|
+
title="Update available"
|
|
141
|
+
isLoading={isUpdating}
|
|
142
|
+
action={{
|
|
143
|
+
buttonText: "Update Now",
|
|
144
|
+
onClick: async () => {
|
|
145
|
+
setIsUpdating(true);
|
|
146
|
+
await performUpdate();
|
|
147
|
+
setIsUpdating(false);
|
|
148
|
+
}
|
|
149
|
+
}}
|
|
150
|
+
/>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Props Reference
|
|
154
|
+
|
|
155
|
+
| Prop | Type | Default | Description |
|
|
156
|
+
|------|------|---------|-------------|
|
|
157
|
+
| type | 'error' \| 'warning' \| 'info' \| 'success' | required | Banner semantic type |
|
|
158
|
+
| title | string | required | Main banner title text |
|
|
159
|
+
| view | 'shape' \| 'ghost' | 'shape' | Visual style variant |
|
|
160
|
+
| children | ReactNode | undefined | Additional content below title |
|
|
161
|
+
| icon | ReactElement | auto by type | Custom icon (defaults based on type) |
|
|
162
|
+
| canBeClosed | boolean | false | Whether banner can be dismissed |
|
|
163
|
+
| isLoading | boolean | false | Whether banner shows loading state |
|
|
164
|
+
| onClose | () => void | undefined | Callback when banner is closed |
|
|
165
|
+
| action | BannerAction | undefined | Action button configuration |
|
|
166
|
+
| className | string | undefined | Additional CSS classes |
|
|
167
|
+
| boxRef | Ref | undefined | Ref to banner element |
|
|
168
|
+
|
|
169
|
+
### Action Object
|
|
170
|
+
```typescript
|
|
171
|
+
action?: {
|
|
172
|
+
onClick: () => void; // Action callback
|
|
173
|
+
buttonText: string; // Button label text
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Type Guide
|
|
178
|
+
|
|
179
|
+
| Type | Usage | Default Icon | Example Use Cases |
|
|
180
|
+
|------|-------|--------------|-------------------|
|
|
181
|
+
| success | Positive feedback, completion | ✓ CheckIcon | "Successfully saved", "Account created" |
|
|
182
|
+
| info | Neutral information | ℹ️ InfoIcon | "New features", "System maintenance" |
|
|
183
|
+
| warning | Cautions, non-critical issues | ⚠️ WarningIcon | "Unsaved changes", "Session expiring" |
|
|
184
|
+
| error | Critical issues, failures | ❌ ErrorIcon | "Network error", "Validation failed" |
|
|
185
|
+
|
|
186
|
+
## AI Agent Guidelines
|
|
187
|
+
|
|
188
|
+
### ✅ Recommended Patterns
|
|
189
|
+
- Use semantic types that match the message content
|
|
190
|
+
- Include `canBeClosed` for dismissible notifications
|
|
191
|
+
- Add action buttons for banners that need user response
|
|
192
|
+
- Use `isLoading` when actions trigger async operations
|
|
193
|
+
- Place banners at top of content areas for visibility
|
|
194
|
+
- Include helpful details in children for complex issues
|
|
195
|
+
|
|
196
|
+
### ❌ Common Mistakes to Avoid
|
|
197
|
+
- Don't stack multiple banners without clear hierarchy
|
|
198
|
+
- Avoid very long titles - use children for details
|
|
199
|
+
- Don't use banners for temporary notifications (use Toast instead)
|
|
200
|
+
- Don't forget to handle loading states for async actions
|
|
201
|
+
- Avoid banners that can't be dismissed for non-critical content
|
|
202
|
+
|
|
203
|
+
### Integration Tips
|
|
204
|
+
- Position banners prominently at page/section tops
|
|
205
|
+
- Use with form validation to show error summaries
|
|
206
|
+
- Combine with async operations for status feedback
|
|
207
|
+
- Good for onboarding flows and feature announcements
|
|
208
|
+
- Can replace multiple alerts with single comprehensive banner
|
|
209
|
+
|
|
210
|
+
## Banner vs Other Components
|
|
211
|
+
|
|
212
|
+
| Component | Usage | Duration | Dismissible |
|
|
213
|
+
|-----------|--------|----------|-------------|
|
|
214
|
+
| Banner | Prominent notifications | Persistent | Optional |
|
|
215
|
+
| Alert | Contextual messages | Persistent | By content |
|
|
216
|
+
| Toast | Temporary feedback | Auto-dismiss | Usually |
|
|
217
|
+
| Modal | Critical interruptions | User action | Required |
|
|
218
|
+
|
|
219
|
+
## Common Patterns
|
|
220
|
+
|
|
221
|
+
### Error Handling
|
|
222
|
+
```tsx
|
|
223
|
+
function FormWithBanner() {
|
|
224
|
+
const [errors, setErrors] = useState([]);
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<>
|
|
228
|
+
{errors.length > 0 && (
|
|
229
|
+
<Banner
|
|
230
|
+
type="error"
|
|
231
|
+
title={`Found ${errors.length} validation error(s)`}
|
|
232
|
+
canBeClosed
|
|
233
|
+
onClose={() => setErrors([])}
|
|
234
|
+
>
|
|
235
|
+
<ul>
|
|
236
|
+
{errors.map(error => (
|
|
237
|
+
<li key={error.field}>{error.message}</li>
|
|
238
|
+
))}
|
|
239
|
+
</ul>
|
|
240
|
+
</Banner>
|
|
241
|
+
)}
|
|
242
|
+
{/* Form content */}
|
|
243
|
+
</>
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Feature Announcements
|
|
249
|
+
```tsx
|
|
250
|
+
<Banner
|
|
251
|
+
type="info"
|
|
252
|
+
title="New Dashboard Available!"
|
|
253
|
+
action={{
|
|
254
|
+
buttonText: "Try It Now",
|
|
255
|
+
onClick: () => enableNewDashboard()
|
|
256
|
+
}}
|
|
257
|
+
canBeClosed
|
|
258
|
+
onClose={() => markAnnouncementSeen()}
|
|
259
|
+
>
|
|
260
|
+
Experience our redesigned interface with improved performance and new features.
|
|
261
|
+
</Banner>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Save Prompt
|
|
265
|
+
```tsx
|
|
266
|
+
<Banner
|
|
267
|
+
type="warning"
|
|
268
|
+
title="You have unsaved changes"
|
|
269
|
+
isLoading={isSaving}
|
|
270
|
+
action={{
|
|
271
|
+
buttonText: isSaving ? "Saving..." : "Save Now",
|
|
272
|
+
onClick: handleSave
|
|
273
|
+
}}
|
|
274
|
+
>
|
|
275
|
+
Your changes will be lost if you navigate away from this page.
|
|
276
|
+
</Banner>
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Related Components
|
|
280
|
+
- Alert - for contextual messages within content
|
|
281
|
+
- Toast - for temporary notifications
|
|
282
|
+
- Modal - for blocking user interactions
|
|
283
|
+
- Button - action buttons used within banners
|
|
284
|
+
|
|
285
|
+
---
|