@qoretechnologies/reqore 0.57.1 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +223 -0
- package/.tasks/NEW_COMPONENT.md +175 -0
- package/.tasks/RANDOM_ISSUE.md +3 -2
- package/dist/components/Message/index.d.ts +1 -0
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js.map +1 -1
- package/dist/components/Notifications/notification.d.ts +2 -0
- package/dist/components/Notifications/notification.d.ts.map +1 -1
- package/dist/components/Notifications/notification.js +15 -15
- package/dist/components/Notifications/notification.js.map +1 -1
- package/dist/components/Progress/index.d.ts +43 -0
- package/dist/components/Progress/index.d.ts.map +1 -0
- package/dist/components/Progress/index.js +145 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/Rating/index.d.ts +37 -0
- package/dist/components/Rating/index.d.ts.map +1 -0
- package/dist/components/Rating/index.js +197 -0
- package/dist/components/Rating/index.js.map +1 -0
- package/dist/components/Timeline/index.d.ts +54 -0
- package/dist/components/Timeline/index.d.ts.map +1 -0
- package/dist/components/Timeline/index.js +232 -0
- package/dist/components/Timeline/index.js.map +1 -0
- package/dist/constants/sizes.d.ts +18 -0
- package/dist/constants/sizes.d.ts.map +1 -1
- package/dist/constants/sizes.js +19 -1
- package/dist/constants/sizes.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/tests.json +1 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# ReQore AI Coding Agent Instructions
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
ReQore is a **themeable React component library** for the Qorus platform. It provides 40+ UI components (Button, Table, Modal, Drawer, etc.) that share a unified design system with consistent theming, sizing, and effect systems.
|
|
6
|
+
|
|
7
|
+
**Key Facts:**
|
|
8
|
+
|
|
9
|
+
- **Framework:** React 18 + TypeScript (strict mode)
|
|
10
|
+
- **Build:** TypeScript compilation to `/dist`, exports both `.js` and `.d.ts`
|
|
11
|
+
- **Styling:** styled-components with theme-driven values (no CSS modules)
|
|
12
|
+
- **State Management:** zustand + React Context (use-context-selector)
|
|
13
|
+
- **Testing:** Jest + React Testing Library (tests in `__tests__/`)
|
|
14
|
+
- **Documentation:** Storybook (dev stories in `src/stories/`) + Docusaurus (docs site)
|
|
15
|
+
|
|
16
|
+
## Architecture Essentials
|
|
17
|
+
|
|
18
|
+
### General Development Practices
|
|
19
|
+
|
|
20
|
+
# General
|
|
21
|
+
|
|
22
|
+
- Focus is first on user experience and performance, complexity and tech debt secondary
|
|
23
|
+
- Follow existing code patterns for new components; refer to similar components for guidance
|
|
24
|
+
- Check if a helper or utility already exists before writing a new one
|
|
25
|
+
|
|
26
|
+
# TypeScript
|
|
27
|
+
|
|
28
|
+
- Use TypeScript with strict typing; define prop interfaces for each component with `I` prefix for interfaces and `T` prefix for types
|
|
29
|
+
|
|
30
|
+
# UI / UX
|
|
31
|
+
|
|
32
|
+
- Always make sure to create reusable components
|
|
33
|
+
- Always use named exports for React components
|
|
34
|
+
- There can be multiple React components in one file if it makes sense
|
|
35
|
+
- Use styled-components for styling; define style interfaces for styled components
|
|
36
|
+
- Always componentize styles with styled-components; avoid inline styles except for dynamic cases
|
|
37
|
+
- Use functional components with React hooks
|
|
38
|
+
- For React, always wrap components in `memo()` unless there's a specific reason not to
|
|
39
|
+
- For React, always wrap callbacks in `useCallback()` unless there's a specific reason not to
|
|
40
|
+
- For React, always memoize computed values in `useMemo()` unless there's a specific reason not to
|
|
41
|
+
|
|
42
|
+
# Testing
|
|
43
|
+
|
|
44
|
+
- Run tests after changes, run `yarn precheck` after feature completions
|
|
45
|
+
- Write a unit test if it makes sense for the change you have made, but Storybook tests will always have higher priority
|
|
46
|
+
|
|
47
|
+
### Component Structure
|
|
48
|
+
|
|
49
|
+
- **Folder:** `src/components/{ComponentName}/` contains only `index.tsx` (and occasionally `backdrop.tsx` for overlay components)
|
|
50
|
+
- **Pattern:** Each component is a `memo()` wrapped functional component with TypeScript interfaces
|
|
51
|
+
- **Exports:** Named exports (e.g., `export const ReqoreButton`) from component files; re-exported in `src/index.tsx`
|
|
52
|
+
|
|
53
|
+
### Theme System (`src/constants/theme.ts` + hooks)
|
|
54
|
+
|
|
55
|
+
- **Global theming:** `useReqoreTheme()` hook provides `IReqoreTheme` (colors, text, main background, intents)
|
|
56
|
+
- **Dynamic theming:** Components read theme via hooks, enabling runtime theme switching
|
|
57
|
+
- **Intents:** Type-safe intent system (e.g., `'primary' | 'secondary' | 'success' | 'danger'`) maps to theme colors
|
|
58
|
+
- **Custom themes:** Merge with `DEFAULT_THEME`; see `ThemeProvider.tsx`
|
|
59
|
+
|
|
60
|
+
### Sizing System (`src/constants/sizes.ts`)
|
|
61
|
+
|
|
62
|
+
- **Size types:** `'micro' | 'tiny' | 'small' | 'normal' | 'big' | 'huge' | 'massive'`
|
|
63
|
+
- **Pattern:** Maps like `SIZE_TO_PX`, `SIZE_TO_NUMBER`, `CONTROL_TEXT_FROM_SIZE` convert size enums to pixel/CSS values
|
|
64
|
+
- **Usage:** Most interactive components accept `size?: TSizes` prop; pass through to nested styled components
|
|
65
|
+
|
|
66
|
+
### Effect System (`src/components/Effect/`)
|
|
67
|
+
|
|
68
|
+
- **Purpose:** Provides gradient, blur, shadow effects applied via `StyledTextEffect`
|
|
69
|
+
- **Props:** `IWithReqoreEffect` mixin (gradient, blur, shadow, opacity) on interactive components
|
|
70
|
+
- **Color types:** `TReqoreHexColor`, `TReqoreRgbaColor`, `TReqoreMultiTypeColor` used consistently
|
|
71
|
+
|
|
72
|
+
### Global Context (`src/context/ReqoreContext.tsx` + `ReqoreProvider.tsx`)
|
|
73
|
+
|
|
74
|
+
- **Manages:** Modals, notifications, z-index stack, mobile breakpoints, animations toggle, tooltips
|
|
75
|
+
- **Methods:** `addModal()`, `removeModal()`, `addNotification()`, `confirmAction()` (confirmation dialog)
|
|
76
|
+
- **Mobile detection:** `isMobile`, `isTablet`, `isMobileOrTablet` flags from `useMedia()` hook
|
|
77
|
+
- **ESC handling:** Modals/popovers close on ESC via `escClosableModals` stack; `closeModalsOnEscPress` toggle
|
|
78
|
+
|
|
79
|
+
## Development Workflows
|
|
80
|
+
|
|
81
|
+
### Quick Start
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
yarn install
|
|
85
|
+
yarn storybook # Dev mode on http://localhost:6007
|
|
86
|
+
yarn docs:dev # Docusaurus dev server
|
|
87
|
+
yarn test:watch # Jest watch mode
|
|
88
|
+
yarn lint # ESLint check
|
|
89
|
+
yarn build # TypeScript compilation
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Pre-commit Checks
|
|
93
|
+
|
|
94
|
+
- `yarn precheck` runs: lint → test → build (production)
|
|
95
|
+
- `pre-push` hook enforces same checks before push (see `package.json`)
|
|
96
|
+
- Line length: 100 characters (enforced by eslint)
|
|
97
|
+
|
|
98
|
+
### Testing Patterns
|
|
99
|
+
|
|
100
|
+
- **Setup:** `__tests__/setup.js` disables console debug/info/error
|
|
101
|
+
- **Wrapper:** Always wrap tests with `<ReqoreUIProvider><ReqoreLayoutContent><ReqoreContent>...</ReqoreContent></ReqoreLayoutContent></ReqoreUIProvider>`
|
|
102
|
+
- **Selectors:** Use CSS classes like `.reqore-button`, `.reqore-icon` (added via `className` prop)
|
|
103
|
+
- **Example:** See [button.test.tsx](__tests__/button.test.tsx)
|
|
104
|
+
|
|
105
|
+
### Storybook Stories
|
|
106
|
+
|
|
107
|
+
- **Location:** `src/stories/` (e.g., `Collection.stories.tsx`)
|
|
108
|
+
- **Pattern:** ArgTypes for props, canvas controls, visual testing via Chromatic
|
|
109
|
+
- **Command:** `yarn build-storybook` builds static site
|
|
110
|
+
|
|
111
|
+
## Code Patterns & Conventions
|
|
112
|
+
|
|
113
|
+
### Component Prop Interfaces
|
|
114
|
+
|
|
115
|
+
- **Extend mixins:** `IWithReqoreSize`, `IWithReqoreEffect`, `IWithReqoreLoading`, `IWithReqoreReadOnly`
|
|
116
|
+
- **Naming:** Props interface is `IReqore{ComponentName}Props`; style interface is `IReqore{ComponentName}Style`
|
|
117
|
+
- **Optional theme:** Style interfaces accept `theme: IReqoreTheme` for styled-components access
|
|
118
|
+
- **Readonly context:** Use `readonly` keyword on context properties (immutability)
|
|
119
|
+
|
|
120
|
+
### Styled Components Pattern
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
const StyledButton = styled.button<IReqoreButtonStyle>`
|
|
124
|
+
// Use props.theme from ReqoreTheme
|
|
125
|
+
background: ${({ theme, intent }) => theme.intents?.[intent]?.color};
|
|
126
|
+
color: ${({ theme }) => getReadableColor(theme)};
|
|
127
|
+
// Conditional styles via css helper
|
|
128
|
+
${({ disabled }) =>
|
|
129
|
+
disabled &&
|
|
130
|
+
css`
|
|
131
|
+
opacity: 0.5;
|
|
132
|
+
`}
|
|
133
|
+
`;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Hooks Usage
|
|
137
|
+
|
|
138
|
+
- **Theme:** `useReqoreTheme()` returns `IReqoreTheme`
|
|
139
|
+
- **Context props:** `useReqoreProperty('propertyName')` for context values (avoids consuming entire context)
|
|
140
|
+
- **Local refs:** `useCombinedRefs()` for forwarding + internal refs; `useOutsideClick()` for popover clicks
|
|
141
|
+
- **Auto-focus:** `useAutoFocus()` for modal/drawer focus management
|
|
142
|
+
|
|
143
|
+
### Color Helpers (`src/helpers/colors.ts`)
|
|
144
|
+
|
|
145
|
+
- **Text contrast:** `getReadableColor(theme)` returns light or dark based on theme.main
|
|
146
|
+
- **Gradients:** `getGradientMix()` blends multiple colors for effect gradients
|
|
147
|
+
- **Hex↔RGBA:** `hexAToRGBA()`, `getRGBAFromHex()` for color space conversions
|
|
148
|
+
- **Lightness:** `changeLightness()`, `changeDarkness()` for theme-aware color adjustments
|
|
149
|
+
|
|
150
|
+
### Animation Config
|
|
151
|
+
|
|
152
|
+
- **Spring:** `SPRING_CONFIG` for bounce/smooth animations (via `@react-spring/web`)
|
|
153
|
+
- **Disabled:** `SPRING_CONFIG_NO_ANIMATIONS` when `animations.buttons: false`
|
|
154
|
+
- **Usage:** Wrap animated components with `<animated>` from react-spring
|
|
155
|
+
|
|
156
|
+
## Key Integration Points
|
|
157
|
+
|
|
158
|
+
### Modal & Notification Flow
|
|
159
|
+
|
|
160
|
+
1. **Add modal:** `context.addModal(modalElement, id?)` returns modal ID
|
|
161
|
+
2. **Close:** `context.removeModal(id)` + optional confirmation dialog
|
|
162
|
+
3. **Notifications:** `context.addNotification({...})` queues toast; auto-removes after `duration`
|
|
163
|
+
4. **Portal:** All modals/notifications render via `customPortalId` or default DOM portal
|
|
164
|
+
|
|
165
|
+
### Responsive Breakpoints
|
|
166
|
+
|
|
167
|
+
- **Mobile:** `isMobile` (width ≤ 480px)
|
|
168
|
+
- **Tablet:** `isTablet` (width ≤ 1024px)
|
|
169
|
+
- **Usage:** Conditional rendering in components; affects dropdown/menu positioning
|
|
170
|
+
|
|
171
|
+
### Icon System (`src/types/icons.ts`)
|
|
172
|
+
|
|
173
|
+
- **Type:** `IReqoreIconName` (string literal of all icon names)
|
|
174
|
+
- **Render:** `<ReqoreIcon name="iconNameHere" />` or component prop `icon="iconNameHere"`
|
|
175
|
+
- **Sizing:** Icon size auto-scales with component size via `ICON_FROM_SIZE`
|
|
176
|
+
|
|
177
|
+
### Collections & Paging
|
|
178
|
+
|
|
179
|
+
- **Collection:** Renders arrays with optional sorting/filtering; used in Table, MultiSelect
|
|
180
|
+
- **Paging:** `useReqorePaging()` hook handles offset/limit; `<ReqorePaging>` component for controls
|
|
181
|
+
- **Pattern:** See [Collection.tsx](src/components/Collection/) and [Paging.tsx](src/containers/Paging.tsx)
|
|
182
|
+
|
|
183
|
+
## Common Pitfalls & Solutions
|
|
184
|
+
|
|
185
|
+
| Issue | Solution |
|
|
186
|
+
| -------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
187
|
+
| Styled component props not typed | Add `<IComponentStyle>` generic; ensure mixin interfaces extend properly |
|
|
188
|
+
| Theme not applying | Verify `ReqoreUIProvider` wraps component tree; check `useReqoreTheme()` call |
|
|
189
|
+
| ESC key ignored in modal | Ensure `closeModalsOnEscPress: true` in provider; modal must be in `escClosableModals` stack |
|
|
190
|
+
| Icon not rendering | Verify icon name in `IReqoreIconName`; check icon imports in `Icon/` component |
|
|
191
|
+
| Tests fail with "React is not defined" | Verify `setup.js` is loaded; jsx: "react-jsx" in tsconfig.json |
|
|
192
|
+
| Animation janky on slow devices | Offer `animations.buttons: false` toggle in theme/context; use `SPRING_CONFIG_NO_ANIMATIONS` |
|
|
193
|
+
|
|
194
|
+
## File Reference
|
|
195
|
+
|
|
196
|
+
| Path | Purpose |
|
|
197
|
+
| ----------------- | --------------------------------------------------------------- |
|
|
198
|
+
| `src/index.tsx` | Main export barrel; re-exports all public components |
|
|
199
|
+
| `src/constants/` | Global enums, size maps, theme defaults, animation configs |
|
|
200
|
+
| `src/helpers/` | Color math, utility functions (no React) |
|
|
201
|
+
| `src/hooks/` | Custom React hooks (theme, context, DOM utilities) |
|
|
202
|
+
| `src/containers/` | Provider components (ReqoreProvider, ThemeProvider, UIProvider) |
|
|
203
|
+
| `src/context/` | Context definitions (ReqoreContext, ThemeContext) |
|
|
204
|
+
| `src/types/` | Global TypeScript interfaces (icons, global prop mixins) |
|
|
205
|
+
| `__tests__/` | Jest tests; mirrors `src/` structure |
|
|
206
|
+
| `src/stories/` | Storybook stories for visual development |
|
|
207
|
+
|
|
208
|
+
## When Adding New Components
|
|
209
|
+
|
|
210
|
+
1. **Create folder:** `src/components/{ComponentName}/index.tsx`
|
|
211
|
+
2. **Define interfaces:** `IReqore{ComponentName}Props` + `IReqore{ComponentName}Style`
|
|
212
|
+
3. **Use mixins:** Extend `IWithReqoreEffect`, `IWithReqoreSize` as needed
|
|
213
|
+
4. **Apply theme:** Use `useReqoreTheme()` and styled-components `theme` prop
|
|
214
|
+
5. **Export:** Add named export to `src/index.tsx`
|
|
215
|
+
6. **Test:** Add test file in `__tests__/{ComponentName}.test.tsx` with UIProvider wrapper
|
|
216
|
+
7. **Story:** Create `src/stories/{ComponentName}.stories.tsx` with argTypes
|
|
217
|
+
|
|
218
|
+
## Documentation
|
|
219
|
+
|
|
220
|
+
- **Storybook:** Run `yarn storybook` for interactive component playground
|
|
221
|
+
- **Docusaurus:** Run `yarn docs:dev` for user guides + API docs
|
|
222
|
+
- **TypeDoc:** `yarn docs:api` generates API reference from JSDoc comments
|
|
223
|
+
- **Inline:** Use JSDoc comments on public props/methods for IDE tooltips
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# NEW_COMPONENT.md — Add One New Component (Repo-Conformant)
|
|
2
|
+
|
|
3
|
+
## Mission
|
|
4
|
+
|
|
5
|
+
You are to design and implement **one new UI component** that belongs in this library.
|
|
6
|
+
|
|
7
|
+
This is not a playground task. The new component must:
|
|
8
|
+
|
|
9
|
+
- solve a real UI need,
|
|
10
|
+
- match the library’s conventions,
|
|
11
|
+
- include docs/stories/tests,
|
|
12
|
+
- and be shipped as a PR against `develop`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Hard bans (will fail review)
|
|
17
|
+
|
|
18
|
+
- ❌ No “toy components” (e.g., pointless wrappers, novelty components).
|
|
19
|
+
- ❌ No dependency additions unless absolutely necessary and aligned with repo norms.
|
|
20
|
+
- ❌ No API design that ignores existing patterns in this repo.
|
|
21
|
+
- ❌ No public API breaking changes.
|
|
22
|
+
- ❌ No `any`, `@ts-ignore`, broad disables, or weakening types to “make it work”.
|
|
23
|
+
- ❌ No styling approach that diverges from the repo’s established system.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step 1 — Learn the repo patterns (required)
|
|
28
|
+
|
|
29
|
+
Before proposing anything, scan and summarize:
|
|
30
|
+
|
|
31
|
+
- how components are structured (folders/files, naming, exports)
|
|
32
|
+
- styling/theming/token usage patterns
|
|
33
|
+
- how variants/props are modeled
|
|
34
|
+
- accessibility conventions (ARIA, focus, keyboard)
|
|
35
|
+
- Storybook conventions (stories structure, play tests)
|
|
36
|
+
- test conventions (Vitest/Jest/RTL/etc.)
|
|
37
|
+
- documentation conventions (MDX/README, prop tables, examples)
|
|
38
|
+
- how components are added to the public API (index exports)
|
|
39
|
+
|
|
40
|
+
Output a short “Repo conventions” bullet list.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 2 — Propose candidates (mandatory)
|
|
45
|
+
|
|
46
|
+
Propose **3–5 component ideas** that are plausible for this library.
|
|
47
|
+
|
|
48
|
+
Each candidate must include:
|
|
49
|
+
|
|
50
|
+
- Name
|
|
51
|
+
- Problem solved / why it belongs
|
|
52
|
+
- Comparable components in popular libs (only as reference, do not copy)
|
|
53
|
+
- API sketch (props + events)
|
|
54
|
+
- Accessibility considerations
|
|
55
|
+
- Estimated complexity (S/M/L)
|
|
56
|
+
|
|
57
|
+
Then pick **exactly one** to implement, based on:
|
|
58
|
+
|
|
59
|
+
- impact to users,
|
|
60
|
+
- fit with the library,
|
|
61
|
+
- reviewability (small surface area),
|
|
62
|
+
- confidence (low risk).
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Step 3 — Design the API (required)
|
|
67
|
+
|
|
68
|
+
For the chosen component, define:
|
|
69
|
+
|
|
70
|
+
### Component contract
|
|
71
|
+
|
|
72
|
+
- Component name:
|
|
73
|
+
- Purpose:
|
|
74
|
+
- Key behaviors:
|
|
75
|
+
- Controlled vs uncontrolled behavior (if applicable):
|
|
76
|
+
- Default props:
|
|
77
|
+
- Edge cases:
|
|
78
|
+
- Accessibility behavior (keyboard, focus, roles, labels):
|
|
79
|
+
- Theming/styling approach:
|
|
80
|
+
- “Do not do” list (misuse prevention):
|
|
81
|
+
|
|
82
|
+
### Files to touch
|
|
83
|
+
|
|
84
|
+
List exact files/dirs you will add or modify.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Step 4 — Implement (required)
|
|
89
|
+
|
|
90
|
+
Implement the component strictly following repo conventions:
|
|
91
|
+
|
|
92
|
+
- increase major version if you add a new component (e.g., `1.0.0` → `2.0.0`)
|
|
93
|
+
- switch to a branch named `feature/<component-name>` (e.g., `feature/Tooltip`) must be clean and well-structured, with clear naming and consistent patterns.
|
|
94
|
+
- structure, naming, exports
|
|
95
|
+
- tokens/theme usage
|
|
96
|
+
- typing style
|
|
97
|
+
- consistent prop naming and event patterns
|
|
98
|
+
- consistent className/slot patterns (if present)
|
|
99
|
+
|
|
100
|
+
Keep scope minimal: **one component**, plus required supporting pieces.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Step 5 — Storybook & docs (required)
|
|
105
|
+
|
|
106
|
+
Add Storybook coverage consistent with the repo:
|
|
107
|
+
|
|
108
|
+
- at least 2–4 stories showing common usage
|
|
109
|
+
- include edge state(s) (disabled/loading/error/etc. if relevant)
|
|
110
|
+
- include a story with interactions if the component is interactive
|
|
111
|
+
|
|
112
|
+
If the repo documents components in MDX/README:
|
|
113
|
+
|
|
114
|
+
- add docs entry with basic usage + props overview
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Step 6 — Tests (required for non-trivial behavior)
|
|
119
|
+
|
|
120
|
+
Add tests consistent with repo style. Cover:
|
|
121
|
+
|
|
122
|
+
- rendering smoke test
|
|
123
|
+
- at least one behavioral test (events, keyboard, state transitions)
|
|
124
|
+
- accessibility-related expectations where feasible
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Step 7 — Verification (required)
|
|
129
|
+
|
|
130
|
+
Run and report results in PR:
|
|
131
|
+
|
|
132
|
+
- `yarn install`
|
|
133
|
+
- `yarn precheck`
|
|
134
|
+
- `yarn vitest src/stories/*` replace \* with your new story file
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## PR requirements
|
|
139
|
+
|
|
140
|
+
Open a PR targeting **`develop`**.
|
|
141
|
+
|
|
142
|
+
### PR title
|
|
143
|
+
|
|
144
|
+
`Add: <ComponentName>`
|
|
145
|
+
|
|
146
|
+
### PR description must include
|
|
147
|
+
|
|
148
|
+
- Summary (what + why)
|
|
149
|
+
- API overview (props/events)
|
|
150
|
+
- Accessibility notes (keyboard/focus/ARIA)
|
|
151
|
+
- Stories added
|
|
152
|
+
- Tests added
|
|
153
|
+
- Verification commands run
|
|
154
|
+
- Screenshots/GIF if visually meaningful
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Commit rules
|
|
159
|
+
|
|
160
|
+
Max 3 commits:
|
|
161
|
+
|
|
162
|
+
- `feat: add <ComponentName>`
|
|
163
|
+
- `test: add coverage for <ComponentName>` (optional)
|
|
164
|
+
- `docs: document <ComponentName>` (optional)
|
|
165
|
+
|
|
166
|
+
No “misc fixes” commits.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Final guardrail
|
|
171
|
+
|
|
172
|
+
If you cannot find a component idea that is genuinely useful and fits the library:
|
|
173
|
+
|
|
174
|
+
- do not implement anything
|
|
175
|
+
- instead produce a shortlist with pros/cons and stop
|
package/.tasks/RANDOM_ISSUE.md
CHANGED
|
@@ -148,11 +148,12 @@ Run locally and report in the PR:
|
|
|
148
148
|
|
|
149
149
|
## Workflow
|
|
150
150
|
|
|
151
|
-
1. Create branch: `
|
|
151
|
+
1. Create branch: `bugfix/<short-slug>`
|
|
152
152
|
2. Implement the **smallest coherent fix**
|
|
153
153
|
3. Add or update tests
|
|
154
154
|
4. Run full verification
|
|
155
|
-
5.
|
|
155
|
+
5. Increase minor version (e.g., `1.0.0` → `1.1.0`) if you made a non-breaking change
|
|
156
|
+
6. Open PR targeting **`develop`**
|
|
156
157
|
|
|
157
158
|
---
|
|
158
159
|
|
|
@@ -17,6 +17,7 @@ export interface IReqoreMessageProps extends IWithReqoreCustomTheme, IWithReqore
|
|
|
17
17
|
flat?: boolean;
|
|
18
18
|
hasShadow?: boolean;
|
|
19
19
|
margin?: 'top' | 'bottom' | 'both' | 'none';
|
|
20
|
+
blur?: number;
|
|
20
21
|
}
|
|
21
22
|
export interface IReqoreNotificationStyle extends IReqoreMessageProps {
|
|
22
23
|
theme: IReqoreTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Message/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAYvD,MAAM,WAAW,mBACf,SAAQ,sBAAsB,EAC5B,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Message/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAYvD,MAAM,WAAW,mBACf,SAAQ,sBAAsB,EAC5B,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,QAAA,MAAM,aAAa,qKAsJlB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Message/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6C;AAC7C,+BAA8E;AAC9E,uCAAiD;AAEjD,iFAAiE;AACjE,+CAA+D;AAC/D,iDAAsD;AActD,oCAA0C;AAC1C,iDAAuD;AACvD,8DAOuC;AACvC,sCAA2C;AAC3C,wDAA6D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Message/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export interface IReqoreNotificationProps extends IWithReqoreEffect, IWithReqore
|
|
|
17
17
|
fluid?: boolean;
|
|
18
18
|
flat?: boolean;
|
|
19
19
|
size?: TSizes;
|
|
20
|
+
blur?: number;
|
|
20
21
|
}
|
|
21
22
|
export interface IReqoreNotificationStyle extends IWithReqoreOpaque {
|
|
22
23
|
theme: IReqoreTheme;
|
|
@@ -31,6 +32,7 @@ export interface IReqoreNotificationStyle extends IWithReqoreOpaque {
|
|
|
31
32
|
size?: TSizes;
|
|
32
33
|
asMessage?: boolean;
|
|
33
34
|
margin?: 'top' | 'bottom' | 'both' | 'none';
|
|
35
|
+
blur?: number;
|
|
34
36
|
}
|
|
35
37
|
export declare const StyledReqoreNotification: any;
|
|
36
38
|
export declare const StyledIconWrapper: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/notification.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAqC,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAUpE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAEpD,MAAM,WAAW,wBACf,SAAQ,iBAAiB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB;IACxB,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/notification.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAqC,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAUpE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAEpD,MAAM,WAAW,wBACf,SAAQ,iBAAiB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB;IACxB,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAWD,eAAO,MAAM,wBAAwB,KAgGpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,KA0B7B,CAAC;AAEF,eAAO,MAAM,8BAA8B,KAS1C,CAAC;AAEF,eAAO,MAAM,gCAAgC,KAK5C,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAKnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,KAerC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;CAOzD,CAAC;AAEF,QAAA,MAAM,kBAAkB,+IAyHvB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -59,7 +59,7 @@ var Header_1 = require("../Header");
|
|
|
59
59
|
var Icon_1 = __importDefault(require("../Icon"));
|
|
60
60
|
var Spinner_1 = require("../Spinner");
|
|
61
61
|
var timeoutAnimation = (0, styled_components_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n 0% {\n width: 100%;\n }\n 100% {\n width: 0;\n }\n"], ["\n 0% {\n width: 100%;\n }\n 100% {\n width: 0;\n }\n"])));
|
|
62
|
-
exports.StyledReqoreNotification = (0, styled_components_1["default"])(Effect_1.StyledEffect)(
|
|
62
|
+
exports.StyledReqoreNotification = (0, styled_components_1["default"])(Effect_1.StyledEffect)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n min-width: ", ";\n max-width: ", ";\n border-radius: 5px;\n display: flex;\n flex: ", ";\n align-self: ", ";\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease-out;\n\n ", ";\n\n // Do not fade in the component if it's a message\n ", "\n\n &:not(:first-child) {\n margin-top: ", ";\n }\n\n ", "\n"], ["\n min-width: ", ";\n max-width: ", ";\n border-radius: 5px;\n display: flex;\n flex: ", ";\n align-self: ", ";\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease-out;\n\n ", ";\n\n // Do not fade in the component if it's a message\n ", "\n\n &:not(:first-child) {\n margin-top: ", ";\n }\n\n ", "\n"])), function (_a) {
|
|
63
63
|
var fluid = _a.fluid;
|
|
64
64
|
return (!fluid ? '30px' : undefined);
|
|
65
65
|
}, function (_a) {
|
|
@@ -88,35 +88,35 @@ exports.StyledReqoreNotification = (0, styled_components_1["default"])(Effect_1.
|
|
|
88
88
|
var asMessage = _a.asMessage, size = _a.size;
|
|
89
89
|
return asMessage ? undefined : "".concat(sizes_1.PADDING_FROM_SIZE[size], "px");
|
|
90
90
|
}, function (_a) {
|
|
91
|
-
var theme = _a.theme, type = _a.type, intent = _a.intent, clickable = _a.clickable, timeout = _a.timeout, hasShadow = _a.hasShadow, flat = _a.flat, minimal = _a.minimal, _b = _a.opaque, opaque = _b === void 0 ? true : _b;
|
|
92
|
-
return (0, styled_components_1.css)(
|
|
91
|
+
var theme = _a.theme, type = _a.type, intent = _a.intent, clickable = _a.clickable, timeout = _a.timeout, hasShadow = _a.hasShadow, flat = _a.flat, minimal = _a.minimal, _b = _a.opaque, opaque = _b === void 0 ? true : _b, blur = _a.blur;
|
|
92
|
+
return (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n background-color: ", ";\n border: ", ";\n border-color: ", ";\n\n ", "\n\n ", "\n\n ", "\n\n color: ", ";\n\n ", "\n "], ["\n background-color: ", ";\n border: ", ";\n border-color: ", ";\n\n ", "\n\n ", "\n\n ", "\n\n color: ", ";\n\n ", "\n "])), minimal
|
|
93
93
|
? 'transparent'
|
|
94
94
|
: opaque
|
|
95
95
|
? (0, colors_1.changeLightness)(theme.main, 0.1)
|
|
96
|
-
: (0, polished_1.rgba)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.3), flat ? 0 : '1px solid', (0, colors_1.changeLightness)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.2),
|
|
96
|
+
: (0, polished_1.rgba)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.3), flat ? 0 : '1px solid', (0, colors_1.changeLightness)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.2), blur && (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n backdrop-filter: blur(", "px);\n "], ["\n backdrop-filter: blur(", "px);\n "])), blur), hasShadow && (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-shadow: 0px 0px 30px 10px ", ";\n "], ["\n box-shadow: 0px 0px 30px 10px ", ";\n "])), (0, polished_1.rgba)('#000000', 0.3)), timeout && (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n &::before {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n height: 3px;\n background-color: ", ";\n animation-name: ", ";\n animation-duration: ", "ms;\n }\n "], ["\n &::before {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n height: 3px;\n background-color: ", ";\n animation-name: ", ";\n animation-duration: ", "ms;\n }\n "])), (0, colors_1.changeLightness)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.2), timeoutAnimation, timeout), minimal || !opaque
|
|
97
97
|
? 'inherit'
|
|
98
|
-
: (0, colors_1.getReadableColor)(theme, null, null, true, minimal ? theme.originalMain : undefined), clickable && (0, styled_components_1.css)(
|
|
98
|
+
: (0, colors_1.getReadableColor)(theme, null, null, true, minimal ? theme.originalMain : undefined), clickable && (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n cursor: pointer;\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n "], ["\n cursor: pointer;\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n "])), minimal
|
|
99
99
|
? 'transparent'
|
|
100
100
|
: opaque
|
|
101
101
|
? (0, colors_1.changeDarkness)(theme.main, 0.002)
|
|
102
102
|
: (0, polished_1.rgba)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.4), (0, colors_1.changeLightness)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.25)));
|
|
103
103
|
});
|
|
104
|
-
exports.StyledIconWrapper = styled_components_1["default"].div(
|
|
104
|
+
exports.StyledIconWrapper = styled_components_1["default"].div(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n flex: 0 1 auto;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all 0.2s ease-out;\n\n ", "\n"], ["\n flex: 0 1 auto;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all 0.2s ease-out;\n\n ", "\n"])), function (_a) {
|
|
105
105
|
var clickable = _a.clickable, theme = _a.theme, intent = _a.intent, type = _a.type;
|
|
106
|
-
return clickable && (0, styled_components_1.css)(
|
|
106
|
+
return clickable && (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n margin-top: unset;\n height: unset;\n\n .reqore-icon {\n transform: scale(0.85);\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n .reqore-icon {\n transform: scale(1);\n }\n }\n "], ["\n margin-top: unset;\n height: unset;\n\n .reqore-icon {\n transform: scale(0.85);\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n .reqore-icon {\n transform: scale(1);\n }\n }\n "])), (0, colors_1.changeLightness)((0, colors_1.getNotificationIntent)(theme, intent || type), 0.02));
|
|
107
107
|
});
|
|
108
|
-
exports.StyledNotificationInnerContent = styled_components_1["default"].div(
|
|
109
|
-
exports.StyledNotificationContentWrapper = styled_components_1["default"].div(
|
|
108
|
+
exports.StyledNotificationInnerContent = styled_components_1["default"].div(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n flex: 1;\n display: flex;\n flex-flow: column;\n justify-content: center;\n\n .reqore-heading {\n line-height: 1;\n }\n"], ["\n flex: 1;\n display: flex;\n flex-flow: column;\n justify-content: center;\n\n .reqore-heading {\n line-height: 1;\n }\n"])));
|
|
109
|
+
exports.StyledNotificationContentWrapper = styled_components_1["default"].div(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n flex: 1;\n display: flex;\n justify-content: center;\n padding: ", ";\n"], ["\n flex: 1;\n display: flex;\n justify-content: center;\n padding: ", ";\n"])), function (_a) {
|
|
110
110
|
var _b = _a.size, size = _b === void 0 ? 'normal' : _b;
|
|
111
111
|
return "".concat(sizes_1.PADDING_FROM_SIZE[size], "px");
|
|
112
112
|
});
|
|
113
|
-
exports.StyledNotificationTitle = styled_components_1["default"].h4(
|
|
114
|
-
exports.StyledNotificationContent = styled_components_1["default"].div(
|
|
113
|
+
exports.StyledNotificationTitle = styled_components_1["default"].h4(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n margin: 0 0 5px 0;\n padding: 0;\n display: flex;\n align-items: center;\n"], ["\n margin: 0 0 5px 0;\n padding: 0;\n display: flex;\n align-items: center;\n"])));
|
|
114
|
+
exports.StyledNotificationContent = styled_components_1["default"].div(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n margin: 0;\n padding: 0;\n flex: 1;\n font-size: ", "px;\n overflow-wrap: anywhere;\n display: flex;\n flex-flow: column;\n justify-content: center;\n\n ", "\n"], ["\n margin: 0;\n padding: 0;\n flex: 1;\n font-size: ", "px;\n overflow-wrap: anywhere;\n display: flex;\n flex-flow: column;\n justify-content: center;\n\n ", "\n"])), function (_a) {
|
|
115
115
|
var _b = _a.size, size = _b === void 0 ? 'normal' : _b;
|
|
116
116
|
return sizes_1.TEXT_FROM_SIZE[size];
|
|
117
117
|
}, function (_a) {
|
|
118
118
|
var hasTitle = _a.hasTitle, _b = _a.size, size = _b === void 0 ? 'normal' : _b;
|
|
119
|
-
return hasTitle && (0, styled_components_1.css)(
|
|
119
|
+
return hasTitle && (0, styled_components_1.css)(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n padding-top: ", "px;\n "], ["\n padding-top: ", "px;\n "])), sizes_1.PADDING_FROM_SIZE[size]);
|
|
120
120
|
});
|
|
121
121
|
exports.typeToIcon = {
|
|
122
122
|
info: 'InformationLine',
|
|
@@ -127,7 +127,7 @@ exports.typeToIcon = {
|
|
|
127
127
|
muted: 'Forbid2Line'
|
|
128
128
|
};
|
|
129
129
|
var ReqoreNotification = (0, react_1.forwardRef)(function (_a, ref) {
|
|
130
|
-
var type = _a.type, intent = _a.intent, icon = _a.icon, title = _a.title, content = _a.content, onClose = _a.onClose, onClick = _a.onClick, duration = _a.duration, onFinish = _a.onFinish, flat = _a.flat, minimal = _a.minimal, _b = _a.opaque, opaque = _b === void 0 ? true : _b, _c = _a.size, size = _c === void 0 ? 'normal' : _c, customTheme = _a.customTheme;
|
|
130
|
+
var type = _a.type, intent = _a.intent, icon = _a.icon, title = _a.title, content = _a.content, onClose = _a.onClose, onClick = _a.onClick, duration = _a.duration, onFinish = _a.onFinish, flat = _a.flat, minimal = _a.minimal, _b = _a.opaque, opaque = _b === void 0 ? true : _b, blur = _a.blur, _c = _a.size, size = _c === void 0 ? 'normal' : _c, customTheme = _a.customTheme;
|
|
131
131
|
var _d = (0, react_1.useState)(null), internalTimeout = _d[0], setInternalTimeout = _d[1];
|
|
132
132
|
var theme = (0, useTheme_1.useReqoreTheme)('main', customTheme, type || intent, 'notifications');
|
|
133
133
|
var transitions = (0, web_1.useTransition)(true, {
|
|
@@ -157,12 +157,12 @@ var ReqoreNotification = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
157
157
|
clearTimeout(internalTimeout);
|
|
158
158
|
});
|
|
159
159
|
return transitions(function (styles, item) {
|
|
160
|
-
return item ? ((0, jsx_runtime_1.jsx)(ThemeProvider_1["default"], { children: (0, jsx_runtime_1.jsxs)(exports.StyledReqoreNotification, __assign({ as: web_1.animated.div, type: type || intent, hasShadow: true, timeout: duration, clickable: !!onClick, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, flat: flat, minimal: minimal, className: 'reqore-notification', ref: ref, style: styles, size: size, opaque: opaque, theme: theme, maxWidth: '450px' }, { children: [(0, jsx_runtime_1.jsxs)(exports.StyledNotificationContentWrapper, __assign({ size: size, theme: theme }, { children: [type || intent || icon ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: intent === 'pending' || type === 'pending' ? ((0, jsx_runtime_1.jsx)(Spinner_1.ReqoreSpinner, { size: size, type: 5, iconMargin: 'right' })) : ((0, jsx_runtime_1.jsx)(Icon_1["default"], { icon: icon || exports.typeToIcon[type || intent], margin: 'right', size: size })) })) : null, (0, jsx_runtime_1.jsxs)(exports.StyledNotificationInnerContent, { children: [title && (0, jsx_runtime_1.jsx)(Header_1.ReqoreHeading, __assign({ size: size }, { children: title })), (0, jsx_runtime_1.jsx)(exports.StyledNotificationContent, __assign({ theme: theme, hasTitle: !!title, size: size }, { children: content }))] })] })), onClose ? ((0, jsx_runtime_1.jsx)(exports.StyledIconWrapper, __assign({ type: type || intent, size: size, clickable: true, className: 'reqore-notification-close', onClick: function (event) {
|
|
160
|
+
return item ? ((0, jsx_runtime_1.jsx)(ThemeProvider_1["default"], { children: (0, jsx_runtime_1.jsxs)(exports.StyledReqoreNotification, __assign({ as: web_1.animated.div, type: type || intent, hasShadow: true, timeout: duration, clickable: !!onClick, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, flat: flat, minimal: minimal, className: 'reqore-notification', ref: ref, style: styles, size: size, opaque: opaque, blur: blur, theme: theme, maxWidth: '450px' }, { children: [(0, jsx_runtime_1.jsxs)(exports.StyledNotificationContentWrapper, __assign({ size: size, theme: theme }, { children: [type || intent || icon ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: intent === 'pending' || type === 'pending' ? ((0, jsx_runtime_1.jsx)(Spinner_1.ReqoreSpinner, { size: size, type: 5, iconMargin: 'right' })) : ((0, jsx_runtime_1.jsx)(Icon_1["default"], { icon: icon || exports.typeToIcon[type || intent], margin: 'right', size: size })) })) : null, (0, jsx_runtime_1.jsxs)(exports.StyledNotificationInnerContent, { children: [title && (0, jsx_runtime_1.jsx)(Header_1.ReqoreHeading, __assign({ size: size }, { children: title })), (0, jsx_runtime_1.jsx)(exports.StyledNotificationContent, __assign({ theme: theme, hasTitle: !!title, size: size }, { children: content }))] })] })), onClose ? ((0, jsx_runtime_1.jsx)(exports.StyledIconWrapper, __assign({ type: type || intent, size: size, clickable: true, className: 'reqore-notification-close', onClick: function (event) {
|
|
161
161
|
event.stopPropagation();
|
|
162
162
|
onClose();
|
|
163
163
|
} }, { children: (0, jsx_runtime_1.jsx)(Icon_1["default"], { icon: 'CloseFill', margin: 'both', size: size }) }))) : null] }), "".concat(duration).concat(type || intent).concat(title).concat(content)) })) : null;
|
|
164
164
|
});
|
|
165
165
|
});
|
|
166
166
|
exports["default"] = ReqoreNotification;
|
|
167
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
|
|
167
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16;
|
|
168
168
|
//# sourceMappingURL=notification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/components/Notifications/notification.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA4D;AAC5D,qCAAgC;AAChC,+BAA+D;AAC/D,uCAAiD;AACjD,qEAA2D;AAC3D,yDAA2D;AAC3D,+CAAkF;AAElF,iFAAiE;AACjE,uDAAkD;AAClD,+CAK8B;AAC9B,iDAAsD;AAQtD,oCAAyC;AACzC,oCAA0C;AAC1C,iDAAiC;AACjC,sCAA2C;
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/components/Notifications/notification.tsx"],"names":[],"mappings":"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"}
|